{#if categories.length === 0} {:else} groupByKey === noCategory ? issues : getGroupByValues(groupByDocs, category)} {setGroupByValues} {getUpdateProps} {groupByDocs} on:obj-focus={(evt) => { listProvider.updateFocus(evt.detail) }} selection={listProvider.current($focusStore)} checked={$selectionStore ?? []} on:check={(evt) => { listProvider.updateSelection(evt.detail.docs, evt.detail.value) }} on:contextmenu={(evt) => showMenu(evt.detail.evt, evt.detail.objects)} > {#key lth} {#if groupByKey === noCategory} {:else if headerComponent} setAccentColor(index, ev)} /> {/if} {count} { showPopup(CreateIssue, { space: currentSpace, [groupByKey]: state._id }, 'top') }} /> {/key} {@const issue = toIssue(object)} {@const issueId = object._id} {@const reports = issue.reportedTime + (issue.childInfo ?? []).map((it) => it.reportedTime).reduce((a, b) => a + b, 0)} {@const estimations = (issue.childInfo ?? []).map((it) => it.estimation).reduce((a, b) => a + b, 0)} {#key issueId} { showPanel(tracker.component.EditIssue, object._id, object._class, 'content') }} > {object.title} {#if issue && issue.subIssues > 0} {/if} { if (res.detail.full) fullFilled[issueId] = true }} /> {#if reports > 0 || estimations > 0 || (object.comments ?? 0) > 0 || (object.$lookup?.attachedTo !== undefined && (object.$lookup.attachedTo.comments ?? 0) > 0)} {:else} {/if} {/key} {/if}