67 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!--
 | 
						|
 | 
						|
    Copyright © 2016-2024 The Thingsboard Authors
 | 
						|
 | 
						|
    Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
    you may not use this file except in compliance with the License.
 | 
						|
    You may obtain a copy of the License at
 | 
						|
 | 
						|
        http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
 | 
						|
    Unless required by applicable law or agreed to in writing, software
 | 
						|
    distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
    See the License for the specific language governing permissions and
 | 
						|
    limitations under the License.
 | 
						|
 | 
						|
-->
 | 
						|
<mat-form-field [formGroup]="entityListFormGroup" class="mat-block" [class.tb-chip-list]="!labelText" [subscriptSizing]="subscriptSizing">
 | 
						|
  <mat-label *ngIf="labelText">{{ labelText }}</mat-label>
 | 
						|
  <mat-chip-grid #chipList formControlName="entities">
 | 
						|
    <mat-chip-row
 | 
						|
      *ngFor="let entity of entities"
 | 
						|
      [removable]="!disabled"
 | 
						|
      (removed)="remove(entity)">
 | 
						|
      {{entity.name}}
 | 
						|
      <mat-icon matChipRemove *ngIf="!disabled">close</mat-icon>
 | 
						|
    </mat-chip-row>
 | 
						|
    <input matInput type="text" placeholder="{{ !disabled ? placeholderText : '' }}"
 | 
						|
           #entityInput
 | 
						|
           (focusin)="onFocus()"
 | 
						|
           formControlName="entity"
 | 
						|
           matAutocompleteOrigin
 | 
						|
           #origin="matAutocompleteOrigin"
 | 
						|
           [matAutocompleteConnectedTo]="origin"
 | 
						|
           [matAutocomplete]="entityAutocomplete"
 | 
						|
           [matChipInputFor]="chipList">
 | 
						|
  </mat-chip-grid>
 | 
						|
  <mat-autocomplete #entityAutocomplete="matAutocomplete"
 | 
						|
                    class="tb-autocomplete"
 | 
						|
                    [displayWith]="displayEntityFn">
 | 
						|
    <mat-option *ngFor="let entity of filteredEntities | async" [value]="entity">
 | 
						|
      <span [innerHTML]="entity.name | highlight:searchText"></span>
 | 
						|
    </mat-option>
 | 
						|
    <mat-option *ngIf="!(filteredEntities | async)?.length" [value]="null">
 | 
						|
      <div (click)="$event.stopPropagation()">
 | 
						|
        <div *ngIf="!textIsNotEmpty(searchText); else searchNotEmpty">
 | 
						|
          <span>{{ 'entity.no-entities-text' | translate }}</span>
 | 
						|
        </div>
 | 
						|
        <ng-template #searchNotEmpty>
 | 
						|
          <span>
 | 
						|
          {{ translate.get('entity.no-entities-matching', {entity: searchText}) | async }}
 | 
						|
          </span>
 | 
						|
        </ng-template>
 | 
						|
      </div>
 | 
						|
    </mat-option>
 | 
						|
  </mat-autocomplete>
 | 
						|
  <mat-hint *ngIf="hint">
 | 
						|
    {{ hint }}
 | 
						|
  </mat-hint>
 | 
						|
  <mat-error *ngIf="entityListFormGroup.get('entities').hasError('required')">
 | 
						|
    {{ requiredText }}
 | 
						|
  </mat-error>
 | 
						|
  <div matSuffix>
 | 
						|
    <ng-content select="[matSuffix]"></ng-content>
 | 
						|
  </div>
 | 
						|
</mat-form-field>
 |