@decaf-ts/for-angular 0.0.80 → 0.0.82

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/index.d.ts CHANGED
@@ -1,16 +1,16 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Type, Injector, ElementRef, EnvironmentInjector, ChangeDetectorRef, OnChanges, OnDestroy, WritableSignal, Renderer2, EventEmitter, SimpleChanges, EnvironmentProviders, Provider, AfterViewInit, ViewContainerRef, TemplateRef, OnInit, ComponentMirror, ComponentRef, ModuleWithProviders } from '@angular/core';
2
+ import { InjectionToken, Type, Injector, ElementRef, EnvironmentInjector, OnChanges, OnDestroy, WritableSignal, ChangeDetectorRef, Renderer2, EventEmitter, SimpleChanges, EnvironmentProviders, Provider, AfterViewInit, ViewContainerRef, TemplateRef, OnInit, ComponentMirror, ComponentRef, ModuleWithProviders } from '@angular/core';
3
3
  import { IonInput, IonSelect, IonTextarea, IonCheckbox, MenuController, SpinnerTypes, InfiniteScrollCustomEvent, RefresherCustomEvent } from '@ionic/angular';
4
4
  import { TextFieldTypes, SelectInterface, AutocompleteTypes, CheckboxCustomEvent, Color, PredefinedColors, OverlayEventDetail } from '@ionic/core';
5
5
  import * as i2 from '@angular/forms';
6
6
  import { FormGroup, FormControl, FormArray, ControlValueAccessor, AbstractControl } from '@angular/forms';
7
- import { OrderDirection, AttributeOption, Condition, Paginator, EventIds, Observer, Repository, Adapter } from '@decaf-ts/core';
8
- import { UIFunctionLike, CrudOperationKeys, FieldProperties, IPagedComponentProperties, DecafEventHandler, DecafComponent, HTML5InputTypes, UIModelMetadata, FieldDefinition, UIMediaBreakPointsType, RenderingEngine } from '@decaf-ts/ui-decorators';
7
+ import { OrderDirection, AttributeOption, Observer, Condition, Paginator, Repository, Adapter, EventIds } from '@decaf-ts/core';
8
+ import { UIFunctionLike, CrudOperationKeys, FieldProperties, IPagedComponentProperties, DecafComponent, HTML5InputTypes, ElementSizes, LayoutGridGaps, ElementPositions, UIEventProperty, UIModelMetadata, FieldDefinition, UIMediaBreakPointsType, RenderingEngine, DecafEventHandler } from '@decaf-ts/ui-decorators';
9
9
  import * as _decaf_ts_decorator_validation from '@decaf-ts/decorator-validation';
10
10
  import { VALIDATION_PARENT_KEY, Model, ModelConstructor } from '@decaf-ts/decorator-validation';
11
11
  import * as _ionic_angular_standalone from '@ionic/angular/standalone';
12
12
  import { ModalOptions, LoadingOptions, SelectCustomEvent, ItemReorderEventDetail, IonModal } from '@ionic/angular/standalone';
13
- import { OperationKeys, IRepository, PrimaryKeyType, CrudOperations, RepositoryFlags, Context } from '@decaf-ts/db-decorators';
13
+ import { OperationKeys, PrimaryKeyType, IRepository, CrudOperations, RepositoryFlags, Context } from '@decaf-ts/db-decorators';
14
14
  import { Constructor } from '@decaf-ts/decoration';
15
15
  import { Router } from '@angular/router';
16
16
  import * as i1 from '@angular/common';
@@ -107,32 +107,6 @@ declare const WindowColorSchemes: {
107
107
  readonly dark: "dark";
108
108
  readonly undefined: "undefined";
109
109
  };
110
- declare const ElementSizes: {
111
- readonly xsmall: "xsmall";
112
- readonly small: "small";
113
- readonly medium: "medium";
114
- readonly default: "default";
115
- readonly large: "large";
116
- readonly xLarge: "xlarge";
117
- readonly '2xLarge': "2xlarge";
118
- readonly auto: "auto";
119
- readonly expand: "expand";
120
- readonly block: "block";
121
- };
122
- declare const ElementPositions: {
123
- readonly left: "left";
124
- readonly center: "center";
125
- readonly right: "right";
126
- readonly top: "top";
127
- readonly bottom: "bottom";
128
- };
129
- declare const LayoutGridGaps: {
130
- readonly small: "small";
131
- readonly medium: "medium";
132
- readonly large: "large";
133
- readonly collapse: "collapse";
134
- readonly none: "";
135
- };
136
110
  declare const ListItemPositions: {
137
111
  readonly uid: "uid";
138
112
  readonly title: "title";
@@ -182,83 +156,6 @@ declare const AngularEngineKeys: {
182
156
  readonly LOADED: "engineLoaded";
183
157
  readonly DARK_PALETTE_CLASS: "dcf-palette-dark";
184
158
  };
185
- /**
186
- * @description Form validation state constants.
187
- * @summary Contains constants representing the possible validation states of a form.
188
- * These are used to check and handle form validation throughout the application.
189
- * The VALID state indicates all form controls pass validation, while INVALID
190
- * indicates one or more validation errors exist.
191
- * @typedef {Object} FormConstants
192
- * @property {string} VALID - Constant representing a valid form state
193
- * @property {string} INVALID - Constant representing an invalid form state
194
- * @const FormConstants
195
- * @memberOf module:lib/engine/constants
196
- */
197
- declare const FormConstants: {
198
- readonly VALID: "VALID";
199
- readonly INVALID: "INVALID";
200
- };
201
- /**
202
- * @description Event name constants.
203
- * @summary Contains constants for standardized event names used throughout the application.
204
- * These constants ensure consistent event naming across components and make it easier to
205
- * track and handle events. Each constant represents a specific application event type.
206
- * @typedef {Object} ComponentEventNames
207
- * @property {string} BackButtonClickEvent - Event fired when back button navigation ends
208
- * @property {string} Render - Event after component initialize action occurs
209
- * @property {string} Refresh - Event fired when a refresh action occurs
210
- * @property {string} Click - Event fired when a click action occurs
211
- * @property {string} Change - Event fired when a change action occurs
212
- * @property {string} Submit - Event fired when a form submission occurs
213
- * @property {string} ValidationError - Event fired when a validation error occurs
214
- * @property {string} ThemeChange - Event fired when a theme change occurs
215
- * @property {string} FormGroupLoaded - Event fired when a reactve form group is loaded
216
- * @const ComponentEventNames
217
- * @memberOf module:lib/engine/constants
218
- */
219
- declare const ComponentEventNames: {
220
- readonly Render: "render";
221
- readonly BackButtonClickEvent: "backButtonNavigationEndEvent";
222
- readonly Refresh: "RefreshEvent";
223
- readonly Click: "ClickEvent";
224
- readonly Change: "ChangeEvent";
225
- readonly Submit: "SubmitEvent";
226
- readonly ValidationError: "validationErrorEvent";
227
- readonly ThemeChange: "themeChangeEvent";
228
- readonly FormGroupLoaded: "formGroupLoadedEvent";
229
- };
230
- declare const TransactionHooks: {
231
- readonly BeforeCreate: "beforeCreate";
232
- readonly AfterCreate: "afterCreate";
233
- readonly BeforeUpdate: "beforeUpdate";
234
- readonly AfterUpdate: "afterUpdate";
235
- readonly BeforeDelete: "beforeDelete";
236
- readonly AfterDelete: "afterDelete";
237
- };
238
- /**
239
- * @description Logger level constants.
240
- * @summary Defines the logging levels used in the application's logging system.
241
- * Lower numeric values represent more verbose logging, while higher values represent
242
- * more critical logs. These levels control which log messages are output based on
243
- * the configured logging threshold.
244
- * @enum {number}
245
- * @readonly
246
- * @property {number} ALL - Log everything (most verbose)
247
- * @property {number} DEBUG - Log debug information
248
- * @property {number} INFO - Log informational messages
249
- * @property {number} WARN - Log warnings
250
- * @property {number} ERROR - Log errors
251
- * @property {number} CRITICAL - Log critical errors (least verbose)
252
- * @memberOf module:lib/engine/constants
253
- */
254
- declare enum LoggerLevels {
255
- ALL = 0,
256
- DEBUG = 1,
257
- INFO = 2,
258
- WARN = 3,
259
- ERROR = 4,
260
- CRITICAL = 5
261
- }
262
159
  /**
263
160
  * @description Route direction constants.
264
161
  * @summary Defines the possible navigation directions in the application.
@@ -322,6 +219,8 @@ declare enum ComponentsTagNames {
322
219
  * @memberOf module:lib/engine/constants
323
220
  */
324
221
  declare enum BaseComponentProps {
222
+ MODEL_ID = "modelId",
223
+ MODEL = "model",
325
224
  HANDLERS = "handlers",
326
225
  LOCALE = "locale",
327
226
  LOCALE_ROOT = "locale_root",
@@ -652,7 +551,7 @@ interface FormServiceControl {
652
551
  * @description Interface for list item custom events
653
552
  * @summary Defines the structure of custom events triggered by list items.
654
553
  * Extends IBaseCustomEvent with additional properties for the action and primary key.
655
- * @interface ListItemCustomEvent
554
+ * @interface IListItemCustomEvent
656
555
  * @property {string} action - The action performed on the list item
657
556
  * @property {string} [pk] - Optional primary key of the affected item
658
557
  * @property {any} data - The data associated with the event (inherited from IBaseCustomEvent)
@@ -661,7 +560,7 @@ interface FormServiceControl {
661
560
  * @property {string} component - The component that triggered the event (inherited from IBaseCustomEvent)
662
561
  * @memberOf module:engine
663
562
  */
664
- interface ListItemCustomEvent extends IBaseCustomEvent {
563
+ interface IListItemCustomEvent extends IBaseCustomEvent {
665
564
  action: string;
666
565
  pk?: string;
667
566
  }
@@ -860,33 +759,6 @@ interface ILayoutModelContext {
860
759
  models: IRepositoryModelProps<Model>[];
861
760
  }
862
761
 
863
- /**
864
- * @module module:lib/engine/NgxEventHandler
865
- * @description Event handler base class used by Decaf components.
866
- * @summary Defines NgxEventHandler which standardizes event handling logic and provides
867
- * logging support for handlers that process custom events emitted by components.
868
- *
869
- * @link {@link NgxEventHandler}
870
- */
871
-
872
- declare abstract class NgxEventHandler extends DecafEventHandler {
873
- changeDetectorRef: ChangeDetectorRef;
874
- readonly?: boolean;
875
- hidden?: boolean | CrudOperationKeys[];
876
- label?: string;
877
- filterBy?: string;
878
- constructor();
879
- handle<T extends NgxComponentDirective>(event: Partial<ICrudFormEvent>, data?: KeyValue, instance?: T, ...args: unknown[]): Promise<void>;
880
- from(...args: unknown[]): NgxEventHandler;
881
- process(...args: unknown[]): Promise<any>;
882
- delete(...args: unknown[]): Promise<any>;
883
- batchOperation(...args: unknown[]): Promise<any>;
884
- beforeCreate(...args: unknown[]): Promise<any>;
885
- beforeUpdate(...args: unknown[]): Promise<any>;
886
- afterCreate(...args: unknown[]): Promise<any>;
887
- afterUpdate(...args: unknown[]): Promise<any>;
888
- }
889
-
890
762
  /**
891
763
  * @module NgxMediaService
892
764
  * @description Provides utilities for managing media-related features such as color scheme detection,
@@ -1125,6 +997,41 @@ declare class NgxMediaService {
1125
997
 
1126
998
  declare class NgxRepositoryDirective<M extends Model> extends DecafComponent<M> {
1127
999
  private _context?;
1000
+ /**
1001
+ * @description Store query results for the component.
1002
+ * @summary Holds an array of `Model` instances returned from repository queries.
1003
+ * This is used internally to cache query results that child components may bind to.
1004
+ * @type {M[]}
1005
+ */
1006
+ _query: M[];
1007
+ /**
1008
+ * @description Backing model data supplied to the component.
1009
+ * @summary Holds the raw `Model` instance or a generic key-value payload that child
1010
+ * components may bind to. When provided, it represents the contextual data the
1011
+ * component should render or mutate.
1012
+ * @type {M | M[] | KeyValue | KeyValue[] | undefined}
1013
+ */
1014
+ _data?: M | M[] | KeyValue | KeyValue[];
1015
+ /**
1016
+ * @description Data model or model name for component operations.
1017
+ * @summary The data model that this component will use for CRUD operations. This can be provided
1018
+ * as a Model instance, a model constructor, or a string representing the model's registered name.
1019
+ * When set, this property provides the component with access to the model's schema, validation rules,
1020
+ * and metadata needed for rendering and data operations.
1021
+ * @type {Model | string | undefined}
1022
+ * @memberOf module:lib/engine/NgxRepositoryDirective
1023
+ */
1024
+ model: Model | string | undefined;
1025
+ /**
1026
+ * @description Primary key value of the current model instance.
1027
+ * @summary Specifies the primary key value for the current model record being displayed or
1028
+ * manipulated by the component. This identifier is used for CRUD operations that target
1029
+ * specific records, such as read, update, and delete operations. The value corresponds to
1030
+ * the field designated as the primary key in the model definition.
1031
+ * @type {PrimaryKeyType}
1032
+ * @memberOf module:lib/engine/NgxRepositoryDirective
1033
+ */
1034
+ modelId: PrimaryKeyType;
1128
1035
  /**
1129
1036
  * @description The name of the model class to operate on.
1130
1037
  * @summary Identifies which registered model class this component should work with.
@@ -1154,9 +1061,9 @@ declare class NgxRepositoryDirective<M extends Model> extends DecafComponent<M>
1154
1061
  * @description Model field used when generating the default condition.
1155
1062
  * @summary Indicates which key should be compared to `modelId` when `filter` is not provided.
1156
1063
  * Defaults to the configured primary key so overrides are only needed for custom lookups.
1157
- * @type {keyof M}
1064
+ * @type {string}
1158
1065
  */
1159
- filterBy: keyof M;
1066
+ filterBy: string;
1160
1067
  /**
1161
1068
  * @description Primitive type descriptor for the primary key.
1162
1069
  * @summary Helps coerce `modelId` to the proper primitive before executing queries, ensuring numeric
@@ -1219,13 +1126,25 @@ declare class NgxRepositoryDirective<M extends Model> extends DecafComponent<M>
1219
1126
  */
1220
1127
  indexes: string[];
1221
1128
  /**
1222
- * @description Backing model data supplied to the component.
1223
- * @summary Holds the raw `Model` instance or a generic key-value payload that child
1224
- * components may bind to. When provided, it represents the contextual data the
1225
- * component should render or mutate.
1226
- * @type {M | M[] | KeyValue | KeyValue[] | undefined}
1129
+ * @description Subject for debouncing repository observation events.
1130
+ * @summary RxJS Subject that collects repository change events and emits them after
1131
+ * a debounce period. This prevents multiple rapid repository changes from triggering
1132
+ * multiple list refresh operations, improving performance and user experience.
1133
+ *
1134
+ * @private
1135
+ * @type {Subject<any>}
1227
1136
  */
1228
- protected _data?: M | M[] | KeyValue | KeyValue[];
1137
+ protected repositoryObserverSubject: Subject<any>;
1138
+ /**
1139
+ * @description Observer object for repository change notifications.
1140
+ * @summary Implements the Observer interface to receive notifications when the
1141
+ * underlying data repository changes. This enables automatic list updates when
1142
+ * data is created, updated, or deleted through the repository.
1143
+ *
1144
+ * @private
1145
+ * @type {Observer}
1146
+ */
1147
+ protected repositoryObserver: Observer;
1229
1148
  initialize(): Promise<void>;
1230
1149
  set context(context: DecafRepository<M>);
1231
1150
  from(repository: IRepository<M>): NgxRepositoryDirective<M>;
@@ -1236,7 +1155,8 @@ declare class NgxRepositoryDirective<M extends Model> extends DecafComponent<M>
1236
1155
  delete(data: PrimaryKeyType | PrimaryKeyType[] | M[], pk: PrimaryKeyType): Promise<void>;
1237
1156
  query(condtion?: Condition<M>, sortBy?: keyof M, sortDirection?: OrderDirection): Promise<M[]>;
1238
1157
  paginate(limit?: number, sortDirection?: OrderDirection, condition?: Condition<M>): Promise<Paginator<M>>;
1239
- protected transactionBegin<M extends Model>(data: M, repository: DecafRepository<M>, operation: CrudOperations): Promise<M | M[] | EventIds | undefined>;
1158
+ protected transactionBegin<M extends Model>(data: M, repository: DecafRepository<M>, operation: CrudOperations): Promise<M | M[] | PrimaryKeyType | undefined>;
1159
+ protected transactionEnd<M extends Model>(model: M, repository: DecafRepository<M>, operation: CrudOperations): Promise<M | M[] | PrimaryKeyType | undefined>;
1240
1160
  /**
1241
1161
  * @description Parses and transforms form data for repository operations.
1242
1162
  * @summary Converts raw form data into the appropriate format for repository operations.
@@ -1248,15 +1168,26 @@ declare class NgxRepositoryDirective<M extends Model> extends DecafComponent<M>
1248
1168
  * @return {Model | string | number} Processed data ready for repository operations
1249
1169
  * @private
1250
1170
  */
1251
- protected buildTransactionModel<M extends Model>(data: KeyValue | KeyValue[], repository: DecafRepository<M>, operation?: CrudOperations): M | M[] | EventIds;
1171
+ protected buildTransactionModel<M extends Model>(data: KeyValue | KeyValue[], repository: DecafRepository<M>, operation?: CrudOperations): M | M[] | PrimaryKeyType | PrimaryKeyType[];
1252
1172
  protected getIndexes(model: M): string[];
1253
1173
  protected parsePkValue(value: PrimaryKeyType, type: string): PrimaryKeyType;
1254
1174
  protected getModelConstrutor(model: string | Model): Constructor<Model> | undefined;
1255
1175
  protected getModelProperties(clazz: Constructor<M>): (keyof M)[];
1256
1176
  protected getModelPropertyType(constructor: Constructor<M>, prop: keyof M): string;
1257
1177
  protected getModelPkType(clazz: Constructor<M>): string;
1178
+ /**
1179
+ * @description Handles repository observation events with debouncing.
1180
+ * @summary Processes repository change notifications and routes them appropriately.
1181
+ * For CREATE events with a UID, handles them immediately. For other events,
1182
+ * passes them to the debounced observer subject to prevent excessive updates.
1183
+ *
1184
+ * @param {...unknown[]} args - The repository event arguments including table, event type, and UID
1185
+ * @returns {Promise<void>}
1186
+ */
1187
+ handleRepositoryRefresh(...args: unknown[]): Promise<void>;
1188
+ handleObserveEvent(...args: unknown[]): Promise<void>;
1258
1189
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxRepositoryDirective<any>, never>;
1259
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgxRepositoryDirective<any>, never, never, { "modelName": { "alias": "modelName"; "required": false; }; "pk": { "alias": "pk"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "filterBy": { "alias": "filterBy"; "required": false; }; "start": { "alias": "start"; "required": false; }; "limit": { "alias": "limit"; "required": false; }; "sortDirection": { "alias": "sortDirection"; "required": false; }; "sortBy": { "alias": "sortBy"; "required": false; }; "indexes": { "alias": "indexes"; "required": false; }; "_data": { "alias": "_data"; "required": false; }; }, {}, never, never, true, never>;
1190
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgxRepositoryDirective<any>, never, never, { "_query": { "alias": "_query"; "required": false; }; "_data": { "alias": "_data"; "required": false; }; "model": { "alias": "model"; "required": false; }; "modelId": { "alias": "modelId"; "required": false; }; "modelName": { "alias": "modelName"; "required": false; }; "pk": { "alias": "pk"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "filterBy": { "alias": "filterBy"; "required": false; }; "start": { "alias": "start"; "required": false; }; "limit": { "alias": "limit"; "required": false; }; "sortDirection": { "alias": "sortDirection"; "required": false; }; "sortBy": { "alias": "sortBy"; "required": false; }; "indexes": { "alias": "indexes"; "required": false; }; }, {}, never, never, true, never>;
1260
1191
  }
1261
1192
 
1262
1193
  /**
@@ -1355,25 +1286,12 @@ declare abstract class NgxComponentDirective extends NgxRepositoryDirective<Mode
1355
1286
  */
1356
1287
  uid?: string | number;
1357
1288
  /**
1358
- * @description Data model or model name for component operations.
1359
- * @summary The data model that this component will use for CRUD operations. This can be provided
1360
- * as a Model instance, a model constructor, or a string representing the model's registered name.
1361
- * When set, this property provides the component with access to the model's schema, validation rules,
1362
- * and metadata needed for rendering and data operations.
1363
- * @type {Model | string | undefined}
1364
- * @memberOf module:lib/engine/NgxComponentDirective
1365
- */
1366
- model: Model | string | undefined;
1367
- /**
1368
- * @description Primary key value of the current model instance.
1369
- * @summary Specifies the primary key value for the current model record being displayed or
1370
- * manipulated by the component. This identifier is used for CRUD operations that target
1371
- * specific records, such as read, update, and delete operations. The value corresponds to
1372
- * the field designated as the primary key in the model definition.
1373
- * @type {EventIds}
1374
- * @memberOf module:lib/engine/NgxComponentDirective
1289
+ * @description Label for the file upload field.
1290
+ * @summary Provides a user-friendly label for the file upload input.
1291
+ *
1292
+ * @type {string | undefined}
1375
1293
  */
1376
- modelId?: EventIds;
1294
+ label?: string;
1377
1295
  /**
1378
1296
  * @description Query predicate applied when resolving model data.
1379
1297
  * @summary Provides an optional set of conditions used to filter the repository query that
@@ -1674,27 +1592,7 @@ declare abstract class NgxComponentDirective extends NgxRepositoryDirective<Mode
1674
1592
  * @default WindowColorSchemes.light
1675
1593
  */
1676
1594
  protected colorSchema: WindowColorScheme;
1677
- /**
1678
- * @description Observer object for repository change notifications.
1679
- * @summary Implements the Observer interface to receive notifications when the
1680
- * underlying data repository changes. This enables automatic list updates when
1681
- * data is created, updated, or deleted through the repository.
1682
- *
1683
- * @private
1684
- * @type {Observer}
1685
- */
1686
- protected repositoryObserver: Observer;
1687
1595
  protected destroySubscriptions$: Subject<void>;
1688
- /**
1689
- * @description Subject for debouncing repository observation events.
1690
- * @summary RxJS Subject that collects repository change events and emits them after
1691
- * a debounce period. This prevents multiple rapid repository changes from triggering
1692
- * multiple list refresh operations, improving performance and user experience.
1693
- *
1694
- * @private
1695
- * @type {Subject<any>}
1696
- */
1697
- protected repositoryObserverSubject: Subject<any>;
1698
1596
  /**
1699
1597
  * @description Constructor for NgxComponentDirective.
1700
1598
  * @summary Initializes the directive by setting up the component name, locale root,
@@ -1706,6 +1604,7 @@ declare abstract class NgxComponentDirective extends NgxRepositoryDirective<Mode
1706
1604
  * @memberOf module:lib/engine/NgxComponentDirective
1707
1605
  */
1708
1606
  constructor(componentName?: string, localeRoot?: string);
1607
+ initialize<T extends NgxComponentDirective>(): Promise<void>;
1709
1608
  /**
1710
1609
  * @description Cleanup lifecycle hook invoked when the directive is destroyed.
1711
1610
  * @summary Ensures any resources allocated by the directive's media service are
@@ -1715,7 +1614,6 @@ declare abstract class NgxComponentDirective extends NgxRepositoryDirective<Mode
1715
1614
  * @returns {Promise<void>}
1716
1615
  */
1717
1616
  ngOnDestroy(): Promise<void>;
1718
- initialize<T extends NgxComponentDirective>(): Promise<void>;
1719
1617
  /**
1720
1618
  * @description Getter for the current locale context identifier.
1721
1619
  * @summary Returns the current locale identifier by calling the getLocale method.
@@ -1760,20 +1658,6 @@ declare abstract class NgxComponentDirective extends NgxRepositoryDirective<Mode
1760
1658
  */
1761
1659
  translate(phrase: string | string[], params?: object | string): Promise<string>;
1762
1660
  protected checkDarkMode(): void;
1763
- /**
1764
- * @description Handles repository observation events with debouncing.
1765
- * @summary Processes repository change notifications and routes them appropriately.
1766
- * For CREATE events with a UID, handles them immediately. For other events,
1767
- * passes them to the debounced observer subject to prevent excessive updates.
1768
- *
1769
- * @param {...unknown[]} args - The repository event arguments including table, event type, and UID
1770
- * @returns {Promise<void>}
1771
- * @memberOf ListComponent
1772
- */
1773
- handleRepositoryRefresh(...args: unknown[]): Promise<void>;
1774
- handleObserveEvent(...args: unknown[]): Promise<void>;
1775
- parseHandlers(handlers: Record<string, UIFunctionLike | Constructor<NgxEventHandler>>): void;
1776
- parseEvents(events: Record<string, UIFunctionLike | Constructor<DecafComponentConstructor>>): void;
1777
1661
  /**
1778
1662
  * @description Retrieves or sets the locale context for the component.
1779
1663
  * @summary Gets the locale identifier from the locale context system. If a locale parameter
@@ -1959,7 +1843,7 @@ declare abstract class NgxComponentDirective extends NgxRepositoryDirective<Mode
1959
1843
  changeOperation(operation: string, id?: string): Promise<boolean>;
1960
1844
  initProps<T extends NgxComponentDirective>(props: T | KeyValue, map?: (keyof T)[] | KeyValue, instance?: NgxComponentDirective & T): Promise<void>;
1961
1845
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxComponentDirective, never>;
1962
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgxComponentDirective, never, never, { "enableDarkMode": { "alias": "enableDarkMode"; "required": false; }; "isDarkMode": { "alias": "isDarkMode"; "required": false; }; "name": { "alias": "name"; "required": false; }; "childOf": { "alias": "childOf"; "required": false; }; "uid": { "alias": "uid"; "required": false; }; "model": { "alias": "model"; "required": false; }; "modelId": { "alias": "modelId"; "required": false; }; "formGroup": { "alias": "formGroup"; "required": false; }; "value": { "alias": "value"; "required": false; }; "mapper": { "alias": "mapper"; "required": false; }; "operations": { "alias": "operations"; "required": false; }; "operation": { "alias": "operation"; "required": false; }; "row": { "alias": "row"; "required": false; }; "col": { "alias": "col"; "required": false; }; "className": { "alias": "className"; "required": false; }; "translatable": { "alias": "translatable"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "item": { "alias": "item"; "required": false; }; "props": { "alias": "props"; "required": false; }; "route": { "alias": "route"; "required": false; }; "borders": { "alias": "borders"; "required": false; }; "isModalChild": { "alias": "isModalChild"; "required": false; }; "handlers": { "alias": "handlers"; "required": false; }; "events": { "alias": "events"; "required": false; }; "propsMapperFn": { "alias": "propsMapperFn"; "required": false; }; }, { "listenEvent": "listenEvent"; "refreshEvent": "refreshEvent"; }, never, never, true, never>;
1846
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgxComponentDirective, never, never, { "enableDarkMode": { "alias": "enableDarkMode"; "required": false; }; "isDarkMode": { "alias": "isDarkMode"; "required": false; }; "name": { "alias": "name"; "required": false; }; "childOf": { "alias": "childOf"; "required": false; }; "uid": { "alias": "uid"; "required": false; }; "label": { "alias": "label"; "required": false; }; "formGroup": { "alias": "formGroup"; "required": false; }; "value": { "alias": "value"; "required": false; }; "mapper": { "alias": "mapper"; "required": false; }; "operations": { "alias": "operations"; "required": false; }; "operation": { "alias": "operation"; "required": false; }; "row": { "alias": "row"; "required": false; }; "col": { "alias": "col"; "required": false; }; "className": { "alias": "className"; "required": false; }; "translatable": { "alias": "translatable"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "item": { "alias": "item"; "required": false; }; "props": { "alias": "props"; "required": false; }; "route": { "alias": "route"; "required": false; }; "borders": { "alias": "borders"; "required": false; }; "isModalChild": { "alias": "isModalChild"; "required": false; }; "handlers": { "alias": "handlers"; "required": false; }; "events": { "alias": "events"; "required": false; }; "propsMapperFn": { "alias": "propsMapperFn"; "required": false; }; }, { "listenEvent": "listenEvent"; "refreshEvent": "refreshEvent"; }, never, never, true, never>;
1963
1847
  }
1964
1848
 
1965
1849
  /**
@@ -1979,7 +1863,7 @@ interface RawQuery<M extends Model> {
1979
1863
  limit?: number;
1980
1864
  skip?: number;
1981
1865
  }
1982
- type DecafRepositoryAdapter<F extends RepositoryFlags = RepositoryFlags, C extends Context<F> = Context<F>> = Adapter<any, any, RawQuery<any>, any>;
1866
+ type DecafRepositoryAdapter<F extends RepositoryFlags = RepositoryFlags, C extends Context<F> = Context<F>> = Adapter<any, C, RawQuery<any>, any>;
1983
1867
  type DecafRepository<M extends Model> = Repository<M, DecafRepositoryAdapter<RepositoryFlags, Context>>;
1984
1868
  /**
1985
1869
  * @description Generic key-value pair type
@@ -2322,16 +2206,6 @@ declare abstract class NgxPageDirective extends NgxComponentDirective implements
2322
2206
  }
2323
2207
 
2324
2208
  declare abstract class NgxModelPageDirective extends NgxPageDirective implements AfterViewInit {
2325
- /**
2326
- * @description Primary key value of the current model instance.
2327
- * @summary Specifies the primary key value for the current model record being displayed or
2328
- * manipulated by the component. This identifier is used for CRUD operations that target
2329
- * specific records, such as read, update, and delete operations. The value corresponds to
2330
- * the field designated as the primary key in the model definition.
2331
- * @type {EventIds}
2332
- * @memberOf module:lib/engine/NgxComponentDirective
2333
- */
2334
- modelId: EventIds;
2335
2209
  /**
2336
2210
  * @description The CRUD operation type to be performed on the model.
2337
2211
  * @summary Specifies which operation (Create, Read, Update, Delete) this component instance
@@ -2416,7 +2290,7 @@ declare abstract class NgxModelPageDirective extends NgxPageDirective implements
2416
2290
  * @param {string} uid - The unique identifier of the model instance to retrieve
2417
2291
  * @return {Promise<Model | undefined>} Promise resolving to the model instance or undefined
2418
2292
  */
2419
- handleRead<M extends Model>(uid?: EventIds, repository?: IRepository<M>, modelName?: string, pk?: string): Promise<Model | undefined>;
2293
+ handleRead<M extends Model>(uid?: EventIds, repository?: IRepository<M>, modelName?: string): Promise<Model | undefined>;
2420
2294
  process<M extends Model>(event: ICrudFormEvent, model?: M, submit?: boolean): Promise<ILayoutModelContext | IModelComponentSubmitEvent<M>>;
2421
2295
  /**
2422
2296
  * @description Handles form submission events for CRUD operations.
@@ -2432,7 +2306,7 @@ declare abstract class NgxModelPageDirective extends NgxPageDirective implements
2432
2306
  submit<M extends Model>(event: ICrudFormEvent, redirect?: boolean, repo?: DecafRepository<M>, pk?: string): Promise<IModelComponentSubmitEvent<M>>;
2433
2307
  batchOperation(context: ILayoutModelContext, redirect?: boolean): Promise<any>;
2434
2308
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxModelPageDirective, never>;
2435
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgxModelPageDirective, never, never, { "modelId": { "alias": "modelId"; "required": false; }; "operation": { "alias": "operation"; "required": false; }; }, {}, never, never, true, never>;
2309
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgxModelPageDirective, never, never, { "operation": { "alias": "operation"; "required": false; }; }, {}, never, never, true, never>;
2436
2310
  }
2437
2311
 
2438
2312
  declare class NgxRenderableComponentDirective extends NgxModelPageDirective implements OnChanges, OnDestroy, IRenderedModel {
@@ -2613,6 +2487,7 @@ declare class ComponentRendererComponent extends NgxRenderableComponentDirective
2613
2487
  tag: string;
2614
2488
  children: KeyValue[];
2615
2489
  projectable: boolean;
2490
+ pk: string;
2616
2491
  parent: undefined | KeyValue;
2617
2492
  /**
2618
2493
  * @description Initializes the component after Angular first displays the data-bound properties.
@@ -2670,7 +2545,7 @@ declare class ComponentRendererComponent extends NgxRenderableComponentDirective
2670
2545
  private createComponent;
2671
2546
  private createParentComponent;
2672
2547
  static ɵfac: i0.ɵɵFactoryDeclaration<ComponentRendererComponent, never>;
2673
- static ɵcmp: i0.ɵɵComponentDeclaration<ComponentRendererComponent, "ngx-decaf-component-renderer", never, { "tag": { "alias": "tag"; "required": true; }; "children": { "alias": "children"; "required": false; }; "projectable": { "alias": "projectable"; "required": false; }; "parent": { "alias": "parent"; "required": false; }; }, {}, never, never, true, never>;
2548
+ static ɵcmp: i0.ɵɵComponentDeclaration<ComponentRendererComponent, "ngx-decaf-component-renderer", never, { "tag": { "alias": "tag"; "required": true; }; "children": { "alias": "children"; "required": false; }; "projectable": { "alias": "projectable"; "required": false; }; "pk": { "alias": "pk"; "required": false; }; "parent": { "alias": "parent"; "required": false; }; }, {}, never, never, true, never>;
2674
2549
  }
2675
2550
 
2676
2551
  /**
@@ -2769,19 +2644,13 @@ declare abstract class NgxFormFieldDirective extends NgxComponentDirective imple
2769
2644
  * @public
2770
2645
  */
2771
2646
  page: number;
2647
+ events: UIEventProperty;
2772
2648
  /**
2773
2649
  * @description Date/time format string for parsing and display.
2774
2650
  * @type {string}
2775
2651
  * @public
2776
2652
  */
2777
2653
  format?: string;
2778
- /**
2779
- * @description Controls field visibility based on CRUD operations.
2780
- * @summary Can be a boolean or an array of operation keys where the field should be hidden.
2781
- * @type {boolean | CrudOperationKeys[]}
2782
- * @public
2783
- */
2784
- hidden?: boolean | CrudOperationKeys[];
2785
2654
  /**
2786
2655
  * @description Maximum value or date allowed.
2787
2656
  * @type {number | Date}
@@ -2812,12 +2681,6 @@ declare abstract class NgxFormFieldDirective extends NgxComponentDirective imple
2812
2681
  * @public
2813
2682
  */
2814
2683
  pattern?: string | undefined;
2815
- /**
2816
- * @description Whether the field is read-only.
2817
- * @type {boolean}
2818
- * @public
2819
- */
2820
- readonly?: boolean;
2821
2684
  /**
2822
2685
  * @description Whether the field is required.
2823
2686
  * @type {boolean}
@@ -2883,7 +2746,7 @@ declare abstract class NgxFormFieldDirective extends NgxComponentDirective imple
2883
2746
  checked: boolean;
2884
2747
  /**
2885
2748
  * @description Flag tracking if validation error event has been dispatched.
2886
- * @summary Prevents duplicate validation error events from being dispatched.
2749
+ * @summary Proverride duplicate validation error override from being dispatched.
2887
2750
  * @type {boolean}
2888
2751
  * @private
2889
2752
  */
@@ -2932,6 +2795,9 @@ declare abstract class NgxFormFieldDirective extends NgxComponentDirective imple
2932
2795
  WEEK: string;
2933
2796
  };
2934
2797
  constructor(componentName?: string);
2798
+ maxLength?: number | undefined;
2799
+ minLength?: number | undefined;
2800
+ customTypes?: string | string[] | undefined;
2935
2801
  /**
2936
2802
  * @description Gets the currently active form group based on context.
2937
2803
  * @summary Returns the appropriate FormGroup based on whether this field supports
@@ -3044,14 +2910,14 @@ declare abstract class NgxFormFieldDirective extends NgxComponentDirective imple
3044
2910
  setValue(value: unknown): void;
3045
2911
  /**
3046
2912
  * @description Clears the current form control value as a response to a UI interact
3047
- * @summary Set field value as undefined and prevents event propagation.
2913
+ * @summary Set field value as undefined and proverride event propagation.
3048
2914
  * @param {Event} event - The value to set
3049
2915
  * @return {void}
3050
2916
  * @public
3051
2917
  */
3052
2918
  handleClearValue(event: Event): void;
3053
2919
  /**
3054
- * @description Handles IonSelect change events emitted from modal child components.
2920
+ * @description Handles IonSelect change override emitted from modal child components.
3055
2921
  * @summary Forces change detection when rendered inside a modal and synchronizes the select value with the directive state.
3056
2922
  * @param {SelectCustomEvent<SelectChangeEventDetail>} event - IonSelect change event containing the selected value.
3057
2923
  * @return {void}
@@ -3561,6 +3427,16 @@ declare class CrudFieldComponent extends NgxFormFieldDirective implements OnInit
3561
3427
  * @memberOf CrudFieldComponent
3562
3428
  */
3563
3429
  ngOnInit(): Promise<void>;
3430
+ /**
3431
+ * @description Component after view initialization lifecycle method.
3432
+ * @summary Calls the parent afterViewInit method for READ and DELETE operations.
3433
+ * This ensures proper initialization of read-only fields that don't require
3434
+ * form functionality but still need view setup.
3435
+ *
3436
+ * @returns {Promise<void>}
3437
+ * @memberOf CrudFieldComponent
3438
+ */
3439
+ ngAfterViewInit(): Promise<void>;
3564
3440
  /**
3565
3441
  * Returns a list of options for select or radio inputs, with their `text` property
3566
3442
  * localized if it does not already include the word 'options'. The localization key
@@ -3583,16 +3459,6 @@ declare class CrudFieldComponent extends NgxFormFieldDirective implements OnInit
3583
3459
  * @returns {Promise<void>} A promise that resolves when the operation is complete.
3584
3460
  */
3585
3461
  openSelectOptions(event: Event, selectInterface: SelectInterface): Promise<void>;
3586
- /**
3587
- * @description Component after view initialization lifecycle method.
3588
- * @summary Calls the parent afterViewInit method for READ and DELETE operations.
3589
- * This ensures proper initialization of read-only fields that don't require
3590
- * form functionality but still need view setup.
3591
- *
3592
- * @returns {Promise<void>}
3593
- * @memberOf CrudFieldComponent
3594
- */
3595
- ngAfterViewInit(): Promise<void>;
3596
3462
  /**
3597
3463
  * @description Component cleanup lifecycle method.
3598
3464
  * @summary Performs cleanup operations for READ and DELETE operations by calling
@@ -3779,6 +3645,16 @@ declare abstract class NgxFormDirective extends NgxParentComponentDirective impl
3779
3645
  */
3780
3646
  parentFormId: string;
3781
3647
  deepMerge: boolean;
3648
+ path: string;
3649
+ /**
3650
+ * @description Enables multiple item management within the fieldset.
3651
+ * @summary Boolean flag that determines if the fieldset supports adding multiple values.
3652
+ * When true, displays a reorderable list of items with add/remove functionality.
3653
+ *
3654
+ * @type {boolean}
3655
+ * @default false
3656
+ */
3657
+ multiple: boolean;
3782
3658
  /**
3783
3659
  * @description Reference to the reactive form DOM element.
3784
3660
  * @summary ViewChild reference that provides direct access to the form's DOM element.
@@ -3898,6 +3774,7 @@ declare abstract class NgxFormDirective extends NgxParentComponentDirective impl
3898
3774
  * @returns {Promise<void>}
3899
3775
  */
3900
3776
  initialize(): Promise<void>;
3777
+ ngOnChanges(changes: SimpleChanges): Promise<void>;
3901
3778
  ngAfterViewInit(): Promise<void>;
3902
3779
  /**
3903
3780
  * @description Component cleanup lifecycle method.
@@ -3948,7 +3825,7 @@ declare abstract class NgxFormDirective extends NgxParentComponentDirective impl
3948
3825
  */
3949
3826
  protected getActivePage(page: number): UIModelMetadata | UIModelMetadata[] | FieldDefinition | undefined;
3950
3827
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxFormDirective, never>;
3951
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgxFormDirective, never, never, { "parentFormId": { "alias": "parentFormId"; "required": false; }; "deepMerge": { "alias": "deepMerge"; "required": false; }; "updateOn": { "alias": "updateOn"; "required": false; }; "target": { "alias": "target"; "required": false; }; "method": { "alias": "method"; "required": false; }; "options": { "alias": "options"; "required": false; }; "action": { "alias": "action"; "required": false; }; "operation": { "alias": "operation"; "required": true; }; "handlers": { "alias": "handlers"; "required": false; }; "rendererId": { "alias": "rendererId"; "required": false; }; "allowClear": { "alias": "allowClear"; "required": false; }; "match": { "alias": "match"; "required": false; }; }, { "submitEvent": "submitEvent"; "formGroupLoadedEvent": "formGroupLoadedEvent"; }, never, never, true, never>;
3828
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgxFormDirective, never, never, { "parentFormId": { "alias": "parentFormId"; "required": false; }; "deepMerge": { "alias": "deepMerge"; "required": false; }; "path": { "alias": "path"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "updateOn": { "alias": "updateOn"; "required": false; }; "target": { "alias": "target"; "required": false; }; "method": { "alias": "method"; "required": false; }; "options": { "alias": "options"; "required": false; }; "action": { "alias": "action"; "required": false; }; "operation": { "alias": "operation"; "required": true; }; "handlers": { "alias": "handlers"; "required": false; }; "rendererId": { "alias": "rendererId"; "required": false; }; "allowClear": { "alias": "allowClear"; "required": false; }; "match": { "alias": "match"; "required": false; }; }, { "submitEvent": "submitEvent"; "formGroupLoadedEvent": "formGroupLoadedEvent"; }, never, never, true, never>;
3952
3829
  }
3953
3830
 
3954
3831
  declare class CrudFormComponent extends NgxFormDirective {
@@ -4707,6 +4584,7 @@ declare class FieldsetComponent extends NgxFormDirective implements OnInit, Afte
4707
4584
  * @memberOf FieldsetComponent
4708
4585
  */
4709
4586
  ngOnInit(): Promise<void>;
4587
+ initialize(): Promise<void>;
4710
4588
  /**
4711
4589
  * @description Initializes the component state after view and child components are rendered.
4712
4590
  * @summary This lifecycle hook implements intelligent auto-state management based on the current
@@ -5858,14 +5736,14 @@ declare class ListComponent extends NgxComponentDirective implements OnInit, OnD
5858
5736
  * @type {EventEmitter<KeyValue>}
5859
5737
  * @memberOf ListComponent
5860
5738
  */
5861
- clickEvent: EventEmitter<ListItemCustomEvent | IBaseCustomEvent>;
5739
+ clickEvent: EventEmitter<IListItemCustomEvent | IBaseCustomEvent>;
5862
5740
  /**
5863
5741
  * @description Subject for debouncing click events.
5864
5742
  * @summary Uses RxJS Subject to collect click events and emit them after a debounce
5865
5743
  * period. This prevents multiple rapid clicks from triggering multiple events.
5866
5744
  *
5867
5745
  * @private
5868
- * @type {Subject<CustomEvent | ListItemCustomEvent | IBaseCustomEvent>}
5746
+ * @type {Subject<CustomEvent | IListItemCustomEvent | IBaseCustomEvent>}
5869
5747
  * @memberOf ListComponent
5870
5748
  */
5871
5749
  private clickItemSubject;
@@ -6063,12 +5941,12 @@ declare class ListComponent extends NgxComponentDirective implements OnInit, OnD
6063
5941
  * debounced click subject. This allows the component to respond to clicks on
6064
5942
  * list items regardless of where they originate from.
6065
5943
  *
6066
- * @param {ListItemCustomEvent | IBaseCustomEvent} event - The click event
6067
- * @returns {void}
5944
+ * @param {IListItemCustomEvent | IBaseCustomEvent} event - The click event
5945
+ * @returns {Promise<void>}
6068
5946
  *
6069
5947
  * @memberOf ListComponent
6070
5948
  */
6071
- handleClick(event: ListItemCustomEvent | IBaseCustomEvent): void;
5949
+ handleClick(event: IListItemCustomEvent | IBaseCustomEvent): Promise<void>;
6072
5950
  /**
6073
5951
  * @description Handles search events from the search bar.
6074
5952
  * @summary Processes search queries from the search bar component, updating the
@@ -6131,7 +6009,7 @@ declare class ListComponent extends NgxComponentDirective implements OnInit, OnD
6131
6009
  * This extracts the relevant data from the event and passes it to parent components.
6132
6010
  *
6133
6011
  * @private
6134
- * @param {ListItemCustomEvent | IBaseCustomEvent} event - The click event
6012
+ * @param {IListItemCustomEvent | IBaseCustomEvent} event - The click event
6135
6013
  * @returns {void}
6136
6014
  *
6137
6015
  * @memberOf ListComponent
@@ -6442,10 +6320,10 @@ declare class ListItemComponent extends NgxComponentDirective implements OnInit,
6442
6320
  * are performed on it. The emitted event contains information about the action,
6443
6321
  * the item data, and other relevant context for parent components to handle.
6444
6322
  *
6445
- * @type {EventEmitter<ListItemCustomEvent>}
6323
+ * @type {EventEmitter<IListItemCustomEvent>}
6446
6324
  * @memberOf ListItemComponent
6447
6325
  */
6448
- clickEvent: EventEmitter<ListItemCustomEvent>;
6326
+ clickEvent: EventEmitter<IListItemCustomEvent>;
6449
6327
  /**
6450
6328
  * @description Flag indicating whether slide items are currently enabled.
6451
6329
  * @summary Controls the visibility of slide actions based on screen size and
@@ -6563,7 +6441,7 @@ declare class ListItemComponent extends NgxComponentDirective implements OnInit,
6563
6441
  *
6564
6442
  * @memberOf ListItemComponent
6565
6443
  */
6566
- handleAction(action: CrudOperations, event: Event, target?: HTMLElement): Promise<void>;
6444
+ handleAction(event: Event, action: CrudOperations, target?: HTMLElement): Promise<void>;
6567
6445
  /**
6568
6446
  * @description Responsive handler that enables or disables slide items based on screen size and operations.
6569
6447
  * @summary This method is automatically called when the window is resized and also during component
@@ -7755,6 +7633,7 @@ declare class ModalComponent extends NgxParentComponentDirective implements OnIn
7755
7633
  * @returns {Promise<void>} - A promise that resolves when initialization is complete.
7756
7634
  */
7757
7635
  prepare(options?: KeyValue): Promise<void>;
7636
+ parseInlineContent(): void;
7758
7637
  /**
7759
7638
  * @description Creates and presents the modal.
7760
7639
  * @summary Initializes the modal with the provided properties and displays it.
@@ -7988,13 +7867,6 @@ declare class FileUploadComponent extends NgxFormFieldDirective implements OnIni
7988
7867
  * @default HTML5InputTypes.FILE
7989
7868
  */
7990
7869
  type: PossibleInputTypes;
7991
- /**
7992
- * @description Label for the file upload field.
7993
- * @summary Provides a user-friendly label for the file upload input.
7994
- *
7995
- * @type {string | undefined}
7996
- */
7997
- label?: string;
7998
7870
  /**
7999
7871
  * @description Label for the upload button.
8000
7872
  * @summary Specifies the text displayed on the file upload button.
@@ -8271,7 +8143,7 @@ declare class FileUploadComponent extends NgxFormFieldDirective implements OnIni
8271
8143
  */
8272
8144
  private readFile;
8273
8145
  static ɵfac: i0.ɵɵFactoryDeclaration<FileUploadComponent, never>;
8274
- static ɵcmp: i0.ɵɵComponentDeclaration<FileUploadComponent, "ngx-decaf-file-upload", never, { "formGroup": { "alias": "formGroup"; "required": false; }; "name": { "alias": "name"; "required": false; }; "formControl": { "alias": "formControl"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "type": { "alias": "type"; "required": false; }; "label": { "alias": "label"; "required": false; }; "buttonLabel": { "alias": "buttonLabel"; "required": false; }; "size": { "alias": "size"; "required": false; }; "position": { "alias": "position"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "showIcon": { "alias": "showIcon"; "required": false; }; "enableDirectoryMode": { "alias": "enableDirectoryMode"; "required": false; }; "previewHandler": { "alias": "previewHandler"; "required": false; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; }; }, { "changeEvent": "changeEvent"; }, never, never, true, never>;
8146
+ static ɵcmp: i0.ɵɵComponentDeclaration<FileUploadComponent, "ngx-decaf-file-upload", never, { "formGroup": { "alias": "formGroup"; "required": false; }; "name": { "alias": "name"; "required": false; }; "formControl": { "alias": "formControl"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "type": { "alias": "type"; "required": false; }; "buttonLabel": { "alias": "buttonLabel"; "required": false; }; "size": { "alias": "size"; "required": false; }; "position": { "alias": "position"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "showIcon": { "alias": "showIcon"; "required": false; }; "enableDirectoryMode": { "alias": "enableDirectoryMode"; "required": false; }; "previewHandler": { "alias": "previewHandler"; "required": false; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; }; }, { "changeEvent": "changeEvent"; }, never, never, true, never>;
8275
8147
  }
8276
8148
 
8277
8149
  /**
@@ -8596,10 +8468,12 @@ declare class TableComponent extends ListComponent implements OnInit {
8596
8468
  private get _headers();
8597
8469
  get _mapper(): KeyValue;
8598
8470
  ngOnInit(): Promise<void>;
8471
+ getOperations(): void;
8599
8472
  protected getFilterOptions(): Promise<void>;
8600
- protected itemMapper(item: KeyValue, mapper: KeyValue, props?: KeyValue): KeyValue;
8473
+ protected itemMapper(item: KeyValue, mapper: KeyValue, props?: KeyValue): Promise<KeyValue>;
8601
8474
  mapResults(data: KeyValue[]): Promise<KeyValue[]>;
8602
- handleAction(event: Event, action: CrudOperations, uid: string, redirect?: boolean): Promise<void>;
8475
+ handleAction(event: IBaseCustomEvent, handler: UIFunctionLike | undefined, uid: string, action: CrudOperations): Promise<void>;
8476
+ handleRedirect(event: Event | IBaseCustomEvent, uid: string, action: CrudOperations): Promise<void>;
8603
8477
  openFilterSelectOptions(event: Event): Promise<void>;
8604
8478
  handleFilterSelectClear(event: CustomEvent): Promise<void>;
8605
8479
  static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent, never>;
@@ -8647,7 +8521,7 @@ declare function provideDecafDynamicComponents(...components: unknown[]): Constr
8647
8521
  * // Use repository for queries
8648
8522
  * const users = await userRepo.findAll();
8649
8523
  */
8650
- declare function getModelAndRepository(model: Model | string, clazz?: NgxComponentDirective): IRepositoryModelProps<Model> | undefined;
8524
+ declare function getModelAndRepository<M extends Model>(model: M | string, clazz?: NgxComponentDirective): IRepositoryModelProps<Model> | undefined;
8651
8525
  /**
8652
8526
  * @description Provides a database adapter for dependency injection.
8653
8527
  * @summary Creates an Angular provider that registers a database adapter instance. This function
@@ -9615,6 +9489,32 @@ declare class NgxFormService {
9615
9489
  static reset(formGroup: FormGroup | FormControl): void;
9616
9490
  }
9617
9491
 
9492
+ /**
9493
+ * @module module:lib/engine/NgxEventHandler
9494
+ * @description Event handler base class used by Decaf components.
9495
+ * @summary Defines NgxEventHandler which standardizes event handling logic and provides
9496
+ * logging support for handlers that process custom events emitted by components.
9497
+ *
9498
+ * @link {@link NgxEventHandler}
9499
+ */
9500
+
9501
+ declare abstract class NgxEventHandler extends DecafEventHandler {
9502
+ _data: Model | KeyValue | KeyValue[] | null;
9503
+ changeDetectorRef: ChangeDetectorRef;
9504
+ renderer: Renderer2;
9505
+ injector: EnvironmentInjector;
9506
+ constructor();
9507
+ handle<T extends NgxComponentDirective>(event: Partial<ICrudFormEvent>, data?: KeyValue, instance?: T, ...args: unknown[]): Promise<void>;
9508
+ from(...args: unknown[]): NgxEventHandler;
9509
+ process(...args: unknown[]): Promise<any>;
9510
+ delete(...args: unknown[]): Promise<any>;
9511
+ batchOperation(...args: unknown[]): Promise<any>;
9512
+ beforeCreate(...args: unknown[]): Promise<any>;
9513
+ beforeUpdate(...args: unknown[]): Promise<any>;
9514
+ afterCreate(...args: unknown[]): Promise<any>;
9515
+ afterUpdate(...args: unknown[]): Promise<any>;
9516
+ }
9517
+
9618
9518
  declare class NgxSvgDirective implements OnInit {
9619
9519
  path: string;
9620
9520
  mediaService: NgxMediaService;
@@ -9829,7 +9729,7 @@ declare function generateRandomValue(length?: number, onlyNumbers?: boolean): st
9829
9729
  * @function stringToBoolean
9830
9730
  * @memberOf module:lib/helpers/utils
9831
9731
  */
9832
- declare function stringToBoolean(prop: "true" | "false" | boolean): boolean;
9732
+ declare function stringToBoolean(prop: 'true' | 'false' | boolean): boolean;
9833
9733
  /**
9834
9734
  * @description Checks if a value is a valid Date object.
9835
9735
  * @summary This validation function determines whether a given value represents a valid date.
@@ -9864,23 +9764,6 @@ declare function isValidDate(date: string | Date | number): boolean;
9864
9764
  */
9865
9765
  declare function formatDate(date: string | Date | number, locale?: string | undefined): Date | string;
9866
9766
  /**
9867
- * @description Attempts to parse a date string, Date object, or number into a valid Date object.
9868
- * @summary This function provides robust date parsing functionality that handles the specific
9869
- * format "DD/MM/YYYY HH:MM:SS:MS". It first validates the input date, and if already valid,
9870
- * returns it as-is. For string inputs, it parses the date and time components separately,
9871
- * extracts numeric values, and constructs a new Date object. The function includes validation
9872
- * to ensure the resulting Date object is valid and logs a warning if parsing fails.
9873
- * Returns null for invalid or unsupported date formats.
9874
- *
9875
- * @param {string | Date | number} date - The date to parse. Can be a Date object, a timestamp number,
9876
- * or a date string in the format "DD/MM/YYYY HH:MM:SS:MS"
9877
- * @returns {Date | null} A valid Date object if parsing is successful, or null if the date is invalid
9878
- * or doesn't match the expected format
9879
- *
9880
- * @function parseToValidDate
9881
- * @memberOf module:lib/helpers/utils
9882
- */
9883
- declare function parseToValidDate(date: string | Date | number): Date | null;
9884
9767
  /**
9885
9768
  * @description Maps an item object using a provided mapper object and optional additional properties.
9886
9769
  * @summary This function transforms a source object into a new object based on mapping rules defined
@@ -9984,7 +9867,6 @@ declare function filterString(original: string | string[], value: string, contai
9984
9867
  * @returns {string} The icon associated with the menu item if found, otherwise an empty string.
9985
9868
  */
9986
9869
  declare function getMenuIcon(label: string, menu: IMenuItem[]): string;
9987
- declare const isClassConstructor: <C>(value: UIFunctionLike | Constructor<C>) => value is Constructor<C>;
9988
9870
 
9989
9871
  declare class DecafFakerRepository<T extends Model> extends LoggedClass {
9990
9872
  protected model: string | Model;
@@ -10160,5 +10042,5 @@ declare class ForAngularCommonModule {
10160
10042
  static ɵinj: i0.ɵɵInjectorDeclaration<ForAngularCommonModule>;
10161
10043
  }
10162
10044
 
10163
- export { ActionRoles, AngularEngineKeys, BaseComponentProps, CPTKN, CardComponent, ComponentEventNames, ComponentRendererComponent, ComponentsTagNames, CrudFieldComponent, CrudFormComponent, CssClasses, DB_ADAPTER_FLAVOUR_TOKEN, DB_ADAPTER_PROVIDER_TOKEN, DecafFakerRepository, DefaultFormReactiveOptions, DefaultListEmptyOptions, DefaultModalOptions, Dynamic, DynamicModule, ElementPositions, ElementSizes, EmptyStateComponent, FieldsetComponent, FileUploadComponent, FilterComponent, ForAngularCommonModule, ForAngularComponentsModule, FormConstants, I18N_CONFIG_TOKEN, I18nLoader, I18nLoaderFactory, I18nParser, IconComponent, LOCALE_ROOT_TOKEN, LayoutComponent, LayoutGridGaps, ListComponent, ListComponentsTypes, ListItemComponent, ListItemPositions, LoggerLevels, ModalComponent, ModalConfirmComponent, ModelRendererComponent, NgxComponentDirective, NgxEventHandler, NgxFormDirective, NgxFormFieldDirective, NgxFormService, NgxMediaService, NgxModelPageDirective, NgxPageDirective, NgxParentComponentDirective, NgxRenderingEngine, NgxRouterService, NgxSvgDirective, PaginationComponent, RouteDirections, SearchbarComponent, SelectFieldInterfaces, SteppedFormComponent, TableComponent, TransactionHooks, WindowColorSchemes, cleanSpaces, dataMapper, decafPageTransition, filterString, formatDate, generateRandomValue, getDbAdapterFlavour, getFakerData, getInjectablesRegistry, getLocaleContext, getLocaleContextByKey, getLocaleFromClassName, getLocaleLanguage, getLogger, getMenuIcon, getModelAndRepository, getNgxInlineModal, getNgxModalComponent, getNgxModalCrudComponent, getNgxSelectOptionsModal, getOnWindow, getOnWindowDocument, getWindow, getWindowDocument, getWindowWidth, isClassConstructor, isDarkMode, isDevelopmentMode, isNotUndefined, isValidDate, itemMapper, parseToValidDate, presentModalConfirm, presentNgxInlineModal, presentNgxLightBoxModal, provideDecafDarkMode, provideDecafDbAdapter, provideDecafDynamicComponents, provideDecafI18nConfig, provideDecafI18nLoader, provideDecafPageTransition, removeFocusTrap, setOnWindow, stringToBoolean, windowEventEmitter };
10164
- export type { ActionRole, AngularDynamicOutput, AngularFieldDefinition, AngularProvider, CheckboxOption, ComponentMetadata, CrudFieldOption, DecafComponentConstructor, DecafRepository, DecafRepositoryAdapter, ElementPosition, ElementSize, FieldUpdateMode, FlexPosition, FormParent, FormParentGroup, FormServiceControl, FormServiceControls, FunctionLike, HTML5InputType, HTMLFormTarget, I18nResourceConfig, I18nResourceConfigType, I18nToken, IBaseCustomEvent, IComponentConfig, IComponentHolder, IComponentProperties, ICrudFormEvent, ICrudFormOptions, IFieldSetItem, IFieldSetValidationEvent, IFileUploadError, IFilterQuery, IFilterQueryItem, IFormComponentProperties, IFormElement, ILayoutModelContext, IListComponentRefreshEvent, IListEmptyOptions, IMenuItem, IModelComponentSubmitEvent, IPaginationCustomEvent, IRenderedModel, IRepositoryModelProps, ISortObject, ITabItem, IWindowResizeEvent, InputOption, KeyValue, LayoutGridGap, ListItemCustomEvent, ListItemPosition, PossibleInputTypes, PropsMapperFn, RadioOption, RawQuery, SelectOption, StringOrBoolean, WindowColorScheme };
10045
+ export { ActionRoles, AngularEngineKeys, BaseComponentProps, CPTKN, CardComponent, ComponentRendererComponent, ComponentsTagNames, CrudFieldComponent, CrudFormComponent, CssClasses, DB_ADAPTER_FLAVOUR_TOKEN, DB_ADAPTER_PROVIDER_TOKEN, DecafFakerRepository, DefaultFormReactiveOptions, DefaultListEmptyOptions, DefaultModalOptions, Dynamic, DynamicModule, EmptyStateComponent, FieldsetComponent, FileUploadComponent, FilterComponent, ForAngularCommonModule, ForAngularComponentsModule, I18N_CONFIG_TOKEN, I18nLoader, I18nLoaderFactory, I18nParser, IconComponent, LOCALE_ROOT_TOKEN, LayoutComponent, ListComponent, ListComponentsTypes, ListItemComponent, ListItemPositions, ModalComponent, ModalConfirmComponent, ModelRendererComponent, NgxComponentDirective, NgxEventHandler, NgxFormDirective, NgxFormFieldDirective, NgxFormService, NgxMediaService, NgxModelPageDirective, NgxPageDirective, NgxParentComponentDirective, NgxRenderingEngine, NgxRouterService, NgxSvgDirective, PaginationComponent, RouteDirections, SearchbarComponent, SelectFieldInterfaces, SteppedFormComponent, TableComponent, WindowColorSchemes, cleanSpaces, dataMapper, decafPageTransition, filterString, formatDate, generateRandomValue, getDbAdapterFlavour, getFakerData, getInjectablesRegistry, getLocaleContext, getLocaleContextByKey, getLocaleFromClassName, getLocaleLanguage, getLogger, getMenuIcon, getModelAndRepository, getNgxInlineModal, getNgxModalComponent, getNgxModalCrudComponent, getNgxSelectOptionsModal, getOnWindow, getOnWindowDocument, getWindow, getWindowDocument, getWindowWidth, isDarkMode, isDevelopmentMode, isNotUndefined, isValidDate, itemMapper, presentModalConfirm, presentNgxInlineModal, presentNgxLightBoxModal, provideDecafDarkMode, provideDecafDbAdapter, provideDecafDynamicComponents, provideDecafI18nConfig, provideDecafI18nLoader, provideDecafPageTransition, removeFocusTrap, setOnWindow, stringToBoolean, windowEventEmitter };
10046
+ export type { ActionRole, AngularDynamicOutput, AngularFieldDefinition, AngularProvider, CheckboxOption, ComponentMetadata, CrudFieldOption, DecafComponentConstructor, DecafRepository, DecafRepositoryAdapter, ElementPosition, ElementSize, FieldUpdateMode, FlexPosition, FormParent, FormParentGroup, FormServiceControl, FormServiceControls, FunctionLike, HTML5InputType, HTMLFormTarget, I18nResourceConfig, I18nResourceConfigType, I18nToken, IBaseCustomEvent, IComponentConfig, IComponentHolder, IComponentProperties, ICrudFormEvent, ICrudFormOptions, IFieldSetItem, IFieldSetValidationEvent, IFileUploadError, IFilterQuery, IFilterQueryItem, IFormComponentProperties, IFormElement, ILayoutModelContext, IListComponentRefreshEvent, IListEmptyOptions, IListItemCustomEvent, IMenuItem, IModelComponentSubmitEvent, IPaginationCustomEvent, IRenderedModel, IRepositoryModelProps, ISortObject, ITabItem, IWindowResizeEvent, InputOption, KeyValue, LayoutGridGap, ListItemPosition, PossibleInputTypes, PropsMapperFn, RadioOption, RawQuery, SelectOption, StringOrBoolean, WindowColorScheme };