ngx-popper-damo v2.0.7
ngx-popper
ngx-popper is an angular wrapper for the Popper.js library.
Installation
node and npm are required to run this package.
Use npm/yarn to install the package:
$ npm install ngx-popper --save
Or
$ yarn add ngx-popper --save
You simply add into your module
NgxPopperModule
:import {NgxPopperModule} from 'ngx-popper'; @NgModule({ // ... imports: [ // ... NgxPopperModule ] })
SystemJS
System.config({
paths: {
// paths serve as alias
'npm:': 'libs/'
},
// map tells the System loader where to look for things
map: {
... ,
'ngx-popper': 'npm:ngx-popper',
'popper-directive.js': 'npm:ngx-popper',
'popper.module': 'npm:ngx-popper',
},
// packages tells the System loader how to load when no filename and/or no extension
packages: {
... ,
'ngx-popper': {
main: 'index.js',
defaultExtension: 'js'
},
'popper.js': {
main: 'popper-directive.js',
defaultExtension: 'js'
},
'popper.module': {
main: './popper.module.js',
defaultExtension: 'js'
}
}
});
Add to view:
<div [popper]="popper1Content" [popperShowOnStart]="true" [popperTrigger]="'click'" [popperPlacement]="'bottom'"> <p class="bold">Hey!</p> <p class="thin">Choose where to put your popper!</p> </div> <popper-content #popper1Content> <p class="bold">Popper on bottom</p> </popper-content>
As text:
<div [popper]="'As text'" [popperTrigger]="'hover'" [popperPlacement]="'bottom'" (popperOnShown)="onShown($event)"> <p class="bold">Pop</p> <p class="thin">on the bottom</p> </div>
Position fixed, breaking overflow:
<div [popper]="'As text'" [popperTrigger]="'hover'" [popperPlacement]="'bottom'" [popperPositionFixed]="true" (popperOnShown)="onShown($event)"> </div>
Specific target:
<div class="example"> <div #popperTargetElement></div> <div [popper]="'As text'" [popperTrigger]="'hover'" [popperPlacement]="'bottom'" [popperTarget]="popperTargetElement" (popperOnShown)="onShown($event)"> </div>
hide/show programmatically:
<div [popper]="tooltipcontent" [popperTrigger]="'hover'" [popperPlacement]="'bottom'"> <p class="bold">Pop</p> <p class="thin">on the bottom</p> </div> <popper-content #tooltipcontent> <div> <p>This is a tooltip with text</p> <span (click)="tooltipcontent.hide()">Close</div> </div> </popper-content>
Attributes map:
Option Type Default popperDisableAnimation boolean false popperDisableStyle boolean false popperDisabled boolean false popperDelay number 0 popperTimeout number 0 popperTimeoutAfterShow number 0 popperPlacement Placement(string) auto popperTarget HtmlElement auto popperBoundaries string(selector) undefined popperShowOnStart number 0 popperTrigger Trigger(string) hover popperPositionFixed boolean false popperHideOnClickOutside boolean true popperHideOnScroll boolean false popperForceDetection boolean false popperModifiers popperModifier undefined popperOnShown EventEmitter $event popperOnHidden EventEmitter $event Override defaults:
Ngx-popper comes with a few default properties you can override in default to effect all instances These are overridden by any child attributes.
NgModule({
imports: [
BrowserModule,
FormsModule,
NgxPopperModule.forRoot({placement: 'bottom'})],
declarations: [AppComponent],
providers: [],
bootstrap: [AppComponent]
})
Options | Type | Default |
---|---|---|
disableAnimation | boolean | false |
disableDefaultStyling | boolean | false |
placement | Placement(string) | auto |
boundariesElement | string(selector) | undefined |
trigger | Trigger(string) | hover |
popperModifiers | popperModifier | undefined |
positionFixed | boolean | false |
hideOnClickOutside | boolean | true |
hideOnScroll | boolean | false |
popperPlacement:
| 'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'bottom-start' | 'left-start' | 'right-start' | 'top-end' | 'bottom-end' | 'left-end' | 'right-end' | 'auto' | 'auto-top' | 'auto-bottom' | 'auto-left' | 'auto-right' | Function
popperTrigger:
| 'click' | 'mousedown' | 'hover' | 'none'
Demo
Demo
Contribute
Hell ya!!!
$ yarn install
$ yarn run build
$ yarn run dev