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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flameresttable",
3
- "version": "1.0.117",
3
+ "version": "1.0.119",
4
4
  "main": "./src/plugin.ts",
5
5
  "repository": {
6
6
  "type": "git",
@@ -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) => string,
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) => 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
 
@@ -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
  /**
package/tsconfig.json CHANGED
@@ -29,7 +29,7 @@
29
29
  ],
30
30
  "skipLibCheck": true,
31
31
  "allowJs": true,
32
- "experimentalDecorators": true,
32
+ "experimentalDecorators": true
33
33
  },
34
34
  "include": [
35
35
  "src/**/*.ts",