@propmix/profet-app-wrapper
v4.0.0-beta.1
Published
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 15.2.0.
Keywords
Readme
ProfetWrapper
This library was generated with Angular CLI version 15.2.0.
Usage
Install the package using the command
npm install @propmix/profet-app-wrapper
Import the library in module
import { ProfetAppWrapperModule } from "@propmix/profet-app-wrapper"; imports: [ <!-- Other import statements --> ProfetAppWrapperModule ]Use library in the component html
<profet-wrapper> <ng-container headerInfo> // Custom header content goes here (Eg: Create Order) </ng-container> <ng-container bodyContentInfo> // Add the entire app router here, this will render the entire app within the wrapper </ng-container> </profet-wrapper>Add library configuration [Find
configsection 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 { ProfetWrapperConfig, PROFET_APPS } from '@propmix/profet-app-wrapper';
import { Amplify } from 'aws-amplify';
import { environment } from 'src/environments/environment';
export function initializeConfig(): ProfetWrapperConfig {
const wrapperConfig: ProfetWrapperConfig = {
apiUrl: environment.portalApiUrl,
appType: PROFET_APPS.profet_portal, // change the value with respective app name from the `PROFET_APPS`
portalFrontendUrl: environment.portalFrontendUrl, // portalFrontendUrl is optional
disableUtilityDrawer?: boolean; // Disable Utility drawer is optional, by default it is enabled
disableAppraisalAssistantApp?: boolean; // Disable Appraisal Assistant app is optional, by default it is enabled
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
};
return wrapperConfig;
}Use the configuration option in the app.module.ts file
import { ProfetAppWrapperService } from '@propmix/profet-app-wrapper';
providers: [
ProfetAppWrapperService,
{ provide: 'profetWrapperConfig', useFactory: initializeConfig }
]Input
INACTIVITY_LIMIT - Provide the value in milliseconds. The default value is 30 minutes
appUtilityconfig: UtilityConfig[] - Provide application/page specific configuration
UtilityConfig {
id?: string; // OPTIONAL - unique identifier(if not provided one will be auto-generated)
label: string; // text for button
loadComponent?: () => Promise<Type<any>>; // the component to render in drawer
layout?: 'push' | 'side' | 'over'; // drawer mode
icon: string; // mat icon name
config?: any; // configuration object passed to the dynamic component
}Output
logoutEvent - This event is emitted when the user clicks on the logout button
utilitySelection - This event is emitted when the user clicks on the utility icon
Optional Observables
The library provides two observables that can be consumed by the application if needed. However, using these observables is not mandatory.
activeMenuList$- Observable listening to menu listTypescript -
import { ProfetAppWrapperService } from '@propmix/profet-app-wrapper'; private _wrapperSer = inject(ProfetAppWrapperService); this._wrapperSer.activeMenuList$.subscribe(res => { console.log(res) // menu list })companyList$- Observable listening to companylistTypescript -
import { ProfetAppWrapperService } from '@propmix/profet-app-wrapper'; private _wrapperSer = inject(ProfetAppWrapperService); this._wrapperSer.companyList$.subscribe(res => { console.log(res) // company list })
Publishing to npm repository
ng build profet-app-wrapper
cd dist/profet-app-wrapper
npm publish --access public
Local Development & testing
Do these steps from the library directory
ng build profet-app-wrapper --watch
cd dist/profet-app-wrapper/
npm link
Do these steps from the consumer application
npm ci
npm link @propmix/profet-app-wrapper
Running unit tests
Run ng test profet-app-wrapper to execute the unit tests via Karma.
Further help
To get more help on the Angular CLI use ng help or go check out the Angular CLI Overview and Command Reference page.
