igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
963 lines • 63.5 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, ChangeDetectorRef, EventEmitter, ElementRef, HostBinding, Input, Output, ViewChild, Renderer2, TemplateRef, Inject, Optional } from '@angular/core';
import { DisplayDensityToken, DisplayDensityBase } from '../core/displayDensity';
import { IgxDragDirective } from '../directives/dragdrop/dragdrop.directive';
/**
* @record
*/
export function IBaseChipEventArgs() { }
if (false) {
/** @type {?} */
IBaseChipEventArgs.prototype.originalEvent;
/** @type {?} */
IBaseChipEventArgs.prototype.owner;
}
/**
* @record
*/
export function IChipClickEventArgs() { }
if (false) {
/** @type {?} */
IChipClickEventArgs.prototype.cancel;
}
/**
* @record
*/
export function IChipKeyDownEventArgs() { }
if (false) {
/** @type {?} */
IChipKeyDownEventArgs.prototype.originalEvent;
/** @type {?} */
IChipKeyDownEventArgs.prototype.cancel;
}
/**
* @record
*/
export function IChipEnterDragAreaEventArgs() { }
if (false) {
/** @type {?} */
IChipEnterDragAreaEventArgs.prototype.dragChip;
}
/**
* @record
*/
export function IChipSelectEventArgs() { }
if (false) {
/** @type {?} */
IChipSelectEventArgs.prototype.cancel;
/** @type {?} */
IChipSelectEventArgs.prototype.selected;
}
/** @type {?} */
var CHIP_ID = 0;
var IgxChipComponent = /** @class */ (function (_super) {
tslib_1.__extends(IgxChipComponent, _super);
function IgxChipComponent(cdr, elementRef, renderer, _displayDensityOptions) {
var _this = _super.call(this, _displayDensityOptions) || this;
_this.cdr = cdr;
_this.elementRef = elementRef;
_this.renderer = renderer;
_this._displayDensityOptions = _displayDensityOptions;
/**
* An \@Input property that sets the value of `id` attribute. If not provided it will be automatically generated.
* ```html
* <igx-chip [id]="'igx-chip-1'"></igx-chip>
* ```
*/
_this.id = "igx-chip-" + CHIP_ID++;
/**
* An \@Input property that defines if the `IgxChipComponent` can be dragged in order to change it's position.
* By default it is set to false.
* ```html
* <igx-chip [id]="'igx-chip-1'" [draggable]="true"></igx-chip>
* ```
*/
_this.draggable = false;
/**
* An \@Input property that defines if the `IgxChipComponent` should render remove button and throw remove events.
* By default it is set to false.
* ```html
* <igx-chip [id]="'igx-chip-1'" [draggable]="true" [removable]="true"></igx-chip>
* ```
*/
_this.removable = false;
/**
* An \@Input property that defines if the `IgxChipComponent` can be selected on click or through navigation,
* By default it is set to false.
* ```html
* <igx-chip [id]="chip.id" [draggable]="true" [removable]="true" [selectable]="true"></igx-chip>
* ```
*/
_this.selectable = false;
/**
* @hidden
*/
_this.class = '';
/**
* An \@Input property that defines if the `IgxChipComponent` is disabled. When disabled it restricts user interactions
* like focusing on click or tab, selection on click or Space, dragging.
* By default it is set to false.
* ```html
* <igx-chip [id]="chip.id" [disabled]="true"></igx-chip>
* ```
*/
_this.disabled = false;
/**
* Emits an event when the `IgxChipComponent` moving starts.
* Returns the moving `IgxChipComponent`.
* ```typescript
* moveStarted(event: IBaseChipEventArgs){
* let movingChip = event.owner;
* }
* ```
* ```html
* <igx-chip #myChip [id]="'igx-chip-1'" [draggable]="true" (onMoveStart)="moveStarted($event)">
* ```
*/
_this.onMoveStart = new EventEmitter();
/**
* Emits an event when the `IgxChipComponent` moving ends.
* Returns the moved `IgxChipComponent`.
* ```typescript
* moveEnded(event: IBaseChipEventArgs){
* let movedChip = event.owner;
* }
* ```
* ```html
* <igx-chip #myChip [id]="'igx-chip-1'" [draggable]="true" (onMoveEnd)="moveEnded($event)">
* ```
*/
_this.onMoveEnd = new EventEmitter();
/**
* Emits an event when the `IgxChipComponent` is removed.
* Returns the removed `IgxChipComponent`.
* ```typescript
* remove(event: IBaseChipEventArgs){
* let removedChip = event.owner;
* }
* ```
* ```html
* <igx-chip #myChip [id]="'igx-chip-1'" [draggable]="true" (onRemove)="remove($event)">
* ```
*/
_this.onRemove = new EventEmitter();
/**
* Emits an event when the `IgxChipComponent` is clicked.
* Returns the clicked `IgxChipComponent`, whether the event should be canceled.
* ```typescript
* chipClick(event: IChipClickEventArgs){
* let clickedChip = event.owner;
* }
* ```
* ```html
* <igx-chip #myChip [id]="'igx-chip-1'" [draggable]="true" (onClick)="chipClick($event)">
* ```
*/
_this.onClick = new EventEmitter();
/**
* Emits event when the `IgxChipComponent` is selected/deselected.
* Returns the selected chip reference, whether the event should be canceled, what is the next selection state and
* when the event is triggered by interaction `originalEvent` is provided, otherwise `originalEvent` is `null`.
* ```typescript
* chipSelect(event: IChipSelectEventArgs){
* let selectedChip = event.owner;
* }
* ```
* ```html
* <igx-chip #myChip [id]="'igx-chip-1'" [draggable]="true" (onSelection)="chipSelect($event)">
* ```
*/
_this.onSelection = new EventEmitter();
/**
* Emits an event when the `IgxChipComponent` keyboard navigation is being used.
* Returns the focused/selected `IgxChipComponent`, whether the event should be canceled,
* if the `alt`, `shift` or `control` key is pressed and the pressed key name.
* ```typescript
* chipKeyDown(event: IChipKeyDownEventArgs){
* let keyDown = event.key;
* }
* ```
* ```html
* <igx-chip #myChip [id]="'igx-chip-1'" [draggable]="true" (onKeyDown)="chipKeyDown($event)">
* ```
*/
_this.onKeyDown = new EventEmitter();
/**
* Emits an event when the `IgxChipComponent` has entered the `IgxChipsAreaComponent`.
* Returns the target `IgxChipComponent`, the drag `IgxChipComponent`, as well as
* the original drop event arguments.
* ```typescript
* chipEnter(event: IChipEnterDragAreaEventArgs){
* let targetChip = event.targetChip;
* }
* ```
* ```html
* <igx-chip #myChip [id]="'igx-chip-1'" [draggable]="true" (onDragEnter)="chipEnter($event)">
* ```
*/
_this.onDragEnter = new EventEmitter();
_this._selected = false;
_this._selectedItemClass = 'igx-chip__item--selected';
_this._movedWhileRemoving = false;
return _this;
}
Object.defineProperty(IgxChipComponent.prototype, "selected", {
/**
* Returns if the `IgxChipComponent` is selected.
* ```typescript
* @ViewChild('myChip')
* public chip: IgxChipComponent;
* selectedChip(){
* let selectedChip = this.chip.selected;
* }
* ```
*/
get: /**
* Returns if the `IgxChipComponent` is selected.
* ```typescript
* \@ViewChild('myChip')
* public chip: IgxChipComponent;
* selectedChip(){
* let selectedChip = this.chip.selected;
* }
* ```
* @return {?}
*/
function () {
return this._selected;
},
/**
* Sets the `IgxChipComponent` selected state.
* ```html
* <igx-chip #myChip [id]="'igx-chip-1'" [selectable]="true" [selected]="true">
* ```
*/
set: /**
* Sets the `IgxChipComponent` selected state.
* ```html
* <igx-chip #myChip [id]="'igx-chip-1'" [selectable]="true" [selected]="true">
* ```
* @param {?} newValue
* @return {?}
*/
function (newValue) {
this.changeSelection(newValue);
},
enumerable: true,
configurable: true
});
Object.defineProperty(IgxChipComponent.prototype, "color", {
/**
* Returns the background color of the `IgxChipComponent`.
* ```typescript
* @ViewChild('myChip')
* public chip: IgxChipComponent;
* ngAfterViewInit(){
* let chipColor = this.chip.color;
* }
* ```
*/
get: /**
* Returns the background color of the `IgxChipComponent`.
* ```typescript
* \@ViewChild('myChip')
* public chip: IgxChipComponent;
* ngAfterViewInit(){
* let chipColor = this.chip.color;
* }
* ```
* @return {?}
*/
function () {
return this.chipArea.nativeElement.style.backgroundColor;
},
/**
* An @Input property that sets the `IgxChipComponent` background color.
* The `color` property supports string, rgb, hex.
* ```html
* <igx-chip #myChip [id]="'igx-chip-1'" [color]="'#ff0000'"></igx-chip>
* ```
*/
set: /**
* An \@Input property that sets the `IgxChipComponent` background color.
* The `color` property supports string, rgb, hex.
* ```html
* <igx-chip #myChip [id]="'igx-chip-1'" [color]="'#ff0000'"></igx-chip>
* ```
* @param {?} newColor
* @return {?}
*/
function (newColor) {
this.chipArea.nativeElement.style.backgroundColor = newColor;
},
enumerable: true,
configurable: true
});
Object.defineProperty(IgxChipComponent.prototype, "hostClass", {
/**
* @hidden
*/
get: /**
* @hidden
* @return {?}
*/
function () {
/** @type {?} */
var classes = [this.getComponentDensityClass('igx-chip')];
classes.push(this.disabled ? 'igx-chip--disabled' : '');
// The custom classes should be at the end.
classes.push(this.class);
return classes.join(' ');
},
enumerable: true,
configurable: true
});
Object.defineProperty(IgxChipComponent.prototype, "removeButtonTemplate", {
/**
* @hidden
*/
get: /**
* @hidden
* @return {?}
*/
function () {
return this.removeIcon || this.defaultRemoveIcon;
},
enumerable: true,
configurable: true
});
Object.defineProperty(IgxChipComponent.prototype, "selectIconTemplate", {
/**
* @hidden
*/
get: /**
* @hidden
* @return {?}
*/
function () {
return this.selectIcon || this.defaultSelectIcon;
},
enumerable: true,
configurable: true
});
Object.defineProperty(IgxChipComponent.prototype, "ghostClass", {
/**
* @hidden
*/
get: /**
* @hidden
* @return {?}
*/
function () {
return this.getComponentDensityClass('igx-chip__ghost');
},
enumerable: true,
configurable: true
});
Object.defineProperty(IgxChipComponent.prototype, "chipTabindex", {
get: /**
* @return {?}
*/
function () {
return !this.disabled ? 0 : '';
},
enumerable: true,
configurable: true
});
/**
* @hidden
*/
/**
* @hidden
* @param {?} condition
* @return {?}
*/
IgxChipComponent.prototype.selectClass = /**
* @hidden
* @param {?} condition
* @return {?}
*/
function (condition) {
var _a;
/** @type {?} */
var SELECT_CLASS = 'igx-chip__select';
return _a = {},
_a[SELECT_CLASS] = condition,
_a[SELECT_CLASS + "--hidden"] = !condition,
_a;
};
/**
* @protected
* @param {?} newValue
* @param {?=} srcEvent
* @return {?}
*/
IgxChipComponent.prototype.changeSelection = /**
* @protected
* @param {?} newValue
* @param {?=} srcEvent
* @return {?}
*/
function (newValue, srcEvent) {
if (srcEvent === void 0) { srcEvent = null; }
/** @type {?} */
var onSelectArgs = {
originalEvent: srcEvent,
owner: this,
selected: false,
cancel: false
};
if (newValue && !this._selected) {
onSelectArgs.selected = true;
this.onSelection.emit(onSelectArgs);
if (!onSelectArgs.cancel) {
this.renderer.addClass(this.chipArea.nativeElement, this._selectedItemClass);
this._selected = newValue;
}
}
else if (!newValue && this._selected) {
this.onSelection.emit(onSelectArgs);
if (!onSelectArgs.cancel) {
this.renderer.removeClass(this.chipArea.nativeElement, this._selectedItemClass);
this._selected = newValue;
}
}
};
/**
* @hidden
*/
/**
* @hidden
* @param {?} event
* @return {?}
*/
IgxChipComponent.prototype.onChipKeyDown = /**
* @hidden
* @param {?} event
* @return {?}
*/
function (event) {
/** @type {?} */
var keyDownArgs = {
originalEvent: event,
owner: this,
cancel: false
};
this.onKeyDown.emit(keyDownArgs);
if (keyDownArgs.cancel) {
return;
}
if ((event.key === 'Delete' || event.key === 'Del') && this.removable) {
this.onRemove.emit({
originalEvent: event,
owner: this
});
}
if ((event.key === ' ' || event.key === 'Spacebar') && this.selectable && !this.disabled) {
this.changeSelection(!this.selected, event);
}
if (event.key !== 'Tab') {
event.preventDefault();
}
};
/**
* @hidden
*/
/**
* @hidden
* @param {?} event
* @return {?}
*/
IgxChipComponent.prototype.onRemoveBtnKeyDown = /**
* @hidden
* @param {?} event
* @return {?}
*/
function (event) {
if (event.key === ' ' || event.key === 'Spacebar' || event.key === 'Enter') {
this.onRemove.emit({
originalEvent: event,
owner: this
});
event.preventDefault();
event.stopPropagation();
}
};
/**
* @param {?} event
* @return {?}
*/
IgxChipComponent.prototype.onRemoveMouseDown = /**
* @param {?} event
* @return {?}
*/
function (event) {
event.stopPropagation();
};
/**
* @hidden
*/
/**
* @hidden
* @param {?} event
* @return {?}
*/
IgxChipComponent.prototype.onRemoveClick = /**
* @hidden
* @param {?} event
* @return {?}
*/
function (event) {
this.onRemove.emit({
originalEvent: event,
owner: this
});
};
/**
* @hidden
*/
/**
* @hidden
* @return {?}
*/
IgxChipComponent.prototype.onRemoveTouchMove = /**
* @hidden
* @return {?}
*/
function () {
// We don't remove chip if user starting touch interacting on the remove button moves the chip
this._movedWhileRemoving = true;
};
/**
* @hidden
*/
/**
* @hidden
* @param {?} event
* @return {?}
*/
IgxChipComponent.prototype.onRemoveTouchEnd = /**
* @hidden
* @param {?} event
* @return {?}
*/
function (event) {
if (!this._movedWhileRemoving) {
this.onRemoveClick(event);
}
this._movedWhileRemoving = false;
};
/**
* @hidden
*/
// -----------------------------
// Start chip igxDrag behaviour
/**
* @hidden
* @param {?} event
* @return {?}
*/
// -----------------------------
// Start chip igxDrag behaviour
IgxChipComponent.prototype.onChipDragStart = /**
* @hidden
* @param {?} event
* @return {?}
*/
// -----------------------------
// Start chip igxDrag behaviour
function (event) {
this.onMoveStart.emit({
originalEvent: event.originalEvent,
owner: this
});
event.cancel = !this.draggable || this.disabled;
};
/**
* @hidden
*/
/**
* @hidden
* @return {?}
*/
IgxChipComponent.prototype.onChipDragEnd = /**
* @hidden
* @return {?}
*/
function () {
this.dragDir.dropFinished();
};
/**
* @hidden
*/
/**
* @hidden
* @param {?} event
* @return {?}
*/
IgxChipComponent.prototype.onChipMoveEnd = /**
* @hidden
* @param {?} event
* @return {?}
*/
function (event) {
// moveEnd is triggered after return animation has finished. This happen when we drag and release the chip.
this.onMoveEnd.emit({
originalEvent: event.originalEvent,
owner: this
});
if (this.selected) {
this.chipArea.nativeElement.focus();
}
};
/**
* @hidden
*/
/**
* @hidden
* @param {?} event
* @return {?}
*/
IgxChipComponent.prototype.onChipDragClicked = /**
* @hidden
* @param {?} event
* @return {?}
*/
function (event) {
/** @type {?} */
var clickEventArgs = {
originalEvent: event.originalEvent,
owner: this,
cancel: false
};
this.onClick.emit(clickEventArgs);
if (!clickEventArgs.cancel && this.selectable && !this.disabled) {
this.changeSelection(!this.selected, event.originalEvent);
}
};
// End chip igxDrag behaviour
/**
* @hidden
*/
// -----------------------------
// Start chip igxDrop behaviour
// End chip igxDrag behaviour
/**
* @hidden
* @param {?} event
* @return {?}
*/
// -----------------------------
// Start chip igxDrop behaviour
IgxChipComponent.prototype.onChipDragEnterHandler =
// End chip igxDrag behaviour
/**
* @hidden
* @param {?} event
* @return {?}
*/
// -----------------------------
// Start chip igxDrop behaviour
function (event) {
if (this.dragDir === event.drag || !event.dragData || !event.dragData.chip) {
return;
}
/** @type {?} */
var eventArgs = {
owner: this,
dragChip: event.dragData.chip,
originalEvent: event
};
this.onDragEnter.emit(eventArgs);
};
/**
* @hidden
*/
/**
* @hidden
* @param {?} event
* @return {?}
*/
IgxChipComponent.prototype.onChipDrop = /**
* @hidden
* @param {?} event
* @return {?}
*/
function (event) {
// Cancel the default drop logic
event.cancel = true;
};
IgxChipComponent.decorators = [
{ type: Component, args: [{
selector: 'igx-chip',
template: "<div #chipArea class=\"igx-chip__item\"\n [attr.tabindex]=\"chipTabindex\"\n (keydown)=\"onChipKeyDown($event)\"\n [igxDrag]=\"{chip: this}\"\n [hideBaseOnDrag]=\"true\"\n [animateOnRelease]=\"true\"\n [ghostImageClass]=\"ghostClass\"\n (dragStart)=\"onChipDragStart($event)\"\n (dragEnd)=\"onChipDragEnd()\"\n (returnMoveEnd)=\"onChipMoveEnd($event)\"\n (dragClicked)=\"onChipDragClicked($event)\"\n igxDrop\n (onEnter)=\"onChipDragEnterHandler($event)\"\n (onDrop)=\"onChipDrop($event)\">\n\n <div [ngClass]=\"selectClass(selected)\">\n <ng-container *ngTemplateOutlet=\"selectIconTemplate\"></ng-container>\n </div>\n\n <ng-content select=\"igx-prefix,[igxPrefix]\"></ng-content>\n\n <div class=\"igx-chip__content\">\n <ng-content></ng-content>\n </div>\n\n <ng-content select=\"igx-suffix,[igxSuffix]\"></ng-content>\n\n <div class=\"igx-chip__remove\" *ngIf=\"removable\"\n tabindex=\"0\"\n (keydown)=\"onRemoveBtnKeyDown($event)\"\n (pointerdown)=\"onRemoveMouseDown($event)\"\n (mousedown)=\"onRemoveMouseDown($event)\"\n (click)=\"onRemoveClick($event)\"\n (touchmove)=\"onRemoveTouchMove()\"\n (touchend)=\"onRemoveTouchEnd($event)\">\n <ng-container *ngTemplateOutlet=\"removeButtonTemplate\"></ng-container>\n </div>\n</div>\n\n<ng-template #defaultSelectIcon>\n <igx-icon>done</igx-icon>\n</ng-template>\n\n<ng-template #defaultRemoveIcon>\n <igx-icon>cancel</igx-icon>\n</ng-template>\n"
}] }
];
/** @nocollapse */
IgxChipComponent.ctorParameters = function () { return [
{ type: ChangeDetectorRef },
{ type: ElementRef },
{ type: Renderer2 },
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DisplayDensityToken,] }] }
]; };
IgxChipComponent.propDecorators = {
id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],
data: [{ type: Input }],
draggable: [{ type: Input }],
removable: [{ type: Input }],
removeIcon: [{ type: Input }],
selectable: [{ type: Input }],
selectIcon: [{ type: Input }],
class: [{ type: Input }],
disabled: [{ type: Input }],
selected: [{ type: Input }],
color: [{ type: Input }],
onMoveStart: [{ type: Output }],
onMoveEnd: [{ type: Output }],
onRemove: [{ type: Output }],
onClick: [{ type: Output }],
onSelection: [{ type: Output }],
onKeyDown: [{ type: Output }],
onDragEnter: [{ type: Output }],
hostClass: [{ type: HostBinding, args: ['attr.class',] }],
chipArea: [{ type: ViewChild, args: ['chipArea', { read: ElementRef },] }],
dragDir: [{ type: ViewChild, args: ['chipArea', { read: IgxDragDirective },] }],
defaultRemoveIcon: [{ type: ViewChild, args: ['defaultRemoveIcon', { read: TemplateRef },] }],
defaultSelectIcon: [{ type: ViewChild, args: ['defaultSelectIcon', { read: TemplateRef },] }]
};
return IgxChipComponent;
}(DisplayDensityBase));
export { IgxChipComponent };
if (false) {
/**
* An \@Input property that sets the value of `id` attribute. If not provided it will be automatically generated.
* ```html
* <igx-chip [id]="'igx-chip-1'"></igx-chip>
* ```
* @type {?}
*/
IgxChipComponent.prototype.id;
/**
* An \@Input property that stores data related to the chip.
* ```html
* <igx-chip [data]="{ value: 'Country' }"></igx-chip>
* ```
* @type {?}
*/
IgxChipComponent.prototype.data;
/**
* An \@Input property that defines if the `IgxChipComponent` can be dragged in order to change it's position.
* By default it is set to false.
* ```html
* <igx-chip [id]="'igx-chip-1'" [draggable]="true"></igx-chip>
* ```
* @type {?}
*/
IgxChipComponent.prototype.draggable;
/**
* An \@Input property that defines if the `IgxChipComponent` should render remove button and throw remove events.
* By default it is set to false.
* ```html
* <igx-chip [id]="'igx-chip-1'" [draggable]="true" [removable]="true"></igx-chip>
* ```
* @type {?}
*/
IgxChipComponent.prototype.removable;
/**
* An \@Input property that overrides the default icon that the chip applies to the remove button.
* ```html
* <igx-chip [id]="chip.id" [removable]="true" [removeIcon]="iconTemplate"></igx-chip>
* <ng-template #iconTemplate><igx-icon>delete</igx-icon></ng-template>
* ```
* @type {?}
*/
IgxChipComponent.prototype.removeIcon;
/**
* An \@Input property that defines if the `IgxChipComponent` can be selected on click or through navigation,
* By default it is set to false.
* ```html
* <igx-chip [id]="chip.id" [draggable]="true" [removable]="true" [selectable]="true"></igx-chip>
* ```
* @type {?}
*/
IgxChipComponent.prototype.selectable;
/**
* An \@Input property that overrides the default icon that the chip applies when it is selected.
* ```html
* <igx-chip [id]="chip.id" [selectable]="true" [selectIcon]="iconTemplate"></igx-chip>
* <ng-template #iconTemplate><igx-icon>done_outline</igx-icon></ng-template>
* ```
* @type {?}
*/
IgxChipComponent.prototype.selectIcon;
/**
* @hidden
* @type {?}
*/
IgxChipComponent.prototype.class;
/**
* An \@Input property that defines if the `IgxChipComponent` is disabled. When disabled it restricts user interactions
* like focusing on click or tab, selection on click or Space, dragging.
* By default it is set to false.
* ```html
* <igx-chip [id]="chip.id" [disabled]="true"></igx-chip>
* ```
* @type {?}
*/
IgxChipComponent.prototype.disabled;
/**
* Emits an event when the `IgxChipComponent` moving starts.
* Returns the moving `IgxChipComponent`.
* ```typescript
* moveStarted(event: IBaseChipEventArgs){
* let movingChip = event.owner;
* }
* ```
* ```html
* <igx-chip #myChip [id]="'igx-chip-1'" [draggable]="true" (onMoveStart)="moveStarted($event)">
* ```
* @type {?}
*/
IgxChipComponent.prototype.onMoveStart;
/**
* Emits an event when the `IgxChipComponent` moving ends.
* Returns the moved `IgxChipComponent`.
* ```typescript
* moveEnded(event: IBaseChipEventArgs){
* let movedChip = event.owner;
* }
* ```
* ```html
* <igx-chip #myChip [id]="'igx-chip-1'" [draggable]="true" (onMoveEnd)="moveEnded($event)">
* ```
* @type {?}
*/
IgxChipComponent.prototype.onMoveEnd;
/**
* Emits an event when the `IgxChipComponent` is removed.
* Returns the removed `IgxChipComponent`.
* ```typescript
* remove(event: IBaseChipEventArgs){
* let removedChip = event.owner;
* }
* ```
* ```html
* <igx-chip #myChip [id]="'igx-chip-1'" [draggable]="true" (onRemove)="remove($event)">
* ```
* @type {?}
*/
IgxChipComponent.prototype.onRemove;
/**
* Emits an event when the `IgxChipComponent` is clicked.
* Returns the clicked `IgxChipComponent`, whether the event should be canceled.
* ```typescript
* chipClick(event: IChipClickEventArgs){
* let clickedChip = event.owner;
* }
* ```
* ```html
* <igx-chip #myChip [id]="'igx-chip-1'" [draggable]="true" (onClick)="chipClick($event)">
* ```
* @type {?}
*/
IgxChipComponent.prototype.onClick;
/**
* Emits event when the `IgxChipComponent` is selected/deselected.
* Returns the selected chip reference, whether the event should be canceled, what is the next selection state and
* when the event is triggered by interaction `originalEvent` is provided, otherwise `originalEvent` is `null`.
* ```typescript
* chipSelect(event: IChipSelectEventArgs){
* let selectedChip = event.owner;
* }
* ```
* ```html
* <igx-chip #myChip [id]="'igx-chip-1'" [draggable]="true" (onSelection)="chipSelect($event)">
* ```
* @type {?}
*/
IgxChipComponent.prototype.onSelection;
/**
* Emits an event when the `IgxChipComponent` keyboard navigation is being used.
* Returns the focused/selected `IgxChipComponent`, whether the event should be canceled,
* if the `alt`, `shift` or `control` key is pressed and the pressed key name.
* ```typescript
* chipKeyDown(event: IChipKeyDownEventArgs){
* let keyDown = event.key;
* }
* ```
* ```html
* <igx-chip #myChip [id]="'igx-chip-1'" [draggable]="true" (onKeyDown)="chipKeyDown($event)">
* ```
* @type {?}
*/
IgxChipComponent.prototype.onKeyDown;
/**
* Emits an event when the `IgxChipComponent` has entered the `IgxChipsAreaComponent`.
* Returns the target `IgxChipComponent`, the drag `IgxChipComponent`, as well as
* the original drop event arguments.
* ```typescript
* chipEnter(event: IChipEnterDragAreaEventArgs){
* let targetChip = event.targetChip;
* }
* ```
* ```html
* <igx-chip #myChip [id]="'igx-chip-1'" [draggable]="true" (onDragEnter)="chipEnter($event)">
* ```
* @type {?}
*/
IgxChipComponent.prototype.onDragEnter;
/**
* @hidden
* @type {?}
*/
IgxChipComponent.prototype.chipArea;
/**
* @hidden
* @type {?}
*/
IgxChipComponent.prototype.dragDir;
/**
* @hidden
* @type {?}
*/
IgxChipComponent.prototype.defaultRemoveIcon;
/**
* @hidden
* @type {?}
*/
IgxChipComponent.prototype.defaultSelectIcon;
/**
* @type {?}
* @protected
*/
IgxChipComponent.prototype._selected;
/**
* @type {?}
* @protected
*/
IgxChipComponent.prototype._selectedItemClass;
/**
* @type {?}
* @protected
*/
IgxChipComponent.prototype._movedWhileRemoving;
/** @type {?} */
IgxChipComponent.prototype.cdr;
/** @type {?} */
IgxChipComponent.prototype.elementRef;
/**
* @type {?}
* @private
*/
IgxChipComponent.prototype.renderer;
/**
* @type {?}
* @protected
*/
IgxChipComponent.prototype._displayDensityOptions;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9pZ25pdGV1aS1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2NoaXBzL2NoaXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULFdBQVcsRUFDWCxNQUFNLEVBQ04sUUFBUSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBMEMsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6SCxPQUFPLEVBQ0gsZ0JBQWdCLEVBS25CLE1BQU0sMkNBQTJDLENBQUM7Ozs7QUFHbkQsd0NBR0M7OztJQUZHLDJDQUE4Rjs7SUFDOUYsbUNBQXdCOzs7OztBQUc1Qix5Q0FFQzs7O0lBREcscUNBQWdCOzs7OztBQUdwQiwyQ0FHQzs7O0lBRkcsOENBQTZCOztJQUM3Qix1Q0FBZ0I7Ozs7O0FBR3BCLGlEQUVDOzs7SUFERywrQ0FBMkI7Ozs7O0FBRy9CLDBDQUdDOzs7SUFGRyxzQ0FBZ0I7O0lBQ2hCLHdDQUFrQjs7O0lBR2xCLE9BQU8sR0FBRyxDQUFDO0FBRWY7SUFJc0MsNENBQWtCO0lBd1RwRCwwQkFBbUIsR0FBc0IsRUFBUyxVQUFzQixFQUFVLFFBQW1CLEVBQzlDLHNCQUE4QztRQURyRyxZQUVRLGtCQUFNLHNCQUFzQixDQUFDLFNBQ2hDO1FBSGMsU0FBRyxHQUFILEdBQUcsQ0FBbUI7UUFBUyxnQkFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGNBQVEsR0FBUixRQUFRLENBQVc7UUFDOUMsNEJBQXNCLEdBQXRCLHNCQUFzQixDQUF3Qjs7Ozs7OztRQS9TOUYsUUFBRSxHQUFHLGNBQVksT0FBTyxFQUFJLENBQUM7Ozs7Ozs7O1FBbUI3QixlQUFTLEdB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LFNBQVMsU0FBQyxtQkFBbUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7O0lBdU96RCx1QkFBQztDQUFBLEFBbmdCRCxDQUlzQyxrQkFBa0IsR0ErZnZEO1NBL2ZZLGdCQUFnQjs7Ozs7Ozs7O0lBUXpCLDhCQUVvQzs7Ozs7Ozs7SUFRcEMsZ0NBQ2lCOzs7Ozs7Ozs7SUFTakIscUNBQ3lCOzs7Ozs7Ozs7SUFTekIscUNBQ3lCOzs7Ozs7Ozs7SUFTekIsc0NBQ29DOzs7Ozs7Ozs7SUFTcEMsc0NBQzBCOzs7Ozs7Ozs7SUFTMUIsc0NBQ29DOzs7OztJQUtwQyxpQ0FDa0I7Ozs7Ozs7Ozs7SUFVbEIsb0NBQ3dCOzs7Ozs7Ozs7Ozs7OztJQWlFeEIsdUNBQzREOzs7Ozs7Ozs7Ozs7OztJQWM1RCxxQ0FDMEQ7Ozs7Ozs7Ozs7Ozs7O0lBYzFELG9DQUN5RDs7Ozs7Ozs7Ozs7Ozs7SUFjekQsbUNBQ3lEOzs7Ozs7Ozs7Ozs7Ozs7SUFlekQsdUNBQzhEOzs7Ozs7Ozs7Ozs7Ozs7SUFlOUQscUNBQzZEOzs7Ozs7Ozs7Ozs7Ozs7SUFlN0QsdUNBQ3FFOzs7OztJQWlCckUsb0NBQzRCOzs7OztJQUs1QixtQ0FDaUM7Ozs7O0lBS2pDLDZDQUMyQzs7Ozs7SUFLM0MsNkNBQzJDOzs7OztJQTJCM0MscUNBQTRCOzs7OztJQUM1Qiw4Q0FBMEQ7Ozs7O0lBQzFELCtDQUFzQzs7SUFFMUIsK0JBQTZCOztJQUFFLHNDQUE2Qjs7Ozs7SUFBRSxvQ0FBMkI7Ozs7O0lBQ2pHLGtEQUFpRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIEluamVjdCxcbiAgICBPcHRpb25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpc3BsYXlEZW5zaXR5LCBJRGlzcGxheURlbnNpdHlPcHRpb25zLCBEaXNwbGF5RGVuc2l0eVRva2VuLCBEaXNwbGF5RGVuc2l0eUJhc2UgfSBmcm9tICcuLi9jb3JlL2Rpc3BsYXlEZW5zaXR5JztcbmltcG9ydCB7XG4gICAgSWd4RHJhZ0RpcmVjdGl2ZSxcbiAgICBJRHJhZ0Jhc2VFdmVudEFyZ3MsXG4gICAgSURyYWdTdGFydEV2ZW50QXJncyxcbiAgICBJZ3hEcm9wRW50ZXJFdmVudEFyZ3MsXG4gICAgSWd4RHJvcEV2ZW50QXJnc1xufSBmcm9tICcuLi9kaXJlY3RpdmVzL2RyYWdkcm9wL2RyYWdkcm9wLmRpcmVjdGl2ZSc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBJQmFzZUNoaXBFdmVudEFyZ3Mge1xuICAgIG9yaWdpbmFsRXZlbnQ6IFBvaW50ZXJFdmVudCB8IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50IHwgS2V5Ym9hcmRFdmVudCB8IElneERyb3BFbnRlckV2ZW50QXJncztcbiAgICBvd25lcjogSWd4Q2hpcENvbXBvbmVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2hpcENsaWNrRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VDaGlwRXZlbnRBcmdzIHtcbiAgICBjYW5jZWw6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNoaXBLZXlEb3duRXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VDaGlwRXZlbnRBcmdzIHtcbiAgICBvcmlnaW5hbEV2ZW50OiBLZXlib2FyZEV2ZW50O1xuICAgIGNhbmNlbDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2hpcEVudGVyRHJhZ0FyZWFFdmVudEFyZ3MgZXh0ZW5kcyBJQmFzZUNoaXBFdmVudEFyZ3Mge1xuICAgIGRyYWdDaGlwOiBJZ3hDaGlwQ29tcG9uZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDaGlwU2VsZWN0RXZlbnRBcmdzIGV4dGVuZHMgSUJhc2VDaGlwRXZlbnRBcmdzIHtcbiAgICBjYW5jZWw6IGJvb2xlYW47XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG59XG5cbmxldCBDSElQX0lEID0gMDtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtY2hpcCcsXG4gICAgdGVtcGxhdGVVcmw6ICdjaGlwLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hDaGlwQ29tcG9uZW50IGV4dGVuZHMgRGlzcGxheURlbnNpdHlCYXNlIHtcblxuICAgIC8qKlxuICAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IHNldHMgdGhlIHZhbHVlIG9mIGBpZGAgYXR0cmlidXRlLiBJZiBub3QgcHJvdmlkZWQgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZC5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1jaGlwIFtpZF09XCInaWd4LWNoaXAtMSdcIj48L2lneC1jaGlwPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgaWd4LWNoaXAtJHtDSElQX0lEKyt9YDtcblxuICAgIC8qKlxuICAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IHN0b3JlcyBkYXRhIHJlbGF0ZWQgdG8gdGhlIGNoaXAuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtY2hpcCBbZGF0YV09XCJ7IHZhbHVlOiAnQ291bnRyeScgfVwiPjwvaWd4LWNoaXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGF0YTogYW55O1xuXG4gICAgLyoqXG4gICAgICogQW4gQElucHV0IHByb3BlcnR5IHRoYXQgZGVmaW5lcyBpZiB0aGUgYElneENoaXBDb21wb25lbnRgIGNhbiBiZSBkcmFnZ2VkIGluIG9yZGVyIHRvIGNoYW5nZSBpdCdzIHBvc2l0aW9uLlxuICAgICAqIEJ5IGRlZmF1bHQgaXQgaXMgc2V0IHRvIGZhbHNlLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWNoaXAgW2lkXT1cIidpZ3gtY2hpcC0xJ1wiIFtkcmFnZ2FibGVdPVwidHJ1ZVwiPjwvaWd4LWNoaXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZHJhZ2dhYmxlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBBbiBASW5wdXQgcHJvcGVydHkgdGhhdCBkZWZpbmVzIGlmIHRoZSBgSWd4Q2hpcENvbXBvbmVudGAgc2hvdWxkIHJlbmRlciByZW1vdmUgYnV0dG9uIGFuZCB0aHJvdyByZW1vdmUgZXZlbnRzLlxuICAgICAqIEJ5IGRlZmF1bHQgaXQgaXMgc2V0IHRvIGZhbHNlLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWNoaXAgW2lkXT1cIidpZ3gtY2hpcC0xJ1wiIFtkcmFnZ2FibGVdPVwidHJ1ZVwiIFtyZW1vdmFibGVdPVwidHJ1ZVwiPjwvaWd4LWNoaXA+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVtb3ZhYmxlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBBbiBASW5wdXQgcHJvcGVydHkgdGhhdCBvdmVycmlkZXMgdGhlIGRlZmF1bHQgaWNvbiB0aGF0IHRoZSBjaGlwIGFwcGxpZXMgdG8gdGhlIHJlbW92ZSBidXR0b24uXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtY2hpcCBbaWRdPVwiY2hpcC5pZFwiIFtyZW1vdmFibGVdPVwidHJ1ZVwiIFtyZW1vdmVJY29uXT1cImljb25UZW1wbGF0ZVwiPjwvaWd4LWNoaXA+XG4gICAgICogPG5nLXRlbXBsYXRlICNpY29uVGVtcGxhdGU+PGlneC1pY29uPmRlbGV0ZTwvaWd4LWljb24+PC9uZy10ZW1wbGF0ZT5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZW1vdmVJY29uOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQW4gQElucHV0IHByb3BlcnR5IHRoYXQgZGVmaW5lcyBpZiB0aGUgYElneENoaXBDb21wb25lbnRgIGNhbiBiZSBzZWxlY3RlZCBvbiBjbGljayBvciB0aHJvdWdoIG5hdmlnYXRpb24sXG4gICAgICogQnkgZGVmYXVsdCBpdCBpcyBzZXQgdG8gZmFsc2UuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtY2hpcCBbaWRdPVwiY2hpcC5pZFwiIFtkcmFnZ2FibGVdPVwidHJ1ZVwiIFtyZW1vdmFibGVdPVwidHJ1ZVwiIFtzZWxlY3RhYmxlXT1cInRydWVcIj48L2lneC1jaGlwPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlbGVjdGFibGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IG92ZXJyaWRlcyB0aGUgZGVmYXVsdCBpY29uIHRoYXQgdGhlIGNoaXAgYXBwbGllcyB3aGVuIGl0IGlzIHNlbGVjdGVkLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWNoaXAgW2lkXT1cImNoaXAuaWRcIiBbc2VsZWN0YWJsZV09XCJ0cnVlXCIgW3NlbGVjdEljb25dPVwiaWNvblRlbXBsYXRlXCI+PC9pZ3gtY2hpcD5cbiAgICAgKiA8bmctdGVtcGxhdGUgI2ljb25UZW1wbGF0ZT48aWd4LWljb24+ZG9uZV9vdXRsaW5lPC9pZ3gtaWNvbj48L25nLXRlbXBsYXRlPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlbGVjdEljb246IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2xhc3MgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IGRlZmluZXMgaWYgdGhlIGBJZ3hDaGlwQ29tcG9uZW50YCBpcyBkaXNhYmxlZC4gV2hlbiBkaXNhYmxlZCBpdCByZXN0cmljdHMgdXNlciBpbnRlcmFjdGlvbnNcbiAgICAgKiBsaWtlIGZvY3VzaW5nIG9uIGNsaWNrIG9yIHRhYiwgc2VsZWN0aW9uIG9uIGNsaWNrIG9yIFNwYWNlLCBkcmFnZ2luZy5cbiAgICAgKiBCeSBkZWZhdWx0IGl0IGlzIHNldCB0byBmYWxzZS5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1jaGlwIFtpZF09XCJjaGlwLmlkXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L2lneC1jaGlwPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgSWd4Q2hpcENvbXBvbmVudGAgc2VsZWN0ZWQgc3RhdGUuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtY2hpcCAjbXlDaGlwIFtpZF09XCInaWd4LWNoaXAtMSdcIiBbc2VsZWN0YWJsZV09XCJ0cnVlXCIgW3NlbGVjdGVkXT1cInRydWVcIj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgc2VsZWN0ZWQobmV3VmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VTZWxlY3Rpb24obmV3VmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgaWYgdGhlIGBJZ3hDaGlwQ29tcG9uZW50YCBpcyBzZWxlY3RlZC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZCgnbXlDaGlwJylcbiAgICAgKiBwdWJsaWMgY2hpcDogSWd4Q2hpcENvbXBvbmVudDtcbiAgICAgKiBzZWxlY3RlZENoaXAoKXtcbiAgICAgKiAgICAgbGV0IHNlbGVjdGVkQ2hpcCA9IHRoaXMuY2hpcC5zZWxlY3RlZDtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBzZWxlY3RlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IHNldHMgdGhlIGBJZ3hDaGlwQ29tcG9uZW50YCBiYWNrZ3JvdW5kIGNvbG9yLlxuICAgICAqIFRoZSBgY29sb3JgIHByb3BlcnR5IHN1cHBvcnRzIHN0cmluZywgcmdiLCBoZXguXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtY2hpcCAjbXlDaGlwIFtpZF09XCInaWd4LWNoaXAtMSdcIiBbY29sb3JdPVwiJyNmZjAwMDAnXCI+PC9pZ3gtY2hpcD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgY29sb3IobmV3Q29sb3IpIHtcbiAgICAgICAgdGhpcy5jaGlwQXJlYS5uYXRpdmVFbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IG5ld0NvbG9yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhlIGBJZ3hDaGlwQ29tcG9uZW50YC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogQFZpZXdDaGlsZCgnbXlDaGlwJylcbiAgICAgKiBwdWJsaWMgY2hpcDogSWd4Q2hpcENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luaXQoKXtcbiAgICAgKiAgICAgbGV0IGNoaXBDb2xvciA9IHRoaXMuY2hpcC5jb2xvcjtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBjb2xvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hpcEFyZWEubmF0aXZlRWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgYElneENoaXBDb21wb25lbnRgIG1vdmluZyBzdGFydHMuXG4gICAgICogUmV0dXJucyB0aGUgbW92aW5nIGBJZ3hDaGlwQ29tcG9uZW50YC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbW92ZVN0YXJ0ZWQoZXZlbnQ6IElCYXNlQ2hpcEV2ZW50QXJncyl7XG4gICAgICogICAgIGxldCBtb3ZpbmdDaGlwID0gZXZlbnQub3duZXI7XG4gICAgICogfVxuICAgICAqIGBgYFxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWNoaXAgI215Q2hpcCBbaWRdPVwiJ2lneC1jaGlwLTEnXCIgW2RyYWdnYWJsZV09XCJ0cnVlXCIgKG9uTW92ZVN0YXJ0KT1cIm1vdmVTdGFydGVkKCRldmVudClcIj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25Nb3ZlU3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPElCYXNlQ2hpcEV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIGBJZ3hDaGlwQ29tcG9uZW50YCBtb3ZpbmcgZW5kcy5cbiAgICAgKiBSZXR1cm5zIHRoZSBtb3ZlZCBgSWd4Q2hpcENvbXBvbmVudGAuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIG1vdmVFbmRlZChldmVudDogSUJhc2VDaGlwRXZlbnRBcmdzKXtcbiAgICAgKiAgICAgbGV0IG1vdmVkQ2hpcCA9IGV2ZW50Lm93bmVyO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1jaGlwICNteUNoaXAgW2lkXT1cIidpZ3gtY2hpcC0xJ1wiIFtkcmFnZ2FibGVdPVwidHJ1ZVwiIChvbk1vdmVFbmQpPVwibW92ZUVuZGVkKCRldmVudClcIj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25Nb3ZlRW5kID0gbmV3I