tablevu 0.3.0-beta.4 → 0.3.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,174 @@
1
+ import { TablevuStatus } from './types';
2
+ import type { TablevuSettings, AdapterFunction } from './types';
3
+ export interface TableVuExpose {
4
+ first: () => Promise<void>;
5
+ prior: () => void | Promise<void>;
6
+ next: () => void | Promise<void>;
7
+ last: () => void | Promise<void>;
8
+ go: (pageNumber: number) => void | Promise<void>;
9
+ page: (pageNumber: number) => Promise<void>;
10
+ refresh: () => Promise<void>;
11
+ sortBy: (columnIndex: number, direction?: string) => void | Promise<void>;
12
+ getRows: () => any[];
13
+ setRows: (rows: any[]) => void;
14
+ }
15
+ declare const tablevu: import("vue").DefineComponent<{
16
+ settings?: (TablevuSettings | null) | undefined;
17
+ data?: (any[] | AdapterFunction) | undefined;
18
+ group?: (string | import("./types").TablevuGroup) | undefined;
19
+ search?: string | undefined;
20
+ filter?: any;
21
+ command?: Array<{
22
+ name: "refresh" | "first" | "prior" | "next" | "last" | "go" | string;
23
+ page?: number;
24
+ }> | undefined;
25
+ rowid?: string | undefined;
26
+ onRowClick?: ((event: MouseEvent, row: any) => void) | undefined;
27
+ onRowDblClick?: ((event: MouseEvent, row: any) => void) | undefined;
28
+ class?: string | undefined;
29
+ style?: (string | Record<string, string> | null) | undefined;
30
+ }, {
31
+ renderHeader: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
32
+ [key: string]: any;
33
+ }>[];
34
+ renderBody: () => any[];
35
+ renderFooter: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
36
+ [key: string]: any;
37
+ }>[];
38
+ renderCaption: () => string;
39
+ first: () => Promise<void>;
40
+ prior: () => Promise<void> | undefined;
41
+ next: () => Promise<void> | undefined;
42
+ last: () => Promise<void> | undefined;
43
+ go: (pageNumber: number) => Promise<void> | undefined;
44
+ page: (pageNumber: number) => Promise<void>;
45
+ refresh: () => Promise<void>;
46
+ sortBy: (columnIndex: number, direction?: string) => Promise<void>;
47
+ getRows: () => any[];
48
+ setRows: (newRows: any[]) => void;
49
+ state: {
50
+ caption: any;
51
+ group: {
52
+ value: any;
53
+ content: any;
54
+ expandAll: boolean;
55
+ class: string;
56
+ };
57
+ page: {
58
+ count: number;
59
+ size: number;
60
+ current: number;
61
+ type: string | null;
62
+ };
63
+ sort: {
64
+ index?: number | undefined;
65
+ name?: string | undefined;
66
+ dir?: "asc" | "desc" | null | string | undefined;
67
+ }[];
68
+ columns: {
69
+ name: string;
70
+ label?: string | undefined;
71
+ type?: "string" | "number" | "numeric" | "integer" | "date" | "time" | "datetime" | "boolean" | undefined;
72
+ align?: "left" | "center" | "right" | undefined;
73
+ width?: string | undefined;
74
+ style?: Record<string, string> | undefined;
75
+ render?: ((row: any) => any) | undefined;
76
+ colspan?: number | undefined;
77
+ depth?: string[] | undefined;
78
+ header?: {
79
+ colspan?: number | undefined;
80
+ style?: Record<string, string> | undefined;
81
+ align?: string | undefined;
82
+ } | undefined;
83
+ popup?: boolean | undefined;
84
+ filter?: any;
85
+ searchable?: boolean | undefined;
86
+ resizable?: boolean | undefined;
87
+ draggable?: boolean | undefined;
88
+ visible?: boolean | undefined;
89
+ }[];
90
+ footer: {
91
+ button: {
92
+ class: string;
93
+ };
94
+ };
95
+ status: TablevuStatus;
96
+ time: number | null;
97
+ search: string | null;
98
+ filter: any;
99
+ onData?: ((rows: any[]) => any[]) | undefined;
100
+ settings?: {
101
+ group?: {
102
+ value?: string | number | bigint | ((row: any) => any) | undefined;
103
+ content?: string | number | ((row: any) => any) | undefined;
104
+ expandAll?: boolean | undefined;
105
+ class?: string | undefined;
106
+ } | undefined;
107
+ page?: {
108
+ size?: number | undefined;
109
+ type?: "incremental" | "dynamic" | undefined;
110
+ } | undefined;
111
+ sort?: {
112
+ index?: number | undefined;
113
+ name?: string | undefined;
114
+ dir?: "asc" | "desc" | null | string | undefined;
115
+ }[] | undefined;
116
+ columns?: {
117
+ name: string;
118
+ label?: string | undefined;
119
+ type?: "string" | "number" | "numeric" | "integer" | "date" | "time" | "datetime" | "boolean" | undefined;
120
+ align?: "left" | "center" | "right" | undefined;
121
+ width?: string | undefined;
122
+ style?: Record<string, string> | undefined;
123
+ render?: ((row: any) => any) | undefined;
124
+ colspan?: number | undefined;
125
+ depth?: string[] | undefined;
126
+ header?: {
127
+ colspan?: number | undefined;
128
+ style?: Record<string, string> | undefined;
129
+ align?: string | undefined;
130
+ } | undefined;
131
+ popup?: boolean | undefined;
132
+ filter?: any;
133
+ searchable?: boolean | undefined;
134
+ resizable?: boolean | undefined;
135
+ draggable?: boolean | undefined;
136
+ visible?: boolean | undefined;
137
+ }[] | undefined;
138
+ searchMinChar?: number | undefined;
139
+ footer?: {
140
+ button?: {
141
+ class?: string | undefined;
142
+ } | undefined;
143
+ } | undefined;
144
+ onData?: ((rows: any[]) => any[]) | undefined;
145
+ emptyMessage?: string | undefined;
146
+ } | undefined;
147
+ };
148
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("row-click" | "row-dbl-click")[], "row-click" | "row-dbl-click", import("vue").PublicProps, Readonly<{
149
+ settings?: (TablevuSettings | null) | undefined;
150
+ data?: (any[] | AdapterFunction) | undefined;
151
+ group?: (string | import("./types").TablevuGroup) | undefined;
152
+ search?: string | undefined;
153
+ filter?: any;
154
+ command?: Array<{
155
+ name: "refresh" | "first" | "prior" | "next" | "last" | "go" | string;
156
+ page?: number;
157
+ }> | undefined;
158
+ rowid?: string | undefined;
159
+ onRowClick?: ((event: MouseEvent, row: any) => void) | undefined;
160
+ onRowDblClick?: ((event: MouseEvent, row: any) => void) | undefined;
161
+ class?: string | undefined;
162
+ style?: (string | Record<string, string> | null) | undefined;
163
+ }> & Readonly<{
164
+ "onRow-click"?: ((...args: any[]) => any) | undefined;
165
+ "onRow-dbl-click"?: ((...args: any[]) => any) | undefined;
166
+ }>, {
167
+ readonly settings: TablevuSettings | null;
168
+ readonly command: {
169
+ name: string;
170
+ }[];
171
+ readonly class: string;
172
+ readonly style: string | Record<string, string>;
173
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
174
+ export default tablevu;
package/dist/tablevu.cjs CHANGED
@@ -632,8 +632,10 @@ function buildExpression(expression, lambdaVariable) {
632
632
  throw new TypeError('OData "not" requires exactly one child filter.');
633
633
  return `not (${buildExpression(children[0], lambdaVariable)})`;
634
634
  }
635
- if (children.length < 2)
636
- throw new TypeError(`OData "${operator}" requires at least two child filters.`);
635
+ if (children.length === 0)
636
+ throw new TypeError(`OData "${operator}" requires at least one child filter.`);
637
+ if (children.length === 1)
638
+ return buildExpression(children[0], lambdaVariable);
637
639
  return `(${children.map(child => buildExpression(child, lambdaVariable)).join(` ${operator} `)})`;
638
640
  }
639
641
  if (operator === 'any' || operator === 'all') {
@@ -630,8 +630,10 @@ function buildExpression(expression, lambdaVariable) {
630
630
  throw new TypeError('OData "not" requires exactly one child filter.');
631
631
  return `not (${buildExpression(children[0], lambdaVariable)})`;
632
632
  }
633
- if (children.length < 2)
634
- throw new TypeError(`OData "${operator}" requires at least two child filters.`);
633
+ if (children.length === 0)
634
+ throw new TypeError(`OData "${operator}" requires at least one child filter.`);
635
+ if (children.length === 1)
636
+ return buildExpression(children[0], lambdaVariable);
635
637
  return `(${children.map(child => buildExpression(child, lambdaVariable)).join(` ${operator} `)})`;
636
638
  }
637
639
  if (operator === 'any' || operator === 'all') {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tablevu",
3
- "version": "0.3.0-beta.4",
3
+ "version": "0.3.0-beta.5",
4
4
  "type": "module",
5
5
  "description": "Vue 3 data table component",
6
6
  "main": "dist/tablevu.cjs",