Skip to content

Commit

Permalink
feat: integrate Angular form support (#11)
Browse files Browse the repository at this point in the history
This PR adds initial integration into the `@angular/forms` library.

---------

Co-authored-by: Lukas Spirig <[email protected]>
  • Loading branch information
DavideMininni-Fincons and kyubisation authored Jan 20, 2025
1 parent cc0370f commit 44f7160
Show file tree
Hide file tree
Showing 62 changed files with 421 additions and 95 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"type": "module",
"dependencies": {
"@angular/animations": "19.1.1",
"@angular/cdk": "19.1.0",
"@angular/common": "19.1.1",
"@angular/compiler": "19.1.1",
"@angular/core": "19.1.1",
Expand Down
11 changes: 1 addition & 10 deletions src/angular-experimental/eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,7 @@ export default tseslint.config(
...rootConfig,
{
files: ['**/*.ts'],
rules: {
'@angular-eslint/component-selector': [
'error',
{
type: 'element',
prefix: 'sbb',
style: 'kebab-case',
},
],
},
rules: {},
},
{
files: ['**/*.html'],
Expand Down
3 changes: 2 additions & 1 deletion src/angular/accordion/accordion.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbAccordionElement } from '@sbb-esta/lyne-elements/accordion.js';
import '@sbb-esta/lyne-elements/accordion.js';
import { SbbTitleLevel } from '@sbb-esta/lyne-elements/title.js';

import '@sbb-esta/lyne-elements/accordion.js';

@Directive({
selector: 'sbb-accordion',
})
Expand Down
3 changes: 2 additions & 1 deletion src/angular/action-group/action-group.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import type { SbbActionGroupElement } from '@sbb-esta/lyne-elements/action-group.js';
import '@sbb-esta/lyne-elements/action-group.js';
import { SbbButtonSize } from '@sbb-esta/lyne-elements/button.js';
import { SbbHorizontalFrom, SbbOrientation } from '@sbb-esta/lyne-elements/core/interfaces.js';
import { SbbLinkSize } from '@sbb-esta/lyne-elements/link.js';

import '@sbb-esta/lyne-elements/action-group.js';

@Directive({
selector: 'sbb-action-group',
})
Expand Down
1 change: 1 addition & 0 deletions src/angular/alert/alert-group/alert-group.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { Directive, ElementRef, inject, Input, NgZone, Output } from '@angular/c
import type { SbbAlertGroupElement } from '@sbb-esta/lyne-elements/alert/alert-group.js';
import { SbbTitleLevel } from '@sbb-esta/lyne-elements/title.js';
import { fromEvent, type Observable } from 'rxjs';

import '@sbb-esta/lyne-elements/alert/alert-group.js';

@Directive({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbAutocompleteGridButtonElement } from '@sbb-esta/lyne-elements/autocomplete-grid/autocomplete-grid-button.js';
import '@sbb-esta/lyne-elements/autocomplete-grid/autocomplete-grid-button.js';
import { SbbAutocompleteGridOptionElement } from '@sbb-esta/lyne-elements/autocomplete-grid/autocomplete-grid-option.js';

import '@sbb-esta/lyne-elements/autocomplete-grid/autocomplete-grid-button.js';

@Directive({
selector: 'sbb-autocomplete-grid-button',
})
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { Directive } from '@angular/core';

import '@sbb-esta/lyne-elements/autocomplete-grid/autocomplete-grid-cell.js';

@Directive({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbAutocompleteGridOptgroupElement } from '@sbb-esta/lyne-elements/autocomplete-grid/autocomplete-grid-optgroup.js';

import '@sbb-esta/lyne-elements/autocomplete-grid/autocomplete-grid-optgroup.js';

@Directive({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { Directive, ElementRef, inject, Input, NgZone, Output } from '@angular/c
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbAutocompleteGridOptionElement } from '@sbb-esta/lyne-elements/autocomplete-grid/autocomplete-grid-option.js';
import { fromEvent, type Observable } from 'rxjs';

import '@sbb-esta/lyne-elements/autocomplete-grid/autocomplete-grid-option.js';

@Directive({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { Directive } from '@angular/core';

import '@sbb-esta/lyne-elements/autocomplete-grid/autocomplete-grid-row.js';

@Directive({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { Directive, ElementRef, inject, Input, NgZone, Output } from '@angular/c
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbAutocompleteGridElement } from '@sbb-esta/lyne-elements/autocomplete-grid/autocomplete-grid.js';
import { fromEvent, type Observable } from 'rxjs';

import '@sbb-esta/lyne-elements/autocomplete-grid/autocomplete-grid.js';

@Directive({
Expand Down
1 change: 1 addition & 0 deletions src/angular/autocomplete/autocomplete.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { Directive, ElementRef, inject, Input, NgZone, Output } from '@angular/c
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbAutocompleteElement } from '@sbb-esta/lyne-elements/autocomplete.js';
import { fromEvent, type Observable } from 'rxjs';

import '@sbb-esta/lyne-elements/autocomplete.js';

@Directive({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { Directive } from '@angular/core';

import '@sbb-esta/lyne-elements/breadcrumb/breadcrumb-group.js';

@Directive({
Expand Down
3 changes: 2 additions & 1 deletion src/angular/breadcrumb/breadcrumb/breadcrumb.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbBreadcrumbElement } from '@sbb-esta/lyne-elements/breadcrumb/breadcrumb.js';
import '@sbb-esta/lyne-elements/breadcrumb/breadcrumb.js';
import { LinkTargetType } from '@sbb-esta/lyne-elements/core/base-elements.js';

import '@sbb-esta/lyne-elements/breadcrumb/breadcrumb.js';

@Directive({
selector: 'sbb-breadcrumb',
})
Expand Down
3 changes: 2 additions & 1 deletion src/angular/button/accent-button-link/accent-button-link.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbAccentButtonLinkElement } from '@sbb-esta/lyne-elements/button/accent-button-link.js';
import '@sbb-esta/lyne-elements/button/accent-button-link.js';
import { SbbButtonSize } from '@sbb-esta/lyne-elements/button.js';
import { LinkTargetType } from '@sbb-esta/lyne-elements/core/base-elements.js';

import '@sbb-esta/lyne-elements/button/accent-button-link.js';

@Directive({
selector: 'sbb-accent-button-link',
})
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbAccentButtonStaticElement } from '@sbb-esta/lyne-elements/button/accent-button-static.js';
import '@sbb-esta/lyne-elements/button/accent-button-static.js';
import { SbbButtonSize } from '@sbb-esta/lyne-elements/button.js';

import '@sbb-esta/lyne-elements/button/accent-button-static.js';

@Directive({
selector: 'sbb-accent-button-static',
})
Expand Down
3 changes: 2 additions & 1 deletion src/angular/button/accent-button/accent-button.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbAccentButtonElement } from '@sbb-esta/lyne-elements/button/accent-button.js';
import '@sbb-esta/lyne-elements/button/accent-button.js';
import { SbbButtonSize } from '@sbb-esta/lyne-elements/button.js';
import { SbbButtonType } from '@sbb-esta/lyne-elements/core/base-elements.js';

import '@sbb-esta/lyne-elements/button/accent-button.js';

@Directive({
selector: 'sbb-accent-button',
})
Expand Down
3 changes: 2 additions & 1 deletion src/angular/button/button-link/button-link.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbButtonLinkElement } from '@sbb-esta/lyne-elements/button/button-link.js';
import '@sbb-esta/lyne-elements/button/button-link.js';
import { SbbButtonSize } from '@sbb-esta/lyne-elements/button.js';
import { LinkTargetType } from '@sbb-esta/lyne-elements/core/base-elements.js';

import '@sbb-esta/lyne-elements/button/button-link.js';

@Directive({
selector: 'sbb-button-link',
})
Expand Down
3 changes: 2 additions & 1 deletion src/angular/button/button-static/button-static.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbButtonStaticElement } from '@sbb-esta/lyne-elements/button/button-static.js';
import '@sbb-esta/lyne-elements/button/button-static.js';
import { SbbButtonSize } from '@sbb-esta/lyne-elements/button.js';

import '@sbb-esta/lyne-elements/button/button-static.js';

@Directive({
selector: 'sbb-button-static',
})
Expand Down
3 changes: 2 additions & 1 deletion src/angular/button/button/button.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbButtonElement } from '@sbb-esta/lyne-elements/button/button.js';
import '@sbb-esta/lyne-elements/button/button.js';
import { SbbButtonSize } from '@sbb-esta/lyne-elements/button.js';
import { SbbButtonType } from '@sbb-esta/lyne-elements/core/base-elements.js';

import '@sbb-esta/lyne-elements/button/button.js';

@Directive({
selector: 'sbb-button',
})
Expand Down
1 change: 1 addition & 0 deletions src/angular/button/mini-button-group/mini-button-group.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import type {
SbbMiniButtonGroupElement,
SbbMiniButtonGroupSize,
} from '@sbb-esta/lyne-elements/button/mini-button-group.js';

import '@sbb-esta/lyne-elements/button/mini-button-group.js';

@Directive({
Expand Down
3 changes: 2 additions & 1 deletion src/angular/button/mini-button/mini-button.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbMiniButtonElement } from '@sbb-esta/lyne-elements/button/mini-button.js';
import '@sbb-esta/lyne-elements/button/mini-button.js';
import { SbbButtonType } from '@sbb-esta/lyne-elements/core/base-elements.js';

import '@sbb-esta/lyne-elements/button/mini-button.js';

@Directive({
selector: 'sbb-mini-button',
})
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbSecondaryButtonLinkElement } from '@sbb-esta/lyne-elements/button/secondary-button-link.js';
import '@sbb-esta/lyne-elements/button/secondary-button-link.js';
import { SbbButtonSize } from '@sbb-esta/lyne-elements/button.js';
import { LinkTargetType } from '@sbb-esta/lyne-elements/core/base-elements.js';

import '@sbb-esta/lyne-elements/button/secondary-button-link.js';

@Directive({
selector: 'sbb-secondary-button-link',
})
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbSecondaryButtonStaticElement } from '@sbb-esta/lyne-elements/button/secondary-button-static.js';
import '@sbb-esta/lyne-elements/button/secondary-button-static.js';
import { SbbButtonSize } from '@sbb-esta/lyne-elements/button.js';

import '@sbb-esta/lyne-elements/button/secondary-button-static.js';

@Directive({
selector: 'sbb-secondary-button-static',
})
Expand Down
3 changes: 2 additions & 1 deletion src/angular/button/secondary-button/secondary-button.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbSecondaryButtonElement } from '@sbb-esta/lyne-elements/button/secondary-button.js';
import '@sbb-esta/lyne-elements/button/secondary-button.js';
import { SbbButtonSize } from '@sbb-esta/lyne-elements/button.js';
import { SbbButtonType } from '@sbb-esta/lyne-elements/core/base-elements.js';

import '@sbb-esta/lyne-elements/button/secondary-button.js';

@Directive({
selector: 'sbb-secondary-button',
})
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbTransparentButtonLinkElement } from '@sbb-esta/lyne-elements/button/transparent-button-link.js';
import '@sbb-esta/lyne-elements/button/transparent-button-link.js';
import { SbbButtonSize } from '@sbb-esta/lyne-elements/button.js';
import { LinkTargetType } from '@sbb-esta/lyne-elements/core/base-elements.js';

import '@sbb-esta/lyne-elements/button/transparent-button-link.js';

@Directive({
selector: 'sbb-transparent-button-link',
})
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbTransparentButtonStaticElement } from '@sbb-esta/lyne-elements/button/transparent-button-static.js';
import '@sbb-esta/lyne-elements/button/transparent-button-static.js';
import { SbbButtonSize } from '@sbb-esta/lyne-elements/button.js';

import '@sbb-esta/lyne-elements/button/transparent-button-static.js';

@Directive({
selector: 'sbb-transparent-button-static',
})
Expand Down
3 changes: 2 additions & 1 deletion src/angular/button/transparent-button/transparent-button.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbTransparentButtonElement } from '@sbb-esta/lyne-elements/button/transparent-button.js';
import '@sbb-esta/lyne-elements/button/transparent-button.js';
import { SbbButtonSize } from '@sbb-esta/lyne-elements/button.js';
import { SbbButtonType } from '@sbb-esta/lyne-elements/core/base-elements.js';

import '@sbb-esta/lyne-elements/button/transparent-button.js';

@Directive({
selector: 'sbb-transparent-button',
})
Expand Down
1 change: 1 addition & 0 deletions src/angular/calendar/calendar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { CalendarView, SbbCalendarElement } from '@sbb-esta/lyne-elements/calendar.js';
import { SbbDateLike } from '@sbb-esta/lyne-elements/core/interfaces.js';
import { fromEvent, type Observable } from 'rxjs';

import '@sbb-esta/lyne-elements/calendar.js';

@Directive({
Expand Down
1 change: 1 addition & 0 deletions src/angular/card/card-badge/card-badge.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import type { SbbCardBadgeElement } from '@sbb-esta/lyne-elements/card/card-badge.js';

import '@sbb-esta/lyne-elements/card/card-badge.js';

@Directive({
Expand Down
3 changes: 2 additions & 1 deletion src/angular/card/card-button/card-button.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbCardButtonElement } from '@sbb-esta/lyne-elements/card/card-button.js';
import '@sbb-esta/lyne-elements/card/card-button.js';
import { SbbButtonType } from '@sbb-esta/lyne-elements/core/base-elements.js';

import '@sbb-esta/lyne-elements/card/card-button.js';

@Directive({
selector: 'sbb-card-button',
})
Expand Down
3 changes: 2 additions & 1 deletion src/angular/card/card-link/card-link.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbCardLinkElement } from '@sbb-esta/lyne-elements/card/card-link.js';
import '@sbb-esta/lyne-elements/card/card-link.js';
import { LinkTargetType } from '@sbb-esta/lyne-elements/core/base-elements.js';

import '@sbb-esta/lyne-elements/card/card-link.js';

@Directive({
selector: 'sbb-card-link',
})
Expand Down
1 change: 1 addition & 0 deletions src/angular/card/card/card.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import type { SbbCardElement } from '@sbb-esta/lyne-elements/card/card.js';

import '@sbb-esta/lyne-elements/card/card.js';

@Directive({
Expand Down
3 changes: 2 additions & 1 deletion src/angular/checkbox/checkbox-group/checkbox-group.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
import { booleanAttribute } from '@sbb-esta/lyne-angular/core';
import type { SbbCheckboxGroupElement } from '@sbb-esta/lyne-elements/checkbox/checkbox-group.js';
import '@sbb-esta/lyne-elements/checkbox/checkbox-group.js';
import { SbbCheckboxPanelElement } from '@sbb-esta/lyne-elements/checkbox/checkbox-panel.js';
import { SbbCheckboxElement } from '@sbb-esta/lyne-elements/checkbox/checkbox.js';
import { SbbCheckboxSize } from '@sbb-esta/lyne-elements/checkbox.js';
import { SbbHorizontalFrom, SbbOrientation } from '@sbb-esta/lyne-elements/core/interfaces.js';

import '@sbb-esta/lyne-elements/checkbox/checkbox-group.js';

@Directive({
selector: 'sbb-checkbox-group',
})
Expand Down
Loading

0 comments on commit 44f7160

Please sign in to comment.