@sms-frontend/components
Version:
SMS Design React UI Library.
48 lines (47 loc) • 1.48 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.scrollTo = exports.getColumnsFromFormat = void 0;
var b_tween_1 = __importDefault(require("b-tween"));
function getColumnsFromFormat(format) {
var units = ['H', 'h', 'm', 's', 'a', 'A'];
var list = [];
var use12Hours = false;
units.forEach(function (unit) {
if (format.indexOf(unit) !== -1) {
list.push(unit);
if (unit === 'a' || unit === 'A') {
use12Hours = true;
}
}
});
return {
list: list,
use12Hours: use12Hours,
};
}
exports.getColumnsFromFormat = getColumnsFromFormat;
var scrollIds = new Map();
function scrollTo(element, to, duration) {
if (scrollIds.get(element)) {
cancelAnimationFrame(scrollIds.get(element));
}
if (duration <= 0) {
element.scrollTop = to;
}
scrollIds.set(element, requestAnimationFrame(function () {
var tween = new b_tween_1.default({
from: { scrollTop: element.scrollTop },
to: { scrollTop: to },
duration: duration,
onUpdate: function (keys) {
element.scrollTop = keys.scrollTop;
},
easing: 'quartInOut',
});
tween.start();
}));
}
exports.scrollTo = scrollTo;