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