@allsorter/ui-components 0.0.398 → 0.0.402
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 +62 -5
- package/fesm2022/allsorter-ui-components.mjs.map +1 -1
- package/lib/newresumeheader/newresumeheader.component.d.ts +29 -1
- package/package.json +1 -1
- package/src/lib/newresumeheader/newresumeheader.component.html +15 -5
- package/src/lib/newresumeheader/newresumeheader.component.scss +93 -41
- package/src/lib/responsive-columns/responsive-columns.component.scss +1 -1
|
@@ -23,6 +23,20 @@ export declare class NewResumeHeaderComponent implements OnInit, OnDestroy, Afte
|
|
|
23
23
|
* 2. Otherwise, fall back to `hiddenSection.headerSectionHidden` for backward compatibility.
|
|
24
24
|
*/
|
|
25
25
|
get isSectionHidden(): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Returns dynamic styles based on field visibility.
|
|
28
|
+
* Used by extra sections to apply template-driven background colors.
|
|
29
|
+
*
|
|
30
|
+
* Only applies custom styles when fieldVisibility is configured.
|
|
31
|
+
* When section is hidden without fieldVisibility: no custom styles (CSS handles opacity)
|
|
32
|
+
* When field is visible: light background (#ECEDF1)
|
|
33
|
+
* When field is hidden: dark background (#4B4F62)
|
|
34
|
+
*
|
|
35
|
+
* @returns Object with CSS properties for ngStyle binding, or empty object for default CSS
|
|
36
|
+
*/
|
|
37
|
+
getDynamicStyles(): {
|
|
38
|
+
[key: string]: string;
|
|
39
|
+
};
|
|
26
40
|
buttonConfig: HeaderButton[];
|
|
27
41
|
isLargeScreen: boolean;
|
|
28
42
|
private resizeListener?;
|
|
@@ -33,6 +47,20 @@ export declare class NewResumeHeaderComponent implements OnInit, OnDestroy, Afte
|
|
|
33
47
|
showPopOutPanel: boolean;
|
|
34
48
|
popOutMessage: string;
|
|
35
49
|
dataTestId?: string;
|
|
50
|
+
/**
|
|
51
|
+
* Field visibility configuration for extra sections.
|
|
52
|
+
* Controls dynamic background color and padding based on template field visibility.
|
|
53
|
+
* When not provided, defaults to visible state (light background).
|
|
54
|
+
*/
|
|
55
|
+
fieldVisibility: {
|
|
56
|
+
isVisible: boolean;
|
|
57
|
+
fieldIdentifier?: string;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Index for indexed field checks (e.g., extra-section with esd1, esd2, etc.)
|
|
61
|
+
* Optional - only needed when using indexed field identifiers
|
|
62
|
+
*/
|
|
63
|
+
index?: number;
|
|
36
64
|
get shouldShowPopOut(): boolean;
|
|
37
65
|
/**
|
|
38
66
|
* Combined state for expand/collapse animation.
|
|
@@ -123,5 +151,5 @@ export declare class NewResumeHeaderComponent implements OnInit, OnDestroy, Afte
|
|
|
123
151
|
ngAfterViewInit(): void;
|
|
124
152
|
ngOnDestroy(): void;
|
|
125
153
|
static ɵfac: i0.ɵɵFactoryDeclaration<NewResumeHeaderComponent, never>;
|
|
126
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NewResumeHeaderComponent, "al-newresumeheader", never, { "title": { "alias": "title"; "required": false; }; "showHeaderCheckbox": { "alias": "showHeaderCheckbox"; "required": false; }; "headerCheckboxChecked": { "alias": "headerCheckboxChecked"; "required": false; }; "configEyeToggle": { "alias": "configEyeToggle"; "required": false; }; "hiddenSection": { "alias": "hiddenSection"; "required": false; }; "buttonConfig": { "alias": "buttonConfig"; "required": false; }; "isLargeScreen": { "alias": "isLargeScreen"; "required": false; }; "popOutButtonLabel": { "alias": "popOutButtonLabel"; "required": false; }; "popOutButtonIcon": { "alias": "popOutButtonIcon"; "required": false; }; "popOutButtonTooltip": { "alias": "popOutButtonTooltip"; "required": false; }; "popOutButtonTooltipPosition": { "alias": "popOutButtonTooltipPosition"; "required": false; }; "showPopOutPanel": { "alias": "showPopOutPanel"; "required": false; }; "popOutMessage": { "alias": "popOutMessage"; "required": false; }; "dataTestId": { "alias": "dataTestId"; "required": false; }; }, { "titleChange": "titleChange"; "sectionToggled": "sectionToggled"; "headerCheckboxChange": "headerCheckboxChange"; "showHideToggleSection": "showHideToggleSection"; "buttonClicked": "buttonClicked"; "popOutButtonClick": "popOutButtonClick"; }, never, ["[header-left]", "[header-center-left]", "[header-center-center]", "[header-center-right]", "[header-right]", "[header-left]", "[header-center-right]", "[header-right]", "*"], true, never>;
|
|
154
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NewResumeHeaderComponent, "al-newresumeheader", never, { "title": { "alias": "title"; "required": false; }; "showHeaderCheckbox": { "alias": "showHeaderCheckbox"; "required": false; }; "headerCheckboxChecked": { "alias": "headerCheckboxChecked"; "required": false; }; "configEyeToggle": { "alias": "configEyeToggle"; "required": false; }; "hiddenSection": { "alias": "hiddenSection"; "required": false; }; "buttonConfig": { "alias": "buttonConfig"; "required": false; }; "isLargeScreen": { "alias": "isLargeScreen"; "required": false; }; "popOutButtonLabel": { "alias": "popOutButtonLabel"; "required": false; }; "popOutButtonIcon": { "alias": "popOutButtonIcon"; "required": false; }; "popOutButtonTooltip": { "alias": "popOutButtonTooltip"; "required": false; }; "popOutButtonTooltipPosition": { "alias": "popOutButtonTooltipPosition"; "required": false; }; "showPopOutPanel": { "alias": "showPopOutPanel"; "required": false; }; "popOutMessage": { "alias": "popOutMessage"; "required": false; }; "dataTestId": { "alias": "dataTestId"; "required": false; }; "fieldVisibility": { "alias": "fieldVisibility"; "required": false; }; "index": { "alias": "index"; "required": false; }; }, { "titleChange": "titleChange"; "sectionToggled": "sectionToggled"; "headerCheckboxChange": "headerCheckboxChange"; "showHideToggleSection": "showHideToggleSection"; "buttonClicked": "buttonClicked"; "popOutButtonClick": "popOutButtonClick"; }, never, ["[header-left]", "[header-center-left]", "[header-center-center]", "[header-center-right]", "[header-right]", "[header-left]", "[header-center-right]", "[header-right]", "*"], true, never>;
|
|
127
155
|
}
|
package/package.json
CHANGED
|
@@ -2,7 +2,14 @@
|
|
|
2
2
|
[padding]="'0'" [width]="'100%'"><cdk-accordion class="example-accordion"><cdk-accordion-item
|
|
3
3
|
#accordionItem="cdkAccordionItem" [expanded]="true" class="example-accordion-item">
|
|
4
4
|
<div class="example-accordion-item-header" #accordionHeader
|
|
5
|
-
[ngClass]="{
|
|
5
|
+
[ngClass]="{
|
|
6
|
+
'header-hidden': isSectionHidden,
|
|
7
|
+
'header-hide-sb': (fieldVisibility?.isVisible === false),
|
|
8
|
+
'header-visible-sb': (fieldVisibility?.isVisible !== false),
|
|
9
|
+
'header-with-bottom-margin': !showPopOutPanel
|
|
10
|
+
}"
|
|
11
|
+
[ngStyle]="getDynamicStyles()"
|
|
12
|
+
[attr.data-test-id]="dataTestId">
|
|
6
13
|
<!-- Normal header layout (shows when section is NOT hidden) --><ng-container
|
|
7
14
|
*ngIf="!isSectionHidden; else hiddenHeaderLayout"><al-responsive-columns [stackAt]="0" [gap]="'12px'"
|
|
8
15
|
[padding]="'8px 12px'">
|
|
@@ -26,6 +33,7 @@
|
|
|
26
33
|
<div left>
|
|
27
34
|
<div class="edit-input-group" [ngClass]="{'input-focused': isInputFocused}">
|
|
28
35
|
<div class="content_width"><span *ngIf="!isTitleEditing" class="title-text"
|
|
36
|
+
[ngClass]="{ 'title-text-white': fieldVisibility?.isVisible === false }"
|
|
29
37
|
(click)="onTitleClick()">
|
|
30
38
|
{{ title || 'Click to edit' }}
|
|
31
39
|
</span><input *ngIf="isTitleEditing" #titleInput type="text" [(ngModel)]="editedTitle"
|
|
@@ -71,13 +79,14 @@
|
|
|
71
79
|
[rightWidth]="'32px'">
|
|
72
80
|
<div left>
|
|
73
81
|
<div class="edit-input-group hide-header-title">
|
|
74
|
-
<div class="content_width"><span class="title-text header-text-turncate"
|
|
82
|
+
<div class="content_width"><span class="title-text header-text-turncate"
|
|
83
|
+
[ngClass]="{ 'title-text-white': fieldVisibility?.isVisible === false }">
|
|
75
84
|
{{ title }}
|
|
76
85
|
</span></div>
|
|
77
86
|
</div>
|
|
78
87
|
</div>
|
|
79
88
|
<div center>
|
|
80
|
-
<div class="hidden-write">Section hidden</div>
|
|
89
|
+
<div class="hidden-write-sb" [ngClass]="{ 'hidden-write-white-sb': fieldVisibility?.isVisible === false }">Section hidden</div>
|
|
81
90
|
</div>
|
|
82
91
|
<div right><ng-content select="[header-center-right]"></ng-content>
|
|
83
92
|
<!-- Eye icon - uses actual isHidden value from config, always visible --><ng-container
|
|
@@ -123,12 +132,13 @@
|
|
|
123
132
|
<div class="mat-checkbox-margin align-center"
|
|
124
133
|
[attr.data-test-id]="isHidden ? 'section-show-eye-div' : 'section-hide-eye-div'"
|
|
125
134
|
style="display: flex; align-items: center; justify-content: center;"><mat-icon
|
|
126
|
-
class="delete-multiple mat-fab.mat-accent eye-icon" [svgIcon]="isHidden ? 'visibility' : 'visibility_off'"
|
|
135
|
+
class="delete-multiple mat-fab.mat-accent eye-icon" [svgIcon]="isHidden ? (fieldVisibility?.isVisible === false ? 'visibility_white' : 'visibility') : (fieldVisibility?.isVisible === false ? 'visibility_off_white' : 'visibility_off')"
|
|
127
136
|
[matTooltip]="configEyeToggle?.tooltips?.[isHidden ? 'collapse' : 'expand'] || (isHidden ? 'Show Section' : 'Hide Section')"
|
|
128
137
|
[matTooltipPosition]="configEyeToggle?.tooltips?.position || 'above'"
|
|
129
138
|
[attr.aria-label]="configEyeToggle?.ariaLabels?.[isHidden ? 'collapsed' : 'expanded'] || (isHidden ? 'Show section' : 'Hide section')"
|
|
130
139
|
(click)="onEyeIconClick(isHidden, accordionItem, configEyeToggle)"
|
|
131
140
|
[attr.data-test-id]="isHidden ? 'section-show-eye-icon' : 'section-hide-eye-icon'"
|
|
132
|
-
style="
|
|
141
|
+
[style.color]="fieldVisibility?.isVisible === false ? '#fff' : '#717793'"
|
|
142
|
+
style="cursor: pointer; display: inline-block; width: 24px; height: 24px; font-size: 24px;"
|
|
133
143
|
[style.opacity]="1" [style.visibility]="'visible'"></mat-icon></div>
|
|
134
144
|
</ng-template>
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
.example-accordion-item-header al-responsive-columns div[center] al-responsive-columns div[left] {
|
|
63
63
|
flex-shrink: 1;
|
|
64
64
|
min-width: 0;
|
|
65
|
-
overflow:
|
|
65
|
+
overflow: visible;
|
|
66
66
|
max-width: 100%;
|
|
67
67
|
transition: flex 0.2s ease, width 0.2s ease;
|
|
68
68
|
}
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
|
|
78
78
|
.example-accordion-item-header al-responsive-columns div[center] al-responsive-columns ::ng-deep .column.left {
|
|
79
79
|
min-width: 0;
|
|
80
|
-
overflow:
|
|
80
|
+
overflow: visible;
|
|
81
81
|
max-width: 100%;
|
|
82
82
|
transition: flex 0.2s ease;
|
|
83
83
|
}
|
|
@@ -114,9 +114,9 @@
|
|
|
114
114
|
|
|
115
115
|
/* Animation wrapper - ensures smooth height transitions */
|
|
116
116
|
// .example-accordion-item-body-wrapper {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
117
|
+
// width: 100%;
|
|
118
|
+
// overflow: hidden;
|
|
119
|
+
// }
|
|
120
120
|
|
|
121
121
|
.toggle-button {
|
|
122
122
|
border: none;
|
|
@@ -213,19 +213,44 @@
|
|
|
213
213
|
}
|
|
214
214
|
|
|
215
215
|
/* Edit input group hover effect for title */
|
|
216
|
+
// .edit-input-group {
|
|
217
|
+
// display: flex;
|
|
218
|
+
// align-items: center;
|
|
219
|
+
// gap: 4px;
|
|
220
|
+
// min-width: 0;
|
|
221
|
+
// border-radius: 4px;
|
|
222
|
+
// transition: background-color 0.2s ease, width 0.2s ease;
|
|
223
|
+
// padding: 0 8px;
|
|
224
|
+
// flex-shrink: 1;
|
|
225
|
+
// width: 100%;
|
|
226
|
+
// max-width: 100%;
|
|
227
|
+
// overflow: hidden;
|
|
228
|
+
// flex: 1 1 0;
|
|
229
|
+
// }
|
|
230
|
+
|
|
231
|
+
// /* Expand edit-input-group to 100% width when input is focused */
|
|
232
|
+
// .edit-input-group.input-focused {
|
|
233
|
+
// width: 100%;
|
|
234
|
+
// flex: 1 1 100%;
|
|
235
|
+
// min-width: 0;
|
|
236
|
+
// }
|
|
237
|
+
|
|
238
|
+
// .edit-input-group:hover {
|
|
239
|
+
// background-color: #D1D3DB;
|
|
240
|
+
// }
|
|
216
241
|
.edit-input-group {
|
|
217
242
|
display: flex;
|
|
218
243
|
align-items: center;
|
|
219
244
|
gap: 4px;
|
|
220
245
|
min-width: 0;
|
|
221
246
|
border-radius: 4px;
|
|
222
|
-
transition:
|
|
247
|
+
transition: width 0.2s ease, background-color 0.2s ease;
|
|
223
248
|
padding: 0 8px;
|
|
224
|
-
|
|
249
|
+
margin: 0 -8px;
|
|
225
250
|
width: 100%;
|
|
226
|
-
|
|
227
|
-
overflow: hidden;
|
|
251
|
+
overflow: visible;
|
|
228
252
|
flex: 1 1 0;
|
|
253
|
+
position: relative;
|
|
229
254
|
}
|
|
230
255
|
|
|
231
256
|
/* Expand edit-input-group to 100% width when input is focused */
|
|
@@ -235,6 +260,7 @@
|
|
|
235
260
|
min-width: 0;
|
|
236
261
|
}
|
|
237
262
|
|
|
263
|
+
/* Hover effect - direct background */
|
|
238
264
|
.edit-input-group:hover {
|
|
239
265
|
background-color: #D1D3DB;
|
|
240
266
|
}
|
|
@@ -448,6 +474,11 @@
|
|
|
448
474
|
cursor: pointer;
|
|
449
475
|
}
|
|
450
476
|
|
|
477
|
+
/* White text for dark background */
|
|
478
|
+
.title-text-white {
|
|
479
|
+
color: #fff;
|
|
480
|
+
}
|
|
481
|
+
|
|
451
482
|
.title-input {
|
|
452
483
|
font-size: 16px;
|
|
453
484
|
font-weight: 400;
|
|
@@ -562,18 +593,39 @@
|
|
|
562
593
|
flex-shrink: 0;
|
|
563
594
|
}
|
|
564
595
|
|
|
565
|
-
.hidden-write {
|
|
596
|
+
.hidden-write-sb {
|
|
566
597
|
color: #a2a6b8;
|
|
567
598
|
font-weight: 400;
|
|
568
599
|
font-family: 'Roboto', sans-serif;
|
|
569
600
|
white-space: nowrap;
|
|
570
601
|
}
|
|
571
602
|
|
|
603
|
+
/* White text for dark background */
|
|
604
|
+
.hidden-write-white-sb {
|
|
605
|
+
color: #fff;
|
|
606
|
+
}
|
|
607
|
+
|
|
572
608
|
/* Apply reduced opacity to entire header when hidden */
|
|
573
609
|
.example-accordion-item-header.header-hidden {
|
|
574
610
|
opacity: 0.7;
|
|
575
611
|
}
|
|
576
612
|
|
|
613
|
+
/**
|
|
614
|
+
* Extra Section Header Styles
|
|
615
|
+
* These classes are used for extra sections to support dynamic background colors
|
|
616
|
+
* based on template field visibility
|
|
617
|
+
*/
|
|
618
|
+
|
|
619
|
+
/* Standard header style - visible section with light background */
|
|
620
|
+
.example-accordion-item-header.header-visible-sb {
|
|
621
|
+
transition: background-color 0.2s ease;
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
/* Collapsed header style - hidden section or field with dark background */
|
|
625
|
+
.example-accordion-item-header.header-hide-sb {
|
|
626
|
+
background-color: #4B4F62;
|
|
627
|
+
}
|
|
628
|
+
|
|
577
629
|
.mat-checkbox-margin {
|
|
578
630
|
margin-left: 8px;
|
|
579
631
|
}
|
|
@@ -584,34 +636,34 @@
|
|
|
584
636
|
|
|
585
637
|
/* Smooth hover effect on eye icon container - circular background without jumping */
|
|
586
638
|
// .mat-checkbox-margin {
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
639
|
+
// position: relative;
|
|
640
|
+
// display: inline-flex;
|
|
641
|
+
// align-items: center;
|
|
642
|
+
// justify-content: center;
|
|
643
|
+
|
|
644
|
+
// &::before {
|
|
645
|
+
// content: '';
|
|
646
|
+
// position: absolute;
|
|
647
|
+
// top: 50%;
|
|
648
|
+
// left: 50%;
|
|
649
|
+
// transform: translate(-50%, -50%);
|
|
650
|
+
// width: 28px;
|
|
651
|
+
// height: 28px;
|
|
652
|
+
// border-radius: 4px;
|
|
653
|
+
// background-color: transparent;
|
|
654
|
+
// transition: background-color 0.2s ease;
|
|
655
|
+
// z-index: 0;
|
|
656
|
+
// pointer-events: none;
|
|
657
|
+
// }
|
|
658
|
+
|
|
659
|
+
// &:hover::before {
|
|
660
|
+
// background-color: rgba(211, 211, 211, 0.9) !important;
|
|
661
|
+
|
|
662
|
+
// }
|
|
663
|
+
|
|
664
|
+
// /* Ensure icon stays above the background */
|
|
665
|
+
// mat-icon {
|
|
666
|
+
// position: relative;
|
|
667
|
+
// z-index: 1;
|
|
668
|
+
// }
|
|
669
|
+
// }
|