npm package: @medha-analytics/medha-one-access
Description: Angular library for Medha One Access admin dashboard functionality
Author: Medha Analytics
Latest version: 1.8.7

# @medha-analytics/medha-one-access

Angular library for Medha One Access admin dashboard functionality.

## Installation

```bash
npm install @medha-analytics/medha-one-access
```

## Requirements

- Angular 15 or higher
- Angular Material
- Angular CDK
- Material Icons font

## Setup

### 1. Add Material Icons to your index.html

```html
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
```

### 2. Import the module in your app

```typescript
import { MedhaOneAccessModule } from '@medha-analytics/medha-one-access';

@NgModule({
  imports: [
    MedhaOneAccessModule.forRoot({
      apiUrl: 'https://your-api-url.com/api',
      secretKey: 'your-secret-key',
      currentApplication: 'your-app-name',
      // debugInterceptor: true // Optional - enables console logging for debugging
    })
  ]
})
export class AppModule { }
```

### 3. Use the component in your template

```html
<div style="height: 500px; width: 100%;"> <!-- Your container with desired dimensions -->
  <medha-one-access
    [apiUrl]="apiUrl"
    [secretKey]="secretKey"
    [currentApplication]="applicationName">
  </medha-one-access>
</div>
```

## Responsive Design

The component automatically fits both width and height to its parent container:
- **Width**: Auto-fits to 100% of parent container width
- **Height**: Auto-fits to 100% of parent container height
- **Responsive**: Adapts to any container size, no fixed dimensions
- **Embeddable**: Works seamlessly within any parent application layout

## Authentication Approach

The library handles authentication automatically without HTTP interceptors:
- **Self-contained authentication** - All API calls include authentication headers automatically
- **No interceptor conflicts** - Does not interfere with your application's HTTP interceptors
- **Isolated from host app** - Your application's authentication remains completely separate
- **Debug mode available** - Set `debugInterceptor: true` to see authentication logs

## Features

- User Management
- User Groups Management
- Access Rules Configuration
- Artifacts Management
- Hierarchical Organization Structure
- Role-based Access Control
- Configurable HTTP Authentication

## Peer Dependencies

- `@angular/common`: >=15.0.0
- `@angular/core`: >=15.0.0
- `@angular/cdk`: >=15.0.0
- `@angular/material`: >=15.0.0
- `@angular/router`: >=15.0.0
- `@angular/forms`: >=15.0.0
- `crypto-js`: ^4.2.0

## Troubleshooting

### No More Interceptor Conflicts! 
Version 1.1.0+ completely eliminates HTTP interceptor conflicts by using internal authentication:
- ✅ No conflicts with your existing interceptors
- ✅ No complex app.config.ts setup required
- ✅ Works perfectly with both module-based and standalone Angular applications

### Debugging Authentication Issues
Enable debug mode to see authentication in action:
```typescript
MedhaOneAccessModule.forRoot({
  apiUrl: 'https://your-api-url.com/api',
  secretKey: 'your-secret-key',
  currentApplication: 'your-app-name',
  debugInterceptor: true // Shows authentication logs
})
```

This will log:
- When authentication headers are added to requests
- Which endpoints are being called with authentication
- Any errors during token generation

### Standalone Component Setup
For standalone Angular applications, simply configure in your `app.config.ts`:
```typescript
import { importProvidersFrom } from '@angular/core';
import { MedhaOneAccessModule } from '@medha-analytics/medha-one-access';

export const appConfig: ApplicationConfig = {
  providers: [
    // ... other providers
    importProvidersFrom(
      MedhaOneAccessModule.forRoot({
        apiUrl: 'https://your-api-url.com/api',
        secretKey: 'your-secret-key',
        currentApplication: 'your-app-name'
      })
    )
  ]
};
```

No special HTTP client configuration needed!

## License

MIT © Medha Analytics