UNPKG

1.31 kBJavaScriptView Raw
1import { Mx } from 'veho';
2
3/** @typedef {{head:*[],rows:*[][]}} TableObject */
4
5/**
6 *
7 * @param {*[]} head
8 * @param {*[][]} rows
9 * @returns {TableObject}
10 */
11
12const slice = ({
13 head,
14 rows
15}) => ({
16 head,
17 rows
18});
19/**
20 *
21 * @param {*[]} head
22 * @param {*[][]} rows
23 * @returns {TableObject}
24 */
25
26const shallow = ({
27 head,
28 rows
29}) => ({
30 head: head.slice(),
31 rows: rows.map(row => row.slice())
32});
33/**
34 *
35 * @param {*[]} head
36 * @param {*[][]} rows
37 * @returns {TableObject}
38 */
39
40const clone = ({
41 head,
42 rows
43}) => ({
44 head: head.slice(),
45 rows: Mx.clone(rows)
46});
47
48/**
49 *
50 * @param {Object} o
51 * @returns {TableObject}
52 */
53
54const matchSlice = o => {
55 const head = o.head || o.banner,
56 rows = o.rows || o.matrix;
57 return {
58 head,
59 rows
60 };
61};
62/**
63 *
64 * @param {Object} o
65 * @returns {TableObject}
66 */
67
68const matchShallow = o => {
69 const head = o.head || o.banner,
70 rows = o.rows || o.matrix;
71 return {
72 head: head.slice(),
73 rows: rows.map(row => row.slice())
74 };
75};
76/**
77 *
78 * @param {Object} o
79 * @returns {TableObject}
80 */
81
82const matchClone = o => {
83 const head = o.head || o.banner,
84 rows = o.rows || o.matrix;
85 return {
86 head: head.slice(),
87 rows: Mx.clone(rows)
88 };
89};
90
91export { clone, matchClone, matchShallow, matchSlice, shallow, slice };