Skip to content
Snippets Groups Projects
Commit 30ec5d9c authored by OZGCloud's avatar OZGCloud
Browse files

OZG-6423 OZG-6975 Fix circular deps

* Improve button-toggle-group
parent a7e1b467
No related branches found
No related tags found
No related merge requests found
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { Component, ContentChildren, QueryList } from '@angular/core'; import { AfterContentInit, Component, ContentChildren, QueryList } from '@angular/core';
import { FormControl } from '@angular/forms'; import { FormControl } from '@angular/forms';
import { ButtonToggleComponent } from '@ods/system'; import { ButtonToggleComponent } from '@ods/system';
import { FormControlEditorAbstractComponent } from '../formcontrol-editor.abstract.component'; import { FormControlEditorAbstractComponent } from '../formcontrol-editor.abstract.component';
...@@ -15,7 +15,7 @@ import { FormControlEditorAbstractComponent } from '../formcontrol-editor.abstra ...@@ -15,7 +15,7 @@ import { FormControlEditorAbstractComponent } from '../formcontrol-editor.abstra
<ng-content></ng-content> <ng-content></ng-content>
</div>`, </div>`,
}) })
export class ButtonToggleGroupComponent extends FormControlEditorAbstractComponent { export class ButtonToggleGroupComponent extends FormControlEditorAbstractComponent implements AfterContentInit {
@ContentChildren(ButtonToggleComponent) buttonToggles!: QueryList<ButtonToggleComponent>; @ContentChildren(ButtonToggleComponent) buttonToggles!: QueryList<ButtonToggleComponent>;
ngAfterContentInit(): void { ngAfterContentInit(): void {
...@@ -29,13 +29,13 @@ export class ButtonToggleGroupComponent extends FormControlEditorAbstractCompone ...@@ -29,13 +29,13 @@ export class ButtonToggleGroupComponent extends FormControlEditorAbstractCompone
}; };
} }
isValueSelected(): (value: string) => boolean {
const formControl: FormControl = this.fieldControl;
return (value: string) => formControl.value === value;
}
passPropsToChild(toggleButton: ButtonToggleComponent): void { passPropsToChild(toggleButton: ButtonToggleComponent): void {
toggleButton.onClick = this.setFormControlValue(toggleButton.value); toggleButton.onClick = this.setFormControlValue(toggleButton.value);
toggleButton.isSelected = this.isValueSelected(); toggleButton.isSelected = this.isValueSelected();
} }
isValueSelected(): (value: string) => boolean {
const formControl: FormControl = this.fieldControl;
return (value: string) => formControl.value === value;
}
} }
import { argsToTemplate, moduleMetadata, type Meta, type StoryObj } from '@storybook/angular'; import { argsToTemplate, moduleMetadata, type Meta, type StoryObj } from '@storybook/angular';
import { DownloadButtonComponent } from '../../../../design-component/src/lib/download-button/download-button.component';
import { AttachmentComponent } from '../attachment/attachment.component'; import { AttachmentComponent } from '../attachment/attachment.component';
import { SaveIconComponent } from '../icons/save-icon/save-icon.component';
import { AttachmentHeaderComponent } from './attachment-header.component'; import { AttachmentHeaderComponent } from './attachment-header.component';
const meta: Meta<AttachmentHeaderComponent> = { const meta: Meta<AttachmentHeaderComponent> = {
...@@ -17,7 +16,7 @@ const meta: Meta<AttachmentHeaderComponent> = { ...@@ -17,7 +16,7 @@ const meta: Meta<AttachmentHeaderComponent> = {
}, },
decorators: [ decorators: [
moduleMetadata({ moduleMetadata({
imports: [AttachmentHeaderComponent, AttachmentComponent, DownloadButtonComponent], imports: [AttachmentHeaderComponent, AttachmentComponent, SaveIconComponent],
}), }),
], ],
excludeStories: /.*Data$/, excludeStories: /.*Data$/,
...@@ -39,7 +38,9 @@ export const Default: Story = { ...@@ -39,7 +38,9 @@ export const Default: Story = {
render: (args) => ({ render: (args) => ({
props: args, props: args,
template: `<ods-attachment-header ${argsToTemplate(args)}> template: `<ods-attachment-header ${argsToTemplate(args)}>
<ods-download-button action-buttons /> <button action-buttons>
<ods-save-icon size="small" class="fill-text" />
</button>
</ods-attachment-header>`, </ods-attachment-header>`,
}), }),
}; };
import { moduleMetadata, type Meta, type StoryObj } from '@storybook/angular'; import { moduleMetadata, type Meta, type StoryObj } from '@storybook/angular';
import { DownloadButtonComponent } from '../../../../design-component/src/lib/download-button/download-button.component';
import { AttachmentHeaderComponent } from '../attachment-header/attachment-header.component'; import { AttachmentHeaderComponent } from '../attachment-header/attachment-header.component';
import { AttachmentComponent } from '../attachment/attachment.component'; import { AttachmentComponent } from '../attachment/attachment.component';
import { SaveIconComponent } from '../icons/save-icon/save-icon.component';
import { AttachmentWrapperComponent } from './attachment-wrapper.component'; import { AttachmentWrapperComponent } from './attachment-wrapper.component';
const meta: Meta<AttachmentWrapperComponent> = { const meta: Meta<AttachmentWrapperComponent> = {
...@@ -18,12 +17,7 @@ const meta: Meta<AttachmentWrapperComponent> = { ...@@ -18,12 +17,7 @@ const meta: Meta<AttachmentWrapperComponent> = {
}, },
decorators: [ decorators: [
moduleMetadata({ moduleMetadata({
imports: [ imports: [AttachmentWrapperComponent, AttachmentComponent, SaveIconComponent, AttachmentHeaderComponent],
AttachmentWrapperComponent,
AttachmentComponent,
DownloadButtonComponent,
AttachmentHeaderComponent,
],
}), }),
], ],
excludeStories: /.*Data$/, excludeStories: /.*Data$/,
...@@ -37,7 +31,9 @@ export const Default: Story = { ...@@ -37,7 +31,9 @@ export const Default: Story = {
render: () => ({ render: () => ({
template: `<ods-attachment-wrapper> template: `<ods-attachment-wrapper>
<ods-attachment-header title="Anhänge"> <ods-attachment-header title="Anhänge">
<ods-download-button action-buttons /> <button action-buttons>
<ods-save-icon size="small" class="fill-text" />
</button>
</ods-attachment-header> </ods-attachment-header>
<ods-attachment caption="Attachment" description="200 kB" fileType="pdf"></ods-attachment> <ods-attachment caption="Attachment" description="200 kB" fileType="pdf"></ods-attachment>
<ods-attachment caption="Second attachment" description="432 kB" fileType="doc"></ods-attachment> <ods-attachment caption="Second attachment" description="432 kB" fileType="doc"></ods-attachment>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment