UNPKG

theme-lib

Version:

This is a simple example Angular Library published to npm.

272 lines 17 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 */ var NbAccordionItemComponent = /** @class */ (function () { function NbAccordionItemComponent(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; } Object.defineProperty(NbAccordionItemComponent.prototype, "collapsed", { /* * Item is collapse (`true` by default) * @type {boolean} */ get: /* * Item is collapse (`true` by default) * @type {boolean} */ /** * @return {?} */ function () { return this.collapsedValue; }, set: /** * @param {?} val * @return {?} */ function (val) { this.collapsedValue = convertToBoolProperty(val); this.collapsedChange.emit(this.collapsedValue); this.invalidate(); }, enumerable: true, configurable: true }); Object.defineProperty(NbAccordionItemComponent.prototype, "expanded", { /* * Item is expanded (`false` by default) * @type {boolean} */ get: /* * Item is expanded (`false` by default) * @type {boolean} */ /** * @return {?} */ function () { return !this.collapsed; }, set: /** * @param {?} val * @return {?} */ function (val) { this.collapsedValue = !convertToBoolProperty(val); }, enumerable: true, configurable: true }); Object.defineProperty(NbAccordionItemComponent.prototype, "disabled", { /* * Item is disabled and cannot be opened. * @type {boolean} */ get: /* * Item is disabled and cannot be opened. * @type {boolean} */ /** * @return {?} */ function () { return this.disabledValue; }, set: /** * @param {?} val * @return {?} */ function (val) { this.disabledValue = convertToBoolProperty(val); this.invalidate(); }, enumerable: true, configurable: true }); /* * Open/close the item */ /* * Open/close the item */ /** * @return {?} */ NbAccordionItemComponent.prototype.toggle = /* * Open/close the item */ /** * @return {?} */ function () { if (!this.disabled) { // we need this temporary variable as `openCloseItems.next` will change current value we need to save /** @type {?} */ var willSet = !this.collapsed; if (!this.accordion.multi) { this.accordion.openCloseItems.next(true); } this.collapsed = willSet; } }; /* * Open the item. */ /* * Open the item. */ /** * @return {?} */ NbAccordionItemComponent.prototype.open = /* * Open the item. */ /** * @return {?} */ function () { !this.disabled && (this.collapsed = false); }; /* * Collapse the item. */ /* * Collapse the item. */ /** * @return {?} */ NbAccordionItemComponent.prototype.close = /* * Collapse the item. */ /** * @return {?} */ function () { !this.disabled && (this.collapsed = true); }; /** * @return {?} */ NbAccordionItemComponent.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; this.accordion.openCloseItems .pipe(takeWhile(function () { return _this.alive; })) .subscribe(function (collapsed) { !_this.disabled && (_this.collapsed = collapsed); }); }; /** * @param {?} changes * @return {?} */ NbAccordionItemComponent.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { this.accordionItemInvalidate.next(true); }; /** * @return {?} */ NbAccordionItemComponent.prototype.ngOnDestroy = /** * @return {?} */ function () { this.alive = false; this.accordionItemInvalidate.complete(); }; /** * @private * @return {?} */ NbAccordionItemComponent.prototype.invalidate = /** * @private * @return {?} */ function () { this.accordionItemInvalidate.next(true); this.cd.markForCheck(); }; NbAccordionItemComponent.decorators = [ { type: Component, args: [{ selector: 'nb-accordion-item', template: "\n <ng-content select=\"nb-accordion-item-header\"></ng-content>\n <ng-content select=\"nb-accordion-item-body\"></ng-content>\n ", changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:flex;flex-direction:column}"] }] } ]; /** @nocollapse */ NbAccordionItemComponent.ctorParameters = function () { return [ { 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 }] }; return NbAccordionItemComponent; }()); export { NbAccordionItemComponent }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGhlbWUtbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFNQSxPQUFPLEVBQ0wsU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosV0FBVyxFQUNYLElBQUksR0FJTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7QUFLbkQ7SUFpRUUsa0NBQTRCLFNBQStCLEVBQVUsRUFBcUI7UUFBOUQsY0FBUyxHQUFULFNBQVMsQ0FBc0I7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFtQjs7Ozs7UUFSaEYsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXhELDRCQUF1QixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFFekMsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsVUFBSyxHQUFHLElBQUksQ0FBQztJQUdyQixDQUFDO0lBbkRELHNCQUVJLCtDQUFTO1FBTmI7OztXQUdHOzs7Ozs7OztRQUNIO1lBR0UsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzdCLENBQUM7Ozs7O1FBQ0QsVUFBYyxHQUFZO1lBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFD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U0FBQyxVQUFVLGNBQ2hCLFdBQVcsU0FBQyxnQkFBZ0I7MkJBWTVCLEtBQUssU0FBQyxVQUFVLGNBQ2hCLFdBQVcsU0FBQyxnQkFBZ0I7a0NBYTVCLE1BQU07O0lBNkRULCtCQUFDO0NBQUEsQUF0SEQsSUFzSEM7U0E3R1ksd0JBQXdCOzs7SUFnRG5DLG1EQUF3RDs7SUFFeEQsMkRBQWlEOzs7OztJQUVqRCxrREFBOEI7Ozs7O0lBQzlCLGlEQUE4Qjs7Ozs7SUFDOUIseUNBQXFCOzs7OztJQUVULDZDQUErQzs7Ozs7SUFBRSxzQ0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgQWt2ZW8uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3QsXHJcbiAgT25Jbml0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgTmJBY2NvcmRpb25Db21wb25lbnQgfSBmcm9tICcuL2FjY29yZGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sUHJvcGVydHkgfSBmcm9tICcuLi9oZWxwZXJzJztcclxuXHJcbi8qXHJcbiAqIENvbXBvbmVudCBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGhpbiBgPG5iLWFjY29yZGlvbj5gIGNvbXBvbmVudFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduYi1hY2NvcmRpb24taXRlbScsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibmItYWNjb3JkaW9uLWl0ZW0taGVhZGVyXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibmItYWNjb3JkaW9uLWl0ZW0tYm9keVwiPjwvbmctY29udGVudD5cclxuICBgLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmJBY2NvcmRpb25JdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcblxyXG4gIC8qXHJcbiAgICogSXRlbSBpcyBjb2xsYXBzZSAoYHRydWVgIGJ5IGRlZmF1bHQpXHJcbiAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICovXHJcbiAgQElucHV0KCdjb2xsYXBzZWQnKVxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY29sbGFwc2VkJylcclxuICBnZXQgY29sbGFwc2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29sbGFwc2VkVmFsdWU7XHJcbiAgfVxyXG4gIHNldCBjb2xsYXBzZWQodmFsOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmNvbGxhcHNlZFZhbHVlID0gY29udmVydFRvQm9vbFByb3BlcnR5KHZhbCk7XHJcbiAgICB0aGlzLmNvbGxhcHNlZENoYW5nZS5lbWl0KHRoaXMuY29sbGFwc2VkVmFsdWUpO1xyXG4gICAgdGhpcy5pbnZhbGlkYXRlKCk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIEl0ZW0gaXMgZXhwYW5kZWQgKGBmYWxzZWAgYnkgZGVmYXVsdClcclxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgKi9cclxuICBASW5wdXQoJ2V4cGFuZGVkJylcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmV4cGFuZGVkJylcclxuICBnZXQgZXhwYW5kZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMuY29sbGFwc2VkO1xyXG4gIH1cclxuICBzZXQgZXhwYW5kZWQodmFsOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmNvbGxhcHNlZFZhbHVlID0gIWNvbnZlcnRUb0Jvb2xQcm9wZXJ0eSh2YWwpO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBJdGVtIGlzIGRpc2FibGVkIGFuZCBjYW5ub3QgYmUgb3BlbmVkLlxyXG4gICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAqL1xyXG4gIEBJbnB1dCgnZGlzYWJsZWQnKVxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZGlzYWJsZWQnKVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmRpc2FibGVkVmFsdWU7XHJcbiAgfVxyXG4gIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZGlzYWJsZWRWYWx1ZSA9IGNvbnZlcnRUb0Jvb2xQcm9wZXJ0eSh2YWwpO1xyXG4gICAgdGhpcy5pbnZhbGlkYXRlKCk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIEVtaXRzIHdoZW5ldmVyIHRoZSBleHBhbmRlZCBzdGF0ZSBvZiB0aGUgYWNjb3JkaW9uIGNoYW5nZXMuXHJcbiAgICogUHJpbWFyaWx5IHVzZWQgdG8gZmFjaWxpdGF0ZSB0d28td2F5IGJpbmRpbmcuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGNvbGxhcHNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgYWNjb3JkaW9uSXRlbUludmFsaWRhdGUgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG5cclxuICBwcml2YXRlIGNvbGxhcHNlZFZhbHVlID0gdHJ1ZTtcclxuICBwcml2YXRlIGRpc2FibGVkVmFsdWUgPSBmYWxzZTtcclxuICBwcml2YXRlIGFsaXZlID0gdHJ1ZTtcclxuXHJcbiAgY29uc3RydWN0b3IoQEhvc3QoKSBwcml2YXRlIGFjY29yZGlvbjogTmJBY2NvcmRpb25Db21wb25lbnQsIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIE9wZW4vY2xvc2UgdGhlIGl0ZW1cclxuICAgKi9cclxuICB0b2dnbGUoKSB7XHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgLy8gd2UgbmVlZCB0aGlzIHRlbXBvcmFyeSB2YXJpYWJsZSBhcyBgb3BlbkNsb3NlSXRlbXMubmV4dGAgd2lsbCBjaGFuZ2UgY3VycmVudCB2YWx1ZSB3ZSBuZWVkIHRvIHNhdmVcclxuICAgICAgY29uc3Qgd2lsbFNldCA9ICF0aGlzLmNvbGxhcHNlZDtcclxuXHJcbiAgICAgIGlmICghdGhpcy5hY2NvcmRpb24ubXVsdGkpIHtcclxuICAgICAgICB0aGlzLmFjY29yZGlvbi5vcGVuQ2xvc2VJdGVtcy5uZXh0KHRydWUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29sbGFwc2VkID0gd2lsbFNldDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogT3BlbiB0aGUgaXRlbS5cclxuICAgKi9cclxuICBvcGVuKCkge1xyXG4gICAgIXRoaXMuZGlzYWJsZWQgJiYgKHRoaXMuY29sbGFwc2VkID0gZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBDb2xsYXBzZSB0aGUgaXRlbS5cclxuICAgKi9cclxuICBjbG9zZSgpIHtcclxuICAgICF0aGlzLmRpc2FibGVkICYmICh0aGlzLmNvbGxhcHNlZCA9IHRydWUpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmFjY29yZGlvbi5vcGVuQ2xvc2VJdGVtc1xyXG4gICAgICAucGlwZSh0YWtlV2hpbGUoKCkgPT4gdGhpcy5hbGl2ZSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoY29sbGFwc2VkID0+IHtcclxuICAgICAgICAhdGhpcy5kaXNhYmxlZCAmJiAodGhpcy5jb2xsYXBzZWQgPSBjb2xsYXBzZWQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICB0aGlzLmFjY29yZGlvbkl0ZW1JbnZhbGlkYXRlLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuYWxpdmUgPSBmYWxzZTtcclxuICAgIHRoaXMuYWNjb3JkaW9uSXRlbUludmFsaWRhdGUuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW52YWxpZGF0ZSgpIHtcclxuICAgIHRoaXMuYWNjb3JkaW9uSXRlbUludmFsaWRhdGUubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==