npm package: @propmix/profet-common-header
Description: This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 15.2.0.
Latest version: 3.5.0

  

# CommonHeader

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 15.2.0.

  
## Usage


1. Install the package using the command

    npm install @propmix/profet-common-header


2. Import the library in module

        import { CommonHeaderModule } from "@propmix/profet-common-header";
        imports: [
            
            <!-- Other import statements -->
            CommonHeaderModule
        ]


3. Use library in the component html

        <lib-header>
            <!-- Add your custom content here (If any) -->
        </lib-header>

4. Add library configuration [Find `config` section below]



## Config


The `PROFET_APPS` can have the following possible values:

| Constant                               | Description                            |
|----------------------------------------|----------------------------------------|
| `PROFET_APPS.profet_portal`            | **Profet Portal**                      |
| `PROFET_APPS.appraisal_management`     | **Workflow Management**                |
| `PROFET_APPS.appraisal_review`         | **Profet Review**                      |
| `PROFET_APPS.appraisal_valuation`      | **Profet Valuation**                   |

  
Use an initializer function to configure parameters

        import { HeaderConfig, PROFET_APPS } from '@propmix/profet-common-header';
        import { Amplify } from 'aws-amplify';
        import { environment } from 'src/environments/environment';

        export function initializeHeaderConfig(): HeaderConfig {
            const headerConfig: HeaderConfig = {
                apiUrl: environment.portalApiUrl,
                // apiUrl - using this option to specify the portal api url.

                appType: PROFET_APPS.profet_portal
                // change the value with respective app name from the `PROFET_APPS`

                portalFrontendUrl: environment.portalFrontendUrl,
                // portalFrontendUrl is optional
                
                signOutUrl: Amplify.getConfig().Auth.Cognito.loginWith.oauth.redirectSignOut[0]
                // signOutUrl - Using this option to specify the logout path. 
                //              Usually take this from the Amplify config

                enableLastUrlRedirection: true
                // enableLastUrlRedirection - Using this option to enable the last url redirection. 
                //                           Default value is false

                appLogoNavigationUrl: window.location.origin
                // appLogoNavigationUrl - Using this option to specify the url to navigate when the app logo is clicked. 

                disableAppMenu: true
                // disableAppMenu - Using this option to disable the app menu. 
                //                  Default value is false
            };
        
            return headerConfig;
        }
  

Use the configuration option in the app.module.ts file
  

        import { CommonHeaderService } from '@propmix/profet-common-header';        
        
        providers: [
            CommonHeaderService,
            { provide: 'headerConfig', useFactory: initializeHeaderConfig }
        ]

## Input

INACTIVITY_LIMIT - Provide the value in milliseconds. The default value is 30 minutes

### Optional Observables

The library provides two observables that can be consumed by the application if needed. However, using these observables is not mandatory.

1. `activeMenuList$` - Observable listening to menu list

    *Typescript* -

        import { CommonHeaderService } from '@propmix/profet-common-header';

        private _commonHeaderSer = inject(CommonHeaderService);

        this._commonHeaderSer.activeMenuList$.subscribe(res => {
            console.log(res)  // menu list
        })

2. `companyList$` - Observable listening to companylist

    *Typescript* -

        import { CommonHeaderService } from '@propmix/profet-common-header';

        private _commonHeaderSer = inject(CommonHeaderService);

        this._commonHeaderSer.companyList$.subscribe(res => {
            console.log(res)  // company list
        })

## Publishing to npm repository

1. ng build common-header

2. cd dist/common-header

3. npm publish --access public

  

## Local Development & testing

Do these steps from the library directory

1. ng build common-header --watch

2. cd dist/common-header/

3. npm link

Do these steps from the consumer application

1. npm ci

2. npm link @propmix/profet-common-header

## Running unit tests

Run `ng test common-header` to execute the unit tests via [Karma](https://karma-runner.github.io).
 

## Further help
 

To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.