UNPKG

1.39 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 * @typedef {{head:*[],rows:*[][]}} TableObject
50 */
51
52/**
53 *
54 * @param {Object} o
55 * @returns {TableObject}
56 */
57
58const matchSlice = (o = {}) => {
59 const head = o.head ?? o.banner,
60 rows = o.rows ?? o.matrix;
61 return {
62 head,
63 rows
64 };
65};
66/**
67 *
68 * @param {Object} o
69 * @returns {TableObject}
70 */
71
72const matchShallow = (o = {}) => {
73 const head = o.head ?? o.banner,
74 rows = o.rows ?? o.matrix;
75 return {
76 head: head.slice(),
77 rows: rows.map(row => row.slice())
78 };
79};
80/**
81 *
82 * @param {Object} o
83 * @returns {TableObject}
84 */
85
86const matchClone = (o = {}) => {
87 const head = o.head ?? o.banner,
88 rows = o.rows ?? o.matrix;
89 return {
90 head: head.slice(),
91 rows: Mx.clone(rows)
92 };
93};
94
95export { clone, matchClone, matchShallow, matchSlice, shallow, slice };