Skip to content

Commit bdee18b

Browse files
authored
Merge pull request #3446 from IgniteUI/didimmova/calendar-orientation
feat(calendar): create calendar orientation sample
2 parents 475a8d4 + 1fdfa08 commit bdee18b

File tree

8 files changed

+135
-2
lines changed

8 files changed

+135
-2
lines changed

live-editing/configs/CalendarConfigGenerator.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import {IgxButtonModule,
2+
IgxButtonGroupModule,
23
IgxCalendarModule,
34
IgxCardModule,
45
IgxDialogModule,
@@ -102,6 +103,16 @@ export class CalendarConfigGenerator implements IConfigGenerator {
102103
shortenComponentPathBy: "/scheduling/calendar/"
103104
}));
104105

106+
configs.push(new Config({
107+
component: 'CalendarSample9Component',
108+
appModuleConfig: new AppModuleConfig({
109+
imports: ['IgxButtonModule', 'IgxButtonGroupModule', 'IgxCalendarModule', 'CalendarSample9Component'],
110+
ngDeclarations: ['CalendarSample9Component'],
111+
ngImports: ['IgxButtonModule', 'IgxButtonGroupModule', 'IgxCalendarModule']
112+
}),
113+
shortenComponentPathBy: "/scheduling/calendar/"
114+
}));
115+
105116
configs.push(new Config({
106117
component: 'CalendarStylingSampleComponent',
107118
appModuleConfig: new AppModuleConfig({

src/app/app.module.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { FormsModule } from '@angular/forms';
44
import { BrowserModule, HammerModule } from '@angular/platform-browser';
55
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
66
import {
7-
IgxAutocompleteModule, IgxButtonModule, IgxDropDownModule,
7+
IgxAutocompleteModule, IgxButtonModule, IgxButtonGroupModule, IgxDropDownModule,
88
IgxIconModule, IgxInputGroupModule, IgxLayoutModule, IgxNavbarModule, IgxNavigationDrawerModule, IgxRippleModule, IgxTreeModule
99
} from 'igniteui-angular';
1010
import { AppRoutingModule } from './app-routing.module';
@@ -35,6 +35,7 @@ import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
3535
BrowserModule,
3636
BrowserAnimationsModule,
3737
IgxButtonModule,
38+
IgxButtonGroupModule,
3839
FormsModule,
3940
HttpClientModule,
4041
HammerModule,
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<div class="preview__sample">
2+
<article class="calendar-wrapper">
3+
<igx-calendar [monthsViewNumber]="2" [headerOrientation]="headerOrientation" [orientation]="orientation"></igx-calendar>
4+
</article>
5+
6+
<div class="preview__settings">
7+
<small>Header orientation</small>
8+
<igx-buttongroup selectionMode="singleRequired">
9+
<button
10+
igxButton
11+
(click)="setHeaderOrientation(ho)"
12+
*ngFor="let ho of orientations"
13+
[selected]="ho === headerOrientation"
14+
>
15+
{{ ho }}
16+
</button>
17+
</igx-buttongroup>
18+
19+
<small>View orientation</small>
20+
<igx-buttongroup selectionMode="singleRequired">
21+
<button
22+
igxButton
23+
(click)="setOrientation(vo)"
24+
*ngFor="let vo of orientations"
25+
[selected]="vo === orientation"
26+
>
27+
{{ vo }}
28+
</button>
29+
</igx-buttongroup>
30+
</div>
31+
</div>
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
$padding: 2rem;
2+
3+
:host {
4+
display: flex;
5+
flex-direction: column;
6+
height: calc(100vh - 90px);
7+
overflow: hidden;
8+
}
9+
10+
small {
11+
&:not(:first-child) {
12+
margin-block-start: 1rem;
13+
}
14+
}
15+
16+
.calendar-wrapper {
17+
flex-basis: 100px;
18+
display: flex;
19+
flex-direction: column;
20+
flex-grow: 1;
21+
margin: 20px;
22+
}
23+
24+
.igx-calendar{
25+
box-shadow: 0 1px 3px 0 rgba(0,0,0,.26),
26+
0 1px 1px 0 rgba(0,0,0,.12),
27+
0 2px 1px -1px rgba(0,0,0,.08);
28+
}
29+
30+
.preview {
31+
display: flex;
32+
overflow: hidden;
33+
height: 100%;
34+
35+
&__sample {
36+
display: flex;
37+
flex-wrap: wrap;
38+
overflow: auto;
39+
flex: 1;
40+
}
41+
42+
&__settings {
43+
display: flex;
44+
flex-direction: column;
45+
gap: 8px;
46+
background: hsla(var(--ig-gray-50));
47+
border-left: 1px solid hsla(var(--ig-gray-300));
48+
padding: $padding;
49+
overflow-x: auto;
50+
}
51+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { Component, ViewChild } from '@angular/core';
2+
import {
3+
IgxButtonGroupComponent}
4+
from 'igniteui-angular';
5+
6+
const orientations = ["horizontal", "vertical"] as const;
7+
type Orientation = (typeof orientations)[number];
8+
9+
@Component({
10+
selector: 'app-calendar',
11+
styleUrls: ['./calendar-sample-9.component.scss'],
12+
templateUrl: './calendar-sample-9.component.html'
13+
})
14+
15+
export class CalendarSample9Component {
16+
@ViewChild(IgxButtonGroupComponent, { static: true }) public buttonGroup: IgxButtonGroupComponent;
17+
protected orientations = Array.from(orientations, (o) => o);
18+
protected headerOrientation: Orientation = "horizontal";
19+
protected orientation: Orientation = "horizontal";
20+
21+
protected setHeaderOrientation(orientation: Orientation) {
22+
this.headerOrientation = orientation;
23+
}
24+
25+
protected setOrientation(orientation: Orientation) {
26+
this.orientation = orientation;
27+
}
28+
}

src/app/scheduling/scheduling-routes-data.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export const schedulingRoutesData = {
77
'calendar-sample-6': { displayName: 'Calendar Disabled Dates', parentName: 'Calendar' },
88
'calendar-sample-7': { displayName: 'Calendar Special Dates', parentName: 'Calendar' },
99
'calendar-sample-8': { displayName: 'Calendar Range Mode', parentName: 'Calendar' },
10+
'calendar-sample-9': { displayName: 'Calendar Orientation', parentName: 'Calendar' },
1011
'calendar-rtl-sample': { displayName: 'Calendar RTL Support', parentName: 'Calendar' },
1112
'calendar-days-view': { displayName: 'Calendar Days View', parentName: 'Calendar' },
1213
'calendar-months-view': { displayName: 'Calendar Months View', parentName: 'Calendar' },

src/app/scheduling/scheduling-routing.module.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { CalendarSample5Component } from './calendar/calendar-sample-5/calendar-
1010
import { CalendarSample6Component } from './calendar/calendar-sample-6/calendar-sample-6.component';
1111
import { CalendarSample7Component } from './calendar/calendar-sample-7/calendar-sample-7.component';
1212
import { CalendarSample8Component } from './calendar/calendar-sample-8/calendar-sample-8.component';
13+
import { CalendarSample9Component } from './calendar/calendar-sample-9/calendar-sample-9.component';
1314
import { CalendarRtlSampleComponent } from './calendar/calendar-rtl-sample/calendar-rtl-sample.component';
1415
import { CalendarStylingSampleComponent } from './calendar/calendar-styling-sample/calendar-styling-sample.component';
1516
import { CalendarYearsViewComponent } from './calendar/calendar-years-view/calendar-years-view.component';
@@ -90,6 +91,11 @@ export const schedulingRoutes: Routes = [
9091
data: schedulingRoutesData['calendar-sample-8'],
9192
path: 'calendar-sample-8'
9293
},
94+
{
95+
component: CalendarSample9Component,
96+
data: schedulingRoutesData['calendar-sample-9'],
97+
path: 'calendar-sample-9'
98+
},
9399
{
94100
component: CalendarRtlSampleComponent,
95101
data: schedulingRoutesData['calendar-rtl-sample'],

src/app/scheduling/scheduling.module.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { CommonModule } from '@angular/common';
22
import { NgModule } from '@angular/core';
33
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
44
import {
5-
IgxAutocompleteModule, IgxButtonModule, IgxCalendarModule, IgxCardModule, IgxDatePickerModule,
5+
IgxAutocompleteModule, IgxButtonModule, IgxButtonGroupModule, IgxCalendarModule, IgxCardModule, IgxDatePickerModule,
66
IgxDateRangePickerModule, IgxDateTimeEditorModule, IgxDialogModule, IgxDropDownModule, IgxIconModule,
77
IgxInputGroupModule, IgxSelectModule, IgxSnackbarModule, IgxSwitchModule, IgxTextSelectionModule,
88
IgxTimePickerModule, IgxToastModule, IgxToggleModule
@@ -17,6 +17,7 @@ import { CalendarSample5Component } from './calendar/calendar-sample-5/calendar-
1717
import { CalendarSample6Component } from './calendar/calendar-sample-6/calendar-sample-6.component';
1818
import { CalendarSample7Component } from './calendar/calendar-sample-7/calendar-sample-7.component';
1919
import { CalendarSample8Component } from './calendar/calendar-sample-8/calendar-sample-8.component';
20+
import { CalendarSample9Component } from './calendar/calendar-sample-9/calendar-sample-9.component';
2021
import { CalendarRtlSampleComponent } from './calendar/calendar-rtl-sample/calendar-rtl-sample.component';
2122
import { CalendarStylingSampleComponent } from './calendar/calendar-styling-sample/calendar-styling-sample.component';
2223
import { CalendarYearsViewComponent } from './calendar/calendar-years-view/calendar-years-view.component';
@@ -73,6 +74,7 @@ import { DateRangePickerRangeButtonsComponent } from './daterangepicker/daterang
7374
CalendarSample6Component,
7475
CalendarSample7Component,
7576
CalendarSample8Component,
77+
CalendarSample9Component,
7678
CalendarRtlSampleComponent,
7779
CalendarMultiViewComponent,
7880
CalendarStylingSampleComponent,
@@ -116,6 +118,8 @@ import { DateRangePickerRangeButtonsComponent } from './daterangepicker/daterang
116118
ReactiveFormsModule,
117119
SchedulingRoutingModule,
118120
IgxAutocompleteModule,
121+
IgxButtonGroupModule,
122+
IgxButtonModule,
119123
IgxCalendarModule,
120124
IgxCardModule,
121125
IgxDatePickerModule,

0 commit comments

Comments
 (0)