@object-ui/plugin-view 0.3.1 → 2.0.0
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.
- package/.turbo/turbo-build.log +199 -0
- package/CHANGELOG.md +16 -0
- package/README.md +58 -0
- package/dist/index.js +1178 -340
- package/dist/index.umd.cjs +2 -2
- package/dist/plugin-view/src/FilterUI.d.ts +16 -0
- package/dist/plugin-view/src/ObjectView.d.ts +85 -5
- package/dist/plugin-view/src/SortUI.d.ts +16 -0
- package/dist/plugin-view/src/ViewSwitcher.d.ts +16 -0
- package/dist/plugin-view/src/__tests__/FilterUI.test.d.ts +8 -0
- package/dist/plugin-view/src/__tests__/ObjectView.test.d.ts +8 -0
- package/dist/plugin-view/src/__tests__/SortUI.test.d.ts +8 -0
- package/dist/plugin-view/src/__tests__/registration.test.d.ts +8 -0
- package/dist/plugin-view/src/index.d.ts +7 -1
- package/package.json +9 -8
- package/src/FilterUI.tsx +317 -0
- package/src/ObjectView.tsx +668 -148
- package/src/SortUI.tsx +210 -0
- package/src/ViewSwitcher.tsx +311 -0
- package/src/__tests__/FilterUI.test.tsx +544 -0
- package/src/__tests__/ObjectView.test.tsx +375 -0
- package/src/__tests__/SortUI.test.tsx +380 -0
- package/src/__tests__/registration.test.tsx +32 -0
- package/src/index.tsx +172 -4
- package/vite.config.ts +3 -0
- package/vitest.config.ts +12 -0
- package/vitest.setup.ts +1 -0
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
|
|
2
|
+
> @object-ui/plugin-view@2.0.0 build /home/runner/work/objectui/objectui/packages/plugin-view
|
|
3
|
+
> vite build
|
|
4
|
+
|
|
5
|
+
[36mvite v7.3.1 [32mbuilding client environment for production...[36m[39m
|
|
6
|
+
transforming...
|
|
7
|
+
[32m✓[39m 16 modules transformed.
|
|
8
|
+
rendering chunks...
|
|
9
|
+
[32m
|
|
10
|
+
[36m[vite:dts][32m Start generate declaration files...[39m
|
|
11
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m183[0m:[93m42[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
12
|
+
|
|
13
|
+
[7m183[0m expect(screen.getByText('Status')).toBeInTheDocument();
|
|
14
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
15
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m184[0m:[93m40[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
16
|
+
|
|
17
|
+
[7m184[0m expect(screen.getByText('Name')).toBeInTheDocument();
|
|
18
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
19
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m187[0m:[93m51[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement | null>'.
|
|
20
|
+
|
|
21
|
+
[7m187[0m expect(screen.queryByTestId('popover')).not.toBeInTheDocument();
|
|
22
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
23
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m188[0m:[93m50[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement | null>'.
|
|
24
|
+
|
|
25
|
+
[7m188[0m expect(screen.queryByTestId('drawer')).not.toBeInTheDocument();
|
|
26
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
27
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m194[0m:[93m42[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
28
|
+
|
|
29
|
+
[7m194[0m expect(screen.getByText('Status')).toBeInTheDocument();
|
|
30
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
31
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m195[0m:[93m40[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
32
|
+
|
|
33
|
+
[7m195[0m expect(screen.getByText('Name')).toBeInTheDocument();
|
|
34
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
35
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m206[0m:[93m42[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
36
|
+
|
|
37
|
+
[7m206[0m expect(screen.getByText('Status')).toBeInTheDocument();
|
|
38
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
39
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m207[0m:[93m40[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
40
|
+
|
|
41
|
+
[7m207[0m expect(screen.getByText('Name')).toBeInTheDocument();
|
|
42
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
43
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m219[0m:[93m41[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
44
|
+
|
|
45
|
+
[7m219[0m expect(screen.getByText('email')).toBeInTheDocument();
|
|
46
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
47
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m225[0m:[93m42[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
48
|
+
|
|
49
|
+
[7m225[0m expect(screen.getByText('Active')).toBeInTheDocument();
|
|
50
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
51
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m226[0m:[93m44[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
52
|
+
|
|
53
|
+
[7m226[0m expect(screen.getByText('Inactive')).toBeInTheDocument();
|
|
54
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
55
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m239[0m:[93m21[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
56
|
+
|
|
57
|
+
[7m239[0m expect(input).toBeInTheDocument();
|
|
58
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
59
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m320[0m:[93m26[0m - [91merror[0m[90m TS2339: [0mProperty 'toHaveAttribute' does not exist on type 'Assertion<HTMLElement>'.
|
|
60
|
+
|
|
61
|
+
[7m320[0m expect(selectRoot).toHaveAttribute('data-value', 'inactive');
|
|
62
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~[0m
|
|
63
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m331[0m:[93m45[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
64
|
+
|
|
65
|
+
[7m331[0m expect(screen.getByTestId('popover')).toBeInTheDocument();
|
|
66
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
67
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m332[0m:[93m43[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
68
|
+
|
|
69
|
+
[7m332[0m expect(screen.getByText('Filters')).toBeInTheDocument();
|
|
70
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
71
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m339[0m:[93m30[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
72
|
+
|
|
73
|
+
[7m339[0m expect(popoverContent).toBeInTheDocument();
|
|
74
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
75
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m342[0m:[93m42[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
76
|
+
|
|
77
|
+
[7m342[0m expect(screen.getByText('Status')).toBeInTheDocument();
|
|
78
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
79
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m343[0m:[93m40[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
80
|
+
|
|
81
|
+
[7m343[0m expect(screen.getByText('Name')).toBeInTheDocument();
|
|
82
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
83
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m357[0m:[93m37[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
84
|
+
|
|
85
|
+
[7m357[0m expect(screen.getByText('1')).toBeInTheDocument();
|
|
86
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
87
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m369[0m:[93m48[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement | null>'.
|
|
88
|
+
|
|
89
|
+
[7m369[0m expect(screen.queryByText('Status')).not.toBeInTheDocument();
|
|
90
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
91
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m370[0m:[93m46[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement | null>'.
|
|
92
|
+
|
|
93
|
+
[7m370[0m expect(screen.queryByText('Name')).not.toBeInTheDocument();
|
|
94
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
95
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m376[0m:[93m42[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
96
|
+
|
|
97
|
+
[7m376[0m expect(screen.getByText('Status')).toBeInTheDocument();
|
|
98
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
99
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m377[0m:[93m40[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
100
|
+
|
|
101
|
+
[7m377[0m expect(screen.getByText('Name')).toBeInTheDocument();
|
|
102
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
103
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m383[0m:[93m42[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
104
|
+
|
|
105
|
+
[7m383[0m expect(screen.getByText('Status')).toBeInTheDocument();
|
|
106
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
107
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m402[0m:[93m43[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement | null>'.
|
|
108
|
+
|
|
109
|
+
[7m402[0m expect(screen.queryByText('1')).not.toBeInTheDocument();
|
|
110
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
111
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m415[0m:[93m43[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement | null>'.
|
|
112
|
+
|
|
113
|
+
[7m415[0m expect(screen.queryByText('1')).not.toBeInTheDocument();
|
|
114
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
115
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m428[0m:[93m43[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement | null>'.
|
|
116
|
+
|
|
117
|
+
[7m428[0m expect(screen.queryByText('1')).not.toBeInTheDocument();
|
|
118
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
119
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m441[0m:[93m43[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement | null>'.
|
|
120
|
+
|
|
121
|
+
[7m441[0m expect(screen.queryByText('1')).not.toBeInTheDocument();
|
|
122
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
123
|
+
[96msrc/__tests__/FilterUI.test.tsx[0m:[93m454[0m:[93m37[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
124
|
+
|
|
125
|
+
[7m454[0m expect(screen.getByText('2')).toBeInTheDocument();
|
|
126
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
127
|
+
[96msrc/__tests__/SortUI.test.tsx[0m:[93m98[0m:[93m40[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
128
|
+
|
|
129
|
+
[7m98[0m expect(screen.getByText('Name')).toBeInTheDocument();
|
|
130
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
131
|
+
[96msrc/__tests__/SortUI.test.tsx[0m:[93m99[0m:[93m40[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
132
|
+
|
|
133
|
+
[7m99[0m expect(screen.getByText('Date')).toBeInTheDocument();
|
|
134
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
135
|
+
[96msrc/__tests__/SortUI.test.tsx[0m:[93m108[0m:[93m21[0m - [91merror[0m[90m TS2339: [0mProperty 'toHaveAttribute' does not exist on type 'Assertion<HTMLElement>'.
|
|
136
|
+
|
|
137
|
+
[7m108[0m expect(btn).toHaveAttribute('data-variant', 'outline');
|
|
138
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~[0m
|
|
139
|
+
[96msrc/__tests__/SortUI.test.tsx[0m:[93m123[0m:[93m23[0m - [91merror[0m[90m TS2339: [0mProperty 'toHaveAttribute' does not exist on type 'Assertion<HTMLButtonElement>'.
|
|
140
|
+
|
|
141
|
+
[7m123[0m expect(nameBtn).toHaveAttribute('data-variant', 'secondary');
|
|
142
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~[0m
|
|
143
|
+
[96msrc/__tests__/SortUI.test.tsx[0m:[93m126[0m:[93m23[0m - [91merror[0m[90m TS2339: [0mProperty 'toHaveAttribute' does not exist on type 'Assertion<HTMLButtonElement>'.
|
|
144
|
+
|
|
145
|
+
[7m126[0m expect(dateBtn).toHaveAttribute('data-variant', 'outline');
|
|
146
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~[0m
|
|
147
|
+
[96msrc/__tests__/SortUI.test.tsx[0m:[93m157[0m:[93m40[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
148
|
+
|
|
149
|
+
[7m157[0m expect(screen.getByText('Name')).toBeInTheDocument();
|
|
150
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
151
|
+
[96msrc/__tests__/SortUI.test.tsx[0m:[93m158[0m:[93m40[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
152
|
+
|
|
153
|
+
[7m158[0m expect(screen.getByText('Date')).toBeInTheDocument();
|
|
154
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
155
|
+
[96msrc/__tests__/SortUI.test.tsx[0m:[93m164[0m:[93m45[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
156
|
+
|
|
157
|
+
[7m164[0m expect(screen.getByText('Ascending')).toBeInTheDocument();
|
|
158
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
159
|
+
[96msrc/__tests__/SortUI.test.tsx[0m:[93m165[0m:[93m46[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
160
|
+
|
|
161
|
+
[7m165[0m expect(screen.getByText('Descending')).toBeInTheDocument();
|
|
162
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
163
|
+
[96msrc/__tests__/SortUI.test.tsx[0m:[93m188[0m:[93m50[0m - [91merror[0m[90m TS2339: [0mProperty 'toBeInTheDocument' does not exist on type 'Assertion<HTMLElement>'.
|
|
164
|
+
|
|
165
|
+
[7m188[0m expect(screen.getByTestId('sort-builder')).toBeInTheDocument();
|
|
166
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~~~[0m
|
|
167
|
+
[96msrc/__tests__/SortUI.test.tsx[0m:[93m243[0m:[93m23[0m - [91merror[0m[90m TS2339: [0mProperty 'toHaveAttribute' does not exist on type 'Assertion<HTMLButtonElement>'.
|
|
168
|
+
|
|
169
|
+
[7m243[0m expect(dateBtn).toHaveAttribute('data-variant', 'secondary');
|
|
170
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~[0m
|
|
171
|
+
[96msrc/__tests__/SortUI.test.tsx[0m:[93m260[0m:[93m21[0m - [91merror[0m[90m TS2339: [0mProperty 'toHaveAttribute' does not exist on type 'Assertion<HTMLElement>'.
|
|
172
|
+
|
|
173
|
+
[7m260[0m expect(btn).toHaveAttribute('data-variant', 'outline');
|
|
174
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~[0m
|
|
175
|
+
[96msrc/__tests__/SortUI.test.tsx[0m:[93m341[0m:[93m23[0m - [91merror[0m[90m TS2339: [0mProperty 'toHaveAttribute' does not exist on type 'Assertion<HTMLButtonElement>'.
|
|
176
|
+
|
|
177
|
+
[7m341[0m expect(nameBtn).toHaveAttribute('data-variant', 'secondary');
|
|
178
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~[0m
|
|
179
|
+
[96msrc/__tests__/SortUI.test.tsx[0m:[93m342[0m:[93m23[0m - [91merror[0m[90m TS2339: [0mProperty 'toHaveAttribute' does not exist on type 'Assertion<HTMLButtonElement>'.
|
|
180
|
+
|
|
181
|
+
[7m342[0m expect(dateBtn).toHaveAttribute('data-variant', 'secondary');
|
|
182
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~[0m
|
|
183
|
+
[96msrc/__tests__/SortUI.test.tsx[0m:[93m376[0m:[93m21[0m - [91merror[0m[90m TS2339: [0mProperty 'toHaveAttribute' does not exist on type 'Assertion<HTMLElement>'.
|
|
184
|
+
|
|
185
|
+
[7m376[0m expect(btn).toHaveAttribute('data-variant', 'outline');
|
|
186
|
+
[7m [0m [91m ~~~~~~~~~~~~~~~[0m
|
|
187
|
+
|
|
188
|
+
computing gzip size...
|
|
189
|
+
[2mdist/[22m[36mindex.js [39m[1m[2m47.74 kB[22m[1m[22m[2m │ gzip: 12.26 kB[22m
|
|
190
|
+
[32m[36m[vite:dts][32m Declaration files built in 5404ms.
|
|
191
|
+
[39m
|
|
192
|
+
[33mNo name was provided for external module "@object-ui/core" in "output.globals" – guessing "core".[39m
|
|
193
|
+
[33mNo name was provided for external module "@object-ui/plugin-grid" in "output.globals" – guessing "pluginGrid".[39m
|
|
194
|
+
[33mNo name was provided for external module "@object-ui/plugin-form" in "output.globals" – guessing "pluginForm".[39m
|
|
195
|
+
[33mNo name was provided for external module "@object-ui/components" in "output.globals" – guessing "components".[39m
|
|
196
|
+
[33mNo name was provided for external module "lucide-react" in "output.globals" – guessing "lucideReact".[39m
|
|
197
|
+
[33mNo name was provided for external module "@object-ui/react" in "output.globals" – guessing "react".[39m
|
|
198
|
+
[2mdist/[22m[36mindex.umd.cjs [39m[1m[2m33.54 kB[22m[1m[22m[2m │ gzip: 10.79 kB[22m
|
|
199
|
+
[32m✓ built in 5.86s[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @object-ui/plugin-view
|
|
2
2
|
|
|
3
|
+
## 2.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- b859617: Release v1.0.0 — unify all package versions to 1.0.0
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [b859617]
|
|
12
|
+
- @object-ui/types@2.0.0
|
|
13
|
+
- @object-ui/core@2.0.0
|
|
14
|
+
- @object-ui/react@2.0.0
|
|
15
|
+
- @object-ui/components@2.0.0
|
|
16
|
+
- @object-ui/plugin-form@2.0.0
|
|
17
|
+
- @object-ui/plugin-grid@2.0.0
|
|
18
|
+
|
|
3
19
|
## 0.3.1
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -11,6 +11,7 @@ Object View plugin for Object UI - Unified component for displaying and managing
|
|
|
11
11
|
- **Field Mapping** - Automatic field type detection
|
|
12
12
|
- **Validation** - Schema-based validation
|
|
13
13
|
- **ObjectQL Integration** - Native ObjectStack support
|
|
14
|
+
- **View Controls** - View switcher, filter UI, and sort UI components
|
|
14
15
|
|
|
15
16
|
## Installation
|
|
16
17
|
|
|
@@ -66,6 +67,63 @@ Unified view component for ObjectQL objects:
|
|
|
66
67
|
}
|
|
67
68
|
```
|
|
68
69
|
|
|
70
|
+
### ViewSwitcher
|
|
71
|
+
|
|
72
|
+
Toggle between multiple view configurations:
|
|
73
|
+
|
|
74
|
+
```typescript
|
|
75
|
+
{
|
|
76
|
+
type: 'view-switcher',
|
|
77
|
+
views: [
|
|
78
|
+
{ type: 'grid', label: 'Grid', schema: { type: 'text', content: 'Grid content' } },
|
|
79
|
+
{ type: 'kanban', label: 'Kanban', schema: { type: 'text', content: 'Kanban content' } }
|
|
80
|
+
],
|
|
81
|
+
defaultView: 'grid',
|
|
82
|
+
variant: 'tabs',
|
|
83
|
+
position: 'top',
|
|
84
|
+
persistPreference: true,
|
|
85
|
+
storageKey: 'my-view-switcher'
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### FilterUI
|
|
90
|
+
|
|
91
|
+
Render a filter toolbar with multiple field types:
|
|
92
|
+
|
|
93
|
+
```typescript
|
|
94
|
+
{
|
|
95
|
+
type: 'filter-ui',
|
|
96
|
+
layout: 'popover',
|
|
97
|
+
showApply: true,
|
|
98
|
+
showClear: true,
|
|
99
|
+
filters: [
|
|
100
|
+
{ field: 'name', label: 'Name', type: 'text', placeholder: 'Search name' },
|
|
101
|
+
{ field: 'status', label: 'Status', type: 'select', options: [
|
|
102
|
+
{ label: 'Open', value: 'open' },
|
|
103
|
+
{ label: 'Closed', value: 'closed' }
|
|
104
|
+
] },
|
|
105
|
+
{ field: 'created_at', label: 'Created', type: 'date-range' }
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### SortUI
|
|
111
|
+
|
|
112
|
+
Configure sorting with dropdowns or buttons:
|
|
113
|
+
|
|
114
|
+
```typescript
|
|
115
|
+
{
|
|
116
|
+
type: 'sort-ui',
|
|
117
|
+
variant: 'dropdown',
|
|
118
|
+
multiple: true,
|
|
119
|
+
fields: [
|
|
120
|
+
{ field: 'name', label: 'Name' },
|
|
121
|
+
{ field: 'created_at', label: 'Created At' }
|
|
122
|
+
],
|
|
123
|
+
sort: [{ field: 'name', direction: 'asc' }]
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
69
127
|
## Examples
|
|
70
128
|
|
|
71
129
|
### Grid View
|