data.dart 980 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import 'package:flowy_sdk/protobuf/flowy-grid-data-model/grid.pb.dart';
  2. import 'package:equatable/equatable.dart';
  3. class GridInfo {
  4. final String gridId;
  5. List<Row> rows;
  6. List<Field> fields;
  7. GridInfo({
  8. required this.gridId,
  9. required this.rows,
  10. required this.fields,
  11. });
  12. GridRowData rowAtIndex(int index) {
  13. final row = rows[index];
  14. return GridRowData(
  15. gridId: gridId,
  16. row: row,
  17. fields: fields,
  18. cellMap: row.cellByFieldId,
  19. );
  20. }
  21. int numberOfRows() {
  22. return rows.length;
  23. }
  24. }
  25. class GridRowData extends Equatable {
  26. final String gridId;
  27. final Row row;
  28. final List<Field> fields;
  29. final Map<String, Cell> cellMap;
  30. const GridRowData({
  31. required this.gridId,
  32. required this.row,
  33. required this.fields,
  34. required this.cellMap,
  35. });
  36. @override
  37. List<Object> get props => [row.hashCode, cellMap];
  38. }
  39. class GridColumnData {
  40. final List<Field> fields;
  41. GridColumnData({required this.fields});
  42. }