UNPKG

theme-lib

Version:

This is a simple example Angular Library published to npm.

200 lines 11.9 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 { Inject, Injectable } from '@angular/core'; import { NB_MEDIA_BREAKPOINTS } from '../theme.options'; /** * @record */ export function NbMediaBreakpoint() { } if (false) { /** @type {?} */ NbMediaBreakpoint.prototype.name; /** @type {?} */ NbMediaBreakpoint.prototype.width; } /** @type {?} */ export var DEFAULT_MEDIA_BREAKPOINTS = [ { name: 'xs', width: 0, }, { name: 'is', width: 400, }, { name: 'sm', width: 576, }, { name: 'md', width: 768, }, { name: 'lg', width: 992, }, { name: 'xl', width: 1200, }, { name: 'xxl', width: 1400, }, { name: 'xxxl', width: 1600, }, ]; /* * Manages media breakpoints * * Provides access to available media breakpoints to convert window width to a configured breakpoint, * e.g. 200px - *xs* breakpoint */ var NbMediaBreakpointsService = /** @class */ (function () { function NbMediaBreakpointsService(breakpoints) { this.breakpoints = breakpoints; this.breakpointsMap = this.breakpoints.reduce(function (res, b) { res[b.name] = b.width; return res; }, {}); } /* * Returns a configured breakpoint by width * @param width number * @returns {Z|{name: string, width: number}} */ /* * Returns a configured breakpoint by width * @param width number * @returns {Z|{name: string, width: number}} */ /** * @param {?} width * @return {?} */ NbMediaBreakpointsService.prototype.getByWidth = /* * Returns a configured breakpoint by width * @param width number * @returns {Z|{name: string, width: number}} */ /** * @param {?} width * @return {?} */ function (width) { /** @type {?} */ var unknown = { name: 'unknown', width: width }; /** @type {?} */ var breakpoints = this.getBreakpoints(); return breakpoints .find(function (point, index) { /** @type {?} */ var next = breakpoints[index + 1]; return width >= point.width && (!next || width < next.width); }) || unknown; }; /* * Returns a configured breakpoint by name * @param name string * @returns NbMediaBreakpoint */ /* * Returns a configured breakpoint by name * @param name string * @returns NbMediaBreakpoint */ /** * @param {?} name * @return {?} */ NbMediaBreakpointsService.prototype.getByName = /* * Returns a configured breakpoint by name * @param name string * @returns NbMediaBreakpoint */ /** * @param {?} name * @return {?} */ function (name) { /** @type {?} */ var unknown = { name: 'unknown', width: NaN }; /** @type {?} */ var breakpoints = this.getBreakpoints(); return breakpoints.find(function (point) { return name === point.name; }) || unknown; }; /* * Returns a list of configured breakpoints for the theme * @returns NbMediaBreakpoint[] */ /* * Returns a list of configured breakpoints for the theme * @returns NbMediaBreakpoint[] */ /** * @return {?} */ NbMediaBreakpointsService.prototype.getBreakpoints = /* * Returns a list of configured breakpoints for the theme * @returns NbMediaBreakpoint[] */ /** * @return {?} */ function () { return this.breakpoints; }; /* * Returns a map of configured breakpoints for the theme * @returns {[p: string]: number} */ /* * Returns a map of configured breakpoints for the theme * @returns {[p: string]: number} */ /** * @return {?} */ NbMediaBreakpointsService.prototype.getBreakpointsMap = /* * Returns a map of configured breakpoints for the theme * @returns {[p: string]: number} */ /** * @return {?} */ function () { return this.breakpointsMap; }; NbMediaBreakpointsService.decorators = [ { type: Injectable } ]; /** @nocollapse */ NbMediaBreakpointsService.ctorParameters = function () { return [ { type: undefined, decorators: [{ type: Inject, args: [NB_MEDIA_BREAKPOINTS,] }] } ]; }; return NbMediaBreakpointsService; }()); export { NbMediaBreakpointsService }; if (false) { /** * @type {?} * @private */ NbMediaBreakpointsService.prototype.breakpointsMap; /** * @type {?} * @private */ NbMediaBreakpointsService.prototype.breakpoints; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWtwb2ludHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3RoZW1lLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9icmVha3BvaW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQU1BLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBT3hELHVDQUdDOzs7SUFGQyxpQ0FBYTs7SUFDYixrQ0FBYzs7O0FBR2hCLE1BQU0sS0FBTyx5QkFBeUIsR0FBRztJQUN2QztRQUNFLElBQUksRUFBRSxJQUFJO1FBQ1YsS0FBSyxFQUFFLENBQUM7S0FDVDtJQUNEO1FBQ0UsSUFBSSxFQUFFLElBQUk7UUFDVixLQUFLLEVBQUUsR0FBRztLQUNYO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsSUFBSTtRQUNWLEtBQUssRUFBRSxHQUFHO0tBQ1g7SUFDRDtRQUNFLElBQUksRUFBRSxJQUFJO1FBQ1YsS0FBSyxFQUFFLEdBQUc7S0FDWDtJQUNEO1FBQ0UsSUFBSSxFQUFFLElBQUk7UUFDVixLQUFLLEVBQUUsR0FBRztLQUNYO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsSUFBSTtRQUNWLEtBQUssRUFBRSxJQUFJO0tBQ1o7SUFDRDtRQUNFLElBQUksRUFBRSxLQUFLO1FBQ1gsS0FBSyxFQUFFLElBQUk7S0FDWjtJQUNEO1FBQ0UsSUFBSSxFQUFFLE1BQU07UUFDWixLQUFLLEVBQUUsSUFBSTtLQUNaO0NBQ0Y7Ozs7Ozs7QUFRRDtJQUtFLG1DQUFrRCxXQUFXO1FBQVgsZ0JBQVcsR0FBWCxXQUFXLENBQUE7UUFDM0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFDLEdBQUcsRUFBRSxDQUFvQjtZQUN0RSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDdEIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDO0lBRUQ7Ozs7T0FJRzs7Ozs7Ozs7OztJQUNILDhDQUFVOzs7Ozs7Ozs7SUFBVixVQUFXLEtBQWE7O1lBQ2hCLE9BQU8sR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTs7WUFDM0MsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUU7UUFFekMsT0FBTyxXQUFXO2FBQ2YsSUFBSSxDQUFDLFVBQUMsS0FBd0IsRUFBRSxLQUFhOztnQkFDdEMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLE9BQU8sS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQztJQUNsQixDQUFDO0lBRUQ7Ozs7T0FJRzs7Ozs7Ozs7OztJQUNILDZDQUFTOzs7Ozs7Ozs7SUFBVCxVQUFVLElBQVk7O1lBQ2QsT0FBTyxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFOztZQUN6QyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRTtRQUV6QyxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBQyxLQUF3QixJQUFLLE9BQUEsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLEVBQW5CLENBQW1CLENBQUMsSUFBSSxPQUFPLENBQUM7SUFDeEYsQ0FBQztJQUVEOzs7T0FHRzs7Ozs7Ozs7SUFDSCxrREFBYzs7Ozs7OztJQUFkO1FBQ0UsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7O09BR0c7Ozs7Ozs7O0lBQ0gscURBQWlCOzs7Ozs7O0lBQWpCO1FBQ0UsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7O2dCQXRERixVQUFVOzs7O2dEQUtJLE1BQU0sU0FBQyxvQkFBb0I7O0lBa0QxQyxnQ0FBQztDQUFBLEFBdkRELElBdURDO1NBdERZLHlCQUF5Qjs7Ozs7O0lBRXBDLG1EQUF5RDs7Ozs7SUFFN0MsZ0RBQWlEIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IEFrdmVvLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSBMaWNlbnNlLnR4dCBpbiB0aGUgcHJvamVjdCByb290IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOQl9NRURJQV9CUkVBS1BPSU5UUyB9IGZyb20gJy4uL3RoZW1lLm9wdGlvbnMnO1xyXG5cclxuLypcclxuICogTWVkaWEgYnJlYWtwb2ludCB0eXBlXHJcbiAqXHJcbiAqIFdoZXJlIGBuYW1lYCAtIGJyZWFrcG9pbnQgbmFtZSBhbGlhcyAoZS5nLiB4cywgc20sIG1kLCBldGMpLCBhbmQgd2lkdGggLSBtaW4gYnJlYWtwb2ludCB3aWR0aFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBOYk1lZGlhQnJlYWtwb2ludCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHdpZHRoOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX01FRElBX0JSRUFLUE9JTlRTID0gW1xyXG4gIHtcclxuICAgIG5hbWU6ICd4cycsXHJcbiAgICB3aWR0aDogMCxcclxuICB9LFxyXG4gIHtcclxuICAgIG5hbWU6ICdpcycsXHJcbiAgICB3aWR0aDogNDAwLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogJ3NtJyxcclxuICAgIHdpZHRoOiA1NzYsXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiAnbWQnLFxyXG4gICAgd2lkdGg6IDc2OCxcclxuICB9LFxyXG4gIHtcclxuICAgIG5hbWU6ICdsZycsXHJcbiAgICB3aWR0aDogOTkyLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogJ3hsJyxcclxuICAgIHdpZHRoOiAxMjAwLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogJ3h4bCcsXHJcbiAgICB3aWR0aDogMTQwMCxcclxuICB9LFxyXG4gIHtcclxuICAgIG5hbWU6ICd4eHhsJyxcclxuICAgIHdpZHRoOiAxNjAwLFxyXG4gIH0sXHJcbl07XHJcblxyXG4vKlxyXG4gKiBNYW5hZ2VzIG1lZGlhIGJyZWFrcG9pbnRzXHJcbiAqXHJcbiAqIFByb3ZpZGVzIGFjY2VzcyB0byBhdmFpbGFibGUgbWVkaWEgYnJlYWtwb2ludHMgdG8gY29udmVydCB3aW5kb3cgd2lkdGggdG8gYSBjb25maWd1cmVkIGJyZWFrcG9pbnQsXHJcbiAqIGUuZy4gMjAwcHggLSAqeHMqIGJyZWFrcG9pbnRcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE5iTWVkaWFCcmVha3BvaW50c1NlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIGJyZWFrcG9pbnRzTWFwOiB7IFticmVha3BvaW50OiBzdHJpbmddOiBudW1iZXIgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoQEluamVjdChOQl9NRURJQV9CUkVBS1BPSU5UUykgcHJpdmF0ZSBicmVha3BvaW50cykge1xyXG4gICAgdGhpcy5icmVha3BvaW50c01hcCA9IHRoaXMuYnJlYWtwb2ludHMucmVkdWNlKChyZXMsIGI6IE5iTWVkaWFCcmVha3BvaW50KSA9PiB7XHJcbiAgICAgIHJlc1tiLm5hbWVdID0gYi53aWR0aDtcclxuICAgICAgcmV0dXJuIHJlcztcclxuICAgIH0sIHt9KTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJucyBhIGNvbmZpZ3VyZWQgYnJlYWtwb2ludCBieSB3aWR0aFxyXG4gICAqIEBwYXJhbSB3aWR0aCBudW1iZXJcclxuICAgKiBAcmV0dXJucyB7Wnx7bmFtZTogc3RyaW5nLCB3aWR0aDogbnVtYmVyfX1cclxuICAgKi9cclxuICBnZXRCeVdpZHRoKHdpZHRoOiBudW1iZXIpOiBOYk1lZGlhQnJlYWtwb2ludCB7XHJcbiAgICBjb25zdCB1bmtub3duID0geyBuYW1lOiAndW5rbm93bicsIHdpZHRoOiB3aWR0aCB9O1xyXG4gICAgY29uc3QgYnJlYWtwb2ludHMgPSB0aGlzLmdldEJyZWFrcG9pbnRzKCk7XHJcblxyXG4gICAgcmV0dXJuIGJyZWFrcG9pbnRzXHJcbiAgICAgIC5maW5kKChwb2ludDogTmJNZWRpYUJyZWFrcG9pbnQsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBjb25zdCBuZXh0ID0gYnJlYWtwb2ludHNbaW5kZXggKyAxXTtcclxuICAgICAgICByZXR1cm4gd2lkdGggPj0gcG9pbnQud2lkdGggJiYgKCFuZXh0IHx8IHdpZHRoIDwgbmV4dC53aWR0aCk7XHJcbiAgICAgIH0pIHx8IHVua25vd247XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybnMgYSBjb25maWd1cmVkIGJyZWFrcG9pbnQgYnkgbmFtZVxyXG4gICAqIEBwYXJhbSBuYW1lIHN0cmluZ1xyXG4gICAqIEByZXR1cm5zIE5iTWVkaWFCcmVha3BvaW50XHJcbiAgICovXHJcbiAgZ2V0QnlOYW1lKG5hbWU6IHN0cmluZyk6IE5iTWVkaWFCcmVha3BvaW50IHtcclxuICAgIGNvbnN0IHVua25vd24gPSB7IG5hbWU6ICd1bmtub3duJywgd2lkdGg6IE5hTiB9O1xyXG4gICAgY29uc3QgYnJlYWtwb2ludHMgPSB0aGlzLmdldEJyZWFrcG9pbnRzKCk7XHJcblxyXG4gICAgcmV0dXJuIGJyZWFrcG9pbnRzLmZpbmQoKHBvaW50OiBOYk1lZGlhQnJlYWtwb2ludCkgPT4gbmFtZSA9PT0gcG9pbnQubmFtZSkgfHwgdW5rbm93bjtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJucyBhIGxpc3Qgb2YgY29uZmlndXJlZCBicmVha3BvaW50cyBmb3IgdGhlIHRoZW1lXHJcbiAgICogQHJldHVybnMgTmJNZWRpYUJyZWFrcG9pbnRbXVxyXG4gICAqL1xyXG4gIGdldEJyZWFrcG9pbnRzKCk6IE5iTWVkaWFCcmVha3BvaW50W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuYnJlYWtwb2ludHM7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIFJldHVybnMgYSBtYXAgb2YgY29uZmlndXJlZCBicmVha3BvaW50cyBmb3IgdGhlIHRoZW1lXHJcbiAgICogQHJldHVybnMge1twOiBzdHJpbmddOiBudW1iZXJ9XHJcbiAgICovXHJcbiAgZ2V0QnJlYWtwb2ludHNNYXAoKTogeyBbYnJlYWtwb2ludDogc3RyaW5nXTogbnVtYmVyIH0ge1xyXG4gICAgcmV0dXJuIHRoaXMuYnJlYWtwb2ludHNNYXA7XHJcbiAgfVxyXG59XHJcbiJdfQ==