@ncim/sdk 0.1.0 → 0.2.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/fesm2022/ncim-sdk-core.mjs +4118 -1
- package/fesm2022/ncim-sdk-core.mjs.map +1 -1
- package/fesm2022/ncim-sdk-features-ncim-sdk-features-YQVsqseZ.mjs +2419 -0
- package/fesm2022/ncim-sdk-features-ncim-sdk-features-YQVsqseZ.mjs.map +1 -0
- package/fesm2022/ncim-sdk-features-sso-callback-DLX42VOO.mjs +110 -0
- package/fesm2022/ncim-sdk-features-sso-callback-DLX42VOO.mjs.map +1 -0
- package/fesm2022/ncim-sdk-features-sso-error-CBlw1Gla.mjs +73 -0
- package/fesm2022/ncim-sdk-features-sso-error-CBlw1Gla.mjs.map +1 -0
- package/fesm2022/ncim-sdk-features.mjs +2 -5
- package/fesm2022/ncim-sdk-features.mjs.map +1 -1
- package/fesm2022/ncim-sdk-ncim-sdk-DPJwZ1er.mjs +13378 -0
- package/fesm2022/ncim-sdk-ncim-sdk-DPJwZ1er.mjs.map +1 -0
- package/fesm2022/ncim-sdk-sso-callback-DxhXnPAG.mjs +110 -0
- package/fesm2022/ncim-sdk-sso-callback-DxhXnPAG.mjs.map +1 -0
- package/fesm2022/ncim-sdk-sso-error-CVdCgF23.mjs +73 -0
- package/fesm2022/ncim-sdk-sso-error-CVdCgF23.mjs.map +1 -0
- package/fesm2022/ncim-sdk-state.mjs +47 -1
- package/fesm2022/ncim-sdk-state.mjs.map +1 -1
- package/fesm2022/ncim-sdk-ui.mjs +6474 -1
- package/fesm2022/ncim-sdk-ui.mjs.map +1 -1
- package/fesm2022/ncim-sdk.mjs +1 -23
- package/fesm2022/ncim-sdk.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ncim-sdk-core.d.ts +1738 -1
- package/types/ncim-sdk-features.d.ts +1018 -1
- package/types/ncim-sdk-state.d.ts +56 -1
- package/types/ncim-sdk-ui.d.ts +3128 -1
- package/types/ncim-sdk.d.ts +6623 -8
|
@@ -1 +1,1018 @@
|
|
|
1
|
-
|
|
1
|
+
import * as _angular_forms from '@angular/forms';
|
|
2
|
+
import { FormRecord, FormControl } from '@angular/forms';
|
|
3
|
+
import * as _angular_core from '@angular/core';
|
|
4
|
+
import { InjectionToken, EnvironmentProviders } from '@angular/core';
|
|
5
|
+
import { EntityType, PackageType } from './ncim-sdk-core';
|
|
6
|
+
import { ENTITY_TYPE_OPTIONS } from './ncim-sdk-core';
|
|
7
|
+
import { OptionItem } from './ncim-sdk-ui';
|
|
8
|
+
import { SelectOption } from './ncim-sdk-ui';
|
|
9
|
+
import { TabItem } from './ncim-sdk-ui';
|
|
10
|
+
export * from './ncim-sdk-core';
|
|
11
|
+
import * as libs_ncim_sdk_features_entry from 'libs/ncim-sdk-features-entry';
|
|
12
|
+
import { BreadcrumbItem } from './ncim-sdk-ui';
|
|
13
|
+
import { RelatedCardItem } from './ncim-sdk-ui';
|
|
14
|
+
import { ResourceItem } from './ncim-sdk-ui';
|
|
15
|
+
import { AccordionItem } from './ncim-sdk-ui';
|
|
16
|
+
import { GridSortEvent, GridColumn } from './ncim-sdk-ui';
|
|
17
|
+
import { TimelineData } from './ncim-sdk-ui';
|
|
18
|
+
import { Observable } from 'rxjs';
|
|
19
|
+
import { Route } from '@angular/router';
|
|
20
|
+
|
|
21
|
+
/** Payload emitted when login form is submitted. */
|
|
22
|
+
interface LoginFormData {
|
|
23
|
+
identityNumber: string;
|
|
24
|
+
password: string;
|
|
25
|
+
}
|
|
26
|
+
/** Payload emitted when forgot-password form is submitted. */
|
|
27
|
+
interface ForgotPasswordFormData {
|
|
28
|
+
identityNumber: string;
|
|
29
|
+
}
|
|
30
|
+
/** Payload emitted when OTP verification form is submitted. */
|
|
31
|
+
interface OtpVerificationFormData {
|
|
32
|
+
otp: string;
|
|
33
|
+
}
|
|
34
|
+
/** Payload emitted when reset-password form is submitted. */
|
|
35
|
+
interface ResetPasswordFormData {
|
|
36
|
+
newPassword: string;
|
|
37
|
+
confirmPassword: string;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
declare class LoginForm {
|
|
41
|
+
private readonly fb;
|
|
42
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
43
|
+
readonly formSubmit: _angular_core.OutputEmitterRef<LoginFormData>;
|
|
44
|
+
readonly forgotPasswordClick: _angular_core.OutputEmitterRef<void>;
|
|
45
|
+
readonly submitted: _angular_core.WritableSignal<boolean>;
|
|
46
|
+
readonly form: _angular_forms.FormGroup<{
|
|
47
|
+
identityNumber: _angular_forms.FormControl<string | null>;
|
|
48
|
+
password: _angular_forms.FormControl<string | null>;
|
|
49
|
+
}>;
|
|
50
|
+
constructor();
|
|
51
|
+
onSubmit(): void;
|
|
52
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoginForm, never>;
|
|
53
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoginForm, "ncim-login-form", never, { "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, { "formSubmit": "formSubmit"; "forgotPasswordClick": "forgotPasswordClick"; }, never, never, true, never>;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
declare class ForgotPasswordForm {
|
|
57
|
+
private readonly fb;
|
|
58
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
59
|
+
readonly formSubmit: _angular_core.OutputEmitterRef<ForgotPasswordFormData>;
|
|
60
|
+
readonly submitted: _angular_core.WritableSignal<boolean>;
|
|
61
|
+
readonly form: _angular_forms.FormGroup<{
|
|
62
|
+
identityNumber: _angular_forms.FormControl<string | null>;
|
|
63
|
+
}>;
|
|
64
|
+
constructor();
|
|
65
|
+
onSubmit(): void;
|
|
66
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForgotPasswordForm, never>;
|
|
67
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ForgotPasswordForm, "ncim-forgot-password-form", never, { "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, { "formSubmit": "formSubmit"; }, never, never, true, never>;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
declare class OtpVerificationForm {
|
|
71
|
+
private readonly fb;
|
|
72
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
73
|
+
readonly formSubmit: _angular_core.OutputEmitterRef<OtpVerificationFormData>;
|
|
74
|
+
readonly resendCode: _angular_core.OutputEmitterRef<void>;
|
|
75
|
+
readonly submitted: _angular_core.WritableSignal<boolean>;
|
|
76
|
+
readonly form: _angular_forms.FormGroup<{
|
|
77
|
+
otp: _angular_forms.FormControl<string | null>;
|
|
78
|
+
}>;
|
|
79
|
+
constructor();
|
|
80
|
+
onSubmit(): void;
|
|
81
|
+
reset(): void;
|
|
82
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OtpVerificationForm, never>;
|
|
83
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OtpVerificationForm, "ncim-otp-verification-form", never, { "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, { "formSubmit": "formSubmit"; "resendCode": "resendCode"; }, never, never, true, never>;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
declare class ResetPasswordForm {
|
|
87
|
+
private readonly fb;
|
|
88
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
89
|
+
readonly formSubmit: _angular_core.OutputEmitterRef<ResetPasswordFormData>;
|
|
90
|
+
readonly submitted: _angular_core.WritableSignal<boolean>;
|
|
91
|
+
readonly form: _angular_forms.FormGroup<{
|
|
92
|
+
newPassword: _angular_forms.FormControl<string | null>;
|
|
93
|
+
confirmPassword: _angular_forms.FormControl<string | null>;
|
|
94
|
+
}>;
|
|
95
|
+
constructor();
|
|
96
|
+
onSubmit(): void;
|
|
97
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ResetPasswordForm, never>;
|
|
98
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ResetPasswordForm, "ncim-reset-password-form", never, { "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, { "formSubmit": "formSubmit"; }, never, never, true, never>;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* SSO login button for MOMRAH / Nafath.
|
|
103
|
+
* Presentational — emits click; parent handles AuthService.loginWithSso().
|
|
104
|
+
*/
|
|
105
|
+
declare class SsoLoginButton {
|
|
106
|
+
/** i18n key for the button label. */
|
|
107
|
+
readonly labelKey: _angular_core.InputSignal<string>;
|
|
108
|
+
/** Icon name (e.g. 'nafath-icon'). */
|
|
109
|
+
readonly iconName: _angular_core.InputSignal<string>;
|
|
110
|
+
/** Icon size in pixels. */
|
|
111
|
+
readonly iconSize: _angular_core.InputSignal<number>;
|
|
112
|
+
/** Disable the button (e.g. when SSO is not available). */
|
|
113
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
114
|
+
/** Show loading state during SSO redirect. */
|
|
115
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
116
|
+
/** i18n key for aria-label (accessibility). Falls back to labelKey. */
|
|
117
|
+
readonly ariaLabelKey: _angular_core.InputSignal<string | null>;
|
|
118
|
+
readonly ssoClick: _angular_core.OutputEmitterRef<void>;
|
|
119
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SsoLoginButton, never>;
|
|
120
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SsoLoginButton, "ncim-sso-login-button", never, { "labelKey": { "alias": "labelKey"; "required": false; "isSignal": true; }; "iconName": { "alias": "iconName"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "ariaLabelKey": { "alias": "ariaLabelKey"; "required": false; "isSignal": true; }; }, { "ssoClick": "ssoClick"; }, never, never, true, never>;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Login page header: title and subtitle with optional link (e.g. "Create account").
|
|
125
|
+
* @deprecated Use AuthHeader instead. Will be removed in a future version.
|
|
126
|
+
*/
|
|
127
|
+
declare class LoginHeader {
|
|
128
|
+
/** i18n key for the title. */
|
|
129
|
+
readonly titleKey: _angular_core.InputSignal<string>;
|
|
130
|
+
/** i18n key for the subtitle text before the link. */
|
|
131
|
+
readonly subtitleKey: _angular_core.InputSignal<string>;
|
|
132
|
+
/** i18n key for the link label. */
|
|
133
|
+
readonly linkKey: _angular_core.InputSignal<string>;
|
|
134
|
+
/** Router path for the link. */
|
|
135
|
+
readonly linkPath: _angular_core.InputSignal<string>;
|
|
136
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoginHeader, never>;
|
|
137
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoginHeader, "ncim-login-header", never, { "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "subtitleKey": { "alias": "subtitleKey"; "required": false; "isSignal": true; }; "linkKey": { "alias": "linkKey"; "required": false; "isSignal": true; }; "linkPath": { "alias": "linkPath"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Auth page header: title, subtitle, and optional link.
|
|
142
|
+
* Use for login, forgot-password, OTP, etc.
|
|
143
|
+
*/
|
|
144
|
+
declare class AuthHeader {
|
|
145
|
+
/** i18n key for the title. */
|
|
146
|
+
readonly titleKey: _angular_core.InputSignal<string>;
|
|
147
|
+
/** i18n key for the subtitle. */
|
|
148
|
+
readonly subtitleKey: _angular_core.InputSignal<string | null>;
|
|
149
|
+
/** i18n key for the link label. Shown only when linkPath is provided. */
|
|
150
|
+
readonly linkKey: _angular_core.InputSignal<string | null>;
|
|
151
|
+
/** Router path for the link. When provided with linkKey, shows the link. */
|
|
152
|
+
readonly linkPath: _angular_core.InputSignal<string | null>;
|
|
153
|
+
/** Title font size. Use design token, e.g. var(--font-size-xl). */
|
|
154
|
+
readonly titleFontSize: _angular_core.InputSignal<string>;
|
|
155
|
+
/** Title font weight. Use design token, e.g. var(--font-weight-bold). */
|
|
156
|
+
readonly titleFontWeight: _angular_core.InputSignal<string>;
|
|
157
|
+
/** Title margin. Use design token, e.g. 0 0 var(--space-md). */
|
|
158
|
+
readonly titleMargin: _angular_core.InputSignal<string>;
|
|
159
|
+
/** Subtitle font size. Use design token, e.g. var(--font-size-base). */
|
|
160
|
+
readonly subtitleFontSize: _angular_core.InputSignal<string>;
|
|
161
|
+
/** Subtitle font weight. Use design token, e.g. var(--font-weight-regular). */
|
|
162
|
+
readonly subtitleFontWeight: _angular_core.InputSignal<string>;
|
|
163
|
+
/** Subtitle margin. Use design token, e.g. 0 0 var(--space-3xl). */
|
|
164
|
+
readonly subtitleMargin: _angular_core.InputSignal<string>;
|
|
165
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AuthHeader, never>;
|
|
166
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AuthHeader, "ncim-auth-header", never, { "titleKey": { "alias": "titleKey"; "required": true; "isSignal": true; }; "subtitleKey": { "alias": "subtitleKey"; "required": false; "isSignal": true; }; "linkKey": { "alias": "linkKey"; "required": false; "isSignal": true; }; "linkPath": { "alias": "linkPath"; "required": false; "isSignal": true; }; "titleFontSize": { "alias": "titleFontSize"; "required": false; "isSignal": true; }; "titleFontWeight": { "alias": "titleFontWeight"; "required": false; "isSignal": true; }; "titleMargin": { "alias": "titleMargin"; "required": false; "isSignal": true; }; "subtitleFontSize": { "alias": "subtitleFontSize"; "required": false; "isSignal": true; }; "subtitleFontWeight": { "alias": "subtitleFontWeight"; "required": false; "isSignal": true; }; "subtitleMargin": { "alias": "subtitleMargin"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Auth page link with accent styling (e.g. "Create account", "Forgot password").
|
|
171
|
+
* Presentational — receives path and i18n key.
|
|
172
|
+
*/
|
|
173
|
+
declare class AuthLink {
|
|
174
|
+
/** Router path for the link. */
|
|
175
|
+
readonly path: _angular_core.InputSignal<string>;
|
|
176
|
+
/** i18n key for the link label. */
|
|
177
|
+
readonly labelKey: _angular_core.InputSignal<string>;
|
|
178
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AuthLink, never>;
|
|
179
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AuthLink, "ncim-auth-link", never, { "path": { "alias": "path"; "required": true; "isSignal": true; }; "labelKey": { "alias": "labelKey"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Auth page "back" link with icon (e.g. "Back to login", "Back to sign in").
|
|
184
|
+
* Centered, subtle styling — for navigation back to previous auth step.
|
|
185
|
+
*/
|
|
186
|
+
declare class AuthBackLink {
|
|
187
|
+
/** Router path for the link. */
|
|
188
|
+
readonly path: _angular_core.InputSignal<string>;
|
|
189
|
+
/** i18n key for the link label. */
|
|
190
|
+
readonly labelKey: _angular_core.InputSignal<string>;
|
|
191
|
+
/** Icon name (e.g. 'chevronLeft' for RTL-aware back). */
|
|
192
|
+
readonly iconName: _angular_core.InputSignal<string>;
|
|
193
|
+
/** Icon size in pixels. */
|
|
194
|
+
readonly iconSize: _angular_core.InputSignal<number>;
|
|
195
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AuthBackLink, never>;
|
|
196
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AuthBackLink, "ncim-auth-back-link", never, { "path": { "alias": "path"; "required": true; "isSignal": true; }; "labelKey": { "alias": "labelKey"; "required": true; "isSignal": true; }; "iconName": { "alias": "iconName"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/** Contract for a single step in the registration flow. */
|
|
200
|
+
interface StepComponent {
|
|
201
|
+
onSubmit(): void;
|
|
202
|
+
/** Called by parent after async submit work (e.g. API) finishes. */
|
|
203
|
+
onSubmitComplete?(): void;
|
|
204
|
+
getFormData(): Partial<RegistrationData>;
|
|
205
|
+
}
|
|
206
|
+
/** Step: entity details. */
|
|
207
|
+
interface EntityDetailsForm {
|
|
208
|
+
entityName: string;
|
|
209
|
+
regulatorySector: string;
|
|
210
|
+
branchesCount: string;
|
|
211
|
+
employeesCount: string;
|
|
212
|
+
}
|
|
213
|
+
/** Step: inspection details. */
|
|
214
|
+
interface InspectionDetailsForm {
|
|
215
|
+
entityName: string;
|
|
216
|
+
idNumber: string;
|
|
217
|
+
}
|
|
218
|
+
/** Step: responsible user. */
|
|
219
|
+
interface ResponsibleUserForm {
|
|
220
|
+
fullName: string;
|
|
221
|
+
jobTitle: string;
|
|
222
|
+
email: string;
|
|
223
|
+
mobile: string;
|
|
224
|
+
}
|
|
225
|
+
/** Step: account verification (ID, birth date, captcha). */
|
|
226
|
+
interface AccountVerificationForm {
|
|
227
|
+
idNumber: string;
|
|
228
|
+
birthDate: string;
|
|
229
|
+
captcha: string;
|
|
230
|
+
}
|
|
231
|
+
/** Step: session scheduling. */
|
|
232
|
+
interface SessionSchedulingForm {
|
|
233
|
+
date: string;
|
|
234
|
+
time: string;
|
|
235
|
+
}
|
|
236
|
+
/** Step: package selection. */
|
|
237
|
+
interface PackageSelectionForm {
|
|
238
|
+
selectedPackage: string;
|
|
239
|
+
}
|
|
240
|
+
/** Accumulated registration payload (all steps). */
|
|
241
|
+
interface RegistrationData {
|
|
242
|
+
fullName?: string;
|
|
243
|
+
jobTitle?: string;
|
|
244
|
+
email?: string;
|
|
245
|
+
mobile?: string;
|
|
246
|
+
entityName?: string;
|
|
247
|
+
regulatorySector?: string;
|
|
248
|
+
branchesCount?: string;
|
|
249
|
+
employeesCount?: string;
|
|
250
|
+
idNumber?: string;
|
|
251
|
+
birthDate?: string;
|
|
252
|
+
captcha?: string;
|
|
253
|
+
selectedPackage?: string;
|
|
254
|
+
date?: string;
|
|
255
|
+
time?: string;
|
|
256
|
+
}
|
|
257
|
+
/** Summary row for registration success view. */
|
|
258
|
+
interface RegistrationSummary {
|
|
259
|
+
entityName: string;
|
|
260
|
+
representativeName: string;
|
|
261
|
+
packageName: string;
|
|
262
|
+
packagePrice: string;
|
|
263
|
+
sessionDate: string;
|
|
264
|
+
}
|
|
265
|
+
/** Single row in a summary list (icon, label key, value). */
|
|
266
|
+
interface SummaryItem {
|
|
267
|
+
icon: string;
|
|
268
|
+
labelKey: string;
|
|
269
|
+
value: string;
|
|
270
|
+
subValue?: string;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/** Step 1: Select entity type (government, business, inspection). */
|
|
274
|
+
declare class StepEntityType implements StepComponent {
|
|
275
|
+
readonly selectionChange: _angular_core.OutputEmitterRef<EntityType>;
|
|
276
|
+
readonly selectedType: _angular_core.WritableSignal<EntityType | null>;
|
|
277
|
+
readonly submitted: _angular_core.WritableSignal<boolean>;
|
|
278
|
+
readonly options: readonly [{
|
|
279
|
+
readonly id: EntityType.GOVERNMENT;
|
|
280
|
+
readonly title: "AUTH.REGISTER.ENTITY_GOV";
|
|
281
|
+
readonly description: "AUTH.REGISTER.ENTITY_GOV_DESC";
|
|
282
|
+
readonly icon: "building";
|
|
283
|
+
}, {
|
|
284
|
+
readonly id: EntityType.INSPECTION;
|
|
285
|
+
readonly title: "AUTH.REGISTER.ENTITY_INSP";
|
|
286
|
+
readonly description: "AUTH.REGISTER.ENTITY_INSP_DESC";
|
|
287
|
+
readonly icon: "incognito";
|
|
288
|
+
readonly disabled: true;
|
|
289
|
+
}, {
|
|
290
|
+
readonly id: EntityType.BUSINESS;
|
|
291
|
+
readonly title: "AUTH.REGISTER.ENTITY_BUSINESS";
|
|
292
|
+
readonly description: "AUTH.REGISTER.ENTITY_BUSINESS_DESC";
|
|
293
|
+
readonly icon: "muslim";
|
|
294
|
+
}];
|
|
295
|
+
readonly showSelectionError: _angular_core.Signal<boolean>;
|
|
296
|
+
protected isOptionDisabled(option: (typeof ENTITY_TYPE_OPTIONS)[number]): boolean;
|
|
297
|
+
select(type: EntityType): void;
|
|
298
|
+
getFormData(): Partial<RegistrationData>;
|
|
299
|
+
onSubmit(): void;
|
|
300
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StepEntityType, never>;
|
|
301
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StepEntityType, "ncim-step-entity-type", never, {}, { "selectionChange": "selectionChange"; }, never, never, true, never>;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
declare class StepAccountVerification implements StepComponent {
|
|
305
|
+
private readonly fb;
|
|
306
|
+
readonly initialData: _angular_core.InputSignal<Partial<RegistrationData>>;
|
|
307
|
+
readonly next: _angular_core.OutputEmitterRef<AccountVerificationForm>;
|
|
308
|
+
readonly submitted: _angular_core.WritableSignal<boolean>;
|
|
309
|
+
readonly submitting: _angular_core.WritableSignal<boolean>;
|
|
310
|
+
/** Cache-busted URL so refreshing the captcha forces the browser to re-fetch the image. */
|
|
311
|
+
readonly captchaImageSrc: _angular_core.WritableSignal<string>;
|
|
312
|
+
readonly yesterday: Date;
|
|
313
|
+
readonly form: _angular_forms.FormGroup<{
|
|
314
|
+
idNumber: _angular_forms.FormControl<string | null>;
|
|
315
|
+
birthDate: _angular_forms.FormControl<string | null>;
|
|
316
|
+
captcha: _angular_forms.FormControl<string | null>;
|
|
317
|
+
}>;
|
|
318
|
+
readonly captchaControl: _angular_forms.FormControl<string | null>;
|
|
319
|
+
constructor();
|
|
320
|
+
getFormData(): Partial<RegistrationData>;
|
|
321
|
+
onRefreshCaptcha(): void;
|
|
322
|
+
onSubmit(): void;
|
|
323
|
+
onSubmitComplete(): void;
|
|
324
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StepAccountVerification, never>;
|
|
325
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StepAccountVerification, "ncim-step-account-verification", never, { "initialData": { "alias": "initialData"; "required": false; "isSignal": true; }; }, { "next": "next"; }, never, never, true, never>;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
declare class StepEntityDetails implements StepComponent {
|
|
329
|
+
private readonly fb;
|
|
330
|
+
readonly initialData: _angular_core.InputSignal<Partial<RegistrationData>>;
|
|
331
|
+
readonly next: _angular_core.OutputEmitterRef<EntityDetailsForm>;
|
|
332
|
+
readonly submitted: _angular_core.WritableSignal<boolean>;
|
|
333
|
+
readonly submitting: _angular_core.WritableSignal<boolean>;
|
|
334
|
+
readonly form: _angular_forms.FormGroup<{
|
|
335
|
+
entityName: _angular_forms.FormControl<string | null>;
|
|
336
|
+
regulatorySector: _angular_forms.FormControl<string | null>;
|
|
337
|
+
branchesCount: _angular_forms.FormControl<string | null>;
|
|
338
|
+
employeesCount: _angular_forms.FormControl<string | null>;
|
|
339
|
+
}>;
|
|
340
|
+
readonly entityNameOptions: SelectOption[];
|
|
341
|
+
readonly regulatorySectorOptions: SelectOption[];
|
|
342
|
+
readonly branchOptionsArray: OptionItem[];
|
|
343
|
+
readonly employeeOptionsArray: OptionItem[];
|
|
344
|
+
constructor();
|
|
345
|
+
getFormData(): Partial<RegistrationData>;
|
|
346
|
+
onSubmit(): void;
|
|
347
|
+
onSubmitComplete(): void;
|
|
348
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StepEntityDetails, never>;
|
|
349
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StepEntityDetails, "ncim-step-entity-details", never, { "initialData": { "alias": "initialData"; "required": false; "isSignal": true; }; }, { "next": "next"; }, never, never, true, never>;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
declare class StepInspectionDetails implements StepComponent {
|
|
353
|
+
private readonly fb;
|
|
354
|
+
readonly initialData: _angular_core.InputSignal<Partial<RegistrationData>>;
|
|
355
|
+
readonly next: _angular_core.OutputEmitterRef<InspectionDetailsForm>;
|
|
356
|
+
readonly submitted: _angular_core.WritableSignal<boolean>;
|
|
357
|
+
readonly submitting: _angular_core.WritableSignal<boolean>;
|
|
358
|
+
readonly form: _angular_forms.FormGroup<{
|
|
359
|
+
entityName: _angular_forms.FormControl<string | null>;
|
|
360
|
+
idNumber: _angular_forms.FormControl<string | null>;
|
|
361
|
+
}>;
|
|
362
|
+
constructor();
|
|
363
|
+
getFormData(): Partial<RegistrationData>;
|
|
364
|
+
onSubmit(): void;
|
|
365
|
+
onSubmitComplete(): void;
|
|
366
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StepInspectionDetails, never>;
|
|
367
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StepInspectionDetails, "ncim-step-inspection-details", never, { "initialData": { "alias": "initialData"; "required": false; "isSignal": true; }; }, { "next": "next"; }, never, never, true, never>;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
declare class StepResponsibleUser implements StepComponent {
|
|
371
|
+
private readonly fb;
|
|
372
|
+
readonly placeholderKeys: {
|
|
373
|
+
readonly EMAIL: "AUTH.REGISTER.EMAIL_PLACEHOLDER";
|
|
374
|
+
readonly MOBILE: "AUTH.REGISTER.MOBILE_PLACEHOLDER";
|
|
375
|
+
};
|
|
376
|
+
readonly initialData: _angular_core.InputSignal<Partial<RegistrationData>>;
|
|
377
|
+
readonly next: _angular_core.OutputEmitterRef<ResponsibleUserForm>;
|
|
378
|
+
readonly submitted: _angular_core.WritableSignal<boolean>;
|
|
379
|
+
readonly submitting: _angular_core.WritableSignal<boolean>;
|
|
380
|
+
readonly form: _angular_forms.FormGroup<{
|
|
381
|
+
fullName: _angular_forms.FormControl<string | null>;
|
|
382
|
+
jobTitle: _angular_forms.FormControl<string | null>;
|
|
383
|
+
email: _angular_forms.FormControl<string | null>;
|
|
384
|
+
mobile: _angular_forms.FormControl<string | null>;
|
|
385
|
+
}>;
|
|
386
|
+
constructor();
|
|
387
|
+
getFormData(): Partial<RegistrationData>;
|
|
388
|
+
onSubmit(): void;
|
|
389
|
+
onSubmitComplete(): void;
|
|
390
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StepResponsibleUser, never>;
|
|
391
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StepResponsibleUser, "ncim-step-responsible-user", never, { "initialData": { "alias": "initialData"; "required": false; "isSignal": true; }; }, { "next": "next"; }, never, never, true, never>;
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
declare class StepPackageSelection implements StepComponent {
|
|
395
|
+
private translate;
|
|
396
|
+
readonly initialData: _angular_core.InputSignal<Partial<RegistrationData>>;
|
|
397
|
+
readonly next: _angular_core.OutputEmitterRef<PackageSelectionForm>;
|
|
398
|
+
readonly selectedPackage: _angular_core.WritableSignal<string>;
|
|
399
|
+
readonly submitted: _angular_core.WritableSignal<boolean>;
|
|
400
|
+
readonly showSelectionError: _angular_core.Signal<boolean>;
|
|
401
|
+
readonly activeTab: _angular_core.WritableSignal<string>;
|
|
402
|
+
readonly tabs: TabItem[];
|
|
403
|
+
readonly packages: readonly [{
|
|
404
|
+
readonly id: PackageType.BASIC;
|
|
405
|
+
readonly name: "AUTH.REGISTER.BASIC_PACKAGE";
|
|
406
|
+
readonly title: "AUTH.REGISTER.PACKAGE_FEATURES_TITLE";
|
|
407
|
+
readonly description: "AUTH.REGISTER.PACKAGE_FEATURES_DESCRIPTION";
|
|
408
|
+
readonly price: "23.000";
|
|
409
|
+
readonly features: ("AUTH.REGISTER.PACKAGE_FEATURE_AI_ADVISOR" | "AUTH.REGISTER.PACKAGE_FEATURE_SELF_ASSESSMENT" | "AUTH.REGISTER.PACKAGE_FEATURE_EDU_MATERIALS" | "AUTH.REGISTER.PACKAGE_FEATURE_ONSITE_VISITS" | "AUTH.REGISTER.PACKAGE_FEATURE_COMMERCIAL_LICENSE")[];
|
|
410
|
+
readonly popular: true;
|
|
411
|
+
readonly special: false;
|
|
412
|
+
}, {
|
|
413
|
+
readonly id: PackageType.VIOLATIONS;
|
|
414
|
+
readonly name: "AUTH.REGISTER.VIOLATION_DATA";
|
|
415
|
+
readonly title: "AUTH.REGISTER.PACKAGE_FEATURES_TITLE";
|
|
416
|
+
readonly description: "AUTH.REGISTER.PACKAGE_FEATURES_DESCRIPTION";
|
|
417
|
+
readonly price: "45.000";
|
|
418
|
+
readonly features: ("AUTH.REGISTER.PACKAGE_FEATURE_AI_ADVISOR" | "AUTH.REGISTER.PACKAGE_FEATURE_SELF_ASSESSMENT" | "AUTH.REGISTER.PACKAGE_FEATURE_EDU_MATERIALS" | "AUTH.REGISTER.PACKAGE_FEATURE_ONSITE_VISITS" | "AUTH.REGISTER.PACKAGE_FEATURE_COMMERCIAL_LICENSE")[];
|
|
419
|
+
readonly popular: false;
|
|
420
|
+
readonly special: false;
|
|
421
|
+
}, {
|
|
422
|
+
readonly id: PackageType.ENTERPRISE;
|
|
423
|
+
readonly name: "AUTH.REGISTER.ENTERPRISE_PACKAGE";
|
|
424
|
+
readonly title: "AUTH.REGISTER.PACKAGE_FEATURES_TITLE";
|
|
425
|
+
readonly description: "AUTH.REGISTER.PACKAGE_FEATURES_DESCRIPTION";
|
|
426
|
+
readonly price: "80.000";
|
|
427
|
+
readonly features: ("AUTH.REGISTER.PACKAGE_FEATURE_AI_ADVISOR" | "AUTH.REGISTER.PACKAGE_FEATURE_SELF_ASSESSMENT" | "AUTH.REGISTER.PACKAGE_FEATURE_EDU_MATERIALS" | "AUTH.REGISTER.PACKAGE_FEATURE_ONSITE_VISITS" | "AUTH.REGISTER.PACKAGE_FEATURE_COMMERCIAL_LICENSE")[];
|
|
428
|
+
readonly popular: false;
|
|
429
|
+
readonly special: false;
|
|
430
|
+
}, {
|
|
431
|
+
readonly id: PackageType.CUSTOM;
|
|
432
|
+
readonly name: "AUTH.REGISTER.CUSTOM_PACKAGE";
|
|
433
|
+
readonly title: "AUTH.REGISTER.PACKAGE_CUSTOM_FEATURES_TITLE";
|
|
434
|
+
readonly description: "AUTH.REGISTER.PACKAGE_FEATURES_DESCRIPTION";
|
|
435
|
+
readonly features: ("AUTH.REGISTER.PACKAGE_FEATURE_AI_ADVISOR" | "AUTH.REGISTER.PACKAGE_FEATURE_SELF_ASSESSMENT" | "AUTH.REGISTER.PACKAGE_FEATURE_EDU_MATERIALS" | "AUTH.REGISTER.PACKAGE_FEATURE_ONSITE_VISITS" | "AUTH.REGISTER.PACKAGE_FEATURE_COMMERCIAL_LICENSE")[];
|
|
436
|
+
readonly price: "100.000";
|
|
437
|
+
readonly popular: false;
|
|
438
|
+
readonly special: true;
|
|
439
|
+
}];
|
|
440
|
+
readonly packageFeatures: readonly [{
|
|
441
|
+
readonly title: "AUTH.REGISTER.PACKAGE_FEATURE_AI_ADVISOR";
|
|
442
|
+
readonly included: true;
|
|
443
|
+
}, {
|
|
444
|
+
readonly title: "AUTH.REGISTER.PACKAGE_FEATURE_SELF_ASSESSMENT";
|
|
445
|
+
readonly included: true;
|
|
446
|
+
}, {
|
|
447
|
+
readonly title: "AUTH.REGISTER.PACKAGE_FEATURE_EDU_MATERIALS";
|
|
448
|
+
readonly included: true;
|
|
449
|
+
}, {
|
|
450
|
+
readonly title: "AUTH.REGISTER.PACKAGE_FEATURE_ONSITE_VISITS";
|
|
451
|
+
readonly included: true;
|
|
452
|
+
}, {
|
|
453
|
+
readonly title: "AUTH.REGISTER.PACKAGE_FEATURE_COMMERCIAL_LICENSE";
|
|
454
|
+
readonly included: true;
|
|
455
|
+
}];
|
|
456
|
+
readonly PackageType: typeof PackageType;
|
|
457
|
+
readonly confirmPackageLabel: _angular_core.Signal<any>;
|
|
458
|
+
constructor();
|
|
459
|
+
getFormData(): Partial<RegistrationData>;
|
|
460
|
+
onTabChange(tabId: string): void;
|
|
461
|
+
onSubmit(): void;
|
|
462
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StepPackageSelection, never>;
|
|
463
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StepPackageSelection, "ncim-step-package-selection", never, { "initialData": { "alias": "initialData"; "required": false; "isSignal": true; }; }, { "next": "next"; }, never, never, true, never>;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
declare class StepSessionScheduling implements StepComponent {
|
|
467
|
+
private readonly fb;
|
|
468
|
+
readonly initialData: _angular_core.InputSignal<Partial<RegistrationData>>;
|
|
469
|
+
readonly next: _angular_core.OutputEmitterRef<SessionSchedulingForm>;
|
|
470
|
+
readonly submitted: _angular_core.WritableSignal<boolean>;
|
|
471
|
+
readonly submitting: _angular_core.WritableSignal<boolean>;
|
|
472
|
+
readonly today: Date;
|
|
473
|
+
readonly form: _angular_forms.FormGroup<{
|
|
474
|
+
date: _angular_forms.FormControl<string | null>;
|
|
475
|
+
time: _angular_forms.FormControl<string | null>;
|
|
476
|
+
}>;
|
|
477
|
+
readonly timeOptionsArray: OptionItem[];
|
|
478
|
+
constructor();
|
|
479
|
+
getFormData(): Partial<RegistrationData>;
|
|
480
|
+
onSubmit(): void;
|
|
481
|
+
onSubmitComplete(): void;
|
|
482
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StepSessionScheduling, never>;
|
|
483
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StepSessionScheduling, "ncim-step-session-scheduling", never, { "initialData": { "alias": "initialData"; "required": false; "isSignal": true; }; }, { "next": "next"; }, never, never, true, never>;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
/** Displays registration summary and action button. */
|
|
487
|
+
declare class RegistrationSuccessView {
|
|
488
|
+
readonly items: _angular_core.InputSignal<SummaryItem[]>;
|
|
489
|
+
readonly titleKey: _angular_core.InputSignal<string>;
|
|
490
|
+
readonly subtitleKey: _angular_core.InputSignal<string>;
|
|
491
|
+
readonly actionLabelKey: _angular_core.InputSignal<string>;
|
|
492
|
+
readonly illustrationSrc: _angular_core.InputSignal<string>;
|
|
493
|
+
readonly actionClick: _angular_core.OutputEmitterRef<void>;
|
|
494
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RegistrationSuccessView, never>;
|
|
495
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RegistrationSuccessView, "ncim-registration-success-view", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "titleKey": { "alias": "titleKey"; "required": true; "isSignal": true; }; "subtitleKey": { "alias": "subtitleKey"; "required": true; "isSignal": true; }; "actionLabelKey": { "alias": "actionLabelKey"; "required": true; "isSignal": true; }; "illustrationSrc": { "alias": "illustrationSrc"; "required": false; "isSignal": true; }; }, { "actionClick": "actionClick"; }, never, never, true, never>;
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
interface KnowledgeTopic {
|
|
499
|
+
slug: string;
|
|
500
|
+
titleKey: string;
|
|
501
|
+
descriptionKey: string;
|
|
502
|
+
thumbnailSrc: string;
|
|
503
|
+
categorySlug?: string;
|
|
504
|
+
}
|
|
505
|
+
interface KnowledgeCategory {
|
|
506
|
+
slug: string;
|
|
507
|
+
titleKey: string;
|
|
508
|
+
descriptionKey: string;
|
|
509
|
+
icon: string;
|
|
510
|
+
/** Optional step indicator (e.g. 1 of 4). */
|
|
511
|
+
step?: number;
|
|
512
|
+
totalSteps?: number;
|
|
513
|
+
background?: string;
|
|
514
|
+
}
|
|
515
|
+
interface KnowledgeSuggestedTag {
|
|
516
|
+
queryKey: string;
|
|
517
|
+
icon?: string;
|
|
518
|
+
categorySlug: string;
|
|
519
|
+
}
|
|
520
|
+
interface KnowledgeSearchSuggestion {
|
|
521
|
+
title: string;
|
|
522
|
+
description: string;
|
|
523
|
+
tags: {
|
|
524
|
+
label: string;
|
|
525
|
+
icon: string;
|
|
526
|
+
}[];
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
declare class KnowledgeCenterLanding {
|
|
530
|
+
readonly showNewTicketDialog: _angular_core.WritableSignal<boolean>;
|
|
531
|
+
readonly categories: libs_ncim_sdk_features_entry.KnowledgeCategory[];
|
|
532
|
+
readonly suggestedTags: libs_ncim_sdk_features_entry.KnowledgeSuggestedTag[];
|
|
533
|
+
readonly searchTerms: _angular_core.WritableSignal<string>;
|
|
534
|
+
private readonly authService;
|
|
535
|
+
private readonly router;
|
|
536
|
+
private readonly knowledgeCenterService;
|
|
537
|
+
readonly searchSuggestions: _angular_core.Signal<KnowledgeSearchSuggestion[]>;
|
|
538
|
+
readonly breadcrumbItems: BreadcrumbItem[];
|
|
539
|
+
/** Display name derived from SSO claims; falls back to a generic greeting key. */
|
|
540
|
+
readonly userName: _angular_core.Signal<string>;
|
|
541
|
+
navigateToCategory(categorySlug: string): void;
|
|
542
|
+
onSearch(query: string): void;
|
|
543
|
+
onSuggestionClick(tag: {
|
|
544
|
+
categorySlug: string;
|
|
545
|
+
queryKey: string;
|
|
546
|
+
}): void;
|
|
547
|
+
onSearchSuggestionClick(suggestion: KnowledgeSearchSuggestion): void;
|
|
548
|
+
onNewTicket(): void;
|
|
549
|
+
onViewTickets(): void;
|
|
550
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KnowledgeCenterLanding, never>;
|
|
551
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KnowledgeCenterLanding, "ncim-knowledge-center-landing", never, {}, {}, never, never, true, never>;
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
declare class KnowledgeCenterWelcomeSection {
|
|
555
|
+
readonly userName: _angular_core.InputSignal<string>;
|
|
556
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KnowledgeCenterWelcomeSection, never>;
|
|
557
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KnowledgeCenterWelcomeSection, "ncim-knowledge-center-welcome-section", never, { "userName": { "alias": "userName"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
declare class KnowledgeCenterSearchSection {
|
|
561
|
+
readonly suggestedTags: _angular_core.InputSignal<KnowledgeSuggestedTag[]>;
|
|
562
|
+
readonly searchSuggestions: _angular_core.InputSignal<KnowledgeSearchSuggestion[]>;
|
|
563
|
+
readonly searchSubmit: _angular_core.OutputEmitterRef<string>;
|
|
564
|
+
readonly searchSuggestionClick: _angular_core.OutputEmitterRef<KnowledgeSearchSuggestion>;
|
|
565
|
+
readonly searchQueryChange: _angular_core.OutputEmitterRef<string>;
|
|
566
|
+
readonly searchQuery: _angular_core.WritableSignal<string>;
|
|
567
|
+
readonly isSearchDisabled: _angular_core.Signal<boolean>;
|
|
568
|
+
readonly showDropdown: _angular_core.Signal<boolean>;
|
|
569
|
+
onSearchInput(event: Event): void;
|
|
570
|
+
onSearch(): void;
|
|
571
|
+
onSearchSuggestionClick(suggestion: KnowledgeSearchSuggestion): void;
|
|
572
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KnowledgeCenterSearchSection, never>;
|
|
573
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KnowledgeCenterSearchSection, "ncim-knowledge-center-search-section", never, { "suggestedTags": { "alias": "suggestedTags"; "required": true; "isSignal": true; }; "searchSuggestions": { "alias": "searchSuggestions"; "required": false; "isSignal": true; }; }, { "searchSubmit": "searchSubmit"; "searchSuggestionClick": "searchSuggestionClick"; "searchQueryChange": "searchQueryChange"; }, never, never, true, never>;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
declare class KnowledgeCenterBrowseSection {
|
|
577
|
+
readonly categories: _angular_core.InputSignal<KnowledgeCategory[]>;
|
|
578
|
+
readonly sectionTitleKey: _angular_core.InputSignal<string>;
|
|
579
|
+
readonly categoryClick: _angular_core.OutputEmitterRef<string>;
|
|
580
|
+
onCategoryClick(slug: string): void;
|
|
581
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KnowledgeCenterBrowseSection, never>;
|
|
582
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KnowledgeCenterBrowseSection, "ncim-knowledge-center-browse-section", never, { "categories": { "alias": "categories"; "required": true; "isSignal": true; }; "sectionTitleKey": { "alias": "sectionTitleKey"; "required": false; "isSignal": true; }; }, { "categoryClick": "categoryClick"; }, never, ["*"], true, never>;
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
declare class KnowledgeCenterSupportSection {
|
|
586
|
+
readonly newTicket: _angular_core.OutputEmitterRef<void>;
|
|
587
|
+
readonly viewTickets: _angular_core.OutputEmitterRef<void>;
|
|
588
|
+
onNewTicket(): void;
|
|
589
|
+
onViewTickets(): void;
|
|
590
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KnowledgeCenterSupportSection, never>;
|
|
591
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KnowledgeCenterSupportSection, "ncim-knowledge-center-support-section", never, {}, { "newTicket": "newTicket"; "viewTickets": "viewTickets"; }, never, never, true, never>;
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
declare class KnowledgeCenterCategory {
|
|
595
|
+
private readonly route;
|
|
596
|
+
private readonly destroyRef;
|
|
597
|
+
readonly isLoading: _angular_core.WritableSignal<boolean>;
|
|
598
|
+
readonly categorySlug: string;
|
|
599
|
+
readonly topics: _angular_core.Signal<libs_ncim_sdk_features_entry.KnowledgeTopic[]>;
|
|
600
|
+
readonly breadcrumbItems: _angular_core.Signal<BreadcrumbItem[]>;
|
|
601
|
+
readonly titleKey: _angular_core.Signal<string>;
|
|
602
|
+
readonly getTopicRouteFn: (slug: string) => string[];
|
|
603
|
+
constructor();
|
|
604
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KnowledgeCenterCategory, never>;
|
|
605
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KnowledgeCenterCategory, "ncim-knowledge-center-category", never, {}, {}, never, never, true, never>;
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
declare class KnowledgeCenterTopic {
|
|
609
|
+
private readonly route;
|
|
610
|
+
private readonly destroyRef;
|
|
611
|
+
readonly isLoading: _angular_core.WritableSignal<boolean>;
|
|
612
|
+
readonly showNewTicketDialog: _angular_core.WritableSignal<boolean>;
|
|
613
|
+
readonly slug: string;
|
|
614
|
+
readonly config: _angular_core.Signal<libs_ncim_sdk_features_entry.TopicConfig>;
|
|
615
|
+
readonly titleKey: _angular_core.Signal<string>;
|
|
616
|
+
readonly videoSrc: _angular_core.Signal<string>;
|
|
617
|
+
readonly contentKey: _angular_core.Signal<string>;
|
|
618
|
+
readonly faqItems: _angular_core.Signal<AccordionItem[]>;
|
|
619
|
+
readonly relatedTopics: _angular_core.Signal<RelatedCardItem[]>;
|
|
620
|
+
readonly breadcrumbItems: _angular_core.Signal<BreadcrumbItem[]>;
|
|
621
|
+
readonly resources: ResourceItem[];
|
|
622
|
+
constructor();
|
|
623
|
+
onFeedback(value: 'yes' | 'no'): void;
|
|
624
|
+
onNewTicket(): void;
|
|
625
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KnowledgeCenterTopic, never>;
|
|
626
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KnowledgeCenterTopic, "ncim-knowledge-center-topic", never, {}, {}, never, never, true, never>;
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
declare const LANDING_CATEGORIES: KnowledgeCategory[];
|
|
630
|
+
declare const SUGGESTED_TAGS: KnowledgeSuggestedTag[];
|
|
631
|
+
declare const KNOWLEDGE_TOPICS: KnowledgeTopic[];
|
|
632
|
+
declare function getTopicsByCategory(categorySlug: string): KnowledgeTopic[];
|
|
633
|
+
declare const CATEGORY_TITLE_KEYS: Record<string, string>;
|
|
634
|
+
interface TopicConfig {
|
|
635
|
+
slug: string;
|
|
636
|
+
titleKey: string;
|
|
637
|
+
contentKey: string;
|
|
638
|
+
videoSrc: string;
|
|
639
|
+
faqItems: {
|
|
640
|
+
questionKey: string;
|
|
641
|
+
answerKey: string;
|
|
642
|
+
}[];
|
|
643
|
+
relatedSlugs: string[];
|
|
644
|
+
}
|
|
645
|
+
declare const TOPIC_CONFIGS: Record<string, TopicConfig>;
|
|
646
|
+
declare function getRelatedTopics(slug: string): {
|
|
647
|
+
titleKey: string;
|
|
648
|
+
descriptionKey: string;
|
|
649
|
+
thumbnailSrc: string;
|
|
650
|
+
route: string[];
|
|
651
|
+
}[];
|
|
652
|
+
|
|
653
|
+
type TicketStatus = 'resolved' | 'under_review' | 'in_progress';
|
|
654
|
+
interface SupportTicket extends Record<string, unknown> {
|
|
655
|
+
id: string;
|
|
656
|
+
number: string;
|
|
657
|
+
title: string;
|
|
658
|
+
description: string;
|
|
659
|
+
submitterName: string;
|
|
660
|
+
submitterRole: string;
|
|
661
|
+
/** Display date for list view (e.g. "22 نوفمبر 2023") */
|
|
662
|
+
date: string;
|
|
663
|
+
/** ISO date for submission (e.g. "2025-04-12") */
|
|
664
|
+
submissionDate?: string;
|
|
665
|
+
status: TicketStatus;
|
|
666
|
+
mainClassification: string;
|
|
667
|
+
subClassification: string;
|
|
668
|
+
idNumber: string;
|
|
669
|
+
phone: string;
|
|
670
|
+
attachments: TicketAttachment[];
|
|
671
|
+
responses: TicketResponse[];
|
|
672
|
+
updateLog: TicketUpdate[];
|
|
673
|
+
}
|
|
674
|
+
interface TicketAttachment {
|
|
675
|
+
name: string;
|
|
676
|
+
url: string;
|
|
677
|
+
}
|
|
678
|
+
interface TicketResponse {
|
|
679
|
+
responderName: string;
|
|
680
|
+
responderRole: string;
|
|
681
|
+
date: string;
|
|
682
|
+
message: string;
|
|
683
|
+
attachment?: TicketAttachment;
|
|
684
|
+
}
|
|
685
|
+
interface TicketUpdate {
|
|
686
|
+
message: string;
|
|
687
|
+
date: string;
|
|
688
|
+
}
|
|
689
|
+
interface NewTicketFormData {
|
|
690
|
+
title: string;
|
|
691
|
+
description: string;
|
|
692
|
+
mainClassification: string;
|
|
693
|
+
subClassification: string;
|
|
694
|
+
phone: string;
|
|
695
|
+
email: string;
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
declare class SupporterList {
|
|
699
|
+
private readonly router;
|
|
700
|
+
private readonly route;
|
|
701
|
+
readonly filterChange: _angular_core.OutputEmitterRef<any>;
|
|
702
|
+
readonly sortChange: _angular_core.OutputEmitterRef<GridSortEvent>;
|
|
703
|
+
readonly supportFilterConfig: {
|
|
704
|
+
columns: number;
|
|
705
|
+
debounceMs: number;
|
|
706
|
+
showReset: boolean;
|
|
707
|
+
showSubmit: boolean;
|
|
708
|
+
fields: ({
|
|
709
|
+
key: string;
|
|
710
|
+
type: "search";
|
|
711
|
+
placeholder: string;
|
|
712
|
+
icon: string;
|
|
713
|
+
iconPosition: "start";
|
|
714
|
+
options?: undefined;
|
|
715
|
+
} | {
|
|
716
|
+
key: string;
|
|
717
|
+
type: "date";
|
|
718
|
+
placeholder: string;
|
|
719
|
+
icon: string;
|
|
720
|
+
iconPosition: "start";
|
|
721
|
+
options?: undefined;
|
|
722
|
+
} | {
|
|
723
|
+
key: string;
|
|
724
|
+
type: "select";
|
|
725
|
+
placeholder: string;
|
|
726
|
+
icon: string;
|
|
727
|
+
iconPosition: "start";
|
|
728
|
+
options: {
|
|
729
|
+
value: string;
|
|
730
|
+
label: string;
|
|
731
|
+
}[];
|
|
732
|
+
})[];
|
|
733
|
+
};
|
|
734
|
+
/** Optional: override tickets from parent (e.g. mock service). When undefined, uses DEMO_TICKETS. */
|
|
735
|
+
readonly ticketsInput: _angular_core.InputSignal<SupportTicket[] | undefined>;
|
|
736
|
+
/** Optional: show loading skeleton. Default false. */
|
|
737
|
+
readonly loadingInput: _angular_core.InputSignal<boolean>;
|
|
738
|
+
/** Active sort field — restores sort arrow after a loading cycle. */
|
|
739
|
+
readonly sortFieldInput: _angular_core.InputSignal<string | undefined>;
|
|
740
|
+
/** Active sort direction — restores sort arrow after a loading cycle. */
|
|
741
|
+
readonly sortOrderInput: _angular_core.InputSignal<"desc" | "asc" | undefined>;
|
|
742
|
+
readonly showNewTicketDialog: _angular_core.WritableSignal<boolean>;
|
|
743
|
+
readonly searchQuery: _angular_core.WritableSignal<string>;
|
|
744
|
+
readonly tickets: _angular_core.Signal<SupportTicket[]>;
|
|
745
|
+
readonly filteredTickets: _angular_core.Signal<SupportTicket[]>;
|
|
746
|
+
readonly hasTickets: _angular_core.Signal<boolean>;
|
|
747
|
+
readonly breadcrumbItems: BreadcrumbItem[];
|
|
748
|
+
readonly columns: GridColumn<SupportTicket>[];
|
|
749
|
+
openNewTicket(): void;
|
|
750
|
+
onSearchInput(event: Event): void;
|
|
751
|
+
readonly rowDetailRoute: (row: SupportTicket) => string | null;
|
|
752
|
+
viewTicket(ticket: SupportTicket): void;
|
|
753
|
+
onFilterChange(values: any): void;
|
|
754
|
+
onSortChange(event: GridSortEvent): void;
|
|
755
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SupporterList, never>;
|
|
756
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SupporterList, "ncim-supporter-list", never, { "ticketsInput": { "alias": "ticketsInput"; "required": false; "isSignal": true; }; "loadingInput": { "alias": "loadingInput"; "required": false; "isSignal": true; }; "sortFieldInput": { "alias": "sortFieldInput"; "required": false; "isSignal": true; }; "sortOrderInput": { "alias": "sortOrderInput"; "required": false; "isSignal": true; }; }, { "filterChange": "filterChange"; "sortChange": "sortChange"; }, never, never, true, never>;
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
declare class SupporterDetail {
|
|
760
|
+
private readonly route;
|
|
761
|
+
private readonly router;
|
|
762
|
+
private readonly destroyRef;
|
|
763
|
+
/** Optional: override loading from parent (e.g. mock service). When undefined, uses internal timer. */
|
|
764
|
+
readonly loadingInput: _angular_core.InputSignal<boolean | undefined>;
|
|
765
|
+
/** Optional: override ticket from parent. undefined = use DEMO_TICKETS, null = not found. */
|
|
766
|
+
readonly ticketInput: _angular_core.InputSignal<SupportTicket | null | undefined>;
|
|
767
|
+
readonly internalLoading: _angular_core.WritableSignal<boolean>;
|
|
768
|
+
readonly ticketId: string;
|
|
769
|
+
constructor();
|
|
770
|
+
readonly isLoading: _angular_core.Signal<boolean>;
|
|
771
|
+
readonly ticket: _angular_core.Signal<SupportTicket | null>;
|
|
772
|
+
readonly notFound: _angular_core.Signal<boolean>;
|
|
773
|
+
readonly statusConfig: _angular_core.Signal<{
|
|
774
|
+
labelKey: string;
|
|
775
|
+
color: string;
|
|
776
|
+
} | null>;
|
|
777
|
+
readonly breadcrumbItems: _angular_core.Signal<BreadcrumbItem[]>;
|
|
778
|
+
readonly infoRows: _angular_core.Signal<{
|
|
779
|
+
label: string;
|
|
780
|
+
value: string;
|
|
781
|
+
pill: boolean;
|
|
782
|
+
}[]>;
|
|
783
|
+
readonly timelineData: _angular_core.Signal<TimelineData | null>;
|
|
784
|
+
goBack(): void;
|
|
785
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SupporterDetail, never>;
|
|
786
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SupporterDetail, "ncim-supporter-detail", never, { "loadingInput": { "alias": "loadingInput"; "required": false; "isSignal": true; }; "ticketInput": { "alias": "ticketInput"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
787
|
+
}
|
|
788
|
+
|
|
789
|
+
declare class NewTicketDialog {
|
|
790
|
+
private readonly fb;
|
|
791
|
+
private readonly destroyRef;
|
|
792
|
+
private readonly translate;
|
|
793
|
+
readonly visible: _angular_core.InputSignal<boolean>;
|
|
794
|
+
readonly visibleChange: _angular_core.OutputEmitterRef<boolean>;
|
|
795
|
+
readonly view: _angular_core.WritableSignal<"success" | "form">;
|
|
796
|
+
readonly attachedFiles: _angular_core.WritableSignal<File[]>;
|
|
797
|
+
readonly ticketNumber: _angular_core.WritableSignal<string>;
|
|
798
|
+
readonly submitted: _angular_core.WritableSignal<boolean>;
|
|
799
|
+
readonly copied: _angular_core.WritableSignal<boolean>;
|
|
800
|
+
private readonly _lang;
|
|
801
|
+
readonly classificationSelectOptions: _angular_core.Signal<SelectOption[]>;
|
|
802
|
+
readonly subClassificationSelectOptions: _angular_core.Signal<SelectOption[]>;
|
|
803
|
+
readonly form: _angular_forms.FormGroup<{
|
|
804
|
+
title: _angular_forms.FormControl<string>;
|
|
805
|
+
description: _angular_forms.FormControl<string>;
|
|
806
|
+
mainClassification: _angular_forms.FormControl<string>;
|
|
807
|
+
subClassification: _angular_forms.FormControl<string>;
|
|
808
|
+
phone: _angular_forms.FormControl<string>;
|
|
809
|
+
email: _angular_forms.FormControl<string>;
|
|
810
|
+
}>;
|
|
811
|
+
onSubmit(): void;
|
|
812
|
+
onSaveDraft(): void;
|
|
813
|
+
onCancel(): void;
|
|
814
|
+
onDone(): void;
|
|
815
|
+
copyTicketNumber(): Promise<void>;
|
|
816
|
+
private closeDialog;
|
|
817
|
+
onVisibleChange(val: boolean): void;
|
|
818
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NewTicketDialog, never>;
|
|
819
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NewTicketDialog, "ncim-new-ticket-dialog", never, { "visible": { "alias": "visible"; "required": false; "isSignal": true; }; }, { "visibleChange": "visibleChange"; }, never, never, true, never>;
|
|
820
|
+
}
|
|
821
|
+
|
|
822
|
+
/** Status config: labelKey for i18n, color for badge. */
|
|
823
|
+
declare const STATUS_CONFIG: Record<string, {
|
|
824
|
+
labelKey: string;
|
|
825
|
+
color: string;
|
|
826
|
+
}>;
|
|
827
|
+
/** Legacy STATUS_MAP for GridTable (uses labelKey - grid must translate). Kept for backward compat. */
|
|
828
|
+
declare const STATUS_MAP: Record<string, {
|
|
829
|
+
label: string;
|
|
830
|
+
color: string;
|
|
831
|
+
bgColor: string;
|
|
832
|
+
}>;
|
|
833
|
+
declare const DEMO_TICKETS: SupportTicket[];
|
|
834
|
+
declare const CLASSIFICATION_OPTIONS: {
|
|
835
|
+
value: string;
|
|
836
|
+
labelKey: string;
|
|
837
|
+
}[];
|
|
838
|
+
declare const SUB_CLASSIFICATION_OPTIONS: {
|
|
839
|
+
value: string;
|
|
840
|
+
labelKey: string;
|
|
841
|
+
}[];
|
|
842
|
+
declare function generateTicketNumber(): string;
|
|
843
|
+
|
|
844
|
+
interface ProfileField {
|
|
845
|
+
key: string;
|
|
846
|
+
labelKey: string;
|
|
847
|
+
value: string;
|
|
848
|
+
inputType: 'text' | 'password' | 'date' | 'phone' | 'number' | 'email';
|
|
849
|
+
}
|
|
850
|
+
/** Service for profile OTP verification. Provided by the host app. */
|
|
851
|
+
interface ProfileOtpService {
|
|
852
|
+
verifyOtp(code: string): Observable<unknown>;
|
|
853
|
+
resendOtp(): Observable<unknown>;
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
declare class ProfilePage {
|
|
857
|
+
private readonly translate;
|
|
858
|
+
private readonly destroyRef;
|
|
859
|
+
private readonly authService;
|
|
860
|
+
private readonly otpService;
|
|
861
|
+
readonly isLoading: _angular_core.WritableSignal<boolean>;
|
|
862
|
+
readonly editingField: _angular_core.WritableSignal<string | null>;
|
|
863
|
+
readonly isSsoUser: _angular_core.Signal<boolean>;
|
|
864
|
+
readonly breadcrumbs: BreadcrumbItem[];
|
|
865
|
+
private readonly otpForm;
|
|
866
|
+
readonly loading: _angular_core.WritableSignal<boolean>;
|
|
867
|
+
readonly resending: _angular_core.WritableSignal<boolean>;
|
|
868
|
+
readonly showOtpDialog: _angular_core.WritableSignal<boolean>;
|
|
869
|
+
/** Optional initial fields. When provided, overrides default. */
|
|
870
|
+
readonly initialFields: _angular_core.InputSignal<ProfileField[] | undefined>;
|
|
871
|
+
readonly fields: _angular_core.WritableSignal<ProfileField[]>;
|
|
872
|
+
constructor();
|
|
873
|
+
readonly editForm: FormRecord<FormControl<string>>;
|
|
874
|
+
readonly editSubmitted: _angular_core.WritableSignal<boolean>;
|
|
875
|
+
readonly heroName: _angular_core.Signal<string>;
|
|
876
|
+
private getValidatorsForField;
|
|
877
|
+
startEdit(key: string): void;
|
|
878
|
+
cancelEdit(): void;
|
|
879
|
+
onSaveClick(): void;
|
|
880
|
+
onFormSubmit(data: {
|
|
881
|
+
otp: string;
|
|
882
|
+
}): void;
|
|
883
|
+
closeDialog(): void;
|
|
884
|
+
onResendCode(): void;
|
|
885
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfilePage, never>;
|
|
886
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProfilePage, "ncim-profile-page", never, { "initialFields": { "alias": "initialFields"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
887
|
+
}
|
|
888
|
+
|
|
889
|
+
/** Provider token for profile OTP verification. Host app must provide an implementation. */
|
|
890
|
+
declare const PROFILE_OTP_SERVICE: InjectionToken<ProfileOtpService>;
|
|
891
|
+
|
|
892
|
+
/**
|
|
893
|
+
* Provides the full MOMRAH SSO / OIDC stack for any application.
|
|
894
|
+
*
|
|
895
|
+
* Usage in your app config:
|
|
896
|
+
* ```ts
|
|
897
|
+
* import { provideSso } from './ncim-sdk-features';
|
|
898
|
+
*
|
|
899
|
+
* export const appConfig: ApplicationConfig = {
|
|
900
|
+
* providers: [
|
|
901
|
+
* provideSso(),
|
|
902
|
+
* // ... other providers
|
|
903
|
+
* ],
|
|
904
|
+
* };
|
|
905
|
+
* ```
|
|
906
|
+
*
|
|
907
|
+
* This bundles:
|
|
908
|
+
* - `provideOAuthClient()` — registers angular-oauth2-oidc services
|
|
909
|
+
* - `OAuthStorage → localStorage` — persists OIDC tokens across tabs and
|
|
910
|
+
* browser restarts (default is sessionStorage which loses tokens on close)
|
|
911
|
+
* - `APP_INITIALIZER` — calls `OidcAuthService.initialize()` at startup to
|
|
912
|
+
* process any SSO redirect callback before any component renders.
|
|
913
|
+
*/
|
|
914
|
+
declare function provideSso(): EnvironmentProviders;
|
|
915
|
+
|
|
916
|
+
/** Route data keys for SSO pages. */
|
|
917
|
+
declare const SSO_ROUTE_DATA: {
|
|
918
|
+
readonly CALLBACK_TITLE: "AUTH.SSO.REDIRECTING";
|
|
919
|
+
readonly ERROR_TITLE: "AUTH.SSO.ERROR.TITLE";
|
|
920
|
+
};
|
|
921
|
+
/**
|
|
922
|
+
* SSO callback route — no guards, must be accessible before authentication.
|
|
923
|
+
* Callback URL is processed by APP_INITIALIZER (provideSso) before this component loads.
|
|
924
|
+
*/
|
|
925
|
+
declare function ssoCallbackRoute(): Route;
|
|
926
|
+
/**
|
|
927
|
+
* SSO error route — displays error=access_denied and similar SSO server errors.
|
|
928
|
+
* No guards — accessible without authentication.
|
|
929
|
+
*/
|
|
930
|
+
declare function ssoErrorRoute(): Route;
|
|
931
|
+
/** Convenience array of all SSO routes. Use: routes: [...ssoRoutes] */
|
|
932
|
+
declare const ssoRoutes: Route[];
|
|
933
|
+
|
|
934
|
+
/** 403 Forbidden — user is authenticated but lacks permission for this resource. */
|
|
935
|
+
declare class Error403 {
|
|
936
|
+
private readonly router;
|
|
937
|
+
protected goHome(): void;
|
|
938
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Error403, never>;
|
|
939
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Error403, "ncim-error-403", never, {}, {}, never, never, true, never>;
|
|
940
|
+
}
|
|
941
|
+
|
|
942
|
+
/** 404 Not Found — the requested page does not exist. */
|
|
943
|
+
declare class Error404 {
|
|
944
|
+
private readonly router;
|
|
945
|
+
protected goHome(): void;
|
|
946
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Error404, never>;
|
|
947
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Error404, "ncim-error-404", never, {}, {}, never, never, true, never>;
|
|
948
|
+
}
|
|
949
|
+
|
|
950
|
+
/** 500 Internal Server Error — unexpected server failure. */
|
|
951
|
+
declare class Error500 {
|
|
952
|
+
private readonly location;
|
|
953
|
+
protected retry(): void;
|
|
954
|
+
protected goBack(): void;
|
|
955
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Error500, never>;
|
|
956
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Error500, "ncim-error-500", never, {}, {}, never, never, true, never>;
|
|
957
|
+
}
|
|
958
|
+
|
|
959
|
+
/** 503 Service Unavailable — server is temporarily down or overloaded. */
|
|
960
|
+
declare class Error503 {
|
|
961
|
+
private readonly location;
|
|
962
|
+
protected retry(): void;
|
|
963
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Error503, never>;
|
|
964
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Error503, "ncim-error-503", never, {}, {}, never, never, true, never>;
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
/** Maintenance page — system is down for scheduled maintenance. */
|
|
968
|
+
declare class ErrorMaintenance {
|
|
969
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ErrorMaintenance, never>;
|
|
970
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ErrorMaintenance, "ncim-error-maintenance", never, {}, {}, never, never, true, never>;
|
|
971
|
+
}
|
|
972
|
+
|
|
973
|
+
/** Timeout page — request exceeded the allowed duration. */
|
|
974
|
+
declare class ErrorTimeout {
|
|
975
|
+
private readonly location;
|
|
976
|
+
protected retry(): void;
|
|
977
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ErrorTimeout, never>;
|
|
978
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ErrorTimeout, "ncim-error-timeout", never, {}, {}, never, never, true, never>;
|
|
979
|
+
}
|
|
980
|
+
|
|
981
|
+
/** No Role — user is authenticated but has no role or permission assigned. */
|
|
982
|
+
declare class ErrorNoRole {
|
|
983
|
+
private readonly auth;
|
|
984
|
+
private readonly router;
|
|
985
|
+
protected logout(): void;
|
|
986
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ErrorNoRole, never>;
|
|
987
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ErrorNoRole, "ncim-error-no-role", never, {}, {}, never, never, true, never>;
|
|
988
|
+
}
|
|
989
|
+
|
|
990
|
+
/** Route data title keys for error/status pages. */
|
|
991
|
+
declare const ERROR_ROUTE_DATA: {
|
|
992
|
+
readonly FORBIDDEN_TITLE: "STATUS_PAGES.403.TITLE";
|
|
993
|
+
readonly NOT_FOUND_TITLE: "STATUS_PAGES.404.TITLE";
|
|
994
|
+
readonly SERVER_ERROR_TITLE: "STATUS_PAGES.500.TITLE";
|
|
995
|
+
readonly SERVICE_UNAVAILABLE_TITLE: "STATUS_PAGES.503.TITLE";
|
|
996
|
+
readonly MAINTENANCE_TITLE: "STATUS_PAGES.MAINTENANCE.TITLE";
|
|
997
|
+
readonly TIMEOUT_TITLE: "STATUS_PAGES.TIMEOUT.TITLE";
|
|
998
|
+
readonly NO_ROLE_TITLE: "STATUS_PAGES.NO_ROLE.TITLE";
|
|
999
|
+
};
|
|
1000
|
+
/** 403 Forbidden — user is authenticated but lacks permission. */
|
|
1001
|
+
declare function forbiddenRoute(): Route;
|
|
1002
|
+
/** 404 Not Found — the requested page does not exist. */
|
|
1003
|
+
declare function notFoundRoute(): Route;
|
|
1004
|
+
/** 500 Internal Server Error — unexpected server failure. */
|
|
1005
|
+
declare function serverErrorRoute(): Route;
|
|
1006
|
+
/** 503 Service Unavailable — server is temporarily down or overloaded. */
|
|
1007
|
+
declare function serviceUnavailableRoute(): Route;
|
|
1008
|
+
/** Maintenance page — system is down for scheduled maintenance. */
|
|
1009
|
+
declare function maintenanceRoute(): Route;
|
|
1010
|
+
/** Timeout page — request exceeded the allowed duration. */
|
|
1011
|
+
declare function timeoutRoute(): Route;
|
|
1012
|
+
/** No Role — user is authenticated but has no role or permission assigned. */
|
|
1013
|
+
declare function noRoleRoute(): Route;
|
|
1014
|
+
/** Convenience array of all error/status routes. Use: routes: [...errorRoutes()] */
|
|
1015
|
+
declare function errorRoutes(): Route[];
|
|
1016
|
+
|
|
1017
|
+
export { AuthBackLink, AuthHeader, AuthLink, CATEGORY_TITLE_KEYS, CLASSIFICATION_OPTIONS, DEMO_TICKETS, ERROR_ROUTE_DATA, Error403, Error404, Error500, Error503, ErrorMaintenance, ErrorNoRole, ErrorTimeout, ForgotPasswordForm, KNOWLEDGE_TOPICS, KnowledgeCenterBrowseSection, KnowledgeCenterCategory, KnowledgeCenterLanding, KnowledgeCenterSearchSection, KnowledgeCenterSupportSection, KnowledgeCenterTopic, KnowledgeCenterWelcomeSection, LANDING_CATEGORIES, LoginForm, LoginHeader, NewTicketDialog, OtpVerificationForm, PROFILE_OTP_SERVICE, ProfilePage, RegistrationSuccessView, ResetPasswordForm, SSO_ROUTE_DATA, STATUS_CONFIG, STATUS_MAP, SUB_CLASSIFICATION_OPTIONS, SUGGESTED_TAGS, SsoLoginButton, StepAccountVerification, StepEntityDetails, StepEntityType, StepInspectionDetails, StepPackageSelection, StepResponsibleUser, StepSessionScheduling, SupporterDetail, SupporterList, TOPIC_CONFIGS, errorRoutes, forbiddenRoute, generateTicketNumber, getRelatedTopics, getTopicsByCategory, maintenanceRoute, noRoleRoute, notFoundRoute, provideSso, serverErrorRoute, serviceUnavailableRoute, ssoCallbackRoute, ssoErrorRoute, ssoRoutes, timeoutRoute };
|
|
1018
|
+
export type { AccountVerificationForm, EntityDetailsForm, ForgotPasswordFormData, InspectionDetailsForm, KnowledgeCategory, KnowledgeSuggestedTag, KnowledgeTopic, LoginFormData, NewTicketFormData, OtpVerificationFormData, PackageSelectionForm, ProfileField, ProfileOtpService, RegistrationData, RegistrationSummary, ResetPasswordFormData, ResponsibleUserForm, SessionSchedulingForm, StepComponent, SummaryItem, SupportTicket, TicketAttachment, TicketResponse, TicketStatus, TicketUpdate, TopicConfig };
|