theme-lib
Version:
This is a simple example Angular Library published to npm.
272 lines • 17 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 { 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==