ngx-materialize
Version:
An Angular wrap around Materialize library
162 lines (161 loc) • 12.5 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import { Component, ElementRef, EventEmitter, forwardRef, Input, NgZone, Output } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
export class MzChipInputComponent {
/**
* @param {?} elementRef
* @param {?} zone
*/
constructor(elementRef, zone) {
this.elementRef = elementRef;
this.zone = zone;
this.add = new EventEmitter();
this.delete = new EventEmitter();
this.select = new EventEmitter();
this.onChangeCallback = (data) => { };
}
/**
* @return {?}
*/
get value() {
return /** @type {?} */ (this.chipInputElement.material_chip('data'));
}
/**
* @return {?}
*/
ngOnInit() {
this.initElements();
this.initMaterializeChip();
}
/**
* @return {?}
*/
ngOnDestroy() {
this.chipInputElement.off('chip.add');
this.chipInputElement.off('chip.delete');
this.chipInputElement.off('chip.select');
}
/**
* @return {?}
*/
initElements() {
this.chipInputElement = $(this.elementRef.nativeElement);
}
/**
* @param {?=} value
* @return {?}
*/
initMaterializeChip(value) {
// fix issue autocomplete is not a function
// https://github.com/Dogfalo/materialize/issues/4401
this.zone.runOutsideAngular(() => {
setTimeout(() => {
this.chipInputElement.material_chip({
autocompleteOptions: this.autocompleteOptions,
data: value || this.value,
placeholder: this.placeholder,
secondaryPlaceholder: this.secondaryPlaceholder,
});
});
});
this.chipInputElement.on('chip.add', (event, chip) => {
this.onChangeCallback(this.value);
this.add.emit(chip);
});
this.chipInputElement.on('chip.delete', (event, chip) => {
this.onChangeCallback(this.value);
this.delete.emit(chip);
});
this.chipInputElement.on('chip.select', (event, chip) => {
this.select.emit(chip);
});
}
/**
* @param {?} fn
* @return {?}
*/
registerOnChange(fn) {
this.onChangeCallback = fn;
}
/**
* @param {?} fn
* @return {?}
*/
registerOnTouched(fn) { }
/**
* @param {?} isDisabled
* @return {?}
*/
setDisabledState(isDisabled) { }
/**
* @param {?} value
* @return {?}
*/
writeValue(value) {
if (value && value !== this.value) {
this.initMaterializeChip(value);
}
}
}
MzChipInputComponent.decorators = [
{ type: Component, args: [{
selector: 'mz-chip-input',
template: ``,
styles: [`:host{display:block}`],
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => MzChipInputComponent),
multi: true,
},
],
},] },
];
/** @nocollapse */
MzChipInputComponent.ctorParameters = () => [
{ type: ElementRef, },
{ type: NgZone, },
];
MzChipInputComponent.propDecorators = {
"autocompleteOptions": [{ type: Input },],
"placeholder": [{ type: Input },],
"secondaryPlaceholder": [{ type: Input },],
"add": [{ type: Output },],
"delete": [{ type: Output },],
"select": [{ type: Output },],
};
function MzChipInputComponent_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
MzChipInputComponent.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
MzChipInputComponent.ctorParameters;
/** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
MzChipInputComponent.propDecorators;
/** @type {?} */
MzChipInputComponent.prototype.autocompleteOptions;
/** @type {?} */
MzChipInputComponent.prototype.placeholder;
/** @type {?} */
MzChipInputComponent.prototype.secondaryPlaceholder;
/** @type {?} */
MzChipInputComponent.prototype.add;
/** @type {?} */
MzChipInputComponent.prototype.delete;
/** @type {?} */
MzChipInputComponent.prototype.select;
/** @type {?} */
MzChipInputComponent.prototype.chipInputElement;
/** @type {?} */
MzChipInputComponent.prototype.onChangeCallback;
/** @type {?} */
MzChipInputComponent.prototype.elementRef;
/** @type {?} */
MzChipInputComponent.prototype.zone;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtbWF0ZXJpYWxpemUvIiwic291cmNlcyI6WyJzcmMvY2hpcC9jaGlwLWlucHV0L2NoaXAtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFjekUsTUFBTTs7Ozs7SUFjSixZQUNVLFlBQ0E7UUFEQSxlQUFVLEdBQVYsVUFBVTtRQUNWLFNBQUksR0FBSixJQUFJO21CQVpFLElBQUksWUFBWSxFQUE4QjtzQkFDM0MsSUFBSSxZQUFZLEVBQThCO3NCQUM5QyxJQUFJLFlBQVksRUFBOEI7Z0NBeUV0QyxDQUFDLElBQWtDLEVBQUUsRUFBRSxJQUFHO0tBOURoRTs7OztJQVRMLElBQUksS0FBSztRQUNQLE1BQU0sbUJBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQWlDLEVBQUM7S0FDcEY7Ozs7SUFTRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0tBQzVCOzs7O0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBQzFDOzs7O0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUMxRDs7Ozs7SUFFRCxtQkFBbUIsQ0FBQyxLQUFvQzs7O1FBR3RELElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQy9CLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztvQkFDbEMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtvQkFDN0MsSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSztvQkFDekIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO29CQUM3QixvQkFBb0IsRUFBRSxJQUFJLENBQUMsb0JBQW9CO2lCQUNoRCxDQUFDLENBQUM7YUFDSixDQUFDLENBQUM7U0FDSixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFnQyxFQUFFLEVBQUU7WUFDL0UsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNyQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFnQyxFQUFFLEVBQUU7WUFDbEYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFnQyxFQUFFLEVBQUU7WUFDbEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEIsQ0FBQyxDQUFDO0tBQ0o7Ozs7O0lBSUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0tBQzVCOzs7OztJQUVELGlCQUFpQixDQUFDLEVBQU8sS0FBSzs7Ozs7SUFFOUIsZ0JBQWdCLENBQUMsVUFBbUIsS0FBSzs7Ozs7SUFFekMsVUFBVSxDQUFDLEtBQW1DO1FBQzVDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2pDO0tBQ0Y7OztZQXZGRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLFFBQVEsRUFBRSxFQUFFO2dCQUNaLE1BQU0sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2dCQUNoQyxTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzt3QkFDbkQsS0FBSyxFQUFFLElBQUk7cUJBQ1o7aUJBQ0Y7YUFDRjs7OztZQWRtQixVQUFVO1lBQW1DLE1BQU07OztvQ0FnQnBFLEtBQUs7NEJBQ0wsS0FBSztxQ0FDTCxLQUFLO29CQUNMLE1BQU07dUJBQ04sTUFBTTt1QkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtei1jaGlwLWlucHV0JyxcclxuICB0ZW1wbGF0ZTogYGAsXHJcbiAgc3R5bGVzOiBbYDpob3N0e2Rpc3BsYXk6YmxvY2t9YF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNekNoaXBJbnB1dENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXpDaGlwSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGF1dG9jb21wbGV0ZU9wdGlvbnM6IE1hdGVyaWFsaXplLkF1dG9Db21wbGV0ZU9wdGlvbnM7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBASW5wdXQoKSBzZWNvbmRhcnlQbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSBhZGQgPSBuZXcgRXZlbnRFbWl0dGVyPE1hdGVyaWFsaXplLkNoaXBEYXRhT2JqZWN0PigpO1xyXG4gIEBPdXRwdXQoKSBkZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPE1hdGVyaWFsaXplLkNoaXBEYXRhT2JqZWN0PigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPE1hdGVyaWFsaXplLkNoaXBEYXRhT2JqZWN0PigpO1xyXG5cclxuICBnZXQgdmFsdWUoKTogTWF0ZXJpYWxpemUuQ2hpcERhdGFPYmplY3RbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGlwSW5wdXRFbGVtZW50Lm1hdGVyaWFsX2NoaXAoJ2RhdGEnKSBhcyBNYXRlcmlhbGl6ZS5DaGlwRGF0YU9iamVjdFtdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGlwSW5wdXRFbGVtZW50OiBKUXVlcnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXRFbGVtZW50cygpO1xyXG4gICAgdGhpcy5pbml0TWF0ZXJpYWxpemVDaGlwKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuY2hpcElucHV0RWxlbWVudC5vZmYoJ2NoaXAuYWRkJyk7XHJcbiAgICB0aGlzLmNoaXBJbnB1dEVsZW1lbnQub2ZmKCdjaGlwLmRlbGV0ZScpO1xyXG4gICAgdGhpcy5jaGlwSW5wdXRFbGVtZW50Lm9mZignY2hpcC5zZWxlY3QnKTtcclxuICB9XHJcblxyXG4gIGluaXRFbGVtZW50cygpIHtcclxuICAgIHRoaXMuY2hpcElucHV0RWxlbWVudCA9ICQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgaW5pdE1hdGVyaWFsaXplQ2hpcCh2YWx1ZT86IE1hdGVyaWFsaXplLkNoaXBEYXRhT2JqZWN0W10pIHtcclxuICAgIC8vIGZpeCBpc3N1ZSBhdXRvY29tcGxldGUgaXMgbm90IGEgZnVuY3Rpb25cclxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9Eb2dmYWxvL21hdGVyaWFsaXplL2lzc3Vlcy80NDAxXHJcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmNoaXBJbnB1dEVsZW1lbnQubWF0ZXJpYWxfY2hpcCh7XHJcbiAgICAgICAgICBhdXRvY29tcGxldGVPcHRpb25zOiB0aGlzLmF1dG9jb21wbGV0ZU9wdGlvbnMsXHJcbiAgICAgICAgICBkYXRhOiB2YWx1ZSB8fCB0aGlzLnZhbHVlLFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMucGxhY2Vob2xkZXIsXHJcbiAgICAgICAgICBzZWNvbmRhcnlQbGFjZWhvbGRlcjogdGhpcy5zZWNvbmRhcnlQbGFjZWhvbGRlcixcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmNoaXBJbnB1dEVsZW1lbnQub24oJ2NoaXAuYWRkJywgKGV2ZW50LCBjaGlwOiBNYXRlcmlhbGl6ZS5DaGlwRGF0YU9iamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodGhpcy52YWx1ZSk7XHJcbiAgICAgIHRoaXMuYWRkLmVtaXQoY2hpcCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2hpcElucHV0RWxlbWVudC5vbignY2hpcC5kZWxldGUnLCAoZXZlbnQsIGNoaXA6IE1hdGVyaWFsaXplLkNoaXBEYXRhT2JqZWN0KSA9PiB7XHJcbiAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLnZhbHVlKTtcclxuICAgICAgdGhpcy5kZWxldGUuZW1pdChjaGlwKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5jaGlwSW5wdXRFbGVtZW50Lm9uKCdjaGlwLnNlbGVjdCcsIChldmVudCwgY2hpcDogTWF0ZXJpYWxpemUuQ2hpcERhdGFPYmplY3QpID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3QuZW1pdChjaGlwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIENvbnRyb2xWYWx1ZUFjY2Vzc29yXHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7IH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7IH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogTWF0ZXJpYWxpemUuQ2hpcERhdGFPYmplY3RbXSkge1xyXG4gICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSB0aGlzLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaW5pdE1hdGVyaWFsaXplQ2hpcCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyNlbmRyZWdpb24gQ29udHJvbFZhbHVlQWNjZXNzb3JcclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrID0gKGRhdGE6IE1hdGVyaWFsaXplLkNoaXBEYXRhT2JqZWN0W10pID0+IHt9O1xyXG59XHJcbiJdfQ==