
Research
Supply Chain Attack on Axios Pulls Malicious Dependency from npm
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.
@ng-ar/ar-popover
Advanced tools
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.0.0.
Popover Demo | StackBlitz Template | Documentation
Angular Popover is production ready.
This was originally created as an example for a @angular/material issue feature request.
Issue can be found at angular/material2#2691
If you'd like to contribute please create an issue or pull request.
| Angular Version | Package Compatibility |
|---|---|
| 16.x | 5.x |
| 17.x | 6.x |
Material theme picker
Standard popover


Google+ style popover

Install npm package using:
npm install @ng-ar/ar-popover
Install required packages @angular/cdk
yarn add @angular/cdk
or
npm install @angular/cdk
The CDK overlays depend on a small set of structural styles to work correctly. If you're using Angular Material, these styles have been included together with the theme, otherwise if you're using the CDK on its own, you'll have to include the styles yourself. You can do so by importing the prebuilt styles in your global stylesheet:
@import '@angular/cdk/overlay-prebuilt.css';
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { MdePopoverModule } from '@ng-ar/ar-popover';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
MdePopoverModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
<mde-popover> is a floating panel containing html content.
By itself, the <mde-popover> element does not render anything. The popover is attached to and opened
via application of the mdePopoverTriggerFor directive:
<mde-popover #appPopover="mdePopover">
<button md-button> Settings </button>
<button md-button> Help </button>
</mde-popover>
<button md-button [mdePopoverTriggerFor]="appPopover"
mdePopoverTriggerOn="click">
<md-icon>more_vert</md-icon>
</button>
mde-popovermdePopover| Name | Description |
|---|---|
| @Input('mdePopoverPositionX') positionX | Position of the popover in the X axis. Type: string, Values: 'start' || 'end' || 'before' || 'after' || 'center', Default: 'after'. |
| @Input('mdePopoverPositionY') positionY | Position of the popover in the Y axis. Type: string, Values: 'start' || 'end' || 'above' || 'below' || 'center', Default: 'below' |
| @Input('mdePopoverTriggerOn') triggerEvent | Event for triggering popover 'click', 'hover' and 'none'. Default: hover |
| @Input('mdePopoverEnterDelay') enterDelay | Delay for popover before enters, Type: number, Default: 200 |
| @Input('mdePopoverLeaveDelay') leaveDelay | Delay for popover before leaves, Type: number, Default: 200 |
| @Input('mdePopoverOverlapTrigger') overlapTrigger | Whether the popover should overlap its trigger. Type: boolean, Default: true |
| @Input('mdePopoverOffsetX') targetOffsetX | Offset position of the popover from target in the X axis. Type: number, Default: 0 |
| @Input('mdePopoverOffsetY') targetOffsetY | Offset position of the popover from target in the Y axis. Type: number, Default: 0 |
| @Input('mdePopoverArrowOffsetX') arrowOffsetX | Offset position of the popover arrow from the X axis. Type: number, Default: 0 |
| @Input('mdePopoverArrowOffsetY') arrowOffsetY | Offset position of the popover arrow from the Y axis. Type: number, Default: 0 |
| @Input('mdePopoverArrowWidth') arrowWidth | Arrow width in pixels. |
| @Input('mdePopoverArrowColor') arrowColor | Arrow color, accepts CSS color values. Default: rgba(0, 0, 0, 0.12) |
| @Input('mdePopoverCloseOnClick') closeOnClick | Whether the popover should close on click. Type: boolean, Default: true |
| @Input('mdeFocusTrapEnabled') focusTrapEnabled | Whether the popover should focus trap. Type: boolean, Default: true |
| @Input('mdeFocusTrapAutoCaptureEnabled') focusTrapAutoCaptureEnabled | Whether the popover should focus trap auto capture focus. Type: boolean, Default: true |
| @Input('class') classList | This method takes classes set on the host mde-popover element and applies them on the popover template that displays in the overlay container. Otherwise, it's difficult to style the containing popover from outside the component. |
| @Output() close | Event emitted when the popover is closed. |
setPositionClasses
It's necessary to set position-based classes to ensure the popover panel animation folds out from the correct direction.
| Parameters |
|---|
posX? |
posY? |
This directive is intended to be used in conjunction with an mde-popover tag. It is responsible for toggling the display of the provided popover instance.
[mdePopoverTriggerFor]mdePopoverTrigger| Name | Description |
|---|---|
| @Input('mdePopoverTriggerFor') popover | References the popover instance that the trigger is associated with. |
| @Input('mdePopoverTargetAt') targetElement | References the popover target instance that the popover positioning is associated with. |
| @Input('mdePopoverPositionX') positionX | Position of the popover in the X axis. |
| @Input('mdePopoverPositionY') positionY | Position of the popover in the Y axis. |
| @Input('mdePopoverTriggerOn') triggerEvent | Event for triggering popover 'click', 'hover' and 'none'. Default: 'hover' |
| @Input('mdePopoverEnterDelay') enterDelay | Delay for popover before enters, Type: number, Default: 200 |
| @Input('mdePopoverLeaveDelay') leaveDelay | Delay for popover before leaves, Type: number, Default: 200 |
| @Input('mdePopoverOverlapTrigger') overlapTrigger | Whether the popover should overlap its trigger. Type: boolean, Default: true |
| @Input('mdeDisablePopoverTrigger') disablePopoverTrigger | Disables popover trigger. Type: boolean, Default: false |
| @Input('mdePopoverOffsetX') targetOffsetX | Offset position of the popover from target in the X axis. Type: number, Default: 0 |
| @Input('mdePopoverOffsetY') targetOffsetY | Offset position of the popover from target in the Y axis. Type: number, Default: 0 |
| @Input('mdePopoverArrowOffsetX') arrowOffsetX | Offset position of the popover arrow from the X axis. Type: number, Default: 0 |
| @Input('mdePopoverArrowOffsetY') arrowOffsetX | Offset position of the popover arrow from the Y axis. Type: number, Default: 0 |
| @Input('mdePopoverArrowWidth') arrowWidth | Arrow width in pixels. Type: number, Default: 8 |
| @Input('mdePopoverArrowColor') arrowColor | Arrow color, accepts CSS color values. Default: rgba(0, 0, 0, 0.12) |
| @Input('mdePopoverCloseOnClick') closeOnClick | Whether the popover should close on click. Type: boolean, Default: true. |
| @Input('mdePopoverBackdropCloseOnClick') backdropCloseOnClick | Whether the popover should close on backdrop click. Type: boolean, Default: true. |
| @Output() opened | Event emitted when the associated popover is opened. |
| @Output() closed | Event emitted when the associated popover is closed. |
togglePopover
Toggles the popover between the open and closed states.
openPopover
Opens the popover.
closePopover
Closes the popover.
destroyPopover
Removes the popover from the DOM.
Please report bugs and issues here.
MIT © Joe Jordan Brown
FAQs
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.0.0.
We found that @ng-ar/ar-popover demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.

Security News
TeamPCP is partnering with ransomware group Vect to turn open source supply chain attacks on tools like Trivy and LiteLLM into large-scale ransomware operations.