Disable any / all toggle when excluded items

This commit is contained in:
Michael Shamoon 2021-01-21 14:42:05 -08:00
parent a73ff4ffa6
commit a6bd118f5e
2 changed files with 7 additions and 2 deletions

View File

@ -15,10 +15,10 @@
<div *ngIf="!editing && multiple" class="list-group-item d-flex">
<div class="btn-group btn-group-xs btn-group-toggle flex-fill" ngbRadioGroup [(ngModel)]="selectionModel.logicalOperator" (change)="selectionModel.toggleOperator()">
<label ngbButtonLabel class="btn btn-outline-primary">
<input ngbButton type="radio" name="logicalOperator" value="and" [disabled]="selectionModel.selectionSize() < 2"> All
<input ngbButton type="radio" name="logicalOperator" value="and" [disabled]="!operatorToggleEnabled"> All
</label>
<label ngbButtonLabel class="btn btn-outline-primary">
<input ngbButton type="radio" name="logicalOperator" value="or" [disabled]="selectionModel.selectionSize() < 2"> Any
<input ngbButton type="radio" name="logicalOperator" value="or" [disabled]="!operatorToggleEnabled"> Any
</label>
</div>
</div>

View File

@ -95,6 +95,7 @@ export class FilterableDropdownSelectionModel {
let state = this.temporarySelectionStates.get(id)
if (state == null || state != ToggleableItemState.Excluded) {
this.temporarySelectionStates.set(id, ToggleableItemState.Excluded)
this.temporaryLogicalOperator = this._logicalOperator = 'and'
} else if (state == ToggleableItemState.Excluded) {
this.temporarySelectionStates.delete(id)
}
@ -270,6 +271,10 @@ export class FilterableDropdownComponent {
@Output()
open = new EventEmitter()
get operatorToggleEnabled(): boolean {
return this.selectionModel.selectionSize() > 1 && this.selectionModel.getExcludedItems().length == 0
}
constructor(private filterPipe: FilterPipe) {
this.selectionModel = new FilterableDropdownSelectionModel()
}