UNPKG

instantjob-recruiter-client

Version:

a set of tools for creating an instantjob recruiter react client

69 lines (54 loc) 2.29 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties'); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _utilities = require('common/utilities'); var _moment = require('common/moment'); var _moment2 = _interopRequireDefault(_moment); var _calendar = require('common/calendar'); var _base = require('selectors/base'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var get_children_periods = (0, _base.tolerant_selector)((0, _utilities.property_getter)('children'), function (children) { return (0, _utilities.flatten_array)(children.map(function (_ref) { var events = _ref.events, child = (0, _objectWithoutProperties3.default)(_ref, ['events']); return (0, _calendar.make_periods)((0, _utilities.hash_with_key)(events)).map(function (_ref2) { var start = _ref2.start, end = _ref2.end; return (0, _extends3.default)({}, child, { start: start, end: end }); }); })); }); var get_periods = (0, _base.tolerant_selector)([get_children_periods], function (periods) { return (0, _calendar.make_slots)(periods); }); var get_week_periods = (0, _utilities.make_memoized)(function (week_value) { var week = (0, _moment2.default)(week_value); var days = (0, _utilities.range)(8).map(function (index) { return (0, _moment2.default)(week_value).add(index, 'day'); }); var day_values = days.map(function (day) { return day.valueOf(); }); return (0, _base.tolerant_selector)([get_periods], function (periods) { var object = (0, _utilities.split_array)(periods, function (_ref3) { var start = _ref3.start; return (0, _utilities.find_optimum_in_sorted_array)(day_values, function (date) { return (0, _moment2.default)(date).isAfter(start); }); }, (0, _utilities.range)(7)); return (0, _utilities.range)(7).map(function (index) { return object[index]; }); }); }); exports.default = function (week) { return get_week_periods(week.valueOf()); };