UNPKG

igniteui-angular

Version:

Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps

137 lines 11.7 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { InjectionToken, Input, Output, EventEmitter } from '@angular/core'; /** @enum {string} */ const DisplayDensity = { comfortable: 'comfortable', cosy: 'cosy', compact: 'compact', }; export { DisplayDensity }; /** * Describes the object used to configure the DisplayDensity in Angular DI. * @record */ export function IDisplayDensityOptions() { } if (false) { /** @type {?} */ IDisplayDensityOptions.prototype.displayDensity; } /** * @record */ export function IDensityChangedEventArgs() { } if (false) { /** @type {?} */ IDensityChangedEventArgs.prototype.oldDensity; /** @type {?} */ IDensityChangedEventArgs.prototype.newDensity; } /** * Defines the DisplayDensity DI token. * @type {?} */ export const DisplayDensityToken = new InjectionToken('DisplayDensity'); /** * Base class containing all logic required for implementing DisplayDensity. */ export class DisplayDensityBase { /** * @param {?} displayDensityOptions */ constructor(displayDensityOptions) { this.displayDensityOptions = displayDensityOptions; this.onDensityChanged = new EventEmitter(); this.oldDisplayDensityOptions = { displayDensity: DisplayDensity.comfortable }; Object.assign(this.oldDisplayDensityOptions, displayDensityOptions); } /** * Returns the theme of the component. * The default theme is `comfortable`. * Available options are `comfortable`, `cosy`, `compact`. * ```typescript * let componentTheme = this.component.displayDensity; * ``` * @return {?} */ get displayDensity() { return this._displayDensity || ((this.displayDensityOptions && this.displayDensityOptions.displayDensity) || DisplayDensity.comfortable); } /** * Sets the theme of the component. * @param {?} val * @return {?} */ set displayDensity(val) { /** @type {?} */ const currentDisplayDensity = this._displayDensity; this._displayDensity = (/** @type {?} */ (val)); if (currentDisplayDensity !== this._displayDensity) { /** @type {?} */ const densityChangedArgs = { oldDensity: currentDisplayDensity, newDensity: this._displayDensity }; this.onDensityChanged.emit(densityChangedArgs); } } /** * @return {?} */ ngDoCheck() { if (!this._displayDensity && this.displayDensityOptions && this.oldDisplayDensityOptions.displayDensity !== this.displayDensityOptions.displayDensity) { /** @type {?} */ const densityChangedArgs = { oldDensity: this.oldDisplayDensityOptions.displayDensity, newDensity: this.displayDensityOptions.displayDensity }; this.onDensityChanged.emit(densityChangedArgs); this.oldDisplayDensityOptions = Object.assign(this.oldDisplayDensityOptions, this.displayDensityOptions); } } /** * Given a style class of a component/element returns the modified version of it based * on the current display density. * @protected * @param {?} baseStyleClass * @return {?} */ getComponentDensityClass(baseStyleClass) { switch (this.displayDensity) { case DisplayDensity.cosy: return `${baseStyleClass}--${DisplayDensity.cosy}`; case DisplayDensity.compact: return `${baseStyleClass}--${DisplayDensity.compact}`; default: return baseStyleClass; } } } DisplayDensityBase.propDecorators = { displayDensity: [{ type: Input }], onDensityChanged: [{ type: Output }] }; if (false) { /** * @type {?} * @protected */ DisplayDensityBase.prototype._displayDensity; /** @type {?} */ DisplayDensityBase.prototype.onDensityChanged; /** * @type {?} * @protected */ DisplayDensityBase.prototype.oldDisplayDensityOptions; /** * @type {?} * @protected */ DisplayDensityBase.prototype.displayDensityOptions; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheURlbnNpdHkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9pZ25pdGV1aS1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2NvcmUvZGlzcGxheURlbnNpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVcsTUFBTSxlQUFlLENBQUM7OztJQU9qRixhQUFjLGFBQWE7SUFDM0IsTUFBTyxNQUFNO0lBQ2IsU0FBVSxTQUFTOzs7Ozs7O0FBTXZCLDRDQUVDOzs7SUFERyxnREFBK0I7Ozs7O0FBR25DLDhDQUdDOzs7SUFGRyw4Q0FBMkI7O0lBQzNCLDhDQUEyQjs7Ozs7O0FBTS9CLE1BQU0sT0FBTyxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBeUIsZ0JBQWdCLENBQUM7Ozs7QUFLL0YsTUFBTSxPQUFPLGtCQUFrQjs7OztJQXdDM0IsWUFBc0IscUJBQTZDO1FBQTdDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBd0I7UUFMNUQscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFFN0QsNkJBQXdCLEdBQTJCLEVBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUl4RyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Ozs7Ozs7Ozs7SUEvQkQsSUFDVyxjQUFjO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGVBQWU7WUFDdkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxDQUFDLElBQUksY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xILENBQUM7Ozs7OztJQUtELElBQVcsY0FBYyxDQUFDLEdBQTRCOztjQUM1QyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsZUFBZTtRQUNsRCxJQUFJLENBQUMsZUFBZSxHQUFHLG1CQUFBLEdBQUcsRUFBa0IsQ0FBQztRQUU3QyxJQUFJLHFCQUFxQixLQUFLLElBQUksQ0FBQyxlQUFlLEVBQUU7O2tCQUMxQyxrQkFBa0IsR0FBNkI7Z0JBQ2pELFVBQVUsRUFBRSxxQkFBcUI7Z0JBQ2pDLFVBQVUsRUFBRSxJQUFJLENBQUMsZUFBZTthQUNuQztZQUVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUNsRDtJQUNMLENBQUM7Ozs7SUFZTSxTQUFTO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLHFCQUFxQjtZQUMvQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsY0FBYyxLQUFLLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUU7O2tCQUMxRixrQkFBa0IsR0FBNkI7Z0JBQ2pELFVBQVUsRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsY0FBYztnQkFDeEQsVUFBVSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjO2FBQ3hEO1lBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUM1RztJQUNMLENBQUM7Ozs7Ozs7O0lBTVMsd0JBQXdCLENBQUMsY0FBc0I7UUFDckQsUUFBUSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3pCLEtBQUssY0FBYyxDQUFDLElBQUk7Z0JBQ3BCLE9BQU8sR0FBRyxjQUFjLEtBQUssY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZELEtBQUssY0FBYyxDQUFDLE9BQU87Z0JBQ3ZCLE9BQU8sR0FBRyxjQUFjLEtBQUssY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzFEO2dCQUNJLE9BQU8sY0FBYyxDQUFDO1NBQzdCO0lBQ0wsQ0FBQzs7OzZCQTNEQSxLQUFLOytCQXVCTCxNQUFNOzs7Ozs7O0lBakNQLDZDQUEwQzs7SUFpQzFDLDhDQUN1RTs7Ozs7SUFFdkUsc0RBQTRHOzs7OztJQUdoRyxtREFBdUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBEb0NoZWNrIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBwb3NpYmxlIHZhbHVlcyBvZiB0aGUgY29tcG9uZW50cycgZGlzcGxheSBkZW5zaXR5LlxuICovXG5leHBvcnQgZW51bSBEaXNwbGF5RGVuc2l0eSB7XG4gICAgY29tZm9ydGFibGUgPSAnY29tZm9ydGFibGUnLFxuICAgIGNvc3kgPSAnY29zeScsXG4gICAgY29tcGFjdCA9ICdjb21wYWN0J1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyB0aGUgb2JqZWN0IHVzZWQgdG8gY29uZmlndXJlIHRoZSBEaXNwbGF5RGVuc2l0eSBpbiBBbmd1bGFyIERJLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElEaXNwbGF5RGVuc2l0eU9wdGlvbnMge1xuICAgIGRpc3BsYXlEZW5zaXR5OiBEaXNwbGF5RGVuc2l0eTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGVuc2l0eUNoYW5nZWRFdmVudEFyZ3Mge1xuICAgIG9sZERlbnNpdHk6IERpc3BsYXlEZW5zaXR5O1xuICAgIG5ld0RlbnNpdHk6IERpc3BsYXlEZW5zaXR5O1xufVxuXG4vKipcbiAqIERlZmluZXMgdGhlIERpc3BsYXlEZW5zaXR5IERJIHRva2VuLlxuICovXG5leHBvcnQgY29uc3QgRGlzcGxheURlbnNpdHlUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJRGlzcGxheURlbnNpdHlPcHRpb25zPignRGlzcGxheURlbnNpdHknKTtcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGNvbnRhaW5pbmcgYWxsIGxvZ2ljIHJlcXVpcmVkIGZvciBpbXBsZW1lbnRpbmcgRGlzcGxheURlbnNpdHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBEaXNwbGF5RGVuc2l0eUJhc2UgaW1wbGVtZW50cyBEb0NoZWNrIHtcbiAgICBwcm90ZWN0ZWQgX2Rpc3BsYXlEZW5zaXR5OiBEaXNwbGF5RGVuc2l0eTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHRoZW1lIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogVGhlIGRlZmF1bHQgdGhlbWUgaXMgYGNvbWZvcnRhYmxlYC5cbiAgICAgKiBBdmFpbGFibGUgb3B0aW9ucyBhcmUgYGNvbWZvcnRhYmxlYCwgYGNvc3lgLCBgY29tcGFjdGAuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBjb21wb25lbnRUaGVtZSA9IHRoaXMuY29tcG9uZW50LmRpc3BsYXlEZW5zaXR5O1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBkaXNwbGF5RGVuc2l0eSgpOiBEaXNwbGF5RGVuc2l0eSB8IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwbGF5RGVuc2l0eSB8fFxuICAgICAgICAgICAgKCh0aGlzLmRpc3BsYXlEZW5zaXR5T3B0aW9ucyAmJiB0aGlzLmRpc3BsYXlEZW5zaXR5T3B0aW9ucy5kaXNwbGF5RGVuc2l0eSkgfHwgRGlzcGxheURlbnNpdHkuY29tZm9ydGFibGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHRoZW1lIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICovXG4gICAgcHVibGljIHNldCBkaXNwbGF5RGVuc2l0eSh2YWw6IERpc3BsYXlEZW5zaXR5IHwgc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnREaXNwbGF5RGVuc2l0eSA9IHRoaXMuX2Rpc3BsYXlEZW5zaXR5O1xuICAgICAgICB0aGlzLl9kaXNwbGF5RGVuc2l0eSA9IHZhbCBhcyBEaXNwbGF5RGVuc2l0eTtcblxuICAgICAgICBpZiAoY3VycmVudERpc3BsYXlEZW5zaXR5ICE9PSB0aGlzLl9kaXNwbGF5RGVuc2l0eSkge1xuICAgICAgICAgICAgY29uc3QgZGVuc2l0eUNoYW5nZWRBcmdzOiBJRGVuc2l0eUNoYW5nZWRFdmVudEFyZ3MgPSB7XG4gICAgICAgICAgICAgICAgb2xkRGVuc2l0eTogY3VycmVudERpc3BsYXlEZW5zaXR5LFxuICAgICAgICAgICAgICAgIG5ld0RlbnNpdHk6IHRoaXMuX2Rpc3BsYXlEZW5zaXR5XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLm9uRGVuc2l0eUNoYW5nZWQuZW1pdChkZW5zaXR5Q2hhbmdlZEFyZ3MpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9uRGVuc2l0eUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElEZW5zaXR5Q2hhbmdlZEV2ZW50QXJncz4oKTtcblxuICAgIHByb3RlY3RlZCBvbGREaXNwbGF5RGVuc2l0eU9wdGlvbnM6IElEaXNwbGF5RGVuc2l0eU9wdGlvbnMgPSB7IGRpc3BsYXlEZW5zaXR5OiBEaXNwbGF5RGVuc2l0eS5jb21mb3J0YWJsZSB9O1xuXG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZGlzcGxheURlbnNpdHlPcHRpb25zOiBJRGlzcGxheURlbnNpdHlPcHRpb25zKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5vbGREaXNwbGF5RGVuc2l0eU9wdGlvbnMsIGRpc3BsYXlEZW5zaXR5T3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nRG9DaGVjaygpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9kaXNwbGF5RGVuc2l0eSAmJiB0aGlzLmRpc3BsYXlEZW5zaXR5T3B0aW9ucyAmJlxuICAgICAgICAgICAgICAgIHRoaXMub2xkRGlzcGxheURlbnNpdHlPcHRpb25zLmRpc3BsYXlEZW5zaXR5ICE9PSB0aGlzLmRpc3BsYXlEZW5zaXR5T3B0aW9ucy5kaXNwbGF5RGVuc2l0eSkge1xuICAgICAgICAgICAgY29uc3QgZGVuc2l0eUNoYW5nZWRBcmdzOiBJRGVuc2l0eUNoYW5nZWRFdmVudEFyZ3MgPSB7XG4gICAgICAgICAgICAgICAgb2xkRGVuc2l0eTogdGhpcy5vbGREaXNwbGF5RGVuc2l0eU9wdGlvbnMuZGlzcGxheURlbnNpdHksXG4gICAgICAgICAgICAgICAgbmV3RGVuc2l0eTogdGhpcy5kaXNwbGF5RGVuc2l0eU9wdGlvbnMuZGlzcGxheURlbnNpdHlcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMub25EZW5zaXR5Q2hhbmdlZC5lbWl0KGRlbnNpdHlDaGFuZ2VkQXJncyk7XG4gICAgICAgICAgICB0aGlzLm9sZERpc3BsYXlEZW5zaXR5T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24odGhpcy5vbGREaXNwbGF5RGVuc2l0eU9wdGlvbnMsIHRoaXMuZGlzcGxheURlbnNpdHlPcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdpdmVuIGEgc3R5bGUgY2xhc3Mgb2YgYSBjb21wb25lbnQvZWxlbWVudCByZXR1cm5zIHRoZSBtb2RpZmllZCB2ZXJzaW9uIG9mIGl0IGJhc2VkXG4gICAgICogb24gdGhlIGN1cnJlbnQgZGlzcGxheSBkZW5zaXR5LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRDb21wb25lbnREZW5zaXR5Q2xhc3MoYmFzZVN0eWxlQ2xhc3M6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5kaXNwbGF5RGVuc2l0eSkge1xuICAgICAgICAgICAgY2FzZSBEaXNwbGF5RGVuc2l0eS5jb3N5OlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtiYXNlU3R5bGVDbGFzc30tLSR7RGlzcGxheURlbnNpdHkuY29zeX1gO1xuICAgICAgICAgICAgY2FzZSBEaXNwbGF5RGVuc2l0eS5jb21wYWN0OlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtiYXNlU3R5bGVDbGFzc30tLSR7RGlzcGxheURlbnNpdHkuY29tcGFjdH1gO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gYmFzZVN0eWxlQ2xhc3M7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=