File

packages/@frontier-autocomplete/projects/ftr-autocomplete/src/lib/ftr-autocomplete.component.ts

Description

FtrAutocompleteComponent https://sangxdocs.z26.web.core.windows.net/@frontier-autocomplete/index.html

Implements

OnInit OnDestroy ControlValueAccessor Validator AfterViewInit

Metadata

providers { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => FtrAutocompleteComponent), multi: true } { provide: NG_VALIDATORS, useExisting: forwardRef(() => FtrAutocompleteComponent), multi: true }
selector ftr-autocomplete
styleUrls ./ftr-autocomplete.component.scss
templateUrl ./ftr-autocomplete.component.html

Index

Properties
Methods
Inputs
Outputs
Accessors

Constructor

constructor(platform: Platform)
Parameters :
Name Type Optional
platform Platform No

Inputs

autocompleteDisabled
Default value : false

<ftr-autocomplete [autocompleteDisabled]="true"></ftr-autocomplete>

autoFocus
Default value : false

<ftr-autocomplete [autoFocus]="true"></ftr-autocomplete>

compatibleMode
Default value : false

<ftr-autocomplete [compatibleMode]="true"></ftr-autocomplete>

Description: whether to use the old icons and styles

customMessages
Type : []

<ftr-autocomplete [customMessages]="customMessages"></ftr-autocomplete>

Type: IFtrCustomMessage[]. Description: messages for server-side errors. Could contain 3 types of messages: info/warn/error

customMessagesDisplayMode
Type : "inline" | "tooltip"
Default value : 'inline'

<ftr-autocomplete customMessagesDisplayMode="tooltip"></ftr-autocomplete>

Type: 'inline' | 'tooltip'. Description: Whether to show messages on tooltip instead of being underneath the control. Default: 'inline'

disabled
Type : boolean
editLabelMenu
Type : MatMenu | undefined

<ftr-autocomplete [editLabelMenu]="matMenu"></ftr-autocomplete>

Type: MatMenu. Description: MatMenu interface for editing label.

errorMessages
Type : string[]
Default value : []

<ftr-autocomplete [errorMessages]="errorMessages"></ftr-autocomplete>

focusOutOnSelect
Default value : false

<ftr-autocomplete [focusOutOnSelect]="true"></ftr-autocomplete>

ftrTabIndex
Type : number | undefined

<ftr-autocomplete [ftrTabIndex]="2"></ftr-autocomplete>

label
Default value : ''

<ftr-autocomplete label="Autocomplete Label"></ftr-autocomplete>

loading
Default value : false

<ftr-autocomplete [loading]="loading"></ftr-autocomplete>

Description: displays value and is iteractable but not functional.

maxLength
Type : number | undefined

<ftr-autocomplete [maxLength]="10"></ftr-autocomplete>

options
panelWidth
Default value : ''

<ftr-autocomplete panelWidth="auto"></ftr-autocomplete>

Accepts: 'auto' | number for px: for example, '50px'

Description: Can override default panel width behaviour

placeholder
Default value : ''

<ftr-autocomplete placeholder="Pick a value"></ftr-autocomplete>

readOnly
Default value : false

<ftr-autocomplete [readOnly]="true"></ftr-autocomplete>

Description: displays value and is iteractable but not functional.

required
Default value : false

<ftr-autocomplete [required]="true"></ftr-autocomplete>

requiredMessage
Default value : ''

<ftr-autocomplete [requiredMessage]="requiredMessage"></ftr-autocomplete>

Type: string. Description: Supply required validation error message.

selectedOption
selectOnly
Default value : false

<ftr-autocomplete [selectOnly]="true"></ftr-autocomplete>

Description: disable input on autocomplete.

showIcon
Default value : true

<ftr-autocomplete [showIcon]="false"></ftr-autocomplete>

Type: boolean. Description: whether to hide/show icon. Default: true

showTooltipInOptions
Default value : false

<ftr-autocomplete [showTooltipInOptions]="true"></ftr-autocomplete> Description: whether to show tooltip of each option Default: false

strictMode
Default value : false

<ftr-autocomplete [strictMode]="true"></ftr-autocomplete>

Description: turn on to apply strict text matching in filtering options.

tooltip
Default value : ''

<ftr-autocomplete [tooltip]="tooltip"></ftr-autocomplete> Description: tooltip text for the input box Default: ''

useMatFormField
Default value : true

<ftr-autocomplete [useMatFormField]="false"></ftr-autocomplete>

Type: boolean. Description: whether to use mat-form-field to wrap the input element. Default: true

value
Type : string

Outputs

ftrOnBlur
Type : EventEmitter

<ftr-autocomplete (ftrOnBlur)="handling()"></ftr-autocomplete>

ftrOnButtonClicked
Type : EventEmitter

<ftr-autocomplete (ftrOnButtonClicked)="handling()"></ftr-autocomplete>

ftrOnChange
Type : EventEmitter

<ftr-autocomplete (ftrOnChange)="handling($event)"></ftr-autocomplete>

Returns: typing text

ftrOnClick
Type : EventEmitter

<ftr-autocomplete (ftrOnClick)="handling"></ftr-autocomplete>

Description: mouse event, indicating whether the click occurs in the inside the input box

ftrOnEditLabelClosed
Type : EventEmitter

<ftr-autocomplete (ftrOnEditLabelClosed)="handling"></ftr-autocomplete>

Description: after edit label interface is closed (expect editLabelMenu to be defined)

ftrOnEditLabelOpened
Type : EventEmitter

<ftr-autocomplete (ftrOnEditLabelOpened)="handling()"></ftr-autocomplete>

Description: after edit label interface is opened (expect editLabelMenu to be defined)

ftrOnFocus
Type : EventEmitter

<ftr-autocomplete (ftrOnFocus)="handling()"></ftr-autocomplete>

ftrOnKeyDown
Type : EventEmitter

<ftr-autocomplete (ftrOnKeydown)="handling"></ftr-autocomplete>

Description: keydown event, indicating whether the keydown occurs in the autocomplete menu, or inside the input box

ftrOnKeyUp
Type : EventEmitter

<ftr-autocomplete (ftrOnKeyup)="handling"></ftr-autocomplete>

Description: keyup event, indicating whether the keyup occurs in the autocomplete menu, or inside the input box

ftrOnOpened
Type : EventEmitter

<ftr-autocomplete (ftrOnOpened)="handling()"></ftr-autocomplete>

ftrOnSelected
Type : EventEmitter

<ftr-autocomplete (ftrOnSelected)="handling($event)"></ftr-autocomplete>

Returns: IFtrAutoCompleteOption

Methods

Public focus
focus()
Returns : void
ngAfterViewInit
ngAfterViewInit()
Returns : void
ngOnDestroy
ngOnDestroy()
Returns : void
ngOnInit
ngOnInit()
Returns : void
Public trackByMessage
trackByMessage(_index: number, item: any)
Parameters :
Name Type Optional
_index number No
item any No
Returns : string

Properties

autofillAttributeName
Default value : Guid.create().toString()
onChange
Type : function
Default value : () => {...}
onTouched
Type : function
Default value : () => {...}
opening
Default value : false
Public platform
Type : Platform
scrollEventHandler
Default value : () => {...}
showAll
Default value : false
textControl
Type : FormControl | undefined

Accessors

options
getoptions()
setoptions(opts)
Parameters :
Name Optional
opts No
Returns : void
value
getvalue()
setvalue(val: string)
Parameters :
Name Type Optional
val string No
Returns : void
selectedOption
getselectedOption()
setselectedOption(val)
Parameters :
Name Optional
val No
Returns : void
disabled
setdisabled(value: boolean)
Parameters :
Name Type Optional
value boolean No
Returns : void
customMessages
getcustomMessages()
setcustomMessages(value: [])

<ftr-autocomplete [customMessages]="customMessages"></ftr-autocomplete>

Type: IFtrCustomMessage[]. Description: messages for server-side errors. Could contain 3 types of messages: info/warn/error

Parameters :
Name Type Optional
value [] No
Returns : void
hasClientSideErrors
gethasClientSideErrors()
showAllOptions
setshowAllOptions(show: boolean)
Parameters :
Name Type Optional
show boolean No
Returns : void
borderColor
getborderColor()

Welcome to Frontier Autocomplete Component

Installation

npm install --save @frontier/autocomplete

Dependent Packages

Here is the list of dependent packages.

  • @angular/common
  • @angular/material
  • @angular/flex-layout
  • @frontier/common-lib
  • @frontier/action-toolbar
  • @frontier/icon
  • @frontier/translate-loader
  • rxjs

Usage

Add FtrAutocompleteModule to your AppModule

import { FtrAutocompleteModule } from '@frontier/autocomplete';

@NgModule({
  declarations: [],
  imports: [
    BrowserAnimationsModule,
    ReactiveFormsModule, // if using autocomplete in a Form
    FormsModule, // if using autocomplete in a Form
    FtrAutocompleteModule
  ],
  providers: [],
  exports: []
})
export class AppModule {
}

HTML Tags

<ftr-autocomplete [disabled]="disabled" [required]="required" 
  [strictMode]="strictMode" [selectOnly]="selectOnly"
  [options]="data"
  label="Select something" [value]="value"
  (ftrOnSelected)="onSelect($event)"
  (ftrOnChange)="onChange($event)" (ftrOnOpened)="onOpened()"
  (ftrOnFocus)="onFocus()" (ftrOnBlur)="onBlur()"
  (ftrOnButtonClicked)="onButtonClicked($event)">
</ftr-autocomplete>

<!-- using in a form -->
<form [formGroup]="form">
    <ftr-autocomplete formControlName="country" [options]="data" label="Select country" [required]="required"></ftr-autocomplete>
</form>

Component Usage

data = ['option 1','option 2','option 3'];
// data format when selectOnly mode is on:
data2 = [
  {
    text: 'option 1',
    id: 'OPT1'
  },
  {
    text: 'option 2',
    id: 'OPT2'
  }
];
// if using in a form
form: FormGroup = new FormGroup({
    country: new FormControl('Australia'),
});

onChange(value: string) {
  this.msg = `value changes to: ${value}`;
}
onSelect(value: IFtrAutoCompleteOption) {
  this.msg = `value selected: ${value.text}`;
}
onButtonClicked(opening: boolean) {}

Legend
Html element
Component
Html element with directive

result-matching ""

    No results matching ""