1.0.9 • Published 5 years ago

fs-react-cube v1.0.9

Weekly downloads
36
License
-
Repository
-
Last release
5 years ago

fs-react-cube

React компонент реализующий Cube (таблицу с раскрывающимися заголовками, ячейки которой несут в себе агрегированные значения из БД)\ Простой проект с этой библиотекой можно склонировать отсюда https://github.com/cherginets/fs-react-cube-app

How install

npm install fs-react-cube --save
<Cube
    measures={this.state.measures}
    measures_list_top={this.state.measures_list_top}
    measures_list_left={this.state.measures_list_left}
    getCell={(path_left, path_top) => {
        // Your logic
        return path_left.concat(path_top).join('').split('').map(function (char) {
            return char.charCodeAt(0) * 2;
        }).reduce((acc, cur) => acc + cur); //example val.
    }}
    debug={true}
/>

PropTypes

measures

Обязательное.\ \ Массив с объектами, описывающими измерения, по которым строятся заголовки таблицы.\ В размере не должно быть меньше 2 измерений.\ Объект измерения должен иметь следующую минимальную необходимую структуру:

{
    code: 'regions', //Код измерения (указывается в measures_list_left, measures_list_top)
    tree: {//Дерево заголовков измерения
        name: 'All regions', //Имя заголовка. Отображения на странице.
        code: 'all_regions', //Код заголовка. Передается в getCell значением пути заголовка. Если не задать - сформируется автоматически из имени переводом в lower case и заменой пробелов на _
        hidden_childs: false, //Если задать как false, заголовок будет сразу загружен как открытый.
        childs: [...] // Такие же tree's. Вложенных childs, и их childs, и их... может быть сколько угодно.
    } 
}

Пример:

[
            {
                name: "Measure 1 (Regions)",
                code: 'regions',
                tree: {
                    name: "All regions",
                    childs: [
                        {
                            name: "Russia",
                            childs: [
                                {
                                    name: "Moscow",
                                },
                                {
                                    name: "Lipetsk",
                                },
                                {
                                    name: "Voronesh",
                                },
                            ]
                        },
                        {
                            name: "USA",
                            childs: [
                                {
                                    name: "California",
                                },
                                {
                                    name: "Washington",
                                },
                            ]
                        },
                        {
                            name: "Georgia",
                        }
                    ]
                },
            },
            {
                name: "Measure 2 (Products)",
                code: 'products',
                tree: {
                    name: "All products",
                    code: "all_products",
                    childs: [
                        {name: "Paper"},
                        {name: "Tables"},
                        {name: "Pencils"},
                    ]
                }
            },
            {
                name: "Measure 3 (Years)",
                code: 'years',
                tree: {
                    name: "All years",
                    code: "all_years",
                    hidden_childs: false,
                    childs: [
                        {name: "2018", childs: [{name: "Q 1"}, {name: "Q 2"}, {name: "Q 3"}, {name: "Q 4"}]},
                        {name: "2017", childs: [{name: "Q 1"}, {name: "Q 2"}, {name: "Q 3"}, {name: "Q 4"}]},
                        {name: "2016", childs: [{name: "Q 1"}, {name: "Q 2"}, {name: "Q 3"}, {name: "Q 4"}]},
                    ]
                }
            },
            {
                name: "Measure 4 (Scenarios)",
                code: 'scenarios',
                tree: {
                    name: "All scenarios",
                    code: "all_scenarios",
                    hidden_childs: false,
                    childs: [
                        {name: "Actual"},
                        {name: "Budget"},
                    ]
                }
            },
        ]

measures_list_left

Array. По умолчанию [measures0.code]\ \ Массив с кодами измерений. Определяет набор столбцов для левого блока с заголовками. Например:

['regions', 'products']

measures_list_top

Array. По умолчанию [measures1.code]\ \ Массив с кодами измерений. пределяет набор строк для верхнего блока с заголовками. Например:

['years', 'scenarios']

width

Integer. По умолчанию - 700.\ \ Фиксированная ширина таблицы в пикселях.

getCell

Обязательное. Function.\ \ Вызывается при каждом рендере таблицы для каждой ячейки. Функция принимает два аргумента.

  • path_left - адрес ячейки по левому дереву заголовков. Пример:
["all_scenarios", "budget"]
  • path_top - адрес ячейки по верхнему дереву заголовков. Пример:
["all_regions", "all_products", "all_years", "2018"]

Функция должна возвращать значение ячейки для отображения в любом формате.

onChange

Function.\ \ Вызывается при открытии\закрытии заголовка.

onOpen

Function.\ \ Вызывается при открытии заголовка.

onClose

Function.\ \ Вызывается при закрытии заголовка.

debug

Bool. По умолчанию - false.\ \ Выводить ли служебные логи в консоль.

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago

1.0.0

6 years ago