jsim-lazy-expandable
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

Jsim Lazy Expandable

Light weight and easy to use expansion panel with lazy loaded content.

Built in Angular 13.

No dependencies on Angular Materials or Angular CDK.

Default styling based on Angular materials but fully costumizable with CSS classes of low specificity.

Demo

Demo on StackBlitz

Usage

Import the LazyExpandableModule Create the expandable panel with the element jsim-lazy-expandable

Contents of the panel can be set with directives and some properties.

Directives

Name Description
exp-header-title Content for the left of the Header
exp-header-subtitle Content for the right of the header
exp-content Main content of the expansion panel
*jsimLazyContent Directive to activate lazy loading of content

Properties

Property Type I/O Default Description
isOpen boolean Input false Sets panel open or closed
openChanged EventEmitter Output N/A Emits when open/close changes
hideIcon boolean Input false Sets arrow icon hidden
headerHeight number Input 48 Height of header when collapsed in pixels
headerHeightExpanded number Input 64 Height of header when expanded in pixels
animationSpeed number Input 0.5 Speed of animation in pixels per millisecond
animationEnd EventEmitter Output N/A Emits when animation end with current isOpen
disabled boolean Input false Disables the expansion and collapse of the panel

Example

<jsim-lazy-expandable [isOpen]="false">
    <div exp-header-title>This is my Title</div>
    <div exp-header-subtitle>This is a Description</div>
    <div exp-content *jsimLazyContent>
        <my-lazy-component></my-lazy-component>
    </div>
</jsim-lazy-expandable>

Styling

Every element has a specific css class and most classes are very low specificity.

Class Description
lazy-exp-container Outer container for expansion panel
lazy-exp-header The header row
lazy-exp-header-title Content on the left side of the header
lazy-exp-header-subtitle Content of the right side of the header
lazy-exp-header-icon Arrow icon
lazy-exp-content Container of the main content

Css variables set in lazy-exp-container

Variable Description Value
--background-color Color of the panel white
--background-color-hover Color of the Header when hovered rgba(0,0,0,0.04)
--icon-color Color of the arrow icon rgb(119,119,119)

License

MIT

Package Sidebar

Install

npm i jsim-lazy-expandable

Weekly Downloads

1

Version

1.0.0

License

MIT

Unpacked Size

93.7 kB

Total Files

18

Last publish

Collaborators

  • joaosimao