toKeyValues method

List<TKeyValue> toKeyValues(
  1. BuildContext ctx,
  2. TListItem<T, K> item,
  3. int index
)

Converts this header into one or more TKeyValue items for mobile card representations.

Implementation

List<TKeyValue> toKeyValues(BuildContext ctx, TListItem<T, K> item, int index) {
  if (flattenOnMobile && keyValuesBuilder != null) {
    final subItems = keyValuesBuilder!(item.data);
    if (mobileKeyPrefixBuilder != null) {
      return subItems
          .map((kv) => TKeyValue(
                mobileKeyPrefixBuilder!(text, kv.key),
                value: kv.value,
                widget: kv.widget,
                icon: kv.icon,
                width: kv.width,
                alignment: kv.alignment ?? alignment,
                minWidth: kv.minWidth ?? minWidth,
                maxWidth: kv.maxWidth ?? maxWidth,
              ))
          .toList();
    }
    return subItems;
  }

  final estimatedWidth = widthEstimator?.call(item.data);
  final effectiveMinWidth = minWidth ?? estimatedWidth;

  return [
    TKeyValue(
      text,
      value: getValue(item.data),
      widget: builder != null ? builder!(ctx, item, index) : null,
      width: effectiveMinWidth,
      minWidth: effectiveMinWidth,
      maxWidth: maxWidth,
      alignment: alignment,
    ),
  ];
}