@allsorter/ui-components 0.0.372 → 0.0.376

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.
@@ -5,9 +5,11 @@
5
5
  .resume-entries-container {
6
6
  display: flex;
7
7
  flex-direction: column;
8
-
9
8
  width: 100%;
10
9
  background-color: white;
10
+ /* Enable container queries for responsive layout based on container size */
11
+ container-type: inline-size;
12
+ container-name: resume-entries;
11
13
  }
12
14
 
13
15
  .resume-entry {
@@ -101,7 +103,6 @@
101
103
  justify-content: space-between;
102
104
  align-items: flex-start;
103
105
  gap: 24px;
104
-
105
106
  }
106
107
 
107
108
  .header-left {
@@ -119,6 +120,144 @@
119
120
  max-width: 30%;
120
121
  }
121
122
 
123
+ /* Container query: Apply text ellipsis when container width is very small (<= 400px) */
124
+ @container resume-entries (max-width: 400px) {
125
+
126
+ /* Company Name and Job Title */
127
+ .mobile-order-2,
128
+ .mobile-order-3 {
129
+ overflow: hidden;
130
+ text-overflow: ellipsis;
131
+ white-space: nowrap;
132
+ min-width: 0;
133
+
134
+ ::ng-deep lib-field-placeholder {
135
+ overflow: hidden;
136
+ text-overflow: ellipsis;
137
+ white-space: nowrap;
138
+ display: block;
139
+ width: 100%;
140
+
141
+ .value-text {
142
+ overflow: hidden;
143
+ text-overflow: ellipsis;
144
+ white-space: nowrap;
145
+ display: block;
146
+ max-width: 100%;
147
+ }
148
+ }
149
+ }
150
+
151
+ /* Date Range */
152
+ .mobile-order-1 {
153
+ overflow: hidden;
154
+ text-overflow: ellipsis;
155
+ white-space: nowrap;
156
+ min-width: 0;
157
+
158
+ &.date-range {
159
+ ::ng-deep lib-field-placeholder {
160
+ overflow: hidden;
161
+ text-overflow: ellipsis;
162
+ white-space: nowrap;
163
+ display: inline-block;
164
+ max-width: 100%;
165
+
166
+ .value-text {
167
+ overflow: hidden;
168
+ text-overflow: ellipsis;
169
+ white-space: nowrap;
170
+ display: inline-block;
171
+ max-width: 100%;
172
+ }
173
+ }
174
+ }
175
+ }
176
+
177
+ /* Location Row */
178
+ .mobile-order-4 {
179
+ overflow: hidden;
180
+ text-overflow: ellipsis;
181
+ white-space: nowrap;
182
+ min-width: 0;
183
+
184
+ &.location-row {
185
+ ::ng-deep lib-field-placeholder {
186
+ overflow: hidden;
187
+ text-overflow: ellipsis;
188
+ white-space: nowrap;
189
+ display: inline-block;
190
+ max-width: 100%;
191
+
192
+ .value-text {
193
+ overflow: hidden;
194
+ text-overflow: ellipsis;
195
+ white-space: nowrap;
196
+ display: inline-block;
197
+ max-width: 100%;
198
+ }
199
+ }
200
+ }
201
+ }
202
+ }
203
+
204
+ /* Container query: Switch to column when container width is small (<= 600px) */
205
+ @container resume-entries (max-width: 500px) {
206
+ .entry-header {
207
+ flex-direction: column;
208
+ gap: 12px;
209
+ display: flex;
210
+ }
211
+
212
+ // Use display: contents to make children of header-left and header-right
213
+ // participate directly in entry-header flex container for reordering
214
+ .header-left,
215
+ .header-right {
216
+ display: contents;
217
+ }
218
+
219
+ // Reorder elements for small container: Date (1) -> Company (2) -> Job Title (3) -> Location (4)
220
+ .entry-header {
221
+
222
+ // Date comes first
223
+ .mobile-order-1 {
224
+ order: 1;
225
+ }
226
+
227
+ // Company comes second
228
+ .mobile-order-2 {
229
+ order: 2;
230
+ }
231
+
232
+ // Job title comes third
233
+ .mobile-order-3 {
234
+ order: 3;
235
+ }
236
+
237
+ // Location comes fourth
238
+ .mobile-order-4 {
239
+ order: 4;
240
+ }
241
+ }
242
+
243
+ // Ensure the ordered elements maintain their styling and layout
244
+ .mobile-order-1,
245
+ .mobile-order-2,
246
+ .mobile-order-3,
247
+ .mobile-order-4 {
248
+ width: 100%;
249
+ }
250
+
251
+ .date-range {
252
+ align-items: flex-start;
253
+ }
254
+
255
+ .location-row {
256
+ align-items: flex-start;
257
+ }
258
+ }
259
+
260
+ /* Media query: Also switch to column when screen width is small (<= 767px) */
122
261
  @media (max-width: 767px) {
123
262
  .entry-header {
124
263
  flex-direction: column;
@@ -1,187 +1,86 @@
1
- <div style="width: 100%; height: 100vh; overflow: hidden;">
2
- <as-split class="split_panels" direction="horizontal" style="overflow: visible; height: 100vh;" (dragEnd)="onDragEnd()" data-test-id="main-resume-split-panels">
3
- <as-split-area [size]="50" data-test-id="main-resume-left-panel">
4
-
5
- <div class="w-100 resume-data left-section" data-test-id="main-resume-left-section" style="width: 100%; padding: 16px;">
6
- <div style="margin-top: 16px; padding: 16px; background: #f5f5f5; border-radius: 8px;">
7
- <h3 style="margin: 0 0 8px 0;">Dummy Content</h3>
8
- <p style="margin: 0; color: #666;">This is placeholder content for the left panel. In a real application, this would contain resume parsing data or other relevant information.</p>
1
+ <al-general-container cdkScrollable [backgroundColor]="'#FFFFFF'" [padding]="'16px'" [borderRadius]="'8px'"
2
+ [borderPosition]="'top'" [borderColor]="'#87DAE2'" [boxShadow]="true" [height]="'calc(100vh)'" [overflowX]="'hidden'"
3
+ [overflowY]="'auto'">
4
+ <al-tabs [selectedIndex]="0" [size]="'large'">
5
+ <al-tab labelText="Resume">
6
+ <al-newresumeheader [title]="'Experiences'" [showHeaderCheckbox]="true" [headerCheckboxChecked]="false"
7
+ [isLargeScreen]="true" [showPopOutPanel]="false" [hiddenSection]="{ headerSectionHidden: false }"
8
+ [configEyeToggle]="configEyeToggle" [buttonConfig]="buttonConfig">
9
+ <al-responsive-columns [stackAt]="0" [gap]="'8px'" [padding]="'8px 12px'">
10
+ <div left>
11
+ <toolbar-left [variant]="'default'" [content]="'Section Content'" [isExtractionAnalysisActive]="false"
12
+ [showSearch]="true" (editEvent)="onEditEvent($event)">
13
+ </toolbar-left>
9
14
  </div>
10
- </div>
11
- </as-split-area>
12
- <as-split-area [size]="50">
13
- <al-general-container
14
- cdkScrollable
15
- [backgroundColor]="'#FFFFFF'"
16
- [padding]="'16px'"
17
- [borderRadius]="'8px'"
18
- [borderPosition]="'top'"
19
- [borderColor]="'#87DAE2'"
20
- [boxShadow]="true"
21
- [height]="'calc(100vh)'"
22
- [overflowX]="'hidden'"
23
- [overflowY]="'auto'"
24
- >
25
- <al-tabs [selectedIndex]="0" [size]="'large'">
26
- <al-tab labelText="Resume">
27
- <al-newresumeheader
28
- [title]="'Experiences'"
29
- [showHeaderCheckbox]="true"
30
- [headerCheckboxChecked]="false"
31
- [isLargeScreen]="true"
32
- [showPopOutPanel]="false"
33
- [hiddenSection]="{ headerSectionHidden: false }"
34
- [configEyeToggle]="configEyeToggle"
35
- [buttonConfig]="buttonConfig">
36
- <al-responsive-columns [stackAt]="0" [gap]="'8px'" [padding]="'8px 12px'">
37
- <div left>
38
- <app-toolbar-left
39
- [variant]="'default'"
40
- [content]="'Section Content'"
41
- [isExtractionAnalysisActive]="false"
42
- [showSearch]="true"
43
- (editEvent)="onEditEvent($event)">
44
- </app-toolbar-left>
45
- </div>
46
- <div center>
47
- <al-resume-entries
48
- [entries]="entries"
49
- [showHeader]="true"
50
- [showDescriptionLabel]="true"
51
- [showCompany]="true"
52
- [showJobTitle]="true"
53
- [showDates]="true"
54
- [showLocation]="true"
55
- [showTimeline]="false"
56
- [showReapplyButton]="true"
57
- [showLoader]="false"
58
- (reapplyClick)="onReapplyClick($event)"
59
- (undoClick)="onUndoClick($event)">
60
- </al-resume-entries>
61
- </div>
62
- <div right>
63
- <app-toolbar-right
64
- [checked]="false"
65
- [alwaysShowIcons]="false"
66
- [overrideConfig]="toolbarRightConfig"
67
- [currentObj]="{ hidden: false, subrole: false }"
68
- (checkboxChange)="onCheckboxChange($event)"
69
- (visibilityToggle)="onVisibilityToggle($event)">
70
- </app-toolbar-right>
71
- </div>
72
- </al-responsive-columns>
73
- </al-newresumeheader>
74
- <al-form
75
- *ngFor="let entry of entries; let i = index"
76
- [showLeftButton]="true"
77
- [showSaveButton]="true"
78
- [showDeleteButton]="true"
79
- [testId]="getTestId(i)"
80
- (leftButtonClick)="onLeftButtonClick($event)"
81
- (saveButtonClick)="onSaveButtonClick($event)"
82
- (deleteButtonClick)="onDeleteButtonClick($event)"
83
- [scrollContainer]="'.general-container'">
84
- <div leftButtonContent>
85
- <al-ai-apply-bar
86
- [placeholder]="'Apply AI'"
87
- [applyLabel]="'Apply'"
88
- [showHelperText]="true"
89
- [showClose]="false"
90
- [showChevronButton]="false"
91
- [applyDisabled]="false"
92
- [value]="'Apply AI'"
93
- [options]="['Typing', 'Gathering', 'Processing']"
94
- (valueChange)="onAIApplyValueChange($event)"
95
- (applyClick)="onAIApplyClick()"
96
- (closeClick)="onAIApplyClose()">
97
- </al-ai-apply-bar>
15
+ <div center>
16
+ <al-resume-entries [entries]="entries" [showHeader]="true" [showDescriptionLabel]="true"
17
+ [showCompany]="true" [showJobTitle]="true" [showDates]="true" [showLocation]="true" [showTimeline]="false"
18
+ [showReapplyButton]="true" [showLoader]="false" (reapplyClick)="onReapplyClick($event)"
19
+ (undoClick)="onUndoClick($event)">
20
+ </al-resume-entries>
21
+ </div>
22
+ <div right>
23
+ <toolbar-right [checked]="false" [alwaysShowIcons]="false" [overrideConfig]="toolbarRightConfig"
24
+ [currentObj]="{ hidden: false, subrole: false }" (checkboxChange)="onCheckboxChange($event)"
25
+ (visibilityToggle)="onVisibilityToggle($event)">
26
+ </toolbar-right>
98
27
  </div>
99
- <app-flex-grid [type]="'row'" [mobRow]="1" [tabRow]="2" [desktop]="4" [gap]="'16px'">
100
- <al-input
101
- [label]="'Date Type'"
102
- [placeholder]="'Type here...'"
103
- [value]="'Month/Year'"
104
- [type]="'text'"
105
- [disabled]="false"
106
- [helperText]="false"
107
- [hasDropDown]="true"
108
- [options]="['Month/Year','Year']"
109
- [size]="'base'"
110
- [types]="'primary'"
111
- [dataTestId]="'test-input'"
112
- ></al-input>
113
- <al-input
114
- [label]="'Start Date'"
115
- [placeholder]="'Type here...'"
116
- [value]="entry.startDate"
117
- [type]="'date'"
118
- [disabled]="false"
119
- [helperText]="false"
120
- [size]="'base'"
121
- [types]="'primary'"
122
- [dataTestId]="'test-input'"
123
- (monthSelected)="onMonthSelected($event)"
124
- (yearSelected)="onYearSelected($event)"
125
- ></al-input>
126
- <al-input
127
- [label]="'End Date'"
128
- [placeholder]="'Type here...'"
129
- [value]="entry.endDate || ''"
130
- [type]="'date'"
131
- [disabled]="false"
132
- [helperText]="false"
133
- [size]="'base'"
134
- [types]="'primary'"
135
- [dataTestId]="'test-input'"
136
- (monthSelected)="onMonthSelected($event)"
137
- (yearSelected)="onYearSelected($event)"
138
- ></al-input>
139
- <al-checkbox
140
- labelPosition="before"
141
- labelText="Current Study"
142
- [checked]="entry.isPresent"
143
- (change)="onFormCheckboxChange($event)"
144
- ></al-checkbox>
145
- </app-flex-grid>
146
- <app-flex-grid [type]="'column'" [rows]="1" [mobRow]="1" [tabRow]="1" [desktop]="1" [gap]="'16px'">
147
- <al-input [label]="'Company Name'" [placeholder]="'Company Name'" [value]="entry.companyName" [type]="'text'" [size]="'base'" [types]="'primary'"></al-input>
148
- <al-input [label]="'Job Title'" [placeholder]="'Job Title'" [value]="entry.jobTitle" [type]="'text'" [size]="'base'" [types]="'primary'"></al-input>
149
- </app-flex-grid>
150
- <app-flex-grid [type]="'column'" [rows]="1" [mobRow]="1" [tabRow]="1" [desktop]="3" [gap]="'16px'">
151
- <al-input [label]="'City'" [placeholder]="'City'" [value]="entry.city" [type]="'text'" [size]="'base'" [types]="'primary'"></al-input>
152
- <al-input [label]="'Region'" [placeholder]="'Region'" [value]="entry.region" [type]="'text'" [size]="'base'" [types]="'primary'"></al-input>
153
- <al-input [label]="'Country'" [placeholder]="'Country'" [value]="entry.country" [type]="'text'" [size]="'base'" [types]="'primary'"></al-input>
154
- </app-flex-grid>
155
- <app-flex-grid [type]="'column'" [gap]="16" [countMobile]="1" [countTablet]="1" [countDesktop]="1">
156
- <app-custom-editor
157
- [isVisible]="true"
158
- [showTable]="true"
159
- [historyControls]="true"
160
- [autobullet]="true"
161
- [showLabels]="true"
162
- leftLabelText="Document Title"
163
- rightLabelText="Page 1 of 5"
164
- [initialValue]="getDescriptionHtml(entry.descriptions)"
165
- editScreenSection="GENERAL"
166
- actionType="edit"
167
- [dataTestId]="'custom-editor-testid'"
168
- (contentChangeFromQuill)="onContentChange($event)"
169
- (ApplyAIinQuill)="onAIApply($event)"
170
- ></app-custom-editor>
171
- </app-flex-grid>
172
- </al-form>
173
- </al-tab>
174
- <al-tab labelText="CoverSheet">
175
- <h3>About Us</h3>
176
- <p>Learn more about our company and mission.</p>
177
- </al-tab>
178
- <al-tab labelText="Ai Tools">
179
- <h3>Contact Information</h3>
180
- <p>Get in touch with us through various channels.</p>
181
- </al-tab>
182
- </al-tabs>
183
- </al-general-container>
184
- </as-split-area>
185
- </as-split>
186
- </div>
187
-
28
+ </al-responsive-columns>
29
+ </al-newresumeheader>
30
+ <al-form *ngFor="let entry of entries; let i = index" [showLeftButton]="true" [showSaveButton]="true"
31
+ [showDeleteButton]="true" [testId]="getTestId(i)" (leftButtonClick)="onLeftButtonClick($event)"
32
+ (saveButtonClick)="onSaveButtonClick($event)" (deleteButtonClick)="onDeleteButtonClick($event)"
33
+ [scrollContainer]="'.general-container'">
34
+ <div leftButtonContent>
35
+ <al-ai-apply-bar [placeholder]="'Apply AI'" [applyLabel]="'Apply'" [showHelperText]="true" [showClose]="false"
36
+ [showChevronButton]="false" [applyDisabled]="false" [value]="'Apply AI'"
37
+ [options]="['Typing', 'Gathering', 'Processing']" (valueChange)="onAIApplyValueChange($event)"
38
+ (applyClick)="onAIApplyClick()" (closeClick)="onAIApplyClose()">
39
+ </al-ai-apply-bar>
40
+ </div>
41
+ <app-flex-grid [type]="'row'" [mobRow]="1" [tabRow]="2" [desktop]="4" [gap]="'16px'">
42
+ <al-input [label]="'Date Type'" [placeholder]="'Type here...'" [value]="'Month/Year'" [type]="'text'"
43
+ [disabled]="false" [helperText]="false" [hasDropDown]="true" [options]="['Month/Year','Year']"
44
+ [size]="'base'" [types]="'primary'" [dataTestId]="'test-input'"></al-input>
45
+ <al-input [label]="'Start Date'" [placeholder]="'Type here...'" [value]="entry.startDate" [type]="'date'"
46
+ [disabled]="false" [helperText]="false" [size]="'base'" [types]="'primary'" [dataTestId]="'test-input'"
47
+ (monthSelected)="onMonthSelected($event)" (yearSelected)="onYearSelected($event)"></al-input>
48
+ <al-input [label]="'End Date'" [placeholder]="'Type here...'" [value]="entry.endDate || ''" [type]="'date'"
49
+ [disabled]="false" [helperText]="false" [size]="'base'" [types]="'primary'" [dataTestId]="'test-input'"
50
+ (monthSelected)="onMonthSelected($event)" (yearSelected)="onYearSelected($event)"></al-input>
51
+ <al-checkbox labelPosition="before" labelText="Current Study" [checked]="entry.isPresent"
52
+ (change)="onFormCheckboxChange($event)"></al-checkbox>
53
+ </app-flex-grid>
54
+ <app-flex-grid [type]="'column'" [rows]="1" [mobRow]="1" [tabRow]="1" [desktop]="1" [gap]="'16px'">
55
+ <al-input [label]="'Company Name'" [placeholder]="'Company Name'" [value]="entry.companyName" [type]="'text'"
56
+ [size]="'base'" [types]="'primary'"></al-input>
57
+ <al-input [label]="'Job Title'" [placeholder]="'Job Title'" [value]="entry.jobTitle" [type]="'text'"
58
+ [size]="'base'" [types]="'primary'"></al-input>
59
+ </app-flex-grid>
60
+ <app-flex-grid [type]="'column'" [rows]="1" [mobRow]="1" [tabRow]="1" [desktop]="3" [gap]="'16px'">
61
+ <al-input [label]="'City'" [placeholder]="'City'" [value]="entry.city" [type]="'text'" [size]="'base'"
62
+ [types]="'primary'"></al-input>
63
+ <al-input [label]="'Region'" [placeholder]="'Region'" [value]="entry.region" [type]="'text'" [size]="'base'"
64
+ [types]="'primary'"></al-input>
65
+ <al-input [label]="'Country'" [placeholder]="'Country'" [value]="entry.country" [type]="'text'"
66
+ [size]="'base'" [types]="'primary'"></al-input>
67
+ </app-flex-grid>
68
+ <app-flex-grid [type]="'column'" [gap]="16" [countMobile]="1" [countTablet]="1" [countDesktop]="1">
69
+ <app-custom-editor [isVisible]="true" [showTable]="true" [historyControls]="true" [autobullet]="true"
70
+ [showLabels]="true" leftLabelText="Document Title" rightLabelText="Page 1 of 5"
71
+ [initialValue]="getDescriptionHtml(entry.descriptions)" editScreenSection="GENERAL" actionType="edit"
72
+ [dataTestId]="'custom-editor-testid'" (contentChangeFromQuill)="onContentChange($event)"
73
+ (ApplyAIinQuill)="onAIApply($event)"></app-custom-editor>
74
+ </app-flex-grid>
75
+ </al-form>
76
+ </al-tab>
77
+ <al-tab labelText="CoverSheet">
78
+ <h3>About Us</h3>
79
+ <p>Learn more about our company and mission.</p>
80
+ </al-tab>
81
+ <al-tab labelText="Ai Tools">
82
+ <h3>Contact Information</h3>
83
+ <p>Get in touch with us through various channels.</p>
84
+ </al-tab>
85
+ </al-tabs>
86
+ </al-general-container>
@@ -2,16 +2,34 @@
2
2
  width: calc(100%) !important;
3
3
  height: 100% !important;
4
4
  }
5
- .as-split-gutter {
6
- cursor: col-resize !important;
7
- }
8
- .as-split-gutter > .as-split-gutter-icon {
9
- flex-basis: 32px !important;
10
- }
5
+
11
6
  as-split {
12
7
  display: flex !important;
13
8
  height: 100% !important;
14
9
  }
10
+
15
11
  as-split-area {
16
12
  overflow: hidden !important;
17
13
  }
14
+
15
+ .as-split-gutter {
16
+ cursor: col-resize !important;
17
+ background-color: var(--as-gutter-background-color, #eeeeee) !important;
18
+ flex-basis: 8px !important;
19
+ min-width: 8px !important;
20
+ max-width: 8px !important;
21
+ position: relative !important;
22
+ z-index: 10 !important;
23
+
24
+ &:hover {
25
+ background-color: #d0d0d0 !important;
26
+ }
27
+
28
+ &.as-dragged {
29
+ background-color: #b0b0b0 !important;
30
+ }
31
+ }
32
+
33
+ .as-split-gutter > .as-split-gutter-icon {
34
+ display: none !important;
35
+ }
@@ -6,7 +6,7 @@
6
6
  <div class="icon-wrapper" *ngIf="requiredIcon.sr.display"><button type="button"
7
7
  class="toolbar-icon toolbar-icon--subrole" [attr.aria-label]="requiredIcon.sr.title"
8
8
  [attr.title]="requiredIcon.sr.title" (click)="setSubrole()"><mat-icon
9
- [svgIcon]="currentObj['subrole'] ? 'subrole_active' : 'subrole'" class="subrole-icon"></mat-icon></button>
9
+ [svgIcon]="currentObj['subrole'] ? 'subrole_active' : 'subrole-icon-grey'" class="subrole-icon"></mat-icon></button>
10
10
  </div>
11
11
  <div class="icon-wrapper"><button *ngIf="requiredIcon.eye.display" type="button"
12
12
  class="toolbar-icon toolbar-icon--eye eye-icon" [attr.aria-label]="eyeLabel" [attr.title]="eyeTitle"