@exalif/ngx-breadcrumbs
Version:
Angular 4+ breadcrumbs on top of native Angular router
49 lines (48 loc) • 3.92 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import { Observable, of, from } from 'rxjs';
import * as template from 'lodash.template';
import * as templateSettings from 'lodash.templatesettings';
const /** @type {?} */ _ = {
template: template,
templateSettings: templateSettings
};
_.templateSettings.interpolate = /{{([\s\S]+?)}}/g;
/**
* @abstract
*/
export class BreadcrumbsUtils {
/**
* @param {?} rawTemplate
* @param {?} binding
* @return {?}
*/
static stringFormat(rawTemplate, binding) {
const /** @type {?} */ compiled = _.template(rawTemplate);
return compiled(binding);
}
/**
* @template T
* @param {?} value
* @return {?}
*/
static wrapIntoObservable(value) {
if (value instanceof Observable) {
return value;
}
if (this.isPromise(value)) {
return from(Promise.resolve(value));
}
return of(/** @type {?} */ (value));
}
/**
* @param {?} value
* @return {?}
*/
static isPromise(value) {
return value && (typeof value.then === 'function');
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYnMudXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZXhhbGlmL25neC1icmVhZGNydW1icy8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9icmVhZGNydW1icy51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTVDLE9BQU8sS0FBSyxRQUFRLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxLQUFLLGdCQUFnQixNQUFNLHlCQUF5QixDQUFDO0FBRTVELHVCQUFNLENBQUMsR0FBRztJQUNSLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLGdCQUFnQixFQUFFLGdCQUFnQjtDQUNuQyxDQUFDO0FBQ0YsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQzs7OztBQUVuRCxNQUFNOzs7Ozs7SUFDRyxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQW1CLEVBQUUsT0FBWTtRQUMxRCx1QkFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV6QyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDOzs7Ozs7O0lBR3BCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBSSxLQUFxQztRQUN2RSxFQUFFLENBQUMsQ0FBQyxLQUFLLFlBQVksVUFBVSxDQUFDLENBQUMsQ0FBQztZQUNoQyxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ2Q7UUFFRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNyQztRQUVELE1BQU0sQ0FBQyxFQUFFLG1CQUFDLEtBQVUsRUFBQyxDQUFDOzs7Ozs7SUFHaEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ2pDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUM7O0NBRXREIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUmVzb2x2ZSwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBmcm9tIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCAqIGFzIHRlbXBsYXRlIGZyb20gJ2xvZGFzaC50ZW1wbGF0ZSc7XG5pbXBvcnQgKiBhcyB0ZW1wbGF0ZVNldHRpbmdzIGZyb20gJ2xvZGFzaC50ZW1wbGF0ZXNldHRpbmdzJztcblxuY29uc3QgXyA9IHtcbiAgdGVtcGxhdGU6IHRlbXBsYXRlLFxuICB0ZW1wbGF0ZVNldHRpbmdzOiB0ZW1wbGF0ZVNldHRpbmdzXG59O1xuXy50ZW1wbGF0ZVNldHRpbmdzLmludGVycG9sYXRlID0gL3t7KFtcXHNcXFNdKz8pfX0vZztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJyZWFkY3J1bWJzVXRpbHMge1xuICBwdWJsaWMgc3RhdGljIHN0cmluZ0Zvcm1hdChyYXdUZW1wbGF0ZTogc3RyaW5nLCBiaW5kaW5nOiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbXBpbGVkID0gXy50ZW1wbGF0ZShyYXdUZW1wbGF0ZSk7XG5cbiAgICByZXR1cm4gY29tcGlsZWQoYmluZGluZyk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHdyYXBJbnRvT2JzZXJ2YWJsZTxUPih2YWx1ZTogVCB8IFByb21pc2U8VD4gfCBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzUHJvbWlzZSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBmcm9tKFByb21pc2UucmVzb2x2ZSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIHJldHVybiBvZih2YWx1ZSBhcyBUKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGlzUHJvbWlzZSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlICYmICh0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJyk7XG4gIH1cbn1cbiJdfQ==