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
HostListeners
Accessors

Constructor

constructor(platform: Platform, ftrAutocompleteService: FtrAutocompleteService, elementRef: ElementRef)
Parameters :
Name Type Optional
platform Platform No
ftrAutocompleteService FtrAutocompleteService No
elementRef ElementRef No

Inputs

actionButtonIcon
Type : IActionButton | undefined

<ftr-autocomplete actionButtonIcon="IActionButtonIcon"></ftr-autocomplete>

actionButtons
Type : IActionButton[]
Default value : []

<ftr-autocomplete [actionButtons]="IActionButton"></ftr-autocomplete>

ariaLabelText
Default value : ''

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

Type: any. Description: Read the name of the button on ftr-autocomplete when using jaws

autocompleteDisabled
Default value : false

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

autoFocus
Default value : false

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

backgroundClass
Default value : 'mat-background-white'

<ftr-autocomplete [backgroundClass]="class background"></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" | "inlineAndToolTip"
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'

customTooltipMessages
Type : []
disabled
Type : boolean
displayOptionMode
Type : ComboboxDisplayModeLocal
Default value : 'description-code'

<ftr-autocomplete [displayOptionMode]="'description-code'"></ftr-autocomplete>

Type: ComboboxDisplayModeLocal. Description: Controls display mode for options.

displayValueMode
Type : ComboboxDisplayModeLocal
Default value : 'description-code'

<ftr-autocomplete [displayValueMode]="'description-code'"></ftr-autocomplete>

Type: ComboboxDisplayModeLocal. Description: Controls display mode for input value. Also affects maxlength on input.

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>

is2dArray
Default value : false

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

Type: boolean. Description: whether the autocomplete is part of a 2D array. Default: false

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

showIconOnDisabled
Default value : true

<ftr-autocomplete [showIconOnDisabled]="true"></ftr-autocomplete> Type: boolean. Description: if false, the field will hide the icon when disabled icon. Default: true

showTooltip
Default value : true

<ftr-autocomplete [showTooltipI]="true"></ftr-autocomplete> Description: whether to show tooltip 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>

ftrOnInputBlur
Type : EventEmitter

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

Description: input blur event, emitted when the input loses focus.

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

HostListeners

document:focusin
Arguments : '$event'
document:focusin(event: FocusEvent)
keydown
Arguments : '$event'
keydown(event: KeyboardEvent)

Methods

Public focus
focus()
Returns : void
generateId
generateId(label: string | undefined)
Parameters :
Name Type Optional
label string | undefined No
Returns : string
matchSearchToOption
matchSearchToOption(value: string)
Parameters :
Name Type Optional
value string No
ngAfterViewInit
ngAfterViewInit()
Returns : void
ngOnDestroy
ngOnDestroy()
Returns : void
ngOnInit
ngOnInit()
Returns : void
Public preventBlur
preventBlur(event: Event, isDisabled: boolean | undefined)
Parameters :
Name Type Optional
event Event No
isDisabled boolean | undefined No
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()
Public ftrAutocompleteService
Type : FtrAutocompleteService
hasSelectedOption
Default value : false
inputElement
Type : ElementRef<HTMLInputElement>
Decorators :
@ViewChild('trigger')
matAutocompletePosition
Type : "auto" | "above" | "below"
Default value : 'auto'
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
getdisabled()
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
customTooltipMessages
getcustomTooltipMessages()
setcustomTooltipMessages(value: [])
Parameters :
Name Type Optional
value [] No
Returns : void
hasClientSideErrors
gethasClientSideErrors()
hasErrors
gethasErrors()
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 ""