Skip to content

lidorsystems/integralui-web-angular

Repository files navigation

IntegralUI Web for Angular, v20.3

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.

Note This version is now in MAINTENANCE mode. For newest releases check this repositiry: IntegralUI Web.

IntegralUI Web 19.4 - 35+ UI Components for Angular

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-angular.git

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.

Note A light version of this library is available here IntegralUI Web Lite. You can use the Lite version for FREE, to develop Internet and Intranet web sites, web applications and other products, with no-charge.

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.