Skip to content

Commit ab1b56f

Browse files
author
Sharma
committed
Default Page implementation
1 parent 4aa503f commit ab1b56f

File tree

8 files changed

+174
-4
lines changed

8 files changed

+174
-4
lines changed

packages/angular-sdk-components/src/lib/_bridge/helpers/sdk-pega-component-map.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ import { CaseViewComponent } from '../../_components/template/case-view/case-vie
5757
import { ConfirmationComponent } from '../../_components/template/confirmation/confirmation.component';
5858
import { DataReferenceComponent } from '../../_components/template/data-reference/data-reference.component';
5959
import { DefaultFormComponent } from '../../_components/template/default-form/default-form.component';
60+
import { DefaultPageComponent } from '../../_components/template/default-page/default-page.component';
6061
import { DetailsComponent } from '../../_components/template/details/details.component';
6162
import { DetailsNarrowWideComponent } from '../../_components/template/details-narrow-wide/details-narrow-wide.component';
6263
import { DetailsOneColumnComponent } from '../../_components/template/details-one-column/details-one-column.component';
@@ -162,6 +163,7 @@ const pegaSdkComponentMap = {
162163
DateTime: DateTimeComponent,
163164
Decimal: DecimalComponent,
164165
DefaultForm: DefaultFormComponent,
166+
DefaultPage: DefaultPageComponent,
165167
DeferLoad: DeferLoadComponent,
166168
Details: DetailsComponent,
167169
DetailsFields: MaterialDetailsFieldsComponent,

packages/angular-sdk-components/src/lib/_components/designSystemExtension/banner/banner.component.scss

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,21 @@
66
align-items: start;
77
}
88

9+
.psdk-grid-filter-2 {
10+
display: grid;
11+
grid-template-columns: repeat(3, minmax(0, 1fr));
12+
column-gap: calc(2 * 0.5rem);
13+
row-gap: calc(2 * 0.5rem);
14+
align-items: start;
15+
}
16+
917
.psdk-grid-filter-wide-narrow {
1018
display: grid;
1119
grid-template-columns: 7fr 3fr;
1220
column-gap: calc(2 * 0.5rem);
1321
row-gap: calc(2 * 0.5rem);
1422
align-items: start;
15-
padding: 1rem;
23+
// padding: 1rem;
1624
}
1725

1826
.psdk-grid-filter-narrow-wide {

packages/angular-sdk-components/src/lib/_components/designSystemExtension/wss-quick-create/wss-quick-create.component.scss

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1+
.wss-quick-create-header {
2+
background-color: var(--mat-sys-surface-container);
3+
}
4+
15
.quick-link-ul-list {
26
list-style: none;
37
padding: 0;
4-
grid-template-columns: repeat(auto-fill, minmax(min(40ch, 100%), 1fr));
8+
grid-template-columns: repeat(auto-fill, minmax(min(20ch, 100%), 1fr));
59
display: grid;
610
gap: calc(1rem);
711
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<div *ngIf="enableBanner$; else nonBannerMode">
2+
<component-mapper
3+
name="Banner"
4+
[props]="{
5+
configProps$,
6+
arChildren$,
7+
title: heading,
8+
message,
9+
backgroundImage,
10+
layout$
11+
}"
12+
></component-mapper>
13+
</div>
14+
15+
<ng-template #nonBannerMode>
16+
<div>
17+
<h1 *ngIf="title">{{ title }}</h1>
18+
<p *ngIf="heading">{{ heading }}</p>
19+
<div
20+
[ngClass]="{
21+
'psdk-grid-filter-1': this.layout$ === 'one-column',
22+
'psdk-grid-filter-2': this.layout$ === 'two-column',
23+
'psdk-grid-filter-wide-narrow': this.layout$ === 'wide-narrow',
24+
'psdk-grid-filter-narrow-wide': this.layout$ === 'narrow-wide'
25+
}"
26+
>
27+
<div>
28+
<component-mapper
29+
*ngFor="let child of arChildren$"
30+
[name]="child.getPConnect().getComponentName()"
31+
[props]="{ pConn$: child.getPConnect() }"
32+
></component-mapper>
33+
</div>
34+
</div>
35+
</div>
36+
</ng-template>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
.psdk-grid-filter-1 {
2+
display: grid;
3+
grid-template-columns: repeat(1, minmax(0, 1fr));
4+
column-gap: calc(2 * 0.5rem);
5+
row-gap: calc(2 * 0.5rem);
6+
align-items: start;
7+
}
8+
9+
.psdk-grid-filter-2 {
10+
display: grid;
11+
grid-template-columns: repeat(2, minmax(0, 1fr));
12+
column-gap: calc(2 * 0.5rem);
13+
row-gap: calc(2 * 0.5rem);
14+
align-items: start;
15+
}
16+
17+
.psdk-grid-filter-wide-narrow {
18+
display: grid;
19+
grid-template-columns: 7fr 3fr;
20+
column-gap: calc(2 * 0.5rem);
21+
row-gap: calc(2 * 0.5rem);
22+
align-items: start;
23+
}
24+
25+
.psdk-grid-filter-narrow-wide {
26+
display: grid;
27+
grid-template-columns: 3fr 7fr;
28+
column-gap: calc(2 * 0.5rem);
29+
row-gap: calc(2 * 0.5rem);
30+
align-items: start;
31+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
2+
3+
import { DefaultPageComponent } from './default-page.component';
4+
5+
describe('DefaultPageComponent', () => {
6+
let component: DefaultPageComponent;
7+
let fixture: ComponentFixture<DefaultPageComponent>;
8+
9+
beforeEach(waitForAsync(() => {
10+
TestBed.configureTestingModule({
11+
declarations: [DefaultPageComponent]
12+
}).compileComponents();
13+
}));
14+
15+
beforeEach(() => {
16+
fixture = TestBed.createComponent(DefaultPageComponent);
17+
component = fixture.componentInstance;
18+
fixture.detectChanges();
19+
});
20+
21+
it('should create', () => {
22+
expect(component).toBeTruthy();
23+
});
24+
});
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import { Component, OnInit, Input, forwardRef, OnChanges, SimpleChanges } from '@angular/core';
2+
import { CommonModule } from '@angular/common';
3+
import { ReferenceComponent } from '../../infra/reference/reference.component';
4+
import { ComponentMapperComponent } from '../../../_bridge/component-mapper/component-mapper.component';
5+
6+
interface DefaultPageProps {
7+
// If any, enter additional props that only exist on this component
8+
layout?: string;
9+
title?: string;
10+
heading?: string;
11+
message?: string;
12+
backgroundImage?: string;
13+
enableBanner?: boolean;
14+
}
15+
16+
@Component({
17+
selector: 'app-default-page',
18+
templateUrl: './default-page.component.html',
19+
styleUrls: ['./default-page.component.scss'],
20+
imports: [CommonModule, forwardRef(() => ComponentMapperComponent)]
21+
})
22+
export class DefaultPageComponent implements OnInit, OnChanges {
23+
@Input() pConn$: typeof PConnect;
24+
@Input() formGroup$: any;
25+
26+
configProps$: DefaultPageProps;
27+
arChildren$: any[];
28+
title?: string;
29+
heading: any;
30+
message?: string;
31+
backgroundImage?: string;
32+
layout$?: string;
33+
enableBanner$?: boolean;
34+
35+
constructor() {
36+
this.backgroundImage = this.configProps$?.backgroundImage;
37+
}
38+
39+
ngOnInit() {
40+
// console.log(`ngOnInit (no registerAndSubscribe!): Region`);
41+
this.backgroundImage = this.configProps$?.backgroundImage;
42+
this.updateSelf();
43+
}
44+
45+
ngOnChanges(changes: SimpleChanges): void {
46+
const { pConn$ } = changes;
47+
this.backgroundImage = this.configProps$?.backgroundImage;
48+
49+
if (pConn$.previousValue && pConn$.previousValue !== pConn$.currentValue) {
50+
this.updateSelf();
51+
}
52+
}
53+
54+
updateSelf() {
55+
this.configProps$ = this.pConn$.resolveConfigProps(this.pConn$.getConfigProps()) as DefaultPageProps;
56+
57+
this.layout$ = this.configProps$.layout;
58+
this.heading = this.configProps$.heading;
59+
this.message = this.configProps$.message;
60+
this.backgroundImage = this.configProps$.backgroundImage;
61+
this.enableBanner$ = this.configProps$.enableBanner;
62+
63+
this.arChildren$ = ReferenceComponent.normalizePConnArray(this.pConn$.getChildren());
64+
}
65+
}

packages/angular-sdk-components/src/lib/_components/widget/todo/todo.component.scss

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
padding: 1rem;
1414
background-color: var(--mat-sys-surface-container);
1515
border-radius: 0.6125rem;
16-
border-left: 6px solid;
17-
border-left-color: var(--mat-sys-primary);
16+
// border-left: 6px solid;
17+
// border-left-color: var(--mat-sys-primary);
1818
}
1919

2020
.psdk-todo-header {

0 commit comments

Comments
 (0)