instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
69 lines (54 loc) • 2.29 kB
JavaScript
;
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());
};