@moatamed-sce/ui-components 0.1.0 → 0.1.2
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.
|
@@ -4,7 +4,7 @@ import * as _angular_forms from '@angular/forms';
|
|
|
4
4
|
import { ControlValueAccessor, ValidatorFn, FormGroup, FormControl, NonNullableFormBuilder, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
|
|
5
5
|
import * as _moatamed_sce_ui_components from '@moatamed-sce/ui-components';
|
|
6
6
|
import * as _moatamed_sce_core from '@moatamed-sce/core';
|
|
7
|
-
import { ModalService, LanguageService, OrganizationServiceProviderStatus, AppTheme, BirthDateCalendar, InputType, DataRequestReviewStatus, LookupDetailDto, ExportPdfOptions } from '@moatamed-sce/core';
|
|
7
|
+
import { ModalService, LanguageService, OrganizationServiceProviderStatus, AppTheme, BirthDateCalendar, InputType, SceLibraryAccessDenialReason, DataRequestReviewStatus, LookupDetailDto, ExportPdfOptions } from '@moatamed-sce/core';
|
|
8
8
|
import { SafeHtml, SafeResourceUrl } from '@angular/platform-browser';
|
|
9
9
|
import { Popover } from 'primeng/popover';
|
|
10
10
|
import { ImageTransform, ImageCroppedEvent } from 'ngx-image-cropper';
|
|
@@ -16,12 +16,14 @@ import { ToastPositionType } from 'primeng/toast';
|
|
|
16
16
|
import { TranslateService } from '@ngx-translate/core';
|
|
17
17
|
import { DynamicDialogRef } from 'primeng/dynamicdialog';
|
|
18
18
|
|
|
19
|
+
/** One selectable card in `sce-card-radio-group`, with an optional `icon` and `description` line. */
|
|
19
20
|
interface CardRadioOption {
|
|
20
21
|
value: string;
|
|
21
22
|
label: string;
|
|
22
23
|
description?: string;
|
|
23
24
|
icon?: string;
|
|
24
25
|
}
|
|
26
|
+
/** Radio group that renders each option as a selectable card with an optional icon and description; unlike the other sce field components it is a ControlValueAccessor, so it accepts `formControlName`. */
|
|
25
27
|
declare class SceCardRadioGroupComponent implements ControlValueAccessor {
|
|
26
28
|
readonly options: _angular_core.InputSignal<CardRadioOption[]>;
|
|
27
29
|
readonly label: _angular_core.InputSignal<string>;
|
|
@@ -45,6 +47,7 @@ declare class SceCardRadioGroupComponent implements ControlValueAccessor {
|
|
|
45
47
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceCardRadioGroupComponent, "sce-card-radio-group", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
46
48
|
}
|
|
47
49
|
|
|
50
|
+
/** Shared form-field wrapper that renders the label, required marker, projected control, help text and error message for the other sce field components; `id` and `label` are required. */
|
|
48
51
|
declare class SceFieldComponent {
|
|
49
52
|
readonly id: _angular_core.InputSignal<string>;
|
|
50
53
|
readonly label: _angular_core.InputSignal<string>;
|
|
@@ -82,6 +85,7 @@ interface SceFieldValidationMessages {
|
|
|
82
85
|
type SceTextFieldPrefixMode = 'absolute' | 'inline';
|
|
83
86
|
/** @see SceFieldValidationMode — kept as the published name for this field. */
|
|
84
87
|
type SceTextFieldValidationMode = SceFieldValidationMode;
|
|
88
|
+
/** Single-line text form field built on PrimeNG InputText, with a shared validation engine and an optional inline or absolute prefix; validation is opt-in, since `validationMode` defaults to `'never'`. */
|
|
85
89
|
declare class SceTextFieldComponent {
|
|
86
90
|
private readonly mirrorLabelAsPlaceholder;
|
|
87
91
|
readonly id: _angular_core.InputSignal<string>;
|
|
@@ -128,6 +132,7 @@ declare class SceTextFieldComponent {
|
|
|
128
132
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceTextFieldComponent, "sce-text-field", never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "helpText": { "alias": "helpText"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "inputClassName": { "alias": "inputClassName"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "listId": { "alias": "listId"; "required": false; "isSignal": true; }; "validationMode": { "alias": "validationMode"; "required": false; "isSignal": true; }; "validationMessages": { "alias": "validationMessages"; "required": false; "isSignal": true; }; "pattern": { "alias": "pattern"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "validate": { "alias": "validate"; "required": false; "isSignal": true; }; "prefix": { "alias": "prefix"; "required": false; "isSignal": true; }; "prefixMode": { "alias": "prefixMode"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "focused": "focused"; "blurred": "blurred"; }, never, never, true, never>;
|
|
129
133
|
}
|
|
130
134
|
|
|
135
|
+
/** Multi-line textarea form field built on PrimeNG Textarea with the shared validation engine; validation is opt-in, since `validationMode` defaults to `'never'`. */
|
|
131
136
|
declare class SceTextareaFieldComponent {
|
|
132
137
|
private readonly mirrorLabelAsPlaceholder;
|
|
133
138
|
readonly id: _angular_core.InputSignal<string>;
|
|
@@ -164,6 +169,7 @@ declare class SceTextareaFieldComponent {
|
|
|
164
169
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceTextareaFieldComponent, "sce-textarea-field", never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "helpText": { "alias": "helpText"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "inputClassName": { "alias": "inputClassName"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "validationMode": { "alias": "validationMode"; "required": false; "isSignal": true; }; "validationMessages": { "alias": "validationMessages"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "pattern": { "alias": "pattern"; "required": false; "isSignal": true; }; "validate": { "alias": "validate"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "blurred": "blurred"; }, never, never, true, never>;
|
|
165
170
|
}
|
|
166
171
|
|
|
172
|
+
/** Password form field built on PrimeNG Password with a reveal toggle enabled by default and an optional strength-feedback panel; `id` and `label` are required. */
|
|
167
173
|
declare class ScePasswordFieldComponent {
|
|
168
174
|
readonly id: _angular_core.InputSignal<string>;
|
|
169
175
|
readonly label: _angular_core.InputSignal<string>;
|
|
@@ -200,11 +206,13 @@ declare class ScePasswordFieldComponent {
|
|
|
200
206
|
* - `'never'` — never show built-in errors (rely on external `error` input)
|
|
201
207
|
*/
|
|
202
208
|
type SceSelectValidationMode = 'onChange' | 'onBlur' | 'onTouched' | 'always' | 'touched' | 'never';
|
|
209
|
+
/** One choice in `sce-select-field` and `sce-multi-select-field`, generic over the value type (defaults to `string`) and individually disableable. */
|
|
203
210
|
interface SceSelectOption<V extends string | number = string> {
|
|
204
211
|
label: string;
|
|
205
212
|
value: V;
|
|
206
213
|
disabled?: boolean;
|
|
207
214
|
}
|
|
215
|
+
/** Single-select form field built on PrimeNG Select with a built-in validation engine that shows errors once the control is touched; when no placeholder is given it falls back to the label if the `SCE_MIRROR_LABEL_AS_PLACEHOLDER` token is provided. */
|
|
208
216
|
declare class SceSelectFieldComponent {
|
|
209
217
|
private readonly mirrorLabelAsPlaceholder;
|
|
210
218
|
readonly id: _angular_core.InputSignal<string>;
|
|
@@ -260,6 +268,7 @@ interface SceMultiSelectValidationMessages {
|
|
|
260
268
|
minSelected?: (min: number) => string;
|
|
261
269
|
maxSelected?: (max: number) => string;
|
|
262
270
|
}
|
|
271
|
+
/** Multi-select form field built on PrimeNG MultiSelect with a built-in required/min/max validation engine and an optional footer for adding new options; `id` and `label` are required. */
|
|
263
272
|
declare class SceMultiSelectFieldComponent {
|
|
264
273
|
readonly id: _angular_core.InputSignal<string>;
|
|
265
274
|
readonly label: _angular_core.InputSignal<string>;
|
|
@@ -308,6 +317,7 @@ declare class SceMultiSelectFieldComponent {
|
|
|
308
317
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceMultiSelectFieldComponent, "sce-multi-select-field", never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "helpText": { "alias": "helpText"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "filterPlaceholder": { "alias": "filterPlaceholder"; "required": false; "isSignal": true; }; "showClear": { "alias": "showClear"; "required": false; "isSignal": true; }; "display": { "alias": "display"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "panelClassName": { "alias": "panelClassName"; "required": false; "isSignal": true; }; "inputClassName": { "alias": "inputClassName"; "required": false; "isSignal": true; }; "fieldClassName": { "alias": "fieldClassName"; "required": false; "isSignal": true; }; "labelClassName": { "alias": "labelClassName"; "required": false; "isSignal": true; }; "containerClassName": { "alias": "containerClassName"; "required": false; "isSignal": true; }; "minSelected": { "alias": "minSelected"; "required": false; "isSignal": true; }; "maxSelected": { "alias": "maxSelected"; "required": false; "isSignal": true; }; "validationMode": { "alias": "validationMode"; "required": false; "isSignal": true; }; "validationMessages": { "alias": "validationMessages"; "required": false; "isSignal": true; }; "validate": { "alias": "validate"; "required": false; "isSignal": true; }; "selectedItemsLabel": { "alias": "selectedItemsLabel"; "required": false; "isSignal": true; }; "allowAdd": { "alias": "allowAdd"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "addOption": "addOption"; }, never, never, true, never>;
|
|
309
318
|
}
|
|
310
319
|
|
|
320
|
+
/** Toggle switch built on PrimeNG ToggleSwitch, with optional active/inactive labels that fall back to translated defaults. */
|
|
311
321
|
declare class SceSwitchComponent {
|
|
312
322
|
private readonly translate;
|
|
313
323
|
readonly checked: _angular_core.InputSignal<boolean>;
|
|
@@ -322,6 +332,7 @@ declare class SceSwitchComponent {
|
|
|
322
332
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceSwitchComponent, "sce-switch", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "showLabel": { "alias": "showLabel"; "required": false; "isSignal": true; }; "activeLabel": { "alias": "activeLabel"; "required": false; "isSignal": true; }; "inactiveLabel": { "alias": "inactiveLabel"; "required": false; "isSignal": true; }; }, { "checkedChange": "checkedChange"; }, never, never, true, never>;
|
|
323
333
|
}
|
|
324
334
|
|
|
335
|
+
/** Five-star rating input with hover preview, arrow-key adjustment and an optional error message, emitting the selected score. */
|
|
325
336
|
declare class SceStarRatingInputComponent {
|
|
326
337
|
readonly value: _angular_core.InputSignal<number>;
|
|
327
338
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
@@ -338,6 +349,7 @@ declare class SceStarRatingInputComponent {
|
|
|
338
349
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceStarRatingInputComponent, "sce-star-rating-input", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
339
350
|
}
|
|
340
351
|
|
|
352
|
+
/** Currency amount field wrapped in `sce-field` that sanitizes typed text to a non-negative decimal and emits the parsed number, or `null` when cleared; `id` and `label` are required. */
|
|
341
353
|
declare class SceCurrencyInputComponent {
|
|
342
354
|
readonly id: _angular_core.InputSignal<string>;
|
|
343
355
|
readonly label: _angular_core.InputSignal<string>;
|
|
@@ -359,6 +371,7 @@ declare class SceCurrencyInputComponent {
|
|
|
359
371
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceCurrencyInputComponent, "sce-currency-input", never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "helpText": { "alias": "helpText"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
360
372
|
}
|
|
361
373
|
|
|
374
|
+
/** Unlabelled numeric input with a trailing unit suffix that sanitizes typed text to a non-negative number and emits the sanitized string. */
|
|
362
375
|
declare class SceUnitInputComponent {
|
|
363
376
|
readonly value: _angular_core.InputSignal<string | number | null>;
|
|
364
377
|
readonly unit: _angular_core.InputSignal<string>;
|
|
@@ -385,6 +398,7 @@ declare class SceUnitInputComponent {
|
|
|
385
398
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceUnitInputComponent, "sce-unit-input", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "unit": { "alias": "unit"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "inputMode": { "alias": "inputMode"; "required": false; "isSignal": true; }; "allowDecimal": { "alias": "allowDecimal"; "required": false; "isSignal": true; }; "inputClassName": { "alias": "inputClassName"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "focused": "focused"; }, never, never, true, never>;
|
|
386
399
|
}
|
|
387
400
|
|
|
401
|
+
/** Labelled numeric field with a trailing unit suffix that defaults to the translated square-metre unit; `id` and `label` are required. */
|
|
388
402
|
declare class SceUnitInputFieldComponent {
|
|
389
403
|
private readonly translate;
|
|
390
404
|
readonly id: _angular_core.InputSignal<string>;
|
|
@@ -402,12 +416,16 @@ declare class SceUnitInputFieldComponent {
|
|
|
402
416
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceUnitInputFieldComponent, "sce-unit-input-field", never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "unitInput": { "alias": "unitInput"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "helpText": { "alias": "helpText"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "allowDecimal": { "alias": "allowDecimal"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
403
417
|
}
|
|
404
418
|
|
|
419
|
+
/** A date-field range as two `YYYY-MM-DD` strings in the active calendar system; an unset end is the empty string, not `null`. */
|
|
405
420
|
interface DateRangeValue {
|
|
406
421
|
from: string;
|
|
407
422
|
to: string;
|
|
408
423
|
}
|
|
424
|
+
/** Calendar system a date field runs in; `'georgian'` is a tolerated misspelling that normalizes to `'gregorian'`. */
|
|
409
425
|
type CalendarSystem = 'hijri' | 'gregorian' | 'georgian';
|
|
426
|
+
/** Whether a date field captures one date or a from/to range. */
|
|
410
427
|
type SelectionMode = 'single' | 'range';
|
|
428
|
+
/** The two locales the date utilities format for, driving month names and the first day of the week (Saturday for `ar`). */
|
|
411
429
|
type AppDateLocale = 'ar' | 'en';
|
|
412
430
|
interface CalendarDay {
|
|
413
431
|
date: Date;
|
|
@@ -415,6 +433,7 @@ interface CalendarDay {
|
|
|
415
433
|
labelDay: number;
|
|
416
434
|
value: string;
|
|
417
435
|
}
|
|
436
|
+
/** One month's rendered calendar: the day cells (including leading/trailing days from adjacent months) plus the localized weekday headers. */
|
|
418
437
|
interface CalendarGrid {
|
|
419
438
|
days: CalendarDay[];
|
|
420
439
|
weekdays: string[];
|
|
@@ -424,17 +443,24 @@ interface HijriYmd {
|
|
|
424
443
|
month: number;
|
|
425
444
|
day: number;
|
|
426
445
|
}
|
|
446
|
+
/** Steps a `Date` forward or back by `delta` Hijri months by walking day-by-day across Umm al-Qura month boundaries. */
|
|
427
447
|
declare function addHijriMonths(anchor: Date, delta: number): Date;
|
|
448
|
+
/** Formats a `Date` as its Umm al-Qura Hijri `YYYY-MM-DD` string. */
|
|
428
449
|
declare function toHijriValue(date: Date): string;
|
|
450
|
+
/** Formats a `Date` as its local-time Gregorian `YYYY-MM-DD` string. */
|
|
429
451
|
declare function toGregorianValue(date: Date): string;
|
|
452
|
+
/** Parses a `YYYY-MM-DD` string in the given calendar system back to a `Date`, returning `null` if it is malformed or (for Hijri) has no Gregorian match in the scanned window. */
|
|
430
453
|
declare function parseValueToDate(value: string, system: 'hijri' | 'gregorian'): Date | null;
|
|
454
|
+
/** Builds the six-week day grid around `anchor` for the given calendar system and locale, along with the anchor month's index and year number. */
|
|
431
455
|
declare function buildCalendarGrid(anchor: Date, system: 'hijri' | 'gregorian', locale: AppDateLocale): {
|
|
432
456
|
grid: CalendarGrid;
|
|
433
457
|
currentMonthIndex: number;
|
|
434
458
|
currentYearNumber: number;
|
|
435
459
|
};
|
|
460
|
+
/** Returns the Umm al-Qura Hijri year, month, and day numbers for a `Date`. */
|
|
436
461
|
declare function getHijriYmdFromDate(date: Date): HijriYmd;
|
|
437
462
|
|
|
463
|
+
/** Date field that pairs a text input with a modal calendar supporting both Hijri and Gregorian systems and single or range selection; it defaults to the Hijri calendar and locks body scroll while the calendar is open. */
|
|
438
464
|
declare class SceDateFieldComponent {
|
|
439
465
|
private doc;
|
|
440
466
|
readonly id: _angular_core.InputSignal<string>;
|
|
@@ -499,6 +525,7 @@ declare class SceDateFieldComponent {
|
|
|
499
525
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceDateFieldComponent, "sce-date-field", never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "calendarSystem": { "alias": "calendarSystem"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "showToggleDate": { "alias": "showToggleDate"; "required": false; "isSignal": true; }; "hijriOnly": { "alias": "hijriOnly"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "showIcon": { "alias": "showIcon"; "required": false; "isSignal": true; }; "displayFormat": { "alias": "displayFormat"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "hideLabel": { "alias": "hideLabel"; "required": false; "isSignal": true; }; "listId": { "alias": "listId"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
|
|
500
526
|
}
|
|
501
527
|
|
|
528
|
+
/** Fully-controlled modal calendar used by `sce-date-field`, rendering the day grid plus month and year pickers and emitting every navigation and selection as an output; `locale` and `grid` are required. */
|
|
502
529
|
declare class SceDatePickerModalComponent {
|
|
503
530
|
readonly open: _angular_core.InputSignal<boolean>;
|
|
504
531
|
readonly locale: _angular_core.InputSignal<AppDateLocale>;
|
|
@@ -555,6 +582,7 @@ declare class SceDatePickerModalComponent {
|
|
|
555
582
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceDatePickerModalComponent, "sce-date-picker-modal", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": true; "isSignal": true; }; "system": { "alias": "system"; "required": false; "isSignal": true; }; "showToggle": { "alias": "showToggle"; "required": false; "isSignal": true; }; "hijriOnly": { "alias": "hijriOnly"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "draftSingle": { "alias": "draftSingle"; "required": false; "isSignal": true; }; "draftRange": { "alias": "draftRange"; "required": false; "isSignal": true; }; "hoveredDay": { "alias": "hoveredDay"; "required": false; "isSignal": true; }; "anchor": { "alias": "anchor"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "canShowToday": { "alias": "canShowToday"; "required": false; "isSignal": true; }; "grid": { "alias": "grid"; "required": true; "isSignal": true; }; "currentMonthIndex": { "alias": "currentMonthIndex"; "required": false; "isSignal": true; }; "currentYearNumber": { "alias": "currentYearNumber"; "required": false; "isSignal": true; }; "yearRange": { "alias": "yearRange"; "required": false; "isSignal": true; }; "yearPageStart": { "alias": "yearPageStart"; "required": false; "isSignal": true; }; "showMonthPicker": { "alias": "showMonthPicker"; "required": false; "isSignal": true; }; "showYearPicker": { "alias": "showYearPicker"; "required": false; "isSignal": true; }; }, { "systemChange": "systemChange"; "showMonthPickerChange": "showMonthPickerChange"; "showYearPickerChange": "showYearPickerChange"; "movePrev": "movePrev"; "moveNext": "moveNext"; "selectDay": "selectDay"; "hoverDay": "hoverDay"; "clearHoverDay": "clearHoverDay"; "selectMonth": "selectMonth"; "selectYear": "selectYear"; "yearPagePrev": "yearPagePrev"; "yearPageNext": "yearPageNext"; "today": "today"; "cancel": "cancel"; "confirm": "confirm"; "backdropClick": "backdropClick"; }, never, never, true, never>;
|
|
556
583
|
}
|
|
557
584
|
|
|
585
|
+
/** Page-number paginator with an ellipsis window and a page-size select; it is stateless (`page`, `pageSize`, `totalItems` are required inputs) and derives direction from `locale` unless `dir` is set — note it uses `ViewEncapsulation.None`. */
|
|
558
586
|
declare class ScePaginatorComponent {
|
|
559
587
|
page: _angular_core.InputSignal<number>;
|
|
560
588
|
pageSize: _angular_core.InputSignal<number>;
|
|
@@ -581,6 +609,7 @@ declare class ScePaginatorComponent {
|
|
|
581
609
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ScePaginatorComponent, "sce-paginator", never, { "page": { "alias": "page"; "required": true; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": true; "isSignal": true; }; "totalItems": { "alias": "totalItems"; "required": true; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "showLabel": { "alias": "showLabel"; "required": false; "isSignal": true; }; "numberFormatter": { "alias": "numberFormatter"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; "pageSizeChange": "pageSizeChange"; }, never, never, true, never>;
|
|
582
610
|
}
|
|
583
611
|
|
|
612
|
+
/** Design-system demo harness that wires `sce-paginator` to local page state; not for production pages. */
|
|
584
613
|
declare class ScePaginatorDemoComponent {
|
|
585
614
|
readonly totalRecords: _angular_core.InputSignal<number>;
|
|
586
615
|
readonly locale: _angular_core.InputSignal<"ar" | "en">;
|
|
@@ -592,7 +621,9 @@ declare class ScePaginatorDemoComponent {
|
|
|
592
621
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ScePaginatorDemoComponent, "sce-paginator-demo", never, { "totalRecords": { "alias": "totalRecords"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
593
622
|
}
|
|
594
623
|
|
|
624
|
+
/** Width preset shared by every dialog built on `sce-dialog-shell`. */
|
|
595
625
|
type DialogSize = 'sm' | 'md' | 'lg' | 'xl';
|
|
626
|
+
/** Shared PrimeNG-Dialog shell that every sce dialog builds on, providing the sticky header, close button, projected body and footer and the size presets; setting `locked` blocks both Escape and mask dismissal. */
|
|
596
627
|
declare class SceDialogShellComponent {
|
|
597
628
|
/** Controls dialog visibility. */
|
|
598
629
|
visible: _angular_core.InputSignal<boolean>;
|
|
@@ -641,6 +672,7 @@ declare class SceDialogShellComponent {
|
|
|
641
672
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceDialogShellComponent, "sce-dialog-shell", never, { "visible": { "alias": "visible"; "required": true; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "centerHeader": { "alias": "centerHeader"; "required": false; "isSignal": true; }; "showCloseButton": { "alias": "showCloseButton"; "required": false; "isSignal": true; }; "locked": { "alias": "locked"; "required": false; "isSignal": true; }; "dismissableMask": { "alias": "dismissableMask"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "style": { "alias": "style"; "required": false; "isSignal": true; }; "compactBody": { "alias": "compactBody"; "required": false; "isSignal": true; }; "closeAriaLabel": { "alias": "closeAriaLabel"; "required": false; "isSignal": true; }; "hasBody": { "alias": "hasBody"; "required": false; "isSignal": true; }; "hasFooter": { "alias": "hasFooter"; "required": false; "isSignal": true; }; }, { "close": "close"; }, never, ["*", "[dialogFooter]"], true, never>;
|
|
642
673
|
}
|
|
643
674
|
|
|
675
|
+
/** Design-system demo host that shows `sce-dialog-shell` and reports its visibility back through `visibleChange`. */
|
|
644
676
|
declare class SceDialogShellDemoComponent implements OnInit {
|
|
645
677
|
readonly visible: _angular_core.InputSignal<boolean>;
|
|
646
678
|
readonly visibleChange: _angular_core.OutputEmitterRef<boolean>;
|
|
@@ -651,7 +683,9 @@ declare class SceDialogShellDemoComponent implements OnInit {
|
|
|
651
683
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceDialogShellDemoComponent, "sce-dialog-shell-demo", never, { "visible": { "alias": "visible"; "required": false; "isSignal": true; }; }, { "visibleChange": "visibleChange"; }, never, never, true, never>;
|
|
652
684
|
}
|
|
653
685
|
|
|
686
|
+
/** Tone of a confirm dialog, selecting both its header icon and the severity of its confirm button. */
|
|
654
687
|
type ConfirmDialogVariant = 'primary' | 'danger' | 'success' | 'warning' | 'info';
|
|
688
|
+
/** Configuration for the optional reason input a confirm dialog can collect before confirming — set `multiline` for a textarea and `required` to block confirmation until it is filled. */
|
|
655
689
|
interface ConfirmReasonField {
|
|
656
690
|
label: string;
|
|
657
691
|
placeholder?: string;
|
|
@@ -663,6 +697,7 @@ interface ConfirmReasonField {
|
|
|
663
697
|
maxLength?: number;
|
|
664
698
|
rows?: number;
|
|
665
699
|
}
|
|
700
|
+
/** Confirmation dialog built on `sce-dialog-shell` with per-variant icon and button styling and an optional reason field; supplying `onConfirmHandler` makes it await the async handler and lock the buttons, mask and Escape while pending. */
|
|
666
701
|
declare class SceConfirmDialogComponent {
|
|
667
702
|
private readonly translate;
|
|
668
703
|
visible: _angular_core.InputSignal<boolean>;
|
|
@@ -720,6 +755,7 @@ declare class SceConfirmDialogComponent {
|
|
|
720
755
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceConfirmDialogComponent, "sce-confirm-dialog", never, { "visible": { "alias": "visible"; "required": true; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "confirmLabel": { "alias": "confirmLabel"; "required": false; "isSignal": true; }; "cancelLabel": { "alias": "cancelLabel"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "confirmDisabled": { "alias": "confirmDisabled"; "required": false; "isSignal": true; }; "cancelDisabled": { "alias": "cancelDisabled"; "required": false; "isSignal": true; }; "hideCancelButton": { "alias": "hideCancelButton"; "required": false; "isSignal": true; }; "field": { "alias": "field"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "centerHeader": { "alias": "centerHeader"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "hasBodySlot": { "alias": "hasBodySlot"; "required": false; "isSignal": true; }; "onConfirmHandler": { "alias": "onConfirmHandler"; "required": false; "isSignal": true; }; }, { "close": "close"; "cancel": "cancel"; "confirm": "confirm"; }, never, ["[confirmIcon]", "[confirmBody]"], true, never>;
|
|
721
756
|
}
|
|
722
757
|
|
|
758
|
+
/** Design-system demo host that shows `sce-confirm-dialog` and reports its visibility back through `visibleChange`. */
|
|
723
759
|
declare class SceConfirmDialogDemoComponent implements OnInit {
|
|
724
760
|
readonly visible: _angular_core.InputSignal<boolean>;
|
|
725
761
|
readonly visibleChange: _angular_core.OutputEmitterRef<boolean>;
|
|
@@ -751,11 +787,13 @@ declare class SceModalHostComponent {
|
|
|
751
787
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceModalHostComponent, "sce-modal-host", never, {}, {}, never, never, true, never>;
|
|
752
788
|
}
|
|
753
789
|
|
|
790
|
+
/** An already-uploaded image the zone renders alongside new picks, removable via the `removeExisting` output. */
|
|
754
791
|
interface FileUploadExistingItem {
|
|
755
792
|
id: string;
|
|
756
793
|
url: string;
|
|
757
794
|
alt?: string;
|
|
758
795
|
}
|
|
796
|
+
/** Overridable copy for `sce-file-upload-zone`; the two size/count messages are functions so the limit can be interpolated. */
|
|
759
797
|
interface FileUploadZoneStrings {
|
|
760
798
|
chooseFile: string;
|
|
761
799
|
addImage: string;
|
|
@@ -764,6 +802,7 @@ interface FileUploadZoneStrings {
|
|
|
764
802
|
fileTooLarge: (maxSizeLabel: string) => string;
|
|
765
803
|
tooManyFiles: (max: number) => string;
|
|
766
804
|
}
|
|
805
|
+
/** Drag-and-drop file picker with client-side accept/size/count validation and image previews; uploading is the consumer's job (it only emits `fileChange`/`filesChange`), it is not a ControlValueAccessor, and it uses `ViewEncapsulation.None`. */
|
|
767
806
|
declare class SceFileUploadZoneComponent implements OnDestroy {
|
|
768
807
|
private readonly translate;
|
|
769
808
|
locale: _angular_core.InputSignal<"ar" | "en">;
|
|
@@ -838,6 +877,7 @@ declare class SceFileUploadZoneComponent implements OnDestroy {
|
|
|
838
877
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceFileUploadZoneComponent, "sce-file-upload-zone", never, { "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "uploading": { "alias": "uploading"; "required": false; "isSignal": true; }; "uploadError": { "alias": "uploadError"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "allowDrop": { "alias": "allowDrop"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "maxFileSizeBytes": { "alias": "maxFileSizeBytes"; "required": false; "isSignal": true; }; "maxFiles": { "alias": "maxFiles"; "required": false; "isSignal": true; }; "showPreviews": { "alias": "showPreviews"; "required": false; "isSignal": true; }; "appendOnSelect": { "alias": "appendOnSelect"; "required": false; "isSignal": true; }; "existingItems": { "alias": "existingItems"; "required": false; "isSignal": true; }; "strings": { "alias": "strings"; "required": false; "isSignal": true; }; "topLabel": { "alias": "topLabel"; "required": false; "isSignal": true; }; }, { "fileChange": "fileChange"; "filesChange": "filesChange"; "removeExisting": "removeExisting"; "fileDialogOpen": "fileDialogOpen"; "fileDialogClose": "fileDialogClose"; }, never, never, true, never>;
|
|
839
878
|
}
|
|
840
879
|
|
|
880
|
+
/** Design-system demo page for `sce-file-upload-zone`, showing its zone and dialog variants under the `dir` passed in. */
|
|
841
881
|
declare class SceFileUploadZoneDemoComponent {
|
|
842
882
|
readonly dir: _angular_core.InputSignal<"rtl" | "ltr">;
|
|
843
883
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SceFileUploadZoneDemoComponent, never>;
|
|
@@ -848,19 +888,26 @@ declare class SceFileUploadZoneDemoComponent {
|
|
|
848
888
|
* React source: Moatamed-Frontend/src/shared-utils/components/business-status/business-status-tone.ts
|
|
849
889
|
*/
|
|
850
890
|
type BusinessStatusTone = 'draft-initial' | 'modified' | 'cancelled' | 'closed' | 'returned-edit' | 'active' | 'pending-beneficiary' | 'pending-approval' | 'request-draft' | 'open-offers' | 'extended' | 'request-closed' | 'awarded' | 'request-new' | 'rejected' | 'approved' | 'invitation-public' | 'invitation-direct' | 'fallback-1' | 'fallback-2' | 'fallback-3' | 'fallback-4' | 'fallback-5' | 'fallback-6' | 'fallback-7' | 'fallback-8';
|
|
891
|
+
/** Maps a free-text Arabic or English status label to a tone by keyword match, falling back to one of eight stable hash-picked tones. */
|
|
851
892
|
declare function resolveBusinessStatusTone(label: string | null | undefined): BusinessStatusTone;
|
|
893
|
+
/** A status label paired with the `BusinessStatusTone` resolved for it. */
|
|
852
894
|
interface BusinessStatusPresentation {
|
|
853
895
|
label: string;
|
|
854
896
|
tone: BusinessStatusTone;
|
|
855
897
|
}
|
|
898
|
+
/** Resolves a label and its tone together, substituting `fallbackLabel` (an em dash by default) when the label is blank. */
|
|
856
899
|
declare function resolveBusinessStatusPresentation(label: string | null | undefined, fallbackLabel?: string): BusinessStatusPresentation;
|
|
900
|
+
/** Convenience wrapper over `resolveBusinessStatusPresentation` that returns the plain `{ label, tone }` shape table cells bind to. */
|
|
857
901
|
declare function toBusinessStatusTableCell(label: string | null | undefined, fallbackLabel?: string): {
|
|
858
902
|
label: string;
|
|
859
903
|
tone: BusinessStatusTone;
|
|
860
904
|
};
|
|
861
905
|
|
|
906
|
+
/** Colour scheme of `sce-tag`; ignored when `businessTone` is supplied. */
|
|
862
907
|
type SceTagVariant = 'pending' | 'in-progress' | 'info' | 'success' | 'inactive' | 'danger' | 'warning' | 'neutral' | 'purple' | 'assigned' | 'review' | 'new' | 'closed';
|
|
908
|
+
/** Height and typography scale of `sce-tag`; defaults to `md`. */
|
|
863
909
|
type SceTagSize = 'sm' | 'md' | 'lg';
|
|
910
|
+
/** Status pill rendering `label`; colour comes from `businessTone` when set and otherwise from `variant` (default `pending`), and it uses `ViewEncapsulation.None`. */
|
|
864
911
|
declare class SceTagComponent {
|
|
865
912
|
readonly label: _angular_core.InputSignal<string>;
|
|
866
913
|
readonly variant: _angular_core.InputSignal<SceTagVariant>;
|
|
@@ -876,6 +923,7 @@ declare class SceTagComponent {
|
|
|
876
923
|
|
|
877
924
|
/** Shared with `sce-status-page` so every page state speaks the same visual language. */
|
|
878
925
|
type EmptyStateTone = 'neutral' | 'info' | 'success' | 'warning' | 'error';
|
|
926
|
+
/** Empty state with an illustration (or a tinted PrimeIcons circle when no `imageSrc` is given), a title and a subtitle, each settable as literal text or a translation key; the `error` tone announces assertively via `role="alert"` while every other tone stays a polite status. */
|
|
879
927
|
declare class SceEmptyStateComponent {
|
|
880
928
|
/** Translation key for the title (e.g. COMMON.NO_DATA). Used when title is not provided. */
|
|
881
929
|
readonly titleKey: _angular_core.InputSignal<string | undefined>;
|
|
@@ -922,6 +970,7 @@ declare class SceEmptyStateComponent {
|
|
|
922
970
|
type ResultStateStatus = 'api-error' | 'network-offline' | 'timeout' | 'server-error' | 'no-data' | 'no-filter-results' | 'no-search-results' | 'not-found' | 'forbidden' | 'unauthorized' | 'maintenance' | 'coming-soon' | 'first-use';
|
|
923
971
|
/** Action buttons a preset can offer. The first entry renders as the primary button. */
|
|
924
972
|
type ResultStateAction = 'retry' | 'back' | 'clearFilters' | 'clearSearch' | 'signIn';
|
|
973
|
+
/** The tone, icon, copy keys, and default action buttons `sce-result-state` renders for one status. */
|
|
925
974
|
interface ResultStatePreset {
|
|
926
975
|
readonly tone: EmptyStateTone;
|
|
927
976
|
/** PrimeIcons suffix. */
|
|
@@ -947,6 +996,7 @@ declare const RESULT_STATE_ACTION_META: Readonly<Record<ResultStateAction, {
|
|
|
947
996
|
directional?: boolean;
|
|
948
997
|
}>>;
|
|
949
998
|
|
|
999
|
+
/** One column of `sce-generic-table`: the row `field` to read, its header text, and optional sorting (via `sortKey`) and alignment. */
|
|
950
1000
|
interface SceTableColumn {
|
|
951
1001
|
field: string;
|
|
952
1002
|
header: string;
|
|
@@ -954,11 +1004,13 @@ interface SceTableColumn {
|
|
|
954
1004
|
sortKey?: string;
|
|
955
1005
|
align?: 'start' | 'center' | 'end';
|
|
956
1006
|
}
|
|
1007
|
+
/** Cell value that renders as a status tag; supply `businessTone` for the business-status palette, otherwise `variant` picks an `SceTagVariant`. */
|
|
957
1008
|
interface SceTableStatusCell {
|
|
958
1009
|
label: string;
|
|
959
1010
|
variant?: SceTagVariant;
|
|
960
1011
|
tone?: BusinessStatusTone;
|
|
961
1012
|
}
|
|
1013
|
+
/** Cell value that renders as a toggle switch; the table echoes `rowId` and the column field back through `switchChange`. */
|
|
962
1014
|
interface SceTableSwitchCell {
|
|
963
1015
|
type: 'switch';
|
|
964
1016
|
checked: boolean;
|
|
@@ -967,20 +1019,24 @@ interface SceTableSwitchCell {
|
|
|
967
1019
|
inactiveLabel?: string;
|
|
968
1020
|
rowId: string;
|
|
969
1021
|
}
|
|
1022
|
+
/** Per-row opt-in for the edit and delete action buttons, set on a row's `_rowActions` key. */
|
|
970
1023
|
interface SceTableRowActions {
|
|
971
1024
|
edit?: boolean;
|
|
972
1025
|
delete?: boolean;
|
|
973
1026
|
}
|
|
1027
|
+
/** One row of `sce-generic-table`: a required `id`, an optional `rowHref`/`_rowActions`, and an open index of cell values that may be plain strings, status cells, or switch cells. */
|
|
974
1028
|
interface SceTableRow {
|
|
975
1029
|
id: string;
|
|
976
1030
|
rowHref?: string;
|
|
977
1031
|
_rowActions?: SceTableRowActions;
|
|
978
1032
|
[key: string]: string | SceTableStatusCell | SceTableSwitchCell | SceTableRowActions | undefined;
|
|
979
1033
|
}
|
|
1034
|
+
/** Current table sort: the column key plus a tri-state `orderBy` (0 unsorted, 1 ascending, 2 descending). */
|
|
980
1035
|
interface SceTableSort {
|
|
981
1036
|
key: string;
|
|
982
1037
|
orderBy: 0 | 1 | 2;
|
|
983
1038
|
}
|
|
1039
|
+
/** Pagination config for `sce-generic-table`; `mode: 'client'` slices the supplied rows, while `'server'` expects the host to honour `pageChange` and provide `totalItems`. */
|
|
984
1040
|
interface SceTablePagination {
|
|
985
1041
|
enabled?: boolean;
|
|
986
1042
|
pageSize?: number;
|
|
@@ -990,6 +1046,7 @@ interface SceTablePagination {
|
|
|
990
1046
|
page?: number;
|
|
991
1047
|
totalItems?: number;
|
|
992
1048
|
}
|
|
1049
|
+
/** Data table driven by `columns` and `rows`, with sorting, client- or server-side pagination, status/switch cells, and row actions; its empty body reads differently depending on `error`, `searching`, and `filtered`, and it uses `ViewEncapsulation.None`. */
|
|
993
1050
|
declare class SceGenericTableComponent {
|
|
994
1051
|
private readonly messageService;
|
|
995
1052
|
private readonly translate;
|
|
@@ -1114,6 +1171,7 @@ declare class SceGenericTableComponent {
|
|
|
1114
1171
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceGenericTableComponent, "sce-generic-table", never, { "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "rows": { "alias": "rows"; "required": true; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "loadingDelay": { "alias": "loadingDelay"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "errorStatus": { "alias": "errorStatus"; "required": false; "isSignal": true; }; "filtered": { "alias": "filtered"; "required": false; "isSignal": true; }; "searching": { "alias": "searching"; "required": false; "isSignal": true; }; }, { "errorRetry": "errorRetry"; "clearFilters": "clearFilters"; "clearSearch": "clearSearch"; "sortChange": "sortChange"; "pageChange": "pageChange"; "pageSizeChange": "pageSizeChange"; "rowClick": "rowClick"; "switchChange": "switchChange"; "editClick": "editClick"; "deleteClick": "deleteClick"; }, never, never, true, never>;
|
|
1115
1172
|
}
|
|
1116
1173
|
|
|
1174
|
+
/** Design-system demo harness for `sce-generic-table` with three hard-coded rows; its columns and rows re-translate whenever `LanguageService.locale()` changes. */
|
|
1117
1175
|
declare class SceGenericTableDemoComponent {
|
|
1118
1176
|
private readonly translate;
|
|
1119
1177
|
private readonly language;
|
|
@@ -1124,6 +1182,7 @@ declare class SceGenericTableDemoComponent {
|
|
|
1124
1182
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceGenericTableDemoComponent, "sce-generic-table-demo", never, {}, {}, never, never, true, never>;
|
|
1125
1183
|
}
|
|
1126
1184
|
|
|
1185
|
+
/** Status tag whose colour tone is inferred from the label text when `tone` is not supplied explicitly. */
|
|
1127
1186
|
declare class SceBusinessStatusTagComponent {
|
|
1128
1187
|
label: _angular_core.InputSignal<string>;
|
|
1129
1188
|
tone: _angular_core.InputSignal<BusinessStatusTone | undefined>;
|
|
@@ -1133,6 +1192,7 @@ declare class SceBusinessStatusTagComponent {
|
|
|
1133
1192
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceBusinessStatusTagComponent, "sce-business-status-tag", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1134
1193
|
}
|
|
1135
1194
|
|
|
1195
|
+
/** Verified/unverified badge icon derived from an engineering office's service-provider status. */
|
|
1136
1196
|
declare class SceEngineeringOfficeVerificationBadgeComponent {
|
|
1137
1197
|
readonly status: _angular_core.InputSignal<OrganizationServiceProviderStatus | null | undefined>;
|
|
1138
1198
|
readonly size: _angular_core.InputSignal<number>;
|
|
@@ -1143,6 +1203,7 @@ declare class SceEngineeringOfficeVerificationBadgeComponent {
|
|
|
1143
1203
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceEngineeringOfficeVerificationBadgeComponent, "sce-engineering-office-verification-badge", never, { "status": { "alias": "status"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1144
1204
|
}
|
|
1145
1205
|
|
|
1206
|
+
/** Circular office logo that renders uploaded photos with `object-fit: cover` and bundled SVGs with `contain`, falling back to the default office icon when the source is empty or fails to load. */
|
|
1146
1207
|
declare class SceOfficeBrandLogoComponent {
|
|
1147
1208
|
/** Logo source. http(s)/CMS/blob/data render as photo; anything else as bundled icon. */
|
|
1148
1209
|
readonly src: _angular_core.InputSignal<string>;
|
|
@@ -1160,6 +1221,7 @@ declare class SceOfficeBrandLogoComponent {
|
|
|
1160
1221
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeBrandLogoComponent, "sce-office-brand-logo", never, { "src": { "alias": "src"; "required": false; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "iconClassName": { "alias": "iconClassName"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1161
1222
|
}
|
|
1162
1223
|
|
|
1224
|
+
/** Inline error banner for an already-resolved `message`, showing a retry button only when `retryable` is opted into (it defaults to false so a failed save cannot re-trigger a load). */
|
|
1163
1225
|
declare class SceInlineApiErrorComponent {
|
|
1164
1226
|
message: _angular_core.InputSignal<string>;
|
|
1165
1227
|
className: _angular_core.InputSignal<string>;
|
|
@@ -1280,7 +1342,9 @@ declare class SceGlobalLoadingBarComponent {
|
|
|
1280
1342
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceGlobalLoadingBarComponent, "sce-global-loading-bar", never, {}, {}, never, never, true, never>;
|
|
1281
1343
|
}
|
|
1282
1344
|
|
|
1345
|
+
/** Colour/tone of a notification badge, one per notification kind (contract, offer, approval, alert…). */
|
|
1283
1346
|
type DashboardNotificationTypeVariant = 'contract-new' | 'contract-closed' | 'offer' | 'approved' | 'rejected' | 'alert' | 'info';
|
|
1347
|
+
/** Small pill showing a notification's kind: renders the already-translated `label` styled by `variant` (default `info`), with extra classes from `className`; uses `ViewEncapsulation.None`. */
|
|
1284
1348
|
declare class SceNotificationTypeBadgeComponent {
|
|
1285
1349
|
readonly label: _angular_core.InputSignal<string>;
|
|
1286
1350
|
readonly variant: _angular_core.InputSignal<DashboardNotificationTypeVariant>;
|
|
@@ -1292,6 +1356,7 @@ declare class SceNotificationTypeBadgeComponent {
|
|
|
1292
1356
|
|
|
1293
1357
|
type InfoFieldCardVariant = 'default' | 'highlight' | 'editable';
|
|
1294
1358
|
type InfoFieldCardSize = 'default' | 'compact';
|
|
1359
|
+
/** Read-only label/value card used throughout profile and review screens, with default, highlight and editable variants. */
|
|
1295
1360
|
declare class SceInfoFieldCardComponent {
|
|
1296
1361
|
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
1297
1362
|
readonly value: _angular_core.InputSignal<string | undefined>;
|
|
@@ -1305,6 +1370,7 @@ declare class SceInfoFieldCardComponent {
|
|
|
1305
1370
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceInfoFieldCardComponent, "sce-info-field-card", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "labelClassName": { "alias": "labelClassName"; "required": false; "isSignal": true; }; "valueClassName": { "alias": "valueClassName"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
1306
1371
|
}
|
|
1307
1372
|
|
|
1373
|
+
/** Layout wrapper that arranges projected info-field cards into a one- to four-column grid. */
|
|
1308
1374
|
declare class SceInfoFieldsGridComponent {
|
|
1309
1375
|
readonly columns: _angular_core.InputSignal<1 | 3 | 4 | 2>;
|
|
1310
1376
|
readonly gap: _angular_core.InputSignal<"sm" | "default">;
|
|
@@ -1330,6 +1396,7 @@ declare class ScePublicLegalProseComponent {
|
|
|
1330
1396
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ScePublicLegalProseComponent, "sce-public-legal-prose", never, { "html": { "alias": "html"; "required": true; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1331
1397
|
}
|
|
1332
1398
|
|
|
1399
|
+
/** Table row-action affordance rendering the chevron icon with `alt` as its accessible text; uses `ViewEncapsulation.None`, so its styles are global. */
|
|
1333
1400
|
declare class SceRowActionIconComponent {
|
|
1334
1401
|
readonly alt: _angular_core.InputSignal<string>;
|
|
1335
1402
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SceRowActionIconComponent, never>;
|
|
@@ -1337,6 +1404,7 @@ declare class SceRowActionIconComponent {
|
|
|
1337
1404
|
}
|
|
1338
1405
|
|
|
1339
1406
|
type DashboardRole$1 = 'client' | 'manager' | 'entity' | 'office';
|
|
1407
|
+
/** Avatar/role icon for a dashboard account; the supplied `photoUrl` is only used for individual client accounts, everything else falls back to the role icon. */
|
|
1340
1408
|
declare class SceDashboardAccountRoleIconComponent {
|
|
1341
1409
|
readonly role: _angular_core.InputSignal<DashboardRole$1>;
|
|
1342
1410
|
readonly accountKind: _angular_core.InputSignal<"individual" | "organization" | undefined>;
|
|
@@ -1351,11 +1419,13 @@ declare class SceDashboardAccountRoleIconComponent {
|
|
|
1351
1419
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceDashboardAccountRoleIconComponent, "sce-dashboard-account-role-icon", never, { "role": { "alias": "role"; "required": false; "isSignal": true; }; "accountKind": { "alias": "accountKind"; "required": false; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; "photoUrl": { "alias": "photoUrl"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1352
1420
|
}
|
|
1353
1421
|
|
|
1422
|
+
/** One label/value row of a review panel; a null or undefined `value` renders as a placeholder, and `hidden` drops the row entirely. */
|
|
1354
1423
|
interface ReviewFieldItem {
|
|
1355
1424
|
label: string;
|
|
1356
1425
|
value: string | number | null | undefined;
|
|
1357
1426
|
hidden?: boolean;
|
|
1358
1427
|
}
|
|
1428
|
+
/** Panel rendering a list of label/value review fields as table rows, skipping any item marked `hidden`. */
|
|
1359
1429
|
declare class SceReviewFieldTablePanelComponent {
|
|
1360
1430
|
items: _angular_core.InputSignal<ReviewFieldItem[]>;
|
|
1361
1431
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SceReviewFieldTablePanelComponent, never>;
|
|
@@ -1392,6 +1462,7 @@ declare class SceServiceCardStartButtonComponent {
|
|
|
1392
1462
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceServiceCardStartButtonComponent, "sce-service-card-start-button", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "externalStart": { "alias": "externalStart"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true, never>;
|
|
1393
1463
|
}
|
|
1394
1464
|
|
|
1465
|
+
/** View model of an engineering-office card; hero and logo each accept either a URL (`imageSrc`/`logoSrc`) or a blob `objectUrl`, and `extraTagsCount` drives the "+N more" chip. */
|
|
1395
1466
|
interface SceEngineeringOfficeCardModel {
|
|
1396
1467
|
name: string;
|
|
1397
1468
|
imageSrc?: string;
|
|
@@ -1430,6 +1501,7 @@ declare class SceEngineeringOfficeCardComponent {
|
|
|
1430
1501
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceEngineeringOfficeCardComponent, "sce-engineering-office-card", never, { "office": { "alias": "office"; "required": true; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "bookmarkLabel": { "alias": "bookmarkLabel"; "required": false; "isSignal": true; }; "bookmarked": { "alias": "bookmarked"; "required": false; "isSignal": true; }; "ratingLabel": { "alias": "ratingLabel"; "required": false; "isSignal": true; }; "locationLabel": { "alias": "locationLabel"; "required": false; "isSignal": true; }; "otherLabel": { "alias": "otherLabel"; "required": false; "isSignal": true; }; }, { "bookmarkClick": "bookmarkClick"; }, never, never, true, never>;
|
|
1431
1502
|
}
|
|
1432
1503
|
|
|
1504
|
+
/** Loading placeholder for the engineering office card, mirroring its grid or list layout via `viewMode`. */
|
|
1433
1505
|
declare class SceEngineeringOfficeCardSkeletonComponent {
|
|
1434
1506
|
readonly viewMode: _angular_core.InputSignal<"grid" | "list">;
|
|
1435
1507
|
readonly wrapperClass: _angular_core.Signal<string>;
|
|
@@ -1438,17 +1510,20 @@ declare class SceEngineeringOfficeCardSkeletonComponent {
|
|
|
1438
1510
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceEngineeringOfficeCardSkeletonComponent, "sce-engineering-office-card-skeleton", never, { "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1439
1511
|
}
|
|
1440
1512
|
|
|
1513
|
+
/** Contents of one office metric tile: a `title`, a `subtitle` and an optional icon name. */
|
|
1441
1514
|
interface OfficeMetricCardItem {
|
|
1442
1515
|
title: string;
|
|
1443
1516
|
subtitle: string;
|
|
1444
1517
|
icon?: string;
|
|
1445
1518
|
}
|
|
1519
|
+
/** Single office metric tile rendering a title, subtitle and optional icon in an accent or soft variant. */
|
|
1446
1520
|
declare class SceOfficeMetricCardComponent {
|
|
1447
1521
|
readonly item: _angular_core.InputSignal<OfficeMetricCardItem>;
|
|
1448
1522
|
readonly variant: _angular_core.InputSignal<"accent" | "soft">;
|
|
1449
1523
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SceOfficeMetricCardComponent, never>;
|
|
1450
1524
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeMetricCardComponent, "sce-office-metric-card", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1451
1525
|
}
|
|
1526
|
+
/** Row of office metric tiles laid out in two or three columns, sharing one variant across all items. */
|
|
1452
1527
|
declare class SceOfficeMetricCardsRowComponent {
|
|
1453
1528
|
readonly items: _angular_core.InputSignal<OfficeMetricCardItem[]>;
|
|
1454
1529
|
readonly variant: _angular_core.InputSignal<"accent" | "soft">;
|
|
@@ -1457,6 +1532,7 @@ declare class SceOfficeMetricCardsRowComponent {
|
|
|
1457
1532
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeMetricCardsRowComponent, "sce-office-metric-cards-row", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1458
1533
|
}
|
|
1459
1534
|
|
|
1535
|
+
/** Loading placeholder matching `sce-info-fields-grid`: `count` info-field cards (default 6) with an optional section-title bar. */
|
|
1460
1536
|
declare class SceInfoFieldsSkeletonComponent {
|
|
1461
1537
|
/** Number of info-field cards to render */
|
|
1462
1538
|
readonly count: _angular_core.InputSignal<number>;
|
|
@@ -1469,6 +1545,7 @@ declare class SceInfoFieldsSkeletonComponent {
|
|
|
1469
1545
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceInfoFieldsSkeletonComponent, "sce-info-fields-skeleton", never, { "count": { "alias": "count"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "showSectionTitle": { "alias": "showSectionTitle"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1470
1546
|
}
|
|
1471
1547
|
|
|
1548
|
+
/** Loading placeholder for a form: `count` label-plus-input pairs (default 6) laid out in one or two `columns`. */
|
|
1472
1549
|
declare class SceFormFieldsSkeletonComponent {
|
|
1473
1550
|
readonly count: _angular_core.InputSignal<number>;
|
|
1474
1551
|
readonly columns: _angular_core.InputSignal<1 | 2>;
|
|
@@ -1477,6 +1554,7 @@ declare class SceFormFieldsSkeletonComponent {
|
|
|
1477
1554
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceFormFieldsSkeletonComponent, "sce-form-fields-skeleton", never, { "count": { "alias": "count"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1478
1555
|
}
|
|
1479
1556
|
|
|
1557
|
+
/** Loading placeholder for a notification list: `count` rows (default 5), with `compact` tightening the padding for dropdown menus. */
|
|
1480
1558
|
declare class SceNotificationListSkeletonComponent {
|
|
1481
1559
|
readonly count: _angular_core.InputSignal<number>;
|
|
1482
1560
|
/** Compact padding for dropdown menus */
|
|
@@ -1486,6 +1564,7 @@ declare class SceNotificationListSkeletonComponent {
|
|
|
1486
1564
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceNotificationListSkeletonComponent, "sce-notification-list-skeleton", never, { "count": { "alias": "count"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1487
1565
|
}
|
|
1488
1566
|
|
|
1567
|
+
/** Loading placeholder for a profile page: a hero banner of `heroHeight` (default `230px`) above `fieldCount` info-field placeholders. */
|
|
1489
1568
|
declare class SceProfileHeroSkeletonComponent {
|
|
1490
1569
|
readonly heroHeight: _angular_core.InputSignal<string>;
|
|
1491
1570
|
readonly fieldCount: _angular_core.InputSignal<number>;
|
|
@@ -1493,7 +1572,9 @@ declare class SceProfileHeroSkeletonComponent {
|
|
|
1493
1572
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceProfileHeroSkeletonComponent, "sce-profile-hero-skeleton", never, { "heroHeight": { "alias": "heroHeight"; "required": false; "isSignal": true; }; "fieldCount": { "alias": "fieldCount"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1494
1573
|
}
|
|
1495
1574
|
|
|
1575
|
+
/** Wrapper style for the table skeleton: a standalone card, or the `.block` shell used by dashboard tables. */
|
|
1496
1576
|
type SceTableSkeletonLayout = 'standalone' | 'dashboard-block';
|
|
1577
|
+
/** Loading placeholder for a data table (`columns` x `rows`, default 5x5), cycling a fixed set of column widths and treating the last column as a status pill; `wrapInCard` defaults to true. */
|
|
1497
1578
|
declare class SceTableSkeletonComponent {
|
|
1498
1579
|
readonly columns: _angular_core.InputSignal<number>;
|
|
1499
1580
|
readonly rows: _angular_core.InputSignal<number>;
|
|
@@ -1538,17 +1619,20 @@ declare class SceFeaturedOfficeCardSkeletonComponent {
|
|
|
1538
1619
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceFeaturedOfficeCardSkeletonComponent, "sce-featured-office-card-skeleton", never, {}, {}, never, never, true, never>;
|
|
1539
1620
|
}
|
|
1540
1621
|
|
|
1622
|
+
/** Fixed loading placeholder for the service-detail page; takes no inputs. */
|
|
1541
1623
|
declare class SceServiceDetailSkeletonComponent {
|
|
1542
1624
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SceServiceDetailSkeletonComponent, never>;
|
|
1543
1625
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceServiceDetailSkeletonComponent, "sce-service-detail-skeleton", never, {}, {}, never, never, true, never>;
|
|
1544
1626
|
}
|
|
1545
1627
|
|
|
1628
|
+
/** Loading placeholder for the office-details panel — `count` repeated blocks (minimum 1); uses `ViewEncapsulation.None` and shares its styles with the office-projects skeleton. */
|
|
1546
1629
|
declare class SceOfficeDetailsSkeletonComponent {
|
|
1547
1630
|
readonly count: _angular_core.InputSignal<number>;
|
|
1548
1631
|
readonly countArray: _angular_core.Signal<number[]>;
|
|
1549
1632
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SceOfficeDetailsSkeletonComponent, never>;
|
|
1550
1633
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeDetailsSkeletonComponent, "sce-office-details-skeleton", never, { "count": { "alias": "count"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1551
1634
|
}
|
|
1635
|
+
/** Office-projects loading placeholder; reuses the office-details skeleton template but carries no styles of its own, so it inherits them from an office-details skeleton rendered elsewhere on the page (`ViewEncapsulation.None`). */
|
|
1552
1636
|
declare class SceOfficeProjectsSkeletonComponent {
|
|
1553
1637
|
readonly count: _angular_core.InputSignal<number>;
|
|
1554
1638
|
readonly countArray: _angular_core.Signal<number[]>;
|
|
@@ -1556,6 +1640,7 @@ declare class SceOfficeProjectsSkeletonComponent {
|
|
|
1556
1640
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeProjectsSkeletonComponent, "sce-office-projects-skeleton", never, { "count": { "alias": "count"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1557
1641
|
}
|
|
1558
1642
|
|
|
1643
|
+
/** One engineering office plotted on the offices map; `approximate` marks a coordinate derived from a city or region rather than a precise address. */
|
|
1559
1644
|
interface SceOsmOfficeMapPoint {
|
|
1560
1645
|
id: string | number;
|
|
1561
1646
|
name: string;
|
|
@@ -1592,10 +1677,12 @@ declare class SceOsmOfficesMapComponent implements AfterViewInit, OnChanges, OnD
|
|
|
1592
1677
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOsmOfficesMapComponent, "sce-osm-offices-map", never, { "offices": { "alias": "offices"; "required": false; "isSignal": true; }; "selectedOfficeId": { "alias": "selectedOfficeId"; "required": false; "isSignal": true; }; "showTooltip": { "alias": "showTooltip"; "required": false; "isSignal": true; }; "ariaLabelInput": { "alias": "ariaLabelInput"; "required": false; "isSignal": true; }; }, { "selectOffice": "selectOffice"; "ready": "ready"; "mapError": "mapError"; }, never, never, true, never>;
|
|
1593
1678
|
}
|
|
1594
1679
|
|
|
1680
|
+
/** An inclusive from/to date range, with `null` on either end meaning that bound is open. */
|
|
1595
1681
|
interface FilterDateRangeValue {
|
|
1596
1682
|
from: Date | null;
|
|
1597
1683
|
to: Date | null;
|
|
1598
1684
|
}
|
|
1685
|
+
/** Filter-bar date-range picker with a leading icon and a clear button; works controlled when `value` is bound and falls back to its own internal state when it is left `undefined`, and uses `ViewEncapsulation.None`. */
|
|
1599
1686
|
declare class SceFilterCalendarRangeComponent {
|
|
1600
1687
|
locale: _angular_core.InputSignal<"ar" | "en">;
|
|
1601
1688
|
placeholder: _angular_core.InputSignal<string>;
|
|
@@ -1617,10 +1704,12 @@ declare class SceFilterCalendarRangeComponent {
|
|
|
1617
1704
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceFilterCalendarRangeComponent, "sce-filter-calendar-range", never, { "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "iconSrc": { "alias": "iconSrc"; "required": false; "isSignal": true; }; "iconAlt": { "alias": "iconAlt"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
1618
1705
|
}
|
|
1619
1706
|
|
|
1707
|
+
/** A single choice offered by a `select`-kind `DashboardFilterField`. */
|
|
1620
1708
|
interface DashboardFilterFieldOption {
|
|
1621
1709
|
label: string;
|
|
1622
1710
|
value: string;
|
|
1623
1711
|
}
|
|
1712
|
+
/** Discriminated union of the filter controls a dashboard table can render, keyed by `kind` (`search`, `text`, `select`, `date`, `dateRange`); each variant carries its own value and `onChange` callback rather than being bound with `ngModel`. */
|
|
1624
1713
|
type DashboardFilterField = {
|
|
1625
1714
|
kind: 'search';
|
|
1626
1715
|
id: string;
|
|
@@ -1667,6 +1756,7 @@ type DashboardFilterField = {
|
|
|
1667
1756
|
iconSrc?: string;
|
|
1668
1757
|
iconAlt?: string;
|
|
1669
1758
|
};
|
|
1759
|
+
/** Renders a dashboard table's filter row from a declarative `fields` array and exposes `hasActiveSearch`/`hasActiveFilters` plus `clearSearch()`/`clearFilters()` for a page to drive via a template reference; uses `ViewEncapsulation.None`. */
|
|
1670
1760
|
declare class SceDashboardTableFiltersComponent {
|
|
1671
1761
|
locale: _angular_core.InputSignal<"ar" | "en">;
|
|
1672
1762
|
idPrefix: _angular_core.InputSignal<string>;
|
|
@@ -1697,10 +1787,12 @@ declare class SceDashboardTableFiltersComponent {
|
|
|
1697
1787
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceDashboardTableFiltersComponent, "sce-dashboard-table-filters", never, { "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "idPrefix": { "alias": "idPrefix"; "required": false; "isSignal": true; }; "fields": { "alias": "fields"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1698
1788
|
}
|
|
1699
1789
|
|
|
1790
|
+
/** A single `label`/`value` choice in `sce-filter-dropdown`. */
|
|
1700
1791
|
interface FilterDropdownOption {
|
|
1701
1792
|
label: string;
|
|
1702
1793
|
value: string;
|
|
1703
1794
|
}
|
|
1795
|
+
/** Filter-bar select built on PrimeNG `Select` with an optional leading icon, clear button, and type-ahead `filter`; controlled when `value` is bound and self-managing when it is left `undefined`, and uses `ViewEncapsulation.None`. */
|
|
1704
1796
|
declare class SceFilterDropdownComponent {
|
|
1705
1797
|
id: _angular_core.InputSignal<string>;
|
|
1706
1798
|
locale: _angular_core.InputSignal<"ar" | "en">;
|
|
@@ -1724,6 +1816,7 @@ declare class SceFilterDropdownComponent {
|
|
|
1724
1816
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceFilterDropdownComponent, "sce-filter-dropdown", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "iconSrc": { "alias": "iconSrc"; "required": false; "isSignal": true; }; "iconAlt": { "alias": "iconAlt"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "showClear": { "alias": "showClear"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
1725
1817
|
}
|
|
1726
1818
|
|
|
1819
|
+
/** Filter-bar single-date picker with a leading icon and a clear button; controlled when `value` is bound and self-managing when it is left `undefined`, and uses `ViewEncapsulation.None`. */
|
|
1727
1820
|
declare class SceFilterCalendarComponent {
|
|
1728
1821
|
locale: _angular_core.InputSignal<"ar" | "en">;
|
|
1729
1822
|
placeholder: _angular_core.InputSignal<string>;
|
|
@@ -1761,6 +1854,7 @@ interface ServicesTopFiltersChange {
|
|
|
1761
1854
|
*/
|
|
1762
1855
|
/** Which of the three dropdowns a change came from. */
|
|
1763
1856
|
type SceServicesTopFilterField = 'category' | 'target' | 'extra';
|
|
1857
|
+
/** Filter bar for the public services and offices listings, rendering a search box plus category, target, extra and sort dropdowns and emitting the resolved filter state via `filtersChange`. */
|
|
1764
1858
|
declare class SceServicesTopFiltersComponent implements OnInit {
|
|
1765
1859
|
private readonly language;
|
|
1766
1860
|
private readonly translate;
|
|
@@ -1858,10 +1952,12 @@ declare class SceServicesTopFiltersComponent implements OnInit {
|
|
|
1858
1952
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceServicesTopFiltersComponent, "sce-services-top-filters", never, { "q": { "alias": "q"; "required": false; "isSignal": true; }; "category": { "alias": "category"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "categories": { "alias": "categories"; "required": false; "isSignal": true; }; "targets": { "alias": "targets"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "extra": { "alias": "extra"; "required": false; "isSignal": true; }; "extraOptions": { "alias": "extraOptions"; "required": false; "isSignal": true; }; "extraParamName": { "alias": "extraParamName"; "required": false; "isSignal": true; }; }, { "filtersChange": "filtersChange"; }, never, never, true, never>;
|
|
1859
1953
|
}
|
|
1860
1954
|
|
|
1955
|
+
/** One entry in the landing navigation bar: the router path and the i18n key rendered as its label. */
|
|
1861
1956
|
interface LandingNavItem {
|
|
1862
1957
|
href: string;
|
|
1863
1958
|
label: string;
|
|
1864
1959
|
}
|
|
1960
|
+
/** Landing-page navigation bar that renders the required `items` as router links with route prefetching and active-route highlighting. */
|
|
1865
1961
|
declare class SceLandingNavComponent {
|
|
1866
1962
|
readonly items: _angular_core.InputSignal<LandingNavItem[]>;
|
|
1867
1963
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SceLandingNavComponent, never>;
|
|
@@ -1896,6 +1992,7 @@ declare class SceLandingMobileMenuComponent {
|
|
|
1896
1992
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceLandingMobileMenuComponent, "sce-landing-mobile-menu", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1897
1993
|
}
|
|
1898
1994
|
|
|
1995
|
+
/** Button that switches the app between Arabic and English through LanguageService, labelled with the language it will switch to rather than the current one. */
|
|
1899
1996
|
declare class SceLangToggleComponent {
|
|
1900
1997
|
private readonly language;
|
|
1901
1998
|
private readonly translate;
|
|
@@ -1908,6 +2005,7 @@ declare class SceLangToggleComponent {
|
|
|
1908
2005
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceLangToggleComponent, "sce-lang-toggle", never, { "lightContext": { "alias": "lightContext"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1909
2006
|
}
|
|
1910
2007
|
|
|
2008
|
+
/** Light/dark theme switcher backed by ThemeService, with labels falling back to translated defaults. */
|
|
1911
2009
|
declare class SceThemeSwitcherComponent {
|
|
1912
2010
|
private readonly themeService;
|
|
1913
2011
|
private readonly translate;
|
|
@@ -1941,6 +2039,7 @@ declare class SceThemeToggleButtonComponent {
|
|
|
1941
2039
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceThemeToggleButtonComponent, "sce-theme-toggle-button", never, {}, {}, never, never, true, never>;
|
|
1942
2040
|
}
|
|
1943
2041
|
|
|
2042
|
+
/** Tone of an action dialog's confirm button — `danger` for destructive actions. */
|
|
1944
2043
|
type ActionDialogVariant = 'primary' | 'danger';
|
|
1945
2044
|
/** Legacy reason-field config preserved for back-compat. */
|
|
1946
2045
|
interface ActionDialogField {
|
|
@@ -1952,6 +2051,7 @@ interface ActionDialogField {
|
|
|
1952
2051
|
multiline?: boolean;
|
|
1953
2052
|
error?: string;
|
|
1954
2053
|
}
|
|
2054
|
+
/** Thin wrapper over `sce-confirm-dialog` for approve/reject actions, offering a convenience reason-textarea API (`showReasonInput` and friends) alongside the legacy `field` config, which wins when both are supplied. */
|
|
1955
2055
|
declare class SceActionDialogComponent {
|
|
1956
2056
|
visible: _angular_core.InputSignal<boolean>;
|
|
1957
2057
|
locale: _angular_core.InputSignal<"ar" | "en">;
|
|
@@ -1995,11 +2095,14 @@ declare class SceActionDialogComponent {
|
|
|
1995
2095
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceActionDialogComponent, "sce-action-dialog", never, { "visible": { "alias": "visible"; "required": true; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": true; "isSignal": true; }; "confirmLabel": { "alias": "confirmLabel"; "required": true; "isSignal": true; }; "cancelLabel": { "alias": "cancelLabel"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "confirmDisabled": { "alias": "confirmDisabled"; "required": false; "isSignal": true; }; "field": { "alias": "field"; "required": false; "isSignal": true; }; "showReasonInput": { "alias": "showReasonInput"; "required": false; "isSignal": true; }; "reasonLabel": { "alias": "reasonLabel"; "required": false; "isSignal": true; }; "reasonPlaceholder": { "alias": "reasonPlaceholder"; "required": false; "isSignal": true; }; "reasonValue": { "alias": "reasonValue"; "required": false; "isSignal": true; }; "reasonRequired": { "alias": "reasonRequired"; "required": false; "isSignal": true; }; "reasonError": { "alias": "reasonError"; "required": false; "isSignal": true; }; }, { "close": "close"; "cancel": "cancel"; "confirm": "confirm"; "reasonChange": "reasonChange"; "fieldChange": "fieldChange"; }, never, never, true, never>;
|
|
1996
2096
|
}
|
|
1997
2097
|
|
|
2098
|
+
/** Tone of a form dialog's submit button. */
|
|
1998
2099
|
type FormDialogVariant = 'primary' | 'danger' | 'success';
|
|
2100
|
+
/** An extra footer button beside submit and cancel in `sce-form-dialog`; clicking it emits an output rather than submitting the form. */
|
|
1999
2101
|
interface FormDialogSecondaryAction {
|
|
2000
2102
|
label: string;
|
|
2001
2103
|
disabled?: boolean;
|
|
2002
2104
|
}
|
|
2105
|
+
/** Dialog shell for forms, with submit/cancel footer buttons, an optional secondary action and an error banner; the footer submit button lives outside the projected `<form>` and is wired to it by a generated id, so submission goes through the native form submit event. */
|
|
2003
2106
|
declare class SceFormDialogComponent {
|
|
2004
2107
|
private readonly translate;
|
|
2005
2108
|
visible: _angular_core.InputSignal<boolean>;
|
|
@@ -2035,6 +2138,7 @@ declare class SceFormDialogComponent {
|
|
|
2035
2138
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceFormDialogComponent, "sce-form-dialog", never, { "visible": { "alias": "visible"; "required": true; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "submitLabel": { "alias": "submitLabel"; "required": false; "isSignal": true; }; "cancelLabel": { "alias": "cancelLabel"; "required": false; "isSignal": true; }; "isSubmitting": { "alias": "isSubmitting"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "dismissableMask": { "alias": "dismissableMask"; "required": false; "isSignal": true; }; "secondaryAction": { "alias": "secondaryAction"; "required": false; "isSignal": true; }; "secondaryActionPosition": { "alias": "secondaryActionPosition"; "required": false; "isSignal": true; }; }, { "close": "close"; "submitForm": "submitForm"; "submitValues": "submitValues"; "secondaryActionClick": "secondaryActionClick"; }, never, ["*"], true, never>;
|
|
2036
2139
|
}
|
|
2037
2140
|
|
|
2141
|
+
/** Optionally-titled section wrapper for grouping projected fields inside `sce-form-dialog`, laid out in one or two columns. */
|
|
2038
2142
|
declare class SceFormDialogSectionComponent {
|
|
2039
2143
|
title: _angular_core.InputSignal<string | undefined>;
|
|
2040
2144
|
twoColumn: _angular_core.InputSignal<boolean>;
|
|
@@ -2042,6 +2146,7 @@ declare class SceFormDialogSectionComponent {
|
|
|
2042
2146
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceFormDialogSectionComponent, "sce-form-dialog-section", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "twoColumn": { "alias": "twoColumn"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
2043
2147
|
}
|
|
2044
2148
|
|
|
2149
|
+
/** Renders the small leading `<img>` icon inside a filter control, sized 20x20 by default and omitted entirely when `iconSrc` is unset. */
|
|
2045
2150
|
declare class SceFilterFieldIconComponent {
|
|
2046
2151
|
iconSrc: _angular_core.InputSignal<string | undefined>;
|
|
2047
2152
|
iconAlt: _angular_core.InputSignal<string>;
|
|
@@ -2052,11 +2157,13 @@ declare class SceFilterFieldIconComponent {
|
|
|
2052
2157
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceFilterFieldIconComponent, "sce-filter-field-icon", never, { "iconSrc": { "alias": "iconSrc"; "required": false; "isSignal": true; }; "iconAlt": { "alias": "iconAlt"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2053
2158
|
}
|
|
2054
2159
|
|
|
2160
|
+
/** One accordion panel: an `id` used for open/close identity, plus its `title` and `content` strings. */
|
|
2055
2161
|
interface AccordionItem {
|
|
2056
2162
|
id: number | string;
|
|
2057
2163
|
title: string;
|
|
2058
2164
|
content: string;
|
|
2059
2165
|
}
|
|
2166
|
+
/** Single-expand accordion that renders a list of title/content items, toggling one open panel at a time. */
|
|
2060
2167
|
declare class SceAccordionComponent {
|
|
2061
2168
|
items: _angular_core.InputSignal<AccordionItem[]>;
|
|
2062
2169
|
className: _angular_core.InputSignal<string>;
|
|
@@ -2069,11 +2176,13 @@ declare class SceAccordionComponent {
|
|
|
2069
2176
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceAccordionComponent, "sce-accordion", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "itemClassName": { "alias": "itemClassName"; "required": false; "isSignal": true; }; "headerClassName": { "alias": "headerClassName"; "required": false; "isSignal": true; }; "contentClassName": { "alias": "contentClassName"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2070
2177
|
}
|
|
2071
2178
|
|
|
2179
|
+
/** One step in a wizard stepper, identified by a numeric `id` that also orders it against `currentStep`. */
|
|
2072
2180
|
interface StepItem$1 {
|
|
2073
2181
|
id: number;
|
|
2074
2182
|
title: string;
|
|
2075
2183
|
completed?: boolean;
|
|
2076
2184
|
}
|
|
2185
|
+
/** Horizontal wizard progress indicator with three `variant`s (numbered `steps`, a `progress` bar, or `pills`), optional per-step error markers, and click-to-navigate gated by `clickable` (off by default) plus an `isStepClickable` predicate; uses `ViewEncapsulation.None`. */
|
|
2077
2186
|
declare class SceHorizontalWizardStepperComponent {
|
|
2078
2187
|
private readonly translate;
|
|
2079
2188
|
steps: _angular_core.InputSignal<StepItem$1[]>;
|
|
@@ -2114,6 +2223,7 @@ declare class SceHorizontalWizardStepperComponent {
|
|
|
2114
2223
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceHorizontalWizardStepperComponent, "sce-horizontal-wizard-stepper", never, { "steps": { "alias": "steps"; "required": true; "isSignal": true; }; "currentStep": { "alias": "currentStep"; "required": true; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "errorStepIds": { "alias": "errorStepIds"; "required": false; "isSignal": true; }; "isStepClickable": { "alias": "isStepClickable"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; "showErrors": { "alias": "showErrors"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, { "stepClick": "stepClick"; "showError": "showError"; }, never, never, true, never>;
|
|
2115
2224
|
}
|
|
2116
2225
|
|
|
2226
|
+
/** Vertical wizard stepper sharing `StepItem` with the horizontal one; unlike that component `clickable` defaults to true, and `errorStepIds` marks steps whose `showError` link is emitted on click. */
|
|
2117
2227
|
declare class SceVerticalStepperComponent {
|
|
2118
2228
|
private readonly translate;
|
|
2119
2229
|
steps: _angular_core.InputSignal<StepItem$1[]>;
|
|
@@ -2163,9 +2273,12 @@ declare class SceVerticalStepperComponent {
|
|
|
2163
2273
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceVerticalStepperComponent, "sce-vertical-stepper", never, { "steps": { "alias": "steps"; "required": true; "isSignal": true; }; "currentStep": { "alias": "currentStep"; "required": true; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "errorStepIds": { "alias": "errorStepIds"; "required": false; "isSignal": true; }; "isStepClickable": { "alias": "isStepClickable"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; }, { "stepClick": "stepClick"; "showError": "showError"; }, never, never, true, never>;
|
|
2164
2274
|
}
|
|
2165
2275
|
|
|
2276
|
+
/** Size preset shared by the loader components; each maps to a fixed pixel dimension (28 / 42 / 56). */
|
|
2166
2277
|
type LoaderSize = 'sm' | 'md' | 'lg';
|
|
2278
|
+
/** Whether a loader sits in the flow of the page or covers the viewport as a blocking overlay. */
|
|
2167
2279
|
type LoaderVariant = 'inline' | 'fullscreen';
|
|
2168
2280
|
|
|
2281
|
+
/** Branded loading indicator that animates the app logo at a small/medium/large size preset, rendered inline or as a fullscreen overlay. */
|
|
2169
2282
|
declare class SceBrandLoaderComponent {
|
|
2170
2283
|
private readonly translate;
|
|
2171
2284
|
size: _angular_core.InputSignal<LoaderSize>;
|
|
@@ -2179,6 +2292,7 @@ declare class SceBrandLoaderComponent {
|
|
|
2179
2292
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceBrandLoaderComponent, "sce-brand-loader", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "logoSrc": { "alias": "logoSrc"; "required": false; "isSignal": true; }; "hintText": { "alias": "hintText"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2180
2293
|
}
|
|
2181
2294
|
|
|
2295
|
+
/** Spinning ring loading indicator drawn with a radial-gradient mask at a size preset, rendered inline or as a fullscreen overlay. */
|
|
2182
2296
|
declare class SceRingLoaderComponent {
|
|
2183
2297
|
private readonly translate;
|
|
2184
2298
|
size: _angular_core.InputSignal<LoaderSize>;
|
|
@@ -2193,6 +2307,7 @@ declare class SceRingLoaderComponent {
|
|
|
2193
2307
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceRingLoaderComponent, "sce-ring-loader", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "hintText": { "alias": "hintText"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2194
2308
|
}
|
|
2195
2309
|
|
|
2310
|
+
/** Loading indicator that renders two meshed, counter-rotating SVG gears whose paths are generated at module load, sized by preset and shown inline or as a fullscreen overlay. */
|
|
2196
2311
|
declare class SceGearsLoaderComponent {
|
|
2197
2312
|
private readonly translate;
|
|
2198
2313
|
size: _angular_core.InputSignal<LoaderSize>;
|
|
@@ -2212,8 +2327,11 @@ declare class SceGearsLoaderComponent {
|
|
|
2212
2327
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceGearsLoaderComponent, "sce-gears-loader", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "hintText": { "alias": "hintText"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2213
2328
|
}
|
|
2214
2329
|
|
|
2330
|
+
/** Shape preset of `SceSkeleton`, each carrying its own default height and radius. */
|
|
2215
2331
|
type SkeletonVariant = 'text' | 'circular' | 'rectangular' | 'rounded' | 'avatar' | 'button' | 'chip' | 'card' | 'image' | 'header' | 'paragraph' | 'divider' | 'badge' | 'input';
|
|
2332
|
+
/** Shimmer animation of `SceSkeleton`; defaults to `wave`. */
|
|
2216
2333
|
type SkeletonAnimation = 'pulse' | 'wave' | 'none';
|
|
2334
|
+
/** Loading placeholder in one of several shape variants, optionally repeated `count` times with a shortened last line. */
|
|
2217
2335
|
declare class SceSkeleton {
|
|
2218
2336
|
/** Shape variant of the skeleton */
|
|
2219
2337
|
readonly variant: _angular_core.InputSignal<SkeletonVariant>;
|
|
@@ -2253,6 +2371,7 @@ declare class SceSkeleton {
|
|
|
2253
2371
|
* to let the icon size itself via CSS (useful inside flex/grid containers).
|
|
2254
2372
|
*/
|
|
2255
2373
|
type IconSize = number | 'auto' | null;
|
|
2374
|
+
/** Inline SVG icon that fetches the named asset over HTTP, sanitizes it and caches it in a module-level cache shared by all instances. */
|
|
2256
2375
|
declare class SceIcon {
|
|
2257
2376
|
private readonly http;
|
|
2258
2377
|
private readonly sanitizer;
|
|
@@ -2276,8 +2395,11 @@ declare class SceIcon {
|
|
|
2276
2395
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceIcon, "sce-icon", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2277
2396
|
}
|
|
2278
2397
|
|
|
2398
|
+
/** Visual style of `SceButton`, driving the `btn--*` modifier class. */
|
|
2279
2399
|
type SceButtonVariant = 'primary' | 'black' | 'neutral' | 'secondary' | 'transparent' | 'outline' | 'danger' | 'text' | 'link';
|
|
2400
|
+
/** Size preset of `SceButton`; `small-icon-only` is the square icon-button form. */
|
|
2280
2401
|
type SceButtonSize = 'compact' | 'mini' | 'extra-small' | 'small-icon-only' | 'small' | 'medium' | 'large';
|
|
2402
|
+
/** Design-system button that renders an `<a>` when `routerLink` or `href` is set and a `<button>` otherwise; note `fullWidth` defaults to true. */
|
|
2281
2403
|
declare class SceButton {
|
|
2282
2404
|
readonly variant: _angular_core.InputSignal<SceButtonVariant>;
|
|
2283
2405
|
readonly type: _angular_core.InputSignal<"button" | "submit" | "reset">;
|
|
@@ -2305,6 +2427,7 @@ declare class SceButton {
|
|
|
2305
2427
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceButton, "sce-button", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconPosition": { "alias": "iconPosition"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "routerLink": { "alias": "routerLink"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
2306
2428
|
}
|
|
2307
2429
|
|
|
2430
|
+
/** Labelled checkbox implementing `ControlValueAccessor`, so it works with `formControl`/`ngModel` as well as the `changed` output. */
|
|
2308
2431
|
declare class SceCheckbox implements ControlValueAccessor {
|
|
2309
2432
|
readonly label: _angular_core.InputSignal<string>;
|
|
2310
2433
|
readonly inputId: _angular_core.InputSignal<string | undefined>;
|
|
@@ -2335,7 +2458,9 @@ declare class SceSpinner {
|
|
|
2335
2458
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceSpinner, "sce-spinner", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2336
2459
|
}
|
|
2337
2460
|
|
|
2461
|
+
/** Side the tooltip pops out on; physical (not logical) because it maps straight onto PrimeNG's `tooltipPosition`. */
|
|
2338
2462
|
type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';
|
|
2463
|
+
/** Wraps projected content in a PrimeNG tooltip with the required `text` and a configurable position and z-index. */
|
|
2339
2464
|
declare class SceTooltip {
|
|
2340
2465
|
readonly text: _angular_core.InputSignal<string>;
|
|
2341
2466
|
readonly position: _angular_core.InputSignal<TooltipPosition>;
|
|
@@ -2346,6 +2471,7 @@ declare class SceTooltip {
|
|
|
2346
2471
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceTooltip, "sce-tooltip", never, { "text": { "alias": "text"; "required": true; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
2347
2472
|
}
|
|
2348
2473
|
|
|
2474
|
+
/** Linear progress bar whose fill direction follows the app locale, with an optional label and a leading thumb that is on by default. */
|
|
2349
2475
|
declare class SceProgressBar {
|
|
2350
2476
|
private readonly languageService;
|
|
2351
2477
|
/** Matches app language: Arabic -> rtl (fill from the right), English -> ltr (fill from the left). */
|
|
@@ -2364,6 +2490,7 @@ declare class SceProgressBar {
|
|
|
2364
2490
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceProgressBar, "sce-progress-bar", never, { "progress": { "alias": "progress"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "showLabel": { "alias": "showLabel"; "required": false; "isSignal": true; }; "showThumb": { "alias": "showThumb"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2365
2491
|
}
|
|
2366
2492
|
|
|
2493
|
+
/** SVG ring showing step progress (current of total) with an optional custom label, falling back to the COMMON.STEP_OF translation. */
|
|
2367
2494
|
declare class SceCircularProgress {
|
|
2368
2495
|
/** Current step (1-based). */
|
|
2369
2496
|
readonly current: _angular_core.InputSignal<number>;
|
|
@@ -2398,6 +2525,7 @@ declare class SceCircularProgress {
|
|
|
2398
2525
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceCircularProgress, "sce-circular-progress", never, { "current": { "alias": "current"; "required": false; "isSignal": true; }; "total": { "alias": "total"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "progressColor": { "alias": "progressColor"; "required": false; "isSignal": true; }; "trackColor": { "alias": "trackColor"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2399
2526
|
}
|
|
2400
2527
|
|
|
2528
|
+
/** Form field label with optional sub-text and a required-marker; `text` is a required input. */
|
|
2401
2529
|
declare class SceFormLabel {
|
|
2402
2530
|
readonly text: _angular_core.InputSignal<string>;
|
|
2403
2531
|
readonly subText: _angular_core.InputSignal<string | undefined>;
|
|
@@ -2406,6 +2534,7 @@ declare class SceFormLabel {
|
|
|
2406
2534
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceFormLabel, "sce-form-label", never, { "text": { "alias": "text"; "required": true; "isSignal": true; }; "subText": { "alias": "subText"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2407
2535
|
}
|
|
2408
2536
|
|
|
2537
|
+
/** Inline form validation message rendered from a translation key; both `show` and `messageKey` are required inputs. */
|
|
2409
2538
|
declare class SceFormError {
|
|
2410
2539
|
readonly show: _angular_core.InputSignal<boolean>;
|
|
2411
2540
|
readonly messageKey: _angular_core.InputSignal<string>;
|
|
@@ -2461,6 +2590,7 @@ declare class SceBidiIsolate {
|
|
|
2461
2590
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceBidiIsolate, "sce-bidi-isolate", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "tabular": { "alias": "tabular"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
2462
2591
|
}
|
|
2463
2592
|
|
|
2593
|
+
/** Floating button that appears once the window is scrolled past 280px and scrolls back to the top, using an instant jump when `prefers-reduced-motion` is set. */
|
|
2464
2594
|
declare class SceScrollToTopButtonComponent implements OnInit {
|
|
2465
2595
|
private readonly translate;
|
|
2466
2596
|
readonly ariaLabelOverride: _angular_core.InputSignal<string>;
|
|
@@ -2475,10 +2605,12 @@ declare class SceScrollToTopButtonComponent implements OnInit {
|
|
|
2475
2605
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceScrollToTopButtonComponent, "sce-scroll-to-top-button", never, { "ariaLabelOverride": { "alias": "ariaLabelOverride"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2476
2606
|
}
|
|
2477
2607
|
|
|
2608
|
+
/** One image in the lightbox: its `src` and optional alt text. */
|
|
2478
2609
|
interface ImageGallerySwapperItem {
|
|
2479
2610
|
src: string;
|
|
2480
2611
|
alt?: string;
|
|
2481
2612
|
}
|
|
2613
|
+
/** Full-screen image lightbox with prev/next navigation, arrow-key and Escape handling and body-scroll locking; supplying `activeIndex` switches it from self-managed to parent-controlled paging. */
|
|
2482
2614
|
declare class SceImageGallerySwapperComponent implements OnDestroy {
|
|
2483
2615
|
open: _angular_core.InputSignal<boolean>;
|
|
2484
2616
|
images: _angular_core.InputSignal<ImageGallerySwapperItem[]>;
|
|
@@ -2514,6 +2646,7 @@ declare class SceImageGallerySwapperComponent implements OnDestroy {
|
|
|
2514
2646
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceImageGallerySwapperComponent, "sce-image-gallery-swapper", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "images": { "alias": "images"; "required": false; "isSignal": true; }; "activeIndex": { "alias": "activeIndex"; "required": false; "isSignal": true; }; "initialIndex": { "alias": "initialIndex"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "closeOnBackdropClick": { "alias": "closeOnBackdropClick"; "required": false; "isSignal": true; }; }, { "close": "close"; "activeIndexChange": "activeIndexChange"; }, never, never, true, never>;
|
|
2515
2647
|
}
|
|
2516
2648
|
|
|
2649
|
+
/** Thumbnail grid of an office project's images that opens `sce-image-gallery-swapper` at the clicked index; `imageUrls` and `title` are required. */
|
|
2517
2650
|
declare class SceOfficeProjectGalleryComponent {
|
|
2518
2651
|
readonly imageUrls: _angular_core.InputSignal<string[]>;
|
|
2519
2652
|
readonly title: _angular_core.InputSignal<string>;
|
|
@@ -2542,6 +2675,7 @@ type AsyncPageGateSkeletonVariant = 'info-fields' | 'form-fields' | 'table' | 'n
|
|
|
2542
2675
|
* signal it can wire up, rather than a dead retry button.
|
|
2543
2676
|
*/
|
|
2544
2677
|
type AsyncPageGateRecovery = 'default' | 'handled';
|
|
2678
|
+
/** Wraps a page in its loading/error/ready states, showing a skeleton variant while loading and a `sce-result-state` on failure; with the default `recovery` it emits `reloadRequested` and calls `Location.back()` itself. */
|
|
2545
2679
|
declare class SceAsyncPageGateComponent {
|
|
2546
2680
|
private readonly translate;
|
|
2547
2681
|
private readonly location;
|
|
@@ -2604,11 +2738,13 @@ declare class SceOfflineBannerComponent {
|
|
|
2604
2738
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfflineBannerComponent, "sce-offline-banner", never, { "forceVisible": { "alias": "forceVisible"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2605
2739
|
}
|
|
2606
2740
|
|
|
2741
|
+
/** One choice in `sce-radio-button`, with an optional `description` rendered under the label. */
|
|
2607
2742
|
interface SceRadioOption {
|
|
2608
2743
|
label: string;
|
|
2609
2744
|
description?: string;
|
|
2610
2745
|
value: string | number;
|
|
2611
2746
|
}
|
|
2747
|
+
/** Radio group rendering a required list of options with optional descriptions, where a parent can veto a selection through the `onBeforeChange` guard input. */
|
|
2612
2748
|
declare class SceRadioButtonComponent {
|
|
2613
2749
|
options: _angular_core.InputSignal<SceRadioOption[]>;
|
|
2614
2750
|
value: _angular_core.InputSignal<string | number | null>;
|
|
@@ -2624,12 +2760,14 @@ declare class SceRadioButtonComponent {
|
|
|
2624
2760
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceRadioButtonComponent, "sce-radio-button", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "onBeforeChange": { "alias": "onBeforeChange"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
2625
2761
|
}
|
|
2626
2762
|
|
|
2763
|
+
/** Dashboard shell that projects a sidebar, header, and main content into a grid; `sidebarCollapsed` narrows the sidebar column, and it uses `ViewEncapsulation.None`. */
|
|
2627
2764
|
declare class SceDashboardLayoutComponent {
|
|
2628
2765
|
readonly sidebarCollapsed: _angular_core.InputSignal<boolean>;
|
|
2629
2766
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SceDashboardLayoutComponent, never>;
|
|
2630
2767
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceDashboardLayoutComponent, "sce-dashboard-layout", never, { "sidebarCollapsed": { "alias": "sidebarCollapsed"; "required": false; "isSignal": true; }; }, {}, never, ["[sidebar]", "[header]", "*"], true, never>;
|
|
2631
2768
|
}
|
|
2632
2769
|
|
|
2770
|
+
/** Page shell for a form: `title`/`subtitle` header, a projected form body, and an action footer; it owns the `<form>` element and re-emits its submit as `submitted`, and uses `ViewEncapsulation.None`. */
|
|
2633
2771
|
declare class SceFormPageLayoutComponent {
|
|
2634
2772
|
readonly title: _angular_core.InputSignal<string>;
|
|
2635
2773
|
readonly subtitle: _angular_core.InputSignal<string | undefined>;
|
|
@@ -2638,6 +2776,7 @@ declare class SceFormPageLayoutComponent {
|
|
|
2638
2776
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceFormPageLayoutComponent, "sce-form-page-layout", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; }, { "submitted": "submitted"; }, never, ["*", "[actions]"], true, never>;
|
|
2639
2777
|
}
|
|
2640
2778
|
|
|
2779
|
+
/** Page shell for a list/table screen: `title` header plus projected filter, toolbar, and content slots; `showFilters` defaults to true, and it uses `ViewEncapsulation.None`. */
|
|
2641
2780
|
declare class SceListPageLayoutComponent {
|
|
2642
2781
|
readonly title: _angular_core.InputSignal<string>;
|
|
2643
2782
|
readonly showFilters: _angular_core.InputSignal<boolean>;
|
|
@@ -2664,6 +2803,7 @@ interface AccountSwitcherOption {
|
|
|
2664
2803
|
crNumber?: string;
|
|
2665
2804
|
licenseNumber?: string;
|
|
2666
2805
|
}
|
|
2806
|
+
/** Header trigger plus popover listing the user's accounts, emitting select/enter-dashboard/logout; requires `selectedAccountId`. */
|
|
2667
2807
|
declare class SceAccountSwitcherComponent {
|
|
2668
2808
|
private readonly language;
|
|
2669
2809
|
private readonly elRef;
|
|
@@ -2788,6 +2928,7 @@ declare class SceLogoutModalComponent {
|
|
|
2788
2928
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceLogoutModalComponent, "sce-logout-modal", never, { "visible": { "alias": "visible"; "required": true; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; }, { "cancel": "cancel"; "confirm": "confirm"; }, never, never, true, never>;
|
|
2789
2929
|
}
|
|
2790
2930
|
|
|
2931
|
+
/** One stop on a guided tour: a CSS selector for the element to spotlight plus the i18n keys for its popover title and body. */
|
|
2791
2932
|
interface GuidedTourStep {
|
|
2792
2933
|
target: string;
|
|
2793
2934
|
titleKey: string;
|
|
@@ -2803,6 +2944,7 @@ interface PopoverRect {
|
|
|
2803
2944
|
top: number;
|
|
2804
2945
|
left: number;
|
|
2805
2946
|
}
|
|
2947
|
+
/** Guided product tour overlay that scrolls to and spotlights each step's target selector and positions a popover beside it, emitting `complete` on the last step and `skip` on Escape. */
|
|
2806
2948
|
declare class SceGuidedTourComponent implements OnDestroy {
|
|
2807
2949
|
private readonly platformId;
|
|
2808
2950
|
locale: _angular_core.InputSignal<"ar" | "en">;
|
|
@@ -2831,6 +2973,7 @@ declare class SceGuidedTourComponent implements OnDestroy {
|
|
|
2831
2973
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceGuidedTourComponent, "sce-guided-tour", never, { "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "tourId": { "alias": "tourId"; "required": false; "isSignal": true; }; "steps": { "alias": "steps"; "required": true; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; }, { "complete": "complete"; "skip": "skip"; }, never, never, true, never>;
|
|
2832
2974
|
}
|
|
2833
2975
|
|
|
2976
|
+
/** Dialog that lets the user crop, zoom and rotate a profile photo and emits the result as a JPEG `File`; binding the `applying` input keeps the dialog open for an async upload instead of auto-closing on apply. */
|
|
2834
2977
|
declare class SceProfilePhotoEditDialogComponent {
|
|
2835
2978
|
private readonly translate;
|
|
2836
2979
|
readonly visible: _angular_core.InputSignal<boolean>;
|
|
@@ -2892,12 +3035,14 @@ declare class SceContractQrCodeComponent {
|
|
|
2892
3035
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceContractQrCodeComponent, "sce-contract-qr-code", never, { "contractNumber": { "alias": "contractNumber"; "required": false; "isSignal": true; }; "documentContractId": { "alias": "documentContractId"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2893
3036
|
}
|
|
2894
3037
|
|
|
3038
|
+
/** A picked map location: its latitude, longitude, and the reverse-geocoded address string. */
|
|
2895
3039
|
interface GeoLocationValue {
|
|
2896
3040
|
lat: number;
|
|
2897
3041
|
lng: number;
|
|
2898
3042
|
address: string;
|
|
2899
3043
|
}
|
|
2900
3044
|
|
|
3045
|
+
/** Geo-location field that displays the currently selected coordinates and address and opens `sce-location-picker-dialog` to choose a new one. */
|
|
2901
3046
|
declare class SceGeoLocationFieldComponent {
|
|
2902
3047
|
readonly label: _angular_core.InputSignal<string>;
|
|
2903
3048
|
readonly value: _angular_core.InputSignal<GeoLocationValue | null>;
|
|
@@ -2915,6 +3060,7 @@ declare class SceGeoLocationFieldComponent {
|
|
|
2915
3060
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceGeoLocationFieldComponent, "sce-geo-location-field", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
2916
3061
|
}
|
|
2917
3062
|
|
|
3063
|
+
/** Modal Leaflet map dialog for picking a coordinate, bounded to Saudi Arabia, which validates each click or marker drag, reverse-geocodes the position to an address via Nominatim, and reverts to the last valid point when validation fails. */
|
|
2918
3064
|
declare class SceLocationPickerDialogComponent implements OnDestroy {
|
|
2919
3065
|
readonly visible: _angular_core.InputSignal<boolean>;
|
|
2920
3066
|
readonly locale: _angular_core.InputSignal<"ar" | "en">;
|
|
@@ -2951,18 +3097,21 @@ declare class SceLocationPickerDialogComponent implements OnDestroy {
|
|
|
2951
3097
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceLocationPickerDialogComponent, "sce-location-picker-dialog", never, { "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "initialLat": { "alias": "initialLat"; "required": false; "isSignal": true; }; "initialLng": { "alias": "initialLng"; "required": false; "isSignal": true; }; }, { "dialogClose": "dialogClose"; "confirm": "confirm"; }, never, never, true, never>;
|
|
2952
3098
|
}
|
|
2953
3099
|
|
|
3100
|
+
/** Dashboard page heading rendering a single translated `<h1>` from `titleKey`; the whole header is omitted when `titleKey` is empty. */
|
|
2954
3101
|
declare class DashboardPageHeaderComponent {
|
|
2955
3102
|
readonly titleKey: _angular_core.InputSignal<string>;
|
|
2956
3103
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DashboardPageHeaderComponent, never>;
|
|
2957
3104
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DashboardPageHeaderComponent, "sce-dashboard-page-header", never, { "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2958
3105
|
}
|
|
2959
3106
|
|
|
3107
|
+
/** A pin on `sce-osm-leaflet-map`, optionally draggable and carrying raw `popupHtml` for its popup bubble. */
|
|
2960
3108
|
interface OsmMapMarker {
|
|
2961
3109
|
lat: number;
|
|
2962
3110
|
lng: number;
|
|
2963
3111
|
popupHtml?: string;
|
|
2964
3112
|
draggable?: boolean;
|
|
2965
3113
|
}
|
|
3114
|
+
/** OpenStreetMap Leaflet map that lazily loads Leaflet, renders the given markers and emits map clicks and marker drag-ends; setting `interactive` to false disables panning, zooming, the zoom control and click events. */
|
|
2966
3115
|
declare class SceOsmLeafletMapComponent implements OnDestroy {
|
|
2967
3116
|
readonly latitude: _angular_core.InputSignal<number>;
|
|
2968
3117
|
readonly longitude: _angular_core.InputSignal<number>;
|
|
@@ -2990,6 +3139,7 @@ declare class SceOsmLeafletMapComponent implements OnDestroy {
|
|
|
2990
3139
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOsmLeafletMapComponent, "sce-osm-leaflet-map", never, { "latitude": { "alias": "latitude"; "required": false; "isSignal": true; }; "longitude": { "alias": "longitude"; "required": false; "isSignal": true; }; "zoom": { "alias": "zoom"; "required": false; "isSignal": true; }; "markers": { "alias": "markers"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; }, { "mapClick": "mapClick"; "markerDragEnd": "markerDragEnd"; }, never, never, true, never>;
|
|
2991
3140
|
}
|
|
2992
3141
|
|
|
3142
|
+
/** Read-only map of an office's location: a Leaflet map with a marker when valid coordinates are given, a Google Maps embed built from the address when they are not, and a "not specified" fallback when neither is available. */
|
|
2993
3143
|
declare class SceOfficeLocationMapComponent implements AfterViewInit, OnDestroy {
|
|
2994
3144
|
private readonly sanitizer;
|
|
2995
3145
|
readonly latitude: _angular_core.InputSignal<number | null | undefined>;
|
|
@@ -3007,11 +3157,13 @@ declare class SceOfficeLocationMapComponent implements AfterViewInit, OnDestroy
|
|
|
3007
3157
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeLocationMapComponent, "sce-office-location-map", never, { "latitude": { "alias": "latitude"; "required": false; "isSignal": true; }; "longitude": { "alias": "longitude"; "required": false; "isSignal": true; }; "address": { "alias": "address"; "required": false; "isSignal": true; }; "emptyLabel": { "alias": "emptyLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3008
3158
|
}
|
|
3009
3159
|
|
|
3160
|
+
/** A position chosen in `sce-osm-location-picker`: coordinates plus the reverse-geocoded address when Nominatim returned one. */
|
|
3010
3161
|
interface LocationPickerValue {
|
|
3011
3162
|
lat: number;
|
|
3012
3163
|
lng: number;
|
|
3013
3164
|
address?: string;
|
|
3014
3165
|
}
|
|
3166
|
+
/** Location picker pairing an OSM Leaflet map with a Nominatim search box, which validates every clicked, dragged or searched position before placing a draggable pin and emitting it with its reverse-geocoded address. */
|
|
3015
3167
|
declare class SceOsmLocationPickerComponent {
|
|
3016
3168
|
readonly initialLat: _angular_core.InputSignal<number>;
|
|
3017
3169
|
readonly initialLng: _angular_core.InputSignal<number>;
|
|
@@ -3044,11 +3196,13 @@ declare class SceOsmLocationPickerComponent {
|
|
|
3044
3196
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOsmLocationPickerComponent, "sce-osm-location-picker", never, { "initialLat": { "alias": "initialLat"; "required": false; "isSignal": true; }; "initialLng": { "alias": "initialLng"; "required": false; "isSignal": true; }; "zoom": { "alias": "zoom"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; }, { "locationSelect": "locationSelect"; }, never, never, true, never>;
|
|
3045
3197
|
}
|
|
3046
3198
|
|
|
3199
|
+
/** A position picked on the Google map: coordinates plus the geocoded address when one was resolved. */
|
|
3047
3200
|
interface GoogleMapsLocationValue {
|
|
3048
3201
|
lat: number;
|
|
3049
3202
|
lng: number;
|
|
3050
3203
|
address?: string;
|
|
3051
3204
|
}
|
|
3205
|
+
/** Google Maps location picker that lazily injects the Maps JS API, drops a marker where the user clicks and emits the coordinate; it stays blank unless an `apiKey` is supplied. */
|
|
3052
3206
|
declare class SceGoogleMapsLocationPickerComponent implements OnDestroy {
|
|
3053
3207
|
readonly apiKey: _angular_core.InputSignal<string>;
|
|
3054
3208
|
readonly initialLat: _angular_core.InputSignal<number>;
|
|
@@ -3119,6 +3273,7 @@ interface ChartTooltipData {
|
|
|
3119
3273
|
color?: string;
|
|
3120
3274
|
}
|
|
3121
3275
|
|
|
3276
|
+
/** Standalone chart legend rendering colour markers and labels in a row or column — used instead of the built-in ECharts legend. */
|
|
3122
3277
|
declare class SceChartLegendComponent {
|
|
3123
3278
|
/** List of legend items to display */
|
|
3124
3279
|
readonly items: _angular_core.InputSignal<ChartLegendItem[]>;
|
|
@@ -3138,17 +3293,20 @@ declare class SceChartLegendComponent {
|
|
|
3138
3293
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceChartLegendComponent, "sce-chart-legend", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "fontSize": { "alias": "fontSize"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "itemGap": { "alias": "itemGap"; "required": false; "isSignal": true; }; "justifyContent": { "alias": "justifyContent"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3139
3294
|
}
|
|
3140
3295
|
|
|
3296
|
+
/** One bar series: values aligned to the chart's categories, an optional colour, and a `stack` key that groups it with other series into a stacked bar. */
|
|
3141
3297
|
interface BarSeriesData {
|
|
3142
3298
|
name: string;
|
|
3143
3299
|
data: number[];
|
|
3144
3300
|
color?: string;
|
|
3145
3301
|
stack?: string;
|
|
3146
3302
|
}
|
|
3303
|
+
/** A smoothed, area-filled line series drawn on top of the bars, sharing the bar chart's category axis. */
|
|
3147
3304
|
interface OverlayLineSeries {
|
|
3148
3305
|
name: string;
|
|
3149
3306
|
data: number[];
|
|
3150
3307
|
color?: string;
|
|
3151
3308
|
}
|
|
3309
|
+
/** ECharts bar chart with optional stacking, overlay line series and a custom legend; axis side auto-detects RTL unless `isRtl` overrides it. */
|
|
3152
3310
|
declare class SceBarChartComponent {
|
|
3153
3311
|
private readonly el;
|
|
3154
3312
|
/** Manual direction override; null auto-detects from computed style (RTL-first default). */
|
|
@@ -3180,6 +3338,7 @@ declare class SceBarChartComponent {
|
|
|
3180
3338
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceBarChartComponent, "sce-bar-chart", never, { "isRtl": { "alias": "isRtl"; "required": false; "isSignal": true; }; "series": { "alias": "series"; "required": false; "isSignal": true; }; "overlayLineSeries": { "alias": "overlayLineSeries"; "required": false; "isSignal": true; }; "categories": { "alias": "categories"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "barWidth": { "alias": "barWidth"; "required": false; "isSignal": true; }; "borderRadius": { "alias": "borderRadius"; "required": false; "isSignal": true; }; "showLegend": { "alias": "showLegend"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3181
3339
|
}
|
|
3182
3340
|
|
|
3341
|
+
/** One horizontal bar; `maxValue` overrides the chart-wide maximum for this bar only, and `color` overrides the chart's default colour. */
|
|
3183
3342
|
interface HorizontalBarItem {
|
|
3184
3343
|
label: string;
|
|
3185
3344
|
value: number;
|
|
@@ -3191,6 +3350,7 @@ interface ComputedBarItem extends HorizontalBarItem {
|
|
|
3191
3350
|
barColor: string;
|
|
3192
3351
|
segmentFills: number[];
|
|
3193
3352
|
}
|
|
3353
|
+
/** Pure-CSS horizontal bar chart (no ECharts) where each bar is split into `segments` that fill proportionally to its value. */
|
|
3194
3354
|
declare class SceHorizontalBarChartComponent {
|
|
3195
3355
|
/** Data items for horizontal bars */
|
|
3196
3356
|
readonly data: _angular_core.InputSignal<HorizontalBarItem[]>;
|
|
@@ -3213,6 +3373,7 @@ declare class SceHorizontalBarChartComponent {
|
|
|
3213
3373
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceHorizontalBarChartComponent, "sce-horizontal-bar-chart", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "maxValue": { "alias": "maxValue"; "required": false; "isSignal": true; }; "showValues": { "alias": "showValues"; "required": false; "isSignal": true; }; "defaultColor": { "alias": "defaultColor"; "required": false; "isSignal": true; }; "trackColor": { "alias": "trackColor"; "required": false; "isSignal": true; }; "barHeight": { "alias": "barHeight"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "segments": { "alias": "segments"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3214
3374
|
}
|
|
3215
3375
|
|
|
3376
|
+
/** ECharts multi-series line chart with optional area fill and a highlight bar/marker at `highlightIndex`; axis side auto-detects RTL unless `isRtl` overrides it. */
|
|
3216
3377
|
declare class SceLineChartComponent {
|
|
3217
3378
|
private readonly el;
|
|
3218
3379
|
/** Manual direction override; null auto-detects from computed style (RTL-first default). */
|
|
@@ -3246,6 +3407,7 @@ declare class SceLineChartComponent {
|
|
|
3246
3407
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceLineChartComponent, "sce-line-chart", never, { "isRtl": { "alias": "isRtl"; "required": false; "isSignal": true; }; "series": { "alias": "series"; "required": false; "isSignal": true; }; "categories": { "alias": "categories"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "showArea": { "alias": "showArea"; "required": false; "isSignal": true; }; "smooth": { "alias": "smooth"; "required": false; "isSignal": true; }; "showLegend": { "alias": "showLegend"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showXAxisLabels": { "alias": "showXAxisLabels"; "required": false; "isSignal": true; }; "highlightIndex": { "alias": "highlightIndex"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3247
3408
|
}
|
|
3248
3409
|
|
|
3410
|
+
/** ECharts gradient area chart with hidden axes and an optional highlighted point marker at `highlightIndex`. */
|
|
3249
3411
|
declare class SceAreaChartComponent {
|
|
3250
3412
|
/** Data points for the chart */
|
|
3251
3413
|
readonly data: _angular_core.InputSignal<number[]>;
|
|
@@ -3270,6 +3432,7 @@ declare class SceAreaChartComponent {
|
|
|
3270
3432
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceAreaChartComponent, "sce-area-chart", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "categories": { "alias": "categories"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "startColor": { "alias": "startColor"; "required": false; "isSignal": true; }; "endColor": { "alias": "endColor"; "required": false; "isSignal": true; }; "smooth": { "alias": "smooth"; "required": false; "isSignal": true; }; "tooltipLabel": { "alias": "tooltipLabel"; "required": false; "isSignal": true; }; "highlightIndex": { "alias": "highlightIndex"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3271
3433
|
}
|
|
3272
3434
|
|
|
3435
|
+
/** ECharts pie chart with optional in-slice percentage labels, an optional centre hole and a custom legend. */
|
|
3273
3436
|
declare class ScePieChartComponent {
|
|
3274
3437
|
/** Data items for the pie segments */
|
|
3275
3438
|
readonly data: _angular_core.InputSignal<ChartSeriesItem[]>;
|
|
@@ -3297,6 +3460,7 @@ declare class ScePieChartComponent {
|
|
|
3297
3460
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ScePieChartComponent, "sce-pie-chart", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "radius": { "alias": "radius"; "required": false; "isSignal": true; }; "showLabels": { "alias": "showLabels"; "required": false; "isSignal": true; }; "showLegend": { "alias": "showLegend"; "required": false; "isSignal": true; }; "startAngle": { "alias": "startAngle"; "required": false; "isSignal": true; }; "showCenterHole": { "alias": "showCenterHole"; "required": false; "isSignal": true; }; "innerRadius": { "alias": "innerRadius"; "required": false; "isSignal": true; }; "itemRadius": { "alias": "itemRadius"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3298
3461
|
}
|
|
3299
3462
|
|
|
3463
|
+
/** Concentric ring ("donut") chart where each data item gets its own gauge ring sized against `maxRingValue`, with optional centred value and label. */
|
|
3300
3464
|
declare class SceDonutChartComponent {
|
|
3301
3465
|
/** Data items for the donut rings */
|
|
3302
3466
|
readonly data: _angular_core.InputSignal<ChartSeriesItem[]>;
|
|
@@ -3335,6 +3499,7 @@ interface RingChartLegendItem {
|
|
|
3335
3499
|
color: string;
|
|
3336
3500
|
value: string | number;
|
|
3337
3501
|
}
|
|
3502
|
+
/** ECharts donut ring with a centred label/value and a legend that also shows each item's value; the tooltip unit is hard-coded to Arabic "طلبات". */
|
|
3338
3503
|
declare class SceRingChartComponent {
|
|
3339
3504
|
/** Data items for the ring segments */
|
|
3340
3505
|
readonly data: _angular_core.InputSignal<ChartSeriesItem[]>;
|
|
@@ -3358,6 +3523,7 @@ declare class SceRingChartComponent {
|
|
|
3358
3523
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceRingChartComponent, "sce-ring-chart", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "centerLabel": { "alias": "centerLabel"; "required": false; "isSignal": true; }; "centerValue": { "alias": "centerValue"; "required": false; "isSignal": true; }; "innerRadius": { "alias": "innerRadius"; "required": false; "isSignal": true; }; "outerRadius": { "alias": "outerRadius"; "required": false; "isSignal": true; }; "showLegend": { "alias": "showLegend"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "startAngle": { "alias": "startAngle"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3359
3524
|
}
|
|
3360
3525
|
|
|
3526
|
+
/** Semicircular tick-mark gauge for a 0-100 value; when `isRtl` is set the chart's own text is hidden so the caller can overlay it unmirrored. */
|
|
3361
3527
|
declare class SceGaugeChartComponent {
|
|
3362
3528
|
/** Current value (0-100) */
|
|
3363
3529
|
readonly value: _angular_core.InputSignal<number>;
|
|
@@ -3387,12 +3553,14 @@ declare class SceGaugeChartComponent {
|
|
|
3387
3553
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceGaugeChartComponent, "sce-gauge-chart", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "startAngle": { "alias": "startAngle"; "required": false; "isSignal": true; }; "endAngle": { "alias": "endAngle"; "required": false; "isSignal": true; }; "isRtl": { "alias": "isRtl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3388
3554
|
}
|
|
3389
3555
|
|
|
3556
|
+
/** One segmented bar; unlike `HorizontalBarItem`, its `maxValue` is required and always scopes the fill to this bar alone. */
|
|
3390
3557
|
interface MultiSegmentBarItem {
|
|
3391
3558
|
label: string;
|
|
3392
3559
|
value: number;
|
|
3393
3560
|
maxValue: number;
|
|
3394
3561
|
color?: string;
|
|
3395
3562
|
}
|
|
3563
|
+
/** Pure-CSS horizontal bars (no ECharts), each split into `segmentCount` sub-segments that fill against the item's own `maxValue`. */
|
|
3396
3564
|
declare class SceMultiSegmentBarChartComponent {
|
|
3397
3565
|
private readonly el;
|
|
3398
3566
|
/** Data items for the bar chart */
|
|
@@ -3427,6 +3595,7 @@ declare class SceMultiSegmentBarChartComponent {
|
|
|
3427
3595
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceMultiSegmentBarChartComponent, "sce-multi-segment-bar-chart", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "barHeight": { "alias": "barHeight"; "required": false; "isSignal": true; }; "segmentCount": { "alias": "segmentCount"; "required": false; "isSignal": true; }; "segmentGap": { "alias": "segmentGap"; "required": false; "isSignal": true; }; "rowGap": { "alias": "rowGap"; "required": false; "isSignal": true; }; "defaultColor": { "alias": "defaultColor"; "required": false; "isSignal": true; }; "trackColor": { "alias": "trackColor"; "required": false; "isSignal": true; }; "isRtl": { "alias": "isRtl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3428
3596
|
}
|
|
3429
3597
|
|
|
3598
|
+
/** Half-circle ECharts gauge whose arc is coloured by proportional segment stops, with an optional centred label and value. */
|
|
3430
3599
|
declare class SceMultiSegmentGaugeComponent {
|
|
3431
3600
|
/** Segments to display on the gauge arc */
|
|
3432
3601
|
readonly segments: _angular_core.InputSignal<ChartSeriesItem[]>;
|
|
@@ -3446,6 +3615,7 @@ declare class SceMultiSegmentGaugeComponent {
|
|
|
3446
3615
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceMultiSegmentGaugeComponent, "sce-multi-segment-gauge", never, { "segments": { "alias": "segments"; "required": false; "isSignal": true; }; "centerLabel": { "alias": "centerLabel"; "required": false; "isSignal": true; }; "centerValue": { "alias": "centerValue"; "required": false; "isSignal": true; }; "showLegend": { "alias": "showLegend"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3447
3616
|
}
|
|
3448
3617
|
|
|
3618
|
+
/** One slice of the stacked bar; `barValue` lets the drawn width differ from the `value` shown in the legend, and `segments` splits the slice into that many sub-segments. */
|
|
3449
3619
|
interface StackedDistributionChartItem {
|
|
3450
3620
|
label: string;
|
|
3451
3621
|
value: number;
|
|
@@ -3461,6 +3631,7 @@ interface ComputedStackedDistributionChartItem extends StackedDistributionChartI
|
|
|
3461
3631
|
percentage: number;
|
|
3462
3632
|
subSegments: number[];
|
|
3463
3633
|
}
|
|
3634
|
+
/** Single stacked bar showing each item's share of the total plus a legend row per item, with an auto-generated aria summary and RTL auto-detection. */
|
|
3464
3635
|
declare class SceStackedDistributionChartComponent {
|
|
3465
3636
|
private readonly el;
|
|
3466
3637
|
/** Segments rendered in the distribution bar and legend rows */
|
|
@@ -3495,6 +3666,7 @@ interface StatGaugeRow {
|
|
|
3495
3666
|
value: string | number;
|
|
3496
3667
|
color: string;
|
|
3497
3668
|
}
|
|
3669
|
+
/** Half-circle gauge of `value` out of `total`, rendered with a subtitle and a list of colour-coded stat rows below it. */
|
|
3498
3670
|
declare class SceStatGaugeComponent {
|
|
3499
3671
|
/** Current (numerator) value, e.g. 120 */
|
|
3500
3672
|
readonly value: _angular_core.InputSignal<number>;
|
|
@@ -3518,6 +3690,7 @@ declare class SceStatGaugeComponent {
|
|
|
3518
3690
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceStatGaugeComponent, "sce-stat-gauge", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "total": { "alias": "total"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "stats": { "alias": "stats"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "markerSize": { "alias": "markerSize"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3519
3691
|
}
|
|
3520
3692
|
|
|
3693
|
+
/** SVG progress ring (no ECharts) with a centred label and value, an optional gradient stroke and RTL auto-detection; `progress` may exceed 100. */
|
|
3521
3694
|
declare class SceStatRingComponent {
|
|
3522
3695
|
private readonly el;
|
|
3523
3696
|
/** Center label shown above the value */
|
|
@@ -3569,11 +3742,13 @@ declare class SceStatRingComponent {
|
|
|
3569
3742
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceStatRingComponent, "sce-stat-ring", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "progress": { "alias": "progress"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "trackStrokeWidth": { "alias": "trackStrokeWidth"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "gradientStartColor": { "alias": "gradientStartColor"; "required": false; "isSignal": true; }; "gradientEndColor": { "alias": "gradientEndColor"; "required": false; "isSignal": true; }; "trackColor": { "alias": "trackColor"; "required": false; "isSignal": true; }; "startAngle": { "alias": "startAngle"; "required": false; "isSignal": true; }; "useGradient": { "alias": "useGradient"; "required": false; "isSignal": true; }; "isRtl": { "alias": "isRtl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3570
3743
|
}
|
|
3571
3744
|
|
|
3745
|
+
/** Captions for the scale's low, mid and high segments; supply already-translated text, as the component does not translate them. */
|
|
3572
3746
|
interface ScaleIndicatorLabels {
|
|
3573
3747
|
low: string;
|
|
3574
3748
|
mid: string;
|
|
3575
3749
|
high: string;
|
|
3576
3750
|
}
|
|
3751
|
+
/** Three-segment scale track showing either a single thumb or a highlighted range when both `start` and `end` are given; the segment labels default to hardcoded Arabic strings. */
|
|
3577
3752
|
declare class SceScaleIndicatorComponent {
|
|
3578
3753
|
/** Title displayed above the scale */
|
|
3579
3754
|
readonly title: _angular_core.InputSignal<string>;
|
|
@@ -3614,6 +3789,7 @@ declare class SceScaleIndicatorComponent {
|
|
|
3614
3789
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceScaleIndicatorComponent, "sce-scale-indicator", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "start": { "alias": "start"; "required": false; "isSignal": true; }; "end": { "alias": "end"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; "activeColor": { "alias": "activeColor"; "required": false; "isSignal": true; }; "trackColor": { "alias": "trackColor"; "required": false; "isSignal": true; }; "barHeight": { "alias": "barHeight"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3615
3790
|
}
|
|
3616
3791
|
|
|
3792
|
+
/** Dashboard overview tile showing a stat value, translated label, icon on a coloured background and an optional trend sparkline. */
|
|
3617
3793
|
declare class SceOverviewStatCardComponent {
|
|
3618
3794
|
readonly value: _angular_core.InputSignal<string | number>;
|
|
3619
3795
|
readonly labelKey: _angular_core.InputSignal<string>;
|
|
@@ -3624,6 +3800,7 @@ declare class SceOverviewStatCardComponent {
|
|
|
3624
3800
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOverviewStatCardComponent, "sce-overview-stat-card", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "labelKey": { "alias": "labelKey"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": true; "isSignal": true; }; "iconBg": { "alias": "iconBg"; "required": true; "isSignal": true; }; "trend": { "alias": "trend"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3625
3801
|
}
|
|
3626
3802
|
|
|
3803
|
+
/** Small dashboard card linking to a service, showing its icon and a count with a role-aware translated suffix. */
|
|
3627
3804
|
declare class SceServiceMiniCardComponent {
|
|
3628
3805
|
readonly title: _angular_core.InputSignal<string>;
|
|
3629
3806
|
readonly count: _angular_core.InputSignal<number>;
|
|
@@ -3635,6 +3812,7 @@ declare class SceServiceMiniCardComponent {
|
|
|
3635
3812
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceServiceMiniCardComponent, "sce-service-mini-card", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "count": { "alias": "count"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": true; "isSignal": true; }; "link": { "alias": "link"; "required": true; "isSignal": true; }; "countSuffix": { "alias": "countSuffix"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3636
3813
|
}
|
|
3637
3814
|
|
|
3815
|
+
/** View model of a featured-office card, carrying both the raw `reviewCount` (zero triggers the fallback) and its locale-formatted label. */
|
|
3638
3816
|
interface FeaturedOffice {
|
|
3639
3817
|
id: string;
|
|
3640
3818
|
title: string;
|
|
@@ -3647,12 +3825,14 @@ interface FeaturedOffice {
|
|
|
3647
3825
|
tabs: string[];
|
|
3648
3826
|
href: string;
|
|
3649
3827
|
}
|
|
3828
|
+
/** Dashboard card for a featured engineering office showing rating, review count, country and service tabs; a zero review count renders the "no reviews yet" fallback. */
|
|
3650
3829
|
declare class SceFeaturedOfficeCardComponent {
|
|
3651
3830
|
readonly office: _angular_core.InputSignal<FeaturedOffice>;
|
|
3652
3831
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SceFeaturedOfficeCardComponent, never>;
|
|
3653
3832
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceFeaturedOfficeCardComponent, "sce-featured-office-card", never, { "office": { "alias": "office"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3654
3833
|
}
|
|
3655
3834
|
|
|
3835
|
+
/** View model of a contract-request card; `deadline` and `budget` are pre-formatted display strings and `tags` are raw status labels whose tone is resolved at render time. */
|
|
3656
3836
|
interface ContractRequestCard {
|
|
3657
3837
|
id: string;
|
|
3658
3838
|
title: string;
|
|
@@ -3664,6 +3844,7 @@ interface ContractRequestCard {
|
|
|
3664
3844
|
tags: string[];
|
|
3665
3845
|
offersCount?: number;
|
|
3666
3846
|
}
|
|
3847
|
+
/** Dashboard card summarising a contract request (office, location, deadline, budget) with tone-resolved tags, linking to its detail route. */
|
|
3667
3848
|
declare class SceContractRequestCardComponent {
|
|
3668
3849
|
readonly request: _angular_core.InputSignal<ContractRequestCard>;
|
|
3669
3850
|
readonly tagTones: _angular_core.Signal<_moatamed_sce_ui_components.BusinessStatusTone[]>;
|
|
@@ -3671,6 +3852,7 @@ declare class SceContractRequestCardComponent {
|
|
|
3671
3852
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceContractRequestCardComponent, "sce-contract-request-card", never, { "request": { "alias": "request"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3672
3853
|
}
|
|
3673
3854
|
|
|
3855
|
+
/** One row of the latest-contracts table; `status` is the display label and `statusVariant` the already-resolved `BusinessStatusTone`. */
|
|
3674
3856
|
interface ContractRow {
|
|
3675
3857
|
contractNumber: string;
|
|
3676
3858
|
service: string;
|
|
@@ -3679,6 +3861,7 @@ interface ContractRow {
|
|
|
3679
3861
|
status: string;
|
|
3680
3862
|
statusVariant: BusinessStatusTone;
|
|
3681
3863
|
}
|
|
3864
|
+
/** Dashboard table of the latest contracts with status tags, showing five skeleton rows while `loading`; the party column header label is caller-supplied. */
|
|
3682
3865
|
declare class SceLatestContractsTableComponent {
|
|
3683
3866
|
readonly contracts: _angular_core.InputSignal<ContractRow[]>;
|
|
3684
3867
|
readonly partyColumnLabel: _angular_core.InputSignal<string>;
|
|
@@ -3688,6 +3871,7 @@ declare class SceLatestContractsTableComponent {
|
|
|
3688
3871
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceLatestContractsTableComponent, "sce-latest-contracts-table", never, { "contracts": { "alias": "contracts"; "required": true; "isSignal": true; }; "partyColumnLabel": { "alias": "partyColumnLabel"; "required": true; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3689
3872
|
}
|
|
3690
3873
|
|
|
3874
|
+
/** One user-type choice card; `titleKey` and `descriptionKey` are i18n keys, not literal text. */
|
|
3691
3875
|
interface LoginUserTypeCard {
|
|
3692
3876
|
type: string;
|
|
3693
3877
|
titleKey: string;
|
|
@@ -3695,6 +3879,7 @@ interface LoginUserTypeCard {
|
|
|
3695
3879
|
icon: string;
|
|
3696
3880
|
iconVariant: 'primary' | 'muted';
|
|
3697
3881
|
}
|
|
3882
|
+
/** Login flow step presenting the selectable user-type cards and emitting the picked type plus a continue action. */
|
|
3698
3883
|
declare class SceLoginUserTypeStepComponent {
|
|
3699
3884
|
readonly cards: _angular_core.InputSignal<LoginUserTypeCard[]>;
|
|
3700
3885
|
readonly selectedType: _angular_core.InputSignal<string | null>;
|
|
@@ -3712,6 +3897,7 @@ declare class SceLoginUserTypeStepComponent {
|
|
|
3712
3897
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceLoginUserTypeStepComponent, "sce-login-user-type-step", never, { "cards": { "alias": "cards"; "required": true; "isSignal": true; }; "selectedType": { "alias": "selectedType"; "required": false; "isSignal": true; }; }, { "selectType": "selectType"; "continue": "continue"; }, never, never, true, never>;
|
|
3713
3898
|
}
|
|
3714
3899
|
|
|
3900
|
+
/** Login flow step capturing national ID and birth date (Hijri/Gregorian), fully controlled — every field value and error is an input. */
|
|
3715
3901
|
declare class SceLoginCredentialsStepComponent {
|
|
3716
3902
|
readonly titleKey: _angular_core.InputSignal<string>;
|
|
3717
3903
|
readonly subtitleKey: _angular_core.InputSignal<string>;
|
|
@@ -3741,6 +3927,7 @@ declare class SceLoginCredentialsStepComponent {
|
|
|
3741
3927
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceLoginCredentialsStepComponent, "sce-login-credentials-step", never, { "titleKey": { "alias": "titleKey"; "required": true; "isSignal": true; }; "subtitleKey": { "alias": "subtitleKey"; "required": true; "isSignal": true; }; "nationalId": { "alias": "nationalId"; "required": true; "isSignal": true; }; "nationalIdDatalistId": { "alias": "nationalIdDatalistId"; "required": false; "isSignal": true; }; "nationalIdError": { "alias": "nationalIdError"; "required": false; "isSignal": true; }; "nationalIdHistory": { "alias": "nationalIdHistory"; "required": false; "isSignal": true; }; "filteredNationalIdHistory": { "alias": "filteredNationalIdHistory"; "required": false; "isSignal": true; }; "birthDate": { "alias": "birthDate"; "required": true; "isSignal": true; }; "birthDateDatalistId": { "alias": "birthDateDatalistId"; "required": false; "isSignal": true; }; "birthDateError": { "alias": "birthDateError"; "required": false; "isSignal": true; }; "birthDateHistory": { "alias": "birthDateHistory"; "required": false; "isSignal": true; }; "birthDateCalendar": { "alias": "birthDateCalendar"; "required": true; "isSignal": true; }; "birthDateCalendarLocked": { "alias": "birthDateCalendarLocked"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": true; "isSignal": true; }; "submitting": { "alias": "submitting"; "required": false; "isSignal": true; }; }, { "nationalIdChange": "nationalIdChange"; "nationalIdFocus": "nationalIdFocus"; "nationalIdBlur": "nationalIdBlur"; "birthDateChange": "birthDateChange"; "birthDateBlur": "birthDateBlur"; "birthDateCalendarChange": "birthDateCalendarChange"; "datePickerOpened": "datePickerOpened"; "datePickerClosed": "datePickerClosed"; "submitted": "submitted"; }, never, never, true, never>;
|
|
3742
3928
|
}
|
|
3743
3929
|
|
|
3930
|
+
/** Login flow step with the OTP input, mask toggle and resend countdown; the timer label is supplied by the parent. */
|
|
3744
3931
|
declare class SceLoginOtpStepComponent {
|
|
3745
3932
|
readonly otpValue: _angular_core.InputSignal<string>;
|
|
3746
3933
|
readonly showOtpVisible: _angular_core.InputSignal<boolean>;
|
|
@@ -3756,6 +3943,7 @@ declare class SceLoginOtpStepComponent {
|
|
|
3756
3943
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceLoginOtpStepComponent, "sce-login-otp-step", never, { "otpValue": { "alias": "otpValue"; "required": true; "isSignal": true; }; "showOtpVisible": { "alias": "showOtpVisible"; "required": false; "isSignal": true; }; "otpError": { "alias": "otpError"; "required": false; "isSignal": true; }; "resendSeconds": { "alias": "resendSeconds"; "required": false; "isSignal": true; }; "submitting": { "alias": "submitting"; "required": false; "isSignal": true; }; "resendTimerLabel": { "alias": "resendTimerLabel"; "required": true; "isSignal": true; }; }, { "otpValueChange": "otpValueChange"; "showOtpToggle": "showOtpToggle"; "resend": "resend"; "submitted": "submitted"; }, never, never, true, never>;
|
|
3757
3944
|
}
|
|
3758
3945
|
|
|
3946
|
+
/** View model of one selectable login account: display `name`, `tag`, `description`, `role`, whether it is an individual or organization, and an optional avatar. */
|
|
3759
3947
|
interface LoginAccountOptionView {
|
|
3760
3948
|
id: string;
|
|
3761
3949
|
name: string;
|
|
@@ -3765,6 +3953,7 @@ interface LoginAccountOptionView {
|
|
|
3765
3953
|
kind: 'individual' | 'organization';
|
|
3766
3954
|
avatarSrc?: string | null;
|
|
3767
3955
|
}
|
|
3956
|
+
/** Login flow step that lists the accounts available to the authenticated user and emits the chosen account id. */
|
|
3768
3957
|
declare class SceLoginAccountSelectStepComponent {
|
|
3769
3958
|
readonly accounts: _angular_core.InputSignal<LoginAccountOptionView[]>;
|
|
3770
3959
|
readonly selectedAccountId: _angular_core.InputSignal<string | null>;
|
|
@@ -3776,6 +3965,7 @@ declare class SceLoginAccountSelectStepComponent {
|
|
|
3776
3965
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceLoginAccountSelectStepComponent, "sce-login-account-select-step", never, { "accounts": { "alias": "accounts"; "required": true; "isSignal": true; }; "selectedAccountId": { "alias": "selectedAccountId"; "required": false; "isSignal": true; }; "apiError": { "alias": "apiError"; "required": false; "isSignal": true; }; "submitting": { "alias": "submitting"; "required": false; "isSignal": true; }; }, { "selectAccount": "selectAccount"; "submitted": "submitted"; }, never, never, true, never>;
|
|
3777
3966
|
}
|
|
3778
3967
|
|
|
3968
|
+
/** Login flow step collecting the missing mobile and email of a profile, emitting each change and the final submit. */
|
|
3779
3969
|
declare class SceLoginCompleteDataStepComponent {
|
|
3780
3970
|
readonly mobile: _angular_core.InputSignal<string>;
|
|
3781
3971
|
readonly email: _angular_core.InputSignal<string>;
|
|
@@ -3789,6 +3979,7 @@ declare class SceLoginCompleteDataStepComponent {
|
|
|
3789
3979
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceLoginCompleteDataStepComponent, "sce-login-complete-data-step", never, { "mobile": { "alias": "mobile"; "required": true; "isSignal": true; }; "email": { "alias": "email"; "required": true; "isSignal": true; }; "mobileError": { "alias": "mobileError"; "required": false; "isSignal": true; }; "emailError": { "alias": "emailError"; "required": false; "isSignal": true; }; "submitting": { "alias": "submitting"; "required": false; "isSignal": true; }; }, { "mobileChange": "mobileChange"; "emailChange": "emailChange"; "submitted": "submitted"; }, never, never, true, never>;
|
|
3790
3980
|
}
|
|
3791
3981
|
|
|
3982
|
+
/** Login flow step showing a failure message with a retry action. */
|
|
3792
3983
|
declare class SceLoginErrorStepComponent {
|
|
3793
3984
|
readonly errorMessage: _angular_core.InputSignal<string | undefined>;
|
|
3794
3985
|
readonly submitting: _angular_core.InputSignal<boolean>;
|
|
@@ -3797,10 +3988,12 @@ declare class SceLoginErrorStepComponent {
|
|
|
3797
3988
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceLoginErrorStepComponent, "sce-login-error-step", never, { "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "submitting": { "alias": "submitting"; "required": false; "isSignal": true; }; }, { "retry": "retry"; }, never, never, true, never>;
|
|
3798
3989
|
}
|
|
3799
3990
|
|
|
3991
|
+
/** One crumb in the hero header's trail; omit `href` for the current, non-linked page. */
|
|
3800
3992
|
interface LandingBreadcrumbItem {
|
|
3801
3993
|
label: string;
|
|
3802
3994
|
href?: string;
|
|
3803
3995
|
}
|
|
3996
|
+
/** Landing-page hero header with a title, breadcrumb trail and optional background image, rendered either as decorative left-aligned artwork or as a full-bleed cover photo. */
|
|
3804
3997
|
declare class SceLandingHeroHeaderComponent {
|
|
3805
3998
|
readonly title: _angular_core.InputSignal<string | undefined>;
|
|
3806
3999
|
readonly breadcrumbs: _angular_core.InputSignal<LandingBreadcrumbItem[]>;
|
|
@@ -3823,6 +4016,7 @@ declare class SceDashboardFeatureComingSoonComponent {
|
|
|
3823
4016
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceDashboardFeatureComingSoonComponent, "sce-dashboard-feature-coming-soon", never, { "titleKey": { "alias": "titleKey"; "required": true; "isSignal": true; }; "subtitleKey": { "alias": "subtitleKey"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3824
4017
|
}
|
|
3825
4018
|
|
|
4019
|
+
/** Cell renderer selected for a `GridColumn` (text, status tag, progress bar, toggle, action button/menu, custom template…). */
|
|
3826
4020
|
declare enum ColumnsEnum {
|
|
3827
4021
|
TOGGLE = "toggle",
|
|
3828
4022
|
TEXT = "text",
|
|
@@ -3841,6 +4035,7 @@ declare enum ColumnsEnum {
|
|
|
3841
4035
|
PHONE = "phone"
|
|
3842
4036
|
}
|
|
3843
4037
|
|
|
4038
|
+
/** Marks an `<ng-template sceCustomCol="columnDef">` inside `sce-grid-table` as the renderer for the column whose `columnDef` matches. */
|
|
3844
4039
|
declare class SceCustomColsDirective {
|
|
3845
4040
|
readonly sceCustomCol: _angular_core.InputSignal<string>;
|
|
3846
4041
|
readonly templateRef: TemplateRef<any>;
|
|
@@ -3848,6 +4043,7 @@ declare class SceCustomColsDirective {
|
|
|
3848
4043
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SceCustomColsDirective, "ng-template[sceCustomCol]", never, { "sceCustomCol": { "alias": "sceCustomCol"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3849
4044
|
}
|
|
3850
4045
|
|
|
4046
|
+
/** Marks an `<ng-template sceGridExpansion>` as the expanded-row body of `sce-grid-table`; the row is passed as `$implicit`. */
|
|
3851
4047
|
declare class SceGridExpansionDirective {
|
|
3852
4048
|
readonly templateRef: TemplateRef<any>;
|
|
3853
4049
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SceGridExpansionDirective, never>;
|
|
@@ -3856,6 +4052,7 @@ declare class SceGridExpansionDirective {
|
|
|
3856
4052
|
|
|
3857
4053
|
/** SceTag variant when using sce-tag for status display */
|
|
3858
4054
|
type StatusVariant = 'success' | 'danger' | 'warning' | 'info' | 'neutral' | 'purple' | 'pending' | 'assigned' | 'review' | 'new' | 'closed';
|
|
4055
|
+
/** How one status value renders in a status column: its `label` plus either an `sce-tag` `variant` (preferred) or raw `color`/`bgColor`. */
|
|
3859
4056
|
interface StatusConfig {
|
|
3860
4057
|
label: string;
|
|
3861
4058
|
color?: string;
|
|
@@ -3864,6 +4061,7 @@ interface StatusConfig {
|
|
|
3864
4061
|
variant?: StatusVariant;
|
|
3865
4062
|
}
|
|
3866
4063
|
|
|
4064
|
+
/** Loosely-typed row object for `SceGridTableComponent`; columns address fields by dotted path. */
|
|
3867
4065
|
type GridRow = Record<string, unknown>;
|
|
3868
4066
|
/** Emitted by SceGridTable when the user clicks a sortable column header. */
|
|
3869
4067
|
interface GridSortEvent {
|
|
@@ -3877,13 +4075,16 @@ interface GridPageEvent {
|
|
|
3877
4075
|
rows: number;
|
|
3878
4076
|
first: number;
|
|
3879
4077
|
}
|
|
4078
|
+
/** Data for a progress-bar cell: current `value` out of `max`, its `label` and an optional bar `color`. */
|
|
3880
4079
|
interface ProgressConfig {
|
|
3881
4080
|
value: number;
|
|
3882
4081
|
max: number;
|
|
3883
4082
|
label: string;
|
|
3884
4083
|
color?: string;
|
|
3885
4084
|
}
|
|
4085
|
+
/** Kind of row action in an action column: a route `link`, an inline `command`, or a popup `menu`. */
|
|
3886
4086
|
type GridActionType = 'link' | 'command' | 'menu';
|
|
4087
|
+
/** A single row action button — `link` (route built from the row) or `command` (callback) — with optional icon, icon-only rendering and PrimeNG severity. */
|
|
3887
4088
|
interface GridAction<T extends GridRow = GridRow> {
|
|
3888
4089
|
type: Exclude<GridActionType, 'menu'>;
|
|
3889
4090
|
label: string;
|
|
@@ -3893,6 +4094,7 @@ interface GridAction<T extends GridRow = GridRow> {
|
|
|
3893
4094
|
link?: (row: T) => string;
|
|
3894
4095
|
command?: (row: T) => void;
|
|
3895
4096
|
}
|
|
4097
|
+
/** One entry of a row action menu: label, icon, per-row `command`, optional separator, and a `hidden(row)` predicate evaluated per row. */
|
|
3896
4098
|
interface GridMenuItem<T extends GridRow = GridRow> {
|
|
3897
4099
|
label?: string;
|
|
3898
4100
|
icon?: string;
|
|
@@ -3902,6 +4104,7 @@ interface GridMenuItem<T extends GridRow = GridRow> {
|
|
|
3902
4104
|
/** Return true to hide this item for the given row. */
|
|
3903
4105
|
hidden?: (row: T) => boolean;
|
|
3904
4106
|
}
|
|
4107
|
+
/** Row action that opens a popup menu of `items`, each of which may hide itself for a given row. */
|
|
3905
4108
|
interface GridMenuAction<T extends GridRow = GridRow> {
|
|
3906
4109
|
type: 'menu';
|
|
3907
4110
|
label: string;
|
|
@@ -3911,7 +4114,9 @@ interface GridMenuAction<T extends GridRow = GridRow> {
|
|
|
3911
4114
|
hidden?: (row: T) => boolean;
|
|
3912
4115
|
items: GridMenuItem<T>[];
|
|
3913
4116
|
}
|
|
4117
|
+
/** Any action a column can offer: a plain button (`GridAction`) or a menu (`GridMenuAction`), discriminated by `type`. */
|
|
3914
4118
|
type GridColumnAction<T extends GridRow = GridRow> = GridAction<T> | GridMenuAction<T>;
|
|
4119
|
+
/** Definition of one grid column: `header`, sortability, the `field` path to read, its `ColumnsEnum` cell `type`, and the type-specific extras (`actions`, `statusMap`, `getProgress`, `columnDef` for a custom template…). */
|
|
3915
4120
|
interface GridColumn<T extends GridRow = GridRow> {
|
|
3916
4121
|
header: string;
|
|
3917
4122
|
isSorted: boolean;
|
|
@@ -3929,6 +4134,7 @@ interface GridColumn<T extends GridRow = GridRow> {
|
|
|
3929
4134
|
pipeArgs?: unknown;
|
|
3930
4135
|
cssStyle?: string;
|
|
3931
4136
|
}
|
|
4137
|
+
/** PrimeNG-backed data table driven by a `columns` config: renders typed cells, row actions/menus, selection, expandable rows and skeletons, and switches between empty, filtered, searched and error result states; supports both client-side and `lazy` server-side paging/sorting, emitting `pageChange`/`sortChange` rather than fetching itself. */
|
|
3932
4138
|
declare class SceGridTableComponent<T extends GridRow = GridRow> {
|
|
3933
4139
|
readonly showSelect: _angular_core.InputSignal<boolean>;
|
|
3934
4140
|
readonly btnLabel: _angular_core.InputSignal<string>;
|
|
@@ -4101,11 +4307,14 @@ declare class SceGridTableComponent<T extends GridRow = GridRow> {
|
|
|
4101
4307
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceGridTableComponent<any>, "sce-grid-table", never, { "showSelect": { "alias": "showSelect"; "required": false; "isSignal": true; }; "btnLabel": { "alias": "btnLabel"; "required": false; "isSignal": true; }; "selectedItems": { "alias": "selectedItems"; "required": false; "isSignal": true; }; "searchPipeKey": { "alias": "searchPipeKey"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "showAddButton": { "alias": "showAddButton"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingDelay": { "alias": "loadingDelay"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "rowsPerPageOptions": { "alias": "rowsPerPageOptions"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; "lazy": { "alias": "lazy"; "required": false; "isSignal": true; }; "totalRecords": { "alias": "totalRecords"; "required": false; "isSignal": true; }; "totalPages": { "alias": "totalPages"; "required": false; "isSignal": true; }; "pageNumber": { "alias": "pageNumber"; "required": false; "isSignal": true; }; "first": { "alias": "first"; "required": false; "isSignal": true; }; "tableMinWidth": { "alias": "tableMinWidth"; "required": false; "isSignal": true; }; "emptyStateIcon": { "alias": "emptyStateIcon"; "required": false; "isSignal": true; }; "emptyStateTitleKey": { "alias": "emptyStateTitleKey"; "required": false; "isSignal": true; }; "emptyStateSubtitleKey": { "alias": "emptyStateSubtitleKey"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "errorTitleKey": { "alias": "errorTitleKey"; "required": false; "isSignal": true; }; "errorSubtitleKey": { "alias": "errorSubtitleKey"; "required": false; "isSignal": true; }; "errorStatus": { "alias": "errorStatus"; "required": false; "isSignal": true; }; "filtered": { "alias": "filtered"; "required": false; "isSignal": true; }; "searching": { "alias": "searching"; "required": false; "isSignal": true; }; "sortField": { "alias": "sortField"; "required": false; "isSignal": true; }; "sortOrder": { "alias": "sortOrder"; "required": false; "isSignal": true; }; "rowRoute": { "alias": "rowRoute"; "required": false; "isSignal": true; }; "rowClass": { "alias": "rowClass"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; }, { "selectedItems": "selectedItemsChange"; "addActionEvent": "addActionEvent"; "searchQuery": "searchQuery"; "selectItems": "selectItems"; "sortChange": "sortChange"; "pageChange": "pageChange"; "errorRetry": "errorRetry"; "clearFilters": "clearFilters"; "clearSearch": "clearSearch"; "rowNavigate": "rowNavigate"; }, ["customColumnTemplates", "expansionTemplate"], never, true, never>;
|
|
4102
4308
|
}
|
|
4103
4309
|
|
|
4310
|
+
/** Control rendered for a filter field; `divider` renders a separator rather than an input. */
|
|
4104
4311
|
type FilterFieldType = 'text' | 'select' | 'multiselect' | 'date' | 'datetime' | 'date-range' | 'number' | 'search' | 'checkbox' | 'radio' | 'checkbox-search' | 'divider';
|
|
4312
|
+
/** A choice offered by a select, multiselect, checkbox or radio filter field. */
|
|
4105
4313
|
interface FilterFieldOption {
|
|
4106
4314
|
label: string;
|
|
4107
4315
|
value: string;
|
|
4108
4316
|
}
|
|
4317
|
+
/** Declarative definition of one filter field: its `key` in the value map, its `type` and options, its grid `width`/`colspan`, and a `defaultValue` that is a JSON-encoded string array for multi-value types. */
|
|
4109
4318
|
interface FilterFieldConfig {
|
|
4110
4319
|
/** Unique key -- maps directly to the signal model property */
|
|
4111
4320
|
key: string;
|
|
@@ -4155,6 +4364,7 @@ interface FilterFieldConfig {
|
|
|
4155
4364
|
/** Optional maximum date for date fields. */
|
|
4156
4365
|
maxDate?: Date;
|
|
4157
4366
|
}
|
|
4367
|
+
/** Whole-form filter config: the `fields`, the grid layout (`columns` for manual mode, omit for auto), the live-filter `debounceMs` (default 300) and which chrome (reset, submit, quick-filter bar, save, clear-all) to show. */
|
|
4158
4368
|
interface FilterFormConfig {
|
|
4159
4369
|
/** All field definitions */
|
|
4160
4370
|
fields: FilterFieldConfig[];
|
|
@@ -4178,6 +4388,7 @@ interface FilterFormConfig {
|
|
|
4178
4388
|
|
|
4179
4389
|
type FieldValue = string | string[];
|
|
4180
4390
|
type FilterValues = Record<string, FieldValue>;
|
|
4391
|
+
/** One chip in the quick-filter bar summarising an active filter: its field `key`, `label`, the display `value` (or `values` for multi-select) and how many selections it represents. */
|
|
4181
4392
|
interface QuickFilterTag$1 {
|
|
4182
4393
|
key: string;
|
|
4183
4394
|
label: string;
|
|
@@ -4185,6 +4396,7 @@ interface QuickFilterTag$1 {
|
|
|
4185
4396
|
values?: string[];
|
|
4186
4397
|
count: number;
|
|
4187
4398
|
}
|
|
4399
|
+
/** Renders a filter bar from a declarative `config` (it is not a reactive form — values live in a plain `model` signal), emits `filterChange` debounced (default 300 ms), sanitises typed text against HTML/script injection, and can show a quick-filter chip bar with per-chip removal. */
|
|
4188
4400
|
declare class SceFilterFormComponent implements OnDestroy {
|
|
4189
4401
|
readonly config: _angular_core.InputSignal<FilterFormConfig>;
|
|
4190
4402
|
readonly quickFilterTitle: _angular_core.InputSignal<string>;
|
|
@@ -4234,15 +4446,19 @@ declare class SceFilterFormComponent implements OnDestroy {
|
|
|
4234
4446
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceFilterFormComponent, "sce-filter-form", never, { "config": { "alias": "config"; "required": true; "isSignal": true; }; "quickFilterTitle": { "alias": "quickFilterTitle"; "required": false; "isSignal": true; }; "quickFilterCounter": { "alias": "quickFilterCounter"; "required": false; "isSignal": true; }; }, { "filterChange": "filterChange"; "filterSubmit": "filterSubmit"; "filterReset": "filterReset"; "saveFilterClick": "saveFilterClick"; }, never, never, true, never>;
|
|
4235
4447
|
}
|
|
4236
4448
|
|
|
4449
|
+
/** Height/padding scale of a form field control. */
|
|
4237
4450
|
type FieldSize = 'small' | 'medium' | 'large';
|
|
4451
|
+
/** Sanitisation applied to typed characters in a text field; `null` means no filtering. */
|
|
4238
4452
|
type InputFilter = 'numeric' | 'phone' | 'noComma' | 'decimal' | null;
|
|
4239
4453
|
/** Restricts input characters via core directives (arabicOnly, englishOnly, numbersOnly, phoneOnly, trimInput). */
|
|
4240
4454
|
type RestrictInput = 'arabicOnly' | 'englishOnly' | 'numbersOnly' | 'phoneOnly' | 'trimInput' | null;
|
|
4241
4455
|
|
|
4456
|
+
/** A single `label`/`value` choice for `FormInput`'s select, multiselect, radio and checkbox types. */
|
|
4242
4457
|
interface SelectOption {
|
|
4243
4458
|
label: string;
|
|
4244
4459
|
value: string;
|
|
4245
4460
|
}
|
|
4461
|
+
/** All-in-one labelled field that switches its control on the `type` input (text, password, phone, number, select, multiselect, date/datetime, textarea, checkbox/radio); it is a self-registering `ControlValueAccessor` (`NgControl` is injected with `self`, so `formControlName` works) and maps validator errors to i18n keys, overridable per field via `errorMessages`. */
|
|
4246
4462
|
declare class FormInput implements ControlValueAccessor {
|
|
4247
4463
|
private static nextId;
|
|
4248
4464
|
readonly phoneConfig: {
|
|
@@ -4568,6 +4784,7 @@ declare function buildFieldValidators(spec?: DynamicFieldValidators): ValidatorF
|
|
|
4568
4784
|
/** Builds a typed, non-nullable `FormGroup` from a list of field configs. */
|
|
4569
4785
|
declare function buildDynamicFormGroup(fields: DynamicFieldConfig[], initial: Record<string, unknown>, fb: NonNullableFormBuilder): FormGroup;
|
|
4570
4786
|
|
|
4787
|
+
/** Modal shell over PrimeNG `p-dialog` (portaled to `body`) with projected header/body/footer slots; `size` maps to a max-width and `dismissed` fires exactly once whether closed by button, backdrop or ESC — note it uses `ViewEncapsulation.None`, so its styles are global. */
|
|
4571
4788
|
declare class Popup {
|
|
4572
4789
|
readonly open: _angular_core.InputSignal<boolean>;
|
|
4573
4790
|
readonly title: _angular_core.InputSignal<string>;
|
|
@@ -4609,6 +4826,7 @@ declare class Popup {
|
|
|
4609
4826
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Popup, "sce-popup", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "footerBorder": { "alias": "footerBorder"; "required": false; "isSignal": true; }; "footerStyle": { "alias": "footerStyle"; "required": false; "isSignal": true; }; "showCloseButton": { "alias": "showCloseButton"; "required": false; "isSignal": true; }; "showBackButton": { "alias": "showBackButton"; "required": false; "isSignal": true; }; "largeHeader": { "alias": "largeHeader"; "required": false; "isSignal": true; }; "showHeader": { "alias": "showHeader"; "required": false; "isSignal": true; }; "closeOnBackdropClick": { "alias": "closeOnBackdropClick"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "bodyScrollable": { "alias": "bodyScrollable"; "required": false; "isSignal": true; }; }, { "dismissed": "dismissed"; "backClicked": "backClicked"; }, never, ["[subTitle]", "*", "[popupFooter]"], true, never>;
|
|
4610
4827
|
}
|
|
4611
4828
|
|
|
4829
|
+
/** Abstract base for modal components: holds `isOpen`/`modalData` signals, exposes `openModal(data)`/`closeModal()`, and requires the subclass template to contain a `Popup` whose dismissal closes the modal and re-emits `dismissed`. */
|
|
4612
4830
|
declare abstract class PopupModalBase<T = unknown> implements AfterViewInit {
|
|
4613
4831
|
protected readonly destroyRef: DestroyRef;
|
|
4614
4832
|
readonly modalData: _angular_core.WritableSignal<T | null>;
|
|
@@ -4655,6 +4873,7 @@ declare class TabsInkbarRtlDirective implements AfterViewInit {
|
|
|
4655
4873
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TabsInkbarRtlDirective, "[sceTabsInkbarRtl]", never, {}, {}, never, never, true, never>;
|
|
4656
4874
|
}
|
|
4657
4875
|
|
|
4876
|
+
/** One tab in `Tabs`: `id`, translatable `label`, and optional `icon`, `badge` and `disabled` flag. */
|
|
4658
4877
|
interface TabItem$1 {
|
|
4659
4878
|
id: string;
|
|
4660
4879
|
label: string;
|
|
@@ -4662,6 +4881,7 @@ interface TabItem$1 {
|
|
|
4662
4881
|
icon?: string;
|
|
4663
4882
|
badge?: string | number;
|
|
4664
4883
|
}
|
|
4884
|
+
/** Tab bar over PrimeNG `p-tabs` that renders `items` and emits `tabChange`, projecting the panel content itself; `activeId` seeds a `linkedSignal` (so the tab strip is uncontrolled after the first click) and a host directive fixes inkbar placement in RTL. */
|
|
4665
4885
|
declare class Tabs {
|
|
4666
4886
|
readonly items: _angular_core.InputSignal<TabItem$1[]>;
|
|
4667
4887
|
readonly activeId: _angular_core.InputSignal<string>;
|
|
@@ -4681,6 +4901,7 @@ declare class Tabs {
|
|
|
4681
4901
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Tabs, "sce-tabs", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "activeId": { "alias": "activeId"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "justify": { "alias": "justify"; "required": false; "isSignal": true; }; "underlineStyle": { "alias": "underlineStyle"; "required": false; "isSignal": true; }; }, { "tabChange": "tabChange"; }, never, ["*"], true, [{ directive: typeof TabsInkbarRtlDirective; inputs: {}; outputs: {}; }]>;
|
|
4682
4902
|
}
|
|
4683
4903
|
|
|
4904
|
+
/** One breadcrumb entry: either a literal `label` or a `translateKey` (+ `translateParams`) resolved at render time, plus optional `url`, `icon` and `command`. */
|
|
4684
4905
|
interface BreadcrumbItem$1 {
|
|
4685
4906
|
label?: string;
|
|
4686
4907
|
url?: string;
|
|
@@ -4690,6 +4911,7 @@ interface BreadcrumbItem$1 {
|
|
|
4690
4911
|
/** Passed to `TranslateService.instant` when `translateKey` is set */
|
|
4691
4912
|
translateParams?: Record<string, string | number>;
|
|
4692
4913
|
}
|
|
4914
|
+
/** Wraps PrimeNG `p-breadcrumb` over `items`, prepending a home entry unless `showHomeIcon` is false; re-translates labels on language change and sets its own `dir` from the `rtl` input (default: current lang is Arabic). */
|
|
4693
4915
|
declare class Breadcrumb {
|
|
4694
4916
|
private readonly destroyRef;
|
|
4695
4917
|
readonly translateService: TranslateService;
|
|
@@ -4713,11 +4935,13 @@ declare class Breadcrumb {
|
|
|
4713
4935
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Breadcrumb, "sce-breadcrumb", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "home": { "alias": "home"; "required": false; "isSignal": true; }; "showHomeIcon": { "alias": "showHomeIcon"; "required": false; "isSignal": true; }; "rtl": { "alias": "rtl"; "required": false; "isSignal": true; }; "separatorItem": { "alias": "separatorItem"; "required": false; "isSignal": true; }; }, { "itemClicked": "itemClicked"; }, never, never, true, never>;
|
|
4714
4936
|
}
|
|
4715
4937
|
|
|
4938
|
+
/** Input-free card shell: projects its content into a styled `.card` container (host class `sce-card`). */
|
|
4716
4939
|
declare class Card {
|
|
4717
4940
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Card, never>;
|
|
4718
4941
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Card, "sce-card", never, {}, {}, never, ["*"], true, never>;
|
|
4719
4942
|
}
|
|
4720
4943
|
|
|
4944
|
+
/** Row of `length` single-digit OTP boxes (default `VALIDATION_LENGTHS.OTP`) with auto-advance, backspace-back and paste-to-fill; a self-registering `ControlValueAccessor` whose value is the joined digit string. */
|
|
4721
4945
|
declare class OtpInput implements ControlValueAccessor {
|
|
4722
4946
|
readonly length: _angular_core.InputSignal<number>;
|
|
4723
4947
|
readonly submitted: _angular_core.InputSignal<boolean>;
|
|
@@ -4746,12 +4970,14 @@ declare class OtpInput implements ControlValueAccessor {
|
|
|
4746
4970
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OtpInput, "sce-otp-input", never, { "length": { "alias": "length"; "required": false; "isSignal": true; }; "submitted": { "alias": "submitted"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
4747
4971
|
}
|
|
4748
4972
|
|
|
4973
|
+
/** One step in `Stepper`: an `id`, optional `label`/`subLabel` (i18n keys) and a `state` of completed, active, upcoming or disabled. */
|
|
4749
4974
|
interface StepItem {
|
|
4750
4975
|
id: string;
|
|
4751
4976
|
label?: string;
|
|
4752
4977
|
subLabel?: string;
|
|
4753
4978
|
state: 'completed' | 'active' | 'upcoming' | 'disabled';
|
|
4754
4979
|
}
|
|
4980
|
+
/** Renders `steps` as a horizontal/vertical step indicator in a `steps`, `progress` or `pills` `variant`; every step click emits `stepChange`, so `linear` currently gates nothing and the host must decide whether to honour it. */
|
|
4755
4981
|
declare class Stepper {
|
|
4756
4982
|
readonly steps: _angular_core.InputSignal<StepItem[]>;
|
|
4757
4983
|
readonly variant: _angular_core.InputSignal<"progress" | "steps" | "pills">;
|
|
@@ -4770,11 +4996,13 @@ declare class Stepper {
|
|
|
4770
4996
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Stepper, "sce-stepper", never, { "steps": { "alias": "steps"; "required": true; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "linear": { "alias": "linear"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "stepGap": { "alias": "stepGap"; "required": false; "isSignal": true; }; }, { "stepChange": "stepChange"; }, never, never, true, never>;
|
|
4771
4997
|
}
|
|
4772
4998
|
|
|
4999
|
+
/** One breadcrumb crumb for `ScePageHeaderComponent`; supply `translationKey` for i18n or `label` for a literal, and `url` to make it a link. */
|
|
4773
5000
|
interface BreadcrumbItem {
|
|
4774
5001
|
label: string;
|
|
4775
5002
|
url?: string;
|
|
4776
5003
|
translationKey?: string;
|
|
4777
5004
|
}
|
|
5005
|
+
/** Page title with an optional breadcrumb trail (`breadcrumbItems`, on by default); `breadcrumbFirst` moves the trail above the title and `actionLayout` switches to a split layout with a projected actions slot. */
|
|
4778
5006
|
declare class ScePageHeaderComponent {
|
|
4779
5007
|
readonly titleKey: _angular_core.InputSignal<string>;
|
|
4780
5008
|
readonly title: _angular_core.InputSignal<string>;
|
|
@@ -4788,6 +5016,24 @@ declare class ScePageHeaderComponent {
|
|
|
4788
5016
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ScePageHeaderComponent, "sce-page-header", never, { "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "breadcrumbItems": { "alias": "breadcrumbItems"; "required": false; "isSignal": true; }; "showBreadcrumb": { "alias": "showBreadcrumb"; "required": false; "isSignal": true; }; "breadcrumbFirst": { "alias": "breadcrumbFirst"; "required": false; "isSignal": true; }; "actionLayout": { "alias": "actionLayout"; "required": false; "isSignal": true; }; }, {}, never, ["[data-page-header-actions]"], true, never>;
|
|
4789
5017
|
}
|
|
4790
5018
|
|
|
5019
|
+
/**
|
|
5020
|
+
* In-app access-denied page for consumer apps.
|
|
5021
|
+
*
|
|
5022
|
+
* Wire as the target of `libraryAccessDenyRoute` (see `SCE_LIBRARY_ACCESS_DENIED_PATH` in core).
|
|
5023
|
+
* Bootstrap failures still use the raw DOM screen in core — this component is for routed fallbacks
|
|
5024
|
+
* and partner documentation previews.
|
|
5025
|
+
*/
|
|
5026
|
+
declare class SceLibraryAccessDeniedComponent {
|
|
5027
|
+
/** Override when previewing; otherwise reads from {@link SceLibraryAccessService} when present. */
|
|
5028
|
+
readonly reason: _angular_core.InputSignal<SceLibraryAccessDenialReason | undefined>;
|
|
5029
|
+
private readonly access;
|
|
5030
|
+
readonly contactEmail: string;
|
|
5031
|
+
readonly effectiveReason: _angular_core.Signal<SceLibraryAccessDenialReason>;
|
|
5032
|
+
readonly mailtoHref: _angular_core.Signal<string>;
|
|
5033
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SceLibraryAccessDeniedComponent, never>;
|
|
5034
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceLibraryAccessDeniedComponent, "sce-library-access-denied", never, { "reason": { "alias": "reason"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5035
|
+
}
|
|
5036
|
+
|
|
4791
5037
|
/**
|
|
4792
5038
|
* @deprecated Use `<sce-result-state>` instead — it covers this component's entire surface with
|
|
4793
5039
|
* preset copy and actions. No production usages exist (design-system demo only); delete once the
|
|
@@ -4808,6 +5054,7 @@ declare class ScePageErrorComponent {
|
|
|
4808
5054
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ScePageErrorComponent, "sce-page-error", never, { "titleKey": { "alias": "titleKey"; "required": true; "isSignal": true; }; "subtitleKey": { "alias": "subtitleKey"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "retryLabelKey": { "alias": "retryLabelKey"; "required": false; "isSignal": true; }; }, { "retry": "retry"; }, never, never, true, never>;
|
|
4809
5055
|
}
|
|
4810
5056
|
|
|
5057
|
+
/** Page layout for authentication screens: a logo, title and subtitle header (each settable as literal text or a translation key) above the projected form, with an optional decorative side panel and footer. */
|
|
4811
5058
|
declare class SceAuthLayoutComponent {
|
|
4812
5059
|
/** Logo image URL for the auth header */
|
|
4813
5060
|
readonly logoSrc: _angular_core.InputSignal<string>;
|
|
@@ -4833,6 +5080,7 @@ declare class SceAuthLayoutComponent {
|
|
|
4833
5080
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceAuthLayoutComponent, "sce-auth-layout", never, { "logoSrc": { "alias": "logoSrc"; "required": false; "isSignal": true; }; "logoAlt": { "alias": "logoAlt"; "required": false; "isSignal": true; }; "appTitle": { "alias": "appTitle"; "required": false; "isSignal": true; }; "appTitleKey": { "alias": "appTitleKey"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "subtitleKey": { "alias": "subtitleKey"; "required": false; "isSignal": true; }; "backgroundSrc": { "alias": "backgroundSrc"; "required": false; "isSignal": true; }; "showSidePanel": { "alias": "showSidePanel"; "required": false; "isSignal": true; }; "footerText": { "alias": "footerText"; "required": false; "isSignal": true; }; "footerTextKey": { "alias": "footerTextKey"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
4834
5081
|
}
|
|
4835
5082
|
|
|
5083
|
+
/** Colour variant of a status page's icon wrapper and accent stripe. */
|
|
4836
5084
|
type StatusPageVariant = 'error' | 'warning' | 'info' | 'success' | 'neutral';
|
|
4837
5085
|
/**
|
|
4838
5086
|
* Full-page status component for error, maintenance, permission, and empty states.
|
|
@@ -4875,6 +5123,7 @@ declare class SceStatusPageComponent {
|
|
|
4875
5123
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceStatusPageComponent, "sce-status-page", never, { "iconVariant": { "alias": "iconVariant"; "required": false; "isSignal": true; }; "imageSrc": { "alias": "imageSrc"; "required": false; "isSignal": true; }; "imageAlt": { "alias": "imageAlt"; "required": false; "isSignal": true; }; "code": { "alias": "code"; "required": false; "isSignal": true; }; "titleKey": { "alias": "titleKey"; "required": true; "isSignal": true; }; "subtitleKey": { "alias": "subtitleKey"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
4876
5124
|
}
|
|
4877
5125
|
|
|
5126
|
+
/** One option in `SceSelectableListWithSearchComponent`; `label` and `subLabel` are both matched by the search box, and `metadata` carries caller-defined payload of type `T`. */
|
|
4878
5127
|
interface SelectableListItem<T = unknown> {
|
|
4879
5128
|
/** Unique value for the item */
|
|
4880
5129
|
value: string;
|
|
@@ -4888,6 +5137,7 @@ interface SelectableListItem<T = unknown> {
|
|
|
4888
5137
|
metadata?: T;
|
|
4889
5138
|
}
|
|
4890
5139
|
|
|
5140
|
+
/** Searchable single- or multi-select list (`multiSelect` defaults to true) that filters `items` in-place and emits the full `selectedValues` array; rows can be overridden with a projected `ng-template`, and `loading` swaps in skeletons. */
|
|
4891
5141
|
declare class SceSelectableListWithSearchComponent {
|
|
4892
5142
|
readonly title: _angular_core.InputSignal<string>;
|
|
4893
5143
|
readonly items: _angular_core.InputSignal<SelectableListItem<unknown>[]>;
|
|
@@ -4932,6 +5182,7 @@ interface QuickFilterTag {
|
|
|
4932
5182
|
key?: string;
|
|
4933
5183
|
}
|
|
4934
5184
|
|
|
5185
|
+
/** Bar of currently-applied filter tags (`activeFilters`) with an optional counter, "save filter" and "clear all" actions; it only emits clicks and never mutates the tag list itself. */
|
|
4935
5186
|
declare class SceQuickFilterBarComponent {
|
|
4936
5187
|
readonly activeFilters: _angular_core.InputSignal<QuickFilterTag[]>;
|
|
4937
5188
|
readonly showSaveFilter: _angular_core.InputSignal<boolean>;
|
|
@@ -4948,6 +5199,7 @@ declare class SceQuickFilterBarComponent {
|
|
|
4948
5199
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceQuickFilterBarComponent, "sce-quick-filter-bar", never, { "activeFilters": { "alias": "activeFilters"; "required": false; "isSignal": true; }; "showSaveFilter": { "alias": "showSaveFilter"; "required": false; "isSignal": true; }; "showClearAll": { "alias": "showClearAll"; "required": false; "isSignal": true; }; "quickFilterCounter": { "alias": "quickFilterCounter"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "tagGap": { "alias": "tagGap"; "required": false; "isSignal": true; }; "showRemoveButton": { "alias": "showRemoveButton"; "required": false; "isSignal": true; }; "rowJustify": { "alias": "rowJustify"; "required": false; "isSignal": true; }; }, { "saveFilterClick": "saveFilterClick"; "clearAllClick": "clearAllClick"; "filterTagClick": "filterTagClick"; }, never, never, true, never>;
|
|
4949
5200
|
}
|
|
4950
5201
|
|
|
5202
|
+
/** The identity record a lookup returns for a verified user, shown read-only in the panel's second step. */
|
|
4951
5203
|
interface VerifiedUserData {
|
|
4952
5204
|
name: string;
|
|
4953
5205
|
nationalId: string;
|
|
@@ -4955,16 +5207,19 @@ interface VerifiedUserData {
|
|
|
4955
5207
|
email: string;
|
|
4956
5208
|
mobile: string;
|
|
4957
5209
|
}
|
|
5210
|
+
/** What the panel's first step emits: the national ID and birth date to look the user up with. */
|
|
4958
5211
|
interface VerifyPayload {
|
|
4959
5212
|
nationalId: string;
|
|
4960
5213
|
birthDate: string;
|
|
4961
5214
|
}
|
|
5215
|
+
/** What the panel's second step emits: the roles, contact details, and active flag to save for the verified user. */
|
|
4962
5216
|
interface ConfirmPayload {
|
|
4963
5217
|
roleIds: number[];
|
|
4964
5218
|
email: string;
|
|
4965
5219
|
mobile: string;
|
|
4966
5220
|
isActive: boolean;
|
|
4967
5221
|
}
|
|
5222
|
+
/** Two-step user-verification panel that first collects a national ID and birth date, then the verified user's roles, contact details and active flag, emitting `verify` and `confirm` payloads. */
|
|
4968
5223
|
declare class SceUserVerifySectionPanelComponent {
|
|
4969
5224
|
readonly step: _angular_core.InputSignal<1 | 2>;
|
|
4970
5225
|
readonly loading: _angular_core.InputSignal<boolean>;
|
|
@@ -5022,7 +5277,9 @@ interface FileSourceBase64 {
|
|
|
5022
5277
|
kind: 'base64';
|
|
5023
5278
|
value: string;
|
|
5024
5279
|
}
|
|
5280
|
+
/** Discriminated union (on `kind`) of the ways file content can be handed to the file viewer: URL, Blob/File, or Base64. */
|
|
5025
5281
|
type FileSource = FileSourceUrl | FileSourceBlob | FileSourceBase64;
|
|
5282
|
+
/** Everything the file viewer needs about one file: its `source`, display/download `name`, MIME `type` or `extension` used to pick a renderer, optional `size`, and a `downloadable` flag that also blocks programmatic download. */
|
|
5026
5283
|
interface FileViewerData {
|
|
5027
5284
|
/** File content — a URL string, Blob/File, or Base64 string. */
|
|
5028
5285
|
source: FileSource;
|
|
@@ -5037,6 +5294,7 @@ interface FileViewerData {
|
|
|
5037
5294
|
/** When false, hides the download button and blocks programmatic download (e.g. confidential previews). */
|
|
5038
5295
|
downloadable?: boolean;
|
|
5039
5296
|
}
|
|
5297
|
+
/** Renderer the file viewer picks for a file; `Unsupported` shows a download-only fallback. */
|
|
5040
5298
|
declare enum FileType {
|
|
5041
5299
|
Image = "image",
|
|
5042
5300
|
Pdf = "pdf",
|
|
@@ -5135,6 +5393,7 @@ declare class SceFileViewerDirective {
|
|
|
5135
5393
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SceFileViewerDirective, "[sceFileViewer]", never, { "sceFileViewer": { "alias": "sceFileViewer"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5136
5394
|
}
|
|
5137
5395
|
|
|
5396
|
+
/** Hints `detectFileType` uses, in priority order: `mime` (or the MIME inside a data-URI `url`), then an extension taken from `extension`, `name` or `url`. */
|
|
5138
5397
|
interface FileTypeInput {
|
|
5139
5398
|
mime?: string;
|
|
5140
5399
|
extension?: string;
|
|
@@ -5162,6 +5421,7 @@ interface VideoCaption {
|
|
|
5162
5421
|
/** When true, this track is shown by default. */
|
|
5163
5422
|
default?: boolean;
|
|
5164
5423
|
}
|
|
5424
|
+
/** Value for the `<video preload>` attribute: fetch the whole file, metadata only, or nothing. */
|
|
5165
5425
|
type VideoPreload = 'auto' | 'metadata' | 'none';
|
|
5166
5426
|
|
|
5167
5427
|
/**
|
|
@@ -5229,12 +5489,14 @@ declare class SceTimelineComponent {
|
|
|
5229
5489
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceTimelineComponent, "sce-timeline", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; }, never, never, true, never>;
|
|
5230
5490
|
}
|
|
5231
5491
|
|
|
5492
|
+
/** One row in `SceSearchableUsersListComponent`; only `name` is matched by the search box. */
|
|
5232
5493
|
interface SearchableUserListItem {
|
|
5233
5494
|
id: string | number;
|
|
5234
5495
|
name: string;
|
|
5235
5496
|
subtitle?: string;
|
|
5236
5497
|
}
|
|
5237
5498
|
|
|
5499
|
+
/** User list with a client-side name search box; filtering happens internally and only `deleteUser` is emitted to the host. */
|
|
5238
5500
|
declare class SceSearchableUsersListComponent {
|
|
5239
5501
|
readonly title: _angular_core.InputSignal<string>;
|
|
5240
5502
|
readonly users: _angular_core.InputSignal<SearchableUserListItem[]>;
|
|
@@ -5248,11 +5510,13 @@ declare class SceSearchableUsersListComponent {
|
|
|
5248
5510
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceSearchableUsersListComponent, "sce-searchable-users-list", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "users": { "alias": "users"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; }, { "deleteUser": "deleteUser"; }, never, never, true, never>;
|
|
5249
5511
|
}
|
|
5250
5512
|
|
|
5513
|
+
/** One crumb in a detail-page header: a translated `label` plus an optional `route` (or legacy `url`); a crumb with neither is rendered as plain text. */
|
|
5251
5514
|
interface DetailBreadcrumbItem {
|
|
5252
5515
|
label: string;
|
|
5253
5516
|
route?: string;
|
|
5254
5517
|
url?: string;
|
|
5255
5518
|
}
|
|
5519
|
+
/** A button in a detail-page header: its `label` and `icon`, plus the `action` key echoed back through `actionClick`. */
|
|
5256
5520
|
interface DetailHeaderAction {
|
|
5257
5521
|
label: string;
|
|
5258
5522
|
icon: string;
|
|
@@ -5262,6 +5526,7 @@ interface DetailHeaderAction {
|
|
|
5262
5526
|
iconPosition?: 'start' | 'end';
|
|
5263
5527
|
}
|
|
5264
5528
|
|
|
5529
|
+
/** Page header for detail screens with a title, breadcrumb trail and a row of action buttons that emit `actionClick` carrying the action's key. */
|
|
5265
5530
|
declare class SceDetailHeaderComponent {
|
|
5266
5531
|
readonly title: _angular_core.InputSignal<string>;
|
|
5267
5532
|
readonly breadcrumbs: _angular_core.InputSignal<DetailBreadcrumbItem[]>;
|
|
@@ -5281,10 +5546,12 @@ declare class SceDetailHeaderComponent {
|
|
|
5281
5546
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceDetailHeaderComponent, "sce-detail-header", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "breadcrumbs": { "alias": "breadcrumbs"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; }, { "actionClick": "actionClick"; }, never, never, true, never>;
|
|
5282
5547
|
}
|
|
5283
5548
|
|
|
5549
|
+
/** Presentation-only status for a request header: the resolved `label` plus the tag colour to render it in. */
|
|
5284
5550
|
interface RequestStatusPresentation {
|
|
5285
5551
|
label: string;
|
|
5286
5552
|
color: 'warning' | 'success' | 'danger' | 'neutral';
|
|
5287
5553
|
}
|
|
5554
|
+
/** One icon-and-label metadata entry in a request header; set `isDate` to have the value formatted as a localized date. */
|
|
5288
5555
|
interface RequestHeaderMetaItem {
|
|
5289
5556
|
label: string;
|
|
5290
5557
|
value: string;
|
|
@@ -5292,6 +5559,7 @@ interface RequestHeaderMetaItem {
|
|
|
5292
5559
|
isDate?: boolean;
|
|
5293
5560
|
}
|
|
5294
5561
|
|
|
5562
|
+
/** Header for a request page: `title`, a copyable `requestId`, a coloured `status` tag, and a row of `metaItems` (date items are run through `LocalizedDatePipe`). */
|
|
5295
5563
|
declare class SceRequestHeaderComponent {
|
|
5296
5564
|
readonly title: _angular_core.InputSignal<string>;
|
|
5297
5565
|
readonly requestId: _angular_core.InputSignal<string>;
|
|
@@ -5303,6 +5571,7 @@ declare class SceRequestHeaderComponent {
|
|
|
5303
5571
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceRequestHeaderComponent, "sce-request-header", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "requestId": { "alias": "requestId"; "required": true; "isSignal": true; }; "status": { "alias": "status"; "required": true; "isSignal": true; }; "metaItems": { "alias": "metaItems"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "dateLabelKey": { "alias": "dateLabelKey"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5304
5572
|
}
|
|
5305
5573
|
|
|
5574
|
+
/** Card wrapper around `sce-request-header` that adds a body slot for request details; takes the same `title`, `requestId`, `status`, and `metaItems` inputs. */
|
|
5306
5575
|
declare class SceRequestDetailsCardComponent {
|
|
5307
5576
|
readonly title: _angular_core.InputSignal<string>;
|
|
5308
5577
|
readonly requestId: _angular_core.InputSignal<string>;
|
|
@@ -5314,6 +5583,7 @@ declare class SceRequestDetailsCardComponent {
|
|
|
5314
5583
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceRequestDetailsCardComponent, "sce-request-details-card", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "requestId": { "alias": "requestId"; "required": true; "isSignal": true; }; "status": { "alias": "status"; "required": true; "isSignal": true; }; "metaItems": { "alias": "metaItems"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "dateLabelKey": { "alias": "dateLabelKey"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5315
5584
|
}
|
|
5316
5585
|
|
|
5586
|
+
/** One attached file in an attachments list: `id`, display `name`, `url`, optional pdf/image `type`, thumbnail `previewUrl`, human-readable `sizeLabel`, and whether it may be deleted. */
|
|
5317
5587
|
interface SceAttachmentListItem {
|
|
5318
5588
|
id: string;
|
|
5319
5589
|
name: string;
|
|
@@ -5324,6 +5594,7 @@ interface SceAttachmentListItem {
|
|
|
5324
5594
|
deletable?: boolean;
|
|
5325
5595
|
}
|
|
5326
5596
|
|
|
5597
|
+
/** List of file attachments with a per-row pdf/image icon inferred from the file extension and an empty state; in `download` mode it emits `downloadFile`, in `show` mode it opens the file in a new tab itself. */
|
|
5327
5598
|
declare class SceAttachmentsListComponent {
|
|
5328
5599
|
readonly attachments: _angular_core.InputSignal<readonly SceAttachmentListItem[]>;
|
|
5329
5600
|
readonly titleKey: _angular_core.InputSignal<string>;
|
|
@@ -5341,6 +5612,7 @@ declare class SceAttachmentsListComponent {
|
|
|
5341
5612
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceAttachmentsListComponent, "sce-attachments-list", never, { "attachments": { "alias": "attachments"; "required": false; "isSignal": true; }; "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "showSectionTitle": { "alias": "showSectionTitle"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, { "downloadFile": "downloadFile"; "deleteFile": "deleteFile"; }, never, never, true, never>;
|
|
5342
5613
|
}
|
|
5343
5614
|
|
|
5615
|
+
/** Profile banner showing an avatar (`avatarUrl`, falling back to a person icon), `name`, and `role`. */
|
|
5344
5616
|
declare class SceProfileHeroComponent {
|
|
5345
5617
|
readonly name: _angular_core.InputSignal<string>;
|
|
5346
5618
|
readonly role: _angular_core.InputSignal<string>;
|
|
@@ -5349,6 +5621,7 @@ declare class SceProfileHeroComponent {
|
|
|
5349
5621
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceProfileHeroComponent, "sce-profile-hero", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; "avatarUrl": { "alias": "avatarUrl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5350
5622
|
}
|
|
5351
5623
|
|
|
5624
|
+
/** One entry in `SceResourcesListComponent`: a required `url` plus a literal `label` or i18n `labelKey` and an optional icon. */
|
|
5352
5625
|
interface SceResourceListItem {
|
|
5353
5626
|
label?: string;
|
|
5354
5627
|
labelKey?: string;
|
|
@@ -5356,6 +5629,7 @@ interface SceResourceListItem {
|
|
|
5356
5629
|
icon?: string;
|
|
5357
5630
|
}
|
|
5358
5631
|
|
|
5632
|
+
/** Titled list of downloadable/linked resources from `items`; `titleKey` defaults to the knowledge-centre resources heading. */
|
|
5359
5633
|
declare class SceResourcesListComponent {
|
|
5360
5634
|
readonly items: _angular_core.InputSignal<SceResourceListItem[]>;
|
|
5361
5635
|
readonly titleKey: _angular_core.InputSignal<string>;
|
|
@@ -5363,6 +5637,7 @@ declare class SceResourcesListComponent {
|
|
|
5363
5637
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceResourcesListComponent, "sce-resources-list", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5364
5638
|
}
|
|
5365
5639
|
|
|
5640
|
+
/** "Was this helpful?" yes/no prompt (all labels are overridable i18n keys) that emits `feedback` once and then locks itself into a thank-you state. */
|
|
5366
5641
|
declare class SceFeedbackSectionComponent {
|
|
5367
5642
|
readonly questionKey: _angular_core.InputSignal<string>;
|
|
5368
5643
|
readonly yesKey: _angular_core.InputSignal<string>;
|
|
@@ -5378,6 +5653,7 @@ declare class SceFeedbackSectionComponent {
|
|
|
5378
5653
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceFeedbackSectionComponent, "sce-feedback-section", never, { "questionKey": { "alias": "questionKey"; "required": false; "isSignal": true; }; "yesKey": { "alias": "yesKey"; "required": false; "isSignal": true; }; "noKey": { "alias": "noKey"; "required": false; "isSignal": true; }; "thanksKey": { "alias": "thanksKey"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "feedback": "feedback"; }, never, never, true, never>;
|
|
5379
5654
|
}
|
|
5380
5655
|
|
|
5656
|
+
/** One card in `SceRelatedCardsListComponent`; title/description may be given as a literal or an i18n `*Key`, and `route` makes the card a link. */
|
|
5381
5657
|
interface SceRelatedCardItem {
|
|
5382
5658
|
title?: string;
|
|
5383
5659
|
titleKey?: string;
|
|
@@ -5387,6 +5663,7 @@ interface SceRelatedCardItem {
|
|
|
5387
5663
|
route?: string | string[] | null;
|
|
5388
5664
|
}
|
|
5389
5665
|
|
|
5666
|
+
/** Renders a titled grid of related-content cards from `items`, each optionally linking to its own `route`. */
|
|
5390
5667
|
declare class SceRelatedCardsListComponent {
|
|
5391
5668
|
readonly items: _angular_core.InputSignal<SceRelatedCardItem[]>;
|
|
5392
5669
|
readonly titleKey: _angular_core.InputSignal<string>;
|
|
@@ -5410,11 +5687,14 @@ declare class SceRelatedCardsListComponent {
|
|
|
5410
5687
|
* These are pure data shapes — no Angular or HTTP dependencies.
|
|
5411
5688
|
*/
|
|
5412
5689
|
type OfficeTabKey = 'overview' | 'projects' | 'reviews';
|
|
5690
|
+
/** One tab of the office-detail page: its `key` and an already-translated `label`. */
|
|
5413
5691
|
interface TabItem {
|
|
5414
5692
|
key: OfficeTabKey;
|
|
5415
5693
|
label: string;
|
|
5416
5694
|
}
|
|
5695
|
+
/** Lifecycle state of an office project as shown to guests; `unknown` when the API sends no status. */
|
|
5417
5696
|
type GuestProjectStatus = 'new' | 'inProgress' | 'completed' | 'unknown';
|
|
5697
|
+
/** A project shown on an office profile: hero and gallery images, copy, optional type label and status; `projectId` is null for records that carry no id. */
|
|
5418
5698
|
interface OfficeProject {
|
|
5419
5699
|
title: string;
|
|
5420
5700
|
description: string;
|
|
@@ -5424,6 +5704,7 @@ interface OfficeProject {
|
|
|
5424
5704
|
typeLabel?: string;
|
|
5425
5705
|
status?: GuestProjectStatus;
|
|
5426
5706
|
}
|
|
5707
|
+
/** A single customer review of an office: author, star `rating`, display `date`, body `text` and avatar URL. */
|
|
5427
5708
|
interface OfficeReview {
|
|
5428
5709
|
authorName: string;
|
|
5429
5710
|
rating: number;
|
|
@@ -5431,17 +5712,20 @@ interface OfficeReview {
|
|
|
5431
5712
|
text: string;
|
|
5432
5713
|
photoUrl: string;
|
|
5433
5714
|
}
|
|
5715
|
+
/** One bar of the ratings histogram: the `stars` bucket (1–5) and the `percent` of reviews in it. */
|
|
5434
5716
|
interface RatingDistributionLine {
|
|
5435
5717
|
stars: number;
|
|
5436
5718
|
percent: number;
|
|
5437
5719
|
}
|
|
5438
5720
|
|
|
5721
|
+
/** Loading placeholder for the office-detail page, rendering the hero header plus a skeleton body matching the currently active tab. */
|
|
5439
5722
|
declare class SceOfficeDetailLoadingStateComponent {
|
|
5440
5723
|
readonly activeTab: _angular_core.InputSignal<OfficeTabKey>;
|
|
5441
5724
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SceOfficeDetailLoadingStateComponent, never>;
|
|
5442
5725
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeDetailLoadingStateComponent, "sce-office-detail-loading-state", never, { "activeTab": { "alias": "activeTab"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5443
5726
|
}
|
|
5444
5727
|
|
|
5728
|
+
/** Not-found state for the office-detail page, rendering the hero header above a result state whose preset back action is suppressed in favour of the page's own links. */
|
|
5445
5729
|
declare class SceOfficeDetailNotFoundComponent {
|
|
5446
5730
|
readonly breadcrumbs: _angular_core.InputSignal<LandingBreadcrumbItem[]>;
|
|
5447
5731
|
/** The page owns its own navigation links, so the preset's `back` button is suppressed. */
|
|
@@ -5450,6 +5734,7 @@ declare class SceOfficeDetailNotFoundComponent {
|
|
|
5450
5734
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeDetailNotFoundComponent, "sce-office-detail-not-found", never, { "breadcrumbs": { "alias": "breadcrumbs"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5451
5735
|
}
|
|
5452
5736
|
|
|
5737
|
+
/** Hero content of the public office-detail page: office name with verification badge, location, star-rating summary, reviewer avatars and an optional request-contract button. */
|
|
5453
5738
|
declare class SceOfficeDetailHeroBodyComponent {
|
|
5454
5739
|
readonly officeName: _angular_core.InputSignal<string>;
|
|
5455
5740
|
readonly verificationStatus: _angular_core.InputSignal<OrganizationServiceProviderStatus | null>;
|
|
@@ -5464,6 +5749,7 @@ declare class SceOfficeDetailHeroBodyComponent {
|
|
|
5464
5749
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeDetailHeroBodyComponent, "sce-office-detail-hero-body", never, { "officeName": { "alias": "officeName"; "required": true; "isSignal": true; }; "verificationStatus": { "alias": "verificationStatus"; "required": false; "isSignal": true; }; "locationText": { "alias": "locationText"; "required": false; "isSignal": true; }; "filledStars": { "alias": "filledStars"; "required": false; "isSignal": true; }; "ratingValue": { "alias": "ratingValue"; "required": false; "isSignal": true; }; "ratingSummary": { "alias": "ratingSummary"; "required": false; "isSignal": true; }; "reviewerAvatars": { "alias": "reviewerAvatars"; "required": false; "isSignal": true; }; "canRequestContract": { "alias": "canRequestContract"; "required": false; "isSignal": true; }; }, { "requestContract": "requestContract"; }, never, never, true, never>;
|
|
5465
5750
|
}
|
|
5466
5751
|
|
|
5752
|
+
/** Tab bar of the office-detail page, showing the office's brand logo and name beside the tab buttons and emitting `tabChange` on selection. */
|
|
5467
5753
|
declare class SceOfficeDetailTabsBarComponent {
|
|
5468
5754
|
readonly tabItems: _angular_core.InputSignal<TabItem[]>;
|
|
5469
5755
|
readonly activeTab: _angular_core.InputSignal<OfficeTabKey>;
|
|
@@ -5474,6 +5760,7 @@ declare class SceOfficeDetailTabsBarComponent {
|
|
|
5474
5760
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeDetailTabsBarComponent, "sce-office-detail-tabs-bar", never, { "tabItems": { "alias": "tabItems"; "required": true; "isSignal": true; }; "activeTab": { "alias": "activeTab"; "required": true; "isSignal": true; }; "logoObjectUrl": { "alias": "logoObjectUrl"; "required": false; "isSignal": true; }; "officeName": { "alias": "officeName"; "required": false; "isSignal": true; }; }, { "tabChange": "tabChange"; }, never, never, true, never>;
|
|
5475
5761
|
}
|
|
5476
5762
|
|
|
5763
|
+
/** Overview tab of the office-detail page, showing the office bio, an OSM map of its location and rows of experience and compatibility metric cards. */
|
|
5477
5764
|
declare class SceOfficeDetailOverviewPanelComponent {
|
|
5478
5765
|
readonly officeBio: _angular_core.InputSignal<string>;
|
|
5479
5766
|
readonly locationText: _angular_core.InputSignal<string>;
|
|
@@ -5484,6 +5771,7 @@ declare class SceOfficeDetailOverviewPanelComponent {
|
|
|
5484
5771
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeDetailOverviewPanelComponent, "sce-office-detail-overview-panel", never, { "officeBio": { "alias": "officeBio"; "required": false; "isSignal": true; }; "locationText": { "alias": "locationText"; "required": false; "isSignal": true; }; "mapPoints": { "alias": "mapPoints"; "required": false; "isSignal": true; }; "experienceMetricItems": { "alias": "experienceMetricItems"; "required": false; "isSignal": true; }; "compatibilityMetricItems": { "alias": "compatibilityMetricItems"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5485
5772
|
}
|
|
5486
5773
|
|
|
5774
|
+
/** Projects tab of the office-detail page, rendering each of the office's projects alongside its image gallery. */
|
|
5487
5775
|
declare class SceOfficeDetailProjectsPanelComponent {
|
|
5488
5776
|
readonly projects: _angular_core.InputSignal<OfficeProject[]>;
|
|
5489
5777
|
readonly projectGalleryImages: _angular_core.InputSignal<{
|
|
@@ -5495,6 +5783,7 @@ declare class SceOfficeDetailProjectsPanelComponent {
|
|
|
5495
5783
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeDetailProjectsPanelComponent, "sce-office-detail-projects-panel", never, { "projects": { "alias": "projects"; "required": false; "isSignal": true; }; "projectGalleryImages": { "alias": "projectGalleryImages"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5496
5784
|
}
|
|
5497
5785
|
|
|
5786
|
+
/** Reviews tab of the office-detail page, showing the overall rating, the per-star rating distribution and the individual reviews. */
|
|
5498
5787
|
declare class SceOfficeDetailReviewsPanelComponent {
|
|
5499
5788
|
readonly reviews: _angular_core.InputSignal<OfficeReview[]>;
|
|
5500
5789
|
readonly totalReviews: _angular_core.InputSignal<number>;
|
|
@@ -5548,6 +5837,7 @@ declare class SceFormRichTextComponent implements ControlValueAccessor {
|
|
|
5548
5837
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceFormRichTextComponent, "sce-form-rich-text", never, { "labelTranslateKey": { "alias": "labelTranslateKey"; "required": false; "isSignal": true; }; "editorHeight": { "alias": "editorHeight"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5549
5838
|
}
|
|
5550
5839
|
|
|
5840
|
+
/** Picks the `<key>Ar`/`<key>En` property of an object matching the active language (falling back to the other language, then to the bare `key`, then to ''); pure, so it does not re-run on a language switch unless the object reference changes. */
|
|
5551
5841
|
declare class LocalizedValuePipe implements PipeTransform {
|
|
5552
5842
|
private readonly translate;
|
|
5553
5843
|
transform(obj: Record<string, unknown> | null | undefined, key: string, options?: {
|
|
@@ -5558,6 +5848,7 @@ declare class LocalizedValuePipe implements PipeTransform {
|
|
|
5558
5848
|
static ɵpipe: _angular_core.ɵɵPipeDeclaration<LocalizedValuePipe, "localizedValue", true>;
|
|
5559
5849
|
}
|
|
5560
5850
|
|
|
5851
|
+
/** Displays a phone number with an optional leading icon and a copy-to-clipboard button (shown by default). */
|
|
5561
5852
|
declare class ScePhoneNumberComponent {
|
|
5562
5853
|
readonly value: _angular_core.InputSignal<string>;
|
|
5563
5854
|
readonly showCopy: _angular_core.InputSignal<boolean>;
|
|
@@ -5567,6 +5858,7 @@ declare class ScePhoneNumberComponent {
|
|
|
5567
5858
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ScePhoneNumberComponent, "sce-phone-number", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "showCopy": { "alias": "showCopy"; "required": false; "isSignal": true; }; "showIcon": { "alias": "showIcon"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5568
5859
|
}
|
|
5569
5860
|
|
|
5861
|
+
/** Title-and-description row with a trailing edit button (shown by default, labelled from the translated "edit" key unless overridden). */
|
|
5570
5862
|
declare class SceInfoRowComponent {
|
|
5571
5863
|
readonly title: _angular_core.InputSignal<string>;
|
|
5572
5864
|
readonly description: _angular_core.InputSignal<string>;
|
|
@@ -5580,6 +5872,7 @@ declare class SceInfoRowComponent {
|
|
|
5580
5872
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceInfoRowComponent, "sce-info-row", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": true; "isSignal": true; }; "editLabel": { "alias": "editLabel"; "required": false; "isSignal": true; }; "showEdit": { "alias": "showEdit"; "required": false; "isSignal": true; }; "ltr": { "alias": "ltr"; "required": false; "isSignal": true; }; }, { "editClick": "editClick"; }, never, never, true, never>;
|
|
5581
5873
|
}
|
|
5582
5874
|
|
|
5875
|
+
/** Compact summary tile pairing an icon with a label, a primary value and an optional secondary value. */
|
|
5583
5876
|
declare class SceSummaryCardComponent {
|
|
5584
5877
|
readonly icon: _angular_core.InputSignal<string>;
|
|
5585
5878
|
readonly label: _angular_core.InputSignal<string>;
|
|
@@ -5589,7 +5882,9 @@ declare class SceSummaryCardComponent {
|
|
|
5589
5882
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceSummaryCardComponent, "sce-summary-card", never, { "icon": { "alias": "icon"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "subValue": { "alias": "subValue"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5590
5883
|
}
|
|
5591
5884
|
|
|
5885
|
+
/** Colour tone of the badge on `SceEntityInfoCardComponent`. */
|
|
5592
5886
|
type EntityInfoCardBadgeTone = 'success' | 'info' | 'warning' | 'error' | 'neutral';
|
|
5887
|
+
/** Card identifying an entity by logo (or fallback icon), name, subtitle and ID, with a tone-coloured badge label that defaults to the success tone. */
|
|
5593
5888
|
declare class SceEntityInfoCardComponent {
|
|
5594
5889
|
readonly labelKey: _angular_core.InputSignal<string>;
|
|
5595
5890
|
readonly nameKey: _angular_core.InputSignal<string>;
|
|
@@ -5606,6 +5901,7 @@ declare class SceEntityInfoCardComponent {
|
|
|
5606
5901
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceEntityInfoCardComponent, "sce-entity-info-card", never, { "labelKey": { "alias": "labelKey"; "required": true; "isSignal": true; }; "nameKey": { "alias": "nameKey"; "required": false; "isSignal": true; }; "nameText": { "alias": "nameText"; "required": false; "isSignal": true; }; "subtitleText": { "alias": "subtitleText"; "required": false; "isSignal": true; }; "idLabelKey": { "alias": "idLabelKey"; "required": false; "isSignal": true; }; "idValue": { "alias": "idValue"; "required": false; "isSignal": true; }; "logoSrc": { "alias": "logoSrc"; "required": false; "isSignal": true; }; "logoAlt": { "alias": "logoAlt"; "required": false; "isSignal": true; }; "iconName": { "alias": "iconName"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "badgeTone": { "alias": "badgeTone"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5607
5902
|
}
|
|
5608
5903
|
|
|
5904
|
+
/** Card that either shows a completion progress bar or, in `cta` mode, an illustrated call-to-action button emitting `nextStep`. */
|
|
5609
5905
|
declare class SceProgressCardComponent {
|
|
5610
5906
|
readonly mode: _angular_core.InputSignal<"progress" | "cta">;
|
|
5611
5907
|
readonly titleKey: _angular_core.InputSignal<string>;
|
|
@@ -5620,6 +5916,7 @@ declare class SceProgressCardComponent {
|
|
|
5620
5916
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceProgressCardComponent, "sce-progress-card", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "descriptionKey": { "alias": "descriptionKey"; "required": false; "isSignal": true; }; "titleText": { "alias": "titleText"; "required": false; "isSignal": true; }; "descriptionText": { "alias": "descriptionText"; "required": false; "isSignal": true; }; "buttonKey": { "alias": "buttonKey"; "required": false; "isSignal": true; }; "progress": { "alias": "progress"; "required": false; "isSignal": true; }; "illustrationSrc": { "alias": "illustrationSrc"; "required": false; "isSignal": true; }; }, { "nextStep": "nextStep"; }, never, ["[data-actions]"], true, never>;
|
|
5621
5917
|
}
|
|
5622
5918
|
|
|
5919
|
+
/** Prose block that renders the translated `contentKey` as a paragraph, unless `contentHtml` is supplied, in which case that raw HTML is rendered instead. */
|
|
5623
5920
|
declare class SceContentBlockComponent {
|
|
5624
5921
|
readonly contentKey: _angular_core.InputSignal<string>;
|
|
5625
5922
|
readonly contentHtml: _angular_core.InputSignal<string | null>;
|
|
@@ -5627,6 +5924,7 @@ declare class SceContentBlockComponent {
|
|
|
5627
5924
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceContentBlockComponent, "sce-content-block", never, { "contentKey": { "alias": "contentKey"; "required": true; "isSignal": true; }; "contentHtml": { "alias": "contentHtml"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5628
5925
|
}
|
|
5629
5926
|
|
|
5927
|
+
/** Renders `items` (translation keys) as an icon-bulleted list, laid out across `maxColumns` columns (default 1). */
|
|
5630
5928
|
declare class SceBulletListComponent {
|
|
5631
5929
|
readonly items: _angular_core.InputSignal<string[]>;
|
|
5632
5930
|
readonly maxColumns: _angular_core.InputSignal<number>;
|
|
@@ -5634,6 +5932,7 @@ declare class SceBulletListComponent {
|
|
|
5634
5932
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceBulletListComponent, "sce-bullet-list", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "maxColumns": { "alias": "maxColumns"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5635
5933
|
}
|
|
5636
5934
|
|
|
5935
|
+
/** Dashboard KPI card showing a headline value, an up/down trend percentage and an optional sparkline chart. */
|
|
5637
5936
|
declare class SceStatsAnalyticsCardComponent {
|
|
5638
5937
|
readonly title: _angular_core.InputSignal<string>;
|
|
5639
5938
|
readonly titleLinkText: _angular_core.InputSignal<string>;
|
|
@@ -5661,6 +5960,7 @@ interface OfficeEditProjectItem {
|
|
|
5661
5960
|
previewUrls?: string[];
|
|
5662
5961
|
}
|
|
5663
5962
|
|
|
5963
|
+
/** Result screen shown after office-profile changes are submitted, rendering either the success or the pending-review outcome with links to the profile and the requests list. */
|
|
5664
5964
|
declare class SceOfficeProfileSubmitResultComponent {
|
|
5665
5965
|
readonly result: _angular_core.InputSignal<"success" | "pending">;
|
|
5666
5966
|
readonly viewProfile: _angular_core.OutputEmitterRef<void>;
|
|
@@ -5669,11 +5969,13 @@ declare class SceOfficeProfileSubmitResultComponent {
|
|
|
5669
5969
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeProfileSubmitResultComponent, "sce-office-profile-submit-result", never, { "result": { "alias": "result"; "required": true; "isSignal": true; }; }, { "viewProfile": "viewProfile"; "viewRequests": "viewRequests"; }, never, never, true, never>;
|
|
5670
5970
|
}
|
|
5671
5971
|
|
|
5972
|
+
/** Static banner telling the user their office-profile update is awaiting review, with a link to the requests page; it takes no inputs. */
|
|
5672
5973
|
declare class ScePendingUpdateBannerComponent {
|
|
5673
5974
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScePendingUpdateBannerComponent, never>;
|
|
5674
5975
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ScePendingUpdateBannerComponent, "sce-pending-update-banner", never, {}, {}, never, never, true, never>;
|
|
5675
5976
|
}
|
|
5676
5977
|
|
|
5978
|
+
/** Bio section of the office-profile edit form, binding the parent's `FormGroup` to the summary field, the services multi-select and the availability select. */
|
|
5677
5979
|
declare class SceOfficeProfileEditBioSectionComponent {
|
|
5678
5980
|
readonly form: _angular_core.InputSignal<FormGroup<any>>;
|
|
5679
5981
|
readonly serviceOptions: _angular_core.InputSignal<SceSelectOption<string>[]>;
|
|
@@ -5683,6 +5985,7 @@ declare class SceOfficeProfileEditBioSectionComponent {
|
|
|
5683
5985
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeProfileEditBioSectionComponent, "sce-office-profile-edit-bio-section", never, { "form": { "alias": "form"; "required": true; "isSignal": true; }; "serviceOptions": { "alias": "serviceOptions"; "required": true; "isSignal": true; }; "availabilityOptions": { "alias": "availabilityOptions"; "required": true; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5684
5986
|
}
|
|
5685
5987
|
|
|
5988
|
+
/** Media section of the office-profile edit form, with file-upload zones for the cover image and logo; the busy and error states come from the parent's save request rather than from an upload of its own. */
|
|
5686
5989
|
declare class SceOfficeProfileEditMediaSectionComponent {
|
|
5687
5990
|
readonly locale: _angular_core.InputSignal<"ar" | "en">;
|
|
5688
5991
|
readonly coverExistingUrl: _angular_core.InputSignal<string>;
|
|
@@ -5699,6 +6002,7 @@ declare class SceOfficeProfileEditMediaSectionComponent {
|
|
|
5699
6002
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeProfileEditMediaSectionComponent, "sce-office-profile-edit-media-section", never, { "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "coverExistingUrl": { "alias": "coverExistingUrl"; "required": false; "isSignal": true; }; "coverFile": { "alias": "coverFile"; "required": false; "isSignal": true; }; "logoExistingUrl": { "alias": "logoExistingUrl"; "required": false; "isSignal": true; }; "logoFile": { "alias": "logoFile"; "required": false; "isSignal": true; }; "uploading": { "alias": "uploading"; "required": false; "isSignal": true; }; "uploadError": { "alias": "uploadError"; "required": false; "isSignal": true; }; }, { "coverChange": "coverChange"; "logoChange": "logoChange"; }, never, never, true, never>;
|
|
5700
6003
|
}
|
|
5701
6004
|
|
|
6005
|
+
/** Official-data section of the office-profile edit form, binding the parent's `FormGroup` to the bank, city and preferred-project-size selects plus the geo-location picker. */
|
|
5702
6006
|
declare class SceOfficeProfileEditOfficialSectionComponent {
|
|
5703
6007
|
readonly form: _angular_core.InputSignal<FormGroup<any>>;
|
|
5704
6008
|
readonly bankOptions: _angular_core.InputSignal<SceSelectOption<string>[]>;
|
|
@@ -5713,6 +6017,7 @@ declare class SceOfficeProfileEditOfficialSectionComponent {
|
|
|
5713
6017
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeProfileEditOfficialSectionComponent, "sce-office-profile-edit-official-section", never, { "form": { "alias": "form"; "required": true; "isSignal": true; }; "bankOptions": { "alias": "bankOptions"; "required": true; "isSignal": true; }; "cityOptions": { "alias": "cityOptions"; "required": true; "isSignal": true; }; "preferredSizeOptions": { "alias": "preferredSizeOptions"; "required": true; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "geoLocation": { "alias": "geoLocation"; "required": false; "isSignal": true; }; }, { "locationSelect": "locationSelect"; "ibanInput": "ibanInput"; }, never, never, true, never>;
|
|
5714
6018
|
}
|
|
5715
6019
|
|
|
6020
|
+
/** Contact section of the office-profile edit form, binding the parent's `FormGroup` to the contact detail inputs. */
|
|
5716
6021
|
declare class SceOfficeProfileEditContactSectionComponent {
|
|
5717
6022
|
readonly form: _angular_core.InputSignal<FormGroup<any>>;
|
|
5718
6023
|
readonly dir: _angular_core.InputSignal<"rtl" | "ltr">;
|
|
@@ -5724,6 +6029,7 @@ interface ProjectView extends OfficeEditProjectItem {
|
|
|
5724
6029
|
heroUrl: string;
|
|
5725
6030
|
thumbUrls: string[];
|
|
5726
6031
|
}
|
|
6032
|
+
/** Projects section of the office-profile edit form, listing each project as a hero image with up to two thumbnails and emitting add, edit and delete requests by list index. */
|
|
5727
6033
|
declare class SceOfficeProfileEditProjectsSectionComponent {
|
|
5728
6034
|
readonly projects: _angular_core.InputSignal<OfficeEditProjectItem[]>;
|
|
5729
6035
|
readonly addProject: _angular_core.OutputEmitterRef<void>;
|
|
@@ -5734,6 +6040,7 @@ declare class SceOfficeProfileEditProjectsSectionComponent {
|
|
|
5734
6040
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeProfileEditProjectsSectionComponent, "sce-office-profile-edit-projects-section", never, { "projects": { "alias": "projects"; "required": true; "isSignal": true; }; }, { "addProject": "addProject"; "editProject": "editProject"; "deleteProject": "deleteProject"; }, never, never, true, never>;
|
|
5735
6041
|
}
|
|
5736
6042
|
|
|
6043
|
+
/** Dialog for adding or editing an office project, binding the parent's project `FormGroup` alongside an image upload zone whose minimum image count defaults to three. */
|
|
5737
6044
|
declare class SceOfficeProfileProjectEditorDialogComponent {
|
|
5738
6045
|
readonly visible: _angular_core.InputSignal<boolean>;
|
|
5739
6046
|
readonly title: _angular_core.InputSignal<string>;
|
|
@@ -5753,6 +6060,7 @@ declare class SceOfficeProfileProjectEditorDialogComponent {
|
|
|
5753
6060
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeProfileProjectEditorDialogComponent, "sce-office-profile-project-editor-dialog", never, { "visible": { "alias": "visible"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": true; "isSignal": true; }; "projectForm": { "alias": "projectForm"; "required": true; "isSignal": true; }; "projectCategoryOptions": { "alias": "projectCategoryOptions"; "required": false; "isSignal": true; }; "projectStatusOptions": { "alias": "projectStatusOptions"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "projectError": { "alias": "projectError"; "required": false; "isSignal": true; }; "saveLabel": { "alias": "saveLabel"; "required": true; "isSignal": true; }; "projectMinImageCount": { "alias": "projectMinImageCount"; "required": false; "isSignal": true; }; }, { "closeDialog": "closeDialog"; "saveProject": "saveProject"; "filesChange": "filesChange"; }, never, never, true, never>;
|
|
5754
6061
|
}
|
|
5755
6062
|
|
|
6063
|
+
/** Confirmation dialog asking the user to confirm deleting an office project. */
|
|
5756
6064
|
declare class SceOfficeProfileProjectDeleteDialogComponent {
|
|
5757
6065
|
readonly visible: _angular_core.InputSignal<boolean>;
|
|
5758
6066
|
readonly closeDialog: _angular_core.OutputEmitterRef<void>;
|
|
@@ -5761,7 +6069,9 @@ declare class SceOfficeProfileProjectDeleteDialogComponent {
|
|
|
5761
6069
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeProfileProjectDeleteDialogComponent, "sce-office-profile-project-delete-dialog", never, { "visible": { "alias": "visible"; "required": true; "isSignal": true; }; }, { "closeDialog": "closeDialog"; "confirmDelete": "confirmDelete"; }, never, never, true, never>;
|
|
5762
6070
|
}
|
|
5763
6071
|
|
|
6072
|
+
/** Identifies a tab of the office-profile view (office data, projects, services, contact). */
|
|
5764
6073
|
type OfficeProfileTabKey = 'officeData' | 'projects' | 'services' | 'contact';
|
|
6074
|
+
/** Hero header of the office profile view — banner, logo, name, city, rating and verification badge — plus the profile's tab bar and an optional active/inactive status switch. */
|
|
5765
6075
|
declare class SceOfficeProfileHeroComponent {
|
|
5766
6076
|
readonly bannerUrl: _angular_core.InputSignal<string | null>;
|
|
5767
6077
|
readonly logoUrl: _angular_core.InputSignal<string | null>;
|
|
@@ -5785,6 +6095,7 @@ declare class SceOfficeProfileHeroComponent {
|
|
|
5785
6095
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeProfileHeroComponent, "sce-office-profile-hero", never, { "bannerUrl": { "alias": "bannerUrl"; "required": false; "isSignal": true; }; "logoUrl": { "alias": "logoUrl"; "required": false; "isSignal": true; }; "officeName": { "alias": "officeName"; "required": false; "isSignal": true; }; "cityName": { "alias": "cityName"; "required": false; "isSignal": true; }; "rating": { "alias": "rating"; "required": false; "isSignal": true; }; "ratingCount": { "alias": "ratingCount"; "required": false; "isSignal": true; }; "isAvailable": { "alias": "isAvailable"; "required": false; "isSignal": true; }; "verificationStatus": { "alias": "verificationStatus"; "required": false; "isSignal": true; }; "showOfficeStatusSwitch": { "alias": "showOfficeStatusSwitch"; "required": false; "isSignal": true; }; "officeIsActive": { "alias": "officeIsActive"; "required": false; "isSignal": true; }; "officeStatusSaving": { "alias": "officeStatusSaving"; "required": false; "isSignal": true; }; "updateDataChecking": { "alias": "updateDataChecking"; "required": false; "isSignal": true; }; "activeTab": { "alias": "activeTab"; "required": false; "isSignal": true; }; "tabKeys": { "alias": "tabKeys"; "required": false; "isSignal": true; }; "tabLabels": { "alias": "tabLabels"; "required": false; "isSignal": true; }; }, { "updateDataClick": "updateDataClick"; "statusChange": "statusChange"; "tabChange": "tabChange"; }, never, never, true, never>;
|
|
5786
6096
|
}
|
|
5787
6097
|
|
|
6098
|
+
/** Row of headline office statistics: years of experience, project count and service count. */
|
|
5788
6099
|
declare class SceOfficeProfileStatsRowComponent {
|
|
5789
6100
|
readonly yearsOfExperience: _angular_core.InputSignal<string>;
|
|
5790
6101
|
readonly projectsCount: _angular_core.InputSignal<number>;
|
|
@@ -5793,6 +6104,7 @@ declare class SceOfficeProfileStatsRowComponent {
|
|
|
5793
6104
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeProfileStatsRowComponent, "sce-office-profile-stats-row", never, { "yearsOfExperience": { "alias": "yearsOfExperience"; "required": false; "isSignal": true; }; "projectsCount": { "alias": "projectsCount"; "required": false; "isSignal": true; }; "servicesCount": { "alias": "servicesCount"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5794
6105
|
}
|
|
5795
6106
|
|
|
6107
|
+
/** Overview tab of the office profile view, showing the summary, services, license number, expiry and status, and office type as info-field cards. */
|
|
5796
6108
|
declare class SceOfficeProfileOverviewTabComponent {
|
|
5797
6109
|
readonly summary: _angular_core.InputSignal<string>;
|
|
5798
6110
|
readonly servicesDisplay: _angular_core.InputSignal<string[]>;
|
|
@@ -5804,6 +6116,7 @@ declare class SceOfficeProfileOverviewTabComponent {
|
|
|
5804
6116
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeProfileOverviewTabComponent, "sce-office-profile-overview-tab", never, { "summary": { "alias": "summary"; "required": false; "isSignal": true; }; "servicesDisplay": { "alias": "servicesDisplay"; "required": false; "isSignal": true; }; "licenseNumber": { "alias": "licenseNumber"; "required": false; "isSignal": true; }; "licenseExpiryFormatted": { "alias": "licenseExpiryFormatted"; "required": false; "isSignal": true; }; "licenseStatus": { "alias": "licenseStatus"; "required": false; "isSignal": true; }; "officeTypeDisplay": { "alias": "officeTypeDisplay"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5805
6117
|
}
|
|
5806
6118
|
|
|
6119
|
+
/** View-model of one project on the office-profile projects tab: id, copy, start/end dates, gallery `imageUrls`, completion flag and a display `typeLabel`. */
|
|
5807
6120
|
interface OfficeProfileDisplayProject {
|
|
5808
6121
|
id: number;
|
|
5809
6122
|
title: string;
|
|
@@ -5814,6 +6127,7 @@ interface OfficeProfileDisplayProject {
|
|
|
5814
6127
|
isCompleted: boolean;
|
|
5815
6128
|
typeLabel: string;
|
|
5816
6129
|
}
|
|
6130
|
+
/** Projects tab of the office profile view, rendering each project with its image gallery and showing skeletons while the project images load. */
|
|
5817
6131
|
declare class SceOfficeProfileProjectsTabComponent {
|
|
5818
6132
|
readonly displayProjects: _angular_core.InputSignal<OfficeProfileDisplayProject[]>;
|
|
5819
6133
|
readonly projectImagesLoading: _angular_core.InputSignal<boolean>;
|
|
@@ -5822,6 +6136,7 @@ declare class SceOfficeProfileProjectsTabComponent {
|
|
|
5822
6136
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeProfileProjectsTabComponent, "sce-office-profile-projects-tab", never, { "displayProjects": { "alias": "displayProjects"; "required": false; "isSignal": true; }; "projectImagesLoading": { "alias": "projectImagesLoading"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5823
6137
|
}
|
|
5824
6138
|
|
|
6139
|
+
/** Contact tab of the office profile view, showing email, phone, city and address as info-field cards beside an embedded map and a link out to Google Maps. */
|
|
5825
6140
|
declare class SceOfficeProfileContactTabComponent {
|
|
5826
6141
|
readonly email: _angular_core.InputSignal<string>;
|
|
5827
6142
|
readonly phone: _angular_core.InputSignal<string>;
|
|
@@ -5833,6 +6148,7 @@ declare class SceOfficeProfileContactTabComponent {
|
|
|
5833
6148
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeProfileContactTabComponent, "sce-office-profile-contact-tab", never, { "email": { "alias": "email"; "required": false; "isSignal": true; }; "phone": { "alias": "phone"; "required": false; "isSignal": true; }; "cityName": { "alias": "cityName"; "required": false; "isSignal": true; }; "addressDisplay": { "alias": "addressDisplay"; "required": false; "isSignal": true; }; "safeMapEmbedSrc": { "alias": "safeMapEmbedSrc"; "required": false; "isSignal": true; }; "googleMapsLink": { "alias": "googleMapsLink"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5834
6149
|
}
|
|
5835
6150
|
|
|
6151
|
+
/** Official-data tab of the office profile view, showing VAT number, commercial registration, bank/IBAN and national address as info-field cards, with preferred project sizes rendered as PrimeNG tag chips when `useTagChips` is set. */
|
|
5836
6152
|
declare class SceOfficeProfileOfficialTabComponent {
|
|
5837
6153
|
readonly vatNumber: _angular_core.InputSignal<string>;
|
|
5838
6154
|
readonly commercialRegistrationNumber: _angular_core.InputSignal<string>;
|
|
@@ -5847,6 +6163,7 @@ declare class SceOfficeProfileOfficialTabComponent {
|
|
|
5847
6163
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficeProfileOfficialTabComponent, "sce-office-profile-official-tab", never, { "vatNumber": { "alias": "vatNumber"; "required": false; "isSignal": true; }; "commercialRegistrationNumber": { "alias": "commercialRegistrationNumber"; "required": false; "isSignal": true; }; "cityName": { "alias": "cityName"; "required": false; "isSignal": true; }; "bankNameDisplay": { "alias": "bankNameDisplay"; "required": false; "isSignal": true; }; "shortNationalAddress": { "alias": "shortNationalAddress"; "required": false; "isSignal": true; }; "ibanNumber": { "alias": "ibanNumber"; "required": false; "isSignal": true; }; "preferredProjectSizesDisplay": { "alias": "preferredProjectSizesDisplay"; "required": false; "isSignal": true; }; "preferredProjectSizesLabel": { "alias": "preferredProjectSizesLabel"; "required": false; "isSignal": true; }; "useTagChips": { "alias": "useTagChips"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5848
6164
|
}
|
|
5849
6165
|
|
|
6166
|
+
/** Collapsible `<details>` panel (open by default) showing the reviewer's rejection note, or an em dash when the note is empty. */
|
|
5850
6167
|
declare class SceDataRequestRejectionPanelComponent {
|
|
5851
6168
|
/** The rejection note text from the API. Empty string shows a dash. */
|
|
5852
6169
|
readonly note: _angular_core.InputSignal<string>;
|
|
@@ -5854,6 +6171,7 @@ declare class SceDataRequestRejectionPanelComponent {
|
|
|
5854
6171
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceDataRequestRejectionPanelComponent, "sce-data-request-rejection-panel", never, { "note": { "alias": "note"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5855
6172
|
}
|
|
5856
6173
|
|
|
6174
|
+
/** Header card of a data-change request showing its number, status badge and office info grid, revealing the rejection panel only when `statusCode` is rejected. */
|
|
5857
6175
|
declare class SceDataRequestHeaderCardComponent {
|
|
5858
6176
|
/** Human-readable request number (e.g. "REQ-00123"). */
|
|
5859
6177
|
readonly requestNumber: _angular_core.InputSignal<string>;
|
|
@@ -5881,12 +6199,14 @@ declare class SceDataRequestHeaderCardComponent {
|
|
|
5881
6199
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceDataRequestHeaderCardComponent, "sce-data-request-header-card", never, { "requestNumber": { "alias": "requestNumber"; "required": true; "isSignal": true; }; "statusLabel": { "alias": "statusLabel"; "required": true; "isSignal": true; }; "statusCode": { "alias": "statusCode"; "required": true; "isSignal": true; }; "submissionDate": { "alias": "submissionDate"; "required": true; "isSignal": true; }; "rejectionNote": { "alias": "rejectionNote"; "required": false; "isSignal": true; }; "licenseNumber": { "alias": "licenseNumber"; "required": true; "isSignal": true; }; "officeName": { "alias": "officeName"; "required": true; "isSignal": true; }; "representativeName": { "alias": "representativeName"; "required": true; "isSignal": true; }; "reviewRequired": { "alias": "reviewRequired"; "required": true; "isSignal": true; }; "requestStatusLabel": { "alias": "requestStatusLabel"; "required": true; "isSignal": true; }; "lastActionDate": { "alias": "lastActionDate"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5882
6200
|
}
|
|
5883
6201
|
|
|
6202
|
+
/** One field of a data-change request, pairing its `current` and `updated` display values with a `changed` flag that highlights the row. */
|
|
5884
6203
|
interface DataRequestComparisonRow {
|
|
5885
6204
|
label: string;
|
|
5886
6205
|
current: string;
|
|
5887
6206
|
updated: string;
|
|
5888
6207
|
changed: boolean;
|
|
5889
6208
|
}
|
|
6209
|
+
/** Titled table contrasting each field's current and updated value in a data-change request, flagging the rows that changed. */
|
|
5890
6210
|
declare class SceDataRequestComparisonTableComponent {
|
|
5891
6211
|
/** Section heading text. */
|
|
5892
6212
|
readonly title: _angular_core.InputSignal<string>;
|
|
@@ -5896,7 +6216,9 @@ declare class SceDataRequestComparisonTableComponent {
|
|
|
5896
6216
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceDataRequestComparisonTableComponent, "sce-data-request-comparison-table", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "rows": { "alias": "rows"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5897
6217
|
}
|
|
5898
6218
|
|
|
6219
|
+
/** Which media the comparison frames hold, selecting their aspect ratio: `logo` is square, `cover` widescreen. */
|
|
5899
6220
|
type DataRequestMediaVariant = 'logo' | 'cover';
|
|
6221
|
+
/** Side-by-side before/after image frames for a data-change request, sized square for `logo` and widescreen for `cover`, emitting a click per side. */
|
|
5900
6222
|
declare class SceDataRequestMediaComparisonComponent {
|
|
5901
6223
|
/** Block heading (e.g. "Logo" or "Cover"). */
|
|
5902
6224
|
readonly title: _angular_core.InputSignal<string>;
|
|
@@ -5916,11 +6238,13 @@ declare class SceDataRequestMediaComparisonComponent {
|
|
|
5916
6238
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceDataRequestMediaComparisonComponent, "sce-data-request-media-comparison", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "currentUrl": { "alias": "currentUrl"; "required": false; "isSignal": true; }; "newUrl": { "alias": "newUrl"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, { "currentImageClick": "currentImageClick"; "newImageClick": "newImageClick"; }, never, never, true, never>;
|
|
5917
6239
|
}
|
|
5918
6240
|
|
|
6241
|
+
/** Payload emitted by `SceNewsletterSubscriptionDialogComponent.submitForm`: trimmed name, email and (optional) mobile. */
|
|
5919
6242
|
interface NewsletterSubscriptionFormValues {
|
|
5920
6243
|
clientName: string;
|
|
5921
6244
|
email: string;
|
|
5922
6245
|
mobile: string;
|
|
5923
6246
|
}
|
|
6247
|
+
/** Newsletter subscription dialog collecting a name, email and optional Saudi mobile number with its own touch-based validation, resetting all fields whenever it is closed. */
|
|
5924
6248
|
declare class SceNewsletterSubscriptionDialogComponent {
|
|
5925
6249
|
private readonly translate;
|
|
5926
6250
|
readonly visible: _angular_core.InputSignal<boolean>;
|
|
@@ -5952,6 +6276,7 @@ declare class SceNewsletterSubscriptionDialogComponent {
|
|
|
5952
6276
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceNewsletterSubscriptionDialogComponent, "sce-newsletter-subscription-dialog", never, { "visible": { "alias": "visible"; "required": true; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "isSubmitting": { "alias": "isSubmitting"; "required": false; "isSignal": true; }; "apiError": { "alias": "apiError"; "required": false; "isSignal": true; }; }, { "closeDialog": "closeDialog"; "submitForm": "submitForm"; }, never, never, true, never>;
|
|
5953
6277
|
}
|
|
5954
6278
|
|
|
6279
|
+
/** Profile-photo panel with a hidden file input: emits `photoFileSelected` on pick (resetting the input so the same file can be re-chosen) and `viewClick` only when `hasRealPhoto` is true; uses `ViewEncapsulation.None`. */
|
|
5955
6280
|
declare class SceProfilePhotoSectionComponent {
|
|
5956
6281
|
/** Currently displayed photo URL. Null or undefined shows the default avatar. */
|
|
5957
6282
|
readonly photoUrl: _angular_core.InputSignal<string | null>;
|
|
@@ -5977,6 +6302,7 @@ declare class SceProfilePhotoSectionComponent {
|
|
|
5977
6302
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceProfilePhotoSectionComponent, "sce-profile-photo-section", never, { "photoUrl": { "alias": "photoUrl"; "required": false; "isSignal": true; }; "photoLoading": { "alias": "photoLoading"; "required": false; "isSignal": true; }; "photoUploading": { "alias": "photoUploading"; "required": false; "isSignal": true; }; "photoError": { "alias": "photoError"; "required": false; "isSignal": true; }; "hasRealPhoto": { "alias": "hasRealPhoto"; "required": false; "isSignal": true; }; "acceptedTypes": { "alias": "acceptedTypes"; "required": false; "isSignal": true; }; }, { "viewClick": "viewClick"; "photoFileSelected": "photoFileSelected"; }, never, never, true, never>;
|
|
5978
6303
|
}
|
|
5979
6304
|
|
|
6305
|
+
/** Fully resolved, display-ready personal-profile data; the caller is responsible for formatting the birth date and resolving the bank name. */
|
|
5980
6306
|
interface ProfileInfoViewData {
|
|
5981
6307
|
fullName: string;
|
|
5982
6308
|
nationalId: string;
|
|
@@ -5991,11 +6317,13 @@ interface ProfileInfoViewData {
|
|
|
5991
6317
|
bankNameDisplay: string;
|
|
5992
6318
|
bankAccount: string;
|
|
5993
6319
|
}
|
|
6320
|
+
/** One label/value row in a profile view section; `fullWidth` makes it span both grid columns. */
|
|
5994
6321
|
interface ProfileViewField {
|
|
5995
6322
|
labelKey: string;
|
|
5996
6323
|
value: string;
|
|
5997
6324
|
fullWidth?: boolean;
|
|
5998
6325
|
}
|
|
6326
|
+
/** A titled group of read-only profile fields, optionally carrying its own Edit action. */
|
|
5999
6327
|
interface ProfileViewSection {
|
|
6000
6328
|
titleKey: string;
|
|
6001
6329
|
showEditAction?: boolean;
|
|
@@ -6003,6 +6331,7 @@ interface ProfileViewSection {
|
|
|
6003
6331
|
}
|
|
6004
6332
|
/** Re-exported alias so callers don't need to import from core directly. */
|
|
6005
6333
|
type ProfileBankOption = LookupDetailDto;
|
|
6334
|
+
/** Personal-profile panel that flips between a read-only field grid and an edit form (`editing`), showing skeletons while `profile` is null and an inline banner for `error`; uses `ViewEncapsulation.None`. */
|
|
6006
6335
|
declare class SceProfileInfoSectionComponent {
|
|
6007
6336
|
/** Resolved profile data for the read (view) mode. Null shows skeleton. */
|
|
6008
6337
|
readonly profile: _angular_core.InputSignal<ProfileInfoViewData | null>;
|
|
@@ -6044,6 +6373,7 @@ declare class SceProfileInfoSectionComponent {
|
|
|
6044
6373
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceProfileInfoSectionComponent, "sce-profile-info-section", never, { "profile": { "alias": "profile"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "editing": { "alias": "editing"; "required": false; "isSignal": true; }; "saving": { "alias": "saving"; "required": false; "isSignal": true; }; "editEmail": { "alias": "editEmail"; "required": false; "isSignal": true; }; "editPhone": { "alias": "editPhone"; "required": false; "isSignal": true; }; "editAddress": { "alias": "editAddress"; "required": false; "isSignal": true; }; "editBankId": { "alias": "editBankId"; "required": false; "isSignal": true; }; "editBankAccount": { "alias": "editBankAccount"; "required": false; "isSignal": true; }; "emailError": { "alias": "emailError"; "required": false; "isSignal": true; }; "phoneError": { "alias": "phoneError"; "required": false; "isSignal": true; }; "addressError": { "alias": "addressError"; "required": false; "isSignal": true; }; "bankAccountError": { "alias": "bankAccountError"; "required": false; "isSignal": true; }; "banks": { "alias": "banks"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; }, { "editClick": "editClick"; "cancelClick": "cancelClick"; "saveClick": "saveClick"; "emailChange": "emailChange"; "phoneChange": "phoneChange"; "addressChange": "addressChange"; "bankIdChange": "bankIdChange"; "bankAccountChange": "bankAccountChange"; }, never, never, true, never>;
|
|
6045
6374
|
}
|
|
6046
6375
|
|
|
6376
|
+
/** Info-field grid summarising the entity's current contact and registration data on a data-change request; each unset field falls back to an em dash. */
|
|
6047
6377
|
declare class SceDataRequestCurrentSummaryComponent {
|
|
6048
6378
|
readonly currentPhone: _angular_core.InputSignal<string>;
|
|
6049
6379
|
readonly currentEmail: _angular_core.InputSignal<string>;
|
|
@@ -6054,7 +6384,9 @@ declare class SceDataRequestCurrentSummaryComponent {
|
|
|
6054
6384
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceDataRequestCurrentSummaryComponent, "sce-data-request-current-summary", never, { "currentPhone": { "alias": "currentPhone"; "required": false; "isSignal": true; }; "currentEmail": { "alias": "currentEmail"; "required": false; "isSignal": true; }; "currentCity": { "alias": "currentCity"; "required": false; "isSignal": true; }; "unifiedNumber": { "alias": "unifiedNumber"; "required": false; "isSignal": true; }; "currentVatNumber": { "alias": "currentVatNumber"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
6055
6385
|
}
|
|
6056
6386
|
|
|
6387
|
+
/** How a portfolio project changed in the request, grouping it into the added, updated or removed section. */
|
|
6057
6388
|
type ProjectChangeDisplayType = 'added' | 'updated' | 'removed';
|
|
6389
|
+
/** One numeric or textual attribute of a project, showing its `currentValue` beside its `nextValue` and whether the two differ. */
|
|
6058
6390
|
interface ProjectChangeDisplayMetric {
|
|
6059
6391
|
key: string;
|
|
6060
6392
|
label: string;
|
|
@@ -6062,6 +6394,7 @@ interface ProjectChangeDisplayMetric {
|
|
|
6062
6394
|
nextValue: string;
|
|
6063
6395
|
changed: boolean;
|
|
6064
6396
|
}
|
|
6397
|
+
/** A single project's proposed change, carrying its before/after description and metrics, its gallery `imageUrls`, and the pre-rendered badge and subtitle strings. */
|
|
6065
6398
|
interface ProjectChangeDisplayItem {
|
|
6066
6399
|
id: string;
|
|
6067
6400
|
type: ProjectChangeDisplayType;
|
|
@@ -6077,6 +6410,7 @@ interface ProjectChangeDisplayItem {
|
|
|
6077
6410
|
imageUrls: string[];
|
|
6078
6411
|
compactSubtitle: string;
|
|
6079
6412
|
}
|
|
6413
|
+
/** Lists the added, updated and removed portfolio projects in a data-change request, emitting the project and image index when a preview is clicked. */
|
|
6080
6414
|
declare class SceDataRequestProjectChangesComponent {
|
|
6081
6415
|
readonly projectChanges: _angular_core.InputSignal<ProjectChangeDisplayItem[]>;
|
|
6082
6416
|
readonly isSystemUser: _angular_core.InputSignal<boolean>;
|
|
@@ -6088,6 +6422,7 @@ declare class SceDataRequestProjectChangesComponent {
|
|
|
6088
6422
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceDataRequestProjectChangesComponent, "sce-data-request-project-changes", never, { "projectChanges": { "alias": "projectChanges"; "required": false; "isSignal": true; }; "isSystemUser": { "alias": "isSystemUser"; "required": false; "isSignal": true; }; }, { "imageClick": "imageClick"; }, never, never, true, never>;
|
|
6089
6423
|
}
|
|
6090
6424
|
|
|
6425
|
+
/** One knowledge-center category tile, keyed by `slug`; `titleKey` and `descriptionKey` are i18n keys, not literal text. */
|
|
6091
6426
|
interface KnowledgeCategoryItem {
|
|
6092
6427
|
slug: string;
|
|
6093
6428
|
titleKey: string;
|
|
@@ -6095,6 +6430,7 @@ interface KnowledgeCategoryItem {
|
|
|
6095
6430
|
icon: string;
|
|
6096
6431
|
background?: string;
|
|
6097
6432
|
}
|
|
6433
|
+
/** Grid of knowledge-center categories that also owns its loading, error and empty states and emits category/retry/ticket actions. */
|
|
6098
6434
|
declare class SceKnowledgeCenterCategoryGridComponent {
|
|
6099
6435
|
readonly categories: _angular_core.InputSignal<KnowledgeCategoryItem[]>;
|
|
6100
6436
|
readonly isLoadingCategories: _angular_core.InputSignal<boolean>;
|
|
@@ -6107,6 +6443,7 @@ declare class SceKnowledgeCenterCategoryGridComponent {
|
|
|
6107
6443
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceKnowledgeCenterCategoryGridComponent, "sce-knowledge-center-category-grid", never, { "categories": { "alias": "categories"; "required": false; "isSignal": true; }; "isLoadingCategories": { "alias": "isLoadingCategories"; "required": false; "isSignal": true; }; "categoriesError": { "alias": "categoriesError"; "required": false; "isSignal": true; }; }, { "categoryClick": "categoryClick"; "retry": "retry"; "newTicket": "newTicket"; "viewTickets": "viewTickets"; }, never, never, true, never>;
|
|
6108
6444
|
}
|
|
6109
6445
|
|
|
6446
|
+
/** Read-only contact details panel rendering working hours, response time, phone number, email link and Instagram/Twitter links. */
|
|
6110
6447
|
declare class SceContactInfoPanelComponent {
|
|
6111
6448
|
readonly workingHoursValue: _angular_core.InputSignal<string>;
|
|
6112
6449
|
readonly responseValue: _angular_core.InputSignal<string>;
|
|
@@ -6119,6 +6456,7 @@ declare class SceContactInfoPanelComponent {
|
|
|
6119
6456
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceContactInfoPanelComponent, "sce-contact-info-panel", never, { "workingHoursValue": { "alias": "workingHoursValue"; "required": false; "isSignal": true; }; "responseValue": { "alias": "responseValue"; "required": false; "isSignal": true; }; "phoneValue": { "alias": "phoneValue"; "required": false; "isSignal": true; }; "emailHref": { "alias": "emailHref"; "required": false; "isSignal": true; }; "emailValue": { "alias": "emailValue"; "required": false; "isSignal": true; }; "socialInstagramHref": { "alias": "socialInstagramHref"; "required": false; "isSignal": true; }; "socialTwitterHref": { "alias": "socialTwitterHref"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
6120
6457
|
}
|
|
6121
6458
|
|
|
6459
|
+
/** Fully-controlled contact form panel with name, email, message-type and message fields plus a hidden `website` honeypot; it holds no state of its own — every value, error and loading flag is an input and every change is an output. */
|
|
6122
6460
|
declare class SceContactFormPanelComponent {
|
|
6123
6461
|
readonly dir: _angular_core.InputSignal<"rtl" | "ltr">;
|
|
6124
6462
|
readonly fullName: _angular_core.InputSignal<string>;
|
|
@@ -6154,6 +6492,7 @@ declare class SceContactFormPanelComponent {
|
|
|
6154
6492
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceContactFormPanelComponent, "sce-contact-form-panel", never, { "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "fullName": { "alias": "fullName"; "required": true; "isSignal": true; }; "email": { "alias": "email"; "required": true; "isSignal": true; }; "messageType": { "alias": "messageType"; "required": true; "isSignal": true; }; "message": { "alias": "message"; "required": true; "isSignal": true; }; "website": { "alias": "website"; "required": false; "isSignal": true; }; "submitSuccess": { "alias": "submitSuccess"; "required": false; "isSignal": true; }; "submitError": { "alias": "submitError"; "required": false; "isSignal": true; }; "isSubmitting": { "alias": "isSubmitting"; "required": false; "isSignal": true; }; "isSubmitDisabled": { "alias": "isSubmitDisabled"; "required": false; "isSignal": true; }; "submitLabel": { "alias": "submitLabel"; "required": true; "isSignal": true; }; "messageTypesLoading": { "alias": "messageTypesLoading"; "required": false; "isSignal": true; }; "messageTypeUnavailable": { "alias": "messageTypeUnavailable"; "required": false; "isSignal": true; }; "messageTypeOptions": { "alias": "messageTypeOptions"; "required": false; "isSignal": true; }; "messageTypePlaceholder": { "alias": "messageTypePlaceholder"; "required": false; "isSignal": true; }; "fullNameError": { "alias": "fullNameError"; "required": false; "isSignal": true; }; "emailError": { "alias": "emailError"; "required": false; "isSignal": true; }; "messageTypeError": { "alias": "messageTypeError"; "required": false; "isSignal": true; }; "messageError": { "alias": "messageError"; "required": false; "isSignal": true; }; "emailPattern": { "alias": "emailPattern"; "required": false; "isSignal": true; }; "fullNameValidationMessages": { "alias": "fullNameValidationMessages"; "required": false; "isSignal": true; }; "emailValidationMessages": { "alias": "emailValidationMessages"; "required": false; "isSignal": true; }; "messageTypeValidationMessages": { "alias": "messageTypeValidationMessages"; "required": false; "isSignal": true; }; "messageValidationMessages": { "alias": "messageValidationMessages"; "required": false; "isSignal": true; }; }, { "fullNameChange": "fullNameChange"; "emailChange": "emailChange"; "messageTypeChange": "messageTypeChange"; "messageChange": "messageChange"; "websiteChange": "websiteChange"; "formSubmit": "formSubmit"; }, never, never, true, never>;
|
|
6155
6493
|
}
|
|
6156
6494
|
|
|
6495
|
+
/** Day counts for the force-majeure setting: notification periods per contract kind, plus the grantable extension periods. */
|
|
6157
6496
|
interface PsSettingForceMajeureDurationsValue {
|
|
6158
6497
|
notificationDays: {
|
|
6159
6498
|
general: number;
|
|
@@ -6165,6 +6504,7 @@ interface PsSettingForceMajeureDurationsValue {
|
|
|
6165
6504
|
consultancy: number;
|
|
6166
6505
|
};
|
|
6167
6506
|
}
|
|
6507
|
+
/** Discriminated union of one platform setting, keyed on `type`, which selects both the `value` shape and the control rendered for it. */
|
|
6168
6508
|
type PsSettingField = {
|
|
6169
6509
|
apiKey: string;
|
|
6170
6510
|
label: string;
|
|
@@ -6184,6 +6524,7 @@ type PsSettingField = {
|
|
|
6184
6524
|
type: 'forceMajeureDurations';
|
|
6185
6525
|
value: PsSettingForceMajeureDurationsValue;
|
|
6186
6526
|
};
|
|
6527
|
+
/** Renders the platform settings list as read-only info cards or editable controls, emitting a typed update per field kind (boolean, integer, force-majeure durations). */
|
|
6187
6528
|
declare class ScePlatformSettingsFieldsComponent {
|
|
6188
6529
|
readonly viewFields: _angular_core.InputSignal<PsSettingField[]>;
|
|
6189
6530
|
readonly isEditMode: _angular_core.InputSignal<boolean>;
|
|
@@ -6212,6 +6553,7 @@ declare class ScePlatformSettingsFieldsComponent {
|
|
|
6212
6553
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ScePlatformSettingsFieldsComponent, "sce-platform-settings-fields", never, { "viewFields": { "alias": "viewFields"; "required": true; "isSignal": true; }; "isEditMode": { "alias": "isEditMode"; "required": false; "isSignal": true; }; "saving": { "alias": "saving"; "required": false; "isSignal": true; }; }, { "booleanUpdate": "booleanUpdate"; "integerUpdate": "integerUpdate"; "forceMajeureNotificationUpdate": "forceMajeureNotificationUpdate"; "forceMajeureExtensionUpdate": "forceMajeureExtensionUpdate"; "editCancel": "editCancel"; "editSave": "editSave"; }, never, never, true, never>;
|
|
6213
6554
|
}
|
|
6214
6555
|
|
|
6556
|
+
/** Presentational entity-profile edit form bound to a caller-owned `FormGroup`; it holds no form state of its own and re-emits each field's raw input `Event` for the host to handle. */
|
|
6215
6557
|
declare class SceEntityProfileEditFormComponent {
|
|
6216
6558
|
readonly form: _angular_core.InputSignal<FormGroup<any>>;
|
|
6217
6559
|
readonly dir: _angular_core.InputSignal<"rtl" | "ltr">;
|
|
@@ -6234,7 +6576,9 @@ declare class SceEntityProfileEditFormComponent {
|
|
|
6234
6576
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceEntityProfileEditFormComponent, "sce-entity-profile-edit-form", never, { "form": { "alias": "form"; "required": true; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "entityName": { "alias": "entityName"; "required": false; "isSignal": true; }; "entityType": { "alias": "entityType"; "required": false; "isSignal": true; }; "unifiedNumber": { "alias": "unifiedNumber"; "required": false; "isSignal": true; }; "bankOptions": { "alias": "bankOptions"; "required": false; "isSignal": true; }; "selectedBankId": { "alias": "selectedBankId"; "required": false; "isSignal": true; }; "bankError": { "alias": "bankError"; "required": false; "isSignal": true; }; "submitting": { "alias": "submitting"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; }, { "phoneInput": "phoneInput"; "licenseInput": "licenseInput"; "taxInput": "taxInput"; "addressInput": "addressInput"; "ibanInput": "ibanInput"; "bankChange": "bankChange"; "formSubmit": "formSubmit"; }, never, never, true, never>;
|
|
6235
6577
|
}
|
|
6236
6578
|
|
|
6579
|
+
/** Which tab of the account-users page is active. */
|
|
6237
6580
|
type AccountUsersTab = 'account-users' | 'engineering-staff';
|
|
6581
|
+
/** Title bar with account-users / engineering-staff tabs and an optional Add button (`showAddButton`, off by default); it emits clicks and never switches `activeTab` itself. */
|
|
6238
6582
|
declare class SceAccountUsersTabsBarComponent {
|
|
6239
6583
|
readonly title: _angular_core.InputSignal<string>;
|
|
6240
6584
|
readonly activeTab: _angular_core.InputSignal<AccountUsersTab>;
|
|
@@ -6246,6 +6590,7 @@ declare class SceAccountUsersTabsBarComponent {
|
|
|
6246
6590
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceAccountUsersTabsBarComponent, "sce-account-users-tabs-bar", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "activeTab": { "alias": "activeTab"; "required": true; "isSignal": true; }; "showAddButton": { "alias": "showAddButton"; "required": false; "isSignal": true; }; }, { "accountUsersTabClick": "accountUsersTabClick"; "staffTabClick": "staffTabClick"; "addUserClick": "addUserClick"; }, never, never, true, never>;
|
|
6247
6591
|
}
|
|
6248
6592
|
|
|
6593
|
+
/** Dialog that collects a national ID and birth date (Hijri or Gregorian via `calendarSystem`) to verify a user before assigning them; fully controlled, emitting `submitVerify` rather than calling any API. */
|
|
6249
6594
|
declare class SceAccountUserVerifyDialogComponent {
|
|
6250
6595
|
readonly visible: _angular_core.InputSignal<boolean>;
|
|
6251
6596
|
readonly locale: _angular_core.InputSignal<"ar" | "en">;
|
|
@@ -6264,6 +6609,7 @@ declare class SceAccountUserVerifyDialogComponent {
|
|
|
6264
6609
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceAccountUserVerifyDialogComponent, "sce-account-user-verify-dialog", never, { "visible": { "alias": "visible"; "required": true; "isSignal": true; }; "locale": { "alias": "locale"; "required": true; "isSignal": true; }; "nationalId": { "alias": "nationalId"; "required": true; "isSignal": true; }; "nationalIdError": { "alias": "nationalIdError"; "required": false; "isSignal": true; }; "birthDate": { "alias": "birthDate"; "required": true; "isSignal": true; }; "birthDateError": { "alias": "birthDateError"; "required": false; "isSignal": true; }; "calendarSystem": { "alias": "calendarSystem"; "required": false; "isSignal": true; }; "submitting": { "alias": "submitting"; "required": false; "isSignal": true; }; "actionError": { "alias": "actionError"; "required": false; "isSignal": true; }; }, { "dialogClose": "dialogClose"; "nationalIdChange": "nationalIdChange"; "birthDateChange": "birthDateChange"; "submitVerify": "submitVerify"; }, never, never, true, never>;
|
|
6265
6610
|
}
|
|
6266
6611
|
|
|
6612
|
+
/** Draft values bound by the assign-user dialog; identity fields arrive pre-filled from the national-ID lookup and only email, mobile, roles, and active state are editable. */
|
|
6267
6613
|
interface AccountUserAssignForm {
|
|
6268
6614
|
nationalId: string;
|
|
6269
6615
|
userName: string;
|
|
@@ -6273,10 +6619,12 @@ interface AccountUserAssignForm {
|
|
|
6273
6619
|
roleIds: number[];
|
|
6274
6620
|
isActive: boolean;
|
|
6275
6621
|
}
|
|
6622
|
+
/** A role choice in the assign-user dialog's multi-select, keyed by numeric role id. */
|
|
6276
6623
|
interface AssignRoleOption {
|
|
6277
6624
|
label: string;
|
|
6278
6625
|
value: number;
|
|
6279
6626
|
}
|
|
6627
|
+
/** Dialog for assigning an account user roles and contact details; fully controlled — it mutates nothing, emitting every field change and `submitAssign` to the host — and uses `ViewEncapsulation.None`. */
|
|
6280
6628
|
declare class SceAccountUserAssignDialogComponent {
|
|
6281
6629
|
readonly visible: _angular_core.InputSignal<boolean>;
|
|
6282
6630
|
readonly locale: _angular_core.InputSignal<"ar" | "en">;
|
|
@@ -6301,15 +6649,18 @@ declare class SceAccountUserAssignDialogComponent {
|
|
|
6301
6649
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceAccountUserAssignDialogComponent, "sce-account-user-assign-dialog", never, { "visible": { "alias": "visible"; "required": true; "isSignal": true; }; "locale": { "alias": "locale"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": true; "isSignal": true; }; "assignForm": { "alias": "assignForm"; "required": true; "isSignal": true; }; "requireEmail": { "alias": "requireEmail"; "required": false; "isSignal": true; }; "requireMobile": { "alias": "requireMobile"; "required": false; "isSignal": true; }; "emailError": { "alias": "emailError"; "required": false; "isSignal": true; }; "mobileError": { "alias": "mobileError"; "required": false; "isSignal": true; }; "rolesLoading": { "alias": "rolesLoading"; "required": false; "isSignal": true; }; "roleOptions": { "alias": "roleOptions"; "required": false; "isSignal": true; }; "rolesError": { "alias": "rolesError"; "required": false; "isSignal": true; }; "actionError": { "alias": "actionError"; "required": false; "isSignal": true; }; "submitting": { "alias": "submitting"; "required": false; "isSignal": true; }; }, { "dialogClose": "dialogClose"; "emailChange": "emailChange"; "mobileChange": "mobileChange"; "roleIdsChange": "roleIdsChange"; "isActiveChange": "isActiveChange"; "submitAssign": "submitAssign"; }, never, never, true, never>;
|
|
6302
6650
|
}
|
|
6303
6651
|
|
|
6652
|
+
/** A non-editable identity field displayed in the edit-user dialog; `fullWidth` spans both grid columns. */
|
|
6304
6653
|
interface AccountUserEditReadOnlyField {
|
|
6305
6654
|
label: string;
|
|
6306
6655
|
value: string | null | undefined;
|
|
6307
6656
|
fullWidth?: boolean;
|
|
6308
6657
|
}
|
|
6658
|
+
/** A role choice in the edit-user dialog's multi-select; unlike the assign dialog its `value` is a string id. */
|
|
6309
6659
|
interface AccountUserEditRoleOption {
|
|
6310
6660
|
label: string;
|
|
6311
6661
|
value: string;
|
|
6312
6662
|
}
|
|
6663
|
+
/** Dialog for editing an existing account user's roles and active state over a read-only identity summary; fully controlled and uses `ViewEncapsulation.None`. */
|
|
6313
6664
|
declare class SceAccountUserEditDialogComponent {
|
|
6314
6665
|
readonly visible: _angular_core.InputSignal<boolean>;
|
|
6315
6666
|
readonly locale: _angular_core.InputSignal<"ar" | "en">;
|
|
@@ -6332,14 +6683,17 @@ declare class SceAccountUserEditDialogComponent {
|
|
|
6332
6683
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceAccountUserEditDialogComponent, "sce-account-user-edit-dialog", never, { "visible": { "alias": "visible"; "required": true; "isSignal": true; }; "locale": { "alias": "locale"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": true; "isSignal": true; }; "readOnlyFields": { "alias": "readOnlyFields"; "required": false; "isSignal": true; }; "roleOptions": { "alias": "roleOptions"; "required": false; "isSignal": true; }; "draftRoleIds": { "alias": "draftRoleIds"; "required": false; "isSignal": true; }; "rolesLoading": { "alias": "rolesLoading"; "required": false; "isSignal": true; }; "isActive": { "alias": "isActive"; "required": false; "isSignal": true; }; "permissionsError": { "alias": "permissionsError"; "required": false; "isSignal": true; }; "dialogError": { "alias": "dialogError"; "required": false; "isSignal": true; }; "submitting": { "alias": "submitting"; "required": false; "isSignal": true; }; "submitLabel": { "alias": "submitLabel"; "required": true; "isSignal": true; }; }, { "closed": "closed"; "submitted": "submitted"; "draftRoleIdsChange": "draftRoleIdsChange"; "isActiveChange": "isActiveChange"; }, never, never, true, never>;
|
|
6333
6684
|
}
|
|
6334
6685
|
|
|
6686
|
+
/** A status pill in the account-user detail header, coloured by its business-status `tone`. */
|
|
6335
6687
|
interface UserDetailStatusTag {
|
|
6336
6688
|
label: string;
|
|
6337
6689
|
tone?: BusinessStatusTone;
|
|
6338
6690
|
}
|
|
6691
|
+
/** A label/value chip (membership number, national ID) shown beside the user's name. */
|
|
6339
6692
|
interface UserDetailBadge {
|
|
6340
6693
|
label: string;
|
|
6341
6694
|
value: string;
|
|
6342
6695
|
}
|
|
6696
|
+
/** Header of an account-user detail page: name, status tags, membership/national-ID badges, and an Edit button; all labels are passed in already translated. */
|
|
6343
6697
|
declare class SceAccountUserDetailHeaderComponent {
|
|
6344
6698
|
readonly title: _angular_core.InputSignal<string>;
|
|
6345
6699
|
readonly statusTags: _angular_core.InputSignal<UserDetailStatusTag[]>;
|
|
@@ -6351,11 +6705,13 @@ declare class SceAccountUserDetailHeaderComponent {
|
|
|
6351
6705
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceAccountUserDetailHeaderComponent, "sce-account-user-detail-header", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "statusTags": { "alias": "statusTags"; "required": false; "isSignal": true; }; "membershipBadge": { "alias": "membershipBadge"; "required": false; "isSignal": true; }; "nationalIdBadge": { "alias": "nationalIdBadge"; "required": false; "isSignal": true; }; "editButtonLabel": { "alias": "editButtonLabel"; "required": true; "isSignal": true; }; }, { "editClick": "editClick"; }, never, never, true, never>;
|
|
6352
6706
|
}
|
|
6353
6707
|
|
|
6708
|
+
/** One read-only label/value row of a user's personal details; `fullWidth` spans both grid columns. */
|
|
6354
6709
|
interface UserDetailField {
|
|
6355
6710
|
label: string;
|
|
6356
6711
|
value: string | null | undefined;
|
|
6357
6712
|
fullWidth?: boolean;
|
|
6358
6713
|
}
|
|
6714
|
+
/** Titled grid of read-only personal-detail `fields` for an account user; labels and values arrive already translated and formatted. */
|
|
6359
6715
|
declare class SceAccountUserPersonalSectionComponent {
|
|
6360
6716
|
readonly title: _angular_core.InputSignal<string>;
|
|
6361
6717
|
readonly fields: _angular_core.InputSignal<UserDetailField[]>;
|
|
@@ -6363,6 +6719,7 @@ declare class SceAccountUserPersonalSectionComponent {
|
|
|
6363
6719
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceAccountUserPersonalSectionComponent, "sce-account-user-personal-section", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "fields": { "alias": "fields"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
6364
6720
|
}
|
|
6365
6721
|
|
|
6722
|
+
/** Read-only permissions panel listing an account user's roles as `pills`, falling back to `noPermissionsLabel` when empty and to skeletons while `loading`. */
|
|
6366
6723
|
declare class SceAccountUserPermissionsSectionComponent {
|
|
6367
6724
|
readonly sectionTitle: _angular_core.InputSignal<string>;
|
|
6368
6725
|
readonly permissionsLabel: _angular_core.InputSignal<string>;
|
|
@@ -6373,6 +6730,7 @@ declare class SceAccountUserPermissionsSectionComponent {
|
|
|
6373
6730
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceAccountUserPermissionsSectionComponent, "sce-account-user-permissions-section", never, { "sectionTitle": { "alias": "sectionTitle"; "required": true; "isSignal": true; }; "permissionsLabel": { "alias": "permissionsLabel"; "required": true; "isSignal": true; }; "noPermissionsLabel": { "alias": "noPermissionsLabel"; "required": true; "isSignal": true; }; "pills": { "alias": "pills"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
6374
6731
|
}
|
|
6375
6732
|
|
|
6733
|
+
/** Inline (non-dialog) national-ID and birth-date step for verifying an internal user before creation; `calendarSystem` selects Hijri or Gregorian input and `verify` is emitted for the host to call the API. */
|
|
6376
6734
|
declare class SceInternalUserVerifySectionComponent {
|
|
6377
6735
|
readonly nationalId: _angular_core.InputSignal<string>;
|
|
6378
6736
|
readonly birthDate: _angular_core.InputSignal<string>;
|
|
@@ -6388,7 +6746,9 @@ declare class SceInternalUserVerifySectionComponent {
|
|
|
6388
6746
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceInternalUserVerifySectionComponent, "sce-internal-user-verify-section", never, { "nationalId": { "alias": "nationalId"; "required": true; "isSignal": true; }; "birthDate": { "alias": "birthDate"; "required": true; "isSignal": true; }; "nationalIdError": { "alias": "nationalIdError"; "required": false; "isSignal": true; }; "birthDateError": { "alias": "birthDateError"; "required": false; "isSignal": true; }; "calendarSystem": { "alias": "calendarSystem"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": true; "isSignal": true; }; "verifying": { "alias": "verifying"; "required": false; "isSignal": true; }; }, { "nationalIdChange": "nationalIdChange"; "birthDateChange": "birthDateChange"; "verify": "verify"; }, never, never, true, never>;
|
|
6389
6747
|
}
|
|
6390
6748
|
|
|
6749
|
+
/** Whether the internal-user fields are editing an existing user or showing the post-verification create step. */
|
|
6391
6750
|
type InternalUserFormFieldsMode = 'edit' | 'create-verified';
|
|
6751
|
+
/** Contact-detail fields for an internal user: national ID, birth date, and name are read-only, and only email and mobile are editable (emitted back to the host). */
|
|
6392
6752
|
declare class SceInternalUserFormFieldsComponent {
|
|
6393
6753
|
readonly mode: _angular_core.InputSignal<InternalUserFormFieldsMode>;
|
|
6394
6754
|
readonly nationalId: _angular_core.InputSignal<string>;
|
|
@@ -6404,10 +6764,12 @@ declare class SceInternalUserFormFieldsComponent {
|
|
|
6404
6764
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceInternalUserFormFieldsComponent, "sce-internal-user-form-fields", never, { "mode": { "alias": "mode"; "required": true; "isSignal": true; }; "nationalId": { "alias": "nationalId"; "required": false; "isSignal": true; }; "birthDate": { "alias": "birthDate"; "required": false; "isSignal": true; }; "userName": { "alias": "userName"; "required": false; "isSignal": true; }; "email": { "alias": "email"; "required": false; "isSignal": true; }; "mobile": { "alias": "mobile"; "required": false; "isSignal": true; }; "emailError": { "alias": "emailError"; "required": false; "isSignal": true; }; "mobileError": { "alias": "mobileError"; "required": false; "isSignal": true; }; }, { "emailChange": "emailChange"; "mobileChange": "mobileChange"; }, never, never, true, never>;
|
|
6405
6765
|
}
|
|
6406
6766
|
|
|
6767
|
+
/** A role choice in the internal-user permissions multi-select, keyed by numeric role id. */
|
|
6407
6768
|
interface InternalUserRoleOption {
|
|
6408
6769
|
label: string;
|
|
6409
6770
|
value: number;
|
|
6410
6771
|
}
|
|
6772
|
+
/** Editable permissions panel for an internal user: a roles multi-select (skeletons while `rolesLoading`) plus an active/inactive switch that defaults to on. */
|
|
6411
6773
|
declare class SceInternalUserPermissionsSectionComponent {
|
|
6412
6774
|
readonly roleOptions: _angular_core.InputSignal<InternalUserRoleOption[]>;
|
|
6413
6775
|
readonly selectedRoleNumbers: _angular_core.InputSignal<number[]>;
|
|
@@ -6419,7 +6781,9 @@ declare class SceInternalUserPermissionsSectionComponent {
|
|
|
6419
6781
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceInternalUserPermissionsSectionComponent, "sce-internal-user-permissions-section", never, { "roleOptions": { "alias": "roleOptions"; "required": false; "isSignal": true; }; "selectedRoleNumbers": { "alias": "selectedRoleNumbers"; "required": false; "isSignal": true; }; "rolesLoading": { "alias": "rolesLoading"; "required": false; "isSignal": true; }; "isActive": { "alias": "isActive"; "required": false; "isSignal": true; }; }, { "selectedRoleNumbersChange": "selectedRoleNumbersChange"; "isActiveChange": "isActiveChange"; }, never, never, true, never>;
|
|
6420
6782
|
}
|
|
6421
6783
|
|
|
6784
|
+
/** Which presentation the offices browser is showing: card grid, list, or map. */
|
|
6422
6785
|
type OfficeViewMode = 'grid' | 'list' | 'map';
|
|
6786
|
+
/** Segmented grid/list/map switch for the offices browser; fully controlled — it reports `viewModeChange` rather than holding the mode itself. */
|
|
6423
6787
|
declare class SceOfficesViewToggleComponent {
|
|
6424
6788
|
readonly viewMode: _angular_core.InputSignal<OfficeViewMode>;
|
|
6425
6789
|
readonly viewModeChange: _angular_core.OutputEmitterRef<OfficeViewMode>;
|
|
@@ -6427,7 +6791,9 @@ declare class SceOfficesViewToggleComponent {
|
|
|
6427
6791
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficesViewToggleComponent, "sce-offices-view-toggle", never, { "viewMode": { "alias": "viewMode"; "required": true; "isSignal": true; }; }, { "viewModeChange": "viewModeChange"; }, never, never, true, never>;
|
|
6428
6792
|
}
|
|
6429
6793
|
|
|
6794
|
+
/** Layout the offices grid panel renders its cards in. */
|
|
6430
6795
|
type OfficeGridViewMode = 'grid' | 'list';
|
|
6796
|
+
/** Paginated grid/list of engineering-office cards with skeleton and empty states; `viewMode` switches the layout and `skeletonCount` is floored at 4. */
|
|
6431
6797
|
declare class SceOfficesGridPanelComponent {
|
|
6432
6798
|
readonly cards: _angular_core.InputSignal<SceEngineeringOfficeCardModel[]>;
|
|
6433
6799
|
readonly isLoading: _angular_core.InputSignal<boolean>;
|
|
@@ -6454,6 +6820,7 @@ declare class SceOfficesGridPanelComponent {
|
|
|
6454
6820
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficesGridPanelComponent, "sce-offices-grid-panel", never, { "cards": { "alias": "cards"; "required": true; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": true; "isSignal": true; }; "isEmpty": { "alias": "isEmpty"; "required": true; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "skeletonCount": { "alias": "skeletonCount"; "required": false; "isSignal": true; }; "page": { "alias": "page"; "required": true; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": true; "isSignal": true; }; "totalItems": { "alias": "totalItems"; "required": true; "isSignal": true; }; "locale": { "alias": "locale"; "required": true; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "bookmarkedIds": { "alias": "bookmarkedIds"; "required": false; "isSignal": true; }; "bookmarkLabel": { "alias": "bookmarkLabel"; "required": false; "isSignal": true; }; "ratingLabel": { "alias": "ratingLabel"; "required": false; "isSignal": true; }; "locationLabel": { "alias": "locationLabel"; "required": false; "isSignal": true; }; "otherLabel": { "alias": "otherLabel"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; "pageSizeChange": "pageSizeChange"; "bookmarkClick": "bookmarkClick"; }, never, never, true, never>;
|
|
6455
6821
|
}
|
|
6456
6822
|
|
|
6823
|
+
/** Wraps the OSM offices map with a fallback link shown when `mapLoadFailed`; emits `selectOffice` when a marker is picked. */
|
|
6457
6824
|
declare class SceOfficesMapPanelComponent {
|
|
6458
6825
|
readonly mapPoints: _angular_core.InputSignal<SceOsmOfficeMapPoint[]>;
|
|
6459
6826
|
readonly mapLoadFailed: _angular_core.InputSignal<boolean>;
|
|
@@ -6466,16 +6833,21 @@ declare class SceOfficesMapPanelComponent {
|
|
|
6466
6833
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceOfficesMapPanelComponent, "sce-offices-map-panel", never, { "mapPoints": { "alias": "mapPoints"; "required": true; "isSignal": true; }; "mapLoadFailed": { "alias": "mapLoadFailed"; "required": true; "isSignal": true; }; "fallbackMapUrl": { "alias": "fallbackMapUrl"; "required": false; "isSignal": true; }; "hasFallbackOffice": { "alias": "hasFallbackOffice"; "required": false; "isSignal": true; }; }, { "selectOffice": "selectOffice"; "ready": "ready"; "mapError": "mapError"; }, never, never, true, never>;
|
|
6467
6834
|
}
|
|
6468
6835
|
|
|
6836
|
+
/** Ordering applied to the offices browser results. */
|
|
6469
6837
|
type OfficeSortMode = 'rating' | 'experience' | 'clients';
|
|
6838
|
+
/** Office-size bucket used to narrow the offices browser results. */
|
|
6470
6839
|
type OfficeSizeFilter = 'all' | 'small' | 'medium' | 'large';
|
|
6840
|
+
/** A selectable sort choice in the offices filters sidebar, labelled by i18n key. */
|
|
6471
6841
|
interface OfficeSortOption {
|
|
6472
6842
|
readonly value: OfficeSortMode;
|
|
6473
6843
|
readonly labelKey: string;
|
|
6474
6844
|
}
|
|
6845
|
+
/** A selectable office-size choice in the offices filters sidebar, labelled by i18n key. */
|
|
6475
6846
|
interface OfficeSizeOption {
|
|
6476
6847
|
readonly value: OfficeSizeFilter;
|
|
6477
6848
|
readonly labelKey: string;
|
|
6478
6849
|
}
|
|
6850
|
+
/** Fully controlled sort/size/budget/experience filter sidebar for the offices browser: it owns no state, taking every draft value, slider bound, and budget-histogram bar as a required input and emitting changes back — including the pre-flipped `*SliderLtr` values PrimeNG's slider needs under RTL. */
|
|
6479
6851
|
declare class SceOfficesFiltersSidebarComponent {
|
|
6480
6852
|
/** Current draft sort/filter values */
|
|
6481
6853
|
readonly draftSort: _angular_core.InputSignal<OfficeSortMode>;
|
|
@@ -6632,6 +7004,7 @@ declare class SceRadioOptionCard {
|
|
|
6632
7004
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceRadioOptionCard, "sce-radio-option-card", never, { "iconName": { "alias": "iconName"; "required": true; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
6633
7005
|
}
|
|
6634
7006
|
|
|
7007
|
+
/** Value of `SceRangeBar`: a single number, or a `[start, end]` pair which switches it into two-handle range mode. */
|
|
6635
7008
|
type SceRangeBarValue = number | [number, number];
|
|
6636
7009
|
/** Single-value or two-handle range slider wired as a `ControlValueAccessor`. */
|
|
6637
7010
|
declare class SceRangeBar implements ControlValueAccessor {
|
|
@@ -6664,6 +7037,7 @@ declare class SceRangeBar implements ControlValueAccessor {
|
|
|
6664
7037
|
|
|
6665
7038
|
/** Rendering mode of the option list. */
|
|
6666
7039
|
type SceFormCheckboxRadioType = 'radio' | 'checkbox' | 'checkbox-search';
|
|
7040
|
+
/** A selectable option with an already-translated `label`, a `value`, and an optional result `count` shown beside it. */
|
|
6667
7041
|
interface SceFieldOption {
|
|
6668
7042
|
label: string;
|
|
6669
7043
|
value: string;
|
|
@@ -6861,6 +7235,7 @@ declare class SceNavCard {
|
|
|
6861
7235
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceNavCard, "sce-nav-card", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": true; "isSignal": true; }; "thumbnailSrc": { "alias": "thumbnailSrc"; "required": false; "isSignal": true; }; "route": { "alias": "route"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "showPlayIcon": { "alias": "showPlayIcon"; "required": false; "isSignal": true; }; }, { "cardClick": "cardClick"; }, never, never, true, never>;
|
|
6862
7236
|
}
|
|
6863
7237
|
|
|
7238
|
+
/** One selectable chip in `SceOptionGroup`: a `value`, an optional already-translated `label`, and an optional `disabled` flag. */
|
|
6864
7239
|
interface SceOptionItem {
|
|
6865
7240
|
value: string;
|
|
6866
7241
|
label?: string;
|
|
@@ -6956,6 +7331,7 @@ declare class SceTabPanel {
|
|
|
6956
7331
|
|
|
6957
7332
|
/** Layout mode: `field` renders a label/value row inside a parent panel; `card` renders a standalone padded tile. */
|
|
6958
7333
|
type BasicCardLayout = 'card' | 'field';
|
|
7334
|
+
/** Label-and-value display rendered either as a standalone padded tile or, in `field` layout, as a plain row inside a parent panel. */
|
|
6959
7335
|
declare class SceBasicCardComponent {
|
|
6960
7336
|
readonly label: _angular_core.InputSignal<string>;
|
|
6961
7337
|
readonly value: _angular_core.InputSignal<string>;
|
|
@@ -6965,6 +7341,7 @@ declare class SceBasicCardComponent {
|
|
|
6965
7341
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceBasicCardComponent, "sce-basic-card", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
6966
7342
|
}
|
|
6967
7343
|
|
|
7344
|
+
/** One tile in `SceNavCardsListComponent`: a slug fed to the parent's route factory plus i18n title/description keys and a thumbnail. */
|
|
6968
7345
|
interface SceNavCardItem {
|
|
6969
7346
|
/** Stable identifier; also fed to the parent's route factory. */
|
|
6970
7347
|
readonly slug: string;
|
|
@@ -6973,6 +7350,7 @@ interface SceNavCardItem {
|
|
|
6973
7350
|
readonly thumbnailSrc: string;
|
|
6974
7351
|
}
|
|
6975
7352
|
|
|
7353
|
+
/** Renders a grid of `sce-nav-card` tiles from `items`; stays route-agnostic by taking a required `getItemRoute` factory that turns an item slug into a router link. */
|
|
6976
7354
|
declare class SceNavCardsListComponent {
|
|
6977
7355
|
readonly items: _angular_core.InputSignal<readonly SceNavCardItem[]>;
|
|
6978
7356
|
/** Maps an item slug to a router link. Kept as an input so the organism stays route-agnostic. */
|
|
@@ -7014,6 +7392,7 @@ declare class SceCardsStatisticsComponent {
|
|
|
7014
7392
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceCardsStatisticsComponent, "sce-cards-statistics", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "totalNumber": { "alias": "totalNumber"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": true; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "tintedIconBackground": { "alias": "tintedIconBackground"; "required": false; "isSignal": true; }; "trendPercentage": { "alias": "trendPercentage"; "required": false; "isSignal": true; }; "trendLabel": { "alias": "trendLabel"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
7015
7393
|
}
|
|
7016
7394
|
|
|
7395
|
+
/** Tone of the status chip on an evaluation criterion. */
|
|
7017
7396
|
type SceCriteriaStatus = 'success' | 'warning' | 'info' | 'danger';
|
|
7018
7397
|
/** Reviewer's write-up for one criterion: an optional reason, free-text notes, and evidence. */
|
|
7019
7398
|
interface SceCriteriaObservation {
|
|
@@ -7021,6 +7400,7 @@ interface SceCriteriaObservation {
|
|
|
7021
7400
|
readonly notes?: string;
|
|
7022
7401
|
readonly attachments?: readonly SceAttachmentListItem[];
|
|
7023
7402
|
}
|
|
7403
|
+
/** One evaluation criterion: its title, status chip `tag`/`status`, optional free-form `score` and description, and the reviewer's `observation`. */
|
|
7024
7404
|
interface SceCriteriaItem {
|
|
7025
7405
|
readonly id: string | number;
|
|
7026
7406
|
readonly title: string;
|
|
@@ -7032,6 +7412,7 @@ interface SceCriteriaItem {
|
|
|
7032
7412
|
readonly description?: string;
|
|
7033
7413
|
readonly observation?: SceCriteriaObservation;
|
|
7034
7414
|
}
|
|
7415
|
+
/** Payload of a criteria section: an optional heading plus the list of `criteria` to render. */
|
|
7035
7416
|
interface SceCriteriaSectionData {
|
|
7036
7417
|
/** i18n key or literal for the section heading. */
|
|
7037
7418
|
readonly title?: string;
|
|
@@ -7077,6 +7458,7 @@ interface SceEntitySummarySector {
|
|
|
7077
7458
|
readonly disabled?: boolean;
|
|
7078
7459
|
}
|
|
7079
7460
|
|
|
7461
|
+
/** Card summarising an entity by logo, name and description, listing its sectors as clickable chips (disabled ones emit nothing) with info and optional settings actions. */
|
|
7080
7462
|
declare class SceEntitySummaryCardComponent {
|
|
7081
7463
|
readonly logo: _angular_core.InputSignal<string>;
|
|
7082
7464
|
readonly name: _angular_core.InputSignal<string>;
|
|
@@ -7121,6 +7503,7 @@ declare class SceExportPdfContainerComponent {
|
|
|
7121
7503
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceExportPdfContainerComponent, "sce-export-pdf-container", never, { "filename": { "alias": "filename"; "required": false; "isSignal": true; }; "pageNumbers": { "alias": "pageNumbers"; "required": false; "isSignal": true; }; }, { "exportStarted": "exportStarted"; "exportComplete": "exportComplete"; "exportError": "exportError"; }, never, ["*"], true, never>;
|
|
7122
7504
|
}
|
|
7123
7505
|
|
|
7506
|
+
/** Reason a picked file was rejected by `SceImagePickerComponent`: wrong MIME type or over `maxSizeMb`. */
|
|
7124
7507
|
type SceImagePickerError = 'type' | 'size';
|
|
7125
7508
|
/** Avatar-style image picker with drag-and-drop, preview, and reactive-forms integration. */
|
|
7126
7509
|
declare class SceImagePickerComponent implements ControlValueAccessor, Validator {
|
|
@@ -7168,11 +7551,13 @@ declare class SceImagePickerComponent implements ControlValueAccessor, Validator
|
|
|
7168
7551
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceImagePickerComponent, "sce-image-picker", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "maxSizeMb": { "alias": "maxSizeMb"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "fileSelected": "fileSelected"; "cleared": "cleared"; "validationError": "validationError"; }, never, never, true, never>;
|
|
7169
7552
|
}
|
|
7170
7553
|
|
|
7554
|
+
/** Status chip shown on an inquiry-request card: a label (i18n key or literal) plus the `SceTagVariant` to colour it. */
|
|
7171
7555
|
interface SceInquiryRequestStatus {
|
|
7172
7556
|
/** i18n key or literal shown inside the tag. */
|
|
7173
7557
|
readonly label: string;
|
|
7174
7558
|
readonly variant: SceTagVariant;
|
|
7175
7559
|
}
|
|
7560
|
+
/** One inquiry request rendered by the inquiry-request card: code, sender, date, deadline, status, and an optional per-row `loading` flag. */
|
|
7176
7561
|
interface SceInquiryRequest {
|
|
7177
7562
|
readonly id: string;
|
|
7178
7563
|
readonly code: string;
|
|
@@ -7202,13 +7587,16 @@ declare class SceInquiryRequestCardComponent {
|
|
|
7202
7587
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceInquiryRequestCardComponent, "sce-inquiry-request-card", never, { "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "subtitleKey": { "alias": "subtitleKey"; "required": false; "isSignal": true; }; "inquiries": { "alias": "inquiries"; "required": true; "isSignal": true; }; }, { "inquirySelect": "inquirySelect"; }, never, never, true, never>;
|
|
7203
7588
|
}
|
|
7204
7589
|
|
|
7590
|
+
/** Severity of a notification, which drives its colour and (unless `icon` is set) its icon. */
|
|
7205
7591
|
type SceNotificationTone = 'info' | 'warning' | 'success' | 'danger';
|
|
7592
|
+
/** A button rendered inside a notification; the `id` is echoed back to the host when clicked. */
|
|
7206
7593
|
interface SceNotificationAction {
|
|
7207
7594
|
/** i18n key or literal shown on the action button. */
|
|
7208
7595
|
readonly label: string;
|
|
7209
7596
|
readonly id: string;
|
|
7210
7597
|
readonly variant?: 'primary' | 'secondary';
|
|
7211
7598
|
}
|
|
7599
|
+
/** One notification row: title, description, `tone`, read flag, `Date`, and optional category chip, icon override, and actions. */
|
|
7212
7600
|
interface SceNotificationItem {
|
|
7213
7601
|
readonly id: string;
|
|
7214
7602
|
readonly title: string;
|
|
@@ -7223,6 +7611,7 @@ interface SceNotificationItem {
|
|
|
7223
7611
|
readonly icon?: string;
|
|
7224
7612
|
readonly actions?: readonly SceNotificationAction[];
|
|
7225
7613
|
}
|
|
7614
|
+
/** Which notifications the list shows: everything, or only unread ones. */
|
|
7226
7615
|
type SceNotificationFilter = 'all' | 'unread';
|
|
7227
7616
|
|
|
7228
7617
|
/** Slide-in notification drawer with all/unread filtering and per-item actions. */
|
|
@@ -7257,6 +7646,7 @@ declare class SceNotificationListComponent {
|
|
|
7257
7646
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceNotificationListComponent, "sce-notification-list", never, { "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "notifications": { "alias": "notifications"; "required": true; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; }, { "visible": "visibleChange"; "notificationSelect": "notificationSelect"; "actionSelect": "actionSelect"; "markAsRead": "markAsRead"; "markAllAsRead": "markAllAsRead"; }, never, never, true, never>;
|
|
7258
7647
|
}
|
|
7259
7648
|
|
|
7649
|
+
/** Whether the save-filter popup is naming a new filter or renaming an existing one (edit mode also offers Delete). */
|
|
7260
7650
|
type SaveFilterMode = 'add' | 'edit';
|
|
7261
7651
|
/** Names (or renames) a saved table filter. Open/close is driven by `PopupModalBase`. */
|
|
7262
7652
|
declare class SceSaveFilterPopupComponent extends PopupModalBase {
|
|
@@ -7293,12 +7683,16 @@ declare class SceStoreLocationsComponent {
|
|
|
7293
7683
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceStoreLocationsComponent, "sce-store-locations", never, { "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "showHeader": { "alias": "showHeader"; "required": false; "isSignal": true; }; "locations": { "alias": "locations"; "required": false; "isSignal": true; }; "selectedLocationId": { "alias": "selectedLocationId"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, { "locationSelect": "locationSelect"; }, never, never, true, never>;
|
|
7294
7684
|
}
|
|
7295
7685
|
|
|
7686
|
+
/** Lifecycle stage of a support ticket thread. */
|
|
7296
7687
|
type SceSupportThreadStatus = 'draft' | 'new' | 'under-review' | 'replied' | 'closed';
|
|
7688
|
+
/** Which side authored a thread response, which determines the bubble's alignment and styling. */
|
|
7297
7689
|
type SceSupportResponderRole = 'support' | 'beneficiary';
|
|
7690
|
+
/** A file already attached to a support response, referenced by download `url`. */
|
|
7298
7691
|
interface SceSupportThreadAttachment {
|
|
7299
7692
|
readonly name: string;
|
|
7300
7693
|
readonly url: string;
|
|
7301
7694
|
}
|
|
7695
|
+
/** One message in a support thread: responder name and role, date, body, and any attachments. */
|
|
7302
7696
|
interface SceSupportThreadResponse {
|
|
7303
7697
|
readonly id: string;
|
|
7304
7698
|
readonly responderName: string;
|
|
@@ -7307,10 +7701,12 @@ interface SceSupportThreadResponse {
|
|
|
7307
7701
|
readonly message: string;
|
|
7308
7702
|
readonly attachments?: readonly SceSupportThreadAttachment[];
|
|
7309
7703
|
}
|
|
7704
|
+
/** Payload emitted when the user submits a reply; attachments are still raw `File` objects, not yet uploaded. */
|
|
7310
7705
|
interface SceSupportThreadReply {
|
|
7311
7706
|
readonly message: string;
|
|
7312
7707
|
readonly attachments: readonly File[];
|
|
7313
7708
|
}
|
|
7709
|
+
/** Payload emitted when the user rates whether the support response was helpful, plus a free-text comment. */
|
|
7314
7710
|
interface SceSupportThreadFeedback {
|
|
7315
7711
|
readonly isHelpful: boolean;
|
|
7316
7712
|
readonly comment: string;
|
|
@@ -7361,6 +7757,7 @@ declare class SceSupportThreadComponent {
|
|
|
7361
7757
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceSupportThreadComponent, "sce-support-thread", never, { "responses": { "alias": "responses"; "required": true; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "canReply": { "alias": "canReply"; "required": false; "isSignal": true; }; "canGiveFeedback": { "alias": "canGiveFeedback"; "required": false; "isSignal": true; }; }, { "replySubmit": "replySubmit"; "feedbackSubmit": "feedbackSubmit"; }, never, never, true, never>;
|
|
7362
7758
|
}
|
|
7363
7759
|
|
|
7760
|
+
/** One selectable user in the user-dropdown picker; both `name` and `subLabel` are matched by its search box. */
|
|
7364
7761
|
interface SceUserDropdownItem {
|
|
7365
7762
|
readonly id: string;
|
|
7366
7763
|
readonly name: string;
|
|
@@ -7430,13 +7827,16 @@ declare class SceArticleDetailComponent {
|
|
|
7430
7827
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceArticleDetailComponent, "sce-article-detail", never, { "titleKey": { "alias": "titleKey"; "required": true; "isSignal": true; }; "contentKey": { "alias": "contentKey"; "required": true; "isSignal": true; }; "contentHtml": { "alias": "contentHtml"; "required": false; "isSignal": true; }; "videoSrc": { "alias": "videoSrc"; "required": false; "isSignal": true; }; "heroImageSrc": { "alias": "heroImageSrc"; "required": false; "isSignal": true; }; "isRated": { "alias": "isRated"; "required": false; "isSignal": true; }; "canGiveFeedback": { "alias": "canGiveFeedback"; "required": false; "isSignal": true; }; }, { "feedback": "feedback"; }, never, never, true, never>;
|
|
7431
7828
|
}
|
|
7432
7829
|
|
|
7830
|
+
/** Colour of a tag chip in an article tag cloud. */
|
|
7433
7831
|
type SceArticleTagVariant = 'brand' | 'accent' | 'info' | 'neutral';
|
|
7832
|
+
/** One tag chip: either a literal `label` or a `labelKey` to translate (which wins), plus an optional `variant` — omit it and the list assigns one by cycling. */
|
|
7434
7833
|
interface SceArticleTagItem {
|
|
7435
7834
|
/** Literal label. Ignored when `labelKey` is set. */
|
|
7436
7835
|
readonly label?: string;
|
|
7437
7836
|
readonly labelKey?: string;
|
|
7438
7837
|
readonly variant?: SceArticleTagVariant;
|
|
7439
7838
|
}
|
|
7839
|
+
/** Titled tag cloud for knowledge articles; any tag without an explicit variant is assigned one by cycling through brand, accent and info so the cloud stays visually varied. */
|
|
7440
7840
|
declare class SceArticleTagsListComponent {
|
|
7441
7841
|
readonly items: _angular_core.InputSignal<readonly SceArticleTagItem[]>;
|
|
7442
7842
|
readonly titleKey: _angular_core.InputSignal<string>;
|
|
@@ -7495,12 +7895,15 @@ declare class SceArticlePageComponent {
|
|
|
7495
7895
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceArticlePageComponent, "sce-article-page", never, { "titleKey": { "alias": "titleKey"; "required": true; "isSignal": true; }; "breadcrumbItems": { "alias": "breadcrumbItems"; "required": false; "isSignal": true; }; "showPageHeader": { "alias": "showPageHeader"; "required": false; "isSignal": true; }; "videoSrc": { "alias": "videoSrc"; "required": false; "isSignal": true; }; "heroImageSrc": { "alias": "heroImageSrc"; "required": false; "isSignal": true; }; "contentKey": { "alias": "contentKey"; "required": true; "isSignal": true; }; "contentHtml": { "alias": "contentHtml"; "required": false; "isSignal": true; }; "accordionItems": { "alias": "accordionItems"; "required": false; "isSignal": true; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "relatedItems": { "alias": "relatedItems"; "required": false; "isSignal": true; }; "tags": { "alias": "tags"; "required": false; "isSignal": true; }; "tagsTitleKey": { "alias": "tagsTitleKey"; "required": false; "isSignal": true; }; "relatedTitleKey": { "alias": "relatedTitleKey"; "required": false; "isSignal": true; }; "timelineItems": { "alias": "timelineItems"; "required": false; "isSignal": true; }; "isRated": { "alias": "isRated"; "required": false; "isSignal": true; }; "canGiveFeedback": { "alias": "canGiveFeedback"; "required": false; "isSignal": true; }; }, { "feedback": "feedback"; }, never, ["[articleSupport]"], true, never>;
|
|
7496
7896
|
}
|
|
7497
7897
|
|
|
7898
|
+
/** Shape of a sidebar nav badge: a circular numeric pill (`count`) or a text pill (`label`). */
|
|
7498
7899
|
type SceNavBadgeVariant = 'count' | 'label';
|
|
7900
|
+
/** A leaf entry nested under a `SceNavItem`; always routes somewhere. */
|
|
7499
7901
|
interface SceNavChildItem {
|
|
7500
7902
|
/** i18n key or literal. */
|
|
7501
7903
|
readonly label: string;
|
|
7502
7904
|
readonly route: string;
|
|
7503
7905
|
}
|
|
7906
|
+
/** A top-level sidebar entry: icon plus label, optionally routing directly, carrying a badge, or expanding into `children`. */
|
|
7504
7907
|
interface SceNavItem {
|
|
7505
7908
|
readonly label: string;
|
|
7506
7909
|
readonly icon: string;
|
|
@@ -7510,11 +7913,13 @@ interface SceNavItem {
|
|
|
7510
7913
|
readonly badgeVariant?: SceNavBadgeVariant;
|
|
7511
7914
|
readonly children?: readonly SceNavChildItem[];
|
|
7512
7915
|
}
|
|
7916
|
+
/** A titled group of sidebar nav items. */
|
|
7513
7917
|
interface SceNavSection {
|
|
7514
7918
|
/** i18n key or literal for the section heading. */
|
|
7515
7919
|
readonly title: string;
|
|
7516
7920
|
readonly items: readonly SceNavItem[];
|
|
7517
7921
|
}
|
|
7922
|
+
/** Branding block at the top of the sidebar: platform title, optional signed-in role, and logo. */
|
|
7518
7923
|
interface SceSidebarBrand {
|
|
7519
7924
|
/** i18n key or literal for the platform name. */
|
|
7520
7925
|
readonly title: string;
|
|
@@ -7598,5 +8003,5 @@ declare class SceRegisterLayoutComponent {
|
|
|
7598
8003
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SceRegisterLayoutComponent, "sce-register-layout", never, { "asideTitleKey": { "alias": "asideTitleKey"; "required": false; "isSignal": true; }; "asideDescriptionKey": { "alias": "asideDescriptionKey"; "required": false; "isSignal": true; }; "asideImageSrc": { "alias": "asideImageSrc"; "required": false; "isSignal": true; }; "steps": { "alias": "steps"; "required": false; "isSignal": true; }; "stepperVariant": { "alias": "stepperVariant"; "required": false; "isSignal": true; }; "linear": { "alias": "linear"; "required": false; "isSignal": true; }; }, { "stepChange": "stepChange"; }, never, ["*", "[registerFooter]"], true, never>;
|
|
7599
8004
|
}
|
|
7600
8005
|
|
|
7601
|
-
export { Alert, Breadcrumb, Card, ColumnsEnum, DYNAMIC_MULTI_TYPES, DYNAMIC_NATIVE_TYPES, DashboardPageHeaderComponent, FileType, FormInput, LocalizedValuePipe, OtpInput, Popup, PopupModalBase, RESULT_STATE_ACTION_META, RESULT_STATE_PRESETS, SCE_MIRROR_LABEL_AS_PLACEHOLDER, SceAccordionComponent, SceAccountSwitcherComponent, SceAccountUserAssignDialogComponent, SceAccountUserDetailHeaderComponent, SceAccountUserEditDialogComponent, SceAccountUserPermissionsSectionComponent, SceAccountUserPersonalSectionComponent, SceAccountUserVerifyDialogComponent, SceAccountUsersTabsBarComponent, SceActionDialogComponent, SceApiErrorStateComponent, SceAreaChartComponent, SceArticleDetailComponent, SceArticleLayoutComponent, SceArticlePageComponent, SceArticleSidebarComponent, SceArticleTagsListComponent, SceAsyncPageGateComponent, SceAttachmentsListComponent, SceAuthLayoutComponent, SceBarChartComponent, SceBasicCardComponent, SceBidiIsolate, SceBrandLoaderComponent, SceBulletListComponent, SceBusinessStatusTagComponent, SceButton, SceButtonWithSelectionCount, SceCaptchaInput, SceCardRadioGroupComponent, SceCardsListPageComponent, SceCardsStatisticsComponent, SceCategoryTile, SceChartLegendComponent, SceCheckItem, SceCheckbox, SceChoiceCard, SceCircularProgress, SceConfirmDialogComponent, SceConfirmDialogDemoComponent, SceContactFormPanelComponent, SceContactInfoPanelComponent, SceContentBlockComponent, SceContractQrCodeComponent, SceContractRequestCardComponent, SceCopyButtonComponent, SceCopyRight, SceCriteriaSectionComponent, SceCurrencyInputComponent, SceCustomColsDirective, SceDashboardAccountRoleIconComponent, SceDashboardFeatureComingSoonComponent, SceDashboardLayoutComponent, SceDashboardTableFiltersComponent, SceDataRequestComparisonTableComponent, SceDataRequestCurrentSummaryComponent, SceDataRequestHeaderCardComponent, SceDataRequestMediaComparisonComponent, SceDataRequestProjectChangesComponent, SceDataRequestRejectionPanelComponent, SceDateFieldComponent, SceDatePickerModalComponent, SceDetailHeaderComponent, SceDialogShellComponent, SceDialogShellDemoComponent, SceDivider, SceDonutChartComponent, SceDynamicFormComponent, SceEmptyStateComponent, SceEngineeringOfficeCardComponent, SceEngineeringOfficeCardSkeletonComponent, SceEngineeringOfficeVerificationBadgeComponent, SceEntityInfoCardComponent, SceEntityProfileEditFormComponent, SceEntitySummaryCardComponent, SceEntityTypeCard, SceExportPdfButton, SceExportPdfContainerComponent, SceFaqItemCard, SceFeaturedOfficeCardComponent, SceFeaturedOfficeCardSkeletonComponent, SceFeedbackSectionComponent, SceFieldComponent, SceFileUploadZoneComponent, SceFileUploadZoneDemoComponent, SceFileViewerComponent, SceFileViewerDirective, SceFileViewerService, SceFilterCalendarComponent, SceFilterCalendarRangeComponent, SceFilterDropdownComponent, SceFilterFieldIconComponent, SceFilterFormComponent, SceFormCheckboxRadio, SceFormDialogComponent, SceFormDialogSectionComponent, SceFormError, SceFormFieldsSkeletonComponent, SceFormHint, SceFormLabel, SceFormPageLayoutComponent, SceFormRichTextComponent, SceGaugeChartComponent, SceGearsLoaderComponent, SceGenericTableComponent, SceGenericTableDemoComponent, SceGeoLocationFieldComponent, SceGlobalLoadingBarComponent, SceGoogleMapsLocationPickerComponent, SceGridExpansionDirective, SceGridTableComponent, SceGuidedTourComponent, SceHorizontalBarChartComponent, SceHorizontalWizardStepperComponent, SceIcon, SceIconCard, SceImageGallerySwapperComponent, SceImagePickerComponent, SceInfoFieldCardComponent, SceInfoFieldsGridComponent, SceInfoFieldsSkeletonComponent, SceInfoRowComponent, SceInlineApiErrorComponent, SceInquiryRequestCardComponent, SceInternalUserFormFieldsComponent, SceInternalUserPermissionsSectionComponent, SceInternalUserVerifySectionComponent, SceKnowledgeCenterCategoryGridComponent, SceLandingHeroHeaderComponent, SceLandingMobileMenuComponent, SceLandingNavComponent, SceLangToggleComponent, SceLatestContractsTableComponent, SceLineChartComponent, SceListPageLayoutComponent, SceLocationPickerDialogComponent, SceLoginAccountSelectStepComponent, SceLoginCompleteDataStepComponent, SceLoginCredentialsStepComponent, SceLoginErrorStepComponent, SceLoginOtpStepComponent, SceLoginUserTypeStepComponent, SceLogoutModalComponent, SceModalHostComponent, SceMultiSegmentBarChartComponent, SceMultiSegmentGaugeComponent, SceMultiSelectFieldComponent, SceNavCard, SceNavCardsListComponent, SceNewsletterSubscriptionDialogComponent, SceNotificationListComponent, SceNotificationListSkeletonComponent, SceNotificationTypeBadgeComponent, SceOfficeBrandLogoComponent, SceOfficeDetailHeroBodyComponent, SceOfficeDetailLoadingStateComponent, SceOfficeDetailNotFoundComponent, SceOfficeDetailOverviewPanelComponent, SceOfficeDetailProjectsPanelComponent, SceOfficeDetailReviewsPanelComponent, SceOfficeDetailTabsBarComponent, SceOfficeDetailsSkeletonComponent, SceOfficeLocationMapComponent, SceOfficeMetricCardComponent, SceOfficeMetricCardsRowComponent, SceOfficeProfileContactTabComponent, SceOfficeProfileEditBioSectionComponent, SceOfficeProfileEditContactSectionComponent, SceOfficeProfileEditMediaSectionComponent, SceOfficeProfileEditOfficialSectionComponent, SceOfficeProfileEditProjectsSectionComponent, SceOfficeProfileHeroComponent, SceOfficeProfileOfficialTabComponent, SceOfficeProfileOverviewTabComponent, SceOfficeProfileProjectDeleteDialogComponent, SceOfficeProfileProjectEditorDialogComponent, SceOfficeProfileProjectsTabComponent, SceOfficeProfileStatsRowComponent, SceOfficeProfileSubmitResultComponent, SceOfficeProjectGalleryComponent, SceOfficeProjectsSkeletonComponent, SceOfficesFiltersSidebarComponent, SceOfficesGridPanelComponent, SceOfficesMapPanelComponent, SceOfficesViewToggleComponent, SceOfflineBannerComponent, SceOptionGroup, SceOsmLeafletMapComponent, SceOsmLocationPickerComponent, SceOsmOfficesMapComponent, SceOverviewStatCardComponent, SceOverviewStatSparklineComponent, ScePackageFeatureCard, ScePageErrorComponent, ScePageHeaderComponent, ScePaginatorComponent, ScePaginatorDemoComponent, ScePasswordFieldComponent, ScePendingUpdateBannerComponent, ScePhoneNumberComponent, ScePieChartComponent, ScePlatformSettingsFieldsComponent, SceProfileHeroComponent, SceProfileHeroSkeletonComponent, SceProfileInfoSectionComponent, SceProfilePhotoEditDialogComponent, SceProfilePhotoSectionComponent, SceProgressBar, SceProgressCardComponent, ScePublicLegalProseComponent, SceQuickFilterBarComponent, SceRadioButtonComponent, SceRadioGroup, SceRadioGroupOption, SceRadioOptionCard, SceRangeBar, SceRegisterLayoutComponent, SceRelatedCardsListComponent, SceRequestCardSkeletonComponent, SceRequestDetailsCardComponent, SceRequestHeaderComponent, SceResourcesListComponent, SceResultStateComponent, SceReviewFieldTablePanelComponent, SceRingChartComponent, SceRingLoaderComponent, SceRowActionIconComponent, SceSaveFilterPopupComponent, SceScaleIndicatorComponent, SceScrollToTopButtonComponent, SceSearchableUsersListComponent, SceSelectFieldComponent, SceSelectableListWithSearchComponent, SceSelectionButton, SceServiceCardComponent, SceServiceCardStartButtonComponent, SceServiceDetailSkeletonComponent, SceServiceMiniCardComponent, SceServiceMiniCardSkeletonComponent, SceServicesTopFiltersComponent, SceSettingsLayoutComponent, SceSidebarComponent, SceSkeleton, SceSpinner, SceStackedDistributionChartComponent, SceStamp, SceStarRatingInputComponent, SceStatCardSkeletonComponent, SceStatGaugeComponent, SceStatRingComponent, SceStatsAnalyticsCardComponent, SceStatusPageComponent, SceStoreLocationsComponent, SceSummaryCardComponent, SceSupportContactCard, SceSupportThreadComponent, SceSwitchComponent, SceTabPanel, SceTableSkeletonComponent, SceTagComponent, SceTextFieldComponent, SceTextareaFieldComponent, SceThemeSwitcherComponent, SceThemeToggleButtonComponent, SceTimelineComponent, SceTooltip, SceUnitInputComponent, SceUnitInputFieldComponent, SceUserDropdownPickerComponent, SceUserVerifySectionPanelComponent, SceVerticalStepperComponent, SceVideoPlayerComponent, Stepper, Tabs, TabsInkbarRtlDirective, addHijriMonths, buildCalendarGrid, buildDynamicFormGroup, buildFieldValidators, detectFileType, getHijriYmdFromDate, isDataUri, mimeFromDataUri, parseValueToDate, resolveBusinessStatusPresentation, resolveBusinessStatusTone, scheduleLeafletResize, toBusinessStatusTableCell, toGregorianValue, toHijriValue };
|
|
8006
|
+
export { Alert, Breadcrumb, Card, ColumnsEnum, DYNAMIC_MULTI_TYPES, DYNAMIC_NATIVE_TYPES, DashboardPageHeaderComponent, FileType, FormInput, LocalizedValuePipe, OtpInput, Popup, PopupModalBase, RESULT_STATE_ACTION_META, RESULT_STATE_PRESETS, SCE_MIRROR_LABEL_AS_PLACEHOLDER, SceAccordionComponent, SceAccountSwitcherComponent, SceAccountUserAssignDialogComponent, SceAccountUserDetailHeaderComponent, SceAccountUserEditDialogComponent, SceAccountUserPermissionsSectionComponent, SceAccountUserPersonalSectionComponent, SceAccountUserVerifyDialogComponent, SceAccountUsersTabsBarComponent, SceActionDialogComponent, SceApiErrorStateComponent, SceAreaChartComponent, SceArticleDetailComponent, SceArticleLayoutComponent, SceArticlePageComponent, SceArticleSidebarComponent, SceArticleTagsListComponent, SceAsyncPageGateComponent, SceAttachmentsListComponent, SceAuthLayoutComponent, SceBarChartComponent, SceBasicCardComponent, SceBidiIsolate, SceBrandLoaderComponent, SceBulletListComponent, SceBusinessStatusTagComponent, SceButton, SceButtonWithSelectionCount, SceCaptchaInput, SceCardRadioGroupComponent, SceCardsListPageComponent, SceCardsStatisticsComponent, SceCategoryTile, SceChartLegendComponent, SceCheckItem, SceCheckbox, SceChoiceCard, SceCircularProgress, SceConfirmDialogComponent, SceConfirmDialogDemoComponent, SceContactFormPanelComponent, SceContactInfoPanelComponent, SceContentBlockComponent, SceContractQrCodeComponent, SceContractRequestCardComponent, SceCopyButtonComponent, SceCopyRight, SceCriteriaSectionComponent, SceCurrencyInputComponent, SceCustomColsDirective, SceDashboardAccountRoleIconComponent, SceDashboardFeatureComingSoonComponent, SceDashboardLayoutComponent, SceDashboardTableFiltersComponent, SceDataRequestComparisonTableComponent, SceDataRequestCurrentSummaryComponent, SceDataRequestHeaderCardComponent, SceDataRequestMediaComparisonComponent, SceDataRequestProjectChangesComponent, SceDataRequestRejectionPanelComponent, SceDateFieldComponent, SceDatePickerModalComponent, SceDetailHeaderComponent, SceDialogShellComponent, SceDialogShellDemoComponent, SceDivider, SceDonutChartComponent, SceDynamicFormComponent, SceEmptyStateComponent, SceEngineeringOfficeCardComponent, SceEngineeringOfficeCardSkeletonComponent, SceEngineeringOfficeVerificationBadgeComponent, SceEntityInfoCardComponent, SceEntityProfileEditFormComponent, SceEntitySummaryCardComponent, SceEntityTypeCard, SceExportPdfButton, SceExportPdfContainerComponent, SceFaqItemCard, SceFeaturedOfficeCardComponent, SceFeaturedOfficeCardSkeletonComponent, SceFeedbackSectionComponent, SceFieldComponent, SceFileUploadZoneComponent, SceFileUploadZoneDemoComponent, SceFileViewerComponent, SceFileViewerDirective, SceFileViewerService, SceFilterCalendarComponent, SceFilterCalendarRangeComponent, SceFilterDropdownComponent, SceFilterFieldIconComponent, SceFilterFormComponent, SceFormCheckboxRadio, SceFormDialogComponent, SceFormDialogSectionComponent, SceFormError, SceFormFieldsSkeletonComponent, SceFormHint, SceFormLabel, SceFormPageLayoutComponent, SceFormRichTextComponent, SceGaugeChartComponent, SceGearsLoaderComponent, SceGenericTableComponent, SceGenericTableDemoComponent, SceGeoLocationFieldComponent, SceGlobalLoadingBarComponent, SceGoogleMapsLocationPickerComponent, SceGridExpansionDirective, SceGridTableComponent, SceGuidedTourComponent, SceHorizontalBarChartComponent, SceHorizontalWizardStepperComponent, SceIcon, SceIconCard, SceImageGallerySwapperComponent, SceImagePickerComponent, SceInfoFieldCardComponent, SceInfoFieldsGridComponent, SceInfoFieldsSkeletonComponent, SceInfoRowComponent, SceInlineApiErrorComponent, SceInquiryRequestCardComponent, SceInternalUserFormFieldsComponent, SceInternalUserPermissionsSectionComponent, SceInternalUserVerifySectionComponent, SceKnowledgeCenterCategoryGridComponent, SceLandingHeroHeaderComponent, SceLandingMobileMenuComponent, SceLandingNavComponent, SceLangToggleComponent, SceLatestContractsTableComponent, SceLibraryAccessDeniedComponent, SceLineChartComponent, SceListPageLayoutComponent, SceLocationPickerDialogComponent, SceLoginAccountSelectStepComponent, SceLoginCompleteDataStepComponent, SceLoginCredentialsStepComponent, SceLoginErrorStepComponent, SceLoginOtpStepComponent, SceLoginUserTypeStepComponent, SceLogoutModalComponent, SceModalHostComponent, SceMultiSegmentBarChartComponent, SceMultiSegmentGaugeComponent, SceMultiSelectFieldComponent, SceNavCard, SceNavCardsListComponent, SceNewsletterSubscriptionDialogComponent, SceNotificationListComponent, SceNotificationListSkeletonComponent, SceNotificationTypeBadgeComponent, SceOfficeBrandLogoComponent, SceOfficeDetailHeroBodyComponent, SceOfficeDetailLoadingStateComponent, SceOfficeDetailNotFoundComponent, SceOfficeDetailOverviewPanelComponent, SceOfficeDetailProjectsPanelComponent, SceOfficeDetailReviewsPanelComponent, SceOfficeDetailTabsBarComponent, SceOfficeDetailsSkeletonComponent, SceOfficeLocationMapComponent, SceOfficeMetricCardComponent, SceOfficeMetricCardsRowComponent, SceOfficeProfileContactTabComponent, SceOfficeProfileEditBioSectionComponent, SceOfficeProfileEditContactSectionComponent, SceOfficeProfileEditMediaSectionComponent, SceOfficeProfileEditOfficialSectionComponent, SceOfficeProfileEditProjectsSectionComponent, SceOfficeProfileHeroComponent, SceOfficeProfileOfficialTabComponent, SceOfficeProfileOverviewTabComponent, SceOfficeProfileProjectDeleteDialogComponent, SceOfficeProfileProjectEditorDialogComponent, SceOfficeProfileProjectsTabComponent, SceOfficeProfileStatsRowComponent, SceOfficeProfileSubmitResultComponent, SceOfficeProjectGalleryComponent, SceOfficeProjectsSkeletonComponent, SceOfficesFiltersSidebarComponent, SceOfficesGridPanelComponent, SceOfficesMapPanelComponent, SceOfficesViewToggleComponent, SceOfflineBannerComponent, SceOptionGroup, SceOsmLeafletMapComponent, SceOsmLocationPickerComponent, SceOsmOfficesMapComponent, SceOverviewStatCardComponent, SceOverviewStatSparklineComponent, ScePackageFeatureCard, ScePageErrorComponent, ScePageHeaderComponent, ScePaginatorComponent, ScePaginatorDemoComponent, ScePasswordFieldComponent, ScePendingUpdateBannerComponent, ScePhoneNumberComponent, ScePieChartComponent, ScePlatformSettingsFieldsComponent, SceProfileHeroComponent, SceProfileHeroSkeletonComponent, SceProfileInfoSectionComponent, SceProfilePhotoEditDialogComponent, SceProfilePhotoSectionComponent, SceProgressBar, SceProgressCardComponent, ScePublicLegalProseComponent, SceQuickFilterBarComponent, SceRadioButtonComponent, SceRadioGroup, SceRadioGroupOption, SceRadioOptionCard, SceRangeBar, SceRegisterLayoutComponent, SceRelatedCardsListComponent, SceRequestCardSkeletonComponent, SceRequestDetailsCardComponent, SceRequestHeaderComponent, SceResourcesListComponent, SceResultStateComponent, SceReviewFieldTablePanelComponent, SceRingChartComponent, SceRingLoaderComponent, SceRowActionIconComponent, SceSaveFilterPopupComponent, SceScaleIndicatorComponent, SceScrollToTopButtonComponent, SceSearchableUsersListComponent, SceSelectFieldComponent, SceSelectableListWithSearchComponent, SceSelectionButton, SceServiceCardComponent, SceServiceCardStartButtonComponent, SceServiceDetailSkeletonComponent, SceServiceMiniCardComponent, SceServiceMiniCardSkeletonComponent, SceServicesTopFiltersComponent, SceSettingsLayoutComponent, SceSidebarComponent, SceSkeleton, SceSpinner, SceStackedDistributionChartComponent, SceStamp, SceStarRatingInputComponent, SceStatCardSkeletonComponent, SceStatGaugeComponent, SceStatRingComponent, SceStatsAnalyticsCardComponent, SceStatusPageComponent, SceStoreLocationsComponent, SceSummaryCardComponent, SceSupportContactCard, SceSupportThreadComponent, SceSwitchComponent, SceTabPanel, SceTableSkeletonComponent, SceTagComponent, SceTextFieldComponent, SceTextareaFieldComponent, SceThemeSwitcherComponent, SceThemeToggleButtonComponent, SceTimelineComponent, SceTooltip, SceUnitInputComponent, SceUnitInputFieldComponent, SceUserDropdownPickerComponent, SceUserVerifySectionPanelComponent, SceVerticalStepperComponent, SceVideoPlayerComponent, Stepper, Tabs, TabsInkbarRtlDirective, addHijriMonths, buildCalendarGrid, buildDynamicFormGroup, buildFieldValidators, detectFileType, getHijriYmdFromDate, isDataUri, mimeFromDataUri, parseValueToDate, resolveBusinessStatusPresentation, resolveBusinessStatusTone, scheduleLeafletResize, toBusinessStatusTableCell, toGregorianValue, toHijriValue };
|
|
7602
8007
|
export type { AccordionItem, AccountSwitcherOption, AccountUserAssignForm, AccountUserEditReadOnlyField, AccountUserEditRoleOption, AccountUsersTab, ActionDialogField, ActionDialogVariant, AppDateLocale, AssignRoleOption, BarSeriesData, BasicCardLayout, BidiIsolateDir, BreadcrumbItem, BusinessStatusPresentation, BusinessStatusTone, CalendarGrid, CalendarSystem, CardRadioOption, ChartLegendItem, ChartLineSeriesData, ChartSeriesItem, ChartTooltipData, ConfirmDialogVariant, ConfirmPayload, ConfirmReasonField, ContractRequestCard, ContractRow, DashboardFilterField, DashboardFilterFieldOption, DashboardNotificationTypeVariant, DashboardRole, DataRequestComparisonRow, DataRequestMediaVariant, DateRangeValue, DetailBreadcrumbItem, DetailHeaderAction, DialogSize, DynamicFieldConfig, DynamicFieldType, DynamicFieldValidators, DynamicFieldValue, DynamicFormConfig, DynamicFormSection, DynamicShowWhen, EChartTooltipParam, EmptyStateTone, EntityInfoCardBadgeTone, FeaturedOffice, FieldSize, FileSource, FileSourceBase64, FileSourceBlob, FileSourceUrl, FileTypeInput, FileUploadExistingItem, FileUploadZoneStrings, FileViewerData, FilterDateRangeValue, FilterDropdownOption, FilterFieldConfig, FilterFieldOption, FilterFieldType, FilterFormConfig, FormDialogSecondaryAction, FormDialogVariant, GeoLocationValue, GoogleMapsLocationValue, GridAction, GridActionType, GridColumn, GridColumnAction, GridMenuAction, GridMenuItem, GridPageEvent, GridRow, GridSortEvent, GuestProjectStatus, GuidedTourStep, HorizontalBarItem, IconSize, ImageGallerySwapperItem, InputFilter, InternalUserFormFieldsMode, InternalUserRoleOption, KnowledgeCategoryItem, LandingBreadcrumbItem, LandingNavItem, LoaderSize, LoaderVariant, LocationPickerValue, LoginAccountOptionView, LoginUserTypeCard, BreadcrumbItem$1 as MoleculeBreadcrumbItem, MultiSegmentBarItem, NewsletterSubscriptionFormValues, TabItem as OfficeDetailTabItem, OfficeEditProjectItem, OfficeGridViewMode, OfficeMetricCardItem, OfficeProfileDisplayProject, OfficeProfileTabKey, OfficeProject, OfficeReview, OfficeSizeFilter, OfficeSizeOption, OfficeSortMode, OfficeSortOption, OfficeTabKey, OfficeViewMode, OsmMapMarker, OverlayLineSeries, ProfileBankOption, ProfileInfoViewData, ProfileViewField, ProfileViewSection, ProgressConfig, ProjectChangeDisplayItem, ProjectChangeDisplayMetric, ProjectChangeDisplayType, PsSettingField, PsSettingForceMajeureDurationsValue, QuickFilterTag as QuickFilterBarTag, QuickFilterTag$1 as QuickFilterTag, RatingDistributionLine, RequestHeaderMetaItem, RequestStatusPresentation, RestrictInput, ResultStateAction, ResultStatePreset, ResultStateStatus, ReviewFieldItem, RingChartLegendItem, SaveFilterMode, ScaleIndicatorLabels, SceArticleTagItem, SceArticleTagVariant, SceAttachmentListItem, SceButtonSize, SceButtonVariant, SceChoiceCardTone, SceCriteriaItem, SceCriteriaObservation, SceCriteriaSectionData, SceCriteriaStatus, SceEngineeringOfficeCardModel, SceEntitySummarySector, SceFaqItemCardForm, SceFieldOption, SceFormCheckboxRadioType, SceIconCardTone, SceImagePickerError, SceInquiryRequest, SceInquiryRequestStatus, SceNavBadgeVariant, SceNavCardItem, SceNavChildItem, SceNavItem, SceNavSection, SceNotificationAction, SceNotificationFilter, SceNotificationItem, SceNotificationTone, SceOptionItem, SceOsmOfficeMapPoint, SceRadioOption, SceRangeBarValue, SceRelatedCardItem, SceResourceListItem, SceSelectOption, SceSidebarBrand, SceSidebarRailAction, SceSupportResponderRole, SceSupportThreadAttachment, SceSupportThreadFeedback, SceSupportThreadReply, SceSupportThreadResponse, SceSupportThreadStatus, SceTableColumn, SceTablePagination, SceTableRow, SceTableRowActions, SceTableSkeletonLayout, SceTableSort, SceTableStatusCell, SceTableSwitchCell, SceTagSize, SceTagVariant, SceTextFieldValidationMode, SceUserDropdownItem, SearchableUserListItem, SelectOption, SelectableListItem, SelectionMode, ServicesTopFiltersChange, SkeletonAnimation, SkeletonVariant, StackedDistributionChartItem, StatGaugeRow, StatusConfig, StatusPageVariant, StatusVariant, StepItem$1 as StepItem, StepItem as StepperStepItem, TabItem$1 as TabItem, TimelineItem, TimelineSegment, TooltipPosition, UserDetailBadge, UserDetailField, UserDetailStatusTag, VerifiedUserData, VerifyPayload, VideoCaption, VideoPreload, VideoSource };
|