theme-lib
Version:
This is a simple example Angular Library published to npm.
155 lines (153 loc) • 10.5 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/*
* @license
* Copyright Akveo. All Rights Reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*/
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, HostBinding, HostListener, Inject, Input, Output, } from '@angular/core';
import { convertToBoolProperty } from '../helpers';
import { NbSelectComponent } from './select.component';
/**
* @template T
*/
export class NbOptionComponent {
/**
* @param {?} parent
* @param {?} elementRef
* @param {?} cd
*/
constructor(parent, elementRef, cd) {
this.parent = parent;
this.elementRef = elementRef;
this.cd = cd;
/*
* Fires value on click.
* */
this.selectionChange = new EventEmitter();
this.selected = false;
this.disabled = false;
}
/**
* @param {?} disabled
* @return {?}
*/
set setDisabled(disabled) {
this.disabled = convertToBoolProperty(disabled);
}
/*
* Determines should we render checkbox.
* */
/**
* @return {?}
*/
get withCheckbox() {
return this.multiple && !!this.value;
}
/**
* @return {?}
*/
get content() {
return this.elementRef.nativeElement.textContent;
}
/**
* @return {?}
*/
get multiple() {
return this.parent.multiple;
}
/**
* @return {?}
*/
get selectedClass() {
return this.selected;
}
/**
* @return {?}
*/
get disabledClass() {
return this.disabled;
}
/**
* @return {?}
*/
onClick() {
this.selectionChange.emit(this);
}
/**
* @return {?}
*/
select() {
this.selected = true;
this.cd.markForCheck();
this.cd.detectChanges();
}
/**
* @return {?}
*/
deselect() {
this.selected = false;
this.cd.markForCheck();
this.cd.detectChanges();
}
}
NbOptionComponent.decorators = [
{ type: Component, args: [{
selector: 'nb-option',
changeDetection: ChangeDetectionStrategy.OnPush,
template: `
<nb-checkbox *ngIf="withCheckbox" [(ngModel)]="selected">
<ng-container *ngTemplateOutlet="content"></ng-container>
</nb-checkbox>
<ng-container *ngIf="!withCheckbox">
<ng-container *ngTemplateOutlet="content"></ng-container>
</ng-container>
<ng-template #content>
<ng-content></ng-content>
</ng-template>
`,
styles: ["/*!\r\n * @license\r\n * Copyright Akveo. All Rights Reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n */:host{display:block}:host.disabled{pointer-events:none}:host:hover{cursor:pointer}:host nb-checkbox{pointer-events:none}"]
}] }
];
/** @nocollapse */
NbOptionComponent.ctorParameters = () => [
{ type: undefined, decorators: [{ type: Inject, args: [forwardRef(() => NbSelectComponent),] }] },
{ type: ElementRef },
{ type: ChangeDetectorRef }
];
NbOptionComponent.propDecorators = {
value: [{ type: Input }],
setDisabled: [{ type: Input, args: ['disabled',] }],
selectionChange: [{ type: Output }],
selectedClass: [{ type: HostBinding, args: ['class.selected',] }],
disabledClass: [{ type: HostBinding, args: ['class.disabled',] }],
onClick: [{ type: HostListener, args: ['click',] }]
};
if (false) {
/** @type {?} */
NbOptionComponent.prototype.value;
/** @type {?} */
NbOptionComponent.prototype.selectionChange;
/** @type {?} */
NbOptionComponent.prototype.selected;
/** @type {?} */
NbOptionComponent.prototype.disabled;
/**
* @type {?}
* @protected
*/
NbOptionComponent.prototype.parent;
/**
* @type {?}
* @protected
*/
NbOptionComponent.prototype.elementRef;
/**
* @type {?}
* @protected
*/
NbOptionComponent.prototype.cd;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3RoZW1lLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3NlbGVjdC9vcHRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQU1BLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQXFCdkQsTUFBTSxPQUFPLGlCQUFpQjs7Ozs7O0lBbUI1QixZQUFtRSxNQUFNLEVBQ25ELFVBQXNCLEVBQ3RCLEVBQXFCO1FBRndCLFdBQU0sR0FBTixNQUFNLENBQUE7UUFDbkQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixPQUFFLEdBQUYsRUFBRSxDQUFtQjs7OztRQVBqQyxvQkFBZSxHQUF1QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRW5GLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztJQUsxQixDQUFDOzs7OztJQWhCRCxJQUNJLFdBQVcsQ0FBQyxRQUFpQjtRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Ozs7Ozs7SUFrQkQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3ZDLENBQUM7Ozs7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUNuRCxDQUFDOzs7O0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUM5QixDQUFDOzs7O0lBRUQsSUFDSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7Ozs7SUFFRCxJQUNJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQzs7OztJQUdELE9BQU87UUFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDOzs7O0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQixDQUFDOzs7O0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQixDQUFDOzs7WUFsRkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUVyQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtnQkFDL0MsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7R0FZVDs7YUFDRjs7Ozs0Q0FvQmMsTUFBTSxTQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztZQWxEdkQsVUFBVTtZQUZWLGlCQUFpQjs7O29CQXFDaEIsS0FBSzswQkFFTCxLQUFLLFNBQUMsVUFBVTs4QkFRaEIsTUFBTTs0QkF5Qk4sV0FBVyxTQUFDLGdCQUFnQjs0QkFLNUIsV0FBVyxTQUFDLGdCQUFnQjtzQkFLNUIsWUFBWSxTQUFDLE9BQU87Ozs7SUE3Q3JCLGtDQUFrQjs7SUFVbEIsNENBQW1GOztJQUVuRixxQ0FBMEI7O0lBQzFCLHFDQUEwQjs7Ozs7SUFFZCxtQ0FBNkQ7Ozs7O0lBQzdELHVDQUFnQzs7Ozs7SUFDaEMsK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNvbnZlcnRUb0Jvb2xQcm9wZXJ0eSB9IGZyb20gJy4uL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBOYlNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LmNvbXBvbmVudCc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduYi1vcHRpb24nLFxyXG4gIHN0eWxlVXJsczogWycuL29wdGlvbi5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bmItY2hlY2tib3ggKm5nSWY9XCJ3aXRoQ2hlY2tib3hcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25iLWNoZWNrYm94PlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhd2l0aENoZWNrYm94XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5iT3B0aW9uQ29tcG9uZW50PFQ+IHtcclxuICAvKlxyXG4gICAqIE9wdGlvbiB2YWx1ZSB0aGF0IHdpbGwgYmUgZmlyZWQgb24gc2VsZWN0aW9uLlxyXG4gICAqICovXHJcbiAgQElucHV0KCkgdmFsdWU6IFQ7XHJcblxyXG4gIEBJbnB1dCgnZGlzYWJsZWQnKVxyXG4gIHNldCBzZXREaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGNvbnZlcnRUb0Jvb2xQcm9wZXJ0eShkaXNhYmxlZCk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIEZpcmVzIHZhbHVlIG9uIGNsaWNrLlxyXG4gICAqICovXHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPE5iT3B0aW9uQ29tcG9uZW50PFQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gTmJTZWxlY3RDb21wb25lbnQpKSBwcm90ZWN0ZWQgcGFyZW50LFxyXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogRGV0ZXJtaW5lcyBzaG91bGQgd2UgcmVuZGVyIGNoZWNrYm94LlxyXG4gICAqICovXHJcbiAgZ2V0IHdpdGhDaGVja2JveCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm11bHRpcGxlICYmICEhdGhpcy52YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBjb250ZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0IG11bHRpcGxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucGFyZW50Lm11bHRpcGxlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zZWxlY3RlZCcpXHJcbiAgZ2V0IHNlbGVjdGVkQ2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZDtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZGlzYWJsZWQnKVxyXG4gIGdldCBkaXNhYmxlZENsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXHJcbiAgb25DbGljaygpIHtcclxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcyk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3QoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGRlc2VsZWN0KCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG5cclxuIl19