@acorex-platform/module-learning-management-client 0.0.21

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.
@@ -0,0 +1,209 @@
1
+ import { AXPMenuProvider, AXPMenuProviderContext, AXPSearchCommandProvider, AXPSearchResult } from '@acorex-platform/framework-client/common';
2
+ import { AXPPermissionDefinitionProvider, AXPPermissionDefinitionProviderContext } from '@acorex-platform/framework-client/auth';
3
+ import * as _angular_core from '@angular/core';
4
+ import * as i1 from '@acorex-platform/framework-client/layout/widget-core';
5
+ import { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';
6
+ import { AXPSpreadsheetItem, AXPSpreadsheetData, AXPSpreadsheetCellChangeEvent, AXPSpreadsheetColumn, AXPSpreadsheetRowChangeEvent } from '@acorex-platform/framework-client/layout/components';
7
+ import { AXMLearningManagementSkillEntityModel } from '@acorex-platform/module-learning-management-client/contracts';
8
+
9
+ /**
10
+ * Learning Management Module Menu Provider.
11
+ * - Root "Learning": Skills, Courses, Trainings, Enrollments, Certificates, Licenses, Learning Paths (operational)
12
+ * - Configuration/Learning: Skill Levels, Course Types, Training Definitions/Types, Certificate Definitions/Types, License Types, Mandatory Training Rules (reference)
13
+ */
14
+ declare class AXMLearningManagementMenuProvider implements AXPMenuProvider {
15
+ private readonly entityService;
16
+ provide(context: AXPMenuProviderContext): Promise<void>;
17
+ }
18
+
19
+ /**
20
+ * Registers learning capabilities into the shared Learning group.
21
+ */
22
+ declare class AXMLearningManagementPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {
23
+ define(context: AXPPermissionDefinitionProviderContext): Promise<void>;
24
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMLearningManagementPermissionDefinitionProvider, never>;
25
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMLearningManagementPermissionDefinitionProvider>;
26
+ }
27
+
28
+ declare class AXMLearningManagementSearchCommandProvider extends AXPSearchCommandProvider {
29
+ commands: AXPSearchResult[];
30
+ }
31
+
32
+ declare class AXMLearningManagementModule {
33
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMLearningManagementModule, never>;
34
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXMLearningManagementModule, never, [typeof i1.AXPWidgetCoreModule], never>;
35
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXMLearningManagementModule>;
36
+ }
37
+
38
+ declare class AXMLearningManagementSkillMatrixComponent {
39
+ private readonly entityService;
40
+ private readonly skillLevelDataAccessor;
41
+ private readonly skillDataAccessor;
42
+ private readonly skillCategoryDataAccessor;
43
+ private readonly entityDataSelectorService;
44
+ private readonly entityResolver;
45
+ private readonly translationService;
46
+ private readonly destroyRef;
47
+ private readonly activeLocale;
48
+ /**
49
+ * Array of job titles/positions to display as columns (e.g., Senior, Manager, Director)
50
+ */
51
+ titles: _angular_core.InputSignal<AXPSpreadsheetItem[]>;
52
+ /**
53
+ * Initial matrix data: { [skillId]: { [title.id]: skillLevelId } }
54
+ */
55
+ value: _angular_core.InputSignal<AXPSpreadsheetData>;
56
+ /**
57
+ * Whether the matrix is in readonly mode
58
+ */
59
+ readonly: _angular_core.InputSignal<boolean>;
60
+ /**
61
+ * Initial skill IDs (for syncing with parent entity)
62
+ */
63
+ skillIds: _angular_core.InputSignal<string[]>;
64
+ /**
65
+ * Emitted when the matrix value changes
66
+ */
67
+ valueChange: _angular_core.OutputEmitterRef<AXPSpreadsheetData>;
68
+ /**
69
+ * Emitted when a single cell value changes
70
+ */
71
+ cellChange: _angular_core.OutputEmitterRef<AXPSpreadsheetCellChangeEvent>;
72
+ /**
73
+ * Emitted when selected skills change (skill IDs array)
74
+ */
75
+ skillIdsChange: _angular_core.OutputEmitterRef<string[]>;
76
+ /**
77
+ * Skill levels loaded from the service
78
+ */
79
+ private skillLevels;
80
+ /**
81
+ * Selected skills (internal state)
82
+ */
83
+ protected selectedSkills: _angular_core.WritableSignal<AXMLearningManagementSkillEntityModel[]>;
84
+ /**
85
+ * Skill entity definition
86
+ */
87
+ private skillEntityDef;
88
+ /**
89
+ * Loading state
90
+ */
91
+ protected isLoading: _angular_core.WritableSignal<boolean>;
92
+ /**
93
+ * Loading state for skill entity
94
+ */
95
+ protected isLoadingSkillEntity: _angular_core.WritableSignal<boolean>;
96
+ /**
97
+ * Vertical titles (skills) - rows of the matrix
98
+ */
99
+ protected verticalTitles: _angular_core.Signal<AXPSpreadsheetItem[]>;
100
+ /**
101
+ * Horizontal titles (job titles/positions) - columns of the matrix
102
+ */
103
+ protected horizontalTitles: _angular_core.Signal<AXPSpreadsheetItem[]>;
104
+ /**
105
+ * Cell options (skill levels) - dropdown options for each cell, loaded from service
106
+ */
107
+ protected cellOptions: _angular_core.Signal<AXPSpreadsheetItem[]>;
108
+ /**
109
+ * Spreadsheet columns - converted from horizontalTitles (job titles/positions)
110
+ */
111
+ protected spreadsheetColumns: _angular_core.Signal<AXPSpreadsheetColumn[]>;
112
+ /**
113
+ * Spreadsheet rows - converted from matrix data and vertical titles
114
+ */
115
+ protected spreadsheetRows: _angular_core.Signal<Record<string, any>[]>;
116
+ constructor();
117
+ /**
118
+ * Load skill levels from the service
119
+ */
120
+ private loadSkillLevels;
121
+ /**
122
+ * Load skill entity definition
123
+ */
124
+ private loadSkillEntityDef;
125
+ /**
126
+ * Load skills by IDs
127
+ */
128
+ private loadSkillsByIds;
129
+ /**
130
+ * Convert spreadsheet rows back to matrix data format
131
+ */
132
+ private convertSpreadsheetRowsToMatrixData;
133
+ /**
134
+ * Handle spreadsheet change event - convert to matrix format
135
+ */
136
+ protected handleSpreadsheetChange(rows: Record<string, any>[]): void;
137
+ /**
138
+ * Handle cell change event from spreadsheet
139
+ */
140
+ protected handleCellChange(event: AXPSpreadsheetCellChangeEvent): void;
141
+ /**
142
+ * Open skill selector dialog with category filter
143
+ */
144
+ protected handleSelectSkills(): Promise<void>;
145
+ /**
146
+ * Remove a skill from selection
147
+ */
148
+ protected handleRemoveSkill(skillId: string): void;
149
+ /**
150
+ * Handle row change event from spreadsheet (add/remove)
151
+ */
152
+ protected handleRowChange(event: AXPSpreadsheetRowChangeEvent): void;
153
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMLearningManagementSkillMatrixComponent, never>;
154
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMLearningManagementSkillMatrixComponent, "axm-skill-matrix", never, { "titles": { "alias": "titles"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "skillIds": { "alias": "skillIds"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "cellChange": "cellChange"; "skillIdsChange": "skillIdsChange"; }, never, never, true, never>;
155
+ }
156
+
157
+ declare class AXLSkillMatrixWidgetEditComponent extends AXPValueWidgetComponent<AXPSpreadsheetData> {
158
+ /**
159
+ * Titles from context - reactively reads from context data signal
160
+ * This ensures the titles update immediately when requiredLevels changes in context
161
+ */
162
+ protected titles: _angular_core.Signal<AXPSpreadsheetItem[]>;
163
+ /**
164
+ * Readonly mode from options - properly tracks options signal changes
165
+ */
166
+ protected readonly: _angular_core.Signal<boolean>;
167
+ /**
168
+ * Current matrix value - tracks getValue signal changes
169
+ */
170
+ protected matrixValue: _angular_core.Signal<AXPSpreadsheetData>;
171
+ /**
172
+ * Skill IDs extracted from matrix data keys or from options
173
+ */
174
+ protected skillIds: _angular_core.Signal<string[]>;
175
+ /**
176
+ * Handle value change from skill-matrix component
177
+ */
178
+ protected handleValueChange(data: AXPSpreadsheetData): void;
179
+ /**
180
+ * Handle skill IDs change from skill-matrix component
181
+ * Skill IDs are stored as keys in the matrix data, so this is mainly for tracking
182
+ */
183
+ protected handleSkillIdsChange(skillIds: string[]): void;
184
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLSkillMatrixWidgetEditComponent, never>;
185
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLSkillMatrixWidgetEditComponent, "axm-skill-matrix-widget-edit", never, {}, {}, never, never, true, never>;
186
+ }
187
+
188
+ declare class AXLSkillMatrixWidgetViewComponent extends AXPValueWidgetComponent<AXPSpreadsheetData> {
189
+ /**
190
+ * Skill IDs from options
191
+ */
192
+ protected skills: _angular_core.Signal<{
193
+ id: string;
194
+ title: string;
195
+ description?: string;
196
+ }[]>;
197
+ /**
198
+ * Current matrix value
199
+ */
200
+ protected matrixValue: _angular_core.Signal<AXPSpreadsheetData>;
201
+ /**
202
+ * Handle value change from skill-matrix component
203
+ */
204
+ protected handleValueChange(data: AXPSpreadsheetData): void;
205
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXLSkillMatrixWidgetViewComponent, never>;
206
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXLSkillMatrixWidgetViewComponent, "axm-skill-matrix-widget-view", never, {}, {}, never, never, true, never>;
207
+ }
208
+
209
+ export { AXLSkillMatrixWidgetEditComponent, AXLSkillMatrixWidgetViewComponent, AXMLearningManagementMenuProvider, AXMLearningManagementModule, AXMLearningManagementPermissionDefinitionProvider, AXMLearningManagementSearchCommandProvider, AXMLearningManagementSkillMatrixComponent };