@allsorter/ui-components 0.0.386 → 0.0.390
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/allsorter-ui-components.mjs +208 -99
- package/fesm2022/allsorter-ui-components.mjs.map +1 -1
- package/lib/ai-apply-bar/ai-apply-bar.component.d.ts +2 -1
- package/lib/candidate-section/candidate-section.component.d.ts +24 -18
- package/lib/custom-editor/custom-editor.component.d.ts +1 -0
- package/lib/field-placeholder/field-placeholder.component.d.ts +1 -0
- package/lib/tabs/tabs.component.d.ts +20 -4
- package/lib/toolbar-left/toolbar-left.component.d.ts +7 -8
- package/lib/utils/image-utils.d.ts +5 -0
- package/package.json +1 -1
- package/src/lib/ai-apply-bar/ai-apply-bar.component.html +1 -1
- package/src/lib/candidate-section/candidate-section.component.html +30 -34
- package/src/lib/candidate-section/candidate-section.component.scss +1 -2
- package/src/lib/custom-editor/custom-editor.component.html +7 -7
- package/src/lib/editable-form-wrapper/editable-form-wrapper.component.html +3 -3
- package/src/lib/editable-form-wrapper/editable-form-wrapper.component.scss +1 -1
- package/src/lib/experience-section/experience-section.component.html +2 -2
- package/src/lib/field-placeholder/field-placeholder.component.html +9 -3
- package/src/lib/field-placeholder/field-placeholder.component.scss +5 -5
- package/src/lib/resume-entries/resume-entries.component.scss +1 -1
- package/src/lib/tabs/tabs.component.html +11 -1
- package/src/lib/tabs/tabs.component.scss +37 -0
- package/src/lib/toolbar-left/toolbar-left.component.html +3 -3
|
@@ -17,6 +17,7 @@ export declare class AiApplyBarComponent {
|
|
|
17
17
|
disabled: boolean;
|
|
18
18
|
applyLabel: string;
|
|
19
19
|
applyDisabled: boolean;
|
|
20
|
+
showApplyButton: boolean;
|
|
20
21
|
showClose: boolean;
|
|
21
22
|
iconOutlined: boolean;
|
|
22
23
|
closeButtonTooltip: string;
|
|
@@ -33,5 +34,5 @@ export declare class AiApplyBarComponent {
|
|
|
33
34
|
toggleBar(): void;
|
|
34
35
|
onClose(): void;
|
|
35
36
|
static ɵfac: i0.ɵɵFactoryDeclaration<AiApplyBarComponent, never>;
|
|
36
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AiApplyBarComponent, "al-ai-apply-bar", never, { "dataTestId": { "alias": "dataTestId"; "required": false; }; "showChevron": { "alias": "showChevron"; "required": false; }; "showChevronButton": { "alias": "showChevronButton"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "options": { "alias": "options"; "required": false; }; "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "applyLabel": { "alias": "applyLabel"; "required": false; }; "applyDisabled": { "alias": "applyDisabled"; "required": false; }; "showClose": { "alias": "showClose"; "required": false; }; "iconOutlined": { "alias": "iconOutlined"; "required": false; }; "closeButtonTooltip": { "alias": "closeButtonTooltip"; "required": false; }; "closeButtonTooltipPosition": { "alias": "closeButtonTooltipPosition"; "required": false; }; "showHelperText": { "alias": "showHelperText"; "required": false; }; "helperText": { "alias": "helperText"; "required": false; }; }, { "valueChange": "valueChange"; "applyClick": "applyClick"; "closeClick": "closeClick"; "chevronClick": "chevronClick"; }, never, never, true, never>;
|
|
37
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AiApplyBarComponent, "al-ai-apply-bar", never, { "dataTestId": { "alias": "dataTestId"; "required": false; }; "showChevron": { "alias": "showChevron"; "required": false; }; "showChevronButton": { "alias": "showChevronButton"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "options": { "alias": "options"; "required": false; }; "value": { "alias": "value"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "applyLabel": { "alias": "applyLabel"; "required": false; }; "applyDisabled": { "alias": "applyDisabled"; "required": false; }; "showApplyButton": { "alias": "showApplyButton"; "required": false; }; "showClose": { "alias": "showClose"; "required": false; }; "iconOutlined": { "alias": "iconOutlined"; "required": false; }; "closeButtonTooltip": { "alias": "closeButtonTooltip"; "required": false; }; "closeButtonTooltipPosition": { "alias": "closeButtonTooltipPosition"; "required": false; }; "showHelperText": { "alias": "showHelperText"; "required": false; }; "helperText": { "alias": "helperText"; "required": false; }; }, { "valueChange": "valueChange"; "applyClick": "applyClick"; "closeClick": "closeClick"; "chevronClick": "chevronClick"; }, never, never, true, never>;
|
|
37
38
|
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import { AfterViewInit, ElementRef, OnDestroy } from '@angular/core';
|
|
1
|
+
import { AfterViewInit, ElementRef, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
3
|
+
import { MatIconRegistry } from '@angular/material/icon';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class CandidateSectionComponent implements AfterViewInit, OnDestroy {
|
|
5
|
+
export declare class CandidateSectionComponent implements AfterViewInit, OnDestroy, OnInit {
|
|
6
|
+
private iconRegistry;
|
|
7
|
+
private sanitizer;
|
|
4
8
|
candidateContainer?: ElementRef<HTMLElement>;
|
|
5
9
|
/**
|
|
6
10
|
* When true, layout switches from 3 columns to "2-column" stacked layout.
|
|
@@ -10,34 +14,36 @@ export declare class CandidateSectionComponent implements AfterViewInit, OnDestr
|
|
|
10
14
|
private resizeObserver?;
|
|
11
15
|
useCustomHeader: boolean;
|
|
12
16
|
candidateDetails: any;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
+
candidate_name: boolean;
|
|
18
|
+
candidate_gender: boolean;
|
|
19
|
+
candidate_phonenumber: boolean;
|
|
20
|
+
candidate_email: boolean;
|
|
21
|
+
candidate_linkedin: boolean;
|
|
22
|
+
candidate_address: boolean;
|
|
23
|
+
addressStreet: boolean;
|
|
24
|
+
addressCity: boolean;
|
|
25
|
+
addressRegion: boolean;
|
|
26
|
+
addressRegionCode: boolean;
|
|
27
|
+
addressCountry: boolean;
|
|
28
|
+
addressPostCode: boolean;
|
|
29
|
+
currentJob: boolean;
|
|
30
|
+
candidate_experience: boolean;
|
|
31
|
+
constructor(iconRegistry: MatIconRegistry, sanitizer: DomSanitizer);
|
|
17
32
|
ngAfterViewInit(): void;
|
|
18
33
|
ngOnDestroy(): void;
|
|
34
|
+
ngOnInit(): void;
|
|
35
|
+
private registerIcons;
|
|
19
36
|
/**
|
|
20
37
|
* Sets isNarrowLayout based on the current container width.
|
|
21
38
|
* Uses 600px as the breakpoint where the layout switches from 3 to 2 columns.
|
|
22
39
|
*/
|
|
23
40
|
private updateLayoutBreakpoint;
|
|
24
|
-
shouldShow(...keys: string[]): boolean;
|
|
25
|
-
private resolveKeys;
|
|
26
|
-
shouldShowFor(fieldId: string, fallbackKeys: string[]): boolean;
|
|
27
41
|
getCurrentJob(): string;
|
|
28
42
|
getCurrentEmployer(): string;
|
|
29
43
|
getTotalExpYears(): string;
|
|
30
44
|
hasValue(): boolean;
|
|
31
45
|
hasAddressValue(): boolean;
|
|
32
46
|
hasExperienceValue(): boolean;
|
|
33
|
-
getIconName(): string | undefined;
|
|
34
|
-
getIconGender(): string | undefined;
|
|
35
|
-
getIconPhone(): string | undefined;
|
|
36
|
-
getIconEmail(): string | undefined;
|
|
37
|
-
getIconLinkedIn(): string | undefined;
|
|
38
|
-
getIconAddress(): string | undefined;
|
|
39
|
-
getIconExperience(): string | undefined;
|
|
40
|
-
getIconMostRecent(): string | undefined;
|
|
41
47
|
static ɵfac: i0.ɵɵFactoryDeclaration<CandidateSectionComponent, never>;
|
|
42
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CandidateSectionComponent, "al-candidate-section", never, { "useCustomHeader": { "alias": "useCustomHeader"; "required": false; }; "candidateDetails": { "alias": "candidateDetails"; "required": false; }; "
|
|
48
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CandidateSectionComponent, "al-candidate-section", never, { "useCustomHeader": { "alias": "useCustomHeader"; "required": false; }; "candidateDetails": { "alias": "candidateDetails"; "required": false; }; "candidate_name": { "alias": "candidate_name"; "required": false; }; "candidate_gender": { "alias": "candidate_gender"; "required": false; }; "candidate_phonenumber": { "alias": "candidate_phonenumber"; "required": false; }; "candidate_email": { "alias": "candidate_email"; "required": false; }; "candidate_linkedin": { "alias": "candidate_linkedin"; "required": false; }; "candidate_address": { "alias": "candidate_address"; "required": false; }; "addressStreet": { "alias": "addressStreet"; "required": false; }; "addressCity": { "alias": "addressCity"; "required": false; }; "addressRegion": { "alias": "addressRegion"; "required": false; }; "addressRegionCode": { "alias": "addressRegionCode"; "required": false; }; "addressCountry": { "alias": "addressCountry"; "required": false; }; "addressPostCode": { "alias": "addressPostCode"; "required": false; }; "currentJob": { "alias": "currentJob"; "required": false; }; "candidate_experience": { "alias": "candidate_experience"; "required": false; }; }, {}, never, never, false, never>;
|
|
43
49
|
}
|
|
@@ -181,6 +181,7 @@ export declare class CustomEditorComponent implements OnInit, OnDestroy, AfterVi
|
|
|
181
181
|
deleteRowBelow(event: MouseEvent): void;
|
|
182
182
|
updateAIToolInMemory(tool: any): void;
|
|
183
183
|
useAITool(event: MouseEvent): void;
|
|
184
|
+
useAutoBullet(event: MouseEvent): void;
|
|
184
185
|
static ɵfac: i0.ɵɵFactoryDeclaration<CustomEditorComponent, never>;
|
|
185
186
|
static ɵcmp: i0.ɵɵComponentDeclaration<CustomEditorComponent, "app-custom-editor", never, { "bold": { "alias": "bold"; "required": false; }; "italic": { "alias": "italic"; "required": false; }; "underline": { "alias": "underline"; "required": false; }; "list": { "alias": "list"; "required": false; }; "isVisible": { "alias": "isVisible"; "required": false; }; "dataTestId": { "alias": "dataTestId"; "required": false; }; "showLabels": { "alias": "showLabels"; "required": false; }; "leftLabelText": { "alias": "leftLabelText"; "required": false; }; "rightLabelText": { "alias": "rightLabelText"; "required": false; }; "initialValue": { "alias": "initialValue"; "required": false; }; "contentFromParent": { "alias": "contentFromParent"; "required": false; }; "editScreenSection": { "alias": "editScreenSection"; "required": false; }; "actionType": { "alias": "actionType"; "required": false; }; "historyControls": { "alias": "historyControls"; "required": false; }; "autobullet": { "alias": "autobullet"; "required": false; }; "skillsBullet": { "alias": "skillsBullet"; "required": false; }; "jsonData": { "alias": "jsonData"; "required": false; }; "formJsonData": { "alias": "formJsonData"; "required": false; }; "editorId": { "alias": "editorId"; "required": false; }; "sectionId": { "alias": "sectionId"; "required": false; }; "actionId": { "alias": "actionId"; "required": false; }; "undoCustom": { "alias": "undoCustom"; "required": false; }; "redoCustom": { "alias": "redoCustom"; "required": false; }; "undoSkill": { "alias": "undoSkill"; "required": false; }; "redoSkill": { "alias": "redoSkill"; "required": false; }; "matOptionAI": { "alias": "matOptionAI"; "required": false; }; "hideTableOption": { "alias": "hideTableOption"; "required": false; }; "hideAutoBulletOption": { "alias": "hideAutoBulletOption"; "required": false; }; "hideAIOption": { "alias": "hideAIOption"; "required": false; }; "showAIButton": { "alias": "showAIButton"; "required": false; }; "insertTablebtn": { "alias": "insertTablebtn"; "required": false; }; "insertRowAbovebtn": { "alias": "insertRowAbovebtn"; "required": false; }; "insertRowBelowbtn": { "alias": "insertRowBelowbtn"; "required": false; }; "insertColumnLeftbtn": { "alias": "insertColumnLeftbtn"; "required": false; }; "insertColumnRightbtn": { "alias": "insertColumnRightbtn"; "required": false; }; "deleteTablebtn": { "alias": "deleteTablebtn"; "required": false; }; "deleteRowAbovebtn": { "alias": "deleteRowAbovebtn"; "required": false; }; "deleteRowBelowbtn": { "alias": "deleteRowBelowbtn"; "required": false; }; "deleteColumnLeftbtn": { "alias": "deleteColumnLeftbtn"; "required": false; }; "deleteColumnRightbtn": { "alias": "deleteColumnRightbtn"; "required": false; }; "showTable": { "alias": "showTable"; "required": false; }; "toolbarConfig": { "alias": "toolbarConfig"; "required": false; }; "textFormattingConfig": { "alias": "textFormattingConfig"; "required": false; }; }, { "contentChangeFromQuill": "contentChangeFromQuill"; "ApplyAIinQuill": "ApplyAIinQuill"; "onAutoBullet": "onAutoBullet"; }, never, never, true, never>;
|
|
186
187
|
}
|
|
@@ -36,6 +36,7 @@ export declare class FieldPlaceholderComponent {
|
|
|
36
36
|
*/
|
|
37
37
|
padded?: boolean;
|
|
38
38
|
isMaterialIcon(icon: string): boolean;
|
|
39
|
+
isRegisteredSvgIcon(icon: string): boolean;
|
|
39
40
|
static ɵfac: i0.ɵɵFactoryDeclaration<FieldPlaceholderComponent, never>;
|
|
40
41
|
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
42
|
}
|
|
@@ -1,21 +1,37 @@
|
|
|
1
|
-
import { QueryList, AfterContentInit, TemplateRef, AfterViewInit, ChangeDetectorRef } from '@angular/core';
|
|
1
|
+
import { QueryList, AfterContentInit, TemplateRef, AfterViewInit, ChangeDetectorRef, OnInit } from '@angular/core';
|
|
2
|
+
import { MatIconRegistry } from '@angular/material/icon';
|
|
3
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
3
5
|
export declare class AlTabComponent implements AfterViewInit {
|
|
4
6
|
labelText: string;
|
|
5
7
|
/** DEPRECATED: label -> labelText */
|
|
6
8
|
set label(val: string);
|
|
7
9
|
selected: boolean;
|
|
10
|
+
icon: string;
|
|
11
|
+
iconType: 'svg' | 'font';
|
|
12
|
+
showIcon: boolean;
|
|
13
|
+
tooltip: string;
|
|
14
|
+
tooltipPosition: 'left' | 'right' | 'above' | 'below' | 'before' | 'after';
|
|
8
15
|
templateRef: TemplateRef<any>;
|
|
16
|
+
/**
|
|
17
|
+
* Returns the tooltip text. If no tooltip is explicitly set,
|
|
18
|
+
* defaults to the labelText for better accessibility.
|
|
19
|
+
*/
|
|
20
|
+
get effectiveTooltip(): string;
|
|
9
21
|
ngAfterViewInit(): void;
|
|
10
22
|
static ɵfac: i0.ɵɵFactoryDeclaration<AlTabComponent, never>;
|
|
11
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AlTabComponent, "al-tab", never, { "labelText": { "alias": "labelText"; "required": false; }; "label": { "alias": "label"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
23
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AlTabComponent, "al-tab", never, { "labelText": { "alias": "labelText"; "required": false; }; "label": { "alias": "label"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconType": { "alias": "iconType"; "required": false; }; "showIcon": { "alias": "showIcon"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
12
24
|
}
|
|
13
|
-
export declare class TabsComponent implements AfterContentInit, AfterViewInit {
|
|
25
|
+
export declare class TabsComponent implements AfterContentInit, AfterViewInit, OnInit {
|
|
14
26
|
private cdr;
|
|
27
|
+
private iconRegistry;
|
|
28
|
+
private sanitizer;
|
|
15
29
|
tabComponents: QueryList<AlTabComponent>;
|
|
16
30
|
selectedIndex: number;
|
|
17
31
|
size: 'small' | 'medium' | 'large';
|
|
18
|
-
constructor(cdr: ChangeDetectorRef);
|
|
32
|
+
constructor(cdr: ChangeDetectorRef, iconRegistry: MatIconRegistry, sanitizer: DomSanitizer);
|
|
33
|
+
ngOnInit(): void;
|
|
34
|
+
private registerIcons;
|
|
19
35
|
ngAfterContentInit(): void;
|
|
20
36
|
ngAfterViewInit(): void;
|
|
21
37
|
static ɵfac: i0.ɵɵFactoryDeclaration<TabsComponent, never>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventEmitter, OnInit } from '@angular/core';
|
|
1
|
+
import { EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { MatIconRegistry } from '@angular/material/icon';
|
|
3
3
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -11,25 +11,24 @@ export interface RequiredIconConfig {
|
|
|
11
11
|
edit: IconConfig;
|
|
12
12
|
search: IconConfig;
|
|
13
13
|
}
|
|
14
|
-
export declare class AppToolbarLeftComponent implements OnInit {
|
|
14
|
+
export declare class AppToolbarLeftComponent implements OnInit, OnChanges {
|
|
15
15
|
private iconRegistry;
|
|
16
16
|
private sanitizer;
|
|
17
17
|
variant: string;
|
|
18
18
|
constructor(iconRegistry: MatIconRegistry, sanitizer: DomSanitizer);
|
|
19
19
|
private registerIcons;
|
|
20
20
|
ngOnInit(): void;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
22
|
+
overrideConfig: Partial<RequiredIconConfig>;
|
|
23
|
+
private updateRequiredIcon;
|
|
24
24
|
private _defaultRequiredIcon;
|
|
25
25
|
requiredIcon: RequiredIconConfig;
|
|
26
26
|
content: string;
|
|
27
27
|
editEvent: EventEmitter<string>;
|
|
28
28
|
isExtractionAnalysisActive: boolean;
|
|
29
|
-
|
|
29
|
+
searchEvent: EventEmitter<Event>;
|
|
30
30
|
editSelectedSection(): void;
|
|
31
|
-
sendMessage(): void;
|
|
32
31
|
onSearchClick(event: Event): void;
|
|
33
32
|
static ɵfac: i0.ɵɵFactoryDeclaration<AppToolbarLeftComponent, never>;
|
|
34
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AppToolbarLeftComponent, "toolbar-left", never, { "variant": { "alias": "variant"; "required": false; }; "overrideConfig": { "alias": "overrideConfig"; "required": false; }; "content": { "alias": "content"; "required": false; }; "isExtractionAnalysisActive": { "alias": "isExtractionAnalysisActive"; "required": false; };
|
|
33
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AppToolbarLeftComponent, "toolbar-left", never, { "variant": { "alias": "variant"; "required": false; }; "overrideConfig": { "alias": "overrideConfig"; "required": false; }; "content": { "alias": "content"; "required": false; }; "isExtractionAnalysisActive": { "alias": "isExtractionAnalysisActive"; "required": false; }; }, { "editEvent": "editEvent"; "searchEvent": "searchEvent"; }, never, never, true, never>;
|
|
35
34
|
}
|
|
@@ -34,6 +34,11 @@ export declare const Candidate_Section_ICON: {
|
|
|
34
34
|
candidate_experience: string;
|
|
35
35
|
candidate_most_recent: string;
|
|
36
36
|
};
|
|
37
|
+
export declare const Resume_Tab_icon: {
|
|
38
|
+
resume_tab_icon: string;
|
|
39
|
+
coversheet_tab_icon: string;
|
|
40
|
+
Ai_tools_tab_icon: string;
|
|
41
|
+
};
|
|
37
42
|
export declare const NewResume_Header_Component_ICON: {
|
|
38
43
|
'add-right_icon_section': string;
|
|
39
44
|
'add_left-icon_section': string;
|
package/package.json
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
</div>
|
|
27
27
|
|
|
28
28
|
<div class="ai-apply-button">
|
|
29
|
-
<al-button [label]="applyLabel" [buttonType]="'icon-label'" [category]="'gradient'" [size]="'base'"
|
|
29
|
+
<al-button *ngIf="showApplyButton" [label]="applyLabel" [buttonType]="'icon-label'" [category]="'gradient'" [size]="'base'"
|
|
30
30
|
[state]="applyDisabled ? 'disabled' : 'default'" (onClick)="applyClick.emit()">
|
|
31
31
|
</al-button>
|
|
32
32
|
<al-icon-button *ngIf="showChevronButton" icon="chevron_right" [iconOutlined]="true"
|
|
@@ -2,72 +2,68 @@
|
|
|
2
2
|
<div class="columns-wrapper">
|
|
3
3
|
<div class="column first-column">
|
|
4
4
|
<div class="container" data-test-id="candidate-section-name-container"
|
|
5
|
-
[
|
|
5
|
+
[style.opacity]="candidate_name ? '1' : '0.3'"><lib-field-placeholder icon="candidate_name"
|
|
6
6
|
[value]="candidateDetails?.firstName && candidateDetails?.lastName ? candidateDetails?.firstName + ' ' + candidateDetails?.lastName : candidateDetails?.firstName || candidateDetails?.lastName"
|
|
7
7
|
[placeholder]="'Name'" [tooltip]="candidateDetails?.firstName + ' ' + candidateDetails?.lastName"
|
|
8
8
|
tooltipPosition="right" [testId]="'candidate-section-name'" [valueClass]="'typo-description'"
|
|
9
9
|
[compact]="true"></lib-field-placeholder></div>
|
|
10
10
|
<div class="container" data-test-id="candidate-section-gender-container"
|
|
11
|
-
[
|
|
11
|
+
[style.opacity]="candidate_gender ? '1' : '0.3'"><lib-field-placeholder icon="candidate_gender"
|
|
12
12
|
[value]="candidateDetails?.userAssignedGender" [placeholder]="'Gender'"
|
|
13
13
|
[tooltip]="candidateDetails?.userAssignedGender" tooltipPosition="right" [testId]="'candidate-section-gender'"
|
|
14
14
|
[valueClass]="'typo-description'" [compact]="true"></lib-field-placeholder></div>
|
|
15
15
|
<div class="container" data-test-id="candidate-section-phone-container"
|
|
16
|
-
[
|
|
17
|
-
[value]="candidateDetails?.phoneNumber" [placeholder]="'Phone Number'"
|
|
16
|
+
[style.opacity]="candidate_phonenumber ? '1' : '0.3'"><lib-field-placeholder
|
|
17
|
+
icon="candidate_phonenumber" [value]="candidateDetails?.phoneNumber" [placeholder]="'Phone Number'"
|
|
18
18
|
[tooltip]="candidateDetails?.phoneNumber" tooltipPosition="right" [testId]="'candidate-section-phone'"
|
|
19
19
|
[valueClass]="'typo-description'" [compact]="true"></lib-field-placeholder></div>
|
|
20
20
|
<div class="container" data-test-id="candidate-section-email-container"
|
|
21
|
-
[
|
|
21
|
+
[style.opacity]="candidate_email ? '1' : '0.3'"><lib-field-placeholder icon="candidate_email"
|
|
22
22
|
[value]="candidateDetails?.emailAddress" [placeholder]="'Email Address'"
|
|
23
23
|
[tooltip]="candidateDetails?.emailAddress" tooltipPosition="right" [testId]="'candidate-section-email'"
|
|
24
24
|
[valueClass]="'typo-description'" [compact]="true"></lib-field-placeholder></div>
|
|
25
25
|
<div class="container" data-test-id="candidate-section-linkedin-container"
|
|
26
|
-
[
|
|
27
|
-
|
|
26
|
+
[style.opacity]="candidate_linkedin ? '1' : '0.3'"><lib-field-placeholder
|
|
27
|
+
icon="candidate_linkedin" iconAlt="LinkedIn" [value]="candidateDetails?.linkedin" [placeholder]="'LinkedIn'"
|
|
28
28
|
[tooltip]="candidateDetails?.linkedin" tooltipPosition="right" [testId]="'candidate-section-linkedin'"
|
|
29
29
|
[valueClass]="'typo-description'" [compact]="true"></lib-field-placeholder></div>
|
|
30
30
|
</div>
|
|
31
31
|
<div class="column second-column">
|
|
32
32
|
<div data-test-id="candidate-section-address-container"
|
|
33
|
-
[
|
|
34
|
-
<div [
|
|
35
|
-
|
|
33
|
+
[style.opacity]="candidate_address ? '1' : '0.3'">
|
|
34
|
+
<div [style.opacity]="addressStreet ? '1' : '0.3'"><lib-field-placeholder
|
|
35
|
+
icon="candidate_address" [value]="candidateDetails?.street" [placeholder]="'Street'"
|
|
36
36
|
[tooltip]="candidateDetails?.street" tooltipPosition="right" [testId]="'candidate-section-address-street'"
|
|
37
37
|
[valueClass]="'typo-description'" [compact]="true"></lib-field-placeholder></div>
|
|
38
|
-
<div [
|
|
38
|
+
<div [style.opacity]="addressCity ? '1' : '0.3'"><lib-field-placeholder icon="no-icon"
|
|
39
39
|
[value]="candidateDetails?.city" [placeholder]="'City'" [tooltip]="candidateDetails?.city"
|
|
40
40
|
tooltipPosition="right" [testId]="'candidate-section-address-city'" [valueClass]="'typo-description'"
|
|
41
|
-
[icon]="'data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%3E%3C%2Fsvg%3E'"
|
|
42
41
|
[compact]="true"></lib-field-placeholder></div>
|
|
43
|
-
<div [
|
|
44
|
-
[value]="candidateDetails?.region" [placeholder]="'Region'"
|
|
45
|
-
tooltipPosition="right" [testId]="'candidate-section-address-region'"
|
|
46
|
-
[
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
[value]="candidateDetails?.regionCode" [placeholder]="'Region Code'"
|
|
42
|
+
<div [style.opacity]="addressRegion ? '1' : '0.3'"><lib-field-placeholder
|
|
43
|
+
icon="no-icon" [value]="candidateDetails?.region" [placeholder]="'Region'"
|
|
44
|
+
[tooltip]="candidateDetails?.region" tooltipPosition="right" [testId]="'candidate-section-address-region'"
|
|
45
|
+
[valueClass]="'typo-description'" [compact]="true"></lib-field-placeholder></div>
|
|
46
|
+
<div [style.opacity]="addressRegionCode ? '1' : '0.3'"><lib-field-placeholder
|
|
47
|
+
[value]="candidateDetails?.regionCode" [placeholder]="'Region Code'" icon="no-icon"
|
|
50
48
|
[tooltip]="candidateDetails?.regionCode" tooltipPosition="right"
|
|
51
49
|
[testId]="'candidate-section-address-region-code'" [valueClass]="'typo-description'"
|
|
52
|
-
[icon]="'data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%3E%3C%2Fsvg%3E'"
|
|
53
50
|
[compact]="true"></lib-field-placeholder></div>
|
|
54
|
-
<div [
|
|
55
|
-
[value]="candidateDetails?.country" [placeholder]="'Country'"
|
|
56
|
-
tooltipPosition="right" [testId]="'candidate-section-address-country'"
|
|
57
|
-
[
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
[
|
|
61
|
-
|
|
62
|
-
[icon]="'data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%3E%3C%2Fsvg%3E'"
|
|
51
|
+
<div [style.opacity]="addressCountry ? '1' : '0.3'"><lib-field-placeholder
|
|
52
|
+
icon="no-icon" [value]="candidateDetails?.country" [placeholder]="'Country'"
|
|
53
|
+
[tooltip]="candidateDetails?.country" tooltipPosition="right" [testId]="'candidate-section-address-country'"
|
|
54
|
+
[valueClass]="'typo-description'" [compact]="true"></lib-field-placeholder></div>
|
|
55
|
+
<div [style.opacity]="addressPostCode ? '1' : '0.3'"><lib-field-placeholder
|
|
56
|
+
icon="no-icon" [value]="candidateDetails?.postCode" [placeholder]="'Post Code'"
|
|
57
|
+
[tooltip]="candidateDetails?.postCode" tooltipPosition="right"
|
|
58
|
+
[testId]="'candidate-section-address-post-code'" [valueClass]="'typo-description'"
|
|
63
59
|
[compact]="true"></lib-field-placeholder></div>
|
|
64
60
|
</div>
|
|
65
61
|
</div>
|
|
66
62
|
</div>
|
|
67
63
|
<div class="column third-column">
|
|
68
64
|
<div class="container most-recent-container" data-test-id="candidate-section-current-employer-container">
|
|
69
|
-
<div [
|
|
70
|
-
<lib-field-placeholder
|
|
65
|
+
<div [style.opacity]="currentJob ? '1' : '0.3'">
|
|
66
|
+
<lib-field-placeholder icon="candidate_most_recent"
|
|
71
67
|
[value]="(getCurrentJob() || getCurrentEmployer()) ? 'Most Recently : <span class=\'most-recent-inline\'>' + (getCurrentJob() ? '<span class=\'total-exp-value\'>' + getCurrentJob() + '</span>' : '') + (getCurrentEmployer() ? (getCurrentJob() ? ' at <span class=\'total-exp-value\'>' + getCurrentEmployer() + '</span>' : '<span class=\'total-exp-value\'>' + getCurrentEmployer() + '</span>') : '') + '</span>' : ''"
|
|
72
68
|
[placeholder]="'Current Job'"
|
|
73
69
|
[tooltip]="(getCurrentJob() || getCurrentEmployer()) ? 'Most Recently : ' + getCurrentJob() + (getCurrentEmployer() ? ' at ' + getCurrentEmployer() : '') : 'Current Job'"
|
|
@@ -80,12 +76,12 @@
|
|
|
80
76
|
</div>
|
|
81
77
|
</div>
|
|
82
78
|
<div class="total-exp-parent container" data-test-id="candidate-section-total-exp-parent"
|
|
83
|
-
[
|
|
84
|
-
|
|
79
|
+
[style.opacity]="candidate_experience ? '1' : '0.3'"><lib-field-placeholder
|
|
80
|
+
icon="candidate_experience"
|
|
85
81
|
[value]="getTotalExpYears() ? 'Total Exp - <span class=\'total-exp-value\'>' + getTotalExpYears() + '</span> yrs' : ''"
|
|
86
82
|
[placeholder]="'Total Exp'"
|
|
87
83
|
[tooltip]="getTotalExpYears() ? 'Total Exp - ' + getTotalExpYears() + ' yrs' : 'Total Exp'"
|
|
88
84
|
tooltipPosition="right" [testId]="'candidate-section-total-exp-value'" [valueClass]="'typo-description'"
|
|
89
85
|
[compact]="true"></lib-field-placeholder></div>
|
|
90
86
|
</div>
|
|
91
|
-
</div>
|
|
87
|
+
</div>
|
|
@@ -66,14 +66,14 @@
|
|
|
66
66
|
</app-table>
|
|
67
67
|
|
|
68
68
|
<!-- Auto Bullet Button -->
|
|
69
|
-
<button *ngIf="autobullet" class="auto-bullet" mat-flat-button (click)="event.stopPropagation();
|
|
69
|
+
<button *ngIf="autobullet" class="auto-bullet" mat-flat-button (click)="$event.stopPropagation(); useAutoBullet($event)"
|
|
70
70
|
[disabled]="autoBulletDisable || isLoadingAI || !checkHtmlContent('')">
|
|
71
71
|
{{ AutoBulletButton }}
|
|
72
72
|
</button>
|
|
73
73
|
|
|
74
74
|
<!-- Bullet Skill Button -->
|
|
75
75
|
<button *ngIf="skillsBullet" class="bullet-skill" mat-flat-button
|
|
76
|
-
(click)="event.stopPropagation(); transformToSkillsBullets(
|
|
76
|
+
(click)="$event.stopPropagation(); transformToSkillsBullets()" [disabled]="isDisabled || isLoadingAI">
|
|
77
77
|
{{ skillsButton }}
|
|
78
78
|
</button>
|
|
79
79
|
</div>
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
<!-- Individual Text Formatting Buttons (Large Containers Only) -->
|
|
83
83
|
<ng-container *ngIf="!isSmallScreen">
|
|
84
84
|
<button *ngFor="let item of textFormattingConfig" class="format-button" [class.active]="getActiveState(item.type)"
|
|
85
|
-
(
|
|
85
|
+
(onClick)="handleTextFormattingClick($event, item)" [title]="item.title" type="button" [matTooltip]="item.title"
|
|
86
86
|
matTooltipPosition="above">
|
|
87
87
|
<mat-icon *ngIf="isSvgIcon(item.icon)" [svgIcon]="item.icon"
|
|
88
88
|
[class.active-icon]="getActiveState(item.type)"></mat-icon>
|
|
@@ -100,20 +100,20 @@
|
|
|
100
100
|
|
|
101
101
|
<!-- Auto Bullet Button (Large Screens Only) -->
|
|
102
102
|
<button *ngIf="autobullet && !isSmallScreen" class="auto-bullet" mat-flat-button
|
|
103
|
-
(click)="event.stopPropagation();
|
|
103
|
+
(click)="$event.stopPropagation(); useAutoBullet($event)" [disabled]="autoBulletDisable || isLoadingAI || !checkHtmlContent('')">
|
|
104
104
|
{{ AutoBulletButton }}
|
|
105
105
|
</button>
|
|
106
106
|
|
|
107
107
|
<!-- Bullet Skill Button (Large Screens Only) -->
|
|
108
108
|
<button *ngIf="skillsBullet && !isSmallScreen" class="bullet-skill" mat-flat-button
|
|
109
|
-
(click)="event.stopPropagation(); transformToSkillsBullets($event)" [disabled]="isDisabled || isLoadingAI">
|
|
109
|
+
(click)="$event.stopPropagation(); transformToSkillsBullets($event)" [disabled]="isDisabled || isLoadingAI">
|
|
110
110
|
{{ skillsButton }}
|
|
111
111
|
</button>
|
|
112
112
|
|
|
113
113
|
<!-- History Controls (Undo/Redo) -->
|
|
114
114
|
<div *ngIf="historyControls" class="history-controls">
|
|
115
115
|
<!-- Undo Button -->
|
|
116
|
-
<button class="format-button" (
|
|
116
|
+
<button class="format-button" (onClick)="execCmd($event, 'undo')" title="Undo" type="button" matTooltip="Undo"
|
|
117
117
|
matTooltipPosition="above">
|
|
118
118
|
<span class="material-icons" [class.active-icon]="getActiveState('undo')">
|
|
119
119
|
undo
|
|
@@ -121,7 +121,7 @@
|
|
|
121
121
|
</button>
|
|
122
122
|
|
|
123
123
|
<!-- Redo Button -->
|
|
124
|
-
<button class="format-button" (
|
|
124
|
+
<button class="format-button" (clionClickck)="execCmd($event, 'redo')" title="Redo" type="button" matTooltip="Redo"
|
|
125
125
|
matTooltipPosition="above">
|
|
126
126
|
<span class="material-icons" [class.active-icon]="getActiveState('redo')">
|
|
127
127
|
redo
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
<div class="al-form-wrapper" #wrapper [attr.data-test-id]="testId">
|
|
2
2
|
<div *ngIf="showLeftButton" #leftButton class="fab left">
|
|
3
|
-
<al-button [buttonType]="'icon-circle'" [iconOnly]="true"
|
|
3
|
+
<!-- <al-button [buttonType]="'icon-circle'" [iconOnly]="true"
|
|
4
4
|
[leftIcon]="isLeftButtonActive ? 'close' : 'auto_fix_high'"
|
|
5
5
|
[arialabel]="isLeftButtonActive ? 'Close' : 'Edit'"
|
|
6
6
|
[size]="'base'"
|
|
7
7
|
[color]="isLeftButtonActive ? 'grey' : 'gradient'"
|
|
8
8
|
(onClick)="handleLeftButtonClick($event)">
|
|
9
|
-
</al-button>
|
|
10
|
-
<div
|
|
9
|
+
</al-button> -->
|
|
10
|
+
<div
|
|
11
11
|
class="left-button-container"
|
|
12
12
|
[ngClass]="leftContainerClass"
|
|
13
13
|
[ngStyle]="leftContainerStyle">
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<al-responsive-columns [gap]="gap" [padding]="padding" [leftWidth]="leftWidth" [rightWidth]="rightWidth"
|
|
2
2
|
[stackAt]="stackAt">
|
|
3
3
|
<div left><toolbar-left [variant]="variant" [content]="content"
|
|
4
|
-
[isExtractionAnalysisActive]="isExtractionAnalysisActive"
|
|
4
|
+
[isExtractionAnalysisActive]="isExtractionAnalysisActive"
|
|
5
5
|
[overrideConfig]="overrideConfig" (editEvent)="onEditEvent($event)"></toolbar-left></div>
|
|
6
6
|
<div center><al-resume-entries [entries]="entries" [showHeader]="showHeader"
|
|
7
7
|
[showDescriptionLabel]="showDescriptionLabel" [showCompany]="showCompany" [showJobTitle]="showJobTitle"
|
|
@@ -17,4 +17,4 @@
|
|
|
17
17
|
(visibilityToggle)="onVisibilityToggle($event)" (hideShowEvent)="onHideShowEvent($event)"
|
|
18
18
|
(checkboxEvent)="onCheckboxEvent($event)" (setSubroleEvent)="onSetSubroleEvent($event)"></toolbar-right>
|
|
19
19
|
</div>
|
|
20
|
-
</al-responsive-columns>
|
|
20
|
+
</al-responsive-columns>
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
<div class="field-row" [class.field-row-compact]="compact === true" [class.field-row-padded]="padded === true">
|
|
2
2
|
<ng-container *ngIf="icon">
|
|
3
3
|
<span class="field-icon">
|
|
4
|
-
<ng-container *ngIf="
|
|
4
|
+
<ng-container *ngIf="icon === 'no-icon'">
|
|
5
|
+
<!-- Transparent spacer to maintain icon alignment -->
|
|
6
|
+
</ng-container>
|
|
7
|
+
<ng-container *ngIf="isRegisteredSvgIcon(icon) && icon !== 'no-icon'">
|
|
8
|
+
<mat-icon [svgIcon]="icon"></mat-icon>
|
|
9
|
+
</ng-container>
|
|
10
|
+
<ng-container *ngIf="isMaterialIcon(icon) && !isRegisteredSvgIcon(icon) && icon !== 'no-icon'">
|
|
5
11
|
<mat-icon [fontSet]="iconFont">{{ icon }}</mat-icon>
|
|
6
12
|
</ng-container>
|
|
7
|
-
<ng-
|
|
13
|
+
<ng-container *ngIf="!isMaterialIcon(icon) && !isRegisteredSvgIcon(icon) && icon !== 'no-icon'">
|
|
8
14
|
<img [src]="icon" [alt]="iconAlt || 'icon'" />
|
|
9
|
-
</ng-
|
|
15
|
+
</ng-container>
|
|
10
16
|
</span>
|
|
11
17
|
</ng-container>
|
|
12
18
|
<span [matTooltip]="tooltip" [matTooltipPosition]="tooltipPosition" [matTooltipDisabled]="!tooltip"
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
line-height: 140%;
|
|
52
52
|
letter-spacing: 0.04px;
|
|
53
53
|
min-height: 28px;
|
|
54
|
-
align-items:
|
|
54
|
+
align-items: center;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
.field-row-padded {
|
|
@@ -73,9 +73,9 @@
|
|
|
73
73
|
object-fit: contain;
|
|
74
74
|
font-size: 20px;
|
|
75
75
|
line-height: 20px;
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
display: inline-flex;
|
|
77
|
+
align-items: center;
|
|
78
|
+
justify-content: center;
|
|
79
79
|
color: #37C1CE;
|
|
80
80
|
}
|
|
81
81
|
|
|
@@ -93,4 +93,4 @@
|
|
|
93
93
|
overflow: hidden !important;
|
|
94
94
|
text-overflow: ellipsis !important;
|
|
95
95
|
white-space: normal !important;
|
|
96
|
-
}
|
|
96
|
+
}
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
<mat-tab-group [selectedIndex]="selectedIndex" [class]="'tabs-' + size" mat-align-tabs="start" headerPosition="above">
|
|
2
|
-
<mat-tab *ngFor="let tab of tabComponents; let i = index"
|
|
2
|
+
<mat-tab *ngFor="let tab of tabComponents; let i = index">
|
|
3
|
+
<ng-template mat-tab-label>
|
|
4
|
+
<span [ngClass]="{ 'tab-label-content': true, 'icon-only-tab': tab.icon && tab.showIcon && !tab.labelText }"
|
|
5
|
+
[matTooltip]="tab.effectiveTooltip"
|
|
6
|
+
[matTooltipPosition]="tab.tooltipPosition"
|
|
7
|
+
[matTooltipDisabled]="!tab.effectiveTooltip">
|
|
8
|
+
<mat-icon *ngIf="tab.icon && tab.showIcon && tab.iconType === 'svg'" [svgIcon]="tab.icon"></mat-icon>
|
|
9
|
+
<mat-icon *ngIf="tab.icon && tab.showIcon && tab.iconType === 'font'">{{ tab.icon }}</mat-icon>
|
|
10
|
+
<ng-container *ngIf="tab.labelText">{{ tab.labelText }}</ng-container>
|
|
11
|
+
</span>
|
|
12
|
+
</ng-template>
|
|
3
13
|
<ng-container [ngTemplateOutlet]="tab.templateRef"></ng-container>
|
|
4
14
|
</mat-tab>
|
|
5
15
|
<!-- Debug info -->
|