UNPKG

theme-lib

Version:

This is a simple example Angular Library published to npm.

211 lines 14.6 kB
/** * @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 { Component, ChangeDetectionStrategy, ChangeDetectorRef, Input, Output, EventEmitter, HostBinding, Host, } from '@angular/core'; import { Subject } from 'rxjs'; import { takeWhile } from 'rxjs/operators'; import { NbAccordionComponent } from './accordion.component'; import { convertToBoolProperty } from '../helpers'; /* * Component intended to be used within `<nb-accordion>` component */ export class NbAccordionItemComponent { /** * @param {?} accordion * @param {?} cd */ constructor(accordion, cd) { this.accordion = accordion; this.cd = cd; /* * Emits whenever the expanded state of the accordion changes. * Primarily used to facilitate two-way binding. */ this.collapsedChange = new EventEmitter(); this.accordionItemInvalidate = new Subject(); this.collapsedValue = true; this.disabledValue = false; this.alive = true; } /* * Item is collapse (`true` by default) * @type {boolean} */ /** * @return {?} */ get collapsed() { return this.collapsedValue; } /** * @param {?} val * @return {?} */ set collapsed(val) { this.collapsedValue = convertToBoolProperty(val); this.collapsedChange.emit(this.collapsedValue); this.invalidate(); } /* * Item is expanded (`false` by default) * @type {boolean} */ /** * @return {?} */ get expanded() { return !this.collapsed; } /** * @param {?} val * @return {?} */ set expanded(val) { this.collapsedValue = !convertToBoolProperty(val); } /* * Item is disabled and cannot be opened. * @type {boolean} */ /** * @return {?} */ get disabled() { return this.disabledValue; } /** * @param {?} val * @return {?} */ set disabled(val) { this.disabledValue = convertToBoolProperty(val); this.invalidate(); } /* * Open/close the item */ /** * @return {?} */ toggle() { if (!this.disabled) { // we need this temporary variable as `openCloseItems.next` will change current value we need to save /** @type {?} */ const willSet = !this.collapsed; if (!this.accordion.multi) { this.accordion.openCloseItems.next(true); } this.collapsed = willSet; } } /* * Open the item. */ /** * @return {?} */ open() { !this.disabled && (this.collapsed = false); } /* * Collapse the item. */ /** * @return {?} */ close() { !this.disabled && (this.collapsed = true); } /** * @return {?} */ ngOnInit() { this.accordion.openCloseItems .pipe(takeWhile(() => this.alive)) .subscribe(collapsed => { !this.disabled && (this.collapsed = collapsed); }); } /** * @param {?} changes * @return {?} */ ngOnChanges(changes) { this.accordionItemInvalidate.next(true); } /** * @return {?} */ ngOnDestroy() { this.alive = false; this.accordionItemInvalidate.complete(); } /** * @private * @return {?} */ invalidate() { this.accordionItemInvalidate.next(true); this.cd.markForCheck(); } } NbAccordionItemComponent.decorators = [ { type: Component, args: [{ selector: 'nb-accordion-item', template: ` <ng-content select="nb-accordion-item-header"></ng-content> <ng-content select="nb-accordion-item-body"></ng-content> `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:flex;flex-direction:column}"] }] } ]; /** @nocollapse */ NbAccordionItemComponent.ctorParameters = () => [ { type: NbAccordionComponent, decorators: [{ type: Host }] }, { type: ChangeDetectorRef } ]; NbAccordionItemComponent.propDecorators = { collapsed: [{ type: Input, args: ['collapsed',] }, { type: HostBinding, args: ['class.collapsed',] }], expanded: [{ type: Input, args: ['expanded',] }, { type: HostBinding, args: ['class.expanded',] }], disabled: [{ type: Input, args: ['disabled',] }, { type: HostBinding, args: ['class.disabled',] }], collapsedChange: [{ type: Output }] }; if (false) { /** @type {?} */ NbAccordionItemComponent.prototype.collapsedChange; /** @type {?} */ NbAccordionItemComponent.prototype.accordionItemInvalidate; /** * @type {?} * @private */ NbAccordionItemComponent.prototype.collapsedValue; /** * @type {?} * @private */ NbAccordionItemComponent.prototype.disabledValue; /** * @type {?} * @private */ NbAccordionItemComponent.prototype.alive; /** * @type {?} * @private */ NbAccordionItemComponent.prototype.accordion; /** * @type {?} * @private */ NbAccordionItemComponent.prototype.cd; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGhlbWUtbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFNQSxPQUFPLEVBQ0wsU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosV0FBVyxFQUNYLElBQUksR0FJTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7QUFjbkQsTUFBTSxPQUFPLHdCQUF3Qjs7Ozs7SUF3RG5DLFlBQTRCLFNBQStCLEVBQVUsRUFBcUI7UUFBOUQsY0FBUyxHQUFULFNBQVMsQ0FBc0I7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFtQjs7Ozs7UUFSaEYsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXhELDRCQUF1QixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFFekMsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsVUFBSyxHQUFHLElBQUksQ0FBQztJQUdyQixDQUFDOzs7Ozs7OztJQW5ERCxJQUVJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQzs7Ozs7SUFDRCxJQUFJLFNBQVMsQ0FBQyxHQUFZO1FBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFD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SUFDOUIsaURBQThCOzs7OztJQUM5Qix5Q0FBcUI7Ozs7O0lBRVQsNkNBQStDOzs7OztJQUFFLHNDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBBa3Zlby4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgTGljZW5zZS50eHQgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi5cclxuICovXHJcblxyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdCxcclxuICBPbkluaXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBOYkFjY29yZGlvbkNvbXBvbmVudCB9IGZyb20gJy4vYWNjb3JkaW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGNvbnZlcnRUb0Jvb2xQcm9wZXJ0eSB9IGZyb20gJy4uL2hlbHBlcnMnO1xyXG5cclxuLypcclxuICogQ29tcG9uZW50IGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aGluIGA8bmItYWNjb3JkaW9uPmAgY29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ25iLWFjY29yZGlvbi1pdGVtJyxcclxuICBzdHlsZVVybHM6IFsnLi9hY2NvcmRpb24taXRlbS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJuYi1hY2NvcmRpb24taXRlbS1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJuYi1hY2NvcmRpb24taXRlbS1ib2R5XCI+PC9uZy1jb250ZW50PlxyXG4gIGAsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOYkFjY29yZGlvbkl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuXHJcbiAgLypcclxuICAgKiBJdGVtIGlzIGNvbGxhcHNlIChgdHJ1ZWAgYnkgZGVmYXVsdClcclxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgKi9cclxuICBASW5wdXQoJ2NvbGxhcHNlZCcpXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jb2xsYXBzZWQnKVxyXG4gIGdldCBjb2xsYXBzZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb2xsYXBzZWRWYWx1ZTtcclxuICB9XHJcbiAgc2V0IGNvbGxhcHNlZCh2YWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuY29sbGFwc2VkVmFsdWUgPSBjb252ZXJ0VG9Cb29sUHJvcGVydHkodmFsKTtcclxuICAgIHRoaXMuY29sbGFwc2VkQ2hhbmdlLmVtaXQodGhpcy5jb2xsYXBzZWRWYWx1ZSk7XHJcbiAgICB0aGlzLmludmFsaWRhdGUoKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogSXRlbSBpcyBleHBhbmRlZCAoYGZhbHNlYCBieSBkZWZhdWx0KVxyXG4gICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAqL1xyXG4gIEBJbnB1dCgnZXhwYW5kZWQnKVxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZXhwYW5kZWQnKVxyXG4gIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5jb2xsYXBzZWQ7XHJcbiAgfVxyXG4gIHNldCBleHBhbmRlZCh2YWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuY29sbGFwc2VkVmFsdWUgPSAhY29udmVydFRvQm9vbFByb3BlcnR5KHZhbCk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIEl0ZW0gaXMgZGlzYWJsZWQgYW5kIGNhbm5vdCBiZSBvcGVuZWQuXHJcbiAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICovXHJcbiAgQElucHV0KCdkaXNhYmxlZCcpXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kaXNhYmxlZCcpXHJcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWRWYWx1ZTtcclxuICB9XHJcbiAgc2V0IGRpc2FibGVkKHZhbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5kaXNhYmxlZFZhbHVlID0gY29udmVydFRvQm9vbFByb3BlcnR5KHZhbCk7XHJcbiAgICB0aGlzLmludmFsaWRhdGUoKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogRW1pdHMgd2hlbmV2ZXIgdGhlIGV4cGFuZGVkIHN0YXRlIG9mIHRoZSBhY2NvcmRpb24gY2hhbmdlcy5cclxuICAgKiBQcmltYXJpbHkgdXNlZCB0byBmYWNpbGl0YXRlIHR3by13YXkgYmluZGluZy5cclxuICAgKi9cclxuICBAT3V0cHV0KCkgY29sbGFwc2VkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBhY2NvcmRpb25JdGVtSW52YWxpZGF0ZSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblxyXG4gIHByaXZhdGUgY29sbGFwc2VkVmFsdWUgPSB0cnVlO1xyXG4gIHByaXZhdGUgZGlzYWJsZWRWYWx1ZSA9IGZhbHNlO1xyXG4gIHByaXZhdGUgYWxpdmUgPSB0cnVlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihASG9zdCgpIHByaXZhdGUgYWNjb3JkaW9uOiBOYkFjY29yZGlvbkNvbXBvbmVudCwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogT3Blbi9jbG9zZSB0aGUgaXRlbVxyXG4gICAqL1xyXG4gIHRvZ2dsZSgpIHtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICAvLyB3ZSBuZWVkIHRoaXMgdGVtcG9yYXJ5IHZhcmlhYmxlIGFzIGBvcGVuQ2xvc2VJdGVtcy5uZXh0YCB3aWxsIGNoYW5nZSBjdXJyZW50IHZhbHVlIHdlIG5lZWQgdG8gc2F2ZVxyXG4gICAgICBjb25zdCB3aWxsU2V0ID0gIXRoaXMuY29sbGFwc2VkO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmFjY29yZGlvbi5tdWx0aSkge1xyXG4gICAgICAgIHRoaXMuYWNjb3JkaW9uLm9wZW5DbG9zZUl0ZW1zLm5leHQodHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb2xsYXBzZWQgPSB3aWxsU2V0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBPcGVuIHRoZSBpdGVtLlxyXG4gICAqL1xyXG4gIG9wZW4oKSB7XHJcbiAgICAhdGhpcy5kaXNhYmxlZCAmJiAodGhpcy5jb2xsYXBzZWQgPSBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIENvbGxhcHNlIHRoZSBpdGVtLlxyXG4gICAqL1xyXG4gIGNsb3NlKCkge1xyXG4gICAgIXRoaXMuZGlzYWJsZWQgJiYgKHRoaXMuY29sbGFwc2VkID0gdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuYWNjb3JkaW9uLm9wZW5DbG9zZUl0ZW1zXHJcbiAgICAgIC5waXBlKHRha2VXaGlsZSgoKSA9PiB0aGlzLmFsaXZlKSlcclxuICAgICAgLnN1YnNjcmliZShjb2xsYXBzZWQgPT4ge1xyXG4gICAgICAgICF0aGlzLmRpc2FibGVkICYmICh0aGlzLmNvbGxhcHNlZCA9IGNvbGxhcHNlZCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIHRoaXMuYWNjb3JkaW9uSXRlbUludmFsaWRhdGUubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5hbGl2ZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5hY2NvcmRpb25JdGVtSW52YWxpZGF0ZS5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbnZhbGlkYXRlKCkge1xyXG4gICAgdGhpcy5hY2NvcmRpb25JdGVtSW52YWxpZGF0ZS5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcbn1cclxuIl19