AAE-40649 Material Design 3 migration (#11286)

* AAE-38957 Cleanup code from color assignments on Material elements (#11266)

* AAE-38646   cleanup core lib from custom variables (#11259)

* AAE-38646 General cleanup of custom variables from core lib

* AAE-38646 Cleanup some of the remaining variables

* AAE-38646 Last color-mix removal

* AAE-38646 Reduce amount of customizations

* AAE-38646 apply overrides, reduce customization

* AAE-38646 modify remaining styles

* AAE-38646 Fix override assignemnts

* AAE-38646 Address comments, cleanup unused

* AAE-38978 Cleanup process-services-cloud lib from custom css variables (#11295)

* AAE-38978 Cleanup custom variables inside process-services-cloud lib

* AAE-38978 Adjust rich text widget styling

* AAE-38978 Comment fixes

* AAE-38980 Cleanup insights lib from custom css variables (#11314)

* AAE-38980 Cleanup insights lib from custom css variables

* AAE-38980 Removed unnecessarily specific selector

* AAE-38979 Cleanup content-services lib from custom css variables (#11313)

* AAE-38979 Remove/replace variable and hardcoded customizations

* AAE-38979 Cleanup unused @use and @import statements

* AAE-39159 Cleanup process-services lib from custom css variables (#11316)

* AAE-39159 Cleanup process-services lib from custom css variables

* AAE-39159 Fix import and build

* Fix build

* Remove leftover button customization

* fix missing brace

* AAE-39748 Pagination font size match md3

* fix incorrect html templates after rebase

* swap leftover variables

* fix units

* copilot comments

* visual regression result fixes

* CSX-204 Update card view components (#11358)

* CSX-535 Update background color on readonly for card view selectitem (#11799)

* remove invalid color test

* add stylelint rule

---------

Co-authored-by: Ehsan Rezaei <ehsan.rezaei@hyland.com>
Co-authored-by: Ricardo Dias <ricardo.dias@hyland.com>
This commit is contained in:
Wojciech Duda
2026-04-22 10:02:17 +01:00
committed by GitHub
co-authored by Ehsan Rezaei Ricardo Dias
parent 423c646bac
commit 64826c3a99
236 changed files with 838 additions and 1780 deletions
@@ -103,12 +103,14 @@ $tile-themes: (
outline: none;
flex-direction: column;
display: flex;
transition: transform 280ms cubic-bezier(0.4, 0, 0.2, 1), box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
transition:
transform 280ms cubic-bezier(0.4, 0, 0.2, 1),
box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
min-height: 200px;
padding: 0;
&:hover {
box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2);
box-shadow: var(--mat-sys-level3);
cursor: pointer;
transform: scale(1.015);
}
@@ -134,9 +136,8 @@ $tile-themes: (
h1 {
width: 80%;
font-size: var(--theme-headline-font-size);
font: var(--mat-sys-headline-medium);
margin: 0;
line-height: normal;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
@@ -159,7 +160,7 @@ $tile-themes: (
&-actions:has(.adf-app-listgrid-item-card-actions-icon) {
padding: 0 16px 16px;
border-top: 1px solid rgba(0, 0, 0, 0.1);
border-top: 1px solid var(--mat-sys-outline-variant);
min-height: 48px;
box-sizing: border-box;
margin-left: 0;
@@ -168,10 +169,6 @@ $tile-themes: (
&:last-child {
margin-bottom: 0;
}
.adf-app-listgrid-item-card-actions-icon {
color: #e9f1f3;
}
}
}
}
@@ -1,6 +1,5 @@
<button
id="add_new_process_content_button"
color="primary"
mat-button
class="adf-create-attachment"
[adf-upload]="true"
@@ -1,5 +1,4 @@
<button
color="primary"
mat-button
class="adf-create-attachment"
[adf-upload]="true"
@@ -7,18 +7,14 @@
.adf-empty-list-header {
height: 32px;
opacity: 0.26;
font-size: var(--theme-headline-font-size);
line-height: 1.33;
letter-spacing: -1px;
color: var(--mat-sys-on-secondary-container);
font: var(--mat-sys-headline-medium);
}
.adf-empty-list-drag_drop {
min-height: 56px;
opacity: 0.54;
font-size: 56px;
line-height: 1;
letter-spacing: -2px;
color: var(--mat-sys-on-surface);
font: var(--mat-sys-headline-large);
margin-top: 40px;
word-break: break-all;
white-space: pre-line;
@@ -26,10 +22,8 @@
.adf-empty-list__any-files-here-to-add {
min-height: 24px;
opacity: 0.54;
font-size: 16px;
line-height: 1.5;
letter-spacing: -0.4px;
color: var(--mat-sys-on-surface);
font: var(--mat-sys-body-large);
margin-top: 17px;
word-break: break-all;
white-space: pre-line;
@@ -7,18 +7,13 @@
.adf-empty-list-header {
height: 32px;
opacity: 0.26;
font-size: var(--theme-headline-font-size);
line-height: 1.33;
letter-spacing: -1px;
color: var(--mat-sys-on-secondary-container);
font: var(--mat-sys-headline-medium);
}
.adf-empty-list-drag_drop {
min-height: 56px;
opacity: 0.54;
font-size: 56px;
line-height: 1;
letter-spacing: -2px;
font: var(--mat-sys-headline-large);
margin-top: 40px;
word-break: break-all;
white-space: pre-line;
@@ -30,10 +25,8 @@
.adf-empty-list__any-files-here-to-add {
min-height: 24px;
opacity: 0.54;
font-size: var(--theme-subheading-2-font-size);
line-height: 1.5;
letter-spacing: -0.4px;
color: var(--mat-sys-on-surface);
font: var(--mat-sys-body-large);
margin-top: 17px;
word-break: break-all;
white-space: pre-line;
@@ -205,12 +205,11 @@ describe('TaskAttachmentList', () => {
component.ngOnChanges({ taskId: change });
component.disabled = true;
fixture.whenStable().then(() => {
fixture.detectChanges();
expect(fixture.nativeElement.querySelector('div[adf-empty-list-header]').innerText.trim()).toEqual(
'ADF_TASK_LIST.ATTACHMENT.EMPTY.HEADER'
);
});
fixture.detectChanges();
await fixture.whenStable();
const header = fixture.nativeElement.querySelector('div[adf-empty-list-header]');
expect(header.innerText.trim()).toEqual('ADF_TASK_LIST.ATTACHMENT.EMPTY.HEADER');
});
it('should not show the empty list component when the attachments list is not empty for completed task', async () => {
@@ -18,11 +18,7 @@
}
& #{ms.$mat-tab-label-text} {
font-size: var(--theme-subheading-2-font-size);
line-height: var(--theme-headline-line-height);
letter-spacing: -0.4px;
text-align: left;
color: var(--adf-theme-foreground-text-color-064);
text-transform: uppercase;
}
@@ -38,7 +34,7 @@
.adf-form-container-card {
.adf {
&-form-title {
font-size: var(--theme-title-font-size);
font: var(--mat-sys-title-medium);
}
&-form-debug-container {
@@ -50,10 +46,6 @@
cursor: pointer;
}
&-form-debug-container .adf-debug-toggle-text:hover {
font-weight: bold;
}
&-form-reload-button {
position: absolute;
right: 12px;
@@ -64,10 +56,10 @@
position: absolute;
right: 50px;
top: 39px;
color: var(--theme-accent-color);
color: var(--mat-sys-primary);
& .adf-invalid-color {
color: var(--theme-warn-color);
color: var(--mat-sys-error);
}
}
@@ -82,8 +74,7 @@
&-label {
width: 32px;
height: 16px;
font-size: var(--theme-caption-font-size);
line-height: var(--theme-headline-line-height);
font: var(--mat-sys-body-small);
text-align: left;
white-space: nowrap;
}
@@ -101,9 +92,7 @@
& #{ms.$mat-button-label} {
width: 58px;
height: 20px;
opacity: 0.54;
font-size: var(--theme-body-2-font-size);
font-weight: bold;
font: var(--mat-sys-body-large);
}
}
}
@@ -111,12 +100,6 @@
form-field {
width: 100%;
#{ms.$mat-input-element} {
font-size: var(--theme-body-2-font-size);
padding-top: 8px;
line-height: normal;
}
}
[dir='rtl'] .adf-form-validation-button {
@@ -2,24 +2,11 @@
.adf-attach-file-widget-dialog {
#{ms.$mat-dialog-actions} {
background-color: var(--theme-background-color);
display: flex;
justify-content: flex-end;
color: var(--adf-theme-foreground-text-color);
button {
text-transform: uppercase;
font-weight: normal;
}
.adf-choose-action {
&[disabled] {
color: var(--adf-theme-foreground-secondary-text-color);
}
&:enabled {
color: var(--theme-primary-color);
}
}
}
@@ -5,14 +5,14 @@
</label>
<div class="adf-attach-widget-container">
<div id="adf-attach-widget-simple-upload" *ngIf="isSimpleUploadButton() && isUploadButtonVisible()">
<a mat-raised-button color="primary">
<a mat-raised-button>
{{ 'FORM.FIELD.UPLOAD' | translate }}
<mat-icon>file_upload</mat-icon>
<input #uploadFiles [multiple]="multipleOption" type="file" [id]="field.id" (change)="onAttachFileChanged($event)" />
</a>
</div>
<div class="adf-attach-widget__menu-upload" (focusout)="markAsTouched()" *ngIf="isUploadButtonVisible() && isMultipleSourceUpload()">
<button mat-raised-button color="primary" [matMenuTriggerFor]="menu" [id]="field.id">
<button mat-raised-button [matMenuTriggerFor]="menu" [id]="field.id">
<mat-icon>attach_file</mat-icon>
{{ 'FORM.FIELD.UPLOAD' | translate }}
</button>
@@ -16,7 +16,6 @@
<div *ngIf="!hasFolder && !field.readOnly">
<button
mat-raised-button
color="primary"
(click)="openSelectDialogFromFileSource()"
[id]="'folder-' + field?.id + '-button'"
class="adf-attach-folder-menu-trigger"
@@ -2,9 +2,9 @@
&-img-upload-widget {
width: 100%;
height: 100%;
border: 1px solid rgba(117, 117, 117, 0.57);
box-shadow: 1px 1px 2px #ddd;
background-color: #fff;
border: 1px solid var(--mat-sys-outline-variant);
box-shadow: var(--mat-sys-level2);
background-color: var(--mat-sys-surface);
}
&-content-widget-preview-text {
@@ -1,5 +1,3 @@
@use '../../../styles/mat-selectors' as ms;
.adf {
&-dropdown-widget {
width: 100%;
@@ -9,10 +7,6 @@
width: 100%;
}
#{ms.$mat-select-value-text} {
font-size: var(--theme-body-1-font-size);
}
&-select {
width: 100%;
}
@@ -1,17 +1,14 @@
/* stylelint-disable no-descending-specificity */
@use '../../../../../../core/src/lib/styles/mixins' as *;
@use 'styles/mixins' as mixins;
$dynamic-table-font-size: var(--theme-body-1-font-size) !default;
$dynamic-table-header-font-size: var(--theme-caption-font-size) !default;
$dynamic-table-font-size: var(--mat-sys-body-medium-size) !default;
$dynamic-table-header-font-size: var(--mat-sys-body-small-size) !default;
$dynamic-table-header-sort-icon-size: 16px !default;
$dynamic-table-hover-color: #eee !default;
$dynamic-table-selection-color: #e0f7fa !default;
$dynamic-table-row-height: 56px !default;
$dynamic-table-column-spacing: 36px !default;
$dynamic-table-column-padding: 18px !default;
$dynamic-table-card-padding: 24px !default;
$dynamic-table-cell-top: 12px !default;
$dynamic-table-drag-border: 1px dashed rgb(68, 138, 255);
dynamic-table-widget .adf-label {
width: auto;
@@ -26,7 +23,7 @@ dynamic-table-widget .adf-label {
&-dynamic-table {
width: 100%;
position: relative;
border: 1px solid var(--adf-theme-foreground-text-color-007);
border: 1px solid var(--mat-sys-outline-variant);
white-space: nowrap;
font-size: $dynamic-table-font-size;
@@ -42,23 +39,20 @@ dynamic-table-widget .adf-label {
tr {
position: relative;
height: $dynamic-table-row-height;
@include material-animation-default(0.28s);
transition-property: background-color;
transition: background-color 0.28s cubic-bezier(0.4, 0, 0.2, 1);
&:hover {
background-color: $dynamic-table-hover-color;
background-color: var(--mat-sys-surface-dim);
}
&.adf-is-selected,
&.adf-is-selected:hover {
background-color: $dynamic-table-selection-color;
background-color: var(--mat-sys-secondary-container);
}
&:focus {
outline-offset: -1px;
outline: rgb(68, 138, 255) solid 1px;
outline: var(--mat-sys-primary) solid 1px;
}
}
}
@@ -78,63 +72,52 @@ dynamic-table-widget .adf-label {
}
td {
color: var(--adf-theme-foreground-text-color);
@include mixins.adf-no-select;
color: var(--mat-sys-on-surface);
position: relative;
vertical-align: middle;
height: $dynamic-table-row-height;
border-top: 1px solid var(--adf-theme-foreground-text-color-007);
border-bottom: 1px solid var(--adf-theme-foreground-text-color-007);
border-top: 1px solid var(--mat-sys-outline-variant);
border-bottom: 1px solid var(--mat-sys-outline-variant);
padding-top: $dynamic-table-cell-top;
box-sizing: border-box;
@include adf-no-select;
cursor: default;
}
th {
@include adf-no-select;
@include mixins.adf-no-select;
cursor: pointer;
position: relative;
vertical-align: bottom;
text-overflow: ellipsis;
font-weight: bold;
line-height: 24px;
font-weight: var(--mat-sys-label-large-weight);
line-height: var(--mat-sys-label-large-line-height);
letter-spacing: 0;
height: $dynamic-table-row-height;
font-size: $dynamic-table-header-font-size;
color: var(--adf-theme-foreground-text-color);
color: var(--mat-sys-on-surface);
padding-bottom: 8px;
box-sizing: border-box;
&.adf-sortable {
@include adf-no-select;
@include mixins.adf-no-select;
&:hover {
cursor: pointer;
}
cursor: pointer;
}
&.adf-dynamic-table__header--sorted-asc,
&.adf-dynamic-table__header--sorted-desc {
color: var(--adf-theme-foreground-text-color);
color: var(--mat-sys-on-surface);
&::before {
@include typo-icon;
@include mixins.typo-icon;
font-size: $dynamic-table-header-sort-icon-size;
content: '\e5d8';
margin-right: 5px;
vertical-align: sub;
}
&:hover {
cursor: pointer;
&::before {
color: var(--adf-theme-foreground-disabled-text-color);
}
}
}
@@ -1,6 +1,5 @@
<label [attr.for]="column.id">
<mat-checkbox
color="primary"
[id]="column.id"
[checked]="table.getCellValue(row, column)"
[required]="column.required"
@@ -2,8 +2,7 @@
&-checkbox-label {
position: relative;
cursor: pointer;
font-size: var(--theme-subheading-2-font-size);
line-height: 24px;
font: var(--mat-sys-body-large);
margin: 0;
}
}
@@ -1,3 +1,4 @@
/* stylelint-disable selector-class-pattern */
.row-editor {
padding: 8px;
}
@@ -8,6 +9,6 @@
.row-editor__invalid .row-editor__validation-summary {
padding: 8px 16px;
color: #d50000;
color: var(--mat-sys-error);
visibility: visible;
}
@@ -4,9 +4,9 @@
.adf-group-widget-field {
.adf-group-widget-field-chip {
border: 1px solid var(--adf-chip-border-color);
border: 1px solid var(--mat-sys-outline);
border-radius: 10px;
background-color: var(--theme-primary-color-default-contrast);
background-color: var(--mat-sys-secondary);
height: auto;
word-break: break-word;
padding: 4px 0;
@@ -1,18 +1,14 @@
@use '../../../styles/mat-selectors' as ms;
.adf {
&-people-widget {
width: 100%;
#{ms.$mat-form-field-label} {
top: 10px;
}
.adf-people-widget-field {
top: 10px;
.adf-people-widget-field-chip {
border: 1px solid var(--adf-chip-border-color);
border: 1px solid var(--mat-sys-outline);
border-radius: 10px;
background-color: var(--theme-primary-color-default-contrast);
background-color: var(--mat-sys-secondary);
height: auto;
word-break: break-word;
padding: 4px 0;
@@ -31,23 +27,22 @@
}
&-people-widget-pic {
background: var(--theme-primary-color);
background: var(--mat-sys-primary);
display: flex;
justify-content: center;
align-items: center;
width: 40px;
height: 40px;
border-radius: 100px;
color: var(--adf-theme-foreground-text-color);
font-weight: bolder;
font-size: var(--theme-adf-picture-1-font-size);
color: var(--mat-sys-on-surface);
font: var(--mat-sys-label-large);
text-transform: uppercase;
}
&-people-widget-image {
margin-left: -44px;
left: 21px;
background: var(--adf-theme-background-dialog-color);
background: var(--mat-sys-surface-container-high);
border-radius: 100px;
width: 40px;
height: 40px;
@@ -11,7 +11,6 @@
[value]="opt.id"
[checked]="field.value === opt.id"
(change)="onOptionClick(opt.id)"
color="primary"
class="adf-radio-button"
*ngFor="let opt of field.options"
>
@@ -41,7 +41,7 @@
</div>
<div *ngIf="(!hasFile || multipleOption) && !field.readOnly">
<button mat-raised-button color="primary" (click)="uploadFiles.click()">
<button mat-raised-button (click)="uploadFiles.click()">
{{ 'FORM.FIELD.UPLOAD' | translate }}<mat-icon>file_upload</mat-icon>
<input #uploadFiles [multiple]="multipleOption" type="file" [id]="field.id" (change)="onFileChanged($event)" />
</button>
@@ -20,14 +20,13 @@
}
.adf-people-pic {
background: var(--theme-primary-color);
background: var(--mat-sys-primary);
width: 30px;
padding: 10px 5px;
border-radius: 90%;
color: #fff;
color: var(--mat-sys-on-primary);
text-align: center;
font-weight: bolder;
font-size: var(--theme-adf-picture-1-font-size);
font: var(--mat-sys-label-large);
text-transform: uppercase;
vertical-align: text-bottom;
}
@@ -15,17 +15,17 @@
}
.adf-search-list-action-container {
border-top: 1px solid #eee;
border-top: 1px solid var(--mat-sys-outline-variant);
text-align: right;
padding: 5px 0;
margin-top: 5px;
> button {
opacity: 0.54;
font-weight: bolder;
color: var(--mat-sys-on-surface-variant);
font: var(--mat-sys-label-large);
&:hover {
color: var(--theme-primary-color);
color: var(--mat-sys-primary);
}
}
}
@@ -1,7 +1,7 @@
@use '../../../styles/mat-selectors' as ms;
.adf-assignment-header {
border-bottom: 1px solid var(--adf-theme-foreground-divider-color);
border-bottom: 1px solid var(--mat-sys-outline-variant);
padding: 6px 20px;
}
@@ -18,16 +18,15 @@
float: right;
padding: 8px;
height: 26px;
opacity: 0.54;
cursor: pointer;
&:hover {
color: var(--theme-primary-color);
color: var(--mat-sys-primary);
}
}
.adf-assignment-top-container#{ms.$mat-card} {
border-top: 1px solid var(--adf-theme-foreground-divider-color);
border-top: 1px solid var(--mat-sys-outline-variant);
margin: 0;
padding: 0;
display: flex;
@@ -45,7 +44,7 @@
.adf-assignment-container {
padding: 10px 20px;
border-bottom: 1px solid var(--adf-theme-foreground-divider-color);
border-bottom: 1px solid var(--mat-sys-outline-variant);
max-width: 100%;
}
@@ -80,14 +79,13 @@ adf-people-list adf-datatable {
}
.adf-people-search-people-pic {
background: var(--theme-primary-color);
background: var(--mat-sys-primary);
width: 30px;
padding: 10px 5px;
border-radius: 100px;
color: #fff;
color: var(--mat-sys-on-primary);
text-align: center;
font-weight: bolder;
font-size: var(--theme-adf-picture-1-font-size);
font: var(--mat-sys-label-large);
text-transform: uppercase;
vertical-align: text-bottom;
}
@@ -3,9 +3,6 @@ adf-process-instance-filters {
&-filters__entry:has(.adf-filter-action-button) {
padding: 0;
width: 100%;
cursor: pointer;
font-size: var(--theme-body-1-font-size);
font-weight: bold;
.adf-full-width {
display: flex;
@@ -20,13 +17,13 @@ adf-process-instance-filters {
.adf-filter-action-button__label {
padding-left: 20px;
margin: 0 8px;
color: var(--theme-action-button-text-color);
font: var(--mat-sys-body-large);
}
}
&.adf-active {
.adf-filter-action-button__label {
color: var(--adf-sidenav-active-text-color);
color: var(--mat-sys-primary);
}
}
}
@@ -1,3 +1,4 @@
/* stylelint-disable selector-class-pattern */
:host {
width: 100%;
}
@@ -57,15 +58,7 @@
.no-results {
margin-left: 9px;
font-size: var(--theme-body-1-font-size);
font-weight: 400;
letter-spacing: 0;
line-height: 18px;
color: rgba(0, 0, 0, 0.54);
font: var(--mat-sys-body-medium);
display: block;
padding: 12px;
}
.process-tasks__task-item {
cursor: pointer;
}
@@ -8,7 +8,7 @@
<mat-chip-listbox>
<span class="adf-chip-label">{{ 'ADF_PROCESS_LIST.DETAILS.LABELS.TASKS_ACTIVE'|translate }}</span>
<mat-chip-option class="adf-process-badge" color="accent" selected="true">{{activeTasks?.length}}</mat-chip-option>
<mat-chip-option class="adf-process-badge" selected="true">{{activeTasks?.length}}</mat-chip-option>
</mat-chip-listbox>
<div class="menu-container" *ngIf="activeTasks?.length > 0" data-automation-id="active-tasks">
@@ -50,7 +50,7 @@
<!-- COMPLETED FORM -->
<mat-chip-listbox>
<span class="adf-chip-label">{{ 'ADF_PROCESS_LIST.DETAILS.LABELS.TASKS_COMPLETED'|translate }}</span>
<mat-chip-option class="adf-process-badge" color="accent" selected="true">{{completedTasks?.length}}</mat-chip-option>
<mat-chip-option class="adf-process-badge" selected="true">{{completedTasks?.length}}</mat-chip-option>
</mat-chip-listbox>
<div class="menu-container" *ngIf="completedTasks?.length > 0" data-automation-id="completed-tasks">
@@ -3,10 +3,8 @@
margin-right: calc((100% - 100px) / 2);
}
/* stylelint-disable-next-line selector-class-pattern */
.no-content-message {
font-size: var(--theme-subheading-2-font-size);
font-weight: bold;
font: var(--mat-sys-title-small);
text-align: center;
opacity: 0.54;
color: #000;
}
@@ -22,7 +22,6 @@
<mat-progress-spinner
*ngIf="!customLoadingContent"
class="adf-process-list-loading-margin"
color="primary"
mode="indeterminate" />
<ng-content select="adf-custom-loading-content-template" />
</ng-template>
@@ -127,7 +127,6 @@
{{'ADF_PROCESS_LIST.START_PROCESS.FORM.ACTION.CANCEL'| translate | uppercase}}
</button>
<button
color="primary"
mat-button
*ngIf="!hasStartForm()"
[disabled]="!validateForm()"
@@ -12,10 +12,6 @@
width: 100%;
}
#{ms.$mat-form-field-label} {
color: var(--adf-theme-mat-grey-color-a200-dark);
}
&-content-actions {
padding-bottom: 16px;
padding-right: 16px;
@@ -24,11 +24,11 @@
<mat-card-actions class="adf-attach-form-mat-card-actions">
<div>
<button mat-button id="adf-attach-form-remove-button" color="warn" *ngIf="formKey" (click)="onRemoveButtonClick()">{{ 'ADF_TASK_LIST.ATTACH_FORM.REMOVE_FORM' | translate }}</button>
<button mat-button id="adf-attach-form-remove-button" *ngIf="formKey" (click)="onRemoveButtonClick()">{{ 'ADF_TASK_LIST.ATTACH_FORM.REMOVE_FORM' | translate }}</button>
</div>
<div>
<button mat-button id="adf-attach-form-cancel-button" (click)="onCancelButtonClick()">{{ 'ADF_TASK_LIST.START_TASK.FORM.ACTION.CANCEL' | translate }}</button>
<button mat-button id="adf-attach-form-attach-button" [disabled]="disableSubmit" color="primary" (click)="onAttachFormButtonClick()">{{ 'ADF_TASK_LIST.START_TASK.FORM.LABEL.ATTACHFORM' | translate }}</button>
<button mat-button id="adf-attach-form-attach-button" [disabled]="disableSubmit" (click)="onAttachFormButtonClick()">{{ 'ADF_TASK_LIST.START_TASK.FORM.LABEL.ATTACHFORM' | translate }}</button>
</div>
</mat-card-actions>
</mat-card>
@@ -1,7 +1,7 @@
<div class="adf-checklist-control">
<mat-chip-listbox data-automation-id="checklist-label">
<span class="adf-activiti-label">{{ 'ADF_TASK_LIST.DETAILS.LABELS.CHECKLIST' | translate }}</span>
<mat-chip-option class="adf-process-badge" color="accent" selected="true">{{checklist?.length}}</mat-chip-option>
<mat-chip-option class="adf-process-badge" selected="true">{{checklist?.length}}</mat-chip-option>
</mat-chip-listbox>
@@ -82,7 +82,6 @@
{{ 'ADF_TASK_LIST.START_TASK.FORM.ACTION.CANCEL' | translate }}
</button>
<button
color="primary"
mat-button
class="adf-uppercase"
[disabled]="!isFormValid()"
@@ -1,15 +1,9 @@
@use '../../../styles/mat-selectors' as ms;
@use '../../../styles/flex' as flex;
/* stylelint-disable no-descending-specificity */
.adf-new-task-heading {
padding-top: 12px;
border-bottom: 1px solid var(--adf-theme-foreground-divider-color);
#{ms.$mat-card-title} {
font-weight: bold;
font-size: var(--theme-adf-task-title-font-size);
}
border-bottom: 1px solid var(--mat-sys-outline-variant);
}
.adf-new-task-layout-card {
@@ -57,8 +51,8 @@
.adf-new-task-footer {
padding: 4px;
font-size: var(--theme-adf-task-footer-font-size);
border-top: 1px solid #eee;
font: var(--mat-sys-body-medium);
border-top: 1px solid var(--mat-sys-outline-variant);
display: flex;
place-content: flex-end;
align-items: flex-end;
@@ -69,20 +63,16 @@
}
adf-start-task {
#{ms.$mat-button}.adf-uppercase {
button.adf-uppercase {
text-transform: uppercase;
}
people-widget.adf-people-widget-content {
width: 100%;
#{ms.$mat-form-field-label} {
top: -14px;
}
}
.adf-people-widget-content {
#{ms.$mat-form-field} {
.adf-people-widget-field {
width: 100%;
}
@@ -96,7 +86,7 @@ adf-start-task {
}
.adf {
&-start-task-input-container #{ms.$mat-form-field-wrapper} {
&-start-task-input-container {
padding-top: 8px;
}
@@ -116,39 +106,35 @@ adf-start-task {
&-error-text {
padding-right: 8px;
height: 16px;
font-size: var(--theme-caption-font-size);
font: var(--mat-sys-body-small);
line-height: 1.33;
color: var(--theme-warn-color);
color: var(--mat-sys-error);
width: auto;
}
&-error-icon {
font-size: var(--theme-adf-icon-1-font-size);
color: var(--theme-warn-color);
font: var(--mat-sys-body-medium);
color: var(--mat-sys-error);
}
&-label {
color: rgb(186, 186, 186);
color: var(--mat-sys-outline);
}
&-invalid {
.adf-file {
border-color: var(--theme-warn-color);
}
#{ms.$mat-form-field-prefix} {
color: var(--theme-warn-color);
border-color: var(--mat-sys-error);
}
.adf-input {
border-color: var(--theme-warn-color);
border-color: var(--mat-sys-error);
}
.adf-label {
color: var(--theme-warn-color);
color: var(--mat-sys-error);
&::after {
background-color: var(--theme-warn-color);
background-color: var(--mat-sys-error);
}
}
}
@@ -20,15 +20,11 @@ import { of, throwError } from 'rxjs';
import { TaskListService } from '../../services/tasklist.service';
import { StartTaskComponent } from './start-task.component';
import { taskDetailsMock } from '../../../testing/mock/task/task-details.mock';
import { HarnessLoader } from '@angular/cdk/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { MatButtonHarness } from '@angular/material/button/testing';
import { TaskRepresentation } from '@alfresco/js-api';
describe('StartTaskComponent', () => {
let component: StartTaskComponent;
let fixture: ComponentFixture<StartTaskComponent>;
let loader: HarnessLoader;
let service: TaskListService;
let element: HTMLElement;
let getFormListSpy: jasmine.Spy;
@@ -54,7 +50,6 @@ describe('StartTaskComponent', () => {
fixture = TestBed.createComponent(StartTaskComponent);
component = fixture.componentInstance;
element = fixture.nativeElement;
loader = TestbedHarnessEnvironment.loader(fixture);
service = TestBed.inject(TaskListService);
@@ -294,13 +289,6 @@ describe('StartTaskComponent', () => {
expect(element.querySelector('#button-start').textContent).toContain('ADF_TASK_LIST.START_TASK.FORM.ACTION.START');
});
it('should render start task button with primary color', async () => {
fixture.detectChanges();
const buttonEl = await (await loader.getHarness(MatButtonHarness.with({ selector: '#button-start' }))).host();
expect(await buttonEl.getAttribute('color')).toBe('primary');
});
it('should render task buttons with uppercase text', () => {
fixture.detectChanges();
@@ -1,4 +1,3 @@
@use '../../../styles/mat-selectors' as ms;
@use '../../../styles/flex' as flex;
adf-task-details {
@@ -7,9 +6,7 @@ adf-task-details {
.adf-activiti-task-details__header {
align-self: flex-end;
display: flex;
font-size: var(--theme-headline-font-size);
font-weight: 300;
line-height: normal;
font: var(--mat-sys-headline-small);
overflow: hidden;
margin: 8px 0 16px;
cursor: pointer;
@@ -75,22 +72,6 @@ adf-task-details {
display: flex;
flex-direction: column;
padding: 20px 0;
#{ms.$mat-slide-toggle} {
margin-left: auto;
& + div {
background-color: black;
padding: 20px;
clear: both;
margin-top: 30px;
color: white;
}
}
}
& #{ms.$mat-tab-label-text} {
flex-grow: 1;
}
}
}
@@ -4,8 +4,7 @@ adf-task-filters {
padding: 0;
width: 100%;
cursor: pointer;
font-size: var(--theme-body-1-font-size);
font-weight: bold;
font: var(--mat-sys-body-medium);
.adf-full-width {
display: flex;
@@ -20,13 +19,13 @@ adf-task-filters {
.adf-filter-action-button__label {
padding-left: 20px;
margin: 0 8px;
color: var(--theme-action-button-text-color);
color: var(--mat-sys-on-surface);
}
}
&.adf-active {
.adf-filter-action-button__label {
color: var(--adf-sidenav-active-text-color);
color: var(--mat-sys-primary);
}
}
}
@@ -60,7 +60,6 @@
<ng-template [ngTemplateOutlet]="taskFormButtons" />
<button mat-button
*ngIf="!isCompletedTask()" id="adf-no-form-complete-button"
color="primary"
class="adf-task-form-actions-button"
[disabled]="canCompleteNoFormTask()"
(click)="onCompleteTask()">
@@ -18,9 +18,8 @@
& #{ms.$mat-button-label} {
width: 58px;
height: 20px;
opacity: 0.54;
font-size: var(--theme-body-2-font-size);
font-weight: bold;
font: var(--mat-sys-title-small);
color: var(--mat-sys-on-surface-variant);
}
}
}
@@ -14,12 +14,12 @@
&-switch-to-edit-mode,
&-save-edit-mode {
color: var(--theme-primary-color);
color: var(--mat-sys-primary);
}
&-cancel-edit-mode,
&-claim-controls {
color: rgb(131, 131, 131);
color: var(--mat-sys-secondary);
}
&-card-container {
@@ -20,7 +20,7 @@
<adf-loading-content-template>
<ng-template>
<!--Add your custom loading template here-->
<mat-progress-spinner *ngIf="!customLoadingContent" class="adf-task-list-loading-margin" color="primary" mode="indeterminate" />
<mat-progress-spinner *ngIf="!customLoadingContent" class="adf-task-list-loading-margin" mode="indeterminate" />
<ng-content select="adf-custom-loading-content-template" />
</ng-template>
</adf-loading-content-template>
@@ -21,7 +21,7 @@
<button mat-button *ngIf="hasAttachFormButton()" id="adf-no-form-attach-form-button" (click)="onShowAttachForm()">{{ 'ADF_TASK_LIST.START_TASK.FORM.LABEL.ATTACHFORM' | translate }}</button>
<div class="adf-no-form-mat-card-actions-container">
<button mat-button *ngIf="hasCancelButton()" id="adf-no-form-cancel-button" (click)="onCancelButtonClick()">{{ 'ADF_TASK_LIST.START_TASK.FORM.ACTION.CANCEL' | translate }}</button>
<button mat-button *ngIf="hasCompleteButton()" id="adf-no-form-complete-button" color="primary" (click)="onCompleteButtonClick()">{{ 'ADF_TASK_LIST.DETAILS.BUTTON.COMPLETE' | translate }}</button>
<button mat-button *ngIf="hasCompleteButton()" id="adf-no-form-complete-button" (click)="onCompleteButtonClick()">{{ 'ADF_TASK_LIST.DETAILS.BUTTON.COMPLETE' | translate }}</button>
</div>
</mat-card-actions>
</mat-card>
@@ -1,5 +1,3 @@
@use '../../../styles/mat-selectors' as ms;
.adf-message-card {
width: 60%;
box-sizing: border-box;
@@ -7,7 +5,7 @@
padding: 8px 8px 0;
.adf-no-form-mat-card-actions {
border-top: solid 1px var(--adf-theme-background-status-bar-color);
border-top: solid 1px var(--mat-sys-outline-variant);
}
.adf {
@@ -25,17 +23,15 @@
&-no-form-message {
padding-bottom: 10px;
font-size: var(--theme-display-1-font-size);
line-height: 36px;
letter-spacing: -1.3px;
opacity: 0.54;
font: var(--mat-sys-headline-small);
color: var(--mat-sys-on-surface-variant);
margin: auto;
width: fit-content;
}
&-no-form-submessage {
font-size: var(--theme-subheading-2-font-size);
opacity: 0.54;
font: var(--mat-sys-title-small);
color: var(--mat-sys-on-surface-variant);
margin: auto;
width: fit-content;
}
@@ -48,12 +44,6 @@
text-transform: uppercase;
border-radius: 5px;
}
& #{ms.$mat-button-label} {
opacity: 0.54;
font-size: var(--theme-button-font-size);
font-weight: bold;
}
}
}
}