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