
Research
Security News
Malicious PyPI Package Exploits Deezer API for Coordinated Music Piracy
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
gridjs-angular
Advanced tools
Angular wrapper for Grid.js
npm install gridjs gridjs-angular
In your component template
import { Component } from '@angular/core';
import { GridjsAngularModule } from 'gridjs-angular';
import { Config } from 'gridjs';
@Component({
standalone: true,
imports: [GridJsAngularComponent],
template: `
<gridjs-angular
[gridConfig]="gridConfig"
(cellClick)="handleCellClick($event)"
(rowClick)="handleRowClick($event)"
(beforeLoad)="handleBeforeLoad($event)"
(gridLoad)="handleGridLoad($event)"
></gridjs-angular>
`
})
class ExampleComponent {
public gridConfig: Config = {
columns: ['Name', 'Email', 'Phone Number'],
data: [
['John', 'john@example.com', '(353) 01 222 3333'],
['Mark', 'mark@gmail.com', '(01) 22 888 4444'],
['Eoin', 'eoin@gmail.com', '0097 22 654 00033'],
['Sarah', 'sarahcdd@gmail.com', '+322 876 1233'],
['Afshin', 'afshin@mail.com', '(353) 22 87 8356']
]
};
handleCellClick(event: any) {
console.log('cellClicked', event);
}
handleRowClick(event: any) {
console.log('rowClicked', event);
}
handleBeforeLoad(event: any) {
console.log('beforeLoad', event);
}
handleGridLoad(event: any) {
console.log('load', event);
}
}
Finally don't forget to add gridjs theme to your angular.json
file, or import it some other way.
styles: ["node_modules/gridjs/dist/theme/mermaid.min.css"]
You can pass all Grid.js configs to the <gridjs-angular>
component as inputs. See Grid.js Config for more details.
gridConfig
You can pass Grid.js config as one object and it will be merged with other Grid.js inputs.
plugins
Grid.js plugins array. See Grid.js Plugins
load
event can also be accessed via gridLoad
(to avoid conflict with the native DOM load
event). See Grid.js Eventsh
function is working fine. See this example plugin. {
id: 'myplugin',
component: h(() => h('h1', {}, 'Hello world!'), {}),
position: PluginPosition.Header,
}
html
in column formatter like this. {
name: 'Email',
formatter: (_, row) => html(
`<a href='mailto:${row.cells[1].data}'>${row.cells[1].data}</a>`
)
}
Not currently.
You can't use Angular template syntax in Grid.js plugins, formatters, etc. because they cannot be connected to Angular's change detection system. You can use h
function or html
function to create custom HTML for your grid.
The gridjs-angular
repository is a monorepo that uses Nx and pnpm.
pnpm install
- Install all dependenciesnx serve demo
- Run demo appnx migrate latest
- Update Nx to the latest version, and upgrade all packages from package.json to their latest versionFAQs
Angular wrapper for [Grid.js](https://github.com/grid-js/gridjs)
The npm package gridjs-angular receives a total of 111 weekly downloads. As such, gridjs-angular popularity was classified as not popular.
We found that gridjs-angular demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers 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
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.
Security News
Newly introduced telemetry in devenv 1.4 sparked a backlash over privacy concerns, leading to the removal of its AI-powered feature after strong community pushback.