cloud-ide-core 2.0.52 → 2.0.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -3,8 +3,8 @@ import * as _angular_core from '@angular/core';
3
3
  import { TemplateRef, OnInit, AfterViewInit, OnDestroy } from '@angular/core';
4
4
  import * as _angular_forms from '@angular/forms';
5
5
  import { FormGroup, FormArray } from '@angular/forms';
6
- import { ICoreSyme, ICoreSygms, MMenuListPayload, menuListControllerResponse, menuByIdControllerResponse, menuDeleteControllerResponse, MMenuChangeSequencePayload, menuChangeSequenceControllerResponse, ICoreSydept, MDepartment, departmentControllerResponse, departmentByIdControllerResponse, departmentDeleteControllerResponse, MDepartmentToggleStatusPayload, departmentToggleStatusControllerResponse, ICoreSydsg, ICoreSydsgl, MDesignation, designationControllerResponse, designationInsertUpdateControllerResponse, designationByIdControllerResponse, designationDeleteControllerResponse, designationToggleStatusControllerResponse, MGradeLevel, gradeLevelControllerResponse, MGradeLevelGetByIdPayload, gradeLevelByIdControllerResponse, gradeLevelDeleteControllerResponse, gradeLevelToggleStatusControllerResponse, MGradeLevelChangeSequencePayload, gradeLevelChangeSequenceControllerResponse, ICoreSypg, ICoreSytm, ICoreSythDrawer, ICoreSype, MSystemPages, systemPagesControllerResponse, MSystemPagesInsertUpdatePayload, systemPagesInsertUpdateControllerResponse, systemPagesByIdControllerResponse, systemPagesDeleteControllerResponse, MSystemPagesToggleStatusPayload, systemPagesToggleStatusControllerResponse, MSystemPagesCheckCodeExistsPayload, systemPagesCheckCodeExistsControllerResponse, MSystemPagesTheme, systemPagesThemeControllerResponse, MSystemPagesThemeInsertUpdatePayload, systemPagesThemeInsertUpdateControllerResponse, systemPagesThemeByIdControllerResponse, systemPagesThemeByPageIdControllerResponse, systemPagesThemeDeleteControllerResponse, MSystemPagesThemeToggleStatusPayload, systemPagesThemeToggleStatusControllerResponse, MPageElements, pageElementsControllerResponse, MPageElementsInsertUpdatePayload, pageElementsInsertUpdateControllerResponse, pageElementsByIdControllerResponse, pageElementsByPageIdControllerResponse, pageElementsMappingByPageIdControllerResponse, MPageElementsMappingInsertUpdatePayload, pageElementsMappingInsertUpdateControllerResponse, pageElementsMappingDeleteControllerResponse, pageElementsDeleteControllerResponse, MPageElementsToggleStatusPayload, pageElementsToggleStatusControllerResponse, AuthUserMstListPayload, authUserMstListControllerResponse, AuthUserMst, MUserRole, userRoleControllerResponse, MUserRoleGetByIdPayload, userRoleByIdControllerResponse, MUserRoleWithRightsPayload, userRoleInsertUpdateControllerResponse, MUserRoleDeletePayload, userRoleDeleteControllerResponse, MUserRoleToggleStatusPayload, userRoleToggleStatusControllerResponse, AuthUserCoreEntityMapping, selectSearchType, CoreSystemEntityListResponse, CoreSystemEntity, entityControllerResponse, MEntity, ICoreSygmt, MGeneralMasterType, generalMasterTypeListControllerResponse, generalMasterTypeInsertUpdateControllerResponse, generalMasterTypeByIdControllerResponse, generalMasterTypeDeleteControllerResponse, MGeneralMasterTypeToggleStatusPayload, generalMasterTypeToggleStatusControllerResponse, IGeneralMasterListRequest, generalMasterListControllerResponse, generalMasterInsertUpdateControllerResponse, generalMasterByIdControllerResponse, generalMasterDeleteControllerResponse, generalMasterToggleStatusControllerResponse } from 'cloud-ide-lms-model';
7
- import { TemplateContext, GridConfiguration, GridEvent, DropdownItem, FileUploadData, CideEleDataGridComponent, DropdownConfig, TabItem } from 'cloud-ide-element';
6
+ import { ICoreSyme, ICoreSygms, MMenuListPayload, menuListControllerResponse, menuByIdControllerResponse, menuDeleteControllerResponse, MMenuChangeSequencePayload, menuChangeSequenceControllerResponse, ICoreSydept, MDepartment, departmentControllerResponse, departmentByIdControllerResponse, departmentDeleteControllerResponse, MDepartmentToggleStatusPayload, departmentToggleStatusControllerResponse, ICoreSydsg, ICoreSydsgl, MDesignation, designationControllerResponse, designationInsertUpdateControllerResponse, designationByIdControllerResponse, designationDeleteControllerResponse, designationToggleStatusControllerResponse, MGradeLevel, gradeLevelControllerResponse, MGradeLevelGetByIdPayload, gradeLevelByIdControllerResponse, gradeLevelDeleteControllerResponse, gradeLevelToggleStatusControllerResponse, MGradeLevelChangeSequencePayload, gradeLevelChangeSequenceControllerResponse, ICoreSypg, ICoreSytm, ICoreSythDrawer, ICoreSype, MSystemPages, systemPagesControllerResponse, MSystemPagesInsertUpdatePayload, systemPagesInsertUpdateControllerResponse, systemPagesByIdControllerResponse, systemPagesDeleteControllerResponse, MSystemPagesToggleStatusPayload, systemPagesToggleStatusControllerResponse, MSystemPagesCheckCodeExistsPayload, systemPagesCheckCodeExistsControllerResponse, MSystemPagesTheme, systemPagesThemeControllerResponse, MSystemPagesThemeInsertUpdatePayload, systemPagesThemeInsertUpdateControllerResponse, systemPagesThemeByIdControllerResponse, systemPagesThemeByPageIdControllerResponse, systemPagesThemeDeleteControllerResponse, MSystemPagesThemeToggleStatusPayload, systemPagesThemeToggleStatusControllerResponse, MPageElements, pageElementsControllerResponse, MPageElementsInsertUpdatePayload, pageElementsInsertUpdateControllerResponse, pageElementsByIdControllerResponse, pageElementsByPageIdControllerResponse, pageElementsMappingByPageIdControllerResponse, MPageElementsMappingInsertUpdatePayload, pageElementsMappingInsertUpdateControllerResponse, pageElementsMappingDeleteControllerResponse, pageElementsDeleteControllerResponse, MPageElementsToggleStatusPayload, pageElementsToggleStatusControllerResponse, AuthUserCoreUserContactAddresses, AuthUserCoreUserDocuments, AuthUserCoreUserFamilyDetails, AuthUserCoreEntityMapping, CoreUserRoleExceptions, AuthUserMst, selectSearchType, CoreSystemEntityListResponse, CoreUserRoleResponse, pinCodeSelectResponseData, ICoreSyctr, inputType, AuthUserMstListPayload, authUserMstListControllerResponse, MUserRole, userRoleControllerResponse, MUserRoleGetByIdPayload, userRoleByIdControllerResponse, MUserRoleWithRightsPayload, userRoleInsertUpdateControllerResponse, MUserRoleDeletePayload, userRoleDeleteControllerResponse, MUserRoleToggleStatusPayload, userRoleToggleStatusControllerResponse, CoreSystemEntitySaveUpdatePayload, entityControllerResponse, MEntity, ICoreSygmt, MGeneralMasterType, generalMasterTypeListControllerResponse, generalMasterTypeInsertUpdateControllerResponse, generalMasterTypeByIdControllerResponse, generalMasterTypeDeleteControllerResponse, MGeneralMasterTypeToggleStatusPayload, generalMasterTypeToggleStatusControllerResponse, IGeneralMasterListRequest, generalMasterListControllerResponse, generalMasterInsertUpdateControllerResponse, generalMasterByIdControllerResponse, generalMasterDeleteControllerResponse, generalMasterToggleStatusControllerResponse } from 'cloud-ide-lms-model';
7
+ import { TemplateContext, GridConfiguration, GridEvent, DropdownItem, FileUploadData, TabItem, mongooseObjectIdCreateControllerResponse, CideEleDataGridComponent, DropdownConfig } from 'cloud-ide-element';
8
8
  import { HttpClient } from '@angular/common/http';
9
9
  import { Observable } from 'rxjs';
10
10
  import { AppStateHelperService } from 'cloud-ide-layout';
@@ -53,7 +53,7 @@ declare class MenuListComponent {
53
53
  quickAddForm: _angular_forms.FormGroup<{
54
54
  syme_title: _angular_forms.FormControl<string>;
55
55
  syme_desc: _angular_forms.FormControl<string>;
56
- syme_type: _angular_forms.FormControl<"module" | "section" | "menu" | "title">;
56
+ syme_type: _angular_forms.FormControl<"title" | "module" | "section" | "menu">;
57
57
  syme_id_syme: _angular_forms.FormControl<string>;
58
58
  syme_path: _angular_forms.FormControl<string>;
59
59
  syme_icon: _angular_forms.FormControl<string>;
@@ -1580,7 +1580,7 @@ declare class CideCorePageControlsComponent implements OnInit {
1580
1580
  sype_helper_text_collapse: _angular_forms.FormControl<boolean>;
1581
1581
  sype_default: _angular_forms.FormControl<string | number | boolean>;
1582
1582
  sype_tooltip: _angular_forms.FormControl<string>;
1583
- sype_size: _angular_forms.FormControl<"xs" | "sm" | "md" | "lg" | "xl" | "3xs" | "2xs" | "xxl">;
1583
+ sype_size: _angular_forms.FormControl<"lg" | "xs" | "sm" | "md" | "xl" | "3xs" | "2xs" | "xxl">;
1584
1584
  sype_leading_icon: _angular_forms.FormControl<string>;
1585
1585
  sype_isactive: _angular_forms.FormControl<boolean>;
1586
1586
  sype_entity_id_syen: _angular_forms.FormControl<string>;
@@ -1791,10 +1791,683 @@ declare class CideCorePageControlsService {
1791
1791
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<CideCorePageControlsService>;
1792
1792
  }
1793
1793
 
1794
+ interface CoreUserRoleExceptionsWithTracking extends CoreUserRoleExceptions {
1795
+ _isUserAdded?: boolean;
1796
+ _isUserRemoved?: boolean;
1797
+ _changeType?: string;
1798
+ }
1794
1799
  declare class CideCoreUserCreateComponent {
1800
+ private destroyRef;
1801
+ private fb;
1802
+ private cdr;
1803
+ private userMasterService;
1804
+ private entityService;
1805
+ private designationService;
1806
+ private departmentService;
1807
+ private CideCoreGeneralMasterService;
1808
+ private generalMasterTypeService;
1809
+ private pinCodeService;
1810
+ private countryService;
1811
+ private userRoleService;
1812
+ private menuService;
1813
+ private router;
1814
+ private route;
1815
+ private appState;
1816
+ private floatingFeaturesService;
1817
+ private fileManagerService;
1818
+ private entityRightsService;
1819
+ private notificationService;
1820
+ userMasterForm: FormGroup;
1821
+ activeTab: _angular_core.WritableSignal<string>;
1822
+ loading: _angular_core.WritableSignal<boolean>;
1823
+ userId: _angular_core.WritableSignal<string>;
1824
+ isEditMode: _angular_core.WritableSignal<boolean>;
1825
+ showPasswordFields: _angular_core.WritableSignal<boolean>;
1826
+ profilePhotoPreview: _angular_core.WritableSignal<string | null>;
1827
+ contactAddresses: _angular_core.WritableSignal<AuthUserCoreUserContactAddresses[]>;
1828
+ documents: _angular_core.WritableSignal<AuthUserCoreUserDocuments[]>;
1829
+ familyDetails: _angular_core.WritableSignal<AuthUserCoreUserFamilyDetails[]>;
1830
+ entityMappings: _angular_core.WritableSignal<AuthUserCoreEntityMapping[]>;
1831
+ menuRightsMap: _angular_core.WritableSignal<{
1832
+ [mappingIndex: string]: MenuWithPermissions[];
1833
+ }>;
1834
+ userRightsTypeId: _angular_core.WritableSignal<string | null>;
1835
+ permissions: _angular_core.WritableSignal<ICoreSygms[]>;
1836
+ Object: ObjectConstructor;
1837
+ /**
1838
+ * Get address type label for header display
1839
+ */
1840
+ getAddressTypeLabel(addressIndex: number): string;
1841
+ /**
1842
+ * Handle address type change to update header
1843
+ */
1844
+ onAddressTypeChange(addressIndex: number): void;
1845
+ /**
1846
+ * Share address using floating entity rights sharing service
1847
+ */
1848
+ shareAddress(addressIndex: number): void;
1849
+ /**
1850
+ * Get document type label for header display
1851
+ */
1852
+ getDocumentTypeLabel(documentIndex: number): string;
1853
+ /**
1854
+ * Handle document type change to update header
1855
+ */
1856
+ onDocumentTypeChange(documentIndex: number): void;
1857
+ /**
1858
+ * Check if user is owner for address sharing
1859
+ */
1860
+ isAddressOwner(addressIndex: number): boolean;
1861
+ /**
1862
+ * Check if user has edit rights for contact address
1863
+ */
1864
+ hasContactAddressEditRights(addressIndex: number): boolean;
1865
+ /**
1866
+ * Check if user has edit rights for document at given index
1867
+ */
1868
+ hasDocumentEditRights(documentIndex: number): boolean;
1869
+ /**
1870
+ * Check if user has edit rights for family detail at given index
1871
+ */
1872
+ hasFamilyDetailEditRights(familyIndex: number): boolean;
1873
+ /**
1874
+ * Check if user has edit rights for adding new contact addresses
1875
+ * This checks if the user has core_entity_access_pass_management with syepm_can_edit true
1876
+ */
1877
+ hasAddContactAddressRights(): boolean;
1878
+ /**
1879
+ * Check if user has edit rights for adding new documents
1880
+ */
1881
+ hasAddDocumentRights(): boolean;
1882
+ /**
1883
+ * Check if user has edit rights for adding new family details
1884
+ */
1885
+ hasAddFamilyDetailRights(): boolean;
1886
+ /**
1887
+ * Share document rights using floating entity rights sharing component
1888
+ */
1889
+ shareDocumentRights(documentIndex: number): void;
1890
+ /**
1891
+ * Share family detail rights using floating entity rights sharing component
1892
+ */
1893
+ shareFamilyDetailRights(familyIndex: number): void;
1894
+ /**
1895
+ * Find existing exception by combination of user, mapping, permission, and menu
1896
+ */
1897
+ private findExistingException;
1898
+ /**
1899
+ * Process exceptions for each entity mapping based on modified vs actual permissions
1900
+ * This method should be called during save to create core_user_role_exceptions
1901
+ */
1902
+ processRoleExceptions(): CoreUserRoleExceptions[];
1903
+ /**
1904
+ * Get exceptions for a specific entity mapping
1905
+ */
1906
+ getExceptionsForMapping(mappingIndex: number): CoreUserRoleExceptions[];
1907
+ private applyContactAddressAccessControl;
1908
+ /**
1909
+ * Apply access control to document FormArray
1910
+ * This method disables/enables form controls based on user permissions
1911
+ */
1912
+ private applyDocumentAccessControl;
1913
+ /**
1914
+ * Apply access control to family detail FormArray
1915
+ * This method disables/enables form controls based on user permissions
1916
+ */
1917
+ private applyFamilyDetailAccessControl;
1918
+ /**
1919
+ * Handle document files selection
1920
+ */
1921
+ onDocumentFilesSelected(event: Event, documentIndex: number): void;
1922
+ /**
1923
+ * Get document group ID
1924
+ */
1925
+ getDocumentGroupId(documentIndex: number): string;
1926
+ /**
1927
+ * Get uploaded files for a document (legacy method for backward compatibility)
1928
+ */
1929
+ getDocumentFiles(documentIndex: number): File[];
1930
+ /**
1931
+ * Remove a file from document (legacy method for backward compatibility)
1932
+ */
1933
+ removeDocumentFile(documentIndex: number, fileName: string): void;
1934
+ constructor();
1935
+ get entityMappingsFormArray(): FormArray;
1936
+ get contactAddressesFormArray(): FormArray;
1937
+ get documentsFormArray(): FormArray;
1938
+ get familyDetailsFormArray(): FormArray;
1939
+ userSearchResults: _angular_core.WritableSignal<{
1940
+ [familyIndex: number]: AuthUserMst[];
1941
+ }>;
1942
+ userSearchLoading: _angular_core.WritableSignal<{
1943
+ [familyIndex: number]: boolean;
1944
+ }>;
1945
+ private searchDebounceTimers;
1946
+ private createEntityMappingFormGroup;
1947
+ private createContactAddressFormGroup;
1948
+ private createDocumentFormGroup;
1949
+ private createFamilyDetailFormGroup;
1950
+ userTabs(): {
1951
+ id: string;
1952
+ label: string;
1953
+ icon: string;
1954
+ }[];
1955
+ searchUsers(query?: string, familyIndex?: number): void;
1956
+ userOptions(familyIndex?: number): AuthUserMst[];
1957
+ onUserSearchChange(searchEvent: selectSearchType, familyIndex: number): void;
1958
+ loadInitialUsers(): void;
1959
+ onUserSelectionChange(event: AuthUserMst, familyIndex: number): void;
1960
+ entityOptions: _angular_core.WritableSignal<CoreSystemEntityListResponse[]>;
1961
+ roleOptions: _angular_core.WritableSignal<{
1962
+ [entityId: string]: CoreUserRoleResponse[];
1963
+ }>;
1964
+ designationOptions: _angular_core.WritableSignal<{
1965
+ [entityId: string]: ICoreSydsg[];
1966
+ }>;
1967
+ departmentOptions: _angular_core.WritableSignal<{
1968
+ [entityId: string]: ICoreSydept[];
1969
+ }>;
1970
+ menuOptions: _angular_core.WritableSignal<ICoreSyme[]>;
1971
+ rolePermissionsGridConfig: _angular_core.WritableSignal<GridConfiguration<ICoreSyme>>;
1972
+ selectedRoleId: _angular_core.WritableSignal<string | null>;
1973
+ selectedEntityIndex: _angular_core.WritableSignal<number | null>;
1974
+ menuDetailsRendererTemplate: _angular_core.Signal<TemplateRef<TemplateContext<Record<string, unknown>>> | undefined>;
1975
+ permissionsCheckboxRendererTemplate: _angular_core.Signal<TemplateRef<TemplateContext<Record<string, unknown>>> | undefined>;
1976
+ menuTypeRendererTemplate: _angular_core.Signal<TemplateRef<TemplateContext<Record<string, unknown>>> | undefined>;
1977
+ menuRightsPermissionsRendererTemplate: _angular_core.Signal<TemplateRef<TemplateContext<Record<string, unknown>>> | undefined>;
1978
+ permissionsRendererTemplate: _angular_core.Signal<TemplateRef<TemplateContext<Record<string, unknown>>> | undefined>;
1979
+ addressTypeOptions: _angular_core.WritableSignal<ICoreSygms[]>;
1980
+ documentTypeOptions: _angular_core.WritableSignal<ICoreSygms[]>;
1981
+ photoGroupOptions: _angular_core.WritableSignal<ICoreSygms[]>;
1982
+ documentVerificationStatusOptions: _angular_core.WritableSignal<ICoreSygms[]>;
1983
+ documentKycStatusOptions: _angular_core.WritableSignal<ICoreSygms[]>;
1984
+ bloodGroupOptions: _angular_core.WritableSignal<ICoreSygms[]>;
1985
+ relationshipOptionsData: _angular_core.WritableSignal<ICoreSygms[]>;
1986
+ addressPostalCodes: _angular_core.WritableSignal<{
1987
+ [addressIndex: number]: pinCodeSelectResponseData[];
1988
+ }>;
1989
+ addressCountries: _angular_core.WritableSignal<{
1990
+ [addressIndex: number]: ICoreSyctr[];
1991
+ }>;
1992
+ addressPostalCodesLoading: _angular_core.WritableSignal<{
1993
+ [addressIndex: number]: boolean;
1994
+ }>;
1995
+ addressCountriesLoading: _angular_core.WritableSignal<{
1996
+ [addressIndex: number]: boolean;
1997
+ }>;
1998
+ postalCodeDataCache: _angular_core.WritableSignal<{
1999
+ [addressIndex: number]: pinCodeSelectResponseData[];
2000
+ }>;
2001
+ ngOnInit(): void;
2002
+ /**
2003
+ * Initialize component
2004
+ */
2005
+ private initializeComponent;
2006
+ /**
2007
+ * Setup floating uploader with current user ID
2008
+ */
2009
+ private setupFloatingUploader;
2010
+ /**
2011
+ * Setup form subscriptions
2012
+ */
2013
+ private setupFormSubscriptions;
2014
+ /**
2015
+ * Set entity ID from app state for new user creation
2016
+ */
2017
+ private setEntityIdFromAppState;
2018
+ /**
2019
+ * Cleanup when component is destroyed
2020
+ */
2021
+ ngOnDestroy(): void;
2022
+ /**
2023
+ * Update password validation based on create/edit mode
2024
+ */
2025
+ private updatePasswordValidation;
2026
+ /**
2027
+ * Custom validator for password confirmation
2028
+ */
2029
+ private passwordMatchValidator;
2030
+ /**
2031
+ * Check if password update is required (edit mode with password fields filled or triggered)
2032
+ */
2033
+ isPasswordUpdateRequired(): boolean;
2034
+ /**
2035
+ * Add default entity mapping with active entity
2036
+ */
2037
+ private addDefaultEntityMapping;
2038
+ /**
2039
+ * Load user data for edit mode
2040
+ */
2041
+ private loadUserData;
2042
+ /**
2043
+ * Populate form with user data
2044
+ */
2045
+ private populateFormWithUserData;
2046
+ private loadDropdownOptions;
2047
+ relationshipOptions(): ICoreSygms[];
2048
+ onTabChange(tab: TabItem): void;
2049
+ addEntityMapping(): void;
2050
+ removeEntityMapping(index: number): void;
2051
+ onEntityChange(mappingIndex: number, event: AuthUserCoreEntityMapping): void;
2052
+ /**
2053
+ * Trigger update of entity dropdowns to reflect changes in selected entities
2054
+ */
2055
+ private triggerEntityDropdownUpdate;
2056
+ onDepartmentChange(event: ICoreSydept): void;
2057
+ getRoleOptionsForEntity(mappingIndex: number): CoreUserRoleResponse[];
2058
+ /**
2059
+ * Get filtered entity options with disabled state for already selected entities in other mappings
2060
+ * @param currentMappingIndex The index of the current mapping being edited
2061
+ * @returns Entity options with disabled state for already selected entities
2062
+ */
2063
+ getFilteredEntityOptions(currentMappingIndex: number): (CoreSystemEntityListResponse & {
2064
+ disabled?: boolean;
2065
+ })[];
2066
+ /**
2067
+ * Check if all entities are already selected in other mappings
2068
+ * @param currentMappingIndex The index of the current mapping being edited
2069
+ * @returns True if all entities are already selected
2070
+ */
2071
+ isAllEntitiesSelected(currentMappingIndex: number): boolean;
2072
+ /**
2073
+ * Check if all entities are already mapped (for disabling Add Entity Mapping button)
2074
+ * @returns True if all entities are already mapped
2075
+ */
2076
+ isAllEntitiesMapped(): boolean;
2077
+ /**
2078
+ * Clear department selection for a specific mapping
2079
+ */
2080
+ private clearDepartmentForMapping;
2081
+ /**
2082
+ * Clear role selection for a specific mapping
2083
+ */
2084
+ private clearRoleForMapping;
2085
+ /**
2086
+ * Load departments for a specific entity
2087
+ */
2088
+ private loadDepartmentsForEntity;
2089
+ /**
2090
+ * Load roles for a specific entity
2091
+ */
2092
+ private loadRolesForEntity;
2093
+ /**
2094
+ * Get department options for a specific entity mapping
2095
+ */
2096
+ getDepartmentOptionsForEntity(mappingIndex: number): ICoreSydept[];
2097
+ getDesignationOptionsForEntity(mappingIndex: number): ICoreSydsg[];
2098
+ /**
2099
+ * Initialize role permissions grid configuration
2100
+ */
2101
+ private initializeRolePermissionsGrid;
2102
+ /**
2103
+ * Handle role selection change
2104
+ */
2105
+ onRoleChange(mappingIndex: number, role: CoreUserRoleResponse): void;
2106
+ /**
2107
+ * Load role permissions from API
2108
+ */
2109
+ private loadRolePermissions;
2110
+ /**
2111
+ * Update permission values for a specific menu row
2112
+ */
2113
+ updateMenuPermissionValues(mappingIndex: number, menuId: string): void;
2114
+ /**
2115
+ * Store role permissions for simple lookup
2116
+ */
2117
+ private storeRolePermissions;
2118
+ /**
2119
+ * Clear role permissions
2120
+ */
2121
+ private clearRolePermissions;
2122
+ /**
2123
+ * Find mapping index by entity mapping ID
2124
+ */
2125
+ private findMappingIndexByEntityMappingId;
2126
+ /**
2127
+ * Handle grid events for role permissions
2128
+ */
2129
+ onRolePermissionsGridEvent(event: GridEvent): void;
2130
+ /**
2131
+ * Get template renderers for role permissions grid
2132
+ */
2133
+ get templateRenderers(): {
2134
+ menuDetailsRenderer: TemplateRef<TemplateContext<Record<string, unknown>>> | undefined;
2135
+ permissionsCheckboxRenderer: TemplateRef<TemplateContext<Record<string, unknown>>> | undefined;
2136
+ menuTypeRenderer: TemplateRef<TemplateContext<Record<string, unknown>>> | undefined;
2137
+ };
2138
+ /**
2139
+ * Get permission by ID
2140
+ */
2141
+ getPermissionById(permissionId: string): ICoreSygms | undefined;
2142
+ /**
2143
+ * Check if permission is available in the selected role for a specific menu
2144
+ */
2145
+ isPermissionInRole(permissionId: string, mappingIndex: number, menuId?: string): boolean;
2146
+ /**
2147
+ * Get form control value for a permission
2148
+ */
2149
+ getFormControlValue(row: ICoreSyme, permissionId: string): boolean;
2150
+ /**
2151
+ * Handle permission change with type safety
2152
+ */
2153
+ onPermissionChangeSafe(checked: inputType, row: ICoreSyme, permissionId: string): void;
2154
+ /**
2155
+ * Handle permission change
2156
+ */
2157
+ onPermissionChange(checked: boolean, row: ICoreSyme, permissionId: string): void;
2158
+ /**
2159
+ * Update the modified value for a specific permission
2160
+ */
2161
+ private updatePermissionModifiedValue;
2162
+ /**
2163
+ * Handle permission change for specific mapping
2164
+ */
2165
+ onPermissionChangeForMapping(checked: boolean, row: ICoreSyme, permissionId: string, mappingIndex: number): void;
2166
+ /**
2167
+ * Get current mapping index (helper method)
2168
+ */
2169
+ private getCurrentMappingIndex;
2170
+ /**
2171
+ * Add role exception
2172
+ */
2173
+ addRoleException(mappingIndex: number, menuId: string, permissionId: string): void;
2174
+ /**
2175
+ * Remove role exception
2176
+ */
2177
+ removeRoleException(mappingIndex: number, menuId: string, permissionId: string): void;
2178
+ /**
2179
+ * Collect only changed role exceptions from entity mappings
2180
+ */
2181
+ collectRoleExceptions(): Array<{
2182
+ syusrex_user_entity_mapping_id_syenm: string;
2183
+ syusrex_role_id_syusrol: string;
2184
+ syusrex_role_permissions_id_sygms: string;
2185
+ syusrex_menu_id_syme: string;
2186
+ syusrex_isactive: boolean;
2187
+ _changeType: string;
2188
+ }>;
2189
+ /**
2190
+ * Check if permission is selected for a menu
2191
+ */
2192
+ isPermissionSelected(menuId: string, permissionId: string): boolean;
2193
+ /**
2194
+ * Handle permission checkbox change (read-only in this context)
2195
+ */
2196
+ onPermissionCheckboxChange(menuId: string, permissionId: string, isSelected: boolean): void;
2197
+ /**
2198
+ * Check if a menu has child menus with permissions
2199
+ */
2200
+ hasChildMenusWithPermissions(menuId: string): boolean;
2201
+ /**
2202
+ * Update menu rights grid data to force refresh
2203
+ */
2204
+ updateMenuRightsGridData(mappingIndex: number): void;
2205
+ /**
2206
+ * Get menu rights grid configuration for a specific mapping
2207
+ */
2208
+ getMenuRightsGridConfig(mappingIndex: number): GridConfiguration<MenuWithPermissions>;
2209
+ /**
2210
+ * Get template renderers for menu rights grid
2211
+ */
2212
+ getMenuRightsTemplateRenderers(mappingIndex: number): {
2213
+ menuDetailsRenderer: TemplateRef<TemplateContext<Record<string, unknown>>> | undefined;
2214
+ menuTypeRenderer: TemplateRef<TemplateContext<Record<string, unknown>>> | undefined;
2215
+ permissionsRenderer: TemplateRef<TemplateContext<Record<string, unknown>>> | undefined;
2216
+ };
2217
+ /**
2218
+ * Handle menu rights grid events
2219
+ */
2220
+ onMenuRightsGridEvent(event: GridEvent<MenuWithPermissions>, mappingIndex: number): void;
2221
+ addPermissionException(mappingIndex: number): void;
2222
+ removePermissionException(mappingIndex: number, exceptionIndex: number): void;
2223
+ private removePermissionExceptionControls;
2224
+ getPermissionExceptions(mappingIndex: number): CoreUserRoleExceptionsWithTracking[];
2225
+ getMenuRightsForMapping(mappingIndex: number): MenuWithPermissions[];
2226
+ loadMenuRights(mappingIndex: number): void;
2227
+ refreshMenuRights(mappingIndex: number): void;
2228
+ clearMenuRightsForMapping(mappingIndex: number): void;
2229
+ /**
2230
+ * Load user rights type ID from general master types
2231
+ */
2232
+ private loadUserRightsTypeId;
2233
+ /**
2234
+ * Load permissions from general master
2235
+ */
2236
+ private loadPermissions;
2237
+ hasRoleRight(menuRight: MenuRight, permission: string): boolean;
2238
+ canOverrideRight(menuRight: MenuRight, permission: string): boolean;
2239
+ hasExceptionForMenu(mappingIndex: number, menuId: string): boolean;
2240
+ onDefaultEntityChange(mappingIndex: number, event: EventWithQuery | Event): void;
2241
+ getDefaultEntityName(): string;
2242
+ hasDefaultEntity(): boolean;
2243
+ getUserFullName(): string;
2244
+ generateFullName(): void;
2245
+ onNameFieldChange(): void;
2246
+ getUserUsername(): string;
2247
+ getUserEmail(): string;
2248
+ getUserMobile(): string;
2249
+ getUserActivePeriod(): string;
2250
+ getUserActiveStatus(): boolean;
2251
+ getUserPhoto(): string | null;
2252
+ getEntityMappingCount(): number;
2253
+ /**
2254
+ * Handle profile photo upload success
2255
+ */
2256
+ onProfilePhotoUploadSuccess(fileId: string): void;
2257
+ /**
2258
+ * Handle profile photo upload error
2259
+ */
2260
+ onProfilePhotoUploadError(error: string): void;
2261
+ /**
2262
+ * Handle profile photo upload progress
2263
+ */
2264
+ onProfilePhotoUploadProgress(progress: number): void;
2265
+ /**
2266
+ * Get upload data for profile photo
2267
+ */
2268
+ getProfilePhotoUploadData(): {
2269
+ altText: string;
2270
+ userId: string;
2271
+ permissions: string[];
2272
+ tags: string[];
2273
+ uploadType: string;
2274
+ };
2275
+ /**
2276
+ * Get upload data for document files with group ID
2277
+ */
2278
+ getDocumentUploadData(documentIndex: number): {
2279
+ altText: string;
2280
+ userId: string;
2281
+ groupId: any;
2282
+ permissions: string[];
2283
+ tags: string[];
2284
+ uploadType: string;
2285
+ documentIndex: number;
2286
+ documentType: any;
2287
+ documentNumber: any;
2288
+ };
2289
+ /**
2290
+ * Handle document upload success
2291
+ * For multiple file upload, uploadResponse is the group ID
2292
+ */
2293
+ onDocumentUploadSuccess(groupId: string, documentIndex: number): void;
2294
+ /**
2295
+ * Handle document upload error
2296
+ */
2297
+ onDocumentUploadError(error: Error | string, documentIndex: number): void;
2298
+ /**
2299
+ * Handle document upload progress
2300
+ */
2301
+ onDocumentUploadProgress(progress: number, documentIndex: number): void;
2302
+ /**
2303
+ * Load profile photo preview for existing photos
2304
+ */
2305
+ private loadProfilePhotoPreview;
2306
+ addContactAddress(): void;
2307
+ removeContactAddress(index: number): void;
2308
+ addDocument(): void;
2309
+ removeDocument(index: number): void;
2310
+ addFamilyDetail(): void;
2311
+ removeFamilyDetail(index: number): void;
2312
+ onSubmit(): void;
2313
+ resetForm(): void;
2314
+ /**
2315
+ * Go back to user list
2316
+ */
2317
+ goBackToUserList(): void;
2318
+ /**
2319
+ * Cancel form and optionally navigate back
2320
+ */
2321
+ cancelForm(): void;
2322
+ /**
2323
+ * Get page title based on mode
2324
+ */
2325
+ getPageTitle(): string;
2326
+ /**
2327
+ * Check if password fields should be shown in the UI
2328
+ */
2329
+ shouldShowPasswordFields(): boolean;
2330
+ /**
2331
+ * Get password field label based on mode
2332
+ */
2333
+ getPasswordFieldLabel(): string;
2334
+ /**
2335
+ * Get password confirmation field label based on mode
2336
+ */
2337
+ getPasswordConfirmLabel(): string;
2338
+ /**
2339
+ * Get password validation error message
2340
+ */
2341
+ getPasswordError(): string | null;
2342
+ /**
2343
+ * Get confirm password validation error message
2344
+ */
2345
+ getConfirmPasswordError(): string | null;
2346
+ /**
2347
+ * Check if password field has error
2348
+ */
2349
+ hasPasswordError(): boolean;
2350
+ /**
2351
+ * Check if confirm password field has error
2352
+ */
2353
+ hasConfirmPasswordError(): boolean;
2354
+ /**
2355
+ * Check if password fields have any input
2356
+ */
2357
+ hasPasswordInput(): boolean;
2358
+ /**
2359
+ * Trigger password update mode (for edit mode)
2360
+ */
2361
+ triggerPasswordUpdate(): void;
2362
+ /**
2363
+ * Cancel password update mode (for edit mode)
2364
+ */
2365
+ cancelPasswordUpdate(): void;
2366
+ /**
2367
+ * Load countries for a specific address dropdown
2368
+ */
2369
+ loadCountriesForAddress(addressIndex: number): void;
2370
+ /**
2371
+ * Search countries with filter for a specific address
2372
+ */
2373
+ onCountrySearch(event: EventWithQuery | selectSearchType, addressIndex: number): void;
2374
+ /**
2375
+ * Search postal codes for a specific address
2376
+ */
2377
+ onPostalCodeSearch(event: EventWithQuery | selectSearchType, addressIndex: number): void;
2378
+ /**
2379
+ * Handle postal code selection to auto-fill city, state, country
2380
+ */
2381
+ onPostalCodeSelection(event: pinCodeSelectResponseData, addressIndex: number): void;
2382
+ /**
2383
+ * Check if a country is already in the dropdown for a specific address
2384
+ */
2385
+ private isCountryInDropdown;
2386
+ /**
2387
+ * Load a specific country for postal code auto-fill
2388
+ */
2389
+ private loadCountryForPostalCode;
2390
+ /**
2391
+ * Get postal code data from the API response cache
2392
+ */
2393
+ private getPostalCodeDataFromResponse;
2394
+ /**
2395
+ * Load address types from general master service
2396
+ */
2397
+ private loadAddressTypes;
2398
+ /**
2399
+ * Load document types from general master service
2400
+ */
2401
+ private loadDocumentTypes;
2402
+ /**
2403
+ * Load document verification status from general master service
2404
+ */
2405
+ private loadDocumentVerificationStatus;
2406
+ /**
2407
+ * Load document KYC status from general master service
2408
+ */
2409
+ private loadDocumentKycStatus;
2410
+ /**
2411
+ * Load blood groups from general master service
2412
+ */
2413
+ private loadBloodGroups;
2414
+ /**
2415
+ * Load relationship options from general master service
2416
+ */
2417
+ private loadRelationshipOptions;
2418
+ /**
2419
+ * Load menu options from API
2420
+ */
2421
+ private loadMenuOptions;
2422
+ /**
2423
+ * Load dropdown data for existing addresses in edit mode
2424
+ */
2425
+ private loadDropdownDataForExistingAddresses;
2426
+ /**
2427
+ * Generate Object ID for new user creation
2428
+ * Uses the user master service to generate a unique ObjectId
2429
+ * @returns Promise<string> - The generated ObjectId
2430
+ */
2431
+ generateObjectId(): Promise<string>;
2432
+ /**
2433
+ * Generate Object ID for user-related entities (addresses, documents, family details)
2434
+ * @returns Promise<string> - The generated ObjectId
2435
+ */
2436
+ generateEntityObjectId(): Promise<string>;
1795
2437
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideCoreUserCreateComponent, never>;
1796
2438
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideCoreUserCreateComponent, "cide-core-user-create", never, {}, {}, never, never, true, never>;
1797
2439
  }
2440
+ interface PermissionValue {
2441
+ checked: boolean;
2442
+ permission: ICoreSygms;
2443
+ actual: boolean;
2444
+ modified: boolean;
2445
+ }
2446
+ interface PermissionValues {
2447
+ [permissionId: string]: PermissionValue;
2448
+ }
2449
+ interface MenuWithPermissions extends ICoreSyme {
2450
+ _permissionValues?: PermissionValues;
2451
+ _rolePermissions?: Array<{
2452
+ _id: string;
2453
+ sygms_title: string;
2454
+ menu_id?: string;
2455
+ }>;
2456
+ [key: string]: unknown;
2457
+ }
2458
+ interface MenuRight {
2459
+ role_rights: string[];
2460
+ [key: string]: unknown;
2461
+ }
2462
+ interface EventWithQuery {
2463
+ query?: string;
2464
+ value?: string;
2465
+ target?: {
2466
+ checked?: boolean;
2467
+ };
2468
+ checked?: boolean;
2469
+ [key: string]: unknown;
2470
+ }
1798
2471
 
1799
2472
  type AuthUserMstCreatePayload = any;
1800
2473
  type AuthUserMstGetByIdPayload = any;
@@ -1837,6 +2510,12 @@ declare class CideCoreUserMasterService {
1837
2510
  * @returns Observable of response
1838
2511
  */
1839
2512
  deleteUser(userId: string): Observable<any>;
2513
+ /**
2514
+ * Generate Object ID for new user creation
2515
+ * Calls the backend API to generate a unique ObjectId for new users
2516
+ * @returns Observable with the generated ObjectId
2517
+ */
2518
+ generateObjectId(): Observable<mongooseObjectIdCreateControllerResponse>;
1840
2519
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideCoreUserMasterService, never>;
1841
2520
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<CideCoreUserMasterService>;
1842
2521
  }
@@ -2699,7 +3378,7 @@ declare class CideCoreEntityManagementService {
2699
3378
  * @param data - Entity data to save/update
2700
3379
  * @returns Observable of the save response
2701
3380
  */
2702
- saveUpdateEntity(data: CoreSystemEntity): Observable<entityControllerResponse>;
3381
+ saveUpdateEntity(data: CoreSystemEntitySaveUpdatePayload): Observable<entityControllerResponse>;
2703
3382
  /**
2704
3383
  * Get entity by ID
2705
3384
  * @param entityId - ID of the entity to retrieve