UNPKG

angular-calendar-timeline

Version:

A timeline for angular that shows events on a timeline board in different modes: days, weeks, and months.

45 lines 5.59 kB
export class RowDeterminant { constructor(_itemsIterator) { this._itemsIterator = _itemsIterator; this._generateMap(); } _generateMap() { const map = []; const iterate = (items) => { (items ?? []).forEach(item => { if (item.streamItems) { item._streamLevels.forEach((levelArr, index) => { map.push({ stream: item, items: levelArr }); }); } else { map.push({ stream: item, items: [item] }); } if (item.childrenItemsExpanded) { iterate(item.childrenItems ?? []); } }); }; iterate(this._itemsIterator.items); this.rows = map; } getRowIndexByItem(item) { let index; for (let i = 0; i < this.rows.length; i++) { const group = this.rows[i]; if (item.id === group.stream.id) { index = i; break; } const hasChild = group.items.find(i => i.id === item.id); if (hasChild) { index = i; } } return index; } getStreamByRowIndex(index) { return this.rows[index]?.stream; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWRldGVybWluYW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jYWxlbmRhci10aW1lbGluZS9zcmMvbGliL2hlbHBlcnMvcm93LWRldGVybWluYW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sT0FBTyxjQUFjO0lBR3pCLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUNoRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxHQUFHLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBc0IsRUFBUSxFQUFFO1lBQy9DLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDM0IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFO3dCQUM3QyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQTtvQkFDM0MsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztxQkFBTSxDQUFDO29CQUNOLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQztnQkFDMUMsQ0FBQztnQkFFRCxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO29CQUMvQixPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDcEMsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFBO1FBRUQsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQW1CO1FBQ25DLElBQUksS0FBSyxDQUFDO1FBRVYsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDMUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUUzQixJQUFJLElBQUksQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDaEMsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDVixNQUFNO1lBQ1IsQ0FBQztZQUVELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDekQsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ1osQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFhO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUl0ZW1zSXRlcmF0b3IsIElUaW1lbGluZUl0ZW0gfSBmcm9tIFwiLi4vbW9kZWxzXCI7XHJcblxyXG5pbnRlcmZhY2UgSVJvdyB7XHJcbiAgaXRlbXM6IElUaW1lbGluZUl0ZW1bXTtcclxuICBzdHJlYW06IElUaW1lbGluZUl0ZW07XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSb3dEZXRlcm1pbmFudCB7XHJcbiAgcm93czogSVJvd1tdO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9pdGVtc0l0ZXJhdG9yOiBJSXRlbXNJdGVyYXRvcikge1xyXG4gICAgdGhpcy5fZ2VuZXJhdGVNYXAoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dlbmVyYXRlTWFwKCk6IHZvaWQge1xyXG4gICAgY29uc3QgbWFwOiBJUm93W10gPSBbXTtcclxuICAgIGNvbnN0IGl0ZXJhdGUgPSAoaXRlbXM6IElUaW1lbGluZUl0ZW1bXSk6IHZvaWQgPT4ge1xyXG4gICAgICAoaXRlbXMgPz8gW10pLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0uc3RyZWFtSXRlbXMpIHtcclxuICAgICAgICAgIGl0ZW0uX3N0cmVhbUxldmVscy5mb3JFYWNoKChsZXZlbEFyciwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgbWFwLnB1c2goe3N0cmVhbTogaXRlbSwgaXRlbXM6IGxldmVsQXJyfSlcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBtYXAucHVzaCh7c3RyZWFtOiBpdGVtLCBpdGVtczogW2l0ZW1dfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbkl0ZW1zRXhwYW5kZWQpIHtcclxuICAgICAgICAgIGl0ZXJhdGUoaXRlbS5jaGlsZHJlbkl0ZW1zID8/IFtdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGl0ZXJhdGUodGhpcy5faXRlbXNJdGVyYXRvci5pdGVtcyk7XHJcbiAgICB0aGlzLnJvd3MgPSBtYXA7XHJcbiAgfVxyXG5cclxuICBnZXRSb3dJbmRleEJ5SXRlbShpdGVtOiBJVGltZWxpbmVJdGVtKTogbnVtYmVyIHtcclxuICAgIGxldCBpbmRleDtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucm93cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBncm91cCA9IHRoaXMucm93c1tpXTtcclxuXHJcbiAgICAgIGlmIChpdGVtLmlkID09PSBncm91cC5zdHJlYW0uaWQpIHtcclxuICAgICAgICBpbmRleCA9IGk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGhhc0NoaWxkID0gZ3JvdXAuaXRlbXMuZmluZChpID0+IGkuaWQgPT09IGl0ZW0uaWQpO1xyXG4gICAgICBpZiAoaGFzQ2hpbGQpIHtcclxuICAgICAgICBpbmRleCA9IGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW5kZXg7XHJcbiAgfVxyXG5cclxuICBnZXRTdHJlYW1CeVJvd0luZGV4KGluZGV4OiBudW1iZXIpOiBJVGltZWxpbmVJdGVtIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLnJvd3NbaW5kZXhdPy5zdHJlYW07XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=