@ciri/ngx-carousel
Version:
A simple angular carousel component.
61 lines • 3.75 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: utils.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Observable } from 'rxjs';
import ResizeObserver from 'resize-observer-polyfill';
import { InjectionToken } from '@angular/core';
/**
* 监听元素大小变动
* \@param target 被监听元素
* @type {?}
*/
export const resize = (/**
* @param {?} target
* @return {?}
*/
(target) => {
return new Observable((/**
* @param {?} observer
* @return {?}
*/
observer => {
/** @type {?} */
const ro = new ResizeObserver((/**
* @param {?} entries
* @return {?}
*/
entries => {
observer.next(entries);
}));
ro.observe(target);
return (/**
* @return {?}
*/
() => {
ro.disconnect();
});
}));
});
/**
* @param {?} value
* @param {?} min
* @param {?} max
* @return {?}
*/
export function clamp(value, min, max) {
return Math.min(Math.max(value, min), max);
}
/**
* @param {?} number
* @param {?} start
* @param {?} end
* @return {?}
*/
export function inRange(number, start, end) {
return number >= start && number <= end;
}
/** @type {?} */
export const CAROUSEL = new InjectionToken('CarouselToken');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AY2lyaS9uZ3gtY2Fyb3VzZWwvIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDakMsT0FBTyxjQUFjLE1BQU0sMEJBQTBCLENBQUE7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQTs7Ozs7O0FBTTlDLE1BQU0sT0FBTyxNQUFNOzs7O0FBQUcsQ0FBQyxNQUFlLEVBQW1CLEVBQUU7SUFDekQsT0FBTyxJQUFJLFVBQVU7Ozs7SUFBQyxRQUFRLENBQUMsRUFBRTs7Y0FDekIsRUFBRSxHQUFHLElBQUksY0FBYzs7OztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3RDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDeEIsQ0FBQyxFQUFDO1FBRUYsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUVsQjs7O1FBQU8sR0FBRyxFQUFFO1lBQ1YsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQ2pCLENBQUMsRUFBQTtJQUNILENBQUMsRUFBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBOzs7Ozs7O0FBRUQsTUFBTSxVQUFVLEtBQUssQ0FBQyxLQUFhLEVBQUUsR0FBVyxFQUFFLEdBQVc7SUFDM0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0FBQzVDLENBQUM7Ozs7Ozs7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUFDLE1BQWMsRUFBRSxLQUFhLEVBQUUsR0FBVztJQUNoRSxPQUFPLE1BQU0sSUFBSSxLQUFLLElBQUksTUFBTSxJQUFJLEdBQUcsQ0FBQTtBQUN6QyxDQUFDOztBQUVELE1BQU0sT0FBTyxRQUFRLEdBQUcsSUFBSSxjQUFjLENBQVMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgUmVzaXplT2JzZXJ2ZXIgZnJvbSAncmVzaXplLW9ic2VydmVyLXBvbHlmaWxsJ1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG4vKipcbiAqIOebkeWQrOWFg+e0oOWkp+Wwj+WPmOWKqFxuICogQHBhcmFtIHRhcmdldCDooqvnm5HlkKzlhYPntKBcbiAqL1xuZXhwb3J0IGNvbnN0IHJlc2l6ZSA9ICh0YXJnZXQ6IEVsZW1lbnQpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xuICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuICAgIGNvbnN0IHJvID0gbmV3IFJlc2l6ZU9ic2VydmVyKGVudHJpZXMgPT4ge1xuICAgICAgb2JzZXJ2ZXIubmV4dChlbnRyaWVzKVxuICAgIH0pXG5cbiAgICByby5vYnNlcnZlKHRhcmdldClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICByby5kaXNjb25uZWN0KClcbiAgICB9XG4gIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGFtcCh2YWx1ZTogbnVtYmVyLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpIHtcbiAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KHZhbHVlLCBtaW4pLCBtYXgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpblJhbmdlKG51bWJlcjogbnVtYmVyLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikge1xuICByZXR1cm4gbnVtYmVyID49IHN0YXJ0ICYmIG51bWJlciA8PSBlbmRcbn1cblxuZXhwb3J0IGNvbnN0IENBUk9VU0VMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0Nhcm91c2VsVG9rZW4nKVxuIl19