no message
This commit is contained in:
parent
6fe74c2218
commit
eb146b21c7
|
@ -1,76 +1,86 @@
|
||||||
<div class="row multiple-auto-complete" ng-form>
|
<div class="row multiple-auto-complete" ng-form>
|
||||||
<mat-chip-grid #chipList ngDefaultControl class="chip-list">
|
<div class="col">
|
||||||
<ng-container *ngIf="value as values;">
|
<div class="row">
|
||||||
<mat-chip-row *ngFor="let value of values" [disabled]="disabled" [selectable]="selectable" [removable]="removable" [ngClass]="computeClass(value)" class="chip-row">
|
<div class="col-12">
|
||||||
<ng-container *ngIf="getSelectedItem(value) as selectedItem;">
|
<mat-chip-grid #chipList ngDefaultControl class="chip-list">
|
||||||
<ng-template #cellTemplate *ngIf="_selectedValueTemplate(selectedItem)" [ngTemplateOutlet]="_selectedValueTemplate(selectedItem)" [ngTemplateOutletContext]="{
|
<ng-container *ngIf="value as values;">
|
||||||
|
<mat-chip-row *ngFor="let value of values" [disabled]="disabled" [selectable]="selectable" [removable]="removable" [ngClass]="computeClass(value)" class="chip-row">
|
||||||
|
<ng-container *ngIf="getSelectedItem(value) as selectedItem;">
|
||||||
|
<ng-template #cellTemplate *ngIf="_selectedValueTemplate(selectedItem)" [ngTemplateOutlet]="_selectedValueTemplate(selectedItem)" [ngTemplateOutletContext]="{
|
||||||
item: selectedItem
|
item: selectedItem
|
||||||
}" />
|
}" />
|
||||||
<span *ngIf="!_selectedValueTemplate(selectedItem)" class="chip-text" [title]="_displayFn(selectedItem)">{{_displayFn(selectedItem)}}</span>
|
<span *ngIf="!_selectedValueTemplate(selectedItem)" class="chip-text" [title]="_displayFn(selectedItem)">{{_displayFn(selectedItem)}}</span>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<button matChipRemove *ngIf="!disabled && removable" (click)="_removeSelectedItem(getSelectedItem(value), $event)">
|
<button matChipRemove *ngIf="!disabled && removable" (click)="_removeSelectedItem(getSelectedItem(value), $event)">
|
||||||
<mat-icon>cancel</mat-icon>
|
<mat-icon>cancel</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
</mat-chip-row>
|
</mat-chip-row>
|
||||||
</ng-container>
|
|
||||||
</mat-chip-grid>
|
|
||||||
<input matInput #autocompleteInput class="col" [name]="id" autocomplete="nope" #autocompleteTrigger="matAutocompleteTrigger" autocomplete="off" [placeholder]="placeholder" [matAutocomplete]="autocomplete" [value]="inputValue" (keyup)="onKeyUp($event)" [disabled]="disabled" (focus)="_onInputFocus()" (blur)="onBlur($event)" [matChipInputFor]="chipList" [matChipInputSeparatorKeyCodes]="separatorKeysCodes" [matChipInputAddOnBlur]="autoSelectFirstOptionOnBlur" (matChipInputTokenEnd)="_addItem($event)">
|
|
||||||
<mat-icon *ngIf="!disabled" class="align-arrow-right" matSuffix>arrow_drop_down</mat-icon>
|
|
||||||
<mat-autocomplete #autocomplete="matAutocomplete" [displayWith]="_displayFn.bind(this)" (optionSelected)="_optionSelected($event)">
|
|
||||||
<span *ngIf="_groupedItems">
|
|
||||||
<mat-optgroup *ngFor="let group of _groupedItems | async" [label]="group.title">
|
|
||||||
<mat-option *ngFor="let item of group.items" [value]="item" class="option" [class.two-line-mat-option]="_subtitleFn(item) && !_optionTemplate(item) && !_optionComponent(item)">
|
|
||||||
<!-- <img style="vertical-align:middle;" aria-hidden src="{{state.flag}}" height="25" /> -->
|
|
||||||
<ng-container *ngIf="_optionComponent(item)">
|
|
||||||
<ng-container *ngComponentOutlet="_optionComponent(item); inputs: { item };" />
|
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-template #cellTemplate *ngIf="_optionTemplate(item) && !_optionComponent(item)" [ngTemplateOutlet]="_optionTemplate(item)" [ngTemplateOutletContext]="{
|
</mat-chip-grid>
|
||||||
|
</div>
|
||||||
|
<div class="col-12">
|
||||||
|
<input matInput #autocompleteInput [name]="id" autocomplete="nope" #autocompleteTrigger="matAutocompleteTrigger" autocomplete="off" [placeholder]="placeholder" [matAutocomplete]="autocomplete" [value]="inputValue" (keyup)="onKeyUp($event)" [disabled]="disabled" (focus)="_onInputFocus()" (blur)="onBlur($event)" [matChipInputFor]="chipList" [matChipInputSeparatorKeyCodes]="separatorKeysCodes" [matChipInputAddOnBlur]="autoSelectFirstOptionOnBlur" (matChipInputTokenEnd)="_addItem($event)">
|
||||||
|
</div>
|
||||||
|
<mat-autocomplete #autocomplete="matAutocomplete" [displayWith]="_displayFn.bind(this)" (optionSelected)="_optionSelected($event)">
|
||||||
|
<span *ngIf="_groupedItems">
|
||||||
|
<mat-optgroup *ngFor="let group of _groupedItems | async" [label]="group.title">
|
||||||
|
<mat-option *ngFor="let item of group.items" [value]="item" class="option" [class.two-line-mat-option]="_subtitleFn(item) && !_optionTemplate(item) && !_optionComponent(item)">
|
||||||
|
<!-- <img style="vertical-align:middle;" aria-hidden src="{{state.flag}}" height="25" /> -->
|
||||||
|
<ng-container *ngIf="_optionComponent(item)">
|
||||||
|
<ng-container *ngComponentOutlet="_optionComponent(item); inputs: { item };" />
|
||||||
|
</ng-container>
|
||||||
|
<ng-template #cellTemplate *ngIf="_optionTemplate(item) && !_optionComponent(item)" [ngTemplateOutlet]="_optionTemplate(item)" [ngTemplateOutletContext]="{
|
||||||
item: item
|
item: item
|
||||||
}"></ng-template>
|
}"></ng-template>
|
||||||
<div *ngIf="!_optionTemplate(item)" class="d-flex">
|
<div *ngIf="!_optionTemplate(item)" class="d-flex">
|
||||||
<div class="title-subtitle-fn">
|
<div class="title-subtitle-fn">
|
||||||
<div class="title-fn">
|
<div class="title-fn">
|
||||||
<div class="title-fn-inner">
|
<div class="title-fn-inner">
|
||||||
<span *ngIf="!_optionTemplate(item)" class="title-text">{{_titleFn(item)}}</span>
|
<span *ngIf="!_optionTemplate(item)" class="title-text">{{_titleFn(item)}}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div *ngIf="_subtitleFn(item)" class="subtitle-fn">
|
||||||
|
<div class="subtitle-fn-inner">
|
||||||
|
<small [innerHTML]="_subtitleFn(item)" class="subtitle-text"></small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<span *ngIf="popupItemActionIcon" class="option-icon" (click)="_optionActionClick(item, $event)"><mat-icon>{{popupItemActionIcon}}</mat-icon></span>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="_subtitleFn(item)" class="subtitle-fn">
|
</mat-option>
|
||||||
<div class="subtitle-fn-inner">
|
</mat-optgroup>
|
||||||
<small [innerHTML]="_subtitleFn(item)" class="subtitle-text"></small>
|
</span>
|
||||||
</div>
|
<span *ngIf="!_groupedItems">
|
||||||
</div>
|
<div *ngIf="_items | async as autocompleteItems; else loading">
|
||||||
</div>
|
<ng-container *ngIf="autocompleteItems.length; else noItems">
|
||||||
<span *ngIf="popupItemActionIcon" class="option-icon" (click)="_optionActionClick(item, $event)"><mat-icon>{{popupItemActionIcon}}</mat-icon></span>
|
<mat-option *ngFor="let item of autocompleteItems" class="option" [value]="item" [class.two-line-mat-option]="_subtitleFn(item) && !_optionTemplate(item) && !_optionComponent(item)">
|
||||||
</div>
|
<!-- <img style="vertical-align:middle;" aria-hidden src="{{state.flag}}" height="25" /> -->
|
||||||
</mat-option>
|
<ng-container *ngIf="_optionComponent(item)">
|
||||||
</mat-optgroup>
|
<ng-container *ngComponentOutlet="_optionComponent(item); inputs: { item };" />
|
||||||
</span>
|
</ng-container>
|
||||||
<span *ngIf="!_groupedItems">
|
<ng-template #cellTemplate *ngIf="_optionTemplate(item) && !_optionComponent(item)" [ngTemplateOutlet]="_optionTemplate(item)" [ngTemplateOutletContext]="{
|
||||||
<div *ngIf="_items | async as autocompleteItems; else loading">
|
|
||||||
<ng-container *ngIf="autocompleteItems.length; else noItems">
|
|
||||||
<mat-option *ngFor="let item of autocompleteItems" class="option" [value]="item" [class.two-line-mat-option]="_subtitleFn(item) && !_optionTemplate(item) && !_optionComponent(item)">
|
|
||||||
<!-- <img style="vertical-align:middle;" aria-hidden src="{{state.flag}}" height="25" /> -->
|
|
||||||
<ng-container *ngIf="_optionComponent(item)">
|
|
||||||
<ng-container *ngComponentOutlet="_optionComponent(item); inputs: { item };" />
|
|
||||||
</ng-container>
|
|
||||||
<ng-template #cellTemplate *ngIf="_optionTemplate(item) && !_optionComponent(item)" [ngTemplateOutlet]="_optionTemplate(item)" [ngTemplateOutletContext]="{
|
|
||||||
item: item
|
item: item
|
||||||
}"></ng-template>
|
}"></ng-template>
|
||||||
<div *ngIf="!_optionTemplate(item) && !_optionComponent(item)">
|
<div *ngIf="!_optionTemplate(item) && !_optionComponent(item)">
|
||||||
<span class="title-text">{{_titleFn(item)}}</span>
|
<span class="title-text">{{_titleFn(item)}}</span>
|
||||||
<br *ngIf="_subtitleFn(item)">
|
<br *ngIf="_subtitleFn(item)">
|
||||||
<small *ngIf="_subtitleFn(item)" class="subtitle-text">{{_subtitleFn(item)}}</small>
|
<small *ngIf="_subtitleFn(item)" class="subtitle-text">{{_subtitleFn(item)}}</small>
|
||||||
<span *ngIf="popupItemActionIcon" class="option-icon" (click)="_optionActionClick(item, $event)"><mat-icon>{{popupItemActionIcon}}</mat-icon></span>
|
<span *ngIf="popupItemActionIcon" class="option-icon" (click)="_optionActionClick(item, $event)"><mat-icon>{{popupItemActionIcon}}</mat-icon></span>
|
||||||
</div>
|
</div>
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-template #noItems>
|
<ng-template #noItems>
|
||||||
<mat-option disabled="true">No results found!</mat-option>
|
<mat-option disabled="true">No results found!</mat-option>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</div>
|
</div>
|
||||||
<ng-template #loading>
|
<ng-template #loading>
|
||||||
<mat-option disabled="true">loading...</mat-option>
|
<mat-option disabled="true">loading...</mat-option>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</span>
|
</span>
|
||||||
</mat-autocomplete>
|
</mat-autocomplete>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-auto d-flex">
|
||||||
|
<mat-icon *ngIf="!disabled" class="align-arrow-right" matSuffix>arrow_drop_down</mat-icon>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -33,10 +33,10 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.chip-list {
|
// .chip-list {
|
||||||
max-width: calc(100% - 30px);
|
// max-width: calc(100% - 30px);
|
||||||
padding-left: 0.8em;
|
// padding-left: 0.8em;
|
||||||
}
|
// }
|
||||||
|
|
||||||
.title-subtitle-fn {
|
.title-subtitle-fn {
|
||||||
height: auto;
|
height: auto;
|
||||||
|
|
Loading…
Reference in New Issue