@kms-ngx-ui/presentational 20.4.4 → 20.5.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.
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { OnInit, EventEmitter, DoCheck, Renderer2, ElementRef, ApplicationRef, ChangeDetectorRef, NgZone, OnChanges, AfterViewInit, WritableSignal, Signal, SimpleChanges, TemplateRef, OnDestroy, PipeTransform, AfterContentChecked, InputSignal, Type } from '@angular/core';
2
+ import { OnInit, EventEmitter, DoCheck, Renderer2, ElementRef, ApplicationRef, ChangeDetectorRef, NgZone, OnChanges, AfterViewInit, WritableSignal, Signal, SimpleChanges, TemplateRef, OnDestroy, PipeTransform, AfterContentChecked, InputSignal, AfterContentInit, QueryList, Type } from '@angular/core';
3
3
  import * as i52 from '@ngx-translate/core';
4
4
  import { TranslateService } from '@ngx-translate/core';
5
5
  import * as i40 from '@angular/forms';
@@ -1669,10 +1669,40 @@ declare class DateInputComponent implements ControlValueAccessor {
1669
1669
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateInputComponent, "kms-date-input", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "monthPicker": { "alias": "monthPicker"; "required": false; "isSignal": true; }; "startView": { "alias": "startView"; "required": false; "isSignal": true; }; }, { "dateChange": "dateChange"; "rangeChange": "rangeChange"; }, never, never, true, never>;
1670
1670
  }
1671
1671
 
1672
+ interface KmsTab {
1673
+ /** Text displayed in the tab label. */
1674
+ label: string;
1675
+ /** Optional count badge displayed next to the label. */
1676
+ count?: number;
1677
+ }
1678
+
1679
+ declare class KmsTabContentDirective {
1680
+ templateRef: TemplateRef<unknown>;
1681
+ constructor(templateRef: TemplateRef<unknown>);
1682
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<KmsTabContentDirective, never>;
1683
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KmsTabContentDirective, "ng-template[kmsTabContent]", never, {}, {}, never, never, true, never>;
1684
+ }
1685
+ declare class TabGroupComponent implements AfterContentInit {
1686
+ /** Tab definitions with label and optional count. When omitted, mat-tab children are projected directly. */
1687
+ tabs: _angular_core.InputSignal<KmsTab[]>;
1688
+ /** Index of the initially selected tab. */
1689
+ selectedIndex: _angular_core.InputSignal<number>;
1690
+ /** Emits the new index whenever the user switches tabs. */
1691
+ selectedIndexChange: _angular_core.OutputEmitterRef<number>;
1692
+ /** Whether to disable the Material ripple effect on tabs. */
1693
+ disableRipple: _angular_core.InputSignal<boolean>;
1694
+ tabContents: QueryList<KmsTabContentDirective>;
1695
+ contentTemplates: TemplateRef<unknown>[];
1696
+ ngAfterContentInit(): void;
1697
+ onTabChange(index: number): void;
1698
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabGroupComponent, never>;
1699
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabGroupComponent, "kms-tab-group", never, { "tabs": { "alias": "tabs"; "required": false; "isSignal": true; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; "disableRipple": { "alias": "disableRipple"; "required": false; "isSignal": true; }; }, { "selectedIndexChange": "selectedIndexChange"; }, ["tabContents"], ["*"], true, never>;
1700
+ }
1701
+
1672
1702
  declare class KmsUiPresentationalModule {
1673
1703
  constructor(translate: TranslateService);
1674
1704
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<KmsUiPresentationalModule, never>;
1675
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<KmsUiPresentationalModule, [typeof BackToTopComponent, typeof CheckboxComponent, typeof ColorInputComponent, typeof DropdownFromDataComponent, typeof EnumRadiogroupComponent, typeof FileInputComponent, typeof ImageUploadComponent, typeof FlyoutComponent, typeof ConfirmationDialogComponent, typeof ImageSliderComponent, typeof KMSAccordionItemComponent, typeof KmsUiPresentationalComponent, typeof LoaderComponent, typeof MapComponent, typeof RadioButtonComponent, typeof RadioGroupComponent, typeof SalutationDropdownComponent, typeof SalutationRadiogroupComponent, typeof SlideToggleComponent, typeof TimeInputComponent, typeof TooltipIconComponent, typeof YesNoRadiogroupComponent, typeof PasswordComponent, typeof SliderComponent, typeof CardComponent, typeof ButtonComponent, typeof NumericInputComponent, typeof GenericFormComponent, typeof FormSectionComponent, typeof FormFieldComponent, typeof FormActionsComponent, typeof DynamicFieldDirective, typeof TextInputComponent], [typeof i8.CommonModule, typeof i35.DragDropModule, typeof i36.MatCheckboxModule, typeof i37.MatButtonModule, typeof i38.MatRadioModule, typeof i39.MatDialogModule, typeof i40.FormsModule, typeof i40.ReactiveFormsModule, typeof i41.MatFormFieldModule, typeof i42.MatInputModule, typeof i43.MatMenuModule, typeof CustomPipesModule, typeof i45.GoogleMapsModule, typeof i46.MatExpansionModule, typeof i47.MatSelectModule, typeof i48.NgxMatSelectSearchModule, typeof i49.MatProgressSpinnerModule, typeof DirectivesModule, typeof i51.MatSlideToggleModule, typeof i52.TranslateModule, typeof i53.MatTooltipModule, typeof i54.NgxSliderModule, typeof i55.MatAutocompleteModule, typeof i56.MatListModule, typeof i57.MatCardModule, typeof i58.MatDatepickerModule, typeof i59.MatNativeDateModule, typeof IconComponent, typeof InlineAlertComponent, typeof DateInputComponent], [typeof BackToTopComponent, typeof CheckboxComponent, typeof ColorInputComponent, typeof DropdownFromDataComponent, typeof EnumRadiogroupComponent, typeof RadioGroupComponent, typeof FileInputComponent, typeof ImageUploadComponent, typeof FlyoutComponent, typeof ConfirmationDialogComponent, typeof IconComponent, typeof ImageSliderComponent, typeof InlineAlertComponent, typeof KMSAccordionItemComponent, typeof KmsUiPresentationalComponent, typeof LoaderComponent, typeof MapComponent, typeof RadioButtonComponent, typeof SalutationDropdownComponent, typeof SalutationRadiogroupComponent, typeof SlideToggleComponent, typeof TimeInputComponent, typeof TooltipIconComponent, typeof YesNoRadiogroupComponent, typeof PasswordComponent, typeof SliderComponent, typeof CardComponent, typeof ButtonComponent, typeof NumericInputComponent, typeof GenericFormComponent, typeof FormSectionComponent, typeof FormActionsComponent, typeof DynamicFieldDirective, typeof DateInputComponent, typeof TextInputComponent]>;
1705
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<KmsUiPresentationalModule, [typeof BackToTopComponent, typeof CheckboxComponent, typeof ColorInputComponent, typeof DropdownFromDataComponent, typeof EnumRadiogroupComponent, typeof FileInputComponent, typeof ImageUploadComponent, typeof FlyoutComponent, typeof ConfirmationDialogComponent, typeof ImageSliderComponent, typeof KMSAccordionItemComponent, typeof KmsUiPresentationalComponent, typeof LoaderComponent, typeof MapComponent, typeof RadioButtonComponent, typeof RadioGroupComponent, typeof SalutationDropdownComponent, typeof SalutationRadiogroupComponent, typeof SlideToggleComponent, typeof TimeInputComponent, typeof TooltipIconComponent, typeof YesNoRadiogroupComponent, typeof PasswordComponent, typeof SliderComponent, typeof CardComponent, typeof ButtonComponent, typeof NumericInputComponent, typeof GenericFormComponent, typeof FormSectionComponent, typeof FormFieldComponent, typeof FormActionsComponent, typeof DynamicFieldDirective, typeof TextInputComponent], [typeof i8.CommonModule, typeof i35.DragDropModule, typeof i36.MatCheckboxModule, typeof i37.MatButtonModule, typeof i38.MatRadioModule, typeof i39.MatDialogModule, typeof i40.FormsModule, typeof i40.ReactiveFormsModule, typeof i41.MatFormFieldModule, typeof i42.MatInputModule, typeof i43.MatMenuModule, typeof CustomPipesModule, typeof i45.GoogleMapsModule, typeof i46.MatExpansionModule, typeof i47.MatSelectModule, typeof i48.NgxMatSelectSearchModule, typeof i49.MatProgressSpinnerModule, typeof DirectivesModule, typeof i51.MatSlideToggleModule, typeof i52.TranslateModule, typeof i53.MatTooltipModule, typeof i54.NgxSliderModule, typeof i55.MatAutocompleteModule, typeof i56.MatListModule, typeof i57.MatCardModule, typeof i58.MatDatepickerModule, typeof i59.MatNativeDateModule, typeof IconComponent, typeof InlineAlertComponent, typeof DateInputComponent, typeof TabGroupComponent, typeof KmsTabContentDirective], [typeof BackToTopComponent, typeof CheckboxComponent, typeof ColorInputComponent, typeof DropdownFromDataComponent, typeof EnumRadiogroupComponent, typeof RadioGroupComponent, typeof FileInputComponent, typeof ImageUploadComponent, typeof FlyoutComponent, typeof ConfirmationDialogComponent, typeof IconComponent, typeof ImageSliderComponent, typeof InlineAlertComponent, typeof KMSAccordionItemComponent, typeof KmsUiPresentationalComponent, typeof LoaderComponent, typeof MapComponent, typeof RadioButtonComponent, typeof SalutationDropdownComponent, typeof SalutationRadiogroupComponent, typeof SlideToggleComponent, typeof TimeInputComponent, typeof TooltipIconComponent, typeof YesNoRadiogroupComponent, typeof PasswordComponent, typeof SliderComponent, typeof CardComponent, typeof ButtonComponent, typeof NumericInputComponent, typeof GenericFormComponent, typeof FormSectionComponent, typeof FormActionsComponent, typeof DynamicFieldDirective, typeof DateInputComponent, typeof TextInputComponent, typeof TabGroupComponent, typeof KmsTabContentDirective]>;
1676
1706
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<KmsUiPresentationalModule>;
1677
1707
  }
1678
1708
 
@@ -1908,5 +1938,5 @@ declare class FieldRegistryService {
1908
1938
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<FieldRegistryService>;
1909
1939
  }
1910
1940
 
1911
- export { BackToTopComponent, Breakpoint, ButtonAppearance, ButtonComponent, ButtonResponseType, CardComponent, CheckboxComponent, Color, ColorInputComponent, ConfirmationDialogComponent, CustomPipesModule, DateInputComponent, DirectivesModule, DropdownFromDataComponent, DynamicFieldDirective, EnumRadiogroupComponent, FieldRegistryService, FieldType, FileInputComponent, FlyoutComponent, FormActionsComponent, FormFieldComponent, FormLayout, FormParentComponent, FormSectionComponent, GenericFormComponent, GenericFormModule, GenericFormService, GetMaxHeightDirective, IconComponent, IconSizePx, IconSizesArr, ImageSliderComponent, ImageSnippet$1 as ImageSnippet, ImageSourceType$1 as ImageSourceType, ImageUploadComponent, InlineAlertComponent, IntegerCurrency, KMSAccordionItemComponent, KeyValuePair, KmsUiPresentationalComponent, KmsUiPresentationalModule, KmsUiPresentationalService, LabelValuePair, LoaderComponent, MapComponent, Marker, MarkerLabel, MarkerOptions, NumericInputComponent, PasswordComponent, RadioButtonComponent, RadioButtonSize, RadioGroupComponent, SafeHtmlPipe, SafeResourceUrlPipe, SafeUrlPipe, SalutationDropdownComponent, SalutationEnum, SalutationRadiogroupComponent, SanitizeNullPipe, SimpleBreakpoint, SlideToggleComponent, SliderComponent, StylingTheme, SwipeDirective, TextInputComponent, TextValuePair, TextValuePairArray, TimeDirective, TimeInputComponent, TooltipDirective, TooltipIconComponent, TrimPipe, TypeofPipe, ViewportService, WindowDimensions, YesNoRadiogroupComponent, noSpecialCharsOnly, noWhitespaceOnly };
1912
- export type { AsyncValidatorConfig, AutocompleteFieldOptions, CounterFieldOptions, DateFieldOptions, DateRangeFieldOptions, DateRangeValue, DialogConfig, DialogData, DisabledConfig, ErrorDisplayConfig, ErrorDisplayStrategy, FieldAffixConfig, FieldConfig, FieldTypeOptions, FormActionsConfig, FormSectionConfig, GenericFormConfig, GenericFormState, GridAlign, GridVerticalAlign, ImagePosition, ImageUploadFieldOptions, InlineAlertType, NullAble, NumberFieldOptions, PasswordFieldOptions, RadioGroupFieldOptions, RadiobuttonInterface, SelectFieldOptions, SelectTranslation, TextareaFieldOptions, TimeFieldOptions, ValidatorConfig };
1941
+ export { BackToTopComponent, Breakpoint, ButtonAppearance, ButtonComponent, ButtonResponseType, CardComponent, CheckboxComponent, Color, ColorInputComponent, ConfirmationDialogComponent, CustomPipesModule, DateInputComponent, DirectivesModule, DropdownFromDataComponent, DynamicFieldDirective, EnumRadiogroupComponent, FieldRegistryService, FieldType, FileInputComponent, FlyoutComponent, FormActionsComponent, FormFieldComponent, FormLayout, FormParentComponent, FormSectionComponent, GenericFormComponent, GenericFormModule, GenericFormService, GetMaxHeightDirective, IconComponent, IconSizePx, IconSizesArr, ImageSliderComponent, ImageSnippet$1 as ImageSnippet, ImageSourceType$1 as ImageSourceType, ImageUploadComponent, InlineAlertComponent, IntegerCurrency, KMSAccordionItemComponent, KeyValuePair, KmsTabContentDirective, KmsUiPresentationalComponent, KmsUiPresentationalModule, KmsUiPresentationalService, LabelValuePair, LoaderComponent, MapComponent, Marker, MarkerLabel, MarkerOptions, NumericInputComponent, PasswordComponent, RadioButtonComponent, RadioButtonSize, RadioGroupComponent, SafeHtmlPipe, SafeResourceUrlPipe, SafeUrlPipe, SalutationDropdownComponent, SalutationEnum, SalutationRadiogroupComponent, SanitizeNullPipe, SimpleBreakpoint, SlideToggleComponent, SliderComponent, StylingTheme, SwipeDirective, TabGroupComponent, TextInputComponent, TextValuePair, TextValuePairArray, TimeDirective, TimeInputComponent, TooltipDirective, TooltipIconComponent, TrimPipe, TypeofPipe, ViewportService, WindowDimensions, YesNoRadiogroupComponent, noSpecialCharsOnly, noWhitespaceOnly };
1942
+ export type { AsyncValidatorConfig, AutocompleteFieldOptions, CounterFieldOptions, DateFieldOptions, DateRangeFieldOptions, DateRangeValue, DialogConfig, DialogData, DisabledConfig, ErrorDisplayConfig, ErrorDisplayStrategy, FieldAffixConfig, FieldConfig, FieldTypeOptions, FormActionsConfig, FormSectionConfig, GenericFormConfig, GenericFormState, GridAlign, GridVerticalAlign, ImagePosition, ImageUploadFieldOptions, InlineAlertType, KmsTab, NullAble, NumberFieldOptions, PasswordFieldOptions, RadioGroupFieldOptions, RadiobuttonInterface, SelectFieldOptions, SelectTranslation, TextareaFieldOptions, TimeFieldOptions, ValidatorConfig };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kms-ngx-ui/presentational",
3
- "version": "20.4.4",
3
+ "version": "20.5.0",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": "^20.2.14",
6
6
  "@angular/common": "^20.3.15",
@@ -389,6 +389,20 @@ A generic dialog component
389
389
  | `onSelectItemEmitter` | `EventEmitter` |
390
390
  | `formDataChanged` | `EventEmitter<UntypedFormGroup>` |
391
391
 
392
+ ### `<kms-tab-group>` — TabGroupComponent
393
+
394
+ **Inputs:**
395
+ | Name | Type | Default | Description |
396
+ |------|------|---------|-------------|
397
+ | `disableRipple` | `any` | `true` | Whether to disable the Material ripple effect on tabs. |
398
+ | `selectedIndex` | `number` | `0` | Index of the initially selected tab. |
399
+ | `tabs` | `KmsTab[]` | `-` | Tab definitions with label and optional count. When omitted, mat-tab children are projected directly. |
400
+
401
+ **Outputs:**
402
+ | Name | Type |
403
+ |------|------|
404
+ | `selectedIndexChange` | `number` |
405
+
392
406
  ### `<kms-text-input>` — TextInputComponent
393
407
 
394
408
  **Inputs:**
@@ -528,6 +542,9 @@ Directive to calc the height of all inner elements
528
542
  | `getMaxHeight` | `string` | `''` | CSS class name of the child items (markup elements) that should be checked for their height. This is mandatory. |
529
543
 
530
544
 
545
+ ### `[ng-template[kmsTabContent]]` — KmsTabContentDirective
546
+
547
+
531
548
  ### `[[swipeDirective]]` — SwipeDirective
532
549
 
533
550
  **Inputs:**
@@ -847,6 +864,10 @@ Usage: `value | kmsTypeOf`
847
864
  - `service`: `any`
848
865
  - `useKeyAsValue`: `boolean` (optional)
849
866
 
867
+ ### KmsTab
868
+ - `count`: `number` (optional)
869
+ - `label`: `string`
870
+
850
871
  ### NumberFieldOptions
851
872
  - `max`: `number` (optional)
852
873
  - `min`: `number` (optional)
@@ -0,0 +1,41 @@
1
+ @mixin tab-group-theme() {
2
+ kms-tab-group {
3
+ display: block;
4
+
5
+ .mat-mdc-tab {
6
+ flex-grow: 0 !important;
7
+ --mat-tab-header-label-text-tracking: normal;
8
+ }
9
+
10
+ .mat-mdc-tab-body .mat-mdc-tab-body-content {
11
+ overflow-y: hidden;
12
+ }
13
+
14
+ .mat-mdc-tab-body-wrapper {
15
+ margin-top: $base-spacing * 2;
16
+ }
17
+
18
+ .mat-mdc-tab.mdc-tab--active .mdc-tab__text-label,
19
+ .mdc-tab-indicator--active {
20
+ color: var(--kms-tab-active-color, var(--kms-accent));
21
+ --mat-tab-header-active-hover-indicator-color: var(
22
+ --kms-tab-active-color,
23
+ var(--kms-accent)
24
+ );
25
+ --mdc-tab-indicator-active-indicator-color: var(
26
+ --kms-tab-active-color,
27
+ var(--kms-accent)
28
+ );
29
+ }
30
+
31
+ &__count {
32
+ font-size: 0.85em;
33
+ font-weight: 400;
34
+ margin-left: 2px;
35
+
36
+ .mdc-tab--active & {
37
+ color: var(--kms-tab-active-color, var(--kms-accent));
38
+ }
39
+ }
40
+ }
41
+ }
@@ -38,6 +38,7 @@
38
38
  @import '../lib/ui/molecules/text-input/text-input.component';
39
39
  @import '../lib/ui/molecules/date-input/date-input.component';
40
40
  @import '../lib/ui/molecules/flyout/flyout.component';
41
+ @import '../lib/ui/molecules/tab-group/tab-group.component';
41
42
 
42
43
  // Organisms
43
44
 
@@ -66,3 +67,4 @@
66
67
  @include text-input-theme();
67
68
  @include date-input-theme();
68
69
  @include flyout-theme();
70
+ @include tab-group-theme();