UNPKG

theme-lib

Version:

This is a simple example Angular Library published to npm.

151 lines 10.1 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 const 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 */ export class NbMediaBreakpointsService { /** * @param {?} breakpoints */ constructor(breakpoints) { this.breakpoints = breakpoints; this.breakpointsMap = this.breakpoints.reduce((res, b) => { res[b.name] = b.width; return res; }, {}); } /* * Returns a configured breakpoint by width * @param width number * @returns {Z|{name: string, width: number}} */ /** * @param {?} width * @return {?} */ getByWidth(width) { /** @type {?} */ const unknown = { name: 'unknown', width: width }; /** @type {?} */ const breakpoints = this.getBreakpoints(); return breakpoints .find((point, index) => { /** @type {?} */ const next = breakpoints[index + 1]; return width >= point.width && (!next || width < next.width); }) || unknown; } /* * Returns a configured breakpoint by name * @param name string * @returns NbMediaBreakpoint */ /** * @param {?} name * @return {?} */ getByName(name) { /** @type {?} */ const unknown = { name: 'unknown', width: NaN }; /** @type {?} */ const breakpoints = this.getBreakpoints(); return breakpoints.find((point) => name === point.name) || unknown; } /* * Returns a list of configured breakpoints for the theme * @returns NbMediaBreakpoint[] */ /** * @return {?} */ getBreakpoints() { return this.breakpoints; } /* * Returns a map of configured breakpoints for the theme * @returns {[p: string]: number} */ /** * @return {?} */ getBreakpointsMap() { return this.breakpointsMap; } } NbMediaBreakpointsService.decorators = [ { type: Injectable } ]; /** @nocollapse */ NbMediaBreakpointsService.ctorParameters = () => [ { type: undefined, decorators: [{ type: Inject, args: [NB_MEDIA_BREAKPOINTS,] }] } ]; if (false) { /** * @type {?} * @private */ NbMediaBreakpointsService.prototype.breakpointsMap; /** * @type {?} * @private */ NbMediaBreakpointsService.prototype.breakpoints; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWtwb2ludHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3RoZW1lLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9icmVha3BvaW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQU1BLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBT3hELHVDQUdDOzs7SUFGQyxpQ0FBYTs7SUFDYixrQ0FBYzs7O0FBR2hCLE1BQU0sT0FBTyx5QkFBeUIsR0FBRztJQUN2QztRQUNFLElBQUksRUFBRSxJQUFJO1FBQ1YsS0FBSyxFQUFFLENBQUM7S0FDVDtJQUNEO1FBQ0UsSUFBSSxFQUFFLElBQUk7UUFDVixLQUFLLEVBQUUsR0FBRztLQUNYO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsSUFBSTtRQUNWLEtBQUssRUFBRSxHQUFHO0tBQ1g7SUFDRDtRQUNFLElBQUksRUFBRSxJQUFJO1FBQ1YsS0FBSyxFQUFFLEdBQUc7S0FDWDtJQUNEO1FBQ0UsSUFBSSxFQUFFLElBQUk7UUFDVixLQUFLLEVBQUUsR0FBRztLQUNYO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsSUFBSTtRQUNWLEtBQUssRUFBRSxJQUFJO0tBQ1o7SUFDRDtRQUNFLElBQUksRUFBRSxLQUFLO1FBQ1gsS0FBSyxFQUFFLElBQUk7S0FDWjtJQUNEO1FBQ0UsSUFBSSxFQUFFLE1BQU07UUFDWixLQUFLLEVBQUUsSUFBSTtLQUNaO0NBQ0Y7Ozs7Ozs7QUFTRCxNQUFNLE9BQU8seUJBQXlCOzs7O0lBSXBDLFlBQWtELFdBQVc7UUFBWCxnQkFBVyxHQUFYLFdBQVcsQ0FBQTtRQUMzRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQW9CLEVBQUUsRUFBRTtZQUMxRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDdEIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDOzs7Ozs7Ozs7O0lBT0QsVUFBVSxDQUFDLEtBQWE7O2NBQ2hCLE9BQU8sR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTs7Y0FDM0MsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUU7UUFFekMsT0FBTyxXQUFXO2FBQ2YsSUFBSSxDQUFDLENBQUMsS0FBd0IsRUFBRSxLQUFhLEVBQUUsRUFBRTs7a0JBQzFDLElBQUksR0FBRyxXQUFXLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNuQyxPQUFPLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRCxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUM7SUFDbEIsQ0FBQzs7Ozs7Ozs7OztJQU9ELFNBQVMsQ0FBQyxJQUFZOztjQUNkLE9BQU8sR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTs7Y0FDekMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUU7UUFFekMsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUM7SUFDeEYsQ0FBQzs7Ozs7Ozs7SUFNRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7Ozs7Ozs7O0lBTUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7OztZQXRERixVQUFVOzs7OzRDQUtJLE1BQU0sU0FBQyxvQkFBb0I7Ozs7Ozs7SUFGeEMsbURBQXlEOzs7OztJQUU3QyxnREFBaUQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgQWt2ZW8uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5CX01FRElBX0JSRUFLUE9JTlRTIH0gZnJvbSAnLi4vdGhlbWUub3B0aW9ucyc7XHJcblxyXG4vKlxyXG4gKiBNZWRpYSBicmVha3BvaW50IHR5cGVcclxuICpcclxuICogV2hlcmUgYG5hbWVgIC0gYnJlYWtwb2ludCBuYW1lIGFsaWFzIChlLmcuIHhzLCBzbSwgbWQsIGV0YyksIGFuZCB3aWR0aCAtIG1pbiBicmVha3BvaW50IHdpZHRoXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIE5iTWVkaWFCcmVha3BvaW50IHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgd2lkdGg6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTUVESUFfQlJFQUtQT0lOVFMgPSBbXHJcbiAge1xyXG4gICAgbmFtZTogJ3hzJyxcclxuICAgIHdpZHRoOiAwLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogJ2lzJyxcclxuICAgIHdpZHRoOiA0MDAsXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiAnc20nLFxyXG4gICAgd2lkdGg6IDU3NixcclxuICB9LFxyXG4gIHtcclxuICAgIG5hbWU6ICdtZCcsXHJcbiAgICB3aWR0aDogNzY4LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogJ2xnJyxcclxuICAgIHdpZHRoOiA5OTIsXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiAneGwnLFxyXG4gICAgd2lkdGg6IDEyMDAsXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiAneHhsJyxcclxuICAgIHdpZHRoOiAxNDAwLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogJ3h4eGwnLFxyXG4gICAgd2lkdGg6IDE2MDAsXHJcbiAgfSxcclxuXTtcclxuXHJcbi8qXHJcbiAqIE1hbmFnZXMgbWVkaWEgYnJlYWtwb2ludHNcclxuICpcclxuICogUHJvdmlkZXMgYWNjZXNzIHRvIGF2YWlsYWJsZSBtZWRpYSBicmVha3BvaW50cyB0byBjb252ZXJ0IHdpbmRvdyB3aWR0aCB0byBhIGNvbmZpZ3VyZWQgYnJlYWtwb2ludCxcclxuICogZS5nLiAyMDBweCAtICp4cyogYnJlYWtwb2ludFxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTmJNZWRpYUJyZWFrcG9pbnRzU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgYnJlYWtwb2ludHNNYXA6IHsgW2JyZWFrcG9pbnQ6IHN0cmluZ106IG51bWJlciB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KE5CX01FRElBX0JSRUFLUE9JTlRTKSBwcml2YXRlIGJyZWFrcG9pbnRzKSB7XHJcbiAgICB0aGlzLmJyZWFrcG9pbnRzTWFwID0gdGhpcy5icmVha3BvaW50cy5yZWR1Y2UoKHJlcywgYjogTmJNZWRpYUJyZWFrcG9pbnQpID0+IHtcclxuICAgICAgcmVzW2IubmFtZV0gPSBiLndpZHRoO1xyXG4gICAgICByZXR1cm4gcmVzO1xyXG4gICAgfSwge30pO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm5zIGEgY29uZmlndXJlZCBicmVha3BvaW50IGJ5IHdpZHRoXHJcbiAgICogQHBhcmFtIHdpZHRoIG51bWJlclxyXG4gICAqIEByZXR1cm5zIHtafHtuYW1lOiBzdHJpbmcsIHdpZHRoOiBudW1iZXJ9fVxyXG4gICAqL1xyXG4gIGdldEJ5V2lkdGgod2lkdGg6IG51bWJlcik6IE5iTWVkaWFCcmVha3BvaW50IHtcclxuICAgIGNvbnN0IHVua25vd24gPSB7IG5hbWU6ICd1bmtub3duJywgd2lkdGg6IHdpZHRoIH07XHJcbiAgICBjb25zdCBicmVha3BvaW50cyA9IHRoaXMuZ2V0QnJlYWtwb2ludHMoKTtcclxuXHJcbiAgICByZXR1cm4gYnJlYWtwb2ludHNcclxuICAgICAgLmZpbmQoKHBvaW50OiBOYk1lZGlhQnJlYWtwb2ludCwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGNvbnN0IG5leHQgPSBicmVha3BvaW50c1tpbmRleCArIDFdO1xyXG4gICAgICAgIHJldHVybiB3aWR0aCA+PSBwb2ludC53aWR0aCAmJiAoIW5leHQgfHwgd2lkdGggPCBuZXh0LndpZHRoKTtcclxuICAgICAgfSkgfHwgdW5rbm93bjtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJucyBhIGNvbmZpZ3VyZWQgYnJlYWtwb2ludCBieSBuYW1lXHJcbiAgICogQHBhcmFtIG5hbWUgc3RyaW5nXHJcbiAgICogQHJldHVybnMgTmJNZWRpYUJyZWFrcG9pbnRcclxuICAgKi9cclxuICBnZXRCeU5hbWUobmFtZTogc3RyaW5nKTogTmJNZWRpYUJyZWFrcG9pbnQge1xyXG4gICAgY29uc3QgdW5rbm93biA9IHsgbmFtZTogJ3Vua25vd24nLCB3aWR0aDogTmFOIH07XHJcbiAgICBjb25zdCBicmVha3BvaW50cyA9IHRoaXMuZ2V0QnJlYWtwb2ludHMoKTtcclxuXHJcbiAgICByZXR1cm4gYnJlYWtwb2ludHMuZmluZCgocG9pbnQ6IE5iTWVkaWFCcmVha3BvaW50KSA9PiBuYW1lID09PSBwb2ludC5uYW1lKSB8fCB1bmtub3duO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBjb25maWd1cmVkIGJyZWFrcG9pbnRzIGZvciB0aGUgdGhlbWVcclxuICAgKiBAcmV0dXJucyBOYk1lZGlhQnJlYWtwb2ludFtdXHJcbiAgICovXHJcbiAgZ2V0QnJlYWtwb2ludHMoKTogTmJNZWRpYUJyZWFrcG9pbnRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5icmVha3BvaW50cztcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogUmV0dXJucyBhIG1hcCBvZiBjb25maWd1cmVkIGJyZWFrcG9pbnRzIGZvciB0aGUgdGhlbWVcclxuICAgKiBAcmV0dXJucyB7W3A6IHN0cmluZ106IG51bWJlcn1cclxuICAgKi9cclxuICBnZXRCcmVha3BvaW50c01hcCgpOiB7IFticmVha3BvaW50OiBzdHJpbmddOiBudW1iZXIgfSB7XHJcbiAgICByZXR1cm4gdGhpcy5icmVha3BvaW50c01hcDtcclxuICB9XHJcbn1cclxuIl19