flameresttable 1.0.118 → 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.118",
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
 
@@ -418,7 +438,17 @@ export interface IColumn {
418
438
  * @param col
419
439
  * @returns
420
440
  */
421
- value?: (row: any, col: string) => any
441
+ value?: (row: any, col: string) => any,
442
+
443
+ /**
444
+ * Добавить в начало списка
445
+ */
446
+ prepend?: ITableSelectorItem[],
447
+
448
+ /**
449
+ * Добавить в конец списка
450
+ */
451
+ append?: ITableSelectorItem[]
422
452
 
423
453
  },
424
454
 
@@ -466,7 +496,6 @@ export interface IColumn {
466
496
  // Текст ошибки добавления/обновления
467
497
  errorMessage?: string,
468
498
 
469
-
470
499
  // Настройки селектора, если он включён в popupType
471
500
  Selector?: {
472
501
 
@@ -474,7 +503,17 @@ export interface IColumn {
474
503
  values?: Array<any>,
475
504
 
476
505
  // Загрузчик значений - используется всегда и перекрывает values
477
- 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[]
478
517
 
479
518
  },
480
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
  /**