The Docking component for Angular represents a widget which allows you to manage multiple windows and even the layout of your web page. Each window in the Docking can be dragged around the Web page, docked into docking zones, removed from the docking, collapsed into a minimized state to hide its content, expanded to display its content or pinned in place.
npm install -g @angular/cli ng new jqwidgets-project cd jqwidgets-project
ng add jqwidgets-ng
jQWidgets UI for Angular is distributed as jqwidgets-ng NPM package
npm install jqwidgets-ng
@import 'jqwidgets-ng/jqwidgets/styles/jqx.base.css';
"styles": [ "node_modules/jqwidgets-ng/jqwidgets/styles/jqx.base.css" ]
<jqxDocking [theme]="'fluent'" [orientation]='"horizontal"' [width]='getWidth()' [mode]='"docked"'>
<div>
<div id="window1" style="height: 220px;">
<div>
Date and Time
</div>
<div style="overflow: hidden;">
<jqxCalendar [theme]="'fluent'" [width]='180' [height]='180' style="float: left; margin-right: 10px;">
</jqxCalendar>
<h3 style="text-align: center; color: #787878;">Sunny</h3>
<div style="float: left; margin-left: 30px; text-align: center;">
<img src="https://www.jqwidgets.com/angular/images/sun-icon.png" alt="Sunny" />
</div>
<div style="text-align: left; margin-left: 5px; margin-top: 10px; font-size: 10px; float: right; margin-right: 20px;">
Mo: 23 °C<br />
To 25 °C<br />
We: 27 °C
</div>
</div>
</div>
<div id="window2" style="height: 220px">
<div>
News
</div>
<div style="overflow: hidden;">
<jqxTabs [theme]="'fluent'" [width]='375' [height]='181' [selectedItem]='1'>
<ul style="margin-left: 30px">
<li>World</li>
<li>Local</li>
<li>Sports</li>
</ul>
<div>
<div style="padding: 3px; margin: 10px; width: 150px; height: 84px; float: left;">
<img src="https://www.jqwidgets.com/angular/images/news_ie6.jpg" alt="IE6" title="IE6" />
</div>
<span style="font-size: 11px;">
Microsoft is set to get a little more pushy ensuring
you have an up-to-date browser and will automatically update Internet Explorer...
<span style="font-size: 8px;">(BBC)</span>
</span>
</div>
<div>
<div style="padding: 3px; margin: 10px; width: 144px; height: 81px; float: left;">
<img src="https://www.jqwidgets.com/angular/images/local.jpg" alt="Tennis" title="Tennis" />
</div>
<span style="font-size: 11px;">
The High Court has dismissed a challenge to laws that
require immigrant spouses to be able to speak English in order to live in the UK...
<span style="font-size: 8px;">(BBC)</span>
</span>
</div>
<div>
<div style="padding: 3px; margin: 10px; width: 130px; height: 73px; float: left;">
<img src="https://www.jqwidgets.com/angular/images/tennis.jpg" alt="Tennis" title="Tennis" />
</div>
<span style="font-size: 11px;">
British number one Elena Baltacha says Judy Murray is
a "fantastic" appointment as Great Britain's new Fed Cup captain... <span style="font-size: 8px;">(BBC)</span>
</span>
</div>
</jqxTabs>
</div>
</div>
</div>
<div>
<div id="window3" style="height: 220px">
<div>
Zodiac
</div>
<div style="overflow: hidden;">
<jqxPanel [theme]="'fluent'" [width]='375' [height]='180'>
<div style="padding-right: 20px;">
<div style="padding: 3px; width: 150px; height: 110px; float: left; margin: 10px;">
<img src="https://www.jqwidgets.com/angular/images/leo.jpg" alt="Leo" title="Leo" />
</div>
<h3 style="text-align: center; color: #787878;">Leo</h3>
<span style="font-size: 11px">
Individuals born under the zodiac sign of Leo are very
good looking and have a healthy physique, with a broad forehead. Leo are very intelligent,
extremely courageous, love their freedom and live by their own rules. Indulgence
and extravagance is like second nature to them and they love to...
</span>
</div>
</jqxPanel>
</div>
</div>
<div id="window4" style="height: 220px;">
<div>
E-mail
</div>
<div style="overflow: hidden;">
<jqxListBox [theme]="'fluent'" [width]='375' [height]='181' [source]='source'>
</jqxListBox>
</div>
</div>
</div>
</jqxDocking>
import { Component } from '@angular/core';
import { jqxDockingModule, jqxDockingComponent } from 'jqwidgets-ng/jqxdocking';
import { jqxListboxModule } from 'jqwidgets-ng/jqxlistbox';
import { jqxTabsModule } from 'jqwidgets-ng/jqxtabs';
import { jqxCalendarModule } from 'jqwidgets-ng/jqxcalendar';
import { jqxPanelModule } from 'jqwidgets-ng/jqxpanel';
@Component({
selector: 'app-root',
imports: [jqxDockingModule, jqxPanelModule, jqxCalendarModule, jqxTabsModule, jqxListboxModule],
standalone: true,
templateUrl: './app.component.html'
})
export class AppComponent {
getWidth(): any {
if (document.body.offsetWidth < 650) {
return '90%';
}
return 650;
}
source: string[] =
[
'JavaScript Certification - Welcome to our network',
'Business Challenges via Web take a part',
'jQWidgets better web, less time. Take a tour',
'Facebook - you have 7 new notifications',
'Twitter - John Doe is following you. Look at his profile',
'New videos, take a look at YouTube.com'
];
}