Files
TechRadarAJR/dist_scripts/src/model.js
2022-05-13 19:42:27 +02:00

81 lines
3.2 KiB
JavaScript

"use strict";
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getFirstLetter = exports.groupByFirstLetter = exports.groupByQuadrants = exports.nonFeaturedOnly = exports.featuredOnly = exports.FlagType = exports.HomepageOption = void 0;
var HomepageOption;
(function (HomepageOption) {
HomepageOption["chart"] = "chart";
HomepageOption["columns"] = "columns";
HomepageOption["both"] = "both";
})(HomepageOption = exports.HomepageOption || (exports.HomepageOption = {}));
var FlagType;
(function (FlagType) {
FlagType["new"] = "new";
FlagType["changed"] = "changed";
FlagType["default"] = "default";
})(FlagType = exports.FlagType || (exports.FlagType = {}));
var featuredOnly = function (items) {
return items.filter(function (item) { return item.featured; });
};
exports.featuredOnly = featuredOnly;
var nonFeaturedOnly = function (items) {
return items.filter(function (item) { return !item.featured; });
};
exports.nonFeaturedOnly = nonFeaturedOnly;
var groupByQuadrants = function (items) {
return items.reduce(function (quadrants, item) {
var _a;
return (__assign(__assign({}, quadrants), (_a = {}, _a[item.quadrant] = addItemToQuadrant(quadrants[item.quadrant], item), _a)));
}, {});
};
exports.groupByQuadrants = groupByQuadrants;
var groupByFirstLetter = function (items) {
var index = items.reduce(function (letterIndex, item) {
var _a;
return (__assign(__assign({}, letterIndex), (_a = {}, _a[(0, exports.getFirstLetter)(item)] = addItemToList(letterIndex[(0, exports.getFirstLetter)(item)], item), _a)));
}, {});
return Object.keys(index)
.sort()
.map(function (letter) { return ({
letter: letter,
items: index[letter],
}); });
};
exports.groupByFirstLetter = groupByFirstLetter;
var addItemToQuadrant = function (quadrant, item) {
var _a;
if (quadrant === void 0) { quadrant = {}; }
return (__assign(__assign({}, quadrant), (_a = {}, _a[item.ring] = addItemToRing(quadrant[item.ring], item), _a)));
};
var addItemToList = function (list, item) {
if (list === void 0) { list = []; }
return __spreadArray(__spreadArray([], list, true), [item], false);
};
var addItemToRing = function (ring, item) {
if (ring === void 0) { ring = []; }
return __spreadArray(__spreadArray([], ring, true), [item], false);
};
var getFirstLetter = function (item) {
return item.title.substr(0, 1).toUpperCase();
};
exports.getFirstLetter = getFirstLetter;