wadjet
Version:
The your birth date is based on statistical psychology and will expose your personality. This package as a mocule does its calculations.
66 lines (49 loc) • 2.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _extends3 = require('babel-runtime/helpers/extends');
var _extends4 = _interopRequireDefault(_extends3);
var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');
var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
var _entries = require('babel-runtime/core-js/object/entries');
var _entries2 = _interopRequireDefault(_entries);
var _detail = require('../master/detail');
var _detail2 = _interopRequireDefault(_detail);
var _affinity = require('./affinity');
require('../type');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Create personality types list of best affinitic for team.
* @param {Wadjet.NatureAffinity} business Good business formation levels.
* @param {string} personality Personality type.
* @param {Wadjet.Position} [position] Position type.
* @returns {Object.<string, string>} Personality types list.
*/
var bizTeam = function bizTeam(business, personality, position) {
var map = (0, _entries2.default)(business).map(function (_ref) {
var _ref2 = (0, _slicedToArray3.default)(_ref, 2),
type = _ref2[0],
pri = _ref2[1];
return { type: type, pri: pri, pos: (0, _detail2.default)(type).position };
});
var comparator = (0, _affinity.createComparator)(personality);
// NOTE: sort() function performs a destructive change,
// and return value depends on environment.
map.sort(function (_ref3, _ref4) {
var pa = _ref3.pri,
ta = _ref3.type;
var pb = _ref4.pri,
tb = _ref4.type;
return pa !== pb ? -(pa - pb) : comparator(ta, tb);
});
var result = map.reduce(function (p, _ref5) {
var pos = _ref5.pos,
type = _ref5.type;
return pos === position || pos in p ? p : (0, _extends4.default)({}, p, (0, _defineProperty3.default)({}, pos, type));
}, {});
return result;
};
exports.default = bizTeam;