cloud-ide-core 2.0.53 → 2.0.55

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<"title" | "module" | "section" | "menu">;
56
+ syme_type: _angular_forms.FormControl<"module" | "section" | "menu" | "title">;
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>;
@@ -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
  }
@@ -2647,44 +3326,30 @@ interface OrgStructureNode {
2647
3326
  parentId?: string;
2648
3327
  }
2649
3328
  declare class CideCoreOrgStructureComponent implements OnInit {
3329
+ allowSwitching: _angular_core.InputSignal<boolean>;
3330
+ showActions: _angular_core.InputSignal<boolean>;
3331
+ mode: _angular_core.InputSignal<"view" | "selection">;
3332
+ useSharedWrapper: _angular_core.InputSignal<boolean>;
3333
+ entityClick: _angular_core.OutputEmitterRef<OrgStructureNode>;
3334
+ entitySelect: _angular_core.OutputEmitterRef<OrgStructureNode>;
3335
+ entityView: _angular_core.OutputEmitterRef<OrgStructureNode>;
2650
3336
  private entityService;
2651
3337
  router: Router;
2652
- loading: _angular_core.WritableSignal<boolean>;
2653
- error: _angular_core.WritableSignal<string | null>;
2654
- orgStructure: _angular_core.WritableSignal<OrgStructureNode[]>;
2655
3338
  ngOnInit(): void;
2656
3339
  /**
2657
- * Load organization structure
3340
+ * Handle entity click event from shared org structure
2658
3341
  */
2659
- loadOrgStructure(): void;
2660
- /**
2661
- * Build hierarchical organization structure with unlimited depth levels
2662
- * Uses _id as primary key and syen_id_syen as foreign key for parent-child relationships
2663
- * Entities with empty parent ID ("") or null/undefined are shown at root level
2664
- */
2665
- private buildOrgStructure;
2666
- /**
2667
- * Calculate the level of a node based on its parent's level
2668
- */
2669
- private calculateLevel;
2670
- /**
2671
- * Recursively sort children by name for consistent display
2672
- */
2673
- private sortChildrenRecursively;
2674
- /**
2675
- * Navigate back to entity list
2676
- */
2677
- onBack(): void;
3342
+ onEntityClick(entity: OrgStructureNode): void;
2678
3343
  /**
2679
- * View entity details
3344
+ * Handle entity select event from shared org structure
2680
3345
  */
2681
- viewEntity(entityId: string): void;
3346
+ onEntitySelect(entity: OrgStructureNode): void;
2682
3347
  /**
2683
- * Edit entity
3348
+ * Handle entity view event from shared org structure
2684
3349
  */
2685
- editEntity(entityId: string): void;
3350
+ onEntityView(entity: OrgStructureNode): void;
2686
3351
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideCoreOrgStructureComponent, never>;
2687
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideCoreOrgStructureComponent, "cide-core-org-structure", never, {}, {}, never, never, true, never>;
3352
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideCoreOrgStructureComponent, "cide-core-org-structure", never, { "allowSwitching": { "alias": "allowSwitching"; "required": false; "isSignal": true; }; "showActions": { "alias": "showActions"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "useSharedWrapper": { "alias": "useSharedWrapper"; "required": false; "isSignal": true; }; }, { "entityClick": "entityClick"; "entitySelect": "entitySelect"; "entityView": "entityView"; }, never, never, true, never>;
2688
3353
  }
2689
3354
 
2690
3355
  /**
@@ -2699,7 +3364,7 @@ declare class CideCoreEntityManagementService {
2699
3364
  * @param data - Entity data to save/update
2700
3365
  * @returns Observable of the save response
2701
3366
  */
2702
- saveUpdateEntity(data: CoreSystemEntity): Observable<entityControllerResponse>;
3367
+ saveUpdateEntity(data: CoreSystemEntitySaveUpdatePayload): Observable<entityControllerResponse>;
2703
3368
  /**
2704
3369
  * Get entity by ID
2705
3370
  * @param entityId - ID of the entity to retrieve