flameresttable 1.0.117 → 1.0.119
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/package.json +1 -1
- package/src/Table/Columns.ts +51 -6
- package/src/Table/FlameTable.ts +11 -1
- package/tsconfig.json +1 -1
package/package.json
CHANGED
package/src/Table/Columns.ts
CHANGED
|
@@ -124,7 +124,17 @@ export class Column implements IColumn {
|
|
|
124
124
|
* @param col
|
|
125
125
|
* @returns
|
|
126
126
|
*/
|
|
127
|
-
value: (row: any, col: string) => row[col]
|
|
127
|
+
value: (row: any, col: string) => row[col],
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Добавить в начало списка
|
|
131
|
+
*/
|
|
132
|
+
prepend: [] as ITableSelectorItem[],
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Добавить в конец списка
|
|
136
|
+
*/
|
|
137
|
+
append: [] as ITableSelectorItem[]
|
|
128
138
|
|
|
129
139
|
};
|
|
130
140
|
|
|
@@ -228,7 +238,17 @@ export class Column implements IColumn {
|
|
|
228
238
|
values: [],
|
|
229
239
|
|
|
230
240
|
// Загрузчик значений - используется всегда и перекрывает values
|
|
231
|
-
loader: (column: Column) => null
|
|
241
|
+
loader: (column: Column) => null,
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Добавить в начало списка
|
|
245
|
+
*/
|
|
246
|
+
prepend: [] as ITableSelectorItem[],
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Добавить в конец списка
|
|
250
|
+
*/
|
|
251
|
+
append: [] as ITableSelectorItem[]
|
|
232
252
|
|
|
233
253
|
},
|
|
234
254
|
|
|
@@ -310,7 +330,7 @@ export interface IColumn {
|
|
|
310
330
|
Table?: {
|
|
311
331
|
isShow?: boolean,
|
|
312
332
|
title?: string,
|
|
313
|
-
value?: (row: any, column: Column) =>
|
|
333
|
+
value?: (row: any, column: Column) => any,
|
|
314
334
|
isRawValue?: boolean,
|
|
315
335
|
click?: (row: any, column: Column) => void,
|
|
316
336
|
classes?: string,
|
|
@@ -388,6 +408,12 @@ export interface IColumn {
|
|
|
388
408
|
*/
|
|
389
409
|
Selector?: {
|
|
390
410
|
|
|
411
|
+
/**
|
|
412
|
+
* Нужна авто-предзагрузка значений при загрузке страницы
|
|
413
|
+
* [полная таблица]
|
|
414
|
+
*/
|
|
415
|
+
preload?: boolean,
|
|
416
|
+
|
|
391
417
|
/**
|
|
392
418
|
* Загрузчик значений ручной
|
|
393
419
|
* @returns ITableSelectorItem[]
|
|
@@ -412,7 +438,17 @@ export interface IColumn {
|
|
|
412
438
|
* @param col
|
|
413
439
|
* @returns
|
|
414
440
|
*/
|
|
415
|
-
value?: (row: any, col: string) =>
|
|
441
|
+
value?: (row: any, col: string) => any,
|
|
442
|
+
|
|
443
|
+
/**
|
|
444
|
+
* Добавить в начало списка
|
|
445
|
+
*/
|
|
446
|
+
prepend?: ITableSelectorItem[],
|
|
447
|
+
|
|
448
|
+
/**
|
|
449
|
+
* Добавить в конец списка
|
|
450
|
+
*/
|
|
451
|
+
append?: ITableSelectorItem[]
|
|
416
452
|
|
|
417
453
|
},
|
|
418
454
|
|
|
@@ -460,7 +496,6 @@ export interface IColumn {
|
|
|
460
496
|
// Текст ошибки добавления/обновления
|
|
461
497
|
errorMessage?: string,
|
|
462
498
|
|
|
463
|
-
|
|
464
499
|
// Настройки селектора, если он включён в popupType
|
|
465
500
|
Selector?: {
|
|
466
501
|
|
|
@@ -468,7 +503,17 @@ export interface IColumn {
|
|
|
468
503
|
values?: Array<any>,
|
|
469
504
|
|
|
470
505
|
// Загрузчик значений - используется всегда и перекрывает values
|
|
471
|
-
loader?: (column: Column) => Array<any> | null
|
|
506
|
+
loader?: (column: Column) => Array<any> | null,
|
|
507
|
+
|
|
508
|
+
/**
|
|
509
|
+
* Добавить в начало списка
|
|
510
|
+
*/
|
|
511
|
+
prepend?: ITableSelectorItem[],
|
|
512
|
+
|
|
513
|
+
/**
|
|
514
|
+
* Добавить в конец списка
|
|
515
|
+
*/
|
|
516
|
+
append?: ITableSelectorItem[]
|
|
472
517
|
|
|
473
518
|
},
|
|
474
519
|
|
package/src/Table/FlameTable.ts
CHANGED
|
@@ -111,8 +111,11 @@ export default class FlameTable<T> {
|
|
|
111
111
|
newCol.name = key;
|
|
112
112
|
|
|
113
113
|
// Загружаем селекторы один раз за страницу
|
|
114
|
-
if (newCol.Popup.popupType === 'selector' && newCol.Popup.Selector.loader !== null)
|
|
114
|
+
if (newCol.Popup.popupType === 'selector' && newCol.Popup.Selector.loader !== null) {
|
|
115
115
|
newCol.Popup.Selector.values = reactive(newCol.Popup.Selector.loader(newCol) ?? newCol.Popup.Selector.values)
|
|
116
|
+
if (newCol.Popup.Selector.prepend.length > 0) (newCol.Popup.Selector.values as any[]).unshift(...newCol.Popup.Selector.prepend);
|
|
117
|
+
if (newCol.Popup.Selector.append.length > 0) (newCol.Popup.Selector.values as any[]).push(...newCol.Popup.Selector.append);
|
|
118
|
+
}
|
|
116
119
|
|
|
117
120
|
}
|
|
118
121
|
|
|
@@ -225,6 +228,13 @@ export default class FlameTable<T> {
|
|
|
225
228
|
// Начинаем процесс предзагрузки
|
|
226
229
|
await Promise.allSettled(allPreloadPromises);
|
|
227
230
|
|
|
231
|
+
// Добавляем prepend/append
|
|
232
|
+
for (const key in this.columns) {
|
|
233
|
+
const col = this.columns[key];
|
|
234
|
+
if (col.Selector.prepend.length > 0) col.Selector.values.unshift(...col.Selector.prepend);
|
|
235
|
+
if (col.Selector.append.length > 0) col.Selector.values.push(...col.Selector.append);
|
|
236
|
+
}
|
|
237
|
+
|
|
228
238
|
}
|
|
229
239
|
|
|
230
240
|
/**
|