/* -------------------------------------------- */ export class RdDItem { /* -------------------------------------------- */ static buildItemsClassification(items) { return RdDItem.classify(items, it => it.type) } static classify(items, classifier = it => it.type, transform = it => it) { let itemsBy = {}; RdDItem.classifyInto(itemsBy, items, classifier, transform); return itemsBy; } static classifyInto(itemsBy, items, classifier = it => it.type, transform = it => it) { for (const item of items) { const classification = classifier(item); let list = itemsBy[classification]; if (!list) { list = []; itemsBy[classification] = list; } list.push(transform(item)); } } }