Я создал компонент ввода и компонент DatePicker в угловых. Мой компонент ввода создает в базе параметра типа правильный тег ввода для текста, число ecc. для выбора даты я создаю другой компонент, в котором размещается ngb-datepicker. Компонент ввода:
<div class="input-group input-group-sm">
<ng-container [ngSwitch]="type">
<ng-container *ngSwitchCase="'date'">
<app-date-picker [id]="object.id" [name]="object.id" [disabled]="disabled" (focus)="focus()" (focusout)="focusout()" [(ngModel)]="value"></app-date-picker>
</ng-container>
<div class="input-group-append" #ref>
<span *ngIf="unit" class="input-group-text" [ngClass]="{
'disabled': disabled,
'focused': focused}">{{unit}}</span>
<span class="input-group-text" [ngClass]="{'focused': focused}" *ngIf="!disabled && !readonly && !isValidationOff">
<app-quality-status #qualityStatus [objects]="[object]" [hide]="hideQualityStatus"></app-quality-status>
</span>
</div>
<div class="input-group-append" #ref>
<ng-content></ng-content>
</div>
Компонент Datepicker:
<div class="input-group input-group-sm">
<input class="form-control" name="dp" [(ngModel)]="selectedDate" ngbDatepicker #d="ngbDatepicker" (change)="onDateChange($event.target.value)" (dateSelect)="onDateSelect($event)" [disabled]="isDisabled ? 'disabled' : null">
<div class="input-group-append">
<button class="btn btn-input calendar fa fa-calendar" (click)="d.toggle()" type="button" [disabled]="isDisabled ? 'disabled' : null"></button>
</div>
</div>
При использовании этого вложенного div-группы ввода в результате получается элемент управления, который не используетвсе пространство, но только половина. Если я удаляю группу ввода в компоненте datepicker, проблема в том, что моя кнопка не совпадает с текстовым полем.
Как решить эту проблему?
ОБНОВЛЕНИЕ 23.10.2019
Вот мой пример стекаблика https://stackblitz.com/edit/angular-pbabtg