@bexis2/bexis2-core-ui 0.3.12 → 0.3.13

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.
Files changed (30) hide show
  1. package/README.md +1 -0
  2. package/dist/components/File/FileUploader.svelte +3 -3
  3. package/dist/components/Table/TableContent.svelte +202 -119
  4. package/dist/components/Table/TableFilter.svelte +146 -102
  5. package/dist/components/Table/TableFilter.svelte.d.ts +2 -3
  6. package/dist/components/Table/TableFilterServer.svelte +274 -0
  7. package/dist/components/Table/TableFilterServer.svelte.d.ts +22 -0
  8. package/dist/components/Table/TablePagination.svelte +72 -39
  9. package/dist/components/Table/TablePaginationServer.svelte +125 -0
  10. package/dist/components/Table/TablePaginationServer.svelte.d.ts +21 -0
  11. package/dist/components/Table/filter.js +40 -78
  12. package/dist/components/Table/shared.d.ts +32 -0
  13. package/dist/components/Table/shared.js +117 -0
  14. package/dist/components/form/DropdownKvP.svelte.d.ts +4 -4
  15. package/dist/components/form/MultiSelect.svelte.d.ts +6 -6
  16. package/dist/models/Enums.d.ts +18 -0
  17. package/dist/models/Enums.js +20 -0
  18. package/dist/models/Models.d.ts +43 -2
  19. package/dist/models/Models.js +28 -1
  20. package/package.json +2 -2
  21. package/src/lib/components/Table/TableContent.svelte +227 -151
  22. package/src/lib/components/Table/TableFilter.svelte +166 -102
  23. package/src/lib/components/Table/TableFilterServer.svelte +310 -0
  24. package/src/lib/components/Table/TablePagination.svelte +75 -39
  25. package/src/lib/components/Table/TablePaginationServer.svelte +133 -0
  26. package/src/lib/components/Table/filter.ts +42 -86
  27. package/src/lib/components/Table/shared.ts +141 -0
  28. package/src/lib/components/file/FileUploader.svelte +3 -3
  29. package/src/lib/models/Enums.ts +22 -0
  30. package/src/lib/models/Models.ts +63 -2
@@ -3,6 +3,7 @@ import type { ColumnFilterFn } from 'svelte-headless-table/lib/plugins';
3
3
  import type { Writable } from 'svelte/store';
4
4
 
5
5
  import type {
6
+ FilterOptionsEnum,
6
7
  decimalCharacterType,
7
8
  notificationType,
8
9
  orientationType,
@@ -107,7 +108,7 @@ export interface Columns {
107
108
  export interface TableConfig<T> {
108
109
  id: string;
109
110
  data: Writable<T[]>;
110
- resizable?: 'rows' | 'columns' | 'both'; // none by default
111
+ resizable?: 'none' | 'rows' | 'columns' | 'both'; // none by default
111
112
  toggle?: boolean; // false by default
112
113
  fitToScreen?: boolean; // true by default
113
114
  height?: null | number; // null by default
@@ -117,6 +118,13 @@ export interface TableConfig<T> {
117
118
  pageSizes?: number[]; // [5, 10, 15, 20] by default
118
119
  defaultPageSize?: number; // 10 by default
119
120
  optionsComponent?: typeof SvelteComponent;
121
+
122
+ serverSide?: boolean; // false by default
123
+ URL?: string; // Base URL for server-side table
124
+ token?: string; // Authorization token for server-side table
125
+ sendModel?: Send; // Send model for server-side table
126
+ entityId?: number; // Entity ID for server-side table
127
+ versionId?: number; // Version ID for server-side table
120
128
  }
121
129
 
122
130
  // lists
@@ -129,7 +137,7 @@ export interface listItemType {
129
137
  id: number;
130
138
  text: string;
131
139
  group: string;
132
- description:string;
140
+ description: string;
133
141
  }
134
142
 
135
143
  //help
@@ -156,3 +164,56 @@ export interface notificationStoreType {
156
164
  message: string;
157
165
  btnStyle: string;
158
166
  }
167
+
168
+ // Table column type for server-side table
169
+ export type ServerColumn = {
170
+ column: string;
171
+ exclude?: boolean; // false by default
172
+ instructions?: {
173
+ missingValues?: { [key: string | number]: string };
174
+ displayPattern?: string;
175
+ };
176
+ };
177
+
178
+ export type OrderBy = {
179
+ column: string;
180
+ direction: 'asc' | 'desc';
181
+ };
182
+
183
+ export type Filter = {
184
+ column: string;
185
+ filterBy: FilterOptionsEnum;
186
+ value: string | number | Date | boolean;
187
+ };
188
+
189
+ export class Send {
190
+ id: number;
191
+ limit: number;
192
+ offset: number;
193
+ version?: number;
194
+ filter: Filter[];
195
+ order: OrderBy[];
196
+
197
+ constructor() {
198
+ this.id = 0;
199
+ this.limit = 10;
200
+ this.offset = 0;
201
+ this.version = 0;
202
+ this.filter = [];
203
+ this.order = [];
204
+ }
205
+ }
206
+
207
+ export class Receive {
208
+ count: number;
209
+ data: any[];
210
+ send: Send;
211
+ columns?: ServerColumn[];
212
+
213
+ constructor() {
214
+ this.count = 0;
215
+ this.data = [];
216
+ this.send = new Send();
217
+ this.columns = [];
218
+ }
219
+ }