Browse Source

Add support for stock splits

pull/7251/head
Thomas Kaul 1 week ago
parent
commit
1045c070a1
  1. 198
      apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html

198
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html

@ -489,107 +489,115 @@
</div> </div>
</div> </div>
</mat-tab> </mat-tab>
<mat-tab> @if (user?.settings?.isExperimentalFeatures) {
<ng-template mat-tab-label> <mat-tab>
<ion-icon name="git-compare-outline" /> <ng-template mat-tab-label>
<div class="d-none d-sm-block ml-2" i18n>Splits</div> <ion-icon name="git-compare-outline" />
</ng-template> <div class="d-none d-sm-block ml-2" i18n>Splits</div>
<div class="container mt-3 p-0"> </ng-template>
<div class="no-gutters row w-100"> <div class="container mt-3 p-0">
<div class="col-12"> <div class="no-gutters row w-100">
<p class="text-muted" i18n> <div class="col-12">
Activities dated before a split are adjusted at calculation <p class="text-muted" i18n>
time. After adding a split, gather the historical market data of Activities dated before a split are adjusted at calculation
this asset profile again. time. After adding a split, gather the historical market data
</p> of this asset profile again.
@if (splits.length > 0) { </p>
<table class="gf-table mb-3 w-100"> @if (splits.length > 0) {
<thead> <table class="gf-table mb-3 w-100">
<tr class="mat-mdc-header-row"> <thead>
<th class="mat-mdc-header-cell px-1 py-2" i18n>Date</th> <tr class="mat-mdc-header-row">
<th class="mat-mdc-header-cell px-1 py-2 text-right" i18n> <th class="mat-mdc-header-cell px-1 py-2" i18n>Date</th>
Split Factor <th
</th> class="mat-mdc-header-cell px-1 py-2 text-right"
<th class="mat-mdc-header-cell px-1 py-2"></th> i18n
</tr> >
</thead> Split Factor
<tbody> </th>
@for (split of splits; track split.id) { <th class="mat-mdc-header-cell px-1 py-2"></th>
<tr class="mat-mdc-row">
<td class="mat-mdc-cell px-1 py-2">
{{ split.date | date: defaultDateFormat }}
</td>
<td class="mat-mdc-cell px-1 py-2 text-right">
{{ split.factor }}
</td>
<td class="mat-mdc-cell px-1 py-2 text-right">
<button
mat-icon-button
type="button"
[disabled]="!canEditAssetProfile"
(click)="onDeleteSplit(split.id)"
>
<ion-icon name="trash-outline" />
</button>
</td>
</tr> </tr>
} </thead>
</tbody> <tbody>
</table> @for (split of splits; track split.id) {
} <tr class="mat-mdc-row">
<form <td class="mat-mdc-cell px-1 py-2">
class="align-items-center d-flex" {{ split.date | date: defaultDateFormat }}
[formGroup]="assetProfileSplitForm" </td>
(ngSubmit)="onAddSplit()" <td class="mat-mdc-cell px-1 py-2 text-right">
> {{ split.factor }}
<mat-form-field appearance="outline" class="mr-3 without-hint"> </td>
<mat-label i18n>Date</mat-label> <td class="mat-mdc-cell px-1 py-2 text-right">
<input <button
formControlName="date" mat-icon-button
matInput type="button"
[matDatepicker]="dateOfSplit" [disabled]="!canEditAssetProfile"
/> (click)="onDeleteSplit(split.id)"
<mat-datepicker-toggle >
class="mr-2" <ion-icon name="trash-outline" />
matSuffix </button>
[for]="dateOfSplit" </td>
</tr>
}
</tbody>
</table>
}
<form
class="align-items-center d-flex"
[formGroup]="assetProfileSplitForm"
(ngSubmit)="onAddSplit()"
>
<mat-form-field
appearance="outline"
class="mr-3 without-hint"
> >
<ion-icon <mat-label i18n>Date</mat-label>
class="text-muted" <input
matDatepickerToggleIcon formControlName="date"
name="calendar-clear-outline" matInput
[matDatepicker]="dateOfSplit"
/> />
</mat-datepicker-toggle> <mat-datepicker-toggle
<mat-datepicker #dateOfSplit /> class="mr-2"
</mat-form-field> matSuffix
<mat-form-field appearance="outline" class="mr-3"> [for]="dateOfSplit"
<mat-label i18n>Split Factor</mat-label> >
<input <ion-icon
formControlName="factor" class="text-muted"
matInput matDatepickerToggleIcon
step="any" name="calendar-clear-outline"
type="number" />
/> </mat-datepicker-toggle>
<mat-hint i18n <mat-datepicker #dateOfSplit />
>Shares after per 1 share before, e.g. 4 for a 4:1 split or </mat-form-field>
0.1 for a 1:10 reverse split</mat-hint <mat-form-field appearance="outline" class="mr-3">
<mat-label i18n>Split Factor</mat-label>
<input
formControlName="factor"
matInput
step="any"
type="number"
/>
<mat-hint i18n
>Shares after per 1 share before, e.g. 4 for a 4:1 split
or 0.1 for a 1:10 reverse split</mat-hint
>
</mat-form-field>
<button
color="primary"
mat-flat-button
type="submit"
[disabled]="
!assetProfileSplitForm.valid || !canEditAssetProfile
"
> >
</mat-form-field> <ng-container i18n>Add</ng-container>
<button </button>
color="primary" </form>
mat-flat-button </div>
type="submit"
[disabled]="
!assetProfileSplitForm.valid || !canEditAssetProfile
"
>
<ng-container i18n>Add</ng-container>
</button>
</form>
</div> </div>
</div> </div>
</div> </mat-tab>
</mat-tab> }
@if (assetProfile?.dataSource === 'MANUAL') { @if (assetProfile?.dataSource === 'MANUAL') {
<mat-tab> <mat-tab>
<ng-template mat-tab-label> <ng-template mat-tab-label>

Loading…
Cancel
Save