@allsorter/ui-components 0.0.359 → 0.0.363

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.
Files changed (53) hide show
  1. package/fesm2022/allsorter-ui-components.mjs +4475 -93
  2. package/fesm2022/allsorter-ui-components.mjs.map +1 -1
  3. package/lib/action-bar-wrapper/action-bar-wrapper.component.d.ts +36 -0
  4. package/lib/ai-apply-bar/ai-apply-bar.component.d.ts +31 -0
  5. package/lib/app-toolbar/app-toolbar.component.d.ts +38 -0
  6. package/lib/app-toolbar-right/app-toolbar-right.component.d.ts +50 -0
  7. package/lib/app-toolbar-right/app-toolbar-right.module.d.ts +11 -0
  8. package/lib/button/button.component.d.ts +39 -18
  9. package/lib/candidate-section/candidate-section.component.d.ts +20 -0
  10. package/lib/candidate-section/candidate-section.module.d.ts +9 -0
  11. package/lib/checkbox/checkbox.component.d.ts +35 -0
  12. package/lib/checkbox/checkbox.module.d.ts +10 -0
  13. package/lib/custom-editor/bullet-utils.d.ts +31 -0
  14. package/lib/custom-editor/custom-editor-demo.component.d.ts +5 -0
  15. package/lib/custom-editor/custom-editor.component.d.ts +104 -0
  16. package/lib/custom-editor/custom-editor.module.d.ts +7 -0
  17. package/lib/custom-editor/table/table.component.d.ts +21 -0
  18. package/lib/date-range/date-range.component.d.ts +55 -0
  19. package/lib/date-range/date-range.module.d.ts +15 -0
  20. package/lib/experience-section/experience-section.component.d.ts +71 -0
  21. package/lib/experience-section/experience-section.module.d.ts +8 -0
  22. package/lib/field-placeholder/field-placeholder.component.d.ts +41 -0
  23. package/lib/field-placeholder/field-placeholder.module.d.ts +9 -0
  24. package/lib/general-container/colors.constants.d.ts +44 -0
  25. package/lib/general-container/general-container.component.d.ts +31 -0
  26. package/lib/general-container/general-container.module.d.ts +7 -0
  27. package/lib/icon-button/icon-button.component.d.ts +32 -0
  28. package/lib/input/input.component.d.ts +18 -3
  29. package/lib/input/input.module.d.ts +10 -2
  30. package/lib/loader/loader.component.d.ts +7 -3
  31. package/lib/new-typography/new-typography.component.d.ts +36 -0
  32. package/lib/radio/radio.component.d.ts +33 -0
  33. package/lib/radio/radio.module.d.ts +10 -0
  34. package/lib/responsive-columns/responsive-columns.component.d.ts +32 -0
  35. package/lib/responsive-columns/responsive-columns.module.d.ts +8 -0
  36. package/lib/responsive-layout/responsive-layout.component.d.ts +44 -0
  37. package/lib/responsive-layout/responsive-layout.module.d.ts +8 -0
  38. package/lib/resume-entries/resume-entries.component.d.ts +72 -0
  39. package/lib/resume-entries/resume-entries.module.d.ts +8 -0
  40. package/lib/resume-header/resume-header.component.d.ts +26 -3
  41. package/lib/resume-header/resume-header.model.d.ts +1 -1
  42. package/lib/shared-popup-modal/shared-popup-modal.component.d.ts +59 -0
  43. package/lib/shared-popup-modal/shared-popup-modal.module.d.ts +11 -0
  44. package/lib/slide-toggle/slide-toggle.component.d.ts +40 -0
  45. package/lib/slide-toggle/slide-toggle.module.d.ts +9 -0
  46. package/lib/tabs/tabs.component.d.ts +21 -0
  47. package/lib/tabs/tabs.module.d.ts +7 -0
  48. package/lib/toggle-buttons/toggle-buttons.component.d.ts +27 -0
  49. package/lib/toggle-buttons/toggle-buttons.module.d.ts +7 -0
  50. package/lib/tooltip/tooltip.component.d.ts +14 -0
  51. package/lib/tooltip/tooltip.module.d.ts +9 -0
  52. package/package.json +1 -1
  53. package/public-api.d.ts +37 -0
@@ -0,0 +1,71 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { ResumeEntry } from '../resume-entries/resume-entries.component';
3
+ import { RequiredIconConfig } from '../app-toolbar/app-toolbar.component';
4
+ import { RequiredIconConfig as AppToolbarRightRequiredIconConfig } from '../app-toolbar-right/app-toolbar-right.component';
5
+ import * as i0 from "@angular/core";
6
+ export declare class ExperienceSectionComponent {
7
+ entries: ResumeEntry[];
8
+ showHeader: boolean;
9
+ showDescriptionLabel: boolean;
10
+ showCompany: boolean;
11
+ showJobTitle: boolean;
12
+ showDates: boolean;
13
+ showLocation: boolean;
14
+ showTimeline: boolean;
15
+ showReapplyButton: boolean;
16
+ showLoader: boolean;
17
+ loaderForAllEntries: boolean;
18
+ loaderStatus: 'analyzing' | 'gathering' | 'processing' | 'applying' | 'done';
19
+ loaderSize: 'small' | 'medium' | 'large';
20
+ skills?: string[];
21
+ companyTooltip?: string;
22
+ jobTitleTooltip?: string;
23
+ dateTooltip?: string;
24
+ locationTooltip?: string;
25
+ descriptionTooltip?: string;
26
+ tooltipPosition: 'left' | 'right' | 'above' | 'below' | 'before' | 'after';
27
+ gap: string | number;
28
+ padding: string | number;
29
+ leftWidth: string;
30
+ rightWidth: string;
31
+ stackAt: number;
32
+ variant: string;
33
+ content: string;
34
+ isExtractionAnalysisActive: boolean;
35
+ showSearch: boolean;
36
+ overrideConfig: Partial<RequiredIconConfig>;
37
+ editEvent: EventEmitter<string>;
38
+ reapplyClick: EventEmitter<{
39
+ entry: ResumeEntry;
40
+ index: number;
41
+ }>;
42
+ undoClick: EventEmitter<{
43
+ entry: ResumeEntry;
44
+ index: number;
45
+ }>;
46
+ checked: boolean;
47
+ alwaysShowIcons: boolean;
48
+ overrideConfigRight: Partial<AppToolbarRightRequiredIconConfig>;
49
+ currentObj: Partial<any>;
50
+ checkboxChange: EventEmitter<boolean>;
51
+ visibilityToggle: EventEmitter<boolean>;
52
+ hideShowEvent: EventEmitter<any>;
53
+ checkboxEvent: EventEmitter<object>;
54
+ setSubroleEvent: EventEmitter<any>;
55
+ onCheckboxChange(checked: boolean): void;
56
+ onVisibilityToggle(isVisible: boolean): void;
57
+ onHideShowEvent(obj: any): void;
58
+ onCheckboxEvent(obj: object): void;
59
+ onSetSubroleEvent(subrole: any): void;
60
+ onEditEvent(content: string): void;
61
+ onReapplyClick(data: {
62
+ entry: ResumeEntry;
63
+ index: number;
64
+ }): void;
65
+ onUndoClick(data: {
66
+ entry: ResumeEntry;
67
+ index: number;
68
+ }): void;
69
+ static ɵfac: i0.ɵɵFactoryDeclaration<ExperienceSectionComponent, never>;
70
+ static ɵcmp: i0.ɵɵComponentDeclaration<ExperienceSectionComponent, "al-experience-section", never, { "entries": { "alias": "entries"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "showDescriptionLabel": { "alias": "showDescriptionLabel"; "required": false; }; "showCompany": { "alias": "showCompany"; "required": false; }; "showJobTitle": { "alias": "showJobTitle"; "required": false; }; "showDates": { "alias": "showDates"; "required": false; }; "showLocation": { "alias": "showLocation"; "required": false; }; "showTimeline": { "alias": "showTimeline"; "required": false; }; "showReapplyButton": { "alias": "showReapplyButton"; "required": false; }; "showLoader": { "alias": "showLoader"; "required": false; }; "loaderForAllEntries": { "alias": "loaderForAllEntries"; "required": false; }; "loaderStatus": { "alias": "loaderStatus"; "required": false; }; "loaderSize": { "alias": "loaderSize"; "required": false; }; "skills": { "alias": "skills"; "required": false; }; "companyTooltip": { "alias": "companyTooltip"; "required": false; }; "jobTitleTooltip": { "alias": "jobTitleTooltip"; "required": false; }; "dateTooltip": { "alias": "dateTooltip"; "required": false; }; "locationTooltip": { "alias": "locationTooltip"; "required": false; }; "descriptionTooltip": { "alias": "descriptionTooltip"; "required": false; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; "padding": { "alias": "padding"; "required": false; }; "leftWidth": { "alias": "leftWidth"; "required": false; }; "rightWidth": { "alias": "rightWidth"; "required": false; }; "stackAt": { "alias": "stackAt"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "content": { "alias": "content"; "required": false; }; "isExtractionAnalysisActive": { "alias": "isExtractionAnalysisActive"; "required": false; }; "showSearch": { "alias": "showSearch"; "required": false; }; "overrideConfig": { "alias": "overrideConfig"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "alwaysShowIcons": { "alias": "alwaysShowIcons"; "required": false; }; "overrideConfigRight": { "alias": "overrideConfigRight"; "required": false; }; "currentObj": { "alias": "currentObj"; "required": false; }; }, { "editEvent": "editEvent"; "reapplyClick": "reapplyClick"; "undoClick": "undoClick"; "checkboxChange": "checkboxChange"; "visibilityToggle": "visibilityToggle"; "hideShowEvent": "hideShowEvent"; "checkboxEvent": "checkboxEvent"; "setSubroleEvent": "setSubroleEvent"; }, never, never, true, never>;
71
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@angular/common";
3
+ import * as i2 from "./experience-section.component";
4
+ export declare class ExperienceSectionModule {
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<ExperienceSectionModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ExperienceSectionModule, never, [typeof i1.CommonModule, typeof i2.ExperienceSectionComponent], [typeof i2.ExperienceSectionComponent]>;
7
+ static ɵinj: i0.ɵɵInjectorDeclaration<ExperienceSectionModule>;
8
+ }
@@ -0,0 +1,41 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class FieldPlaceholderComponent {
3
+ value: string | null | undefined;
4
+ placeholder: string;
5
+ tooltip: string;
6
+ tooltipPosition: 'right' | 'left' | 'above' | 'below' | 'before' | 'after';
7
+ testId: string;
8
+ /** Optional CSS class(es) applied when showing the value text */
9
+ valueClass: string | string[] | Set<string> | {
10
+ [klass: string]: any;
11
+ };
12
+ /** Optional CSS class(es) applied when showing the placeholder text */
13
+ placeholderClass: string | string[] | Set<string> | {
14
+ [klass: string]: any;
15
+ };
16
+ /**
17
+ * The image path or icon to display in the field row (left column).
18
+ */
19
+ icon: string;
20
+ /**
21
+ * The alt text for the icon image (for accessibility).
22
+ */
23
+ iconAlt: string;
24
+ /**
25
+ * The font set for Material icons (e.g., 'material-icons', 'material-icons-outlined').
26
+ */
27
+ iconFont: string;
28
+ /**
29
+ * When true, applies the 'field-row-compact' class for 28px height.
30
+ * Only applies when explicitly set to true from a parent component.
31
+ */
32
+ compact?: boolean;
33
+ /**
34
+ * When true, applies the 'field-row-padded' class for 8px top and bottom padding.
35
+ * Only applies when explicitly set to true from a parent component.
36
+ */
37
+ padded?: boolean;
38
+ isMaterialIcon(icon: string): boolean;
39
+ static ɵfac: i0.ɵɵFactoryDeclaration<FieldPlaceholderComponent, never>;
40
+ static ɵcmp: i0.ɵɵComponentDeclaration<FieldPlaceholderComponent, "lib-field-placeholder", never, { "value": { "alias": "value"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; }; "testId": { "alias": "testId"; "required": false; }; "valueClass": { "alias": "valueClass"; "required": false; }; "placeholderClass": { "alias": "placeholderClass"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconAlt": { "alias": "iconAlt"; "required": false; }; "iconFont": { "alias": "iconFont"; "required": false; }; "compact": { "alias": "compact"; "required": false; }; "padded": { "alias": "padded"; "required": false; }; }, {}, never, never, true, never>;
41
+ }
@@ -0,0 +1,9 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@angular/common";
3
+ import * as i2 from "@angular/material/tooltip";
4
+ import * as i3 from "./field-placeholder.component";
5
+ export declare class FieldPlaceholderModule {
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<FieldPlaceholderModule, never>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<FieldPlaceholderModule, never, [typeof i1.CommonModule, typeof i2.MatTooltipModule, typeof i3.FieldPlaceholderComponent], [typeof i3.FieldPlaceholderComponent]>;
8
+ static ɵinj: i0.ɵɵInjectorDeclaration<FieldPlaceholderModule>;
9
+ }
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Color constants matching colors.scss
3
+ * These values should be kept in sync with src/lib/styles/colors.scss
4
+ */
5
+ export declare const COLORS: {
6
+ readonly blue: {
7
+ readonly '50': "#E5E9FC";
8
+ readonly '100': "#BBC7F6";
9
+ readonly '200': "#98ABF1";
10
+ readonly '300': "#768FED";
11
+ readonly '400': "#6581EA";
12
+ readonly '500': "#5473E8";
13
+ readonly '600': "#1E46DF";
14
+ readonly '700': "#0F236F";
15
+ readonly '800': "#071238";
16
+ readonly '900': "#04091C";
17
+ };
18
+ readonly green: {
19
+ readonly '50': "#D7F3F5";
20
+ readonly '100': "#AFE6EB";
21
+ readonly '200': "#87DAE2";
22
+ readonly '300': "#5FCDD8";
23
+ readonly '400': "#4BC7D3";
24
+ readonly '500': "#37C1CE";
25
+ readonly '600': "#299DA8";
26
+ readonly '700': "#1F767E";
27
+ readonly '800': "#154E54";
28
+ readonly '900': "#0A272A";
29
+ };
30
+ readonly grey: {
31
+ readonly '50': "#FAFBFB";
32
+ readonly '100': "#ECEDF1";
33
+ readonly '200': "#DEE0E6";
34
+ readonly '300': "#D1D3DB";
35
+ readonly '400': "#C3C5D1";
36
+ readonly '500': "#A2A6B8";
37
+ readonly '600': "#717793";
38
+ readonly '700': "#4B4F62";
39
+ readonly '800': "#383B4A";
40
+ readonly '900': "#252831";
41
+ };
42
+ };
43
+ export declare const BORDER_COLORS: readonly ["#87DAE2", "#98ABF1", "#A2A6B8", "#4B4F62", "#5473E8", "#37C1CE"];
44
+ export type BorderColorValue = typeof BORDER_COLORS[number];
@@ -0,0 +1,31 @@
1
+ import { BorderColorValue } from './colors.constants';
2
+ import * as i0 from "@angular/core";
3
+ export type BorderPosition = 'none' | 'top' | 'bottom' | 'both';
4
+ export type BorderColor = BorderColorValue;
5
+ export declare class GeneralContainerComponent {
6
+ /** Background color of the container */
7
+ backgroundColor: string;
8
+ /** Padding for the container */
9
+ padding: string;
10
+ /** Width of the container */
11
+ width?: string;
12
+ /** Height of the container */
13
+ height?: string;
14
+ /** Border position: 'none', 'top', 'bottom', or 'both' */
15
+ borderPosition: BorderPosition;
16
+ /** Border color - one of the predefined colors */
17
+ borderColor: BorderColor;
18
+ /** Border radius */
19
+ borderRadius: string;
20
+ /** Enable box shadow */
21
+ boxShadow: boolean;
22
+ /** Custom box shadow (overrides default if provided) */
23
+ customBoxShadow?: string;
24
+ /** Available border colors for dropdown */
25
+ readonly borderColors: readonly BorderColor[];
26
+ get containerStyles(): {
27
+ [key: string]: string;
28
+ };
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<GeneralContainerComponent, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<GeneralContainerComponent, "al-general-container", never, { "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "padding": { "alias": "padding"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "borderPosition": { "alias": "borderPosition"; "required": false; }; "borderColor": { "alias": "borderColor"; "required": false; }; "borderRadius": { "alias": "borderRadius"; "required": false; }; "boxShadow": { "alias": "boxShadow"; "required": false; }; "customBoxShadow": { "alias": "customBoxShadow"; "required": false; }; }, {}, never, ["*"], true, never>;
31
+ }
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./general-container.component";
3
+ export declare class GeneralContainerModule {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<GeneralContainerModule, never>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<GeneralContainerModule, never, [typeof i1.GeneralContainerComponent], [typeof i1.GeneralContainerComponent]>;
6
+ static ɵinj: i0.ɵɵInjectorDeclaration<GeneralContainerModule>;
7
+ }
@@ -0,0 +1,32 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { MatIconRegistry } from '@angular/material/icon';
3
+ import { DomSanitizer } from '@angular/platform-browser';
4
+ import * as i0 from "@angular/core";
5
+ export declare class IconButtonComponent {
6
+ private iconRegistry;
7
+ private sanitizer;
8
+ /** Icon name (Material icon name) */
9
+ icon: string;
10
+ /** Custom color (CSS color value) */
11
+ customColor: string;
12
+ /** Use outlined icon font */
13
+ iconOutlined: boolean;
14
+ /** Button size (xs, sm, base, l, xl, header) */
15
+ size: 'xs' | 'sm' | 'base' | 'l' | 'xl' | 'header';
16
+ /** Button color (blue, green, grey, error, gradient, etc.) */
17
+ color: string;
18
+ /** Disabled state */
19
+ disabled: boolean;
20
+ /** Optional custom data-testid for QA/testing */
21
+ dataTestId?: string;
22
+ effectiveDataTestId: string;
23
+ /** Click event */
24
+ onClick: EventEmitter<Event>;
25
+ constructor(iconRegistry: MatIconRegistry, sanitizer: DomSanitizer);
26
+ ngOnInit(): void;
27
+ genId(): string;
28
+ private genIconBtnId;
29
+ handleClick(event: Event): void;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<IconButtonComponent, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<IconButtonComponent, "al-icon-button", never, { "icon": { "alias": "icon"; "required": false; }; "customColor": { "alias": "customColor"; "required": false; }; "iconOutlined": { "alias": "iconOutlined"; "required": false; }; "size": { "alias": "size"; "required": false; }; "color": { "alias": "color"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "dataTestId": { "alias": "dataTestId"; "required": false; }; }, { "onClick": "onClick"; }, never, never, true, never>;
32
+ }
@@ -6,30 +6,45 @@ export declare class InputComponent implements ControlValueAccessor {
6
6
  placeholder: string;
7
7
  value: string;
8
8
  formControlName: string;
9
- type: 'text' | 'email' | 'number' | 'password' | 'tel' | 'url' | 'date';
9
+ dataTestId: string;
10
+ type: 'text' | 'email' | 'number' | 'password' | 'tel' | 'url' | 'date' | 'color';
10
11
  disabled: boolean;
11
12
  helperText: boolean;
12
13
  helperTextLabel: string;
14
+ error: boolean;
15
+ errorMessage: string;
13
16
  leftIcon: string;
14
17
  rightIcon: string;
15
18
  dropDown: boolean;
16
19
  options: string[];
17
20
  size: 'xs' | 'small' | 'base' | 'large' | 'header';
18
- inputTypes: 'simple' | 'primary' | 'success' | 'warn' | 'disabled' | 'plain';
21
+ types: 'simple' | 'primary' | 'success' | 'error' | 'disabled' | 'plain';
22
+ tooltip: string;
23
+ tooltipPosition: 'right' | 'left' | 'above' | 'below' | 'before' | 'after';
19
24
  noBorder: boolean;
20
25
  outlined: boolean;
26
+ selectedDate: Date | null;
21
27
  valueChange: EventEmitter<string>;
28
+ onColorChange: EventEmitter<string>;
29
+ monthSelected: EventEmitter<Date>;
30
+ yearSelected: EventEmitter<Date>;
22
31
  private onChange;
23
32
  onTouched: () => void;
24
33
  get isDisabled(): boolean;
34
+ get isDatePicker(): boolean;
35
+ get isColorPicker(): boolean;
25
36
  writeValue(value: string | null | undefined): void;
26
37
  registerOnChange(fn: (value: string) => void): void;
27
38
  registerOnTouched(fn: () => void): void;
28
39
  setDisabledState(isDisabled: boolean): void;
29
40
  onInputChange(value: string): void;
30
41
  onSelectionChange(value: string): void;
42
+ handleColorChange(event: Event): void;
43
+ onMonthSelected(event: Date, dp: any): void;
44
+ onYearSelected(event: Date, dp: any): void;
45
+ private shouldShowDatePicker;
31
46
  getSizeClass(): string;
32
47
  getCategoryClass(): string;
33
48
  static ɵfac: i0.ɵɵFactoryDeclaration<InputComponent, never>;
34
- static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "al-input", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "value": { "alias": "value"; "required": false; }; "formControlName": { "alias": "formControlName"; "required": false; }; "type": { "alias": "type"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "helperText": { "alias": "helperText"; "required": false; }; "helperTextLabel": { "alias": "helperTextLabel"; "required": false; }; "leftIcon": { "alias": "leftIcon"; "required": false; }; "rightIcon": { "alias": "rightIcon"; "required": false; }; "dropDown": { "alias": "dropDown"; "required": false; }; "options": { "alias": "options"; "required": false; }; "size": { "alias": "size"; "required": false; }; "inputTypes": { "alias": "inputTypes"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
49
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent, "al-input", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "value": { "alias": "value"; "required": false; }; "formControlName": { "alias": "formControlName"; "required": false; }; "dataTestId": { "alias": "dataTestId"; "required": false; }; "type": { "alias": "type"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "helperText": { "alias": "helperText"; "required": false; }; "helperTextLabel": { "alias": "helperTextLabel"; "required": false; }; "error": { "alias": "error"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "leftIcon": { "alias": "leftIcon"; "required": false; }; "rightIcon": { "alias": "rightIcon"; "required": false; }; "dropDown": { "alias": "dropDown"; "required": false; }; "options": { "alias": "options"; "required": false; }; "size": { "alias": "size"; "required": false; }; "types": { "alias": "types"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; }; }, { "valueChange": "valueChange"; "onColorChange": "onColorChange"; "monthSelected": "monthSelected"; "yearSelected": "yearSelected"; }, never, never, true, never>;
35
50
  }
@@ -1,8 +1,16 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "@angular/common";
3
- import * as i2 from "./input.component";
3
+ import * as i2 from "@angular/forms";
4
+ import * as i3 from "@angular/material/form-field";
5
+ import * as i4 from "@angular/material/input";
6
+ import * as i5 from "@angular/material/icon";
7
+ import * as i6 from "@angular/material/select";
8
+ import * as i7 from "@angular/material/core";
9
+ import * as i8 from "@angular/material/datepicker";
10
+ import * as i9 from "@angular/material/button";
11
+ import * as i10 from "./input.component";
4
12
  export declare class InputModule {
5
13
  static ɵfac: i0.ɵɵFactoryDeclaration<InputModule, never>;
6
- static ɵmod: i0.ɵɵNgModuleDeclaration<InputModule, never, [typeof i1.CommonModule, typeof i2.InputComponent], [typeof i2.InputComponent]>;
14
+ static ɵmod: i0.ɵɵNgModuleDeclaration<InputModule, never, [typeof i1.CommonModule, typeof i2.FormsModule, typeof i3.MatFormFieldModule, typeof i4.MatInputModule, typeof i5.MatIconModule, typeof i6.MatSelectModule, typeof i7.MatOptionModule, typeof i8.MatDatepickerModule, typeof i7.MatNativeDateModule, typeof i9.MatButtonModule, typeof i10.InputComponent], [typeof i10.InputComponent]>;
7
15
  static ɵinj: i0.ɵɵInjectorDeclaration<InputModule>;
8
16
  }
@@ -3,9 +3,11 @@ import * as i0 from "@angular/core";
3
3
  export type LoaderStatus = 'analyzing' | 'gathering' | 'processing' | 'applying' | 'done';
4
4
  export declare class LoaderComponent implements OnInit, OnDestroy {
5
5
  /**
6
- * The current status of the loader. Controls which icon and text are displayed.
7
- * @default 'analyzing'
6
+ * Optional data-testid for QA/testing. If not provided, will auto-generate with 'loader_' prefix.
8
7
  */
8
+ dataTestId?: string;
9
+ effectiveDataTestId: string;
10
+ private genLoaderId;
9
11
  status: LoaderStatus;
10
12
  /**
11
13
  * Optional custom text to display instead of the default status text.
@@ -56,6 +58,8 @@ export declare class LoaderComponent implements OnInit, OnDestroy {
56
58
  get displayText(): string;
57
59
  constructor();
58
60
  ngOnInit(): void;
61
+ ngOnChanges(): void;
62
+ private updateEffectiveDataTestId;
59
63
  ngOnDestroy(): void;
60
64
  /**
61
65
  * Start the auto-loop functionality
@@ -74,5 +78,5 @@ export declare class LoaderComponent implements OnInit, OnDestroy {
74
78
  */
75
79
  reset(): void;
76
80
  static ɵfac: i0.ɵɵFactoryDeclaration<LoaderComponent, never>;
77
- static ɵcmp: i0.ɵɵComponentDeclaration<LoaderComponent, "al-loader", never, { "status": { "alias": "status"; "required": false; }; "customText": { "alias": "customText"; "required": false; }; "showText": { "alias": "showText"; "required": false; }; "size": { "alias": "size"; "required": false; }; "autoLoop": { "alias": "autoLoop"; "required": false; }; "loopDuration": { "alias": "loopDuration"; "required": false; }; "customTexts": { "alias": "customTexts"; "required": false; }; "completeOnDone": { "alias": "completeOnDone"; "required": false; }; }, {}, never, never, true, never>;
81
+ static ɵcmp: i0.ɵɵComponentDeclaration<LoaderComponent, "al-loader", never, { "dataTestId": { "alias": "dataTestId"; "required": false; }; "status": { "alias": "status"; "required": false; }; "customText": { "alias": "customText"; "required": false; }; "showText": { "alias": "showText"; "required": false; }; "size": { "alias": "size"; "required": false; }; "autoLoop": { "alias": "autoLoop"; "required": false; }; "loopDuration": { "alias": "loopDuration"; "required": false; }; "customTexts": { "alias": "customTexts"; "required": false; }; "completeOnDone": { "alias": "completeOnDone"; "required": false; }; }, {}, never, never, true, never>;
78
82
  }
@@ -0,0 +1,36 @@
1
+ import * as i0 from "@angular/core";
2
+ type TypographyVariant = 'font-text-5xl' | 'font-text-5xl-medium' | 'font-text-5xl-bold' | 'font-text-4xl' | 'font-text-4xl-medium' | 'font-text-4xl-bold' | 'font-text-3xl' | 'font-text-3xl-medium' | 'font-text-3xl-bold' | 'font-text-2xl' | 'font-text-2xl-medium' | 'font-text-2xl-bold' | 'font-text-xl' | 'font-text-xl-medium' | 'font-text-xl-bold' | 'font-text-lg' | 'font-text-lg-medium' | 'font-text-lg-bold' | 'font-text-base' | 'font-text-base-medium' | 'font-text-base-bold' | 'font-text-sm' | 'font-text-sm-medium' | 'font-text-sm-bold' | 'font-text-xs' | 'font-text-xs-medium' | 'font-text-xs-bold';
3
+ type TypographyWeight = 'light' | 'regular' | 'medium' | 'semibold' | 'bold';
4
+ type LineHeight = 'none' | 'tight' | 'normal';
5
+ type LetterSpacing = 'normal' | 'wide' | 'wider';
6
+ type TextDecoration = 'none' | 'underline' | 'italic' | 'strike';
7
+ export declare class NewTypographyComponent {
8
+ /** The textual content to render. */
9
+ text: string;
10
+ /** Which semantic tag to render as. */
11
+ tag: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span';
12
+ /** Typography variant selecting size/line-height/letter-spacing. */
13
+ variant: TypographyVariant;
14
+ /** Font weight to apply on top of the variant. */
15
+ weight: TypographyWeight;
16
+ /** Line height variant to apply. */
17
+ lineHeight: LineHeight;
18
+ /** Letter spacing variant to apply. */
19
+ letterSpacing: LetterSpacing;
20
+ /** Text decoration to apply. */
21
+ textDecoration: TextDecoration;
22
+ /** Whether to apply font-size (default: true) */
23
+ enableFontSize: boolean;
24
+ /** Whether to apply font-weight (default: true) */
25
+ enableFontWeight: boolean;
26
+ /** Whether to apply line-height (default: true) */
27
+ enableLineHeight: boolean;
28
+ /** Whether to apply letter-spacing (default: true) */
29
+ enableLetterSpacing: boolean;
30
+ /** Optional data-test-id for QA/testing */
31
+ dataTestId?: string;
32
+ get classList(): string;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<NewTypographyComponent, never>;
34
+ static ɵcmp: i0.ɵɵComponentDeclaration<NewTypographyComponent, "al-new-typography", never, { "text": { "alias": "text"; "required": false; }; "tag": { "alias": "tag"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "weight": { "alias": "weight"; "required": false; }; "lineHeight": { "alias": "lineHeight"; "required": false; }; "letterSpacing": { "alias": "letterSpacing"; "required": false; }; "textDecoration": { "alias": "textDecoration"; "required": false; }; "enableFontSize": { "alias": "enableFontSize"; "required": false; }; "enableFontWeight": { "alias": "enableFontWeight"; "required": false; }; "enableLineHeight": { "alias": "enableLineHeight"; "required": false; }; "enableLetterSpacing": { "alias": "enableLetterSpacing"; "required": false; }; "dataTestId": { "alias": "dataTestId"; "required": false; }; }, {}, never, never, true, never>;
35
+ }
36
+ export {};
@@ -0,0 +1,33 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { ControlValueAccessor } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export declare class RadioComponent implements ControlValueAccessor {
5
+ value: any;
6
+ name: string;
7
+ checked: boolean;
8
+ disabled: boolean;
9
+ color: 'primary' | 'green' | 'error';
10
+ labelPosition: 'before' | 'after';
11
+ required: boolean;
12
+ labelText: string;
13
+ helperTextLabel: string;
14
+ showLabels: boolean;
15
+ dataTestId: string;
16
+ tooltip: string;
17
+ tooltipPosition: 'right' | 'left' | 'above' | 'below' | 'before' | 'after';
18
+ change: EventEmitter<any>;
19
+ focus: EventEmitter<FocusEvent>;
20
+ blur: EventEmitter<FocusEvent>;
21
+ onChange: (_: any) => void;
22
+ onTouched: () => void;
23
+ writeValue(value: any): void;
24
+ registerOnChange(fn: any): void;
25
+ registerOnTouched(fn: any): void;
26
+ setDisabledState(isDisabled: boolean): void;
27
+ handleChange(event: any): void;
28
+ handleFocus(event: FocusEvent): void;
29
+ handleBlur(event: FocusEvent): void;
30
+ getColorClass(): string;
31
+ static ɵfac: i0.ɵɵFactoryDeclaration<RadioComponent, never>;
32
+ static ɵcmp: i0.ɵɵComponentDeclaration<RadioComponent, "al-radio", never, { "value": { "alias": "value"; "required": false; }; "name": { "alias": "name"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "color": { "alias": "color"; "required": false; }; "labelPosition": { "alias": "labelPosition"; "required": false; }; "required": { "alias": "required"; "required": false; }; "labelText": { "alias": "labelText"; "required": false; }; "helperTextLabel": { "alias": "helperTextLabel"; "required": false; }; "showLabels": { "alias": "showLabels"; "required": false; }; "dataTestId": { "alias": "dataTestId"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; }; }, { "change": "change"; "focus": "focus"; "blur": "blur"; }, never, ["*"], false, never>;
33
+ }
@@ -0,0 +1,10 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./radio.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "@angular/material/radio";
5
+ import * as i4 from "@angular/material/tooltip";
6
+ export declare class RadioModule {
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<RadioModule, never>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<RadioModule, [typeof i1.RadioComponent], [typeof i2.CommonModule, typeof i3.MatRadioModule, typeof i4.MatTooltipModule], [typeof i1.RadioComponent]>;
9
+ static ɵinj: i0.ɵɵInjectorDeclaration<RadioModule>;
10
+ }
@@ -0,0 +1,32 @@
1
+ import { AfterViewInit, NgZone, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
2
+ import { ElementRef } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ResponsiveColumnsComponent implements AfterViewInit, OnChanges, OnDestroy {
5
+ private hostRef;
6
+ private zone;
7
+ /** Optional data-testid for test selectors */
8
+ dataTestId?: string;
9
+ /** Gap between the three columns */
10
+ gap: string | number;
11
+ /** Padding applied to the container (e.g. '12px 16px') */
12
+ padding: string | number;
13
+ /** Optional explicit widths for side columns; defaults to 'auto' */
14
+ leftWidth: string;
15
+ rightWidth: string;
16
+ /** Breakpoint (px) below which columns stack vertically */
17
+ stackAt: number;
18
+ isStacked: boolean;
19
+ get dataTestIdAttr(): string | null;
20
+ get cssGap(): string;
21
+ get cssPadding(): string;
22
+ get cssLeftWidth(): string;
23
+ get cssRightWidth(): string;
24
+ get cssStackAt(): string;
25
+ private resizeObserver?;
26
+ constructor(hostRef: ElementRef<HTMLElement>, zone: NgZone);
27
+ ngAfterViewInit(): void;
28
+ ngOnChanges(changes: SimpleChanges): void;
29
+ ngOnDestroy(): void;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<ResponsiveColumnsComponent, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<ResponsiveColumnsComponent, "al-responsive-columns", never, { "dataTestId": { "alias": "dataTestId"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; "padding": { "alias": "padding"; "required": false; }; "leftWidth": { "alias": "leftWidth"; "required": false; }; "rightWidth": { "alias": "rightWidth"; "required": false; }; "stackAt": { "alias": "stackAt"; "required": false; }; }, {}, never, ["[left],[slot=left],[data-slot=left]", "*", "[center],[slot=center],[data-slot=center]", "[right],[slot=right],[data-slot=right]"], true, never>;
32
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@angular/common";
3
+ import * as i2 from "./responsive-columns.component";
4
+ export declare class ResponsiveColumnsModule {
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<ResponsiveColumnsModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ResponsiveColumnsModule, never, [typeof i1.CommonModule, typeof i2.ResponsiveColumnsComponent], [typeof i2.ResponsiveColumnsComponent]>;
7
+ static ɵinj: i0.ɵɵInjectorDeclaration<ResponsiveColumnsModule>;
8
+ }
@@ -0,0 +1,44 @@
1
+ import * as i0 from "@angular/core";
2
+ /**
3
+ * Responsive layout container that can behave as a row (columns) or a column (rows)
4
+ * with breakpoint-specific item counts.
5
+ *
6
+ * Breakpoints (px):
7
+ * - mobile: 0 - 500
8
+ * - mobile-sm: 500 - 767
9
+ * - tablet: 767 - 1024
10
+ * - desktop: 1024+
11
+ */
12
+ export declare class ResponsiveLayoutComponent {
13
+ /** Optional data-testid for test selectors */
14
+ dataTestId?: string;
15
+ /** Layout mode: 'row' has bottom margin, 'column' has no bottom margin. Both use responsive column counts. */
16
+ type: 'row' | 'column';
17
+ /** Gap between items (in px) */
18
+ gap: number | string;
19
+ /** Optional bottom margin for row mode. Set to false to remove. */
20
+ marginBottom: number | string | boolean;
21
+ countMobile: number;
22
+ countMobileSm: number;
23
+ countTablet: number;
24
+ countDesktop: number;
25
+ set mobRow(v: number | string | null | undefined);
26
+ set mobCols(v: number | string | null | undefined);
27
+ /** Alias: rows sets a base count used for all breakpoints unless overridden */
28
+ set rows(v: number | string | null | undefined);
29
+ /** Alias for tablet breakpoint */
30
+ set tabRow(v: number | string | null | undefined);
31
+ /** Alias for desktop breakpoint */
32
+ set desktop(v: number | string | null | undefined);
33
+ get cssGap(): string;
34
+ get cssCountMobile(): number;
35
+ get cssCountMobileSm(): number;
36
+ get cssCountTablet(): number;
37
+ get cssCountDesktop(): number;
38
+ get cssMarginBottom(): string;
39
+ get isRow(): boolean;
40
+ get isCol(): boolean;
41
+ get dataTestIdAttr(): string | null;
42
+ static ɵfac: i0.ɵɵFactoryDeclaration<ResponsiveLayoutComponent, never>;
43
+ static ɵcmp: i0.ɵɵComponentDeclaration<ResponsiveLayoutComponent, "app-flex-grid", never, { "dataTestId": { "alias": "dataTestId"; "required": false; }; "type": { "alias": "type"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; "marginBottom": { "alias": "marginBottom"; "required": false; }; "countMobile": { "alias": "countMobile"; "required": false; }; "countMobileSm": { "alias": "countMobileSm"; "required": false; }; "countTablet": { "alias": "countTablet"; "required": false; }; "countDesktop": { "alias": "countDesktop"; "required": false; }; "mobRow": { "alias": "mobRow"; "required": false; }; "mobCols": { "alias": "mobCols"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "tabRow": { "alias": "tabRow"; "required": false; }; "desktop": { "alias": "desktop"; "required": false; }; }, {}, never, ["*"], true, never>;
44
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@angular/common";
3
+ import * as i2 from "./responsive-layout.component";
4
+ export declare class ResponsiveLayoutModule {
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<ResponsiveLayoutModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ResponsiveLayoutModule, never, [typeof i1.CommonModule, typeof i2.ResponsiveLayoutComponent], [typeof i2.ResponsiveLayoutComponent]>;
7
+ static ɵinj: i0.ɵɵInjectorDeclaration<ResponsiveLayoutModule>;
8
+ }
@@ -0,0 +1,72 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { LoaderStatus } from '../loader/loader.component';
3
+ import * as i0 from "@angular/core";
4
+ export interface ResumeEntry {
5
+ companyName?: string;
6
+ institution?: string;
7
+ jobTitle?: string;
8
+ courseName?: string;
9
+ startDate?: string;
10
+ endDate?: string;
11
+ isPresent?: boolean;
12
+ city?: string;
13
+ region?: string;
14
+ country?: string;
15
+ descriptions?: string[];
16
+ rightSideItems?: string[];
17
+ }
18
+ export declare class ResumeEntriesComponent {
19
+ entries: ResumeEntry[];
20
+ showHeader: boolean;
21
+ showDescriptionLabel: boolean;
22
+ /** When false, hides Company/Institution field entirely */
23
+ showCompany: boolean;
24
+ /** When false, hides Job Title/Course Name field entirely */
25
+ showJobTitle: boolean;
26
+ /** When false, hides the date column (start/end/present) entirely */
27
+ showDates: boolean;
28
+ /** When false, hides location fields (City, Region, Country) entirely */
29
+ showLocation: boolean;
30
+ /** When true, displays a timeline line with dot on the left side of each entry */
31
+ showTimeline: boolean;
32
+ /** When true, displays the Re-apply/Undo button at the end of each entry */
33
+ showReapplyButton: boolean;
34
+ /** When true, displays a loader in place of the description section */
35
+ showLoader: boolean;
36
+ /** When true, loader replaces the entire entry; when false, loader only replaces the description section */
37
+ loaderForAllEntries: boolean;
38
+ /** Loader status - can be 'analyzing', 'gathering', 'processing', 'applying', or 'done' */
39
+ loaderStatus: LoaderStatus;
40
+ /** Loader size - can be 'small', 'medium', or 'large' */
41
+ loaderSize: 'small' | 'medium' | 'large';
42
+ /** Array of skills to display in the skill section */
43
+ skills?: string[];
44
+ /** Tooltip message for Company/Institution field */
45
+ companyTooltip?: string;
46
+ /** Tooltip message for Job Title/Course Name field */
47
+ jobTitleTooltip?: string;
48
+ /** Tooltip message for Date fields */
49
+ dateTooltip?: string;
50
+ /** Tooltip message for Location fields */
51
+ locationTooltip?: string;
52
+ /** Tooltip message for Description fields */
53
+ descriptionTooltip?: string;
54
+ /** Tooltip position - can be 'left', 'right', 'above', 'below', 'before', or 'after' */
55
+ tooltipPosition: 'left' | 'right' | 'above' | 'below' | 'before' | 'after';
56
+ /** Event emitted when the reapply button is clicked for a specific entry */
57
+ reapplyClick: EventEmitter<{
58
+ entry: ResumeEntry;
59
+ index: number;
60
+ }>;
61
+ /** Event emitted when the undo button is clicked for a specific entry */
62
+ undoClick: EventEmitter<{
63
+ entry: ResumeEntry;
64
+ index: number;
65
+ }>;
66
+ reappliedEntries: Set<number>;
67
+ onReapplyClick(entry: ResumeEntry, index: number): void;
68
+ onUndoClick(entry: ResumeEntry, index: number): void;
69
+ isReapplied(index: number): boolean;
70
+ static ɵfac: i0.ɵɵFactoryDeclaration<ResumeEntriesComponent, never>;
71
+ static ɵcmp: i0.ɵɵComponentDeclaration<ResumeEntriesComponent, "al-resume-entries", never, { "entries": { "alias": "entries"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "showDescriptionLabel": { "alias": "showDescriptionLabel"; "required": false; }; "showCompany": { "alias": "showCompany"; "required": false; }; "showJobTitle": { "alias": "showJobTitle"; "required": false; }; "showDates": { "alias": "showDates"; "required": false; }; "showLocation": { "alias": "showLocation"; "required": false; }; "showTimeline": { "alias": "showTimeline"; "required": false; }; "showReapplyButton": { "alias": "showReapplyButton"; "required": false; }; "showLoader": { "alias": "showLoader"; "required": false; }; "loaderForAllEntries": { "alias": "loaderForAllEntries"; "required": false; }; "loaderStatus": { "alias": "loaderStatus"; "required": false; }; "loaderSize": { "alias": "loaderSize"; "required": false; }; "skills": { "alias": "skills"; "required": false; }; "companyTooltip": { "alias": "companyTooltip"; "required": false; }; "jobTitleTooltip": { "alias": "jobTitleTooltip"; "required": false; }; "dateTooltip": { "alias": "dateTooltip"; "required": false; }; "locationTooltip": { "alias": "locationTooltip"; "required": false; }; "descriptionTooltip": { "alias": "descriptionTooltip"; "required": false; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; }; }, { "reapplyClick": "reapplyClick"; "undoClick": "undoClick"; }, never, ["*"], true, never>;
72
+ }