@mediusinc/mng-commons 5.3.0-rc.2 → 5.3.0-rc.4

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 (95) hide show
  1. package/core/data-list/data-list.model.d.ts +1 -1
  2. package/core/data-providers/lookup.data-provider.d.ts +5 -5
  3. package/core/descriptors/lookup.descriptor.d.ts +3 -3
  4. package/core/descriptors/table.descriptor.d.ts +1 -1
  5. package/esm2022/core/data-list/data-list-params-helpers.mjs +1 -1
  6. package/esm2022/core/data-list/data-list.model.mjs +1 -1
  7. package/esm2022/core/data-providers/lookup.data-provider.mjs +1 -1
  8. package/esm2022/core/descriptors/lookup.descriptor.mjs +1 -1
  9. package/esm2022/core/descriptors/table.descriptor.mjs +1 -1
  10. package/esm2022/filter/descriptors/filter-lookup.descriptor.mjs +60 -2
  11. package/esm2022/filter/descriptors/filter.descriptor.mjs +118 -8
  12. package/esm2022/form/api/data-providers/lookup-data-provider.factory.mjs +17 -6
  13. package/esm2022/form/api/data-providers/lookup.data-provider.mjs +1 -1
  14. package/esm2022/form/components/autocomplete/autocomplete.component.mjs +1 -1
  15. package/esm2022/form/components/dropdown/dropdown.component.mjs +3 -3
  16. package/esm2022/model/helpers/model.mjs +1 -1
  17. package/esm2022/table/api/data-providers/table-data-provider.factory.mjs +16 -7
  18. package/esm2022/table/api/descriptors/column.descriptor.mjs +125 -4
  19. package/esm2022/table/api/descriptors/sort.descriptor.mjs +23 -1
  20. package/esm2022/table/api/descriptors/table-descriptor.factory.mjs +1 -1
  21. package/esm2022/table/api/descriptors/table.descriptor.mjs +435 -44
  22. package/esm2022/table/api/helpers/table-data-provider-descriptor-convert.mjs +7 -0
  23. package/esm2022/table/api/index.mjs +3 -1
  24. package/esm2022/table/api/models/row-expandable-component.model.mjs +2 -0
  25. package/esm2022/table/api/models/table-columns.model.mjs +1 -1
  26. package/esm2022/table/components/column-value/column-value.component.mjs +3 -3
  27. package/esm2022/table/components/filter/filter-overlay-with-tag/filter-overlay-with-tag.component.mjs +3 -3
  28. package/esm2022/table/components/table/table.component.mjs +6 -6
  29. package/esm2022/tableview/action/components/action/action.component.mjs +3 -3
  30. package/esm2022/tableview/action/components/table/action-table.component.mjs +3 -3
  31. package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +6 -6
  32. package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +2 -4
  33. package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +1 -1
  34. package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +14 -1
  35. package/esm2022/tableview/api/editor/models/field-image-preview.model.mjs +2 -0
  36. package/esm2022/tableview/api/index.mjs +3 -1
  37. package/esm2022/tableview/api/tableview/data-providers/tableview-data-provider.factory.mjs +16 -7
  38. package/esm2022/tableview/api/tableview/descriptors/tableview-descriptor.factory.mjs +1 -1
  39. package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +5 -5
  40. package/esm2022/tableview/api/tableview/helpers/tableview-data-provider-descriptor-convert.mjs +7 -0
  41. package/esm2022/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +3 -3
  42. package/esm2022/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.mjs +3 -3
  43. package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +3 -3
  44. package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +9 -3
  45. package/esm2022/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +3 -3
  46. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +3 -3
  47. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +3 -3
  48. package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
  49. package/fesm2022/mediusinc-mng-commons-filter.mjs +176 -8
  50. package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
  51. package/fesm2022/mediusinc-mng-commons-form-api.mjs +16 -5
  52. package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
  53. package/fesm2022/mediusinc-mng-commons-form.mjs +2 -2
  54. package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
  55. package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
  56. package/fesm2022/mediusinc-mng-commons-table-api.mjs +602 -53
  57. package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
  58. package/fesm2022/mediusinc-mng-commons-table.mjs +9 -9
  59. package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
  60. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +45 -19
  61. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
  62. package/fesm2022/mediusinc-mng-commons-tableview.mjs +23 -18
  63. package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
  64. package/filter/descriptors/filter-lookup.descriptor.d.ts +70 -12
  65. package/filter/descriptors/filter.descriptor.d.ts +116 -5
  66. package/form/api/data-providers/lookup-data-provider.factory.d.ts +16 -12
  67. package/form/api/data-providers/lookup.data-provider.d.ts +5 -5
  68. package/form/components/autocomplete/autocomplete.component.d.ts +1 -1
  69. package/form/components/dropdown/dropdown.component.d.ts +1 -1
  70. package/model/helpers/model.d.ts +1 -1
  71. package/package.json +7 -7
  72. package/table/api/data-providers/table-data-provider.factory.d.ts +9 -5
  73. package/table/api/descriptors/column.descriptor.d.ts +126 -5
  74. package/table/api/descriptors/sort.descriptor.d.ts +22 -0
  75. package/table/api/descriptors/table-descriptor.factory.d.ts +8 -4
  76. package/table/api/descriptors/table.descriptor.d.ts +429 -28
  77. package/table/api/helpers/table-data-provider-descriptor-convert.d.ts +20 -0
  78. package/table/api/index.d.ts +2 -0
  79. package/table/api/models/row-expandable-component.model.d.ts +4 -0
  80. package/table/api/models/table-columns.model.d.ts +6 -6
  81. package/table/components/column-filter/column-filter.component.d.ts +1 -1
  82. package/table/components/filter/filter-form/filter-form.component.d.ts +1 -1
  83. package/tableview/action/components/localization/data-language-dropdown.component.d.ts +1 -1
  84. package/tableview/api/editor/descriptors/editor.descriptor.d.ts +11 -11
  85. package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +5 -5
  86. package/tableview/api/editor/descriptors/field-lookup.descriptor.d.ts +12 -12
  87. package/tableview/api/editor/descriptors/field.descriptor.d.ts +10 -0
  88. package/tableview/api/editor/models/field-image-preview.model.d.ts +4 -0
  89. package/tableview/api/index.d.ts +2 -0
  90. package/tableview/api/tableview/data-providers/tableview-data-provider.factory.d.ts +9 -5
  91. package/tableview/api/tableview/descriptors/tableview-descriptor.factory.d.ts +10 -6
  92. package/tableview/api/tableview/descriptors/tableview.descriptor.d.ts +17 -17
  93. package/tableview/api/tableview/helpers/tableview-data-provider-descriptor-convert.d.ts +20 -0
  94. package/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.d.ts +1 -0
  95. package/version-info.json +5 -5
@@ -23,11 +23,15 @@ export declare class TableDescriptor extends TableDescriptorInst<any> {
23
23
  */
24
24
  static fromClassWithCustomAttrsDef<TableModel>(type: ClassType<TableModel>, attributes: TableClassAttributeDef[], idProperty?: keyof TableModel, titleProperty?: keyof TableModel): TableDescriptorInst<TableModel>;
25
25
  }
26
- export type TableDescriptorCreateOptsType<TableModel> = ModelDescriptorCreateOpts<TableModel>;
26
+ export type TableDescriptorSortsFiltersCreateOptsType<TableModel, Sorts = keyof TableModel, Filters = keyof TableModel> = {
27
+ filtersType?: TypeDescriptor<Filters>;
28
+ sortsType?: TypeDescriptor<Sorts>;
29
+ };
30
+ export type TableDescriptorCreateOptsType<TableModel, Sorts = keyof TableModel, Filters = keyof TableModel> = TableDescriptorSortsFiltersCreateOptsType<TableModel, Sorts, Filters> & ModelDescriptorCreateOpts<TableModel>;
27
31
  export declare function tableDescriptor<TableModel, Sorts = keyof TableModel, Filters = keyof TableModel>(): TableDescriptorInst<TableModel, Sorts, Filters>;
28
- export declare function tableDescriptor<TableModel, Sorts = keyof TableModel, Filters = keyof TableModel>(opts: TableDescriptorCreateOptsType<TableModel>): TableDescriptorInst<TableModel, Sorts, Filters>;
29
- export declare function tableDescriptor<TableModel, Sorts = keyof TableModel, Filters = keyof TableModel>(model: ModelDescriptor<TableModel>): TableDescriptorInst<TableModel, Sorts, Filters>;
30
- export declare function tableDescriptor<TableModel, Sorts = keyof TableModel, Filters = keyof TableModel>(type: TypeDescriptor<TableModel>, opts?: TableDescriptorCreateOptsType<TableModel>): TableDescriptorInst<TableModel, Sorts, Filters>;
32
+ export declare function tableDescriptor<TableModel, Sorts = keyof TableModel, Filters = keyof TableModel>(opts: TableDescriptorCreateOptsType<TableModel, Sorts, Filters>): TableDescriptorInst<TableModel, Sorts, Filters>;
33
+ export declare function tableDescriptor<TableModel, Sorts = keyof TableModel, Filters = keyof TableModel>(model: ModelDescriptor<TableModel>, opts?: TableDescriptorSortsFiltersCreateOptsType<TableModel, Sorts, Filters>): TableDescriptorInst<TableModel, Sorts, Filters>;
34
+ export declare function tableDescriptor<TableModel, Sorts = keyof TableModel, Filters = keyof TableModel>(type: TypeDescriptor<TableModel>, opts?: TableDescriptorCreateOptsType<TableModel, Sorts, Filters>): TableDescriptorInst<TableModel, Sorts, Filters>;
31
35
  export declare function tableDescriptorFromClass<TableModel, Sorts = keyof TableModel, Filters = keyof TableModel>(type: ClassType<TableModel>, opts?: TableDescriptorCreateOptsType<TableModel>): TableDescriptorInst<TableModel, Sorts, Filters>;
32
36
  /**
33
37
  * generates descriptor based on type attribute definition
@@ -1,7 +1,9 @@
1
+ import { Type } from '@angular/core';
1
2
  import { DataListResult, EnumConstantType, ILookupDataProvider, ITableDescriptor } from '@mediusinc/mng-commons/core';
2
3
  import { FilterDescriptor, FilterDisplayTypeEnum, FilterLookupDescriptor, FilterLookupEnumDescriptor } from '@mediusinc/mng-commons/filter';
3
4
  import { EnumDescriptor, ModelDescriptor } from '@mediusinc/mng-commons/model';
4
5
  import { ColumnDisplayTypeEnum, ColumnTypeEnum } from '../models/column.model';
6
+ import { IRowExpandableComponent } from '../models/row-expandable-component.model';
5
7
  import { IColumnsManageInterface } from '../models/table-columns.model';
6
8
  import { TableDynamicColumnsModeEnum, TablePaginationModeEnum, TableSizeEnum } from '../models/table.model';
7
9
  import { ColumnDescriptor, ColumnDynamicDescriptor } from './column.descriptor';
@@ -30,8 +32,6 @@ export declare class TableDescriptorInst<TableModel, Sorts = keyof TableModel, F
30
32
  private _headerClassName?;
31
33
  private _rowClassName?;
32
34
  private _rowClassNameMapFn?;
33
- private _tableFullHeightOffset?;
34
- private _rowHeight?;
35
35
  private _filters;
36
36
  private _sorts;
37
37
  private _isLocalized;
@@ -39,6 +39,7 @@ export declare class TableDescriptorInst<TableModel, Sorts = keyof TableModel, F
39
39
  private _rowExpandable;
40
40
  private _rowExpandableColSpan;
41
41
  private _rowExpandableProperty?;
42
+ private _rowExpandableComponentType?;
42
43
  private _rowReorderable;
43
44
  constructor(model: ModelDescriptor<TableModel>, autoGenerated?: boolean);
44
45
  get identifier(): string | undefined;
@@ -56,8 +57,6 @@ export declare class TableDescriptorInst<TableModel, Sorts = keyof TableModel, F
56
57
  get model(): ModelDescriptor<TableModel, import("@mediusinc/mng-commons/core").ClassOptType<TableModel>>;
57
58
  get className(): string;
58
59
  get size(): TableSizeEnum;
59
- get tableFullHeightOffset(): number | undefined;
60
- get rowHeight(): number | undefined;
61
60
  get hasHover(): boolean;
62
61
  get hasGridlines(): boolean;
63
62
  get hasResizableColumns(): boolean;
@@ -77,92 +76,494 @@ export declare class TableDescriptorInst<TableModel, Sorts = keyof TableModel, F
77
76
  */
78
77
  get rowExpandableProperty(): string | undefined;
79
78
  /**
80
- * Track property is used for the purpose of combined saving user preferences in localstorage if 2 tables have the same track properties they will share the same localstorage entry.
79
+ * This property is used to define the type of the custom component that will be used to render the expanded row.
80
+ */
81
+ get rowExpandableComponentType(): Type<IRowExpandableComponent<TableModel>> | undefined;
82
+ /**
83
+ * Identifier is used for the purpose of combined saving user preferences in localstorage if 2 tables have the same track properties they will share the same localstorage entry.
81
84
  * Similarly, this property can also be used to differentiate two tables of the same model on the same url (so that they have separate entries in localstorage).
82
85
  * @param identifier
83
86
  */
84
87
  withIdentifier(identifier: string): this;
88
+ /**
89
+ * Sets the track property (identifier of table row) for the table.
90
+ *
91
+ * @param {keyof TableModel} property - The property to track the row items by.
92
+ */
85
93
  withTrackProperty(property?: keyof TableModel): this;
94
+ /**
95
+ * Sets the track property (identifier of table row) for the table.
96
+ *
97
+ * This function is UNSAFE!
98
+ *
99
+ * @param {string} property - The property to set '_trackProperty' to.
100
+ */
86
101
  withTrackPropertyUnsafe(property?: string): this;
87
- getColumn(property: keyof TableModel): ColumnDescriptor<any, TableModel, any> | null;
88
- getColumnUnsafe(property: string): ColumnDescriptor<any, TableModel, any> | null;
102
+ /**
103
+ * Retrieves the column descriptor for the given property.
104
+ *
105
+ * @param {keyof TableModel} property - The property for column descriptor.
106
+ *
107
+ * @return The column descriptor.
108
+ */
109
+ getColumn<Property extends keyof TableModel, ColumnModel = NonNullable<TableModel[Property]>, ColumnValue = TableModel[Property]>(property: Property): ColumnDescriptor<ColumnModel, TableModel, ColumnValue> | null;
110
+ /**
111
+ * Retrieves the column descriptor for the given property.
112
+ *
113
+ * This function is UNSAFE!
114
+ *
115
+ * @param {keyof TableModel} property - The property for column descriptor.
116
+ *
117
+ * @return The column descriptor.
118
+ */
119
+ getColumnUnsafe<ColumnModel = any, ColumnValue = ColumnModel>(property: string): ColumnDescriptor<ColumnModel, TableModel, ColumnValue> | null;
120
+ /**
121
+ * Removes the column descriptor for the given property.
122
+ *
123
+ * @param {keyof TableModel} property - The property for column descriptor.
124
+ */
89
125
  removeColumn(property: keyof TableModel): void;
126
+ /**
127
+ * Removes the column descriptor for the given property.
128
+ *
129
+ * This function is UNSAFE!
130
+ *
131
+ * @param {keyof TableModel} property - The property for column descriptor.
132
+ */
90
133
  removeColumnUnsafe(property: string): void;
134
+ /**
135
+ * Adds column descriptor to table columns.
136
+ *
137
+ * @param {ColumnDescriptor<ColumnModel, TableModel, ColumnValue>} column - The property for column descriptor.
138
+ */
91
139
  withColumn<ColumnModel, ColumnValue = ColumnModel>(column: ColumnDescriptor<ColumnModel, TableModel, ColumnValue>): this;
140
+ /**
141
+ * Adds a column to the table.
142
+ *
143
+ * @param {PropertyKey} property - The property key of the column in the table model.
144
+ *
145
+ * @returns The newly added column descriptor.
146
+ */
92
147
  addColumn<PropertyKey extends keyof TableModel>(property: PropertyKey): ColumnDescriptor<NonNullable<TableModel[PropertyKey]>, TableModel, TableModel[PropertyKey]>;
148
+ /**
149
+ * Adds a column with enum display to the table.
150
+ *
151
+ * @param {PropertyKey} property - The property key of the table model.
152
+ * @param {EnumDescriptor<Enum>} enumDesc - The enum descriptor for column display.
153
+ * @return {ColumnDescriptor<Enum, TableModel, TableModel[PropertyKey]>} - The added column descriptor.
154
+ */
93
155
  addColumnEnum<PropertyKey extends keyof TableModel, Enum extends NonNullable<TableModel[PropertyKey]>>(property: PropertyKey, enumDesc: EnumDescriptor<Enum>): ColumnDescriptor<Enum, TableModel, TableModel[PropertyKey]>;
156
+ /**
157
+ * Adds a column to the table.
158
+ *
159
+ * This function is UNSAFE!
160
+ *
161
+ * @param {string} property - The property key of the column in the table model.
162
+ *
163
+ * @returns The newly added column descriptor.
164
+ */
94
165
  addColumnUnsafe<ColumnModel = unknown>(property: string): ColumnDescriptor<ColumnModel, TableModel>;
166
+ /**
167
+ * Adds one or more columns to the table model.
168
+ *
169
+ * @param properties - An array of property names to add as columns.
170
+ */
95
171
  withColumns(...properties: (keyof TableModel)[]): this;
96
- withColumnDescriptors(...descriptors: ColumnDescriptor<any, TableModel>[]): this;
172
+ /**
173
+ * Set the pagination mode for the table.
174
+ *
175
+ * @param {TablePaginationModeEnum} paginationMode - The pagination mode to set. Must be one of the values from the TablePaginationModeEnum.
176
+ */
97
177
  withPaginationMode(paginationMode: TablePaginationModeEnum): this;
178
+ /**
179
+ * Sets the number of rows per page for a paginated display.
180
+ *
181
+ * @param {number} rows - The default number of rows to display per page.
182
+ * @param {Array<number>} [options] - Rows per page options to be available in table paginator.
183
+ */
98
184
  withRowsPerPage(rows: number, options?: Array<number>): this;
99
- withTitle(title: string | undefined): this;
185
+ /**
186
+ * Sets the title for an instance of the class.
187
+ *
188
+ * @param {string} [title] - The title value to be set. It undefiend, no title will be displayed.
189
+ */
190
+ withTitle(title?: string): this;
191
+ /**
192
+ * Shows/hides the header row with column titles.
193
+ *
194
+ * @param {boolean} hideHeader - A boolean value indicating whether to hide the header.
195
+ */
100
196
  withHideHeader(hideHeader?: boolean): this;
101
- withLoading(text?: string, icon?: string | null): this;
102
197
  /**
103
- * Helper method that enables/disables reorderable property on all columns currently in the descriptor.
104
- * @param columnsReorderable
198
+ * Adjusts loading display with custom text and/or icon.
199
+ *
200
+ * @param {string} [text] - Text to be displayed when loading indicator is shown.
201
+ * @param {string | null} [icon] - Icon to be used when loading indicator is shown.
105
202
  */
106
- withCurrentColumnsReorderable(columnsReorderable?: boolean): this;
203
+ withLoading(text?: string, icon?: string | null): this;
107
204
  /**
108
- * Helper method that enables/disables toggleable property on all columns currently in the descriptor.
109
- * @param columnsToggleable
205
+ * Retrieves the sort descriptor for a given property.
206
+ *
207
+ * @param {Sorts} property - The property to retrieve the sort for.
208
+ *
209
+ * @return {SortDescriptor<TableModel> | null} The sort descriptor or null.
110
210
  */
111
- withCurrentColumnsToggleable(columnsToggleable?: boolean): this;
112
211
  getSort(property: Sorts): SortDescriptor<TableModel> | null;
212
+ /**
213
+ * Retrieves the sort descriptor for a given property.
214
+ *
215
+ * This function is UNSAFE!
216
+ *
217
+ * @param {Sorts} property - The property to retrieve the sort for.
218
+ *
219
+ * @return {SortDescriptor<TableModel> | null} The sort descriptor or null.
220
+ */
113
221
  getSortUnsafe(property: string): SortDescriptor<TableModel> | null;
222
+ /**
223
+ * Removes the sort for a given property.
224
+ *
225
+ * @param {Sorts} property - The property to remove the sort for.
226
+ */
114
227
  removeSort(property: Sorts): void;
228
+ /**
229
+ * Removes the sort for a given property.
230
+ *
231
+ * This function is UNSAFE!
232
+ *
233
+ * @param {Sorts} property - The property to remove the sort for.
234
+ */
115
235
  removeSortUnsafe(property: string): void;
236
+ /**
237
+ * Adds sort for the given property.
238
+ *
239
+ * @param property Property to add the sort for.
240
+ * @param isDefault If default sorting is enabled.
241
+ * @param ascending If default sort should be ascending.
242
+ *
243
+ * @return Created sort descriptor.
244
+ */
116
245
  addSort(property: Sorts, isDefault?: boolean, ascending?: boolean): SortDescriptor<TableModel>;
246
+ /**
247
+ * Adds sort for the given property.
248
+ *
249
+ * This function is UNSAFE!
250
+ *
251
+ * @param property Property to add the sort for.
252
+ * @param isDefault If default sorting is enabled.
253
+ * @param ascending If default sort should be ascending.
254
+
255
+ * @return Created sort descriptor.
256
+ */
117
257
  addSortUnsafe(property: string, isDefault?: boolean, ascending?: boolean): SortDescriptor<TableModel>;
258
+ /**
259
+ * Adds sort for the given property.
260
+ *
261
+ * @param property Property to add the sort for.
262
+ * @param isDefault If default sorting is enabled.
263
+ * @param ascending If default sort should be ascending.
264
+ */
118
265
  withSort(property: Sorts, isDefault?: boolean, ascending?: boolean): this;
266
+ /**
267
+ * Adds sort for the given property.
268
+ *
269
+ * This function is UNSAFE!
270
+ *
271
+ * @param property Property to add the sort for.
272
+ * @param isDefault If default sorting is enabled.
273
+ * @param ascending If default sort should be ascending.
274
+ */
119
275
  withSortUnsafe(property: string, isDefault?: boolean, ascending?: boolean): this;
276
+ /**
277
+ * Sets the default sorting for the property.
278
+ *
279
+ * @param property - The property to set default sort for.
280
+ * @param ascending - If the sorting should be ascending (default: true).
281
+ * @param order - The order for this default sort (default: 0).
282
+ * @param enabled - Enables/disabled the default sort.
283
+ */
120
284
  withDefaultSort(property: Sorts, ascending?: boolean, order?: number, enabled?: boolean): this;
285
+ /**
286
+ * Sets the default sorting for the property.
287
+ *
288
+ * This function is UNSAFE!
289
+ *
290
+ * @param property - The property to set default sort for.
291
+ * @param ascending - If the sorting should be ascending (default: true).
292
+ * @param order - The order for this default sort (default: 0).
293
+ * @param enabled - Enables/disabled the default sort.
294
+ */
121
295
  withDefaultSortUnsafe(property: string, ascending?: boolean, order?: number, enabled?: boolean): this;
296
+ /**
297
+ * Add sorts for more properties.
298
+ *
299
+ * @param properties Properties to add the sorts for.
300
+ */
122
301
  withSorts(...properties: Sorts[]): this;
302
+ /**
303
+ * Add sorts for more properties.
304
+ *
305
+ * This function is UNSAFE!
306
+ *
307
+ * @param properties Properties to add the sorts for.
308
+ */
123
309
  withSortsUnsafe(...properties: string[]): this;
124
- getFilter(property: Filters): FilterDescriptor<any, TableModel> | null;
125
- getFilterUnsafe(property: string): FilterDescriptor<any, TableModel> | null;
310
+ /**
311
+ * Gets filter descriptor for given property.
312
+ *
313
+ * @param property Filter property
314
+ *
315
+ * @return Filter descriptor for property or null if not exists.
316
+ */
317
+ getFilter<FilterModel = Filters extends keyof TableModel ? NonNullable<TableModel[Filters]> : any>(property: Filters): FilterDescriptor<FilterModel, TableModel> | null;
318
+ /**
319
+ * Gets filter descriptor for given property.
320
+ *
321
+ * This function is UNSAFE!
322
+ *
323
+ * @param property Filter property
324
+ *
325
+ * @return Filter descriptor for property or null if not exists.
326
+ */
327
+ getFilterUnsafe<FilterModel = any>(property: string): FilterDescriptor<FilterModel, TableModel> | null;
328
+ /**
329
+ * Removes filter descriptor for given property.
330
+ *
331
+ * @param property Filter property
332
+ */
126
333
  removeFilter(property: Filters): void;
334
+ /**
335
+ * Removes filter descriptor for given property.
336
+ *
337
+ * This function is UNSAFE!
338
+ *
339
+ * @param property Filter property
340
+ */
127
341
  removeFilterUnsafe(property: string): void;
342
+ /**
343
+ * Creates filter descriptor for the given property.
344
+ *
345
+ * @param property Filter property.
346
+ *
347
+ * @return Created filter descriptor.
348
+ */
128
349
  addFilter<FilterModel = Filters extends keyof TableModel ? TableModel[Filters] : never>(property: Filters): FilterDescriptor<FilterModel, TableModel>;
350
+ /**
351
+ * Creates filter descriptor for the given property.
352
+ *
353
+ * This function is UNSAFE!
354
+ *
355
+ * @param property Filter property.
356
+ *
357
+ * @return Created filter descriptor.
358
+ */
129
359
  addFilterUnsafe<FilterModel>(property: string): FilterDescriptor<FilterModel, TableModel>;
360
+ /**
361
+ * Creates filter lookup descriptor for the given property.
362
+ *
363
+ * @param property Filter property.
364
+ * @param provider Lookup provider.
365
+ * @param optionsValueProperty Property on lookup provider's item (FilterModel) that will be used as filter value.
366
+ *
367
+ * @return Created filter lookup descriptor.
368
+ */
130
369
  addFilterLookup<FilterModel = Filters extends keyof TableModel ? NonNullable<TableModel[Filters]> : never, Service = undefined>(property: Filters, provider?: ILookupDataProvider<FilterModel, Service>, optionsValueProperty?: keyof FilterModel): FilterLookupDescriptor<FilterModel, TableModel, Service>;
370
+ /**
371
+ * Creates filter lookup descriptor for the given property.
372
+ *
373
+ * This function is UNSAFE!
374
+ *
375
+ * @param property Filter property.
376
+ * @param provider Lookup provider.
377
+ * @param optionsValueProperty Property on lookup provider's item (FilterModel) that will be used as filter value.
378
+ *
379
+ * @return Created filter lookup descriptor.
380
+ */
131
381
  addFilterLookupUnsafe<FilterModel, Service = undefined>(property: string, provider?: ILookupDataProvider<FilterModel, Service>, optionsValueProperty?: string): FilterLookupDescriptor<FilterModel, TableModel, Service>;
382
+ /**
383
+ * Creates filter lookup enum descriptor for the given property.
384
+ *
385
+ * @param property Filter property.
386
+ * @param enumDesc Descriptor for enum.
387
+ * @param options Optional options of enum values to be available to filter by.
388
+ *
389
+ * @return Created filter lookup enum descriptor.
390
+ */
132
391
  addFilterLookupEnum<Enum>(property: Filters, enumDesc: EnumDescriptor<Enum>, options?: Array<Enum>): FilterLookupEnumDescriptor<Enum, unknown>;
392
+ /**
393
+ * Creates filter lookup enum descriptor for the given property.
394
+ *
395
+ * This function is UNSAFE!
396
+ *
397
+ * @param property Filter property.
398
+ * @param enumDesc Descriptor for enum.
399
+ * @param options Optional options of enum values to be available to filter by.
400
+ *
401
+ * @return Created filter lookup enum descriptor.
402
+ */
133
403
  addFilterLookupEnumUnsafe<Enum = EnumConstantType>(property: string, enumDesc: EnumDescriptor<Enum>, options?: Array<Enum>): FilterLookupEnumDescriptor<Enum, unknown>;
134
- addFilterFromColumn(property: Extract<Filters, keyof TableModel>, displayType?: FilterDisplayTypeEnum, forceSimple?: boolean): FilterDescriptor<any, TableModel>;
404
+ /**
405
+ * Creates filter descriptor from column. The column must exist on table descriptor.
406
+ *
407
+ * @param property Column property to add filter for.
408
+ * @param displayType Optional display type setting.
409
+ * @param forceSimple Forces simple creation of filter (no lookup or lookup enum filters).
410
+ *
411
+ * @throws {CommonsInternalError} If column for property doesn't exist.
412
+ *
413
+ * @return Created filter descriptor
414
+ */
415
+ addFilterFromColumn<Property extends keyof TableModel, FilterModel = NonNullable<TableModel[Property]>>(property: Extract<Filters, Property>, displayType?: FilterDisplayTypeEnum, forceSimple?: boolean): FilterDescriptor<FilterModel, TableModel>;
416
+ /**
417
+ * Creates filter descriptors from columns. The columns must exist on table descriptor.
418
+ *
419
+ * @param properties Column properties to add filters for.
420
+ *
421
+ * @throws {CommonsInternalError} If column for property doesn't exist.
422
+ */
135
423
  withFiltersFromColumns(...properties: Extract<Filters, keyof TableModel>[]): this;
424
+ /**
425
+ * Creates filter descriptors from columns. The columns must exist on table descriptor.
426
+ *
427
+ * This function is UNSAFE!
428
+ *
429
+ * @param properties Column properties to add filters for.
430
+ *
431
+ * @throws {CommonsInternalError} If column for property doesn't exist.
432
+ */
136
433
  withFiltersFromColumnsUnsafe(...properties: string[]): this;
137
- addFilterFromColumnUnsafe(property: string, displayType?: FilterDisplayTypeEnum, forceSimple?: boolean): FilterDescriptor<any, TableModel>;
138
- addFilterFromColumnDescriptorUnsafe<ColumnModel, ColumnValue>(column: ColumnDescriptor<ColumnModel, TableModel, ColumnValue>, forceSimple?: boolean): FilterDescriptor<any, TableModel>;
434
+ /**
435
+ * Creates filter descriptor from column. The column must exist on table descriptor.
436
+ *
437
+ * This function is UNSAFE!
438
+ *
439
+ * @param property Column property to add filter for.
440
+ * @param displayType Optional display type setting.
441
+ * @param forceSimple Forces simple creation of filter (no lookup or lookup enum filters).
442
+ *
443
+ * @throws {CommonsInternalError} If column for property doesn't exist.
444
+ *
445
+ * @return Created filter descriptor
446
+ */
447
+ addFilterFromColumnUnsafe<FilterModel = any>(property: string, displayType?: FilterDisplayTypeEnum, forceSimple?: boolean): FilterDescriptor<FilterModel, TableModel>;
448
+ /**
449
+ * Creates filter descriptor from provided column descriptor.
450
+ *
451
+ * This function is UNSAFE!
452
+ *
453
+ * @param column Column descriptor.
454
+ * @param forceSimple Forces simple creation of filter (no lookup or lookup enum filters).
455
+ *
456
+ * @throws {CommonsInternalError} If column for property doesn't exist.
457
+ *
458
+ * @return Created filter descriptor
459
+ */
460
+ addFilterFromColumnDescriptorUnsafe<FilterModel>(column: ColumnDescriptor<FilterModel, TableModel, any>, forceSimple?: boolean): FilterDescriptor<FilterModel, TableModel>;
461
+ /**
462
+ * Adds filter descriptor for the given property.
463
+ *
464
+ * @param property Filter property.
465
+ * @param filter Descriptor for property.
466
+ */
139
467
  withFilter<FilterModel>(property: Filters, filter: FilterDescriptor<FilterModel, TableModel>): this;
468
+ /**
469
+ * Adds filter descriptor for the given property.
470
+ *
471
+ * This function is UNSAFE!
472
+ *
473
+ * @param filter Descriptor for property.
474
+ */
140
475
  withFilterUnsafe<FilterModel>(filter: FilterDescriptor<FilterModel, TableModel>): this;
476
+ /**
477
+ * Sets classes for table component.
478
+ *
479
+ * @param className Class names.
480
+ */
141
481
  withClassName(className: string): this;
482
+ /**
483
+ * Sets table sizing.
484
+ *
485
+ * @param size Table size.
486
+ */
142
487
  withSize(size?: TableSizeEnum): this;
143
- withTableFullHeightOffset(tableFullHeightOffset: number): this;
144
- withRowHeight(rowHeight: number): this;
145
- withHover(hover: boolean): this;
146
- withGridlines(gridlines: boolean): this;
147
488
  /**
148
- * Method that enables/disabled column resize feature with columnResizeMode on all columns.
489
+ * Enables hover effect on table rows.
490
+ *
491
+ * @param hover Enables/disables the hover.
492
+ */
493
+ withHover(hover?: boolean): this;
494
+ /**
495
+ * Enables gridlines on table.
496
+ *
497
+ * @param gridlines Enables/disables the gridlines.
498
+ */
499
+ withGridlines(gridlines?: boolean): this;
500
+ /**
501
+ * Enables/disables reorderable property on all columns currently in the descriptor.
502
+ *
503
+ * @param {boolean} [columnsReorderable] - Boolean flag to set reordering on columns to.
504
+ */
505
+ withCurrentColumnsReorderable(columnsReorderable?: boolean): this;
506
+ /**
507
+ * Enables/disables toggleable property on all columns currently in the descriptor.
508
+ *
509
+ * @param {boolean} [columnsToggleable] - Boolean flag to set toggleable on columns to.
510
+ */
511
+ withCurrentColumnsToggleable(columnsToggleable?: boolean): this;
512
+ /**
513
+ * Enables/disabled column resize feature with columnResizeMode on all columns.
514
+ *
149
515
  * @param resizableColumns True if enabled
150
516
  * @param columnResizeMode 'fit' or 'expand' mode
151
517
  */
152
518
  withColumnsResizable(resizableColumns?: boolean, columnResizeMode?: 'fit' | 'expand'): this;
153
519
  /**
154
520
  * Sets column to (un)frozen.
521
+ *
155
522
  * @param selectionColumnFrozen True to freeze selection column, false to unfreeze it.
156
523
  * @param actionColumnFrozen True to freeze action column, false to unfreeze it.
157
524
  */
158
525
  withColumnFrozen(selectionColumnFrozen?: boolean, actionColumnFrozen?: boolean): this;
526
+ /**
527
+ * Sets the class name for rows in the table.
528
+ *
529
+ * @param {string} rowClassName - The CSS class name to be applied to each row.
530
+ * @param {function} [classNameMapFn] - Optional function to map the class name dynamically based on row's item and current class name.
531
+ */
159
532
  withRowClassName(rowClassName?: string, classNameMapFn?: (className?: string, item?: TableModel) => string): this;
533
+ /**
534
+ * Sets header row class name.
535
+ *
536
+ * @param headerClassName Class name.
537
+ */
160
538
  withHeaderClassName(headerClassName: string): this;
539
+ /**
540
+ * Enables localization of the table.
541
+ */
161
542
  withLocalized(): this;
162
- withLocalizationLocaleProperty(localizationLocaleProperty: string): this;
163
- withRowExpandable(property?: keyof TableModel, colSpan?: number): this;
543
+ /**
544
+ * Sets locale property for localization.
545
+ *
546
+ * @param property Locale property
547
+ */
548
+ withLocalizationLocaleProperty(property: string): this;
549
+ /**
550
+ * Enables row expanding.
551
+ *
552
+ * @param property Property to check if row can be expanded.
553
+ * @param colSpan set custom row span for expanded row.
554
+ * @param componentType Component to be displayed on row expand.
555
+ */
556
+ withRowExpandable(property?: keyof TableModel, colSpan?: number, componentType?: Type<IRowExpandableComponent<TableModel>>): this;
557
+ /**
558
+ * Enables row reordering.
559
+ *
560
+ * @param reordable Enables/disables feature.
561
+ */
164
562
  withRowReorderable(reordable?: boolean): this;
165
563
  protected copyFieldsTo(obj: TableDescriptorInst<any, any, any>): void;
564
+ /**
565
+ * Copies current descriptor to a new instance.
566
+ */
166
567
  copy(): TableDescriptorInst<TableModel, Sorts, Filters>;
167
568
  }
168
569
  export declare class TableDynamicDescriptorInst extends TableDescriptorInst<any> {
@@ -0,0 +1,20 @@
1
+ import { ServiceClassType } from '@mediusinc/mng-commons/core';
2
+ import { TableDataProviderInst } from '../data-providers/table.data-provider';
3
+ import { TableDescriptorInst } from '../descriptors/table.descriptor';
4
+ /**
5
+ * Creates a data provider for from descriptor. DO NOT use if the model is class, because the type (from model descriptor) will not be set in data provider.
6
+ *
7
+ * @param {TableDescriptorInst<Model, Sorts, Filters>} descriptor - The table descriptor.
8
+ *
9
+ * @return {TableDataProviderInst<Model, undefined, Sorts, Filters, undefined, undefined>} - The data provider for the table component.
10
+ */
11
+ export declare function tableToDataProvider<Model, Sorts = keyof Model, Filters extends keyof any = keyof Model>(descriptor: TableDescriptorInst<Model, Sorts, Filters>): TableDataProviderInst<Model, undefined, Sorts, Filters, undefined, undefined>;
12
+ /**
13
+ * Creates a data provider for from descriptor. DO NOT use if the model is class, because the type (from model descriptor) will not be set in data provider.
14
+ *
15
+ * @param {TableDescriptorInst<Model, Sorts, Filters>} descriptor - The table descriptor.
16
+ * @param {ServiceClassType<Service>} serviceClass - The service class type.
17
+ *
18
+ * @return {TableDataProviderInst<Model, Service, Sorts, Filters, undefined, ServiceClassType<Service>>} - The data provider for the table component.
19
+ */
20
+ export declare function tableToDataProvider<Model, Service = any, Sorts = keyof Model, Filters extends keyof any = keyof Model>(descriptor: TableDescriptorInst<Model, Sorts, Filters>, serviceClass: ServiceClassType<Service>): TableDataProviderInst<Model, Service, Sorts, Filters, undefined, ServiceClassType<Service>>;
@@ -5,6 +5,7 @@ export * from './descriptors/sort.descriptor';
5
5
  export * from './descriptors/table.descriptor';
6
6
  export * from './descriptors/table-descriptor.factory';
7
7
  export * from './helpers/class-attribute-converter';
8
+ export * from './helpers/table-data-provider-descriptor-convert';
8
9
  export * from './helpers/table-descriptor-helpers';
9
10
  export * from './models/class-table-attribute.model';
10
11
  export * from './models/column.model';
@@ -12,3 +13,4 @@ export * from './models/column-value.model';
12
13
  export * from './models/table.model';
13
14
  export * from './models/table-columns.model';
14
15
  export * from './models/table-event.model';
16
+ export * from './models/row-expandable-component.model';
@@ -0,0 +1,4 @@
1
+ import { InputSignal } from '@angular/core';
2
+ export interface IRowExpandableComponent<Item = unknown> {
3
+ item: InputSignal<Item>;
4
+ }
@@ -4,8 +4,8 @@ import { EnumDescriptor } from '@mediusinc/mng-commons/model';
4
4
  import { ColumnDescriptor } from '../descriptors/column.descriptor';
5
5
  import { SortDescriptor } from '../descriptors/sort.descriptor';
6
6
  export interface IColumnsManageInterface<TableModel, Sorts, Filters> {
7
- getColumn(property: keyof TableModel): ColumnDescriptor<any, TableModel> | null;
8
- getColumnUnsafe(property: string): ColumnDescriptor<any, TableModel> | null;
7
+ getColumn<Property extends keyof TableModel, ColumnModel = NonNullable<TableModel[Property]>, ColumnValue = TableModel[Property]>(property: Property): ColumnDescriptor<ColumnModel, TableModel, ColumnValue> | null;
8
+ getColumnUnsafe<ColumnModel = any, ColumnValue = ColumnModel>(property: string): ColumnDescriptor<ColumnModel, TableModel, ColumnValue> | null;
9
9
  removeColumn(property: keyof TableModel): void;
10
10
  removeColumnUnsafe(property: string): void;
11
11
  withColumn<ColumnModel, ColumnValue = ColumnModel>(column: ColumnDescriptor<ColumnModel, TableModel, ColumnValue>): this;
@@ -23,8 +23,8 @@ export interface IColumnsManageInterface<TableModel, Sorts, Filters> {
23
23
  withSortUnsafe(property: string, isDefault: boolean, ascending?: boolean): this;
24
24
  withSorts(...properties: Sorts[]): this;
25
25
  withSortsUnsafe(...properties: string[]): this;
26
- getFilter(property: Filters): FilterDescriptor<any, TableModel> | null;
27
- getFilterUnsafe(property: string): FilterDescriptor<any, TableModel> | null;
26
+ getFilter<FilterModel = Filters extends keyof TableModel ? NonNullable<TableModel[Filters]> : any>(property: Filters): FilterDescriptor<FilterModel, TableModel> | null;
27
+ getFilterUnsafe<FilterModel = any>(property: string): FilterDescriptor<FilterModel, TableModel> | null;
28
28
  removeFilter(property: Filters): void;
29
29
  removeFilterUnsafe(property: string): void;
30
30
  addFilter<FilterModel = Filters extends keyof TableModel ? TableModel[Filters] : never>(property: Filters): FilterDescriptor<FilterModel, TableModel>;
@@ -33,8 +33,8 @@ export interface IColumnsManageInterface<TableModel, Sorts, Filters> {
33
33
  addFilterLookupUnsafe<FilterModel, Service = undefined>(property: string, provider?: ILookupDataProvider<FilterModel, Service>, optionsValueProperty?: string): FilterLookupDescriptor<FilterModel, TableModel, Service>;
34
34
  addFilterLookupEnum<Enum>(property: Filters, enumDesc: EnumDescriptor<any>, options?: Array<Enum>): FilterLookupEnumDescriptor<Enum, TableModel>;
35
35
  addFilterLookupEnumUnsafe<Enum = EnumConstantType>(property: string, enumDesc: EnumDescriptor<Enum>, options?: Array<Enum>): FilterLookupEnumDescriptor<Enum, TableModel>;
36
- addFilterFromColumn(property: Extract<Filters, keyof TableModel>, displayType?: FilterDisplayTypeEnum, forceSimple?: boolean): FilterDescriptor<any, TableModel>;
37
- addFilterFromColumnUnsafe(property: string, displayType?: FilterDisplayTypeEnum, forceSimple?: boolean): FilterDescriptor<any, TableModel>;
36
+ addFilterFromColumn<Property extends keyof TableModel, FilterModel = NonNullable<TableModel[Property]>>(property: Extract<Filters, Property>, displayType?: FilterDisplayTypeEnum, forceSimple?: boolean): FilterDescriptor<FilterModel, TableModel>;
37
+ addFilterFromColumnUnsafe<FilterModel = any>(property: string, displayType?: FilterDisplayTypeEnum, forceSimple?: boolean): FilterDescriptor<FilterModel, TableModel>;
38
38
  withFiltersFromColumns(...properties: Extract<Filters, keyof TableModel>[]): this;
39
39
  withFiltersFromColumnsUnsafe(...properties: string[]): this;
40
40
  withFilter<FilterModel>(property: Filters, filter: FilterDescriptor<FilterModel, TableModel>): this;
@@ -22,7 +22,7 @@ export declare class TableColumnFilterComponent implements OnDestroy {
22
22
  private readonly destroyRef;
23
23
  private readonly document;
24
24
  descriptor: import("@angular/core").InputSignal<FilterDescriptor<any, any>>;
25
- descriptorAsLookup: import("@angular/core").Signal<FilterLookupDescriptor<any, any, any> | undefined>;
25
+ descriptorAsLookup: import("@angular/core").Signal<FilterLookupDescriptor<any, any, any, string | number | symbol, string | number | symbol> | undefined>;
26
26
  private icon;
27
27
  private translationObserver;
28
28
  matchModes: import("@angular/core").Signal<import("primeng/api").SelectItem<any>[]>;