
<a href="https://dotglitch.dev/#/ContextMenuLibrary">
  <h1 align="center">ngx-common</h1>
</a>

<p align="center">
  `@dotglitch/ngx-common` provides a series of common-use components, directives, and services for Angular applications.
</p>

[![npm](https://img.shields.io/npm/v/@dotglitch/ngx-common.svg)](https://www.npmjs.com/package/@dotglitch/ngx-common)
[![npm](https://img.shields.io/npm/dm/@dotglitch/ngx-common.svg)](https://www.npmjs.com/package/@dotglitch/ngx-common)
[![npm downloads](https://img.shields.io/npm/dt/@dotglitch/ngx-common.svg)](https://npmjs.org/@dotglitch/ngx-common)
[![GitHub stars](https://img.shields.io/github/stars/knackstedt/dotglitch-ngx.svg?label=GitHub%20Stars&style=flat)](https://github.com/knackstedt/dotglitch-ngx)


Quickstart 
=====

## Install

```bash
$ npm install @dotglitch/ngx-common
```

## Optional Dependencies

This library uses **Secondary Entry Points** to keep the core bundle small and make heavy dependencies optional. If you use any of the following components, you must install their respective peer dependencies:

| Component | Entry Point | Peer Dependencies |
| --- | --- | --- |
| **VSCode** | `@dotglitch/ngx-common/vscode` | `monaco-editor`, `path-browserify` |
| **Filemanager** | `@dotglitch/ngx-common/filemanager` | `angular-split`, `ngx-scrollbar`, `ulidx` |
| **Command Palette** | `@dotglitch/ngx-common/command-palette` | `ngx-scrollbar` |
| **Tooltip/Dropdown** | `@dotglitch/ngx-common/tooltip` | `ulidx` |
| **Menu** | `@dotglitch/ngx-common/menu` | `ulidx` |
| **Overlay Wrapper** | `@dotglitch/ngx-common/overlay-wrapper` | `gsap` |

---

## Features

- **Core Components & Services**
    - [Lazy Loader](./src/components/lazy-loader/README.md)
    - [Fetch Service](./src/services/fetch.md)
    - [Dependency Service](./src/services/dependency.md)
    - [Keyboard Service](./src/services/keyboard.md)
    - [Dialog Service](./src/services/dialog.md)
    - [Navigation Service](./src/services/navigation.md)
    - [Theme Service](./src/services/theme.md)

- **Secondary Entry Points (Optional)**
    - [VS Code wrapper](./src/components/vscode/README.md) (`/vscode`)
    - [File Manager](./src/components/filemanager/filemanager.component.ts) (`/filemanager`)
    - [Command Palette](./src/components/command-palette/command-palette.component.ts) (`/command-palette`)
    - [Transition Panel](./src/components/overlay-wrapper/overlay-wrapper.component.ts) (`/overlay-wrapper`)

- **Directives & Pipes**
    - [App Menu & Context Menu](./src/directives/menu.md) (`/menu`)
    - [Tooltip](./src/directives/tooltip.md) (`/tooltip`)
    - [HTML-Bypass](./src/pipes/html-bypass.md)
    - [Resource-Bypass](./src/pipes/resource-bypass.md)
    - [Script-Bypass](./src/pipes/script-bypass.md)
    - [Style-Bypass](./src/pipes/style-bypass.md)
    - [URL-Bypass](./src/pipes/url-bypass.md)
