@hxui/angular
Version:
* * *
650 lines • 69.5 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
*/
import { Input, forwardRef, Component, ViewChild, Output, EventEmitter, IterableDiffers, ViewEncapsulation, Renderer2 } from '@angular/core';
import { NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';
import * as _ from 'lodash';
import { SelectizeConfig } from './selectize.config';
/** @type {?} */
export var SELECTIZE_VALUE_ACCESSOR = {
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(function () { return SelectizeComponent; }),
multi: true
};
var SelectizeComponent = /** @class */ (function () {
function SelectizeComponent(_differs, renderer) {
this._differs = _differs;
this.renderer = renderer;
this.enabled = true;
this.value = [];
this.isFocused = false;
this.isValid = false;
this.onBlur = new EventEmitter(false);
this.onFocus = new EventEmitter(false);
/**
* Invoked anytime a key is pressed down on the selectize search field
* @param e
*/
this.onKeydown = function (e) {
console.log(e);
/** @type {?} */
var TABKEY = 9;
if (e.keyCode === TABKEY) {
e.preventDefault();
e.stopImmediatePropagation();
e.stopPropagation();
}
};
}
/**
* @return {?}
*/
SelectizeComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
if (this.id && this.id.length > 0) {
this.renderer.setAttribute(this.selectizeInput.nativeElement, 'id', this.id);
}
this.reset();
};
/**
* @return {?}
*/
SelectizeComponent.prototype.reset = /**
* @return {?}
*/
function () {
this.selectize = $(this.selectizeInput.nativeElement).selectize(this.config)[0].selectize;
this.selectize.on('change', this.onSelectizeValueChange.bind(this));
this.selectize.on('blur', this.onBlurEvent.bind(this));
this.selectize.on('focus', this.onFocusEvent.bind(this));
this.selectize.on('type', this.onSelectizeType.bind(this));
this.selectize.on('item_add', this.onSelectizeItemSelected.bind(this));
this.updatePlaceholder();
this.onEnabledStatusChange();
this.hasCaret();
};
/**
* @return {?}
*/
SelectizeComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
if (this.selectize) {
this.selectize.off('change');
this.selectize.off('blur');
this.selectize.off('focus');
this.selectize.off('type');
}
};
/**
* Change detection for primitive types.
*/
/**
* Change detection for primitive types.
* @param {?} changes
* @return {?}
*/
SelectizeComponent.prototype.ngOnChanges = /**
* Change detection for primitive types.
* @param {?} changes
* @return {?}
*/
function (changes) {
if (this.selectize) {
if (changes.hasOwnProperty('placeholder') ||
changes.hasOwnProperty('hasOptionsPlaceholder') ||
changes.hasOwnProperty('noOptionsPlaceholder')) {
this.updatePlaceholder();
}
if (changes.hasOwnProperty('enabled')) {
this.onEnabledStatusChange();
}
}
};
/**
* Implementing deep check for option comparison
*
* FIXME -> Implement deep check to only compare against label and value fields.
*/
/**
* Implementing deep check for option comparison
*
* FIXME -> Implement deep check to only compare against label and value fields.
* @return {?}
*/
SelectizeComponent.prototype.ngDoCheck = /**
* Implementing deep check for option comparison
*
* FIXME -> Implement deep check to only compare against label and value fields.
* @return {?}
*/
function () {
if (this._options_differ) {
/** @type {?} */
var changes = this._options_differ.diff(this._options);
if (changes) {
this._applyOptionsChanges(changes);
}
}
if (this._optgroups_differ) {
/** @type {?} */
var changes = this._optgroups_differ.diff(this._optgroups);
if (changes) {
this._applyOptionGroupChanges(changes);
}
}
};
/**
* @param {?} changes
* @return {?}
*/
SelectizeComponent.prototype._applyOptionsChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
var _this = this;
changes.forEachRemovedItem(function (record) {
_this.onSelectizeOptionRemove(record.item);
});
changes.forEachAddedItem(function (record) {
_this.onSelectizeOptionAdd(record.item);
});
this.updatePlaceholder();
this.evalHasError();
};
/**
* @param {?} changes
* @return {?}
*/
SelectizeComponent.prototype._applyOptionGroupChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
var _this = this;
changes.forEachRemovedItem(function (record) {
_this.onSelectizeOptGroupRemove(record.item);
});
changes.forEachAddedItem(function (record) {
_this.onSelectizeOptGroupAdd(record.item);
});
this.updatePlaceholder();
this.evalHasError();
};
/**
* @return {?}
*/
SelectizeComponent.prototype.clearhighlight = /**
* @return {?}
*/
function () {
// remove highlight to help selectize bug
// https://github.com/selectize/selectize.js/issues/1141
this.selectize.$dropdown_content.removeHighlight();
};
/**
* @return {?}
*/
SelectizeComponent.prototype.onBlurEvent = /**
* @return {?}
*/
function () {
if (this.formControl) {
this.formControl.markAsTouched();
}
this.onBlur.emit();
this.evalHasError();
this.isFocused = false;
this.isValid = (this.selectize.getValue().length > 0);
};
/**
* @return {?}
*/
SelectizeComponent.prototype.onFocusEvent = /**
* @return {?}
*/
function () {
if (this.formControl) {
this.formControl.markAsTouched();
}
this.onFocus.emit();
this.evalHasError();
this.isFocused = true;
};
/**
* @param {?} optgroup
* @return {?}
*/
SelectizeComponent.prototype.onSelectizeOptGroupAdd = /**
* @param {?} optgroup
* @return {?}
*/
function (optgroup) {
this.selectize.addOptionGroup(optgroup[this.getOptgroupField()], optgroup);
};
/**
* @param {?} optgroup
* @return {?}
*/
SelectizeComponent.prototype.onSelectizeOptGroupRemove = /**
* @param {?} optgroup
* @return {?}
*/
function (optgroup) {
this.selectize.removeOptionGroup(optgroup[this.getOptgroupField()]);
};
/**
* Refresh selected values when options change.
*/
/**
* Refresh selected values when options change.
* @param {?} option
* @return {?}
*/
SelectizeComponent.prototype.onSelectizeOptionAdd = /**
* Refresh selected values when options change.
* @param {?} option
* @return {?}
*/
function (option) {
this.selectize.addOption(_.cloneDeep(option));
/** @type {?} */
var valueField = this.config.valueField;
if (this.value) {
/** @type {?} */
var items = typeof this.value === 'string' || typeof this.value === 'number'
? [this.value]
: this.value;
if (items &&
items instanceof Array &&
items.find(function (value) { return value === option[valueField]; })) {
this.selectize.addItem(option[valueField], true);
}
}
};
/**
* @param {?} option
* @return {?}
*/
SelectizeComponent.prototype.onSelectizeOptionRemove = /**
* @param {?} option
* @return {?}
*/
function (option) {
this.selectize.removeOption(option[this.config.valueField]);
};
/**
* @return {?}
*/
SelectizeComponent.prototype.evalHasError = /**
* @return {?}
*/
function () {
/** @type {?} */
var parent = $(this.selectize.$control).parent();
if (this.formControl) {
if (this.formControl.touched && this.formControl.invalid) {
parent.addClass(this.errorClass || 'has-error');
}
else if (parent.hasClass('has-error')) {
parent.removeClass(this.errorClass || 'has-error');
}
}
};
/**
* @return {?}
*/
SelectizeComponent.prototype.updateLabel = /**
* @return {?}
*/
function () {
};
/**
* Update the current placeholder based on the given input parameter.
*/
/**
* Update the current placeholder based on the given input parameter.
* @return {?}
*/
SelectizeComponent.prototype.updatePlaceholder = /**
* Update the current placeholder based on the given input parameter.
* @return {?}
*/
function () {
if (this.selectize.items.length === 0 &&
this.selectize.settings.placeholder !== this.getPlaceholder()) {
this.selectize.settings.placeholder = this.getPlaceholder();
this.selectize.updatePlaceholder();
this.selectize.showInput(); // Without this, when options are cleared placeholder only appears after focus.
}
};
/**
* Called when a change is detected in the 'enabled' input field.
* Sets the selectize state based on the new value.
*/
/**
* Called when a change is detected in the 'enabled' input field.
* Sets the selectize state based on the new value.
* @return {?}
*/
SelectizeComponent.prototype.onEnabledStatusChange = /**
* Called when a change is detected in the 'enabled' input field.
* Sets the selectize state based on the new value.
* @return {?}
*/
function () {
this.enabled ? this.selectize.enable() : this.selectize.disable();
};
/**
* @return {?}
*/
SelectizeComponent.prototype.hasCaret = /**
* @return {?}
*/
function () {
if (this.config.hasCaret) {
/** @type {?} */
var parent_1 = $(this.selectize.$control).parent();
parent_1.addClass('hasCaret');
}
};
/**
* Dispatches change event when a value change is detected.
* @param $event
*/
/**
* Dispatches change event when a value change is detected.
* @param {?} $event
* @return {?}
*/
SelectizeComponent.prototype.onSelectizeValueChange = /**
* Dispatches change event when a value change is detected.
* @param {?} $event
* @return {?}
*/
function ($event) {
var _this = this;
// In some cases this gets called before registerOnChange.
if (this.onChangeCallback) {
// Map selectize's value collection back to original ISelectizeItem object
/** @type {?} */
var data = this.selectize.items.map(function (v) {
return _this.selectize.options[v];
});
this.onChangeCallback(data);
}
};
/**
* Invoked when the user types while filtering options.
* @param str
*/
/**
* Invoked when the user types while filtering options.
* @param {?} str
* @return {?}
*/
SelectizeComponent.prototype.onSelectizeType = /**
* Invoked when the user types while filtering options.
* @param {?} str
* @return {?}
*/
function (str) {
if (str.length === 0) {
this.clearhighlight();
this.selectize.close();
}
};
/**
* @param {?} $event
* @return {?}
*/
SelectizeComponent.prototype.onSelectizeItemSelected = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
this.clearhighlight();
if (this.config.closeAfterSelect) {
this.selectize.close();
}
};
/**
* Returns the applicable placeholder.
*/
/**
* Returns the applicable placeholder.
* @return {?}
*/
SelectizeComponent.prototype.getPlaceholder = /**
* Returns the applicable placeholder.
* @return {?}
*/
function () {
if (this.hasOptionsPlaceholder) {
if (this.options && this.options.length > 0) {
return this.hasOptionsPlaceholder;
}
}
if (this.noOptionsPlaceholder) {
if (!this.options || this.options.length === 0) {
return this.noOptionsPlaceholder;
}
}
return this.placeholder;
};
/**
* Implementation from ControlValueAccessor
*
* @param obj
*/
/**
* Implementation from ControlValueAccessor
*
* @param {?} obj
* @return {?}
*/
SelectizeComponent.prototype.writeValue = /**
* Implementation from ControlValueAccessor
*
* @param {?} obj
* @return {?}
*/
function (obj) {
var _this = this;
if (obj === this.value) {
return;
}
this.value = obj;
if (!obj || obj.length === 0) {
this.selectize.setValue('');
return;
}
/** @type {?} */
var stringValue = obj.map(function (v) {
if (!Object.keys(_this.selectize.options).some(function (x) { return x === v.value; })) {
_this.selectize.addOption(v);
}
return v.value;
});
this.selectize.setValue(stringValue);
this.evalHasError();
this.isValid = (this.selectize.getValue().length > 0);
};
/**
* Implementation from ControlValueAccessor, callback for (ngModelChange)
* @param fn
*/
/**
* Implementation from ControlValueAccessor, callback for (ngModelChange)
* @param {?} fn
* @return {?}
*/
SelectizeComponent.prototype.registerOnChange = /**
* Implementation from ControlValueAccessor, callback for (ngModelChange)
* @param {?} fn
* @return {?}
*/
function (fn) {
this.onChangeCallback = fn;
};
/**
* Implementation from ControlValueAccessor
* @param fn
*/
/**
* Implementation from ControlValueAccessor
* @param {?} fn
* @return {?}
*/
SelectizeComponent.prototype.registerOnTouched = /**
* Implementation from ControlValueAccessor
* @param {?} fn
* @return {?}
*/
function (fn) {
this.onTouchedCallback = fn;
};
/**
* @return {?}
*/
SelectizeComponent.prototype.getOptgroupField = /**
* @return {?}
*/
function () {
return this.config['optgroupField']
? this.config['optgroupField']
: 'optgroup';
};
Object.defineProperty(SelectizeComponent.prototype, "options", {
get: /**
* @return {?}
*/
function () {
return this._options;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._options = value;
if (!this._options_differ && value) {
this._options_differ = this._differs.find(value).create();
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(SelectizeComponent.prototype, "optgroups", {
get: /**
* @return {?}
*/
function () {
return this._optgroups;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._optgroups = value;
if (!this._optgroups_differ && value) {
this._optgroups_differ = this._differs.find(value).create();
}
},
enumerable: true,
configurable: true
});
SelectizeComponent.decorators = [
{ type: Component, args: [{
selector: 'hxa-selectize',
template: "<div class=\"hx-input-control\" [ngClass]=\"config.inputControlClasses\" [class.is-focused]=\"isFocused\" [class.is-valid]=\"isValid\">\n <select #selectizeInput></select>\n <label for=\"{{id}}\" class=\"hx-label\">{{config.label}} <sup *ngIf=\"config.mandatory\">*</sup></label>\n <div class=\"hx-help\">{{config.help}}</div>\n </div>",
providers: [SELECTIZE_VALUE_ACCESSOR],
encapsulation: ViewEncapsulation.None,
styles: [".selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#2a2c2d;font-family:inherit;font-size:.92rem;line-height:1.5;-webkit-font-smoothing:inherit}.selectize-control.single .selectize-input.input-active,.selectize-input{background:0 0;cursor:text;display:inline-block}.selectize-input{border:1px solid rgba(0,0,0,.2);padding:8px 0;display:inline-block;width:100%;overflow:hidden;position:relative;z-index:1;box-sizing:border-box;box-shadow:none;border-radius:0;border-width:0 0 1px}.selectize-control.multi .selectize-input.has-items{padding:6px 0 3px}.selectize-control.multi.hasCaret .selectize-input.has-items{padding-right:1rem}.selectize-input.full{background-color:transparent}.selectize-input.disabled,.selectize-input.disabled *{cursor:default!important}.selectize-input.focus{box-shadow:none}.selectize-input.dropdown-active{border-radius:0}.selectize-input>*{vertical-align:baseline;display:inline-block;zoom:1}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:4px;padding:2px 6px;background:rgba(0,0,0,.05);color:#2a2c2d;border:0 solid transparent;border-radius:290486px;font-size:.75rem;justify-content:center;line-height:1.5;white-space:nowrap}.selectize-control.multi .selectize-input>div.active{background:#e8e8e8;color:#2a2c2d;border:0 solid #cacaca}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:#787878;background:rgba(77,77,77,.05);border:0 solid rgba(77,77,77,0)}.selectize-input>input{display:inline-block!important;padding:0!important;min-height:0!important;max-height:none!important;max-width:100%!important;margin:0 2px 0 0!important;text-indent:0!important;border:0!important;background:0 0!important;line-height:inherit!important;-webkit-user-select:auto!important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:0!important}.selectize-input::after{content:' ';display:block;clear:left}.selectize-input.dropdown-active::before{content:' ';display:block;position:absolute;background:#f0f0f0;height:1px;bottom:0;left:0;right:0}.hx-select-control:after{display:none}.selectize-dropdown{position:absolute;z-index:10;border:transparent;background:#fff;margin:1px 0 0;border-top:0;box-sizing:border-box;box-shadow:0 6px 12px rgba(0,0,0,.145);border-radius:0}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(35,49,43,.23);border-radius:1px;font-weight:700}.selectize-dropdown .optgroup-header,.selectize-dropdown [data-selectable]{padding:5px 8px}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0}.selectize-dropdown .optgroup-header{color:#2a2c2d;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#41b987;color:#fff}.selectize-dropdown .active.create{color:#fff}.selectize-dropdown .create{color:rgba(42,44,45,.5)}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;-webkit-overflow-scrolling:touch}.selectize-control.hasCaret .selectize-input,.selectize-control.hasCaret .selectize-input input,.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.hasCaret .selectize-input.input-active,.selectize-control.hasCaret .selectize-input.input-active input,.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input{cursor:text}.selectize-control.hasCaret .selectize-input:after,.selectize-control.single .selectize-input:after{content:' ';display:block;position:absolute;top:50%;right:15px;margin-top:-3px;width:0;height:0;border-style:solid;border-width:5px 5px 0;border-color:grey transparent transparent}.selectize-control.hasCaret .selectize-input.dropdown-active:after,.selectize-control.single .selectize-input.dropdown-active:after{margin-top:-4px;border-width:0 5px 5px;border-color:transparent transparent grey}.selectize-control.multi.hasCaret .selectize-input.has-items:after{top:initial;bottom:1.3rem}.selectize-control.rtl.hasCaret .selectize-input:after,.selectize-control.rtl.single .selectize-input:after{left:15px;right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px!important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fafafa}hxa-selectize .hx-input-control{padding-top:.21rem}hxa-selectize .hx-input-control .hx-label{position:absolute;top:.7rem;margin:0;font-weight:400;color:#aeadad;left:0;transition:.3s;z-index:0}hxa-selectize .hx-input-control .hx-label sup{top:-.2rem;color:#b81e4f;font-size:.7rem;transition:.3s}hxa-selectize .hx-input-control .hx-label+.hx-help{font-size:.75rem;margin-top:-.09rem;color:#63605f;transition:.3s;opacity:0;position:relative}hxa-selectize .hx-input-control .hx-label+.hx-help:after,hxa-selectize .hx-input-control .hx-label+.hx-help:before{content:'';position:absolute;top:-.4rem;width:0%;height:3px;background-color:#41b987;transition:.3s;z-index:1}hxa-selectize .hx-input-control .hx-label+.hx-help:before{left:50%}hxa-selectize .hx-input-control .hx-label+.hx-help:after{right:50%}hxa-selectize .hx-input-control.is-focused .hx-label{color:#41b987}hxa-selectize .hx-input-control.is-focused .hx-help{opacity:1}hxa-selectize .hx-input-control.is-focused .hx-help:after,hxa-selectize .hx-input-control.is-focused .hx-help:before{width:50%}hxa-selectize .hx-input-control.is-focused .hx-label,hxa-selectize .hx-input-control.is-valid .hx-label{top:-.5rem;font-size:.75rem}hxa-selectize .hx-input-control.is-focused .hx-label sup,hxa-selectize .hx-input-control.is-valid .hx-label sup{top:-.3rem;font-size:.4rem}hxa-selectize .selectize-control:focus{outline:0}hxa-selectize .selectize-control:-webkit-autofill~.hx-label,hxa-selectize .selectize-control:focus~.hx-label,hxa-selectize .selectize-control:valid~.hx-label{top:-.5rem;font-size:.75rem}hxa-selectize .selectize-control:-webkit-autofill~.hx-label sup,hxa-selectize .selectize-control:focus~.hx-label sup,hxa-selectize .selectize-control:valid~.hx-label sup{top:-.3rem;font-size:.4rem}hxa-selectize .selectize-control:-webkit-autofill~.hx-label,hxa-selectize .selectize-control:focus~.hx-label{color:#41b987}hxa-selectize .selectize-control:-webkit-autofill~.hx-label,hxa-selectize .selectize-control:focus~.hx-help{opacity:1}hxa-selectize .selectize-control:-webkit-autofill~.hx-label:after,hxa-selectize .selectize-control:-webkit-autofill~.hx-label:before,hxa-selectize .selectize-control:focus~.hx-help:after,hxa-selectize .selectize-control:focus~.hx-help:before{width:50%}hxa-selectize .selectize-control.is-disabled,hxa-selectize .selectize-control[disabled]{border-color:#aeadad;color:#aeadad;cursor:not-allowed}hxa-selectize .selectize-control.is-disabled~.hx-label,hxa-selectize .selectize-control[disabled]~.hx-label{top:-.5rem;font-size:.75rem;color:#aeadad;cursor:not-allowed}hxa-selectize .selectize-control.is-disabled~.hx-label sup,hxa-selectize .selectize-control[disabled]~.hx-label sup{font-size:.4rem}hxa-selectize.ng-invalid.ng-dirty .hx-label{color:#b81e4f}hxa-selectize.ng-invalid.ng-dirty .hx-label+.hx-help{position:relative;opacity:1;color:#b81e4f}hxa-selectize.ng-invalid.ng-dirty .hx-label+.hx-help:after,hxa-selectize.ng-invalid.ng-dirty .hx-label+.hx-help:before{width:50%;background-color:#b81e4f}.selectize-control.plugin-remove_button [data-value]{position:relative;padding-right:.7rem!important}.selectize-control.plugin-remove_button [data-value].is-medium{padding-right:1rem!important}.selectize-control.plugin-remove_button [data-value] .hx-delete{margin-left:-.2rem;height:16px;width:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px}.selectize-control.plugin-remove_button [data-value].is-medium .hx-delete{margin-left:-.5rem}.selectize-control.plugin-remove_button [data-value].is-large .hx-delete{margin-left:-.2rem;height:20px;width:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px}.selectize-control.plugin-remove_button .disabled [data-value] .hx-remove:hover{background:0 0}.selectize-control.plugin-remove_button .disabled [data-value] .hx-remove{border-left-color:rgba(77,77,77,0)}.selectize-control.plugin-remove_button .remove-single{position:absolute;right:28px;top:6px;font-size:23px}"]
},] },
];
/** @nocollapse */
SelectizeComponent.ctorParameters = function () { return [
{ type: IterableDiffers },
{ type: Renderer2 }
]; };
SelectizeComponent.propDecorators = {
config: [{ type: Input }],
id: [{ type: Input }],
placeholder: [{ type: Input }],
hasOptionsPlaceholder: [{ type: Input }],
noOptionsPlaceholder: [{ type: Input }],
enabled: [{ type: Input }],
value: [{ type: Input }],
formControl: [{ type: Input }],
errorClass: [{ type: Input }],
onBlur: [{ type: Output }],
onFocus: [{ type: Output }],
selectizeInput: [{ type: ViewChild, args: ['selectizeInput',] }],
options: [{ type: Input }],
optgroups: [{ type: Input }]
};
return SelectizeComponent;
}());
export { SelectizeComponent };
if (false) {
/** @type {?} */
SelectizeComponent.prototype._options;
/** @type {?} */
SelectizeComponent.prototype._options_differ;
/** @type {?} */
SelectizeComponent.prototype._optgroups;
/** @type {?} */
SelectizeComponent.prototype._optgroups_differ;
/** @type {?} */
SelectizeComponent.prototype.config;
/** @type {?} */
SelectizeComponent.prototype.id;
/** @type {?} */
SelectizeComponent.prototype.placeholder;
/** @type {?} */
SelectizeComponent.prototype.hasOptionsPlaceholder;
/** @type {?} */
SelectizeComponent.prototype.noOptionsPlaceholder;
/** @type {?} */
SelectizeComponent.prototype.enabled;
/** @type {?} */
SelectizeComponent.prototype.value;
/** @type {?} */
SelectizeComponent.prototype.formControl;
/** @type {?} */
SelectizeComponent.prototype.errorClass;
/** @type {?} */
SelectizeComponent.prototype.isFocused;
/** @type {?} */
SelectizeComponent.prototype.isValid;
/** @type {?} */
SelectizeComponent.prototype.onBlur;
/** @type {?} */
SelectizeComponent.prototype.onFocus;
/** @type {?} */
SelectizeComponent.prototype.selectizeInput;
/** @type {?} */
SelectizeComponent.prototype.selectize;
/** @type {?} */
SelectizeComponent.prototype.onTouchedCallback;
/** @type {?} */
SelectizeComponent.prototype.onChangeCallback;
/**
* Invoked anytime a key is pressed down on the selectize search field
* \@param e
* @type {?}
*/
SelectizeComponent.prototype.onKeydown;
/** @type {?} */
SelectizeComponent.prototype._differs;
/** @type {?} */
SelectizeComponent.prototype.renderer;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aXplLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BoeHVpL2FuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvc2VsZWN0aXplL3NlbGVjdGl6ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxLQUFLLEVBS0wsVUFBVSxFQUNWLFNBQVMsRUFDVCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWixlQUFlLEVBSWYsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsaUJBQWlCLEVBRWpCLFdBQVcsRUFDWixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFLckQsTUFBTSxLQUFPLHdCQUF3QixHQUFRO0lBQzNDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUFNLE9BQUEsa0JBQWtCLEVBQWxCLENBQWtCLENBQUM7SUFDakQsS0FBSyxFQUFFLElBQUk7Q0FDWjtBQUVEO0lBeUNFLDRCQUFvQixRQUF5QixFQUFVLFFBQW1CO1FBQXRELGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQWxCakUsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLFVBQUssR0FBcUIsRUFBRSxDQUFDO1FBR3RDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVOLFdBQU0sR0FBdUIsSUFBSSxZQUFZLENBQU8sS0FBSyxDQUFDLENBQUM7UUFDM0QsWUFBTyxHQUF1QixJQUFJLFlBQVksQ0FBTyxLQUFLLENBQUMsQ0FBQzs7Ozs7UUF3UHRFLGNBQVMsR0FBRyxVQUFBLENBQUM7WUFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMs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akQsdUNBQXVCOztJQUd2QiwrQ0FBb0M7O0lBQ3BDLDhDQUF5Qzs7Ozs7O0lBZ1B6Qyx1Q0FRQzs7SUF0UFcsc0NBQWlDOztJQUFFLHNDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIERvQ2hlY2ssXHJcbiAgZm9yd2FyZFJlZixcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSXRlcmFibGVEaWZmZXJzLFxyXG4gIEl0ZXJhYmxlRGlmZmVyLFxyXG4gIEl0ZXJhYmxlQ2hhbmdlUmVjb3JkLFxyXG4gIEl0ZXJhYmxlQ2hhbmdlcyxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBSZW5kZXJlcjIsXHJcbiAgT25EZXN0cm95XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXHJcbiAgRm9ybUNvbnRyb2xcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IFNlbGVjdGl6ZUNvbmZpZyB9IGZyb20gJy4vc2VsZWN0aXplLmNvbmZpZyc7XHJcbmltcG9ydCB7SVNlbGVjdGl6ZUl0ZW19IGZyb20gJy4vc2VsZWN0aXplLWl0ZW0uaW50ZXJmYWNlJztcclxuXHJcbmRlY2xhcmUgdmFyICQ6IGFueTtcclxuXHJcbmV4cG9ydCBjb25zdCBTRUxFQ1RJWkVfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcclxuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWxlY3RpemVDb21wb25lbnQpLFxyXG4gIG11bHRpOiB0cnVlXHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2h4YS1zZWxlY3RpemUnLFxyXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cImh4LWlucHV0LWNvbnRyb2xcIiBbbmdDbGFzc109XCJjb25maWcuaW5wdXRDb250cm9sQ2xhc3Nlc1wiIFtjbGFzcy5pcy1mb2N1c2VkXT1cImlzRm9jdXNlZFwiIFtjbGFzcy5pcy12YWxpZF09XCJpc1ZhbGlkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzZWxlY3QgI3NlbGVjdGl6ZUlucHV0Pjwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwie3tpZH19XCIgY2xhc3M9XCJoeC1sYWJlbFwiPnt7Y29uZmlnLmxhYmVsfX0gPHN1cCAqbmdJZj1cImNvbmZpZy5tYW5kYXRvcnlcIj4qPC9zdXA+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImh4LWhlbHBcIj57e2NvbmZpZy5oZWxwfX08L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5gLFxyXG4gIHByb3ZpZGVyczogW1NFTEVDVElaRV9WQUxVRV9BQ0NFU1NPUl0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBzdHlsZXM6IFtgLnNlbGVjdGl6ZS1jb250cm9se3Bvc2l0aW9uOnJlbGF0aXZlfS5zZWxlY3RpemUtZHJvcGRvd24sLnNlbGVjdGl6ZS1pbnB1dCwuc2VsZWN0aXplLWlucHV0IGlucHV0e2NvbG9yOiMyYTJjMmQ7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6LjkycmVtO2xpbmUtaGVpZ2h0OjEuNTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmluaGVyaXR9LnNlbGVjdGl6ZS1jb250cm9sLnNpbmdsZSAuc2VsZWN0aXplLWlucHV0LmlucHV0LWFjdGl2ZSwuc2VsZWN0aXplLWlucHV0e2JhY2tncm91bmQ6MCAwO2N1cnNvcjp0ZXh0O2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5zZWxlY3RpemUtaW5wdXR7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4yKTtwYWRkaW5nOjhweCAwO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNoYWRvdzpub25lO2JvcmRlci1yYWRpdXM6MDtib3JkZXItd2lkdGg6MCAwIDFweH0uc2VsZWN0aXplLWNvbnRyb2wubXVsdGkgLnNlbGVjdGl6ZS1pbnB1dC5oYXMtaXRlbXN7cGFkZGluZzo2cHggMCAzcHh9LnNlbGVjdGl6ZS1jb250cm9sLm11bHRpLmhhc0NhcmV0IC5zZWxlY3RpemUtaW5wdXQuaGFzLWl0ZW1ze3BhZGRpbmctcmlnaHQ6MXJlbX0uc2VsZWN0aXplLWlucHV0LmZ1bGx7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uc2VsZWN0aXplLWlucHV0LmRpc2FibGVkLC5zZWxlY3RpemUtaW5wdXQuZGlzYWJsZWQgKntjdXJzb3I6ZGVmYXVsdCFpbXBvcnRhbnR9LnNlbGVjdGl6ZS1pbnB1dC5mb2N1c3tib3gtc2hhZG93Om5vbmV9LnNlbGVjdGl6ZS1pbnB1dC5kcm9wZG93bi1hY3RpdmV7Ym9yZGVyLXJhZGl1czowfS5zZWxlY3RpemUtaW5wdXQ+Knt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTtkaXNwbGF5OmlubGluZS1ibG9jazt6b29tOjF9LnNlbGVjdGl6ZS1jb250cm9sLm11bHRpIC5zZWxlY3RpemUtaW5wdXQ+ZGl2e2N1cnNvcjpwb2ludGVyO21hcmdpbjo0cHg7cGFkZGluZzoycHggNnB4O2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMDUpO2NvbG9yOiMyYTJjMmQ7Ym9yZGVyOjAgc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czoyOTA0ODZweDtmb250LXNpemU6Ljc1cmVtO2p1c3RpZnktY29udGVudDpjZW50ZXI7bGluZS1oZWlnaHQ6MS41O3doaXRlLXNwYWNlOm5vd3JhcH0uc2VsZWN0aXplLWNvbnRyb2wubXVsdGkgLnNlbGVjdGl6ZS1pbnB1dD5kaXYuYWN0aXZle2JhY2tncm91bmQ6I2U4ZThlODtjb2xvcjojMmEyYzJkO2JvcmRlcjowIHNvbGlkICNjYWNhY2F9LnNlbGVjdGl6ZS1jb250cm9sLm11bHRpIC5zZWxlY3RpemUtaW5wdXQuZGlzYWJsZWQ+ZGl2LC5zZWxlY3RpemUtY29udHJvbC5tdWx0aSAuc2VsZWN0aXplLWlucHV0LmRpc2FibGVkPmRpdi5hY3RpdmV7Y29sb3I6Izc4Nzg3ODtiYWNrZ3JvdW5kOnJnYmEoNzcsNzcsNzcsLjA1KTtib3JkZXI6MCBzb2xpZCByZ2JhKDc3LDc3LDc3LDApfS5zZWxlY3RpemUtaW5wdXQ+aW5wdXR7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnQ7bWluLWhlaWdodDowIWltcG9ydGFudDttYXgtaGVpZ2h0Om5vbmUhaW1wb3J0YW50O21heC13aWR0aDoxMDAlIWltcG9ydGFudDttYXJnaW46MCAycHggMCAwIWltcG9ydGFudDt0ZXh0LWluZGVudDowIWltcG9ydGFudDtib3JkZXI6MCFpbXBvcnRhbnQ7YmFja2dyb3VuZDowIDAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OmluaGVyaXQhaW1wb3J0YW50Oy13ZWJraXQtdXNlci1zZWxlY3Q6YXV0byFpbXBvcnRhbnR9LnNlbGVjdGl6ZS1pbnB1dD5pbnB1dDo6LW1zLWNsZWFye2Rpc3BsYXk6bm9uZX0uc2VsZWN0aXplLWlucHV0PmlucHV0OmZvY3Vze291dGxpbmU6MCFpbXBvcnRhbnR9LnNlbGVjdGl6ZS1pbnB1dDo6YWZ0ZXJ7Y29udGVudDonICc7ZGlzcGxheTpibG9jaztjbGVhcjpsZWZ0fS5zZWxlY3RpemUtaW5wdXQuZHJvcGRvd24tYWN0aXZlOjpiZWZvcmV7Y29udGVudDonICc7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOiNmMGYwZjA7aGVpZ2h0OjFweDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MH0uaHgtc2VsZWN0LWNvbnRyb2w6YWZ0ZXJ7ZGlzcGxheTpub25lfS5zZWxlY3RpemUtZHJvcGRvd257cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDtib3JkZXI6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZDojZmZmO21hcmdpbjoxcHggMCAwO2JvcmRlci10b3A6MDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE0NSk7Ym9yZGVyLXJhZGl1czowfS5zZWxlY3RpemUtZHJvcGRvd24gW2RhdGEtc2VsZWN0YWJsZV17Y3Vyc29yOnBvaW50ZXI7b3ZlcmZsb3c6aGlkZGVufS5zZWxlY3RpemUtZHJvcGRvd24gW2RhdGEtc2VsZWN0YWJsZV0gLmhpZ2hsaWdodHtiYWNrZ3JvdW5kOnJnYmEoMzUsNDksNDMsLjIzKTtib3JkZXItcmFkaXVzOjFweDtmb250LXdlaWdodDo3MDB9LnNlbGVjdGl6ZS1kcm9wZG93biAub3B0Z3JvdXAtaGVhZGVyLC5zZWxlY3RpemUtZHJvcGRvd24gW2RhdGEtc2VsZWN0YWJsZV17cGFkZGluZzo1cHggOHB4fS5zZWxlY3RpemUtZHJvcGRvd24gLm9wdGdyb3VwOmZpcnN0LWNoaWxkIC5vcHRncm91cC1oZWFkZXJ7Ym9yZGVyLXRvcDowfS5zZWxlY3RpemUtZHJvcGRvd24gLm9wdGdyb3VwLWhlYWRlcntjb2xvcjojMmEyYzJkO2JhY2tncm91bmQ6I2ZmZjtjdXJzb3I6ZGVmYXVsdH0uc2VsZWN0aXplLWRyb3Bkb3duIC5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojNDFiOTg3O2NvbG9yOiNmZmZ9LnNlbGVjdGl6ZS1kcm9wZG93biAuYWN0aXZlLmNyZWF0ZXtjb2xvcjojZmZmfS5zZWxlY3RpemUtZHJvcGRvd24gLmNyZWF0ZXtjb2xvcjpyZ2JhKDQyLDQ0LDQ1LC41KX0uc2VsZWN0aXplLWRyb3Bkb3duLWNvbnRlbnR7b3ZlcmZsb3cteTphdXRvO292ZXJmbG93LXg6aGlkZGVuO21heC1oZWlnaHQ6MjAwcHg7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9LnNlbGVjdGl6ZS1jb250cm9sLmhhc0NhcmV0IC5zZWxlY3RpemUtaW5wdXQsLnNlbGVjdGl6ZS1jb250cm9sLmhhc0NhcmV0IC5zZWxlY3RpemUtaW5wdXQgaW5wdXQsLnNlbGVjdGl6ZS1jb250cm9sLnNpbmdsZSAuc2VsZWN0aXplLWlucHV0LC5zZWxlY3RpemUtY29udHJvbC5zaW5nbGUgLnNlbGVjdGl6ZS1pbnB1dCBpbnB1dHtjdXJzb3I6cG9pbnRlcn0uc2VsZWN0aXplLWNvbnRyb2wuaGFzQ2FyZXQgLnNlbGVjdGl6ZS1pbnB1dC5pbnB1dC1hY3RpdmUsLnNlbGVjdGl6ZS1jb250cm9sLmhhc0NhcmV0IC5zZWxlY3RpemUtaW5wdXQuaW5wdXQtYWN0aXZlIGlucHV0LC5zZWxlY3RpemUtY29udHJvbC5zaW5nbGUgLnNlbGVjdGl6ZS1pbnB1dC5pbnB1dC1hY3RpdmUsLnNlbGVjdGl6ZS1jb250cm9sLnNpbmdsZSAuc2VsZWN0aXplLWlucHV0LmlucHV0LWFjdGl2ZSBpbnB1dHtjdXJzb3I6dGV4dH0uc2VsZWN0aXplLWNvbnRyb2wuaGFzQ2FyZXQgLnNlbGVjdGl6ZS1pbnB1dDphZnRlciwuc2VsZWN0aXplLWNvbnRyb2wuc2luZ2xlIC5zZWxlY3RpemUtaW5wdXQ6YWZ0ZXJ7Y29udGVudDonICc7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OjE1cHg7bWFyZ2luLXRvcDotM3B4O3dpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDo1cHggNXB4IDA7Ym9yZGVyLWNvbG9yOmdyZXkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnR9LnNlbGVjdGl6ZS1jb250cm9sLmhhc0NhcmV0IC5zZWxlY3RpemUtaW5wdXQuZHJvcGRvd24tYWN0aXZlOmFmdGVyLC5zZWxlY3RpemUtY29udHJvbC5zaW5nbGUgLnNlbGVjdGl6ZS1pbnB1dC5kcm9wZG93bi1hY3RpdmU6YWZ0ZXJ7bWFyZ2luLXRvcDotNHB4O2JvcmRlci13aWR0aDowIDVweCA1cHg7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50IHRyYW5zcGFyZW50IGdyZXl9LnNlbGVjdGl6ZS1jb250cm9sLm11bHRpLmhhc0NhcmV0IC5zZWxlY3RpemUtaW5wdXQuaGFzLWl0ZW1zOmFmdGVye3RvcDppbml0aWFsO2JvdHRvbToxLjNyZW19LnNlbGVjdGl6ZS1jb250cm9sLnJ0bC5oYXNDYXJldCAuc2VsZWN0aXplLWlucHV0OmFmdGVyLC5zZWxlY3RpemUtY29udHJvbC5ydGwuc2luZ2xlIC5zZWxlY3RpemUtaW5wdXQ6YWZ0ZXJ7bGVmdDoxNXB4O3JpZ2h0OmF1dG99LnNlbGVjdGl6ZS1jb250cm9sLnJ0bCAuc2VsZWN0aXplLWlucHV0PmlucHV0e21hcmdpbjowIDRweCAwIC0ycHghaW1wb3J0YW50fS5zZWxlY3RpemUtY29udHJvbCAuc2VsZWN0aXplLWlucHV0LmRpc2FibGVke29wYWNpdHk6LjU7YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhfWh4YS1zZWxlY3RpemUgLmh4LWlucHV0LWNvbnRyb2x7cGFkZGluZy10b3A6LjIxcmVtfWh4YS1zZWxlY3RpemUgLmh4LWlucHV0LWNvbnRyb2wgLmh4LWxhYmVse3Bvc2l0aW9uOmFic29sdXRlO3RvcDouN3JlbTttYXJnaW46