@allsorter/ui-components 0.0.410 → 0.0.412
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 +9 -3
- package/fesm2022/allsorter-ui-components.mjs.map +1 -1
- package/lib/responsive-layout/responsive-layout.component.d.ts +1 -0
- package/package.json +1 -1
- package/src/lib/editable-form-wrapper/editable-form-wrapper.component.scss +226 -20
- package/src/lib/test-styling/test-styling.component.html +159 -1
|
@@ -33,6 +33,7 @@ export declare class ResponsiveLayoutComponent {
|
|
|
33
33
|
/** Minimum columns (e.g. 2) so this row never collapses to 1 column on small viewports. Use for "Date Type + Current Role/Study" row in certification/experience. */
|
|
34
34
|
minColumns?: number;
|
|
35
35
|
get hasMinCols2(): boolean;
|
|
36
|
+
get hasMinCols3(): boolean;
|
|
36
37
|
get cssGap(): string;
|
|
37
38
|
get cssCountMobile(): number;
|
|
38
39
|
get cssCountMobileSm(): number;
|
package/package.json
CHANGED
|
@@ -90,6 +90,20 @@
|
|
|
90
90
|
box-sizing: border-box;
|
|
91
91
|
z-index: 0;
|
|
92
92
|
|
|
93
|
+
/* Ensure content doesn't overflow the form */
|
|
94
|
+
overflow: hidden;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/* Ensure all form inputs don't overflow their containers */
|
|
98
|
+
:host ::ng-deep .al-form-wrapper>.inner > * {
|
|
99
|
+
max-width: 100%;
|
|
100
|
+
box-sizing: border-box;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/* Ensure app-flex-grid doesn't overflow */
|
|
104
|
+
:host ::ng-deep .al-form-wrapper>.inner app-flex-grid {
|
|
105
|
+
max-width: 100%;
|
|
106
|
+
box-sizing: border-box;
|
|
93
107
|
}
|
|
94
108
|
|
|
95
109
|
/* Trim accidental extra spacing from first/last child margins inside content */
|
|
@@ -267,10 +281,11 @@ select.al-form__control {
|
|
|
267
281
|
justify-content: center;
|
|
268
282
|
}
|
|
269
283
|
|
|
270
|
-
/* AL Form only: force 2 columns for the first row
|
|
284
|
+
/* AL Form only: force 2 columns for the first row when viewport or form is narrow.
|
|
271
285
|
Without this, app-flex-grid would collapse to 1 column; we keep 2 cols for this row inside al-form.
|
|
272
286
|
|
|
273
|
-
|
|
287
|
+
WITH Date Type (Date Type, Current Study, ...): 2-1 layout (Date Type|Current Study in row 1, End Date in row 2)
|
|
288
|
+
WITHOUT Date Type (Current Study, Start Date, End Date): 1-1-1 layout (each field on its own row) */
|
|
274
289
|
@media (max-width: 767.98px) {
|
|
275
290
|
:host ::ng-deep app-flex-grid.row.min-cols-2,
|
|
276
291
|
:host ::ng-deep app-flex-grid.col.min-cols-2 {
|
|
@@ -278,8 +293,24 @@ select.al-form__control {
|
|
|
278
293
|
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
|
|
279
294
|
}
|
|
280
295
|
|
|
281
|
-
/*
|
|
282
|
-
:host ::ng-deep app-flex-grid.row.min-cols-2
|
|
296
|
+
/* Ensure checkbox and input don't span full width - fit in their grid cells */
|
|
297
|
+
:host ::ng-deep app-flex-grid.row.min-cols-2 al-checkbox,
|
|
298
|
+
:host ::ng-deep app-flex-grid.row.min-cols-2 al-input,
|
|
299
|
+
:host ::ng-deep app-flex-grid.col.min-cols-2 al-checkbox,
|
|
300
|
+
:host ::ng-deep app-flex-grid.col.min-cols-2 al-input {
|
|
301
|
+
grid-column: auto !important;
|
|
302
|
+
width: 100% !important;
|
|
303
|
+
max-width: 100% !important;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/* WITH Date Type (Date Type, Current Study, End Date): ensure inputs don't span full width */
|
|
307
|
+
:host ::ng-deep app-flex-grid.row.min-cols-2 > *:first-child:nth-last-child(3):is(al-input) {
|
|
308
|
+
grid-column: auto !important;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
/* WITHOUT Date Type (first child is checkbox): force 1 column so Current Study, Start Date, End Date each on own row */
|
|
312
|
+
:host ::ng-deep app-flex-grid.row.min-cols-2 > *:first-child:nth-last-child(3):is(al-checkbox),
|
|
313
|
+
:host ::ng-deep app-flex-grid.row.min-cols-2 > *:first-child:nth-last-child(3):is(al-checkbox) ~ * {
|
|
283
314
|
grid-column: 1 / -1 !important;
|
|
284
315
|
}
|
|
285
316
|
}
|
|
@@ -291,28 +322,203 @@ select.al-form__control {
|
|
|
291
322
|
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
|
|
292
323
|
}
|
|
293
324
|
|
|
294
|
-
/*
|
|
295
|
-
:host ::ng-deep app-flex-grid.row.min-cols-2
|
|
325
|
+
/* Ensure checkbox and input don't span full width - fit in their grid cells */
|
|
326
|
+
:host ::ng-deep app-flex-grid.row.min-cols-2 al-checkbox,
|
|
327
|
+
:host ::ng-deep app-flex-grid.row.min-cols-2 al-input,
|
|
328
|
+
:host ::ng-deep app-flex-grid.col.min-cols-2 al-checkbox,
|
|
329
|
+
:host ::ng-deep app-flex-grid.col.min-cols-2 al-input {
|
|
330
|
+
grid-column: auto !important;
|
|
331
|
+
width: 100% !important;
|
|
332
|
+
max-width: 100% !important;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
/* WITH Date Type (Date Type, Current Study, End Date): ensure inputs don't span full width */
|
|
336
|
+
:host ::ng-deep app-flex-grid.row.min-cols-2 > *:first-child:nth-last-child(3):is(al-input) {
|
|
337
|
+
grid-column: auto !important;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/* WITHOUT Date Type (first child is checkbox): force 1 column so Current Study, Start Date, End Date each on own row */
|
|
341
|
+
:host ::ng-deep app-flex-grid.row.min-cols-2 > *:first-child:nth-last-child(3):is(al-checkbox),
|
|
342
|
+
:host ::ng-deep app-flex-grid.row.min-cols-2 > *:first-child:nth-last-child(3):is(al-checkbox) ~ * {
|
|
296
343
|
grid-column: 1 / -1 !important;
|
|
297
344
|
}
|
|
298
345
|
}
|
|
299
346
|
|
|
300
|
-
/* When form wrapper is wide enough (600px+):
|
|
301
|
-
|
|
302
|
-
Container query so order follows form width (works in test-styling and narrow viewports).
|
|
347
|
+
/* When form wrapper is wide enough (600px+): maintain responsive order with CSS.
|
|
348
|
+
Container query so order follows form width.
|
|
303
349
|
|
|
304
|
-
|
|
350
|
+
ORDER REQUIREMENTS:
|
|
351
|
+
- 4 fields: Date Type | Start Date | End Date | Current Study
|
|
352
|
+
- 3 fields (no Start Date): Date Type | End Date | Current Study
|
|
353
|
+
- 3 fields (no Date Type): Start Date | End Date | Current Study
|
|
354
|
+
- 2 fields (no Date Type, no Start Date): End Date | Current Study */
|
|
305
355
|
@container form-wrapper (min-width: 600px) {
|
|
306
|
-
/*
|
|
307
|
-
:
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
356
|
+
/* === 4 CHILDREN: Date Type, Current Study, Start Date, End Date === */
|
|
357
|
+
/* Result: Date Type | Start Date | End Date | Current Study */
|
|
358
|
+
::ng-deep app-flex-grid.row.min-cols-2 > *:nth-child(1) { order: 1; } /* Date Type → 1st */
|
|
359
|
+
::ng-deep app-flex-grid.row.min-cols-2 > *:nth-child(2) { order: 4; } /* Current Study → 4th */
|
|
360
|
+
::ng-deep app-flex-grid.row.min-cols-2 > *:nth-child(3) { order: 2; } /* Start Date → 2nd */
|
|
361
|
+
::ng-deep app-flex-grid.row.min-cols-2 > *:nth-child(4) { order: 3; } /* End Date → 3rd */
|
|
362
|
+
|
|
363
|
+
/* === 3 CHILDREN: Date Type, Current Study, End Date (NO Start Date) === */
|
|
364
|
+
/* DOM order: Date Type(1), Current Study(2), End Date(3) */
|
|
365
|
+
/* Result: Date Type | End Date | Current Study */
|
|
366
|
+
::ng-deep app-flex-grid.row.min-cols-2 > *:first-child:nth-last-child(3) {
|
|
367
|
+
order: 1;
|
|
368
|
+
grid-column: 1 / 2 !important;
|
|
369
|
+
}
|
|
370
|
+
::ng-deep app-flex-grid.row.min-cols-2 > *:first-child:nth-last-child(3) ~ *:nth-child(2) {
|
|
371
|
+
order: 3;
|
|
372
|
+
grid-column: 4 / 5 !important;
|
|
373
|
+
}
|
|
374
|
+
::ng-deep app-flex-grid.row.min-cols-2 > *:first-child:nth-last-child(3) ~ *:nth-child(3) {
|
|
375
|
+
order: 2;
|
|
376
|
+
grid-column: 2 / 4 !important;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/* === 3 CHILDREN: Current Study, Start Date, End Date (NO Date Type) === */
|
|
380
|
+
/* DOM order: Current Study(1), Start Date(2), End Date(3) */
|
|
381
|
+
/* Result: Start Date | End Date | Current Study */
|
|
382
|
+
/* Override: checkbox (1st child) moves to 3rd position */
|
|
383
|
+
::ng-deep app-flex-grid.row.min-cols-2 > *:first-child:nth-last-child(3):is(al-checkbox) {
|
|
384
|
+
order: 3;
|
|
385
|
+
grid-column: 4 / 5 !important;
|
|
386
|
+
}
|
|
387
|
+
::ng-deep app-flex-grid.row.min-cols-2 > *:first-child:nth-last-child(3):is(al-checkbox) ~ *:nth-child(2) {
|
|
388
|
+
order: 1;
|
|
389
|
+
grid-column: 1 / 2 !important;
|
|
390
|
+
}
|
|
391
|
+
::ng-deep app-flex-grid.row.min-cols-2 > *:first-child:nth-last-child(3):is(al-checkbox) ~ *:nth-child(3) {
|
|
392
|
+
order: 2;
|
|
393
|
+
grid-column: 2 / 4 !important;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
/* === 2 CHILDREN: Current Study, End Date (NO Date Type, NO Start Date) === */
|
|
397
|
+
/* DOM order: Current Study(1), End Date(2) */
|
|
398
|
+
/* Result: End Date | Current Study */
|
|
399
|
+
::ng-deep app-flex-grid.row.min-cols-2 > *:first-child:nth-last-child(2) {
|
|
400
|
+
order: 2;
|
|
401
|
+
grid-column: 2 / 3 !important;
|
|
402
|
+
}
|
|
403
|
+
::ng-deep app-flex-grid.row.min-cols-2 > *:nth-child(2):last-child {
|
|
404
|
+
order: 1;
|
|
405
|
+
grid-column: 1 / 2 !important;
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
/* ============================================
|
|
410
|
+
3-COLUMN LAYOUT RULES
|
|
411
|
+
Scenario: Start Date, End Date, Checkbox (no Date Type)
|
|
412
|
+
|
|
413
|
+
Desktop (600px+): Start Date | End Date | Checkbox (equal 1fr each)
|
|
414
|
+
Mobile (< 600px): Checkbox (full width, first), then Start Date | End Date
|
|
415
|
+
|
|
416
|
+
DOM order in actual project: Checkbox(1), Start Date(2), End Date(3)
|
|
417
|
+
============================================ */
|
|
418
|
+
|
|
419
|
+
/* Mobile layout: 2 columns, checkbox first (full width), dates in row 2 */
|
|
420
|
+
@media (max-width: 767.98px) {
|
|
421
|
+
/* Target 3-column grids using min-cols-3 class or style attribute */
|
|
422
|
+
:host ::ng-deep app-flex-grid.row.min-cols-3,
|
|
423
|
+
:host ::ng-deep app-flex-grid.row[style*="--count-desktop: 3"] {
|
|
424
|
+
--current-count: 2 !important;
|
|
425
|
+
grid-template-columns: repeat(2, 1fr) !important;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
/* Move checkbox to first position, full width */
|
|
429
|
+
:host ::ng-deep app-flex-grid.row.min-cols-3 al-checkbox,
|
|
430
|
+
:host ::ng-deep app-flex-grid.row[style*="--count-desktop: 3"] al-checkbox {
|
|
431
|
+
order: -1 !important;
|
|
432
|
+
grid-column: 1 / -1 !important;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
/* Extra small screens (400.98px or less): all fields in separate rows (1 column) */
|
|
436
|
+
@media (max-width: 400.98px) {
|
|
437
|
+
:host ::ng-deep app-flex-grid.row.min-cols-3,
|
|
438
|
+
:host ::ng-deep app-flex-grid.row[style*="--count-desktop: 3"] {
|
|
439
|
+
--current-count: 1 !important;
|
|
440
|
+
grid-template-columns: 1fr !important;
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
/* Reset all to natural DOM order: Current Study, Start Date, End Date */
|
|
444
|
+
:host ::ng-deep app-flex-grid.row.min-cols-3 > *,
|
|
445
|
+
:host ::ng-deep app-flex-grid.row[style*="--count-desktop: 3"] > * {
|
|
446
|
+
order: 0 !important;
|
|
447
|
+
grid-column: auto !important;
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
/* Container query for mobile */
|
|
453
|
+
@container form-wrapper (max-width: 600px) {
|
|
454
|
+
:host ::ng-deep app-flex-grid.row.min-cols-3,
|
|
455
|
+
:host ::ng-deep app-flex-grid.row[style*="--count-desktop: 3"] {
|
|
456
|
+
--current-count: 2 !important;
|
|
457
|
+
grid-template-columns: repeat(2, 1fr) !important;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
/* Move checkbox to first position, full width */
|
|
461
|
+
:host ::ng-deep app-flex-grid.row.min-cols-3 al-checkbox,
|
|
462
|
+
:host ::ng-deep app-flex-grid.row[style*="--count-desktop: 3"] al-checkbox {
|
|
463
|
+
order: -1 !important;
|
|
464
|
+
grid-column: 1 / -1 !important;
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
/* Extra small container (400px or less): all fields in separate rows (1 column) */
|
|
469
|
+
@container form-wrapper (max-width: 400px) {
|
|
470
|
+
:host ::ng-deep app-flex-grid.row.min-cols-3,
|
|
471
|
+
:host ::ng-deep app-flex-grid.row[style*="--count-desktop: 3"] {
|
|
472
|
+
--current-count: 1 !important;
|
|
473
|
+
grid-template-columns: 1fr !important;
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
/* Reset all to natural DOM order: Current Study, Start Date, End Date */
|
|
477
|
+
:host ::ng-deep app-flex-grid.row.min-cols-3 > *,
|
|
478
|
+
:host ::ng-deep app-flex-grid.row[style*="--count-desktop: 3"] > * {
|
|
479
|
+
order: 0 !important;
|
|
480
|
+
grid-column: auto !important;
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
/* Desktop layout: 3 equal columns, reorder to Start Date | End Date | Checkbox */
|
|
485
|
+
@container form-wrapper (min-width: 600px) {
|
|
486
|
+
/* Force 3 equal columns */
|
|
487
|
+
::ng-deep app-flex-grid.row.min-cols-3,
|
|
488
|
+
::ng-deep app-flex-grid.row[style*="--count-desktop: 3"] {
|
|
489
|
+
grid-template-columns: repeat(3, 1fr) !important;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
/* === 3 CHILDREN: Checkbox(1), Start Date(2), End Date(3) === */
|
|
493
|
+
/* Reorder to: Start Date | End Date | Checkbox */
|
|
494
|
+
::ng-deep app-flex-grid.row.min-cols-3 > *:first-child:nth-last-child(3):is(al-checkbox),
|
|
495
|
+
::ng-deep app-flex-grid.row[style*="--count-desktop: 3"] > *:first-child:nth-last-child(3):is(al-checkbox) {
|
|
496
|
+
order: 3 !important;
|
|
497
|
+
grid-column: auto !important;
|
|
498
|
+
}
|
|
499
|
+
::ng-deep app-flex-grid.row.min-cols-3 > *:first-child:nth-last-child(3):is(al-checkbox) ~ *:nth-child(2),
|
|
500
|
+
::ng-deep app-flex-grid.row[style*="--count-desktop: 3"] > *:first-child:nth-last-child(3):is(al-checkbox) ~ *:nth-child(2) {
|
|
501
|
+
order: 1 !important;
|
|
502
|
+
grid-column: auto !important;
|
|
503
|
+
}
|
|
504
|
+
::ng-deep app-flex-grid.row.min-cols-3 > *:first-child:nth-last-child(3):is(al-checkbox) ~ *:nth-child(3),
|
|
505
|
+
::ng-deep app-flex-grid.row[style*="--count-desktop: 3"] > *:first-child:nth-last-child(3):is(al-checkbox) ~ *:nth-child(3) {
|
|
506
|
+
order: 2 !important;
|
|
507
|
+
grid-column: auto !important;
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
/* === 2 CHILDREN: Checkbox(1), Start Date OR End Date(2) === */
|
|
511
|
+
/* Checkbox stays in position 2, date in position 1 */
|
|
512
|
+
::ng-deep app-flex-grid.row.min-cols-3 > *:first-child:nth-last-child(2):is(al-checkbox),
|
|
513
|
+
::ng-deep app-flex-grid.row[style*="--count-desktop: 3"] > *:first-child:nth-last-child(2):is(al-checkbox) {
|
|
514
|
+
order: 2 !important;
|
|
515
|
+
grid-column: 3 / 4 !important;
|
|
516
|
+
}
|
|
517
|
+
::ng-deep app-flex-grid.row.min-cols-3 > *:first-child:nth-last-child(2):is(al-checkbox) ~ *:nth-child(2),
|
|
518
|
+
::ng-deep app-flex-grid.row[style*="--count-desktop: 3"] > *:first-child:nth-last-child(2):is(al-checkbox) ~ *:nth-child(2) {
|
|
519
|
+
order: 1 !important;
|
|
520
|
+
grid-column: 1 / 3 !important;
|
|
521
|
+
}
|
|
316
522
|
}
|
|
317
523
|
|
|
318
524
|
/* Fade-in animation for FABs on initial render */
|
|
@@ -149,6 +149,164 @@
|
|
|
149
149
|
<!-- candidate-section-form -->
|
|
150
150
|
|
|
151
151
|
</al-tab>
|
|
152
|
+
<al-tab labelText="Education">
|
|
153
|
+
<h2>Education Section - Responsive Form Layout</h2>
|
|
154
|
+
<p>Testing field order and responsive behavior</p>
|
|
155
|
+
|
|
156
|
+
<al-form [showLeftButton]="true" [showSaveButton]="true" [showDeleteButton]="true" [testId]="'education-section'"
|
|
157
|
+
(leftButtonClick)="onLeftButtonClick($event)" (saveButtonClick)="onSaveButtonClick($event)"
|
|
158
|
+
(deleteButtonClick)="onDeleteButtonClick($event)">
|
|
159
|
+
<div leftButtonContent>
|
|
160
|
+
<al-ai-apply-bar [placeholder]="'Apply AI'" [applyLabel]="'Apply'" [showHelperText]="true" [showClose]="false"
|
|
161
|
+
[showChevronButton]="false" [applyDisabled]="false" [value]="'Apply AI'"
|
|
162
|
+
[options]="['Typing', 'Gathering', 'Processing']" (valueChange)="onAIApplyValueChange($event)"
|
|
163
|
+
(applyClick)="onAIApplyClick()" (closeClick)="onAIApplyClose()">
|
|
164
|
+
</al-ai-apply-bar>
|
|
165
|
+
</div>
|
|
166
|
+
|
|
167
|
+
<!-- Row: Date Type, Current Study (checkbox), Start Date, End Date -->
|
|
168
|
+
<!-- Mobile: 2 rows (Date Type|Checkbox, Start|End) - Desktop: reordered -->
|
|
169
|
+
<app-flex-grid [type]="'row'" [mobRow]="2" [tabRow]="2" [desktop]="4" [gap]="'16px'" [minColumns]="2">
|
|
170
|
+
<al-input [label]="'Date Type'" [placeholder]="'Select Date Type'" [value]="'Month/Year'" [type]="'text'"
|
|
171
|
+
[disabled]="false" [helperText]="false" [hasDropDown]="true" [options]="['Month/Year','Year']"
|
|
172
|
+
[size]="'base'" [types]="'primary'" [dataTestId]="'edu-date-type'"></al-input>
|
|
173
|
+
<al-checkbox labelPosition="after" labelText="Current Study"
|
|
174
|
+
(change)="onFormCheckboxChange($event)"></al-checkbox>
|
|
175
|
+
<al-input [label]="'start Date'" [placeholder]="'End Date'" [value]="''" [type]="'date'" [disabled]="false"
|
|
176
|
+
[helperText]="false" [size]="'base'" [types]="'primary'" [dataTestId]="'edu-end-date'"
|
|
177
|
+
(monthSelected)="onMonthSelected($event)" (yearSelected)="onYearSelected($event)"></al-input>
|
|
178
|
+
<al-input [label]="'End Date'" [placeholder]="'End Date'" [value]="''" [type]="'date'" [disabled]="false"
|
|
179
|
+
[helperText]="false" [size]="'base'" [types]="'primary'" [dataTestId]="'edu-end-date'"
|
|
180
|
+
(monthSelected)="onMonthSelected($event)" (yearSelected)="onYearSelected($event)"></al-input>
|
|
181
|
+
</app-flex-grid>
|
|
182
|
+
|
|
183
|
+
<!-- Row: Core Fields -->
|
|
184
|
+
<app-flex-grid [type]="'column'" [rows]="1" [mobRow]="1" [tabRow]="1" [desktop]="1" [gap]="'16px'">
|
|
185
|
+
<al-input [label]="'Course Title'" [placeholder]="'Course Title'" [value]="'Bachelor of Science'"
|
|
186
|
+
[type]="'text'" [size]="'base'" [types]="'primary'"></al-input>
|
|
187
|
+
<al-input [label]="'School Name'" [placeholder]="'School Name'" [value]="'Oxford University'" [type]="'text'"
|
|
188
|
+
[size]="'base'" [types]="'primary'"></al-input>
|
|
189
|
+
<al-input [label]="'Type of Degree'" [placeholder]="'Type of Degree'" [value]="'Bachelor'" [type]="'text'"
|
|
190
|
+
[size]="'base'" [types]="'primary'"></al-input>
|
|
191
|
+
<al-input [label]="'Education Description'" [placeholder]="'Education Description'"
|
|
192
|
+
[value]="'Studied Computer Science'" [type]="'text'" [size]="'base'" [types]="'primary'"></al-input>
|
|
193
|
+
<al-input [label]="'Education Location'" [placeholder]="'Education Location'" [value]="'Oxford, UK'"
|
|
194
|
+
[type]="'text'" [size]="'base'" [types]="'primary'"></al-input>
|
|
195
|
+
</app-flex-grid>
|
|
196
|
+
|
|
197
|
+
<!-- Rich Text Editor Section -->
|
|
198
|
+
<app-flex-grid [type]="'column'" [gap]="16" [countMobile]="1" [countTablet]="1" [countDesktop]="1">
|
|
199
|
+
<app-custom-editor [isVisible]="true" [showTable]="true" [historyControls]="true" [autobullet]="true"
|
|
200
|
+
[showLabels]="true" leftLabelText="Document Title" rightLabelText="Page 1 of 5"
|
|
201
|
+
initialValue="<p>Start typing here...</p>" editScreenSection="GENERAL" actionType="edit"
|
|
202
|
+
[dataTestId]="'custom-editor-testid'" (contentChangeFromQuill)="onContentChange($event)"
|
|
203
|
+
(ApplyAIinQuill)="onAIApply($event)"></app-custom-editor>
|
|
204
|
+
</app-flex-grid>
|
|
205
|
+
</al-form>
|
|
206
|
+
</al-tab>
|
|
207
|
+
<al-tab labelText="Edu Without Date Type">
|
|
208
|
+
<h2>Education Section - Without Date Type</h2>
|
|
209
|
+
<p>Testing layout when Date Type field is not present</p>
|
|
210
|
+
|
|
211
|
+
<al-form [showLeftButton]="true" [showSaveButton]="true" [showDeleteButton]="true" [testId]="'edu-without-date-type'"
|
|
212
|
+
(leftButtonClick)="onLeftButtonClick($event)" (saveButtonClick)="onSaveButtonClick($event)"
|
|
213
|
+
(deleteButtonClick)="onDeleteButtonClick($event)">
|
|
214
|
+
<div leftButtonContent>
|
|
215
|
+
<al-ai-apply-bar [placeholder]="'Apply AI'" [applyLabel]="'Apply'" [showHelperText]="true" [showClose]="false"
|
|
216
|
+
[showChevronButton]="false" [applyDisabled]="false" [value]="'Apply AI'"
|
|
217
|
+
[options]="['Typing', 'Gathering', 'Processing']" (valueChange)="onAIApplyValueChange($event)"
|
|
218
|
+
(applyClick)="onAIApplyClick()" (closeClick)="onAIApplyClose()">
|
|
219
|
+
</al-ai-apply-bar>
|
|
220
|
+
</div>
|
|
221
|
+
|
|
222
|
+
<!-- Row: Current Study (checkbox), Start Date, End Date -->
|
|
223
|
+
<!-- Mobile: 3 rows (each field on own row) - Desktop: reordered -->
|
|
224
|
+
<app-flex-grid [type]="'row'" [mobRow]="2" [tabRow]="2" [desktop]="4" [gap]="'16px'" [minColumns]="2">
|
|
225
|
+
<al-checkbox labelPosition="after" labelText="Current Study"
|
|
226
|
+
(change)="onFormCheckboxChange($event)"></al-checkbox>
|
|
227
|
+
<al-input [label]="'Start Date'" [placeholder]="'Start Date'" [value]="''" [type]="'date'" [disabled]="false"
|
|
228
|
+
[helperText]="false" [size]="'base'" [types]="'primary'" [dataTestId]="'edu-start-date'"
|
|
229
|
+
(monthSelected)="onMonthSelected($event)" (yearSelected)="onYearSelected($event)"></al-input>
|
|
230
|
+
<al-input [label]="'End Date'" [placeholder]="'End Date'" [value]="''" [type]="'date'" [disabled]="false"
|
|
231
|
+
[helperText]="false" [size]="'base'" [types]="'primary'" [dataTestId]="'edu-end-date'"
|
|
232
|
+
(monthSelected)="onMonthSelected($event)" (yearSelected)="onYearSelected($event)"></al-input>
|
|
233
|
+
</app-flex-grid>
|
|
234
|
+
|
|
235
|
+
<!-- Row: Core Fields -->
|
|
236
|
+
<app-flex-grid [type]="'column'" [rows]="1" [mobRow]="1" [tabRow]="1" [desktop]="1" [gap]="'16px'">
|
|
237
|
+
<al-input [label]="'Course Title'" [placeholder]="'Course Title'" [value]="'Bachelor of Science'"
|
|
238
|
+
[type]="'text'" [size]="'base'" [types]="'primary'"></al-input>
|
|
239
|
+
<al-input [label]="'School Name'" [placeholder]="'School Name'" [value]="'Oxford University'" [type]="'text'"
|
|
240
|
+
[size]="'base'" [types]="'primary'"></al-input>
|
|
241
|
+
<al-input [label]="'Type of Degree'" [placeholder]="'Type of Degree'" [value]="'Bachelor'" [type]="'text'"
|
|
242
|
+
[size]="'base'" [types]="'primary'"></al-input>
|
|
243
|
+
<al-input [label]="'Education Description'" [placeholder]="'Education Description'"
|
|
244
|
+
[value]="'Studied Computer Science'" [type]="'text'" [size]="'base'" [types]="'primary'"></al-input>
|
|
245
|
+
<al-input [label]="'Education Location'" [placeholder]="'Education Location'" [value]="'Oxford, UK'"
|
|
246
|
+
[type]="'text'" [size]="'base'" [types]="'primary'"></al-input>
|
|
247
|
+
</app-flex-grid>
|
|
248
|
+
|
|
249
|
+
<!-- Rich Text Editor Section -->
|
|
250
|
+
<app-flex-grid [type]="'column'" [gap]="16" [countMobile]="1" [countTablet]="1" [countDesktop]="1">
|
|
251
|
+
<app-custom-editor [isVisible]="true" [showTable]="true" [historyControls]="true" [autobullet]="true"
|
|
252
|
+
[showLabels]="true" leftLabelText="Document Title" rightLabelText="Page 1 of 5"
|
|
253
|
+
initialValue="<p>Start typing here...</p>" editScreenSection="GENERAL" actionType="edit"
|
|
254
|
+
[dataTestId]="'custom-editor-testid'" (contentChangeFromQuill)="onContentChange($event)"
|
|
255
|
+
(ApplyAIinQuill)="onAIApply($event)"></app-custom-editor>
|
|
256
|
+
</app-flex-grid>
|
|
257
|
+
</al-form>
|
|
258
|
+
</al-tab>
|
|
259
|
+
<al-tab labelText="3-Column Layout">
|
|
260
|
+
<h2>3-Column Layout Test</h2>
|
|
261
|
+
<p>Start Date → End Date → Checkbox (equal widths on desktop, checkbox first on mobile)</p>
|
|
262
|
+
|
|
263
|
+
<al-form [showLeftButton]="true" [showSaveButton]="true" [showDeleteButton]="true" [testId]="'3-col-layout'"
|
|
264
|
+
(leftButtonClick)="onLeftButtonClick($event)" (saveButtonClick)="onSaveButtonClick($event)"
|
|
265
|
+
(deleteButtonClick)="onDeleteButtonClick($event)">
|
|
266
|
+
<div leftButtonContent>
|
|
267
|
+
<al-ai-apply-bar [placeholder]="'Apply AI'" [applyLabel]="'Apply'" [showHelperText]="true" [showClose]="false"
|
|
268
|
+
[showChevronButton]="false" [applyDisabled]="false" [value]="'Apply AI'"
|
|
269
|
+
[options]="['Typing', 'Gathering', 'Processing']" (valueChange)="onAIApplyValueChange($event)"
|
|
270
|
+
(applyClick)="onAIApplyClick()" (closeClick)="onAIApplyClose()">
|
|
271
|
+
</al-ai-apply-bar>
|
|
272
|
+
</div>
|
|
273
|
+
|
|
274
|
+
<!-- 3-Column Layout: Start Date, End Date, Checkbox -->
|
|
275
|
+
<!-- Desktop: 3 equal columns (1fr each) -->
|
|
276
|
+
<!-- Mobile: Checkbox first (full width), then dates in row 2 -->
|
|
277
|
+
<app-flex-grid [type]="'row'" [mobRow]="2" [tabRow]="3" [desktop]="3" [gap]="'16px'" [minColumns]="3">
|
|
278
|
+
<al-input [label]="'Start Date'" [placeholder]="'Start Date'" [value]="''" [type]="'date'" [disabled]="false"
|
|
279
|
+
[helperText]="false" [size]="'base'" [types]="'primary'" [dataTestId]="'3-col-start-date'"
|
|
280
|
+
(monthSelected)="onMonthSelected($event)" (yearSelected)="onYearSelected($event)"></al-input>
|
|
281
|
+
<al-input [label]="'End Date'" [placeholder]="'End Date'" [value]="''" [type]="'date'" [disabled]="false"
|
|
282
|
+
[helperText]="false" [size]="'base'" [types]="'primary'" [dataTestId]="'3-col-end-date'"
|
|
283
|
+
(monthSelected)="onMonthSelected($event)" (yearSelected)="onYearSelected($event)"></al-input>
|
|
284
|
+
<al-checkbox labelPosition="after" labelText="Current Study"
|
|
285
|
+
(change)="onFormCheckboxChange($event)"></al-checkbox>
|
|
286
|
+
</app-flex-grid>
|
|
287
|
+
|
|
288
|
+
<!-- Test: Checkbox FIRST (matching actual project DOM order) -->
|
|
289
|
+
<p style="margin-top: 24px; color: #666; font-size: 14px;"><strong>Test with Checkbox First (Actual [type]="'row'" [mobRow]="2" [tabRow]="3" [desktop]="3" [gap]="'16px'" [minColumns]="3" Project Order):</strong></p>
|
|
290
|
+
<app-flex-grid>
|
|
291
|
+
<al-checkbox labelPosition="after" labelText="Current Study"
|
|
292
|
+
(change)="onFormCheckboxChange($event)"></al-checkbox>
|
|
293
|
+
<al-input [label]="'Start Date'" [placeholder]="'Start Date'" [value]="''" [type]="'date'" [disabled]="false"
|
|
294
|
+
[helperText]="false" [size]="'base'" [types]="'primary'" [dataTestId]="'3-col-start-date-2'"
|
|
295
|
+
(monthSelected)="onMonthSelected($event)" (yearSelected)="onYearSelected($event)"></al-input>
|
|
296
|
+
<al-input [label]="'End Date'" [placeholder]="'End Date'" [value]="''" [type]="'date'" [disabled]="false"
|
|
297
|
+
[helperText]="false" [size]="'base'" [types]="'primary'" [dataTestId]="'3-col-end-date-2'"
|
|
298
|
+
(monthSelected)="onMonthSelected($event)" (yearSelected)="onYearSelected($event)"></al-input>
|
|
299
|
+
</app-flex-grid>
|
|
300
|
+
|
|
301
|
+
<!-- Core Fields -->
|
|
302
|
+
<app-flex-grid [type]="'column'" [rows]="1" [mobRow]="1" [tabRow]="1" [desktop]="1" [gap]="'16px'">
|
|
303
|
+
<al-input [label]="'Course Title'" [placeholder]="'Course Title'" [value]="'Bachelor of Science'"
|
|
304
|
+
[type]="'text'" [size]="'base'" [types]="'primary'"></al-input>
|
|
305
|
+
<al-input [label]="'School Name'" [placeholder]="'School Name'" [value]="'Oxford University'" [type]="'text'"
|
|
306
|
+
[size]="'base'" [types]="'primary'"></al-input>
|
|
307
|
+
</app-flex-grid>
|
|
308
|
+
</al-form>
|
|
309
|
+
</al-tab>
|
|
152
310
|
<al-tab labelText="CoverSheet">
|
|
153
311
|
<h3>About Us</h3>
|
|
154
312
|
<p>Learn more about our company and mission.</p>
|
|
@@ -158,4 +316,4 @@
|
|
|
158
316
|
<p>Get in touch with us through various channels.</p>
|
|
159
317
|
</al-tab>
|
|
160
318
|
</al-tabs>
|
|
161
|
-
</al-general-container>
|
|
319
|
+
</al-general-container>
|