Repository navigation
Release v16.2.0
16.2.0
Minor Changes
- cc90442: Fix to GitHub Pages workflow, again
Patch Changes
- cbdba55: fixing failed release of 16.1.0
Minor Changes
- 91e5fdf: Switch from Karma to Vitest
- fcc3766: update workflows for Node 24, GitHub Actions, and post-merge deployment
- 7e39b69: chore: automate the stackblitz update process
- 7cb5ee0: Update the demo speed-dial component to remove deprecations
Patch Changes
- 1333852: gh pages work
Major Changes
- 3469f0c: Update to Angular v21
Patch Changes
- 9882659: fix: add push statement during the release process
Minor Changes
- d35ed99: update Node.js version and modernize release flow, Angular v20.3.19
CHANGELOG
Breaking Changes
- Peer dependencies of @angular/{**} are now set to ~20 or higher.
- Some of the highlights:
- Stabilizing APIs such as effect, linkedSignal, toSignal, incremental hydration, route-level render mode config and promoting zoneless to developer preview
- Improved debugging with Angular DevTools and partnering with Chrome for custom Angular reporting directly in Chrome DevTools
- Polishing developer experience with style guide updates, type checking and language service support for host bindings, support for untagged template literal expressions in templates, template hot module replacement by default, and more.
- Advancements in GenAI development with llms.txt and angular.dev guides and videos for building Generative AI applications
- Launching a request for comments for an official mascot for Angular
Notes
Recommended reading:
Breaking Changes
- None
Notes
- Updated dependencies to resolve moderate build chain vulnerabilities.
Breaking Changes
- None
Notes
- Updated dependencies to resolve moderate build chain vulnerabilities.
- node to 20.17.0
- npm to 11.3.0
Breaking Changes
- None
Notes
- Updated dependencies to resolve moderate build chain vulnerabilities.
Breaking Changes
- None
Notes
- Updated dependencies to resolve moderate build chain vulnerabilities.
Breaking Changes
- None
Breaking Changes
- Peer dependencies of @angular/{**} are now set to ~19 or higher.
- Angular 19 has made
standalonecomponents the default, which significantly affects how SatPopover is loaded.
Notes
Recommended reading:
Bootstrapping has changed!
If you want the popover animations to work, you must use provideAnimations in your AppConfig;
or, if you prefer to not have animations, you can use provideNoopAnimations in your AppConfig.
import { provideAnimations, provideNoopAnimations } from '@angular/platform-browser/animations';
bootstrapApplication(AppComponent, {
// AppConfig
providers: [
provideAnimations()
/* provideNoopAnimations() /* Use if you want to disable animations */
]
});Alteranatively, if you still use bootstrapModule, you can continue to import BrowserAnimationsModule in this manner.
import { BrowserAnimationsModule, NoopAnimationsModule } from '@angular/platform-browser/animations';
@NgModule({
...
imports: [
BrowserAnimationsModule, // Use if you want to enable animations
/* NoopAnimationsModule /* Use if you want to disable animations */
],
...
})
export class AppModule { }Can I still use modules to import SatPopover?
Yes. SatPopoverModule can still be imported, although you may still have to import SatPopoverComponent,
SatPopoverAnchorDirective, or SatPopoverHoverDirective as necessary.
// my-component.module.ts
import { SatPopoverModule } from '@ncstate/sat-popover';
@NgModule({
...
imports: [
SatPopoverModule,
],
exports: [
MyComponent
],
...
})
export class MyComponentModule { }
// my-component.component.ts
import { Component, ViewChild } from '@angular/core';
import { SatPopoverAnchorDirective, SatPopoverComponent } from '@ncstate/sat-popover';
@Component({
standalone: false,
selector: 'my-component',
template: '<button [satPopoverAnchor]="p" (click)="p.toggle()">Click me</button> <sat-popover #p>Hello!</sat-popover>'
})
export class MyComponent {}Breaking Changes
- None
Notes
- Peer dependencies of @angular/{**} are now set to ~18.2 or higher
- Addresses some vulnerabilities in dependencies used by Angular's build system.
Breaking Changes
- None
Notes
- Correcting the npm account for the latest release
Breaking Changes
- None
Notes
- Peer dependencies of @angular/{**} are now set to ~18.0
Breaking Changes
- None
Notes
- @angular/cdk and @angular/material are updated from 17.3.1 to 17.3.2
Breaking Changes
- Peer dependencies of @angular/{**} are now set to ~17.3
- Peer dependencies are re-established in the published
package.json- Constraints are adjusted from patch versions to major versions.
Breaking Changes
-
Peer dependencies of @angular/{**} are now set to ^17.1.2
-
Any reference to
SatPopovermust be changed toSatPopoverComponent.
This complies with the Angular style guide. -
tslint is removed in favor of eslint.
-
ivy build options are removed and no longer supported, as they are the default.
-
Updated other packages
Breaking Changes
- Peer dependencies of @angular/{**} are now set to ^16.2.6
Breaking Changes
- Peer dependencies of @angular/{**} are now set to ^16.2.4
ngccremoved frompostinstallhook, as it is no longer required.
Tagging got screwed up. 10.2.2 is good.
Breaking Changes
- Peer dependencies of @angular/{**} are now set to ^15.1.1.
Breaking Changes
- Peer dependencies of @angular/{**} are now set to ^15.0.4.
Breaking Changes
- Peer dependencies of @angular/{**} are now set to ^14.0.4.
Fixes
- Webpack issues introduced in v9.0.0
Breaking Changes (aka Features)
- Peer dependencies of @angular/{**} are now set to ^13.3.6.
Breaking Changes (aka Features)
- Specifically excluding suppport for IE 9-11
Fixes
- Transition firing for afterClose now fires after close ;)
Breaking Changes (aka Features)
- Peer dependencies of
@angular/{core,common,cdk}are now set to^12.1.3.
Fixes
- Transitions not firing after first time bug was killed
Features
- Added panelClass option
- Added injection token for default transition
- Added ability to customizable scale values for animation
- General cleanup, and added git hook/package script for linting
Fixes
- Demo build wasn't building
Breaking Changes (aka Features)
- Peer dependencies of
@angular/{core,common,cdk}are now set to^11.0.0.
Breaking Changes (aka Features)
- Peer dependencies of
@angular/{core,common,cdk}are now set to^10.0.*.
Breaking Changes (aka Features)
- Peer dependencies of
@angular/{core,common,cdk}are now set to^9.0.4.
Breaking Changes (aka Features)
- Peer dependencies of
@angular/{core,common,cdk}are now set to^8.0.0. - Dynamic Anchors are now available. See README for more information on this breaking change.
- No significant changes from v3.3.0, just bumping version via
semverprotocol.
Breaking Changes (aka Features)
- Peer dependencies of
@angular/{core,common,cdk}are now set to^8.0.0. - Dynamic Anchors are now available. See README for more information on this breaking change.
Features
- You can now use the
SatPopoverHoverDirective
which provides built in hover and delay mechanics (thank you @Abrissirba!). Add the directive
to any child element of the anchor and supply an optional delay.
Features
- Focus restoration can now be disabled via the
restoreFocus
property. - The popover/anchor now have
realign/realignPopovermethods to realign the popover to
the anchor in case the anchor's size or position changes. - The anchor now has a
getElementmethod for getting the anchor'selementRef. - The
openandopenPopovermethods now support an optionalSatPopoverOpenOptionsobject where
autoFocusandrestoreFocusoptions can be set while opening the popover. Note that these
options do no take precendence over the component inputs. For example, ifrestoreFocus
is set tofalseeither in the open options or via the component input, focus will not be restored.
Breaking Changes
Peer dependencies of @angular/{core,common,cdk} are now set to ^7.0.0.
Other
- Build library before tagging release
Other
- Copy README to published package so it shows up on npm
- Add current version number to the demo/development app
Features
SatPopoverAnchoringServiceis now exposed as part of the public api. This allows you to
build your own directives and services to anchor popovers to any element. An easier-to-use
service is forthcoming.
Other
- Internally use the
@angular/clifor the build/test toolchain. This thankfully gets rid of
a bunch of the hokey build scripts and will ease future development. There should be no
change from the end-user's perspective.
Breaking Changes
Peer dependencies of @angular/{core,common,cdk} are now set to ^6.0.0.
Fixes
- RxJS and CDK rollup globals have been fixed for ng 6 update (thank you @aitboudad!)
Other
- Internally use the FlexibleConnectedPositionStrategy for connected positioning. This uses the
same logic as the ConnectedPositionStrategy did previously, so it should not break or change
any behavior.
Breaking Changes
Peer dependencies of @angular/{core,common,cdk} are now set to >=6.0.0-rc.0 <7.0.0. These will be
updated to ^6.0.0 in the popover's 2.0.0 release.
The API seems pretty stable, so 1.0.0 it is!
Features
- By default, the popover will spin through a couple fallback alignments when the specified one
does not fit within the viewport. This can be troublesome if your popover requires some cardinal
relationship with your anchor (e.g. tooltip caret). You can now useforceAlignmentto ensure
the alignment you've chosen is the one used. - By default, when the user scrolls (or changes the viewport size), the popover will continue
to use the fallbacks to remain within the viewport. This is potentially distracting, so you can
now uselockAlignmentto ensure the popover maintains the same alignment as long as it is open.
It will be recalculated the next time the popover is opened.
Features
- Autofocus behavior can be disabled via
autoFocus. - Interactive closing actions (i.e. backdrop clicks and escape key) can now be disabled via
interactiveClose. You can still use the(backdropClicked)and(overlayKeydown)outputs to catch those events.
Fixes
- Popover directionality now works with
dirset on elements other than<body>.
Other
- In preparation of support for popovers being anchored and opened via a service, the overlay
logic has been refactored out of the anchor directive and into another service. This should have
no impact on the usage of the popover.
Breaking Changes
Peer dependency of @angular/cdk is now set to ^5.0.0.
Breaking Changes
Peer dependency of @angular/cdk is now set to ^5.0.0-rc.1.
Features
- The popover now has
backdropClickedandoverlayKeydownoutputs.
Fixes
- The last release had a regression where the transform origin wouldn't update when the position
changed. This would cause the popover to sometimes animate to or from the wrong direction.
Other
- Check the new speed dial demo
- Using the test runner is way less obnoxious
- Build script is somewhat simplified by not required extra tsconfigs
- The popover is now closed with the overlay keydown stream instead of a keydown handler in the
template. This means that even popovers without focusable elements can be closed with
esc. Try it on a tooltip. - Rudimentary Travis tests are in place with some sweet new badges in the README
Breaking Changes
The biggest change this release is how positioning the popover works. You can now align
popovers at the start or end of the anchor, on either or both axes. This removes the need to
have an overlapAnchor option. Further, to better describe the intention of the positioning
parameters, xPosition has been renamed to horizontalAlign and yPosition has been renamed to
verticalAlign.
We hope these two changes will make it easier to depict a mental model of the expected behavior.
It also gives you 8 more possible positions!
This table should give you an idea of how to migrate:
| Previously | Currently |
|---|---|
xPosition="before" overlapAnchor="true" |
horizontalAlign="end" |
xPosition="after" overlapAnchor="false" |
horizontalAlign="after" |
yPosition="below" overlapAnchor="true" |
verticalAlign="start" |
yPosition="above" overlapAnchor="false" |
verticalAlign="above" |
For convenience, aliases have also been provided
| Input | Alias |
|---|---|
horizontalAlign |
xAlign |
verticalAlign |
yAlign |
The following have also been renamed:
SatPopoverPositionX->SatPopoverHorizontalAlignSatPopoverPositionY->SatPopoverVerticalAlign
Features
- Add
startandendoptions tohorizontalAlignandverticalAlign. - Use better fallback strategy that originates from target alignment
- The popover now has
afterOpenandafterCloseoutputs that emit when the animation is complete - The popover now has a
'close'scroll strategy. It will close itself whenever the parent
container is scrolled.
Fixes
- Switch to rxjs lettable operators to avoid polluting user's global Rx prototype
- Allow user to declare popover eariler in a template than the anchor
Other
- Fix typo in readme
- Publish demo app at https://ncstate-sat.github.io/popover/
- Add stacblitz starter to readme and issue template
- Rename 'position' to 'align' and 'x/y' to 'horizontal/vertical'
- Support cdk @ 5.0.0-rc0 and Angular 5
Breaking Changes
The npm package name has changed from @sat/popover to @ncstate/sat-popover. All class names
and directive selectors are the same.
npm uninstall @sat/popover
npm install --save @ncstate/sat-popover
import { SatPopoverModule } from '@ncstate/sat-popover';Features
- By default, the opening and closing animations of a popover are quick with a simple easing curve.
You can now modify these animation curves usingopenTransitionandcloseTransition. - By default, when a popover is open and the user scrolls the container, the popover will reposition
itself to stay attached to its anchor. You can now adjust this behavior withscrollStrategy. - RTL support. The popover will now position and animate itself in accordance with the document's
body direction.
Fixes
- Pressing esc while focused inside a popover will now properly close the popover.
This was a regression introduced in the last release. - Changing the position properties of a popover will now apply even if the popover has been opened
before. - Recreation of the popover waits until it is closed so that the popover isn't disposed while open.
Other
- An error will be thrown if you try to call the open/close/toggle methods on a popover with
no corresponding anchor. - An error will be thrown if you try to pass an invalid
xPositionoryPosition - Refactor of the demo-app to better encapsulate each demo.
- Updated import statement in README (thanks to @julianobrasil)
- Added note to README about
cdkScrollable
Breaking Changes
- Anchors not longer default to toggling the popover on click. That means you are required to
manually open and close the popover as needed. This is done to prevent prescription of behavior
and to avoid potentially growing the number of "disable apis". - That means
satDisableClickhas been removed. - Backdrops are no longer included by default. For the same reason as click behavior, they are now
opt-in. UsehasBackdropon a popover to specify that a backdrop should appear behind it when open. - That means
disableBackdrophas been removed. popoverOpen()on the anchor has been renamed toisPopoverOpen()
Features
SatPopovernow has anisOpen()method.
Fixes
openedoutput ofSatPopoverworks now.
Other
- Tests have been added for the api facing portions. For now, positioning and fallback behavior
still relies on proper testing in the CDK.
Features
- Allow popovers to be opened, closed, or toggled from the component itself, rather than just
the anchor. - Backdrops can be disabled with the
disableBackdropproperty on thesat-popover. - Backdrops can be customized using the
backdropClassproperty on thesat-popover.
Other
- Updates peer @angular/cdk dependency to 2.0.0-beta.12
Fixes
- Inlines resources in the metadata files to enable AOT builds
- Adds more properties to the dist package.json for better display on npm
Fixes
- Ships cdk/overlay component css - needed to properly position the popover
- Cleans up the README and moves a bunch of TODOs to Github's issue tracker