mirror of https://github.com/ghostfolio/ghostfolio
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
2.5 KiB
115 lines
2.5 KiB
import { LookupItem } from '@ghostfolio/common/interfaces';
|
|
|
|
import { CommonModule } from '@angular/common';
|
|
import { HttpClient } from '@angular/common/http';
|
|
import { importProvidersFrom } from '@angular/core';
|
|
import {
|
|
FormControl,
|
|
FormsModule,
|
|
NgControl,
|
|
ReactiveFormsModule
|
|
} from '@angular/forms';
|
|
import { provideNoopAnimations } from '@angular/platform-browser/animations';
|
|
import { applicationConfig, Meta, StoryObj } from '@storybook/angular';
|
|
|
|
import { HttpClientMock } from '../mocks/httpClient.mock';
|
|
import { GfSymbolAutocompleteComponent } from './symbol-autocomplete.component';
|
|
|
|
const DEFAULT_OPTIONS: LookupItem[] = [
|
|
{
|
|
assetClass: 'EQUITY',
|
|
assetSubClass: 'ETF',
|
|
currency: 'USD',
|
|
dataProviderInfo: {
|
|
dataSource: 'YAHOO',
|
|
isPremium: false
|
|
},
|
|
dataSource: null,
|
|
name: 'Default 1',
|
|
symbol: 'D1'
|
|
},
|
|
{
|
|
assetClass: 'EQUITY',
|
|
assetSubClass: 'STOCK',
|
|
currency: 'USD',
|
|
dataProviderInfo: {
|
|
dataSource: 'YAHOO',
|
|
isPremium: false
|
|
},
|
|
dataSource: null,
|
|
name: 'Default 2',
|
|
symbol: 'D2'
|
|
}
|
|
];
|
|
|
|
const FILTERED_OPTIONS: LookupItem[] = [
|
|
{
|
|
assetClass: 'EQUITY',
|
|
assetSubClass: 'ETF',
|
|
currency: 'USD',
|
|
dataProviderInfo: {
|
|
dataSource: 'YAHOO',
|
|
isPremium: false
|
|
},
|
|
dataSource: null,
|
|
name: 'Autocomplete 1',
|
|
symbol: 'A1'
|
|
},
|
|
{
|
|
assetClass: 'EQUITY',
|
|
assetSubClass: 'STOCK',
|
|
currency: 'USD',
|
|
dataProviderInfo: {
|
|
dataSource: 'YAHOO',
|
|
isPremium: false
|
|
},
|
|
dataSource: null,
|
|
name: 'Autocomplete 2',
|
|
symbol: 'A2'
|
|
}
|
|
];
|
|
|
|
export default {
|
|
title: 'Symbol Autocomplete',
|
|
component: GfSymbolAutocompleteComponent,
|
|
decorators: [
|
|
applicationConfig({
|
|
providers: [
|
|
provideNoopAnimations(),
|
|
importProvidersFrom(CommonModule, FormsModule, ReactiveFormsModule),
|
|
{
|
|
provide: NgControl,
|
|
useValue: {
|
|
control: new FormControl(),
|
|
valueAccessor: null
|
|
}
|
|
},
|
|
{
|
|
provide: HttpClient,
|
|
useValue: new HttpClientMock(
|
|
new Map([
|
|
[
|
|
'/api/v1/symbol/lookup',
|
|
{
|
|
items: FILTERED_OPTIONS
|
|
}
|
|
]
|
|
])
|
|
)
|
|
}
|
|
]
|
|
})
|
|
]
|
|
} as Meta<GfSymbolAutocompleteComponent>;
|
|
|
|
type Story = StoryObj<GfSymbolAutocompleteComponent>;
|
|
|
|
export const Default: Story = {
|
|
args: {}
|
|
};
|
|
|
|
export const WithDefaultItems: Story = {
|
|
args: {
|
|
defaultLookupItems: DEFAULT_OPTIONS
|
|
}
|
|
};
|
|
|