
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
@kernpro/angular-wordcloud
Advanced tools
The `WordcloudComponent` is an Angular standalone component for rendering interactive word clouds. It is designed for flexibility, performance, and visual appeal, supporting up to **90 words** in a single cloud.
The WordcloudComponent
is an Angular standalone component for rendering interactive word clouds. It is designed for flexibility, performance, and visual appeal, supporting up to 90 words in a single cloud.
Try out the component with these interactive demos:
small
, medium
, large
, extra-large
, huge
) for visual emphasis.linkclick
event when a word is clicked.Inspired by d3‑cloud (https://www.npmjs.com/package/d3-cloud). This library drops the d3 dependency, reimplements the layout (Archimedean spiral + collisions) in focused modules, uses a fixed‑area single‑pass pipeline, modern Angular 20 APIs (standalone, input()/output(), signals), and includes comprehensive unit tests across canvas, layout, animations, and components.
Install the package via npm:
npm install @kernpro/angular-wordcloud
Import the component and use it in your Angular templates:
<kp-wordcloud [words]="wordList" [loading]="isLoading">
<!-- Optional: Custom loading content -->
<div slot="loader">
<my-custom-spinner></my-custom-spinner>
<p>Generating word cloud...</p>
</div>
</kp-wordcloud>
words: readonly WordcloudWord[]
(default: []
)
text
and a size
in: small | medium | large | extra-large | huge
.loading: boolean
(default: false
)
true
, shows the loader and renders an empty cloud (no words) until layout completes.size: Readonly<Size>
(default: { width: 640, height: 360 }
)
layoutComplete: void
linkclick: string
text
when a word is clicked.The component supports custom loading content via content projection:
<kp-wordcloud [words]="words" [loading]="isLoading">
<div slot="loader">
<!-- Your custom loading content goes here -->
<mat-spinner diameter="40"></mat-spinner>
<p>Creating your word cloud...</p>
</div>
</kp-wordcloud>
If no custom loader is provided, a default CSS spinner with "Loading..." text will be displayed.
The word cloud emits the following events:
layoutComplete
: Fired when the word cloud has finished processing and rendering all words. This is useful for hiding loading states or triggering follow-up actions.Note: Individual word click events are handled internally by the word cloud component.
type WordcloudWord = {
text: string;
size: 'small' | 'medium' | 'large' | 'extra-large' | 'huge';
color?: string;
};
The component supports custom loading content through Angular's content projection. Use the slot="loader"
attribute to provide your own loading UI:
<kp-wordcloud [words]="words" [loading]="true">
<div slot="loader">
<!-- Custom spinner using Angular Material -->
<mat-spinner diameter="50"></mat-spinner>
<p style="margin-top: 16px; color: #666;">Processing your data...</p>
</div>
</kp-wordcloud>
<kp-wordcloud [words]="words" [loading]="true">
<div slot="loader" class="custom-loader">
<!-- Custom CSS animation -->
<div class="pulse-loader"></div>
<h3>Generating Word Cloud</h3>
<p>Please wait while we process your content...</p>
</div>
</kp-wordcloud>
If no custom loader is provided, the component displays a default loading state with:
loading
is true
: Shows the loading content and passes an empty array to the internal word cloudloading
is false
: Hides the loading content and displays the actual word cloudimport { Component } from '@angular/core';
import { WordcloudComponent, WordcloudWord } from '@kernpro/angular-wordcloud';
@Component({
template: `
<kp-wordcloud [words]="words" [loading]="isLoading" (layoutComplete)="onWordCloudReady()">
<!-- Custom loading spinner -->
<div slot="loader" class="my-loader">
<div class="spinner"></div>
<p>Creating your personalized word cloud...</p>
</div>
</kp-wordcloud>
`,
imports: [WordcloudComponent],
})
export class MyComponent {
isLoading = true;
words: WordcloudWord[] = [
{ text: 'Angular', size: 'huge', color: '#dd0031' },
{ text: 'TypeScript', size: 'large', color: '#3178c6' },
{ text: 'Component', size: 'medium', color: '#42a5f5' },
{ text: 'Reactive', size: 'large', color: '#66bb6a' },
{ text: 'Modern', size: 'small', color: '#ff7043' },
// ... up to 90 words total
];
onWordCloudReady() {
console.log('Word cloud has finished rendering!');
// Perform any post-render actions here
}
}
size
property in the component.getVisualSize
mapping.MIT. This package includes references inspired by d3-cloud (BSD‑3‑Clause). BSD‑3‑Clause is MIT‑compatible; see THIRD_PARTY_NOTICES.md
for the required attributions and terms.
FAQs
The `WordcloudComponent` is an Angular standalone component for rendering interactive word clouds. It is designed for flexibility, performance, and visual appeal, supporting up to **90 words** in a single cloud.
The npm package @kernpro/angular-wordcloud receives a total of 1 weekly downloads. As such, @kernpro/angular-wordcloud popularity was classified as not popular.
We found that @kernpro/angular-wordcloud demonstrated a healthy version release cadence and project activity because the last version was released less than 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
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.