@memberjunction/ng-base-forms 4.0.0 → 4.1.0
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/dist/lib/base-form-component.d.ts +103 -215
- package/dist/lib/base-form-component.d.ts.map +1 -1
- package/dist/lib/base-form-component.js +384 -541
- package/dist/lib/base-form-component.js.map +1 -1
- package/dist/lib/container/record-form-container.component.d.ts +165 -0
- package/dist/lib/container/record-form-container.component.d.ts.map +1 -0
- package/dist/lib/container/record-form-container.component.js +534 -0
- package/dist/lib/container/record-form-container.component.js.map +1 -0
- package/dist/lib/explorer-entity-data-grid.component.d.ts +7 -5
- package/dist/lib/explorer-entity-data-grid.component.d.ts.map +1 -1
- package/dist/lib/explorer-entity-data-grid.component.js +15 -9
- package/dist/lib/explorer-entity-data-grid.component.js.map +1 -1
- package/dist/lib/field/form-field.component.d.ts +268 -0
- package/dist/lib/field/form-field.component.d.ts.map +1 -0
- package/dist/lib/field/form-field.component.js +1194 -0
- package/dist/lib/field/form-field.component.js.map +1 -0
- package/dist/lib/form-state.interface.d.ts +2 -0
- package/dist/lib/form-state.interface.d.ts.map +1 -1
- package/dist/lib/form-state.interface.js.map +1 -1
- package/dist/lib/form-state.service.d.ts +14 -0
- package/dist/lib/form-state.service.d.ts.map +1 -1
- package/dist/lib/form-state.service.js +19 -0
- package/dist/lib/form-state.service.js.map +1 -1
- package/dist/lib/panel/collapsible-panel.component.d.ts +139 -0
- package/dist/lib/panel/collapsible-panel.component.d.ts.map +1 -0
- package/dist/lib/panel/collapsible-panel.component.js +468 -0
- package/dist/lib/panel/collapsible-panel.component.js.map +1 -0
- package/dist/lib/toolbar/form-toolbar.component.d.ts +170 -0
- package/dist/lib/toolbar/form-toolbar.component.d.ts.map +1 -0
- package/dist/lib/toolbar/form-toolbar.component.js +830 -0
- package/dist/lib/toolbar/form-toolbar.component.js.map +1 -0
- package/dist/lib/types/form-events.d.ts +90 -0
- package/dist/lib/types/form-events.d.ts.map +1 -0
- package/dist/lib/types/form-events.js +45 -0
- package/dist/lib/types/form-events.js.map +1 -0
- package/dist/lib/types/form-types.d.ts +150 -0
- package/dist/lib/types/form-types.d.ts.map +1 -0
- package/dist/lib/types/form-types.js +12 -0
- package/dist/lib/types/form-types.js.map +1 -0
- package/dist/lib/types/navigation-events.d.ts +88 -0
- package/dist/lib/types/navigation-events.d.ts.map +1 -0
- package/dist/lib/types/navigation-events.js +2 -0
- package/dist/lib/types/navigation-events.js.map +1 -0
- package/dist/lib/types/toolbar-config.d.ts +66 -0
- package/dist/lib/types/toolbar-config.d.ts.map +1 -0
- package/dist/lib/types/toolbar-config.js +38 -0
- package/dist/lib/types/toolbar-config.js.map +1 -0
- package/dist/module.d.ts +28 -20
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +47 -74
- package/dist/module.js.map +1 -1
- package/dist/public-api.d.ts +20 -8
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +24 -9
- package/dist/public-api.js.map +1 -1
- package/package.json +20 -23
- package/README.md +0 -449
- package/dist/lib/base-field-component.d.ts +0 -152
- package/dist/lib/base-field-component.d.ts.map +0 -1
- package/dist/lib/base-field-component.js +0 -669
- package/dist/lib/base-field-component.js.map +0 -1
- package/dist/lib/base-form-context.d.ts +0 -23
- package/dist/lib/base-form-context.d.ts.map +0 -1
- package/dist/lib/base-form-context.js +0 -10
- package/dist/lib/base-form-context.js.map +0 -1
- package/dist/lib/collapsible-panel.component.d.ts +0 -68
- package/dist/lib/collapsible-panel.component.d.ts.map +0 -1
- package/dist/lib/collapsible-panel.component.js +0 -330
- package/dist/lib/collapsible-panel.component.js.map +0 -1
- package/dist/lib/form-section-controls.component.d.ts +0 -35
- package/dist/lib/form-section-controls.component.d.ts.map +0 -1
- package/dist/lib/form-section-controls.component.js +0 -273
- package/dist/lib/form-section-controls.component.js.map +0 -1
- package/dist/lib/link-field.component.d.ts +0 -62
- package/dist/lib/link-field.component.d.ts.map +0 -1
- package/dist/lib/link-field.component.js +0 -392
- package/dist/lib/link-field.component.js.map +0 -1
|
@@ -1,75 +1,83 @@
|
|
|
1
|
-
import { AfterViewInit, OnInit, OnDestroy, QueryList, ElementRef, ChangeDetectorRef } from '@angular/core';
|
|
1
|
+
import { AfterViewInit, OnInit, OnDestroy, QueryList, ElementRef, ChangeDetectorRef, EventEmitter } from '@angular/core';
|
|
2
2
|
import { EntityInfo, ValidationResult, EntityPermissionType, EntityRelationshipInfo, RunViewParams, RecordDependency } from '@memberjunction/core';
|
|
3
|
-
import { BaseRecordComponent } from './base-record-component';
|
|
4
|
-
import { BaseFormSectionInfo } from './base-form-section-info';
|
|
5
|
-
import { BaseFormContext } from './base-form-context';
|
|
6
|
-
import { CollapsiblePanelComponent } from './collapsible-panel.component';
|
|
7
|
-
import { SharedService, NavigationService } from '@memberjunction/ng-shared';
|
|
8
|
-
import { ActivatedRoute, Router } from '@angular/router';
|
|
9
|
-
import { MJTabStripComponent, TabEvent } from '@memberjunction/ng-tabstrip';
|
|
10
3
|
import { FormEditingCompleteEvent, PendingRecordItem, BaseFormComponentEventCodes } from '@memberjunction/ng-base-types';
|
|
11
4
|
import { ListEntity } from '@memberjunction/core-entities';
|
|
5
|
+
import { BaseRecordComponent } from './base-record-component';
|
|
6
|
+
import { BaseFormSectionInfo } from './base-form-section-info';
|
|
7
|
+
import { MjCollapsiblePanelComponent } from './panel/collapsible-panel.component';
|
|
8
|
+
import { FormNavigationEvent } from './types/navigation-events';
|
|
9
|
+
import { FormContext, FormNotificationEvent, RecordSavedEvent, RecordDeletedEvent, RecordSaveFailedEvent, RecordDeleteFailedEvent, ValidationFailedEvent } from './types/form-types';
|
|
12
10
|
import { FormStateService } from './form-state.service';
|
|
13
11
|
import * as i0 from "@angular/core";
|
|
12
|
+
/**
|
|
13
|
+
* Abstract base class for all entity record forms in MemberJunction.
|
|
14
|
+
*
|
|
15
|
+
* Generated forms (via CodeGen) and custom forms extend this class.
|
|
16
|
+
* It provides core form logic — section management, validation, pending records,
|
|
17
|
+
* permissions, favorites, related entity helpers — with ZERO Explorer dependencies.
|
|
18
|
+
*
|
|
19
|
+
* Instead of calling Explorer services directly, events are emitted via @Output:
|
|
20
|
+
* - **Navigate**: Form navigation requests (record links, new records, external links)
|
|
21
|
+
* - **Notification**: User-facing notifications (save success, validation errors, etc.)
|
|
22
|
+
* - **RecordSaved**: Emitted after a successful save
|
|
23
|
+
* - **RecordDeleted**: Emitted after a successful delete
|
|
24
|
+
*
|
|
25
|
+
* The host application (e.g. SingleRecordComponent in Explorer) subscribes to
|
|
26
|
+
* these events and maps them to its own services (NavigationService, SharedService, etc.).
|
|
27
|
+
*/
|
|
14
28
|
export declare abstract class BaseFormComponent extends BaseRecordComponent implements AfterViewInit, OnInit, OnDestroy {
|
|
15
|
-
protected elementRef: ElementRef;
|
|
16
|
-
protected sharedService: SharedService;
|
|
17
|
-
protected router: Router;
|
|
18
|
-
protected route: ActivatedRoute;
|
|
19
|
-
protected cdr: ChangeDetectorRef;
|
|
20
29
|
EditMode: boolean;
|
|
21
|
-
BottomMargin: number;
|
|
22
|
-
TabHeight: string;
|
|
23
|
-
/**
|
|
24
|
-
* This property is automatically updated by the BaseFormComponent to reflect the height of the "Top Area" of the form. The Top Area is defined in a template by having
|
|
25
|
-
* a #topArea element anywhere in the form. This property will automatically be updated AfterViewInit to reflect the height of the top area. This is useful for various things
|
|
26
|
-
* like setting a pane in a splitter to a specific height based on the top area height.
|
|
27
|
-
*/
|
|
28
|
-
TopAreaHeight: string;
|
|
29
|
-
GridBottomMargin: number;
|
|
30
30
|
FavoriteInitDone: boolean;
|
|
31
31
|
isHistoryDialogOpen: boolean;
|
|
32
32
|
showDeleteDialog: boolean;
|
|
33
33
|
showCreateDialog: boolean;
|
|
34
|
-
|
|
34
|
+
/**
|
|
35
|
+
* Height of the top area when a splitter layout is used.
|
|
36
|
+
* Referenced by CodeGen-generated templates for entities with "top area" sections.
|
|
37
|
+
*/
|
|
38
|
+
TopAreaHeight: string;
|
|
39
|
+
/**
|
|
40
|
+
* Called when the splitter layout changes (for entities with "top area" sections).
|
|
41
|
+
* No-op in the generic version; override in host application if splitter resizing is needed.
|
|
42
|
+
*/
|
|
43
|
+
splitterLayoutChange(): void;
|
|
35
44
|
private _pendingRecords;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
/** Form state service for persisting section states to User Settings */
|
|
45
|
+
protected elementRef: ElementRef<any>;
|
|
46
|
+
cdr: ChangeDetectorRef;
|
|
39
47
|
protected formStateService: FormStateService;
|
|
40
|
-
/**
|
|
41
|
-
|
|
48
|
+
/** Emitted when navigation is requested (record link, external link, email, new record, etc.) */
|
|
49
|
+
Navigate: EventEmitter<FormNavigationEvent>;
|
|
50
|
+
/** Emitted when a user-facing notification should be shown */
|
|
51
|
+
Notification: EventEmitter<FormNotificationEvent>;
|
|
52
|
+
/** Emitted after a record is saved successfully */
|
|
53
|
+
RecordSaved: EventEmitter<RecordSavedEvent>;
|
|
54
|
+
/** Emitted after a record is deleted successfully */
|
|
55
|
+
RecordDeleted: EventEmitter<RecordDeletedEvent>;
|
|
56
|
+
/** Emitted when a record save fails */
|
|
57
|
+
RecordSaveFailed: EventEmitter<RecordSaveFailedEvent>;
|
|
58
|
+
/** Emitted when a record delete fails */
|
|
59
|
+
RecordDeleteFailed: EventEmitter<RecordDeleteFailedEvent>;
|
|
60
|
+
/** Emitted when validation fails before save */
|
|
61
|
+
ValidationFailed: EventEmitter<ValidationFailedEvent>;
|
|
42
62
|
/** Subscription to form state changes */
|
|
43
63
|
private formStateSubscription?;
|
|
44
|
-
|
|
45
|
-
tabComponent: MJTabStripComponent;
|
|
46
|
-
tabStrips: QueryList<MJTabStripComponent>;
|
|
47
|
-
collapsiblePanels: QueryList<CollapsiblePanelComponent>;
|
|
48
|
-
get TabStripComponent(): MJTabStripComponent;
|
|
49
|
-
/**
|
|
50
|
-
* Convenience method to resize application container when required
|
|
51
|
-
*/
|
|
52
|
-
InvokeManualResize(delay?: number): void;
|
|
64
|
+
collapsiblePanels: QueryList<MjCollapsiblePanelComponent>;
|
|
53
65
|
ngOnInit(): Promise<void>;
|
|
54
|
-
topArea: ElementRef;
|
|
55
66
|
ngAfterViewInit(): void;
|
|
56
|
-
/**
|
|
57
|
-
* This method can be called at anytime to re-calculate the height of the top area and set the TopAreaHeight property. This is useful if the top area height changes dynamically
|
|
58
|
-
*/
|
|
59
|
-
CalcTopAreaHeight(): void;
|
|
60
|
-
private resizeSub;
|
|
61
67
|
ngOnDestroy(): void;
|
|
62
68
|
protected get PendingRecords(): PendingRecordItem[];
|
|
63
|
-
|
|
69
|
+
protected PendingRecordsDirty(): boolean;
|
|
70
|
+
protected PopulatePendingRecords(): void;
|
|
71
|
+
protected ValidatePendingRecords(): ValidationResult[];
|
|
64
72
|
StartEditMode(): void;
|
|
65
73
|
EndEditMode(): void;
|
|
66
74
|
handleHistoryDialog(): void;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
75
|
+
Validate(): ValidationResult;
|
|
76
|
+
protected RaiseEvent(eventCode: BaseFormComponentEventCodes): FormEditingCompleteEvent;
|
|
77
|
+
SaveRecord(StopEditModeAfterSave: boolean): Promise<boolean>;
|
|
78
|
+
CancelEdit(): void;
|
|
79
|
+
protected InternalSaveRecord(): Promise<boolean>;
|
|
80
|
+
Wait(duration: number): Promise<void>;
|
|
73
81
|
private _userPermissions;
|
|
74
82
|
CheckUserPermission(type: EntityPermissionType): boolean;
|
|
75
83
|
get UserCanEdit(): boolean;
|
|
@@ -77,219 +85,99 @@ export declare abstract class BaseFormComponent extends BaseRecordComponent impl
|
|
|
77
85
|
get UserCanCreate(): boolean;
|
|
78
86
|
get UserCanDelete(): boolean;
|
|
79
87
|
GridEditMode(): "None" | "Save" | "Queue";
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
IsCurrentTab(tabName: string): boolean;
|
|
88
|
+
private _isFavorite;
|
|
89
|
+
get IsFavorite(): boolean;
|
|
90
|
+
RemoveFavorite(): Promise<void>;
|
|
91
|
+
MakeFavorite(): Promise<void>;
|
|
92
|
+
SetFavoriteStatus(isFavorite: boolean): Promise<void>;
|
|
86
93
|
BuildRelationshipViewParams(item: EntityRelationshipInfo): RunViewParams;
|
|
87
|
-
/**
|
|
88
|
-
* Builds a RunViewParams object for a related entity based on the relationship between the current entity and the related entity
|
|
89
|
-
* @param relatedEntityName - the name of the entity that is related to the current entity where we're building the view params from
|
|
90
|
-
* @param relatedEntityJoinField - the name of the foreign key field in the current entity that links to the related entity, only required if there are multiple relationships between the entities
|
|
91
|
-
* @returns
|
|
92
|
-
*/
|
|
93
94
|
BuildRelationshipViewParamsByEntityName(relatedEntityName: string, relatedEntityJoinField?: string): RunViewParams;
|
|
94
|
-
/**
|
|
95
|
-
* Looks up and returns the EntityRelationshipInfo object for the related entity name
|
|
96
|
-
* @param relatedEntityName - the name of the related entity to look up the relationship for
|
|
97
|
-
* @param relatedEntityJoinField - the name of the foreign key field in the current entity that links to the related entity, only required if there are multiple relationships between the entities
|
|
98
|
-
* @returns
|
|
99
|
-
*/
|
|
100
95
|
GetEntityRelationshipByRelatedEntityName(relatedEntityName: string, relatedEntityJoinField?: string): EntityRelationshipInfo | undefined;
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
* @param relatedEntityName
|
|
104
|
-
* @returns
|
|
105
|
-
*/
|
|
106
|
-
NewRecordValues(relatedEntityName: string): any;
|
|
107
|
-
NewRecordValuesByEntityRelationship(item: EntityRelationshipInfo): any;
|
|
96
|
+
NewRecordValues(relatedEntityName: string): Record<string, unknown>;
|
|
97
|
+
NewRecordValuesByEntityRelationship(item: EntityRelationshipInfo): Record<string, unknown>;
|
|
108
98
|
GetRelatedEntityTabDisplayName(relatedEntityName: string): string;
|
|
109
|
-
/**
|
|
110
|
-
* Returns whether the current entity has any related entities defined.
|
|
111
|
-
* Useful for conditionally showing/hiding related entity sections.
|
|
112
|
-
*/
|
|
113
99
|
get HasRelatedEntities(): boolean;
|
|
114
|
-
|
|
115
|
-
Validate(): ValidationResult;
|
|
116
|
-
protected RaiseEvent(eventCode: BaseFormComponentEventCodes): FormEditingCompleteEvent;
|
|
117
|
-
SaveRecord(StopEditModeAfterSave: boolean): Promise<boolean>;
|
|
118
|
-
Wait(duration: number): Promise<void>;
|
|
119
|
-
CancelEdit(): void;
|
|
120
|
-
protected PendingRecordsDirty(): boolean;
|
|
121
|
-
protected PopulatePendingRecords(): void;
|
|
122
|
-
protected InternalSaveRecord(): Promise<boolean>;
|
|
123
|
-
protected GetTabTopPosition(): number;
|
|
124
|
-
private _tabMargin;
|
|
125
|
-
setTabHeight(): void;
|
|
126
|
-
protected get ContainerObjectHeight(): number;
|
|
127
|
-
protected ResizeTab(): void;
|
|
128
|
-
protected setupSplitterLayoutDebounce(): void;
|
|
129
|
-
splitterLayoutChange(): void;
|
|
100
|
+
get EntityInfo(): EntityInfo | undefined;
|
|
130
101
|
ShowDependencies(): Promise<void>;
|
|
102
|
+
ShowChanges(): void;
|
|
131
103
|
GetListsCanAddTo(): Promise<ListEntity[]>;
|
|
132
104
|
GetRecordDependencies(): Promise<RecordDependency[]>;
|
|
133
|
-
get EntityInfo(): EntityInfo | undefined;
|
|
134
|
-
/**
|
|
135
|
-
* Array of section information including expanded state and row counts.
|
|
136
|
-
* Initialized by subclasses via initSections().
|
|
137
|
-
*/
|
|
138
105
|
protected sections: BaseFormSectionInfo[];
|
|
139
|
-
/**
|
|
140
|
-
* Map for fast section lookup by key.
|
|
141
|
-
*/
|
|
142
106
|
private sectionMap;
|
|
143
|
-
/**
|
|
144
|
-
* Current search filter text for filtering sections.
|
|
145
|
-
*/
|
|
146
107
|
searchFilter: string;
|
|
147
|
-
/**
|
|
148
|
-
* Controls whether empty fields should be shown in read-only mode.
|
|
149
|
-
* When false (default), empty fields are hidden to reduce visual clutter.
|
|
150
|
-
*/
|
|
151
108
|
showEmptyFields: boolean;
|
|
152
|
-
/**
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
* Subject for debouncing filter changes.
|
|
160
|
-
*/
|
|
109
|
+
/** Whether to show all validation errors on fields (set after save failure) */
|
|
110
|
+
private _showValidation;
|
|
111
|
+
/** Validation errors from the most recent failed save attempt */
|
|
112
|
+
private _validationErrors;
|
|
113
|
+
get formContext(): FormContext;
|
|
114
|
+
/** Clears all validation display state (called on save success, cancel, end edit) */
|
|
115
|
+
private clearValidationState;
|
|
161
116
|
private filterSubject;
|
|
162
117
|
private filterSubscription?;
|
|
163
|
-
/**
|
|
164
|
-
* Initializes the sections array. Called by subclasses in ngOnInit.
|
|
165
|
-
* Accepts either BaseFormSectionInfo instances or plain objects that will be converted.
|
|
166
|
-
* @param sections Array of section information or plain objects
|
|
167
|
-
*/
|
|
168
118
|
protected initSections(sections: (BaseFormSectionInfo | {
|
|
169
119
|
sectionKey: string;
|
|
170
120
|
sectionName: string;
|
|
171
121
|
isExpanded: boolean;
|
|
172
122
|
rowCount?: number;
|
|
173
|
-
metadata?:
|
|
123
|
+
metadata?: unknown;
|
|
174
124
|
})[]): void;
|
|
175
|
-
/**
|
|
176
|
-
* Gets the section info by key.
|
|
177
|
-
* @param sectionKey The section key
|
|
178
|
-
* @returns The section info or undefined
|
|
179
|
-
*/
|
|
180
125
|
protected getSection(sectionKey: string): BaseFormSectionInfo | undefined;
|
|
181
|
-
/**
|
|
182
|
-
* Checks if a section is expanded.
|
|
183
|
-
* Uses FormStateService for persisted state.
|
|
184
|
-
* @param sectionKey The section key
|
|
185
|
-
* @param defaultExpanded Optional default value to use when no persisted state exists
|
|
186
|
-
* @returns True if expanded, false otherwise
|
|
187
|
-
*/
|
|
188
126
|
IsSectionExpanded(sectionKey: string, defaultExpanded?: boolean): boolean;
|
|
189
|
-
/**
|
|
190
|
-
* Sets the expanded state of a section.
|
|
191
|
-
* Persists to User Settings via FormStateService.
|
|
192
|
-
* @param sectionKey The section key
|
|
193
|
-
* @param isExpanded The new expanded state
|
|
194
|
-
*/
|
|
195
127
|
SetSectionExpanded(sectionKey: string, isExpanded: boolean): void;
|
|
196
|
-
/**
|
|
197
|
-
* Gets the row count for a section.
|
|
198
|
-
* @param sectionKey The section key
|
|
199
|
-
* @returns The row count or undefined
|
|
200
|
-
*/
|
|
201
128
|
GetSectionRowCount(sectionKey: string): number | undefined;
|
|
202
|
-
/**
|
|
203
|
-
* Sets the row count for a section.
|
|
204
|
-
* @param sectionKey The section key
|
|
205
|
-
* @param rowCount The row count
|
|
206
|
-
*/
|
|
207
129
|
SetSectionRowCount(sectionKey: string, rowCount: number): void;
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
* Persists to User Settings via FormStateService.
|
|
211
|
-
* @param sectionKey The section key to toggle
|
|
212
|
-
*/
|
|
130
|
+
GetSectionPanelHeight(sectionKey: string): number | undefined;
|
|
131
|
+
SetSectionPanelHeight(sectionKey: string, height: number): void;
|
|
213
132
|
toggleSection(sectionKey: string): void;
|
|
214
133
|
/**
|
|
215
|
-
*
|
|
216
|
-
*
|
|
134
|
+
* Expand any sections that are visible (match the current filter) but currently collapsed.
|
|
135
|
+
* Called after filter changes so the user can immediately see matching content.
|
|
217
136
|
*/
|
|
137
|
+
private expandMatchingSections;
|
|
218
138
|
expandAllSections(): void;
|
|
219
|
-
/**
|
|
220
|
-
* Collapses all sections.
|
|
221
|
-
* Persists to User Settings via FormStateService.
|
|
222
|
-
*/
|
|
223
139
|
collapseAllSections(): void;
|
|
224
|
-
/**
|
|
225
|
-
* Gets the count of currently expanded sections.
|
|
226
|
-
* @returns Number of expanded sections
|
|
227
|
-
*/
|
|
228
140
|
getExpandedCount(): number;
|
|
229
|
-
/**
|
|
230
|
-
* Gets the count of visible sections after filtering.
|
|
231
|
-
* @returns Number of sections currently visible (not hidden by search filter)
|
|
232
|
-
*/
|
|
233
141
|
getVisibleSectionCount(): number;
|
|
234
|
-
/**
|
|
235
|
-
* Gets the total count of all sections (regardless of filter).
|
|
236
|
-
* @returns Total number of sections
|
|
237
|
-
*/
|
|
238
142
|
getTotalSectionCount(): number;
|
|
239
|
-
/**
|
|
240
|
-
* Handles filter change events from the section controls.
|
|
241
|
-
* Debounces the filter updates by 250ms to avoid excessive re-rendering during typing.
|
|
242
|
-
* @param searchTerm The search term to filter sections
|
|
243
|
-
*/
|
|
244
143
|
onFilterChange(searchTerm: string): void;
|
|
245
|
-
/**
|
|
246
|
-
* Gets the entity name for the current record (used for state persistence keys).
|
|
247
|
-
* @returns Entity name or empty string
|
|
248
|
-
*/
|
|
249
144
|
getEntityName(): string;
|
|
250
|
-
/**
|
|
251
|
-
* Gets the form width mode from persisted state.
|
|
252
|
-
* @returns Width mode ('centered' or 'full-width')
|
|
253
|
-
*/
|
|
254
145
|
getFormWidthMode(): 'centered' | 'full-width';
|
|
255
|
-
/**
|
|
256
|
-
* Sets the form width mode.
|
|
257
|
-
* Persists to User Settings via FormStateService.
|
|
258
|
-
* @param widthMode The width mode
|
|
259
|
-
*/
|
|
260
146
|
setFormWidthMode(widthMode: 'centered' | 'full-width'): void;
|
|
261
|
-
/**
|
|
262
|
-
* Toggles form width mode between centered and full-width.
|
|
263
|
-
* Persists to User Settings via FormStateService.
|
|
264
|
-
*/
|
|
265
147
|
toggleFormWidthMode(): void;
|
|
148
|
+
getSectionOrder(): string[];
|
|
149
|
+
setSectionOrder(sectionOrder: string[]): void;
|
|
150
|
+
resetSectionOrder(): void;
|
|
151
|
+
hasCustomSectionOrder(): boolean;
|
|
152
|
+
getSectionDisplayOrder(sectionKey: string): number;
|
|
266
153
|
/**
|
|
267
|
-
*
|
|
268
|
-
* @
|
|
154
|
+
* Handles navigation events from the form container and related entity grids.
|
|
155
|
+
* Relays the event upward via the Navigate @Output for the host application to handle.
|
|
156
|
+
* Generated form templates bind this as: (Navigate)="OnFormNavigate($event)"
|
|
269
157
|
*/
|
|
270
|
-
|
|
158
|
+
OnFormNavigate(event: FormNavigationEvent): void;
|
|
271
159
|
/**
|
|
272
|
-
*
|
|
273
|
-
*
|
|
160
|
+
* Handles delete requests from the form container.
|
|
161
|
+
* Emits RecordDeleted on success, RecordDeleteFailed on failure.
|
|
162
|
+
* Generated form templates bind this as: (DeleteRequested)="OnDeleteRequested()"
|
|
274
163
|
*/
|
|
275
|
-
|
|
164
|
+
OnDeleteRequested(): Promise<void>;
|
|
276
165
|
/**
|
|
277
|
-
*
|
|
166
|
+
* Handles favorite toggle from the form container.
|
|
167
|
+
* Generated form templates bind this as: (FavoriteToggled)="OnFavoriteToggled()"
|
|
278
168
|
*/
|
|
279
|
-
|
|
169
|
+
OnFavoriteToggled(): Promise<void>;
|
|
280
170
|
/**
|
|
281
|
-
*
|
|
282
|
-
*
|
|
171
|
+
* Handles history view requests from the form container.
|
|
172
|
+
* Generated form templates bind this as: (HistoryRequested)="OnHistoryRequested()"
|
|
283
173
|
*/
|
|
284
|
-
|
|
174
|
+
OnHistoryRequested(): void;
|
|
285
175
|
/**
|
|
286
|
-
*
|
|
287
|
-
*
|
|
288
|
-
* @param sectionKey The section key
|
|
289
|
-
* @returns The order value (0-based index)
|
|
176
|
+
* Handles list management requests from the form container.
|
|
177
|
+
* Generated form templates bind this as: (ListManagementRequested)="OnListManagementRequested()"
|
|
290
178
|
*/
|
|
291
|
-
|
|
179
|
+
OnListManagementRequested(): void;
|
|
292
180
|
static ɵfac: i0.ɵɵFactoryDeclaration<BaseFormComponent, never>;
|
|
293
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseFormComponent, never, never, {}, {}, never, never, true, never>;
|
|
181
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseFormComponent, never, never, {}, { "Navigate": "Navigate"; "Notification": "Notification"; "RecordSaved": "RecordSaved"; "RecordDeleted": "RecordDeleted"; "RecordSaveFailed": "RecordSaveFailed"; "RecordDeleteFailed": "RecordDeleteFailed"; "ValidationFailed": "ValidationFailed"; }, never, never, true, never>;
|
|
294
182
|
}
|
|
295
183
|
//# sourceMappingURL=base-form-component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-form-component.d.ts","sourceRoot":"","sources":["../../src/lib/base-form-component.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"base-form-component.d.ts","sourceRoot":"","sources":["../../src/lib/base-form-component.ts"],"names":[],"mappings":"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"}
|