Untitled

mail@pastecode.io avatarunknown
plain_text
a month ago
3.0 kB
2
Indexable
Never
syntax = "proto3";

package api;

option swift_prefix = "API";

import "common.proto";


message ListCellDescriptor {
    message VerticalImageTitleSubtitleCellDescriptor {
        optional Image image = 1;
        ContentAlignment image_alignment = 2;
        optional Label title_label = 3;
        optional Label subtitle_label = 4;
    }

    message DividerCellDescriptor {
        enum Direction {
            DIRECTION_HORIZONTAL = 0;
            DIRECTION_VERTICAL = 1;
        }

        Direction direction = 1;
    }

    string identifier = 1;

    oneof content {
        VerticalImageTitleSubtitleCellDescriptor vertical_image_title_subtitle_cell = 100;
        DividerCellDescriptor divider_cell = 101;
    }
}

message ListSection {
    string identifier = 1;
    repeated ListCellDescriptor cells = 2;
    repeated ListCellDescriptor boundary_supplementary_cells = 3;
    ListLayoutSection layout = 4;
}

message ListContent {
    repeated ListSection sections = 1;
    optional string next_token = 2;
}

message ListLayoutSection {
    enum OrthogonalScrollingBehavior {
        ORTHOGONAL_SCROLLING_BEHAVIOR_NONE = 0;
        ORTHOGONAL_SCROLLING_BEHAVIOR_CONTINUOUS = 1;
        ORTHOGONAL_SCROLLING_BEHAVIOR_CONTINUOUS_GROUP_LEADING_BOUNDARY = 2;
        ORTHOGONAL_SCROLLING_BEHAVIOR_PAGING = 3;
        ORTHOGONAL_SCROLLING_BEHAVIOR_GROUP_PAGING = 4;
        ORTHOGONAL_SCROLLING_BEHAVIOR_GROUP_PAGING_CENTERED = 5;
    }

    message Size {
        message Dimension {
            enum Scale {
                SCALE_FRACTIONAL_WIDTH = 0;
                SCALE_FRACTIONAL_HEIGHT = 1;
                SCALE_ABSOLUTE = 2;
                SCALE_ESTIMATED = 3;
            }

            Scale scale = 1;
            float value = 2;
        }

        Dimension width_dimension = 1;
        Dimension height_dimension = 2;
    }

    message Spacing {
        enum Type {
            TYPE_FLEXIBLE = 0;
            TYPE_FIXED = 1;
        }

        Type type = 1;
        float value_pt = 2;
    }

    message EdgeSpacing {
        optional Spacing leading = 1;
        optional Spacing top = 2;
        optional Spacing trailing = 3;
        optional Spacing bottom = 4;
    }

    message Item {
        Size size = 1;
        optional ContentInsets content_insets = 2;
        optional EdgeSpacing edge_spacing = 3;
    }

    message Group {
        enum Direction {
            DIRECTION_HORIZONTAL = 0;
            DIRECTION_VERTICAL = 1;
        }

        Direction direction = 1;
        Size size = 2;
        repeated Item items = 3;
        optional Spacing inter_item_spacing = 4;
    }

    message BoundarySupplementaryItem {
        Size size = 1;
        string element_kind = 2;
        RectAlignment rect_alignment = 3;
        optional bool pin_to_visible_bounds = 4;
    }

    Group group = 1;
    optional OrthogonalScrollingBehavior orthogonal_scrolling_behavior = 2;
    optional ContentInsets content_insets = 3;
    repeated BoundarySupplementaryItem boundary_supplementary_items = 4;
}