{"version":3,"file":"qubesense-customer-base.mjs","sources":["../../../projects/customer-base/src/lib/dependencies/customer-base-api-urls.ts","../../../projects/customer-base/src/lib/customer-base.service.ts","../../../projects/customer-base/src/lib/dependencies/customer-base-model.ts","../../../projects/customer-base/src/lib/dependencies/user-management/user-management-model.ts","../../../projects/customer-base/src/lib/dependencies/user-management/validators.ts","../../../projects/customer-base/src/lib/dependencies/user-creation/create-user-model.ts","../../../projects/customer-base/src/lib/dependencies/user-creation/create-user-api-urls.ts","../../../projects/customer-base/src/lib/dependencies/user-creation/create-user.service.ts","../../../projects/customer-base/src/lib/dependencies/user-management/user-management-api-urls.ts","../../../projects/customer-base/src/lib/dependencies/user-management/user-management.service.ts","../../../projects/customer-base/src/lib/dependencies/user-management/user-role-list-api-urls.ts","../../../projects/customer-base/src/lib/dependencies/user-management/user-role-list.service.ts","../../../projects/customer-base/src/lib/customer-base.component.ts","../../../projects/customer-base/src/lib/customer-base.component.html","../../../projects/customer-base/src/lib/customer-base.module.ts","../../../projects/customer-base/src/public-api.ts","../../../projects/customer-base/src/qubesense-customer-base.ts"],"sourcesContent":["export class CustomerBaseApiUrls {\r\n    //api Url string for get data by Id\r\n    getCustomerBaseByIdUrl: string = 'api/CustomerBase/GetById';\r\n\r\n    //api Url string for insert Customer data\r\n    insertCustomerBaseDataUrl: string = 'api/CustomerBase/Create';\r\n\r\n    //api Url string for update Customer record\r\n    updateCustomerBaseDataUrl: string = 'api/CustomerBase/Update';\r\n\r\n    //api Url string for delete Customer record\r\n    deleteCustomerBaseDataUrl: string = 'api/CustomerBase/Delete';\r\n\r\n    //api Url string for get Customer list\r\n    getCustomerBaseListUrl: string = 'api/CustomerBase/GetCustomerList';\r\n\r\n    //api Url string for get Customer list\r\n    searchCustomerBaseUrl: string = 'api/CustomerBase/SearchCustomer';\r\n\r\n    //api Url string for get Customer dropdown list\r\n    getCustomerBaseDropdownListUrl: string = 'api/CustomerBase/GetDropdownList';\r\n\r\n    //api Url string for get price tier dropdown list\r\n    getPriceTierDropdownListUrl: string = 'api/CustomerBase/GetPriceTierDropdown';\r\n\r\n    //api Url string for get price tier by customer dropdown list\r\n    getPriceTierByCustomerDropdownListUrl: string = 'api/CustomerBase/GetPriceTierByCustomerDropdown';\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { DataAccessService, WebApiResult } from '@qubesense/base-services';\r\nimport { CustomerBaseApiUrls } from './dependencies/customer-base-api-urls';\r\nimport { CustomerBaseModel } from './dependencies/customer-base-model';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class CustomerBaseService {\r\n\r\n    constructor(private dataAccessService: DataAccessService) { }\r\n\r\n    customerBaseApiUrls = new CustomerBaseApiUrls();\r\n\r\n    /**\r\n     * service for get CustomerBase data by Id\r\n     * \r\n     * @param customerBaseGUID \r\n     * \r\n     * @returns Response Data from Database\r\n     */\r\n    public async GetDataById(customerBaseGUID: string): Promise<WebApiResult> {\r\n        try {\r\n            const url = this.customerBaseApiUrls.getCustomerBaseByIdUrl + '/' + customerBaseGUID;\r\n            const resultResponse = await this.dataAccessService.GetDataById(url);\r\n            return resultResponse;\r\n        } catch (error) {\r\n            throw error;\r\n        }\r\n    }\r\n\r\n    /**\r\n     * service for inserting CustomerBase data into database\r\n     * \r\n     * @param customerBaseModel \r\n     * \r\n     * @returns Response message from Database\r\n     */\r\n    public async InsertData(customerBaseModel: CustomerBaseModel) {\r\n        try {\r\n            const url = this.customerBaseApiUrls.insertCustomerBaseDataUrl;\r\n            const resultResponse = await this.dataAccessService.InsertData(url, customerBaseModel);\r\n            return resultResponse;\r\n        } catch (error) {\r\n            throw error;\r\n        }\r\n    }\r\n\r\n    /**\r\n     * service for update CustomerBase Data\r\n     * \r\n     * @param customerBaseModel \r\n     * \r\n     * @returns Response message from Database\r\n     */\r\n    public async UpdateData(customerBaseModel: CustomerBaseModel) {\r\n        try {\r\n            const url = this.customerBaseApiUrls.updateCustomerBaseDataUrl;\r\n            const resultResponse = await this.dataAccessService.UpdateData(url, customerBaseModel);\r\n            return resultResponse;\r\n        } catch (error) {\r\n            throw error;\r\n        }\r\n    }\r\n\r\n    /**\r\n     * service for delete CustomerBase data by GUID\r\n     * \r\n     * @param customerBaseModel \r\n     * \r\n     * @returns Response message from Database\r\n     */\r\n    public async DeleteData(recordId: any) {\r\n        try {\r\n            const url = this.customerBaseApiUrls.deleteCustomerBaseDataUrl + '/' + recordId;\r\n            const resultResponse = await this.dataAccessService.DeleteData(url);\r\n            return resultResponse;\r\n        }\r\n        catch (error) {\r\n            throw error;\r\n        }\r\n    }\r\n\r\n    /**\r\n     * service for get data for CustomerBase grid \r\n     * \r\n     * @param CustomerBaseModel \r\n     * \r\n     * @returns Response Data from Database\r\n     */\r\n    public async GetListData(customerBaseModel: CustomerBaseModel) {\r\n        try {\r\n            const url = this.customerBaseApiUrls.getCustomerBaseListUrl;\r\n            const resultResponse = await this.dataAccessService.GetListData(url, customerBaseModel);\r\n            return resultResponse;\r\n        } catch (error) {\r\n            throw error;\r\n        }\r\n    }\r\n    /**\r\n     * service for get data for CustomerBase grid \r\n     * \r\n     * @param CustomerBaseModel \r\n     * \r\n     * @returns Response Data from Database\r\n     */\r\n    public async SearchCustomer(value: string) {\r\n        try {\r\n            const url = this.customerBaseApiUrls.searchCustomerBaseUrl + '/' + value;\r\n            const resultResponse = await this.dataAccessService.GetDataById(url);\r\n            return resultResponse;\r\n        } catch (error) {\r\n            throw error;\r\n        }\r\n    }\r\n\r\n    /**\r\n     * service for get data for CustomerBase DropDown List\r\n     * \r\n     * @returns \r\n     */\r\n    public async GetCustomerDropdownList() {\r\n        try {\r\n            const url = this.customerBaseApiUrls.getCustomerBaseDropdownListUrl;\r\n            const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n            return resultResponse;\r\n        } catch (error) {\r\n            throw error;\r\n        }\r\n    }\r\n\r\n    /**\r\n     * service for get data for Price Tier DropDown List\r\n     * \r\n     * @returns \r\n     */\r\n    public async GetPriceTierDropdown() {\r\n        try {\r\n            const url = this.customerBaseApiUrls.getPriceTierDropdownListUrl;\r\n            const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n            return resultResponse;\r\n        } catch (error) {\r\n            throw error;\r\n        }\r\n    }\r\n\r\n    /**\r\n     * service for get data for Price Tier DropDown List\r\n     * \r\n     * @returns \r\n     */\r\n    public async GetPriceTierByCustomerDropdown(value: string) {\r\n        try {\r\n            const url = this.customerBaseApiUrls.getPriceTierByCustomerDropdownListUrl+'/'+value;\r\n            const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n            return resultResponse;\r\n        } catch (error) {\r\n            throw error;\r\n        }\r\n    }\r\n}\r\n","import { AddressEntity } from \"@qubesense/address-section\";\r\n\r\n//Customer Base Entities\r\n\r\nexport class CustomerBaseModel {\r\n    formCode: string = '';\r\n    formId: string = '';\r\n    recordId: string = null;\r\n    customerTypeId: string = null;\r\n    customerCategoryId: string = null;\r\n    address: string = '';\r\n    addressObj: AddressEntity = new AddressEntity();\r\n    userpassword: string = null;\r\n    userconfirmpassword: string = null;\r\n    passwordHash: string = null;\r\n    passwordSalt: string = null;\r\n    profileImageURL: string = '';\r\n    signatureImageURL: string = '';\r\n    isAccountBlocked: boolean = false;\r\n    isAdvancePaymentRequired: boolean = false;\r\n    preferredCarrierId: string = null;\r\n    defaultServiceProviderId: string = null;\r\n    webAppUserId: boolean = false;\r\n    mobileAppUserId: boolean = false;\r\n    userEmail: string = null;\r\n    applicationRolesList: string = null;\r\n    applicationRoles: any = [];\r\n    selectedRolesList: any[] = []\r\n    pricingTierId: string = null;\r\n    labelName: string = '';\r\n    isActive: boolean = true;\r\n    isDeleted: boolean = false;\r\n    webOrMobileUserGuid: string = null;\r\n}\r\n\r\nexport class CustomerBaseConfigrationModel {\r\n    formCode: string = '';\r\n    customerId: string = null;\r\n    defaultView: boolean = false;\r\n    showModal: boolean = false;\r\n    showGrid: boolean = false;\r\n    isSearchable: boolean = false;\r\n    showClientData: boolean = false;\r\n    userMessages: boolean = false;\r\n    address: string = '';\r\n    addressObj: AddressEntity = new AddressEntity();\r\n    customerData: CustomerBaseModel = null;\r\n    requiredCustomerPersonSection: boolean = false;\r\n    allowedCustomerPersonSection: boolean = false;\r\n    requiredCustomerBaseSection: boolean = false;\r\n    allowedCustomerBaseSection: boolean = false;\r\n    requiredCustomerPersonFields: RequiredCustomerPersonFields = new RequiredCustomerPersonFields();\r\n    allowedCustomerPersonFields: AllowedCustomerPersonFields = new AllowedCustomerPersonFields();\r\n    requiredCustomerBaseFields: RequiredCustomerBaseFields = new RequiredCustomerBaseFields();\r\n    allowedCustomerBaseFields: AllowedCustomerBaseFields = new AllowedCustomerBaseFields();\r\n    dropdownListData: DropdownListData = new DropdownListData();\r\n}\r\n\r\nexport class RequiredCustomerPersonFields {\r\n    firstName: boolean = true;\r\n    middleName: boolean = true;\r\n    lastName: boolean = true;\r\n    motherName: boolean = true;\r\n    displayName: boolean = true;\r\n    gender: boolean = true;\r\n    dateOfBirth: boolean = true;\r\n    mobileNumber: boolean = true;\r\n    alternateMobileNumber: boolean = true;\r\n    email: boolean = true;\r\n    alternateEmail: boolean = true;\r\n    address: boolean = true;\r\n    profileImageURL: boolean = true;\r\n    webAppUserId: boolean = true;\r\n    mobileAppUserId: boolean = true;\r\n}\r\n\r\nexport class AllowedCustomerPersonFields {\r\n    firstName: boolean = true;\r\n    middleName: boolean = true;\r\n    lastName: boolean = true;\r\n    motherName: boolean = true;\r\n    displayName: boolean = true;\r\n    gender: boolean = true;\r\n    dateOfBirth: boolean = true;\r\n    mobileNumber: boolean = true;\r\n    alternateMobileNumber: boolean = true;\r\n    email: boolean = true;\r\n    alternateEmail: boolean = true;\r\n    address: boolean = true;\r\n    profileImageURL: boolean = true;\r\n    webAppUserId: boolean = true;\r\n    mobileAppUserId: boolean = true;\r\n}\r\n\r\nexport class DropdownListData {\r\n    serviceProviderList = [];\r\n    preferredCarrierList = [];\r\n    pricingTierList = [];\r\n}\r\nexport class RequiredCustomerBaseFields {\r\n    customerTypeId: boolean = true;\r\n    customerCategoryId: boolean = true;\r\n    isAccountBlocked: boolean = false;\r\n    isAdvancePaymentRequired: boolean = false;\r\n    preferredCarrierId: boolean = true;\r\n    defaultServiceProviderId: boolean = true;\r\n    profileImageURL: boolean = false;\r\n    webAppUserId: boolean = true;\r\n    mobileAppUserId: boolean = true;\r\n    pricingTierId: boolean = true;\r\n    labelName: boolean = true;\r\n}\r\nexport class AllowedCustomerBaseFields {\r\n    customerTypeId: boolean = true;\r\n    customerCategoryId: boolean = true;\r\n    isAccountBlocked: boolean = true;\r\n    isAdvancePaymentRequired: boolean = true;\r\n    preferredCarrierId: boolean = true;\r\n    defaultServiceProviderId: boolean = true;\r\n    webAppUserId: boolean = true;\r\n    profileImageURL: boolean = true;\r\n    mobileAppUserId: boolean = true;\r\n    pricingTierId: boolean = true;\r\n    labelName: boolean = true;\r\n    userGuid: boolean = true;\r\n}","\r\nexport class UserManagementModel {\r\n    recordId: string = null;\r\n    //userId: number = 0;\r\n    userGUID: string = null;\r\n    clientGUID: string = null;\r\n    firstName: string = '';\r\n    lastName: string = '';\r\n    displayName: string = '';\r\n    applicationRolesList: string = null;\r\n    applicationRoles: any = [];\r\n    selectedRolesList: any[] = [];\r\n    //UserObj: CreateUserModel = new CreateUserModel();\r\n    userName: string = '';\r\n    jobTitle: string = '';\r\n    mobileNumber: string = '';\r\n    //phoneNumber:string='';\r\n    userEmail: string = '';\r\n    formCode: string = '';\r\n    // formId: string = '';\r\n    isActive: boolean = true;\r\n    isDeleted: boolean = false;\r\n    createdOnUTC: Date;\r\n    password: string = '';\r\n    data: any;\r\n    //createdBy: string = '';\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport class FuseValidators {\r\n    /**\r\n     * Check for empty (optional fields) values\r\n     *\r\n     * @param value\r\n     */\r\n    static isEmptyInputValue(value: any): boolean {\r\n        return value == null || value.length === 0;\r\n    }\r\n\r\n    /**\r\n     * Must match validator\r\n     *\r\n     * @param controlPath A dot-delimited string values that define the path to the control.\r\n     * @param matchingControlPath A dot-delimited string values that define the path to the matching control.\r\n     */\r\n    static mustMatch(controlPath: string, matchingControlPath: string): ValidatorFn {\r\n        return (formGroup: AbstractControl): ValidationErrors | null => {\r\n\r\n            // Get the control and matching control\r\n            const control = formGroup.get(controlPath);\r\n            const matchingControl = formGroup.get(matchingControlPath);\r\n\r\n            // Return if control or matching control doesn't exist\r\n            if (!control || !matchingControl) {\r\n                return null;\r\n            }\r\n\r\n            // Delete the mustMatch error to reset the error on the matching control\r\n            if (matchingControl.hasError('mustMatch')) {\r\n                delete matchingControl.errors.mustMatch;\r\n                matchingControl.updateValueAndValidity();\r\n            }\r\n\r\n            // Don't validate empty values on the matching control\r\n            // Don't validate if values are matching\r\n            if (this.isEmptyInputValue(matchingControl.value) || control.value === matchingControl.value) {\r\n                return null;\r\n            }\r\n\r\n            // Prepare the validation errors\r\n            const errors = { mustMatch: true };\r\n\r\n            // Set the validation error on the matching control\r\n            matchingControl.setErrors(errors);\r\n\r\n            // Return the errors\r\n            return errors;\r\n        };\r\n    }\r\n}\r\n","export class CreateUserModel {\r\n    recordId: string;\r\n    firstName: string = '';\r\n    lastName: string = '';\r\n    displayName: string = '';\r\n    jobTitle: string = '';\r\n    userEmail: string = '';\r\n    mobileNumber: string = '';\r\n    password: string = '';\r\n    webLogin: boolean = false;\r\n    mobileApp: boolean = false;\r\n    isTermsConditionsAccepted: boolean = false;\r\n    isActive: boolean = true;\r\n    isDeleted: boolean = false;\r\n    formCode: string = \"VETS-CRTU\";\r\n    formId: string = \"CRTU-FORM\";\r\n    clientCode: string = \"VETS\";\r\n}\r\n","export class CreateUserApiUrls {\r\n    // // User IsEmail Exists Url\r\n    // userEmailExistsUrl: string;\r\n\r\n    // // User User Name Exists Url\r\n    // userNameExistsUrl: string;\r\n\r\n    // // User User Name Exists Url\r\n    // loginIdExistsUrl: string;\r\n\r\n    // // User Login Url\r\n    // userLoginUrl: string = 'api/auth/login';\r\n\r\n    // //User Logout Url\r\n    // userLogOutUrl: string = 'api/auth/logout';\r\n\r\n    // //Password Reset Url\r\n    // passwordResetUrl: string = 'api/user/ResetPassword';\r\n\r\n    // //Forgot password API Url\r\n    // forgotPasswordUrl: string = 'api/user/ForgotPassword';\r\n\r\n    //CreateUser\r\n    createUserUrl: string = 'api/users/CreateUser';\r\n\r\n    // changePasswordUrl: string = 'api/user/ChangePassword';\r\n\r\n    // updateSecurityUrl: string ='api/UserManagements/UpdateSecurity';\r\n\r\n    // getUserSecuritySettingsUrl ='api/UserManagements/GetUserSecurity';\r\n\r\n    // //api Url string for delete User record\r\n    // getUserListUrl: string = 'api/users/GetAll';\r\n\r\n    //api Url string for update User record\r\n    updateUserUrl: string = 'api/users/Update';\r\n\r\n    // //api Url string for delete User record\r\n    // deleteUserUrl: string = 'api/users/Delete';\r\n\r\n    // //api Url string for Get User By Id\r\n    // getUserByIdUrl: string = 'api/users/GetById';\r\n}","import { Injectable } from '@angular/core';\r\n// User Defined Models\r\n//import { UserLoginResponse } from '@qubesense/base-services';\r\n//import { UserPasswordVerifyRequest } from '@qubesense/base-services';\r\nimport { UserDataAccessService } from '@qubesense/base-services';\r\n//import { ResetPasswordViewModel } from '@qubesense/base-services';\r\nimport { CreateUserApiUrls } from './create-user-api-urls';\r\n//import { CreateUserModel } from  ''\r\n//import { ForgotPasswordViewModel } from '@qubesense/base-services';\r\n//import { CreateUserModel } from '@qubesense/base-services';\r\n//import { ChangePasswordViewModel } from '@qubesense/base-services';\r\nimport { DataAccessService } from '@qubesense/base-services';\r\nimport { CreateUserModel } from './create-user-model';\r\n//import { WebApiResult } from '@qubesense/base-services';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class CreateUserService {\r\n  \r\n  userModuleUrls = new CreateUserApiUrls();\r\n  \r\n  constructor( private readonly usersDataAccess: UserDataAccessService,\r\n    private dataAccessService: DataAccessService)  {\r\n       }\r\n  /**\r\n   * This method used to create user\r\n   * @param model create user model\r\n   * @returns \r\n   */\r\n   public async CreateUser(model: CreateUserModel)\r\n    {\r\n    try {\r\n          const url = this.userModuleUrls.createUserUrl;\r\n          const resultResponse = await this.usersDataAccess.CreateUser(url, model);\r\n          return resultResponse;\r\n        } catch (error) {\r\n          throw error;\r\n        }\r\n    }\r\n  }\r\n//     /**\r\n//  * service for update user data\r\n//  * \r\n//  * @param CreateUserModel \r\n//  * \r\n//  * @returns Response message from Database\r\n//  */\r\n// public async UpdateUser(model: CreateUserModel) {\r\n//   try {\r\n//     const url = this.userModuleUrls.updateUserUrl;\r\n//     const resultResponse = await this.dataAccessService.UpdateData(url, model);\r\n//     return resultResponse;\r\n//   } catch (error) {\r\n//     throw error;\r\n//   }\r\n// }\r\n\r\n// /**\r\n//  * service for delete user data by GUID\r\n//  * \r\n//  * @param recordId \r\n//  * \r\n//  * @returns Response message from Database\r\n//  */\r\n// public async DeleteUser(recordId) {\r\n//   try {\r\n//     const url = this.userModuleUrls.deleteUserUrl + '/' + recordId;\r\n//     const resultResponse = await this.dataAccessService.DeleteData(url);\r\n//     return resultResponse;\r\n//   }\r\n//   catch (error) {\r\n//     throw error;\r\n//   }\r\n// }\r\n\r\n\r\n// /**\r\n//  * service for get data for User Grid Data \r\n//  * \r\n//  * @param createUserModel \r\n//  * \r\n//  * @returns Response Data from Database\r\n//  */\r\n//   public async GetListData(createUserModel: CreateUserModel) {\r\n//     try {\r\n//       const url = this.userModuleUrls.getUserListUrl;\r\n//       const resultResponse = await this.usersDataAccess.GetListData(url, createUserModel);\r\n//       return resultResponse;\r\n//     } catch (error) {\r\n//       throw error;\r\n//     }\r\n//   }\r\n\r\n  // /**\r\n  //  * service for get User data by Id\r\n  //  * \r\n  //  * @param recordId \r\n  //  * \r\n  //  * @returns Response Data from Database\r\n  //  */\r\n  //   public async GetDataById(recordId: string): Promise<WebApiResult> {\r\n  //     try {\r\n  //       const url = this.userModuleUrls.getUserByIdUrl + '/' + recordId;\r\n  //       const resultResponse = await this.dataAccessService.GetDataById(url);\r\n  //       return resultResponse;\r\n  //     } catch (error) {\r\n  //       throw error;\r\n  //     }\r\n  //   }\r\n\r\n\r\n  // /**\r\n  //  * This method used to reset user password\r\n  //  * @param model reset password view model\r\n  //  * @returns \r\n  //  */\r\n  //  public async ResetPassword(model: ResetPasswordViewModel)\r\n  //   {\r\n  //   try {\r\n  //         const url = this.userModuleUrls.passwordResetUrl;\r\n  //         const resultResponse = await this.usersDataAccess.ResetPassword(url, model);\r\n  //         return resultResponse;\r\n  //       } catch (error) {\r\n  //         throw error;\r\n  //       }\r\n  //   }\r\n\r\n\r\n  //   /**\r\n  //  * This method used to send reset password link\r\n  //  * @param model forgot password view model\r\n  //  * @returns \r\n  //  */\r\n  //  public async forgotPassword(model: ForgotPasswordViewModel)\r\n  //  {\r\n  //  try {\r\n  //        const url = this.userModuleUrls.forgotPasswordUrl;\r\n  //        const resultResponse = await this.usersDataAccess.forgotPassword(url, model);\r\n  //        return resultResponse;\r\n  //      } catch (error) {\r\n  //        throw error;\r\n  //      }\r\n  //  }\r\n\r\n  //  public async ChangePassword(model: ChangePasswordViewModel)\r\n  //   {\r\n  //   try {\r\n  //         const url = this.userModuleUrls.changePasswordUrl;\r\n  //         const resultResponse = await this.usersDataAccess.ChangePassword(url, model);\r\n  //         return resultResponse;\r\n  //       } catch (error) {\r\n  //         throw error;\r\n  //       }\r\n  //   }\r\n\r\n    // public async UpdateSecurity(model: ChangePasswordViewModel)\r\n    // {\r\n    // try {\r\n    //       const url = this.userModuleUrls.updateSecurityUrl;\r\n    //       const resultResponse = await this.usersDataAccess.UpdateSecurity(url, model);\r\n    //       return resultResponse;\r\n    //     } catch (error) {\r\n    //       throw error;\r\n    //     }\r\n    // }\r\n\r\n    // public async getUserSecuritySettings(email: string)\r\n    // {\r\n    // try {\r\n    //       const url = this.userModuleUrls.getUserSecuritySettingsUrl + '/' + email;\r\n    //       const resultResponse = await this.usersDataAccess.GetUserSecurity(url);\r\n    //       return resultResponse;\r\n    //     } catch (error) {\r\n    //       throw error;\r\n    //     }\r\n    // }\r\n// }\r\n","export class UserManagementApiUrls {\r\n    getUserManagementByIdUrl: string = 'api/UserManagements/GetById';\r\n\r\n    //api Url string for insert User Management data\r\n    insertUserManagementDataUrl: string = 'api/UserManagements/Create';\r\n\r\n    //api Url string for update User Management record\r\n    updateUserManagementDataUrl: string = 'api/userManagements/Update';\r\n\r\n    //api Url string for delete User Management Menus record\r\n    deleteUserManagementDataUrl: string = 'api/UserManagements/Delete';\r\n\r\n    //api Url string for get User Management list\r\n    getUserManagementListUrl: string = 'api/users/GetAll';\r\n\r\n    //api Url string for get User list\r\n    //getUserListUrl: string = 'api/UserManagement/GetUser';\r\n\r\n     //api Url string for get User role list\r\n     getUserRoleListUrl: string = 'api/users/GetRoleList';\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DataAccessService } from '@qubesense/base-services';\r\nimport { WebApiResult } from '@qubesense/base-services';\r\nimport { UserManagementApiUrls } from './user-management-api-urls';\r\nimport { UserManagementModel } from './user-management-model';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class UserManagementService {\r\n\r\nconstructor(private dataAccessService: DataAccessService) { }\r\n\r\nuserManagementApiUrls = new UserManagementApiUrls();\r\n\r\n/**\r\n   * service for get UserManagement data by Id\r\n   * \r\n   * @param recordId \r\n   * \r\n   * @returns Response Data from Database\r\n   */\r\npublic async GetDataById(recordId: string): Promise<WebApiResult> {\r\n  try {\r\n    const url = this.userManagementApiUrls.getUserManagementByIdUrl + '/' + recordId;\r\n    const resultResponse = await this.dataAccessService.GetDataById(url);\r\n    return resultResponse;\r\n  } catch (error) {\r\n    throw error;\r\n  }\r\n}\r\n\r\n/**\r\n * service for inserting user management data into database\r\n * \r\n * @param userManagementModel \r\n * \r\n * @returns Response message from Database\r\n */\r\npublic async InsertData(userManagamentModel: UserManagementModel) {\r\n  try {\r\n    const url = this.userManagementApiUrls.insertUserManagementDataUrl;\r\n    const resultResponse = await this.dataAccessService.InsertData(url, userManagamentModel);\r\n    return resultResponse;\r\n  } catch (error) {\r\n    throw error;\r\n  }\r\n}\r\n\r\n/**\r\n * service for update user management data\r\n * \r\n * @param userManagementModel \r\n * \r\n * @returns Response message from Database\r\n */\r\npublic async UpdateData(userManagamentModel: UserManagementModel) {\r\n  try {\r\n    const url = this.userManagementApiUrls.updateUserManagementDataUrl;\r\n    const resultResponse = await this.dataAccessService.UpdateData(url, userManagamentModel);\r\n    return resultResponse;\r\n  } catch (error) {\r\n    throw error;\r\n  }\r\n}\r\n\r\n/**\r\n * service for delete user management data by GUID\r\n * \r\n * @param recordId \r\n * \r\n * @returns Response message from Database\r\n */\r\npublic async DeleteData(UserGUID) {\r\n  try {\r\n    const url = this.userManagementApiUrls.deleteUserManagementDataUrl + '/' + UserGUID;\r\n    const resultResponse = await this.dataAccessService.DeleteData(url);\r\n    return resultResponse;\r\n  }\r\n  catch (error) {\r\n    throw error;\r\n  }\r\n}\r\n\r\n/**\r\n * service for get data for application menu grid \r\n * \r\n * @param userManagementModel \r\n * \r\n * @returns Response Data from Database\r\n */\r\npublic async GetListData(userManagementModel: UserManagementModel) {\r\n  try {\r\n    const url = this.userManagementApiUrls.getUserManagementListUrl;\r\n    const resultResponse = await this.dataAccessService.GetListData(url, userManagementModel);\r\n    \r\n    return resultResponse;\r\n\r\n  } catch (error) {\r\n    throw error;\r\n  }\r\n}\r\n\r\n/**\r\n * service for get data for application menu grid \r\n * \r\n * @param userManagementModel \r\n * \r\n * @returns Response Data from Database\r\n */\r\npublic async getApplicationRolesDropdown() {\r\n  try {\r\n    const url = this.userManagementApiUrls.getUserRoleListUrl;\r\n    const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n    return resultResponse;\r\n  } catch (error) {\r\n    throw error;\r\n  }\r\n}\r\n}\r\n","export class UserRoleListApiUrls {\r\n    getUserRolesDropdown = \"api/users/GetRoleList\";\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DataAccessService } from '@qubesense/base-services';\r\nimport { UserRoleListApiUrls } from './user-role-list-api-urls';//'../api-urls/user-role-list-api-urls';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class UserRoleListService {\r\n\r\n  constructor(private dataAccessService: DataAccessService) { }\r\n  userRoleListUrls = new UserRoleListApiUrls();\r\n  public async getUserRolesDropdown() {\r\n    try {\r\n      const url = this.userRoleListUrls.getUserRolesDropdown;\r\n      const resultResponse = await this.dataAccessService.GetDropdownListData(url);\r\n      return resultResponse;\r\n    } catch (error) {\r\n      throw error;\r\n    }\r\n  }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ErrorLogService, GridEventsModel, KendoGridviewConfigurationModel, ToastrNotificationService } from '@qubesense/base-services';\r\nimport { CustomerBaseConfigrationModel, CustomerBaseModel } from './dependencies/customer-base-model';\r\nimport { CustomerBaseService } from './customer-base.service';\r\nimport { UserManagementModel } from './dependencies/user-management/user-management-model';\r\nimport { UserManagementService } from './dependencies/user-management/user-management.service';// '../../service/user-management.service';\r\nimport { UserRoleListService } from './dependencies/user-management/user-role-list.service'; //'.//user-role-list.service';\r\nimport { FuseValidators } from './dependencies/user-management/validators';\r\nimport { CreateUserService } from './dependencies/user-creation/create-user.service';\r\nimport { CreateUserModel } from './dependencies/user-creation/create-user-model';\r\nimport { ApplicationRolesService } from '@qubesense/application-roles';\r\nimport { CustomerFarmService } from '@qubesense/customer-farm';\r\n//import { CreateUserModel } from './dependencies/user-creation/create-user-configuration';\r\n//import { CreateUserService } from '@qubesense/create-user';\r\n\r\n@Component({\r\n  selector: 'lib-customer-base',\r\n  templateUrl: './customer-base.component.html',\r\n  styleUrls: ['./customer-base.component.css'],\r\n})\r\nexport class CustomerBaseComponent implements OnInit {\r\n  @Input() public customerBaseConfiguration: CustomerBaseConfigrationModel = new CustomerBaseConfigrationModel();\r\n  @Output() customerBaseData = new EventEmitter<any>();\r\n  @Output() customerBaseDataRecordId = new EventEmitter<any>();\r\n  customerBaseModel: CustomerBaseModel = new CustomerBaseModel();\r\n  updateStatus = false;\r\n  customerBaseForm: FormGroup;\r\n  //userCreateForm: FormGroup;\r\n  customerId: string;\r\n  webformOption: boolean;\r\n  mobileAppOption: boolean;\r\n  isDisable: boolean = false;\r\n  userEmail = null;\r\n  selectedRoleList = [];\r\n  selectedRolesValuesList: any = [];\r\n  selectedRoleListDisplay = [];\r\n  roleList = [];\r\n  selectedItemsList: any;\r\n  userMessages: string[] = [];\r\n  public gridData: any[] = [];\r\n  gridConfiguration: KendoGridviewConfigurationModel = new KendoGridviewConfigurationModel();\r\n  hideButtons = false;\r\n  isViewCall = false;\r\n\r\n  constructor(private customerBaseService: CustomerBaseService,\r\n    private customerFarmService: CustomerFarmService,\r\n    private applicationRoleService: ApplicationRolesService,\r\n    private createUser: CreateUserService,\r\n    private userManagementService: UserManagementService,\r\n    private userRolesService: UserRoleListService,\r\n    private formBuilder: FormBuilder,\r\n    private errorLogService: ErrorLogService,\r\n    private toastr: ToastrNotificationService\r\n  ) { }\r\n\r\n  ngOnInit(): void {\r\n    this.DeclareForm();\r\n    if (this.customerBaseConfiguration.showGrid) {\r\n      this.gridConfiguration.formCode = 'CUBA';\r\n      this.gridConfiguration.showModal = true;\r\n      this.gridConfiguration.actions = { 'View': false, 'Edit': true, 'Delete': true, 'Generate PDF': false };\r\n      this.GetListData();\r\n\r\n      this.customerFarmService.currentCustomerName.subscribe((customerName) => {\r\n        // Update the labelName in your customerBaseForm\r\n        this.customerBaseForm.get('labelName').setValue(customerName);\r\n      });\r\n\r\n    }\r\n  }\r\n\r\n  DeclareForm() {\r\n    this.customerBaseForm = this.formBuilder.group({\r\n      recordId: [null],\r\n      customerTypeId: [null],\r\n      customerCategoryId: [null],\r\n      isAccountBlocked: [false],\r\n      isAdvancePaymentRequired: [false],\r\n      preferredCarrierId: [null],\r\n      defaultServiceProviderId: [null],\r\n      webAppUserId: [false],\r\n      mobileAppUserId: [false],\r\n      pricingTierId: [null],\r\n      labelName: [null],\r\n\r\n\r\n      firstName: [null],\r\n      lastName: [null],\r\n      mobileNumber: [null],\r\n      userEmail: [''],\r\n      password: [null],\r\n      confirmPassword: [null],\r\n      passwordHash: [null],\r\n      passwordSalt: [null],\r\n\r\n      applicationRole: [''],\r\n\r\n      isActive: [true],\r\n      webOrMobileUserGuid: [null]\r\n    }\r\n      ,\r\n      {\r\n        validators: FuseValidators.mustMatch('password', 'confirmPassword')\r\n      });\r\n\r\n    if (this.customerBaseConfiguration.requiredCustomerBaseFields.isAccountBlocked) {\r\n      this.customerBaseForm.get('isAccountBlocked').addValidators(Validators.required);\r\n      this.customerBaseForm.get('isAccountBlocked').updateValueAndValidity();\r\n    }\r\n    if (this.customerBaseConfiguration.requiredCustomerBaseFields.isAdvancePaymentRequired) {\r\n      this.customerBaseForm.get('isAdvancePaymentRequired').addValidators(Validators.required);\r\n      this.customerBaseForm.get('isAdvancePaymentRequired').updateValueAndValidity();\r\n    }\r\n    if (this.customerBaseConfiguration.requiredCustomerBaseFields.preferredCarrierId) {\r\n      this.customerBaseForm.get('preferredCarrierId').addValidators(Validators.required);\r\n      this.customerBaseForm.get('preferredCarrierId').updateValueAndValidity();\r\n    }\r\n    if (this.customerBaseConfiguration.requiredCustomerBaseFields.defaultServiceProviderId) {\r\n      this.customerBaseForm.get('defaultServiceProviderId').addValidators(Validators.required);\r\n      this.customerBaseForm.get('defaultServiceProviderId').updateValueAndValidity();\r\n    }\r\n    if (this.customerBaseConfiguration.requiredCustomerBaseFields.pricingTierId) {\r\n      this.customerBaseForm.get('pricingTierId').addValidators(Validators.required);\r\n      this.customerBaseForm.get('pricingTierId').updateValueAndValidity();\r\n    }\r\n\r\n    //this.roleList = null;\r\n    //this.selectedRoleList = null;\r\n    this.selectedRoleListDisplay = null;\r\n    this.hidePasswordFields = false;\r\n    this.isEditMode = false;\r\n  }\r\n\r\n  ///////////////////////////////////standard methods/////////////////////////////////////////////////////\r\n\r\n  /**\r\n   * @description\r\n   *\r\n   * edit data list item using data item GUID\r\n   *\r\n   * @param recordId\r\n   *\r\n   *  gets customer GUID from gridData and passes it to this function\r\n   */\r\n  tempUserDetails: string = '';\r\n  hidePasswordFields: boolean = false;\r\n  isEditMode: boolean;\r\n  async EditData(recordId) {\r\n    this.isEditMode = true;\r\n    const getResponse = await this.customerBaseService.GetDataById(recordId);\r\n    this.customerBaseForm.controls['recordId'].setValue(getResponse.apiData.recordId);\r\n    this.customerBaseForm.controls['customerTypeId'].setValue(getResponse.apiData.customerTypeId);\r\n    this.customerBaseForm.controls['customerCategoryId'].setValue(getResponse.apiData.customerCategoryId);\r\n    this.customerBaseForm.controls['isAccountBlocked'].setValue(getResponse.apiData.isAccountBlocked);\r\n    this.customerBaseForm.controls['isAdvancePaymentRequired'].setValue(getResponse.apiData.isAdvancePaymentRequired);\r\n    this.customerBaseForm.controls['preferredCarrierId'].setValue(getResponse.apiData.preferredCarrierId);\r\n    this.customerBaseForm.controls['defaultServiceProviderId'].setValue(getResponse.apiData.defaultServiceProviderId);\r\n    this.customerBaseForm.controls['webAppUserId'].setValue(getResponse.apiData.webAppUserId);\r\n    this.customerBaseForm.controls['mobileAppUserId'].setValue(getResponse.apiData.mobileAppUserId);\r\n    this.customerBaseForm.controls['pricingTierId'].setValue(getResponse.apiData.pricingTierId);\r\n    this.customerBaseForm.controls['labelName'].setValue(getResponse.apiData.labelName);\r\n    this.customerBaseForm.controls['isActive'].setValue(getResponse.apiData.isActive);\r\n    this.customerBaseForm.controls['webOrMobileUserGuid'].setValue(getResponse.apiData.webOrMobileUserGuid);\r\n    this.customerBaseConfiguration.addressObj = getResponse.apiData.addressObj;\r\n    this.mobileAppOption = getResponse.apiData.mobileAppUserId;\r\n    this.webformOption = getResponse.apiData.webAppUserId;\r\n    this.tempUserDetails = getResponse.apiData.webOrMobileUserGuid;\r\n    //writing the code to make field disabled on edit click//\r\n    if (getResponse.apiData.webAppUserId || getResponse.apiData.mobileAppUserId) {\r\n      // this.removeValidators();\r\n      this.isDisable = true;\r\n      this.userEmail = getResponse.apiData.userEmail;\r\n      this.customerBaseForm.controls['firstName'].setValue(getResponse.apiData.firstName);\r\n      this.customerBaseForm['controls'].firstName.disable();\r\n      this.customerBaseForm.controls['lastName'].setValue(getResponse.apiData.lastName);\r\n      this.customerBaseForm['controls'].lastName.disable();\r\n      this.customerBaseForm.controls['mobileNumber'].setValue(getResponse.apiData.mobileNumber);\r\n      this.customerBaseForm['controls'].mobileNumber.disable();\r\n      this.customerBaseForm.controls['userEmail'].setValue(getResponse.apiData.userEmail);\r\n      this.customerBaseForm['controls'].userEmail.disable();\r\n      this.hidePasswordFields = false;\r\n      this.customerBaseForm.controls['password'].setValue(\"\");\r\n      this.customerBaseForm['controls'].password.disable();\r\n      this.customerBaseForm.controls['confirmPassword'].setValue(\"\");\r\n      this.customerBaseForm['controls'].confirmPassword.disable();\r\n\r\n      this.selectedRolesValuesList = [];\r\n\r\n      const userManagementResponse = await this.userManagementService.GetDataById(getResponse.apiData.webOrMobileUserGuid);\r\n      this.updateStatus = true;\r\n      this.selectedRoleList = userManagementResponse.apiData.applicationRoleGUID;\r\n      this.selectedRoleListDisplay = JSON.parse(JSON.stringify(userManagementResponse.apiData.applicationRoleGUID\r\n        .filter(element => element.isActive === true)));\r\n      this.selectedRolesValuesList = this.selectedRoleList\r\n        .filter(element => element.isActive === true)\r\n        .map(element => element.dataValue);\r\n      this.customerBaseForm.controls['applicationRole'].setValue(this.selectedRolesValuesList);\r\n      this.customerBaseForm['controls'].applicationRole.disable();\r\n\r\n    }\r\n    else {\r\n      this.isDisable = false;\r\n    }\r\n  }\r\n\r\n\r\n  /**\r\n   * @description\r\n   *\r\n   * this method converts all form inputs into model class\r\n   *\r\n   * @returns model with new form values\r\n   */\r\n  ConvertFormToModel() {\r\n    const customerBaseModel = new CustomerBaseModel();\r\n    customerBaseModel.recordId = this.customerBaseForm.value.recordId;\r\n    customerBaseModel.customerTypeId = this.customerBaseForm.value.customerTypeId;\r\n    customerBaseModel.customerCategoryId = this.customerBaseForm.value.customerCategoryId;\r\n    customerBaseModel.isAccountBlocked = this.customerBaseForm.value.isAccountBlocked;\r\n    customerBaseModel.isAdvancePaymentRequired = this.customerBaseForm.value.isAdvancePaymentRequired;\r\n    customerBaseModel.preferredCarrierId = this.customerBaseForm.value.preferredCarrierId;\r\n    customerBaseModel.defaultServiceProviderId = this.customerBaseForm.value.defaultServiceProviderId;\r\n    customerBaseModel.webAppUserId = this.customerBaseForm.value.webAppUserId == true ? true : false;\r\n    customerBaseModel.mobileAppUserId = this.customerBaseForm.value.mobileAppUserId == true ? true : false;\r\n    customerBaseModel.pricingTierId = this.customerBaseForm.value.pricingTierId;\r\n    customerBaseModel.labelName = this.customerBaseForm.value.labelName;\r\n    customerBaseModel.passwordHash = this.customerBaseForm.value.passwordHash;\r\n    customerBaseModel.passwordSalt = this.customerBaseForm.value.passwordSalt;\r\n    customerBaseModel.webOrMobileUserGuid = this.customerBaseForm.value.webOrMobileUserGuid;\r\n    customerBaseModel.userEmail = this.customerBaseForm.value.userEmail;\r\n    customerBaseModel.userpassword = this.customerBaseForm.value.password;\r\n    customerBaseModel.userconfirmpassword = this.customerBaseForm.value.confirmPassword;\r\n    customerBaseModel.formCode = this.customerBaseConfiguration.formCode;\r\n    customerBaseModel.address = this.customerBaseConfiguration.address;\r\n\r\n    return customerBaseModel;\r\n  }\r\n\r\n  /**\r\n    * @description\r\n    * \r\n    * this method converts all form inputs into model class\r\n    * \r\n    * @returns model with new form values\r\n    */\r\n  ConvertUserFormToModel(getResponse: any) {\r\n    const userManagementModel = new UserManagementModel();\r\n    userManagementModel.selectedRolesList = this.selectedRoleList;\r\n    userManagementModel.applicationRolesList = this.customerBaseForm.value.applicationRole;\r\n    userManagementModel.userGUID = getResponse.apiData.userGuid;\r\n    userManagementModel.applicationRoles = this.customerBaseModel.selectedRolesList;\r\n    userManagementModel.formCode = 'VETS-CUST';\r\n\r\n    return userManagementModel;\r\n  }\r\n\r\n  /**\r\n   * @description\r\n   * clear form data\r\n   */\r\n  ClearForm() {\r\n    this.DeclareForm();\r\n  }\r\n\r\n  divDisplaySetting = false;\r\n  async emitDataToParent() {\r\n    this.GetRolesList();\r\n    this.webformOption = this.customerBaseForm.value.webAppUserId;\r\n    this.mobileAppOption = this.customerBaseForm.value.mobileAppUserId;\r\n    this.hidePasswordFields = false;\r\n    if (this.webformOption || this.mobileAppOption) {\r\n      if (this.isEditMode == true) {\r\n        var userDetails = this.customerBaseForm.value.webOrMobileUserGuid;\r\n        const getResponse = await this.userManagementService.GetDataById(userDetails);\r\n        this.customerBaseForm.controls['firstName'].setValue(getResponse.apiData.firstName);\r\n        this.customerBaseForm['controls'].firstName.disable();\r\n        this.customerBaseForm.controls['lastName'].setValue(getResponse.apiData.lastName);\r\n        this.customerBaseForm['controls'].lastName.disable();\r\n        this.customerBaseForm.controls['mobileNumber'].setValue(getResponse.apiData.mobileNumber);\r\n        this.customerBaseForm['controls'].mobileNumber.disable();\r\n        this.customerBaseForm.controls['userEmail'].setValue(getResponse.apiData.userEmail);\r\n        this.customerBaseForm['controls'].userEmail.disable();\r\n        this.customerBaseForm.controls['password'].setValue(\"\");\r\n        this.customerBaseForm['controls'].password.disable();\r\n        this.customerBaseForm.controls['confirmPassword'].setValue(\"\");\r\n        this.customerBaseForm['controls'].confirmPassword.disable();\r\n        this.selectedRolesValuesList = [];\r\n        //const userManagementResponse = await this.userManagementService.GetDataById(getResponse.apiData.webOrMobileUserGuid);\r\n        this.updateStatus = true;\r\n        this.selectedRoleList = getResponse.apiData.applicationRoleGUID;\r\n        this.selectedRoleListDisplay = JSON.parse(JSON.stringify(getResponse.apiData.applicationRoleGUID\r\n          .filter(element => element.isActive === true)));\r\n        this.selectedRolesValuesList = this.selectedRoleList\r\n          .filter(element => element.isActive === true)\r\n          .map(element => element.dataValue);\r\n        this.customerBaseForm.controls['applicationRole'].setValue(this.selectedRolesValuesList);\r\n        this.customerBaseForm['controls'].applicationRole.disable();\r\n      }\r\n      else {\r\n        this.clearWebOrMobileLogin();\r\n      }\r\n    }\r\n\r\n    let customerBaseModel = new CustomerBaseModel();\r\n    customerBaseModel = this.ConvertFormToModel();\r\n    console.log(customerBaseModel);\r\n    this.customerBaseData.emit(customerBaseModel);\r\n  }\r\n\r\n  clearWebOrMobileLogin() {\r\n    //this.tempUserDetails = null;\r\n    this.customerBaseForm.controls['firstName'].setValue(null);\r\n    this.customerBaseForm['controls'].firstName.enable();\r\n    this.customerBaseForm.controls['lastName'].setValue(null);\r\n    this.customerBaseForm['controls'].lastName.enable();\r\n    this.customerBaseForm.controls['mobileNumber'].setValue(null);\r\n    this.customerBaseForm['controls'].mobileNumber.enable();\r\n    this.customerBaseForm.controls['userEmail'].setValue(null);\r\n    this.customerBaseForm['controls'].userEmail.enable();\r\n    this.customerBaseForm.controls['passwordHash'].setValue(null);\r\n    this.customerBaseForm['controls'].passwordHash.enable();\r\n    this.customerBaseForm.controls['passwordSalt'].setValue(null);\r\n    this.customerBaseForm['controls'].passwordSalt.enable();\r\n  }\r\n\r\n  /**\r\n  * @description\r\n  *\r\n  * Insert customer data into database\r\n  */\r\n  flag: boolean = false;\r\n  tempUserGuid: string = '';\r\n  public async InsertData() {\r\n    let customerBaseModel = new CustomerBaseModel();\r\n    customerBaseModel = this.ConvertFormToModel();\r\n    if (this.customerBaseForm.value.webAppUserId || this.customerBaseForm.value.mobileAppUserId) {\r\n      let entity = new CreateUserModel();\r\n      entity.firstName = this.customerBaseForm.value.firstName;\r\n      entity.lastName = this.customerBaseForm.value.lastName;\r\n      entity.displayName = this.customerBaseForm.value.firstName + \" \" + this.customerBaseForm.value.lastName;\r\n      entity.mobileNumber = this.customerBaseForm.value.mobileNumber;\r\n      entity.jobTitle = this.customerBaseForm.value.firstName;\r\n      entity.mobileApp = customerBaseModel.mobileAppUserId;\r\n      entity.webLogin = customerBaseModel.webAppUserId;\r\n      entity.isTermsConditionsAccepted = true;\r\n      entity.userEmail = this.customerBaseForm.value.userEmail;\r\n      entity.password = this.customerBaseForm.value.password;\r\n      const userResponse = await this.createUser.CreateUser(entity);\r\n      customerBaseModel.webOrMobileUserGuid = userResponse.apiData.resultGuid;\r\n      userResponse.apiData.userGuid = userResponse.apiData.resultGuid;\r\n      this.tempUserGuid = userResponse.apiData.resultGuid;\r\n      if (userResponse.apiData.resultGuid != null) {\r\n        const userManagementModel = this.ConvertUserFormToModel(userResponse);\r\n        if (userManagementModel.applicationRolesList.length > 0) {\r\n          userManagementModel.userGUID = userResponse.apiData.resultGuid;;\r\n          const userManagementResponse = await this.userManagementService.InsertData(userManagementModel);\r\n          this.userMessages = userManagementResponse.message.userMessage[0];\r\n          this.flag = true;\r\n        }\r\n      }\r\n      else {\r\n        this.toastr.ShowError(userResponse.message.userMessage[0]);\r\n      }\r\n    }\r\n    if (this.flag == true || (this.customerBaseForm.value.webAppUserId == false && this.customerBaseForm.value.mobileAppUserId == false)) {\r\n      //customerBaseModel.WebOrMobileUserGuid = this.tempUserGuid;\r\n      const getResponse = await this.customerBaseService.InsertData(customerBaseModel);\r\n      this.customerId = getResponse.apiData;\r\n      if (getResponse.apiData != null) {\r\n        this.toastr.ShowSuccess(getResponse.message.userMessage[0]);\r\n      }\r\n      else {\r\n        this.toastr.ShowError(getResponse.message.userMessage[0]);\r\n      }\r\n      this.customerBaseData.emit(getResponse.apiData);\r\n    }\r\n\r\n  }\r\n\r\n  /**\r\n   * @description\r\n   *\r\n   * update customer data into database\r\n   */\r\n  public async UpdateData() {\r\n    this.isEditMode = false;\r\n    let customerBaseModel = new CustomerBaseModel();\r\n    customerBaseModel = this.ConvertFormToModel();\r\n    const getResponse = await this.customerBaseService.UpdateData(customerBaseModel);\r\n    this.userMessages = getResponse.message.userMessage[0];\r\n    this.toastr.ShowSuccess(this.userMessages.toString());\r\n    this.customerBaseDataRecordId.emit(getResponse);;\r\n    // if (this.customerBaseForm.value.webAppUserId == true || this.customerBaseForm.value.mobileAppUserId == true\r\n    //   || (this.customerBaseForm.value.webAppUserId == false && this.customerBaseForm.value.mobileAppUserId == false)) {\r\n    //   this.userMessages = getResponse.message.userMessage[0];\r\n    //   getResponse.apiData.userGuid = getResponse.apiData.resultGuid;\r\n    //   const userManagementModel = this.ConvertUserFormToModel(getResponse.apiData);\r\n    //   // Add the response data from the employee service to the user management model\r\n    //   userManagementModel.data = getResponse.apiData;\r\n\r\n    //   if (userManagementModel.selectedRolesList.length > 0) {\r\n    //     const userManagementResponse = await this.userManagementService.UpdateData(userManagementModel);\r\n    //   }\r\n    //   else {\r\n    //     if (this.selectedRoleListDisplay.length > 0) {\r\n    //       const userManagementResponse = await this.userManagementService.InsertData(userManagementModel);\r\n    //     }\r\n    //   }\r\n    //   this.userMessages = getResponse.message.userMessage;\r\n    //   if (this.customerBaseConfiguration.userMessages) {\r\n    //     this.toastr.ShowSuccess(this.userMessages.toString());\r\n    //   }\r\n    // }\r\n  }\r\n\r\n  /**\r\n   * @description\r\n   *\r\n   * Delete customer data into database\r\n   */\r\n  public async DeleteData(value) {\r\n    const getResponse = await this.customerBaseService.DeleteData(value);\r\n    this.userMessages = getResponse.message.userMessage;\r\n    if (this.customerBaseConfiguration.userMessages) {\r\n      this.toastr.ShowSuccess(this.userMessages.toString());\r\n    }\r\n  }\r\n\r\n  /**\r\n     * @description\r\n     * \r\n     * Grid events calls\r\n     */\r\n  handleGridEvents(gridEvents: GridEventsModel) {\r\n    gridEvents.editRecord.subscribe((recordId) => {\r\n      this.hideButtons = false;\r\n      this.isViewCall = false;\r\n      this.EditData(recordId);\r\n      this.customerBaseForm.enable();\r\n    });\r\n    gridEvents.deleteRecord.subscribe((recordId) => {\r\n      this.DeleteData(recordId);\r\n    });\r\n    gridEvents.viewRecord.subscribe(async (recordId) => {\r\n      this.EditData(recordId);\r\n      this.customerBaseForm.disable();\r\n    });\r\n  }\r\n\r\n  /**\r\n     * @description\r\n     * get data for Customer grid list\r\n     */\r\n  public async GetListData() {\r\n    const customerBaseModel = new CustomerBaseModel();\r\n    try {\r\n      const getResponse = await this.customerBaseService.GetListData(customerBaseModel);\r\n      this.gridData = getResponse.apiData;\r\n    } catch (error) {\r\n      this.errorLogService.saveError(error);\r\n      this.toastr.ShowAllErrors(error.error.message.userMessage);\r\n    }\r\n  }\r\n\r\n  updateValidators(): void {\r\n    this.webformOption = this.customerBaseForm.value.webLogin;\r\n    this.mobileAppOption = this.customerBaseForm.value.mobileApp;\r\n    if (this.webformOption || this.mobileAppOption) {\r\n      this.customerBaseForm.get('userEmail').setValidators([Validators.required, Validators.email]);\r\n      this.customerBaseForm.get('userEmail').updateValueAndValidity();\r\n      this.customerBaseForm.get('password').setValidators([Validators.required, Validators.pattern('^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&])[A-Za-z\\\\d@$!%*?&]{8,}$')]);\r\n      this.customerBaseForm.get('password').updateValueAndValidity();\r\n      this.customerBaseForm.get('confirmPassword').setValidators([Validators.required, Validators.pattern('^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&])[A-Za-z\\\\d@$!%*?&]{8,}$'),]);\r\n      this.customerBaseForm.get('confirmPassword').updateValueAndValidity();\r\n      this.customerBaseForm.get('applicationRole').setValidators([Validators.required]);\r\n      this.customerBaseForm.get('applicationRole').updateValueAndValidity();\r\n    } else {\r\n      this.removeValidators();\r\n    }\r\n  }\r\n\r\n  removeValidators() {\r\n    this.customerBaseForm.get('userEmail').setValidators(null);\r\n    this.customerBaseForm.get('userEmail').updateValueAndValidity();\r\n    this.customerBaseForm.get('password').setValidators(null);\r\n    this.customerBaseForm.get('password').updateValueAndValidity();\r\n    this.customerBaseForm.get('confirmPassword').setValidators(null);\r\n    this.customerBaseForm.get('confirmPassword').updateValueAndValidity();\r\n    this.customerBaseForm.get('applicationRole').setValidators(null);\r\n    this.customerBaseForm.get('applicationRole').updateValueAndValidity();\r\n\r\n  }\r\n\r\n  onWebformOptionChange(): void {\r\n    this.updateValidators();\r\n  }\r\n\r\n  onMobileAppOptionChange(): void {\r\n    this.updateValidators();\r\n  }\r\n\r\n  generateRoleList(event) {\r\n    this.selectedRoleListDisplay = [];\r\n    this.selectedRoleList.forEach(item => {\r\n      const isActive = event.includes(item.dataValue);\r\n      const isDeleted = !isActive;\r\n      item.isActive = isActive;\r\n      item.isDeleted = isDeleted;\r\n\r\n    });\r\n\r\n    event.forEach(element => {\r\n      var object = this.roleList.find(obj => obj.dataValue == element);\r\n      var newObj = { isActive: true, isDeleted: false, dataText: object.dataText, dataValue: object.dataValue };\r\n\r\n      if (this.selectedRoleList != null && this.selectedRoleList.length > 0) {\r\n        var findIndex = this.selectedRoleList.findIndex(f => f.dataValue == element)\r\n        if (findIndex == null || findIndex == -1) {\r\n          this.selectedRoleList.push(newObj);\r\n        }\r\n        else {\r\n          this.selectedRoleList[findIndex].isActive = true;\r\n          this.selectedRoleList[findIndex].isDeleted = false;\r\n        }\r\n      }\r\n      else {\r\n        this.selectedRoleList.push(newObj);\r\n      }\r\n      this.selectedRoleListDisplay.push(newObj);\r\n    });\r\n  }\r\n\r\n  removeRoleItem(recordId) {\r\n    if (this.hidePasswordFields != true) {\r\n      if (this.selectedRoleList != null && this.selectedRoleList.length > 0) {\r\n        var findIndex = this.selectedRoleList.findIndex(f => f.dataValue == recordId)\r\n        if (findIndex != null && findIndex > -1) {\r\n          this.selectedRoleList[findIndex].isActive = false;\r\n          this.selectedRoleList[findIndex].isDeleted = true;\r\n        }\r\n      }\r\n\r\n      if (this.selectedRoleListDisplay != null && this.selectedRoleListDisplay.length > 0) {\r\n        var findIndex = this.selectedRoleListDisplay.findIndex(f => f.dataValue == recordId)\r\n        if (findIndex != null && findIndex > -1) {\r\n          this.selectedRoleListDisplay.splice(findIndex, 1);\r\n        }\r\n      }\r\n      this.selectedItemsList = this.selectedRoleListDisplay.map(item => item.dataValue);\r\n      this.customerBaseForm.controls['applicationRole'].setValue(this.selectedItemsList);\r\n    }\r\n    else {\r\n      this.toastr.ShowError(\"Can't Deleted\");\r\n    }\r\n  }\r\n\r\n  public async GetRolesList() {\r\n    try {\r\n      const getResponse = await this.userRolesService.getUserRolesDropdown();\r\n      this.roleList = getResponse.apiData;\r\n    }\r\n    catch (error) {\r\n      this.errorLogService.saveError(error);\r\n      this.toastr.ShowAllErrors(error.error.message.userMessage);\r\n    }\r\n  }\r\n\r\n}\r\n","<div class=\"flex flex-col flex-auto min-w-0 w-full\">\r\n\r\n  <!-- form code starts here -->\r\n  <!--content-->\r\n  <div class=\"sm:w-full overflow-hidden\" *ngIf=\"customerBaseConfiguration.showModal\">\r\n\r\n    <!--form body-->\r\n    <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"customerBaseForm\">\r\n\r\n      <!-- Customer Person section start  -->\r\n\r\n      <div *ngIf=\"customerBaseConfiguration.allowedCustomerPersonSection\">\r\n        <div class=\"sm:flex\">\r\n          <div class=\"w-full\">\r\n            <div class=\"sm:flex px-8 pt-4\">\r\n              <mat-form-field class=\"flex-auto w-full mr-4\">\r\n                <mat-label>First Name</mat-label>\r\n                <input matInput id=\"firstName\" placeholder=\"First Name\" pattern=\"^[a-zA-Z]*$\" minlength=\"3\"\r\n                  [formControlName]=\"'firstName'\">\r\n                <mat-error *ngIf=\"customerBaseForm.get('firstName').hasError('required')\">\r\n                  First Name is required\r\n                </mat-error>\r\n                <mat-error *ngIf=\"customerBaseForm.get('firstName').hasError('pattern')\">\r\n                  Please enter valid first name\r\n                </mat-error>\r\n                <mat-error *ngIf=\"customerBaseForm.get('firstName').hasError('minlength')\">\r\n                  First name must be of atleast 3 characters\r\n                </mat-error>\r\n              </mat-form-field>\r\n\r\n              <mat-form-field class=\"flex-auto w-full mr-4\">\r\n                <mat-label>Middle Name</mat-label>\r\n                <input matInput id=\"middleName\" placeholder=\"Middle Name\" [formControlName]=\"'middleName'\">\r\n              </mat-form-field>\r\n\r\n              <mat-form-field class=\"flex-auto w-full\">\r\n                <mat-label>Last Name</mat-label>\r\n                <input matInput id=\"lastName\" pattern=\"^[a-zA-Z]*$\" minlength=\"3\" placeholder=\"Last Name\"\r\n                  [formControlName]=\"'lastName'\">\r\n                <mat-error *ngIf=\"customerBaseForm.get('lastName').hasError('required')\">\r\n                  Last Name is required\r\n                </mat-error>\r\n                <mat-error *ngIf=\"customerBaseForm.get('lastName').hasError('pattern')\">\r\n                  Please enter valid last name\r\n                </mat-error>\r\n                <mat-error *ngIf=\"customerBaseForm.get('lastName').hasError('minlength')\">\r\n                  Last name must be of atleast 3 characters\r\n                </mat-error>\r\n              </mat-form-field>\r\n            </div>\r\n            <div class=\"sm:flex px-8 pt-4\">\r\n              <mat-form-field class=\"flex-auto w-full mr-4\">\r\n                <mat-label>Mother Name</mat-label>\r\n                <input matInput id=\"motherName\" placeholder=\"Mother Name\" [formControlName]=\"'motherName'\">\r\n              </mat-form-field>\r\n\r\n              <mat-form-field class=\"flex-auto w-full\">\r\n                <mat-label>Display Name</mat-label>\r\n                <input matInput id=\"displayName\" pattern=\"^[a-zA-Z]*$\" minlength=\"3\" placeholder=\"Display Name\"\r\n                  [formControlName]=\"'displayName'\">\r\n                <mat-error *ngIf=\"customerBaseForm.get('displayName').hasError('required')\">\r\n                  Display Name is required\r\n                </mat-error>\r\n                <mat-error *ngIf=\"customerBaseForm.get('displayName').hasError('minlength')\">\r\n                  Display Name must be of atleast 3 characters\r\n                </mat-error>\r\n              </mat-form-field>\r\n\r\n            </div>\r\n            <div class=\"sm:flex px-8 pt-4\">\r\n              <mat-form-field class=\"flex-auto w-full mr-4\">\r\n                <mat-label>Gender</mat-label>\r\n                <mat-select matSelect id=\"gender\" placeholder=\"Gender\" [formControlName]=\"'gender'\">\r\n                  <mat-option value=\"Male\">Male</mat-option>\r\n                  <mat-option value=\"Female\">Female</mat-option>\r\n                </mat-select>\r\n                <mat-error *ngIf=\"customerBaseForm.get('gender').hasError('required')\">\r\n                  Gender is required\r\n                </mat-error>\r\n              </mat-form-field>\r\n\r\n              <mat-form-field class=\"flex-auto w-full\">\r\n                <mat-label>Date of Birth</mat-label>\r\n                <input class=\"pl-2\" matInput [matDatepicker]=\"picker\" formControlName=\"dateOfBirth\">\r\n                <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n                <mat-datepicker #picker></mat-datepicker>\r\n                <mat-error *ngIf=\"customerBaseForm.get('dateOfBirth').hasError('required')\">Date of Birth is\r\n                  required</mat-error>\r\n                <mat-error *ngIf=\"customerBaseForm.get('dateOfBirth').hasError('invalidDate')\">Invalid Date of\r\n                  Birth</mat-error>\r\n              </mat-form-field>\r\n\r\n            </div>\r\n          </div>\r\n\r\n        </div>\r\n\r\n        <div class=\"sm:flex px-8 pt-4\">\r\n          <mat-form-field class=\"flex-auto w-full mr-4\">\r\n            <mat-label>Mobile Number</mat-label>\r\n            <input matInput id=\"mobileNumber\" pattern=\"^[0-9]*$\" maxlength=\"13\" placeholder=\"Mobile Number\"\r\n              [formControlName]=\"'mobileNumber'\">\r\n            <mat-error *ngIf=\"customerBaseForm.get('mobileNumber').hasError('required')\">\r\n              Mobile Number is required\r\n            </mat-error>\r\n            <mat-error *ngIf=\"customerBaseForm.get('mobileNumber').hasError('pattern')\">\r\n              Please enter valid mobile number\r\n            </mat-error>\r\n            <mat-error *ngIf=\"customerBaseForm.get('mobileNumber').hasError('maxlength')\">\r\n              Maximum 13 digits allowed\r\n            </mat-error>\r\n          </mat-form-field>\r\n          <mat-form-field class=\"flex-auto w-full mr-4\">\r\n            <mat-label>Alternate Mobile Number</mat-label>\r\n            <input matInput id=\"alternateMobileNumber\" pattern=\"^[0-9]*$\" maxlength=\"13\"\r\n              placeholder=\"Alternate Mobile Number\" [formControlName]=\"'alternateMobileNumber'\">\r\n            <mat-error *ngIf=\"customerBaseForm.get('alternateMobileNumber').hasError('pattern')\">\r\n              Please enter a valid mobile number\r\n            </mat-error>\r\n            <mat-error *ngIf=\"customerBaseForm.get('alternateMobileNumber').hasError('maxlength')\">\r\n              Maximum 13 digits allowed\r\n            </mat-error>\r\n            <mat-error *ngIf=\"customerBaseForm.get('alternateMobileNumber').hasError('match') && \r\n              customerBaseForm.get('alternateMobileNumber').value === customerBaseForm.get('mobileNumber').value\">\r\n              Mobile Number and Alternate Mobile Number cannot be the same\r\n            </mat-error>\r\n          </mat-form-field>\r\n        </div>\r\n\r\n        <div class=\"sm:flex px-8 py-4\">\r\n          <mat-form-field id=\"email\" class=\"flex-auto w-full mr-4\">\r\n            <mat-label>Email Address</mat-label>\r\n            <input matInput placeholder=\"Email Address\" [formControlName]=\"'email'\">\r\n            <mat-error *ngIf=\"customerBaseForm.get('email').hasError('required')\">\r\n              Email Address is required\r\n            </mat-error>\r\n            <mat-error *ngIf=\"customerBaseForm.get('email').hasError('email')\">\r\n              Please enter valid email address\r\n            </mat-error>\r\n          </mat-form-field>\r\n          <mat-form-field id=\"alternateEmail\" class=\"flex-auto w-full mr-4\">\r\n            <mat-label>Alternate Email Address</mat-label>\r\n            <input matInput placeholder=\"Alternate Email Address\" [formControlName]=\"'alternateEmail'\">\r\n            <mat-error *ngIf=\"customerBaseForm.get('alternateEmail').hasError('email')\">\r\n              Please enter valid email address\r\n            </mat-error>\r\n            <mat-error *ngIf=\"customerBaseForm.get('alternateEmail').hasError('match') &&\r\n            customerBaseForm.get('alternateEmail').value === customerBaseForm.get('email').value\">\r\n              Email Address and Alternate Email Address Cannot be the Same\r\n            </mat-error>\r\n          </mat-form-field>\r\n        </div>\r\n      </div>\r\n\r\n      <!-- Customer Person section End  -->\r\n\r\n      <!-- Customer Base section start  -->\r\n      <div *ngIf=\"customerBaseConfiguration.allowedCustomerBaseSection\">\r\n        <div class=\"sm:flex\">\r\n          <div class=\"w-full\">\r\n            <div class=\"sm:flex px-8 pt-4\">\r\n              <mat-form-field id=\"defaultServiceProviderId\" class=\"flex-auto w-full mr-4\"\r\n                *ngIf=\"customerBaseConfiguration.allowedCustomerBaseFields.defaultServiceProviderId\">\r\n                <mat-label>Service Provider</mat-label>\r\n                <mat-select matSelect [formControlName]=\"'defaultServiceProviderId'\"\r\n                  (selectionChange)=\"emitDataToParent()\">\r\n                  <mat-option\r\n                    *ngFor=\"let serviceProvider of customerBaseConfiguration.dropdownListData.serviceProviderList\"\r\n                    [value]=\"serviceProvider.dataValue\">{{serviceProvider.dataText}}</mat-option>\r\n                </mat-select>\r\n                <mat-error\r\n                  *ngIf=\"customerBaseForm.get('defaultServiceProviderId').hasError('required') && customerBaseConfiguration.requiredCustomerBaseFields.defaultServiceProviderId\">\r\n                  Service Provider is required\r\n                </mat-error>\r\n              </mat-form-field>\r\n\r\n              <mat-form-field id=\"preferredCarrierId\" class=\"flex-auto w-full\"\r\n                *ngIf=\"customerBaseConfiguration.allowedCustomerBaseFields.preferredCarrierId\">\r\n                <mat-label>Preferred Carrier</mat-label>\r\n                <mat-select matSelect [formControlName]=\"'preferredCarrierId'\" (selectionChange)=\"emitDataToParent()\">\r\n                  <mat-option\r\n                    *ngFor=\"let preferredCarrier of customerBaseConfiguration.dropdownListData.preferredCarrierList\"\r\n                    [value]=\"preferredCarrier.dataValue\">{{preferredCarrier.dataText}}</mat-option>\r\n                </mat-select>\r\n                <mat-error\r\n                  *ngIf=\"customerBaseForm.get('preferredCarrierId').hasError('required') && customerBaseConfiguration.requiredCustomerBaseFields.preferredCarrierId\">\r\n                  Preferred Carrier is required\r\n                </mat-error>\r\n              </mat-form-field>\r\n            </div>\r\n\r\n            <div class=\"sm:flex px-8 pt-4\">\r\n              <mat-form-field id=\"pricingTierId\" class=\"flex-auto w-full mr-4\"\r\n                *ngIf=\"customerBaseConfiguration.allowedCustomerBaseFields.pricingTierId\">\r\n                <mat-label>Default Pricing Tier</mat-label>\r\n                <mat-select matSelect [formControlName]=\"'pricingTierId'\" (selectionChange)=\"emitDataToParent()\">\r\n                  <mat-option *ngFor=\"let priceTier of customerBaseConfiguration.dropdownListData.pricingTierList\"\r\n                    [value]=\"priceTier.dataValue\">{{priceTier.dataText}}</mat-option>\r\n                </mat-select>\r\n                <mat-error\r\n                  *ngIf=\"customerBaseForm.get('pricingTierId').hasError('required') && customerBaseConfiguration.requiredCustomerBaseFields.pricingTierId\">\r\n                    Default Pricing Tier is required\r\n                </mat-error>\r\n              </mat-form-field>\r\n\r\n              <mat-form-field class=\"flex-auto w-full\"\r\n                *ngIf=\"customerBaseConfiguration.allowedCustomerBaseFields.labelName\">\r\n                <mat-label>Label Name</mat-label>\r\n                <input matInput id=\"labelName\" placeholder=\"Label Name\" [formControlName]=\"'labelName'\"\r\n                  (change)=\"emitDataToParent()\">\r\n              </mat-form-field>\r\n            </div>\r\n\r\n            <div class=\"sm:flex px-8 pt-4\">\r\n              <mat-form-field id=\"webAppUserId\" class=\"flex-auto w-full mr-4\"\r\n                *ngIf=\"customerBaseConfiguration.allowedCustomerBaseFields.webAppUserId\">\r\n                <mat-label>Web Login</mat-label>\r\n                <mat-select matSelect [formControlName]=\"'webAppUserId'\" (selectionChange)=\"emitDataToParent()\">\r\n                  <mat-option [value]=\"true\">YES</mat-option>\r\n                  <mat-option [value]=\"false\">NO</mat-option>\r\n                </mat-select>\r\n                <mat-error\r\n                  *ngIf=\"customerBaseForm.get('webAppUserId').hasError('required') && customerBaseConfiguration.requiredCustomerBaseFields.webAppUserId\">\r\n                  Web Login is required\r\n                </mat-error>\r\n              </mat-form-field>\r\n\r\n              <mat-form-field id=\"mobileAppUserId\" class=\"flex-auto w-full\"\r\n                *ngIf=\"customerBaseConfiguration.allowedCustomerBaseFields.mobileAppUserId\">\r\n                <mat-label>Mobile App</mat-label>\r\n                <mat-select matSelect [formControlName]=\"'mobileAppUserId'\" (selectionChange)=\"emitDataToParent()\">\r\n                  <mat-option [value]=\"true\">YES</mat-option>\r\n                  <mat-option [value]=\"false\">NO</mat-option>\r\n                </mat-select>\r\n                <mat-error\r\n                  *ngIf=\"customerBaseForm.get('mobileAppUserId').hasError('required') && customerBaseConfiguration.requiredCustomerBaseFields.mobileAppUserId\">\r\n                  Mobile App is required\r\n                </mat-error>\r\n              </mat-form-field>\r\n            </div>\r\n\r\n            <div class=\"sm:flex px-8 pt-4\">\r\n              <mat-checkbox id=\"isAccountBlocked\" color=\"primary\"\r\n                class=\"flex-auto mr-2 w-full flex justify-left items-center\" formControlName=\"isAccountBlocked\"\r\n                (change)=\"emitDataToParent()\"\r\n                *ngIf=\"customerBaseConfiguration.allowedCustomerBaseFields.isAccountBlocked\">\r\n                <mat-label>Account Blocked</mat-label>\r\n              </mat-checkbox>\r\n              <div *ngIf=\"customerBaseForm.get('isAccountBlocked').hasError('required')\" class=\"error-message\">\r\n                Account Blocked checkbox is required.\r\n              </div>\r\n\r\n              <mat-checkbox id=\"isAdvancePaymentRequired\" color=\"primary\"\r\n                class=\"flex-auto w-full flex justify-left items-center\" formControlName=\"isAdvancePaymentRequired\"\r\n                (change)=\"emitDataToParent()\"\r\n                *ngIf=\"customerBaseConfiguration.allowedCustomerBaseFields.isAdvancePaymentRequired\">\r\n                <mat-label>Advance Payment Required</mat-label>\r\n              </mat-checkbox>\r\n              <div *ngIf=\"customerBaseForm.get('isAdvancePaymentRequired').hasError('required')\" class=\"error-message\">\r\n                Advance Payment Required checkbox is required.\r\n              </div>\r\n            </div>\r\n          </div>\r\n\r\n        </div>\r\n        <div *ngIf=\"(webformOption==null && mobileAppOption==null) ? false : (webformOption || mobileAppOption)\">\r\n          <!-- <form class=\"flex flex-col overflow-hidden\" [formGroup]=\"userCreateForm\"> -->\r\n\r\n          <div class=\"bg-gray-50 dark:bg-gray-700 py-4 px-8 border-b\">\r\n            <p class=\"text-lg font-medium\">Web Or Mobile Login Details</p>\r\n            <p class=\"text-secondary\">Enter Login Credentials</p>\r\n          </div>\r\n          <div class=\"sm:flex px-8 pt-4\">\r\n            <mat-form-field class=\"flex-auto w-full mr-4\">\r\n              <mat-label>First Name</mat-label>\r\n              <input matInput id=\"firstName\" placeholder=\"First Name\" pattern=\"^[a-zA-Z]*$\" minlength=\"3\"\r\n                [formControlName]=\"'firstName'\">\r\n              <mat-error *ngIf=\"customerBaseForm.get('firstName').hasError('required')\">\r\n                First Name is required\r\n              </mat-error>\r\n              <mat-error *ngIf=\"customerBaseForm.get('firstName').hasError('pattern')\">\r\n                Please enter valid first name\r\n              </mat-error>\r\n              <mat-error *ngIf=\"customerBaseForm.get('firstName').hasError('minlength')\">\r\n                First name must be of atleast 3 characters\r\n              </mat-error>\r\n            </mat-form-field>\r\n\r\n            <mat-form-field class=\"flex-auto w-full mr-4\">\r\n              <mat-label>Last Name</mat-label>\r\n              <input matInput id=\"lastName\" pattern=\"^[a-zA-Z]*$\" minlength=\"3\" placeholder=\"Last Name\"\r\n                [formControlName]=\"'lastName'\">\r\n              <mat-error *ngIf=\"customerBaseForm.get('lastName').hasError('required')\">\r\n                Last Name is required\r\n              </mat-error>\r\n              <mat-error *ngIf=\"customerBaseForm.get('lastName').hasError('pattern')\">\r\n                Please enter valid last name\r\n              </mat-error>\r\n              <mat-error *ngIf=\"customerBaseForm.get('lastName').hasError('minlength')\">\r\n                Last name must be of atleast 3 characters\r\n              </mat-error>\r\n            </mat-form-field>\r\n\r\n            <mat-form-field class=\"flex-auto w-full mr-4\">\r\n              <mat-label>Mobile Number</mat-label>\r\n              <input matInput id=\"mobileNumber\" pattern=\"^[0-9]*$\" maxlength=\"13\" placeholder=\"Mobile Number\"\r\n                [formControlName]=\"'mobileNumber'\">\r\n              <mat-error *ngIf=\"customerBaseForm.get('mobileNumber').hasError('required')\">\r\n                Mobile Number is required\r\n              </mat-error>\r\n              <mat-error *ngIf=\"customerBaseForm.get('mobileNumber').hasError('pattern')\">\r\n                Please enter valid mobile number\r\n              </mat-error>\r\n              <mat-error *ngIf=\"customerBaseForm.get('mobileNumber').hasError('maxlength')\">\r\n                Maximum 13 digits allowed\r\n              </mat-error>\r\n            </mat-form-field>\r\n\r\n          </div>\r\n\r\n          <div class=\"sm:flex px-8 pt-4\">\r\n            <mat-form-field id=\"userEmail\" class=\"flex-auto w-full mr-4\">\r\n              <mat-label>User Email</mat-label>\r\n              <input matInput placeholder=\"User Email\" [formControlName]=\"'userEmail'\" />\r\n              <mat-error *ngIf=\"customerBaseForm.get('userEmail').hasError('required')\">\r\n                User Email is required\r\n              </mat-error>\r\n              <mat-error *ngIf=\"customerBaseForm.get('userEmail').hasError('email')\">\r\n                Please provide correct User Email\r\n              </mat-error>\r\n            </mat-form-field>\r\n            <mat-form-field id=\"password\" class=\"flex-auto w-full mr-4\" [(hidden)]=\"hidePasswordFields\">\r\n              <mat-label>Password</mat-label>\r\n              <input matInput type=\"password\" placeholder=\"Password\" [formControlName]=\"'password'\" #passwordField />\r\n              <button mat-icon-button type=\"button\"\r\n                (click)=\"passwordField.type === 'password' ? passwordField.type = 'text' : passwordField.type = 'password'\"\r\n                matSuffix>\r\n                <mat-icon class=\"icon-size-5\" *ngIf=\"passwordField.type === 'password'\"\r\n                  [svgIcon]=\"'heroicons_solid:eye'\"></mat-icon>\r\n                <mat-icon class=\"icon-size-5\" *ngIf=\"passwordField.type === 'text'\"\r\n                  [svgIcon]=\"'heroicons_solid:eye-off'\"></mat-icon>\r\n              </button>\r\n              <mat-error *ngIf=\"customerBaseForm.get('password').hasError('required')\">\r\n                Password is required\r\n              </mat-error>\r\n              <mat-error *ngIf=\"customerBaseForm.get('password').hasError('pattern')\">\r\n                At least one lowercase letter,At least one uppercase letter,At least one digit,At least one special\r\n                character from the set [$!%*?&],Minimum length of 8 characters\r\n              </mat-error>\r\n            </mat-form-field>\r\n\r\n            <mat-form-field id=\"confirmPassword\" class=\"flex-auto w-full mr-4\" [(hidden)]=\"hidePasswordFields\">\r\n              <mat-label>Confirm Password</mat-label>\r\n              <input matInput type=\"password\" placeholder=\"Confirm Password\" [formControlName]=\"'confirmPassword'\"\r\n                #passwordConfirmField />\r\n\r\n              <button mat-icon-button type=\"button\"\r\n                (click)=\"passwordConfirmField.type === 'password' ? passwordConfirmField.type = 'text' : passwordConfirmField.type = 'password'\"\r\n                matSuffix>\r\n                <mat-icon class=\"icon-size-5\" *ngIf=\"passwordConfirmField.type === 'password'\"\r\n                  [svgIcon]=\"'heroicons_solid:eye'\"></mat-icon>\r\n                <mat-icon class=\"icon-size-5\" *ngIf=\"passwordConfirmField.type === 'text'\"\r\n                  [svgIcon]=\"'heroicons_solid:eye-off'\"></mat-icon>\r\n              </button>\r\n              <mat-error *ngIf=\"customerBaseForm.get('confirmPassword').hasError('required')\">\r\n                Confirm Password is required\r\n              </mat-error>\r\n              <mat-error *ngIf=\"customerBaseForm.get('confirmPassword').hasError('mustMatch')\">\r\n                Passwords must match\r\n              </mat-error>\r\n            </mat-form-field>\r\n          </div>\r\n          <div class=\"bg-gray-50 dark:bg-gray-700 py-4 px-8 border-b\">\r\n            <p class=\"text-lg font-medium\">Application Role Details</p>\r\n            <p class=\"text-secondary\">Select Application Role </p>\r\n          </div>\r\n          <div class=\"sm:flex px-8 pt-4\">\r\n            <mat-form-field id=\"applicationRole\" class=\"flex-auto w-full mr-4\">\r\n              <mat-label>Application Role</mat-label>\r\n              <mat-select multiple matSelect (selectionChange)=\"generateRoleList($event.value)\"\r\n                placeholder=\"Select Application Role\" [formControlName]=\"'applicationRole'\">\r\n                <mat-option id=\"role\" *ngFor=\"let role of roleList\" [value]=\"role.dataValue\">\r\n                  {{role.dataText}}\r\n                </mat-option>\r\n              </mat-select>\r\n              <mat-error *ngIf=\"customerBaseForm.get('applicationRole').hasError('required')\">\r\n                Application Role is required\r\n              </mat-error>\r\n            </mat-form-field>\r\n\r\n            <div class=\"sm:flex-auto w-full mb-4 px-8\">\r\n              <mat-label>Selected Roles</mat-label>\r\n              <div *ngFor=\"let item of selectedRoleListDisplay\"\r\n                class=\"my-2 p-4 bg-gray-200 rounded-md shadow-md flex-auto justify-between\">\r\n                <div class=\"w-full flex justify-between\">\r\n                  <div id=\"roleText\">{{item.dataText}} </div>\r\n                  <div><mat-icon (click)=\"isEditMode == false ? removeRoleItem(item.dataValue): ''\"\r\n                      svgIcon=\"mat_solid:close\" [(disable)]=\"isEditMode\"></mat-icon></div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n          <!-- </form> -->\r\n        </div>\r\n      </div>\r\n      <!-- Customer Base section End  -->\r\n    </form>\r\n  </div>\r\n  <div *ngIf=\"customerBaseConfiguration.showGrid\">\r\n    <lib-kendo-grid-view [configuration]=\"gridConfiguration\" (events)=\"handleGridEvents($event)\"></lib-kendo-grid-view>\r\n  </div>","import { CdkStepperModule } from \"@angular/cdk/stepper\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { ReactiveFormsModule, FormsModule } from \"@angular/forms\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\r\nimport { MatOptionModule, MatNativeDateModule } from \"@angular/material/core\";\r\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatGridListModule } from \"@angular/material/grid-list\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { MatSelectModule } from \"@angular/material/select\";\r\nimport { MatStepperModule } from \"@angular/material/stepper\";\r\nimport { MatToolbarModule } from \"@angular/material/toolbar\";\r\nimport { ButtonsModule } from \"@progress/kendo-angular-buttons\";\r\nimport { GridModule, SharedModule, ExcelModule } from \"@progress/kendo-angular-grid\";\r\nimport { CustomerBaseComponent } from \"./customer-base.component\";\r\nimport { KendoGridViewModule } from \"@qubesense/base-services\";\r\n\r\n@NgModule({\r\n    imports: [\r\n        MatIconModule,\r\n        MatInputModule,\r\n        MatToolbarModule,\r\n        ReactiveFormsModule,\r\n        FormsModule,\r\n        CommonModule,\r\n        GridModule,\r\n        ButtonsModule,\r\n        MatGridListModule,\r\n        MatFormFieldModule,\r\n        ReactiveFormsModule,\r\n        MatInputModule,\r\n        MatOptionModule,\r\n        MatSelectModule,\r\n        MatCheckboxModule,\r\n        SharedModule,\r\n        MatButtonModule,\r\n        MatDatepickerModule,\r\n        MatNativeDateModule,\r\n        ExcelModule,\r\n        MatStepperModule,\r\n        CdkStepperModule,\r\n        KendoGridViewModule\r\n    ],\r\n    declarations: [CustomerBaseComponent\r\n    ],\r\n    exports: [\r\n        CustomerBaseComponent\r\n    ],\r\n    providers: [\r\n        CustomerBaseComponent\r\n    ]\r\n})\r\n\r\nexport class CustomerBaseModule {\r\n\r\n}","/*\r\n * Public API Surface of customer-base\r\n */\r\n\r\nexport * from './lib/customer-base.service';\r\nexport * from './lib/customer-base.component';\r\nexport * from './lib/customer-base.module';\r\n\r\nexport * from './lib/dependencies/customer-base-api-urls';\r\nexport * from './lib/dependencies/customer-base-model';\r\n\r\nexport * from './lib/dependencies/user-creation/create-user-api-urls';\r\nexport * from './lib/dependencies/user-creation/create-user-model';\r\nexport * from './lib/dependencies/user-creation/create-user.service';\r\n\r\nexport * from './lib/dependencies/user-management/user-management-api-urls';\r\nexport * from './lib/dependencies/user-management/user-management-model';\r\nexport * from './lib/dependencies/user-management/user-management.service';\r\nexport * from './lib/dependencies/user-management/user-role-list-api-urls';\r\nexport * from './lib/dependencies/user-management/user-role-list.service';\r\nexport * from './lib/dependencies/user-management/validators';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CustomerBaseService","i4.CreateUserService","i5.UserManagementService","i6.UserRoleListService","i8"],"mappings":"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"}