@lidorsystems/integralui-web
v20.2.1
Published
IntegralUI Web - Advanced UI Components for Angular
Downloads
206
Maintainers
Readme
IntegralUI Web for Angular, v20.2
IntegralUI Web is a library built on top of Angular 9 framework. It consists of user interface components, directives and services that can help you create modern web applications.
Here is a brief overview of what is included:
Components
Accordion - Displays a list of expandable groups in vertical layout
AutoComplete - Represents a text box with a dropdown list where you can choose among suggested options
Breadcrumb - Used for navigation, where each item can have a link that is automatically separated
Button - Represents a button
Calendar - Enables the user to select a date using a visual monthly calendar display
CheckBox - Represents a check box
ColorPicker - Allows the user to select a color by using a drop-down panel with color palette and slider
ComboBox - Advanced version of standard ComboBox element
DatePicker - Allows the user to select a date by using a drop-down calendar
Dialog - Displays a modal window
DropDownButton - Represents a button with option to show a dropdown list
Grid - Displays tabular data sets
GroupBox - An expandable container with header and content
ListBar - Displays a list of expandable groups with items
ListBox - Displays a collection of items with content in custom layouts
ListScroller - Displays a scrollable item list in horizontal or vertical layout
ListView - Displays a collection of items using several different views
Menu - Allows you to create static or dynamic menus
NumericUpDown - Displays a numeric value and allows changes within a range of defined minimum and maximum values
Paginator - Allows you to divide the content in multiple views in single page
ProgressBar - Visualize the progression of an operation
RadioButton - Represents a radio button
Rating - Visualizes ratings
SideBar - Allows you to add a custom content panel that appears by sliding from page side over main content
SlideBar - Animates slides composed of custom content
Slider - Allows changes to a numeric value within a range of defined minimum and maximum values
SplitContainer - Consists of two resizable panels separated by a splitter with tabs and command buttons
Splitter - Allows you to resize two block elements during run-time
TabStrip - Consists of multiple scrollable panels that share the same space
Toolbar - Displays a collection of different tool items and editors in one line
TreeGrid - Displays hierarchical data structures in multiple columns
TreeList - Allows you to navigate through tree hierarchy showing only one list at a time
TreeView - Displays hierarchical data structures
Directives
ContextMenu - Represents a shortcut menu
DropDown - Represents a dropdown window
Frame - Places a grip handle that allows you to resize a container during run-time
Popover - Displays custom HTML content over specified element
Range - Allows you to set limits in which an element can resize during run-time
Resize - Detects changes to the element size and fires notifications when it happens
Tooltip - Adds a tooltip to an element
Services
Common - Includes a set of common functions usable in most applications
Data - Includes a set of data related functions for different operations like: add/remove, search, etc.
DragDrop - Provides a way to use drag drop operations between custom components or elements.
Filter - Includes a set of related functions for filter operations
All components are inheritable, you can further extend functionalities of specific component by simple create a subclass of component main class. To get access to a specific component, the best way is to import the IntegralUIModule in your application.
Dependencies
IntegralUI Web requires only the following library:
Angular - v9.0 and above
DEMO
Online QuickStart App - An online demo of each component included
Installation
Install the repository by running
npm install https://github.com/lidorsystems/integralui-web.git
or directly from NPM
npm i @lidorsystems/integralui-web
Open your application module and add a reference to IntegralUI module. Use a relative path to the module location:
import { IntegralUIModule } from '../../node_modules/@lidorsystems/integralui-web/bin/integralui/integralui.module';
@NgModule({
imports: [ IntegralUIModule ],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
Note In order to use a specific component or directive in your application, follow the guidelines from corresponding article. You can find a separate article available for each component or directive.
Angular CLI
After installation, in angular.json under styles section add this code line:
"node_modules/@lidorsystems/integralui-web/bin/integralui/css/integralui.module.css"
To apply a theme, also add code line for corresonding theme file:
"node_modules/@lidorsystems/integralui-web/bin/integralui/themes/integralui.themes.office.css"
Note You can choose a theme from available themes located at '~ ... /integralui/themes' folder.
How to Reduce Bundle Size
If you are using only few components from the InetgralUI Web package, you can reduce the bundle size during compilation by modifying the integralui.module.css file. This file imports CSS files for each component that is part of the package. Inside this file import only CSS for components that you are using.
For example, if you are using only the TreeView component in your app, comment out all other imports for individual components, except for the TreeView component. The result should look like this:
/* General settings */
@import 'integralui.css';
@import 'integralui.dragdrop.css';
@import 'integralui.editing.css';
@import 'integralui.filter.css';
@import 'integralui.sorting.css';
/* Component settings */
@import 'integralui.treeview.css';
/*
* Comment out all other CSS files
*
@import 'integralui.accordion.css';
@import 'integralui.autocomplete.css';
@import 'integralui.breadcrumb.css';
. . .
*/
You should keep the General Settings section in CSS, it is used by all components.
As a final result, after compilation the build size will be greatly reduced.
Creating Custom Styles for IntegralUI Components
When you create custom styles or changes to built-in CSS classes of IntegralUI components, placed for example within app.component.css file, make sure ViewEncapsulation is set to None. This allows to override default settings from corresponding component css file. For example:
app.component.ts
import { Component, ViewEncapsulation } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
encapsulation: ViewEncapsulation.None
})
export class AppComponent {
}
app.component.css
.iui-treeview
{
width: 400px;
height: 300px;
}
In this example, the TreeView component will have its width and height set from within the app.component.
Note Changes to ViewEncapsulation set to None is avoidable, if you create your own CSS style sheet and include it in angular.json file under styles section. Like it is explained above for general IntegralUI styles.
QuickStart App
There is a demo application with source code that contains samples for each component included in the IntegralUI Web product package. It can help you to get started quickly with learning about the components and write tests immediatelly.
In order to start this application, you only need to install the latest Angular library. Open the nodejs command prompt, go to application directory and type:
npm install
After installation completes, start the application by typing:
ng serve --open
The application will start displaying the main window with links to all components included. Each component window contains a demo and description about the component functionality. You can checkout the sample source code (located under integralui-web/quickstart/src/app/samples subfolder) for more information on the sample and component used.
Release Notes
This is Trial version of the product. All features are fully functional, except that each component displays a pop-up trial window.
License Information
You may use this version for the limited purposes of demonstrations, trials or design-time evaluations.
This project has been released under the IntegralUI Web License, and may not be used except in compliance with the License. A copy of the License should have been installed in the product's root installation directory or it can be found here: License Agreement.
This SOFTWARE is provided "AS IS", WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.