UNPKG

react-schedule-selector-custom

Version:

A mobile-friendly when2meet-style grid-based schedule selector

36 lines (26 loc) 5.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.timeIsBetween = exports.dateIsBetween = exports.dateHourIsBetween = void 0; var _start_of_day = _interopRequireDefault(require("date-fns/start_of_day")); var _is_after = _interopRequireDefault(require("date-fns/is_after")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // Helper function that uses date-fns methods to determine if a date is between two other dates const dateHourIsBetween = (start, candidate, end) => (candidate.getTime() === start.getTime() || (0, _is_after.default)(candidate, start)) && (candidate.getTime() === end.getTime() || (0, _is_after.default)(end, candidate)); exports.dateHourIsBetween = dateHourIsBetween; const dateIsBetween = (start, candidate, end) => { const startOfCandidate = (0, _start_of_day.default)(candidate); const startOfStart = (0, _start_of_day.default)(start); const startOfEnd = (0, _start_of_day.default)(end); return (startOfCandidate.getTime() === startOfStart.getTime() || (0, _is_after.default)(startOfCandidate, startOfStart)) && (startOfCandidate.getTime() === startOfEnd.getTime() || (0, _is_after.default)(startOfEnd, startOfCandidate)); }; exports.dateIsBetween = dateIsBetween; const timeIsBetween = (start, candidate, end) => { const candidateTime = candidate.getHours() * 60 + candidate.getMinutes(); const startTime = start.getHours() * 60 + start.getMinutes(); const endTime = end.getHours() * 60 + end.getMinutes(); return candidateTime >= startTime && candidateTime <= endTime; }; exports.timeIsBetween = timeIsBetween; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvZGF0ZS11dGlscy50cyJdLCJuYW1lcyI6WyJkYXRlSG91cklzQmV0d2VlbiIsInN0YXJ0IiwiY2FuZGlkYXRlIiwiZW5kIiwiZ2V0VGltZSIsImRhdGVJc0JldHdlZW4iLCJzdGFydE9mQ2FuZGlkYXRlIiwic3RhcnRPZlN0YXJ0Iiwic3RhcnRPZkVuZCIsInRpbWVJc0JldHdlZW4iLCJjYW5kaWRhdGVUaW1lIiwiZ2V0SG91cnMiLCJnZXRNaW51dGVzIiwic3RhcnRUaW1lIiwiZW5kVGltZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOzs7O0FBRUE7QUFDTyxNQUFNQSxpQkFBaUIsR0FBRyxDQUFDQyxLQUFELEVBQWNDLFNBQWQsRUFBK0JDLEdBQS9CLEtBQy9CLENBQUNELFNBQVMsQ0FBQ0UsT0FBVixPQUF3QkgsS0FBSyxDQUFDRyxPQUFOLEVBQXhCLElBQTJDLHVCQUFRRixTQUFSLEVBQW1CRCxLQUFuQixDQUE1QyxNQUNDQyxTQUFTLENBQUNFLE9BQVYsT0FBd0JELEdBQUcsQ0FBQ0MsT0FBSixFQUF4QixJQUF5Qyx1QkFBUUQsR0FBUixFQUFhRCxTQUFiLENBRDFDLENBREs7Ozs7QUFJQSxNQUFNRyxhQUFhLEdBQUcsQ0FBQ0osS0FBRCxFQUFjQyxTQUFkLEVBQStCQyxHQUEvQixLQUFzRDtBQUNqRixRQUFNRyxnQkFBZ0IsR0FBRywyQkFBV0osU0FBWCxDQUF6QjtBQUNBLFFBQU1LLFlBQVksR0FBRywyQkFBV04sS0FBWCxDQUFyQjtBQUNBLFFBQU1PLFVBQVUsR0FBRywyQkFBV0wsR0FBWCxDQUFuQjtBQUVBLFNBQ0UsQ0FBQ0csZ0JBQWdCLENBQUNGLE9BQWpCLE9BQStCRyxZQUFZLENBQUNILE9BQWIsRUFBL0IsSUFBeUQsdUJBQVFFLGdCQUFSLEVBQTBCQyxZQUExQixDQUExRCxNQUNDRCxnQkFBZ0IsQ0FBQ0YsT0FBakIsT0FBK0JJLFVBQVUsQ0FBQ0osT0FBWCxFQUEvQixJQUF1RCx1QkFBUUksVUFBUixFQUFvQkYsZ0JBQXBCLENBRHhELENBREY7QUFJRCxDQVRNOzs7O0FBV0EsTUFBTUcsYUFBYSxHQUFHLENBQUNSLEtBQUQsRUFBY0MsU0FBZCxFQUErQkMsR0FBL0IsS0FBc0Q7QUFDakYsUUFBTU8sYUFBYSxHQUFHUixTQUFTLENBQUNTLFFBQVYsS0FBdUIsRUFBdkIsR0FBNEJULFNBQVMsQ0FBQ1UsVUFBVixFQUFsRDtBQUNBLFFBQU1DLFNBQVMsR0FBR1osS0FBSyxDQUFDVSxRQUFOLEtBQW1CLEVBQW5CLEdBQXdCVixLQUFLLENBQUNXLFVBQU4sRUFBMUM7QUFDQSxRQUFNRSxPQUFPLEdBQUdYLEdBQUcsQ0FBQ1EsUUFBSixLQUFpQixFQUFqQixHQUFzQlIsR0FBRyxDQUFDUyxVQUFKLEVBQXRDO0FBRUEsU0FBT0YsYUFBYSxJQUFJRyxTQUFqQixJQUE4QkgsYUFBYSxJQUFJSSxPQUF0RDtBQUNELENBTk0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3RhcnRPZkRheSBmcm9tICdkYXRlLWZucy9zdGFydF9vZl9kYXknXG5pbXBvcnQgaXNBZnRlciBmcm9tICdkYXRlLWZucy9pc19hZnRlcidcblxuLy8gSGVscGVyIGZ1bmN0aW9uIHRoYXQgdXNlcyBkYXRlLWZucyBtZXRob2RzIHRvIGRldGVybWluZSBpZiBhIGRhdGUgaXMgYmV0d2VlbiB0d28gb3RoZXIgZGF0ZXNcbmV4cG9ydCBjb25zdCBkYXRlSG91cklzQmV0d2VlbiA9IChzdGFydDogRGF0ZSwgY2FuZGlkYXRlOiBEYXRlLCBlbmQ6IERhdGUpOiBib29sZWFuID0+XG4gIChjYW5kaWRhdGUuZ2V0VGltZSgpID09PSBzdGFydC5nZXRUaW1lKCkgfHwgaXNBZnRlcihjYW5kaWRhdGUsIHN0YXJ0KSkgJiZcbiAgKGNhbmRpZGF0ZS5nZXRUaW1lKCkgPT09IGVuZC5nZXRUaW1lKCkgfHwgaXNBZnRlcihlbmQsIGNhbmRpZGF0ZSkpXG5cbmV4cG9ydCBjb25zdCBkYXRlSXNCZXR3ZWVuID0gKHN0YXJ0OiBEYXRlLCBjYW5kaWRhdGU6IERhdGUsIGVuZDogRGF0ZSk6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBzdGFydE9mQ2FuZGlkYXRlID0gc3RhcnRPZkRheShjYW5kaWRhdGUpXG4gIGNvbnN0IHN0YXJ0T2ZTdGFydCA9IHN0YXJ0T2ZEYXkoc3RhcnQpXG4gIGNvbnN0IHN0YXJ0T2ZFbmQgPSBzdGFydE9mRGF5KGVuZClcblxuICByZXR1cm4gKFxuICAgIChzdGFydE9mQ2FuZGlkYXRlLmdldFRpbWUoKSA9PT0gc3RhcnRPZlN0YXJ0LmdldFRpbWUoKSB8fCBpc0FmdGVyKHN0YXJ0T2ZDYW5kaWRhdGUsIHN0YXJ0T2ZTdGFydCkpICYmXG4gICAgKHN0YXJ0T2ZDYW5kaWRhdGUuZ2V0VGltZSgpID09PSBzdGFydE9mRW5kLmdldFRpbWUoKSB8fCBpc0FmdGVyKHN0YXJ0T2ZFbmQsIHN0YXJ0T2ZDYW5kaWRhdGUpKVxuICApXG59XG5cbmV4cG9ydCBjb25zdCB0aW1lSXNCZXR3ZWVuID0gKHN0YXJ0OiBEYXRlLCBjYW5kaWRhdGU6IERhdGUsIGVuZDogRGF0ZSk6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBjYW5kaWRhdGVUaW1lID0gY2FuZGlkYXRlLmdldEhvdXJzKCkgKiA2MCArIGNhbmRpZGF0ZS5nZXRNaW51dGVzKClcbiAgY29uc3Qgc3RhcnRUaW1lID0gc3RhcnQuZ2V0SG91cnMoKSAqIDYwICsgc3RhcnQuZ2V0TWludXRlcygpXG4gIGNvbnN0IGVuZFRpbWUgPSBlbmQuZ2V0SG91cnMoKSAqIDYwICsgZW5kLmdldE1pbnV0ZXMoKVxuXG4gIHJldHVybiBjYW5kaWRhdGVUaW1lID49IHN0YXJ0VGltZSAmJiBjYW5kaWRhdGVUaW1lIDw9IGVuZFRpbWVcbn1cbiJdfQ==