{"version":3,"mappings":"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","names":["e","webpackEmptyAsyncContext","module","__webpack_exports__","routes","path","data","title","component","_features_issuing_shared_containers_verification_verification_component__WEBPACK_IMPORTED_MODULE_36__","redirectTo","_core_components_login_login_component__WEBPACK_IMPORTED_MODULE_12__","resolve","x","_shared_helpers_translation_resolver__WEBPACK_IMPORTED_MODULE_25__","runGuardsAndResolvers","_core_components_recover_password_recover_password_component__WEBPACK_IMPORTED_MODULE_45__","pathMatch","canActivate","_core_auth_auth_guard_service__WEBPACK_IMPORTED_MODULE_1__","_core_components_main_main_component__WEBPACK_IMPORTED_MODULE_13__","z","_shared_helpers_config_resolver__WEBPACK_IMPORTED_MODULE_43__","children","_features_statistics_containers_dashboard_dashboard_component__WEBPACK_IMPORTED_MODULE_38__","securityRoles","src_app_core_models_enums_role__WEBPACK_IMPORTED_MODULE_0__","_features_lookups_containers_countries_countries_component__WEBPACK_IMPORTED_MODULE_14__","_features_lookups_containers_cities_cities_component__WEBPACK_IMPORTED_MODULE_6__","_features_lookups_containers_account_statuses_account_statuses_component__WEBPACK_IMPORTED_MODULE_5__","_features_lookups_containers_stock_types_stock_types_component__WEBPACK_IMPORTED_MODULE_4__","_features_lookups_containers_vehicle_colors_vehicle_colors_component__WEBPACK_IMPORTED_MODULE_3__","_features_lookups_containers_vehicle_makes_vehicle_makes_component__WEBPACK_IMPORTED_MODULE_20__","_features_lookups_containers_vehicle_types_vehicle_types_component__WEBPACK_IMPORTED_MODULE_32__","_features_lookups_containers_vehicle_models_vehicle_models_component__WEBPACK_IMPORTED_MODULE_33__","_features_lookups_containers_currencies_currencies_component__WEBPACK_IMPORTED_MODULE_34__","_features_lookups_containers_customs_ports_customs_ports_component__WEBPACK_IMPORTED_MODULE_46__","_features_lookups_containers_pursuing_zones_pursuing_zones_component__WEBPACK_IMPORTED_MODULE_47__","_features_stock_containers_stocks_totals_stocks_totals_component__WEBPACK_IMPORTED_MODULE_11__","_features_stock_containers_stocks_available_stocks_available_component__WEBPACK_IMPORTED_MODULE_10__","mode","_features_stock_containers_transactions_transactions_component__WEBPACK_IMPORTED_MODULE_16__","_features_stock_containers_transact_transact_component__WEBPACK_IMPORTED_MODULE_17__","_features_stock_containers_populate_populate_component__WEBPACK_IMPORTED_MODULE_9__","_features_stock_containers_undo_try_undo_try_component__WEBPACK_IMPORTED_MODULE_18__","_features_stock_containers_undo_requests_undo_requests_component__WEBPACK_IMPORTED_MODULE_19__","_features_accounts_containers_accounts_accounts_component__WEBPACK_IMPORTED_MODULE_15__","_features_accounts_containers_view_account_view_account_component__WEBPACK_IMPORTED_MODULE_48__","_features_accounts_containers_manage_account_manage_account_component__WEBPACK_IMPORTED_MODULE_21__","_features_security_containers_security_groups_security_groups_component__WEBPACK_IMPORTED_MODULE_8__","_features_security_containers_account_users_account_users_component__WEBPACK_IMPORTED_MODULE_2__","_features_security_containers_manage_user_manage_user_component__WEBPACK_IMPORTED_MODULE_24__","_features_security_containers_users_groups_users_groups_component__WEBPACK_IMPORTED_MODULE_7__","_features_issuing_shared_containers_issued_documents_query_issued_documents_query_component__WEBPACK_IMPORTED_MODULE_49__","_features_issuing_shared_containers_documents_revoke_requests_documents_revoke_requests_component__WEBPACK_IMPORTED_MODULE_37__","_features_issuing_int_licenses_containers_int_licenses_int_licenses_component__WEBPACK_IMPORTED_MODULE_26__","_features_issuing_int_licenses_containers_view_int_license_view_int_license_component__WEBPACK_IMPORTED_MODULE_28__","_features_issuing_int_licenses_containers_manage_int_license_manage_int_license_component__WEBPACK_IMPORTED_MODULE_27__","_features_issuing_coupon_management_containers_coupon_management_coupon_management_component__WEBPACK_IMPORTED_MODULE_51__","_features_issuing_coupon_management_containers_manage_coupon_management_manage_coupon_management_component__WEBPACK_IMPORTED_MODULE_52__","_features_issuing_coupon_management_containers_view_license_detail_view_license_detail_component__WEBPACK_IMPORTED_MODULE_53__","_features_issuing_int_licenses_containers_e_licenses_e_licenses_component__WEBPACK_IMPORTED_MODULE_50__","_features_issuing_trip_tik_containers_trip_tiks_trip_tiks_component__WEBPACK_IMPORTED_MODULE_29__","_features_issuing_trip_tik_containers_view_trip_tik_view_trip_tik_component__WEBPACK_IMPORTED_MODULE_30__","_features_issuing_trip_tik_containers_manage_trip_tik_manage_trip_tik_component__WEBPACK_IMPORTED_MODULE_31__","_features_trip_tiks_claims_containers_trip_tiks_claims_trip_tiks_claims_component__WEBPACK_IMPORTED_MODULE_35__","_features_trip_tiks_claims_containers_view_trip_tik_claim_view_trip_tik_claim_component__WEBPACK_IMPORTED_MODULE_41__","_features_trip_tiks_claims_containers_trip_tik_claim_attachments_trip_tik_claim_attachments_component__WEBPACK_IMPORTED_MODULE_44__","_features_trip_tiks_claims_containers_update_status_trip_tik_claim_update_status_trip_tik_claim_component__WEBPACK_IMPORTED_MODULE_39__","_features_trip_tiks_claims_containers_manage_trip_tik_claim_manage_trip_tik_claim_component__WEBPACK_IMPORTED_MODULE_40__","_features_trip_tiks_claims_containers_trip_tiks_claims_logs_trip_tiks_claims_logs_component__WEBPACK_IMPORTED_MODULE_42__","_features_accounts_containers_user_profile_user_profile_component__WEBPACK_IMPORTED_MODULE_22__","_shared_components_not_found_not_found_component__WEBPACK_IMPORTED_MODULE_23__","AppRoutingModule","imports","_angular_router__WEBPACK_IMPORTED_MODULE_56__","onSameUrlNavigation","exports","AppComponent","loader","titleService","breadcrumbService","route","router","translate","setDefaultLang","_core_auth_auth_service__WEBPACK_IMPORTED_MODULE_4__","_shared_services_loading__WEBPACK_IMPORTED_MODULE_3__","styleLoading","status","navLoading","subscribe","loading","_angular_platform_browser__WEBPACK_IMPORTED_MODULE_6__","_shared_services_breadcrumb_service__WEBPACK_IMPORTED_MODULE_2__","_angular_router__WEBPACK_IMPORTED_MODULE_7__","_ngx_translate_core__WEBPACK_IMPORTED_MODULE_8__","selector","template","providers","_features_lookups_services_config__WEBPACK_IMPORTED_MODULE_5__","HttpLoaderFactory","http","_ngx_translate_http_loader__WEBPACK_IMPORTED_MODULE_96__","src_environments_environment__WEBPACK_IMPORTED_MODULE_89__","appInitializerFactory","injector","Promise","locationInitialized","get","_angular_common__WEBPACK_IMPORTED_MODULE_97__","then","langToSet","use","AppModule","declarations","_app_component__WEBPACK_IMPORTED_MODULE_2__","_features_lookups_containers_countries_countries_component__WEBPACK_IMPORTED_MODULE_22__","_core_components_header_header_component__WEBPACK_IMPORTED_MODULE_24__","_core_components_login_login_component__WEBPACK_IMPORTED_MODULE_25__","_core_components_main_main_component__WEBPACK_IMPORTED_MODULE_26__","_core_components_sidenav_sidenav_component__WEBPACK_IMPORTED_MODULE_27__","_core_components_footer_footer_component__WEBPACK_IMPORTED_MODULE_23__","_shared_components_breadcrumb_breadcrumb_component__WEBPACK_IMPORTED_MODULE_28__","_features_accounts_containers_accounts_accounts_component__WEBPACK_IMPORTED_MODULE_29__","_features_accounts_containers_manage_account_manage_account_component__WEBPACK_IMPORTED_MODULE_39__","_features_security_containers_security_groups_security_groups_component__WEBPACK_IMPORTED_MODULE_30__","_features_security_containers_users_groups_users_groups_component__WEBPACK_IMPORTED_MODULE_31__","_features_lookups_containers_cities_cities_component__WEBPACK_IMPORTED_MODULE_72__","_features_lookups_containers_account_statuses_account_statuses_component__WEBPACK_IMPORTED_MODULE_71__","_features_lookups_containers_account_types_account_types_component__WEBPACK_IMPORTED_MODULE_70__","_features_lookups_containers_stock_types_stock_types_component__WEBPACK_IMPORTED_MODULE_69__","_features_lookups_containers_vehicle_colors_vehicle_colors_component__WEBPACK_IMPORTED_MODULE_68__","_features_lookups_containers_vehicle_makes_vehicle_makes_component__WEBPACK_IMPORTED_MODULE_67__","_features_stock_containers_populate_populate_component__WEBPACK_IMPORTED_MODULE_66__","_features_stock_containers_stocks_available_stocks_available_component__WEBPACK_IMPORTED_MODULE_65__","_features_stock_containers_stocks_totals_stocks_totals_component__WEBPACK_IMPORTED_MODULE_64__","_features_stock_containers_transact_transact_component__WEBPACK_IMPORTED_MODULE_63__","_features_stock_containers_transactions_transactions_component__WEBPACK_IMPORTED_MODULE_32__","_features_stock_containers_undo_requests_undo_requests_component__WEBPACK_IMPORTED_MODULE_33__","_features_stock_containers_undo_try_undo_try_component__WEBPACK_IMPORTED_MODULE_34__","_features_security_containers_account_users_account_users_component__WEBPACK_IMPORTED_MODULE_35__","_shared_components_dialog_dialog_component__WEBPACK_IMPORTED_MODULE_36__","_features_statistics_containers_dashboard_dashboard_component__WEBPACK_IMPORTED_MODULE_73__","_features_accounts_containers_user_profile_user_profile_component__WEBPACK_IMPORTED_MODULE_37__","_shared_components_under_construction_under_construction_component__WEBPACK_IMPORTED_MODULE_40__","_shared_components_not_found_not_found_component__WEBPACK_IMPORTED_MODULE_41__","_shared_directives_modal_directive__WEBPACK_IMPORTED_MODULE_7__","_shared_components_modal_modal_component__WEBPACK_IMPORTED_MODULE_38__","_features_security_containers_manage_user_manage_user_component__WEBPACK_IMPORTED_MODULE_42__","_shared_components_body_loader_body_loader_component__WEBPACK_IMPORTED_MODULE_21__","_features_stock_components_stock_slider_stock_slider_component__WEBPACK_IMPORTED_MODULE_43__","_shared_components_validation_error_validation_error_component__WEBPACK_IMPORTED_MODULE_44__","_shared_components_alert_alert_component__WEBPACK_IMPORTED_MODULE_45__","_shared_pipes_params_translate_pipe__WEBPACK_IMPORTED_MODULE_5__","_features_issuing_int_licenses_containers_manage_int_license_manage_int_license_component__WEBPACK_IMPORTED_MODULE_46__","_features_issuing_int_licenses_containers_int_licenses_int_licenses_component__WEBPACK_IMPORTED_MODULE_47__","_features_stock_components_lic_transactions_print_lic_transactions_print_component__WEBPACK_IMPORTED_MODULE_84__","_features_stock_components_trp_transactions_print_trp_transactions_print_component__WEBPACK_IMPORTED_MODULE_85__","_shared_directives_drag_directive__WEBPACK_IMPORTED_MODULE_6__","_features_issuing_int_licenses_containers_view_int_license_view_int_license_component__WEBPACK_IMPORTED_MODULE_48__","_features_issuing_int_licenses_components_int_license_print_int_license_print_component__WEBPACK_IMPORTED_MODULE_49__","_features_issuing_trip_tik_containers_trip_tiks_trip_tiks_component__WEBPACK_IMPORTED_MODULE_50__","_features_issuing_trip_tik_containers_manage_trip_tik_manage_trip_tik_component__WEBPACK_IMPORTED_MODULE_51__","_features_issuing_trip_tik_containers_view_trip_tik_view_trip_tik_component__WEBPACK_IMPORTED_MODULE_52__","_features_issuing_int_licenses_components_commitment_print_commitment_print_component__WEBPACK_IMPORTED_MODULE_53__","_features_issuing_trip_tik_components_trip_tik_print_trip_tik_print_component__WEBPACK_IMPORTED_MODULE_54__","_features_issuing_trip_tik_components_receipt_print_receipt_print_component__WEBPACK_IMPORTED_MODULE_55__","_features_lookups_containers_vehicle_types_vehicle_types_component__WEBPACK_IMPORTED_MODULE_56__","_features_lookups_containers_vehicle_models_vehicle_models_component__WEBPACK_IMPORTED_MODULE_57__","_features_lookups_containers_currencies_currencies_component__WEBPACK_IMPORTED_MODULE_58__","_features_trip_tiks_claims_containers_trip_tiks_claims_trip_tiks_claims_component__WEBPACK_IMPORTED_MODULE_59__","_features_trip_tiks_claims_containers_view_trip_tik_claim_view_trip_tik_claim_component__WEBPACK_IMPORTED_MODULE_60__","_features_issuing_shared_containers_verification_verification_component__WEBPACK_IMPORTED_MODULE_62__","_shared_pipes_string_join_pipe__WEBPACK_IMPORTED_MODULE_3__","_shared_pipes_array_map_pipe__WEBPACK_IMPORTED_MODULE_4__","_features_issuing_shared_containers_documents_revoke_requests_documents_revoke_requests_component__WEBPACK_IMPORTED_MODULE_61__","_features_trip_tiks_claims_containers_update_status_trip_tik_claim_update_status_trip_tik_claim_component__WEBPACK_IMPORTED_MODULE_74__","_features_trip_tiks_claims_containers_manage_trip_tik_claim_manage_trip_tik_claim_component__WEBPACK_IMPORTED_MODULE_75__","_features_trip_tiks_claims_containers_trip_tiks_claims_logs_trip_tiks_claims_logs_component__WEBPACK_IMPORTED_MODULE_76__","_features_trip_tiks_claims_containers_trip_tik_claim_attachments_trip_tik_claim_attachments_component__WEBPACK_IMPORTED_MODULE_80__","_core_components_recover_password_recover_password_component__WEBPACK_IMPORTED_MODULE_81__","_features_lookups_containers_pursuing_zones_pursuing_zones_component__WEBPACK_IMPORTED_MODULE_82__","_features_lookups_containers_customs_ports_customs_ports_component__WEBPACK_IMPORTED_MODULE_83__","_features_issuing_shared_containers_expired_documents_query_expired_documents_query_component__WEBPACK_IMPORTED_MODULE_86__","_features_accounts_containers_view_account_view_account_component__WEBPACK_IMPORTED_MODULE_87__","_features_issuing_shared_containers_issued_documents_query_issued_documents_query_component__WEBPACK_IMPORTED_MODULE_88__","_features_stock_components_transaction_details_label_transaction_details_label_component__WEBPACK_IMPORTED_MODULE_90__","_features_issuing_int_licenses_containers_e_licenses_e_licenses_component__WEBPACK_IMPORTED_MODULE_91__","_features_issuing_coupon_management_containers_coupon_management_coupon_management_component__WEBPACK_IMPORTED_MODULE_92__","_features_issuing_coupon_management_containers_view_coupon_management_view_coupon_management_component__WEBPACK_IMPORTED_MODULE_93__","_features_issuing_coupon_management_containers_manage_coupon_management_manage_coupon_management_component__WEBPACK_IMPORTED_MODULE_94__","_features_issuing_coupon_management_containers_view_license_detail_view_license_detail_component__WEBPACK_IMPORTED_MODULE_95__","_angular_platform_browser__WEBPACK_IMPORTED_MODULE_100__","_angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_101__","_ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_102__","_angular_common_http__WEBPACK_IMPORTED_MODULE_103__","_app_routing_module__WEBPACK_IMPORTED_MODULE_1__","_angular_cdk_a11y__WEBPACK_IMPORTED_MODULE_104__","_angular_cdk_stepper__WEBPACK_IMPORTED_MODULE_105__","_angular_cdk_table__WEBPACK_IMPORTED_MODULE_106__","_angular_cdk_tree__WEBPACK_IMPORTED_MODULE_107__","_angular_cdk_drag_drop__WEBPACK_IMPORTED_MODULE_108__","_angular_material_autocomplete__WEBPACK_IMPORTED_MODULE_109__","_angular_material_badge__WEBPACK_IMPORTED_MODULE_110__","_angular_material_bottom_sheet__WEBPACK_IMPORTED_MODULE_111__","_angular_material_button__WEBPACK_IMPORTED_MODULE_112__","_angular_material_button_toggle__WEBPACK_IMPORTED_MODULE_113__","_angular_material_card__WEBPACK_IMPORTED_MODULE_114__","_angular_material_checkbox__WEBPACK_IMPORTED_MODULE_115__","_angular_material_chips__WEBPACK_IMPORTED_MODULE_116__","_angular_material_stepper__WEBPACK_IMPORTED_MODULE_117__","_angular_material_datepicker__WEBPACK_IMPORTED_MODULE_118__","_angular_material_moment_adapter__WEBPACK_IMPORTED_MODULE_119__","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_120__","_angular_material_divider__WEBPACK_IMPORTED_MODULE_121__","_angular_material_expansion__WEBPACK_IMPORTED_MODULE_122__","_angular_material_grid_list__WEBPACK_IMPORTED_MODULE_123__","_angular_material_icon__WEBPACK_IMPORTED_MODULE_124__","_angular_material_input__WEBPACK_IMPORTED_MODULE_125__","_angular_material_list__WEBPACK_IMPORTED_MODULE_126__","_angular_material_menu__WEBPACK_IMPORTED_MODULE_127__","_angular_material_core__WEBPACK_IMPORTED_MODULE_128__","_angular_material_paginator__WEBPACK_IMPORTED_MODULE_129__","_angular_material_progress_bar__WEBPACK_IMPORTED_MODULE_130__","_angular_material_progress_spinner__WEBPACK_IMPORTED_MODULE_131__","_angular_material_radio__WEBPACK_IMPORTED_MODULE_132__","_angular_material_select__WEBPACK_IMPORTED_MODULE_133__","_angular_material_sidenav__WEBPACK_IMPORTED_MODULE_134__","_angular_material_slider__WEBPACK_IMPORTED_MODULE_135__","_angular_material_slide_toggle__WEBPACK_IMPORTED_MODULE_136__","_angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_137__","_angular_material_sort__WEBPACK_IMPORTED_MODULE_138__","_angular_material_table__WEBPACK_IMPORTED_MODULE_139__","_angular_material_tabs__WEBPACK_IMPORTED_MODULE_140__","_angular_material_toolbar__WEBPACK_IMPORTED_MODULE_141__","_angular_material_tooltip__WEBPACK_IMPORTED_MODULE_142__","_angular_material_tree__WEBPACK_IMPORTED_MODULE_143__","_angular_cdk_portal__WEBPACK_IMPORTED_MODULE_144__","_angular_cdk_scrolling__WEBPACK_IMPORTED_MODULE_145__","_angular_forms__WEBPACK_IMPORTED_MODULE_146__","ngx_lightbox__WEBPACK_IMPORTED_MODULE_0__","ng2_charts__WEBPACK_IMPORTED_MODULE_147__","ngx_logger__WEBPACK_IMPORTED_MODULE_148__","serverLoggingUrl","level","serverLogLevel","_ngx_translate_core__WEBPACK_IMPORTED_MODULE_149__","provide","useFactory","deps","defaultLanguage","ngx_print__WEBPACK_IMPORTED_MODULE_150__","ngx_kjua__WEBPACK_IMPORTED_MODULE_151__","_ng_select_ng_select__WEBPACK_IMPORTED_MODULE_152__","ngx_color_picker__WEBPACK_IMPORTED_MODULE_153__","_core_api_handler__WEBPACK_IMPORTED_MODULE_20__","_core_auth_auth_service__WEBPACK_IMPORTED_MODULE_16__","_core_auth_auth_interceptor__WEBPACK_IMPORTED_MODULE_19__","_angular_router__WEBPACK_IMPORTED_MODULE_154__","useClass","_core_url_serializer_service__WEBPACK_IMPORTED_MODULE_8__","useValue","duration","useUtc","parse","dateInput","display","monthYearLabel","dateA11yLabel","monthYearA11yLabel","_shared_helpers_custom_date_adapter__WEBPACK_IMPORTED_MODULE_79__","_core_auth_auth_guard_service__WEBPACK_IMPORTED_MODULE_13__","_shared_services_loading__WEBPACK_IMPORTED_MODULE_12__","_core_services_sidenav_service__WEBPACK_IMPORTED_MODULE_15__","_shared_helpers_lang_paginator_intl__WEBPACK_IMPORTED_MODULE_18__","_shared_services_validation_service__WEBPACK_IMPORTED_MODULE_11__","_shared_helpers_translation_resolver__WEBPACK_IMPORTED_MODULE_77__","_shared_helpers_config_resolver__WEBPACK_IMPORTED_MODULE_78__","_shared_services_breadcrumb_service__WEBPACK_IMPORTED_MODULE_14__","_shared_services_modal_service__WEBPACK_IMPORTED_MODULE_9__","_shared_models_modal__WEBPACK_IMPORTED_MODULE_17__","_shared_services_alert_service__WEBPACK_IMPORTED_MODULE_10__","bootstrap","httpOptions","headers","_angular_common_http__WEBPACK_IMPORTED_MODULE_5__","body","responseType","observe","withCredentials","reportProgress","params","HttpOptions","ApiHandler","alert","_apiBaseUrl","src_environments_environment__WEBPACK_IMPORTED_MODULE_4__","store","onLangChange","_lang","t","lang","_models_enums_language__WEBPACK_IMPORTED_MODULE_1__","set","username","password","post","_models_enums_end_point__WEBPACK_IMPORTED_MODULE_2__","err","errorMessage","error","ErrorEvent","message","_auth_auth_service__WEBPACK_IMPORTED_MODULE_0__","messages","key","push","_error","window","location","href","currentLang","console","dto","_url","JSON","stringify","pipe","Boolean","handleError","bind","url","queryParams","localized","undefined","Array","isArray","forEach","p","Object","entries","index","value","Number","indexOf","object","args","length","a","put","id","_ngx_translate_core__WEBPACK_IMPORTED_MODULE_10__","_shared_services_alert_service__WEBPACK_IMPORTED_MODULE_3__","AuthGuardService","auth","_route","state","isAuthenticated","role","currentUser","isInRole","navigate","returnUrl","_auth_service__WEBPACK_IMPORTED_MODULE_0__","_angular_router__WEBPACK_IMPORTED_MODULE_2__","src_app_shared_services_alert_service__WEBPACK_IMPORTED_MODULE_1__","AuthInterceptor","req","next","idToken","localStorage","getItem","src_environments_environment__WEBPACK_IMPORTED_MODULE_2__","isTokenExpired","_models_enums_end_point__WEBPACK_IMPORTED_MODULE_1__","cloned","clone","handle","httpInterceptorProviders","multi","_angular_common_http__WEBPACK_IMPORTED_MODULE_7__","AuthService","_models_enums_language__WEBPACK_IMPORTED_MODULE_2__","login","src_environments_environment__WEBPACK_IMPORTED_MODULE_6__","_models_enums_end_point__WEBPACK_IMPORTED_MODULE_3__","setSession","res","toPromise","recoverPassword","resetPassword","authResult","expiresAt","moment__WEBPACK_IMPORTED_MODULE_0__","expiry","setItem","token","valueOf","AuthService_1","authActivity","dToken","userId","isSystemAccount","isAdministrator","userTitles","accountId","parentAccountId","accountTitles","accountTypeId","claimsCountries","map","r","intLicenseAllowedValidity","accountTypeTitles","roles","_models_enums_role__WEBPACK_IMPORTED_MODULE_4__","_models_enums_account_type__WEBPACK_IMPORTED_MODULE_5__","isInAnyOfRoles","some","includes","isBefore","getExpiration","expiration","removeItem","complete","rxjs__WEBPACK_IMPORTED_MODULE_10__","FooterComponent","year","moment__WEBPACK_IMPORTED_MODULE_2__","format","HeaderComponent","zone","authService","_models_enums_language__WEBPACK_IMPORTED_MODULE_4__","authenticated","_auth_auth_service__WEBPACK_IMPORTED_MODULE_2__","loggedin","switchLangEnabled","split","join","initialNavigation","_angular_router__WEBPACK_IMPORTED_MODULE_5__","src_app_shared_services_loading__WEBPACK_IMPORTED_MODULE_3__","_angular_core__WEBPACK_IMPORTED_MODULE_6__","_ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__","LoginComponent","document","fb","head","getElementsByTagName","setAttribute","styleFileName","themeLink","getElementById","style","createElement","rel","prepend","formInit","loadStyle","l","setTimeout","load","form","valid","src_app_shared_services_utils__WEBPACK_IMPORTED_MODULE_4__","disable","snapshot","queryParamMap","navigateByUrl","enable","group","_angular_forms__WEBPACK_IMPORTED_MODULE_6__","rememberMe","Document","decorators","type","_angular_core__WEBPACK_IMPORTED_MODULE_7__","_angular_common__WEBPACK_IMPORTED_MODULE_8__","_ngx_translate_core__WEBPACK_IMPORTED_MODULE_9__","_angular_router__WEBPACK_IMPORTED_MODULE_10__","MainComponent","renderer","elm","sidenavService","ua","navigator","userAgent","test","mobileView","opened","paramMap","prefix","events","event","_titles","_titlesLinks","child","_path","instant","firstChild","getAccountType","root","setLinks","ttl","setTitle","bodyLoading","sidenav","toggle","content","getElementRef","nativeElement","classList","removeClass","addClass","_angular_core__WEBPACK_IMPORTED_MODULE_9__","_angular_common__WEBPACK_IMPORTED_MODULE_10__","_services_sidenav_service__WEBPACK_IMPORTED_MODULE_2__","_ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__","_angular_platform_browser__WEBPACK_IMPORTED_MODULE_12__","src_app_shared_services_breadcrumb_service__WEBPACK_IMPORTED_MODULE_4__","_auth_auth_service__WEBPACK_IMPORTED_MODULE_5__","RecoverPasswordComponent","view","email","_angular_forms__WEBPACK_IMPORTED_MODULE_7__","pass","passwordConfirm","validator","src_app_shared_services_custom_validators__WEBPACK_IMPORTED_MODULE_6__","forgotPassword","result","success","failure","trim","replace","_angular_core__WEBPACK_IMPORTED_MODULE_8__","_angular_common__WEBPACK_IMPORTED_MODULE_9__","_angular_router__WEBPACK_IMPORTED_MODULE_11__","src_app_shared_services_alert_service__WEBPACK_IMPORTED_MODULE_5__","SidenavComponent","service","userService","user","name","avatar","defaultAvatar","src_app_core_models_enums_role__WEBPACK_IMPORTED_MODULE_5__","_models_enums_account_type__WEBPACK_IMPORTED_MODULE_6__","_models_enums_end_point__WEBPACK_IMPORTED_MODULE_7__","u","getUserMeta","_avatar","o","slib","querySelectorAll","element","contains","links","link","addEventListener","linkClick","querySelector","_angular_router__WEBPACK_IMPORTED_MODULE_8__","_services_sidenav_service__WEBPACK_IMPORTED_MODULE_3__","src_app_features_security_services_users_service__WEBPACK_IMPORTED_MODULE_4__","AccountType","BloodGroup","ConfigObject","_DocumentType","EndPoint","Gender","Language","IntLicensePermitClass","PrintObject","Role","SystemObject","TransactionType","TripTikClaimStatus","ValidationDto","SidenavService","rxjs__WEBPACK_IMPORTED_MODULE_0__","UrlSerializerService","_angular_router__WEBPACK_IMPORTED_MODULE_0__","lastSlashIndex","lastIndexOf","equalSignIndex","keyValArr","substr","urlTree","defaultSerializer","segments","segment","tree","serialize","AccountsComponent","confirmService","node","expandable","_","_nodeData","item","hasChildren","currentAccountId","treeControl","_angular_cdk_tree__WEBPACK_IMPORTED_MODULE_13__","getLevel","isExpandable","dataSource","_services_accounts_service__WEBPACK_IMPORTED_MODULE_2__","src_app_core_models_enums_role__WEBPACK_IMPORTED_MODULE_10__","remove","updateAllowed","deleteAllowed","createAllowed","src_app_core_models_enums_account_type__WEBPACK_IMPORTED_MODULE_12__","usersDisplay","langIndex","src_app_core_models_enums_language__WEBPACK_IMPORTED_MODULE_11__","badgeClasses","src_app_shared_services_loading__WEBPACK_IMPORTED_MODULE_4__","initialData","accountUsersCount","find","d","usersCount","stockTypes","drivingLicense","triptikDocument","from","Set","documentType","checked","isActiveChange","i","modal","confirm","src_app_shared_models_modal__WEBPACK_IMPORTED_MODULE_7__","confirmQuestion","titles","toString","note","dangerNote","m","deleteAccount","dataChange","filter","src_app_shared_models_default_alert_action__WEBPACK_IMPORTED_MODULE_9__","row","active","_data","action","submitText","findIndex","n","updateStatus","isActive","parentId","_updateNodeStatus","updateAccountStatus","dataMap","clear","filterText","_angular_router__WEBPACK_IMPORTED_MODULE_14__","src_app_shared_services_modal_service__WEBPACK_IMPORTED_MODULE_3__","src_app_core_auth_auth_service__WEBPACK_IMPORTED_MODULE_5__","src_app_shared_services_alert_service__WEBPACK_IMPORTED_MODULE_6__","_ngx_translate_core__WEBPACK_IMPORTED_MODULE_15__","_angular_core__WEBPACK_IMPORTED_MODULE_16__","src_app_features_lookups_services_account_types__WEBPACK_IMPORTED_MODULE_8__","ManageAccountComponent","constructor","countriesService","citiesService","stockTypesService","accountTypeService","usersService","fileLoader","accountForm","ngOnInit","_this","LoaderType","getURO","list","uroStockTypes","getAccountUsers","users","countries","at","getAllowed","accountTypes","getAccount","account","documentTypes","onlyUnique","_parentAccounts","parentAccounts","patchValue","countryId","city","cityId","phoneNumber","isSMSEnabled","cities","attachments","att","loadAsync","fetchStockTypes","_stockTypes","accountType","setValue","self","getBadgeClass","fetchCities","reset","_this2","isUnifiedRelease","y","onSubmit","setErrors","Utils","cmd","createAccount","updateAccount","Validators","array","nonEnglishCharactersValidator","nonArabicCharactersValidator","phoneNumberValidator","adminAccount","control","usernameValidator","validateUsernameNotTaken","comparePasswords","attachmentFormInit","file","fileName","addAttachment","removeAttachment","removeAt","preview","$event","tgt","target","srcElement","files","FileReader","fr","onload","readAsDataURL","fileDropped","FormBuilder","CountriesService","CitiesService","StockTypesService","AccountTypesService","AccountsService","LoadingService","AlertService","Router","ActivatedRoute","UsersService","TranslateService","FileLoaderService","Component","UserProfileComponent","profileForm","fetchUserProfile","src_app_shared_services_loading__WEBPACK_IMPORTED_MODULE_9__","getUserProfile","imageURL","cashedProfileData","names","changingPassword","updateMode","newPassword","newPasswordConfirm","src_app_shared_services_utils__WEBPACK_IMPORTED_MODULE_8__","profile","lodash__WEBPACK_IMPORTED_MODULE_7__","updateUserProfile","_core_auth_auth_service__WEBPACK_IMPORTED_MODULE_5__","_shared_models_default_alert_action__WEBPACK_IMPORTED_MODULE_2__","img","canvas","getContext","drawImage","toDataURL","_angular_forms__WEBPACK_IMPORTED_MODULE_10__","src_app_shared_services_custom_validators__WEBPACK_IMPORTED_MODULE_3__","disabled","newPass","_security_services_users_service__WEBPACK_IMPORTED_MODULE_6__","src_app_shared_services_alert_service__WEBPACK_IMPORTED_MODULE_4__","ViewAccountComponent","reverse","slice","DynamicFlatNode","isLoading","DynamicDataSource","_treeControl","_database","BehaviorSubject","dataNodes","connect","collectionViewer","expansionModel","changed","change","added","removed","handleTreeControl","merge","viewChange","disconnect","toggleNode","expand","getChildren","nodes","_node","splice","count","api","Map","getChildrenAccounts","rootLevelNodes","accounts","has","values","getAccounts","getPossibleParentAccounts","getChildrenAccountsLookup","isActiveOnly","create","update","Injectable","DocumentsRevokeRequestsComponent","issuingService","src_app_features_stock_models_undo_requests__WEBPACK_IMPORTED_MODULE_10__","src_app_core_models_enums_role__WEBPACK_IMPORTED_MODULE_8__","src_app_core_models_enums_document_type__WEBPACK_IMPORTED_MODULE_14__","src_app_core_models_enums_language__WEBPACK_IMPORTED_MODULE_16__","displayedColumns","sort","direction","paginator","pageSize","_services_documents_revoke_requests_datasource__WEBPACK_IMPORTED_MODULE_11__","loadDocumentsRevokeRequests","counter$","page","sortChange","filterBtn","stockType","valueChange","pageIndex","dir","approve","src_app_shared_models_modal__WEBPACK_IMPORTED_MODULE_6__","requestedBy","submitClass","isDamaged","inputNote","resolveRequest","all","getDocumentsRevokeRequests","exportToExcel","revokeRequests","unsubscribe","resolveTryRevokeDocument","src_app_shared_models_default_alert_action__WEBPACK_IMPORTED_MODULE_13__","revokeRequestsSubject","undoRequestStatus","resolvedBy","resolveNote","wscols","width","autofilter","ref","rows","created","serial","requestReason","resolved","_services_issuing_service__WEBPACK_IMPORTED_MODULE_9__","src_app_features_lookups_services_stock_types__WEBPACK_IMPORTED_MODULE_15__","src_app_shared_services_file_loader_service__WEBPACK_IMPORTED_MODULE_17__","_ngx_translate_core__WEBPACK_IMPORTED_MODULE_21__","src_app_shared_services_modal_service__WEBPACK_IMPORTED_MODULE_12__","src_app_core_auth_auth_service__WEBPACK_IMPORTED_MODULE_7__","_angular_core__WEBPACK_IMPORTED_MODULE_22__","_angular_material_paginator__WEBPACK_IMPORTED_MODULE_23__","_angular_material_sort__WEBPACK_IMPORTED_MODULE_24__","_angular_material_select__WEBPACK_IMPORTED_MODULE_25__","ExpiredDocumentsQueryComponent","src_app_shared_services_loading__WEBPACK_IMPORTED_MODULE_6__","src_app_core_models_enums_language__WEBPACK_IMPORTED_MODULE_3__","src_app_core_models_enums_document_type__WEBPACK_IMPORTED_MODULE_2__","stockTypeId","_angular_forms__WEBPACK_IMPORTED_MODULE_8__","passportIDorIdentityID","src_app_features_lookups_services_stock_types__WEBPACK_IMPORTED_MODULE_4__","_services_issuing_service__WEBPACK_IMPORTED_MODULE_7__","IssuedDocumentsQueryComponent","clearValidators","setValidators","_angular_forms__WEBPACK_IMPORTED_MODULE_9__","vPlateID","vChassisID","isPosted","updateValueAndValidity","src_app_shared_services_utils__WEBPACK_IMPORTED_MODULE_7__","query","searchForIssuedDocument","_angular_material_table__WEBPACK_IMPORTED_MODULE_10__","isCloneAvailable","isValid","pop","_services_issuing_service__WEBPACK_IMPORTED_MODULE_8__","VerificationComponent","src_app_shared_services_loading__WEBPACK_IMPORTED_MODULE_2__","verify","_angular_core__WEBPACK_IMPORTED_MODULE_4__","_angular_common__WEBPACK_IMPORTED_MODULE_5__","_ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__","_services_issuing_service__WEBPACK_IMPORTED_MODULE_3__","DocumentsRevokeRequestsDataSource","countSubject","asObservable","pagination","catchError","of","finalize","attachment","changingThisBreaksApplicationSecurity","request","accountParentAccounts","populateAccountsSelect","recordsCount","IssuingService","src_app_core_models_enums_end_point__WEBPACK_IMPORTED_MODULE_1__","src_app_core_api_handler__WEBPACK_IMPORTED_MODULE_0__","CouponManagementComponent","intLicensesService","accountsService","couponService","moment","Math","searchForm","advancedSearchMode","activeFilters","emit","fromDate","toDate","gender","nationalityId","passportID","permitClass","isIssued","isNaN","parseInt","fetchData","ngAfterViewInit","tap","loadCoupons","fromEvent","relativeTo","replaceUrl","CouponDataSource","toggleAdvancedSearch","filterList","printObject","printObjectsCount","onDetail","coupon","onUpdate","cancel","issued","DeleteModal","_cancel","delete","_delete","DefaultAlertAction","couponSubject","cancelDocument","onExportToExcel","param","discount","Date","_temp","resetSearch","IntLicensesService","ConfirmService","CoupounService","ViewChild","MatPaginator","static","MatSort","ManageCouponManagementComponent","stocksService","confirmation","_location","src_app_core_models_enums_document_type__WEBPACK_IMPORTED_MODULE_8__","src_app_core_models_enums_language__WEBPACK_IMPORTED_MODULE_7__","couponId","populate","transactionDetails","alertClass","operation","warn","detectChanges","back","_angular_forms__WEBPACK_IMPORTED_MODULE_13__","src_app_shared_services_custom_validators__WEBPACK_IMPORTED_MODULE_9__","src_app_core_auth_auth_service__WEBPACK_IMPORTED_MODULE_4__","src_app_features_lookups_services_stock_types__WEBPACK_IMPORTED_MODULE_3__","src_app_features_stock_services_stocks_service__WEBPACK_IMPORTED_MODULE_10__","src_app_shared_services_modal_service__WEBPACK_IMPORTED_MODULE_6__","_services_coupoun_service__WEBPACK_IMPORTED_MODULE_12__","_angular_common__WEBPACK_IMPORTED_MODULE_16__","_angular_core__WEBPACK_IMPORTED_MODULE_17__","src_app_features_stock_components_stock_slider_stock_slider_component__WEBPACK_IMPORTED_MODULE_11__","ViewCouponManagementComponent","ViewLicenseDetailComponent","loadCouponDetails","CouponDetailDataSource","couponDetailSubject","couponLicense","coupons","providedIn","CommitmentPrintComponent","elRef","print","issueDate","printHtmlContent","innerHTML","ElementRef","IntLicensePrintComponent","qRCodeUrl","hashedSerial","ELicensesComponent","eLicensesService","convertELicenseOrderStatusToLocale","orderStatus","licensePeriod","paymentMethod","orderNo","shippingStatue","log","ELicensesDataSource","tryRevoke","revokeRequestId","requestType","UpdateModal","_this3","_tryRevoke","_cancelTryRevoke","objectId","attributes","reason","tryRevokeDocument","IntLicensesSubject","cancelTryRevokeDocument","tapOrders","tapOrder","printLogs","eLicenseOrder","bill","couponDiscount","validityYears","shippingFees","total","trackingId","chargeId","rowsCount","unmatchedOrderNumbers","unmatchedDatabaseNumbers","max","ELicensesService","IntLicensesComponent","loadIntLicenses","IntLicensesDataSource","ManageIntLicenseComponent","intLicenseService","IntLicenseDetailsDto","video","facingMode","ideal","height","num","places","String","padStart","_validityYears","getAvailableStocks","stockTypesAvailableStocks","availableStock","availableSerials","spreadRanges","getByHashedSerial","intLicense","unshift","controls","ctrl","removeImage","markAsTouched","startCamera","mediaDevices","getUserMedia","videoConstraints","stream","camStream","attachVideo","isCamStreaming","capture","setProperty","videoWidth","videoHeight","videoElement","imageData","_stopCamera","stopCamera","pause","removeAttribute","getTracks","track","stop","listen","isExpired","expiryDate","now","toISODate","date","getFullYear","zeroPad","getMonth","getDate","dateOfBirth","dataAccuracyAcknowledgment","englishAndSpacesValidator","passportIdOrIdentityIdValidator","bloodGroup","accordingToId","permitClasses","ranges","s","_start","_end","StocksService","Renderer2","ViewIntLicenseComponent","modalService","config","_returnToCustomer","comment","updateOrderStatus","ELicenseOrderStatus","interactions","actor","utc","reload","amount","_reject","currency","_PayBranch","routeReuseStrategy","shouldReuseRoute","_Pick","_ship","shippingAddress","shippingVendorTrackingNumber","currentUrl","order","createUpsShipment","ShipmentModal","cancelText","backdrop","keyboard","printLabelByTrackingNumber","trackingNumber","response","labelImage","TrackResponse","Shipment","Package","Label","GraphicImage","labelFormat","ImageFormat","Code","blob","b64toBlob","saveAs","containsNumbers","str","regex","b64Data","contentType","sliceSize","byteCharacters","atob","byteArrays","offset","byteNumbers","charCodeAt","byteArray","Uint8Array","Blob","maxPrintLimit","StaticConfig","intLicenseId","qRCodeImg","displayPreview","isPrintable","comPrintElm","_print","_this4","hash","add","subtract","isELicense","printElm","getTranslatedTemplateVersion","version","_issueDate","_this5","dateFormat","_expiryDate","documentTemplateVersion","canvas1","ctx","lic","Image","textAlign","font","v","h","rh","fillText","nationalityTitles","countryTitles","accordingToTitles","abs","photo","radius","save","beginPath","moveTo","lineTo","quadraticCurveTo","closePath","clip","restore","qr","src","ptt","globalAlpha","ptrn","createPattern","fillStyle","fillRect","canvas1Thumb","thumbCtx","canvas2","stk","rect","canvas2Thumb","open","size","ariaLabelledBy","_order","CreateOrderUPSCommand","_upsOrder","closeResult","getDismissReason","isEmpty","obj","jsonparse","AddressLine","AttentionName","Comments","CommodityCode","CountryCode","DeclarationStatement","Description","InvoiceDate","InvoiceNumber","Name","OriginCountryCode","PostalCode","ProductWeight","PurchaseOrderNumber","ReasonForExport","StateProvinceCode","TermsOfShipment","UnitOfMeasurementType","UnitOfMeasurementWeight","customercityName","customercontactPhoneNumber","customercountry","customername","customerneighborhoodName","customerpostalCode","customerstreetName","pickuplocation","productname","ModalDismissReasons","HttpClient","NgbModal","NgbModalConfig","ELicenseOrderDto","ELicenseShippingAddressDto","ELicensePlanDto","ELicenseBillDto","ELicenseInteractionDto","UpdateELicenseOrderStatusCommand","_e_license__WEBPACK_IMPORTED_MODULE_0__","isExcelExport","ReceiptPrintComponent","TripTikPrintComponent","stringJoin","empty","vOptions","vehicle","options","opt","_colors","colors","transform","_options","model","_makeModel","make","drivers","customer","cOwnerInfo","owner","address","item1","item2","upholsteryType","vUpholsteryType","StringJoinPipe","ManageTripTikComponent","tripTiksService","currenciesService","vehicleColorsService","vehicleMakesService","vehicleModelsService","vehicleTypesService","TripTikDetailsDto","steps","step1","step2","step3","startYearConfig","vehicleManufactureYearRange","getUTCFullYear","vehicleUpholsteryTypes","vehicleSpareTiresCountOptions","vehicleCylindersCountRange","vehicleSeatsCountRange","vehicleOptions","FormControl","vehicleRegistrationCountries","currencies","vCurrency","vehicleColors","vehicleMakes","vehicleTypes","stepper","_stepHeader","_getHostElement","ev","navigateAttempt","onSelectStockType","driver","driverFormInit","residenceCountryId","identityID","localAddress","intAddress","localPhoneNumber","intPhoneNumber","registrationCountryId","plateID","makeId","modelId","typeId","seatsCount","manufactureYear","weightInKG","cylindersCount","horsePower","engineID","chassisID","spareTiresCount","equipments","extras","currencyId","identityOrPassport","vehicleRegistration","c","addDriver","removeDriver","fetchModels","vModel","vehicleModels","markAsUntouched","abbreviation","vRegistrationCountry","selectedIndex","selected","stepControl","grp","_attachments","keys","PostTripTikCmd","addressValidator","vehicleSeatsCountRangeValidator","vehicleManufactureYearRangeValidator","vehicleWeightInKGRangeValidator","vehicleCylindersCountRangeValidator","vehicleHorsePowerRangeValidator","vehicleValueRangeValidator","_passportIdOrIdentityIdValidator","cPassportID","cIdentityID","authorization","TripTiksService","CurrenciesService","VehicleColorsService","VehicleMakesService","VehicleModelsService","VehicleTypesService","MatStepper","TripTiksComponent","cResidenceCountryId","cIdentityOrPassportID","cPhoneNumber","vTypeId","vMakeId","vModelId","vManufactureYear","cName","vRegistrationCountryId","_vRegistrationCountryId","onSelectVehicleMake","TripTiksDataSource","arr","TripTiksSubject","ViewTripTikComponent","tripTikId","fetchAttachments","isMigratedData","receiptPrintElm","_title","parent","_i","defaultImage","fcCanvas","fcImage","registrationCountryTitles","fcCanvasThumb","bcThumbCtx","ipCanvas","ipImage","makeModel","bcCanvasThumb","bcCanvas","bcImage","cNationalityId","cLocalAddress","cLocalPhoneNumber","cIntPhoneNumber","cIntAddress","cDrivers","cAttachments","vSeatsCount","vSpareTiresCount","vEquipments","vValue","vCurrencyId","vWeightInKG","vHorsePower","vColors","vCylindersCount","vEngineID","vExtras","TripTikCustomerDto","TripTikVehicleDto","TripTikOwnerDto","makeTitles","rxjs__WEBPACK_IMPORTED_MODULE_2__","src_app_shared_services_loading__WEBPACK_IMPORTED_MODULE_0__","AccountStatusesComponent","src_app_core_models_enums_role__WEBPACK_IMPORTED_MODULE_12__","src_app_core_models_enums_language__WEBPACK_IMPORTED_MODULE_9__","_angular_material_table__WEBPACK_IMPORTED_MODULE_13__","editingRowId","deletingRowId","firstPage","shift","src_app_shared_services_utils__WEBPACK_IMPORTED_MODULE_10__","edit","as","toLowerCase","_services_account_statuses__WEBPACK_IMPORTED_MODULE_3__","src_app_core_auth_auth_service__WEBPACK_IMPORTED_MODULE_11__","_angular_forms__WEBPACK_IMPORTED_MODULE_14__","_angular_material_paginator__WEBPACK_IMPORTED_MODULE_17__","_angular_material_sort__WEBPACK_IMPORTED_MODULE_18__","AccountTypesComponent","src_app_core_models_enums_role__WEBPACK_IMPORTED_MODULE_11__","maxId","src_app_shared_services_utils__WEBPACK_IMPORTED_MODULE_12__","parentTitles","_services_account_types__WEBPACK_IMPORTED_MODULE_2__","src_app_core_auth_auth_service__WEBPACK_IMPORTED_MODULE_10__","src_app_shared_services_modal_service__WEBPACK_IMPORTED_MODULE_5__","CitiesComponent","countryServie","src_app_core_models_enums_language__WEBPACK_IMPORTED_MODULE_8__","_countries","lodash__WEBPACK_IMPORTED_MODULE_14__","_angular_material_table__WEBPACK_IMPORTED_MODULE_15__","newDto","submitted","src_app_shared_services_utils__WEBPACK_IMPORTED_MODULE_13__","_angular_forms__WEBPACK_IMPORTED_MODULE_16__","_services_cities__WEBPACK_IMPORTED_MODULE_2__","_services_countries__WEBPACK_IMPORTED_MODULE_3__","_ngx_translate_core__WEBPACK_IMPORTED_MODULE_17__","_angular_core__WEBPACK_IMPORTED_MODULE_18__","_angular_material_paginator__WEBPACK_IMPORTED_MODULE_19__","_angular_material_sort__WEBPACK_IMPORTED_MODULE_20__","CountriesComponent","logger","src_app_core_models_enums_language__WEBPACK_IMPORTED_MODULE_12__","dialingCode","src_app_shared_models_default_alert_action__WEBPACK_IMPORTED_MODULE_8__","_services_countries__WEBPACK_IMPORTED_MODULE_2__","src_app_shared_services_modal_service__WEBPACK_IMPORTED_MODULE_4__","_angular_router__WEBPACK_IMPORTED_MODULE_15__","ngx_logger__WEBPACK_IMPORTED_MODULE_16__","CurrenciesComponent","_services_currencies__WEBPACK_IMPORTED_MODULE_2__","CustomsPortsComponent","_services_customs_ports_service__WEBPACK_IMPORTED_MODULE_10__","PursuingZonesComponent","src_app_shared_services_utils__WEBPACK_IMPORTED_MODULE_9__","_services_pursuing_zones__WEBPACK_IMPORTED_MODULE_10__","StockTypesComponent","rangeMin","rangeMax","hexColor","src_app_shared_models_default_alert_action__WEBPACK_IMPORTED_MODULE_10__","_services_stock_types__WEBPACK_IMPORTED_MODULE_2__","VehicleColorsComponent","_services_vehicle_colors__WEBPACK_IMPORTED_MODULE_2__","VehicleMakesComponent","src_app_shared_services_custom_validators__WEBPACK_IMPORTED_MODULE_10__","_services_vehicle_makes__WEBPACK_IMPORTED_MODULE_2__","VehicleModelsComponent","vehicleMakeService","makes","_makes","src_app_core_models_enums_document_type__WEBPACK_IMPORTED_MODULE_16__","_angular_material_table__WEBPACK_IMPORTED_MODULE_17__","toggleUpdateMode","_angular_forms__WEBPACK_IMPORTED_MODULE_18__","_services_vehicle_models__WEBPACK_IMPORTED_MODULE_2__","_services_vehicle_makes__WEBPACK_IMPORTED_MODULE_10__","_services_stock_types__WEBPACK_IMPORTED_MODULE_15__","_ngx_translate_core__WEBPACK_IMPORTED_MODULE_19__","_angular_core__WEBPACK_IMPORTED_MODULE_20__","_angular_material_paginator__WEBPACK_IMPORTED_MODULE_21__","_angular_material_sort__WEBPACK_IMPORTED_MODULE_22__","VehicleTypesComponent","_services_vehicle_types__WEBPACK_IMPORTED_MODULE_2__","AccountStatusesService","StaticConfig_1","configObj","lodash__WEBPACK_IMPORTED_MODULE_2__","keyValuePairs","pair","keyValuePair","CustomsPortsService","PursuingZonesService","transactAllowedOnly","TripTikClaimsStatusesService","AccountUsersComponent","UsersDataSource","loadUsers","filterWithAccount","tryDelete","tryUpdateStatus","UsersSubject","deleteUser","updateUserStatus","Location","ManageUserComponent","activatedRoute","securityService","customsPortsService","userForm","getAccountGroupsLookup","groups","claimsSystemGroupId","customsPorts","_claimsCountries","getUserData","isClaimsApplicable","cashedUserData","securityGroups","onGroupSelectionChange","isClaimsGroupSelected","changePassword","updateUserData","createUser","numbersOnlyValidator","SecurityService","SecurityGroupsComponent","SecurityRolesVm","navigation","getCurrentNavigation","objectsCol","securityGroupForm","MatTableDataSource","getAccountRoles","getAccountGroups","groupId","onSelectGroup","_group","SecurityGroupDto","availableActions","objectsActions","isSystemGroup","formEnabled","addCheckboxes","clearSelections","matrixIndex","formArray","objAct","actions","actionId","securityObject","cellToggle","selectedGroup","g","securityActions","selections","SelectionModel","replaceState","isColSelected","getActionIndex","numSelected","numRows","isRowSelected","isSelected","colToggle","colSelected","select","deselect","totalSelected","exit","oa","deleteAccountGroup","groupIndex","mapCheckboxes","_form","createAccountGroup","navigationExtras","isDelete","updateAccountGroup","formArr","_actions","val","_action","undo","UsersGroupsComponent","_angular_material_table__WEBPACK_IMPORTED_MODULE_12__","src_app_shared_services_loading__WEBPACK_IMPORTED_MODULE_5__","getUsersSecurityGroups","cashedVm","vm","usersGroups","availableGroups","_angular_cdk_collections__WEBPACK_IMPORTED_MODULE_13__","getGroupIndex","usersGroupsForm","src_app_shared_models_modal__WEBPACK_IMPORTED_MODULE_9__","updateUsersSecurityGroups","_models_security_groups_model__WEBPACK_IMPORTED_MODULE_3__","lodash__WEBPACK_IMPORTED_MODULE_6__","ug","descriptions","_services_security_service__WEBPACK_IMPORTED_MODULE_4__","src_app_shared_services_alert_service__WEBPACK_IMPORTED_MODULE_2__","src_app_shared_services_modal_service__WEBPACK_IMPORTED_MODULE_7__","src_app_core_auth_auth_service__WEBPACK_IMPORTED_MODULE_8__","SecurityGroupsVm","SecurityGroupsLookupVm","UsersSecurityGroupsVm","UserSecurityGroupsDto","UserDto","SecurityGroupLookupDto","ObjectActionDto","validateGroupTitle","language","getUsers","ParentsSubject","duplicatedUsername","src_app_core_models_validation__WEBPACK_IMPORTED_MODULE_2__","objectType","src_app_core_models_enums_system_object__WEBPACK_IMPORTED_MODULE_3__","validate","DashboardComponent","statisticsService","responsive","annotation","borderColor","backgroundColor","parentElement","_services_statistics_service__WEBPACK_IMPORTED_MODULE_3__","StatisticsService","LicTransactionsPrintComponent","transaction","transactionLevel","fromAccountId","toAccountId","receiptTemplate","src_app_shared_services_utils__WEBPACK_IMPORTED_MODULE_2__","_angular_core__WEBPACK_IMPORTED_MODULE_3__","_ngx_translate_core__WEBPACK_IMPORTED_MODULE_4__","Range","StockSliderComponent","nouislider__WEBPACK_IMPORTED_MODULE_2__","slider","start","tooltips","animate","animationDuration","step","range","noUiSlider","on","fromRange","toRange","updateOptions","_rangeEnable","_range","src_app_shared_services_utils__WEBPACK_IMPORTED_MODULE_3__","_rangeCount","selectedStock","countMax","resetSlider","countMin","_angular_core__WEBPACK_IMPORTED_MODULE_5__","TransactionDetailsLabelComponent","_angular_core__WEBPACK_IMPORTED_MODULE_2__","TrpTransactionsPrintComponent","PopulateComponent","src_app_core_models_enums_document_type__WEBPACK_IMPORTED_MODULE_12__","src_app_core_models_enums_language__WEBPACK_IMPORTED_MODULE_10__","availableStockHTML","quantity","loadSystemAvailableStock","customReason","src_app_shared_services_utils__WEBPACK_IMPORTED_MODULE_11__","reasons","isPermanentDelete","_populate","src_app_shared_services_custom_validators__WEBPACK_IMPORTED_MODULE_13__","getSystemAvailableStocks","renderAvailableStockAsHTML","singles","html","src_app_shared_services_alert_service__WEBPACK_IMPORTED_MODULE_7__","_ngx_translate_core__WEBPACK_IMPORTED_MODULE_16__","_services_stocks_service__WEBPACK_IMPORTED_MODULE_6__","src_app_shared_services_modal_service__WEBPACK_IMPORTED_MODULE_8__","_components_stock_slider_stock_slider_component__WEBPACK_IMPORTED_MODULE_2__","StocksAvailableComponent","systemView","availableStocks","sumAvailableStocks","sumAvailableStocksFilter","serialStatus","onSerialStatusChange","checkBoxChange","available","tabGroup","stockTypeData","_row","StocksTotalsComponent","StockTotalsDataSource","loadStockTotals","getStockTotals","accountsStocksTotals","stockTypesStocksTotals","received","transfered","returned","transferedUndone","remainingStocks","TransactComponent","fromAccounts","onSelectFromAccount","toAccounts","func","_accounts","onSelectToAccount","toAccount","loadAvailableStock","stock","renderAvailableStock","onSelectRange","fromAccount","sourceId","targetId","transact","AvailableStock","TransactionsComponent","_models_transaction_type_enum__WEBPACK_IMPORTED_MODULE_4__","src_app_core_models_enums_transaction_type__WEBPACK_IMPORTED_MODULE_10__","reduce","transactionTypes","b","src_app_core_models_enums_account_type__WEBPACK_IMPORTED_MODULE_15__","transactionType","_helpers_transactions_datasource__WEBPACK_IMPORTED_MODULE_5__","loadTransactions","src_app_core_models_enums_document_type__WEBPACK_IMPORTED_MODULE_11__","licPrintElm","trpPrintElm","stockTransactions","fromAccountTitles","toAccountTitles","src_app_shared_services_utils__WEBPACK_IMPORTED_MODULE_14__","_services_stocks_service__WEBPACK_IMPORTED_MODULE_7__","src_app_features_lookups_services_stock_types__WEBPACK_IMPORTED_MODULE_8__","src_app_core_auth_auth_service__WEBPACK_IMPORTED_MODULE_12__","_angular_forms__WEBPACK_IMPORTED_MODULE_20__","src_app_features_accounts_services_accounts_service__WEBPACK_IMPORTED_MODULE_13__","_angular_router__WEBPACK_IMPORTED_MODULE_21__","UndoRequestsComponent","moment__WEBPACK_IMPORTED_MODULE_3__","_models_undo_requests__WEBPACK_IMPORTED_MODULE_7__","src_app_core_models_enums_language__WEBPACK_IMPORTED_MODULE_14__","_helpers_undo_requests_datasource__WEBPACK_IMPORTED_MODULE_6__","loadUndoRequests","src_app_shared_models_modal__WEBPACK_IMPORTED_MODULE_10__","transactionId","getUndoRequests","undoRequests","resolveUndo","undoRequestsSubject","_services_stocks_service__WEBPACK_IMPORTED_MODULE_4__","src_app_features_lookups_services_stock_types__WEBPACK_IMPORTED_MODULE_13__","src_app_shared_services_alert_service__WEBPACK_IMPORTED_MODULE_8__","_ngx_translate_core__WEBPACK_IMPORTED_MODULE_18__","_shared_services_modal_service__WEBPACK_IMPORTED_MODULE_2__","_angular_core__WEBPACK_IMPORTED_MODULE_19__","_angular_material_paginator__WEBPACK_IMPORTED_MODULE_20__","_angular_material_sort__WEBPACK_IMPORTED_MODULE_21__","_angular_material_select__WEBPACK_IMPORTED_MODULE_22__","UndoTryComponent","_reason","_customReason","tryUndo","_models_available_stocks__WEBPACK_IMPORTED_MODULE_2__","src_app_features_lookups_services_stock_types__WEBPACK_IMPORTED_MODULE_5__","_ngx_translate_core__WEBPACK_IMPORTED_MODULE_12__","_angular_core__WEBPACK_IMPORTED_MODULE_14__","_components_stock_slider_stock_slider_component__WEBPACK_IMPORTED_MODULE_3__","accountStocksTotals","StockTotalsSubject","TransactionsDataSource","systemAccountLabel","fromAccountParentAccounts","toAccountParentAccounts","TransactionsSubject","UndoRequestsDataSource","AvailableStocksVm","StockTypeAvailableStocksDto","transactionTypeLocale","src_app_core_models_enums_transaction_type__WEBPACK_IMPORTED_MODULE_0__","UndoRequestsVm","UndoRequestDto","UndoRequestStatus","undoRequestStatusLocale","_key","Rejected","New","Approved","Removed","gaps","threshold","ManageTripTikClaimComponent","pursuingZonesService","triptiksClaimsService","_customsPorts","pursuingZones","fetchCustomsPorts","customsPort","entranceID","entranceDate","customsPortId","pursuingZoneId","holderName","triptikNameValidator","holderAddress","holderPhone","TripTiksClaimsService","TripTikClaimAttachmentsComponent","tripTiksClaimsService","tripTikClaimId","getClaimAttachments","tripTikClaimEntranceID","TripTiksClaimsLogsComponent","tripTikClaimsStatusesService","src_app_core_models_enums_role__WEBPACK_IMPORTED_MODULE_9__","src_app_core_models_enums_gender__WEBPACK_IMPORTED_MODULE_6__","src_app_core_models_enums_print_object__WEBPACK_IMPORTED_MODULE_7__","src_app_core_models_enums_license_permit_class__WEBPACK_IMPORTED_MODULE_10__","src_app_core_models_enums_language__WEBPACK_IMPORTED_MODULE_4__","src_app_core_models_enums_document_type__WEBPACK_IMPORTED_MODULE_17__","statuses","vehiclePlateID","latestStatusId","loadTripTiksClaimsLogs","_services_trip_tiks_claims_logs_datasource__WEBPACK_IMPORTED_MODULE_12__","src_app_shared_services_utils__WEBPACK_IMPORTED_MODULE_18__","_services_trip_tiks_claims_service__WEBPACK_IMPORTED_MODULE_5__","src_app_features_lookups_services_trip_tik_claims_statuses_service__WEBPACK_IMPORTED_MODULE_16__","src_app_features_lookups_services_pursuing_zones__WEBPACK_IMPORTED_MODULE_15__","_ngx_translate_core__WEBPACK_IMPORTED_MODULE_22__","src_app_features_lookups_services_customs_ports_service__WEBPACK_IMPORTED_MODULE_14__","src_app_features_accounts_services_accounts_service__WEBPACK_IMPORTED_MODULE_11__","_angular_forms__WEBPACK_IMPORTED_MODULE_23__","_angular_router__WEBPACK_IMPORTED_MODULE_24__","_angular_core__WEBPACK_IMPORTED_MODULE_25__","_angular_material_paginator__WEBPACK_IMPORTED_MODULE_26__","_angular_material_sort__WEBPACK_IMPORTED_MODULE_27__","TripTiksClaimsComponent","statusId","fromEntranceDate","toEntranceDate","baseStatusId","_stockTypeId","_countryId","_customsPortId","onSelectCountry","baseStatuses","filterWithStatusId","filterWithPursuingZoneId","TripTiksClaimsDataSource","TripTiksClaimsSubject","onSelectStatus","nodeStatuses","country","pursuingZone","latestStatus","UpdateStatusTripTikClaimComponent","TripTikClaimDto","baseStatus","payment","paymentFormInit","addControl","onSelectNestedStatus","removeControl","ViewTripTikClaimComponent","TripTikClaimDetailsDto","logs","TripTiksClaimsLogsDataSource","rxjs__WEBPACK_IMPORTED_MODULE_1__","TripTiksClaimsLogsSubject","AlertComponent","_angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_3__","BodyLoaderComponent","BreadcrumbComponent","_services_breadcrumb_service__WEBPACK_IMPORTED_MODULE_2__","_ngx_translate_core__WEBPACK_IMPORTED_MODULE_3__","DialogComponent","ConfirmModalComponent","_angular_forms__WEBPACK_IMPORTED_MODULE_3__","invalid","_services_utils__WEBPACK_IMPORTED_MODULE_2__","close","dismiss","readerEvt","_models_modal__WEBPACK_IMPORTED_MODULE_1__","NotFoundComponent","_services_loading__WEBPACK_IMPORTED_MODULE_2__","UnderConstructionComponent","ValidationErrorComponent","validation","animationState","propertyName","errors","hasOwnProperty","touched","getValidatorErrorMessage","_services_validation_service__WEBPACK_IMPORTED_MODULE_2__","animations","DragDirective","sanitizer","_angular_core__WEBPACK_IMPORTED_MODULE_0__","evt","preventDefault","border","currentTarget","dataTransfer","_name","container","_angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__","ConfirmTemplateDirective","_angular_core__WEBPACK_IMPORTED_MODULE_1__","_models_modal__WEBPACK_IMPORTED_MODULE_0__","ConfigResolver","PICK_FORMATS","month","day","CustomDateAdapter","timestamp","displayFormat","UTC","getHours","getMinutes","getSeconds","getMilliseconds","assign","timeZone","dtf","Intl","DateTimeFormat","locale","_angular_material_core__WEBPACK_IMPORTED_MODULE_0__","rtl","ws","xlsx__WEBPACK_IMPORTED_MODULE_1__","wb","Workbook","Views","RTL","LangMatPaginatorIntl","startIndex","endIndex","min","getAndInitTranslations","itemsPerPageLabel","translation","nextPageLabel","previousPageLabel","firstPageLabel","lastPageLabel","changes","_angular_material_paginator__WEBPACK_IMPORTED_MODULE_0__","_ngx_translate_core__WEBPACK_IMPORTED_MODULE_1__","TranslationResolver","property","DisplayModal","ConfirmState","ArrayMapPipe","input","ParamsTranslatePipe","newObject","_ngx_translate_core__WEBPACK_IMPORTED_MODULE_2__","_snackBar","part","_message","panelClass","verticalPosition","openFromComponent","_components_alert_alert_component__WEBPACK_IMPORTED_MODULE_0__","_angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_1__","BreadcrumbService","_links","NON_ENGLISH_REGEX","NON_ARABIC_REGEX","ENGLISH_ONLY_REGEX","ENGLISH_AND_SPACES_REGEX","NUMBERS_ONLY_REGEX","USERNAME_REGEX","RangeValidation","vehicleWeightInKG","vehicleHorsePower","vehicleCylindersCount","vehicleManufactureYear","vehicleSeatsCount","vehicleSpareTiresCount","vehicleValue","ADDRESS_REGEX","PASSPORT_ID_OR_IDENTITY_ID_REGEX","EMAIL_REGEX","PHONE_NO_REGEX","TRIPTIK_NAME_REGEX","invalidVehicleWeightInKGRange","invalidVehicleHorsePowerRange","invalidVehicleCylindersCountRange","invalidVehicleManufactureYearRange","invalidVehicleSeatsCountRange","vehicleSpareTiresCountRangeValidator","invalidVehicleSpareTiresCountRange","invalidVehicleValueRange","nonEnglishOnly","nonArabicOnly","englishOnlyValidator","englishOnly","englishAndSpacesOnly","invalidNumbersOnly","invalidPhoneNumber","emailValidator","invalidEmail","invalidUsername","invalidPassportIdOrIdentityId","ctrl1","ctrl2","_invalidPassportIdOrIdentityId","invalidAddress","invalidTriptikName","standardLocalizedControlValidators","_angular_forms__WEBPACK_IMPORTED_MODULE_1__","src_app_core_models_enums_language__WEBPACK_IMPORTED_MODULE_0__","confirmPassword","passwordMismatch","sanitize","bypassSecurityTrustUrl","environment","convertToByteArray","unavailableFile","reject","DomSanitizer","Nav","Body","_ng_bootstrap_ng_bootstrap__WEBPACK_IMPORTED_MODULE_1__","formGroup","field","onlySelf","validateAllFormFields","frame1","position","top","appendChild","frameDoc","contentWindow","contentDocument","write","frames","focus","removeChild","_printHTML","end","setHours","toISOString","px","mm","origin","output","xlsx__WEBPACK_IMPORTED_MODULE_2__","ValidationService","validatorName","validatorValue","required","arabicOnly","minlength","requiredLength","maxlength","invalidCreditCard","invalidEmailAddress","invalidPassword","production","apiBaseUrl","_environments_environment__WEBPACK_IMPORTED_MODULE_1__","bootstrapModule","_app_app_module__WEBPACK_IMPORTED_MODULE_0__","webpackContext"],"sources":["webpack:///$_lazy_route_resources|lazy|groupOptions:%20%7B%7D|namespace%20object","webpack:///src/app/app.component.html","webpack:///src/app/core/components/footer/footer.component.html","webpack:///src/app/core/components/header/header.component.html","webpack:///src/app/core/components/login/login.component.html","webpack:///src/app/core/components/main/main.component.html","webpack:///src/app/core/components/recover-password/recover-password.component.html","webpack:///src/app/core/components/sidenav/sidenav.component.html","webpack:///src/app/features/accounts/containers/accounts/accounts.component.html","webpack:///src/app/features/accounts/containers/manage-account/manage-account.component.html","webpack:///src/app/features/accounts/containers/user-profile/user-profile.component.html","webpack:///src/app/features/accounts/containers/view-account/view-account.component.html","webpack:///src/app/features/issuing/_shared/containers/documents-revoke-requests/documents-revoke-requests.component.html","webpack:///src/app/features/issuing/_shared/containers/expired-documents-query/expired-documents-query.component.html","webpack:///src/app/features/issuing/_shared/containers/issued-documents-query/issued-documents-query.component.html","webpack:///src/app/features/issuing/_shared/containers/verification/verification.component.html","webpack:///src/app/features/issuing/coupon-management/containers/coupon-management/coupon-management.component.html","webpack:///src/app/features/issuing/coupon-management/containers/manage-coupon-management/manage-coupon-management.component.html","webpack:///src/app/features/issuing/coupon-management/containers/view-coupon-management/view-coupon-management.component.html","webpack:///src/app/features/issuing/coupon-management/containers/view-license-detail/view-license-detail.component.html","webpack:///src/app/features/issuing/int-licenses/components/commitment-print/commitment-print.component.html","webpack:///src/app/features/issuing/int-licenses/components/int-license-print/int-license-print.component.html","webpack:///src/app/features/issuing/int-licenses/containers/e-licenses/e-licenses.component.html","webpack:///src/app/features/issuing/int-licenses/containers/int-licenses/int-licenses.component.html","webpack:///src/app/features/issuing/int-licenses/containers/manage-int-license/manage-int-license.component.html","webpack:///src/app/features/issuing/int-licenses/containers/view-int-license/view-int-license.component.html","webpack:///src/app/features/issuing/trip-tik/components/receipt-print/receipt-print.component.html","webpack:///src/app/features/issuing/trip-tik/components/trip-tik-print/trip-tik-print.component.html","webpack:///src/app/features/issuing/trip-tik/containers/manage-trip-tik/manage-trip-tik.component.html","webpack:///src/app/features/issuing/trip-tik/containers/trip-tiks/trip-tiks.component.html","webpack:///src/app/features/issuing/trip-tik/containers/view-trip-tik/view-trip-tik.component.html","webpack:///src/app/features/lookups/containers/account-statuses/account-statuses.component.html","webpack:///src/app/features/lookups/containers/account-types/account-types.component.html","webpack:///src/app/features/lookups/containers/cities/cities.component.html","webpack:///src/app/features/lookups/containers/countries/countries.component.html","webpack:///src/app/features/lookups/containers/currencies/currencies.component.html","webpack:///src/app/features/lookups/containers/customs-ports/customs-ports.component.html","webpack:///src/app/features/lookups/containers/pursuing-zones/pursuing-zones.component.html","webpack:///src/app/features/lookups/containers/stock-types/stock-types.component.html","webpack:///src/app/features/lookups/containers/vehicle-colors/vehicle-colors.component.html","webpack:///src/app/features/lookups/containers/vehicle-makes/vehicle-makes.component.html","webpack:///src/app/features/lookups/containers/vehicle-models/vehicle-models.component.html","webpack:///src/app/features/lookups/containers/vehicle-types/vehicle-types.component.html","webpack:///src/app/features/security/containers/account-users/account-users.component.html","webpack:///src/app/features/security/containers/manage-user/manage-user.component.html","webpack:///src/app/features/security/containers/security-groups/security-groups.component.html","webpack:///src/app/features/security/containers/users-groups/users-groups.component.html","webpack:///src/app/features/statistics/containers/dashboard/dashboard.component.html","webpack:///src/app/features/stock/components/lic-transactions-print/lic-transactions-print.component.html","webpack:///src/app/features/stock/components/stock-slider/stock-slider.component.html","webpack:///src/app/features/stock/components/transaction-details-label/transaction-details-label.component.html","webpack:///src/app/features/stock/components/trp-transactions-print/trp-transactions-print.component.html","webpack:///src/app/features/stock/containers/populate/populate.component.html","webpack:///src/app/features/stock/containers/stocks-available/stocks-available.component.html","webpack:///src/app/features/stock/containers/stocks-totals/stocks-totals.component.html","webpack:///src/app/features/stock/containers/transact/transact.component.html","webpack:///src/app/features/stock/containers/transactions/transactions.component.html","webpack:///src/app/features/stock/containers/undo-requests/undo-requests.component.html","webpack:///src/app/features/stock/containers/undo-try/undo-try.component.html","webpack:///src/app/features/trip-tiks-claims/containers/manage-trip-tik-claim/manage-trip-tik-claim.component.html","webpack:///src/app/features/trip-tiks-claims/containers/trip-tik-claim-attachments/trip-tik-claim-attachments.component.html","webpack:///src/app/features/trip-tiks-claims/containers/trip-tiks-claims-logs/trip-tiks-claims-logs.component.html","webpack:///src/app/features/trip-tiks-claims/containers/trip-tiks-claims/trip-tiks-claims.component.html","webpack:///src/app/features/trip-tiks-claims/containers/update-status-trip-tik-claim/update-status-trip-tik-claim.component.html","webpack:///src/app/features/trip-tiks-claims/containers/view-trip-tik-claim/view-trip-tik-claim.component.html","webpack:///src/app/shared/components/alert/alert.component.html","webpack:///src/app/shared/components/body-loader/body-loader.component.html","webpack:///src/app/shared/components/breadcrumb/breadcrumb.component.html","webpack:///src/app/shared/components/dialog/dialog.component.html","webpack:///src/app/shared/components/modal/modal.component.html","webpack:///src/app/shared/components/not-found/not-found.component.html","webpack:///src/app/shared/components/under-construction/under-construction.component.html","webpack:///src/app/shared/components/validation-error/validation-error.component.html","webpack:///src/app/app-routing.module.ts","webpack:///src/app/app.component.ts","webpack:///src/app/app.module.ts","webpack:///src/app/core/api-handler.ts","webpack:///src/app/core/auth/auth-guard.service.ts","webpack:///src/app/core/auth/auth-interceptor.ts","webpack:///src/app/core/auth/auth.service.ts","webpack:///src/app/core/components/footer/footer.component.ts","webpack:///src/app/core/components/header/header.component.ts","webpack:///src/app/core/components/login/login.component.ts","webpack:///src/app/core/components/main/main.component.ts","webpack:///src/app/core/components/recover-password/recover-password.component.ts","webpack:///src/app/core/components/sidenav/sidenav.component.ts","webpack:///src/app/core/models/enums/account-type.ts","webpack:///src/app/core/models/enums/blood-group.ts","webpack:///src/app/core/models/enums/config-object.ts","webpack:///src/app/core/models/enums/document-type.ts","webpack:///src/app/core/models/enums/end-point.ts","webpack:///src/app/core/models/enums/gender.ts","webpack:///src/app/core/models/enums/language.ts","webpack:///src/app/core/models/enums/license-permit-class.ts","webpack:///src/app/core/models/enums/print-object.ts","webpack:///src/app/core/models/enums/role.ts","webpack:///src/app/core/models/enums/system-object.ts","webpack:///src/app/core/models/enums/transaction-type.ts","webpack:///src/app/core/models/enums/triptik-claim-status.ts","webpack:///src/app/core/models/validation.ts","webpack:///src/app/core/services/sidenav.service.ts","webpack:///src/app/core/url-serializer.service.ts","webpack:///src/app/features/accounts/containers/accounts/accounts.component.ts","webpack:///src/app/features/accounts/containers/manage-account/manage-account.component.ts","webpack:///src/app/features/accounts/containers/user-profile/user-profile.component.ts","webpack:///src/app/features/accounts/containers/view-account/view-account.component.ts","webpack:///src/app/features/accounts/services/accounts.service.ts","webpack:///src/app/features/issuing/_shared/containers/documents-revoke-requests/documents-revoke-requests.component.ts","webpack:///src/app/features/issuing/_shared/containers/expired-documents-query/expired-documents-query.component.ts","webpack:///src/app/features/issuing/_shared/containers/issued-documents-query/issued-documents-query.component.ts","webpack:///src/app/features/issuing/_shared/containers/verification/verification.component.ts","webpack:///src/app/features/issuing/_shared/services/documents-revoke-requests.datasource.ts","webpack:///src/app/features/issuing/_shared/services/issuing.service.ts","webpack:///src/app/features/issuing/coupon-management/containers/coupon-management/coupon-management.component.ts","webpack:///src/app/features/issuing/coupon-management/containers/manage-coupon-management/manage-coupon-management.component.ts","webpack:///src/app/features/issuing/coupon-management/containers/view-coupon-management/view-coupon-management.component.ts","webpack:///src/app/features/issuing/coupon-management/containers/view-license-detail/view-license-detail.component.ts","webpack:///src/app/features/issuing/coupon-management/services/coupo-detail.datasource.ts","webpack:///src/app/features/issuing/coupon-management/services/coupon.datasource.ts","webpack:///src/app/features/issuing/coupon-management/services/coupoun.service.ts","webpack:///src/app/features/issuing/int-licenses/components/commitment-print/commitment-print.component.ts","webpack:///src/app/features/issuing/int-licenses/components/int-license-print/int-license-print.component.ts","webpack:///src/app/features/issuing/int-licenses/containers/e-licenses/e-licenses.component.ts","webpack:///src/app/features/issuing/int-licenses/containers/int-licenses/int-licenses.component.ts","webpack:///src/app/features/issuing/int-licenses/containers/manage-int-license/manage-int-license.component.ts","webpack:///src/app/features/issuing/int-licenses/containers/view-int-license/view-int-license.component.ts","webpack:///src/app/features/issuing/int-licenses/models/e-license.ts","webpack:///src/app/features/issuing/int-licenses/models/int-license.ts","webpack:///src/app/features/issuing/int-licenses/models/order-status-locale.ts","webpack:///src/app/features/issuing/int-licenses/services/e-licenses.datasource.ts","webpack:///src/app/features/issuing/int-licenses/services/e-licenses.service.ts","webpack:///src/app/features/issuing/int-licenses/services/int-licenses.datasource.ts","webpack:///src/app/features/issuing/int-licenses/services/int-licenses.service.ts","webpack:///src/app/features/issuing/trip-tik/components/receipt-print/receipt-print.component.ts","webpack:///src/app/features/issuing/trip-tik/components/trip-tik-print/trip-tik-print.component.ts","webpack:///src/app/features/issuing/trip-tik/containers/manage-trip-tik/manage-trip-tik.component.ts","webpack:///src/app/features/issuing/trip-tik/containers/trip-tiks/trip-tiks.component.ts","webpack:///src/app/features/issuing/trip-tik/containers/view-trip-tik/view-trip-tik.component.ts","webpack:///src/app/features/issuing/trip-tik/models/create.cmd.ts","webpack:///src/app/features/issuing/trip-tik/models/trip-tik.ts","webpack:///src/app/features/issuing/trip-tik/services/trip-tiks.datasource.ts","webpack:///src/app/features/issuing/trip-tik/services/trip-tiks.service.ts","webpack:///src/app/features/lookups/containers/account-statuses/account-statuses.component.ts","webpack:///src/app/features/lookups/containers/account-types/account-types.component.ts","webpack:///src/app/features/lookups/containers/cities/cities.component.ts","webpack:///src/app/features/lookups/containers/countries/countries.component.ts","webpack:///src/app/features/lookups/containers/currencies/currencies.component.ts","webpack:///src/app/features/lookups/containers/customs-ports/customs-ports.component.ts","webpack:///src/app/features/lookups/containers/pursuing-zones/pursuing-zones.component.ts","webpack:///src/app/features/lookups/containers/stock-types/stock-types.component.ts","webpack:///src/app/features/lookups/containers/vehicle-colors/vehicle-colors.component.ts","webpack:///src/app/features/lookups/containers/vehicle-makes/vehicle-makes.component.ts","webpack:///src/app/features/lookups/containers/vehicle-models/vehicle-models.component.ts","webpack:///src/app/features/lookups/containers/vehicle-types/vehicle-types.component.ts","webpack:///src/app/features/lookups/services/account-statuses.ts","webpack:///src/app/features/lookups/services/account-types.ts","webpack:///src/app/features/lookups/services/cities.ts","webpack:///src/app/features/lookups/services/config.ts","webpack:///src/app/features/lookups/services/countries.ts","webpack:///src/app/features/lookups/services/currencies.ts","webpack:///src/app/features/lookups/services/customs-ports.service.ts","webpack:///src/app/features/lookups/services/pursuing-zones.ts","webpack:///src/app/features/lookups/services/stock-types.ts","webpack:///src/app/features/lookups/services/trip-tik-claims-statuses.service.ts","webpack:///src/app/features/lookups/services/vehicle-colors.ts","webpack:///src/app/features/lookups/services/vehicle-makes.ts","webpack:///src/app/features/lookups/services/vehicle-models.ts","webpack:///src/app/features/lookups/services/vehicle-types.ts","webpack:///src/app/features/security/containers/account-users/account-users.component.ts","webpack:///src/app/features/security/containers/manage-user/manage-user.component.ts","webpack:///src/app/features/security/containers/security-groups/security-groups.component.ts","webpack:///src/app/features/security/containers/users-groups/users-groups.component.ts","webpack:///src/app/features/security/models/security-groups.model.ts","webpack:///src/app/features/security/services/security.service.ts","webpack:///src/app/features/security/services/users-datasource.ts","webpack:///src/app/features/security/services/users.service.ts","webpack:///src/app/features/statistics/containers/dashboard/dashboard.component.ts","webpack:///src/app/features/statistics/services/statistics.service.ts","webpack:///src/app/features/stock/components/lic-transactions-print/lic-transactions-print.component.ts","webpack:///src/app/features/stock/components/stock-slider/stock-slider.component.ts","webpack:///src/app/features/stock/components/transaction-details-label/transaction-details-label.component.ts","webpack:///src/app/features/stock/components/trp-transactions-print/trp-transactions-print.component.ts","webpack:///src/app/features/stock/containers/populate/populate.component.ts","webpack:///src/app/features/stock/containers/stocks-available/stocks-available.component.ts","webpack:///src/app/features/stock/containers/stocks-totals/stocks-totals.component.ts","webpack:///src/app/features/stock/containers/transact/transact.component.ts","webpack:///src/app/features/stock/containers/transactions/transactions.component.ts","webpack:///src/app/features/stock/containers/undo-requests/undo-requests.component.ts","webpack:///src/app/features/stock/containers/undo-try/undo-try.component.ts","webpack:///src/app/features/stock/helpers/stocks-totals-datasource.ts","webpack:///src/app/features/stock/helpers/transactions-datasource.ts","webpack:///src/app/features/stock/helpers/undo-requests-datasource.ts","webpack:///src/app/features/stock/models/available-stocks.ts","webpack:///src/app/features/stock/models/transaction-type.enum.ts","webpack:///src/app/features/stock/models/undo-requests.ts","webpack:///src/app/features/stock/services/stocks.service.ts","webpack:///src/app/features/trip-tiks-claims/containers/manage-trip-tik-claim/manage-trip-tik-claim.component.ts","webpack:///src/app/features/trip-tiks-claims/containers/trip-tik-claim-attachments/trip-tik-claim-attachments.component.ts","webpack:///src/app/features/trip-tiks-claims/containers/trip-tiks-claims-logs/trip-tiks-claims-logs.component.ts","webpack:///src/app/features/trip-tiks-claims/containers/trip-tiks-claims/trip-tiks-claims.component.ts","webpack:///src/app/features/trip-tiks-claims/containers/update-status-trip-tik-claim/update-status-trip-tik-claim.component.ts","webpack:///src/app/features/trip-tiks-claims/containers/view-trip-tik-claim/view-trip-tik-claim.component.ts","webpack:///src/app/features/trip-tiks-claims/models/trip-tik-claim.model.ts","webpack:///src/app/features/trip-tiks-claims/services/trip-tiks-claims-logs.datasource.ts","webpack:///src/app/features/trip-tiks-claims/services/trip-tiks-claims.datasource.ts","webpack:///src/app/features/trip-tiks-claims/services/trip-tiks-claims.service.ts","webpack:///src/app/shared/components/alert/alert.component.ts","webpack:///src/app/shared/components/body-loader/body-loader.component.ts","webpack:///src/app/shared/components/breadcrumb/breadcrumb.component.ts","webpack:///src/app/shared/components/dialog/dialog.component.ts","webpack:///src/app/shared/components/modal/modal.component.ts","webpack:///src/app/shared/components/not-found/not-found.component.ts","webpack:///src/app/shared/components/under-construction/under-construction.component.ts","webpack:///src/app/shared/components/validation-error/validation-error.component.ts","webpack:///src/app/shared/directives/drag.directive.ts","webpack:///src/app/shared/directives/modal.directive.ts","webpack:///src/app/shared/helpers/config.resolver.ts","webpack:///src/app/shared/helpers/custom-date-adapter.ts","webpack:///src/app/shared/helpers/export-to-excel.ts","webpack:///src/app/shared/helpers/lang-paginator-intl.ts","webpack:///src/app/shared/helpers/populate-accounts-select.ts","webpack:///src/app/shared/helpers/translation.resolver.ts","webpack:///src/app/shared/models/default-alert-action.ts","webpack:///src/app/shared/models/modal.ts","webpack:///src/app/shared/pipes/array-map.pipe.ts","webpack:///src/app/shared/pipes/params-translate.pipe.ts","webpack:///src/app/shared/pipes/string-join.pipe.ts","webpack:///src/app/shared/services/alert.service.ts","webpack:///src/app/shared/services/breadcrumb.service.ts","webpack:///src/app/shared/services/custom-validators.ts","webpack:///src/app/shared/services/file-loader.service.ts","webpack:///src/app/shared/services/loading.ts","webpack:///src/app/shared/services/modal.service.ts","webpack:///src/app/shared/services/utils.ts","webpack:///src/app/shared/services/validation.service.ts","webpack:///src/environments/environment.ts","webpack:///src/main.ts","webpack:///node_modules/moment/locale|sync|/^/.*$"],"sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 98255;\nmodule.exports = webpackEmptyAsyncContext;","export default \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\";","export default \"\";","export default \"\\r\\n\\r\\n\";","export default \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";","export default \"
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\";","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";","export default \"\";","export default \"\\r\\n {{getAccountType() | translate}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{'SEC_LINK_USERS' | translate}}\\r\\n \\r\\n people\\r\\n \\r\\n  {{accountUsersCount}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
  • \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n pageview\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n delete\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n people {{node.item.usersCount}}\\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
  • \\r\\n
    \\r\\n \\r\\n
  • \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n pageview\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n delete\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n people \\r\\n {{node.item.usersCount}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
  • \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'ACC_LINK_TOTAL_USERS_COUNT' | translate}}: {{usersCount}}\\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"\\r\\n \\r\\n {{(!accountId ? '_ACTION_ADD' : '_ACTION_UPDATE') | translate }} {{ getAccountType(accountType.value) }}\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{account.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'LKP_FIELD_ACCOUNT_TYPE' | translate}}\\r\\n \\r\\n {{at.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'LKP_FIELD_STOCK_TYPE' | translate}}\\r\\n \\r\\n \\r\\n {{st.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n {{'ACC_FIELD_ACCOUNT_TITLE2' |\\r\\n translate:{param: getAccountType(accountType.value)} }}\\r\\n {{'_AR' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'ACC_FIELD_ACCOUNT_TITLE2' |\\r\\n translate:{param: getAccountType(accountType.value)} }}\\r\\n {{'_EN' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n {{'ACC_ATTACHMENTS' | translate}}:
    \\r\\n\\r\\n\\r\\n
    0\\\" class=\\\"col-12 mb-3\\\">\\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n {{'ACC_TITLE_PRIMARY_USER_ACCOUNT2' | translate:{param: getAccountType(accountType.value)} }}:
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"{{'ACC_TITLE_USER_PROFILE' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'SEC_FIELD_USERNAME' | translate}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_FIELD_EMAIL' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_FIELD_PHONE_NO' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'SEC_FIELD_PASSWORD' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'SEC_FIELD_NEW_PASSWORD' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'SEC_FIELD_PASSWORD_CONFIRM' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\\"\\\"\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_ACTION_UPLOAD' | translate}}\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"\\r\\n {{'_ACTION_VIEW' | translate}} {{'ACC_LABEL_ACCOUNT' | translate}}\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n file_copy\\r\\n {{'ACC_LABEL_ACCOUNT_DETAILS' | translate}}\\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n {{'ACC_FIELD_ACCOUNT_TITLE' | translate}}:\\r\\n {{dto.titles[lang]}}\\r\\n
    • \\r\\n
    • \\r\\n {{'LKP_FIELD_ACCOUNT_TYPE' | translate}}:\\r\\n {{dto.accountType.titles}}\\r\\n
    • \\r\\n
    \\r\\n \\r\\n
      \\r\\n
    • \\r\\n {{'ACC_FIELD_PARENT_ACCOUNT' | translate}}:\\r\\n {{_parentAccounts && _parentAccounts.length > 0 ? (_parentAccounts | stringJoin:' // ') : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'LKP_FIELD_STOCK_TYPE' | translate}}:\\r\\n \\r\\n \\r\\n\\r\\n
        \\r\\n
      • \\r\\n \\r\\n {{s.titles}}\\r\\n
      • \\r\\n
      \\r\\n
    • \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n {{'LKP_FIELD_COUNTRY' | translate}}:\\r\\n {{dto.city ? dto.city.countryTitles : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'LKP_FIELD_CITY' | translate}}:\\r\\n {{dto.city ? dto.city.titles : 'N/A'}}\\r\\n
    • \\r\\n
    \\r\\n\\r\\n
      \\r\\n
    • \\r\\n {{'_FIELD_EMAIL' | translate}}:\\r\\n {{dto.email ? dto.email : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'_FIELD_PHONE_NO' | translate}}:\\r\\n {{dto.phoneNumber ? dto.phoneNumber : 'N/A'}}\\r\\n
    • \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    0\\\" class=\\\"col-12 mb-3\\\">\\r\\n
    \\r\\n attach_file\\r\\n {{'ACC_ATTACHMENTS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n {{'ISS_TITLE_DOCUMENTS_REVOKE_REQUESTS' | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{'LKP_FIELD_STOCK_TYPE' | translate}}\\r\\n \\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{st.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'_LABEL_DATE' | translate}}{{moment(row.created).format('DD/MM/YYYY')}}\\r\\n {{'_LABEL_SERIAL' | translate}} {{row.serial}} {{'LKP_FIELD_STOCK_TYPE' | translate}}{{row.stockType.titles}}\\r\\n {{'ACC_FIELD_ACCOUNT_TITLE' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{row.accountTitles}}\\r\\n \\r\\n
    \\r\\n
    {{'ISS_LABEL_REQUESTED_BY' | translate}} {{row.requestedBy}} {{'_FIELD_REASON' | translate}}\\r\\n {{row.requestReason}}  \\r\\n \\r\\n \\r\\n attach_file\\r\\n \\r\\n \\r\\n {{'STK_LABEL_UNDO_REQUEST_STATUS' | translate}}\\r\\n \\r\\n {{undoRequestStatusLocale(row.undoRequestStatus) | translate}}\\r\\n \\r\\n {{'ISS_LABEL_REQUEST_TYPE' | translate}}\\r\\n \\r\\n {{(row.isDamaged ? '_ACTION_DESTROY' : '_ACTION_RECOVER') | translate}}\\r\\n \\r\\n {{'ISS_LABEL_RESOLVED_BY' | translate}} {{row.resolvedBy ? row.resolvedBy : '-'}} {{'ISS_LABEL_RESOLVE_DATE' | translate}} {{row.resolved ? moment(row.resolved).format('DD/MM/YYYY') : '-'}}{{'ISS_LABEL_RESOLVE_NOTE' | translate}} {{row.resolveNote ? row.resolveNote : '-'}} {{'_ACTION_TOOLS' | translate}}\\r\\n -\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"{{'ISS_TITLE_ISSUED_DOCUMENTS_QUERY' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n \\r\\n \\r\\n {{st.titles}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_TRIPTIK_SERIAL' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_IDENTITY_ID_OR_PASSPORT_ID' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n نتائج البحث\\r\\n
      \\r\\n
    • \\r\\n اسم المالك:\\r\\n {{dto.name}}\\r\\n
    • \\r\\n
    • \\r\\n تاريخ الإصدار:\\r\\n {{dto.issueDate}}\\r\\n
    • \\r\\n
    • \\r\\n تاريخ الإنتهاء:\\r\\n {{dto.expiryDate}}\\r\\n
    • \\r\\n
    • \\r\\n \\r\\n
    • \\r\\n
    \\r\\n
    \";","export default \"{{'ISS_TITLE_ISSUED_DOCUMENTS_QUERY' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_DOCUMENT_TYPE' | translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'LKP_FIELD_DOCUMENT_TYPE' | translate}}\\r\\n \\r\\n \\r\\n {{st.titles}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_LABEL_SERIAL_NUMBER' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_PLATE_ID' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_CHASSIS_ID' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n {{'_MESSAGE_SEARCH_RESULTS' | translate}}\\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'ISS_LABEL_DOCUMENT_OWNER' | translate}}{{row.name}}{{'ISS_LABEL_ISSUE_DATE' | translate}}{{row.issueDate}}\\r\\n {{'ISS_LABEL_EXPIRY_DATE' | translate}}\\r\\n {{row.expiryDate}}\\r\\n {{'ISS_LABEL_DOCUMENT_STATUS' | translate}}\\r\\n \\r\\n check_circle\\r\\n {{'ISS_LABEL_VALID' | translate}}\\r\\n \\r\\n cancel\\r\\n {{'ISS_LABEL_EXPIRED' | translate}}\\r\\n {{'_ACTION_TOOLS' | translate}}\\r\\n \\r\\n \\r\\n file_copy\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n {{'_MESSAGE_NO_SEARCH_RESULTS' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\";","export default \"
    \\r\\n
    \\r\\n
    \\r\\n

    DOCUMENT VERIFICATION

    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n

      \\r\\n \\r\\n \\r\\n warning\\r\\n \\r\\n Invalid Document Code\\r\\n \\r\\n

      \\r\\n
    • \\r\\n \\r\\n
    • \\r\\n
      \\r\\n Document Status:\\r\\n \\r\\n check_circle VALID\\r\\n \\r\\n cancel EXPIRED\\r\\n
      \\r\\n
    • \\r\\n
    • {{dto.stockType.titles[1]}}: {{dto.serial}}
    • \\r\\n
    • Issue Date: {{dto.issueDate}}
    • \\r\\n
    • Expiration Date: {{dto.expiryDate}}
    • \\r\\n
    • Owner Name: {{dto.name}}
    • \\r\\n
      \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \";","export default \"\\r\\n {{\\r\\n \\\"LIC_TITLE_COUPONS\\\" | translate\\r\\n }}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{ \\\"_LABEL_ADVANCED_SEARCH\\\" | translate }}\\r\\n \\r\\n filter_list\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{ \\\"_ACTION_EXPORT_DATA\\\" | translate }}\\r\\n grid_on \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{ \\\"_EXPORT_LINK_CURRENT_PAGE\\\" | translate }}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n search \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"_FIELD_NAME\\\" | translate }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"_LABEL_GENDER\\\" | translate }}\\r\\n \\r\\n {{ \\\"_LABEL_ALL\\\" | translate }}\\r\\n \\r\\n \\r\\n {{('_LABEL_MALE' ) | translate}}\\r\\n \\r\\n \\r\\n {{('_LABEL_FEMALE' ) | translate}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"_FIELD_PHONE_NO\\\" | translate }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"ISS_FIELD_PASSPORT_NUMBER\\\" | translate }}\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ title }}{{ i != item.titles.length - 1 ? \\\" // \\\" : \\\"\\\" }}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n {{ \\\"LIC_FIELD_PERMIT_CLASS\\\" | translate }}\\r\\n \\r\\n {{ \\\"_LABEL_ALL\\\" | translate }}\\r\\n \\r\\n {{ IntLicensePermitClass[p] }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"LIC_FIELD_LICENSE_NO\\\" | translate }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"_LABEL_FROM\\\" | translate }}\\r\\n {{ \\\"_LABEL_DATE2\\\" | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"_LABEL_TO\\\" | translate }}\\r\\n {{ \\\"_LABEL_DATE2\\\" | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"ISS_LABEL_ISSUE_STATUS\\\" | translate }}\\r\\n \\r\\n {{ \\\"_LABEL_ALL\\\" | translate }}\\r\\n {{\\r\\n \\\"ISS_LABEL_ISSUE_STATUS_ISSUED\\\" | translate\\r\\n }}\\r\\n {{\\r\\n \\\"ISS_LABEL_ISSUE_STATUS_UNISSUED\\\" | translate\\r\\n }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"ISS_LABEL_DOCUMENT_STATUS\\\" | translate }}\\r\\n \\r\\n {{ \\\"_LABEL_ALL\\\" | translate }}\\r\\n {{\\r\\n \\\"ISS_LABEL_DOCUMENT_STATUS_VALID\\\" | translate\\r\\n }}\\r\\n {{\\r\\n \\\"ISS_LABEL_DOCUMENT_STATUS_DAMAGED\\\" | translate\\r\\n }}\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n not_interested\\r\\n {{ \\\"_ACTION_CANCEL\\\" | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n search\\r\\n {{ \\\"_ACTION_SEARCH\\\" | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{ \\\"_ACTION_COUPON\\\" | translate }}{{ row.name }}{{ \\\"_ACTION_DISCOUNT\\\" | translate }}\\r\\n {{ row.discount }}%\\r\\n \\r\\n {{ \\\"_ACTION_STATUS\\\" | translate }}\\r\\n \\r\\n {{ row.status ? 'Active' : 'InActive' }}\\r\\n \\r\\n {{ \\\"_ACTION_TOOLS\\\" | translate }}\\r\\n \\r\\n \\r\\n pageview \\r\\n \\r\\n \\r\\n edit \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\";","export default \" {{\\r\\n populate ? (\\\"LIC_TITLE_ADD_COUPONS\\\" | translate) : (\\\"LIC_TITLE_UPDATE_COUPONS\\\" | translate)\\r\\n}} \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Coupon Name\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Discount\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n Status\\r\\n
    \\r\\n \\r\\n Active\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n done\\r\\n {{\\r\\n (populate ? \\\"_ACTION_ADD\\\" : \\\"_ACTION_SAVE\\\") | translate\\r\\n }}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n not_interested\\r\\n {{ \\\"_ACTION_CANCEL\\\" | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"

    view-coupon-management works!

    \\r\\n\";","export default \"\\r\\n {{\\r\\n \\\"LIC_TITLE_COUPON_DETAIL\\\" | translate\\r\\n }}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{ \\\"_LABEL_ADVANCED_SEARCH\\\" | translate }}\\r\\n \\r\\n filter_list\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{ \\\"_ACTION_EXPORT_DATA\\\" | translate }}\\r\\n grid_on \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{ \\\"_EXPORT_LINK_CURRENT_PAGE\\\" | translate }}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n search \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"_FIELD_NAME\\\" | translate }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"_LABEL_GENDER\\\" | translate }}\\r\\n \\r\\n {{ \\\"_LABEL_ALL\\\" | translate }}\\r\\n \\r\\n \\r\\n {{('_LABEL_MALE' ) | translate}}\\r\\n \\r\\n \\r\\n {{('_LABEL_FEMALE' ) | translate}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"_FIELD_PHONE_NO\\\" | translate }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"ISS_FIELD_PASSPORT_NUMBER\\\" | translate }}\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ title }}{{ i != item.titles.length - 1 ? \\\" // \\\" : \\\"\\\" }}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n {{ \\\"LIC_FIELD_PERMIT_CLASS\\\" | translate }}\\r\\n \\r\\n {{ \\\"_LABEL_ALL\\\" | translate }}\\r\\n \\r\\n {{ IntLicensePermitClass[p] }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"LIC_FIELD_LICENSE_NO\\\" | translate }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"_LABEL_FROM\\\" | translate }}\\r\\n {{ \\\"_LABEL_DATE2\\\" | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"_LABEL_TO\\\" | translate }}\\r\\n {{ \\\"_LABEL_DATE2\\\" | translate }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"ISS_LABEL_ISSUE_STATUS\\\" | translate }}\\r\\n \\r\\n {{ \\\"_LABEL_ALL\\\" | translate }}\\r\\n {{\\r\\n \\\"ISS_LABEL_ISSUE_STATUS_ISSUED\\\" | translate\\r\\n }}\\r\\n {{\\r\\n \\\"ISS_LABEL_ISSUE_STATUS_UNISSUED\\\" | translate\\r\\n }}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{ \\\"ISS_LABEL_DOCUMENT_STATUS\\\" | translate }}\\r\\n \\r\\n {{ \\\"_LABEL_ALL\\\" | translate }}\\r\\n {{\\r\\n \\\"ISS_LABEL_DOCUMENT_STATUS_VALID\\\" | translate\\r\\n }}\\r\\n {{\\r\\n \\\"ISS_LABEL_DOCUMENT_STATUS_DAMAGED\\\" | translate\\r\\n }}\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n not_interested\\r\\n {{ \\\"_ACTION_CANCEL\\\" | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n search\\r\\n {{ \\\"_ACTION_SEARCH\\\" | translate }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    Coupon{{ row.name }}Discount\\r\\n {{ row.discount }}\\r\\n Customer Name\\r\\n {{ row.customerName }}\\r\\n \\r\\n Status\\r\\n \\r\\n {{ row.status ? 'Active' : 'InActive' }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n\";","export default \"
    \\r\\n\\t\\r\\n\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t\\t
    \\r\\n\\t\\t\\t\\r\\n\\t\\t
    \\r\\n\\t
    \\r\\n\\r\\n\\t\\r\\n\\t
    \\r\\n\\t\\t\\r\\n\\t
    \\r\\n\\r\\n\\t\\r\\n\\t
    \\r\\n\\t\\t\\r\\n\\t
    \\r\\n\\r\\n\\t\\r\\n\\t
    \\r\\n\\t\\t\\r\\n\\t
    \\r\\n
    \";","export default \" \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{dto.issued | date: 'dd/MM/yyyy'}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{dto.name}}\\r\\n
    \\r\\n
    \\r\\n {{dto.dateOfBirth | date: 'dd/MM/yyyy'}}\\r\\n
    \\r\\n
    \\r\\n {{dto.nationalityTitles[Language.English]}}\\r\\n
    \\r\\n
    \\r\\n {{dto.countryTitles[Language.English]}}\\r\\n
    \\r\\n
    \\r\\n {{dto.passportID}}\\r\\n
    \\r\\n
    \\r\\n {{Gender[dto.gender]}}\\r\\n
    \\r\\n
    \\r\\n {{dto.bloodGroup}}\\r\\n
    \\r\\n
    \\r\\n {{dto.accordingToTitles[Language.English]}} License\\r\\n
    \\r\\n
    \\r\\n {{dto.permitClasses.join(', ')}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{dto.issued | date: 'dd/MM/yyyy'}}\\r\\n
    \\r\\n
    \\r\\n {{dto.expiryDate | date: 'dd/MM/yyyy'}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{dto.name}}\\r\\n
    \\r\\n
    \\r\\n {{dto.dateOfBirth | date: 'dd/MM/yyyy'}}\\r\\n
    \\r\\n
    \\r\\n {{dto.nationalityTitles[Language.English]}}\\r\\n
    \\r\\n
    \\r\\n {{dto.countryTitles[Language.English]}}\\r\\n
    \\r\\n
    \\r\\n {{dto.passportID}}\\r\\n
    \\r\\n
    \\r\\n {{Gender[dto.gender]}}\\r\\n
    \\r\\n
    \\r\\n {{dto.bloodGroup}}\\r\\n
    \\r\\n
    \\r\\n {{dto.accordingToTitles[Language.English]}} License\\r\\n
    \\r\\n
    \\r\\n {{dto.permitClasses.join(', ')}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    {{ dto.serial }}
    \\r\\n
    {{ dto.name }}
    \\r\\n
    {{ dto.dateOfBirth | date: 'dd/MM/yyyy' }}
    \\r\\n
    {{ Gender[dto.gender] }}
    \\r\\n
    {{ dto.nationalityTitles[Language.English] }}
    \\r\\n
    {{ dto.passportID }}
    \\r\\n
    {{ dto.countryTitles[Language.English] }}
    \\r\\n
    {{ dto.accordingToTitles[Language.English] }} License
    \\r\\n
    {{ dto.permitClasses.join(', ') }}
    \\r\\n
    {{ dto.bloodGroup }}
    \\r\\n
    {{ dto.issued | date: 'dd/MM/yyyy' }}
    \\r\\n
    {{ dto.expiryDate | date: 'dd/MM/yyyy' }}
    \\r\\n \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LIC_TITLE_E_LICENSES' | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n search\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_FIELD_NAME' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_GENDER' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n \\r\\n \\r\\n {{('_LABEL_MALE' ) | translate}}\\r\\n \\r\\n \\r\\n {{('_LABEL_FEMALE' ) | translate}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_FIELD_PHONE_NO' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'ISS_FIELD_PASSPORT_NUMBER' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}}{{ i !=\\r\\n item.titles.length - 1 ? ' // ' : ''}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n {{'LIC_FIELD_PERMIT_CLASS' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n \\r\\n {{IntLicensePermitClass[p]}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LIC_FIELD_LICENSE_NO' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_FROM' | translate}} {{'_LABEL_DATE2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_TO' | translate}} {{'_LABEL_DATE2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'ISS_LABEL_ISSUE_STATUS' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{'ISS_LABEL_ISSUE_STATUS_ISSUED' | translate}}\\r\\n {{'ISS_LABEL_ISSUE_STATUS_UNISSUED' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'ISS_LABEL_DOCUMENT_STATUS' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{'ISS_LABEL_DOCUMENT_STATUS_VALID' | translate}}\\r\\n {{'ISS_LABEL_DOCUMENT_STATUS_DAMAGED' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_PAYMENT_METHOD' | translate}}\\r\\n \\r\\n بطاقة مدى البنكية\\r\\n Card\\r\\n سداد بالفرع نقدى\\r\\n تقسيط مع تابى\\r\\n ApplePay\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LIC_LABEL_DURATION' | translate}}\\r\\n \\r\\n سنة\\r\\n سنتين\\r\\n ثلاث سنوات\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_ACTION_STATUS' | translate}}\\r\\n \\r\\n طلب معلق - بإنتظار حضور العميل والدفع بالفرع\\r\\n قيد الإجراء - بإنتظار موافقة النظام\\r\\n مرفوض - تم إعادة المبلغ لحساب العميل\\r\\n مقبول - تم إصدار الرخصة\\r\\n تم شحن الطلب\\r\\n نم استلام الطلب من الفرع\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LIC_LABEL_SHIPPING_STATUE' | translate}}\\r\\n \\r\\n شحن\\r\\n استلام فرع\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LIC_LABEL_ORDER_NUMBER' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'ISS_LABEL_ISSUE_DATE' | translate}} {{row.issued ? moment(row.issued).format('DD/MM/YYYY') : ''}}\\r\\n {{'_LABEL_SERIAL' | translate}}\\r\\n \\r\\n {{Math.abs(row.serial) ? Math.abs(row.serial) : 'N/A'}}\\r\\n close\\r\\n \\r\\n {{'_FIELD_NAME' | translate}}\\r\\n \\r\\n {{row.name}}\\r\\n \\r\\n {{'_LABEL_GENDER' | translate}}\\r\\n {{(row.gender == Gender.Male ? '_LABEL_MALE' : '_LABEL_FEMALE') | translate}}\\r\\n {{'_FIELD_PHONE_NO' | translate}}\\r\\n {{row.phoneNumber}}\\r\\n {{'ACC_FIELD_ACCOUNT_TITLE' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{row.accountTitles}}\\r\\n \\r\\n
    \\r\\n
    {{'ISS_FIELD_PASSPORT_NUMBER' | translate}}{{row.passportID}}{{'ISS_LABEL_PRINTINGS' | translate}}\\r\\n \\r\\n
    \\r\\n {{moment(d.created).format('DD/MM/YYYY HH:mm:ss')}}
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{moment(d.created).format('DD/MM/YYYY HH:mm:ss')}}
    \\r\\n
    \\r\\n
    \\r\\n
    0 ? l : ''\\\"\\r\\n placement=\\\"bottom\\\">\\r\\n ({{printObjectsCount(row.printLogs, PrintObject.IntLicenseCard)}})\\r\\n {{'LIC_LABEL_PRINT_OBJECT_LICENSE' | translate}}
    \\r\\n
    0 ? s : ''\\\"\\r\\n placement=\\\"bottom\\\">\\r\\n ({{printObjectsCount(row.printLogs, PrintObject.IntLicenseSticker)}})\\r\\n {{'LIC_LABEL_PRINT_OBJECT_STICKER' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    {{'_ACTION_STATUS' | translate}}\\r\\n \\r\\n {{ this.convertELicenseOrderStatusToLocale(row.eLicenseOrder?.status? row.eLicenseOrder.status: 0) }}\\r\\n {{'LIC_LABEL_ORDER_NUMBER' | translate}}\\r\\n \\r\\n {{ row.eLicenseOrder?.bill.couponDiscount}}\\r\\n {{'LIC_LABEL_DURATION' | translate}}\\r\\n \\r\\n {{ row.validityYears }} \\r\\n {{'LIC_LABEL_SHIPPING' | translate}}\\r\\n \\r\\n {{ row.eLicenseOrder?.bill.shippingFees }}\\r\\n {{'LIC_LABEL_TOTAL_PRICE' | translate}}\\r\\n \\r\\n {{ row.eLicenseOrder?.bill.total }}\\r\\n {{'LIC_LABEL_PAYMENT_METHOD' | translate}}\\r\\n {{ row.eLicenseOrder?.bill.trackingId }}\\r\\n {{'_ACTION_TOOLS' | translate}}\\r\\n \\r\\n \\r\\n pageview\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n file_copy\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n delete\\r\\n \\r\\n \\r\\n 0 && auth.currentUser.accountId == row.accountId && ((!row.revokeRequestId && auth.currentUser.isInRole(Role.INT_LICENSES_REVOKE_REQUESTS_CREATE)) || (row.revokeRequestId && auth.currentUser.isInRole(Role.INT_LICENSES_REVOKE_REQUESTS_DELETE)))\\\"\\r\\n class=\\\"text-primary\\\" (click)=\\\"tryRevoke(row)\\\"\\r\\n title=\\\"{{(!row.revokeRequestId ? '' : '_ACTION_REVOKE_REQUEST_CANCEL') | translate}} {{'_ACTION_REVOKE' | translate}}\\\">\\r\\n \\r\\n {{!row.revokeRequestId ? 'delete_forever' : 'restore_from_trash'}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\";","export default \"
    \\r\\n {{ 'LIC_TITLE_LICENSES' | translate }}\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n search\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_FIELD_NAME' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n {{'_LABEL_PAYMENT_METHOD' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n \\r\\n \\r\\n {{('_LABEL_MALE' ) | translate}}\\r\\n \\r\\n \\r\\n {{('_LABEL_FEMALE' ) | translate}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n {{'_LABEL_PAYMENT_METHOD' | translate}}\\r\\n \\r\\n بطاقة مدى البنكية\\r\\n card\\r\\n سداد بالفرع نقدى\\r\\n تقسيط مع تابى\\r\\n ApplePay\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_FIELD_PHONE_NO' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'ISS_FIELD_PASSPORT_NUMBER' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}}{{ i !=\\r\\n item.titles.length - 1 ? ' // ' : ''}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n {{'LIC_FIELD_PERMIT_CLASS' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n \\r\\n {{IntLicensePermitClass[p]}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LIC_FIELD_LICENSE_NO' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_FROM' | translate}} {{'_LABEL_DATE2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_TO' | translate}} {{'_LABEL_DATE2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'ISS_LABEL_ISSUE_STATUS' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{'ISS_LABEL_ISSUE_STATUS_ISSUED' | translate}}\\r\\n {{'ISS_LABEL_ISSUE_STATUS_UNISSUED' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'ISS_LABEL_DOCUMENT_STATUS' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{'ISS_LABEL_DOCUMENT_STATUS_VALID' | translate}}\\r\\n {{'ISS_LABEL_DOCUMENT_STATUS_DAMAGED' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'ISS_LABEL_ISSUE_DATE' | translate}} {{row.issued ? moment(row.issued).format('DD/MM/YYYY') : ''}}\\r\\n {{'_LABEL_SERIAL' | translate}}\\r\\n \\r\\n {{Math.abs(row.serial) ? Math.abs(row.serial) : 'N/A'}}\\r\\n close\\r\\n \\r\\n {{'_FIELD_NAME' | translate}}\\r\\n \\r\\n {{row.name}}\\r\\n \\r\\n {{'_LABEL_GENDER' | translate}}\\r\\n {{(row.gender == Gender.Male ? '_LABEL_MALE' : '_LABEL_FEMALE') | translate}}\\r\\n {{'_FIELD_PHONE_NO' | translate}}\\r\\n {{row.phoneNumber}}\\r\\n {{'ACC_FIELD_ACCOUNT_TITLE' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{row.accountTitles}}\\r\\n \\r\\n
    \\r\\n
    {{'ISS_FIELD_PASSPORT_NUMBER' | translate}}{{row.passportID}}{{'ISS_LABEL_PRINTINGS' | translate}}\\r\\n \\r\\n
    \\r\\n {{moment(d.created).format('DD/MM/YYYY HH:mm:ss')}}
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{moment(d.created).format('DD/MM/YYYY HH:mm:ss')}}
    \\r\\n
    \\r\\n
    \\r\\n
    0 ? l : ''\\\"\\r\\n placement=\\\"bottom\\\">\\r\\n ({{printObjectsCount(row.printLogs, PrintObject.IntLicenseCard)}})\\r\\n {{'LIC_LABEL_PRINT_OBJECT_LICENSE' | translate}}
    \\r\\n
    0 ? s : ''\\\"\\r\\n placement=\\\"bottom\\\">\\r\\n ({{printObjectsCount(row.printLogs, PrintObject.IntLicenseSticker)}})\\r\\n {{'LIC_LABEL_PRINT_OBJECT_STICKER' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n \\r\\n \\r\\n pageview\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n file_copy\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n delete\\r\\n \\r\\n \\r\\n 0 && auth.currentUser.accountId == row.accountId && ((!row.revokeRequestId && auth.currentUser.isInRole(Role.INT_LICENSES_REVOKE_REQUESTS_CREATE)) || (row.revokeRequestId && auth.currentUser.isInRole(Role.INT_LICENSES_REVOKE_REQUESTS_DELETE)))\\\"\\r\\n class=\\\"text-primary\\\" (click)=\\\"tryRevoke(row)\\\"\\r\\n title=\\\"{{(!row.revokeRequestId ? '' : '_ACTION_REVOKE_REQUEST_CANCEL') | translate}} {{'_ACTION_REVOKE' | translate}}\\\">\\r\\n \\r\\n {{!row.revokeRequestId ? 'delete_forever' : 'restore_from_trash'}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n
    \";","export default \"\\r\\n {{ (!updateMode ? '_ACTION_ADD' : '_ACTION_UPDATE') | translate}}\\r\\n {{'LIC_TITLE_LICENSE' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{ 'LIC_LABEL_EDITABLE_REMOVABLE' | translate}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n {{ 'LIC_LABEL_UNISSUED' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    0\\\" [hidden]=\\\"dto.isELicense\\\" class=\\\"form-group col-md-12\\\">\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{i + 1}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n {{'_ACTION_ENTER' | translate}} {{'LIC_FIELD_DATE_OF_BIRTH' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{'ISS_FIELD_RESIDENCE_COUNTRY' |\\r\\n translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'LIC_FIELD_BLOOD_GROUP' | translate}}\\r\\n \\r\\n \\r\\n {{BloodGroup[bg]}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_LABEL_MALE' | translate}}\\r\\n \\r\\n {{'_LABEL_FEMALE' | translate}} \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{'LIC_FIELD_LOCAL_LICENSE_SOURCE'\\r\\n | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'LIC_FIELD_PERMIT_CLASS' | translate}}\\r\\n \\r\\n \\r\\n {{IntLicensePermitClass[p]}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n portrait\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    0 || !isCamStreaming)\\\">\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LIC_LABEL_DATA_ACCURACY_ACKNOWLEDGMENT' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"\\r\\n {{'_ACTION_VIEW' | translate}} {{'LIC_TITLE_LICENSE' | translate}}\\r\\n {{dto?.isELicense ? '(طلب إلكتروني)' : ''}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{'LIC_LABEL_UNEDITABLE_IRREMOVABLE' | translate}}\\r\\n {{'LIC_LABEL_EDITABLE_REMOVABLE' | translate}}\\r\\n
    \\r\\n \\r\\n {{(isPrintable() ? 'LIC_LABEL_PRINTABLE' : 'LIC_LABEL_UNPRINTABLE') | translate}}\\r\\n
    \\r\\n \\r\\n {{(dto.issued ? 'LIC_LABEL_ISSUED' : 'LIC_LABEL_UNISSUED') | translate}}\\r\\n \\r\\n
    \\r\\n {{(!isExpired(dto.expiryDate) ? 'LIC_LABEL_VALID_UNTIL' : 'LIC_LABEL_EXPIRED_AT') | translate}}\\r\\n {{moment(dto.expiryDate).format(dateFormat)}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n chevron_{{ lang == Language.Arabic ? 'right' : 'left'}}\\r\\n \\r\\n Previous\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n chevron_{{ lang == Language.Arabic ? 'left' : 'right'}}\\r\\n \\r\\n Next\\r\\n \\r\\n \\r\\n
    \\r\\n
      \\r\\n
    1. \\r\\n \\r\\n \\r\\n
    2. \\r\\n
    3. \\r\\n \\r\\n \\r\\n
    4. \\r\\n
    \\r\\n 0 && dto.accountId == auth.currentUser.accountId && auth.currentUser.isInRole(Role.INT_LICENSES_UPDATE)\\\"\\r\\n class=\\\"col px-0\\\">\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n money \\r\\n {{'LIC_FIELD_LICENSE_NO' | translate}}:\\r\\n {{Math.abs(dto.serial) ? Math.abs(dto.serial) : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n perm_contact_calendar \\r\\n {{'_FIELD_NAME' | translate}}:\\r\\n {{dto.name}}\\r\\n
    • \\r\\n
    • \\r\\n date_range \\r\\n {{'LIC_FIELD_DATE_OF_BIRTH' | translate}}:\\r\\n {{moment(dto.dateOfBirth).format(dateFormat)}}\\r\\n
    • \\r\\n
    • \\r\\n outlined_flag \\r\\n {{'LKP_FIELD_NATIONALITY' | translate}}:\\r\\n {{dto.nationalityTitles[lang]}}\\r\\n
    • \\r\\n
    • \\r\\n where_to_vote \\r\\n {{'ISS_FIELD_RESIDENCE_COUNTRY' | translate}}:\\r\\n {{dto.countryTitles[lang]}}\\r\\n
    • \\r\\n
    • \\r\\n view_carousel \\r\\n {{'ISS_FIELD_PASSPORT_NUMBER' | translate}}:\\r\\n {{dto.passportID}}\\r\\n
    • \\r\\n
    • \\r\\n exposure \\r\\n {{'LIC_FIELD_BLOOD_GROUP' | translate}}:\\r\\n {{dto.bloodGroup}}\\r\\n
    • \\r\\n
    • \\r\\n wc \\r\\n {{'_LABEL_GENDER' | translate}}:\\r\\n {{(dto.gender == Gender.Male ? '_LABEL_MALE' : '_LABEL_FEMALE') | translate}} \\r\\n \\r\\n
    • \\r\\n
    • \\r\\n emoji_transportation \\r\\n {{'LIC_FIELD_LOCAL_LICENSE_SOURCE' | translate}}:\\r\\n {{dto.accordingToTitles[lang]}}\\r\\n
    • \\r\\n
    • \\r\\n commute \\r\\n {{'LIC_FIELD_PERMIT_CLASS' | translate}}:\\r\\n {{dto.permitClasses.join(', ')}}\\r\\n
    • \\r\\n
    • \\r\\n stay_current_portrait \\r\\n {{'_FIELD_PHONE_NO' | translate}}:\\r\\n {{dto.phoneNumber}}\\r\\n
    • \\r\\n
    • \\r\\n print \\r\\n {{'_LABEL_DOCUMENT_PRINT_TEMPLATE' | translate}}:\\r\\n \\r\\n {{ getTranslatedTemplateVersion(dto.documentTemplateVersion) }}\\r\\n \\r\\n \\r\\n
    • \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n
    {{'_TITLE_ATTACHMENTS' | translate}}
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{(i == 0 ? 'LIC_FIELD_PERSONAL_PHOTO' : (i == 1 ? 'LIC_FIELD_PASSPORT_PHOTO' :\\r\\n 'LIC_FIELD_LICENSE_PHOTO')) | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\\"file\\\"\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    تفاصيل الطلب
    \\r\\n
      \\r\\n
    • \\r\\n حالة الطلب:\\r\\n {{convertELicenseOrderStatusToLocale(dto.eLicenseOrder.status)}}\\r\\n
    • \\r\\n
    • \\r\\n عدد سنوات الإشتراك:\\r\\n {{dto.eLicenseOrder.plan.validityYears}}\\r\\n
    • \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    0\\\">\\r\\n
    \\r\\n
    السجل التاريخي لحركات إعادة الطلب
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    #التاريخالمرسلالتعليق
    {{i+1}}{{(interaction.created | date:'dd/MM/yyyy HH:mm:ss') + ' (GMT)'}}{{interaction.actor == 1 ? 'النظام' : 'مقدم الطلب'}}{{interaction.note}}
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    تفاصيل الفاتورة
    \\r\\n
    السعر : {{dto.eLicenseOrder.bill.currency}} {{dto.eLicenseOrder.bill.value}}
    الحالة : مدفوعة
    تاريخ الدفع : {{dto.eLicenseOrder.bill.paid ? (dto.eLicenseOrder.bill.paid |\\r\\n date:'dd/MM/yyyy HH:mm:ss') + ' (GMT)' :\\r\\n 'غير مدفوعة'}}
    \\r\\n\\r\\n
    \\r\\n
    تفاصيل الفاتورة
    \\r\\n
    السعر : {{dto.eLicenseOrder.bill.currency}} {{dto.eLicenseOrder.bill.value}}
    الحالة : مدفوعة
    تاريخ الدفع : {{dto.eLicenseOrder.bill.paid ? (dto.eLicenseOrder.bill.paid |\\r\\n date:'dd/MM/yyyy HH:mm:ss') + ' (GMT)' :\\r\\n 'غير مدفوعة'}}
    \\r\\n \\r\\n
    \\r\\n
    تفاصيل الفاتورة
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    رقم الطلب : {{dto.eLicenseOrder.bill.couponDiscount}}
    \\r\\n
    \\r\\n السعر : {{ dto.eLicenseOrder.bill.currency }}\\r\\n السعر : {{ dto.eLicenseOrder.bill.amount + ' '+ dto.eLicenseOrder.bill.currency }}\\r\\n
    \\r\\n
    \\r\\n قيمة الخصم : {{ dto.eLicenseOrder.bill.amountDiscount }}\\r\\n قيمة الخصم : {{ dto.eLicenseOrder.bill.amountDiscount + ' '+ dto.eLicenseOrder.bill.currency }}\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    تفاصيل السداد
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n اجمالى المطلوب سداده : {{dto.eLicenseOrder.bill.total + ' ' + dto.eLicenseOrder.bill.currency }}\\r\\n
    \\r\\n
    \\r\\n الحالة : {{dto.eLicenseOrder.bill.paid ? 'مدفوعة' : 'غير مدفوعة'}}\\r\\n
    \\r\\n
    \\r\\n وسيلة الدفع : {{dto.eLicenseOrder.bill.paid ? dto.eLicenseOrder.bill.trackingId : 'غير مدفوعة'}}\\r\\n
    \\r\\n
    \\r\\n تاريخ الدفع : {{dto.eLicenseOrder.bill.paid ? (dto.eLicenseOrder.bill.paid |\\r\\n date:'dd/MM/yyyy HH:mm:ss'):\\r\\n 'غير مدفوعة'}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    تفاصيل الاستلام
    \\r\\n
    {{dto.eLicenseOrder.shippingAddress.streetName}}
    \\r\\n \\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n
    تفاصيل الفاتورة
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    رقم الطلب : {{dto.eLicenseOrder.bill.couponDiscount}}
    \\r\\n
    \\r\\n السعر : {{ dto.eLicenseOrder.bill.currency }}\\r\\n السعر : {{ dto.eLicenseOrder.bill.amount + ' '+ dto.eLicenseOrder.bill.currency }}\\r\\n
    \\r\\n
    \\r\\n تكلفة الشحن : {{ dto.eLicenseOrder.bill.shippingFees }}\\r\\n تكلفة الشحن : {{ dto.eLicenseOrder.bill.shippingFees + ' '+ dto.eLicenseOrder.bill.currency }}\\r\\n
    \\r\\n
    \\r\\n قيمة الخصم : {{ dto.eLicenseOrder.bill.amountDiscount }}\\r\\n قيمة الخصم : {{ dto.eLicenseOrder.bill.amountDiscount + ' '+ dto.eLicenseOrder.bill.currency }}\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    تفاصيل السداد
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n اجمالى المطلوب سداده :\\r\\n \\r\\n {{ dto.eLicenseOrder.bill.total }}\\r\\n \\r\\n\\r\\n \\r\\n {{ dto.eLicenseOrder.bill.total + ' '+ dto.eLicenseOrder.bill.currency }}\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n الحالة : {{dto.eLicenseOrder.bill.paid ? 'مدفوعة' : 'غير مدفوعة'}}\\r\\n
    \\r\\n
    \\r\\n وسيلة الدفع : {{dto.eLicenseOrder.bill.paid ? dto.eLicenseOrder.bill.trackingId : 'غير مدفوعة'}}\\r\\n
    \\r\\n
    \\r\\n تاريخ الدفع : {{dto.eLicenseOrder.bill.paid ? (dto.eLicenseOrder.bill.paid |\\r\\n date:'dd/MM/yyyy HH:mm:ss'):\\r\\n 'غير مدفوعة'}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n
    ELicenseOrderStatus.DraftDocument\\\">\\r\\n
    \\r\\n
    \\r\\n
    تفاصيل الشحن
    \\r\\n
      \\r\\n \\r\\n
    • \\r\\n الدولة:\\r\\n {{dto.eLicenseOrder.shippingAddress.countryTitles[lang]}}\\r\\n
    • \\r\\n
    • \\r\\n المدينة:\\r\\n {{dto.eLicenseOrder.shippingAddress.cityName}}\\r\\n
    • \\r\\n
    • \\r\\n اسم الحي:\\r\\n {{dto.eLicenseOrder.shippingAddress.neighborhoodName}}\\r\\n
    • \\r\\n
    • \\r\\n اسم الشارع:\\r\\n {{dto.eLicenseOrder.shippingAddress.streetName}}\\r\\n
    • \\r\\n
    • \\r\\n رقم المبنى:\\r\\n {{dto.eLicenseOrder.shippingAddress.buildingNumber}}\\r\\n
    • \\r\\n
    • \\r\\n الرمز البريدي:\\r\\n {{dto.eLicenseOrder.shippingAddress.postalCode}}\\r\\n
    • \\r\\n
    • \\r\\n رقم الإتصال:\\r\\n {{dto.eLicenseOrder.shippingAddress.contactPhoneNumber}}\\r\\n
    • \\r\\n \\r\\n \\r\\n
    • \\r\\n شركة الشحن:\\r\\n {{dto.eLicenseOrder.shippingAddress.shippingVendor}}\\r\\n
    • \\r\\n
    • \\r\\n رقم تتبع الشحنة:\\r\\n {{dto.eLicenseOrder.shippingAddress.shippingVendorTrackingNumber}}\\r\\n
    • \\r\\n
    • \\r\\n رابط تتبع الشحنة:\\r\\n {{dto.eLicenseOrder.shippingAddress.shippingVendorTrackingUrl}}\\r\\n
    • \\r\\n
      \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n

    شحن الطلب

    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n

    \\r\\n قم بتعديل البيانات التالية اذا وجدت خطأ بالشحن\\r\\n

    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n
    ELicenseOrderStatus.DraftDocument\\\">\\r\\n
    \\r\\n

    تفاصيل العنوان بواسطة العميل

    \\r\\n
      \\r\\n \\r\\n
    • \\r\\n الدولة:\\r\\n {{dto.eLicenseOrder.shippingAddress.countryTitles[lang]}}\\r\\n
    • \\r\\n
    • \\r\\n المدينة:\\r\\n {{dto.eLicenseOrder.shippingAddress.cityName}}\\r\\n
    • \\r\\n
    • \\r\\n اسم الحي:\\r\\n {{dto.eLicenseOrder.shippingAddress.neighborhoodName}}\\r\\n
    • \\r\\n
    • \\r\\n اسم الشارع:\\r\\n {{dto.eLicenseOrder.shippingAddress.streetName}}\\r\\n
    • \\r\\n
    • \\r\\n رقم المبنى:\\r\\n {{dto.eLicenseOrder.shippingAddress.buildingNumber}}\\r\\n
    • \\r\\n
    • \\r\\n الرمز البريدي:\\r\\n {{dto.eLicenseOrder.shippingAddress.postalCode}}\\r\\n
    • \\r\\n
    • \\r\\n رقم الإتصال:\\r\\n {{dto.eLicenseOrder.shippingAddress.contactPhoneNumber}}\\r\\n
    • \\r\\n\\r\\n \\r\\n
    • \\r\\n شركة الشحن:\\r\\n {{dto.eLicenseOrder.shippingAddress.shippingVendor}}\\r\\n
    • \\r\\n
    • \\r\\n رقم تتبع الشحنة:\\r\\n {{dto.eLicenseOrder.shippingAddress.shippingVendorTrackingNumber}}\\r\\n
    • \\r\\n
    • \\r\\n رابط تتبع الشحنة:\\r\\n {{dto.eLicenseOrder.shippingAddress.shippingVendorTrackingUrl}}\\r\\n
    • \\r\\n
      \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \";","export default \"
    \\r\\n \\r\\n
    \\r\\n
    {{issueDate | date: 'dd/MM/yyyy'}}
    \\r\\n \\r\\n
    {{dto.customer.owner.name}}
    \\r\\n
    #
    \\r\\n
    #{{dto.serial}}#
    \\r\\n
    # {{dto.vehicle.plateID}} #
    \\r\\n
    {{dto.accountTitles}}
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    {{issueDate | date: 'dd/MM/yyyy'}}
    \\r\\n \\r\\n
    {{dto.customer.owner.name}}
    \\r\\n
    #
    \\r\\n
    #{{dto.serial}}#
    \\r\\n
    # {{dto.vehicle.plateID}} #
    \\r\\n
    {{dto.accountTitles}}
    \\r\\n \\r\\n
    \\r\\n
    \";","export default \"\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{cOwnerInfo && cOwnerInfo.length > 0 ? cOwnerInfo[0] : 'N/A'}}
    \\r\\n
    \\r\\n {{drivers && drivers.length > 0 ? ('سائق إضافي: ' + drivers[0]) : ''}}
    \\r\\n
    \\r\\n {{drivers && drivers.length > 1 ? ('سائق إضافي: ' + drivers[1]) : ''}}
    \\r\\n
    12 Months
    \\r\\n
    {{dto.expiryDate | date: 'dd/MM/yyyy'}}
    \\r\\n
    \\r\\n {{dto.vehicle.plateID ? dto.vehicle.plateID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.registrationCountryTitles ? (dto.vehicle.registrationCountryTitles | stringJoin) : 'N/A'}}\\r\\n
    \\r\\n
    {{dto.issued | date: 'dd/MM/yyyy'}}
    \\r\\n
    {{dto.accountTitles}}
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{dto.expiryDate | date: 'dd/MM/yyyy'}}
    \\r\\n
    \\r\\n {{dto.expiryDate | date: 'dd/MM/yyyy'}}
    \\r\\n
    \\r\\n {{dto.expiryDate | date: 'dd/MM/yyyy'}}
    \\r\\n\\r\\n
    \\r\\n {{cOwnerInfo && cOwnerInfo.length > 0 ? cOwnerInfo[0] : 'N/A'}}
    \\r\\n
    \\r\\n {{cOwnerInfo && cOwnerInfo.length > 0 ? cOwnerInfo[0] : 'N/A'}}
    \\r\\n
    \\r\\n {{drivers.join(' - ')}}
    \\r\\n
    \\r\\n {{drivers.join(' - ')}}
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.registrationCountryTitles ? (dto.vehicle.registrationCountryTitles | stringJoin) : 'N/A'}}\\r\\n
    \\r\\n
    \\r\\n {{_makeModel ? (_makeModel | stringJoin:'/') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.manufactureYear ? dto.vehicle.manufactureYear : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.chassisID ? dto.vehicle.chassisID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.engineID ? dto.vehicle.engineID : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.cylindersCount ? dto.vehicle.cylindersCount : 'N/A'}}
    \\r\\n
    \\r\\n {{_colors ? (_colors | stringJoin:'+') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.type ? (dto.vehicle.type.titles | stringJoin) : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.horsePower ? dto.vehicle.horsePower : empty}}
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.plateID ? dto.vehicle.plateID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.seatsCount ? dto.vehicle.seatsCount : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.spareTiresCount}}
    \\r\\n
    \\r\\n {{_options ? (_options | stringJoin:'+') : empty}}
    \\r\\n
    \\r\\n {{(vUpholsteryType | stringJoin)}}
    \\r\\n
    \\r\\n {{dto.vehicle.equipments ? dto.vehicle.equipments : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.extras ? dto.vehicle.extras : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.weightInKG ? dto.vehicle.weightInKG : 'N/A'}}
    \\r\\n
    \\r\\n {{(dto.vehicle.currency ? dto.vehicle.currency.abbreviation : '') + ' ' + (dto.vehicle.value ? dto.vehicle.value : 'N/A')}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.registrationCountryTitles ? (dto.vehicle.registrationCountryTitles | stringJoin) : 'N/A'}}\\r\\n
    \\r\\n
    \\r\\n {{_makeModel ? (_makeModel | stringJoin:'/') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.manufactureYear ? dto.vehicle.manufactureYear : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.chassisID ? dto.vehicle.chassisID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.engineID ? dto.vehicle.engineID : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.cylindersCount ? dto.vehicle.cylindersCount : 'N/A'}}
    \\r\\n
    \\r\\n {{_colors ? (_colors | stringJoin:'+') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.type ? (dto.vehicle.type.titles | stringJoin) : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.horsePower ? dto.vehicle.horsePower : empty}}
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.plateID ? dto.vehicle.plateID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.seatsCount ? dto.vehicle.seatsCount : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.spareTiresCount}}
    \\r\\n
    \\r\\n {{_options ? (_options | stringJoin:'+') : empty}}
    \\r\\n
    \\r\\n {{(vUpholsteryType | stringJoin)}}
    \\r\\n
    \\r\\n {{dto.vehicle.equipments ? dto.vehicle.equipments : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.extras ? dto.vehicle.extras : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.weightInKG ? dto.vehicle.weightInKG : 'N/A'}}
    \\r\\n
    \\r\\n {{(dto.vehicle.currency ? dto.vehicle.currency.abbreviation : '') + ' ' + (dto.vehicle.value ? dto.vehicle.value : 'N/A')}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{dto.vehicle.registrationCountryTitles ? (dto.vehicle.registrationCountryTitles | stringJoin) : 'N/A'}}\\r\\n
    \\r\\n
    \\r\\n {{_makeModel ? (_makeModel | stringJoin:'/') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.manufactureYear ? dto.vehicle.manufactureYear : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.chassisID ? dto.vehicle.chassisID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.engineID ? dto.vehicle.engineID : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.cylindersCount ? dto.vehicle.cylindersCount : 'N/A'}}
    \\r\\n
    \\r\\n {{_colors ? (_colors | stringJoin:'+') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.type ? (dto.vehicle.type.titles | stringJoin) : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.horsePower ? dto.vehicle.horsePower : empty}}
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.plateID ? dto.vehicle.plateID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.seatsCount ? dto.vehicle.seatsCount : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.spareTiresCount}}
    \\r\\n
    \\r\\n {{_options ? (_options | stringJoin:'+') : empty}}
    \\r\\n
    \\r\\n {{(vUpholsteryType | stringJoin)}}
    \\r\\n
    \\r\\n {{dto.vehicle.equipments ? dto.vehicle.equipments : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.extras ? dto.vehicle.extras : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.weightInKG ? dto.vehicle.weightInKG : 'N/A'}}
    \\r\\n
    \\r\\n {{(dto.vehicle.currency ? dto.vehicle.currency.abbreviation : '') + ' ' + (dto.vehicle.value ? dto.vehicle.value : 'N/A')}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{dto.expiryDate | date: 'dd'}}     {{dto.expiryDate | date: 'MM'}}   {{dto.expiryDate | date: 'yyyy'}}\\r\\n
    \\r\\n
    \\r\\n {{dto.issued | date: 'dd'}}   {{dto.issued | date: 'MM'}}   {{dto.issued | date: 'yyyy'}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n {{cOwnerInfo && cOwnerInfo.length > 0 ? cOwnerInfo[0] : 'N/A'}}
    \\r\\n
    \\r\\n {{drivers && drivers.length > 0 ? ('سائق إضافي: ' + drivers[0]) : ''}}
    \\r\\n
    \\r\\n {{drivers && drivers.length > 1 ? ('سائق إضافي: ' + drivers[1]) : ''}}
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.plateID ? dto.vehicle.plateID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.registrationCountryTitles ? (dto.vehicle.registrationCountryTitles | stringJoin) : 'N/A'}}\\r\\n
    \\r\\n
    {{dto.issued | date: 'dd/MM/yyyy'}}
    \\r\\n
    {{dto.accountTitles}}
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n {{dto.serial}}
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{dto.expiryDate | date: 'dd/MM/yyyy'}}
    \\r\\n
    \\r\\n {{dto.expiryDate | date: 'dd/MM/yyyy'}}
    \\r\\n
    \\r\\n {{dto.expiryDate | date: 'dd/MM/yyyy'}}
    \\r\\n\\r\\n
    \\r\\n {{cOwnerInfo && cOwnerInfo.length > 0 ? cOwnerInfo[0] : 'N/A'}}
    \\r\\n
    \\r\\n {{cOwnerInfo && cOwnerInfo.length > 0 ? cOwnerInfo[0] : 'N/A'}}
    \\r\\n
    \\r\\n {{drivers.join(' - ')}}
    \\r\\n
    \\r\\n {{drivers.join(' - ')}}
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.registrationCountryTitles ? (dto.vehicle.registrationCountryTitles | stringJoin) : 'N/A'}}\\r\\n
    \\r\\n
    \\r\\n {{_makeModel ? (_makeModel | stringJoin:'/') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.manufactureYear ? dto.vehicle.manufactureYear : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.chassisID ? dto.vehicle.chassisID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.engineID ? dto.vehicle.engineID : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.cylindersCount ? dto.vehicle.cylindersCount : 'N/A'}}
    \\r\\n
    \\r\\n {{_colors ? (_colors | stringJoin:'+') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.type ? (dto.vehicle.type.titles | stringJoin) : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.horsePower ? dto.vehicle.horsePower : empty}}
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.plateID ? dto.vehicle.plateID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.seatsCount ? dto.vehicle.seatsCount : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.spareTiresCount}}
    \\r\\n
    \\r\\n {{_options ? (_options | stringJoin:'+') : empty}}
    \\r\\n
    \\r\\n {{(vUpholsteryType | stringJoin)}}
    \\r\\n
    \\r\\n {{dto.vehicle.equipments ? dto.vehicle.equipments : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.extras ? dto.vehicle.extras : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.weightInKG ? dto.vehicle.weightInKG : 'N/A'}}
    \\r\\n
    \\r\\n {{(dto.vehicle.currency ? dto.vehicle.currency.abbreviation : '') + ' ' + (dto.vehicle.value ? dto.vehicle.value : 'N/A')}}\\r\\n
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.registrationCountryTitles ? (dto.vehicle.registrationCountryTitles | stringJoin) : 'N/A'}}\\r\\n
    \\r\\n
    \\r\\n {{_makeModel ? (_makeModel | stringJoin:'/') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.manufactureYear ? dto.vehicle.manufactureYear : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.chassisID ? dto.vehicle.chassisID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.engineID ? dto.vehicle.engineID : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.cylindersCount ? dto.vehicle.cylindersCount : 'N/A'}}
    \\r\\n
    \\r\\n {{_colors ? (_colors | stringJoin:'+') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.type ? (dto.vehicle.type.titles | stringJoin) : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.horsePower ? dto.vehicle.horsePower : empty}}
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.plateID ? dto.vehicle.plateID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.seatsCount ? dto.vehicle.seatsCount : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.spareTiresCount}}
    \\r\\n
    \\r\\n {{_options ? (_options | stringJoin:'+') : empty}}
    \\r\\n
    \\r\\n {{(vUpholsteryType | stringJoin)}}
    \\r\\n
    \\r\\n {{dto.vehicle.equipments ? dto.vehicle.equipments : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.extras ? dto.vehicle.extras : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.weightInKG ? dto.vehicle.weightInKG : 'N/A'}}
    \\r\\n
    \\r\\n {{(dto.vehicle.currency ? dto.vehicle.currency.abbreviation : '') + ' ' + (dto.vehicle.value ? dto.vehicle.value : 'N/A')}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{dto.vehicle.registrationCountryTitles ? (dto.vehicle.registrationCountryTitles | stringJoin) : 'N/A'}}\\r\\n
    \\r\\n
    \\r\\n {{_makeModel ? (_makeModel | stringJoin:'/') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.manufactureYear ? dto.vehicle.manufactureYear : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.chassisID ? dto.vehicle.chassisID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.engineID ? dto.vehicle.engineID : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.cylindersCount ? dto.vehicle.cylindersCount : 'N/A'}}
    \\r\\n
    \\r\\n {{_colors ? (_colors | stringJoin:'+') : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.type ? (dto.vehicle.type.titles | stringJoin) : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.horsePower ? dto.vehicle.horsePower : empty}}
    \\r\\n\\r\\n
    \\r\\n {{dto.vehicle.plateID ? dto.vehicle.plateID : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.seatsCount ? dto.vehicle.seatsCount : 'N/A'}}
    \\r\\n
    \\r\\n {{dto.vehicle.spareTiresCount}}
    \\r\\n
    \\r\\n {{_options ? (_options | stringJoin:'+') : empty}}
    \\r\\n
    \\r\\n {{(vUpholsteryType | stringJoin)}}
    \\r\\n
    \\r\\n {{dto.vehicle.equipments ? dto.vehicle.equipments : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.extras ? dto.vehicle.extras : empty}}
    \\r\\n
    \\r\\n {{dto.vehicle.weightInKG ? dto.vehicle.weightInKG : 'N/A'}}
    \\r\\n
    \\r\\n {{(dto.vehicle.currency ? dto.vehicle.currency.abbreviation : '') + ' ' + (dto.vehicle.value ? dto.vehicle.value : 'N/A')}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \";","export default \"\\r\\n {{ (!updateMode ? '_ACTION_ADD' : '_ACTION_UPDATE') | translate}} {{'TRP_TITLE_TRIPTIK' | translate}}\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n \\r\\n {{s.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n {{'TRP_LABEL_OWNER_DATA' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'ISS_FIELD_RESIDENCE_COUNTRY'\\r\\n | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'ISS_FIELD_PASSPORT_NUMBER' |\\r\\n translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_INT_PHONE_NUMBER'\\r\\n | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    {{'TRP_LABEL_ADDITIONAL_DRIVER' | translate}} ({{i+1}}):\\r\\n
    \\r\\n \\r\\n \\r\\n delete\\r\\n {{'_ACTION_REMOVE' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_IDENTITY_ID_OR_PASSPORT_ID'\\r\\n | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_LABEL_VEHICLE_DATA' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_REGISTRATION_COUNTRY'\\r\\n | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'TRP_FIELD_VEHICLE_TYPE' | translate}}\\r\\n \\r\\n {{t.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'TRP_FIELD_SEATS_COUNT' | translate}}\\r\\n \\r\\n \\r\\n {{c}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_MANUFACTURE_YEAR'\\r\\n | translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'TRP_FIELD_MANUFACTURE_YEAR' | translate}}\\r\\n \\r\\n {{c}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_CYLINDERS_COUNT' |\\r\\n translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'TRP_FIELD_CYLINDERS_COUNT' | translate}}\\r\\n \\r\\n \\r\\n {{c}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'TRP_FIELD_COLOR' | translate}}\\r\\n \\r\\n {{c.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{c.value}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n {{c.value}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_LABEL_NONE' | translate}}\\r\\n {{c}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{c.abbreviation}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n   \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_TITLE_ATTACHMENTS' | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n portrait\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n {{'TRP_TITLE_TRIPTIKS' | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n search\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_FIELD_NAME' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_FIELD_PHONE_NO' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_IDENTITY_ID_OR_PASSPORT_ID' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_FROM' | translate}} {{'_LABEL_DATE2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_TO' | translate}} {{'_LABEL_DATE2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_VEHICLE_TYPE' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{t.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_MANUFACTURE_YEAR' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{c}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_PLATE_ID' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_CHASSIS_ID' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}}{{ i != item.titles.length - 1 ?\\r\\n ' // ' : ''}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n \\r\\n {{s.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_TRIPTIK_SERIAL' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'ISS_LABEL_ISSUE_STATUS' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{'ISS_LABEL_ISSUE_STATUS_ISSUED' | translate}}\\r\\n {{'ISS_LABEL_ISSUE_STATUS_UNISSUED' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'ISS_LABEL_DOCUMENT_STATUS' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{'ISS_LABEL_DOCUMENT_STATUS_VALID' | translate}}\\r\\n {{'ISS_LABEL_DOCUMENT_STATUS_DAMAGED' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'ISS_LABEL_ISSUE_DATE' | translate}} {{row.issued ? moment(row.issued).format('DD/MM/YYYY') : ''}}\\r\\n {{'_LABEL_SERIAL' | translate}}\\r\\n \\r\\n {{Math.abs(row.serial)}}\\r\\n close\\r\\n \\r\\n {{'_FIELD_NAME' | translate}}\\r\\n \\r\\n {{row.cName}}\\r\\n \\r\\n {{'TRP_FIELD_PLATE_ID' | translate}}\\r\\n {{row.vPlateID}}\\r\\n \\r\\n {{'_FIELD_PHONE_NO' | translate}}\\r\\n {{row.cPhoneNumber}}\\r\\n {{'ACC_FIELD_ACCOUNT_TITLE' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{row.accountTitles}}\\r\\n \\r\\n
    \\r\\n
    {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}{{row.stockType.titles}}{{'_ACTION_TOOLS' | translate}}\\r\\n \\r\\n \\r\\n pageview\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n file_copy\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n edit\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n delete\\r\\n \\r\\n \\r\\n 0 && auth.currentUser.accountId == row.accountId && ((!row.revokeRequestId && auth.currentUser.isInRole(Role.TRIPTIKS_REVOKE_REQUESTS_CREATE)) || (row.revokeRequestId && auth.currentUser.isInRole(Role.TRIPTIKS_REVOKE_REQUESTS_DELETE)))\\\"\\r\\n class=\\\"text-primary\\\" (click)=\\\"tryRevoke(row)\\\"\\r\\n title=\\\"{{(!row.revokeRequestId ? '' : '_ACTION_REVOKE_REQUEST_CANCEL') | translate}} {{'_ACTION_REVOKE' | translate}}\\\">\\r\\n \\r\\n {{!row.revokeRequestId ? 'delete_forever' : 'restore_from_trash'}}\\r\\n \\r\\n \\r\\n \\r\\n lock\\r\\n \\r\\n
    \\r\\n \\r\\n
    \";","export default \"\\r\\n {{'_ACTION_VIEW' | translate}} {{'TRP_TITLE_TRIPTIK' | translate}}\\r\\n \\r\\n lock\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_LABEL_UNEDITABLE_IRREMOVABLE' | translate}}\\r\\n {{'TRP_LABEL_EDITABLE_REMOVABLE' | translate}}\\r\\n
    \\r\\n \\r\\n {{(isPrintable() ? 'TRP_LABEL_PRINTABLE' : 'TRP_LABEL_UNPRINTABLE') | translate}}\\r\\n
    \\r\\n \\r\\n {{(dto.issued ? 'TRP_LABEL_ISSUED' : 'TRP_LABEL_UNISSUED') | translate}}\\r\\n \\r\\n
    \\r\\n {{(!isExpired(dto.expiryDate) ? 'TRP_LABEL_VALID_UNTIL' : 'TRP_LABEL_EXPIRED_AT') | translate}}\\r\\n {{moment(dto.expiryDate).format(dateFormat)}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n file_copy\\r\\n {{'TRP_LABEL_DOCUMENT_DATA' | translate}}\\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}:\\r\\n {{dto.stockType ? dto.stockType.titles : ''}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_TRIPTIK_SERIAL' | translate}}:\\r\\n {{Math.abs(dto.serial)}}\\r\\n
    • \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n assignment_ind\\r\\n {{'TRP_LABEL_OWNER_DATA' | translate}}\\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n {{'_FIELD_NAME' | translate}}:\\r\\n {{dto.customer.owner.name ? dto.customer.owner.name : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'ISS_FIELD_RESIDENCE_COUNTRY' | translate}}:\\r\\n {{dto.customer.owner.residenceCountryTitles ? dto.customer.owner.residenceCountryTitles[lang] : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'LKP_FIELD_NATIONALITY' | translate}}:\\r\\n {{dto.customer.owner.nationalityId ? dto.customer.owner.nationalityTitles[lang] : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'_FIELD_ADDRESS' | translate}}:\\r\\n {{dto.customer.owner.address.item1 ? dto.customer.owner.address.item1 : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_IDENTITY_ID' | translate}}:\\r\\n {{dto.customer.owner.identityID ? dto.customer.owner.identityID : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'ISS_FIELD_PASSPORT_NUMBER' | translate}}:\\r\\n {{dto.customer.owner.passportID ? dto.customer.owner.passportID : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'_FIELD_PHONE_NO' | translate}}:\\r\\n {{dto.customer.owner.phoneNumber.item1 ? dto.customer.owner.phoneNumber.item1 : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_INT_ADDRESS' | translate}}:\\r\\n {{dto.customer.owner.address.item2 ? dto.customer.owner.address.item2 : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_INT_PHONE_NUMBER' | translate}}:\\r\\n {{dto.customer.owner.phoneNumber.item2 ? dto.customer.owner.phoneNumber.item2 : 'N/A'}}\\r\\n
    • \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n account_circle\\r\\n {{'TRP_LABEL_DRIVER_DATA' | translate: {param: i+1} }}\\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n {{'_FIELD_NAME' | translate}}:\\r\\n {{driver.name ? driver.name : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_IDENTITY_ID_OR_PASSPORT_ID' | translate}}:\\r\\n {{driver.passportIDorIdentityID ? driver.passportIDorIdentityID : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'_FIELD_ADDRESS' | translate}}:\\r\\n {{driver.address ? driver.address : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'_FIELD_PHONE_NO' | translate}}:\\r\\n {{driver.phoneNumber ? driver.phoneNumber : 'N/A'}}\\r\\n
    • \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n directions_car\\r\\n {{'TRP_LABEL_VEHICLE_DATA' | translate}}\\r\\n
    \\r\\n
      \\r\\n
    • \\r\\n {{'TRP_FIELD_PLATE_ID' | translate}}:\\r\\n {{dto.vehicle.plateID ? dto.vehicle.plateID : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_REGISTRATION_COUNTRY' | translate}}:\\r\\n {{dto.vehicle.registrationCountryTitles[lang]}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_VEHICLE_TYPE' | translate}}:\\r\\n {{dto.vehicle.type ? dto.vehicle.type.titles[lang] : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_MAKE' | translate}}:\\r\\n {{dto.vehicle.make ? dto.vehicle.make.titles[lang] : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_MODEL' | translate}}:\\r\\n {{dto.vehicle.model ? dto.vehicle.model.titles[lang] : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_MANUFACTURE_YEAR' | translate}}:\\r\\n {{dto.vehicle.manufactureYear ? dto.vehicle.manufactureYear : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_CYLINDERS_COUNT' | translate}}:\\r\\n {{dto.vehicle.cylindersCount ? dto.vehicle.cylindersCount : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_SEATS_COUNT' | translate}}:\\r\\n {{dto.vehicle.seatsCount ? dto.vehicle.seatsCount : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_WEIGHT_IN_KG' | translate}}:\\r\\n {{dto.vehicle.weightInKG ? dto.vehicle.weightInKG : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_HORSE_POWER' | translate}}:\\r\\n {{dto.vehicle.horsePower ? dto.vehicle.horsePower : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_ENGINE_ID' | translate}}:\\r\\n {{dto.vehicle.engineID ? dto.vehicle.engineID : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_CHASSIS_ID' | translate}}:\\r\\n {{dto.vehicle.chassisID ? dto.vehicle.chassisID : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_COLOR' | translate}}:\\r\\n {{dto.vehicle.colors ? (dto.vehicle.colors | arrayMap:'titles':lang | stringJoin:'+') : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_UPHOLSTERY_TYPE' | translate}}:\\r\\n {{vUpholsteryType ? vUpholsteryType[lang] : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_SPARE_TIRES_COUNT' | translate}}:\\r\\n {{dto.vehicle.spareTiresCount}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_OPTIONS' | translate}}:\\r\\n {{vOptions ? (vOptions | arrayMap:'titles':lang | stringJoin:'+') : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_EQUIPMENTS' | translate}}:\\r\\n {{dto.vehicle.equipments ? dto.vehicle.equipments : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_EXTRAS' | translate}}:\\r\\n {{dto.vehicle.extras ? dto.vehicle.extras : 'N/A'}}\\r\\n
    • \\r\\n
    • \\r\\n {{'TRP_FIELD_VALUE' | translate}}:\\r\\n {{dto.vehicle.value ? dto.vehicle.value : 'N/A'}}\\r\\n {{dto.vehicle.value && dto.vehicle.currency ? dto.vehicle.currency.titles : ''}}\\r\\n
    • \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n attach_file\\r\\n {{'_TITLE_ATTACHMENTS' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{att.parent | translate}}\\r\\n {{att.title | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\\"license-photo\\\"\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n print\\r\\n {{'_ACTION_PRINT' | translate}} -\\r\\n  {{('_LABEL_TEMPLATE_' + dto.documentTemplateVersion) | translate }}\\r\\n \\r\\n keyboard_arrow_down\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n chevron_{{ lang == Language.Arabic ? 'right' : 'left'}}\\r\\n \\r\\n Previous\\r\\n \\r\\n \\r\\n \\r\\n chevron_{{ lang == Language.Arabic ? 'left' : 'right'}}\\r\\n \\r\\n Next\\r\\n \\r\\n
    \\r\\n \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\";","export default \"
    \\r\\n {{'LKP_TITLE_ACCOUNT_STATUSES' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n {{'LKP_FIELD_ACCOUNT_STATUS' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[langIndex]}}\\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LKP_TITLE_ACCOUNT_TYPES' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n {{'ACC_FIELD_PARENT_ACCOUNT' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{at.titles[langIndex]}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{row.parentTitles.length > 0 ? row.parentTitles[langIndex] : 'N/A' }}\\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_ACCOUNT_TYPE' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[langIndex]}}\\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LKP_TITLE_CITIES' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'LKP_FIELD_COUNTRY' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{row.countryTitles[lang]}}\\r\\n
    \\r\\n
    {{'LKP_FIELD_CITY' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[lang]}}\\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LKP_TITLE_COUNTRIES' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n {{'LKP_FIELD_ABBREVIATION' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{row.abbreviation}}\\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_DIALING_CODE' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{row.dialingCode}}\\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_COUNTRY' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.countryTitles[langIndex]}}\\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_NATIONALITY' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.nationalityTitles[langIndex]}}\\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LKP_TITLE_CURRENCIES' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n {{'LKP_FIELD_ABBREVIATION' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{row.abbreviation}}\\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_CURRENCY' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[lang]}}\\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LKP_TITLE_CUSTOMS_PORTS' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'LKP_FIELD_COUNTRY' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{row.countryTitles[lang]}}\\r\\n
    \\r\\n
    {{'LKP_FIELD_CUSTOMS_PORT' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[lang]}}\\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LKP_TITLE_PURSUING_ZONES' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'LKP_FIELD_PURSUING_ZONE' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[langIndex]}}\\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \";","export default \"
    \\r\\n {{'LKP_TITLE_STOCK_TYPES' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n {{'LKP_FIELD_STOCK_TYPE' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[langIndex]}}\\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_DOCUMENT_TYPE' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'LKP_FIELD_DOCUMENT_TYPE' | translate}}\\r\\n \\r\\n {{'LIC_TITLE_LICENSE2' | translate}}\\r\\n {{'TRP_TITLE_TRIPTIK' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{(row.documentType == 1 ? 'LIC_TITLE_LICENSE2' : 'TRP_TITLE_TRIPTIK') | translate}}\\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_RANGE_MIN' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{row.rangeMin}}\\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_RANGE_MAX' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{row.rangeMax}}\\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_IS_URO' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{(row.isUnifiedRelease ? '_ACTION_YES' : '_ACTION_NO') | translate}}\\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_HEX_COLOR' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LKP_TITLE_VEHICLE_COLORS' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'LKP_FIELD_VEHICLE_COLOR' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[langIndex]}}\\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LKP_TITLE_VEHICLE_MAKES' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'LKP_FIELD_VEHICLE_MAKE' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[langIndex]}}\\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LKP_TITLE_VEHICLE_MODELS' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'LKP_FIELD_VEHICLE_MAKE' |\\r\\n translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n {{row.makeTitles[lang]}}\\r\\n
    \\r\\n
    {{'LKP_FIELD_VEHICLE_MODEL' |\\r\\n translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[lang]}}\\r\\n
    \\r\\n
    {{'TRP_FIELD_TRIPTIK_TYPE' |\\r\\n translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n \\r\\n {{st.titles[lang]}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'LKP_TITLE_VEHICLE_TYPES' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'LKP_FIELD_VEHICLE_TYPE' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{row.titles[lang]}}\\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"\\r\\n {{'SEC_TITLE_USERS_ACCOUNTS' | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n control_point\\r\\n \\r\\n {{'_ACTION_ADD' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}}{{ i != item.titles.length - 1 ? ' // ' : ''}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'_FIELD_NAME' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    {{'SEC_FIELD_USERNAME' | translate}} {{row.username}} {{'_FIELD_EMAIL' | translate}} {{row.email}} {{'_FIELD_PHONE_NO' | translate}} {{row.phoneNumber}} {{'_LABEL_CREATION_DATE' | translate}} {{row.created | date: 'dd/MM/yyyy'}} {{'SEC_FIELD_PERMISSIONS' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n security\\r\\n \\r\\n \\r\\n {{group}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    {{'SEC_FIELD_ACTIVE' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    {{'_ACTION_TOOLS' | translate}} \\r\\n \\r\\n
    \\r\\n \\r\\n
    \";","export default \"{{(!userId ? '_ACTION_ADD' : '_ACTION_UPDATE') | translate }}\\r\\n {{'SEC_LINK_USER_ACCOUNT' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_FIELD_NAME' | translate}}\\r\\n {{'_AR' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_FIELD_NAME' | translate}}\\r\\n {{'_EN' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_FIELD_PHONE_NO' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'SEC_FIELD_USERNAME' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'SEC_FIELD_PERMISSIONS' | translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'SEC_FIELD_PERMISSIONS' | translate}}\\r\\n \\r\\n {{group.titles[lang]}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'SEC_FIELD_PASSWORD' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'SEC_FIELD_PASSWORD_CONFIRM' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n {{'TRP_CLM_TITLE_TRIPTIK_CLAIMS_COUNTRIES' | translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'TRP_CLM_TITLE_TRIPTIK_CLAIMS_COUNTRIES' | translate}}\\r\\n \\r\\n {{c.titles[lang]}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"\\r\\n {{'SEC_TITLE_SECURITY_GROUPS' | translate}}\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'SEC_FIELD_AVAILABLE_GROUPS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n lock\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n 0\\\" (change)=\\\"$event ? colToggle(action.id) : null\\\"\\r\\n [checked]=\\\"selections[i-1].hasValue() && isColSelected(action.id)\\\" [disabled]=\\\"!formEnabled\\\"\\r\\n [indeterminate]=\\\"selections[i-1].hasValue() && !isColSelected(action.id)\\\">\\r\\n \\r\\n {{action.titles[lang]}}\\r\\n \\r\\n {{row.securityObject.titles[lang]}}\\r\\n \\r\\n \\r\\n 0 && row.actions[getActionIndex(action.id)] != 0\\\"\\r\\n (click)=\\\"$event.stopPropagation()\\\"\\r\\n \\r\\n (change)=\\\"$event ? cellToggle(row, action.id, (displayedColumns.length - 1) * _i + i - 1) : null\\\"\\r\\n [formControlName]=\\\"(displayedColumns.length - 1) * _i + i - 1\\\" [value]=\\\"row.securityObject.id\\\"\\r\\n [checked]=\\\"isRowSelected(row, action.id)\\\">\\r\\n \\r\\n 0 && row.actions[getActionIndex(action.id)] == 0\\\">N/A\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"{{'SEC_TITLE_USERS_GROUPS' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n 0\\\" (change)=\\\"$event ? colToggle(group.id) : null\\\"\\r\\n [disabled]=\\\"!auth.currentUser.isInRole(Role.USERS_SECURITY_GROUPS_UPDATE)\\\"\\r\\n [checked]=\\\"selections[i-1].hasValue() && isColSelected(group.id)\\\"\\r\\n [indeterminate]=\\\"selections[i-1].hasValue() && !isColSelected(group.id)\\\">\\r\\n \\r\\n {{group.titles}}\\r\\n \\r\\n 0\\\"\\r\\n (click)=\\\"$event.stopPropagation()\\\"\\r\\n (change)=\\\"$event ? cellToggle(row, group.id, (displayedColumns.length - 1) * _i + i - 1) : null\\\"\\r\\n [formControlName]=\\\"(displayedColumns.length - 1) * _i + i - 1\\\" [value]=\\\"row.user.id\\\"\\r\\n [checked]=\\\"isRowSelected(row, group.id)\\\">\\r\\n \\r\\n {{row.user.names}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"\\r\\n\\r\\n\";","export default \"\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'STK_FIELD_RANGE_START' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ (transactionDetails.operation == 'STK_TITLE_UNDO' ? 'STK_FIELD_UNDONE_QUANTITY' : 'STK_FIELD_ADDED_QUANTITY') | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{'STK_FIELD_RANGE_END' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\";","export default \"
    \\r\\n
    \\r\\n {{'STK_LABEL_OPERATION' | translate}} {{details.operation | translate}}\\r\\n \\r\\n {{'_LABEL_FROM' | translate}} {{'ACC_LABEL_ACCOUNT' | translate}} {{details.fromAccount}}\\r\\n {{'_LABEL_TO' | translate}} {{'ACC_LABEL_ACCOUNT' | translate}} {{details.toAccount}}\\r\\n \\r\\n \\r\\n {{'STK_LABEL_QUANTITY' | translate}} ({{details.count}}) {{details.stockType}}\\r\\n {{'STK_LABEL_FROM_SERIAL' | translate}} {{details.fromRange}}\\r\\n {{'STK_LABEL_TO_SERIAL' | translate}} {{details.toRange}} \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n \\r\\n
    {{transaction.created | date: 'dd/MM/yyyy'}}\\r\\n
    \\r\\n
    {{transaction.toAccountTitles}}
    \\r\\n
    1
    \\r\\n
    #{{transaction.toRange - transaction.fromRange + 1 }}#\\r\\n
    \\r\\n\\r\\n
    #1#
    \\r\\n
    {{transaction.created | date: 'dd/MM/yyyy'}}
    \\r\\n
    {{transaction.stockType.titles}}
    \\r\\n
    #{{transaction.fromRange}}#
    \\r\\n
    #{{transaction.toRange}}#
    \\r\\n
    #{{transaction.toRange - transaction.fromRange + 1 }}#
    \\r\\n\\r\\n
    //////
    \\r\\n
    //////
    \\r\\n
    //////
    \\r\\n
    //////
    \\r\\n
    //////
    \\r\\n
    //////
    \\r\\n\\r\\n
    //////
    \\r\\n
    //////
    \\r\\n
    //////
    \\r\\n
    //////
    \\r\\n
    //////
    \\r\\n
    //////
    \\r\\n
    \";","export default \"\\r\\n {{(populate ? 'STK_TITLE_POPULATE' : 'STK_TITLE_DEPOPULATE') | translate}} info\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'LKP_FIELD_STOCK_TYPE' | translate}}\\r\\n \\r\\n {{st.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'_LABEL_DOCUMENT_PRINT_TEMPLATE' | translate}}\\r\\n \\r\\n {{'_LABEL_TEMPLATE_1' | translate}}\\r\\n {{'_LABEL_TEMPLATE_2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'STK_FIELD_ADDED_QUANTITY' |\\r\\n translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'STK_FIELD_DEPOPULATE_REASON' | translate}}\\r\\n \\r\\n {{r.titles[lang]}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n \\r\\n {{(!systemView ? 'STK_TITLE_AVAILABLE_STOCKS' : 'STK_TITLE_AVAILABLE_SYSTEM_STOCKS') | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{title}}{{ i !=\\r\\n item.titles.length - 1 ? ' // ' : ''}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n {{'STK_LABEL_STOCK_STATUS' | translate}}\\r\\n \\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{'_FIELD_AVAILABLE' | translate}}\\r\\n {{'_FIELD_UNAVAILABLE' | translate}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n\\r\\n \\r\\n
    \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0)\\\">\\r\\n \\r\\n \\r\\n
    {{'_LABEL_FROM' | translate}} {{'_LABEL_SERIAL' | translate}} {{Math.abs(stock[0])}} {{'_LABEL_TOTAL' | translate}}{{'_LABEL_TO' | translate}} {{'_LABEL_SERIAL' | translate}} {{Math.abs(stock.length > 1 ? stock[1] : stock[0])}} \\r\\n {{'_FIELD_AVAILABLE' | translate}}\\r\\n \\r\\n {{stock[0] > 0 ? 'radio_button_checked' :\\r\\n 'radio_button_unchecked'}}\\r\\n {{sumAvailableStocksFilter(stockTypeStocks.availableStock, 1)}}\\r\\n {{'_FIELD_UNAVAILABLE' | translate}}\\r\\n \\r\\n 0\\\">{{stock[0] < 0 ? 'radio_button_checked'\\r\\n : 'radio_button_unchecked' }}\\r\\n {{sumAvailableStocksFilter(stockTypeStocks.availableStock, -1)}}\\r\\n {{ (systemView ? 'STK_LABEL_QUANTITY': 'STK_LABEL_AVAILABLE_QUANTITY') | translate}} {{stock.length > 1 ? Math.abs(stock[1]) - Math.abs(stock[0]) + 1 : 1}}\\r\\n {{sumAvailableStocks(stockTypeStocks.availableStock)}}
    \\r\\n \\r\\n

    {{'STK_MESSAGE_NO_STOCK_AVAILABLE' | translate}}

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n {{'STK_TITLE_STOCKS_TOTALS' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}}{{ i != item.titles.length - 1 ? ' // ' : ''}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n
    \\r\\n {{stockType.titles}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'ACC_FIELD_ACCOUNT_TITLE' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{row.accountTitles}}\\r\\n \\r\\n
    \\r\\n
    {{'STK_LABEL_RECEIVED' | translate}}\\r\\n
      \\r\\n
    • \\r\\n \\r\\n {{stockTypeData.received}}\\r\\n
    • \\r\\n
    \\r\\n
    {{'STK_LABEL_TRANSFERED' | translate}}\\r\\n
      \\r\\n
    • \\r\\n \\r\\n {{stockTypeData.transfered}}\\r\\n
    • \\r\\n
    \\r\\n
    {{'STK_LABEL_ISSUED' | translate}}\\r\\n
      \\r\\n
    • \\r\\n \\r\\n {{stockTypeData.issued}}\\r\\n
    • \\r\\n
    \\r\\n
    {{'STK_LABEL_RETURNED' | translate}}\\r\\n
      \\r\\n
    • \\r\\n \\r\\n {{stockTypeData.returned}}\\r\\n
    • \\r\\n
    \\r\\n
    {{'STK_LABEL_TRANSFERED_UNDONE' | translate}}\\r\\n
      \\r\\n
    • \\r\\n \\r\\n {{stockTypeData.transferedUndone}}\\r\\n
    • \\r\\n
    \\r\\n
    {{'STK_LABEL_REMAINING' | translate}}\\r\\n
      \\r\\n
    • \\r\\n \\r\\n {{stockTypeData.remainingStocks}}\\r\\n
    • \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \";","export default \"{{'STK_TITLE_TRANSACT' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{a.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_STOCK_TYPE' | translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'LKP_FIELD_STOCK_TYPE' | translate}}\\r\\n \\r\\n \\r\\n {{st.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'STK_FIELD_RANGE' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n 0 || availableStock.singles.length > 0)\\\">\\r\\n {{'_ACTION_CHOOSE' | translate}}{{'STK_FIELD_RANGE' | translate}}\\r\\n \\r\\n \\r\\n {{'STK_MESSAGE_NO_STOCK_AVAILABLE' | translate}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n 0\\\"\\r\\n label=\\\"{{'STK_LABEL_RANGES' | translate}}\\\">\\r\\n \\r\\n {{range[0]}} - {{range[1]}}\\r\\n \\r\\n \\r\\n 0\\\"\\r\\n label=\\\"{{'STK_LABEL_SINGLES' | translate}}\\\">\\r\\n \\r\\n {{serial[0]}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 1\\\">\\r\\n {{'STK_LABEL_AVAILABLE_QUANTITY' | translate}}: {{selectedStock[1] - selectedStock[0] + 1}}\\r\\n {{stockType.titles}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n {{'STK_TITLE_TRANSACTIONS' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n search\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'STK_LABEL_FROM_SERIAL' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'STK_LABEL_TO_SERIAL' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LKP_FIELD_STOCK_TYPE' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n \\r\\n {{t.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n {{'STK_LABEL_TRANSACTION_TYPE' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n \\r\\n {{t.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n \\r\\n {{'_LABEL_FROM' | translate}} {{'_LABEL_DATE2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_TO' | translate}} {{'_LABEL_DATE2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{title}}{{ i != item.titles.length - 1 ? ' // ' : ''}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'_LABEL_DATE' | translate}} {{moment(row.created).format('DD/MM/YYYY')}}{{'_LABEL_FROM' | translate}}\\r\\n {{'ACC_LABEL_ACCOUNT' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{row.fromAccountTitles ? row.fromAccountTitles \\r\\n : (row.transactionType == TransactionType.Populate ? 'STK_LABEL_PRINTING_PRESS'\\r\\n : 'STK_LABEL_PRIMARY_STOCK') | translate}}\\r\\n \\r\\n
    \\r\\n
    {{'_LABEL_TO' | translate}}\\r\\n {{'ACC_LABEL_ACCOUNT' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{row.toAccountTitles ? row.toAccountTitles \\r\\n : (row.transactionType == TransactionType.Depopulate ? 'STK_LABEL_PRINTING_PRESS'\\r\\n : 'STK_LABEL_PRIMARY_STOCK') | translate}}\\r\\n \\r\\n
    \\r\\n
    {{'_LABEL_FROM' | translate}}\\r\\n {{'_LABEL_SERIAL' | translate}}{{row.fromRange}}{{'_LABEL_TO' | translate}}\\r\\n {{'_LABEL_SERIAL' | translate}}{{row.toRange}}\\r\\n {{'STK_LABEL_QUANTITY' | translate}}\\r\\n {{row.toRange - row.fromRange + 1}}{{'STK_LABEL_TRANSACTION_TYPE' | translate}}{{transactionTypeLocale(row.transactionType) | translate}}{{'LKP_FIELD_STOCK_TYPE' | translate}}{{row.stockType.titles}}{{'_ACTION_PRINT' | translate}}\\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n\\r\\n\\r\\n\";","export default \"
    \\r\\n {{'STK_TITLE_UNDO_REQUESTS' | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{'LKP_FIELD_STOCK_TYPE' | translate}}\\r\\n \\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{st.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n search\\r\\n \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
    \\r\\n\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'_LABEL_DATE' | translate}}{{moment(row.created).format('DD/MM/YYYY')}}{{'_LABEL_FROM' | translate}} {{'ACC_LABEL_ACCOUNT' |\\r\\n translate}} {{row.fromAccountTitles}} {{'_LABEL_TO' | translate}} {{'ACC_LABEL_ACCOUNT' |\\r\\n translate}}\\r\\n {{row.toAccountTitles ? row.toAccountTitles : ('STK_LABEL_PRIMARY_STOCK' | translate) }}\\r\\n {{'SEC_FIELD_USERNAME' | translate}} {{row.username ? row.username : '-'}} {{'_FIELD_REASON' | translate}} {{row.reason ? row.reason : '-'}} {{'LKP_FIELD_STOCK_TYPE' | translate}}{{row.stockType.titles}}{{'STK_FIELD_RANGE' | translate}}{{row.fromRange}} - {{row.toRange}} ({{row.toRange - row.fromRange + 1}}){{'STK_LABEL_UNDO_REQUEST_STATUS' | translate}}\\r\\n \\r\\n {{undoRequestStatusLocale(row.undoRequestStatus) | translate}}\\r\\n \\r\\n {{'_ACTION_TOOLS' | translate}}\\r\\n -\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \";","export default \"\\r\\n {{(!auth.currentUser.isSystemAccount ? 'STK_TITLE_UNDO_REQUEST' : 'STK_TITLE_UNDO') | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_STOCK_TYPE' | translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'LKP_FIELD_STOCK_TYPE' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{st.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'STK_FIELD_RANGE' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n 0 || availableStock.singles.length > 0)\\\">\\r\\n {{'_ACTION_CHOOSE' | translate }}{{'STK_FIELD_RANGE' | translate}}\\r\\n \\r\\n \\r\\n {{'STK_MESSAGE_NO_STOCK_AVAILABLE' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0\\\"\\r\\n label=\\\"{{'STK_LABEL_RANGES' | translate}}\\\">\\r\\n \\r\\n {{range[0]}} - {{range[1]}}\\r\\n \\r\\n \\r\\n 0\\\"\\r\\n label=\\\"{{'STK_LABEL_SINGLES' | translate}}\\\">\\r\\n \\r\\n {{serial[0]}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 1\\\">\\r\\n {{'STK_LABEL_AVAILABLE_QUANTITY' | translate}} {{selectedStock[1] - selectedStock[0] + 1}}\\r\\n {{stockType.titles}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'STK_FIELD_UNDO_REQUEST_REASON' | translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'STK_FIELD_UNDO_REQUEST_REASON' | translate}}\\r\\n \\r\\n \\r\\n {{r.titles[lang]}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    0\\\">\\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"\\r\\n {{ (!updateMode ? '_ACTION_ADD' : '_ACTION_UPDATE') | translate}}\\r\\n {{'TRP_CLM_TITLE_TRIPTIK_CLAIM' | translate}}\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_CLM_FIELD_ENTRANCE_ID' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_CLM_FIELD_ENTRANCE_DATE' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n {{'_ACTION_ENTER' | translate}} {{'TRP_CLM_FIELD_ENTRANCE_DATE' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_TRIPTIK_SERIAL' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n \\r\\n \\r\\n {{s.titles}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_COUNTRY' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_CUSTOMS_PORT' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'LKP_FIELD_PURSUING_ZONE' | translate}}\\r\\n
    \\r\\n \\r\\n {{'_ACTION_CHOOSE' | translate}} {{'LKP_FIELD_PURSUING_ZONE' | translate}}\\r\\n \\r\\n \\r\\n {{p.titles}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_CLM_FIELD_VALUE' | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n {{c.abbreviation}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n   \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_CLM_FIELD_NAME' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_FIELD_PHONE_NO' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_FIELD_ADDRESS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n {{'_TITLE_ATTACHMENTS' | translate}} -\\r\\n {{'TRP_CLM_TITLE_TRIPTIK_CLAIM' | translate}}: {{tripTikClaimEntranceID}}\\r\\n
    \\r\\n
    \\r\\n 0\\\" mat-table [dataSource]=\\\"dataSource\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
    {{'_LABEL_CREATION_DATE' | translate}} {{row.created | date: 'dd/MM/yyyy HH:mm'}} {{'SEC_FIELD_USERNAME' | translate}} {{row.createdBy}} {{'_LABEL_ATTACHMENT_NAME' | translate}} {{row.name}} {{'_ACTION_TOOLS' | translate}}\\r\\n \\r\\n \\r\\n save_alt\\r\\n \\r\\n
    \\r\\n
    \\r\\n

    {{'_MESSAGE_NO_CONTENT' | translate}}

    \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n {{'TRP_CLM_TITLE_LOGS' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n search\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_FIELD_ENTRANCE_ID' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_FIELD_REGISTRATION_DATE' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_FIELD_ENTRANCE_DATE' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_FIELD_NAME' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}}{{ i != item.titles.length - 1 ? ' // ' : ''}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_TRIPTIK_SERIAL' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n \\r\\n {{s.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_PLATE_ID' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LKP_FIELD_CUSTOMS_PORT' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n \\r\\n {{p.titles + ' / ' + p.countryTitles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LKP_FIELD_PURSUING_ZONE' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{p.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_FIELD_LATEST_STATUS' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{s.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n {{'_LABEL_DATE' | translate}}\\r\\n {{moment(row.created).format('DD/MM/YYYY')}} {{'SEC_FIELD_USERNAME' | translate}} {{row.createdBy}}\\r\\n {{'TRP_CLM_FIELD_NAME' | translate}}\\r\\n {{row.holderName}}\\r\\n {{'TRP_FIELD_TRIPTIK_SERIAL' | translate}}\\r\\n {{row.serial}}\\r\\n {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n {{row.stockType.titles}}\\r\\n {{'ISS_LABEL_ISSUE_DATE' | translate}}\\r\\n {{row.issued | date: 'dd/MM/yyyy'}}{{'LKP_FIELD_CUSTOMS_PORT' | translate}}\\r\\n {{row.customsPort ? row.customsPort.titles + ' / ' + row.customsPort.countryTitles : 'N/A'}}{{'TRP_CLM_FIELD_LATEST_STATUS' | translate}}{{row.status ? row.status.parentTitles + ' / ' + row.status.titles : 'N/A'}}{{'_LABEL_DETAILS' | translate}}{{row.note}}
    \\r\\n \\r\\n
    \";","export default \"
    \\r\\n {{'TRP_CLM_TITLE_TRIPTIK_CLAIMS' | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n\\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n search\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_FIELD_ENTRANCE_ID' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_FROM' | translate}} {{'_LABEL_DATE2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'_LABEL_TO' | translate}} {{'_LABEL_DATE2' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_FIELD_NAME' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{title}}{{ i != item.titles.length - 1 ? ' // ' : ''}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_TRIPTIK_SERIAL' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{s.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_FIELD_PLATE_ID' | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_LABEL_CLAIM_COUNTRY' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{c.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LKP_FIELD_CUSTOMS_PORT' | translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{searchForm.get('countryId').value && searchForm.get('countryId').value.length > 1 ? (p.titles + ' / ' + p.countryTitles) : p.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_LABEL_CLAIM_STATUS' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{s.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_LABEL_CLAIM_STATUS_DESC' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{s.titles}}\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n {{'LKP_FIELD_PURSUING_ZONE' | translate}}\\r\\n \\r\\n {{'_LABEL_ALL' | translate}}\\r\\n {{p.titles}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    {{'TRP_CLM_FIELD_ENTRANCE_ID' | translate}} {{row.entranceID}}\\r\\n {{'TRP_CLM_FIELD_ENTRANCE_DATE' | translate}}\\r\\n {{row.entranceDate | date:'dd/MM/yyyy'}}\\r\\n {{'TRP_CLM_FIELD_NAME' | translate}}\\r\\n {{row.holderName}}\\r\\n {{'ACC_FIELD_ACCOUNT_TITLE' | translate}}\\r\\n {{row.accountTitles ? row.accountTitles : 'N/A' }}\\r\\n {{'TRP_FIELD_TRIPTIK_SERIAL' | translate}}\\r\\n {{row.serial}}\\r\\n {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}\\r\\n {{row.stockType.titles}}{{'TRP_FIELD_PLATE_ID' | translate}}{{row.vehiclePlateID ? row.vehiclePlateID : 'N/A' }}{{'TRP_CLM_LABEL_CLAIM_COUNTRY' | translate}}\\r\\n {{row.country.countryTitles}}\\r\\n {{'LKP_FIELD_CUSTOMS_PORT' | translate}}\\r\\n {{row.customsPort ? row.customsPort.titles : 'N/A' }}\\r\\n {{'LKP_FIELD_PURSUING_ZONE' | translate}}\\r\\n {{row.pursuingZone ? row.pursuingZone.titles : 'N/A'}}\\r\\n {{'TRP_CLM_FIELD_LATEST_STATUS' | translate}}\\r\\n {{row.latestStatus ? row.latestStatus.titles : 'N/A'}}\\r\\n {{'_ACTION_TOOLS' | translate}}\\r\\n \\r\\n \\r\\n pageview\\r\\n \\r\\n \\r\\n 0\\\" class=\\\"text-primary\\\" routerLink=\\\"../view/attachments/{{row.id}}\\\"\\r\\n title=\\\"{{'_TITLE_ATTACHMENTS' | translate}}\\\">\\r\\n \\r\\n attach_file\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n attach_file\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n playlist_add\\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \";","export default \"{{'_ACTION_UPDATE_STATUS' | translate}}\\r\\n {{'TRP_CLM_TITLE_TRIPTIK_CLAIM' | translate}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n description\\r\\n {{'TRP_FIELD_TRIPTIK_SERIAL' | translate}}: {{dto.serial}}\\r\\n
    \\r\\n
    \\r\\n account_circle\\r\\n {{'TRP_CLM_FIELD_NAME' | translate}}: {{dto.holderName}}\\r\\n
    \\r\\n
    \\r\\n money\\r\\n {{'TRP_CLM_FIELD_ENTRANCE_ID' | translate}}: {{dto.entranceID}}\\r\\n
    \\r\\n
    \\r\\n emoji_transportation\\r\\n {{'LKP_FIELD_CUSTOMS_PORT' | translate}}:\\r\\n {{dto.customsPort ? dto.customsPort.titles + ' / ' + dto.customsPort.countryTitles : 'N/A'}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_CLM_LABEL_CLAIM_STATUS' | translate}}\\r\\n \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_LABEL_CLAIM_STATUS' | translate}}\\r\\n \\r\\n {{status.titles}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'TRP_CLM_LABEL_CLAIM_STATUS_DESC' | translate}}\\r\\n \\r\\n
    \\r\\n \\r\\n {{'TRP_CLM_LABEL_CLAIM_STATUS_DESC' | translate}}\\r\\n \\r\\n {{status.titles}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n 0\\\">\\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_LABEL_RECEIPT_VALUE' | translate}}\\r\\n
    \\r\\n
    \\r\\n \\r\\n {{c.abbreviation}}\\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\\r\\n\\r\\n \\r\\n
    \\r\\n
    \\r\\n {{'_LABEL_DETAILS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{'_TITLE_ATTACHMENTS' | translate}}\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n
    \\r\\n {{'_ACTION_VIEW' | translate}}\\r\\n {{'TRP_CLM_TITLE_TRIPTIK_CLAIM' | translate}}\\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n description\\r\\n {{'TRP_FIELD_TRIPTIK_SERIAL' | translate}}: {{dto.serial}}\\r\\n
    \\r\\n
    \\r\\n description\\r\\n {{'TRP_FIELD_TRIPTIK_TYPE' | translate}}: {{dto.stockType ? dto.stockType.titles : 'N/A'}}\\r\\n
    \\r\\n
    \\r\\n money\\r\\n {{'TRP_CLM_FIELD_ENTRANCE_ID' | translate}}: {{dto.entranceID}}\\r\\n
    \\r\\n \\r\\n
    \\r\\n account_circle\\r\\n {{'TRP_CLM_FIELD_ENTRANCE_DATE' | translate}}: {{dto.entranceDate | date:'dd/MM/yyyy'}}\\r\\n
    \\r\\n
    \\r\\n emoji_transportation\\r\\n {{'LKP_FIELD_CUSTOMS_PORT' | translate}}:\\r\\n {{dto.customsPort ? dto.customsPort.titles + ' / ' + dto.customsPort.countryTitles : 'N/A'}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n account_circle\\r\\n {{'TRP_CLM_FIELD_NAME' | translate}}: {{dto.holderName}}\\r\\n
    \\r\\n
    \\r\\n money\\r\\n {{'_FIELD_ADDRESS' | translate}}: {{dto.holderAddress ? dto.holderAddress : 'N/A' }}\\r\\n
    \\r\\n
    \\r\\n emoji_transportation\\r\\n {{'_FIELD_PHONE_NO' | translate}} : {{dto.holderPhone ? dto.holderPhone : 'N/A'}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n {{log.created | date:'dd/MM/yyyy HH:mm'}}\\r\\n
    \\r\\n {{log.status.titles}}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    {{'SEC_FIELD_USERNAME' | translate}}: {{log.createdBy}}
    \\r\\n

    {{log.note}}

    \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n \\r\\n \\r\\n error\\r\\n \\r\\n  {{item}}\\r\\n
    \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n \\r\\n
    \";","export default \"\\r\\n\";","export default \"\";","export default \"
    \\r\\n
    \\r\\n
    {{options.action | translate}} {{options.type | translate}}
    \\r\\n \\r\\n
    \\r\\n
    \\r\\n

    {{options.confirmQuestion | translate}} \\\"{{options.title | translate}}\\\" {{translate.currentLang == 'ar' ?\\r\\n '؟' : '?'}}\\r\\n

    \\r\\n

    \\r\\n

    {{options.note | translate}}
    \\r\\n {{options.dangerNote | translate}}\\r\\n

    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n {{ (fileName ? fileName : '_ACTION_DRAG_AND_DROP') | translate}}\\r\\n {{'_ACTION_BROWSE'\\r\\n | translate}}\\r\\n \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n delete \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n \\r\\n
    \\r\\n
    \";","export default \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n

    الصفحة غير موجودة

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n \\r\\n

    {{'_PAGE_UNDER_CONSTRUCTION' | translate}}

    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n
    \\r\\n\";","export default \"\\r\\n {{ errorMessage[0] | translate:({param: errorMessage[1]})}}\\r\\n {{errorMessage | translate:({param: fieldLocale} | ParamsTranslate)}}\\r\\n\";","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { AuthGuardService as AuthGuard } from './core/auth/auth-guard.service';\r\n\r\nimport { AccountUsersComponent } from './features/security/containers/account-users/account-users.component';\r\nimport { VehicleColorsComponent } from './features/lookups/containers/vehicle-colors/vehicle-colors.component';\r\nimport { StockTypesComponent } from './features/lookups/containers/stock-types/stock-types.component';\r\nimport { AccountTypesComponent } from './features/lookups/containers/account-types/account-types.component';\r\nimport { AccountStatusesComponent } from './features/lookups/containers/account-statuses/account-statuses.component';\r\nimport { CitiesComponent } from './features/lookups/containers/cities/cities.component';\r\nimport { UsersGroupsComponent } from './features/security/containers/users-groups/users-groups.component';\r\nimport { SecurityGroupsComponent } from './features/security/containers/security-groups/security-groups.component';\r\nimport { PopulateComponent } from './features/stock/containers/populate/populate.component';\r\nimport { StocksAvailableComponent } from './features/stock/containers/stocks-available/stocks-available.component';\r\nimport { StocksTotalsComponent } from './features/stock/containers/stocks-totals/stocks-totals.component';\r\nimport { LoginComponent } from './core/components/login/login.component';\r\nimport { MainComponent } from './core/components/main/main.component';\r\nimport { CountriesComponent } from './features/lookups/containers/countries/countries.component';\r\nimport { AccountsComponent } from './features/accounts/containers/accounts/accounts.component';\r\nimport { TransactionsComponent } from './features/stock/containers/transactions/transactions.component';\r\nimport { TransactComponent } from './features/stock/containers/transact/transact.component';\r\nimport { UndoTryComponent } from './features/stock/containers/undo-try/undo-try.component';\r\nimport { UndoRequestsComponent } from './features/stock/containers/undo-requests/undo-requests.component';\r\nimport { VehicleMakesComponent } from './features/lookups/containers/vehicle-makes/vehicle-makes.component';\r\nimport { ManageAccountComponent } from './features/accounts/containers/manage-account/manage-account.component';\r\nimport { UserProfileComponent } from './features/accounts/containers/user-profile/user-profile.component';\r\nimport { NotFoundComponent } from './shared/components/not-found/not-found.component';\r\nimport { ManageUserComponent } from './features/security/containers/manage-user/manage-user.component';\r\nimport { TranslationResolver } from './shared/helpers/translation.resolver';\r\nimport { IntLicensesComponent } from './features/issuing/int-licenses/containers/int-licenses/int-licenses.component';\r\nimport { ManageIntLicenseComponent } from './features/issuing/int-licenses/containers/manage-int-license/manage-int-license.component';\r\nimport { ViewIntLicenseComponent } from './features/issuing/int-licenses/containers/view-int-license/view-int-license.component';\r\nimport { TripTiksComponent } from './features/issuing/trip-tik/containers/trip-tiks/trip-tiks.component';\r\nimport { ViewTripTikComponent } from './features/issuing/trip-tik/containers/view-trip-tik/view-trip-tik.component';\r\nimport { ManageTripTikComponent } from './features/issuing/trip-tik/containers/manage-trip-tik/manage-trip-tik.component';\r\nimport { VehicleTypesComponent } from './features/lookups/containers/vehicle-types/vehicle-types.component';\r\nimport { VehicleModelsComponent } from './features/lookups/containers/vehicle-models/vehicle-models.component';\r\nimport { CurrenciesComponent } from './features/lookups/containers/currencies/currencies.component';\r\nimport { TripTiksClaimsComponent } from './features/trip-tiks-claims/containers/trip-tiks-claims/trip-tiks-claims.component';\r\nimport { VerificationComponent } from './features/issuing/_shared/containers/verification/verification.component';\r\nimport { DocumentsRevokeRequestsComponent } from './features/issuing/_shared/containers/documents-revoke-requests/documents-revoke-requests.component';\r\nimport { DashboardComponent } from './features/statistics/containers/dashboard/dashboard.component';\r\nimport { UpdateStatusTripTikClaimComponent } from './features/trip-tiks-claims/containers/update-status-trip-tik-claim/update-status-trip-tik-claim.component';\r\nimport { ManageTripTikClaimComponent } from './features/trip-tiks-claims/containers/manage-trip-tik-claim/manage-trip-tik-claim.component';\r\nimport { ViewTripTikClaimComponent } from './features/trip-tiks-claims/containers/view-trip-tik-claim/view-trip-tik-claim.component';\r\nimport { TripTiksClaimsLogsComponent } from './features/trip-tiks-claims/containers/trip-tiks-claims-logs/trip-tiks-claims-logs.component';\r\nimport { ConfigResolver } from './shared/helpers/config.resolver';\r\nimport { TripTikClaimAttachmentsComponent } from './features/trip-tiks-claims/containers/trip-tik-claim-attachments/trip-tik-claim-attachments.component';\r\nimport { RecoverPasswordComponent } from './core/components/recover-password/recover-password.component';\r\nimport { CustomsPortsComponent } from './features/lookups/containers/customs-ports/customs-ports.component';\r\nimport { PursuingZonesComponent } from './features/lookups/containers/pursuing-zones/pursuing-zones.component';\r\nimport { ExpiredDocumentsQueryComponent } from './features/issuing/_shared/containers/expired-documents-query/expired-documents-query.component';\r\nimport { ViewAccountComponent } from './features/accounts/containers/view-account/view-account.component';\r\nimport { IssuedDocumentsQueryComponent } from './features/issuing/_shared/containers/issued-documents-query/issued-documents-query.component';\r\nimport { ELicensesComponent } from './features/issuing/int-licenses/containers/e-licenses/e-licenses.component';\r\nimport { CouponManagementComponent } from './features/issuing/coupon-management/containers/coupon-management/coupon-management.component';\r\nimport { ViewCouponManagementComponent } from './features/issuing/coupon-management/containers/view-coupon-management/view-coupon-management.component';\r\nimport { ManageCouponManagementComponent } from './features/issuing/coupon-management/containers/manage-coupon-management/manage-coupon-management.component';\r\nimport { ViewLicenseDetailComponent } from './features/issuing/coupon-management/containers/view-license-detail/view-license-detail.component';\r\n//import { AppConfigResolver } from './shared/helpers/app-config.resolver';\r\n\r\nconst routes: Routes = [\r\n { path: 'verify/:key', data: { title: '_APP_TITLE' }, component: VerificationComponent },\r\n { path: 'verify-license/:key', redirectTo: '/verify/:key' }, //old-system\r\n { path: 'login', data: { title: '_APP_TITLE' }, component: LoginComponent, resolve: { x: TranslationResolver/*, y: AppConfigResolver */ }, runGuardsAndResolvers: 'always' },\r\n { path: 'recover-password', data: { title: '_APP_TITLE' }, component: RecoverPasswordComponent, resolve: { x: TranslationResolver/*, y: AppConfigResolver */ }, runGuardsAndResolvers: 'always' },\r\n { path: '', pathMatch: 'full', redirectTo: '/ar' },\r\n {\r\n path: ':lang', canActivate: [AuthGuard], component: MainComponent, resolve: { x: TranslationResolver/*, y: AppConfigResolver*/, z: ConfigResolver }, children: [\r\n { path: '', data: { title: '_APP_TITLE' }, canActivate: [AuthGuard], pathMatch: 'full', component: DashboardComponent }, //home component\r\n {\r\n path: 'lookups', canActivate: [AuthGuard], data: { title: 'LKP_LINK_BASIC_DATA', securityRoles: [Role.LOOKUPS_CREATE, Role.LOOKUPS_UPDATE, Role.LOOKUPS_DELETE] }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'countries' }, //default route for parent\r\n { path: 'countries', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_COUNTRIES' }, component: CountriesComponent, runGuardsAndResolvers: 'always' },\r\n { path: 'cities', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_CITIES' }, component: CitiesComponent },\r\n { path: 'account-statuses', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_ACCOUNT_STATUSES' }, component: AccountStatusesComponent },\r\n //{ path: 'account-types', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_ACCOUNT_TYPES' }, component: AccountTypesComponent },\r\n { path: 'stock-types', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_STOCK_TYPES' }, component: StockTypesComponent },\r\n { path: 'vehicle-colors', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_VEHICLE_COLORS' }, component: VehicleColorsComponent },\r\n { path: 'vehicle-makes', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_VEHICLE_MAKES' }, component: VehicleMakesComponent },\r\n { path: 'vehicle-types', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_VEHICLE_TYPES' }, component: VehicleTypesComponent },\r\n { path: 'vehicle-models', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_VEHICLE_MODELS' }, component: VehicleModelsComponent },\r\n { path: 'currencies', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_CURRENCIES' }, component: CurrenciesComponent },\r\n { path: 'customs-ports', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_CUSTOMS_PORTS' }, component: CustomsPortsComponent },\r\n { path: 'pursuing-zones', canActivate: [AuthGuard], data: { title: 'LKP_TITLE_PURSUING_ZONES' }, component: PursuingZonesComponent }\r\n ]\r\n },\r\n {\r\n path: 'stocks', canActivate: [AuthGuard], data: { title: 'STK_TITLE_STOCK' }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'totals' }, //default route for parent\r\n { path: 'totals', canActivate: [AuthGuard], data: { title: 'STK_TITLE_STOCKS_TOTALS', securityRoles: [Role.STOCKS_TRANSACTIONS_READ] }, component: StocksTotalsComponent },\r\n { path: 'totals/:accountId', canActivate: [AuthGuard], data: { title: 'STK_TITLE_STOCKS_TOTALS', securityRoles: [Role.STOCKS_TRANSACTIONS_READ] }, component: StocksTotalsComponent },\r\n { path: 'available', canActivate: [AuthGuard], data: { title: 'STK_TITLE_AVAILABLE_STOCKS', securityRoles: [Role.STOCKS_TRANSACTIONS_CREATE, Role.STOCKS_UNDO_REQUESTS_CREATE, Role.INT_LICENSES_CREATE, Role.INT_LICENSES_UPDATE, Role.TRIPTIKS_CREATE, Role.TRIPTIKS_UPDATE] }, component: StocksAvailableComponent },\r\n { path: 'available/:accountId', canActivate: [AuthGuard], data: { title: 'STK_TITLE_AVAILABLE_STOCKS', securityRoles: [Role.STOCKS_TRANSACTIONS_CREATE, Role.STOCKS_UNDO_REQUESTS_CREATE, Role.INT_LICENSES_CREATE, Role.INT_LICENSES_UPDATE, Role.TRIPTIKS_CREATE, Role.TRIPTIKS_UPDATE] }, component: StocksAvailableComponent },\r\n { path: 'system-available', canActivate: [AuthGuard], data: { title: 'STK_TITLE_AVAILABLE_SYSTEM_STOCKS', securityRoles: [Role.SYSTEM_STOCKS_READ], mode: 'SYSTEM' }, component: StocksAvailableComponent },\r\n\r\n { path: 'transactions', canActivate: [AuthGuard], data: { title: 'STK_TITLE_TRANSACTIONS', securityRoles: [Role.STOCKS_TRANSACTIONS_READ] }, component: TransactionsComponent },\r\n { path: 'transact', canActivate: [AuthGuard], data: { title: 'STK_TITLE_TRANSACT', securityRoles: [Role.STOCKS_TRANSACTIONS_CREATE] }, component: TransactComponent },\r\n { path: 'populate', canActivate: [AuthGuard], data: { title: 'STK_TITLE_POPULATE', securityRoles: [Role.SYSTEM_STOCKS_CREATE], mode: 'POPULATE' }, component: PopulateComponent },\r\n { path: 'depopulate', canActivate: [AuthGuard], data: { title: 'STK_TITLE_DEPOPULATE', securityRoles: [Role.SYSTEM_STOCKS_DELETE], mode: 'DEPOPULATE' }, component: PopulateComponent },\r\n {\r\n path: 'undo', canActivate: [AuthGuard], data: { title: 'STK_TITLE_UNDOING' }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'try' }, //default route for parent\r\n { path: 'try', canActivate: [AuthGuard], data: { title: 'STK_TITLE_UNDO_REQUEST', securityRoles: [Role.STOCKS_UNDO_REQUESTS_CREATE] }, component: UndoTryComponent },\r\n { path: 'requests', canActivate: [AuthGuard], data: { title: 'STK_TITLE_UNDO_REQUESTS', securityRoles: [Role.STOCKS_UNDO_REQUESTS_READ] }, component: UndoRequestsComponent }\r\n ]\r\n },\r\n ]\r\n },\r\n {\r\n path: 'accounts', canActivate: [AuthGuard], data: { title: 'ACC_TITLE_ACCOUNTS', securityRoles: [Role.ACCOUNTS_READ] }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'list' },\r\n // { path: 'me', canActivate: [AuthGuard], data: { title: 'ACC_TITLE_USER_PROFILE' }, component: UserProfileComponent }, //default route for parent\r\n { path: 'list', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: AccountsComponent },\r\n { path: 'view/:id', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: ViewAccountComponent },\r\n { path: 'add', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', securityRoles: [Role.ACCOUNTS_CREATE] }, component: ManageAccountComponent },\r\n { path: 'update/:id', canActivate: [AuthGuard], data: { title: '_ACTION_UPDATE', securityRoles: [Role.ACCOUNTS_UPDATE] }, component: ManageAccountComponent },\r\n ]\r\n },\r\n {\r\n path: 'security', canActivate: [AuthGuard], data: { title: 'SEC_TITLE_SECURITY' }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'groups' }, //default route for parent\r\n {\r\n path: 'groups', canActivate: [AuthGuard], data: { title: 'SEC_TITLE_SECURITY_GROUPS', securityRoles: [Role.SECURITY_GROUPS_READ] }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'list' },\r\n { path: 'list', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW', mode: 'LIST' }, component: SecurityGroupsComponent },\r\n { path: 'add', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', mode: 'ADD', securityRoles: [Role.SECURITY_GROUPS_CREATE] }, component: SecurityGroupsComponent },\r\n { path: 'update/:id', canActivate: [AuthGuard], data: { title: '_ACTION_UPDATE', mode: 'UPDATE', securityRoles: [Role.SECURITY_GROUPS_UPDATE] }, component: SecurityGroupsComponent },\r\n ]\r\n },\r\n {\r\n path: 'users', canActivate: [AuthGuard], data: {\r\n title: 'SEC_LINK_USERS', securityRoles: [Role.USERS_READ]\r\n }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'list' }, //default route for parent\r\n { path: 'list', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: AccountUsersComponent },\r\n { path: 'list/:accountId', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: AccountUsersComponent },\r\n { path: 'update/:id', canActivate: [AuthGuard], data: { title: '_ACTION_UPDATE', securityRoles: [Role.USERS_UPDATE] }, component: ManageUserComponent },\r\n { path: 'add', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', securityRoles: [Role.USERS_CREATE] }, component: ManageUserComponent },\r\n { path: 'groups', canActivate: [AuthGuard], data: { title: 'SEC_TITLE_USERS_GROUPS', securityRoles: [Role.USERS_SECURITY_GROUPS_READ] }, component: UsersGroupsComponent },\r\n ]\r\n },\r\n ]\r\n },\r\n {\r\n path: 'issuing', canActivate: [AuthGuard], data: { title: '_TITLE_ISSUING', securityRoles: [Role.INT_LICENSES_READ, Role.TRIPTIKS_READ] }, children: [\r\n { path: 'query', canActivate: [AuthGuard], data: { title: 'ISS_TITLE_ISSUED_DOCUMENTS_QUERY' }, component: IssuedDocumentsQueryComponent },\r\n { path: 'revoke/requests', canActivate: [AuthGuard], data: { title: 'ISS_TITLE_DOCUMENTS_REVOKE_REQUESTS', securityRoles: [Role.INT_LICENSES_REVOKE_REQUESTS_READ, Role.TRIPTIKS_REVOKE_REQUESTS_READ] }, component: DocumentsRevokeRequestsComponent },\r\n {\r\n path: 'int-licenses', canActivate: [AuthGuard], data: { title: 'LIC_TITLE_LICENSES', securityRoles: [Role.INT_LICENSES_READ] }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'list' },\r\n { path: 'list', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: IntLicensesComponent },\r\n { path: 'view/:id', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: ViewIntLicenseComponent },\r\n { path: 'add', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', mode: 'ADD', securityRoles: [Role.INT_LICENSES_CREATE] }, component: ManageIntLicenseComponent },\r\n { path: 'add/:id', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', mode: 'ADD', securityRoles: [Role.INT_LICENSES_CREATE] }, component: ManageIntLicenseComponent },\r\n { path: 'clone/:key', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', mode: 'CLONE', securityRoles: [Role.INT_LICENSES_CREATE] }, component: ManageIntLicenseComponent },\r\n { path: 'update/:id', canActivate: [AuthGuard], data: { title: '_ACTION_UPDATE', mode: 'UPDATE', securityRoles: [Role.INT_LICENSES_UPDATE] }, component: ManageIntLicenseComponent },\r\n ]\r\n },\r\n {\r\n // \r\n path: 'coupon-management', canActivate: [AuthGuard], data: { title: 'LIC_TITLE_COUPON_MANAGEMENT', securityRoles: [Role.INT_LICENSES_READ] }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'list' },\r\n { path: 'list', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: CouponManagementComponent },\r\n { path: 'add', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', mode: 'ADD', securityRoles: [Role.INT_LICENSES_CREATE] }, component: ManageCouponManagementComponent },\r\n { path: 'add/:id', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', mode: 'ADD', securityRoles: [Role.INT_LICENSES_CREATE] }, component: ManageCouponManagementComponent },\r\n { path: 'view/:id', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: ViewLicenseDetailComponent },\r\n { path: 'update/:id', canActivate: [AuthGuard], data: { title: '_ACTION_UPDATE', mode: 'UPDATE', securityRoles: [Role.INT_LICENSES_UPDATE] }, component: ManageCouponManagementComponent },\r\n ]\r\n },\r\n {\r\n // \r\n path: 'e-licenses', canActivate: [AuthGuard], data: { title: 'LIC_TITLE_E_LICENSES', securityRoles: [Role.INT_LICENSES_READ] }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'list' },\r\n { path: 'list', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: ELicensesComponent },\r\n { path: 'view/:id', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: ViewIntLicenseComponent },\r\n { path: 'update/:id', canActivate: [AuthGuard], data: { title: '_ACTION_UPDATE', mode: 'UPDATE', securityRoles: [Role.INT_LICENSES_UPDATE] }, component: ManageIntLicenseComponent },\r\n ]\r\n },\r\n {\r\n path: 'trip-tiks', canActivate: [AuthGuard], data: { title: 'TRP_TITLE_TRIPTIKS', securityRoles: [Role.TRIPTIKS_READ] }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'list' },\r\n { path: 'list', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: TripTiksComponent },\r\n { path: 'view/:id', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: ViewTripTikComponent },\r\n { path: 'add', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', mode: 'ADD', securityRoles: [Role.TRIPTIKS_CREATE] }, component: ManageTripTikComponent },\r\n { path: 'add/:id', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', mode: 'ADD', securityRoles: [Role.TRIPTIKS_CREATE] }, component: ManageTripTikComponent },\r\n { path: 'clone/:key', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', mode: 'CLONE', securityRoles: [Role.TRIPTIKS_CREATE] }, component: ManageTripTikComponent },\r\n { path: 'update/:id', canActivate: [AuthGuard], data: { title: '_ACTION_UPDATE', mode: 'UPDATE', securityRoles: [Role.TRIPTIKS_UPDATE] }, component: ManageTripTikComponent },\r\n ]\r\n },\r\n ]\r\n },\r\n {\r\n path: 'trip-tiks-claims', canActivate: [AuthGuard], data: { title: 'TRP_CLM_TITLE_TRIPTIK_CLAIMS', securityRoles: [Role.TRIPTIKS_CLAIMS_READ] }, children: [\r\n { path: '', pathMatch: 'full', redirectTo: 'list' },\r\n { path: 'list', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: TripTiksClaimsComponent },\r\n { path: 'view/:id', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: ViewTripTikClaimComponent },\r\n { path: 'view/attachments/:id', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW' }, component: TripTikClaimAttachmentsComponent },\r\n { path: 'update-status/:id', canActivate: [AuthGuard], data: { title: '_ACTION_UPDATE_STATUS', securityRoles: [Role.TRIPTIKS_CLAIMS_UPDATE] }, component: UpdateStatusTripTikClaimComponent },\r\n { path: 'add', canActivate: [AuthGuard], data: { title: '_ACTION_ADD', mode: 'ADD', securityRoles: [Role.TRIPTIKS_CLAIMS_CREATE] }, component: ManageTripTikClaimComponent },\r\n { path: 'logs', canActivate: [AuthGuard], data: { title: '_ACTION_VIEW', securityRoles: [Role.TRIPTIKS_CLAIMS_LOGS_READ] }, component: TripTiksClaimsLogsComponent },\r\n ]\r\n },\r\n\r\n { path: 'me', canActivate: [AuthGuard], data: { title: 'ACC_TITLE_USER_PROFILE' }, component: UserProfileComponent },\r\n ]\r\n },\r\n // { path: 'uploads/:stockTypeId/:accountId/:objectId', canActivate: [AuthGuard], data: { title: 'ACC_TITLE_USER_PROFILE' }, component: DownloadComponent },\r\n //{ path: 'not-found', component: NotFoundComponent },\r\n { path: '**', component: NotFoundComponent },\r\n\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, {\r\n // anchorScrolling: 'enabled',\r\n onSameUrlNavigation: 'reload'\r\n\r\n })],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { ActivatedRoute, Router, NavigationEnd } from '@angular/router';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { Component } from '@angular/core';\r\nimport { filter, map, throwIfEmpty } from 'rxjs/operators';\r\nimport { BreadcrumbService } from './shared/services/breadcrumb.service';\r\nimport { LoadingService } from './shared/services/loading';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthService } from './core/auth/auth.service';\r\nimport { StaticConfig } from './features/lookups/services/config';\r\n// import { AlertService2 } from './shared/services/alert.service2';\r\n// import * as AppConfig from '../assets/config.json'\r\n\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss'],\r\n providers: [StaticConfig]\r\n})\r\nexport class AppComponent {\r\n\r\n loading: boolean = true;\r\n styleLoading: boolean = true;\r\n\r\n constructor(\r\n private loader: LoadingService,\r\n private titleService: Title,\r\n private breadcrumbService: BreadcrumbService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private translate: TranslateService){\r\n //private config: StaticConfig) {\r\n\r\n this.translate.setDefaultLang('ar');\r\n //this.config.get();\r\n //const _lang = this.route.snapshot.paramMap.get('lang');\r\n ////console.log(_lang);\r\n //this.translate.use(_lang);\r\n }\r\n\r\n ngOnInit() {\r\n // const _config = config.get('apiBaseUrl');\r\n //console.log(AppConfig.apiBaseUrl);\r\n //await this.config.get();\r\n AuthService.authActivity.subscribe(loggedin => {\r\n // //console.warn(loggedin);\r\n // if (!loggedin) {\r\n // //console.log('should log out now');\r\n // }\r\n });\r\n\r\n // this.loader.styleLoading.subscribe(status => {\r\n // this.styleLoading = status;\r\n // })\r\n\r\n LoadingService.style.subscribe(status => {\r\n this.styleLoading = status;\r\n });\r\n\r\n this.loader.navLoading.subscribe(status => {\r\n this.loading = status;\r\n });\r\n\r\n // this.router\r\n // .events.pipe(\r\n // filter(event => event instanceof NavigationEnd),\r\n // map(() => {\r\n // //console.log('ev');\r\n // let _titles = [];\r\n // let _titlesLinks: string[][] = [[]];\r\n // let child = this.route.firstChild;\r\n // let _url = `/${this.translate.currentLang}/`;\r\n // let level = 0;\r\n\r\n // const _lang = child.snapshot.paramMap.get('lang');\r\n // //console.log(_lang, this.translate.currentLang);\r\n // // if (this.translate.currentLang != _lang)\r\n // this.translate.use(_lang);\r\n\r\n // //console.log(child);\r\n // if (this.router.url == _url) {\r\n // const transalted = this.translate.instant(child.snapshot.firstChild.data['title']);\r\n // //console.log(transalted)\r\n // _titles.push(transalted);\r\n // } else if (this.router.url == '/login') {\r\n // const transalted = this.translate.instant(child.snapshot.data['title']);\r\n // //console.log(transalted)\r\n // // this.translate.get(child.snapshot.data['title'])\r\n // // .subscribe(val => {\r\n // // //console.log(val);\r\n // // _titles.push(val);\r\n // // })\r\n // _titles.push(this.translate.instant(child.snapshot.data['title']));\r\n // }\r\n // else {\r\n\r\n // while (child.firstChild) {\r\n // child = child.firstChild;\r\n // ////console.log(child);\r\n // if (child.snapshot.data['title']) {\r\n // if (level <= 1)\r\n // _titles.push(this.translate.instant(child.snapshot.data['title']));\r\n\r\n // _url += child.snapshot.url[0] + '/';\r\n // _titlesLinks.push([this.translate.instant(child.snapshot.data['title']), _url]);\r\n // }\r\n // level++;\r\n // }\r\n // }\r\n // //console.warn(_titlesLinks);\r\n // this.breadcrumbService.setLinks(_titlesLinks);\r\n // return _titles.join(' | ');\r\n // })\r\n // ).subscribe((ttl: string) => {\r\n // //console.warn(ttl);\r\n // this.titleService.setTitle(ttl);\r\n // });\r\n }\r\n ngAfterViewInit() {\r\n // AlertService2.init();\r\n }\r\n}\r\n","import { BrowserModule, Title } from '@angular/platform-browser';\r\nimport { CommonModule, LOCATION_INITIALIZED } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgModule, Injector, APP_INITIALIZER } from '@angular/core';\r\nimport { HttpClientModule, HttpClient, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { TranslateModule, TranslateLoader, TranslateService, TranslateParser } from '@ngx-translate/core';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { UrlSerializer } from '@angular/router';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\nimport { LoggerModule, NgxLoggerLevel } from 'ngx-logger';\r\nimport { LightboxModule } from 'ngx-lightbox';\r\nimport { ChartsModule } from 'ng2-charts';\r\nimport { NgxKjuaModule } from 'ngx-kjua';\r\nimport { NgxPrintModule } from 'ngx-print';\r\nimport { MomentDateModule, MatMomentDateModule, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter'\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\n//import { AutocompleteLibModule } from 'angular-ng-autocomplete';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { ColorPickerModule } from 'ngx-color-picker';\r\n\r\n//material\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CdkTableModule } from '@angular/cdk/table';\r\nimport { CdkTreeModule } from '@angular/cdk/tree';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatNativeDateModule, MatRippleModule, MAT_DATE_FORMATS, MAT_DATE_LOCALE, DateAdapter } from '@angular/material/core';\r\nimport { MatPaginatorModule, MatPaginatorIntl } from '@angular/material/paginator';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSnackBarModule, MatSnackBar, MAT_SNACK_BAR_DEFAULT_OPTIONS } from '@angular/material/snack-bar';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\n\r\n//pipes\r\nimport { StringJoinPipe } from './shared/pipes/string-join.pipe';\r\nimport { ArrayMapPipe } from './shared/pipes/array-map.pipe';\r\nimport { ParamsTranslatePipe } from './shared/pipes/params-translate.pipe';\r\n\r\n//directives\r\nimport { DragDirective } from './shared/directives/drag.directive';\r\nimport { ConfirmTemplateDirective } from './shared/directives/modal.directive';\r\n\r\n//services\r\nimport { UrlSerializerService } from './core/url-serializer.service';\r\nimport { ConfirmService } from './shared/services/modal.service';\r\nimport { AlertService } from './shared/services/alert.service';\r\nimport { ValidationService } from './shared/services/validation.service';\r\nimport { LoadingService } from './shared/services/loading';\r\nimport { AuthGuardService } from './core/auth/auth-guard.service';\r\nimport { BreadcrumbService } from './shared/services/breadcrumb.service';\r\nimport { SidenavService } from './core/services/sidenav.service';\r\nimport { AuthService } from './core/auth/auth.service';\r\nimport { ConfirmState } from './shared/models/modal';\r\nimport { LangMatPaginatorIntl } from './shared/helpers/lang-paginator-intl';\r\nimport { httpInterceptorProviders, AuthInterceptor } from './core/auth/auth-interceptor';\r\nimport { ApiHandler } from './core/api-handler';\r\n\r\n//components\r\nimport { BodyLoaderComponent } from './shared/components/body-loader/body-loader.component';\r\nimport { CountriesComponent } from './features/lookups/containers/countries/countries.component';\r\nimport { FooterComponent } from './core/components/footer/footer.component';\r\nimport { HeaderComponent } from './core/components/header/header.component';\r\nimport { LoginComponent } from './core/components/login/login.component';\r\nimport { MainComponent } from './core/components/main/main.component';\r\nimport { SidenavComponent } from './core/components/sidenav/sidenav.component';\r\nimport { BreadcrumbComponent } from './shared/components/breadcrumb/breadcrumb.component';\r\nimport { AccountsComponent } from './features/accounts/containers/accounts/accounts.component';\r\nimport { SecurityGroupsComponent } from './features/security/containers/security-groups/security-groups.component';\r\nimport { UsersGroupsComponent } from './features/security/containers/users-groups/users-groups.component';\r\nimport { TransactionsComponent } from './features/stock/containers/transactions/transactions.component';\r\nimport { UndoRequestsComponent } from './features/stock/containers/undo-requests/undo-requests.component';\r\nimport { UndoTryComponent } from './features/stock/containers/undo-try/undo-try.component';\r\nimport { AccountUsersComponent } from './features/security/containers/account-users/account-users.component';\r\nimport { DialogComponent } from './shared/components/dialog/dialog.component';\r\nimport { UserProfileComponent } from './features/accounts/containers/user-profile/user-profile.component';\r\nimport { ConfirmModalComponent } from './shared/components/modal/modal.component';\r\nimport { ManageAccountComponent } from './features/accounts/containers/manage-account/manage-account.component';\r\nimport { UnderConstructionComponent } from './shared/components/under-construction/under-construction.component';\r\nimport { NotFoundComponent } from './shared/components/not-found/not-found.component';\r\nimport { ManageUserComponent } from './features/security/containers/manage-user/manage-user.component';\r\nimport { StockSliderComponent } from './features/stock/components/stock-slider/stock-slider.component';\r\nimport { ValidationErrorComponent } from './shared/components/validation-error/validation-error.component';\r\nimport { AlertComponent } from './shared/components/alert/alert.component';\r\nimport { ManageIntLicenseComponent } from './features/issuing/int-licenses/containers/manage-int-license/manage-int-license.component';\r\nimport { IntLicensesComponent } from './features/issuing/int-licenses/containers/int-licenses/int-licenses.component';\r\nimport { ViewIntLicenseComponent } from './features/issuing/int-licenses/containers/view-int-license/view-int-license.component';\r\nimport { IntLicensePrintComponent } from './features/issuing/int-licenses/components/int-license-print/int-license-print.component';\r\nimport { TripTiksComponent } from './features/issuing/trip-tik/containers/trip-tiks/trip-tiks.component';\r\nimport { ManageTripTikComponent } from './features/issuing/trip-tik/containers/manage-trip-tik/manage-trip-tik.component';\r\nimport { ViewTripTikComponent } from './features/issuing/trip-tik/containers/view-trip-tik/view-trip-tik.component';\r\nimport { CommitmentPrintComponent } from './features/issuing/int-licenses/components/commitment-print/commitment-print.component';\r\nimport { TripTikPrintComponent } from './features/issuing/trip-tik/components/trip-tik-print/trip-tik-print.component';\r\nimport { ReceiptPrintComponent } from './features/issuing/trip-tik/components/receipt-print/receipt-print.component';\r\nimport { VehicleTypesComponent } from './features/lookups/containers/vehicle-types/vehicle-types.component';\r\nimport { VehicleModelsComponent } from './features/lookups/containers/vehicle-models/vehicle-models.component';\r\nimport { CurrenciesComponent } from './features/lookups/containers/currencies/currencies.component';\r\nimport { TripTiksClaimsComponent } from './features/trip-tiks-claims/containers/trip-tiks-claims/trip-tiks-claims.component';\r\nimport { ViewTripTikClaimComponent } from './features/trip-tiks-claims/containers/view-trip-tik-claim/view-trip-tik-claim.component';\r\nimport { DocumentsRevokeRequestsComponent } from './features/issuing/_shared/containers/documents-revoke-requests/documents-revoke-requests.component';\r\nimport { VerificationComponent } from './features/issuing/_shared/containers/verification/verification.component';\r\nimport { TransactComponent } from './features/stock/containers/transact/transact.component';\r\nimport { StocksTotalsComponent } from './features/stock/containers/stocks-totals/stocks-totals.component';\r\nimport { StocksAvailableComponent } from './features/stock/containers/stocks-available/stocks-available.component';\r\nimport { PopulateComponent } from './features/stock/containers/populate/populate.component';\r\nimport { VehicleMakesComponent } from './features/lookups/containers/vehicle-makes/vehicle-makes.component';\r\nimport { VehicleColorsComponent } from './features/lookups/containers/vehicle-colors/vehicle-colors.component';\r\nimport { StockTypesComponent } from './features/lookups/containers/stock-types/stock-types.component';\r\nimport { AccountTypesComponent } from './features/lookups/containers/account-types/account-types.component';\r\nimport { AccountStatusesComponent } from './features/lookups/containers/account-statuses/account-statuses.component';\r\nimport { CitiesComponent } from './features/lookups/containers/cities/cities.component';\r\nimport { DashboardComponent } from './features/statistics/containers/dashboard/dashboard.component';\r\nimport { UpdateStatusTripTikClaimComponent } from './features/trip-tiks-claims/containers/update-status-trip-tik-claim/update-status-trip-tik-claim.component';\r\nimport { ManageTripTikClaimComponent } from './features/trip-tiks-claims/containers/manage-trip-tik-claim/manage-trip-tik-claim.component';\r\nimport { TripTiksClaimsLogsComponent } from './features/trip-tiks-claims/containers/trip-tiks-claims-logs/trip-tiks-claims-logs.component';\r\nimport { TranslationResolver } from './shared/helpers/translation.resolver';\r\nimport { ConfigResolver } from './shared/helpers/config.resolver';\r\nimport { CustomDateAdapter } from './shared/helpers/custom-date-adapter';\r\nimport { TripTikClaimAttachmentsComponent } from './features/trip-tiks-claims/containers/trip-tik-claim-attachments/trip-tik-claim-attachments.component';\r\nimport { RecoverPasswordComponent } from './core/components/recover-password/recover-password.component';\r\nimport { PursuingZonesComponent } from './features/lookups/containers/pursuing-zones/pursuing-zones.component';\r\nimport { CustomsPortsComponent } from './features/lookups/containers/customs-ports/customs-ports.component';\r\nimport { LicTransactionsPrintComponent } from './features/stock/components/lic-transactions-print/lic-transactions-print.component';\r\nimport { TrpTransactionsPrintComponent } from './features/stock/components/trp-transactions-print/trp-transactions-print.component';\r\nimport { EndPoint } from './core/models/enums/end-point';\r\nimport { ExpiredDocumentsQueryComponent } from './features/issuing/_shared/containers/expired-documents-query/expired-documents-query.component';\r\nimport { ViewAccountComponent } from './features/accounts/containers/view-account/view-account.component';\r\nimport { IssuedDocumentsQueryComponent } from './features/issuing/_shared/containers/issued-documents-query/issued-documents-query.component';\r\nimport { environment } from 'src/environments/environment';\r\nimport { TransactionDetailsLabelComponent } from './features/stock/components/transaction-details-label/transaction-details-label.component';\r\nimport { ELicensesComponent } from './features/issuing/int-licenses/containers/e-licenses/e-licenses.component';\r\nimport { CouponManagementComponent } from './features/issuing/coupon-management/containers/coupon-management/coupon-management.component';\r\nimport { ViewCouponManagementComponent } from './features/issuing/coupon-management/containers/view-coupon-management/view-coupon-management.component';\r\nimport { ManageCouponManagementComponent } from './features/issuing/coupon-management/containers/manage-coupon-management/manage-coupon-management.component';\r\nimport { ViewLicenseDetailComponent } from './features/issuing/coupon-management/containers/view-license-detail/view-license-detail.component';\r\n\r\n//import { AppConfigResolver } from './shared/helpers/app-config.resolver';\r\n\r\n// AoT requires an exported function for factories\r\nexport function HttpLoaderFactory(http: HttpClient) {\r\n //return new TranslateHttpLoader(http);\r\n //return new TranslateHttpLoader(http, './assets/_lang/', '.json');\r\n return new TranslateHttpLoader(http, `${environment.apiBaseUrl}/resources/`, '.json');\r\n\r\n\r\n}\r\n\r\nexport function appInitializerFactory(translate: TranslateService, injector: Injector) {\r\n return () => new Promise((resolve: any) => {\r\n const locationInitialized = injector.get(LOCATION_INITIALIZED, Promise.resolve(null));\r\n locationInitialized.then(() => {\r\n const langToSet = 'ar'\r\n translate.setDefaultLang('ar');\r\n translate.use(langToSet).subscribe(() => {\r\n //console.info(`Successfully initialized '${langToSet}' language.'`);\r\n }, err => {\r\n //console.error(`Problem with '${langToSet}' language initialization.'`);\r\n }, () => {\r\n resolve(null);\r\n });\r\n });\r\n });\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n CountriesComponent,\r\n HeaderComponent,\r\n LoginComponent,\r\n MainComponent,\r\n SidenavComponent,\r\n FooterComponent,\r\n BreadcrumbComponent,\r\n AccountsComponent,\r\n ManageAccountComponent,\r\n SecurityGroupsComponent,\r\n UsersGroupsComponent,\r\n CitiesComponent,\r\n AccountStatusesComponent,\r\n AccountTypesComponent,\r\n StockTypesComponent,\r\n VehicleColorsComponent,\r\n VehicleMakesComponent,\r\n PopulateComponent,\r\n StocksAvailableComponent,\r\n StocksTotalsComponent,\r\n TransactComponent,\r\n TransactionsComponent,\r\n UndoRequestsComponent,\r\n UndoTryComponent,\r\n AccountUsersComponent,\r\n DialogComponent,\r\n DashboardComponent,\r\n UserProfileComponent,\r\n UnderConstructionComponent,\r\n NotFoundComponent,\r\n ConfirmTemplateDirective,\r\n ConfirmModalComponent,\r\n ManageUserComponent,\r\n BodyLoaderComponent,\r\n StockSliderComponent,\r\n ValidationErrorComponent,\r\n AlertComponent,\r\n ParamsTranslatePipe,\r\n ManageIntLicenseComponent,\r\n IntLicensesComponent,\r\n LicTransactionsPrintComponent,\r\n TrpTransactionsPrintComponent,\r\n DragDirective,\r\n ViewIntLicenseComponent,\r\n IntLicensePrintComponent,\r\n TripTiksComponent,\r\n ManageTripTikComponent,\r\n ViewTripTikComponent,\r\n CommitmentPrintComponent,\r\n TripTikPrintComponent,\r\n ReceiptPrintComponent,\r\n VehicleTypesComponent,\r\n VehicleModelsComponent,\r\n CurrenciesComponent,\r\n TripTiksClaimsComponent,\r\n ViewTripTikClaimComponent,\r\n VerificationComponent,\r\n StringJoinPipe,\r\n ArrayMapPipe,\r\n DocumentsRevokeRequestsComponent,\r\n UpdateStatusTripTikClaimComponent,\r\n ManageTripTikClaimComponent,\r\n TripTiksClaimsLogsComponent,\r\n TripTikClaimAttachmentsComponent,\r\n RecoverPasswordComponent,\r\n PursuingZonesComponent,\r\n CustomsPortsComponent,\r\n ExpiredDocumentsQueryComponent,\r\n ViewAccountComponent,\r\n IssuedDocumentsQueryComponent,\r\n TransactionDetailsLabelComponent,\r\n ELicensesComponent,\r\n CouponManagementComponent,\r\n ViewCouponManagementComponent,\r\n ManageCouponManagementComponent,\r\n ViewLicenseDetailComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n NgbModule,\r\n HttpClientModule,\r\n AppRoutingModule,\r\n A11yModule,\r\n CdkStepperModule,\r\n CdkTableModule,\r\n CdkTreeModule,\r\n DragDropModule,\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MomentDateModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n MatAutocompleteModule,\r\n PortalModule,\r\n ScrollingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n LightboxModule,\r\n ChartsModule,\r\n LoggerModule.forRoot({ serverLoggingUrl: '/api/logs', level: NgxLoggerLevel.DEBUG, serverLogLevel: NgxLoggerLevel.ERROR }),\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient]\r\n },\r\n defaultLanguage: 'ar'\r\n }),\r\n NgxPrintModule,\r\n NgxKjuaModule,\r\n NgSelectModule,\r\n ColorPickerModule\r\n // AutocompleteLibModule\r\n ],\r\n providers: [\r\n ApiHandler,\r\n AuthService,\r\n httpInterceptorProviders,\r\n {\r\n provide: UrlSerializer,\r\n useClass: UrlSerializerService\r\n },\r\n { provide: MAT_SNACK_BAR_DEFAULT_OPTIONS, useValue: { duration: 5000 } },\r\n { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } },\r\n { provide: MAT_DATE_LOCALE, useValue: 'en-GB' },\r\n {\r\n provide: MAT_DATE_FORMATS,\r\n useValue: {\r\n parse: {\r\n dateInput: ['L', 'l']\r\n },\r\n display: {\r\n dateInput: ['L', 'l'],\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n }\r\n }\r\n },\r\n { provide: DateAdapter, useClass: CustomDateAdapter },\r\n // {\r\n // provide: APP_INITIALIZER,\r\n // multi: true,\r\n // deps: [AppConfigService],\r\n // useFactory: (appConfigService: AppConfigService) => {\r\n // return () => {\r\n // //Make sure to return a promise!\r\n // return appConfigService.loadAppConfig();\r\n // };\r\n // }\r\n // },\r\n AuthGuardService,\r\n LoadingService,\r\n StringJoinPipe,\r\n SidenavService,\r\n { provide: MatPaginatorIntl, useClass: LangMatPaginatorIntl },\r\n { provide: ValidationService, deps: [TranslateService] },\r\n TranslationResolver,\r\n //AppConfigResolver,\r\n ConfigResolver,\r\n Title,\r\n BreadcrumbService,\r\n ConfirmService,\r\n ConfirmState,\r\n AlertService\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n\r\n\r\n","import { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Injectable, Injector } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams, HttpErrorResponse } from \"@angular/common/http\";\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, tap, map } from 'rxjs/operators';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthService } from './auth/auth.service';\r\nimport { Language } from './models/enums/language';\r\nimport { EndPoint } from './models/enums/end-point';\r\nimport { ValidationDto } from './models/validation';\r\nimport { AlertService } from '../shared/services/alert.service';\r\n// import { AlertService2 } from '../shared/services/alert.service2';\r\nimport { isArray } from 'util';\r\nimport { Login } from './models/login';\r\nimport { environment } from 'src/environments/environment';\r\n// import { AppConfig } from './services/app-config.service';\r\n//import * as AppConfig from '../../assets/config.json';\r\n// import { AlertService2 } from '../shared/services/alert.service2';\r\n\r\nlet httpOptions = {\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n // \"Accept\": \"application/json\",\r\n \"Accept\": \"*/*\",\r\n \"Authorization\": \"\",\r\n \"Accept-Languages\": \"ar\"\r\n }),\r\n body: {},\r\n responseType: \"json\",\r\n observe: \"body\",\r\n withCredentials: false,\r\n reportProgress: false,\r\n params: null\r\n};\r\nclass HttpOptions {\r\n headers?: HttpHeaders | { [header: string]: string | string[]; };\r\n observe?: \"body\";\r\n params?: HttpParams | { [param: string]: string | string[]; };\r\n reportProgress?: boolean;\r\n responseType?: \"json\";\r\n withCredentials?: boolean;\r\n}\r\n\r\n\r\n@Injectable()\r\nexport class ApiHandler {\r\n //API_BASE_URL: string;\r\n _lang: Language; //todo: change with application changing language;\r\n _apiBaseUrl: string;\r\n //options_;\r\n //auth: AuthService;\r\n //alert: AlertService;\r\n\r\n constructor(private http: HttpClient, private translate: TranslateService, private alert: AlertService) {\r\n ////console.log(this.http, translate, _snackBar);\r\n\r\n this._apiBaseUrl = environment.apiBaseUrl; //AppConfig.apiBaseUrl;\r\n // //console.log(this.translate);\r\n // console.warn(this.translate.currentLang);\r\n // console.warn(this.translate.store.currentLang);\r\n\r\n // const _currentLang = this.translate.store.currentLang;\r\n // //console.log(_currentLang);\r\n\r\n this.translate.store.onLangChange.subscribe(t => {\r\n //console.log(t.lang);\r\n //this._lang = translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this._lang = t.lang == 'ar' ? Language.Arabic : Language.English;\r\n (httpOptions.headers).set(\"Accept-Languages\", t.lang);\r\n\r\n\r\n // .append(\"\",\"\");\r\n\r\n //todo: refactor\r\n httpOptions.headers = new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n // \"Accept\": \"application/json\",\r\n \"Accept\": \"*/*\",\r\n \"Authorization\": \"\",\r\n \"Accept-Languages\": t.lang\r\n });\r\n\r\n //console.log(httpOptions.headers);\r\n\r\n });\r\n\r\n ////console.log(this.alert);\r\n //this.API_BASE_URL = environment.apiBaseUrl;\r\n\r\n //this._lang = translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n\r\n\r\n // (httpOptions.headers).set(\"Accept-Languages\", _currentLang);\r\n // //console.log((httpOptions.headers).get(\"Accept-Languages\"));\r\n\r\n // this.translate.onLangChange.subscribe(t => {\r\n // this._lang = t.lang == 'ar' ? Language.Arabic : Language.English;\r\n // (httpOptions.headers).set(\"Accept-Languages\", _currentLang);\r\n // //console.log((httpOptions.headers).get(\"Accept-Languages\"));\r\n // });\r\n }\r\n\r\n getAuthHeader() {\r\n return null; //todo: inject token\r\n }\r\n // handleError(err){\r\n // //console.log(err); //todo: handle errors\r\n // }\r\n\r\n\r\n public login(username: string, password: string) {\r\n return this.http.post(`${this._apiBaseUrl}/${EndPoint.AUTH}`, { username, password });\r\n }\r\n\r\n private handleError(err: HttpErrorResponse) {\r\n //console.log(err);\r\n let errorMessage = '';\r\n if (err.error instanceof ErrorEvent) {\r\n errorMessage = `An error occurred: ${err.error.message}`;\r\n } else {\r\n errorMessage = `Server returned code: ${err.status}, error message is: ${err.message}`;\r\n }\r\n\r\n switch (err.status) {\r\n case 401:\r\n AuthService.logout();\r\n break;\r\n\r\n case 400:\r\n let messages = [];\r\n // for (let key in err.error)\r\n // for (let error of err.error[key])\r\n // messages.push(`${this.translate.instant(key)}: ${this.translate.instant(error)}`);\r\n\r\n for (let key in err.error)\r\n for (let error of err.error[key])\r\n messages.push(`${key}: ${error}`);\r\n this.alert._error(messages);\r\n break;\r\n\r\n case 404:\r\n window.location.href = `/${this.translate.currentLang}/not-found`;\r\n\r\n default: //500\r\n console.error(err);\r\n }\r\n\r\n\r\n\r\n return throwError(err.error);\r\n\r\n\r\n\r\n // if (err.status == 401) {\r\n\r\n // } else if (err.status == 400) {\r\n\r\n // }\r\n //this.alert.error(errorMessage);\r\n //AlertService2.error('testse');\r\n // //console.log(this.alert);\r\n // if (!this.alert)\r\n // this.alert = new AlertService(this._snackBar, this.translate);\r\n // this.alert = this.injector.get(AlertService);\r\n ////console.log(this.alert);\r\n ////console.log(this.http, this.translate, this._snackBar);\r\n //this._snackBar.open('test');\r\n //this.alert.error('test');\r\n ////console.log(isArray(err.error));\r\n\r\n //console.error(err);\r\n ////console.log(err);\r\n\r\n // for (let e in err.error) {\r\n // //console.log(err.error[e]);\r\n // //message += '
    ' + err.error[e][0];\r\n // //messages.push(err.error[e][0]);\r\n // }\r\n\r\n //if (!(err.error instanceof ProgressEvent)) {\r\n\r\n ////console.log(messages);\r\n\r\n //}\r\n\r\n\r\n }\r\n\r\n public validate(dto: ValidationDto): Observable {\r\n const _url = `${this._apiBaseUrl}/${EndPoint.ASYNC_VALIDATION}`;\r\n\r\n return this.http.post(_url, JSON.stringify(dto), httpOptions)\r\n .pipe(\r\n map(Boolean),\r\n catchError(this.handleError.bind(this))\r\n );\r\n }\r\n\r\n public get(url: EndPoint, params = null, queryParams: {} = null, localized: boolean = true): Observable {\r\n let _url = `${this._apiBaseUrl}/${url}`;\r\n if (params != undefined) {\r\n if (Array.isArray(params))\r\n params.forEach(p => _url += `/${p}`);\r\n else\r\n _url += `/${params}`;\r\n }\r\n\r\n //this.LANG = this.LANG ? Language.Arabic : this.LANG;\r\n if (queryParams) {\r\n for (const [index, [key, value]] of Object.entries(Object.entries(queryParams)))\r\n _url += `${Number(index) == 0 ? '?' : '&'}${key}=${value != undefined && value != null ? value : ''}`;\r\n\r\n if (_url.indexOf('lang') == -1 && localized)\r\n _url += `&lang=${this._lang}`;\r\n } else\r\n _url += localized ? `?lang=${this._lang}` : '';\r\n\r\n //console.warn(_url);\r\n //console.log(httpOptions);\r\n\r\n if (url == EndPoint.ISSUING_VERIFY) {\r\n // (httpOptions.headers).delete('authorization');\r\n // (httpOptions.headers).delete('content-Type');\r\n // const proxyurl = \"https://cors-anywhere.herokuapp.com/\";\r\n // _url = proxyurl + _url;\r\n httpOptions.headers = new HttpHeaders({\r\n \"Accept\": \"*/*\",\r\n \"Accept-Languages\": \"ar\",\r\n\r\n });\r\n }\r\n //console.log(httpOptions);\r\n\r\n return this.http.get(_url, httpOptions)\r\n .pipe(\r\n tap(data => data),\r\n catchError(this.handleError.bind(this))\r\n );\r\n }\r\n\r\n public create(url: EndPoint, object: TObject): Observable {\r\n const _url = `${this._apiBaseUrl}/${url}`;\r\n\r\n return this.http.post(_url, JSON.stringify(object), httpOptions)\r\n .pipe(\r\n map(data => data),\r\n catchError(this.handleError.bind(this))\r\n );\r\n }\r\n\r\n public update(url: EndPoint, object: any,/*, withId: boolean = true,*/ args: (number | string | boolean)[] = []): Observable {\r\n let _url = `${this._apiBaseUrl}/${url}`;\r\n //_url += withId ? `/${object.id}` : ``;\r\n\r\n if (args.length > 0)\r\n args.forEach(a => _url += `/${a}`);\r\n\r\n return this.http.put(_url, JSON.stringify(object), httpOptions)\r\n .pipe(\r\n map(Boolean),\r\n catchError(this.handleError.bind(this))\r\n );\r\n }\r\n\r\n public delete(url: EndPoint, id: number | string): Observable {\r\n const _url = `${this._apiBaseUrl}/${url}/${id}`;\r\n\r\n return this.http.delete(_url, httpOptions)\r\n .pipe(\r\n map(Boolean),\r\n catchError(this.handleError.bind(this))\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { AuthService } from './auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { AccountType } from '../models/enums/account-type';\r\n\r\n@Injectable()\r\nexport class AuthGuardService implements CanActivate {\r\n constructor(public auth: AuthService, private router: Router, private alert: AlertService) { }\r\n\r\n canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n if (this.auth.isAuthenticated()) {\r\n let securityRoles = _route.data.securityRoles ? _route.data.securityRoles as Role[] : [];\r\n if (securityRoles.length > 0) {\r\n for (let role of securityRoles) \r\n if (this.auth.currentUser.isInRole(role))\r\n return true;\r\n\r\n //this.alert.error('test');\r\n this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });\r\n //this.router.navigate(['/login']);\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n //todo: check if the return url is ar or en only, should skip\r\n this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });\r\n return false;\r\n }\r\n}","import { AuthService } from './auth.service';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpHandler, HttpRequest, HttpEvent } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { EndPoint } from '../models/enums/end-point';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n constructor(private auth: AuthService) { }\r\n\r\n intercept(req: HttpRequest,\r\n next: HttpHandler): Observable> {\r\n\r\n const idToken = localStorage.getItem(\"jwt_token;\" + environment.apiBaseUrl);\r\n\r\n if (idToken && !this.auth.isTokenExpired() && req.url.indexOf(`${environment.apiBaseUrl}/${EndPoint.AUTH}`) == -1) {\r\n const cloned = req.clone({\r\n headers: req.headers.set(\"Authorization\", \"Bearer \" + idToken)\r\n });\r\n //var decoded = jwt_decode(idToken);\r\n return next.handle(cloned);\r\n }\r\n else {\r\n AuthService.authActivity.next(false);\r\n return next.handle(req);\r\n }\r\n }\r\n}\r\n\r\n/** Http interceptor providers in outside-in order */\r\nexport const httpInterceptorProviders = [\r\n { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },\r\n];","import * as moment from \"moment\";\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { tap, shareReplay } from 'rxjs/operators'\r\nimport { Subject } from 'rxjs';\r\nimport jwt_decode from 'jwt-decode';\r\nimport { Language } from '../models/enums/language';\r\nimport { EndPoint } from '../models/enums/end-point';\r\nimport { Role } from '../models/enums/role';\r\nimport { Login } from '../models/login';\r\nimport { AccountType } from '../models/enums/account-type';\r\nimport { environment } from \"src/environments/environment\";\r\n// import { AppConfig } from '../services/app-config.service';\r\n//import * as AppConfig from '../../../assets/config.json';\r\n\r\n// export interface JwtToken {\r\n// id: string,\r\n// username: string,\r\n// user_titles: string[],\r\n// account_id: number,\r\n// account_titles: string[],\r\n// account_type_id: number,\r\n// account_type_titles: string[],\r\n// rol: string[],\r\n// exp: number,\r\n// }\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n // \"Accept\": \"application/json\",\r\n \"Accept\": \"*/*\",\r\n \"Authorization\": \"\"\r\n }),\r\n body: {},\r\n responseType: \"json\",\r\n observe: \"body\",\r\n withCredentials: false,\r\n reportProgress: false,\r\n params: null\r\n};\r\nclass HttpOptions {\r\n headers?: HttpHeaders | { [header: string]: string | string[]; };\r\n observe?: \"body\";\r\n params?: HttpParams | { [param: string]: string | string[]; };\r\n reportProgress?: boolean;\r\n responseType?: \"json\";\r\n withCredentials?: boolean;\r\n}\r\n\r\n\r\n\r\nexport interface JwtToken {\r\n userId: string,\r\n isSystemAccount: boolean,\r\n isAdministrator: boolean,\r\n username: string,\r\n userTitles: string[],\r\n accountId: number,\r\n parentAccountId?: number,\r\n accountTitles: string[],\r\n accountTypeId: number,\r\n accountTypeTitles: string[],\r\n claimsCountries: number[],\r\n //isClaimsApplicable: boolean,\r\n roles: number[],\r\n expiry: number,\r\n intLicenseAllowedValidity: number,\r\n isInRole: (role: Role) => boolean,\r\n isInAnyOfRoles: (roles: Role[]) => boolean\r\n}\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n lang: Language;\r\n static authActivity = new Subject();\r\n static userMeta = new Subject<{ id: any, name: any, avatar: any }>();\r\n\r\n constructor(private http: HttpClient) {\r\n this.lang = Language.Arabic;// translate.currentLang == 'en' ? Language.English : Language.Arabic;\r\n }\r\n\r\n login(login: Login) {\r\n return this.http.post(`${environment.apiBaseUrl}/${EndPoint.AUTH}`, login)\r\n .pipe(tap(res => this.setSession(res)), shareReplay()).toPromise();\r\n }\r\n\r\n forgotPassword(recoverPassword: { email: string }) {\r\n return this.http.post(`${environment.apiBaseUrl}/${EndPoint.FORGOT_PASSWORD}`, recoverPassword).toPromise();\r\n }\r\n\r\n resetPassword(resetPassword: { id: string, token: string, password: string }) {\r\n return this.http.post(`${environment.apiBaseUrl}/${EndPoint.RESET_PASSWORD}`, resetPassword).toPromise();\r\n }\r\n\r\n private setSession(authResult) {\r\n const expiresAt = moment(authResult.expiry);\r\n\r\n localStorage.setItem('jwt_token;' + environment.apiBaseUrl, authResult.token);\r\n localStorage.setItem('expires_at;' + environment.apiBaseUrl, JSON.stringify(expiresAt.valueOf()));\r\n AuthService.authActivity.next(true);\r\n }\r\n\r\n static logout() {\r\n localStorage.removeItem('jwt_token;' + environment.apiBaseUrl);\r\n localStorage.removeItem('expires_at;' + environment.apiBaseUrl);\r\n AuthService.authActivity.complete();\r\n window.location.href = \"/\";\r\n }\r\n\r\n get currentUser(): JwtToken {\r\n const token = localStorage.getItem('jwt_token;' + environment.apiBaseUrl);\r\n\r\n //console.log(dToken[\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\"])\r\n if (token) {\r\n const dToken = jwt_decode(token);\r\n // //console.log(dToken);\r\n // //console.log(typeof dToken[\"claims_countries\"])\r\n //console.log(typeof dToken[\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\"]);\r\n return {\r\n userId: dToken[\"id\"],\r\n isSystemAccount: dToken[\"is_system_account\"] == \"True\",\r\n isAdministrator: dToken[\"is_administrator\"] == \"True\",\r\n username: dToken[\"username\"],\r\n userTitles: <[]>dToken[\"user_titles\"],\r\n accountId: dToken[\"account_id\"],\r\n parentAccountId: dToken[\"parent_account_id\"],\r\n accountTitles: <[]>dToken[\"account_titles\"],\r\n accountTypeId: dToken[\"account_type_id\"],\r\n claimsCountries: (typeof dToken[\"claims_countries\"] == \"object\" ?\r\n <[]>dToken[\"claims_countries\"]\r\n : [dToken[\"claims_countries\"]]).map(r => Number(r)),\r\n //isClaimsApplicable: dToken[\"is_c_applicable\"] == \"True\",\r\n intLicenseAllowedValidity: Number(dToken[\"intlicense_allowed_vyears\"]),\r\n accountTypeTitles: <[]>dToken[\"account_type_titles\"],\r\n roles: typeof dToken[\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\"] == \"object\" ?\r\n (<[]>dToken[\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\"]).map(r => Number(r))\r\n : [dToken[\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\"]],\r\n isInRole: (role: Role) => this.currentUser.roles.indexOf(role) > -1 /*additional URO rule*/ && (role != Role.ACCOUNTS_READ || this.currentUser.accountTypeId != AccountType.ReleaseCenter),\r\n isInAnyOfRoles: (roles: Role[]) => this.currentUser.roles.some(x => roles.includes(x)),\r\n expiry: dToken[\"exp\"]\r\n }\r\n }\r\n return null;\r\n //return _token ? jwt_decode(_token) as JwtToken : null;\r\n }\r\n\r\n // get userId() {\r\n // return this.token ? this.token.id : null;\r\n // }\r\n\r\n // get userTitles() {\r\n // return this.token ? this.token.user_titles : ['', ''];\r\n // }\r\n\r\n // get username() {\r\n // return this.token ? this.token.username : null;\r\n // }\r\n\r\n // get accountId() {\r\n // return this.token ? this.token.account_id : null;\r\n // }\r\n\r\n // get accountTypeId() {\r\n // return this.token ? this.token.account_type_id : null;\r\n // }\r\n\r\n // get accountTypeTitles() {\r\n // return this.token ? this.token.account_type_titles : ['', ''];\r\n // }\r\n\r\n // get isSystemAccount() {\r\n // //todo: retrive value from token\r\n // return this.accountId == 1;\r\n // }\r\n\r\n // get accountTitles() {\r\n // return this.token ? this.token.account_titles : ['', ''];\r\n // }\r\n\r\n // get roles() {\r\n // return this.token ?\r\n // (<[]>this.token[\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\"]).map(r => Number(r))\r\n // : [];\r\n // }\r\n\r\n public isAuthenticated() {\r\n return moment().isBefore(this.getExpiration());\r\n }\r\n\r\n // public isInRole(role: Role) {\r\n // return this.token.roles.indexOf(role) > -1;\r\n // // return this.roles.indexOf(role) > -1;\r\n // }\r\n\r\n isLoggedOut() {\r\n return !this.isAuthenticated();\r\n }\r\n\r\n getExpiration() {\r\n const expiration = localStorage.getItem(\"expires_at;\" + environment.apiBaseUrl);\r\n const expiresAt = JSON.parse(expiration);\r\n return moment(expiresAt);\r\n }\r\n\r\n isTokenExpired() {\r\n return this.getExpiration() <= moment();\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'mac-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n\r\n year: string;\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.year = moment().format('YYYY');\r\n }\r\n\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { AuthService } from './../../auth/auth.service';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { LoadingService } from 'src/app/shared/services/loading';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Language } from '../../models/enums/language';\r\nimport { NgZone } from \"@angular/core\";\r\n\r\n\r\n@Component({\r\n selector: 'mac-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n lang: Language = Language.Arabic;\r\n loading: boolean = false;\r\n //DeterminateLoading: { status: boolean, value: number } = { status: false, value: 0 };\r\n authenticated: boolean;\r\n\r\n\r\n get Language() {\r\n return Language;\r\n }\r\n\r\n switchLangEnabled = true;\r\n\r\n constructor(private router: Router,\r\n private route: ActivatedRoute,\r\n private loader: LoadingService,\r\n private zone: NgZone,\r\n public authService: AuthService,\r\n public translate: TranslateService) {\r\n\r\n this.authenticated = this.authService.isAuthenticated();\r\n AuthService.authActivity.subscribe(loggedin => this.authenticated = loggedin);\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.onLangChange.subscribe(_lang => this.lang = _lang.lang == 'en' ? Language.English : Language.Arabic);\r\n this.switchLangEnabled = window.location.href.indexOf('/verify/') == -1;\r\n }\r\n\r\n toggleLang() {\r\n if (this.router.url.indexOf('/login') > - 1) {\r\n this.translate.use(this.translate.currentLang == 'ar' ? 'en' : 'ar');\r\n } else {\r\n const url = this.router.url.split('/');\r\n ////console.log(url);\r\n url[1] = this.translate.currentLang == 'ar' ? 'en' : 'ar';\r\n //this.router.navigate(url);\r\n //url[0] = \"/\";\r\n const _url = url.join('/');\r\n ////console.log(_url);\r\n this.router.initialNavigation();\r\n //todo: check why component doesn't reload with language change\r\n //this.router.navigate(url);\r\n\r\n window.location.href = _url;\r\n\r\n // this.zone.run(() => {\r\n // this.router.navigate([_url], { skipLocationChange: true });\r\n // });\r\n }\r\n\r\n }\r\n}\r\n","import { AuthService } from './../../auth/auth.service';\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\n\r\n@Component({\r\n selector: 'mac-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n styleLoading: boolean;\r\n form: FormGroup;\r\n error: any;\r\n\r\n constructor(private auth: AuthService,\r\n @Inject(DOCUMENT) private document: Document,\r\n private translate: TranslateService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private loader: LoadingService,\r\n private fb: FormBuilder) {\r\n\r\n\r\n this.translate.setDefaultLang('ar');\r\n this.translate.get(\"last.dummy\");\r\n LoadingService.style.next(false);\r\n }\r\n\r\n private loadStyle(lang: string) {\r\n\r\n const head = this.document.getElementsByTagName('head')[0];\r\n const body = this.document.getElementsByTagName('body')[0];\r\n\r\n body.setAttribute('dir', lang == 'ar' ? 'rtl' : 'ltr');\r\n const styleFileName = lang == 'ar' ? 'bootstrap-rtl.css' : 'bootstrap.css';\r\n let themeLink = this.document.getElementById('bootstrap') as HTMLLinkElement;\r\n if (themeLink) {\r\n themeLink.href = styleFileName;\r\n } else {\r\n const style = this.document.createElement('link');\r\n style.id = 'bootstrap';\r\n style.rel = 'stylesheet';\r\n style.href = styleFileName;\r\n //will be always overriden by global styles.scss\r\n head.prepend(style);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n //AuthService.logout();\r\n\r\n this.formInit();\r\n this.translate.get(\"last.dummy\");\r\n\r\n //this.translate.use('ar');\r\n this.translate.onLangChange.subscribe(l => {\r\n //this.loader.load(null);\r\n this.loadStyle(l.lang);\r\n // this.loader.load(null, false);\r\n });\r\n\r\n // this.loader.styleLoading.subscribe(status => {\r\n // this.styleLoading = status;\r\n // });\r\n\r\n LoadingService.style.subscribe(status => {\r\n this.styleLoading = status;\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loader.load(LoaderType.Nav, false);\r\n //LoadingService.style.next(false);\r\n }, 500);\r\n\r\n //this.loader.load(null, false);\r\n }\r\n\r\n onSubmit() {\r\n this.error = null;\r\n\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.form.disable();\r\n\r\n this.auth.login(this.form.value)\r\n .then(result => {\r\n LoadingService.style.next(true);\r\n \r\n this.route.snapshot.queryParamMap.get('returnUrl') ?\r\n this.router.navigateByUrl(this.route.snapshot.queryParamMap.get('returnUrl'))\r\n : this.router.navigate(['/', this.translate.currentLang ? this.translate.currentLang : 'ar']);\r\n })\r\n .catch(e => {\r\n this.form.enable();\r\n if (e instanceof HttpErrorResponse) {\r\n if (e.status == 400) {\r\n this.error = e.error.login ? e.error.login[0] : null;\r\n } else\r\n this.error = \"_MESSAGE_SERVER_ERROR\";\r\n }\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n username: ['', Validators.required],\r\n password: ['', Validators.required],\r\n rememberMe: [false]\r\n });\r\n }\r\n}\r\n","import { ActivatedRoute, Router, NavigationEnd } from '@angular/router';\r\nimport { Component, OnInit, ViewChild, ElementRef, Renderer2, Inject, ChangeDetectionStrategy } from '@angular/core';\r\nimport { trigger, state, style, transition, animate } from '@angular/animations';\r\nimport { MatSidenavContent } from '@angular/material/sidenav';\r\nimport { SidenavService } from '../../services/sidenav.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { BreadcrumbService } from 'src/app/shared/services/breadcrumb.service';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { AuthService } from '../../auth/auth.service';\r\n\r\n@Component({\r\n selector: 'mac-main',\r\n templateUrl: './main.component.html',\r\n styleUrls: ['./main.component.scss'],\r\n //changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MainComponent implements OnInit {\r\n opened: boolean = true;\r\n mobileView: boolean = false;\r\n navLoading: boolean = true;\r\n bodyLoading: boolean;\r\n styleLoading: boolean;\r\n\r\n @ViewChild('sidenav') sidenav;\r\n @ViewChild('content') content: MatSidenavContent;\r\n\r\n constructor(private renderer: Renderer2,\r\n @Inject(DOCUMENT) private document: Document,\r\n private elm: ElementRef,\r\n private sidenavService: SidenavService,\r\n private loader: LoadingService,\r\n private route: ActivatedRoute,\r\n private translate: TranslateService,\r\n private router: Router,\r\n private titleService: Title,\r\n private breadcrumbService: BreadcrumbService,\r\n private auth: AuthService) {\r\n\r\n var ua = navigator.userAgent;\r\n\r\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobile|mobile|CriOS/i.test(ua))\r\n this.mobileView = true;\r\n\r\n this.opened = !this.mobileView;\r\n this.translate.setDefaultLang('ar');\r\n this.translate.use(route.snapshot.paramMap.get('lang'));\r\n\r\n ////console.log('router navigated:', this.router.navigated);\r\n\r\n //if(!this.router.navigated)\r\n this.styleLoading = true;\r\n // //todo: fix glitch happens when requesting /en directly\r\n\r\n //LoadingService.style.next(true);\r\n // this.loader.load(null);\r\n // if (this.translate.currentLang == 'en') {\r\n // //setTimeout(() => {\r\n // this.loadStyle(this.translate.currentLang);\r\n // this.loader.load(null, false);\r\n // //}, 1000);\r\n // }\r\n }\r\n\r\n private loadStyle(lang: string) {\r\n const head = this.document.getElementsByTagName('head')[0];\r\n const body = this.document.getElementsByTagName('body')[0];\r\n\r\n body.setAttribute('dir', lang == 'ar' ? 'rtl' : 'ltr');\r\n const styleFileName = lang == 'ar' ? 'bootstrap-rtl.css' : 'bootstrap.css';\r\n let themeLink = this.document.getElementById('bootstrap') as HTMLLinkElement;\r\n //if (themeLink) {\r\n themeLink.href = styleFileName;\r\n }\r\n\r\n ngAfterViewInit() {\r\n //this.loader.load(null, false);\r\n // LoadingService.style.next(false);\r\n }\r\n\r\n getAccountType() {\r\n const prefix = 'ACC_TITLE_ACCOUNTS_';\r\n\r\n if (this.auth.currentUser.accountTypeId == 1 && this.auth.currentUser.isSystemAccount)\r\n return prefix + \"BRANCHES\";\r\n\r\n if (this.auth.currentUser.accountTypeId == 1)\r\n return prefix + \"AGENTS\";\r\n\r\n if (this.auth.currentUser.accountTypeId == 2)\r\n return prefix + \"DISTRIBUTORS\";\r\n\r\n return prefix + \"SUB_DISTRIBUTORS\";\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.router\r\n .events.pipe(\r\n filter(event => event instanceof NavigationEnd),\r\n map(() => {\r\n ////console.log('ev');\r\n let _titles = [];\r\n let _titlesLinks: string[][] = [];\r\n let child = this.route;\r\n let _path = '/';\r\n let level = 0;\r\n\r\n const _lang = child.snapshot.paramMap.get('lang');\r\n if (this.translate.currentLang != _lang)\r\n this.translate.use(_lang);\r\n\r\n if (this.router.url == `/${this.translate.currentLang}/`) {\r\n _titles.push(this.translate.instant(child.snapshot.firstChild.data['title']));\r\n } else if (this.router.url == '/login') {\r\n _titles.push(this.translate.instant(child.snapshot.data['title']));\r\n }\r\n else {\r\n while (child.firstChild) {\r\n child = child.firstChild;\r\n if (child.snapshot.data['title']) {\r\n\r\n let title =\r\n child.snapshot.data['title'] == \"ACC_TITLE_ACCOUNTS\" ?\r\n this.getAccountType()\r\n : child.snapshot.data['title'];\r\n\r\n if (level <= 1)\r\n _titles.push(this.translate.instant(title));\r\n\r\n const root = level == 0 && !child.snapshot.url[0];\r\n\r\n _path += root ? '' : child.snapshot.url[0] + '/';\r\n _titlesLinks.push([root ? '_APP_HOME' : title, _path]);\r\n }\r\n level++;\r\n }\r\n }\r\n this.breadcrumbService.setLinks(_titlesLinks);\r\n return _titles.join(' | ');\r\n })\r\n ).subscribe((ttl: string) => {\r\n this.titleService.setTitle(ttl);\r\n });\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n //todo: fix glitch happens when requesting /en directly\r\n // if (this.translate.currentLang == 'en') {\r\n // //this.loader.load(null);\r\n // setTimeout(() => {\r\n // this.loadStyle(this.translate.currentLang);\r\n // this.loader.load(null, false);\r\n // }, 1000);\r\n // }\r\n ////console.log(this.translate.currentLang);\r\n if (this.translate.currentLang == 'en')\r\n this.loadStyle(this.translate.currentLang);\r\n setTimeout(() => {\r\n LoadingService.style.next(false);\r\n }, 500);\r\n\r\n this.translate.onLangChange.subscribe(t => {\r\n ////console.log('sub', t, this.translate.currentLang);\r\n //const _lang = t.lang;\r\n // if (this.translate.currentLang != _lang) {\r\n\r\n //this.loader.load(null);\r\n LoadingService.style.next(true);\r\n setTimeout(() => {\r\n //this.translate.use(_lang);\r\n this.loadStyle(this.translate.currentLang);\r\n //this.loader.load(null, false);\r\n setTimeout(() => {\r\n LoadingService.style.next(false);\r\n }, 250);\r\n\r\n }, 1000);\r\n // }\r\n // else {\r\n // this.loader.load(null, false);\r\n // }\r\n });\r\n\r\n // this.route.params.subscribe(params => {\r\n // const _lang = params.lang;\r\n // const _lang = this.route.snapshot.paramMap.get('lang');\r\n // this.translate.use(_lang);\r\n // //if (this.translate.currentLang != _lang) {\r\n // this.loader.load(null);\r\n // setTimeout(() => {\r\n // this.translate.use(_lang);\r\n // this.loadStyle(_lang);\r\n // this.loader.load(null, false);\r\n // }, 1000);\r\n // }\r\n // else {\r\n // this.loader.load(null, false);\r\n // }\r\n // });\r\n\r\n // this.loader.styleLoading.subscribe(status => {\r\n // this.styleLoading = status;\r\n // });\r\n LoadingService.style.subscribe(status => {\r\n ////console.log('new style', status);\r\n this.styleLoading = status;\r\n });\r\n\r\n this.loader.navLoading.subscribe(status => {\r\n this.navLoading = status;\r\n });\r\n\r\n this.loader.bodyLoading.subscribe(status => {\r\n this.bodyLoading = status;\r\n });\r\n }\r\n\r\n navToggle() {\r\n this.sidenav.toggle();\r\n\r\n const elm = this.content.getElementRef().nativeElement;\r\n if (elm.classList.value.indexOf('mat-drawer-opened') > -1) {\r\n this.sidenavService.opened.next(false);\r\n this.renderer.removeClass(elm, 'mat-drawer-opened');\r\n } else {\r\n this.sidenavService.opened.next(true);\r\n this.renderer.addClass(elm, 'mat-drawer-opened');\r\n }\r\n }\r\n}\r\n","import { AuthService } from '../../auth/auth.service';\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { comparePasswords } from 'src/app/shared/services/custom-validators';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\n\r\n@Component({\r\n selector: 'mac-recover-password',\r\n templateUrl: './recover-password.component.html',\r\n styleUrls: ['./recover-password.component.scss']\r\n})\r\nexport class RecoverPasswordComponent implements OnInit {\r\n styleLoading: boolean;\r\n form: FormGroup;\r\n //error: any;\r\n //success: any;\r\n view: 'RECOVER' | 'RESET';\r\n userId: string;\r\n token: string;\r\n\r\n get email() { return this.form.get('email'); };\r\n get password() { return this.form.get('pass.password'); };\r\n get passwordConfirm() { return this.form.get('pass.passwordConfirm'); };\r\n\r\n constructor(private auth: AuthService,\r\n @Inject(DOCUMENT) private document: Document,\r\n private translate: TranslateService,\r\n private route: ActivatedRoute,\r\n private alert: AlertService,\r\n private router: Router,\r\n private loader: LoadingService,\r\n private fb: FormBuilder) {\r\n\r\n\r\n this.translate.setDefaultLang('ar');\r\n this.translate.get(\"last.dummy\");\r\n LoadingService.style.next(false);\r\n }\r\n\r\n private loadStyle(lang: string) {\r\n\r\n const head = this.document.getElementsByTagName('head')[0];\r\n const body = this.document.getElementsByTagName('body')[0];\r\n\r\n body.setAttribute('dir', lang == 'ar' ? 'rtl' : 'ltr');\r\n const styleFileName = lang == 'ar' ? 'bootstrap-rtl.css' : 'bootstrap.css';\r\n let themeLink = this.document.getElementById('bootstrap') as HTMLLinkElement;\r\n if (themeLink) {\r\n themeLink.href = styleFileName;\r\n } else {\r\n const style = this.document.createElement('link');\r\n style.id = 'bootstrap';\r\n style.rel = 'stylesheet';\r\n style.href = styleFileName;\r\n //will be always overriden by global styles.scss\r\n head.prepend(style);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n //AuthService.logout();\r\n this.userId = this.route.snapshot.queryParamMap.get('id');\r\n this.token = this.route.snapshot.queryParamMap.get('token');\r\n\r\n //console.log(this.userId, this.token);\r\n\r\n if (!this.userId || !this.token) {\r\n this.view = 'RECOVER'\r\n this.form = this.fb.group({\r\n email: ['', [Validators.required, Validators.email]]\r\n });\r\n } else {\r\n //console.log(this.token.trim().replace(/\\s/g, ''))\r\n this.view = 'RESET';\r\n this.form = this.fb.group({\r\n pass: this.fb.group({\r\n password: ['', [Validators.required, Validators.minLength(6)]], //todo: regex for password pattern\r\n passwordConfirm: ['']\r\n },\r\n { validator: comparePasswords })\r\n });\r\n }\r\n\r\n this.translate.get(\"last.dummy\");\r\n\r\n //this.translate.use('ar');\r\n this.translate.onLangChange.subscribe(l => {\r\n //this.loader.load(null);\r\n this.loadStyle(l.lang);\r\n // this.loader.load(null, false);\r\n });\r\n\r\n // this.loader.styleLoading.subscribe(status => {\r\n // this.styleLoading = status;\r\n // });\r\n\r\n LoadingService.style.subscribe(status => {\r\n this.styleLoading = status;\r\n });\r\n\r\n\r\n\r\n\r\n }\r\n\r\n // resetForm: FormGroup;\r\n // recoverForm: FormGroup;\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loader.load(LoaderType.Nav, false);\r\n //LoadingService.style.next(false);\r\n }, 500);\r\n\r\n //this.loader.load(null, false);\r\n }\r\n\r\n onSubmit() {\r\n //this.error = null;\r\n //const form = this.view == 'RECOVER' ? this.recoverForm : this.resetForm;\r\n\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.form.disable();\r\n\r\n if (this.view == 'RECOVER') {\r\n this.auth.forgotPassword(this.form.value)\r\n .then(result => {\r\n //console.log(result);\r\n //LoadingService.style.next(true);\r\n if (result) {\r\n this.alert.success('SEC_ALERT_PASSWORD_RECOVERY_REQUEST', false);\r\n // setTimeout(() => {\r\n // //redirect to login\r\n // this.router.navigate(['/', this.translate.currentLang ? this.translate.currentLang : 'ar']);\r\n // }, 1000);\r\n } else {\r\n this.alert.failure('_MESSAGE_CANNOT_PROCESS', false);\r\n this.form.enable();\r\n }\r\n })\r\n .catch(e => {\r\n this.alert.failure('_MESSAGE_CANNOT_PROCESS', false);\r\n this.form.enable();\r\n // this.error = '_MESSAGE_ALERT_ERROR';\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n else {\r\n this.auth.resetPassword({ id: this.userId, token: this.token.trim().replace(/\\s/g, '+'), password: this.password.value })\r\n .then(result => {\r\n //console.log(result);\r\n if (result) {\r\n this.alert.success('_ACTION_RESETTING');\r\n setTimeout(() => {\r\n //redirect to login\r\n this.router.navigate(['/', this.translate.currentLang ? this.translate.currentLang : 'ar']);\r\n }, 1000);\r\n } else {\r\n this.alert.failure('_MESSAGE_CANNOT_PROCESS', false);\r\n this.form.enable();\r\n }\r\n }).catch(e => {\r\n this.alert.failure('_MESSAGE_CANNOT_PROCESS', false);\r\n this.form.enable();\r\n //this.error = '_MESSAGE_CANNOT_PROCESS';\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { Component, OnInit, ElementRef, Renderer2 } from '@angular/core';\r\nimport { AuthService } from '../../auth/auth.service';\r\nimport { Router } from '@angular/router';\r\nimport { SidenavService } from '../../services/sidenav.service';\r\nimport { UsersService } from 'src/app/features/security/services/users.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { AccountType } from '../../models/enums/account-type';\r\nimport { EndPoint } from '../../models/enums/end-point';\r\n\r\n@Component({\r\n selector: 'mac-sidenav',\r\n templateUrl: './sidenav.component.html',\r\n styleUrls: ['./sidenav.component.scss'],\r\n providers: [UsersService]\r\n})\r\nexport class SidenavComponent implements OnInit {\r\n\r\n constructor(public auth: AuthService,\r\n public router: Router,\r\n private elm: ElementRef,\r\n private renderer: Renderer2,\r\n private service: SidenavService,\r\n private userService: UsersService,\r\n public translate: TranslateService) {\r\n this.user = { name: '', avatar: this.defaultAvatar }\r\n }\r\n\r\n get Role() {\r\n return Role;\r\n }\r\n\r\n get AccountType() {\r\n return AccountType;\r\n }\r\n\r\n get EndPoint() { return EndPoint; };\r\n\r\n defaultAvatar = 'assets/images/user.svg';\r\n opened: boolean = true;\r\n user: {\r\n name: string;\r\n avatar: string;\r\n };\r\n\r\n getAccountType() {\r\n const prefix = 'ACC_TITLE_ACCOUNTS_';\r\n\r\n if (this.auth.currentUser.accountTypeId == 1 && this.auth.currentUser.isSystemAccount)\r\n return prefix + \"BRANCHES\";\r\n\r\n if (this.auth.currentUser.accountTypeId == 1)\r\n return prefix + \"AGENTS\";\r\n\r\n if (this.auth.currentUser.accountTypeId == 2)\r\n return prefix + \"DISTRIBUTORS\";\r\n\r\n return prefix + \"SUB_DISTRIBUTORS\";\r\n }\r\n\r\n ngOnInit() {\r\n //console.warn(this.getAccountType());\r\n ////console.log(this.auth.accountTypeId);\r\n ////console.log(this.auth.accountTypeId == AccountType.ReleaseCenter);\r\n AuthService.userMeta.subscribe(u => {\r\n ////console.log(u);\r\n this.user.name = u.name;\r\n this.user.avatar = u.avatar ? u.avatar : this.defaultAvatar;\r\n });\r\n\r\n this.userService.getUserMeta().then(u => {\r\n //this.user.name = u.name;\r\n //this.user.avatar = u.avatar ? `data:image/png;base64,${u.avatar}` : this.defaultAvatar;\r\n const _avatar = u.avatar ? `data:image/png;base64,${u.avatar}` : this.defaultAvatar;\r\n AuthService.userMeta.next({ id: u.id, name: u.name, avatar: _avatar });\r\n });\r\n\r\n this.service.opened.subscribe(o => {\r\n this.opened = o;\r\n if (!this.opened) {\r\n let slib = this.elm.nativeElement.querySelectorAll('.cont');\r\n slib.forEach(element => {\r\n if (element.classList.contains('show'))\r\n this.renderer.removeClass(element, 'show');\r\n });\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n const links = this.elm.nativeElement.querySelectorAll('.nav-item');\r\n links.forEach(link => {\r\n link.addEventListener('click', this.linkClick.bind(this));\r\n });\r\n\r\n }\r\n\r\n linkClick(event) {\r\n if (!this.opened) {\r\n let slib = this.elm.nativeElement.querySelectorAll('.cont');\r\n slib.forEach(element => {\r\n if (element.classList.contains('show'))\r\n this.renderer.removeClass(element, 'show');\r\n });\r\n }\r\n }\r\n\r\n\r\n logout() {\r\n AuthService.logout();\r\n //window.location.href = \"/\";\r\n }\r\n\r\n displayContext(event, id) {\r\n if (!this.opened) {\r\n let elm = this.elm.nativeElement.querySelector('#' + id);\r\n if (event.type != 'mouseleave')\r\n if (!elm.classList.contains('show')) {\r\n //make sure all other menus are closed\r\n let slib = this.elm.nativeElement.querySelectorAll('.cont');\r\n slib.forEach(element => {\r\n if (element.classList.contains('show'))\r\n this.renderer.removeClass(element, 'show');\r\n });\r\n this.renderer.addClass(elm, 'show');\r\n }\r\n\r\n else\r\n this.renderer.removeClass(elm, 'show');\r\n }\r\n }\r\n}\r\n","export enum AccountType {\r\n PrintingPress = -2, //virtual types\r\n PrimaryStock = -1, //virtual types\r\n \r\n Branch = 1,\r\n Agent = 2,\r\n Distributor = 3,\r\n SubDistributor = 4,\r\n ReleaseCenter = 5\r\n}","export enum BloodGroup {\r\n A_pos = 'A+',\r\n A_neg = 'A-',\r\n AB_pos = 'AB+',\r\n AB_neg = 'AB-',\r\n B_pos = 'B+',\r\n B_neg = 'B-',\r\n O_pos = 'O+',\r\n O_neg = 'O-'\r\n}","export enum ConfigObject {\r\n VehicleUpholsteryTypes = 1,\r\n VehicleOptions,\r\n VehicleSeatsCountRange,\r\n VehicleManufactureYearRange,\r\n VehicleCylindersCountRange,\r\n VehicleSpareTiresCountOptions,\r\n IntLicenseMaxPrintLimit,\r\n TripTikMaxPrintLimit,\r\n TripTikPrintEmptyValue\r\n}","export enum _DocumentType {\r\n DrivingLicense = 1,\r\n TripTikDocument = 2\r\n}","export enum EndPoint {\r\n //__BASE_URL = 'https://localhost:44349',\r\n //__BASE_URL = \"https://api-sys.mac.org.sa\",\r\n // __BASE_URL = \"https://api-stg.mac.org.sa\",\r\n AUTH = \"security/auth\",\r\n FORGOT_PASSWORD = \"security/forgot-password\",\r\n RESET_PASSWORD = \"security/reset-password\",\r\n CONFIG = \"config\",\r\n UPLOADS = \"uploads\",\r\n ASYNC_VALIDATION = \"validation/validate\",\r\n STATISTICS_ISSUINGS_PER_MONTH = \"statistics/issuings-per-month\",\r\n COUNTRIES = \"lookups/countries\",\r\n CITIES = \"lookups/cities\",\r\n VEHICLE_COLORS = \"lookups/vehicle-colors\",\r\n VEHICLE_MAKES = \"lookups/vehicle-makes\",\r\n VEHICLE_MODELS = \"lookups/vehicle-models\",\r\n VEHICLE_TYPES = \"lookups/vehicle-types\",\r\n ACCOUNT_TYPES = \"lookups/account-types\",\r\n CURRENCIES = \"lookups/currencies\",\r\n CUSTOMS_PORTS = \"lookups/customs-ports\",\r\n TRIPTIK_CLAIMS_PURSUING_ZONES = \"lookups/pursuing-zones\",\r\n TRIPTIK_CLAIMS_STATUSES = \"lookups/trip-tik-claims-statuses\",\r\n TRIPTIK_CLAIMS_STATUSES_BASE = \"lookups/trip-tik-claims-statuses/base\",\r\n ACCOUNT_TYPES_ALLOWED = \"lookups/account-types/allowed\",\r\n ACCOUNT_STATUSES = \"lookups/account-statuses\",\r\n STOCK_TYPES = \"lookups/stock-types\",\r\n STOCK_TYPES_ALLOWED = \"lookups/stock-types/allowed\",\r\n STOCK_TYPES_URO = \"lookups/stock-types/uro\",\r\n ACCOUNTS = \"accounts\",\r\n ACCOUNTS_BY_ACCOUNT_TYPE = \"accounts/by-type\",\r\n ACCOUNTS_CHILDREN = \"accounts/children\",\r\n ACCOUNTS_CHILDREN_LOOKUP = \"accounts/children/lookup\",\r\n SECURITY_GROUPS = \"security/groups\",\r\n SECURITY_GROUPS_LOOKUP = \"security/groups/lookup\",\r\n SECURITY_ROLES = \"security/roles\",\r\n SECURITY_USERS = \"security/users\",\r\n SECURITY_USERS_GROUPS = \"security/users/groups\",\r\n SECURITY_USER = \"security/user\",\r\n SECURITY_USER_META = \"security/user/meta\",\r\n SECURITY_USER_PROFILE = \"security/user/profile\",\r\n SECURITY_CLAIMS_APPLICABLE = \"security/claims-applicable\",\r\n STOCKS_TRANSACTIONS = \"stocks/transactions\",\r\n STOCKS_TRANSACTIONS_SEARCH = \"stocks/transactions/search\",\r\n STOCKS_TOTALS = \"stocks/totals\",\r\n STOCKS_UNDO_REQUESTS = \"stocks/undo/requests\",\r\n STOCKS_AVAILABLE = \"stocks/available\",\r\n STOCKS_SYSTEM_AVAILABLE = \"stocks/system-available\",\r\n STOCKS_TRANSACT = \"stocks/transact\",\r\n STOCKS_POPULATE = \"stocks/populate\",\r\n STOCKS_DEPOPULATE = \"stocks/depopulate\",\r\n STOCKS_UNDO_TRY = \"stocks/undo/try\",\r\n STOCKS_UNDO_CANCEL = \"stocks/undo/cancel\",\r\n STOCKS_UNDO_RESOLVE = \"stocks/undo/resolve\",\r\n ISSUING_VERIFY = \"issuing/verify\",\r\n ISSUING_REVOKE_REQUESTS = \"issuing/revoke/requests\",\r\n ISSUING_REVOKE_TRY = \"issuing/revoke/try\",\r\n ISSUING_REVOKE_CANCEL = \"issuing/revoke/cancel\",\r\n ISSUING_REVOKE_RESOLVE = \"issuing/revoke/resolve\",\r\n ISSUING_CREATE_UPS_SHIPMENT = \"issuing/ups/create\",\r\n // ISSUING_EXPIRED_DOCUMENTS_QUERY = \"issuing/expired\",\r\n ISSUING_ISSUED_DOCUMENTS_QUERY = \"issuing/query\",\r\n ISSUING_DOCUMENT_CANCEL = \"issuing/cancel\",\r\n INT_lICENSE = \"int-licenses\",\r\n INT_lICENSE_DEATILS = \"int-licenses/details\",\r\n E_lICENSE = \"e-licenses\",\r\n E_lICENSE_ORDER_STATUS = \"e-licenses/order/status\",\r\n INT_lICENSE_GET_BY_HASHED_SERIAL = \"int-licenses/hash\",\r\n INT_lICENSE_PRINT = \"int-licenses/print\",\r\n INT_lICENSE_SEARCH = \"int-licenses/search\",\r\n TRIPTIK = \"trip-tiks\",\r\n TRIPTIK_GET_BY_HASHED_SERIAL = \"trip-tiks/hash\",\r\n TRIPTIK_SEARCH = \"trip-tiks/search\",\r\n TRIPTIK_PRINT = \"trip-tiks/print\",\r\n TRIPTIK_CLAIMS = \"trip-tiks/claims\",\r\n TRIPTIK_CLAIMS_SEARCH = \"trip-tiks/claims/search\",\r\n TRIPTIK_CLAIMS_LOGS = \"trip-tiks/claims/logs\",\r\n TRIPTIK_CLAIMS_LOGS_SEARCH = \"trip-tiks/claims/logs/search\",\r\n TRIPTIK_CLAIMS_ATTACHMENTS = \"trip-tiks/claims/attachments\",\r\n E_lICENSE_COUPON = \"e-licenses/coupon\",\r\n E_lICENSE_COUPON_CREATE = \"e-licenses/coupon/create\",\r\n E_lICENSE_COUPON_UPDATE = \"e-licenses/coupon/update\",\r\n E_lICENSE_VIEW_COUPON_DETAILS = \"e-licenses/couponlicense\",\r\n // VALIDATION_USERS_USERNAME = '',\r\n // VALIDATION_ACCOUNTS_ACCOUNT_TITLE = ''\r\n}\r\n","// export enum Gender {\r\n// Male = 1,\r\n// Female = -1\r\n// }\r\n\r\nexport enum Gender {\r\n Male = 1,\r\n Female = -1\r\n}","export enum Language {\r\n Arabic = 0,\r\n English = 1\r\n}","export enum IntLicensePermitClass {\r\n A = 'A',\r\n B = 'B',\r\n C = 'C',\r\n D = 'D',\r\n E = 'E'\r\n}\r\n","export enum PrintObject {\r\n TriptikReceipt = -1,\r\n IntLicenseCommitment = 0,\r\n IntLicenseCard = 1,\r\n IntLicenseSticker = 2,\r\n TripTikFrontCover = 3,\r\n TripTikInnerPages = 4,\r\n TripTikBackCover = 5\r\n}","// export enum Role {\r\n// LOOKUPS_CREATE, //system\r\n// LOOKUPS_READ ,\r\n// LOOKUPS_UPDATE, //system\r\n// LOOKUPS_DELETE, //system\r\n// ACCOUNTS_CREATE,\r\n// ACCOUNTS_READ,\r\n// ACCOUNTS_UPDATE,\r\n// ACCOUNTS_DELETE,\r\n// USERS_CREATE,\r\n// USERS_READ,\r\n// USERS_UPDATE,\r\n// USERS_DELETE,\r\n// SECURITY_GROUPS_CREATE,\r\n// SECURITY_GROUPS_READ,\r\n// SECURITY_GROUPS_UPDATE,\r\n// SECURITY_GROUPS_DELETE,\r\n// USERS_SECURITY_GROUPS_READ,\r\n// USERS_SECURITY_GROUPS_UPDATE,\r\n// STOCKS_TRANSACTIONS_CREATE,\r\n// STOCKS_TRANSACTIONS_READ,\r\n// STOCKS_UNDO_REQUESTS_CREATE,\r\n// STOCKS_UNDO_REQUESTS_READ,\r\n// STOCKS_UNDO_REQUESTS_UPDATE,\r\n// STOCKS_UNDO_REQUESTS_DELETE,\r\n// SYSTEM_STOCKS_CREATE, //system\r\n// SYSTEM_STOCKS_READ, //system\r\n// SYSTEM_STOCKS_UPDATE, //system\r\n// SYSTEM_STOCKS_DELETE //system\r\n// }\r\n\r\n\r\nexport enum Role {\r\n LOOKUPS_CREATE = 11, //system\r\n LOOKUPS_READ = 12,\r\n LOOKUPS_UPDATE = 13, //system\r\n LOOKUPS_DELETE = 14, //system\r\n ACCOUNTS_CREATE = 21,\r\n ACCOUNTS_READ = 22,\r\n ACCOUNTS_UPDATE = 23,\r\n ACCOUNTS_DELETE = 24,\r\n USERS_CREATE = 31,\r\n USERS_READ = 32,\r\n USERS_UPDATE = 33,\r\n USERS_DELETE = 34,\r\n SECURITY_GROUPS_CREATE = 41,\r\n SECURITY_GROUPS_READ = 42,\r\n SECURITY_GROUPS_UPDATE = 43,\r\n SECURITY_GROUPS_DELETE = 44,\r\n USERS_SECURITY_GROUPS_READ = 52,\r\n USERS_SECURITY_GROUPS_UPDATE = 53,\r\n STOCKS_TRANSACTIONS_CREATE = 61,\r\n STOCKS_TRANSACTIONS_READ = 62,\r\n STOCKS_UNDO_REQUESTS_CREATE = 71,\r\n STOCKS_UNDO_REQUESTS_READ = 72,\r\n STOCKS_UNDO_REQUESTS_UPDATE = 73,\r\n STOCKS_UNDO_REQUESTS_DELETE = 74,\r\n SYSTEM_STOCKS_CREATE = 81, //system\r\n SYSTEM_STOCKS_READ = 82, //system\r\n SYSTEM_STOCKS_UPDATE = 83, //system\r\n SYSTEM_STOCKS_DELETE = 84, //system\r\n INT_LICENSES_CREATE = 91,\r\n INT_LICENSES_READ = 92,\r\n INT_LICENSES_UPDATE = 93,\r\n INT_LICENSES_DELETE = 94,\r\n INT_LICENSES_REVOKE_REQUESTS_CREATE = 101,\r\n INT_LICENSES_REVOKE_REQUESTS_READ = 102,\r\n INT_LICENSES_REVOKE_REQUESTS_UPDATE = 103,\r\n INT_LICENSES_REVOKE_REQUESTS_DELETE = 104,\r\n TRIPTIKS_CREATE = 111,\r\n TRIPTIKS_READ = 112,\r\n TRIPTIKS_UPDATE = 113,\r\n TRIPTIKS_DELETE = 114,\r\n TRIPTIKS_REVOKE_REQUESTS_CREATE = 121,\r\n TRIPTIKS_REVOKE_REQUESTS_READ = 122,\r\n TRIPTIKS_REVOKE_REQUESTS_UPDATE = 123,\r\n TRIPTIKS_REVOKE_REQUESTS_DELETE = 124,\r\n TRIPTIKS_CLAIMS_CREATE = 131,\r\n TRIPTIKS_CLAIMS_READ = 132,\r\n TRIPTIKS_CLAIMS_UPDATE = 133,\r\n // TRIPTIKS_CLAIMS_LOGS_READ = 142,\r\n // TRIPTIKS_CLAIMS_STATUS_UPDATE = 143,\r\n TRIPTIKS_CLAIMS_STATUS_UPDATE = 143,\r\n TRIPTIKS_CLAIMS_LOGS_READ = 152,\r\n\r\n E_LICENSES_READ = 162,\r\n E_LICENSES_UPDATE = 163,\r\n E_LICENSES_DELETE = 164,\r\n}","export enum SystemObject {\r\n CITY,\r\n COUNTRY,\r\n VEHICLE_COLOR,\r\n VEHICLE_MAKE,\r\n STOCK_TYPE,\r\n ACCOUNT_STATUS,\r\n ACCOUNT_TYPE,\r\n ACCOUNT,\r\n USER,\r\n SECURITY_GROUP,\r\n}","export enum TransactionType {\r\n Depopulate = -2, //return main stock to supplier\r\n Return = -1,\r\n Issue = 0,\r\n Transfer = 1,\r\n Populate = 2, //fill main stock from supplier\r\n}","export enum TripTikClaimStatus {\r\n Active = 1,\r\n Closed = 2,\r\n Judicial = 3,\r\n BranchesFollowup = 4,\r\n Paid = 5,\r\n Stored = 6\r\n}","import { SystemObject } from './enums/system-object';\r\nimport { Language } from './enums/language';\r\n\r\nexport class ValidationDto {\r\n objectType: SystemObject;\r\n property: string;\r\n value: string;\r\n lang: Language;\r\n}","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class SidenavService{\r\n opened: Subject;\r\n constructor(){\r\n this.opened = new Subject();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport {DefaultUrlSerializer, RouterModule, Routes, UrlSegment, UrlSerializer, UrlTree} from '@angular/router';\r\n\r\n@Injectable()\r\nexport class UrlSerializerService {\r\n private defaultSerializer: DefaultUrlSerializer = new DefaultUrlSerializer();\r\n\r\n parse(url: string): UrlTree {\r\n\r\n // This is the custom patch where you'll collect segment containing '='\r\n const lastSlashIndex = url.lastIndexOf('/'), equalSignIndex = url.indexOf('=', lastSlashIndex);\r\n if (equalSignIndex > -1) { // url contians '=', apply patch\r\n const keyValArr = url.substr(lastSlashIndex + 1).split('=');\r\n const urlTree = this.defaultSerializer.parse(url);\r\n\r\n // Once you have serialized urlTree, you have two options to capture '=' part\r\n // Method 1. replace desired segment with whole \"key=val\" as segment\r\n urlTree.root.children['primary'].segments.forEach((segment: UrlSegment) => {\r\n if (segment.path === keyValArr[0]) {\r\n segment.path = keyValArr.join('='); // Suggestion: you can use other unique set of characters here too e.g. '$$$'\r\n }\r\n });\r\n\r\n return urlTree;\r\n } else {\r\n return this.defaultSerializer.parse(url);\r\n }\r\n }\r\n\r\n serialize(tree: UrlTree): string {\r\n return this.defaultSerializer.serialize(tree);\r\n }\r\n\r\n}","import { Router } from '@angular/router';\r\nimport { AccountDto } from './../../models/account';\r\nimport {\r\n AccountsService,\r\n DynamicFlatNode,\r\n DynamicDataSource,\r\n // DynamicDatabase\r\n} from './../../services/accounts.service';\r\n\r\nimport { FlatTreeControl } from '@angular/cdk/tree';\r\nimport { Component, ViewChild, ViewEncapsulation, ɵConsole } from '@angular/core';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DeleteModal, UpdateModal } from 'src/app/shared/models/modal';\r\nimport { AccountTypesService } from 'src/app/features/lookups/services/account-types';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { AccountType } from 'src/app/core/models/enums/account-type';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\n\r\n@Component({\r\n selector: 'mac-accounts',\r\n templateUrl: './accounts.component.html',\r\n styleUrls: ['./accounts.component.scss'],\r\n providers: [AccountsService, AccountTypesService]\r\n})\r\n\r\nexport class AccountsComponent {\r\n tooltipInfo = 'Info about the action';\r\n currentAccountId: number;\r\n treeControl: FlatTreeControl;\r\n dataSource: DynamicDataSource;\r\n accountTypes: number[] = [];\r\n badgeClasses: string[] = [];\r\n langIndex: number = 0;\r\n accountUsersCount: number = 0;\r\n //totalUserAccounts: number = 0;\r\n usersCount: number = 0;\r\n\r\n updateAllowed: boolean;\r\n deleteAllowed: boolean;\r\n createAllowed: boolean;\r\n usersDisplay: boolean;\r\n\r\n @ViewChild('tree', { static: true }) tree;\r\n\r\n getLevel = (node: DynamicFlatNode) => node.level;\r\n isExpandable = (node: DynamicFlatNode) => node.expandable;\r\n hasChild = (_: number, _nodeData: DynamicFlatNode) => _nodeData.item.hasChildren; // _nodeData.item.children.length > 0;// .expandable;\r\n Role() {\r\n return Role;\r\n }\r\n\r\n constructor(/*private database: DynamicDatabase,*/\r\n private router: Router,\r\n private service: AccountsService,\r\n private confirmService: ConfirmService,\r\n private loader: LoadingService,\r\n public auth: AuthService,\r\n private alert: AlertService,\r\n //private accountTypesService: AccountTypesService,\r\n public translate: TranslateService) {\r\n this.currentAccountId = auth.currentUser.accountId;\r\n this.treeControl = new FlatTreeControl(this.getLevel, this.isExpandable);\r\n this.dataSource = new DynamicDataSource(this.treeControl, this.service);\r\n }\r\n\r\n ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n //document.querySelector('mat-card').setAttribute('style', '')\r\n this.updateAllowed = this.auth.currentUser.isInRole(Role.ACCOUNTS_UPDATE);\r\n this.deleteAllowed = this.auth.currentUser.isInRole(Role.ACCOUNTS_DELETE);\r\n this.createAllowed = this.auth.currentUser.accountTypeId <= AccountType.Distributor && this.auth.currentUser.isInRole(Role.ACCOUNTS_CREATE);\r\n this.usersDisplay = this.auth.currentUser.isInRole(Role.USERS_READ);\r\n\r\n this.langIndex = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.langIndex = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.badgeClasses = [\r\n 'branches bg-primary',\r\n 'agent bg-success',\r\n 'distributor bg-danger',\r\n 'Sub-Distributor bg-orange'\r\n ];\r\n\r\n //this.dataSource.dataChange.subscribe(d => //console.warn(d));\r\n\r\n\r\n this.loader.load(LoaderType.Nav);\r\n // this.accountTypesService.get().then(d => {\r\n // this.accountTypes = d.accountTypes.map(d => d.id);\r\n // })\r\n this.service.initialData()\r\n .then(data => {\r\n ////console.warn(data);\r\n this.dataSource.data = data[0];\r\n this.accountUsersCount = data[0].find(d => d.item.id == this.currentAccountId).item.usersCount;\r\n this.usersCount = data[1];\r\n\r\n // //console.warn(this.service.dataMap.entries);\r\n\r\n // this.dataSource.data.splice(1, 1);\r\n // this.dataSource.dataChange.\r\n\r\n\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n getAccountType() {\r\n const prefix = 'ACC_TITLE_ACCOUNTS_';\r\n\r\n if (this.auth.currentUser.accountTypeId == 1 && this.auth.currentUser.isSystemAccount)\r\n return prefix + \"BRANCHES\";\r\n\r\n if (this.auth.currentUser.accountTypeId == 1)\r\n return prefix + \"AGENTS\";\r\n\r\n if (this.auth.currentUser.accountTypeId == 2)\r\n return prefix + \"DISTRIBUTORS\";\r\n\r\n return prefix + \"SUB_DISTRIBUTORS\";\r\n }\r\n\r\n getDocumentTypes(stockTypes: StockTypeDto[]) {\r\n //todo: refactor\r\n const drivingLicense = ['رخصة قيادة', 'Driving License'];\r\n const triptikDocument = ['دفتر تربتيك', 'Trip-Tik Document'];\r\n return Array.from(new Set(stockTypes.map(x => { return x.documentType == 1 ? drivingLicense[this.langIndex] : triptikDocument[this.langIndex] })));\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n onSelectInactive(checked: boolean) {\r\n //console.warn(checked);\r\n\r\n this.dataSource.isActiveChange.next(checked);\r\n\r\n // const _data = this.dataSource.data.filter(d => !checked || d.item.isActive)\r\n // this.dataSource.dataChange.next(_data);\r\n }\r\n\r\n getBadgeClass(accountTypeId: number) {\r\n // const i = this.accountTypes.findIndex(id => id == accountTypeId);\r\n // return this.badgeClasses[i >= this.badgeClasses.length ? this.badgeClasses.length - 1 : i];\r\n\r\n const i = accountTypeId <= this.badgeClasses.length ? accountTypeId - 1 : 0;\r\n return this.badgeClasses[i];\r\n }\r\n\r\n tryDelete(node: AccountDto) {\r\n let modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'ACC_LABEL_ACCOUNT',\r\n confirmQuestion: 'SEC_USER_CONFIRM_DELETE_CONFIRMATION_QUESTION',\r\n title: node.titles[this.langIndex].toString(),\r\n note: 'ACC_CONFIRM_DELETE_NOTE',\r\n dangerNote: 'ACC_CONFIRM_DELETE_DANGER_NOTE'\r\n }));\r\n\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this.delete(node.id);\r\n });\r\n }\r\n\r\n delete(id: number) {\r\n this.loader.load(LoaderType.Body);\r\n this.service.deleteAccount(id)\r\n .then(r => {\r\n if (r) {\r\n this.dataSource.dataChange.next(this.dataSource.data.filter(d => d.item.id != id));\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n tryUpdateStatus(row, active) {\r\n // //console.warn(row);\r\n //const _data = this.dataSource.data;\r\n const _data = this.dataSource.dataChange.value;\r\n //const i = _data.filter(d => d.item.id == row.id);\r\n\r\n if (!active) {\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n type: 'ACC_LABEL_ACCOUNT',\r\n confirmQuestion: 'SEC_USER_CONFIRM_DEACTIVATE_CONFIRMATION_QUESTION',\r\n title: row.titles[this.langIndex].toString(),\r\n note: 'ACC_CONFIRM_UPDATE_NOTE',\r\n dangerNote: 'ACC_CONFIRM_UPDATE_DANGER_NOTE',\r\n action: '_ACTION_DEACTIVATE',\r\n submitText: '_ACTION_DEACTIVATE'\r\n }));\r\n const i = this.dataSource.data.findIndex(n => n.item.id == row.id);\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this.updateStatus(row.id, active);\r\n }).catch(e => {\r\n _data[i].item.isActive = true;\r\n })\r\n }\r\n else this.updateStatus(row.id, active);\r\n }\r\n\r\n //client-side only, after server update\r\n private _updateNodeStatus(id: number, active: boolean) {\r\n\r\n const i = this.dataSource.dataChange.value.findIndex(n => n.item.id == id);\r\n if (i > -1) {\r\n this.dataSource.dataChange.value[i].item.isActive = active;\r\n this.dataSource.dataChange.value.filter(d => d.item.parentId == id).forEach(element => {\r\n this._updateNodeStatus(element.item.id, active);\r\n });\r\n\r\n // this.service.dataMap.forEach((dto, key) => {\r\n // dto.filter(d => d.id == id)[0].isActive = active;\r\n // dto.filter(d => d.parentId == id).forEach(d => {\r\n // this._updateNodeStatus(d.id, active);\r\n // })\r\n // });\r\n }\r\n }\r\n\r\n updateStatus(id, active) {\r\n this.loader.load(LoaderType.Body);\r\n //const _data = this.dataSource.data;\r\n const _data = this.dataSource.dataChange.value;\r\n const i = this.dataSource.data.findIndex(n => n.item.id == id);\r\n //const _val = _data[i].item.isActive;\r\n //console.log(_val);\r\n\r\n this.service.updateAccountStatus({ id: id, active: active })\r\n .then(r => {\r\n if (r) {\r\n //clear cache\r\n this.service.dataMap.clear();\r\n this.alert.success(active ? '_ACTION_ACTIVATING' : '_ACTION_DEACTIVATING');\r\n //cascade change to all nodes\r\n _data.filter(d => d.item.parentId == id).forEach(element => {\r\n this._updateNodeStatus(element.item.id, active);\r\n });\r\n //this._updateNodeStatus(id, active);\r\n ////console.log(this.service.dataMap);\r\n\r\n //flush isactive status\r\n this.dataSource.isActiveChange.next(this.dataSource.isActiveChange.value);\r\n }\r\n else {\r\n _data[i].item.isActive = true;\r\n this.alert.failure(active ? '_ACTION_ACTIVATING' : '_ACTION_DEACTIVATING');\r\n }\r\n\r\n // this.dataSource.statusChange.next([id, active]);\r\n }).catch(e => {\r\n _data[i].item.isActive = !active;\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n update(id: number) {\r\n this.router.navigate(['/', this.translate.currentLang, 'accounts', 'update', id]);\r\n }\r\n\r\n filterChanged(filterText: string) {\r\n }\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, ValidatorFn, AbstractControl, FormArray } from '@angular/forms';\r\nimport { CitiesService } from 'src/app/features/lookups/services/cities';\r\nimport { CountriesService } from 'src/app/features/lookups/services/countries';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { AccountTypesService } from 'src/app/features/lookups/services/account-types';\r\nimport { AccountsService } from '../../services/accounts.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { UsersService } from 'src/app/features/security/services/users.service';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { nonArabicCharactersValidator, nonEnglishCharactersValidator, usernameValidator, numbersOnlyValidator, comparePasswords, phoneNumberValidator, emailValidator } from 'src/app/shared/services/custom-validators';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { PostAccountCmd, AccountMetaDto, AccountDto } from '../../models/account';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { AccountType } from 'src/app/core/models/enums/account-type';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\nimport { UserDto, UserMetaVm } from 'src/app/features/security/models/user';\r\nimport { SecurityService } from 'src/app/features/security/services/security.service';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\n\r\n@Component({\r\n selector: 'mac-manage-account',\r\n templateUrl: './manage-account.component.html',\r\n styleUrls: ['./manage-account.component.scss'],\r\n providers: [\r\n CountriesService,\r\n CitiesService,\r\n StockTypesService,\r\n AccountTypesService,\r\n AccountsService,\r\n UsersService,\r\n FileLoaderService\r\n ]\r\n})\r\nexport class ManageAccountComponent implements OnInit {\r\n dto: AccountDto;\r\n accountForm: FormGroup;\r\n countries: any[];\r\n cities: any[];\r\n _stockTypes: StockTypeDto[] = [];\r\n uroStockTypes: StockTypeDto[] = [];\r\n accountTypes: any[];\r\n //parentAccounts: any[];\r\n accountId: number;\r\n lang: Language;\r\n loading: boolean;\r\n //langIndex: number;\r\n _parentAccounts: AccountMetaDto[] = [];\r\n users: UserDto[] = [];\r\n documentTypes: _DocumentType[];\r\n accountTypeId: number;\r\n\r\n badgeClasses = [\r\n 'branches bg-primary',\r\n 'agent bg-success',\r\n 'distributor bg-danger',\r\n 'Sub-Distributor bg-orange'\r\n ];\r\n\r\n get AccountType() { return AccountType; };\r\n get accountType() { return this.accountForm.get('accountTypeId'); }\r\n //get parentAccount() { return this.accountForm.get('parentId'); }\r\n get titles() { return this.accountForm.get('titles') as FormArray }\r\n get country() { return this.accountForm.get('countryId'); }\r\n get city() { return this.accountForm.get('cityId'); }\r\n get stockTypes() { return this.accountForm.get('stockTypes'); }\r\n get email() { return this.accountForm.get('email'); }\r\n get phoneNumber() { return this.accountForm.get('phoneNumber'); }\r\n // get primaryUser() { return this.accountForm.get('primaryUser'); }\r\n get username() { return this.accountForm.get('adminAccount.username'); }\r\n get password() { return this.accountForm.get('adminAccount.pass.password'); }\r\n get passwordConfirm() { return this.accountForm.get('adminAccount.pass.passwordConfirm'); }\r\n get attachments() { return this.accountForm.get('attachments') as FormArray; };\r\n\r\n constructor(private fb: FormBuilder,\r\n private countriesService: CountriesService,\r\n private citiesService: CitiesService,\r\n private stockTypesService: StockTypesService,\r\n private accountTypeService: AccountTypesService,\r\n private service: AccountsService,\r\n private loader: LoadingService,\r\n private alert: AlertService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private usersService: UsersService,\r\n public translate: TranslateService,\r\n public auth: AuthService,\r\n private fileLoader: FileLoaderService) { }\r\n\r\n async ngOnInit() {\r\n\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.formInit();\r\n this.accountForm.disable();\r\n this.loader.load(LoaderType.Nav);\r\n this.accountId = Number(this.route.snapshot.paramMap.get(\"id\"));\r\n\r\n //uro stock-types\r\n this.uroStockTypes = await (await this.stockTypesService.getURO(this.lang)).list;\r\n\r\n this.users = (await this.usersService.getAccountUsers(this.accountId, this.lang)).users;\r\n //console.log(this.users);\r\n\r\n\r\n\r\n // const promises = [\r\n // this.countriesService.get(this.translate.currentLang == 'ar' ? Language.Arabic : Language.English)\r\n // .then(result => this.countries = result.countries),\r\n // this.stockTypesService.getAllowed()\r\n // .then(result => this._stockTypes = result.stockTypes),\r\n // this.accountId && this.auth.isSystemAccount ?\r\n // this.accountTypeService.get()\r\n // .then(result => this.accountTypes = result.accountTypes.map(at => { at.titles = [at.titles[this.langIndex]]; return at; }))\r\n // : this.accountTypeService.getAllowed()\r\n // .then(result => this.accountTypes = result.accountTypes)\r\n // ];\r\n\r\n // Promise.all(promises).then()\r\n\r\n // Promise.all([\r\n // this.countriesService.get(this.translate.currentLang == 'ar' ? Language.Arabic : Language.English)\r\n // .then(result => this.countries = result.countries),\r\n // this.stockTypesService.getAllowed()\r\n // .then(result => this._stockTypes = result.stockTypes),\r\n // this.accountId && this.auth.isSystemAccount ?\r\n // this.accountTypeService.get()\r\n // .then(result => this.accountTypes = result.accountTypes.map(at => { at.titles = [at.titles[this.langIndex]]; return at; }))\r\n // : this.accountTypeService.getAllowed()\r\n // .then(result => this.accountTypes = result.accountTypes)\r\n // ]).then(() => {\r\n\r\n // if (this.accountId) {\r\n // this.service.getAccount(this.accountId)\r\n // .then(result => {\r\n // //console.log(result);\r\n // this._parentAccounts = result.parentAccounts;\r\n // this.accountForm.patchValue({\r\n // parentId: result.account.parentId,\r\n // accountTypeId: result.account.accountTypeId,\r\n // //accountType: result.account.accountType,\r\n // titles: result.account.titles,\r\n // countryId: result.account.city ? result.account.city.countryId : null,\r\n // cityId: result.account.cityId,\r\n // stockTypes: result.account.stockTypes,\r\n // email: result.account.email,\r\n // phoneNumber: result.account.phoneNumber\r\n // });\r\n // });\r\n // }\r\n\r\n // this.accountForm.enable();\r\n // if (!this.accountId) {\r\n // //defalut selects\r\n // this.accountType.setValue(this.accountTypes[0].id);\r\n // if (this.accountTypes.length == 1)\r\n // this.accountType.disable();\r\n // } else {\r\n // //can't be edited\r\n // //todo: unless it's a system account\r\n // //this.accountType.disable();\r\n\r\n // }\r\n\r\n // }).finally(() => this.loader.load(LoaderType.Nav, false));\r\n\r\n\r\n this.countries = (await this.countriesService.get(this.lang)).list;\r\n\r\n //this._stockTypes = await this.fetchStockTypes(!this.auth.isSystemAccount ? this.accountId : 0); // (await this.stockTypesService.getAllowed(this.accountId)).stockTypes;\r\n //this._stockTypes = await this.fetchStockTypes(this.accountId ? this.parentAccount.value : this.auth.accountId); // (await this.stockTypesService.getAllowed(this.accountId)).stockTypes;\r\n this.accountTypes = this.accountId && this.auth.currentUser.isSystemAccount ?\r\n (await this.accountTypeService.get()).list.map(at => { at.titles = [at.titles[this.lang]]; return at; })\r\n : (await this.accountTypeService.getAllowed()).list;\r\n\r\n\r\n\r\n\r\n\r\n if (this.accountId) {\r\n //update model, get account details from server and update form values\r\n\r\n var result = await this.service.getAccount(this.accountId);\r\n this.dto = result.account;\r\n\r\n this.documentTypes = this.dto.stockTypes.map(x => x.documentType).filter(this.onlyUnique);\r\n //console.log(this.documentTypes);\r\n this.accountTypeId = result.account.accountTypeId;\r\n\r\n //console.warn(result);\r\n this._parentAccounts = result.parentAccounts;\r\n this.accountForm.patchValue({\r\n //parentId: result.account.parentId,\r\n accountTypeId: result.account.accountTypeId,\r\n titles: result.account.titles,\r\n countryId: result.account.city ? result.account.city.countryId : null,\r\n cityId: result.account.cityId,\r\n stockTypes: result.account.stockTypes.map(x => x.id),\r\n email: result.account.email,\r\n phoneNumber: result.account.phoneNumber,\r\n isSMSEnabled: result.account.isSMSEnabled\r\n });\r\n\r\n if (result.account.city)\r\n this.cities =\r\n (await this.citiesService.get(result.account.city.countryId, this.lang)).list;\r\n\r\n\r\n if (this.dto.attachments)\r\n this.dto.attachments.forEach(async (att, i) => {\r\n att.url = await this.fileLoader.loadAsync(att.url);\r\n });\r\n\r\n //console.log(this.accountForm.value);\r\n }\r\n //this._stockTypes = await (await this.fetchStockTypes(this.accountId/* ? this.parentAccount.value : this.auth.currentUser.accountId*/)).list.filter(x => x.id == StockType.License);\r\n //this._stockTypes = await (await this.fetchStockTypes(this.dto.parentId/* ? this.parentAccount.value : this.auth.currentUser.accountId*/)).list;\r\n this._stockTypes = await (await this.fetchStockTypes(this.accountId/* ? this.parentAccount.value : this.auth.currentUser.accountId*/));\r\n\r\n this.accountForm.enable();\r\n if (!this.accountId) {\r\n \r\n //defalut selects\r\n this.accountType.setValue(this.accountTypes[0].id);\r\n if (this.accountTypes.length == 1)\r\n this.accountType.disable();\r\n } else {\r\n //temp: disable for all\r\n if (!this.auth.currentUser.isSystemAccount)\r\n this.accountType.disable();\r\n //can't be edited\r\n //todo: unless it's a system account\r\n //this.accountType.disable();\r\n\r\n }\r\n\r\n // //not a branch\r\n // if (this.auth.currentUser.isSystemAccount && this.accountId && this.accountType.value != AccountType.Branch) {\r\n // this.parentAccounts = await this.fetchParentAccounts();\r\n\r\n // //this._stockTypes = await this.fetchStockTypes();\r\n //}\r\n\r\n\r\n this.loader.load(LoaderType.Nav, false);\r\n }\r\n\r\n private onlyUnique(value, index, self) {\r\n return self.indexOf(value) === index;\r\n }\r\n\r\n getAccountType(accountTypeId: number) {\r\n const prefix = 'ACC_LABEL_ACCOUNT_';\r\n switch (accountTypeId) {\r\n case 1:\r\n return this.translate.instant(prefix + \"BRANCH\");\r\n\r\n case 2:\r\n return this.translate.instant(prefix + \"AGENT\");\r\n\r\n case 3:\r\n return this.translate.instant(prefix + \"DISTRIBUTOR\");\r\n\r\n case 4:\r\n return this.translate.instant(prefix + \"SUB_DISTRIBUTOR\");\r\n }\r\n }\r\n\r\n getBadgeClass(accountTypeId: number) {\r\n //const i = this.accountTypes.findIndex(id => id == accountTypeId);\r\n return this.badgeClasses[accountTypeId >= this.badgeClasses.length ? this.badgeClasses.length - 1 : accountTypeId - 1];\r\n }\r\n\r\n fetchCities(countryId) {\r\n //console.log(countryId);\r\n this.city.reset();\r\n this.citiesService.get(countryId, this.lang)\r\n .then(result => {\r\n this.cities = result.list;\r\n });\r\n }\r\n\r\n\r\n // private async fetchParentAccounts() {\r\n // const result = await this.service\r\n // .getPossibleParentAccounts(this.accountId, this.accountType.value);\r\n\r\n // return result.list;\r\n // ////console.warn(result);\r\n // // return populateAccountsSelect(result.list);\r\n // // return result.list.map(dto => {\r\n // // let _titles = [];\r\n // // dto.titles.forEach((t, i) => {\r\n // // _titles.push(`${t}`);\r\n // // });\r\n // // dto.titles = [_titles.join(' // ')];\r\n // // return dto;\r\n // // });\r\n // }\r\n\r\n // onSelectAccountType() {\r\n // ////console.log(d);\r\n // ////console.log('onSelectAccountType');\r\n\r\n\r\n // ////console.log(this.accountType.value);\r\n // //fetch accounts\r\n\r\n // if (!this.accountId)\r\n // return;\r\n\r\n // this.parentAccount.reset();\r\n // this.stockTypes.disable();\r\n // this.parentAccount.disable();\r\n\r\n // //if branch display all stock types, ignore parents\r\n // if (this.accountType.value == 1 || !this.accountId) {\r\n // this.loader.load(LoaderType.Body);\r\n // this.fetchStockTypes(0)\r\n // .then(result => {\r\n // this._stockTypes = result;\r\n // this.stockTypes.enable();\r\n // this.parentAccount.enable();\r\n // })\r\n // .finally(() => this.loader.load(LoaderType.Body, false));\r\n // } else if (this.accountId) {\r\n // this.loader.load(LoaderType.Body);\r\n // this.fetchParentAccounts()\r\n // .then(result => {\r\n // this.parentAccounts = result;\r\n // this.parentAccount.enable();\r\n // })\r\n // .finally(() => this.loader.load(LoaderType.Body, false));\r\n // }\r\n // }\r\n\r\n //this.parentAccount.value\r\n private async fetchStockTypes(accountId: number) {\r\n // return accountId ? await (await this.stockTypesService.getAllowed(accountId)).list\r\n // : await (await this.stockTypesService.get(this.lang)).list;\r\n // //console.log(this.uroStockTypes);\r\n\r\n //console.log(this.accountId);\r\n //console.log(accountId);\r\n\r\n const stockTypes = await (await this.stockTypesService.getAllowed(!this.auth.currentUser.isSystemAccount || this.accountType.value != AccountType.Branch ? this.auth.currentUser.parentAccountId : 0)).list;\r\n //console.log(stockTypes);\r\n\r\n if (stockTypes.filter(x => x.documentType == _DocumentType.TripTikDocument).length > 0)\r\n stockTypes.push(...this.uroStockTypes.filter(x => x.documentType == _DocumentType.TripTikDocument && x.isUnifiedRelease && stockTypes.map(y => y.id).indexOf(x.id) == -1));\r\n\r\n //console.log(stockTypes);\r\n return stockTypes;\r\n }\r\n\r\n // onSelectParentAccount() {\r\n // this.loader.load(LoaderType.Body);\r\n // this.fetchStockTypes(this.parentAccount.value)\r\n // .then(result => {\r\n // this._stockTypes = result;\r\n // if (this._stockTypes.length == 1)\r\n // this.stockTypes.setValue([this._stockTypes[0].id]);\r\n\r\n // this.stockTypes.enable();\r\n // }).finally(() => this.loader.load(LoaderType.Body, false));\r\n // }\r\n\r\n onSubmit() {\r\n ////console.warn(this.accountForm);\r\n if (this.accountId) {\r\n this.username.setErrors(null);\r\n this.password.setErrors(null);\r\n this.passwordConfirm.setErrors(null);\r\n }\r\n\r\n //ignore parent\r\n //if (!this.accountId || !this.auth.currentUser.isSystemAccount || this.accountType.value == 1) {\r\n //this.parentAccount.setErrors(null);\r\n //}\r\n\r\n if (!this.accountForm.valid)\r\n return Utils.validateAllFormFields(this.accountForm);\r\n\r\n //post to server \r\n this.loader.load(LoaderType.Body);\r\n const cmd = this.accountForm.value as PostAccountCmd;\r\n //ignore parent\r\n cmd.parentId = null;\r\n //cmd.accountTypeId = this.auth.currentUser.isSystemAccount ? \r\n //todo post valid account type only\r\n\r\n cmd.accountTypeId = this.accountType.value;\r\n\r\n if (!this.accountId) {\r\n cmd.accountId = 0;\r\n cmd.username = this.username.value;\r\n cmd.password = this.password.value;\r\n\r\n this.service.createAccount(cmd)\r\n .then(r => {\r\n if (r) {\r\n this.alert.success('_ACTION_ADDING');\r\n this.router.navigate([this.translate.currentLang, 'accounts', 'list']);\r\n } else this.alert.failure('_ACTION_ADDING');\r\n })\r\n .finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n else {\r\n cmd.accountId = this.accountId;\r\n this.service.updateAccount(cmd)\r\n .then(r => {\r\n if (r) {\r\n this.alert.success('_ACTION_UPDATING');\r\n this.router.navigate([this.translate.currentLang, 'accounts', 'list']);\r\n } else this.alert.failure('_ACTION_UPDATING');\r\n })\r\n .finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n //this.router.navigate([this.translate.currentLang, 'accounts', 'list']);\r\n });\r\n }\r\n }\r\n\r\n private formInit() {\r\n this.accountForm = this.fb.group({\r\n //parentId: [null, [Validators.required]],\r\n accountTypeId: ['', [Validators.required]],\r\n titles: this.fb.array([\r\n ['', [Validators.required, nonEnglishCharactersValidator, Validators.minLength(3), Validators.maxLength(50)]],\r\n ['', [Validators.required, nonArabicCharactersValidator, Validators.minLength(3), Validators.maxLength(50)]]\r\n ]),\r\n countryId: [null, [Validators.required]],\r\n cityId: [null, [Validators.required]],\r\n stockTypes: ['', [Validators.required]],\r\n email: ['', [/*Validators.required, */Validators.email]],\r\n phoneNumber: ['', [Validators.required, phoneNumberValidator]],\r\n isSMSEnabled: [true],\r\n // primaryUser: ['', [Validators.required]],\r\n adminAccount: this.fb.group({\r\n username: this.fb.control('',\r\n [Validators.required, usernameValidator, Validators.minLength(5), Validators.maxLength(50)],\r\n this.usersService.validateUsernameNotTaken.bind(this)), //todo: regex for username pattern\r\n pass: this.fb.group({\r\n password: ['', [Validators.required, Validators.minLength(6)]], //todo: regex for password pattern\r\n passwordConfirm: ['']\r\n },\r\n { validator: comparePasswords })\r\n }),\r\n attachments: this.fb.array([])\r\n });\r\n }\r\n\r\n\r\n\r\n //attachments\r\n\r\n private attachmentFormInit() {\r\n this.attachments.push(this.fb.group({\r\n name: ['', [Validators.required]],\r\n file: ['', [Validators.required]],\r\n fileName: ['']\r\n }));\r\n }\r\n\r\n addAttachment() {\r\n this.attachmentFormInit();\r\n }\r\n\r\n removeAttachment(i) {\r\n this.attachments.removeAt(i);\r\n }\r\n\r\n preview($event, group: FormGroup) {\r\n const tgt = $event.target || window.event.srcElement,\r\n files = Array.isArray($event) ? $event : tgt.files;\r\n\r\n if (FileReader && files && files.length) {\r\n const fr = new FileReader();\r\n fr.onload = () => {\r\n //console.log(fr);\r\n if (fr.result.toString().length <= 2 * 2 ** 20) {\r\n group.get('file').setValue(fr.result.toString());\r\n group.get('fileName').setValue(files[0].name);\r\n }\r\n else\r\n alert('file limit is 2 MB.');\r\n };\r\n fr.readAsDataURL(files[0]);\r\n }\r\n else {\r\n //console.error('not supported!');\r\n }\r\n }\r\n\r\n fileDropped(file, group: FormGroup): void {\r\n //console.log(file);\r\n group.get('file').setValue(file.url);\r\n group.get('fileName').setValue(file.name);\r\n }\r\n\r\n}\r\n","import { DefaultAlertAction } from './../../../../shared/models/default-alert-action';\r\nimport { nonEnglishCharactersValidator, nonArabicCharactersValidator, numbersOnlyValidator, comparePasswords } from 'src/app/shared/services/custom-validators';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { AuthService } from './../../../../core/auth/auth.service';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators, FormGroup, FormArray } from '@angular/forms';\r\nimport { UsersService } from '../../../security/services/users.service';\r\nimport * as _ from 'lodash'\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { UserProfileVm } from 'src/app/features/security/models/user';\r\n\r\n@Component({\r\n selector: 'mac-user-profile',\r\n templateUrl: './user-profile.component.html',\r\n styleUrls: ['./user-profile.component.scss'],\r\n providers: [UsersService]\r\n})\r\nexport class UserProfileComponent implements OnInit {\r\n\r\n imageURL: string;\r\n defaultAvatar: string = 'assets/images/user.svg';\r\n updateMode: boolean;\r\n changingPassword: boolean;\r\n cashedProfileData: {};\r\n profileForm: FormGroup;\r\n\r\n constructor(private fb: FormBuilder,\r\n private usersService: UsersService,\r\n private authService: AuthService,\r\n private alert: AlertService,\r\n private loader: LoadingService) { }\r\n\r\n ngOnInit() {\r\n this.formInit();\r\n this.profileForm.disable();\r\n this.fetchUserProfile();\r\n }\r\n\r\n fetchUserProfile() {\r\n this.loader.load(LoaderType.Nav);\r\n this.usersService.getUserProfile().then(p => {\r\n ////console.log(p);\r\n if (p.avatar)\r\n this.imageURL = `data:image/png;base64,${p.avatar}`;\r\n\r\n this.cashedProfileData = {\r\n names: p.names,\r\n username: p.username,\r\n email: p.email,\r\n phoneNumber: p.phoneNumber,\r\n avatar: this.imageURL\r\n }\r\n this.profileForm.patchValue(this.cashedProfileData);\r\n }).finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n \r\n get names() { return this.profileForm.get('names') as FormArray; }\r\n get username() { return this.profileForm.get('username'); }\r\n get email() { return this.profileForm.get('email'); }\r\n get phoneNumber() { return this.profileForm.get('phoneNumber'); }\r\n get avatar() { return this.profileForm.get('avatar'); }\r\n get password() { return this.profileForm.get('password'); }\r\n get newPassword() { return this.profileForm.get('newPass.password'); }\r\n get newPasswordConfirm() { return this.profileForm.get('newPass.passwordConfirm'); }\r\n\r\n changePassword() {\r\n this.changingPassword = !this.changingPassword;\r\n this.changingPassword ?\r\n this.password.enable() :\r\n this.password.disable();\r\n }\r\n\r\n update() {\r\n this.updateMode = !this.updateMode;\r\n this.updateMode ? this.profileForm.enable() : this.profileForm.disable();\r\n this.username.disable();\r\n this.password.disable();\r\n this.changingPassword = false;\r\n !this.updateMode ? this.profileForm.patchValue(this.cashedProfileData) : null;\r\n this.imageURL = !this.updateMode ? this.cashedProfileData[\"avatar\"] : this.imageURL;\r\n }\r\n\r\n onSubmit() {\r\n //const img = this.getImageString();\r\n \r\n if (!this.changingPassword) {\r\n this.password.setErrors(null);\r\n this.newPassword.setErrors(null);\r\n this.newPasswordConfirm.setErrors(null);\r\n }\r\n\r\n if (!this.profileForm.valid)\r\n return Utils.validateAllFormFields(this.profileForm);\r\n\r\n this.loader.load(LoaderType.Body);\r\n let profile = _.pick(this.profileForm.value, ['id', 'username', 'names', 'email', 'phoneNumber', 'avatar']) as UserProfileVm;\r\n\r\n if (this.changingPassword) {\r\n profile.password = this.password.value;\r\n profile.newPassword = this.newPassword.value;\r\n }\r\n\r\n profile.avatar = this.imageURL != this.defaultAvatar ? this.imageURL : null;\r\n\r\n this.usersService.updateUserProfile(profile)\r\n .then(r => {\r\n if (r) {\r\n AuthService.userMeta.next({ id: profile.id, name: profile.names[0], avatar: profile.avatar });\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n this.updateMode = false;\r\n this.profileForm.disable();\r\n this.username.disable();\r\n this.password.disable();\r\n this.changingPassword = false;\r\n } else\r\n this.alert.failure(DefaultAlertAction.UPDATING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n preview($event) {\r\n ////console.warn($event);\r\n //const img = document.getElementById(\"licensePhoto\") as HTMLImageElement;\r\n const tgt = $event.target || window.event.srcElement,\r\n files = tgt.files;\r\n\r\n // FileReader support\r\n if (FileReader && files && files.length) {\r\n const fr = new FileReader();\r\n fr.onload = () => {\r\n this.imageURL = fr.result.toString();\r\n //img.setAttribute(\"src\", fr.result.toString());\r\n };\r\n fr.readAsDataURL(files[0]);\r\n }\r\n // Not supported\r\n else {\r\n //console.error('not supported!');\r\n }\r\n }\r\n\r\n getImageString() {\r\n if (this.imageURL == this.defaultAvatar)\r\n return null;\r\n\r\n const img: HTMLImageElement = document.getElementById(\"img\") as HTMLImageElement;\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.getContext(\"2d\").drawImage(img, 0, 0, 300, 300);\r\n return canvas.toDataURL(\"image/png\", 1);\r\n }\r\n\r\n removeImage() {\r\n this.imageURL = this.defaultAvatar;\r\n }\r\n\r\n private formInit() {\r\n this.profileForm = this.fb.group({\r\n names: this.fb.array([\r\n ['', [Validators.required, nonEnglishCharactersValidator, Validators.minLength(3), Validators.maxLength(100)]],\r\n ['', [Validators.required, nonArabicCharactersValidator, Validators.minLength(3), Validators.maxLength(100)]]\r\n ]),\r\n username: [{ value: '', disabled: true }],\r\n email: ['', [Validators.required, Validators.email]],\r\n phoneNumber: ['', [Validators.required, numbersOnlyValidator]],\r\n avatar: [null],\r\n password: ['', [Validators.required]],\r\n newPass: this.fb.group({\r\n password: ['', [Validators.required, Validators.minLength(6)]], //todo: regex for password pattern\r\n passwordConfirm: ['']\r\n }, { validator: comparePasswords })\r\n });\r\n\r\n this.imageURL = this.defaultAvatar;\r\n this.updateMode = false;\r\n this.changingPassword = false;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\nimport { LoaderType, LoadingService } from 'src/app/shared/services/loading';\r\nimport { AccountDto } from '../../models/account';\r\nimport { AccountsService } from '../../services/accounts.service';\r\n\r\n@Component({\r\n selector: 'mac-view-account',\r\n templateUrl: './view-account.component.html',\r\n styleUrls: ['./view-account.component.scss'],\r\n providers: [\r\n AccountsService,\r\n FileLoaderService\r\n ]\r\n})\r\nexport class ViewAccountComponent implements OnInit {\r\n\r\n accountId: number;\r\n dto: AccountDto;\r\n lang: Language;\r\n //_stockTypes: string[] = [];\r\n _parentAccounts: string[] = [];\r\n\r\n constructor(private loader: LoadingService,\r\n public translate: TranslateService,\r\n private service: AccountsService,\r\n private route: ActivatedRoute,\r\n private fileLoader: FileLoaderService) { }\r\n\r\n async ngOnInit() {\r\n\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.accountId = Number(this.route.snapshot.paramMap.get(\"id\"));\r\n\r\n if (this.accountId) {\r\n //update model, get account details from server and update form values\r\n\r\n\r\n var result = await this.service.getAccount(this.accountId);\r\n this.dto = result.account;\r\n result.parentAccounts\r\n\r\n //this._stockTypes = this.dto.stockTypes.map(x => x.titles[0]);\r\n this._parentAccounts = result.parentAccounts.reverse().map(x => x.titles[0]).slice(1);\r\n\r\n this.dto.attachments.forEach(async (att, i) => {\r\n att.url = await this.fileLoader.loadAsync(att.url);\r\n });\r\n\r\n //console.log(this.dto);\r\n }\r\n\r\n this.loader.load(LoaderType.Nav, false);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, BehaviorSubject, merge } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { DataSource } from '@angular/cdk/table';\r\nimport { FlatTreeControl } from '@angular/cdk/tree';\r\nimport { CollectionViewer, SelectionChange } from '@angular/cdk/collections';\r\n\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { AccountDto, AccountVm, AccountsVm } from './../models/account';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { PostAccountCmd } from '../models/account';\r\nimport { LookupDto, LookupVm } from '../../lookups/models/lookup';\r\n\r\nexport class DynamicFlatNode {\r\n constructor(public item: AccountDto, public level = 1, public expandable = false,\r\n public isLoading = false) { }\r\n}\r\n\r\nexport class DynamicDataSource implements DataSource {\r\n\r\n dataChange = new BehaviorSubject([]);\r\n isActiveChange = new BehaviorSubject(false);\r\n\r\n get data(): DynamicFlatNode[] { return this.dataChange.value; }\r\n set data(value: DynamicFlatNode[]) {\r\n this._treeControl.dataNodes = value;\r\n this.dataChange.next(value);\r\n }\r\n\r\n constructor(private _treeControl: FlatTreeControl,\r\n private _database: AccountsService) { }\r\n\r\n connect(collectionViewer: CollectionViewer): Observable {\r\n this._treeControl.expansionModel.changed.subscribe(change => {\r\n if ((change as SelectionChange).added ||\r\n (change as SelectionChange).removed) {\r\n this.handleTreeControl(change as SelectionChange);\r\n }\r\n });\r\n\r\n return merge(collectionViewer.viewChange, this.dataChange, this.isActiveChange)\r\n .pipe(map(() => {\r\n return this.data.filter(d => this.isActiveChange.value || d.item.isActive);\r\n }));\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void { }\r\n\r\n /** Handle expand/collapse behaviors */\r\n handleTreeControl(change: SelectionChange) {\r\n if (change.added) {\r\n change.added.forEach(node => this.toggleNode(node, true));\r\n }\r\n if (change.removed) {\r\n change.removed.slice().reverse().forEach(node => this.toggleNode(node, false));\r\n }\r\n }\r\n\r\n toggleNode(node: DynamicFlatNode, expand: boolean) {\r\n node.isLoading = true;\r\n\r\n this._database.getChildren(node.item.id)\r\n .then(children => {\r\n const index = this.data.indexOf(node);\r\n if (!children || index < 0) { // If no children, or cannot find the node, no op\r\n return;\r\n }\r\n\r\n if (expand) {\r\n const nodes = children.map(_node =>\r\n new DynamicFlatNode(_node, node.level + 1, this._database.isExpandable(_node.id)));\r\n this.data.splice(index + 1, 0, ...nodes);\r\n }\r\n else {\r\n let count = 0;\r\n for (let i = index + 1; i < this.data.length\r\n && this.data[i].level > node.level; i++, count++) { }\r\n this.data.splice(index + 1, count);\r\n }\r\n\r\n this.dataChange.next(this.data);\r\n })\r\n .finally(() => node.isLoading = false);\r\n }\r\n}\r\n\r\n\r\n@Injectable()\r\nexport class AccountsService {\r\n dataMap = new Map();\r\n rootLevelNodes: AccountDto[] = [];\r\n\r\n constructor(private api: ApiHandler) { }\r\n\r\n async initialData(): Promise<[DynamicFlatNode[], number]> {\r\n\r\n const data = await (await this.getChildrenAccounts(0));\r\n this.rootLevelNodes = data.accounts;\r\n //todo: include current account id\r\n this.dataMap.set(0, this.rootLevelNodes);\r\n\r\n return [this.rootLevelNodes.map(_node => new DynamicFlatNode(_node, 0, true)), data.usersCount]\r\n }\r\n\r\n async getChildren(parentId: number): Promise {\r\n if (!this.dataMap.has(parentId)) {\r\n const nodes = await (await this.getChildrenAccounts(parentId)).accounts;\r\n //add to cache\r\n this.dataMap.set(parentId, nodes);\r\n }\r\n return this.dataMap.get(parentId);\r\n }\r\n\r\n isExpandable(parentId: number): boolean {\r\n if (this.dataMap.has(parentId)\r\n && this.dataMap.get(parentId).length > 0)\r\n return true;\r\n\r\n else\r\n return [...this.dataMap.values()]\r\n .filter((node) => node.find(x => x.id == parentId && x.hasChildren /*x.children.length > 0*/))\r\n .length > 0;\r\n }\r\n\r\n public getChildrenAccounts(id: number): Promise {\r\n return this.api.get(EndPoint.ACCOUNTS_CHILDREN, id).toPromise();\r\n }\r\n\r\n public getAccounts(id: number = 0): Promise {\r\n return this.api.get(EndPoint.ACCOUNTS).toPromise();\r\n }\r\n\r\n public getPossibleParentAccounts(accountId: number, accountTypeId: number): Promise {\r\n return this.api.get(EndPoint.ACCOUNTS, [accountId, accountTypeId]).toPromise();\r\n }\r\n\r\n public getChildrenAccountsLookup(accountId: number, isActiveOnly: boolean = true): Promise {\r\n return this.api.get(EndPoint.ACCOUNTS_CHILDREN_LOOKUP, [accountId, isActiveOnly]).toPromise();\r\n }\r\n\r\n // {{base_url}}/accounts/children/lookup/8\r\n\r\n public getAccount(id: number): Promise {\r\n return this.api.get(EndPoint.ACCOUNTS, id).toPromise();\r\n }\r\n\r\n public createAccount(cmd: PostAccountCmd) {\r\n return this.api.create(EndPoint.ACCOUNTS, cmd).toPromise();\r\n }\r\n\r\n public updateAccount(cmd: PostAccountCmd) {\r\n return this.api.update(EndPoint.ACCOUNTS, cmd).toPromise();\r\n }\r\n\r\n public updateAccountStatus(cmd: { id: number, active: boolean }) {\r\n return this.api.update(EndPoint.ACCOUNTS, null, [cmd.id, cmd.active]).toPromise();\r\n }\r\n\r\n public deleteAccount(id: number) {\r\n return this.api.delete(EndPoint.ACCOUNTS, id).toPromise();\r\n }\r\n}\r\n\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { tap } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport { merge, fromEvent } from 'rxjs';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { exportToExcel } from 'src/app/shared/helpers/export-to-excel';\r\nimport { UpdateModal } from 'src/app/shared/models/modal';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { IssuingService } from '../../services/issuing.service';\r\nimport { undoRequestStatusLocale, UndoRequestStatus } from 'src/app/features/stock/models/undo-requests';\r\nimport { DocumentsRevokeRequestsDataSource } from '../../services/documents-revoke-requests.datasource';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DocumentRevokeRequestDto, ResolveTryRevokeDocumentCommand } from '../../models/issuing.models';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\n\r\n@Component({\r\n selector: 'mac-documents-revoke-requests',\r\n templateUrl: './documents-revoke-requests.component.html',\r\n styleUrls: ['./documents-revoke-requests.component.scss'],\r\n providers: [IssuingService, StockTypesService, FileLoaderService]\r\n})\r\nexport class DocumentsRevokeRequestsComponent implements OnInit {\r\n moment = moment;\r\n undoRequestStatusLocale = undoRequestStatusLocale;\r\n displayedColumns: string[] = ['created', 'serial', 'stockType', 'accountTitles', 'requestedBy', 'requestReason', 'undoRequestStatus', 'requestType', 'resolvedBy', 'resolved', 'resolveNote', 'tools'];\r\n dataSource: DocumentsRevokeRequestsDataSource;\r\n stockTypes: StockTypeDto[] = [];\r\n lang: Language;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('filter', { static: true }) filter: ElementRef;\r\n @ViewChild('filterBtn') filterBtn: ElementRef;\r\n @ViewChild(MatSelect, { static: true }) stockType: MatSelect;\r\n\r\n get Role() { return Role; };\r\n get UndoRequestStatus() { return UndoRequestStatus; };\r\n //get StockType() { return StockType; };\r\n get _DocumentType() { return _DocumentType; };\r\n\r\n\r\n\r\n constructor(private loader: LoadingService,\r\n private issuingService: IssuingService,\r\n private stockTypesService: StockTypesService,\r\n private alert: AlertService,\r\n private fileLoader: FileLoaderService,\r\n private translate: TranslateService,\r\n private confirmService: ConfirmService,\r\n public auth: AuthService) { }\r\n\r\n ngOnInit() {\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n if (!this.auth.currentUser.isInRole(Role.INT_LICENSES_REVOKE_REQUESTS_UPDATE)\r\n && !this.auth.currentUser.isInRole(Role.TRIPTIKS_REVOKE_REQUESTS_UPDATE))\r\n this.displayedColumns.splice(this.displayedColumns.length - 1, 1);\r\n\r\n //bug: will take a second to be loaded\r\n this.stockTypesService.get(this.lang).then(result => this.stockTypes = result.list);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.sort.active = 'created';\r\n this.sort.direction = 'desc';\r\n this.paginator.pageSize = 10;\r\n this.dataSource = new DocumentsRevokeRequestsDataSource(this.issuingService, this.loader, this.fileLoader);\r\n this.loadDocumentsRevokeRequests();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n ).subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => this.loadDocumentsRevokeRequests())\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n merge(fromEvent(this.filter.nativeElement, 'search'), fromEvent(this.filterBtn.nativeElement, 'click'), this.stockType.valueChange)\r\n .pipe(\r\n tap(() => {\r\n this.paginator.pageIndex = 0;\r\n this.loadDocumentsRevokeRequests();\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n }\r\n\r\n private loadDocumentsRevokeRequests() {\r\n this.dataSource.loadDocumentsRevokeRequests({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, this.stockType.value, this.filter.nativeElement.value.trim());\r\n }\r\n\r\n getUndoRequestStatusClass(status: UndoRequestStatus) {\r\n switch (status) {\r\n case UndoRequestStatus.Rejected:\r\n return `text-danger`;\r\n\r\n case UndoRequestStatus.Approved:\r\n return `text-success`;\r\n\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n tryResolveRequest(row: DocumentRevokeRequestDto, approve: boolean = false) {\r\n if (row.stockType.documentType == _DocumentType.DrivingLicense && !this.auth.currentUser.isInRole(Role.INT_LICENSES_REVOKE_REQUESTS_UPDATE)\r\n || (row.stockType.documentType == _DocumentType.TripTikDocument && !this.auth.currentUser.isInRole(Role.TRIPTIKS_REVOKE_REQUESTS_UPDATE)))\r\n return;\r\n\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n type: 'ISS_TITLE_DOCUMENT_REVOKE_REQUEST',\r\n confirmQuestion: approve ? 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_UPDATE_STATUS_CONFIRMATION_QUESTION_APPROVE' : 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_UPDATE_STATUS_CONFIRMATION_QUESTION_REJECT',\r\n title: `${row.accountTitles[0]} / ${row.requestedBy}`,\r\n action: approve ? '_ACTION_APPROVE' : '_ACTION_REJECT',\r\n submitText: approve ? '_ACTION_APPROVE' : '_ACTION_REJECT',\r\n submitClass: approve ? 'btn-warning' : 'btn-danger',\r\n note: !row.isDamaged ? (approve ? 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_UPDATE_STATUS_APPROVE_NOTE' : 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_UPDATE_STATUS_REJECT_NOTE')\r\n : (approve ? 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_UPDATE_STATUS_ISDAMAGED_APPROVE_NOTE' : 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_UPDATE_STATUS_REJECT_NOTE'),\r\n dangerNote: approve ? '' : ' ',\r\n inputNote: 'ISS_LABEL_RESOLVE_NOTE'\r\n }));\r\n modal.then(m => {\r\n //console.log(m);\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this.resolveRequest(row.id, approve, m[1].inputNote);\r\n });\r\n }\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)\r\n this.issuingService.getDocumentsRevokeRequests({ pageIndex: 0, pageSize: this.paginator.length, sort: this.sort.active, dir: this.sort.direction })\r\n .toPromise()\r\n .then(data => {\r\n this.exportToExcel(data.revokeRequests);\r\n }).finally(() => this.loader.load(LoaderType.Body, false));\r\n else\r\n this.dataSource.connect().subscribe(data => {\r\n this.exportToExcel(data);\r\n this.loader.load(LoaderType.Body, false);\r\n }).unsubscribe();\r\n }\r\n\r\n private resolveRequest(id: number, approve: boolean, note: string) {\r\n this.loader.load(LoaderType.Body);\r\n const cmd: ResolveTryRevokeDocumentCommand = {\r\n id: id,\r\n approve: approve,\r\n note: note\r\n }\r\n this.issuingService.resolveTryRevokeDocument(cmd)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.APPROVING)\r\n //console.log(this.auth.currentUser.username);\r\n const i = this.dataSource.revokeRequestsSubject.value.findIndex(i => i.id == id);\r\n this.dataSource.revokeRequestsSubject.value[i].undoRequestStatus = approve ? UndoRequestStatus.Approved : UndoRequestStatus.Rejected;\r\n this.dataSource.revokeRequestsSubject.value[i].resolvedBy = this.auth.currentUser.username;\r\n this.dataSource.revokeRequestsSubject.value[i].resolveNote = note;\r\n this.dataSource.revokeRequestsSubject.next([...this.dataSource.revokeRequestsSubject.value]);\r\n }\r\n else this.alert.failure(DefaultAlertAction.REJECTING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private exportToExcel(data: DocumentRevokeRequestDto[]) {\r\n const wscols = [\r\n { width: 14 },\r\n { width: 24 },\r\n { width: 24 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 16 },\r\n ];\r\n const autofilter = { ref: 'A1:J1' };\r\n const rows: string[][] = [];\r\n\r\n const headers = [\r\n this.translate.instant('_LABEL_DATE'),\r\n this.translate.instant('_LABEL_SERIAL'),\r\n this.translate.instant('LKP_FIELD_STOCK_TYPE'),\r\n this.translate.instant('ACC_FIELD_ACCOUNT_TITLE'),\r\n this.translate.instant('ISS_LABEL_REQUESTED_BY'),\r\n this.translate.instant('_FIELD_REASON'),\r\n this.translate.instant('STK_LABEL_UNDO_REQUEST_STATUS'),\r\n this.translate.instant('ISS_LABEL_REQUEST_TYPE'),\r\n this.translate.instant('ISS_LABEL_RESOLVED_BY'),\r\n this.translate.instant('ISS_LABEL_RESOLVE_DATE'),\r\n this.translate.instant('ISS_LABEL_RESOLVE_NOTE')\r\n ];\r\n\r\n rows.push(headers);\r\n for (let row of data) {\r\n rows.push([\r\n moment(row.created).format('DD/MM/YYYY'),\r\n row.serial.toString(),\r\n row.stockType.titles[0],\r\n row.accountTitles[0],\r\n row.requestedBy,\r\n row.requestReason,\r\n this.translate.instant(undoRequestStatusLocale(row.undoRequestStatus)),\r\n this.translate.instant(row.isDamaged ? '_ACTION_DESTROY' : '_ACTION_RECOVER'),\r\n row.resolvedBy ? row.resolvedBy : '-',\r\n row.resolved ? moment(row.resolved).format('DD/MM/YYYY') : '-',\r\n row.resolveNote ? row.resolveNote : '-'\r\n ]);\r\n }\r\n\r\n exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'Documents-Revoke-Requests');\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { result } from 'lodash';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { IssuingsPerMonthDataSetDto } from 'src/app/features/statistics/models/statistics.model';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { LoaderType, LoadingService } from 'src/app/shared/services/loading';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { DocumentValidityVm } from '../../models/issuing.models';\r\nimport { IssuingService } from '../../services/issuing.service';\r\n\r\n@Component({\r\n selector: 'mac-expired-documents-query',\r\n templateUrl: './expired-documents-query.component.html',\r\n styleUrls: ['./expired-documents-query.component.scss'],\r\n providers: [StockTypesService, IssuingService]\r\n})\r\nexport class ExpiredDocumentsQueryComponent implements OnInit {\r\n\r\n form: FormGroup;\r\n stockTypes: StockTypeDto[] = [];\r\n lang: Language;\r\n dto: DocumentValidityVm;\r\n\r\n get stockType() { return this.form.get('stockTypeId'); };\r\n get serial() { return this.form.get('serial'); };\r\n get passportIDorIdentityID() { return this.form.get('passportIDorIdentityID'); };\r\n\r\n constructor(private fb: FormBuilder,\r\n private stockTypesService: StockTypesService,\r\n private issuingService: IssuingService,\r\n public translate: TranslateService,\r\n private loader: LoadingService,\r\n private alert: AlertService) { }\r\n\r\n ngOnInit(): void {\r\n this.loader.load(LoaderType.Nav);\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.formInit();\r\n\r\n this.stockTypesService.get(this.lang)\r\n .then((result) => this.stockTypes = result.list.filter(x => x.documentType == _DocumentType.TripTikDocument))\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n stockTypeId: ['', [Validators.required]],\r\n serial: ['', [Validators.required]],\r\n passportIDorIdentityID: ['', [Validators.required]]\r\n })\r\n }\r\n\r\n onSubmit() {\r\n // //console.log(this.form.value);\r\n\r\n // if (!this.form.valid)\r\n // return Utils.validateAllFormFields(this.form);\r\n\r\n // this.loader.load(LoaderType.Body);\r\n // this.issuingService.searchForExpiredDocument(this.stockType.value, this.serial.value, this.passportIDorIdentityID.value)\r\n // .then(result => {\r\n // //console.log(result);\r\n\r\n // this.dto = result;\r\n // if (!this.dto) {\r\n // this.alert.failure(\"_MESSAGE_NO_SEARCH_RESULTS\", false);\r\n // }\r\n\r\n // }).catch(e => console.error(e))\r\n // .finally(() => this.loader.load(LoaderType.Body, false))\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { result } from 'lodash';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { IssuingsPerMonthDataSetDto } from 'src/app/features/statistics/models/statistics.model';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { LoaderType, LoadingService } from 'src/app/shared/services/loading';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { DocumentValidityVm, IssuedDocumentsQuery } from '../../models/issuing.models';\r\nimport { IssuingService } from '../../services/issuing.service';\r\n\r\n@Component({\r\n selector: 'mac-issued-documents-query',\r\n templateUrl: './issued-documents-query.component.html',\r\n styleUrls: ['./issued-documents-query.component.scss'],\r\n providers: [StockTypesService, IssuingService]\r\n})\r\nexport class IssuedDocumentsQueryComponent implements OnInit {\r\n\r\n form: FormGroup;\r\n stockTypes: StockTypeDto[] = [];\r\n lang: Language;\r\n dto: DocumentValidityVm;\r\n dataSource: MatTableDataSource;\r\n displayedColumns: string[] = ['name', 'issueDate', 'expiryDate', 'status'];\r\n\r\n get _DocumentType() { return _DocumentType; };\r\n\r\n get stockType() { return this.form.get('stockTypeId'); };\r\n get serial() { return this.form.get('serial'); };\r\n get passportIDorIdentityID() { return this.form.get('passportIDorIdentityID'); };\r\n get vChassisID() { return this.form.get('vChassisID'); };\r\n get vPlateID() { return this.form.get('vPlateID'); };\r\n\r\n constructor(private fb: FormBuilder,\r\n private stockTypesService: StockTypesService,\r\n private issuingService: IssuingService,\r\n public translate: TranslateService,\r\n private loader: LoadingService,\r\n private alert: AlertService) { }\r\n\r\n ngOnInit(): void {\r\n this.loader.load(LoaderType.Nav);\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.formInit();\r\n\r\n this.stockTypesService.get(this.lang)\r\n .then((result) => this.stockTypes = result.list/*.filter(x => x.documentType == _DocumentType.TripTikDocument)*/)\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n documentType: _DocumentType;\r\n\r\n onSelectStockType(stockTypeId: number) {\r\n const stockType = this.stockTypes.find(x => x.id == stockTypeId);\r\n this.documentType = stockType.documentType;\r\n //console.log(stockTypeId);\r\n\r\n if (this.documentType == _DocumentType.TripTikDocument) {\r\n this.passportIDorIdentityID.clearValidators()\r\n this.passportIDorIdentityID.setErrors(null);\r\n } else {\r\n this.passportIDorIdentityID.setValidators(Validators.required);\r\n this.passportIDorIdentityID.setErrors(null);\r\n }\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n stockTypeId: ['', [Validators.required]],\r\n serial: ['', [Validators.required]],\r\n passportIDorIdentityID: ['', [Validators.required]],\r\n vPlateID: [''],\r\n vChassisID: ['']\r\n })\r\n }\r\n\r\n\r\n reset() {\r\n this.isPosted = false;\r\n this.form.reset();\r\n this.dataSource = null;\r\n }\r\n\r\n\r\n isPosted: boolean = false;\r\n isCloneAvailable: boolean = false;\r\n\r\n onSubmit() {\r\n //console.log(this.form.value);\r\n\r\n if (this.documentType == _DocumentType.TripTikDocument) {\r\n this.passportIDorIdentityID.clearValidators()\r\n this.passportIDorIdentityID.setErrors(null);\r\n } else {\r\n this.passportIDorIdentityID.setValidators(Validators.required);\r\n this.passportIDorIdentityID.updateValueAndValidity();\r\n }\r\n\r\n //this.passportIDorIdentityID.setErrors(null);\r\n\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n\r\n\r\n // if (!this.form.valid)\r\n // return;\r\n\r\n\r\n if (!this.passportIDorIdentityID.value && !this.vChassisID.value && !this.vPlateID.value) {\r\n this.alert.failure(\"_MESSAGE_FILL_SEARCH_CRITERIA\", false);\r\n return;\r\n }\r\n\r\n const query = this.form.value as IssuedDocumentsQuery;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n //console.log(query);\r\n\r\n this.loader.load(LoaderType.Body);\r\n // this.issuingService.searchForExpiredDocument(this.stockType.value, this.serial.value, this.passportIDorIdentityID.value)\r\n this.issuingService.searchForIssuedDocument(this.stockType.value, this.serial.value, query)\r\n .then(result => {\r\n //console.log(result);\r\n\r\n this.dataSource = result ? new MatTableDataSource([result]) : null;\r\n if (this.dataSource)\r\n this.isCloneAvailable = result.stockType.documentType == _DocumentType.DrivingLicense\r\n || !result.isValid;\r\n\r\n if (this.isCloneAvailable && this.displayedColumns.length == 4)\r\n this.displayedColumns.push('tools')\r\n\r\n if (!this.isCloneAvailable && this.displayedColumns.length == 5)\r\n this.displayedColumns.pop();\r\n\r\n // this.dto = result;\r\n // if (!this.dto) {\r\n // this.dataSource = null;\r\n // // this.alert.failure(\"_MESSAGE_NO_SEARCH_RESULTS\", false);\r\n // }\r\n\r\n }).catch(e => { console.error(e); this.dataSource = null; })\r\n .finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.isPosted = true;\r\n })\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { IssuingService } from '../../services/issuing.service';\r\nimport { DocumentValidityVm } from '../../models/issuing.models';\r\n\r\n@Component({\r\n selector: 'mac-verification',\r\n templateUrl: './verification.component.html',\r\n styleUrls: ['./verification.component.scss'],\r\n providers: [IssuingService]\r\n})\r\nexport class VerificationComponent implements OnInit {\r\n dto: DocumentValidityVm;\r\n key: string;\r\n loading: boolean = true;\r\n\r\n constructor(@Inject(DOCUMENT) private document: Document,\r\n private translate: TranslateService,\r\n private route: ActivatedRoute,\r\n private loader: LoadingService,\r\n private issuingService: IssuingService) {\r\n //this.loadStyle(\"en\"); \r\n LoadingService.style.next(false);\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n // setTimeout(() => {\r\n // this.loader.load(LoaderType.Nav, false);\r\n // this.loader.styleLoading.emit(false);\r\n // LoadingService.style.next(false);\r\n\r\n this.translate.use('en');\r\n\r\n this.key = this.route.snapshot.paramMap.get('key');\r\n\r\n this.issuingService.verify(this.key)\r\n .then(result => { //console.log(result); \r\n this.dto = result \r\n })\r\n .finally(() => this.loading = false);\r\n\r\n\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loader.load(LoaderType.Nav, false);\r\n //LoadingService.style.next(false);\r\n }, 500);\r\n\r\n //this.loader.load(null, false);\r\n }\r\n\r\n\r\n // private loadStyle(lang: string) {\r\n\r\n // const head = this.document.getElementsByTagName('head')[0];\r\n // const body = this.document.getElementsByTagName('body')[0];\r\n\r\n // body.setAttribute('dir', lang == 'ar' ? 'rtl' : 'ltr');\r\n // const styleFileName = lang == 'ar' ? 'bootstrap-rtl.css' : 'bootstrap.css';\r\n // let themeLink = this.document.getElementById('bootstrap') as HTMLLinkElement;\r\n // if (themeLink) {\r\n // themeLink.href = styleFileName;\r\n // } else {\r\n // const style = this.document.createElement('link');\r\n // style.id = 'bootstrap';\r\n // style.rel = 'stylesheet';\r\n // style.href = styleFileName;\r\n // //will be always overriden by global styles.scss\r\n // head.prepend(style);\r\n // }\r\n // }\r\n\r\n}\r\n","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { LookupDto } from \"src/app/features/lookups/models/lookup\";\r\nimport { populateAccountsSelect } from \"src/app/shared/helpers/populate-accounts-select\";\r\nimport { FileLoaderService } from \"src/app/shared/services/file-loader.service\";\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { DocumentRevokeRequestDto, PaginationQuery, DocumentsRevokeRequestsVm } from '../models/issuing.models';\r\nimport { IssuingService } from './issuing.service';\r\n\r\nexport class DocumentsRevokeRequestsDataSource implements DataSource {\r\n\r\n public revokeRequestsSubject = new BehaviorSubject([]);\r\n private countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private issuingService: IssuingService,\r\n private loader: LoadingService,\r\n private fileLoader: FileLoaderService) {\r\n }\r\n\r\n loadDocumentsRevokeRequests(pagination: PaginationQuery, stockTypeId = 0, query: string = null) {\r\n this.issuingService.getDocumentsRevokeRequests(pagination, stockTypeId, query)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: DocumentsRevokeRequestsVm) => {\r\n //console.log(result);\r\n result.revokeRequests.map(async x => {\r\n if (x.attachment)\r\n x.attachment = (await this.fileLoader.loadAsync(x.attachment as string)).changingThisBreaksApplicationSecurity;\r\n\r\n return x;\r\n });\r\n\r\n // result.revokeRequests.forEach(request => {\r\n // request.accountParentAccounts = populateAccountsSelect([request.accountParentAccounts])[0];\r\n // });\r\n\r\n result.revokeRequests.map(request => {\r\n request.accountParentAccounts = populateAccountsSelect([request.accountParentAccounts])[0];\r\n return request;\r\n });\r\n this.revokeRequestsSubject.next(result.revokeRequests);\r\n this.countSubject.next(result.recordsCount);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n connect(): Observable {\r\n return this.revokeRequestsSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.revokeRequestsSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport {\r\n DocumentValidityVm,\r\n TryRevokeDocumentCommand,\r\n ResolveTryRevokeDocumentCommand,\r\n PaginationQuery,\r\n DocumentsRevokeRequestsVm,\r\n IssuedDocumentsQuery\r\n} from '../models/issuing.models';\r\n\r\n@Injectable()\r\nexport class IssuingService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n verify(key: string) {\r\n return this.api.get(EndPoint.ISSUING_VERIFY, key).toPromise();\r\n }\r\n\r\n // searchForExpiredDocument(stockTypeId: number, serial: number, passportIDorIdentityID: string) {\r\n // //search/{stockTypeId}/{serial}/{passportIDorIdentityID}\r\n // return this.api.get(EndPoint.ISSUING_EXPIRED_DOCUMENTS_QUERY, [stockTypeId, serial, passportIDorIdentityID]).toPromise();\r\n // }\r\n\r\n\r\n searchForIssuedDocument(stockTypeId: number, serial: number, query: IssuedDocumentsQuery) {\r\n return this.api.get(EndPoint.ISSUING_ISSUED_DOCUMENTS_QUERY, [stockTypeId, serial], { ...query }).toPromise();\r\n }\r\n\r\n\r\n tryRevokeDocument(cmd: TryRevokeDocumentCommand) {\r\n return this.api.create(EndPoint.ISSUING_REVOKE_TRY, cmd).toPromise();\r\n }\r\n\r\n cancelTryRevokeDocument(id: number) {\r\n return this.api.create<{}, boolean>(EndPoint.ISSUING_REVOKE_CANCEL, { id }).toPromise();\r\n }\r\n\r\n resolveTryRevokeDocument(cmd: ResolveTryRevokeDocumentCommand) {\r\n return this.api.create(EndPoint.ISSUING_REVOKE_RESOLVE, cmd).toPromise();\r\n }\r\n\r\n getDocumentsRevokeRequests(pagination: PaginationQuery, stockTypeId = 0, query: string = '') {\r\n return this.api.get(EndPoint.ISSUING_REVOKE_REQUESTS, [stockTypeId], { ...pagination, query });\r\n }\r\n\r\n cancelDocument(id: string) {\r\n return this.api.delete(EndPoint.ISSUING_DOCUMENT_CANCEL, id).toPromise();\r\n }\r\n}","import { Component, OnInit, ViewChild, ElementRef } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { merge, fromEvent } from \"rxjs\";\r\nimport { tap } from \"rxjs/operators\";\r\nimport * as moment from \"moment\";\r\nimport * as _ from \"lodash\";\r\n\r\nimport { LoadingService, LoaderType } from \"src/app/shared/services/loading\";\r\nimport { exportToExcel } from \"src/app/shared/helpers/export-to-excel\";\r\nimport { Language } from \"src/app/core/models/enums/language\";\r\nimport { Gender } from \"src/app/core/models/enums/gender\";\r\nimport { PrintObject } from \"src/app/core/models/enums/print-object\";\r\nimport { ConfirmService } from \"src/app/shared/services/modal.service\";\r\nimport { DeleteModal, UpdateModal } from \"src/app/shared/models/modal\";\r\nimport { AlertService } from \"src/app/shared/services/alert.service\";\r\nimport { DefaultAlertAction } from \"src/app/shared/models/default-alert-action\";\r\nimport { AuthService } from \"src/app/core/auth/auth.service\";\r\nimport { Role } from \"src/app/core/models/enums/role\";\r\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\r\nimport { CountriesService } from \"src/app/features/lookups/services/countries\";\r\nimport { CountryDto } from \"src/app/features/lookups/models/country\";\r\nimport { IntLicensePermitClass } from \"src/app/core/models/enums/license-permit-class\";\r\nimport { populateAccountsSelect } from \"src/app/shared/helpers/populate-accounts-select\";\r\nimport { LookupDto } from \"src/app/features/lookups/models/lookup\";\r\nimport { AccountsService } from \"src/app/features/accounts/services/accounts.service\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport {\r\n PaginationQuery,\r\n PrintLogDto,\r\n TryRevokeDocumentCommand,\r\n} from \"../../../_shared/models/issuing.models\";\r\nimport { IssuingService } from \"../../../_shared/services/issuing.service\";\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { parseInt } from \"lodash\";\r\nimport { Utils } from \"src/app/shared/services/utils\";\r\nimport { IntLicensesService } from \"../../../int-licenses/services/int-licenses.service\";\r\nimport { IntLicensesDataSource } from \"../../../int-licenses/services/int-licenses.datasource\";\r\nimport { IntLicenseDto } from \"../../../int-licenses/models/int-license\";\r\nimport { CoupounService } from \"../../services/coupoun.service\";\r\nimport { CouponDataSource } from \"../../services/coupon.datasource\";\r\nimport { CouponDto } from \"../../models/coupon\";\r\n\r\n@Component({\r\n selector: \"mac-coupon-management\",\r\n templateUrl: \"./coupon-management.component.html\",\r\n styleUrls: [\r\n \"../../../../../../../node_modules/@ng-select/ng-select/themes/material.theme.css\",\r\n \"./coupon-management.component.scss\",\r\n ],\r\n providers: [\r\n IntLicensesService,\r\n IssuingService,\r\n CountriesService,\r\n AccountsService,\r\n ],\r\n})\r\nexport class CouponManagementComponent implements OnInit {\r\n moment = moment;\r\n displayedColumns: string[] = [\r\n \"name\",\r\n \"discount\",\r\n \"status\",\r\n \"tools\",\r\n ];\r\n dataSource: CouponDataSource;\r\n lang: Language;\r\n advancedSearchMode: boolean;\r\n countries: CountryDto[] = [];\r\n accounts: LookupDto[] = [];\r\n query: any = null;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild(\"filter\", { static: true }) filter: ElementRef;\r\n @ViewChild(\"filterBtn\") filterBtn: ElementRef;\r\n\r\n get Role() {\r\n return Role;\r\n }\r\n get Gender() {\r\n return Gender;\r\n }\r\n get PrintObject() {\r\n return PrintObject;\r\n }\r\n get IntLicensePermitClass() {\r\n return IntLicensePermitClass;\r\n }\r\n get Object() {\r\n return Object;\r\n }\r\n get Math() {\r\n return Math;\r\n }\r\n\r\n constructor(\r\n private loader: LoadingService,\r\n private intLicensesService: IntLicensesService,\r\n private issuingService: IssuingService,\r\n public translate: TranslateService,\r\n private confirmService: ConfirmService,\r\n private alert: AlertService,\r\n public auth: AuthService,\r\n private fb: FormBuilder,\r\n private countriesService: CountriesService,\r\n private accountsService: AccountsService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private couponService: CoupounService\r\n ) {}\r\n\r\n ngOnInit() {\r\n \r\n document.querySelector(\"mat-card\").classList.remove(\"overflow-hidden\");\r\n this.lang =\r\n this.translate.currentLang == \"ar\" ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(\r\n (t) => (this.lang = t.lang == \"ar\" ? Language.Arabic : Language.English)\r\n );\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n this.countriesService\r\n .get(this.lang)\r\n .then((result) => (this.countries = result.list));\r\n\r\n //if system account, accounts will be fetched from server, otherwise current account details will be fetched from local auth service\r\n if (this.auth.currentUser.isSystemAccount) {\r\n this.accountsService\r\n .getChildrenAccountsLookup(0, false)\r\n .then((result) => {\r\n this.accounts = result.list; // populateAccountsSelect(result.list);\r\n })\r\n .catch((e) => this.searchForm.get(\"accountId\").disable());\r\n } else {\r\n this.accounts = [\r\n {\r\n id: this.auth.currentUser.accountId,\r\n titles: [this.auth.currentUser.accountTitles[this.lang]],\r\n },\r\n ];\r\n this.searchForm.patchValue({\r\n accountId: this.auth.currentUser.accountId,\r\n });\r\n this.searchForm.get(\"accountId\").disable();\r\n }\r\n\r\n this.route.queryParamMap.subscribe((p) => {\r\n //console.warn(p);\r\n\r\n if (!p.has(\"pageIndex\")) {\r\n //console.warn('ready to reload!');\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.filter.nativeElement.value = \"\";\r\n this.paginator.page.emit({\r\n pageIndex: 0,\r\n pageSize: this.paginator.pageIndex,\r\n length: this.paginator.length,\r\n });\r\n }\r\n });\r\n\r\n //let query = null;\r\n\r\n if (this.route.snapshot.queryParams.query) {\r\n this.query = this.route.snapshot.queryParams.query;\r\n this.filter.nativeElement.value = this.query;\r\n } else if (\r\n this.route.snapshot.queryParams.accountId ||\r\n this.route.snapshot.queryParams.countryId ||\r\n this.route.snapshot.queryParams.fromDate ||\r\n this.route.snapshot.queryParams.toDate ||\r\n this.route.snapshot.queryParams.gender ||\r\n this.route.snapshot.queryParams.name ||\r\n this.route.snapshot.queryParams.nationalityId ||\r\n this.route.snapshot.queryParams.passportID ||\r\n this.route.snapshot.queryParams.permitClass ||\r\n this.route.snapshot.queryParams.phoneNumber ||\r\n this.route.snapshot.queryParams.serial ||\r\n this.route.snapshot.queryParams.isIssued ||\r\n this.route.snapshot.queryParams.isDamaged\r\n ) {\r\n this.activeFilters = true;\r\n this.searchForm.patchValue(this.route.snapshot.queryParams);\r\n\r\n //fix int for ng-select\r\n this.searchForm.patchValue({\r\n accountId: !isNaN(this.route.snapshot.queryParams.accountId)\r\n ? parseInt(this.route.snapshot.queryParams.accountId)\r\n : null,\r\n });\r\n this.searchForm.patchValue({\r\n countryId: !isNaN(this.route.snapshot.queryParams.countryId)\r\n ? parseInt(this.route.snapshot.queryParams.countryId)\r\n : null,\r\n });\r\n this.searchForm.patchValue({\r\n nationalityId: !isNaN(this.route.snapshot.queryParams.nationalityId)\r\n ? parseInt(this.route.snapshot.queryParams.nationalityId)\r\n : null,\r\n });\r\n\r\n // this.searchForm.patchValue({countryId: 2});\r\n // //console.log(this.searchForm.value);\r\n this.query = this.searchForm.value;\r\n }\r\n\r\n this.fetchData(this.query);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n )\r\n .subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => {\r\n this.dataSource.loadCoupons(\r\n '00000000-0000-0000-0000-000000000000',\r\n {\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n sort: this.sort.active,\r\n dir: this.sort.direction,\r\n },\r\n this.advancedSearchMode || this.activeFilters\r\n ? this.searchForm.value\r\n : this.filter.nativeElement.value.trim()\r\n );\r\n })\r\n )\r\n .subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n merge(\r\n fromEvent(this.filter.nativeElement, \"search\"),\r\n fromEvent(this.filterBtn.nativeElement, \"click\")\r\n )\r\n .pipe(\r\n tap(() => {\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.searchForm.reset();\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.loadCoupons(\r\n '00000000-0000-0000-0000-000000000000',\r\n {\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n sort: this.sort.active,\r\n dir: this.sort.direction,\r\n },\r\n this.filter.nativeElement.value.trim()\r\n );\r\n })\r\n )\r\n .subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n this.dataSource.connect().subscribe(() => {\r\n let pagination: PaginationQuery = {\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n sort: this.sort.active,\r\n dir: this.sort.direction,\r\n };\r\n this.query = this.activeFilters\r\n ? this.searchForm.value\r\n : this.filter.nativeElement.value.trim();\r\n let query = this.query;\r\n\r\n if (this.activeFilters)\r\n this.router.navigate([\".\"], {\r\n relativeTo: this.route,\r\n queryParams: { ...pagination, ...query },\r\n replaceUrl: true,\r\n });\r\n else\r\n this.router.navigate([\".\"], {\r\n relativeTo: this.route,\r\n queryParams: { ...pagination, query },\r\n replaceUrl: true,\r\n });\r\n });\r\n }\r\n\r\n fetchData(query) {\r\n this.paginator.pageIndex = this.route.snapshot.queryParams.pageIndex\r\n ? this.route.snapshot.queryParams.pageIndex\r\n : 0;\r\n this.paginator.pageSize = this.route.snapshot.queryParams.pageSize\r\n ? this.route.snapshot.queryParams.pageSize\r\n : 25;\r\n this.sort.active = this.route.snapshot.queryParams.sort\r\n ? this.route.snapshot.queryParams.sort\r\n : \"created\";\r\n this.sort.direction = this.route.snapshot.queryParams.dir\r\n ? this.route.snapshot.queryParams.dir\r\n : \"desc\";\r\n this.dataSource = new CouponDataSource(\r\n this.couponService,\r\n this.loader\r\n );\r\n this.dataSource.loadCoupons(\r\n '00000000-0000-0000-0000-000000000000',\r\n {\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n sort: this.sort.active,\r\n dir: this.sort.direction,\r\n },\r\n query\r\n );\r\n }\r\n\r\n toggleAdvancedSearch() {\r\n this.advancedSearchMode = !this.advancedSearchMode;\r\n this.filter.nativeElement.value = \"\";\r\n }\r\n\r\n filterList(list: PrintLogDto[], printObject: PrintObject) {\r\n return list.filter((l) => l.printObject == printObject);\r\n }\r\n\r\n printObjectsCount(list: PrintLogDto[], printObject: PrintObject) {\r\n return list.filter((l) => l.printObject == printObject).length;\r\n }\r\n\r\n onDetail(coupon: any) {\r\n this.router.navigate(['en/issuing/coupon-management/view', coupon.id]);\r\n }\r\n\r\n onUpdate(coupon: any) {\r\n localStorage.setItem(\"EditCoupon\", JSON.stringify(coupon))\r\n this.router.navigate(['en/issuing/coupon-management/add', coupon.id]);\r\n }\r\n\r\n cancel(dto: IntLicenseDto) {\r\n if (\r\n !dto.issued ||\r\n !this.auth.currentUser.isSystemAccount ||\r\n !this.auth.currentUser.isInRole(Role.INT_LICENSES_DELETE)\r\n )\r\n return;\r\n\r\n let modal = this.confirmService.confirm(\r\n new DeleteModal({\r\n type: \"LIC_TITLE_LICENSE\",\r\n title: `${dto.serial.toString()}/${dto.name}`,\r\n note: \"LIC_CONFIRM_CANCEL_NOTE\",\r\n })\r\n );\r\n\r\n modal.then(async (m) => {\r\n if (m.indexOf(\"CONFIRMED\") > -1) this._cancel(dto.id);\r\n });\r\n }\r\n\r\n delete(dto: IntLicenseDto) {\r\n if (\r\n dto.accountId != this.auth.currentUser.accountId ||\r\n !this.auth.currentUser.isInRole(Role.INT_LICENSES_DELETE)\r\n )\r\n return;\r\n\r\n //delete confirm if not yet issued\r\n if (!dto.issued) {\r\n let modal = this.confirmService.confirm(\r\n new DeleteModal({\r\n type: \"LIC_TITLE_LICENSE\",\r\n title: `${dto.serial.toString()}/${dto.name}`,\r\n note: \"LIC_CONFIRM_DELETE_NOTE\",\r\n })\r\n );\r\n\r\n modal.then(async (m) => {\r\n if (m.indexOf(\"CONFIRMED\") > -1) this._delete(dto.id);\r\n });\r\n }\r\n }\r\n\r\n private _delete(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.intLicensesService\r\n .delete(id)\r\n .then((result) => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n this.dataSource.couponSubject.next(\r\n this.dataSource.couponSubject.value.filter((d) => d.id != id)\r\n );\r\n this.dataSource.countSubject.next(\r\n this.dataSource.countSubject.value - 1\r\n );\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private _cancel(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.issuingService\r\n .cancelDocument(id)\r\n .then((result) => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.DELETING); //todo: change message\r\n this.dataSource.couponSubject.next(\r\n this.dataSource.couponSubject.value.filter((d) => d.id != id)\r\n );\r\n this.dataSource.countSubject.next(\r\n this.dataSource.countSubject.value - 1\r\n );\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)\r\n this.couponService[\r\n this.query == null || typeof this.query == \"string\"\r\n ? \"getCoupons\"\r\n : \"search\"\r\n ](\r\n {\r\n pageIndex: 0,\r\n pageSize: this.paginator.length,\r\n sort: this.sort.active,\r\n dir: this.sort.direction,\r\n },\r\n this.query\r\n )\r\n .toPromise()\r\n .then((data) => {\r\n this.exportToExcel(data.list);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n else\r\n this.dataSource\r\n .connect()\r\n .subscribe((data) => {\r\n this.exportToExcel(data);\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n .unsubscribe();\r\n }\r\n\r\n private exportToExcel(data: CouponDto[]) {\r\n const wscols = [\r\n { width: 12 },\r\n { width: 28 },\r\n { width: 12 },\r\n { width: 18 },\r\n { width: 28 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n ];\r\n const autofilter = { ref: \"A1:I1\" };\r\n const rows: string[][] = [];\r\n\r\n const headers = [\r\n this.translate.instant(\"LIC_FIELD_LICENSE_NO\"),\r\n this.translate.instant(\"_FIELD_NAME\"),\r\n this.translate.instant(\"_LABEL_GENDER\"),\r\n this.translate.instant(\"_FIELD_PHONE_NO\"),\r\n this.translate.instant(\"ACC_FIELD_ACCOUNT_TITLE\"),\r\n this.translate.instant(\"ISS_FIELD_PASSPORT_NUMBER\"),\r\n this.translate.instant(\"ISS_LABEL_ISSUE_DATE\"),\r\n this.translate.instant(\"ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT\", {\r\n param: this.translate.instant(\"LIC_LABEL_PRINT_OBJECT_LICENSE\"),\r\n }),\r\n this.translate.instant(\"ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT\", {\r\n param: this.translate.instant(\"LIC_LABEL_PRINT_OBJECT_STICKER\"),\r\n }),\r\n ];\r\n\r\n rows.push(headers);\r\n for (let row of data) {\r\n rows.push([\r\n row.id,\r\n row.name,\r\n row.discount.toString(),\r\n row.status ? \"Active\" : \"InActive\",\r\n ]);\r\n }\r\n\r\n exportToExcel(\r\n rows,\r\n wscols,\r\n autofilter,\r\n this.translate.currentLang == \"ar\",\r\n \"Coupons\"\r\n );\r\n }\r\n\r\n onSubmit() {\r\n // console.warn(this.searchForm.value);\r\n //var d = new Date()\r\n if (this.fromDate.value && typeof this.fromDate.value == \"object\")\r\n this.fromDate.setValue(\r\n Utils.convertToServerDateTimeString(this.fromDate.value)\r\n );\r\n\r\n if (this.toDate.value && typeof this.toDate.value == \"object\")\r\n this.toDate.setValue(\r\n Utils.convertToServerDateTimeString(this.toDate.value)\r\n );\r\n\r\n //swap dates\r\n if (\r\n this.fromDate.value &&\r\n this.toDate.value &&\r\n new Date(this.fromDate.value) > new Date(this.toDate.value)\r\n ) {\r\n let _temp = this.fromDate.value;\r\n this.fromDate.setValue(this.toDate.value);\r\n this.toDate.setValue(_temp);\r\n }\r\n\r\n //console.log(this.fromDate.value, this.toDate.value);\r\n\r\n this.activeFilters = true;\r\n\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n length: this.paginator.length,\r\n });\r\n }\r\n\r\n get fromDate() {\r\n return this.searchForm.get(\"fromDate\");\r\n }\r\n get toDate() {\r\n return this.searchForm.get(\"toDate\");\r\n }\r\n searchForm: FormGroup;\r\n activeFilters: boolean;\r\n\r\n resetSearch() {\r\n this.advancedSearchMode = false;\r\n if (this.activeFilters) {\r\n this.activeFilters = false;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n length: this.paginator.length,\r\n });\r\n }\r\n\r\n this.activeFilters = false;\r\n\r\n setTimeout(() => {\r\n this.searchForm.reset();\r\n this.query = null;\r\n }, 500);\r\n }\r\n\r\n private formInit() {\r\n //use same validators to filter inputs values\r\n this.searchForm = this.fb.group({\r\n name: [\"\"], //regex to match english letters only\r\n countryId: [null],\r\n nationalityId: [null],\r\n gender: [\"\"],\r\n phoneNumber: [\"\"], //regex to match numbers only\r\n passportID: [\"\"],\r\n accountId: [null],\r\n permitClass: [\"\"],\r\n serial: [\"\"], //regex to match numbers only\r\n fromDate: [\"\"],\r\n toDate: [\"\"],\r\n isIssued: [\"\"],\r\n isDamaged: [\"\"],\r\n });\r\n }\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewChild,\r\n ElementRef,\r\n ɵConsole,\r\n ChangeDetectorRef,\r\n AfterContentChecked,\r\n} from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { LoadingService, LoaderType } from \"src/app/shared/services/loading\";\r\nimport { StockTypesService } from \"src/app/features/lookups/services/stock-types\";\r\nimport { AuthService } from \"src/app/core/auth/auth.service\";\r\nimport { AlertService } from \"src/app/shared/services/alert.service\";\r\nimport { LookupDto } from \"src/app/features/lookups/models/lookup\";\r\nimport { ConfirmService } from \"src/app/shared/services/modal.service\";\r\nimport { DeleteModal, DisplayModal } from \"src/app/shared/models/modal\";\r\nimport { StockTypeDto } from \"src/app/features/lookups/models/stock-type\";\r\nimport { Language } from \"src/app/core/models/enums/language\";\r\nimport { FormBuilder, FormGroup, NgForm, Validators } from \"@angular/forms\";\r\nimport { Utils } from \"src/app/shared/services/utils\";\r\nimport { _DocumentType } from \"src/app/core/models/enums/document-type\";\r\nimport { numbersOnlyValidator } from \"src/app/shared/services/custom-validators\";\r\nimport { StocksService } from \"src/app/features/stock/services/stocks.service\";\r\nimport {\r\n AvailableStock,\r\n AvailableStocksVm,\r\n} from \"src/app/features/stock/models/available-stocks\";\r\nimport { StockSliderComponent } from \"src/app/features/stock/components/stock-slider/stock-slider.component\";\r\nimport { TransactionLabelDetails } from \"src/app/features/stock/models/transaction-label-details\";\r\nimport { PopulateCmd } from \"src/app/features/stock/models/populate.cmd\";\r\nimport { CoupounService } from \"../../services/coupoun.service\";\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: \"mac-manage-coupon-management\",\r\n templateUrl: \"./manage-coupon-management.component.html\",\r\n styleUrls: [\"./manage-coupon-management.component.scss\"],\r\n providers: [StockTypesService, StocksService],\r\n})\r\nexport class ManageCouponManagementComponent implements OnInit, AfterContentChecked {\r\n populate: boolean;\r\n selectedStock: number[];\r\n availableStock: AvailableStock;\r\n stockTypes: StockTypeDto[];\r\n documentType: _DocumentType;\r\n form: FormGroup;\r\n documentTemplateVersions = [1, 2];\r\n lang: Language;\r\n availableStockHTML: string;\r\n reasons: LookupDto[] = [\r\n { id: -1, titles: [\"حذف نهائي\", \"Permanent Delete\"] },\r\n { id: 1, titles: [\"آخر\", \"Other\"] },\r\n ];\r\n transactionDetails: TransactionLabelDetails = {};\r\n status: boolean = false;\r\n couponId: string;\r\n coupon: any;\r\n\r\n @ViewChild(StockSliderComponent) slider: StockSliderComponent;\r\n\r\n get _DocumentType() {\r\n return _DocumentType;\r\n }\r\n get customReason() {\r\n return this.form.get(\"customReason\");\r\n }\r\n get reason() {\r\n return this.form.get(\"reason\");\r\n }\r\n get documentTemplateVersion() {\r\n return this.form.get(\"documentTemplateVersion\");\r\n }\r\n get fromRange() {\r\n return this.form.get(\"fromRange\");\r\n }\r\n get name() {\r\n return this.form.get(\"name\");\r\n }\r\n get discount() {\r\n return this.form.get(\"discount\");\r\n }\r\n\r\n constructor(\r\n private loader: LoadingService,\r\n private alert: AlertService,\r\n private router: Router,\r\n private translate: TranslateService,\r\n private auth: AuthService,\r\n private route: ActivatedRoute,\r\n private fb: FormBuilder,\r\n private stockTypesService: StockTypesService,\r\n private stocksService: StocksService,\r\n private confirmation: ConfirmService,\r\n private couponService: CoupounService,\r\n private _location: Location,\r\n private ref: ChangeDetectorRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.coupon = JSON.parse(localStorage.getItem(\"EditCoupon\"));\r\n this.lang =\r\n this.translate.currentLang == \"ar\" ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(\r\n (t) => (this.lang = t.lang == \"ar\" ? Language.Arabic : Language.English)\r\n );\r\n this.couponId = this.route.snapshot.paramMap.get(\"id\");\r\n this.populate = (this.couponId && !!this.coupon) || false;\r\n //console.log(this.populate, this.coupon)\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n this.transactionDetails.alertClass = this.populate ? \"success\" : \"danger\";\r\n this.transactionDetails.operation = this.populate\r\n ? \"STK_TITLE_POPULATE\"\r\n : \"STK_TITLE_DEPOPULATE\";\r\n\r\n this.stockTypesService\r\n .get(this.lang)\r\n .then((result) => {\r\n this.stockTypes = result.list;\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n\r\n if (!this.auth.currentUser.isSystemAccount) console.warn(\"not allowed!\");\r\n }\r\n ngAfterContentChecked() {\r\n this.ref.detectChanges();\r\n }\r\n\r\n onStatusChange(checked: boolean) {\r\n this.status = checked;\r\n }\r\n\r\n onSubmit() {\r\n if (this.populate) {\r\n this.couponService\r\n .update({\r\n id: this.couponId,\r\n name: this.name.value,\r\n discount: this.discount.value,\r\n status: this.status,\r\n })\r\n .then((m) => {\r\n if (m) {\r\n this._location.back();\r\n }\r\n });\r\n } else {\r\n this.couponService\r\n .create({\r\n name: this.name.value,\r\n discount: this.discount.value,\r\n status: this.status,\r\n })\r\n .then((m) => {\r\n if (m) {\r\n this._location.back();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n name: [this.populate ? this.coupon.name : \"\", [Validators.required]],\r\n discount: [\r\n this.populate ? this.coupon.discount : \"\",\r\n [Validators.required, Validators.max(100), Validators.maxLength(3), numbersOnlyValidator],\r\n ],\r\n });\r\n if (this.coupon != null) {\r\n this.status = this.coupon.status;\r\n }\r\n }\r\n\r\n onCancel() {\r\n this.form.reset();\r\n this._location.back();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'mac-view-coupon-management',\r\n templateUrl: './view-coupon-management.component.html',\r\n styleUrls: ['./view-coupon-management.component.scss']\r\n})\r\nexport class ViewCouponManagementComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatSort } from \"@angular/material/sort\";\r\nimport { merge, fromEvent } from \"rxjs\";\r\nimport { tap } from \"rxjs/operators\";\r\nimport * as moment from \"moment\";\r\nimport * as _ from \"lodash\";\r\n\r\nimport { LoadingService, LoaderType } from \"src/app/shared/services/loading\";\r\nimport { exportToExcel } from \"src/app/shared/helpers/export-to-excel\";\r\nimport { Language } from \"src/app/core/models/enums/language\";\r\nimport { Gender } from \"src/app/core/models/enums/gender\";\r\nimport { PrintObject } from \"src/app/core/models/enums/print-object\";\r\nimport { ConfirmService } from \"src/app/shared/services/modal.service\";\r\nimport { DeleteModal, UpdateModal } from \"src/app/shared/models/modal\";\r\nimport { AlertService } from \"src/app/shared/services/alert.service\";\r\nimport { DefaultAlertAction } from \"src/app/shared/models/default-alert-action\";\r\nimport { AuthService } from \"src/app/core/auth/auth.service\";\r\nimport { Role } from \"src/app/core/models/enums/role\";\r\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\r\nimport { CountriesService } from \"src/app/features/lookups/services/countries\";\r\nimport { CountryDto } from \"src/app/features/lookups/models/country\";\r\nimport { IntLicensePermitClass } from \"src/app/core/models/enums/license-permit-class\";\r\nimport { populateAccountsSelect } from \"src/app/shared/helpers/populate-accounts-select\";\r\nimport { LookupDto } from \"src/app/features/lookups/models/lookup\";\r\nimport { AccountsService } from \"src/app/features/accounts/services/accounts.service\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport {\r\n PaginationQuery,\r\n PrintLogDto,\r\n TryRevokeDocumentCommand,\r\n} from \"../../../_shared/models/issuing.models\";\r\nimport { IssuingService } from \"../../../_shared/services/issuing.service\";\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { parseInt } from \"lodash\";\r\nimport { Utils } from \"src/app/shared/services/utils\";\r\nimport { IntLicensesService } from \"../../../int-licenses/services/int-licenses.service\";\r\nimport { IntLicensesDataSource } from \"../../../int-licenses/services/int-licenses.datasource\";\r\nimport { IntLicenseDto } from \"../../../int-licenses/models/int-license\";\r\nimport { CoupounService } from \"../../services/coupoun.service\";\r\nimport { CouponDetailDataSource } from \"../../services/coupo-detail.datasource\";\r\nimport { CouponDto } from \"../../models/coupon\";\r\n\r\n@Component({\r\n selector: \"mac-view-license-detail\",\r\n templateUrl: \"./view-license-detail.component.html\",\r\n styleUrls: [\r\n \"../../../../../../../node_modules/@ng-select/ng-select/themes/material.theme.css\",\r\n \"./view-license-detail.component.scss\",\r\n ],\r\n providers: [\r\n IntLicensesService,\r\n IssuingService,\r\n CountriesService,\r\n AccountsService,\r\n ],\r\n})\r\nexport class ViewLicenseDetailComponent implements OnInit {\r\n moment = moment;\r\n displayedColumns: string[] = [\"name\", \"discount\", \"status\", \"customerName\"];\r\n dataSource: CouponDetailDataSource;\r\n lang: Language;\r\n advancedSearchMode: boolean;\r\n countries: CountryDto[] = [];\r\n accounts: LookupDto[] = [];\r\n query: any = null;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild(\"filter\", { static: true }) filter: ElementRef;\r\n @ViewChild(\"filterBtn\") filterBtn: ElementRef;\r\n\r\n get Role() {\r\n return Role;\r\n }\r\n get Gender() {\r\n return Gender;\r\n }\r\n get PrintObject() {\r\n return PrintObject;\r\n }\r\n get IntLicensePermitClass() {\r\n return IntLicensePermitClass;\r\n }\r\n get Object() {\r\n return Object;\r\n }\r\n get Math() {\r\n return Math;\r\n }\r\n\r\n constructor(\r\n private loader: LoadingService,\r\n private intLicensesService: IntLicensesService,\r\n private issuingService: IssuingService,\r\n public translate: TranslateService,\r\n private confirmService: ConfirmService,\r\n private alert: AlertService,\r\n public auth: AuthService,\r\n private fb: FormBuilder,\r\n private countriesService: CountriesService,\r\n private accountsService: AccountsService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private couponService: CoupounService\r\n ) {\r\n //console.log(\"insomniac\");\r\n }\r\n\r\n ngOnInit() {\r\n document.querySelector(\"mat-card\").classList.remove(\"overflow-hidden\");\r\n this.lang =\r\n this.translate.currentLang == \"ar\" ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(\r\n (t) => (this.lang = t.lang == \"ar\" ? Language.Arabic : Language.English)\r\n );\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n this.countriesService\r\n .get(this.lang)\r\n .then((result) => (this.countries = result.list));\r\n\r\n //if system account, accounts will be fetched from server, otherwise current account details will be fetched from local auth service\r\n if (this.auth.currentUser.isSystemAccount) {\r\n this.accountsService\r\n .getChildrenAccountsLookup(0, false)\r\n .then((result) => {\r\n this.accounts = result.list; // populateAccountsSelect(result.list);\r\n })\r\n .catch((e) => this.searchForm.get(\"accountId\").disable());\r\n } else {\r\n this.accounts = [\r\n {\r\n id: this.auth.currentUser.accountId,\r\n titles: [this.auth.currentUser.accountTitles[this.lang]],\r\n },\r\n ];\r\n this.searchForm.patchValue({\r\n accountId: this.auth.currentUser.accountId,\r\n });\r\n this.searchForm.get(\"accountId\").disable();\r\n }\r\n\r\n this.route.queryParamMap.subscribe((p) => {\r\n //console.warn(p);\r\n\r\n if (!p.has(\"pageIndex\")) {\r\n //console.warn('ready to reload!');\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.filter.nativeElement.value = \"\";\r\n this.paginator.page.emit({\r\n pageIndex: 0,\r\n pageSize: this.paginator.pageIndex,\r\n length: this.paginator.length,\r\n });\r\n }\r\n });\r\n\r\n //let query = null;\r\n\r\n if (this.route.snapshot.queryParams.query) {\r\n this.query = this.route.snapshot.queryParams.query;\r\n this.filter.nativeElement.value = this.query;\r\n } else if (\r\n this.route.snapshot.queryParams.accountId ||\r\n this.route.snapshot.queryParams.countryId ||\r\n this.route.snapshot.queryParams.fromDate ||\r\n this.route.snapshot.queryParams.toDate ||\r\n this.route.snapshot.queryParams.gender ||\r\n this.route.snapshot.queryParams.name ||\r\n this.route.snapshot.queryParams.nationalityId ||\r\n this.route.snapshot.queryParams.passportID ||\r\n this.route.snapshot.queryParams.permitClass ||\r\n this.route.snapshot.queryParams.phoneNumber ||\r\n this.route.snapshot.queryParams.serial ||\r\n this.route.snapshot.queryParams.isIssued ||\r\n this.route.snapshot.queryParams.isDamaged\r\n ) {\r\n this.activeFilters = true;\r\n this.searchForm.patchValue(this.route.snapshot.queryParams);\r\n\r\n //fix int for ng-select\r\n this.searchForm.patchValue({\r\n accountId: !isNaN(this.route.snapshot.queryParams.accountId)\r\n ? parseInt(this.route.snapshot.queryParams.accountId)\r\n : null,\r\n });\r\n this.searchForm.patchValue({\r\n countryId: !isNaN(this.route.snapshot.queryParams.countryId)\r\n ? parseInt(this.route.snapshot.queryParams.countryId)\r\n : null,\r\n });\r\n this.searchForm.patchValue({\r\n nationalityId: !isNaN(this.route.snapshot.queryParams.nationalityId)\r\n ? parseInt(this.route.snapshot.queryParams.nationalityId)\r\n : null,\r\n });\r\n\r\n // this.searchForm.patchValue({countryId: 2});\r\n // //console.log(this.searchForm.value);\r\n this.query = this.searchForm.value;\r\n }\r\n\r\n this.fetchData(this.query);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n )\r\n .subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => {\r\n this.dataSource.loadCouponDetails(\r\n this.route.snapshot.params.id,\r\n {\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n sort: this.sort.active,\r\n dir: this.sort.direction,\r\n },\r\n this.advancedSearchMode || this.activeFilters\r\n ? this.searchForm.value\r\n : this.filter.nativeElement.value.trim()\r\n );\r\n })\r\n )\r\n .subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n merge(\r\n fromEvent(this.filter.nativeElement, \"search\"),\r\n fromEvent(this.filterBtn.nativeElement, \"click\")\r\n )\r\n .pipe(\r\n tap(() => {\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.searchForm.reset();\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.loadCouponDetails(\r\n this.route.snapshot.params.id,\r\n {\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n sort: this.sort.active,\r\n dir: this.sort.direction,\r\n },\r\n this.filter.nativeElement.value.trim()\r\n );\r\n })\r\n )\r\n .subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n this.dataSource.connect().subscribe(() => {\r\n let pagination: PaginationQuery = {\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n sort: this.sort.active,\r\n dir: this.sort.direction,\r\n };\r\n this.query = this.activeFilters\r\n ? this.searchForm.value\r\n : this.filter.nativeElement.value.trim();\r\n let query = this.query;\r\n\r\n if (this.activeFilters)\r\n this.router.navigate([\".\"], {\r\n relativeTo: this.route,\r\n queryParams: { ...pagination, ...query },\r\n replaceUrl: true,\r\n });\r\n else\r\n this.router.navigate([\".\"], {\r\n relativeTo: this.route,\r\n queryParams: { ...pagination, query },\r\n replaceUrl: true,\r\n });\r\n });\r\n }\r\n\r\n fetchData(query) {\r\n this.paginator.pageIndex = this.route.snapshot.queryParams.pageIndex\r\n ? this.route.snapshot.queryParams.pageIndex\r\n : 0;\r\n this.paginator.pageSize = this.route.snapshot.queryParams.pageSize\r\n ? this.route.snapshot.queryParams.pageSize\r\n : 25;\r\n this.sort.active = this.route.snapshot.queryParams.sort\r\n ? this.route.snapshot.queryParams.sort\r\n : \"created\";\r\n this.sort.direction = this.route.snapshot.queryParams.dir\r\n ? this.route.snapshot.queryParams.dir\r\n : \"desc\";\r\n this.dataSource = new CouponDetailDataSource(this.couponService, this.loader);\r\n this.dataSource.loadCouponDetails(\r\n this.route.snapshot.params.id,\r\n {\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n sort: this.sort.active,\r\n dir: this.sort.direction,\r\n },\r\n query\r\n );\r\n }\r\n\r\n toggleAdvancedSearch() {\r\n this.advancedSearchMode = !this.advancedSearchMode;\r\n this.filter.nativeElement.value = \"\";\r\n }\r\n\r\n filterList(list: PrintLogDto[], printObject: PrintObject) {\r\n return list.filter((l) => l.printObject == printObject);\r\n }\r\n\r\n printObjectsCount(list: PrintLogDto[], printObject: PrintObject) {\r\n return list.filter((l) => l.printObject == printObject).length;\r\n }\r\n\r\n onUpdate(coupon: any) {\r\n localStorage.setItem(\"EditCoupon\", JSON.stringify(coupon));\r\n this.router.navigate([\"en/issuing/coupon-management/add\", coupon.id]);\r\n }\r\n\r\n cancel(dto: IntLicenseDto) {\r\n if (\r\n !dto.issued ||\r\n !this.auth.currentUser.isSystemAccount ||\r\n !this.auth.currentUser.isInRole(Role.INT_LICENSES_DELETE)\r\n )\r\n return;\r\n\r\n let modal = this.confirmService.confirm(\r\n new DeleteModal({\r\n type: \"LIC_TITLE_LICENSE\",\r\n title: `${dto.serial.toString()}/${dto.name}`,\r\n note: \"LIC_CONFIRM_CANCEL_NOTE\",\r\n })\r\n );\r\n\r\n modal.then(async (m) => {\r\n if (m.indexOf(\"CONFIRMED\") > -1) this._cancel(dto.id);\r\n });\r\n }\r\n\r\n delete(dto: IntLicenseDto) {\r\n if (\r\n dto.accountId != this.auth.currentUser.accountId ||\r\n !this.auth.currentUser.isInRole(Role.INT_LICENSES_DELETE)\r\n )\r\n return;\r\n\r\n //delete confirm if not yet issued\r\n if (!dto.issued) {\r\n let modal = this.confirmService.confirm(\r\n new DeleteModal({\r\n type: \"LIC_TITLE_LICENSE\",\r\n title: `${dto.serial.toString()}/${dto.name}`,\r\n note: \"LIC_CONFIRM_DELETE_NOTE\",\r\n })\r\n );\r\n\r\n modal.then(async (m) => {\r\n if (m.indexOf(\"CONFIRMED\") > -1) this._delete(dto.id);\r\n });\r\n }\r\n }\r\n\r\n private _delete(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.intLicensesService\r\n .delete(id)\r\n .then((result) => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n this.dataSource.couponDetailSubject.next(\r\n this.dataSource.couponDetailSubject.value.filter((d) => d.id != id)\r\n );\r\n this.dataSource.countSubject.next(\r\n this.dataSource.countSubject.value - 1\r\n );\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private _cancel(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.issuingService\r\n .cancelDocument(id)\r\n .then((result) => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.DELETING); //todo: change message\r\n this.dataSource.couponDetailSubject.next(\r\n this.dataSource.couponDetailSubject.value.filter((d) => d.id != id)\r\n );\r\n this.dataSource.countSubject.next(\r\n this.dataSource.countSubject.value - 1\r\n );\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)\r\n this.couponService[\r\n this.query == null || typeof this.query == \"string\"\r\n ? \"getCoupons\"\r\n : \"search\"\r\n ](\r\n {\r\n pageIndex: 0,\r\n pageSize: this.paginator.length,\r\n sort: this.sort.active,\r\n dir: this.sort.direction,\r\n },\r\n this.query\r\n )\r\n .toPromise()\r\n .then((data) => {\r\n this.exportToExcel(data.list);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n else\r\n this.dataSource\r\n .connect()\r\n .subscribe((data) => {\r\n this.exportToExcel(data);\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n .unsubscribe();\r\n }\r\n\r\n private exportToExcel(data: CouponDto[]) {\r\n const wscols = [\r\n { width: 12 },\r\n { width: 28 },\r\n { width: 12 },\r\n { width: 18 },\r\n { width: 28 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n ];\r\n const autofilter = { ref: \"A1:I1\" };\r\n const rows: string[][] = [];\r\n\r\n const headers = [\r\n this.translate.instant(\"LIC_FIELD_LICENSE_NO\"),\r\n this.translate.instant(\"_FIELD_NAME\"),\r\n this.translate.instant(\"_LABEL_GENDER\"),\r\n this.translate.instant(\"_FIELD_PHONE_NO\"),\r\n this.translate.instant(\"ACC_FIELD_ACCOUNT_TITLE\"),\r\n this.translate.instant(\"ISS_FIELD_PASSPORT_NUMBER\"),\r\n this.translate.instant(\"ISS_LABEL_ISSUE_DATE\"),\r\n this.translate.instant(\"ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT\", {\r\n param: this.translate.instant(\"LIC_LABEL_PRINT_OBJECT_LICENSE\"),\r\n }),\r\n this.translate.instant(\"ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT\", {\r\n param: this.translate.instant(\"LIC_LABEL_PRINT_OBJECT_STICKER\"),\r\n }),\r\n ];\r\n\r\n rows.push(headers);\r\n for (let row of data) {\r\n rows.push([\r\n row.id,\r\n row.name,\r\n row.discount.toString(),\r\n row.status ? \"Active\" : \"InActive\",\r\n ]);\r\n }\r\n\r\n exportToExcel(\r\n rows,\r\n wscols,\r\n autofilter,\r\n this.translate.currentLang == \"ar\",\r\n \"Coupons\"\r\n );\r\n }\r\n\r\n onSubmit() {\r\n // console.warn(this.searchForm.value);\r\n //var d = new Date()\r\n if (this.fromDate.value && typeof this.fromDate.value == \"object\")\r\n this.fromDate.setValue(\r\n Utils.convertToServerDateTimeString(this.fromDate.value)\r\n );\r\n\r\n if (this.toDate.value && typeof this.toDate.value == \"object\")\r\n this.toDate.setValue(\r\n Utils.convertToServerDateTimeString(this.toDate.value)\r\n );\r\n\r\n //swap dates\r\n if (\r\n this.fromDate.value &&\r\n this.toDate.value &&\r\n new Date(this.fromDate.value) > new Date(this.toDate.value)\r\n ) {\r\n let _temp = this.fromDate.value;\r\n this.fromDate.setValue(this.toDate.value);\r\n this.toDate.setValue(_temp);\r\n }\r\n\r\n //console.log(this.fromDate.value, this.toDate.value);\r\n\r\n this.activeFilters = true;\r\n\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n length: this.paginator.length,\r\n });\r\n }\r\n\r\n get fromDate() {\r\n return this.searchForm.get(\"fromDate\");\r\n }\r\n get toDate() {\r\n return this.searchForm.get(\"toDate\");\r\n }\r\n searchForm: FormGroup;\r\n activeFilters: boolean;\r\n\r\n resetSearch() {\r\n this.advancedSearchMode = false;\r\n if (this.activeFilters) {\r\n this.activeFilters = false;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n length: this.paginator.length,\r\n });\r\n }\r\n\r\n this.activeFilters = false;\r\n\r\n setTimeout(() => {\r\n this.searchForm.reset();\r\n this.query = null;\r\n }, 500);\r\n }\r\n\r\n private formInit() {\r\n //use same validators to filter inputs values\r\n this.searchForm = this.fb.group({\r\n name: [\"\"], //regex to match english letters only\r\n countryId: [null],\r\n nationalityId: [null],\r\n gender: [\"\"],\r\n phoneNumber: [\"\"], //regex to match numbers only\r\n passportID: [\"\"],\r\n accountId: [null],\r\n permitClass: [\"\"],\r\n serial: [\"\"], //regex to match numbers only\r\n fromDate: [\"\"],\r\n toDate: [\"\"],\r\n isIssued: [\"\"],\r\n isDamaged: [\"\"],\r\n });\r\n }\r\n}\r\n","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { PaginationQuery } from '../../_shared/models/issuing.models';\r\nimport { CouponDto, CouponSearchQuery, CouponDetailVm } from \"../models/coupon\";\r\nimport { CoupounService } from \"./coupoun.service\";\r\n\r\n\r\nexport class CouponDetailDataSource implements DataSource {\r\n // add variables to hold the data and number of total records retrieved asynchronously\r\n // BehaviourSubject type is used for this purpose\r\n public couponDetailSubject = new BehaviorSubject([]);\r\n\r\n // to show the total number of records\r\n public countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private couponService: CoupounService, private loader: LoadingService) { }\r\n\r\n loadCouponDetails(id: string, pagination: PaginationQuery, query: CouponSearchQuery | string = null) {\r\n\r\n this.couponService[(query == null || typeof query == 'string') ? 'getCouponDetails' : 'search'](id, pagination, query)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: CouponDetailVm) => {\r\n this.couponDetailSubject.next(result.couponLicense);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n connect(): Observable {\r\n return this.couponDetailSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.couponDetailSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { PaginationQuery } from '../../_shared/models/issuing.models';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { CouponDto, CouponSearchQuery, CouponsVm } from \"../models/coupon\";\r\nimport { CoupounService } from \"./coupoun.service\";\r\n\r\n\r\nexport class CouponDataSource implements DataSource {\r\n // add variables to hold the data and number of total records retrieved asynchronously\r\n // BehaviourSubject type is used for this purpose\r\n public couponSubject = new BehaviorSubject([]);\r\n\r\n // to show the total number of records\r\n public countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private couponService: CoupounService, private loader: LoadingService) { }\r\n\r\n loadCoupons(id: string, pagination: PaginationQuery, query: CouponSearchQuery | string = null) {\r\n\r\n this.couponService[(query == null || typeof query == 'string') ? 'getCoupon' : 'search'](id, pagination, query)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: CouponsVm) => {\r\n this.couponSubject.next(result.coupons);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n connect(): Observable {\r\n return this.couponSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.couponSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ApiHandler } from \"src/app/core/api-handler\";\r\nimport { EndPoint } from \"src/app/core/models/enums/end-point\";\r\nimport { PaginationQuery } from \"../../_shared/models/issuing.models\";\r\nimport { CouponDto, CouponsVm, CouponDetailVm } from \"../models/coupon\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class CoupounService {\r\n constructor(private api: ApiHandler) {}\r\n\r\n create(coupon: any) {\r\n return this.api\r\n .create(EndPoint.E_lICENSE_COUPON_CREATE, coupon)\r\n .toPromise();\r\n }\r\n\r\n update(coupon: any) {\r\n return this.api\r\n .update(EndPoint.E_lICENSE_COUPON_UPDATE, coupon)\r\n .toPromise();\r\n }\r\n\r\n getCoupon(id: string, pagination: PaginationQuery, query: string = \"\") {\r\n return this.api.get(EndPoint.E_lICENSE_COUPON, [id], {\r\n ...pagination,\r\n query,\r\n });\r\n }\r\n getCouponDetails(id: string, pagination: PaginationQuery, query: string = \"\") {\r\n return this.api.get(EndPoint.E_lICENSE_VIEW_COUPON_DETAILS, [id], {\r\n ...pagination,\r\n query,\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, ElementRef } from '@angular/core';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { IntLicenseDetailsDto } from '../../models/int-license';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { SafeUrl } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'mac-commitment-print',\r\n templateUrl: './commitment-print.component.html',\r\n styleUrls: ['./commitment-print.component.scss']\r\n})\r\nexport class CommitmentPrintComponent implements OnInit {\r\n\r\n dto: IntLicenseDetailsDto;\r\n // personalPhoto: string;\r\n // passportPhoto: string;\r\n // licensePhoto: string;\r\n issueDate: Date;\r\n\r\n get Gender() { return Gender };\r\n get Language() { return Language; };\r\n\r\n constructor(private elRef: ElementRef, private fileLoader: FileLoaderService) { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n async print(dto: IntLicenseDetailsDto) {\r\n //console.log(dto);\r\n this.dto = dto;\r\n \r\n // this.personalPhoto = ( ).changingThisBreaksApplicationSecurity;\r\n // this.passportPhoto = (await (await this.fileLoader.loadAsync(dto.attachments[1] as string))).changingThisBreaksApplicationSecurity;\r\n // this.licensePhoto = (await (await this.fileLoader.loadAsync(dto.attachments[2] as string))).changingThisBreaksApplicationSecurity;\r\n\r\n // const x = await (await this.fileLoader.loadAsync(dto.attachments[0] as string))\r\n this.issueDate = this.dto.issued ? this.dto.issued : new Date();\r\n\r\n setTimeout(() => {\r\n const printHtmlContent = this.elRef.nativeElement.innerHTML;\r\n Utils.printHtml(printHtmlContent);\r\n }, 500);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ElementRef } from '@angular/core';\r\nimport { IntLicenseDetailsDto } from '../../models/int-license';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\nimport { PrintObject } from 'src/app/core/models/enums/print-object';\r\nimport { SafeUrl } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'mac-int-license-print',\r\n templateUrl: './int-license-print.component.html',\r\n styleUrls: ['./int-license-print.component.scss'],\r\n providers: [FileLoaderService]\r\n})\r\nexport class IntLicensePrintComponent {\r\n\r\n dto: IntLicenseDetailsDto;\r\n //personalPhoto: string;\r\n qRCodeUrl: string;\r\n printObject: PrintObject;\r\n v: number = 42.4;\r\n h: number = 10.6;\r\n rh: number = 4.1;\r\n get Language() { return Language; };\r\n get Gender() { return Gender };\r\n get PrintObject() { return PrintObject; };\r\n\r\n constructor(private elRef: ElementRef, private fileLoader: FileLoaderService) {\r\n }\r\n\r\n async print(dto: IntLicenseDetailsDto, printObject: PrintObject) {\r\n this.dto = dto;\r\n this.printObject = printObject;\r\n\r\n this.qRCodeUrl = Utils.generateQrCodeUrl(this.dto.hashedSerial);// `${this._baseUrl}/verify-license/${this.dto.hashedSerial}`;\r\n //this.personalPhoto = ((await this.fileLoader.loadAsync(dto.attachments[0] as string))).changingThisBreaksApplicationSecurity;\r\n\r\n setTimeout(() => {\r\n const printHtmlContent = this.elRef.nativeElement.innerHTML;\r\n Utils.printHtml(printHtmlContent);\r\n }, 500);\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { merge, fromEvent } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\n\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { exportToExcel } from 'src/app/shared/helpers/export-to-excel';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { IntLicensesDataSource } from '../../services/int-licenses.datasource';\r\nimport { IntLicensesService } from '../../services/int-licenses.service';\r\nimport { IntLicenseDto, TapOrder } from '../../models/int-license';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { PrintObject } from 'src/app/core/models/enums/print-object';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal, UpdateModal } from 'src/app/shared/models/modal';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { CountriesService } from 'src/app/features/lookups/services/countries';\r\nimport { CountryDto } from 'src/app/features/lookups/models/country';\r\nimport { IntLicensePermitClass } from 'src/app/core/models/enums/license-permit-class';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { AccountsService } from 'src/app/features/accounts/services/accounts.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { PaginationQuery, PrintLogDto, TryRevokeDocumentCommand } from '../../../_shared/models/issuing.models';\r\nimport { IssuingService } from '../../../_shared/services/issuing.service';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { parseInt } from 'lodash';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { ELicensesDataSource } from '../../services/e-licenses.datasource';\r\nimport { ELicensesService } from '../../services/e-licenses.service';\r\nimport { convertELicenseOrderStatusToLocale } from '../../models/order-status-locale';\r\n\r\n@Component({\r\n selector: 'mac-e-licenses',\r\n templateUrl: './e-licenses.component.html',\r\n styleUrls: ['../../../../../../../node_modules/@ng-select/ng-select/themes/material.theme.css', './e-licenses.component.scss'],\r\n providers: [\r\n ELicensesService,\r\n IntLicensesService,\r\n IssuingService,\r\n CountriesService,\r\n AccountsService\r\n ]\r\n})\r\nexport class ELicensesComponent implements OnInit {\r\n moment = moment;\r\n displayedColumns: string[] = ['serial', 'name', 'gender', 'phoneNumber', 'accountTitles', 'passportID', 'issueDate',/* 'source',*/ 'printings','orderStatus', 'orderNumber', 'licenseDuration', 'shipping','paymentMethod', 'totalPrice', 'tools'];\r\n dataSource: ELicensesDataSource;\r\n lang: Language;\r\n advancedSearchMode: boolean;\r\n countries: CountryDto[] = [];\r\n accounts: LookupDto[] = [];\r\n query: any = null;\r\n\r\n convertELicenseOrderStatusToLocale = convertELicenseOrderStatusToLocale;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('filter', { static: true }) filter: ElementRef;\r\n @ViewChild('filterBtn') filterBtn: ElementRef;\r\n\r\n get Role() { return Role; };\r\n get Gender() { return Gender; };\r\n get PrintObject() { return PrintObject; };\r\n get IntLicensePermitClass() { return IntLicensePermitClass };\r\n get Object() { return Object; };\r\n get Math() { return Math; };\r\n\r\n constructor(private loader: LoadingService,\r\n private eLicensesService: ELicensesService,\r\n private intLicensesService: IntLicensesService,\r\n private issuingService: IssuingService,\r\n public translate: TranslateService,\r\n private confirmService: ConfirmService,\r\n private alert: AlertService,\r\n public auth: AuthService,\r\n private fb: FormBuilder,\r\n private countriesService: CountriesService,\r\n private accountsService: AccountsService,\r\n private router: Router,\r\n private route: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n this.countriesService.get(this.lang)\r\n .then(result => this.countries = result.list);\r\n\r\n //if system account, accounts will be fetched from server, otherwise current account details will be fetched from local auth service\r\n if (this.auth.currentUser.isSystemAccount) {\r\n this.accountsService.getChildrenAccountsLookup(0, false)\r\n .then(result => {\r\n this.accounts = result.list;// populateAccountsSelect(result.list);\r\n }).catch(e => this.searchForm.get('accountId').disable());\r\n } else {\r\n this.accounts = [{ id: this.auth.currentUser.accountId, titles: [this.auth.currentUser.accountTitles[this.lang]] }];\r\n this.searchForm.patchValue({ accountId: this.auth.currentUser.accountId });\r\n this.searchForm.get('accountId').disable();\r\n }\r\n\r\n this.route.queryParamMap.subscribe(p => {\r\n console.warn(p);\r\n\r\n if (!p.has('pageIndex')) {\r\n console.warn('ready to reload!');\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.filter.nativeElement.value = '';\r\n this.paginator.page.emit({ pageIndex: 0, pageSize: this.paginator.pageIndex, length: this.paginator.length });\r\n }\r\n });\r\n\r\n //let query = null;\r\n\r\n if (this.route.snapshot.queryParams.query) {\r\n this.query = this.route.snapshot.queryParams.query;\r\n this.filter.nativeElement.value = this.query;\r\n }\r\n else if (this.route.snapshot.queryParams.accountId\r\n || this.route.snapshot.queryParams.countryId\r\n || this.route.snapshot.queryParams.orderStatus\r\n || this.route.snapshot.queryParams.fromDate\r\n || this.route.snapshot.queryParams.toDate\r\n || this.route.snapshot.queryParams.gender\r\n || this.route.snapshot.queryParams.name\r\n || this.route.snapshot.queryParams.nationalityId\r\n || this.route.snapshot.queryParams.stockTypeId\r\n || this.route.snapshot.queryParams.passportID\r\n || this.route.snapshot.queryParams.permitClass\r\n || this.route.snapshot.queryParams.phoneNumber\r\n || this.route.snapshot.queryParams.serial\r\n || this.route.snapshot.queryParams.isIssued\r\n || this.route.snapshot.queryParams.isDamaged\r\n || this.route.snapshot.queryParams.licensePeriod\r\n || this.route.snapshot.queryParams.paymentMethod\r\n || this.route.snapshot.queryParams.orderNo\r\n || this.route.snapshot.queryParams.shippingStatue) {\r\n this.activeFilters = true;\r\n this.searchForm.patchValue(this.route.snapshot.queryParams);\r\n\r\n //fix int for ng-select\r\n this.searchForm.patchValue({ accountId: !isNaN(this.route.snapshot.queryParams.accountId) ? parseInt(this.route.snapshot.queryParams.accountId) : null });\r\n this.searchForm.patchValue({ countryId: !isNaN(this.route.snapshot.queryParams.countryId) ? parseInt(this.route.snapshot.queryParams.countryId) : null });\r\n this.searchForm.patchValue({ nationalityId: !isNaN(this.route.snapshot.queryParams.nationalityId) ? parseInt(this.route.snapshot.queryParams.nationalityId) : null });\r\n this.searchForm.patchValue({ shippingStatue: !isNaN(this.route.snapshot.queryParams.shippingStatue) ? parseInt(this.route.snapshot.queryParams.shippingStatue) : null });\r\n this.searchForm.patchValue({ orderNo: !isNaN(this.route.snapshot.queryParams.orderNo) ? parseInt(this.route.snapshot.queryParams.orderNo) : null });\r\n this.searchForm.patchValue({ orderStatus: !isNaN(this.route.snapshot.queryParams.orderStatus) ? parseInt(this.route.snapshot.queryParams.orderStatus) : null });\r\n\r\n // this.searchForm.patchValue({countryId: 2});\r\n // console.log(this.searchForm.value);\r\n this.query = this.searchForm.value;\r\n }\r\n this.fetchData(this.query);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n ).subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => {\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction },\r\n this.advancedSearchMode || this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim())\r\n })\r\n ).subscribe(() => {\r\n\r\n this.loader.load(LoaderType.Body)\r\n });\r\n\r\n merge(fromEvent(this.filter.nativeElement, 'search'), fromEvent(this.filterBtn.nativeElement, 'click'))\r\n .pipe(\r\n tap(() => {\r\n console.log('clicked')\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.searchForm.reset();\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, this.filter.nativeElement.value.trim())\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n this.dataSource.connect()\r\n .subscribe((data) => {\r\n let pagination: PaginationQuery = { pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction };\r\n this.query = this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim();\r\n let query = this.query;\r\n console.log(this.query)\r\n\r\n\r\n if (this.activeFilters)\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, ...query }, replaceUrl: true });\r\n else\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, query }, replaceUrl: true });\r\n });\r\n }\r\n\r\n fetchData(query) {\r\n console.log(query)\r\n this.paginator.pageIndex = 0;\r\n this.paginator.pageSize = 25;\r\n this.sort.active = this.route.snapshot.queryParams.sort ? this.route.snapshot.queryParams.sort : 'created';\r\n this.sort.direction = this.route.snapshot.queryParams.dir ? this.route.snapshot.queryParams.dir : 'desc';\r\n this.dataSource = new ELicensesDataSource(this.eLicensesService, this.loader);\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, query);\r\n }\r\n\r\n toggleAdvancedSearch() {\r\n this.advancedSearchMode = !this.advancedSearchMode;\r\n this.filter.nativeElement.value = '';\r\n }\r\n\r\n filterList(list: PrintLogDto[], printObject: PrintObject) {\r\n return list.filter(l => l.printObject == printObject)\r\n }\r\n\r\n printObjectsCount(list: PrintLogDto[], printObject: PrintObject) {\r\n return list.filter(l => l.printObject == printObject).length;\r\n }\r\n\r\n cancel(dto: IntLicenseDto) {\r\n if (!dto.issued || !this.auth.currentUser.isSystemAccount\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_DELETE))\r\n return;\r\n\r\n\r\n let modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'LIC_TITLE_LICENSE',\r\n title: `${dto.serial.toString()}/${dto.name}`,\r\n note: 'LIC_CONFIRM_CANCEL_NOTE'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this._cancel(dto.id);\r\n });\r\n }\r\n\r\n delete(dto: IntLicenseDto) {\r\n if (dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_DELETE))\r\n return;\r\n\r\n //delete confirm if not yet issued\r\n if (!dto.issued) {\r\n let modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'LIC_TITLE_LICENSE',\r\n title: `${dto.serial.toString()}/${dto.name}`,\r\n note: 'LIC_CONFIRM_DELETE_NOTE'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this._delete(dto.id);\r\n });\r\n }\r\n }\r\n\r\n tryRevoke(dto: IntLicenseDto) {\r\n if (dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_REVOKE_REQUESTS_CREATE))\r\n return;\r\n\r\n let modal;\r\n //try-revoke\r\n //try-revoke confirm if issued && permited to try-revoke\r\n if (!dto.revokeRequestId) {\r\n modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'ISS_TITLE_DOCUMENT_REVOKE_REQUEST',\r\n title: `${this.translate.instant('STK_LABEL_STOCK_TYPE_LICENSE')} / ${dto.serial.toString()}`,\r\n action: '_ACTION_REQUEST2',\r\n submitText: '_ACTION_REQUEST2',\r\n confirmQuestion: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_CONFIRMATION_QUESTION',\r\n note: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_NOTE',\r\n dangerNote: ' ',\r\n inputNote: 'ISS_TITLE_DOCUMENT_REVOKE_REQUEST_REASON',\r\n requestType: true,\r\n attachment: '_TITLE_ATTACHMENTS'\r\n }));\r\n } else {\r\n //undo\r\n modal = this.confirmService.confirm(new UpdateModal({\r\n type: 'ISS_TITLE_DOCUMENT_REVOKE_REQUEST',\r\n title: `${this.translate.instant('STK_LABEL_STOCK_TYPE_LICENSE')} / ${dto.serial.toString()}`,\r\n action: '_ACTION_REVOKE_REQUEST_CANCEL',\r\n submitText: '_ACTION_REVOKE_REQUEST_CANCEL',\r\n confirmQuestion: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_CANCEL_CONFIRMATION_QUESTION',\r\n note: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_CANCEL_NOTE',\r\n dangerNote: ' '\r\n }));\r\n }\r\n modal.then(async m => {\r\n console.log(m);\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n (!dto.revokeRequestId) ?\r\n this._tryRevoke(dto.id, m[1])\r\n : this._cancelTryRevoke(dto.revokeRequestId)\r\n }\r\n });\r\n }\r\n\r\n private _tryRevoke(objectId: string, attributes: any/*, reason: string*/) {\r\n\r\n const reason = attributes.inputNote,\r\n isDamaged = attributes.isDamaged == \"true\",\r\n attachment = attributes.attachment;\r\n\r\n console.log(attachment);\r\n\r\n const cmd: TryRevokeDocumentCommand = { id: objectId, stockTypeId: 1, reason, isDamaged, attachment }\r\n console.log(cmd);\r\n this.loader.load(LoaderType.Body);\r\n this.issuingService.tryRevokeDocument(cmd)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.REQUESTING);\r\n const i = this.dataSource.IntLicensesSubject.value.findIndex(i => i.id == objectId);\r\n this.dataSource.IntLicensesSubject.value[i].revokeRequestId = result;\r\n this.dataSource.IntLicensesSubject.next(this.dataSource.IntLicensesSubject.value);\r\n\r\n } else this.alert.failure(DefaultAlertAction.REQUESTING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private _cancelTryRevoke(id: number) {\r\n this.loader.load(LoaderType.Body);\r\n this.issuingService.cancelTryRevokeDocument(id)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.REVOKE_REQUESTING_CANCEL);\r\n const i = this.dataSource.IntLicensesSubject.value.findIndex(i => i.revokeRequestId == id);\r\n this.dataSource.IntLicensesSubject.value[i].revokeRequestId = null;\r\n this.dataSource.IntLicensesSubject.next(this.dataSource.IntLicensesSubject.value);\r\n\r\n } else this.alert.failure(DefaultAlertAction.REVOKE_REQUESTING_CANCEL);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private _delete(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.intLicensesService.delete(id)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n this.dataSource.IntLicensesSubject.next(this.dataSource.IntLicensesSubject.value.filter(d => d.id != id));\r\n this.dataSource.countSubject.next(this.dataSource.countSubject.value - 1);\r\n\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private _cancel(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.issuingService.cancelDocument(id)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.DELETING);//todo: change message\r\n this.dataSource.IntLicensesSubject.next(this.dataSource.IntLicensesSubject.value.filter(d => d.id != id));\r\n this.dataSource.countSubject.next(this.dataSource.countSubject.value - 1);\r\n\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)\r\n this.eLicensesService[(this.query == null || typeof this.query == 'string') ? 'getLicenses' : 'search']({ pageIndex: 0, pageSize: this.paginator.length, sort: this.sort.active, dir: this.sort.direction }, this.query,true)\r\n .toPromise()\r\n .then(data => {\r\n this.exportToExcel(data.list,null);\r\n }).finally(() => this.loader.load(LoaderType.Body, false));\r\n else{\r\n this.eLicensesService[(this.query == null || typeof this.query == 'string') ? 'getLicenses' : 'search']({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, this.query,true)\r\n .toPromise()\r\n .then(data => {\r\n console.log(data);\r\n this.exportToExcel(data.list,data.tapOrders);\r\n }).finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n }\r\n\r\n private exportToExcel(data: IntLicenseDto[] ,tapOrder:TapOrder ) {\r\n const wscols = [\r\n { width: 28 },\r\n { width: 28 },\r\n { width: 12 },\r\n { width: 18 },\r\n { width: 28 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 28 },\r\n { width: 22 },\r\n\r\n ];\r\n const autofilter = { ref: 'A1:I1' };\r\n const rows: string[][] = [];\r\n\r\n const headers = [\r\n this.translate.instant('LIC_FIELD_LICENSE_NO'),\r\n this.translate.instant('_FIELD_NAME'),\r\n this.translate.instant('_LABEL_GENDER'),\r\n this.translate.instant('_FIELD_PHONE_NO'),\r\n this.translate.instant('ACC_FIELD_ACCOUNT_TITLE'),\r\n this.translate.instant('ISS_FIELD_PASSPORT_NUMBER'),\r\n this.translate.instant('ISS_LABEL_ISSUE_DATE'),\r\n this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('LIC_LABEL_PRINT_OBJECT_LICENSE') }),\r\n this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('LIC_LABEL_PRINT_OBJECT_STICKER') }),\r\n\r\n this.translate.instant('LIC_LABEL_ORDER_NUMBER'),\r\n this.translate.instant('LIC_LABEL_DURATION'),\r\n this.translate.instant('LIC_LABEL_SHIPPING'),\r\n this.translate.instant('LIC_LABEL_TOTAL_PRICE'),\r\n this.translate.instant('LIC_LABEL_PAYMENT_METHOD'),\r\n \"رقم المعاملة\",\r\n \"نوع الكارت\",\r\n ];\r\n\r\n rows.push(headers);\r\n for (let row of data) {\r\n rows.push([\r\n row.serial,\r\n row.name,\r\n this.translate.instant(row.gender == Gender.Male ? '_LABEL_MALE' : '_LABEL_FEMALE'),\r\n //this.translate.instant(`_LABEL_GENDER_${row.gender}`),\r\n row.phoneNumber,\r\n row.accountTitles[0],\r\n // row.parentAccounts.titles.toString().replace('', \"\").replace('', \"\").replace('\\'\\'>',\"\"),\r\n\r\n row.passportID,\r\n moment(row.issued).format('DD/MM/YYYY'),\r\n this.printObjectsCount(row.printLogs, PrintObject.IntLicenseCard),\r\n this.printObjectsCount(row.printLogs, PrintObject.IntLicenseSticker),\r\n\r\n row.eLicenseOrder?.bill.couponDiscount ? row.eLicenseOrder.bill.couponDiscount: null,\r\n row.validityYears? row.validityYears : null,\r\n row.eLicenseOrder?.bill.shippingFees ?row.eLicenseOrder.bill.shippingFees : 0,\r\n row.eLicenseOrder?.bill.total ? row.eLicenseOrder.bill.total: 0,\r\n row.eLicenseOrder?.bill.trackingId ? row.eLicenseOrder.bill.trackingId : null,\r\n row.eLicenseOrder?.bill.chargeId ? row.eLicenseOrder.bill.chargeId : null,\r\n row.eLicenseOrder?.bill.paymentMethod ? row.eLicenseOrder.bill.paymentMethod : null,\r\n\r\n ]);\r\n\r\n }\r\n debugger\r\n if(tapOrder != null){\r\n debugger\r\n rows.push([\"موجود فالنظام وغير موجود في تاب\" , \"موجود في تاب وغير موجود فالنظام\"])\r\n var rowsCount = 0\r\n if (tapOrder.unmatchedOrderNumbers && tapOrder.unmatchedDatabaseNumbers) {\r\n rowsCount = Math.max(tapOrder.unmatchedOrderNumbers.length, tapOrder.unmatchedDatabaseNumbers.length);\r\n }\r\n // If unmatchedOrderNumbers is null or undefined, use the length of unmatchedDatabaseNumbers\r\n else if (tapOrder.unmatchedOrderNumbers == null && tapOrder.unmatchedDatabaseNumbers) {\r\n rowsCount = tapOrder.unmatchedDatabaseNumbers.length;\r\n }\r\n // If unmatchedDatabaseNumbers is null or undefined, use the length of unmatchedOrderNumbers\r\n else if (tapOrder.unmatchedDatabaseNumbers == null && tapOrder.unmatchedOrderNumbers) {\r\n rowsCount = tapOrder.unmatchedOrderNumbers.length;\r\n }\r\n for (let index = 0; index < rowsCount; index++) {\r\n rows.push([\r\n (tapOrder.unmatchedDatabaseNumbers && index < tapOrder.unmatchedDatabaseNumbers.length) ? tapOrder.unmatchedDatabaseNumbers[index] : \"\",\r\n (tapOrder.unmatchedOrderNumbers && index < tapOrder.unmatchedOrderNumbers.length) ? tapOrder.unmatchedOrderNumbers[index] : \"\"\r\n ]); }\r\n }\r\n\r\n exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'E-Licenses');\r\n }\r\n\r\n\r\n onSubmit() {\r\n\r\n // console.warn(this.searchForm.value);\r\n //var d = new Date()\r\n if (this.fromDate.value && typeof this.fromDate.value == 'object')\r\n this.fromDate.setValue(Utils.convertToServerDateTimeString(this.fromDate.value));\r\n\r\n if (this.toDate.value && typeof this.toDate.value == 'object')\r\n this.toDate.setValue(Utils.convertToServerDateTimeString(this.toDate.value));\r\n\r\n //swap dates\r\n if (this.fromDate.value && this.toDate.value && new Date(this.fromDate.value) > new Date(this.toDate.value)) {\r\n let _temp = this.fromDate.value;\r\n this.fromDate.setValue(this.toDate.value);\r\n this.toDate.setValue(_temp);\r\n }\r\n\r\n console.log(this.fromDate.value, this.toDate.value);\r\n\r\n this.activeFilters = true;\r\n\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n get fromDate() { return this.searchForm.get('fromDate'); };\r\n get toDate() { return this.searchForm.get('toDate'); };\r\n searchForm: FormGroup;\r\n activeFilters: boolean;\r\n\r\n resetSearch() {\r\n this.advancedSearchMode = false;\r\n if (this.activeFilters) {\r\n this.activeFilters = false;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n this.activeFilters = false;\r\n\r\n setTimeout(() => {\r\n this.searchForm.reset();\r\n this.query = null;\r\n }, 500);\r\n }\r\n\r\n private formInit() {\r\n //use same validators to filter inputs values\r\n this.searchForm = this.fb.group({\r\n name: [''], //regex to match english letters only\r\n countryId: [null],\r\n nationalityId: [null],\r\n gender: [''],\r\n phoneNumber: [''], //regex to match numbers only\r\n passportID: [''],\r\n accountId: [null],\r\n permitClass: [''],\r\n serial: [''], //regex to match numbers only\r\n fromDate: [''],\r\n stockTypeId: [''],\r\n toDate: [''],\r\n isIssued: [''],\r\n isDamaged: [''],\r\n licensePeriod:[''],\r\n paymentMethod:[''],\r\n orderNo:[''],\r\n shippingStatue:[''],\r\n orderStatus: [null] // Ensure orderStatus is part of the form group\r\n\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { merge, fromEvent } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\n\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { exportToExcel } from 'src/app/shared/helpers/export-to-excel';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { IntLicensesDataSource } from '../../services/int-licenses.datasource';\r\nimport { IntLicensesService } from '../../services/int-licenses.service';\r\nimport { IntLicenseDto } from '../../models/int-license';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { PrintObject } from 'src/app/core/models/enums/print-object';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal, UpdateModal } from 'src/app/shared/models/modal';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { CountriesService } from 'src/app/features/lookups/services/countries';\r\nimport { CountryDto } from 'src/app/features/lookups/models/country';\r\nimport { IntLicensePermitClass } from 'src/app/core/models/enums/license-permit-class';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { AccountsService } from 'src/app/features/accounts/services/accounts.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { PaginationQuery, PrintLogDto, TryRevokeDocumentCommand } from '../../../_shared/models/issuing.models';\r\nimport { IssuingService } from '../../../_shared/services/issuing.service';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { parseInt } from 'lodash';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\n\r\n@Component({\r\n selector: 'mac-int-licenses',\r\n templateUrl: './int-licenses.component.html',\r\n styleUrls: ['../../../../../../../node_modules/@ng-select/ng-select/themes/material.theme.css', './int-licenses.component.scss'],\r\n providers: [\r\n IntLicensesService,\r\n IssuingService,\r\n CountriesService,\r\n AccountsService\r\n ]\r\n})\r\nexport class IntLicensesComponent implements OnInit {\r\n moment = moment;\r\n displayedColumns: string[] = ['serial', 'name', 'gender', 'phoneNumber', 'accountTitles', 'passportID', 'issueDate',/* 'source',*/ 'printings', 'tools'];\r\n dataSource: IntLicensesDataSource;\r\n lang: Language;\r\n advancedSearchMode: boolean;\r\n countries: CountryDto[] = [];\r\n accounts: LookupDto[] = [];\r\n query: any = null;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('filter', { static: true }) filter: ElementRef;\r\n @ViewChild('filterBtn') filterBtn: ElementRef;\r\n\r\n get Role() { return Role; };\r\n get Gender() { return Gender; };\r\n get PrintObject() { return PrintObject; };\r\n get IntLicensePermitClass() { return IntLicensePermitClass };\r\n get Object() { return Object; };\r\n get Math() { return Math; };\r\n\r\n constructor(private loader: LoadingService,\r\n private intLicensesService: IntLicensesService,\r\n private issuingService: IssuingService,\r\n public translate: TranslateService,\r\n private confirmService: ConfirmService,\r\n private alert: AlertService,\r\n public auth: AuthService,\r\n private fb: FormBuilder,\r\n private countriesService: CountriesService,\r\n private accountsService: AccountsService,\r\n private router: Router,\r\n private route: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n this.countriesService.get(this.lang)\r\n .then(result => this.countries = result.list);\r\n\r\n //if system account, accounts will be fetched from server, otherwise current account details will be fetched from local auth service\r\n if (this.auth.currentUser.isSystemAccount) {\r\n this.accountsService.getChildrenAccountsLookup(0, false)\r\n .then(result => {\r\n this.accounts = result.list;// populateAccountsSelect(result.list);\r\n }).catch(e => this.searchForm.get('accountId').disable());\r\n } else {\r\n this.accounts = [{ id: this.auth.currentUser.accountId, titles: [this.auth.currentUser.accountTitles[this.lang]] }];\r\n this.searchForm.patchValue({ accountId: this.auth.currentUser.accountId });\r\n this.searchForm.get('accountId').disable();\r\n }\r\n\r\n this.route.queryParamMap.subscribe(p => {\r\n //console.warn(p);\r\n\r\n if (!p.has('pageIndex')) {\r\n //console.warn('ready to reload!');\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.filter.nativeElement.value = '';\r\n this.paginator.page.emit({ pageIndex: 0, pageSize: this.paginator.pageIndex, length: this.paginator.length });\r\n }\r\n });\r\n\r\n //let query = null;\r\n\r\n if (this.route.snapshot.queryParams.query) {\r\n this.query = this.route.snapshot.queryParams.query;\r\n this.filter.nativeElement.value = this.query;\r\n }\r\n else if (this.route.snapshot.queryParams.accountId\r\n || this.route.snapshot.queryParams.countryId\r\n || this.route.snapshot.queryParams.fromDate\r\n || this.route.snapshot.queryParams.toDate\r\n || this.route.snapshot.queryParams.gender\r\n || this.route.snapshot.queryParams.name\r\n || this.route.snapshot.queryParams.nationalityId\r\n || this.route.snapshot.queryParams.stockTypeId\r\n || this.route.snapshot.queryParams.passportID\r\n || this.route.snapshot.queryParams.permitClass\r\n || this.route.snapshot.queryParams.phoneNumber\r\n || this.route.snapshot.queryParams.serial\r\n || this.route.snapshot.queryParams.isIssued\r\n || this.route.snapshot.queryParams.isDamaged || this.route.snapshot.queryParams.licensePeriod\r\n || this.route.snapshot.queryParams.paymentMethod\r\n || this.route.snapshot.queryParams.orderNo\r\n || this.route.snapshot.queryParams.shippingStatue) {\r\n this.activeFilters = true;\r\n this.searchForm.patchValue(this.route.snapshot.queryParams);\r\n\r\n //fix int for ng-select\r\n this.searchForm.patchValue({ accountId: !isNaN(this.route.snapshot.queryParams.accountId) ? parseInt(this.route.snapshot.queryParams.accountId) : null });\r\n this.searchForm.patchValue({ countryId: !isNaN(this.route.snapshot.queryParams.countryId) ? parseInt(this.route.snapshot.queryParams.countryId) : null });\r\n this.searchForm.patchValue({ nationalityId: !isNaN(this.route.snapshot.queryParams.nationalityId) ? parseInt(this.route.snapshot.queryParams.nationalityId) : null });\r\n this.searchForm.patchValue({ shippingStatue: !isNaN(this.route.snapshot.queryParams.shippingStatue) ? parseInt(this.route.snapshot.queryParams.shippingStatue) : null });\r\n this.searchForm.patchValue({ orderNo: !isNaN(this.route.snapshot.queryParams.orderNo) ? parseInt(this.route.snapshot.queryParams.orderNo) : null });\r\n \r\n // this.searchForm.patchValue({countryId: 2});\r\n // //console.log(this.searchForm.value);\r\n this.query = this.searchForm.value;\r\n }\r\n\r\n this.fetchData(this.query);\r\n \r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n ).subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => {\r\n this.dataSource.loadIntLicenses({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction },\r\n this.advancedSearchMode || this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim())\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n merge(fromEvent(this.filter.nativeElement, 'search'), fromEvent(this.filterBtn.nativeElement, 'click'))\r\n .pipe(\r\n tap(() => {\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.searchForm.reset();\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.loadIntLicenses({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, this.filter.nativeElement.value.trim())\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n this.dataSource.connect()\r\n .subscribe(() => {\r\n let pagination: PaginationQuery = { pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction };\r\n this.query = this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim();\r\n let query = this.query;\r\n\r\n if (this.activeFilters)\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, ...query }, replaceUrl: true });\r\n else\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, query }, replaceUrl: true });\r\n });\r\n }\r\n\r\n fetchData(query) {\r\n this.paginator.pageIndex = this.route.snapshot.queryParams.pageIndex ? this.route.snapshot.queryParams.pageIndex : 0;\r\n this.paginator.pageSize = this.route.snapshot.queryParams.pageSize ? this.route.snapshot.queryParams.pageSize : 25;\r\n this.sort.active = this.route.snapshot.queryParams.sort ? this.route.snapshot.queryParams.sort : 'created';\r\n this.sort.direction = this.route.snapshot.queryParams.dir ? this.route.snapshot.queryParams.dir : 'desc';\r\n this.dataSource = new IntLicensesDataSource(this.intLicensesService, this.loader);\r\n this.dataSource.loadIntLicenses({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, query);\r\n }\r\n\r\n toggleAdvancedSearch() {\r\n this.advancedSearchMode = !this.advancedSearchMode;\r\n this.filter.nativeElement.value = '';\r\n }\r\n\r\n filterList(list: PrintLogDto[], printObject: PrintObject) {\r\n return list.filter(l => l.printObject == printObject)\r\n }\r\n\r\n printObjectsCount(list: PrintLogDto[], printObject: PrintObject) {\r\n return list.filter(l => l.printObject == printObject).length;\r\n }\r\n\r\n cancel(dto: IntLicenseDto) {\r\n if (!dto.issued || !this.auth.currentUser.isSystemAccount\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_DELETE))\r\n return;\r\n\r\n\r\n let modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'LIC_TITLE_LICENSE',\r\n title: `${dto.serial.toString()}/${dto.name}`,\r\n note: 'LIC_CONFIRM_CANCEL_NOTE'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this._cancel(dto.id);\r\n });\r\n }\r\n\r\n delete(dto: IntLicenseDto) {\r\n if (dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_DELETE))\r\n return;\r\n\r\n //delete confirm if not yet issued\r\n if (!dto.issued) {\r\n let modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'LIC_TITLE_LICENSE',\r\n title: `${dto.serial.toString()}/${dto.name}`,\r\n note: 'LIC_CONFIRM_DELETE_NOTE'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this._delete(dto.id);\r\n });\r\n }\r\n }\r\n\r\n tryRevoke(dto: IntLicenseDto) {\r\n if (dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_REVOKE_REQUESTS_CREATE))\r\n return;\r\n\r\n let modal;\r\n //try-revoke\r\n //try-revoke confirm if issued && permited to try-revoke\r\n if (!dto.revokeRequestId) {\r\n modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'ISS_TITLE_DOCUMENT_REVOKE_REQUEST',\r\n title: `${this.translate.instant('STK_LABEL_STOCK_TYPE_LICENSE')} / ${dto.serial.toString()}`,\r\n action: '_ACTION_REQUEST2',\r\n submitText: '_ACTION_REQUEST2',\r\n confirmQuestion: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_CONFIRMATION_QUESTION',\r\n note: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_NOTE',\r\n dangerNote: ' ',\r\n inputNote: 'ISS_TITLE_DOCUMENT_REVOKE_REQUEST_REASON',\r\n requestType: true,\r\n attachment: '_TITLE_ATTACHMENTS'\r\n }));\r\n } else {\r\n //undo\r\n modal = this.confirmService.confirm(new UpdateModal({\r\n type: 'ISS_TITLE_DOCUMENT_REVOKE_REQUEST',\r\n title: `${this.translate.instant('STK_LABEL_STOCK_TYPE_LICENSE')} / ${dto.serial.toString()}`,\r\n action: '_ACTION_REVOKE_REQUEST_CANCEL',\r\n submitText: '_ACTION_REVOKE_REQUEST_CANCEL',\r\n confirmQuestion: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_CANCEL_CONFIRMATION_QUESTION',\r\n note: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_CANCEL_NOTE',\r\n dangerNote: ' '\r\n }));\r\n }\r\n modal.then(async m => {\r\n //console.log(m);\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n (!dto.revokeRequestId) ?\r\n this._tryRevoke(dto.id, m[1])\r\n : this._cancelTryRevoke(dto.revokeRequestId)\r\n }\r\n });\r\n }\r\n\r\n private _tryRevoke(objectId: string, attributes: any/*, reason: string*/) {\r\n\r\n const reason = attributes.inputNote,\r\n isDamaged = attributes.isDamaged == \"true\",\r\n attachment = attributes.attachment;\r\n\r\n //console.log(attachment);\r\n\r\n const cmd: TryRevokeDocumentCommand = { id: objectId, stockTypeId: 1, reason, isDamaged, attachment }\r\n ////console.log(cmd);\r\n this.loader.load(LoaderType.Body);\r\n this.issuingService.tryRevokeDocument(cmd)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.REQUESTING);\r\n const i = this.dataSource.IntLicensesSubject.value.findIndex(i => i.id == objectId);\r\n this.dataSource.IntLicensesSubject.value[i].revokeRequestId = result;\r\n this.dataSource.IntLicensesSubject.next(this.dataSource.IntLicensesSubject.value);\r\n\r\n } else this.alert.failure(DefaultAlertAction.REQUESTING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private _cancelTryRevoke(id: number) {\r\n this.loader.load(LoaderType.Body);\r\n this.issuingService.cancelTryRevokeDocument(id)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.REVOKE_REQUESTING_CANCEL);\r\n const i = this.dataSource.IntLicensesSubject.value.findIndex(i => i.revokeRequestId == id);\r\n this.dataSource.IntLicensesSubject.value[i].revokeRequestId = null;\r\n this.dataSource.IntLicensesSubject.next(this.dataSource.IntLicensesSubject.value);\r\n\r\n } else this.alert.failure(DefaultAlertAction.REVOKE_REQUESTING_CANCEL);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private _delete(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.intLicensesService.delete(id)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n this.dataSource.IntLicensesSubject.next(this.dataSource.IntLicensesSubject.value.filter(d => d.id != id));\r\n this.dataSource.countSubject.next(this.dataSource.countSubject.value - 1);\r\n\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private _cancel(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.issuingService.cancelDocument(id)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.DELETING);//todo: change message\r\n this.dataSource.IntLicensesSubject.next(this.dataSource.IntLicensesSubject.value.filter(d => d.id != id));\r\n this.dataSource.countSubject.next(this.dataSource.countSubject.value - 1);\r\n\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)\r\n this.intLicensesService[(this.query == null || typeof this.query == 'string') ? 'getLicenses' : 'search']({ pageIndex: 0, pageSize: this.paginator.length, sort: this.sort.active, dir: this.sort.direction }, this.query)\r\n .toPromise()\r\n .then(data => {\r\n this.exportToExcel(data.list);\r\n }).finally(() => this.loader.load(LoaderType.Body, false));\r\n else\r\n this.dataSource.connect().subscribe(data => {\r\n this.exportToExcel(data);\r\n this.loader.load(LoaderType.Body, false);\r\n }).unsubscribe();\r\n }\r\n\r\n private exportToExcel(data: IntLicenseDto[]) {\r\n const wscols = [\r\n { width: 12 },\r\n { width: 28 },\r\n { width: 12 },\r\n { width: 18 },\r\n { width: 28 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 }\r\n ];\r\n const autofilter = { ref: 'A1:I1' };\r\n const rows: string[][] = [];\r\n\r\n const headers = [\r\n this.translate.instant('LIC_FIELD_LICENSE_NO'),\r\n this.translate.instant('_FIELD_NAME'),\r\n this.translate.instant('_LABEL_GENDER'),\r\n this.translate.instant('_FIELD_PHONE_NO'),\r\n this.translate.instant('ACC_FIELD_ACCOUNT_TITLE'),\r\n this.translate.instant('ISS_FIELD_PASSPORT_NUMBER'),\r\n this.translate.instant('ISS_LABEL_ISSUE_DATE'),\r\n this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('LIC_LABEL_PRINT_OBJECT_LICENSE') }),\r\n this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('LIC_LABEL_PRINT_OBJECT_STICKER') }),\r\n ];\r\n\r\n rows.push(headers);\r\n for (let row of data) {\r\n rows.push([\r\n row.serial,\r\n row.name,\r\n this.translate.instant(row.gender == Gender.Male ? '_LABEL_GENDERL_MALE' : '_LABEL_FEMALE'),\r\n //this.translate.instant(`_LABEL_GENDER_${row.gender}`),\r\n row.phoneNumber,\r\n row.accountTitles[0],\r\n row.passportID,\r\n moment(row.issued).format('DD/MM/YYYY'),\r\n this.printObjectsCount(row.printLogs, PrintObject.IntLicenseCard),\r\n this.printObjectsCount(row.printLogs, PrintObject.IntLicenseSticker)\r\n ]);\r\n }\r\n\r\n exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'Int-Licenses');\r\n }\r\n\r\n\r\n onSubmit() {\r\n\r\n // console.warn(this.searchForm.value);\r\n //var d = new Date()\r\n if (this.fromDate.value && typeof this.fromDate.value == 'object')\r\n this.fromDate.setValue(Utils.convertToServerDateTimeString(this.fromDate.value));\r\n\r\n if (this.toDate.value && typeof this.toDate.value == 'object')\r\n this.toDate.setValue(Utils.convertToServerDateTimeString(this.toDate.value));\r\n\r\n //swap dates\r\n if (this.fromDate.value && this.toDate.value && new Date(this.fromDate.value) > new Date(this.toDate.value)) {\r\n let _temp = this.fromDate.value;\r\n this.fromDate.setValue(this.toDate.value);\r\n this.toDate.setValue(_temp);\r\n }\r\n\r\n //console.log(this.fromDate.value, this.toDate.value);\r\n\r\n this.activeFilters = true;\r\n\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n get fromDate() { return this.searchForm.get('fromDate'); };\r\n get toDate() { return this.searchForm.get('toDate'); };\r\n searchForm: FormGroup;\r\n activeFilters: boolean;\r\n\r\n resetSearch() {\r\n this.advancedSearchMode = false;\r\n if (this.activeFilters) {\r\n this.activeFilters = false;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n this.activeFilters = false;\r\n\r\n setTimeout(() => {\r\n this.searchForm.reset();\r\n this.query = null;\r\n }, 500);\r\n }\r\n\r\n private formInit() {\r\n //use same validators to filter inputs values\r\n this.searchForm = this.fb.group({\r\n name: [''], //regex to match english letters only\r\n countryId: [null],\r\n nationalityId: [null],\r\n gender: [''],\r\n phoneNumber: [''], //regex to match numbers only\r\n passportID: [''],\r\n accountId: [null],\r\n permitClass: [''],\r\n serial: [''], //regex to match numbers only\r\n fromDate: [''],\r\n toDate: [''],\r\n isIssued: [''],\r\n isDamaged: [''],\r\n licensePeriod:[''],\r\n paymentMethod:[''],\r\n orderNo:[''],\r\n shippingStatue:['']\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef, Renderer2 } from '@angular/core';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { FormGroup, FormBuilder, Validators, AbstractControl, FormArray, FormControl } from '@angular/forms';\r\nimport { CountryDto } from 'src/app/features/lookups/models/country';\r\nimport { CountriesService } from 'src/app/features/lookups/services/countries';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BloodGroup } from 'src/app/core/models/enums/blood-group';\r\nimport { IntLicensePermitClass } from 'src/app/core/models/enums/license-permit-class';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { StocksService } from 'src/app/features/stock/services/stocks.service';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport * as moment from 'moment';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\n//import { isArray } from 'util';\r\nimport { IntLicensesService } from '../../services/int-licenses.service';\r\nimport { PostIntLicenseCmd } from '../../models/create.cmd';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { IntLicenseVm, IntLicenseDetailsDto } from '../../models/int-license';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\nimport * as _ from 'lodash';\r\nimport { englishAndSpacesValidator, numbersOnlyValidator, passportIdOrIdentityIdValidator, phoneNumberValidator } from 'src/app/shared/services/custom-validators';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { Observable } from 'rxjs';\r\nimport { startWith, map } from 'rxjs/operators';\r\nimport { FileHandle } from 'src/app/shared/directives/drag.directive';\r\n\r\n@Component({\r\n selector: 'mac-int-manage-license',\r\n templateUrl: './manage-int-license.component.html',\r\n styleUrls: ['./manage-int-license.component.scss'],\r\n providers: [CountriesService, StocksService, IntLicensesService, FileLoaderService]\r\n})\r\n\r\nexport class ManageIntLicenseComponent implements OnInit {\r\n lang: Language;\r\n form: FormGroup;\r\n countries: CountryDto[];\r\n availableSerials: number[];\r\n cashedVm: IntLicenseVm;\r\n dto: IntLicenseDetailsDto = new IntLicenseDetailsDto();\r\n updateMode: boolean;\r\n _loadingGif: string = 'assets/images/Ring-Preloader.gif';\r\n dateFormat = 'L';\r\n mode: 'ADD' | 'UPDATE' | 'CLONE';\r\n videoConstraints = {\r\n video: {\r\n facingMode: \"environment\",\r\n width: { ideal: 4096 },\r\n height: { ideal: 2160 }\r\n }\r\n };\r\n \r\n videoWidth = 0;\r\n videoHeight = 0;\r\n isCamStreaming: boolean;\r\n camStream: MediaStream;\r\n objectId: string;\r\n\r\n keyword: string = 'name';\r\n key: string;\r\n\r\n\r\n @ViewChild('video') videoElement: ElementRef;\r\n @ViewChild('canvas', { static: true }) canvas: ElementRef;\r\n\r\n get moment() { return moment };\r\n get Object() { return Object };\r\n get BloodGroup() { return BloodGroup };\r\n get IntLicensePermitClass() { return IntLicensePermitClass };\r\n get Gender() { return Gender };\r\n get serial() { return this.form.get('serial') };\r\n get name() { return this.form.get('name') };\r\n get dateOfBirth() { return this.form.get('dateOfBirth') };\r\n get nationality() { return this.form.get('nationalityId') };\r\n get country() { return this.form.get('countryId') };\r\n get passportID() { return this.form.get('passportID') };\r\n get bloodGroup() { return this.form.get('bloodGroup') };\r\n get gender() { return this.form.get('gender') };\r\n get accordingTo() { return this.form.get('accordingToId') };\r\n get permitClasses() { return this.form.get('permitClasses') };\r\n get phoneNumber() { return this.form.get('phoneNumber') };\r\n get attachments() { return this.form.get('attachments') as FormArray };\r\n get dataAccuracyAcknowledgment() { return this.form.get('dataAccuracyAcknowledgment') };\r\n get validityYears() { return this.form.get('validityYears') };\r\n\r\n _validityYears: number[] = [];\r\n\r\n\r\n\r\n constructor(private loader: LoadingService,\r\n private fb: FormBuilder,\r\n private countriesService: CountriesService,\r\n private stocksService: StocksService,\r\n public translate: TranslateService,\r\n private intLicenseService: IntLicensesService,\r\n private route: ActivatedRoute,\r\n public fileLoader: FileLoaderService,\r\n private alert: AlertService,\r\n private router: Router,\r\n private renderer: Renderer2,\r\n public auth: AuthService) { }\r\n\r\n\r\n\r\n async ngOnInit() {\r\n\r\n if (this.auth.currentUser.intLicenseAllowedValidity > 1)\r\n this._validityYears = new Array(this.auth.currentUser.intLicenseAllowedValidity);\r\n\r\n moment.locale('en-gb');\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.countries = await (await this.countriesService.get(this.lang)).list;\r\n // this.countries = this.countries.map(result => {\r\n // result.countryTitles = result.countryTitles[0];\r\n // result.nationalityTitles = result.nationalityTitles[0];\r\n // return result;\r\n // })\r\n this.availableSerials = this.spreadRanges((await this.stocksService.getAvailableStocks(10)).stockTypesAvailableStocks[0].availableStock);\r\n\r\n this.mode = this.route.snapshot.data.mode;\r\n\r\n this.objectId = this.route.snapshot.paramMap.get('id');\r\n this.key = this.route.snapshot.paramMap.get('key');\r\n\r\n if (this.objectId || this.key) {\r\n this.updateMode = this.mode == 'UPDATE';\r\n\r\n if (this.mode == 'CLONE') {\r\n this.dto = await (await this.intLicenseService.getByHashedSerial(this.key)).intLicense;\r\n } else\r\n this.dto = await (await this.intLicenseService.get(this.objectId)).intLicense;\r\n\r\n //this.dto = await (await this.intLicenseService.get(this.objectId)).intLicense;\r\n\r\n if (!this.dto || (this.updateMode && this.dto.issued)) { //will ignore if cloning\r\n this.router.navigate([`/${this.translate.currentLang}/not-found`]);\r\n return;\r\n }\r\n if (this.updateMode) {\r\n this.availableSerials.unshift(this.dto.serial);\r\n } else {\r\n if (this.availableSerials.length > 0)\r\n this.form.patchValue({ serial: this.availableSerials[0] });\r\n else {\r\n this.alert.failure(\"LIC_ALERT_NO_STOCK_AVAILABLE\", false);\r\n this.form.disable();\r\n return;\r\n }\r\n }\r\n\r\n this.dto.serial = this.updateMode ? this.dto.serial : this.availableSerials[0];\r\n this.form.patchValue(this.dto);\r\n // this.attachments.controls.forEach(async (ctrl: FormControl, i) => {\r\n // ctrl.setValue(await this.fileLoader.loadAsync(ctrl.value));\r\n // });\r\n\r\n this.attachments.controls.forEach(async (ctrl: FormControl, i) => {\r\n let path = ctrl.value;\r\n if (this.key)\r\n path = `${path}?key=${this.key}`;\r\n ctrl.setValue(await this.fileLoader.loadAsync(path));\r\n });\r\n\r\n } else {\r\n if (this.availableSerials.length > 0)\r\n this.form.patchValue({ serial: this.availableSerials[0] });\r\n else {\r\n this.alert.failure(\"LIC_ALERT_NO_STOCK_AVAILABLE\", false);\r\n this.form.disable();\r\n }\r\n }\r\n this.loader.load(LoaderType.Nav, false);\r\n\r\n // this.filteredCountries = this.form.get('_nationality').valueChanges\r\n // .pipe(\r\n // startWith(''),\r\n // map(value => this._filter(value))\r\n // );\r\n }\r\n\r\n\r\n //myControl = new FormControl();\r\n //options: string[] = ['One', 'Two', 'Three'];\r\n // filteredCountries: Observable;\r\n\r\n // private _filter(value: string): CountryDto[] {\r\n // //console.log(value);\r\n // const filterValue = value.toLowerCase();\r\n\r\n // return this.countries.filter(c => c.nationalityTitles[this.lang].toLowerCase().includes(filterValue));\r\n // }\r\n\r\n preview($event, control: FormControl | AbstractControl) {\r\n const tgt = $event.target || window.event.srcElement,\r\n files = Array.isArray($event) ? $event : tgt.files;\r\n\r\n if (FileReader && files && files.length) {\r\n const fr = new FileReader();\r\n fr.onload = () => {\r\n if (fr.result.toString().length <= 2 * 2 ** 20)\r\n control.setValue(fr.result.toString());\r\n else\r\n alert('file limit is 2 MB.');\r\n };\r\n fr.readAsDataURL(files[0]);\r\n }\r\n else {\r\n //console.error('not supported!');\r\n }\r\n }\r\n\r\n fileDropped(file: FileHandle, control: FormControl | AbstractControl): void {\r\n\r\n control.setValue(file.url);\r\n\r\n // if (file.url.length <= 2 * 2 ** 20)\r\n // control.setValue(file.url);\r\n // else\r\n // alert('file limit is 2 MB.');\r\n }\r\n\r\n removeImage(control: FormControl | AbstractControl) {\r\n control.reset();\r\n control.markAsTouched();\r\n }\r\n\r\n startCamera() {\r\n if (!!(navigator.mediaDevices && navigator.mediaDevices.getUserMedia)) {\r\n navigator.mediaDevices.getUserMedia(this.videoConstraints)\r\n .then(stream => {\r\n this.camStream = stream;\r\n this.attachVideo(stream);\r\n }).catch(this.handleError);\r\n this.isCamStreaming = true;\r\n } else {\r\n alert('Sorry, camera not available.');\r\n }\r\n }\r\n\r\n capture() {\r\n const control = this.attachments.get([0]);\r\n this.renderer.setProperty(this.canvas.nativeElement, 'width', this.videoWidth);\r\n this.renderer.setProperty(this.canvas.nativeElement, 'height', this.videoHeight);\r\n this.canvas.nativeElement.getContext('2d').drawImage(this.videoElement.nativeElement, 0, 0);\r\n const imageData = this.canvas.nativeElement.toDataURL(\"image/png\", 1);\r\n control.setValue(imageData);\r\n this._stopCamera();\r\n }\r\n\r\n stopCamera() {\r\n this._stopCamera();\r\n const control = this.attachments.get([0]);\r\n control.reset();\r\n control.markAsTouched();\r\n }\r\n\r\n private _stopCamera() {\r\n this.isCamStreaming = false;\r\n this.videoElement.nativeElement.pause();\r\n this.videoElement.nativeElement.removeAttribute('src');\r\n this.camStream.getTracks().forEach(function (track) {\r\n track.stop();\r\n });\r\n }\r\n\r\n handleError(error) {\r\n //console.log('Error: ', error);\r\n }\r\n\r\n attachVideo(stream: MediaStream) {\r\n\r\n this.renderer.setProperty(this.videoElement.nativeElement, 'srcObject', stream);\r\n this.renderer.listen(this.videoElement.nativeElement, 'play', (event) => {\r\n this.videoHeight = this.videoElement.nativeElement.videoHeight;\r\n this.videoWidth = this.videoElement.nativeElement.videoWidth;\r\n });\r\n }\r\n\r\n isExpired(expiryDate) {\r\n return moment(expiryDate).isBefore(Date.now());\r\n }\r\n\r\n private zeroPad = (num, places) => String(num).padStart(places, '0');\r\n\r\n toISODate(date) {\r\n return `${date.getFullYear()}-${this.zeroPad(date.getMonth() + 1, 2)}-${this.zeroPad(date.getDate(), 2)}T00:00:00.000Z`;\r\n }\r\n\r\n onSubmit() {\r\n //console.warn(this.form.value);\r\n\r\n if (this.dateOfBirth.value) {\r\n //this.dateOfBirth.setValue(moment(this.dateOfBirth.value).format());\r\n this.dateOfBirth.setValue(this.toISODate(new Date(this.dateOfBirth.value)));\r\n // console.warn(this.form.value);\r\n }\r\n\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n if (!this.dataAccuracyAcknowledgment.value) {\r\n this.alert.failure(\"LIC_ALERT_DATA_ACCURACY_ACKNOWLEDGMENT\", false);\r\n return;\r\n }\r\n\r\n this.attachments.controls.forEach((ctrl, i) => {\r\n //const _attachments = this.attachments.controls[i];\r\n //for (let ctrl of Object.keys((grp).controls))\r\n if (ctrl.value instanceof Object)\r\n ctrl.setValue(ctrl.value.changingThisBreaksApplicationSecurity)\r\n });\r\n\r\n this.loader.load(LoaderType.Body);\r\n\r\n const cmd = this.form.value as PostIntLicenseCmd;\r\n cmd.id = this.dto.id;\r\n\r\n if (!this.updateMode) {\r\n cmd.id = null;\r\n if (this.auth.currentUser.isInRole(Role.INT_LICENSES_CREATE))\r\n this.intLicenseService.create(cmd)\r\n .then(id => {\r\n if (id) {\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n setTimeout(() => {\r\n this.router.navigate(['/', this.translate.currentLang, 'issuing', 'int-licenses', 'view', id]);\r\n }, 1000);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n else {\r\n if (this.auth.currentUser.isInRole(Role.INT_LICENSES_UPDATE))\r\n this.intLicenseService.update(cmd)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n\r\n setTimeout(() => {\r\n this.router.navigate(['/', this.translate.currentLang, 'issuing', 'int-licenses', 'view', cmd.id]);\r\n }, 1000);\r\n\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n }\r\n\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n serial: ['', [Validators.required]],\r\n name: ['', [Validators.required, englishAndSpacesValidator, Validators.minLength(10), Validators.maxLength(25)]],\r\n dateOfBirth: ['', [Validators.required]],\r\n nationalityId: [null, [Validators.required]],\r\n countryId: [null, [Validators.required]],\r\n passportID: ['', [Validators.required, passportIdOrIdentityIdValidator, Validators.minLength(6), Validators.maxLength(15)]],\r\n bloodGroup: ['', [Validators.required]],\r\n gender: ['', [Validators.required]],\r\n accordingToId: [null, [Validators.required]],\r\n permitClasses: ['', [Validators.required]],\r\n phoneNumber: ['', [Validators.required, phoneNumberValidator]],\r\n attachments: this.fb.array([\r\n ['', [Validators.required]], //personalPhoto\r\n ['', [Validators.required]], //passportPhoto\r\n ['', [Validators.required]] //licensePhoto\r\n ]),\r\n\r\n dataAccuracyAcknowledgment: [false],\r\n validityYears: [1, [Validators.required]]\r\n })\r\n }\r\n\r\n private spreadRanges(ranges: number[][]) {\r\n const result = [];\r\n\r\n ranges.forEach(s => {\r\n if (s.length > 1) {\r\n let _start = s[0];\r\n const _end = s[1];\r\n while (_start <= _end)\r\n result.push(_start++);\r\n }\r\n else\r\n result.push(s[0]);\r\n });\r\n return result;\r\n }\r\n\r\n \r\n\r\n// Example usage\r\n\r\n\r\n}","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { IntLicensesService } from '../../services/int-licenses.service';\r\nimport { IntLicenseVm, IntLicenseDetailsDto, IntLicenseDto } from '../../models/int-license';\r\nimport * as moment from 'moment';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport * as _ from 'lodash';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\nimport { PrintObject } from 'src/app/core/models/enums/print-object';\r\nimport { IntLicensePrintComponent } from '../../components/int-license-print/int-license-print.component';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal, ShipmentModal, UpdateModal } from 'src/app/shared/models/modal';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { CommitmentPrintComponent } from '../../components/commitment-print/commitment-print.component';\r\nimport { PrintLogDto } from '../../../_shared/models/issuing.models';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { utils } from 'protractor';\r\nimport { StaticConfig } from 'src/app/features/lookups/services/config';\r\nimport { ConfigObject } from 'src/app/core/models/enums/config-object';\r\nimport { has, rest } from 'lodash';\r\nimport { CreateOrderUPSCommand, ELicenseOrderStatus } from '../../models/e-license';\r\nimport { ELicensesService } from '../../services/e-licenses.service';\r\nimport { ModalDismissReasons, NgbModalConfig, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { saveAs } from 'file-saver';\r\nimport { convertELicenseOrderStatusToLocale } from '../../models/order-status-locale';\r\n\r\n@Component({\r\n selector: 'mac-view-int-license',\r\n templateUrl: './view-int-license.component.html',\r\n styleUrls: ['./view-int-license.component.scss'],\r\n providers: [IntLicensesService, ELicensesService, FileLoaderService]\r\n\r\n})\r\n\r\n\r\nexport class ViewIntLicenseComponent implements OnInit {\r\n cashedVm: IntLicenseVm;\r\n dto: IntLicenseDetailsDto = new IntLicenseDetailsDto();\r\n moment = moment;\r\n lang: Language;\r\n dateFormat = 'L';\r\n qRCodeImg: string;\r\n qRCodeUrl: string = '';\r\n closeResult = '';\r\n // _personalPhoto: string;\r\n // _passportPhoto: string;\r\n // _licensePhoto: string;\r\n confirmed: boolean;\r\n //_baseUrl = 'https://idl.mac.org.sa';\r\n maxPrintLimit: number;\r\n defaultImage = 'assets/images/default.jpg';\r\n\r\n convertELicenseOrderStatusToLocale = convertELicenseOrderStatusToLocale;\r\n\r\n @ViewChild('printElm') printElm: IntLicensePrintComponent;\r\n @ViewChild('comPrintElm') comPrintElm: CommitmentPrintComponent;\r\n\r\n get Gender() { return Gender };\r\n get PrintObject() { return PrintObject; };\r\n get Role() { return Role; };\r\n get Language() { return Language; };\r\n get Math() { return Math; };\r\n\r\n constructor(private route: ActivatedRoute,\r\n private intLicenseService: IntLicensesService,\r\n private eLicensesService: ELicensesService,\r\n private loader: LoadingService,\r\n private http: HttpClient,\r\n public translate: TranslateService,\r\n private fileLoader: FileLoaderService,\r\n private confirmService: ConfirmService,\r\n public auth: AuthService,\r\n private modalService: NgbModal,\r\n config: NgbModalConfig,\r\n private router: Router) {\r\n // customize default values of modals used by this component tree\r\n config.backdrop = 'static';\r\n config.keyboard = false;\r\n }\r\n printLabelByTrackingNumber(trackingNumber: string): void {\r\n const url = 'https://www.ups.com/ups.app/xml/Track';\r\n const headers = {\r\n 'AccessLicenseNumber': '6DC092F026A4C6D0',\r\n 'Username': 'MiddleEast01',\r\n 'Password': 'Pa@1234554321',\r\n 'Content-Type': 'application/json'\r\n };\r\n const body = {\r\n \"UPSSecurity\": {\r\n \"UsernameToken\": {\r\n \"Username\": \"MiddleEast01\",\r\n \"Password\": \"Pa@1234554321\"\r\n },\r\n \"ServiceAccessToken\": {\r\n \"AccessLicenseNumber\": \"6DC092F026A4C6D0\"\r\n }\r\n },\r\n \"TrackRequest\": {\r\n \"InquiryNumber\": trackingNumber\r\n }\r\n };\r\n \r\n this.http.post(url, body, { headers, responseType: 'json' }).subscribe(\r\n (response: any) => {\r\n const labelImage = response.TrackResponse.Shipment[0].Package[0].Label.GraphicImage;\r\n const labelFormat = response.TrackResponse.Shipment[0].Package[0].Label.ImageFormat.Code;\r\n \r\n // Save the label as a file or print it directly using appropriate methods\r\n const blob = this.b64toBlob(labelImage, `image/${labelFormat}`);\r\n saveAs(blob, `label.${labelFormat}`);\r\n },\r\n (error: any) => {\r\n console.error('Error printing label:', error);\r\n }\r\n );\r\n }\r\n containsNumbers(str: string): boolean {\r\n // Use a regular expression to check if the string contains any numbers\r\n const regex = /\\d/;\r\n return regex.test(str);\r\n }\r\n b64toBlob(b64Data: string, contentType: string = '', sliceSize: number = 512): Blob {\r\n const byteCharacters = atob(b64Data);\r\n const byteArrays = [];\r\n \r\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n const slice = byteCharacters.slice(offset, offset + sliceSize);\r\n \r\n const byteNumbers = new Array(slice.length);\r\n for (let i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n \r\n const byteArray = new Uint8Array(byteNumbers);\r\n byteArrays.push(byteArray);\r\n }\r\n \r\n const blob = new Blob(byteArrays, { type: contentType });\r\n return blob;\r\n }\r\n \r\n ngOnInit(): void {\r\n moment.locale('en-gb');\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.maxPrintLimit = Number(StaticConfig.getConfigKeyValuePairs(ConfigObject.IntLicenseMaxPrintLimit)[0].value);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n const intLicenseId = this.route.snapshot.paramMap.get('id');\r\n if (intLicenseId) {\r\n this.intLicenseService.get(intLicenseId)\r\n .then(async result => {\r\n if (result.intLicense) {\r\n this.dto = result.intLicense;\r\n //console.log(result);\r\n //console.log(this.dto);\r\n\r\n if (this.dto.issued) {\r\n this.qRCodeUrl = Utils.generateQrCodeUrl(this.dto.hashedSerial);// `${this._baseUrl}/verify-license/${this.dto.hashedSerial}`;\r\n\r\n setTimeout(() => {\r\n this.qRCodeImg = document.getElementsByTagName('ngx-kjua')[0]\r\n .getElementsByTagName('div')[0]\r\n //.getElementsByTagName('img')[0].src;\r\n .getElementsByTagName('canvas')[0].toDataURL(\"image/png\");\r\n });\r\n }\r\n\r\n // await this.dto.attachments.forEach( att => {\r\n // const file = await this.fileLoader.loadAsync(att);\r\n // att = file ? file : this.defaultImage;\r\n // ////console.log(att);\r\n // });\r\n\r\n this.dto.attachments[0] = (await this.fileLoader.loadAsync(this.dto.attachments[0] as string)).changingThisBreaksApplicationSecurity;\r\n this.dto.attachments[1] = (await this.fileLoader.loadAsync(this.dto.attachments[1] as string)).changingThisBreaksApplicationSecurity;\r\n this.dto.attachments[2] = (await this.fileLoader.loadAsync(this.dto.attachments[2] as string)).changingThisBreaksApplicationSecurity;\r\n\r\n\r\n\r\n // this.dto.attachments.forEach((att, i) => {\r\n // //const _attachments = this.attachments.controls[i];\r\n // //for (let ctrl of Object.keys((grp).controls))\r\n // // if (ctrl.value instanceof Object)\r\n // this.fileLoader.loadAsync(att).then(r => {\r\n // //console.log(r);\r\n // this.dto.attachments[i] = (r).changingThisBreaksApplicationSecurity;\r\n // // //console.log(this.dto.attachments);\r\n\r\n // });//.changingThisBreaksApplicationSecurity;\r\n // // ctrl.setValue(ctrl.value.changingThisBreaksApplicationSecurity)\r\n // });\r\n\r\n\r\n this.displayPreview();\r\n } else this.router.navigate([`/${this.translate.currentLang}/not-found`]);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n }\r\n\r\n isPrintable() {\r\n return !this.dto.issued\r\n || this.printObjectsCount(this.dto.printLogs, PrintObject.IntLicenseCard) < this.maxPrintLimit\r\n || this.printObjectsCount(this.dto.printLogs, PrintObject.IntLicenseSticker) < this.maxPrintLimit\r\n }\r\n\r\n isExpired(expiryDate) {\r\n return moment(expiryDate).isBefore(Date.now());\r\n }\r\n\r\n printObjectsCount(list: PrintLogDto[], printObject: PrintObject) {\r\n if (list)\r\n return list.filter(l => l.printObject == printObject).length;\r\n }\r\n\r\n print(printObject: PrintObject) {\r\n console.log('IM HERE 111');\r\n if (printObject == PrintObject.IntLicenseCommitment) {\r\n //console.warn('try');\r\n this.comPrintElm.print(this.dto);\r\n return;\r\n\r\n }\r\n\r\n\r\n if (this.dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_UPDATE))\r\n return;\r\n\r\n //confirm if not yet issued\r\n if (!this.dto.issued) {\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n title: this.dto.serial.toString(),\r\n type: 'LIC_TITLE_LICENSE',\r\n action: '_ACTION_ISSUE',\r\n confirmQuestion: 'LIC_CONFIRM_ISSUE_CONFIRMATION_QUESTION',\r\n note: 'LIC_CONFIRM_ISSUE_NOTE',\r\n dangerNote: 'LIC_CONFIRM_ISSUE_DANGER_NOTE',\r\n submitText: '_ACTION_ISSUE'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n await this._print(printObject);\r\n });\r\n } else this._print(printObject);\r\n }\r\n\r\n async _print(printObject: PrintObject) {\r\n\r\n //check if print limit allowed\r\n if (this.printObjectsCount(this.dto.printLogs, printObject) < this.maxPrintLimit) {\r\n this.loader.load(LoaderType.Body);\r\n //request to server print\r\n try {\r\n const hash = await this.intLicenseService.print({ id: this.dto.id, printObject });\r\n //console.log(hash);\r\n if (hash && hash.value) {\r\n //get new hash if just issued\r\n //calcualte issue date in FE\r\n //calculate expiry date in FE\r\n this.dto.hashedSerial = hash.value\r\n //this.qRCodeUrl = `${this._baseUrl}/verify-license/${this.dto.hashedSerial}`;\r\n this.qRCodeUrl = Utils.generateQrCodeUrl(this.dto.hashedSerial);\r\n setTimeout(() => {\r\n this.qRCodeImg = document.getElementsByTagName('ngx-kjua')[0]\r\n .getElementsByTagName('div')[0]\r\n //.getElementsByTagName('img')[0].src;\r\n .getElementsByTagName('canvas')[0].toDataURL(\"image/png\");\r\n });\r\n\r\n\r\n this.dto.issued = new Date();\r\n this.dto.expiryDate = moment(this.dto.issued).add(this.dto.validityYears, 'year').subtract(1, 'day').toDate();\r\n\r\n\r\n if (this.dto.isELicense) {\r\n this.dto.eLicenseOrder.status = ELicenseOrderStatus.LicenseIssued;\r\n }\r\n }\r\n console.log('IM HERE 2');\r\n //increment print objects\r\n this.dto.printLogs.push({ created: new Date(), printObject: printObject });\r\n\r\n //update ui\r\n await this.displayPreview();\r\n console.log('IM HERE 3');\r\n //open printing object\r\n await this.printElm.print(this.dto, printObject);\r\n\r\n }\r\n finally {\r\n this.loader.load(LoaderType.Body, false)\r\n }\r\n }\r\n }\r\n getTranslatedTemplateVersion(version: number): string {\r\n switch (version) {\r\n case 0:\r\n return this.translate.instant('قم بأختيار سيريال لعرض النموذج');\r\n case 1:\r\n return this.translate.instant('_LABEL_TEMPLATE_1');\r\n case 2:\r\n return this.translate.instant('_LABEL_TEMPLATE_2');\r\n // Add more cases as needed\r\n default:\r\n return '';\r\n }\r\n }\r\n private async displayPreview() {\r\n const _issueDate = moment(this.dto.issued ? this.dto.issued : new Date()).format(this.dateFormat),\r\n _expiryDate = this.dto.issued ? moment(this.dto.expiryDate).format(this.dateFormat)\r\n : moment(new Date()).add(this.dto.validityYears, 'year').subtract(1, 'day').format(this.dateFormat);\r\n // _personalPhoto = await this.fileLoader.loadAsync(this.dto.personalPhoto);\r\nconsole.log(this.dto.documentTemplateVersion)\r\n if (this.dto.documentTemplateVersion < 2) {\r\n let canvas1 = document.getElementById('lic-canvas') as HTMLCanvasElement;\r\n if (canvas1.getContext) {\r\n let ctx = canvas1.getContext('2d');\r\n\r\n const lic = new Image();\r\n\r\n lic.onload = () => {\r\n ctx.textAlign = 'left';\r\n ctx.font = 'bold 13px arial';\r\n ctx.drawImage(lic, 0, 0);\r\n\r\n let v = 75;\r\n const h = 210;\r\n const rh = 17.4;\r\n ctx.fillText(this.dto.name, h, v);\r\n ctx.fillText(moment(this.dto.dateOfBirth).format(this.dateFormat), h, v += rh);\r\n ctx.fillText(this.dto.nationalityTitles[Language.English], h, v += rh);\r\n ctx.fillText(this.dto.countryTitles[Language.English], h, v += rh);\r\n ctx.fillText(this.dto.passportID, h, v += rh);\r\n ctx.fillText(Gender[this.dto.gender], h, v += rh);\r\n ctx.fillText(this.dto.bloodGroup, h, v += rh);\r\n ctx.fillText(`${this.dto.accordingToTitles[Language.English]} License`, h, v += rh);\r\n ctx.fillText(this.dto.permitClasses.join(', '), h, v += rh);\r\n\r\n ctx.fillText(_issueDate, 85, 49);\r\n\r\n ctx.font = 'bold 20px arial';\r\n ctx.fillText(Math.abs(this.dto.serial).toString(), 50, 29);\r\n\r\n let photo = new Image();\r\n photo.onload = () => {\r\n let x = 20, y = 66, width = 98, height = 133, radius = 5;\r\n ctx.save();\r\n ctx.beginPath();\r\n ctx.moveTo(x + radius, y);\r\n ctx.lineTo(x + width - radius, y);\r\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\r\n ctx.lineTo(x + width, y + height - radius);\r\n ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\r\n ctx.lineTo(x + radius, y + height);\r\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\r\n ctx.lineTo(x, y + radius);\r\n ctx.quadraticCurveTo(x, y, x + radius, y);\r\n ctx.closePath();\r\n ctx.clip();\r\n\r\n ctx.drawImage(photo, x, y, width, height);\r\n ctx.restore();\r\n\r\n const qr = new Image();\r\n qr.onload = () => {\r\n ctx.drawImage(qr, 319, 92.4, 88, 88);\r\n }\r\n qr.src = this.dto.issued ? this.qRCodeImg : 'assets/images/qr.png';\r\n\r\n const ptt = new Image();\r\n ptt.onload = () => {\r\n\r\n ctx.save();\r\n ctx.globalAlpha = 0.25;\r\n const ptrn = ctx.createPattern(ptt, 'repeat');\r\n ctx.fillStyle = ptrn;\r\n ctx.fillRect(0, 0, 425, 265);\r\n ctx.restore();\r\n\r\n //draw thumb\r\n let canvas1Thumb = document.getElementById('lic-canvas-thumb') as HTMLCanvasElement;\r\n let thumbCtx = canvas1Thumb.getContext('2d');\r\n //thumbCtx.scale(0.2, 0.2);\r\n thumbCtx.drawImage(ctx.canvas, 0, 0);\r\n }\r\n ptt.src = 'assets/images/sample-stamp.png';\r\n }\r\n photo.src = this.dto.attachments[0] as string;\r\n //photo.src = (this.dto.attachments[0]).changingThisBreaksApplicationSecurity;\r\n }\r\n lic.src = \"assets/images/license-empty.png\";\r\n }\r\n } \r\n else if (this.dto.documentTemplateVersion === 2) {\r\n let canvas1 = document.getElementById('lic-canvas') as HTMLCanvasElement;\r\n if (canvas1.getContext) {\r\n let ctx = canvas1.getContext('2d');\r\n\r\n const lic = new Image();\r\n\r\n lic.onload = () => {\r\n ctx.textAlign = 'left';\r\n ctx.font = 'bold 13px arial';\r\n ctx.drawImage(lic, 0, 0);\r\n\r\n let v = 82;\r\n const h = 201;\r\n const rh = 20;\r\n ctx.fillText(this.dto.name, h, v);\r\n ctx.fillText(moment(this.dto.dateOfBirth).format(this.dateFormat), h, v += rh);\r\n ctx.fillText(this.dto.nationalityTitles[Language.English], h, v += rh);\r\n ctx.fillText(this.dto.countryTitles[Language.English], h, v += rh);\r\n ctx.fillText(this.dto.passportID, h, v += rh);\r\n ctx.fillText(Gender[this.dto.gender], h, v += rh);\r\n ctx.fillText(this.dto.bloodGroup, h, v += rh);\r\n ctx.fillText(`${this.dto.accordingToTitles[Language.English]} License`, h, v += rh);\r\n ctx.fillText(this.dto.permitClasses.join(', '), h, v += rh);\r\n\r\n ctx.fillText(_issueDate, 62, 220);\r\n ctx.fillText(_expiryDate, 62, 241);\r\n\r\n ctx.font = 'bold 20px arial';\r\n ctx.fillText(Math.abs(this.dto.serial).toString(), 24, 60);\r\n\r\n let photo = new Image();\r\n photo.onload = () => {\r\n let x = 20, y = 66, width = 98, height = 133, radius = 5;\r\n ctx.save();\r\n ctx.beginPath();\r\n ctx.moveTo(x + radius, y);\r\n ctx.lineTo(x + width - radius, y);\r\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\r\n ctx.lineTo(x + width, y + height - radius);\r\n ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\r\n ctx.lineTo(x + radius, y + height);\r\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\r\n ctx.lineTo(x, y + radius);\r\n ctx.quadraticCurveTo(x, y, x + radius, y);\r\n ctx.closePath();\r\n ctx.clip();\r\n\r\n ctx.drawImage(photo, x, y, width, height);\r\n ctx.restore();\r\n\r\n const qr = new Image();\r\n qr.onload = () => {\r\n ctx.drawImage(qr, 319, 92.4, 88, 88);\r\n }\r\n qr.src = this.dto.issued ? this.qRCodeImg : 'assets/images/qr.png';\r\n\r\n const ptt = new Image();\r\n ptt.onload = () => {\r\n\r\n ctx.save();\r\n ctx.globalAlpha = 0.25;\r\n const ptrn = ctx.createPattern(ptt, 'repeat');\r\n ctx.fillStyle = ptrn;\r\n ctx.fillRect(0, 0, 425, 265);\r\n ctx.restore();\r\n\r\n //draw thumb\r\n let canvas1Thumb = document.getElementById('lic-canvas-thumb') as HTMLCanvasElement;\r\n let thumbCtx = canvas1Thumb.getContext('2d');\r\n //thumbCtx.scale(0.2, 0.2);\r\n thumbCtx.drawImage(ctx.canvas, 0, 0);\r\n }\r\n ptt.src = 'assets/images/sample-stamp.png';\r\n }\r\n photo.src = this.dto.attachments[0] as string;\r\n //photo.src = (this.dto.attachments[0]).changingThisBreaksApplicationSecurity;\r\n }\r\n lic.src = \"assets/images/license-empty-new.png\";\r\n }\r\n }\r\n\r\n let canvas2 = document.getElementById('stk-canvas') as HTMLCanvasElement;\r\n if (canvas2.getContext) {\r\n let ctx = canvas2.getContext('2d');\r\n\r\n let stk = new Image();\r\n stk.onload = () => {\r\n ctx.textAlign = 'left';\r\n ctx.font = 'bold 14px arial';\r\n ctx.drawImage(stk, 0, 0);\r\n\r\n let v = 162;\r\n const h = 152;\r\n const rh = 25.75;\r\n\r\n ctx.fillText(this.dto.name, h, v);\r\n ctx.fillText(moment(this.dto.dateOfBirth).format(this.dateFormat), h, v += rh);\r\n ctx.fillText(Gender[this.dto.gender], h, v += rh);\r\n ctx.fillText(this.dto.nationalityTitles[Language.English], h, v += rh);\r\n ctx.fillText(this.dto.passportID, h, v += rh);\r\n ctx.fillText(this.dto.countryTitles[Language.English], h, v += rh);\r\n ctx.fillText(`${this.dto.accordingToTitles[Language.English]} License`, h, v += rh);\r\n ctx.fillText(this.dto.permitClasses.join(', '), h, v += rh);\r\n ctx.fillText(this.dto.bloodGroup, h, v += rh);\r\n ctx.fillText(_issueDate, h, 485);\r\n ctx.fillText(_expiryDate, h, 508);\r\n\r\n ctx.font = 'bold 25px arial';\r\n ctx.fillText(Math.abs(this.dto.serial).toString(), h, 120);\r\n\r\n const photo = new Image();\r\n photo.onload = () => {\r\n const x = 270, y = 355, width = 110, height = 152, radius = 5;\r\n\r\n ctx.rect(x, y, width, height);\r\n //ctx.stroke();\r\n ctx.drawImage(photo, x, y, width, height);\r\n\r\n const qr = new Image();\r\n qr.onload = () => {\r\n ctx.drawImage(qr, 287, 230, 95, 95);\r\n }\r\n qr.src = this.dto.issued ? this.qRCodeImg : 'assets/images/qr.png';\r\n\r\n const ptt = new Image();\r\n ptt.onload = () => {\r\n ctx.save();\r\n ctx.globalAlpha = 0.2;\r\n const ptrn = ctx.createPattern(ptt, 'repeat');\r\n ctx.fillStyle = ptrn;\r\n ctx.fillRect(0, 0, 425, 600);\r\n ctx.restore();\r\n\r\n //draw thumb\r\n let canvas2Thumb = document.getElementById('stk-canvas-thumb') as HTMLCanvasElement;\r\n let thumbCtx = canvas2Thumb.getContext('2d');\r\n //thumbCtx.scale(0.2, 0.2);\r\n thumbCtx.drawImage(ctx.canvas, 0, 0);\r\n }\r\n ptt.src = 'assets/images/sample-stamp.png';\r\n }\r\n //photo.src = this._personalPhoto;\r\n photo.src = this.dto.attachments[0] as string;\r\n //photo.src = (this.dto.attachments[0]).changingThisBreaksApplicationSecurity;\r\n\r\n }\r\n stk.src = \"assets/images/sticker-empty.png\";\r\n }\r\n }\r\n\r\n\r\n //eLicense\r\n //TODO: update order status after issuing (front-back)\r\n\r\n returnToCustomer = (id: string) => {\r\n // console.error(\"Not implemented\");\r\n\r\n if (this.dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_UPDATE))\r\n return;\r\n\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n title: this.dto.eLicenseOrder.bill.trackingId,\r\n type: 'LIC_TITLE_LICENSE',\r\n action: 'إعادة طلب',\r\n confirmQuestion: 'هل تريد بالفعل إعادة طلب الرخصة الدولية رقم: ',\r\n note: `سيتم تحديث حالة الطلب إلى \"معاد للإستكمال\"، وسيتمكن مقدم الطلب من تعديل الطلب ثم إعادة التقديم مرة أخرى`,\r\n dangerNote: 'هذه العملية ستقوم بتجميد الطلب حتى يقوم مقدم الطلب بإتخاذ إجراء.',\r\n submitText: 'إعادة للإستكمال',\r\n submitClass: 'btn-warning',\r\n inputNote: 'ملاحظة الإعادة'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n await this._returnToCustomer(id, m[1].inputNote);\r\n // window.location.reload();\r\n });\r\n }\r\n\r\n private _returnToCustomer = (id, comment) => {\r\n console.warn(comment);\r\n\r\n this.loader.load(LoaderType.Body);\r\n //submit on server, and refresh UI\r\n this.eLicensesService.updateOrderStatus({ id, status: ELicenseOrderStatus.PaymentCompleted, comment })\r\n .then(result => {\r\n if (result) {\r\n console.warn(result);\r\n // const dto = this.dto;\r\n this.dto.eLicenseOrder.status = ELicenseOrderStatus.PaymentCompleted;\r\n\r\n if (!this.dto.eLicenseOrder.interactions)\r\n this.dto.eLicenseOrder.interactions = [];\r\n\r\n this.dto.eLicenseOrder.interactions.unshift({\r\n actor: 1,\r\n //TODO: time logged in local (BUG)\r\n created: moment().utc().toDate(),\r\n note: comment\r\n });\r\n window.location.reload();\r\n // this.dto.eLicenseOrder.shippingAddress.shippingVendorTrackingNumber = comment;\r\n\r\n // this.dto = dto;\r\n // //console.log(this.dto);\r\n }\r\n })\r\n .catch(e => console.error(e))\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n reject = (id: string) => {\r\n // console.error(\"Not implemented\");\r\n\r\n if (this.dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_UPDATE))\r\n return;\r\n\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n title: this.dto.eLicenseOrder.bill.trackingId,\r\n type: 'LIC_TITLE_LICENSE',\r\n action: 'رفض طلب',\r\n confirmQuestion: 'هل تريد بالفعل رفض طلب الرخصة الدولية رقم: ',\r\n note: `سيتم تحديث حالة الطلب إلى \"مرفوض\"، كما سيتم إعادة مبلغ ${this.dto.eLicenseOrder.bill.amount + ' ' + this.dto.eLicenseOrder.bill.total} إلى حساب العميل.`,\r\n dangerNote: 'هذه العملية لايمكن التراجع عنها، سيتم إشعار مقدم الطلب بالرفض',\r\n submitText: 'رفض',\r\n submitClass: 'btn-danger',\r\n inputNote: 'سبب الرفض'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n await this._reject(id, m[1].inputNote);\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n private _reject = (id, comment) => {\r\n console.warn(comment);\r\n\r\n this.loader.load(LoaderType.Body);\r\n //submit on server, and refresh UI\r\n this.eLicensesService.updateOrderStatus({ id, status: ELicenseOrderStatus.Rejected, comment })\r\n .then(result => {\r\n if (result) {\r\n console.warn(result);\r\n // const dto = this.dto;\r\n this.dto.eLicenseOrder.status = ELicenseOrderStatus.Rejected;\r\n window.location.reload();\r\n // this.dto.eLicenseOrder.shippingAddress.shippingVendorTrackingNumber = comment;\r\n\r\n // this.dto = dto;\r\n // //console.log(this.dto);\r\n }\r\n })\r\n .catch(e => console.error(e))\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n\r\n\r\n PayBranch = (id: string) => {\r\n\r\n if (this.dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_UPDATE))\r\n return;\r\n\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n title: `${this.dto.eLicenseOrder.bill.total} ${this.dto.eLicenseOrder.bill.currency}`,\r\n type: 'LIC_TITLE_LICENSE',\r\n action: 'تاكيد استلام مبلغ',\r\n confirmQuestion: ` هل تريد بالفعل تأكيد استلام مبلغ طلب الرخصة رقم ${this.dto.eLicenseOrder.bill.couponDiscount} المبلغ المطلوب سداده هو `,\r\n note: 'سيتم تحديث وسيلة الدفع إلى \"تم الدفع بالفرع\".',\r\n dangerNote: 'هذه العملية لايمكن التراجع عنها، سيتم تغيير الحالة لمدفوعة ومطالبتك بالمبلغ',\r\n submitText: 'استلام المبلغ',\r\n inputNote: 'اسم المسئول عن استلام المبلغ'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n await this._PayBranch(id,' تم استلام المبلغ بالفرع بواسطة : '+ m[1].inputNote);\r\n });\r\n\r\n }\r\n private _PayBranch = (id, comment) => {\r\n\r\n this.loader.load(LoaderType.Body);\r\n //submit on server, and refresh UI\r\n this.eLicensesService.updateOrderStatus({ id, status: ELicenseOrderStatus.PaymentCompleted, comment })\r\n .then(result => {\r\n if (result) {\r\n console.warn(result);\r\n // const dto = this.dto;\r\n this.dto.eLicenseOrder.status = ELicenseOrderStatus.PaymentCompleted;\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n window.location.reload();\r\n // this.dto.eLicenseOrder.shippingAddress.shippingVendorTrackingNumber = comment;\r\n\r\n //this.dto.eLicenseOrder.status = ELicenseOrderStatus.LicenseIssued;\r\n\r\n // this.dto = dto;\r\n // //console.log(this.dto);\r\n }\r\n })\r\n .catch(e => console.error(e))\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n \r\n\r\n Pick = (id: string) => {\r\n\r\n if (this.dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_UPDATE))\r\n return;\r\n\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n title: this.dto.serial.toString(),\r\n type: 'LIC_TITLE_LICENSE',\r\n action: 'تحديث بيانات استلام',\r\n confirmQuestion: 'هل تريد بالفعل تسليم للعميل طلب رخصة دولية رقم: ',\r\n note: 'سيتم تحديث حالة الطلب إلى \"تم الاستلام من الفرع\".',\r\n dangerNote: 'هذه العملية لايمكن التراجع عنها، سيتم تغيير الحالة الاستلام من الفرع على مسؤليتك',\r\n submitText: 'تسليم',\r\n inputNote: 'اسم المسئول عن التسليم'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n \r\n await this._Pick(id,' تم التسليم بواسطة : '+ m[1].inputNote);\r\n });\r\n\r\n }\r\n private _Pick = (id, comment) => {\r\n this.loader.load(LoaderType.Body);\r\n // Submit on server, and refresh UI\r\n this.eLicensesService.updateOrderStatus({ id, status: ELicenseOrderStatus.OrderDelivered, comment })\r\n .then(result => {\r\n if (result) {\r\n console.warn(result);\r\n // Assuming the update changes are reflected in your component's view,\r\n // and you now wish to \"refresh\" the component:\r\n\r\n // Reset the route reuse strategy\r\n this.router.routeReuseStrategy.shouldReuseRoute = function () {\r\n return false;\r\n };\r\n\r\n // Get current route's URL\r\n window.location.reload();\r\n\r\n }\r\n })\r\n .catch(e => console.error(e))\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n}\r\n\r\n get ELicenseOrderStatus() {\r\n return ELicenseOrderStatus;\r\n }\r\n ship = (id: string) => {\r\n\r\n if (this.dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.INT_LICENSES_UPDATE))\r\n return;\r\n\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n title: this.dto.serial.toString(),\r\n type: 'LIC_TITLE_LICENSE',\r\n action: 'تحديث بيانات شحنة',\r\n confirmQuestion: 'هل تريد بالفعل شحن طلب رخصة دولية رقم: ',\r\n note: 'سيتم تحديث حالة الطلب إلى \"تم الشحن\".',\r\n dangerNote: 'هذه العملية لايمكن التراجع عنها، سيتم إشعار مقدم الطلب برقم البوليصة، فضلاً التأكد من صحة البيانات قبل الضغط على زر تحديث',\r\n submitText: 'تحديث',\r\n inputNote: 'رقم بوليصة الشحن'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n await this._ship(id, m[1].inputNote);\r\n });\r\n \r\n }\r\n private _ship = (id, comment) => {\r\n\r\n this.loader.load(LoaderType.Body);\r\n //submit on server, and refresh UI\r\n this.eLicensesService.updateOrderStatus({ id, status: ELicenseOrderStatus.OrderShipped, comment })\r\n .then(result => {\r\n if (result) {\r\n console.warn(result);\r\n // const dto = this.dto;\r\n this.dto.eLicenseOrder.status = ELicenseOrderStatus.OrderShipped;\r\n this.dto.eLicenseOrder.shippingAddress.shippingVendorTrackingNumber = comment;\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n const currentUrl = this.router.url;\r\n window.location.reload();\r\n //this.dto.eLicenseOrder.status = ELicenseOrderStatus.LicenseIssued;\r\n\r\n // this.dto = dto;\r\n // //console.log(this.dto);\r\n }\r\n })\r\n .catch(e => console.error(e))\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n \r\n\r\n\r\n\r\n open(content) {\r\n this.modalService.open(content, { size: 'lg', ariaLabelledBy: 'modal-basic-title' }).result.then(\r\n (result) => {\r\n debugger;\r\n //this.closeResult = `Closed with: ${result.AddressLine.value} AddressLine: ${result.AddressLine.value}`;\r\n //alert(`Closed with: ${result.size} type: ${result.type} country: ${result.country}`);\r\n let _order = new CreateOrderUPSCommand();\r\n _order.order = JSON.stringify(result);\r\n //let hasEmpty = this.isEmpty(_order.order);\r\n //if (hasEmpty) {\r\n this._upsOrder(_order)\r\n // }\r\n //console.log(result);\r\n },\r\n (reason) => {\r\n debugger\r\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n // let currentUrl = this.router.url;\r\n // this.router.navigateByUrl('/', {skipLocationChange: true}).then(() => {\r\n // this.router.navigate([currentUrl]);\r\n // });\r\n },\r\n );\r\n }\r\n isEmpty(obj) {\r\n debugger\r\n let jsonparse = JSON.parse(obj);\r\n if (jsonparse.AddressLine == '') { alert('AddressLine is required'); return false; }\r\n if (jsonparse.AttentionName == '') { alert('AttentionName is required'); return false; }\r\n if (jsonparse.Comments == '') { alert('Comments is required'); return false; }\r\n if (jsonparse.CommodityCode == '') { alert('CommodityCode is required'); return false; }\r\n if (jsonparse.CountryCode == '') { alert('CountryCode is required'); return false; }\r\n if (jsonparse.DeclarationStatement == '') { alert('DeclarationStatement is required'); return false; }\r\n if (jsonparse.Description == '') { alert('Description is required'); return false; }\r\n if (jsonparse.InvoiceDate == '') { alert('InvoiceDate is required'); return false; }\r\n if (jsonparse.InvoiceNumber == '') { alert('InvoiceNumber is required'); return false; }\r\n if (jsonparse.Name == '') { alert('Name is required'); return false; }\r\n if (jsonparse.Number == '') { alert('Number is required'); return false; }\r\n if (jsonparse.OriginCountryCode == '') { alert('OriginCountryCode is required'); return false; }\r\n if (jsonparse.PostalCode == '') { alert('PostalCode is required'); return false; }\r\n if (jsonparse.ProductWeight == '') { alert('ProductWeight is required'); return false; }\r\n if (jsonparse.PurchaseOrderNumber == '') { alert('PurchaseOrderNumber is required'); return false; }\r\n if (jsonparse.ReasonForExport == '') { alert('ReasonForExport is required'); return false; }\r\n if (jsonparse.StateProvinceCode == '') { alert('StateProvinceCode is required'); return false; }\r\n if (jsonparse.TermsOfShipment == '') { alert('TermsOfShipment is required'); return false; }\r\n if (jsonparse.UnitOfMeasurementType == '') { alert('UnitOfMeasurementType is required'); return false; }\r\n if (jsonparse.UnitOfMeasurementWeight == '') { alert('UnitOfMeasurementWeight is required'); return false; }\r\n //// if (jsonparse.customerbuildingNumber == '') { alert('customerbuildingNumber is required'); return false; }\r\n if (jsonparse.customercityName == '') { alert('customercityName is required'); return false; }\r\n if (jsonparse.customercontactPhoneNumber == '') { alert('customercontactPhoneNumber is required'); return false; }\r\n if (jsonparse.customercountry == '') { alert('customercountry is required'); return false; }\r\n if (jsonparse.customername == '') { alert('customername is required'); return false; }\r\n if (jsonparse.customerneighborhoodName == '') { alert('customerneighborhoodName is required'); return false; }\r\n if (jsonparse.customerpostalCode == '') { alert('customerpostalCode is required'); return false; }\r\n if (jsonparse.customerstreetName == '') { alert('customerstreetName is required'); return false; }\r\n if (jsonparse.pickuplocation == '') { alert('pickuplocation is required'); return false; }\r\n if (jsonparse.productname == '') { alert('productname is required'); return false; }\r\n return true;\r\n }\r\n private getDismissReason(reason: any): string {\r\n if (reason === ModalDismissReasons.ESC) {\r\n return 'by pressing ESC';\r\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\r\n return 'by clicking on a backdrop';\r\n } else {\r\n return `with: ${reason}`;\r\n }\r\n }\r\n\r\n private _upsOrder = (order: CreateOrderUPSCommand) => {\r\n console.warn(order);\r\n\r\n this.loader.load(LoaderType.Body);\r\n //submit on server, and refresh UI\r\n this.eLicensesService.createUpsShipment(order)\r\n .then(result => {\r\n if (result) {\r\n console.warn(result);\r\n debugger\r\n let modal = this.confirmService.confirm(new ShipmentModal({\r\n title: this.dto.serial.toString(),\r\n type: 'UPS Shipment Created',\r\n action: 'Success - ',\r\n confirmQuestion: 'Shippment is created against serail# ',\r\n note: 'Customer Name: ',\r\n dangerNote: '',\r\n submitText: 'Ok',\r\n cancelText: 'Ok'\r\n }));\r\n modal.then(() => { //console.log('When user closes'); }, () => {\r\n window.location.reload();\r\n })\r\n // modal.then(async m => {\r\n // debugger\r\n\r\n // if (m.indexOf('CONFIRMED') > -1)\r\n // {\r\n // let currentUrl = this.router.url;\r\n // this.router.navigateByUrl('/', {skipLocationChange: true}).then(() => {\r\n // this.router.navigate([currentUrl]);\r\n // });\r\n // }\r\n // else {\r\n // debugger\r\n // let currentUrl = this.router.url;\r\n // this.router.navigateByUrl('/', {skipLocationChange: true}).then(() => {\r\n // this.router.navigate([currentUrl]);\r\n // });\r\n // }\r\n // // await this._print(printObject);\r\n // });\r\n // const dto = this.dto;\r\n // this.dto.eLicenseOrder.status = ELicenseOrderStatus.OrderShipped;\r\n // this.dto.eLicenseOrder.shippingAddress.shippingVendorTrackingNumber = comment;\r\n\r\n //this.dto.eLicenseOrder.status = ELicenseOrderStatus.LicenseIssued;\r\n\r\n // this.dto = dto;\r\n // //console.log(this.dto);\r\n }\r\n })\r\n .catch(e => console.error(e))\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n\r\n}\r\n","export enum ELicenseOrderStatus {\r\n DraftDocument,\r\n PaymentCompleted,\r\n OrderPlaced,\r\n Rejected,\r\n Refunded,\r\n LicenseIssued,\r\n OrderShipped,\r\n OrderDelivered,\r\n OrderPicked,\r\n OrderNeddToPay,\r\n}\r\n\r\nexport class ELicenseOrderDto {\r\n status: number;\r\n shippingAddress: ELicenseShippingAddressDto;\r\n plan: ELicensePlanDto;\r\n bill: ELicenseBillDto;\r\n interactions: ELicenseInteractionDto[]\r\n}\r\n\r\nexport class ELicenseShippingAddressDto {\r\n id: string;\r\n countryId: number;\r\n cityName: string;\r\n neighborhoodName: string;\r\n streetName: string;\r\n buildingNumber?: number;\r\n postalCode: string;\r\n contactPhoneNumber: string;\r\n shippingVendor: string;\r\n shippingVendorTrackingNumber: string;\r\n shippingVendorTrackingUrl: string;\r\n}\r\n\r\nexport class ELicensePlanDto {\r\n planId: number;\r\n validityYears: number;\r\n}\r\n\r\nexport class ELicenseBillDto {\r\n\r\n total: number; //الاجمالى\r\n paid?: Date;\r\n refunded?: Date;\r\n paymentId: string;\r\n trackingId: string;//وسيلة الدفع\r\n currency: string;\r\n vat: number;\r\n chargeId: string;\r\n amount: number;\r\n amountDiscount: number;\r\n shippingFees: number;\r\n shippingFeesDiscount: number;\r\n couponDiscount: number;//رقم الطلب\r\n paymentMethod: string;//رقم الطلب\r\n\r\n}\r\n\r\nexport class ELicenseInteractionDto {\r\n actor: number;\r\n created: Date;\r\n note: string;\r\n}\r\n\r\n\r\nexport class UpdateELicenseOrderStatusCommand {\r\n id: string;\r\n status: ELicenseOrderStatus;\r\n comment?: string;\r\n}\r\n\r\nexport class CreateOrderUPSCommand {\r\n order: string;\r\n}\r\n","import { BloodGroup } from 'src/app/core/models/enums/blood-group';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { IntLicensePermitClass } from 'src/app/core/models/enums/license-permit-class';\r\nimport { PrintLogDto } from '../../_shared/models/issuing.models';\r\nimport { SafeUrl } from '@angular/platform-browser';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { ELicenseOrderDto } from './e-license';\r\n\r\nexport interface IntLicenseVm {\r\n intLicense: IntLicenseDetailsDto //todo: rename to item\r\n}\r\n\r\nexport interface IntLicensesVm {\r\n list: IntLicenseDto[],\r\n tapOrders :TapOrder,\r\n recordsCount: number\r\n}\r\n\r\nexport interface SerialHashVm {\r\n value: string\r\n}\r\n\r\nexport interface TapOrder{\r\n unmatchedOrderNumbers : string[],\r\n unmatchedDatabaseNumbers:string[]\r\n}\r\n\r\nexport interface IntLicenseDto {\r\n id: string,\r\n serial: number,\r\n name: string,\r\n gender: Gender,\r\n phoneNumber: string,\r\n accountId: number,\r\n accountTitles: string[],\r\n passportID: string,\r\n issued?: Date,\r\n printLogs: PrintLogDto[],\r\n revokeRequestId?: number,\r\n parentAccounts: LookupDto,\r\n accountTypeTitle: string\r\n isELicense: boolean;\r\n validityYears: number;\r\n eLicenseOrder?: ELicenseOrderDto;\r\n}\r\n\r\nexport class IntLicenseDetailsDto {\r\n id: string;\r\n serial: number;\r\n name: string;\r\n dateOfBirth: Date;\r\n nationalityId: number;\r\n nationalityTitles: string[] = [];\r\n countryId: number;\r\n countryTitles: string[] = [];\r\n accordingToId: number;\r\n accordingToTitles: string[] = [];\r\n passportID: string;\r\n bloodGroup: BloodGroup;\r\n gender: Gender;\r\n permitClasses: IntLicensePermitClass[] = [];\r\n phoneNumber: string;\r\n issued?: Date;\r\n expiryDate?: Date;\r\n hashedSerial?: string;\r\n accountId: number;\r\n // personalPhoto: string;\r\n // passportPhoto: string;\r\n // licensePhoto: string;\r\n attachments: string[] | SafeUrl[];\r\n printLogs: PrintLogDto[];\r\n validityYears: number;\r\n isELicense: boolean;\r\n eLicenseOrder?: ELicenseOrderDto;\r\n documentTemplateVersion: number;\r\n\r\n}\r\n\r\nexport interface IntLicensesSearchQuery /* extends PaginationQuery */ {\r\n name?: string,\r\n countryId?: number,\r\n nationalityId?: number,\r\n gender?: Gender,\r\n phoneNumber?: string,\r\n passportID?: string,\r\n accountId?: number,\r\n permitClass?: string,\r\n serial?: number,\r\n fromDate?: string,\r\n toDate?: string,\r\n isIssued?: boolean,\r\n isDamaged?: boolean,\r\n isELicense?: boolean,\r\n paymentMethod?: string,\r\n orderNo?: number,\r\n shippingStatue?: number,\r\n licensePeriod?: number,\r\n}\r\n\r\n","import { ELicenseOrderStatus } from \"./e-license\";\r\n\r\nexport const convertELicenseOrderStatusToLocale = (status: ELicenseOrderStatus) => {\r\n switch (status) {\r\n case ELicenseOrderStatus.DraftDocument:\r\n return \" طلب معلق - بإنتظار حضور العميل والدفع بالفرع\";\r\n\r\n case ELicenseOrderStatus.OrderPlaced:\r\n return \"قيد الإجراء - بإنتظار موافقة النظام\";\r\n\r\n case ELicenseOrderStatus.PaymentCompleted:\r\n return \"معاد للإستكمال - بإنتظار مدخلات العميل\";\r\n\r\n case ELicenseOrderStatus.LicenseIssued:\r\n return \"مقبول - تم إصدار الرخصة\";\r\n\r\n case ELicenseOrderStatus.OrderShipped:\r\n return \"تم شحن الطلب\";\r\n\r\n case ELicenseOrderStatus.OrderDelivered:\r\n return \"نم استلام الطلب من الفرع\";\r\n case ELicenseOrderStatus.OrderPicked:\r\n return \"نم استلام الطلب من الفرع\";\r\n case ELicenseOrderStatus.Rejected:\r\n case ELicenseOrderStatus.Refunded:\r\n return \"مرفوض - تم إعادة المبلغ لحساب العميل\";\r\n\r\n }\r\n }","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { IntLicensesService } from './int-licenses.service';\r\nimport { IntLicenseDto, IntLicensesVm, IntLicensesSearchQuery } from '../models/int-license';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { PaginationQuery } from '../../_shared/models/issuing.models';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { ELicensesService } from \"./e-licenses.service\";\r\n\r\n\r\nexport class ELicensesDataSource implements DataSource {\r\n // add variables to hold the data and number of total records retrieved asynchronously\r\n // BehaviourSubject type is used for this purpose\r\n public IntLicensesSubject = new BehaviorSubject([]);\r\n\r\n // to show the total number of records\r\n public countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private eLicensesService: ELicensesService, private loader: LoadingService) { }\r\n\r\n load(pagination: PaginationQuery, query: IntLicensesSearchQuery | string = null) {\r\n ////console.warn(query);\r\n // //console.warn(query instanceof IntLicensesSearchQuery);\r\n\r\n //this.intLicensesService.search(pagination, query)\r\n this.eLicensesService[(query == null || typeof query == 'string') ? 'getLicenses' : 'search'](pagination, query)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: IntLicensesVm) => {\r\n //console.log(result);\r\n result.list.forEach(document => {\r\n document.parentAccounts = populateAccountsSelect([document.parentAccounts])[0];\r\n });\r\n this.IntLicensesSubject.next(result.list);\r\n this.countSubject.next(result.recordsCount);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n connect(): Observable {\r\n return this.IntLicensesSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.IntLicensesSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { PaginationQuery } from '../../_shared/models/issuing.models';\r\nimport { CreateOrderUPSCommand, UpdateELicenseOrderStatusCommand } from '../models/e-license';\r\nimport { IntLicensesSearchQuery, IntLicensesVm } from '../models/int-license';\r\n\r\n@Injectable()\r\nexport class ELicensesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n updateOrderStatus(cmd: UpdateELicenseOrderStatusCommand) {\r\n console.log(cmd)\r\n return this.api.update(EndPoint.E_lICENSE_ORDER_STATUS, cmd).toPromise();\r\n }\r\n\r\n getLicenses(pagination: PaginationQuery, query: string = '',isExcelExport = false) {\r\n return this.api.get(EndPoint.INT_lICENSE_DEATILS, null, { ...pagination, query, isELicense: true ,isExcelExport });\r\n }\r\n\r\n search(pagination: PaginationQuery, query: IntLicensesSearchQuery) {\r\n return this.api.get(EndPoint.INT_lICENSE_SEARCH, null, { ...pagination, ...query, isELicense: true });\r\n }\r\n createUpsShipment(cmd: CreateOrderUPSCommand) {\r\n return this.api.create(EndPoint.ISSUING_CREATE_UPS_SHIPMENT, cmd).toPromise();\r\n }\r\n}\r\n","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { IntLicensesService } from './int-licenses.service';\r\nimport { IntLicenseDto, IntLicensesVm, IntLicensesSearchQuery } from '../models/int-license';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { PaginationQuery } from '../../_shared/models/issuing.models';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\n\r\n\r\nexport class IntLicensesDataSource implements DataSource {\r\n // add variables to hold the data and number of total records retrieved asynchronously\r\n // BehaviourSubject type is used for this purpose\r\n public IntLicensesSubject = new BehaviorSubject([]);\r\n\r\n // to show the total number of records\r\n public countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private intLicensesService: IntLicensesService, private loader: LoadingService) { }\r\n\r\n loadIntLicenses(pagination: PaginationQuery, query: IntLicensesSearchQuery | string = null) {\r\n ////console.warn(query);\r\n // //console.warn(query instanceof IntLicensesSearchQuery);\r\n\r\n //this.intLicensesService.search(pagination, query)\r\n this.intLicensesService[(query == null || typeof query == 'string') ? 'getLicenses' : 'search'](pagination, query)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: IntLicensesVm) => {\r\n // //console.log(result.list);\r\n result.list.forEach(document => {\r\n document.parentAccounts = populateAccountsSelect([document.parentAccounts])[0];\r\n });\r\n this.IntLicensesSubject.next(result.list);\r\n this.countSubject.next(result.recordsCount);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n connect(): Observable {\r\n return this.IntLicensesSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.IntLicensesSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { PostIntLicenseCmd } from '../models/create.cmd';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { IntLicenseVm, IntLicensesVm, IntLicensesSearchQuery, SerialHashVm } from '../models/int-license';\r\nimport { PrintIntLicenseCmd } from '../models/print.cmd';\r\nimport { PaginationQuery } from '../../_shared/models/issuing.models';\r\n\r\n@Injectable()\r\nexport class IntLicensesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n delete(id: string) {\r\n return this.api.delete(EndPoint.INT_lICENSE, id).toPromise();\r\n }\r\n\r\n update(cmd: PostIntLicenseCmd) {\r\n return this.api.update(EndPoint.INT_lICENSE, cmd).toPromise();\r\n }\r\n\r\n create(cmd: PostIntLicenseCmd) {\r\n return this.api.create(EndPoint.INT_lICENSE, cmd).toPromise();\r\n }\r\n\r\n get(id: string) {\r\n return this.api.get(EndPoint.INT_lICENSE, id).toPromise();\r\n }\r\n\r\n getByHashedSerial(key: string) {\r\n return this.api.get(EndPoint.INT_lICENSE_GET_BY_HASHED_SERIAL, key).toPromise();\r\n }\r\n\r\n getLicenses(pagination: PaginationQuery, query: string = '') {\r\n // return this.api.get(EndPoint.INT_lICENSE, null, { ...pagination, query, isELicense: false });\r\n return this.api.get(EndPoint.INT_lICENSE_DEATILS, null, { ...pagination, query, isELicense: false });\r\n }\r\n\r\n\r\n search(pagination: PaginationQuery, query: IntLicensesSearchQuery) {\r\n return this.api.get(EndPoint.INT_lICENSE_SEARCH, null, { ...pagination, ...query, isELicense: false });\r\n }\r\n\r\n print(cmd: PrintIntLicenseCmd) {\r\n return this.api.create(EndPoint.INT_lICENSE_PRINT, cmd).toPromise();\r\n }\r\n\r\n // tryRevoke(cmd: PrintIntLicenseCmd) {\r\n // return this.api.create(EndPoint.INT_lICENSE_REVOKE_TRY, cmd).toPromise();\r\n // }\r\n}\r\n\r\n","import { Component, OnInit, ElementRef } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { TripTikDetailsDto } from '../../models/trip-tik';\r\n\r\n@Component({\r\n selector: 'mac-receipt-print',\r\n templateUrl: './receipt-print.component.html',\r\n styleUrls: ['./receipt-print.component.scss']\r\n})\r\nexport class ReceiptPrintComponent implements OnInit {\r\n dto: TripTikDetailsDto;\r\n issueDate: Date;\r\n\r\n constructor(private elRef: ElementRef, public translate: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n async print(dto: TripTikDetailsDto) {\r\n this.dto = dto;\r\n this.issueDate = this.dto.issued ? this.dto.issued : new Date();\r\n\r\n setTimeout(() => {\r\n const printHtmlContent = this.elRef.nativeElement.innerHTML;\r\n Utils.printHtml(printHtmlContent);\r\n }, 500);\r\n }\r\n}\r\n","import { Component, OnInit, ElementRef } from '@angular/core';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { PrintObject } from 'src/app/core/models/enums/print-object';\r\nimport { TripTikDetailsDto } from '../../models/trip-tik';\r\nimport { StaticConfig } from 'src/app/features/lookups/services/config';\r\nimport { ConfigObject } from 'src/app/core/models/enums/config-object';\r\nimport * as moment from 'moment';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { StringJoinPipe } from 'src/app/shared/pipes/string-join.pipe';\r\n\r\n@Component({\r\n selector: 'mac-trip-tik-print',\r\n templateUrl: './trip-tik-print.component.html',\r\n styleUrls: ['./trip-tik-print.component.scss']\r\n})\r\nexport class TripTikPrintComponent {\r\n\r\n dto: TripTikDetailsDto;\r\n qRCodeUrl: string;\r\n printObject: PrintObject;\r\n empty: string;\r\n drivers: string[];\r\n vOptions: LookupDto[];\r\n vUpholsteryType: string[];\r\n cOwnerInfo: string[];\r\n\r\n _colors: string[] = [];\r\n _makeModel: string[] = [];\r\n _options: string[] = [];\r\n\r\n get Language() { return Language; };\r\n get PrintObject() { return PrintObject; };\r\n get joinByDash() { return Utils.joinByDash; };\r\n\r\n constructor(private elRef: ElementRef, private stringJoin: StringJoinPipe) {\r\n }\r\n\r\n async print(dto: TripTikDetailsDto, printObject: PrintObject) {\r\n this.dto = dto;\r\n this.printObject = printObject;\r\n this.empty = '';// StaticConfig.getConfigKeyValuePairs(ConfigObject.TripTikPrintEmptyValue)[0].value.toString();\r\n\r\n //console.log(dto.documentTemplateVersion);\r\n this.vOptions = [];\r\n if (this.dto.vehicle.options)\r\n this.dto.vehicle.options.forEach(opt => {\r\n //this.vOptions.push(StaticConfig.getConfigValue(ConfigObject.VehicleOptions, opt).toString())\r\n this.vOptions.push({ id: opt, titles: <[]>StaticConfig.getConfigValue(ConfigObject.VehicleOptions, opt/*, this.lang*/) });\r\n });\r\n\r\n\r\n this._colors = this.dto.vehicle.colors ? this.dto.vehicle.colors.map(d => this.stringJoin.transform(d.titles)) : [];\r\n this._options = this.vOptions ? this.vOptions.map(d => this.stringJoin.transform(d.titles)) : [];\r\n\r\n\r\n if (this.dto.vehicle.model) {\r\n this._makeModel = [];\r\n this._makeModel.push(this.stringJoin.transform([this.dto.vehicle.model.titles[0], this.dto.vehicle.make.titles[0]]));\r\n this._makeModel.push(this.stringJoin.transform([this.dto.vehicle.model.titles[1], this.dto.vehicle.make.titles[1]]));\r\n\r\n // //console.log(this._makeModel);\r\n }\r\n\r\n this.drivers = this.dto.customer.drivers.map(d => d.name);\r\n this.cOwnerInfo = [dto.customer.owner.name, dto.customer.owner.address.item1, dto.customer.owner.address.item2]\r\n .filter(d => d);\r\n\r\n if (this.dto.vehicle.upholsteryType)\r\n this.vUpholsteryType = <[]>StaticConfig.getConfigValue(ConfigObject.VehicleUpholsteryTypes, this.dto.vehicle.upholsteryType);\r\n\r\n\r\n\r\n this.dto.issued = this.dto.issued ? this.dto.issued : new Date();\r\n this.dto.expiryDate = moment(this.dto.issued).add(1, 'year').subtract(1, 'day').toDate();\r\n this.qRCodeUrl = Utils.generateQrCodeUrl(this.dto.hashedSerial); //todo: fill db with hashs\r\n\r\n setTimeout(() => {\r\n const printHtmlContent = this.elRef.nativeElement.innerHTML;\r\n Utils.printHtml(printHtmlContent);\r\n }, 500);\r\n }\r\n}\r\n\r\n// export function joinByDash(arr: string[]) {\r\n// return [...arr].reverse().join(' - ');\r\n// }\r\n\r\n// interface String {\r\n// // toAddPrefix(prefix: string): string;\r\n// joinByDash(): String;\r\n// }\r\n// interface Array {\r\n// joinByDash(): Array;\r\n// }\r\n\r\n\r\n\r\n\r\n// Array.prototype.joinByDash = function () {\r\n// const _self = this;\r\n// return [..._self].reverse().join(' - ');\r\n// };\r\n\r\n\r\n// const joinByDash = function (arr: string[]) {\r\n// return [...arr].reverse().join(' - ');\r\n// }","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { FormGroup, FormBuilder, Validators, FormArray, FormControl, AbstractControl } from '@angular/forms';\r\nimport { CountryDto } from 'src/app/features/lookups/models/country';\r\nimport { CountriesService } from 'src/app/features/lookups/services/countries';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { StocksService } from 'src/app/features/stock/services/stocks.service';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport * as moment from 'moment';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\n// import { isArray } from 'util';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\nimport * as _ from 'lodash';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { CurrenciesService } from 'src/app/features/lookups/services/currencies';\r\nimport { VehicleColorsService } from 'src/app/features/lookups/services/vehicle-colors';\r\nimport { VehicleModelsService } from 'src/app/features/lookups/services/vehicle-models';\r\nimport { VehicleMakesService } from 'src/app/features/lookups/services/vehicle-makes';\r\nimport { VehicleTypesService } from 'src/app/features/lookups/services/vehicle-types';\r\nimport { CurrencyDto } from 'src/app/features/lookups/models/currency';\r\nimport { VehicleModelDto } from 'src/app/features/lookups/models/vehicle-model';\r\nimport { ConfigObject } from 'src/app/core/models/enums/config-object';\r\nimport { TripTiksService } from '../../services/trip-tiks.service';\r\nimport { PostTripTikCmd } from '../../models/create.cmd';\r\nimport { StaticConfig } from 'src/app/features/lookups/services/config';\r\nimport { ConigKeyValuePair } from 'src/app/features/lookups/models/config';\r\nimport { TripTikDetailsDto } from '../../models/trip-tik';\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { threadId } from 'worker_threads';\r\nimport { numbersOnlyValidator, nonArabicCharactersValidator, passportIdOrIdentityIdValidator, nonEnglishCharactersValidator, addressValidator, phoneNumberValidator, vehicleSeatsCountRangeValidator, vehicleManufactureYearRangeValidator, vehicleWeightInKGRangeValidator, vehicleCylindersCountRangeValidator, vehicleHorsePowerRangeValidator, vehicleValueRangeValidator, comparePasswords, _passportIdOrIdentityIdValidator } from 'src/app/shared/services/custom-validators';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\n\r\n@Component({\r\n selector: 'mac-manage-trip-tik',\r\n templateUrl: './manage-trip-tik.component.html',\r\n styleUrls: ['./manage-trip-tik.component.scss'],\r\n providers: [\r\n CountriesService,\r\n StocksService,\r\n TripTiksService,\r\n FileLoaderService,\r\n StockTypesService,\r\n CurrenciesService,\r\n VehicleColorsService,\r\n VehicleMakesService,\r\n VehicleModelsService,\r\n VehicleTypesService\r\n ]\r\n})\r\nexport class ManageTripTikComponent implements OnInit {\r\n lang: Language;\r\n countries: CountryDto[] = [];\r\n vehicleRegistrationCountries: CountryDto[] = [];\r\n stockTypes: StockTypeDto[] = [];\r\n currencies: CurrencyDto[] = [];\r\n vehicleColors: LookupDto[] = [];\r\n vehicleModels: VehicleModelDto[] = [];\r\n vehicleMakes: LookupDto[] = [];\r\n vehicleTypes: LookupDto[] = [];\r\n vehicleUpholsteryTypes: ConigKeyValuePair[] = [];\r\n vehicleSpareTiresCountOptions: number[] = [];\r\n vehicleCylindersCountRange: number[] = [];\r\n vehicleManufactureYearRange: number[] = [];\r\n vehicleSeatsCountRange: number[] = [];\r\n vehicleOptions: ConigKeyValuePair[] = [];\r\n form: FormGroup;\r\n availableSerials: number[];\r\n updateMode: boolean;\r\n //_loadingGif: string = 'assets/images/Ring-Preloader.gif';\r\n dateFormat = 'L';\r\n dto: TripTikDetailsDto = new TripTikDetailsDto();\r\n mode: 'ADD' | 'UPDATE' | 'CLONE';\r\n objectId: string;\r\n key: string;\r\n\r\n @ViewChild(MatStepper, { static: true }) stepper: MatStepper;\r\n\r\n get moment() { return moment };\r\n get Object() { return Object };\r\n get ConfigObject() { return ConfigObject; };\r\n\r\n get steps() { return this.form.get('steps') as FormArray };\r\n get step1() { return this.steps.get([0]) };\r\n get step2() { return this.steps.get([1]) };\r\n get step3() { return this.steps.get([2]) };\r\n\r\n //doc - global\r\n get serial() { return this.form.get('serial') };\r\n get stockType() { return this.form.get('stockTypeId') };\r\n //get value() { return this.form.get('value') };\r\n //get currency() { return this.form.get('currencyId') };\r\n\r\n //cust - step1\r\n get cName() { return this.step1.get('name') };\r\n get cResidenceCountry() { return this.step1.get('residenceCountryId') };\r\n get cNationality() { return this.step1.get('nationalityId') };\r\n get cIdentityID() { return this.step1.get('identityID') };\r\n get cPassportID() { return this.step1.get('passportID') };\r\n get cLocalAddress() { return this.step1.get('localAddress') };\r\n get cLocalPhoneNumber() { return this.step1.get('localPhoneNumber') };\r\n get cIntAddress() { return this.step1.get('intAddress') };\r\n get cIntPhoneNumber() { return this.step1.get('intPhoneNumber') };\r\n get drivers() { return (this.step1 as FormGroup).get('drivers') as FormArray };\r\n\r\n //vehc - step2\r\n get vPlateID() { return this.step2.get('plateID') };\r\n get vRegistrationCountry() { return this.step2.get('registrationCountryId') };\r\n get vMake() { return this.step2.get('makeId') };\r\n get vModel() { return this.step2.get('modelId') };\r\n get vType() { return this.step2.get('typeId') };\r\n get vSeatsCount() { return this.step2.get('seatsCount') };\r\n get vManufactureYear() { return this.step2.get('manufactureYear') };\r\n get vWeightInKG() { return this.step2.get('weightInKG') };\r\n get vCylindersCount() { return this.step2.get('cylindersCount') };\r\n get vHorsePower() { return this.step2.get('horsePower') };\r\n get vColors() { return this.step2.get('colors') };\r\n get vUpholsteryType() { return this.step2.get('upholsteryType') };\r\n get vEngineID() { return this.step2.get('engineID') };\r\n get vChassisID() { return this.step2.get('chassisID') };\r\n get vOptions() { return this.step2.get('options') as FormArray };\r\n get vSpareTiresCount() { return this.step2.get('spareTiresCount') };\r\n get vEquipments() { return this.step2.get('equipments') };\r\n get vExtras() { return this.step2.get('extras') };\r\n get vValue() { return this.step2.get('value') };\r\n get vCurrency() { return this.step2.get('currencyId') };\r\n\r\n //att - step3\r\n get attachments() { return this.step3.get('attachments') as FormArray };\r\n\r\n constructor(private loader: LoadingService,\r\n private fb: FormBuilder,\r\n private countriesService: CountriesService,\r\n private stocksService: StocksService,\r\n public translate: TranslateService,\r\n private tripTiksService: TripTiksService,\r\n private stockTypesService: StockTypesService,\r\n private currenciesService: CurrenciesService,\r\n private vehicleColorsService: VehicleColorsService,\r\n private vehicleMakesService: VehicleMakesService,\r\n private vehicleModelsService: VehicleModelsService,\r\n private vehicleTypesService: VehicleTypesService,\r\n private route: ActivatedRoute,\r\n public fileLoader: FileLoaderService,\r\n private alert: AlertService,\r\n private router: Router,\r\n private auth: AuthService) { }\r\n\r\n async ngOnInit() {\r\n this.loader.load(LoaderType.Nav);\r\n\r\n moment.locale('en-gb');\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.mode = this.route.snapshot.data.mode;\r\n\r\n this.formInit();\r\n\r\n //disable form initially\r\n this.form.disable();\r\n //this.drivers.controls.forEach(g => {g.disable()});\r\n\r\n\r\n // //console.log(this.form);\r\n // //console.log(this.form.enabled, this.form.disabled);\r\n\r\n this.stockType.enable();\r\n // //console.log(this.form);\r\n // //console.log(this.form.enabled, this.form.disabled);\r\n\r\n // //console.log(this.stockType.value);\r\n\r\n const startYearConfig = StaticConfig.getConfigKeyValuePairs(ConfigObject.VehicleManufactureYearRange);\r\n this.vehicleManufactureYearRange = Utils.spreadRange([Number(startYearConfig[0].value), (new Date().getUTCFullYear() + 1)], true);\r\n this.vehicleUpholsteryTypes = StaticConfig.getConfigKeyValuePairs(ConfigObject.VehicleUpholsteryTypes, this.lang);\r\n this.vehicleSpareTiresCountOptions = Utils.spreadRange(StaticConfig.getConfigKeyValuePairs(ConfigObject.VehicleSpareTiresCountOptions).map(d => Number(d.value)));\r\n this.vehicleCylindersCountRange = Utils.spreadRange(StaticConfig.getConfigKeyValuePairs(ConfigObject.VehicleCylindersCountRange).map(d => Number(d.value)));\r\n this.vehicleSeatsCountRange = Utils.spreadRange(StaticConfig.getConfigKeyValuePairs(ConfigObject.VehicleSeatsCountRange).map(d => Number(d.value)));\r\n this.vehicleOptions = StaticConfig.getConfigKeyValuePairs(ConfigObject.VehicleOptions, this.lang);\r\n\r\n this.vehicleOptions.forEach(_ => this.vOptions.push(new FormControl(true)));\r\n\r\n await Promise.all([\r\n this.stockTypesService.getAllowed()\r\n .then(result => this.stockTypes = result.list.filter(x => x.documentType == _DocumentType.TripTikDocument)),\r\n this.countriesService.get(this.lang)\r\n .then(result => this.countries = this.vehicleRegistrationCountries = result.list),\r\n this.currenciesService.get(this.lang)\r\n .then(result => {\r\n this.currencies = result.list;\r\n if (this.currencies)\r\n this.vCurrency.setValue(this.currencies[0].id);\r\n }),\r\n this.vehicleColorsService.get(this.lang)\r\n .then(result => this.vehicleColors = result.list),\r\n this.vehicleMakesService.get(this.lang)\r\n .then(result => this.vehicleMakes = result.list),\r\n this.vehicleTypesService.get(this.lang)\r\n .then(result => this.vehicleTypes = result.list)\r\n ]);\r\n\r\n this.stepper._stepHeader.forEach(h => h._getHostElement().addEventListener('click', (ev) => {\r\n this.navigateAttempt();\r\n }));\r\n\r\n this.objectId = this.route.snapshot.paramMap.get('id');\r\n this.key = this.route.snapshot.paramMap.get('key');\r\n\r\n //const _stockTypeId = this.stockTypes[0].id;\r\n\r\n // this.form.patchValue({ stockTypeId: _stockTypeId });\r\n //this.availableSerials = Utils.spreadRanges((await this.stocksService.getAvailableStocks(_stockTypeId)).stockTypesAvailableStocks[0].availableStock);\r\n\r\n\r\n if (this.objectId || this.key) {\r\n this.updateMode = this.mode == 'UPDATE';\r\n\r\n if (this.mode == 'CLONE') {\r\n this.dto = await (await this.tripTiksService.getByHashedSerial(this.key)).item;\r\n } else\r\n this.dto = await (await this.tripTiksService.get(this.objectId)).item;\r\n\r\n //console.log(this.dto);\r\n\r\n if (!this.dto || (this.updateMode && this.dto.issued)) { //will ignore if cloning\r\n this.router.navigate([`/${this.translate.currentLang}/not-found`]);\r\n return;\r\n }\r\n if (this.updateMode) {\r\n this.availableSerials = [this.dto.serial];\r\n this.form.patchValue({ stockTypeId: this.dto.stockType.id });\r\n this.onSelectStockType();\r\n }\r\n //this.availableSerials.unshift(this.dto.serial);\r\n // else {\r\n // if (this.availableSerials.length > 0)\r\n // this.form.patchValue({ serial: this.availableSerials[0] });\r\n // else {\r\n // this.alert.failure(\"TRP_ALERT_NO_STOCK_AVAILABLE\", false);\r\n // // this.form.disable();\r\n // return;\r\n // }\r\n // }\r\n\r\n //if (this.updateMode && this.dto.stockType.id != _stockTypeId) {\r\n\r\n //}\r\n\r\n if (this.dto.customer.drivers)\r\n this.dto.customer.drivers.forEach((driver, i) => {\r\n this.driverFormInit(driver);\r\n });\r\n\r\n this.form.patchValue({\r\n stockTypeId: this.updateMode ? this.dto.stockType.id : null,\r\n serial: this.updateMode ? this.dto.serial : null,// this.availableSerials[0],\r\n //value: this.dto.value,\r\n steps: [\r\n {\r\n name: this.dto.customer.owner.name,\r\n residenceCountryId: this.dto.customer.owner.residenceCountryId,\r\n nationalityId: this.dto.customer.owner.nationalityId ? this.dto.customer.owner.nationalityId : null,\r\n identityID: this.dto.customer.owner.identityID,\r\n passportID: this.dto.customer.owner.passportID,\r\n localAddress: this.dto.customer.owner.address.item1,\r\n intAddress: this.dto.customer.owner.address.item2,\r\n localPhoneNumber: this.dto.customer.owner.phoneNumber.item1,\r\n intPhoneNumber: this.dto.customer.owner.phoneNumber.item2,\r\n drivers: this.dto.customer.drivers\r\n },\r\n {\r\n registrationCountryId: this.dto.vehicle.registrationCountryId,\r\n plateID: this.dto.vehicle.plateID,\r\n makeId: this.dto.vehicle.make ? this.dto.vehicle.make.id : '',\r\n modelId: this.dto.vehicle.model ? this.dto.vehicle.model.id : '',\r\n typeId: this.dto.vehicle.type ? this.dto.vehicle.type.id : '',\r\n seatsCount: this.dto.vehicle.seatsCount,\r\n manufactureYear: this.dto.vehicle.manufactureYear,\r\n weightInKG: this.dto.vehicle.weightInKG,\r\n cylindersCount: this.dto.vehicle.cylindersCount,\r\n horsePower: this.dto.vehicle.horsePower,\r\n colors: this.dto.vehicle.colors ? this.dto.vehicle.colors.map(d => d.id) : '',\r\n upholsteryType: this.dto.vehicle.upholsteryType,\r\n engineID: this.dto.vehicle.engineID,\r\n chassisID: this.dto.vehicle.chassisID,\r\n options: this.dto.vehicle.options,\r\n spareTiresCount: this.dto.vehicle.spareTiresCount,\r\n equipments: this.dto.vehicle.equipments,\r\n extras: this.dto.vehicle.extras,\r\n value: this.dto.vehicle.value,\r\n currencyId: this.dto.vehicle.currency ? this.dto.vehicle.currency.id : ''\r\n },\r\n {\r\n attachments: [\r\n {\r\n identityOrPassport: this.dto.customer.owner.attachments[0],\r\n drivingLicense: this.dto.customer.owner.attachments[1],\r\n vehicleRegistration: this.dto.customer.owner.attachments[2]\r\n }\r\n ]\r\n }\r\n ]\r\n });\r\n\r\n this.attachments.controls.forEach(async (group: FormGroup, i) => {\r\n for (let c in group.controls) {\r\n let path = group.controls[c].value;\r\n if (this.key)\r\n path = `${path}?key=${this.key}`;\r\n //console.log(path);\r\n group.controls[c].setValue(await this.fileLoader.loadAsync(path));\r\n }\r\n });\r\n\r\n } /*else {\r\n if (this.availableSerials.length > 0)\r\n this.form.patchValue({ serial: this.availableSerials[0] });\r\n else {\r\n this.alert.failure(\"TRP_ALERT_NO_STOCK_AVAILABLE\", false);\r\n //this.form.disable();\r\n }\r\n }*/\r\n\r\n if (!this.updateMode) {\r\n this.form.disable();\r\n this.stockType.enable();\r\n }\r\n //this.drivers.controls.forEach(g => {g.disable()});\r\n\r\n\r\n // //console.log(this.form);\r\n // //console.log(this.form.enabled, this.form.disabled);\r\n\r\n\r\n\r\n this.loader.load(LoaderType.Nav, false);\r\n }\r\n\r\n isExpired(expiryDate) {\r\n return moment(expiryDate).isBefore(Date.now());\r\n }\r\n\r\n addDriver() {\r\n if (this.availableSerials && this.availableSerials.length > 0)\r\n this.driverFormInit();\r\n }\r\n\r\n removeDriver(i) {\r\n if (this.availableSerials && this.availableSerials.length > 0) {\r\n this.drivers.removeAt(i);\r\n this.attachments.removeAt(i + 1);\r\n }\r\n }\r\n\r\n fetchModels(makeId) {\r\n this.vModel.reset();\r\n this.vehicleModelsService.get(makeId, this.stockType.value, this.lang)\r\n .then(result => {\r\n this.vehicleModels = result.list;\r\n });\r\n }\r\n\r\n async onSelectStockType() {\r\n //console.log(this.stockType.value);\r\n this.loader.load(LoaderType.Body);\r\n this.availableSerials = Utils.spreadRanges((await this.stocksService.getAvailableStocks(this.stockType.value)).stockTypesAvailableStocks[0].availableStock);\r\n if (this.availableSerials.length > 0 || (this.updateMode && Number(this.stockType.value) == this.dto.stockType.id)) {\r\n if (this.updateMode && Number(this.stockType.value) == this.dto.stockType.id)\r\n this.availableSerials.unshift(this.dto.serial);\r\n this.form.patchValue({ serial: this.availableSerials[0] });\r\n this.form.enable();\r\n this.form.markAsUntouched();\r\n\r\n //if تربتيك يمن لوحات سعودية\r\n if (Number(this.stockType.value) == 3) { //temp //todo: refactor (many-to-many join)\r\n\r\n this.vehicleRegistrationCountries = [...this.countries.filter(x => x.abbreviation == \"SA\")];\r\n this.vRegistrationCountry.setValue(this.vehicleRegistrationCountries[0].id);\r\n\r\n\r\n //this.vRegistrationCountry.disable();\r\n } else {\r\n this.vehicleRegistrationCountries = [...this.countries];\r\n //todo: check value after swapping\r\n if (!this.updateMode)\r\n this.vRegistrationCountry.reset();\r\n }\r\n\r\n } else {\r\n this.alert.failure(\"TRP_ALERT_NO_STOCK_AVAILABLE\", false);\r\n this.availableSerials = [];\r\n this.serial.reset();\r\n \r\n this.form.disable();\r\n\r\n if (this.stockTypes.length > 1)\r\n this.stockType.enable();\r\n\r\n this.stepper.selectedIndex = 0;\r\n }\r\n this.loader.load(LoaderType.Body, false);\r\n }\r\n\r\n navigateAttempt(i: number = null) {\r\n\r\n //console.log('nav', this.stepper.selected);\r\n //if (this.stockType.value) {\r\n // //console.log('test');\r\n const ctrl = (i != null ? this.steps.controls[i] : this.stepper.selected.stepControl) as FormGroup;\r\n //console.warn('attempt', i, ctrl);\r\n // //console.log(ctrl);\r\n // if (!this.stockType.value) {\r\n // ctrl.setErrors({ required: true });\r\n // ctrl.markAsDirty();\r\n // ctrl.markAsTouched();\r\n // }\r\n\r\n if (!ctrl.valid)\r\n Utils.validateAllFormFields(ctrl);\r\n // }\r\n\r\n }\r\n\r\n //attachments\r\n preview($event, control: FormControl | AbstractControl) {\r\n const tgt = $event.target || window.event.srcElement,\r\n files = Array.isArray($event) ? $event : tgt.files;\r\n\r\n if (FileReader && files && files.length) {\r\n const fr = new FileReader();\r\n fr.onload = () => {\r\n if (fr.result.toString().length <= 2 * 2 ** 20)\r\n control.setValue(fr.result.toString());\r\n else\r\n alert('file limit is 2 MB.');\r\n };\r\n fr.readAsDataURL(files[0]);\r\n }\r\n else {\r\n //console.error('not supported!');\r\n }\r\n }\r\n\r\n fileDropped(file, control: FormControl | AbstractControl): void {\r\n control.setValue(file.url);\r\n }\r\n\r\n removeImage(control: FormControl | AbstractControl) {\r\n control.reset();\r\n control.markAsTouched();\r\n }\r\n\r\n onSubmit() {\r\n //console.log(this.form.value);\r\n\r\n if (!this.availableSerials || this.availableSerials.length == 0)\r\n return;\r\n\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n\r\n\r\n this.attachments.controls.forEach((grp, i) => {\r\n const _attachments = this.attachments.controls[i];\r\n for (let ctrl of Object.keys((grp).controls))\r\n if (this.attachments.controls[i].get(ctrl).value instanceof Object)\r\n this.attachments.controls[i].get(ctrl).setValue(this.attachments.controls[i].get(ctrl).value.changingThisBreaksApplicationSecurity)\r\n });\r\n // //console.log(this.attachments);\r\n\r\n //update checkboxes value\r\n this.vOptions.controls.forEach((ctrl, i) => {\r\n ctrl.setValue(this.vehicleOptions[i].key);\r\n });\r\n\r\n const cmd = new PostTripTikCmd(this.form.value);\r\n //console.log(cmd);\r\n\r\n if (!this.updateMode) {\r\n cmd.id = null;\r\n if (this.auth.currentUser.isInRole(Role.TRIPTIKS_CREATE))\r\n this.tripTiksService.create(cmd)\r\n .then(id => {\r\n if (id) {\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n setTimeout(() => {\r\n this.router.navigate(['/', this.translate.currentLang, 'issuing', 'trip-tiks', 'view', id])\r\n }, 1000);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n else {\r\n cmd.id = this.dto.id;\r\n if (this.auth.currentUser.isInRole(Role.TRIPTIKS_UPDATE))\r\n this.tripTiksService.update(cmd)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n\r\n setTimeout(() => {\r\n this.router.navigate(['/', this.translate.currentLang, 'issuing', 'trip-tiks', 'view', cmd.id])\r\n }, 1000);\r\n\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n stockTypeId: ['', [Validators.required]],\r\n serial: ['', [Validators.required]],\r\n steps: this.fb.array([\r\n this.fb.group({\r\n name: ['', [Validators.required, Validators.maxLength(35)]],\r\n residenceCountryId: [null, [Validators.required]],\r\n nationalityId: [null, [Validators.required]],\r\n identityID: ['', [Validators.required, passportIdOrIdentityIdValidator, Validators.minLength(6), Validators.maxLength(15)]],\r\n // _identityID: [''],\r\n passportID: ['', [Validators.required, passportIdOrIdentityIdValidator, Validators.minLength(6), Validators.maxLength(15)]],\r\n // _passportID: [''],\r\n localAddress: ['', [Validators.required, addressValidator]],\r\n localPhoneNumber: ['', [Validators.required, phoneNumberValidator]],\r\n intAddress: ['', [Validators.required, addressValidator]],\r\n intPhoneNumber: ['', [Validators.required, phoneNumberValidator]],\r\n drivers: this.fb.array([])\r\n }),\r\n this.fb.group({\r\n registrationCountryId: [null, [Validators.required]],\r\n plateID: ['', [Validators.required, Validators.maxLength(12)]],\r\n makeId: [null, [Validators.required]],\r\n modelId: [null, [Validators.required]],\r\n typeId: ['', [Validators.required]],\r\n seatsCount: ['', [Validators.required, vehicleSeatsCountRangeValidator]],\r\n manufactureYear: ['', [Validators.required, vehicleManufactureYearRangeValidator]],\r\n weightInKG: ['', [Validators.required, vehicleWeightInKGRangeValidator]],\r\n cylindersCount: ['', [Validators.required, vehicleCylindersCountRangeValidator]],\r\n horsePower: ['', [/*Validators.required, */vehicleHorsePowerRangeValidator]],\r\n //colorId: ['', [Validators.required]],\r\n colors: ['', [Validators.required]],\r\n upholsteryType: ['', [/*Validators.required*/]],\r\n engineID: ['', [nonArabicCharactersValidator]], //todo: regex\r\n chassisID: ['', [Validators.required, nonArabicCharactersValidator]], //todo: regex\r\n options: this.fb.array([]),\r\n spareTiresCount: [0],\r\n equipments: [''],\r\n extras: [''],\r\n value: ['', [Validators.required, vehicleValueRangeValidator]],\r\n currencyId: ['', [Validators.required]]\r\n }),\r\n this.fb.group({\r\n attachments: this.fb.array([\r\n this.fb.group({\r\n identityOrPassport: ['', [Validators.required]],\r\n drivingLicense: ['', [Validators.required]],\r\n vehicleRegistration: ['', [Validators.required]]\r\n })\r\n ])\r\n })\r\n ])\r\n })\r\n }\r\n\r\n private driverFormInit(data?: DriverForm) {\r\n this.drivers.push(this.fb.group({\r\n name: [data ? data.name : '', [Validators.required, Validators.maxLength(35)]],\r\n // _passportIDorIdentityID: this.fb.group({\r\n // ownerID: ['', [Validators.required, Validators.minLength(6)]], //todo: regex for password pattern\r\n // passwordConfirm: ['']\r\n // }, { validator: comparePasswords }),\r\n // passportIDorIdentityID: [data ? data.passportIDorIdentityID : '', [Validators.required, passportIdOrIdentityIdValidator, Validators.minLength(6), Validators.maxLength(15)]],\r\n passportIDorIdentityID: [data ? data.passportIDorIdentityID : '', [Validators.required, passportIdOrIdentityIdValidator, _passportIdOrIdentityIdValidator.bind(this, this.cPassportID, this.cIdentityID), Validators.minLength(6), Validators.maxLength(15)]],\r\n address: [data ? data.address : '', [Validators.required, addressValidator]],\r\n phoneNumber: [data ? data.phoneNumber : '', [Validators.required, phoneNumberValidator]]\r\n }));\r\n this.attachments.push(this.fb.group({\r\n identityOrPassport: [data && data.attachments ? data.attachments[0] : '', [Validators.required]],\r\n authorization: [data && data.attachments ? data.attachments[1] : '', [Validators.required]]\r\n }));\r\n }\r\n}\r\n\r\ninterface DriverForm {\r\n name: string,\r\n passportIDorIdentityID: string,\r\n address: string,\r\n phoneNumber: string,\r\n attachments: string[]\r\n}","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { merge, fromEvent } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\n\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { exportToExcel } from 'src/app/shared/helpers/export-to-excel';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { PrintObject } from 'src/app/core/models/enums/print-object';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal, UpdateModal } from 'src/app/shared/models/modal';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { CountriesService } from 'src/app/features/lookups/services/countries';\r\nimport { CountryDto } from 'src/app/features/lookups/models/country';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { AccountsService } from 'src/app/features/accounts/services/accounts.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { TripTiksDataSource } from '../../services/trip-tiks.datasource';\r\nimport { TripTiksService } from '../../services/trip-tiks.service';\r\nimport { TripTikDto } from '../../models/trip-tik';\r\nimport { PrintLogDto, PaginationQuery, TryRevokeDocumentCommand } from '../../../_shared/models/issuing.models';\r\nimport { StaticConfig } from 'src/app/features/lookups/services/config';\r\nimport { ConfigObject } from 'src/app/core/models/enums/config-object';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { VehicleTypesService } from 'src/app/features/lookups/services/vehicle-types';\r\nimport { VehicleMakesService } from 'src/app/features/lookups/services/vehicle-makes';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { IssuingService } from '../../../_shared/services/issuing.service';\r\nimport { ThemeService } from 'ng2-charts';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\nimport { AccountType } from 'src/app/core/models/enums/account-type';\r\nimport { VehicleModelsService } from 'src/app/features/lookups/services/vehicle-models';\r\n\r\n@Component({\r\n selector: 'mac-trip-tiks',\r\n templateUrl: './trip-tiks.component.html',\r\n styleUrls: ['./trip-tiks.component.scss'],\r\n providers: [\r\n TripTiksService,\r\n IssuingService,\r\n CountriesService,\r\n AccountsService,\r\n StockTypesService,\r\n VehicleMakesService,\r\n VehicleModelsService,\r\n VehicleTypesService\r\n ]\r\n})\r\nexport class TripTiksComponent implements OnInit {\r\n moment = moment;\r\n displayedColumns: string[] = ['serial', 'cName', 'cPhoneNumber', 'vPlateID', 'stockType', 'accountTitles', 'issueDate'/*, 'printings'*/, 'tools'];\r\n dataSource: TripTiksDataSource;\r\n lang: Language;\r\n advancedSearchMode: boolean;\r\n countries: CountryDto[] = [];\r\n accounts: LookupDto[] = [];\r\n searchForm: FormGroup;\r\n activeFilters: boolean;\r\n vehicleManufactureYearRange: number[] = [];\r\n vehicleMakes: LookupDto[] = [];\r\n vehicleModels: LookupDto[] = [];\r\n vehicleTypes: LookupDto[] = [];\r\n stockTypes: StockTypeDto[] = [];\r\n query: any = null;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('filter', { static: true }) filter: ElementRef;\r\n @ViewChild('filterBtn') filterBtn: ElementRef;\r\n\r\n get Role() { return Role; };\r\n get Gender() { return Gender; };\r\n get PrintObject() { return PrintObject; };\r\n get Object() { return Object; };\r\n get fromDate() { return this.searchForm.get('fromDate'); };\r\n get toDate() { return this.searchForm.get('toDate'); };\r\n get Math() { return Math; };\r\n\r\n constructor(private loader: LoadingService,\r\n private tripTiksService: TripTiksService,\r\n private issuingService: IssuingService,\r\n public translate: TranslateService,\r\n private confirmService: ConfirmService,\r\n private alert: AlertService,\r\n public auth: AuthService,\r\n private fb: FormBuilder,\r\n private countriesService: CountriesService,\r\n private accountsService: AccountsService,\r\n private stockTypesService: StockTypesService,\r\n private vehicleMakesService: VehicleMakesService,\r\n private vehicleModelsService: VehicleModelsService,\r\n private vehicleTypesService: VehicleTypesService,\r\n private router: Router,\r\n private route: ActivatedRoute) { }\r\n\r\n async ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n //accounts\r\n //if system account, accounts will be fetched from server, otherwise current account details will be fetched from local auth service\r\n\r\n if (this.auth.currentUser.isSystemAccount || this.auth.currentUser.accountTypeId == AccountType.ReleaseCenter) {\r\n this.accountsService.getChildrenAccountsLookup(!this.auth.currentUser.isSystemAccount ? this.auth.currentUser.accountId : 0, false)\r\n .then(result => {\r\n this.accounts = result.list;//populateAccountsSelect(result.list);\r\n }).catch(e => this.searchForm.get('accountId').disable());\r\n } else {\r\n this.accounts = [{ id: this.auth.currentUser.accountId, titles: [this.auth.currentUser.accountTitles[this.lang]] }];\r\n this.searchForm.patchValue({ accountId: this.auth.currentUser.accountId });\r\n this.searchForm.get('accountId').disable();\r\n }\r\n\r\n const startYearConfig = StaticConfig.getConfigKeyValuePairs(ConfigObject.VehicleManufactureYearRange);\r\n this.vehicleManufactureYearRange = Utils.spreadRange([Number(startYearConfig[0].value), (new Date().getUTCFullYear() + 1)], true);\r\n\r\n //console.warn(this.route.snapshot.queryParams);\r\n this.route.queryParamMap.subscribe(p => {\r\n //console.warn(p);\r\n\r\n if (!p.has('pageIndex')) {\r\n //console.warn('ready to reload!');\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.filter.nativeElement.value = '';\r\n this.paginator.page.emit({ pageIndex: 0, pageSize: this.paginator.pageIndex, length: this.paginator.length });\r\n }\r\n });\r\n\r\n //let query = null;\r\n if (this.route.snapshot.queryParams.query) {\r\n this.query = this.route.snapshot.queryParams.query;\r\n this.filter.nativeElement.value = this.query;\r\n }\r\n else if (this.route.snapshot.queryParams.accountId\r\n || this.route.snapshot.queryParams.fromDate\r\n || this.route.snapshot.queryParams.toDate\r\n || this.route.snapshot.queryParams.stockTypeId\r\n || this.route.snapshot.queryParams.cResidenceCountryId\r\n || this.route.snapshot.queryParams.cIdentityOrPassportID\r\n || this.route.snapshot.queryParams.cPhoneNumber\r\n || this.route.snapshot.queryParams.vPlateID\r\n || this.route.snapshot.queryParams.vTypeId\r\n || this.route.snapshot.queryParams.vMakeId\r\n || this.route.snapshot.queryParams.vModelId\r\n || this.route.snapshot.queryParams.vChassisID\r\n || this.route.snapshot.queryParams.vManufactureYear\r\n || this.route.snapshot.queryParams.cName\r\n || this.route.snapshot.queryParams.vRegistrationCountryId\r\n || this.route.snapshot.queryParams.serial\r\n || this.route.snapshot.queryParams.isIssued\r\n || this.route.snapshot.queryParams.isDamaged) {\r\n this.activeFilters = true;\r\n this.searchForm.patchValue(this.route.snapshot.queryParams);\r\n\r\n //fix int for ng-select\r\n this.searchForm.patchValue({ accountId: !isNaN(this.route.snapshot.queryParams.accountId) ? parseInt(this.route.snapshot.queryParams.accountId) : null });\r\n this.searchForm.patchValue({ cResidenceCountryId: !isNaN(this.route.snapshot.queryParams.cResidenceCountryId) ? parseInt(this.route.snapshot.queryParams.cResidenceCountryId) : null });\r\n this.searchForm.patchValue({ vMakeId: !isNaN(this.route.snapshot.queryParams.vMakeId) ? parseInt(this.route.snapshot.queryParams.vMakeId) : null });\r\n this.searchForm.patchValue({ vModelId: !isNaN(this.route.snapshot.queryParams.vModelId) ? parseInt(this.route.snapshot.queryParams.vModelId) : null });\r\n // this.searchForm.patchValue({ vRegistrationCountryId: !isNaN(this.route.snapshot.queryParams.vRegistrationCountryId) ? parseInt(this.route.snapshot.queryParams.vRegistrationCountryId) : null });\r\n\r\n //multi-select\r\n let _vRegistrationCountryId;\r\n if (this.route.snapshot.queryParams.vRegistrationCountryId && this.route.snapshot.queryParams.vRegistrationCountryId.indexOf(',') > -1)\r\n _vRegistrationCountryId = this.route.snapshot.queryParams.vRegistrationCountryId.split(',');\r\n else if (this.route.snapshot.queryParams.vRegistrationCountryId)\r\n _vRegistrationCountryId = [this.route.snapshot.queryParams.vRegistrationCountryId];\r\n\r\n if (_vRegistrationCountryId)\r\n this.searchForm.patchValue({ vRegistrationCountryId: _vRegistrationCountryId.map(x => parseInt(x)) });\r\n\r\n this.query = this.searchForm.value;\r\n }\r\n\r\n this.fetchData(this.query);\r\n\r\n await Promise.all([\r\n this.stockTypesService.getAllowed()\r\n .then(result => this.stockTypes = result.list.filter(x => x.documentType == _DocumentType.TripTikDocument)),\r\n this.countriesService.get(this.lang)\r\n .then(result => this.countries = result.list),\r\n this.vehicleMakesService.get(this.lang)\r\n .then(result => this.vehicleMakes = result.list),\r\n this.onSelectVehicleMake(this.searchForm.get('vMakeId').value),\r\n this.vehicleTypesService.get(this.lang)\r\n .then(result => this.vehicleTypes = result.list)\r\n ]);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n ).subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => {\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction },\r\n this.advancedSearchMode || this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim())\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n merge(fromEvent(this.filter.nativeElement, 'search'), fromEvent(this.filterBtn.nativeElement, 'click'))\r\n .pipe(\r\n tap(() => {\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.searchForm.reset();\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, this.filter.nativeElement.value.trim())\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n this.dataSource.connect()\r\n .subscribe(() => {\r\n let pagination: PaginationQuery = { pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction };\r\n let query = this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim();\r\n this.query = query;\r\n\r\n if (typeof query == 'object') {\r\n query.vRegistrationCountryId = query.vRegistrationCountryId ? query.vRegistrationCountryId.toString() : null;\r\n }\r\n\r\n if (this.activeFilters)\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, ...query }, replaceUrl: true });\r\n else\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, query }, replaceUrl: true });\r\n });\r\n }\r\n\r\n fetchData(query) {\r\n this.paginator.pageIndex = this.route.snapshot.queryParams.pageIndex ? this.route.snapshot.queryParams.pageIndex : 0;\r\n this.paginator.pageSize = this.route.snapshot.queryParams.pageSize ? this.route.snapshot.queryParams.pageSize : 25;\r\n this.sort.active = this.route.snapshot.queryParams.sort ? this.route.snapshot.queryParams.sort : 'created';\r\n this.sort.direction = this.route.snapshot.queryParams.dir ? this.route.snapshot.queryParams.dir : 'desc';\r\n this.dataSource = new TripTiksDataSource(this.tripTiksService, this.loader);\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, query);\r\n }\r\n\r\n toggleAdvancedSearch() {\r\n this.advancedSearchMode = !this.advancedSearchMode;\r\n this.filter.nativeElement.value = '';\r\n }\r\n\r\n filterList(list: PrintLogDto[], printObject: PrintObject) {\r\n return list.filter(l => l.printObject == printObject)\r\n }\r\n\r\n printObjectsCount(list: PrintLogDto[], printObject: PrintObject) {\r\n return list.filter(l => l.printObject == printObject).length;\r\n }\r\n\r\n delete(dto: TripTikDto) {\r\n if (dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.TRIPTIKS_DELETE))\r\n return;\r\n\r\n //confirm if not yet issued\r\n if (!dto.issued) {\r\n let modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'TRP_TITLE_TRIPTIK',\r\n title: `${dto.serial.toString()}/${dto.cName}`,\r\n note: 'TRP_CONFIRM_DELETE_NOTE'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this._delete(dto.id);\r\n });\r\n }\r\n }\r\n\r\n tryRevoke(dto: TripTikDto) {\r\n if (dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.TRIPTIKS_REVOKE_REQUESTS_CREATE))\r\n return;\r\n\r\n let modal;\r\n //try-revoke\r\n //try-revoke confirm if issued && permited to try-revoke\r\n if (!dto.revokeRequestId) {\r\n modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'ISS_TITLE_DOCUMENT_REVOKE_REQUEST',\r\n title: `${dto.stockType.titles[0]} / ${dto.serial.toString()}`,\r\n action: '_ACTION_REQUEST2',\r\n submitText: '_ACTION_REQUEST2',\r\n confirmQuestion: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_CONFIRMATION_QUESTION',\r\n note: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_NOTE',\r\n dangerNote: ' ',\r\n inputNote: 'ISS_TITLE_DOCUMENT_REVOKE_REQUEST_REASON',\r\n requestType: true,\r\n attachment: '_TITLE_ATTACHMENTS'\r\n }));\r\n } else {\r\n //cancel\r\n modal = this.confirmService.confirm(new UpdateModal({\r\n type: 'ISS_TITLE_DOCUMENT_REVOKE_REQUEST',\r\n title: `${dto.stockType.titles[0]} / ${dto.serial.toString()}`,\r\n action: '_ACTION_REVOKE_REQUEST_CANCEL',\r\n submitText: '_ACTION_REVOKE_REQUEST_CANCEL',\r\n confirmQuestion: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_CANCEL_CONFIRMATION_QUESTION',\r\n note: 'ISS_DOCUMENT_REVOKE_REQUEST_CONFIRM_REQUEST_CANCEL_NOTE',\r\n dangerNote: ' '\r\n }));\r\n }\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n (!dto.revokeRequestId) ?\r\n this._tryRevoke(dto.id, dto.stockType.id, m[1])\r\n : this._cancelTryRevoke(dto.revokeRequestId)\r\n }\r\n });\r\n }\r\n\r\n async onSelectVehicleMake(id?: number) {\r\n // //console.log(id);\r\n this.searchForm.get('vModelId').disable();\r\n const obj: LookupDto = { id: 0, titles: [this.translate.instant(\"_LABEL_ALL\")] };\r\n const arr = id ? await (await this.vehicleModelsService.get(id, null, this.lang)).list\r\n : [];\r\n this.vehicleModels = [obj, ...arr];\r\n this.searchForm.get('vModelId').enable();\r\n if (!this.searchForm.get('vModelId').value)\r\n this.searchForm.get('vModelId').setValue(this.vehicleModels[0].id);\r\n }\r\n\r\n private _tryRevoke(objectId: string, stockTypeId: number, attributes: any/*, reason: string*/) {\r\n const reason = attributes.inputNote,\r\n isDamaged = attributes.isDamaged == \"true\",\r\n attachment = attributes.attachment;\r\n\r\n const cmd: TryRevokeDocumentCommand = { id: objectId, stockTypeId, reason, isDamaged, attachment }\r\n ////console.log(cmd);\r\n this.loader.load(LoaderType.Body);\r\n this.issuingService.tryRevokeDocument(cmd)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.REQUESTING);\r\n const i = this.dataSource.TripTiksSubject.value.findIndex(i => i.id == objectId);\r\n this.dataSource.TripTiksSubject.value[i].revokeRequestId = result;\r\n this.dataSource.TripTiksSubject.next(this.dataSource.TripTiksSubject.value);\r\n\r\n } else this.alert.failure(DefaultAlertAction.REQUESTING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private _cancelTryRevoke(id: number) {\r\n this.loader.load(LoaderType.Body);\r\n this.issuingService.cancelTryRevokeDocument(id)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.REVOKE_REQUESTING_CANCEL);\r\n const i = this.dataSource.TripTiksSubject.value.findIndex(i => i.revokeRequestId == id);\r\n this.dataSource.TripTiksSubject.value[i].revokeRequestId = null;\r\n this.dataSource.TripTiksSubject.next(this.dataSource.TripTiksSubject.value);\r\n\r\n } else this.alert.failure(DefaultAlertAction.REVOKE_REQUESTING_CANCEL);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private _delete(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.tripTiksService.delete(id)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n this.dataSource.TripTiksSubject.next(this.dataSource.TripTiksSubject.value.filter(d => d.id != id));\r\n this.dataSource.countSubject.next(this.dataSource.countSubject.value - 1);\r\n\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)\r\n this.tripTiksService[(this.query == null || typeof this.query == 'string') ? 'getAll' : 'search']({ pageIndex: 0, pageSize: this.paginator.length, sort: this.sort.active, dir: this.sort.direction }, this.query)\r\n .toPromise()\r\n .then(data => {\r\n this.exportToExcel(data.list);\r\n }).finally(() => this.loader.load(LoaderType.Body, false));\r\n else\r\n this.dataSource.connect().subscribe(data => {\r\n this.exportToExcel(data);\r\n this.loader.load(LoaderType.Body, false);\r\n }).unsubscribe();\r\n }\r\n\r\n private exportToExcel(data: TripTikDto[]) {\r\n const wscols = [\r\n { width: 12 },\r\n { width: 28 },\r\n { width: 12 },\r\n { width: 18 },\r\n { width: 24 },\r\n { width: 28 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 }\r\n ];\r\n const autofilter = { ref: 'A1:J1' };\r\n const rows: string[][] = [];\r\n\r\n const headers = [\r\n this.translate.instant('_LABEL_SERIAL'),\r\n this.translate.instant('_FIELD_NAME'),\r\n this.translate.instant('_FIELD_PHONE_NO'),\r\n this.translate.instant('TRP_FIELD_PLATE_ID'),\r\n this.translate.instant('TRP_FIELD_TRIPTIK_TYPE'),\r\n this.translate.instant('ACC_FIELD_ACCOUNT_TITLE'),\r\n this.translate.instant('ISS_LABEL_ISSUE_DATE'),\r\n this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('TRP_LABEL_PRINT_OBJECT_FRONT_COVER') }),\r\n this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('TRP_LABEL_PRINT_OBJECT_INNER_PAGES') }),\r\n this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('TRP_LABEL_PRINT_OBJECT_BACK_COVER') })\r\n ];\r\n\r\n rows.push(headers);\r\n for (let row of data) {\r\n rows.push([\r\n row.serial.toString(),\r\n row.cName ? row.cName : 'N/A',\r\n row.cPhoneNumber ? row.cPhoneNumber : 'N/A',\r\n row.vPlateID ? row.vPlateID : 'N/A',\r\n row.stockType.titles[0],\r\n row.accountTitles[0],\r\n row.issued ? moment(row.issued).format('DD/MM/YYYY') : '',\r\n this.printObjectsCount(row.printLogs, PrintObject.TripTikFrontCover).toString(),\r\n this.printObjectsCount(row.printLogs, PrintObject.TripTikInnerPages).toString(),\r\n this.printObjectsCount(row.printLogs, PrintObject.TripTikBackCover).toString()\r\n ]);\r\n }\r\n ////console.log(rows);\r\n setTimeout(() => {\r\n exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'Trip-Tiks');\r\n\r\n }, 1000);\r\n\r\n\r\n }\r\n\r\n onSubmit() {\r\n if (this.fromDate.value && typeof this.fromDate.value == 'object')\r\n this.fromDate.setValue(Utils.convertToServerDateTimeString(this.fromDate.value));\r\n\r\n if (this.toDate.value && typeof this.toDate.value == 'object')\r\n this.toDate.setValue(Utils.convertToServerDateTimeString(this.toDate.value));\r\n\r\n //swap dates\r\n if (this.fromDate.value && this.toDate.value && new Date(this.fromDate.value) > new Date(this.toDate.value)) {\r\n let _temp = this.fromDate.value;\r\n this.fromDate.setValue(this.toDate.value);\r\n this.toDate.setValue(_temp);\r\n }\r\n\r\n this.activeFilters = true;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n resetSearch() {\r\n this.advancedSearchMode = false;\r\n if (this.activeFilters) {\r\n this.activeFilters = false;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n this.activeFilters = false;\r\n\r\n setTimeout(() => {\r\n this.searchForm.reset();\r\n this.query = null;\r\n }, 500);\r\n }\r\n\r\n private formInit() {\r\n this.searchForm = this.fb.group({\r\n cName: [''], //regex to match english letters only\r\n cPhoneNumber: [''], //regex to match numbers only\r\n accountId: [null],\r\n serial: [''], //regex to match numbers only\r\n fromDate: [''],\r\n toDate: [''],\r\n stockTypeId: [''],\r\n cResidenceCountryId: [null],\r\n cIdentityOrPassportID: [''],\r\n vPlateID: [''],\r\n vRegistrationCountryId: [null],\r\n vTypeId: [''],\r\n vMakeId: [null],\r\n vModelId: [null],\r\n vChassisID: [''],\r\n vManufactureYear: [''],\r\n isIssued: [''],\r\n isDamaged: ['']\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\nimport { TripTikVm, TripTikDetailsDto } from '../../models/trip-tik';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\nimport { TripTiksService } from '../../services/trip-tiks.service';\r\nimport { PrintObject } from 'src/app/core/models/enums/print-object';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { UpdateModal } from 'src/app/shared/models/modal';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { TripTikPrintComponent } from '../../components/trip-tik-print/trip-tik-print.component';\r\nimport { ConfigObject } from 'src/app/core/models/enums/config-object';\r\nimport { ReceiptPrintComponent } from '../../components/receipt-print/receipt-print.component';\r\nimport { StaticConfig } from 'src/app/features/lookups/services/config';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { PrintLogDto } from '../../../_shared/models/issuing.models';\r\nimport { StringJoinPipe } from 'src/app/shared/pipes/string-join.pipe';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\n\r\n@Component({\r\n selector: 'mac-view-trip-tik',\r\n templateUrl: './view-trip-tik.component.html',\r\n styleUrls: ['./view-trip-tik.component.scss'],\r\n providers: [TripTiksService, FileLoaderService]\r\n})\r\nexport class ViewTripTikComponent implements OnInit {\r\n cashedVm: TripTikVm;\r\n dto: TripTikDetailsDto = new TripTikDetailsDto();\r\n moment = moment;\r\n lang: Language;\r\n dateFormat = 'L';\r\n qRCodeImg: string = 'assets/images/qr.png';\r\n qRCodeUrl: string = '';\r\n maxPrintLimit: number;\r\n empty: string;\r\n drivers = [];\r\n vUpholsteryType: string[];\r\n vOptions: LookupDto[] = [];\r\n attachments: { title: string, parent: string, src: string }[] = [];\r\n confirmed: boolean;\r\n defaultImage = 'assets/images/default.jpg';\r\n\r\n @ViewChild('printElm') printElm: TripTikPrintComponent;\r\n @ViewChild('receiptPrintElm') receiptPrintElm: ReceiptPrintComponent;\r\n\r\n get PrintObject() { return PrintObject; };\r\n get Role() { return Role; };\r\n get Language() { return Language; };\r\n get ConfigObject() { return ConfigObject; };\r\n get Math() { return Math; };\r\n\r\n constructor(private route: ActivatedRoute,\r\n private tripTiksService: TripTiksService,\r\n private loader: LoadingService,\r\n public translate: TranslateService,\r\n private fileLoader: FileLoaderService,\r\n private confirmService: ConfirmService,\r\n private stringJoin: StringJoinPipe,\r\n public auth: AuthService,\r\n private router: Router) { }\r\n\r\n async ngOnInit() {\r\n moment.locale('en-gb');\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.maxPrintLimit = Number(StaticConfig.getConfigKeyValuePairs(ConfigObject.TripTikMaxPrintLimit)[0].value);\r\n this.empty = '';//StaticConfig.getConfigKeyValuePairs(ConfigObject.TripTikPrintEmptyValue)[0].value.toString();\r\n\r\n const tripTikId = this.route.snapshot.paramMap.get('id');\r\n if (tripTikId) {\r\n this.tripTiksService.get(tripTikId)\r\n .then(async result => {\r\n //console.log(result);\r\n if (result.item) {\r\n this.dto = result.item;\r\n this.drivers = this.dto.customer.drivers.map(d => d.name);\r\n\r\n if (this.dto.vehicle.upholsteryType)\r\n this.vUpholsteryType = <[]>StaticConfig.getConfigValue(ConfigObject.VehicleUpholsteryTypes, this.dto.vehicle.upholsteryType);\r\n\r\n if (this.dto.vehicle.options) {\r\n this.vOptions = [];\r\n this.dto.vehicle.options.forEach(opt => {\r\n this.vOptions.push({ id: opt, titles: <[]>StaticConfig.getConfigValue(ConfigObject.VehicleOptions, opt/*, this.lang*/) });\r\n });\r\n }\r\n\r\n //console.log(this.vUpholsteryType, this.vOptions);\r\n\r\n //console.log(this.dto);\r\n this.fetchAttachments();\r\n\r\n if (this.dto.issued && this.dto.hashedSerial) {\r\n this.qRCodeUrl = Utils.generateQrCodeUrl(this.dto.hashedSerial);\r\n setTimeout(() => {\r\n this.qRCodeImg = document.getElementsByTagName('ngx-kjua')[0]\r\n .getElementsByTagName('div')[0]\r\n //.getElementsByTagName('img')[0].src;\r\n .getElementsByTagName('canvas')[0].toDataURL(\"image/png\");\r\n\r\n //console.log(this.qRCodeImg);\r\n });\r\n\r\n //console.log(this.qRCodeUrl);\r\n }\r\n\r\n if (this.isPrintable())\r\n this.displayPreview();\r\n } else this.router.navigate([`/${this.translate.currentLang}/not-found`]);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n }\r\n\r\n isPrintable() {\r\n return !this.dto.isMigratedData && (!this.dto.issued\r\n || this.printObjectsCount(this.dto.printLogs, PrintObject.TripTikFrontCover) < this.maxPrintLimit\r\n || this.printObjectsCount(this.dto.printLogs, PrintObject.TripTikBackCover) < this.maxPrintLimit\r\n || this.printObjectsCount(this.dto.printLogs, PrintObject.TripTikInnerPages) < this.maxPrintLimit)\r\n }\r\n\r\n isExpired(expiryDate) {\r\n return moment(expiryDate).isBefore(Date.now());\r\n }\r\n\r\n printObjectsCount(list: PrintLogDto[], printObject: PrintObject) {\r\n if (list)\r\n return list.filter(l => l.printObject == printObject).length;\r\n }\r\n\r\n print(printObject: PrintObject) {\r\n if (printObject == PrintObject.TriptikReceipt) {\r\n\r\n this.receiptPrintElm.print(this.dto);\r\n return;\r\n }\r\n\r\n if (this.dto.accountId != this.auth.currentUser.accountId\r\n || !this.auth.currentUser.isInRole(Role.TRIPTIKS_UPDATE)\r\n || this.dto.serial < 0)\r\n return;\r\n\r\n //confirm if not yet issued\r\n if (!this.dto.issued) {\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n title: this.dto.serial.toString(),\r\n type: 'TRP_TITLE_TRIPTIK',\r\n action: '_ACTION_ISSUE',\r\n confirmQuestion: 'TRP_CONFIRM_ISSUE_CONFIRMATION_QUESTION',\r\n note: 'TRP_CONFIRM_ISSUE_NOTE',\r\n dangerNote: 'TRP_CONFIRM_ISSUE_DANGER_NOTE',\r\n submitText: '_ACTION_ISSUE'\r\n }));\r\n\r\n modal.then(async m => {\r\n //console.log(m);\r\n if (m.indexOf('CONFIRMED') > -1)\r\n await this._print(printObject);\r\n });\r\n } else this._print(printObject);\r\n }\r\n\r\n private fetchAttachments() {\r\n this.dto.customer.owner.attachments.forEach((att, i) => {\r\n const _title = i == 0 ? 'TRP_FIELD_PASSPORT_COPY'\r\n : i == 1 ? 'TRP_FIELD_IDENTITY_COPY' : 'TRP_FIELD_VREGISTRATION_COPY';\r\n this.attachments.push({ title: _title, parent: 'TRP_LABEL_OWNER', src: att });\r\n });\r\n\r\n this.dto.customer.drivers.forEach((driver, i) => {\r\n driver.attachments.forEach((att, _i) => {\r\n const _title = _i == 0 ? 'TRP_FIELD_PASSPORT_COPY' : 'TRP_FIELD_DRIVING_LICENSE_COPY';\r\n this.attachments.push({ title: _title, parent: `${this.translate.instant('TRP_LABEL_ADDITIONAL_DRIVER')} ${i + 1}`, src: att });\r\n });\r\n });\r\n\r\n this.attachments.forEach(async att => {\r\n const file = await this.fileLoader.loadAsync(att.src);\r\n att.src = file ? file as string : this.defaultImage;\r\n });\r\n }\r\n\r\n\r\n async _print(printObject: PrintObject) {\r\n if (this.printObjectsCount(this.dto.printLogs, printObject) < this.maxPrintLimit) {\r\n this.loader.load(LoaderType.Body);\r\n //request to server print\r\n this.tripTiksService.print({ id: this.dto.id, printObject })\r\n .then(async (hash) => {\r\n ////console.log(hash);\r\n\r\n //just issued\r\n if (hash && hash.value) {\r\n this.dto.hashedSerial = hash.value\r\n //this.qRCodeUrl = `${this._baseUrl}/verify-license/${this.dto.hashedSerial}`;\r\n this.qRCodeUrl = Utils.generateQrCodeUrl(this.dto.hashedSerial);\r\n setTimeout(() => {\r\n this.qRCodeImg = document.getElementsByTagName('ngx-kjua')[0]\r\n .getElementsByTagName('div')[0]\r\n //.getElementsByTagName('img')[0].src;\r\n .getElementsByTagName('canvas')[0].toDataURL(\"image/png\");\r\n });\r\n\r\n this.dto.issued = new Date();\r\n this.dto.expiryDate = moment(this.dto.issued).add(1, 'year').subtract(1, 'day').toDate();\r\n }\r\n\r\n //increment print objects\r\n this.dto.printLogs.push({ created: new Date(), printObject: printObject });\r\n\r\n //update ui\r\n await this.displayPreview();\r\n\r\n //open printing object\r\n await this.printElm.print(this.dto, printObject);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n }\r\n\r\n //get stringJoin.transform() { return Utils.stringJoin.transform; };\r\n\r\n private async displayPreview() {\r\n const _expiryDate = this.dto.issued ? moment(this.dto.expiryDate).format(this.dateFormat)\r\n : moment(new Date()).add(1, 'year').subtract(1, 'day').format(this.dateFormat);\r\n\r\n const cOwnerInfo = [this.dto.customer.owner.name, this.dto.customer.owner.address.item1, this.dto.customer.owner.address.item2]\r\n .filter(d => d);\r\n\r\n //front-cover\r\n let fcCanvas = document.getElementById('trip-fc-canvas') as HTMLCanvasElement;\r\n if (fcCanvas.getContext) {\r\n let ctx = fcCanvas.getContext('2d');\r\n\r\n const fcImage = new Image();\r\n\r\n fcImage.onload = () => {\r\n ctx.textAlign = 'end';\r\n ctx.font = `bold ${Utils.convertToPixel(4)}px arial`;\r\n ctx.drawImage(fcImage, 0, 0);\r\n\r\n let x = Utils.convertToPixel(100), y = Utils.convertToPixel(26);\r\n const rh = Utils.convertToPixel(6);\r\n\r\n ctx.fillText(this.dto.customer.owner.name ? this.dto.customer.owner.name : 'N/A', x, y);\r\n // ctx.fillText(this.dto.customer.owner.address.item1 ? this.dto.customer.owner.address.item1 : 'N/A', x, y += rh);\r\n // ctx.fillText(this.dto.customer.owner.address.item2 ? this.dto.customer.owner.address.item2 : 'N/A', x, y += rh);\r\n if (this.dto.customer.drivers && this.dto.customer.drivers.length > 0) {\r\n this.dto.customer.drivers.forEach(driver => {\r\n ctx.fillText(`سائق إضافي: ${driver.name}`, x, y += rh);\r\n });\r\n }\r\n\r\n\r\n //todo: check second line margin, even with align-right\r\n\r\n ctx.textAlign = 'center';\r\n ctx.fillText('12 Months', Utils.convertToPixel(160), Utils.convertToPixel(18));\r\n ctx.fillText(_expiryDate, Utils.convertToPixel(160), Utils.convertToPixel(26));\r\n ctx.fillText(this.dto.vehicle.registrationCountryTitles ? this.stringJoin.transform(this.dto.vehicle.registrationCountryTitles) : 'N/A', Utils.convertToPixel(70), Utils.convertToPixel(112));\r\n ctx.fillText(this.dto.vehicle.plateID ? this.dto.vehicle.plateID : 'N/A', Utils.convertToPixel(170), Utils.convertToPixel(112));\r\n\r\n const qr = new Image();\r\n qr.onload = () => {\r\n ctx.drawImage(qr, Utils.convertToPixel(8), Utils.convertToPixel(66), 88, 88);\r\n }\r\n qr.src = this.dto.issued ? this.qRCodeImg : 'assets/images/qr.png';\r\n\r\n const ptt = new Image();\r\n ptt.onload = () => {\r\n ctx.save();\r\n ctx.globalAlpha = 0.15;\r\n const ptrn = ctx.createPattern(ptt, 'repeat');\r\n ctx.fillStyle = ptrn;\r\n ctx.fillRect(0, 0, Utils.convertToPixel(210), Utils.convertToPixel(297));\r\n ctx.restore();\r\n\r\n //draw thumb\r\n let fcCanvasThumb = document.getElementById('trip-fc-canvas-thumb') as HTMLCanvasElement;\r\n if (fcCanvasThumb.getContext) {\r\n let bcThumbCtx = fcCanvasThumb.getContext('2d');\r\n bcThumbCtx.drawImage(ctx.canvas, 0, 0);\r\n }\r\n }\r\n ptt.src = 'assets/images/sample-stamp.png';\r\n }\r\n fcImage.src = 'assets/images/trip-front-cover-preview.jpg';\r\n }\r\n\r\n //inner-page\r\n let ipCanvas = document.getElementById('trip-ip-canvas') as HTMLCanvasElement;\r\n if (ipCanvas.getContext) {\r\n let ctx = ipCanvas.getContext('2d');\r\n\r\n const ipImage = new Image();\r\n\r\n ipImage.onload = () => {\r\n ctx.textAlign = 'center';\r\n ctx.font = `bold ${Utils.convertToPixel(4)}px arial`;\r\n ctx.drawImage(ipImage, 0, 0);\r\n\r\n let x = Utils.convertToPixel(65), y = Utils.convertToPixel(26);\r\n const rh = Utils.convertToPixel(5.5);\r\n\r\n ctx.fillText(this.dto.vehicle.registrationCountryTitles ? this.stringJoin.transform(this.dto.vehicle.registrationCountryTitles) : 'N/A', x, y);\r\n\r\n\r\n // ctx.fillText(this.dto.vehicle.make ? this.stringJoin.transform(this.dto.vehicle.make.titles) : 'N/A', x, y += rh);\r\n\r\n\r\n if (this.dto.vehicle.model) {\r\n let makeModel: string[][] = [];\r\n makeModel[0] = [this.dto.vehicle.model.titles[0], this.dto.vehicle.make.titles[0]];\r\n makeModel[1] = [this.dto.vehicle.model.titles[1], this.dto.vehicle.make.titles[1]];\r\n\r\n ctx.fillText(this.dto.vehicle.make ? this.stringJoin.transform(makeModel.map(d => this.stringJoin.transform(d)), '/') : 'N/A', x, y += rh);\r\n }\r\n else\r\n ctx.fillText(this.dto.vehicle.make ? this.stringJoin.transform(this.dto.vehicle.make.titles) : 'N/A', x, y += rh);\r\n\r\n\r\n\r\n ctx.fillText(this.dto.vehicle.manufactureYear ? this.dto.vehicle.manufactureYear.toString() : 'N/A', x, y += rh);\r\n ctx.fillText(this.dto.vehicle.chassisID ? this.dto.vehicle.chassisID : 'N/A', x, y += rh);\r\n ctx.fillText(this.dto.vehicle.engineID ? this.dto.vehicle.engineID : this.empty, x, y += rh);\r\n ctx.fillText(this.dto.vehicle.cylindersCount ? this.dto.vehicle.cylindersCount.toString() : 'N/A', x, y += rh);\r\n //ctx.fillText(this.dto.vehicle.color ? this.stringJoin.transform(this.dto.vehicle.color.titles) : 'N/A', x, y += rh);\r\n ctx.fillText(this.dto.vehicle.colors ? this.stringJoin.transform(this.dto.vehicle.colors.map(d => this.stringJoin.transform(d.titles)), '+') : 'N/A', x, y += rh);\r\n\r\n ctx.fillText(this.dto.vehicle.type ? this.stringJoin.transform(this.dto.vehicle.type.titles) : this.empty, x, y += rh);\r\n ctx.fillText(this.dto.vehicle.horsePower ? this.dto.vehicle.horsePower.toString() : this.empty, x, y += rh);\r\n\r\n x = Utils.convertToPixel(160);\r\n y = Utils.convertToPixel(26);\r\n\r\n ctx.fillText(this.dto.vehicle.plateID ? this.dto.vehicle.plateID : 'N/A', x, y);\r\n ctx.fillText(this.dto.vehicle.seatsCount ? this.dto.vehicle.seatsCount.toString() : 'N/A', x, y += rh);\r\n ctx.fillText(this.dto.vehicle.spareTiresCount.toString(), x, y += rh);\r\n //ctx.fillText(this.vOptions ? this.vOptions.join(' + ') : this.empty, x, y += rh);\r\n ctx.fillText(this.vOptions ? this.stringJoin.transform(this.vOptions.map(d => this.stringJoin.transform(d.titles)), '+') : this.empty, x, y += rh);\r\n\r\n ctx.fillText(this.vUpholsteryType ? this.stringJoin.transform(this.vUpholsteryType) : this.empty, x, y += rh);\r\n ctx.fillText(this.dto.vehicle.equipments ? this.dto.vehicle.equipments : this.empty, x, y += rh);\r\n ctx.fillText(this.dto.vehicle.extras ? this.dto.vehicle.extras : this.empty, x, y += rh);\r\n ctx.fillText(this.dto.vehicle.weightInKG ? this.dto.vehicle.weightInKG.toString() : 'N/A', x, y += rh);\r\n ctx.fillText(`${this.dto.vehicle.currency ? this.dto.vehicle.currency.abbreviation : ''} ${this.dto.vehicle.value ? this.dto.vehicle.value.toString() : 'N/A'}`, x, y += rh); //todo: include currency\r\n\r\n ctx.fillText(cOwnerInfo.join(', '), Utils.convertToPixel(65), Utils.convertToPixel(15));\r\n ctx.fillText(this.drivers.join(', '), Utils.convertToPixel(160), Utils.convertToPixel(15));\r\n\r\n ctx.textAlign = 'left';\r\n ctx.font = `bold ${Utils.convertToPixel(6)}px consolas`;\r\n ctx.fillText(Math.abs(this.dto.serial).toString(), Utils.convertToPixel(138), Utils.convertToPixel(81.5));\r\n ctx.font = `bold ${Utils.convertToPixel(3)}px arial`;\r\n ctx.fillText(_expiryDate, Utils.convertToPixel(180), Utils.convertToPixel(83));\r\n\r\n const ptt = new Image();\r\n ptt.onload = () => {\r\n ctx.save();\r\n ctx.globalAlpha = 0.15;\r\n const ptrn = ctx.createPattern(ptt, 'repeat');\r\n ctx.fillStyle = ptrn;\r\n ctx.fillRect(0, 0, Utils.convertToPixel(210), Utils.convertToPixel(297));\r\n ctx.restore();\r\n\r\n //draw thumb\r\n let bcCanvasThumb = document.getElementById('trip-ip-canvas-thumb') as HTMLCanvasElement;\r\n if (bcCanvasThumb.getContext) {\r\n let bcThumbCtx = bcCanvasThumb.getContext('2d');\r\n bcThumbCtx.drawImage(ctx.canvas, 0, 0);\r\n }\r\n //thumbCtx.scale(0.2, 0.2);\r\n }\r\n ptt.src = 'assets/images/sample-stamp.png';\r\n }\r\n ipImage.src = \"assets/images/trip-inner-page-preview.jpg\";\r\n }\r\n\r\n //back-cover\r\n let bcCanvas = document.getElementById('trip-bc-canvas') as HTMLCanvasElement;\r\n if (bcCanvas.getContext) {\r\n let ctx = bcCanvas.getContext('2d');\r\n\r\n const bcImage = new Image();\r\n\r\n bcImage.onload = () => {\r\n ctx.textAlign = 'center';\r\n ctx.font = `bold ${Utils.convertToPixel(4)}px arial`;\r\n ctx.drawImage(bcImage, 0, 0);\r\n\r\n let x = Utils.convertToPixel(55), y = Utils.convertToPixel(37);\r\n const rh = Utils.convertToPixel(6.85);\r\n\r\n\r\n\r\n ctx.fillText(this.dto.vehicle.registrationCountryTitles ? this.stringJoin.transform(this.dto.vehicle.registrationCountryTitles) : 'N/A', x, y);\r\n\r\n if (this.dto.vehicle.model) {\r\n let makeModel: string[][] = [];\r\n makeModel[0] = [this.dto.vehicle.model.titles[0], this.dto.vehicle.make.titles[0]];\r\n makeModel[1] = [this.dto.vehicle.model.titles[1], this.dto.vehicle.make.titles[1]];\r\n\r\n ctx.fillText(this.dto.vehicle.make ? this.stringJoin.transform(makeModel.map(d => this.stringJoin.transform(d)), '/') : 'N/A', x, y += rh);\r\n }\r\n else\r\n ctx.fillText(this.dto.vehicle.make ? this.stringJoin.transform(this.dto.vehicle.make.titles) : 'N/A', x, y += rh);\r\n\r\n\r\n\r\n ctx.fillText(this.dto.vehicle.manufactureYear ? this.dto.vehicle.manufactureYear.toString() : 'N/A', x, y += rh);\r\n ctx.fillText(this.dto.vehicle.chassisID ? this.dto.vehicle.chassisID : 'N/A', x, y += rh);\r\n ctx.fillText(this.dto.vehicle.engineID ? this.dto.vehicle.engineID : this.empty, x, y += rh);\r\n ctx.fillText(this.dto.vehicle.cylindersCount ? this.dto.vehicle.cylindersCount.toString() : 'N/A', x, y += rh);\r\n // ctx.fillText(this.dto.vehicle.color ? this.stringJoin.transform(this.dto.vehicle.color.titles) : 'N/A', x, y += rh);\r\n ctx.fillText(this.dto.vehicle.colors ? this.stringJoin.transform(this.dto.vehicle.colors.map(d => this.stringJoin.transform(d.titles)), '+') : 'N/A', x, y += rh);\r\n ctx.fillText(this.dto.vehicle.type ? this.stringJoin.transform(this.dto.vehicle.type.titles) : this.empty, x, y += rh);\r\n ctx.fillText(this.dto.vehicle.horsePower ? this.dto.vehicle.horsePower.toString() : this.empty, x, y += rh);\r\n\r\n x = Utils.convertToPixel(160);\r\n y = Utils.convertToPixel(37);\r\n\r\n ctx.fillText(this.dto.vehicle.plateID ? this.dto.vehicle.plateID : 'N/A', x, y);\r\n ctx.fillText(this.dto.vehicle.seatsCount ? this.dto.vehicle.seatsCount.toString() : 'N/A', x, y += rh);\r\n ctx.fillText(this.dto.vehicle.spareTiresCount.toString(), x, y += rh);\r\n //ctx.fillText(this.vOptions ? this.vOptions.join(' + ') : this.empty, x, y += rh);\r\n //ctx.fillText(this.vOptions ? this.stringJoin.transform(this.vOptions.map(d => d.titles.toString()), '+') : this.empty, x, y += rh);\r\n ctx.fillText(this.vOptions ? this.stringJoin.transform(this.vOptions.map(d => this.stringJoin.transform(d.titles)), '+') : this.empty, x, y += rh);\r\n ctx.fillText(this.vUpholsteryType ? this.stringJoin.transform(this.vUpholsteryType) : this.empty, x, y += rh);\r\n\r\n ctx.fillText(this.dto.vehicle.equipments ? this.dto.vehicle.equipments : this.empty, x, y += rh);\r\n ctx.fillText(this.dto.vehicle.extras ? this.dto.vehicle.extras : this.empty, x, y += rh);\r\n ctx.fillText(this.dto.vehicle.weightInKG ? this.dto.vehicle.weightInKG.toString() : 'N/A', x, y += rh);\r\n ctx.fillText(`${this.dto.vehicle.currency ? this.dto.vehicle.currency.abbreviation : ''} ${this.dto.vehicle.value ? this.dto.vehicle.value.toString() : 'N/A'}`, x, y += rh);\r\n\r\n const ptt = new Image();\r\n ptt.onload = () => {\r\n ctx.save();\r\n ctx.globalAlpha = 0.15;\r\n const ptrn = ctx.createPattern(ptt, 'repeat');\r\n ctx.fillStyle = ptrn;\r\n ctx.fillRect(0, 0, Utils.convertToPixel(210), Utils.convertToPixel(297));\r\n ctx.restore();\r\n\r\n //draw thumb\r\n let bcCanvasThumb = document.getElementById('trip-bc-canvas-thumb') as HTMLCanvasElement;\r\n if (bcCanvasThumb.getContext) {\r\n let bcThumbCtx = bcCanvasThumb.getContext('2d');\r\n bcThumbCtx.drawImage(ctx.canvas, 0, 0);\r\n }\r\n }\r\n ptt.src = 'assets/images/sample-stamp.png';\r\n }\r\n bcImage.src = \"assets/images/trip-back-cover-preview.jpg\";\r\n }\r\n }\r\n}\r\n","\r\nexport class PostTripTikCmd {\r\n constructor(form) {\r\n this.serial = form.serial;\r\n this.stockTypeId = form.stockTypeId;\r\n //this.value = form.value;\r\n //this.currencyId = form.currencyId;\r\n\r\n this.cName = form.steps[0].name;\r\n this.cResidenceCountryId = form.steps[0].residenceCountryId;\r\n this.cNationalityId = form.steps[0].nationalityId;\r\n this.cLocalAddress = form.steps[0].localAddress;\r\n this.cIdentityID = form.steps[0].identityID;\r\n this.cPassportID = form.steps[0].passportID;\r\n this.cLocalPhoneNumber = form.steps[0].localPhoneNumber;\r\n this.cIntPhoneNumber = form.steps[0].intPhoneNumber;\r\n this.cIntAddress = form.steps[0].intAddress;\r\n //drivers?\r\n this.cDrivers = form.steps[0].drivers;\r\n this.cDrivers.forEach((d, i) => {\r\n d.attachments =\r\n Object.keys(form.steps[2].attachments[i + 1])\r\n .map(function (key) {\r\n return form.steps[2].attachments[i + 1][key];\r\n })\r\n });\r\n\r\n this.cAttachments = Object.keys(form.steps[2].attachments[0])\r\n .map(function (key) {\r\n return form.steps[2].attachments[0][key];\r\n });\r\n\r\n this.vPlateID = form.steps[1].plateID;\r\n this.vRegistrationCountryId = form.steps[1].registrationCountryId;\r\n this.vSeatsCount = form.steps[1].seatsCount;\r\n this.vSpareTiresCount = form.steps[1].spareTiresCount;\r\n\r\n this.vEquipments = form.steps[1].equipments;\r\n this.vValue = form.steps[1].value;\r\n this.vCurrencyId = form.steps[1].currencyId;\r\n\r\n this.vWeightInKG = form.steps[1].weightInKG;\r\n this.vHorsePower = form.steps[1].horsePower;\r\n //this.vColorId = form.steps[1].colorId;\r\n this.vColors = form.steps[1].colors;\r\n this.vCylindersCount = form.steps[1].cylindersCount;\r\n this.vEngineID = form.steps[1].engineID;\r\n this.vChassisID = form.steps[1].chassisID;\r\n this.vManufactureYear = form.steps[1].manufactureYear;\r\n this.vTypeId = form.steps[1].typeId;\r\n this.vMakeId = form.steps[1].makeId;\r\n this.vModelId = form.steps[1].modelId;\r\n this.vExtras = form.steps[1].extras;\r\n this.vUpholsteryType = form.steps[1].upholsteryType;\r\n this.vOptions = form.steps[1].options;\r\n\r\n\r\n //this.vCurrencyId = 1;\r\n }\r\n\r\n id: string;\r\n serial: number;\r\n stockTypeId: number;\r\n //value: number;\r\n //currencyId: number;\r\n\r\n //cust\r\n cName: string;\r\n cResidenceCountryId: number;\r\n cNationalityId: number;\r\n cLocalAddress: string;\r\n cIntAddress: string;\r\n cIdentityID: string;\r\n cPassportID: string;\r\n cLocalPhoneNumber: string;\r\n cIntPhoneNumber: string;\r\n cAttachments: string[];\r\n cDrivers: {\r\n name: string,\r\n passportIDorIdentityID: string,\r\n address: string,\r\n phoneNumber: string,\r\n attachments: string[]\r\n }[];\r\n //vehicle\r\n vPlateID: string;\r\n vRegistrationCountryId: number;\r\n vSeatsCount: number;\r\n vSpareTiresCount: number;\r\n vEquipments: string;\r\n vValue: number;\r\n vCurrencyId: number;\r\n vWeightInKG: number;\r\n vHorsePower?: number;\r\n //vColorId: number;\r\n vColors: number[];\r\n vCylindersCount: number;\r\n vEngineID: string;\r\n vChassisID: string;\r\n vManufactureYear: number;\r\n vTypeId: number;\r\n vMakeId: number;\r\n vModelId: number;\r\n vExtras: string;\r\n\r\n vUpholsteryType?: number;\r\n vOptions: number[];\r\n}\r\n","import { BloodGroup } from 'src/app/core/models/enums/blood-group';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { PrintObject } from 'src/app/core/models/enums/print-object';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { VehicleModelDto } from 'src/app/features/lookups/models/vehicle-model';\r\nimport { CurrencyDto } from 'src/app/features/lookups/models/currency';\r\nimport { PrintLogDto } from '../../_shared/models/issuing.models';\r\n\r\nexport interface TripTikVm {\r\n item: TripTikDetailsDto\r\n}\r\n\r\nexport interface TripTiksVm {\r\n list: TripTikDto[],\r\n recordsCount: number\r\n}\r\n\r\nexport interface TripTikDto {\r\n id: string,\r\n serial: number,\r\n cName: string,\r\n vPlateID: string,\r\n cPhoneNumber: string,\r\n accountId: number,\r\n accountTitles: string[],\r\n stockType: LookupDto,\r\n issued?: Date,\r\n printLogs: PrintLogDto[],\r\n revokeRequestId?: number,\r\n isMigratedData: boolean,\r\n parentAccounts: LookupDto;\r\n accountTypeTitle: string;\r\n}\r\n\r\nexport class TripTikDetailsDto {\r\n id: string;\r\n serial: number;\r\n stockType: LookupDto;\r\n issued?: Date;\r\n expiryDate?: Date;\r\n hashedSerial?: string;\r\n accountId: number;\r\n accountTitles: string[];\r\n printLogs: PrintLogDto[];\r\n //value: number;\r\n //currency: CurrencyDto;\r\n isMigratedData: boolean;\r\n customer: TripTikCustomerDto = new TripTikCustomerDto();\r\n vehicle: TripTikVehicleDto = new TripTikVehicleDto();\r\n documentTemplateVersion: number;\r\n}\r\n\r\nexport class TripTikCustomerDto {\r\n id: string;\r\n owner: TripTikOwnerDto = new TripTikOwnerDto();\r\n drivers: TripTikDriverDto[] = [];\r\n}\r\n\r\nexport class TripTikOwnerDto {\r\n name: string;\r\n residenceCountryId: number;\r\n residenceCountryTitles: string[] = [];\r\n nationalityId?: number;\r\n nationalityTitles: string[] = [];\r\n passportID: string;\r\n identityID: string;\r\n address: { item1: string, item2: string } = { item1: null, item2: null };\r\n phoneNumber: { item1: string, item2: string } = { item1: null, item2: null };\r\n attachments: string[];\r\n}\r\n\r\nexport interface TripTikDriverDto {\r\n name: string,\r\n address: string,\r\n phoneNumber: string,\r\n passportIDorIdentityID: string,\r\n attachments: string[]\r\n}\r\n\r\nexport class TripTikVehicleDto {\r\n plateID: string;\r\n registrationCountryId: number;\r\n registrationCountryTitles: string[] = [];\r\n seatsCount: number;\r\n spareTiresCount: number;\r\n equipments: string;\r\n value: number;\r\n currency: CurrencyDto = { id: 0, titles: [], abbreviation: null };\r\n weightInKG: number;\r\n horsePower: number\r\n //color: LookupDto = { id: 0, titles: [] };\r\n colors: LookupDto[] = [];\r\n cylindersCount: number;\r\n engineID: string;\r\n chassisID: string;\r\n manufactureYear: number;\r\n type: LookupDto = { id: 0, titles: [] };\r\n make: LookupDto = { id: 0, titles: [] };\r\n model: VehicleModelDto = { id: 0, titles: [], makeId: 0, makeTitles: [], stockTypes: [] };\r\n extras: string;\r\n upholsteryType: number;\r\n options: number[]; //number or string\r\n}\r\n\r\nexport interface TripTiksSearchQuery /* extends PaginationQuery */ {\r\n accountId?: number,\r\n serial?: number,\r\n fromDate?: string,\r\n toDate?: string,\r\n stockTypeId?: number,\r\n cName?: string,\r\n cResidenceCountryId?: number,\r\n cIdentityOrPassportID?: string,\r\n cPhoneNumber?: string,\r\n vPlateID?: string,\r\n vRegistrationCountryId?: number[],\r\n vTypeId?: number,\r\n vMakeId?: number,\r\n vChassisID?: string,\r\n vManufactureYear?: number,\r\n isIssued?: boolean,\r\n isDamaged?: boolean\r\n}\r\n\r\n\r\n","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { TripTiksService } from './trip-tiks.service';\r\nimport { TripTikDto, TripTiksVm, TripTiksSearchQuery } from '../models/trip-tik';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { PaginationQuery } from '../../_shared/models/issuing.models';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\n\r\n\r\nexport class TripTiksDataSource implements DataSource {\r\n public TripTiksSubject = new BehaviorSubject([]);\r\n\r\n public countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private tripTiksService: TripTiksService, private loader: LoadingService) { }\r\n\r\n load(pagination: PaginationQuery, query: TripTiksSearchQuery | string = null) {\r\n //console.warn(query);\r\n\r\n this.tripTiksService[(query == null || typeof query == 'string') ? 'getAll' : 'search'](pagination, query)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: TripTiksVm) => {\r\n result.list.forEach(document => {\r\n document.parentAccounts = populateAccountsSelect([document.parentAccounts])[0];\r\n });\r\n ////console.log(result);\r\n this.TripTiksSubject.next(result.list);\r\n this.countSubject.next(result.recordsCount);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n connect(): Observable {\r\n return this.TripTiksSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.TripTiksSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { PostTripTikCmd } from '../models/create.cmd';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { TripTikVm, TripTiksVm, TripTiksSearchQuery } from '../models/trip-tik';\r\nimport { PrintTripTikCmd } from '../models/print.cmd';\r\nimport { PaginationQuery } from '../../_shared/models/issuing.models';\r\nimport { SerialHashVm } from '../../int-licenses/models/int-license';\r\n\r\n@Injectable()\r\nexport class TripTiksService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n delete(id: string) {\r\n return this.api.delete(EndPoint.TRIPTIK, id).toPromise();\r\n }\r\n\r\n update(cmd: PostTripTikCmd) {\r\n return this.api.update(EndPoint.TRIPTIK, cmd).toPromise();\r\n }\r\n\r\n create(cmd: PostTripTikCmd) {\r\n return this.api.create(EndPoint.TRIPTIK, cmd).toPromise();\r\n }\r\n\r\n get(id: string) {\r\n return this.api.get(EndPoint.TRIPTIK, id).toPromise();\r\n }\r\n\r\n getByHashedSerial(key: string){\r\n return this.api.get(EndPoint.TRIPTIK_GET_BY_HASHED_SERIAL, key).toPromise();\r\n }\r\n\r\n getAll(pagination: PaginationQuery, query: string = '') {\r\n return this.api.get(EndPoint.TRIPTIK, null, { ...pagination, query });\r\n }\r\n\r\n\r\n search(pagination: PaginationQuery, query: TripTiksSearchQuery) {\r\n return this.api.get(EndPoint.TRIPTIK_SEARCH, null, { ...pagination, ...query });\r\n }\r\n\r\n print(cmd: PrintTripTikCmd) {\r\n return this.api.create(EndPoint.TRIPTIK_PRINT, cmd).toPromise();\r\n }\r\n}\r\n\r\n","import { DefaultAlertAction } from './../../../../shared/models/default-alert-action';\r\nimport { FormBuilder, FormGroup, Validators, FormArray } from '@angular/forms';\r\n//import { AccountStatusDto } from './../../../../core/nswag.api';\r\nimport { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { AccountStatusesService } from '../../services/account-statuses';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { nonArabicCharactersValidator, nonEnglishCharactersValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { LookupDto } from '../../models/lookup';\r\nimport { result } from 'lodash';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\n\r\n@Component({\r\n selector: 'mac-account-statuses',\r\n templateUrl: './account-statuses.component.html',\r\n styleUrls: ['./account-statuses.component.scss'],\r\n providers: [AccountStatusesService]\r\n})\r\nexport class AccountStatusesComponent implements OnInit {\r\n displayedColumns: string[] = ['titles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n model: LookupDto;\r\n loading: boolean;\r\n form: FormGroup;\r\n langIndex: number;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get titles() { return this.form.get('titles') as FormArray; }\r\n get Role() { return Role; };\r\n\r\n constructor(private service: AccountStatusesService,\r\n public auth: AuthService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirm: ConfirmService,\r\n private fb: FormBuilder,\r\n private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n this.langIndex = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.langIndex = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.service.get(null)\r\n .then(result => {\r\n this.dataSource = new MatTableDataSource(result.list);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n this.model = { id: 0, titles: ['', ''] };\r\n this.dataSource.data.unshift(this.model);\r\n\r\n this.form.patchValue({ titles: ['', ''] });\r\n\r\n this.editingRowId = 0;\r\n\r\n this.titles.controls.forEach(c => c.reset());\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: LookupDto) {\r\n let modal = this.confirm.confirm(new DeleteModal({ type: 'LKP_TITLE_ACCOUNT_STATUS', title: row.titles[this.langIndex] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(result => {\r\n\r\n if (result) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.deletingRowId = null;\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n this.model = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n this.form.patchValue({\r\n titles: id > 0 ? this.model.titles : ['', '']\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(this.form.value).then(id => {\r\n if (id) {\r\n this.model.id = id;\r\n //push new item to array instead\r\n this.model.titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n }).catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n } else {\r\n const cmd = this.form.value as LookupDto;\r\n cmd.id = this.editingRowId;\r\n this.service.update(cmd)\r\n .then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(as => as.id == this.editingRowId);\r\n this.dataSource.data[i].titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.editingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n titles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ])\r\n });\r\n }\r\n}","//import { AccountTypeDto } from 'src/app/core/nswag.api';\r\nimport { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { AccountTypesService } from '../../services/account-types';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FormBuilder, FormGroup, Validators, FormArray } from '@angular/forms';\r\nimport { nonArabicCharactersValidator, nonEnglishCharactersValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { AccountTypeDto } from '../../models/account-type';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\n\r\n@Component({\r\n selector: 'mac-account-types',\r\n templateUrl: './account-types.component.html',\r\n styleUrls: ['./account-types.component.scss'],\r\n providers: [AccountTypesService]\r\n})\r\nexport class AccountTypesComponent implements OnInit {\r\n\r\n displayedColumns: string[] = ['accountType', 'titles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n model: AccountTypeDto;\r\n submitted: boolean;\r\n accountTypes: AccountTypeDto[];\r\n loading: boolean;\r\n form: FormGroup;\r\n langIndex: number = 0;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get titles() { return this.form.get('titles') as FormArray; }\r\n get parentId() { return this.form.get('parentId'); }\r\n get Role() { return Role; };\r\n\r\n constructor(private service: AccountTypesService,\r\n public auth: AuthService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirm: ConfirmService,\r\n private fb: FormBuilder,\r\n private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n this.langIndex = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.langIndex = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.service.get(null)\r\n .then(result => {\r\n this.accountTypes = [...result.list];\r\n ////console.log(this.accountTypes);\r\n this.dataSource = new MatTableDataSource(result.list);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n const maxId = this.accountTypes[this.accountTypes.length - 1].id;\r\n ////console.log(maxId);\r\n\r\n this.model = { id: 0, parentId: maxId, titles: ['', ''] };\r\n this.dataSource.data.unshift(this.model);\r\n\r\n this.form.patchValue({ titles: ['', ''] });\r\n\r\n this.editingRowId = 0;\r\n\r\n this.parentId.reset();\r\n this.titles.controls.forEach(c => c.reset());\r\n\r\n this.parentId.setValue(maxId);\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: AccountTypeDto) {\r\n let modal = this.confirm.confirm(new DeleteModal({ type: 'LKP_TITLE_ACCOUNT_TYPE', title: row.titles[this.langIndex] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.deletingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n this.model = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n this.form.patchValue({\r\n titles: id > 0 ? this.model.titles : ['', ''],\r\n parentId: id > 0 ? this.model.parentId : ''\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(this.form.value).then(id => {\r\n if (id) {\r\n this.model.id = id;\r\n this.model.parentTitles = this.accountTypes.find(a => a.id == this.model.parentId).parentTitles;\r\n\r\n this.dataSource.data[0].titles = this.form.value.titles;\r\n this.dataSource.data[0].parentTitles = this.accountTypes.find(a => a.id == this.model.parentId).parentTitles;\r\n\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n }).catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n } else {\r\n const cmd = this.form.value as AccountTypeDto;\r\n cmd.id = this.editingRowId;\r\n this.service.update(cmd)\r\n .then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(i => i.id == this.editingRowId);\r\n this.dataSource.data[i].titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n })\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n parentId: ['', [Validators.required]],\r\n titles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ])\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef, HostListener } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { CitiesService } from '../../services/cities';\r\nimport { FormGroup, FormBuilder, FormArray, Validators } from '@angular/forms';\r\nimport { CountriesService } from '../../services/countries';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CountryDto } from '../../models/country';\r\nimport { CityDto } from '../../models/city';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport * as _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'mac-cities',\r\n templateUrl: './cities.component.html',\r\n styleUrls: ['./cities.component.scss'],\r\n providers: [CitiesService, CountriesService]\r\n})\r\nexport class CitiesComponent implements OnInit {\r\n displayedColumns: string[] = ['country', 'titles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n //model: CityDto;\r\n submitted: boolean;\r\n validators: ElementRef[] = [];\r\n countries: CountryDto[];\r\n _countries: CountryDto[];\r\n form: FormGroup;\r\n lang: number = 0;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get titles() { return this.form.get('titles') as FormArray; }\r\n get countryId() { return this.form.get('countryId'); }\r\n get Role() { return Role; };\r\n\r\n constructor(private service: CitiesService,\r\n public auth: AuthService,\r\n private countryServie: CountriesService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirmService: ConfirmService,\r\n private translate: TranslateService,\r\n private fb: FormBuilder) { }\r\n\r\n ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n Promise.all([this.countryServie.get(null)\r\n .then(c => {\r\n this.countries = c.list;\r\n this._countries = _.cloneDeep(c.list).map(dto => {\r\n dto.countryTitles = dto.countryTitles[this.lang];\r\n return dto;\r\n })\r\n }),\r\n this.service.get(0, null)\r\n .then(result => {\r\n this.dataSource = new MatTableDataSource(result.list);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n })])\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n const newDto = { id: 0, countryId: this.countries[0].id, titles: ['', ''] };\r\n\r\n this.dataSource.data.unshift(newDto);\r\n\r\n this.editingRowId = 0;\r\n this.form.patchValue({ titles: ['', ''] });\r\n\r\n this.countryId.reset();\r\n this.titles.controls.forEach(c => c.reset());\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: CityDto) {\r\n let modal = this.confirmService.confirm(new DeleteModal({ type: 'LKP_TITLE_CITY', title: row.titles[this.lang] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.submitted = true;\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.deletingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n\r\n const dto = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n this.form.patchValue({\r\n titles: id > 0 ? dto.titles : ['', ''],\r\n countryId: id > 0 ? dto.countryId : ''\r\n });\r\n\r\n\r\n // this.model = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n // this.form.patchValue({\r\n // titles: id > 0 ? this.model.titles : ['', ''],\r\n // countryId: id > 0 ? this.model.countryId : ''\r\n // });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n\r\n const cmd = this.form.value as CityDto;\r\n //console.log(cmd);\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(cmd).then(id => {\r\n if (id) {\r\n cmd.id = id;\r\n cmd.countryTitles = <[]>this.countries.find(c => c.id == cmd.countryId).countryTitles;\r\n this.dataSource.data[0] = cmd;\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n\r\n }).catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n } else {\r\n cmd.id = this.editingRowId;\r\n this.service.update(cmd).then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(i => i.id == this.editingRowId);\r\n this.dataSource.data[i].titles = cmd.titles;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.editingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n countryId: ['', [Validators.required]],\r\n titles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ])\r\n });\r\n }\r\n}\r\n","import { ActivatedRoute } from '@angular/router';\r\nimport { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CountriesService } from '../../services/countries';\r\nimport { FormBuilder, FormGroup, Validators, FormArray } from '@angular/forms';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { numbersOnlyValidator, nonEnglishCharactersValidator, nonArabicCharactersValidator, englishOnlyValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { CountryDto } from '../../models/country';\r\n\r\n@Component({\r\n selector: 'mac-countries',\r\n templateUrl: './countries.component.html',\r\n styleUrls: ['./countries.component.scss'],\r\n providers: [CountriesService]\r\n})\r\nexport class CountriesComponent implements OnInit {\r\n displayedColumns: string[] = ['abbreviation', 'dialingCode', 'countryTitles', 'nationalityTitles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n model: CountryDto;\r\n langIndex: number = 0;\r\n form: FormGroup;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get abbreviation() { return this.form.get('abbreviation'); }\r\n get dialingCode() { return this.form.get('dialingCode'); }\r\n get countryTitles() { return this.form.get('countryTitles') as FormArray; }\r\n get nationalityTitles() { return this.form.get('nationalityTitles') as FormArray; }\r\n get Role() { return Role; };\r\n\r\n constructor(private service: CountriesService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirmService: ConfirmService,\r\n private route: ActivatedRoute,\r\n private logger: NGXLogger,\r\n private translate: TranslateService,\r\n private fb: FormBuilder,\r\n public auth: AuthService) { }\r\n\r\n ngOnInit() {\r\n this.langIndex = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.langIndex = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n if (!this.auth.currentUser.isInRole(Role.LOOKUPS_UPDATE)\r\n && !this.auth.currentUser.isInRole(Role.LOOKUPS_DELETE))\r\n this.displayedColumns.splice(this.displayedColumns.length - 1, 1);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.service.get(null)\r\n .then(result => {\r\n this.dataSource = new MatTableDataSource(result.list);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n updateMode: boolean = false; //todo: manage all disabled controls during updating process! \r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n this.model = { id: 0, abbreviation: '', dialingCode: '', countryTitles: ['', ''], nationalityTitles: ['', ''] };\r\n this.dataSource.data.unshift(this.model);\r\n this.editingRowId = 0;\r\n this.form.patchValue({\r\n abbreviation: '',\r\n dialingCode: '',\r\n countryTitles: ['', ''],\r\n nationalityTitles: ['', ''],\r\n });\r\n\r\n this.abbreviation.reset();\r\n this.dialingCode.reset();\r\n this.countryTitles.controls.forEach(c => c.reset());\r\n this.nationalityTitles.controls.forEach(c => c.reset());\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n //this.updateMode = false;\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: CountryDto) {\r\n let modal = this.confirmService.confirm(new DeleteModal({ type: 'LKP_TITLE_COUNTRY', title: row.countryTitles[this.langIndex] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.deletingRowId = null;\r\n this.loader.load(LoaderType.Body, false)\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n this.model = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n this.form.patchValue({\r\n id: id > 0 ? id : 0,\r\n abbreviation: id > 0 ? this.model.abbreviation : '',\r\n dialingCode: id > 0 ? this.model.dialingCode : '',\r\n countryTitles: id > 0 ? this.model.countryTitles : ['', ''],\r\n nationalityTitles: id > 0 ? this.model.nationalityTitles : ['', '']\r\n });\r\n\r\n //this.updateMode = !id ? true : false;\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(this.form.value as CountryDto).then(id => {\r\n if (id) {\r\n //this.dataSource.data[0] = this.form.value as ICountryDto;\r\n this.dataSource.data[0].id = id;\r\n this.dataSource.data[0].abbreviation = this.form.value.abbreviation;\r\n this.dataSource.data[0].dialingCode = this.form.value.dialingCode;\r\n this.dataSource.data[0].countryTitles = this.form.value.countryTitles;\r\n this.dataSource.data[0].nationalityTitles = this.form.value.nationalityTitles;\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.error(DefaultAlertAction.ADDING);\r\n })\r\n .catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n } else {\r\n this.service.update(this.form.value as CountryDto)\r\n .then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(as => as.id == this.editingRowId);\r\n ////console.log(this.dataSource.data[i], this.form.value);\r\n //this.dataSource.data[i] = this.form.value as ICountryDto;\r\n\r\n this.dataSource.data[i].abbreviation = this.form.value.abbreviation;\r\n this.dataSource.data[i].dialingCode = this.form.value.dialingCode;\r\n this.dataSource.data[i].countryTitles = this.form.value.countryTitles;\r\n this.dataSource.data[i].nationalityTitles = this.form.value.nationalityTitles;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.editingRowId = null;\r\n this.loader.load(LoaderType.Body, false)\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n id: [''],\r\n abbreviation: ['', [Validators.required, englishOnlyValidator, Validators.minLength(2), Validators.maxLength(3)]],\r\n dialingCode: ['', [Validators.required, numbersOnlyValidator, Validators.maxLength(5)]],\r\n countryTitles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ]),\r\n nationalityTitles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ]),\r\n });\r\n }\r\n}\r\n\r\n","import { ActivatedRoute } from '@angular/router';\r\nimport { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CurrenciesService } from '../../services/currencies';\r\nimport { FormBuilder, FormGroup, Validators, FormArray } from '@angular/forms';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { numbersOnlyValidator, nonEnglishCharactersValidator, nonArabicCharactersValidator, englishOnlyValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { CurrencyDto } from '../../models/currency';\r\n\r\n@Component({\r\n selector: 'mac-currencies',\r\n templateUrl: './currencies.component.html',\r\n styleUrls: ['./currencies.component.scss'],\r\n providers: [CurrenciesService]\r\n})\r\nexport class CurrenciesComponent implements OnInit {\r\n displayedColumns: string[] = ['abbreviation', 'titles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n model: CurrencyDto;\r\n lang: Language = 0;\r\n form: FormGroup;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get abbreviation() { return this.form.get('abbreviation'); }\r\n get titles() { return this.form.get('titles') as FormArray; }\r\n get Role() { return Role; };\r\n\r\n constructor(private service: CurrenciesService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirmService: ConfirmService,\r\n private route: ActivatedRoute,\r\n private logger: NGXLogger,\r\n private translate: TranslateService,\r\n private fb: FormBuilder,\r\n public auth: AuthService) { }\r\n\r\n ngOnInit() {\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n if (!this.auth.currentUser.isInRole(Role.LOOKUPS_UPDATE)\r\n && !this.auth.currentUser.isInRole(Role.LOOKUPS_DELETE))\r\n this.displayedColumns.splice(this.displayedColumns.length - 1, 1);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.service.get(null)\r\n .then(result => {\r\n this.dataSource = new MatTableDataSource(result.list);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n updateMode: boolean = false; //todo: manage all disabled controls during updating process! \r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n this.model = { id: 0, abbreviation: '', titles: ['', ''] };\r\n this.dataSource.data.unshift(this.model);\r\n this.editingRowId = 0;\r\n this.form.patchValue({\r\n abbreviation: '',\r\n titles: ['', '']\r\n });\r\n\r\n this.abbreviation.reset();\r\n this.titles.controls.forEach(c => c.reset());\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n //this.updateMode = false;\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: CurrencyDto) {\r\n let modal = this.confirmService.confirm(new DeleteModal({ type: 'LKP_TITLE_CURRENCY', title: row.titles[this.lang] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.deletingRowId = null;\r\n this.loader.load(LoaderType.Body, false)\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n this.model = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n this.form.patchValue({\r\n id: id > 0 ? id : 0,\r\n abbreviation: id > 0 ? this.model.abbreviation : '',\r\n titles: id > 0 ? this.model.titles : ['', '']\r\n });\r\n\r\n //this.updateMode = !id ? true : false;\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n if (this.deletingRowId == null) {\r\n const cmd = this.form.value as CurrencyDto;\r\n if (this.editingRowId == 0) {\r\n this.service.create(cmd).then(id => {\r\n if (id) {\r\n //this.dataSource.data[0] = this.form.value as ICountryDto;\r\n this.dataSource.data[0].id = id;\r\n this.dataSource.data[0].abbreviation = this.form.value.abbreviation;\r\n this.dataSource.data[0].titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.error(DefaultAlertAction.ADDING);\r\n }).catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n } else {\r\n cmd.id = this.editingRowId;\r\n this.service.update(cmd)\r\n .then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(as => as.id == this.editingRowId);\r\n ////console.log(this.dataSource.data[i], this.form.value);\r\n //this.dataSource.data[i] = this.form.value as ICountryDto;\r\n\r\n this.dataSource.data[i].abbreviation = this.form.value.abbreviation;\r\n this.dataSource.data[i].titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.editingRowId = null;\r\n this.loader.load(LoaderType.Body, false)\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n id: [''],\r\n abbreviation: ['', [Validators.required, englishOnlyValidator, Validators.minLength(2), Validators.maxLength(3)]],\r\n titles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ])\r\n });\r\n }\r\n}\r\n\r\n","import { Component, OnInit, ViewChild, ElementRef, HostListener } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { FormGroup, FormBuilder, FormArray, Validators } from '@angular/forms';\r\nimport { CountriesService } from '../../services/countries';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CountryDto } from '../../models/country';\r\nimport { CityDto } from '../../models/city';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { nonArabicCharactersValidator, nonEnglishCharactersValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { CustomsPortsService } from '../../services/customs-ports.service';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { CustomsPortDto } from '../../models/customs-port';\r\nimport * as _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'mac-customs-ports',\r\n templateUrl: './customs-ports.component.html',\r\n styleUrls: ['./customs-ports.component.scss'],\r\n providers: [CustomsPortsService, CountriesService]\r\n})\r\nexport class CustomsPortsComponent implements OnInit {\r\n displayedColumns: string[] = ['country', 'titles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n //model: CityDto;\r\n submitted: boolean;\r\n validators: ElementRef[] = [];\r\n countries: CountryDto[];\r\n _countries: CountryDto[];\r\n form: FormGroup;\r\n lang: number = 0;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get titles() { return this.form.get('titles') as FormArray; }\r\n get countryId() { return this.form.get('countryId'); }\r\n get Role() { return Role; };\r\n\r\n constructor(private service: CustomsPortsService,\r\n private countryServie: CountriesService,\r\n public auth: AuthService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirmService: ConfirmService,\r\n private translate: TranslateService,\r\n private fb: FormBuilder) { }\r\n\r\n ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n Promise.all([this.countryServie.get(null)\r\n .then(c => {\r\n this.countries = c.list;\r\n this._countries = _.cloneDeep(c.list).map(dto => {\r\n dto.countryTitles = dto.countryTitles[this.lang];\r\n return dto;\r\n })\r\n }),\r\n this.service.get(0, null)\r\n .then(result => {\r\n this.dataSource = new MatTableDataSource(result.list);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n })])\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n const newDto = { id: 0, countryId: 0, titles: ['', ''] };\r\n\r\n this.dataSource.data.unshift(newDto);\r\n\r\n this.editingRowId = 0;\r\n this.form.patchValue({ titles: ['', ''] });\r\n\r\n this.countryId.reset();\r\n this.titles.controls.forEach(c => c.reset());\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: CityDto) {\r\n let modal = this.confirmService.confirm(new DeleteModal({ type: 'LKP_TITLE_CUSTOMS_PORT', title: row.titles[this.lang] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.submitted = true;\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.deletingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n const dto = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n this.form.patchValue({\r\n titles: id > 0 ? dto.titles : ['', ''],\r\n countryId: id > 0 ? dto.countryId : ''\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n const cmd = this.form.value as CustomsPortDto;\r\n this.loader.load(LoaderType.Body);\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(cmd).then(id => {\r\n if (id) {\r\n cmd.id = id;\r\n cmd.countryTitles = <[]>this.countries.find(c => c.id == cmd.countryId).countryTitles;\r\n this.dataSource.data[0] = cmd;\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n\r\n }).catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n } else {\r\n cmd.id = this.editingRowId;\r\n this.service.update(cmd).then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(i => i.id == this.editingRowId);\r\n this.dataSource.data[i].titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.editingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n countryId: ['', [Validators.required]],\r\n titles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ])\r\n });\r\n }\r\n}\r\n","import { DefaultAlertAction } from './../../../../shared/models/default-alert-action';\r\nimport { FormBuilder, FormGroup, Validators, FormArray } from '@angular/forms';\r\n//import { AccountStatusDto } from './../../../../core/nswag.api';\r\nimport { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { nonArabicCharactersValidator, nonEnglishCharactersValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { LookupDto } from '../../models/lookup';\r\nimport { PursuingZonesService } from '../../services/pursuing-zones';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\n\r\n@Component({\r\n selector: 'mac-pursuing-zones',\r\n templateUrl: './pursuing-zones.component.html',\r\n styleUrls: ['./pursuing-zones.component.scss'],\r\n providers: [PursuingZonesService]\r\n})\r\nexport class PursuingZonesComponent implements OnInit {\r\n displayedColumns: string[] = ['titles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n model: LookupDto;\r\n loading: boolean;\r\n form: FormGroup;\r\n langIndex: number;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get titles() { return this.form.get('titles') as FormArray; }\r\n get Role() { return Role; };\r\n\r\n constructor(private service: PursuingZonesService,\r\n public auth: AuthService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirm: ConfirmService,\r\n private fb: FormBuilder,\r\n private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n this.langIndex = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.langIndex = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.service.get(null)\r\n .then(result => {\r\n this.dataSource = new MatTableDataSource(result.list);\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n this.model = { id: 0, titles: ['', ''] };\r\n this.dataSource.data.unshift(this.model);\r\n\r\n this.form.patchValue({ titles: ['', ''] });\r\n\r\n this.editingRowId = 0;\r\n\r\n this.titles.controls.forEach(c => c.reset());\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: LookupDto) {\r\n let modal = this.confirm.confirm(new DeleteModal({ type: 'LKP_TITLE_PURSUING_ZONE', title: row.titles[this.langIndex] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(r => {\r\n if (r) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.deletingRowId = null;\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n this.model = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n this.form.patchValue({\r\n titles: id > 0 ? this.model.titles : ['', '']\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(this.form.value).then(id => {\r\n if (id) {\r\n this.model.id = id;\r\n //push new item to array instead\r\n this.model.titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n }).catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n } else {\r\n const cmd = this.form.value as LookupDto;\r\n cmd.id = this.editingRowId;\r\n this.service.update(cmd)\r\n .then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(as => as.id == this.editingRowId);\r\n this.dataSource.data[i].titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.editingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n titles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ])\r\n });\r\n }\r\n}","import { StockTypesService } from './../../services/stock-types';\r\nimport { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FormBuilder, FormGroup, FormArray, Validators } from '@angular/forms';\r\nimport { nonArabicCharactersValidator, nonEnglishCharactersValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { PostStockTypeCmd, StockTypeDto } from '../../models/stock-type';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { threadId } from 'worker_threads';\r\n\r\n@Component({\r\n selector: 'mac-stock-types',\r\n templateUrl: './stock-types.component.html',\r\n styleUrls: ['./stock-types.component.scss'],\r\n providers: [StockTypesService]\r\n})\r\nexport class StockTypesComponent implements OnInit {\r\n\r\n displayedColumns: string[] = ['titles', 'documentType', 'rangeMin', 'rangeMax', 'isUnifiedRelease', 'hexColor', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n model: StockTypeDto;\r\n submitted: boolean;\r\n loading: boolean;\r\n langIndex: number = 0;\r\n form: FormGroup;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n\r\n get Role() { return Role; };\r\n\r\n constructor(private service: StockTypesService,\r\n public auth: AuthService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirmService: ConfirmService,\r\n private fb: FormBuilder,\r\n private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n this.langIndex = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.langIndex = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.service.get(null)\r\n .then(result => {\r\n this.dataSource = new MatTableDataSource(result.list);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n this.model = { id: 0, titles: ['', ''], documentType: null, rangeMin: null, rangeMax: null, isUnifiedRelease: false, hexColor: null };\r\n this.dataSource.data.unshift(this.model);\r\n\r\n this.form.patchValue({ titles: ['', ''], documentType: 0, rangeMin: null, rangeMax: null, isUnifiedRelease: false, hexColor: null });\r\n\r\n this.editingRowId = 0;\r\n\r\n this.titles.controls.forEach(c => c.reset());\r\n this.documentType.reset();\r\n this.rangeMin.reset();\r\n this.rangeMax.reset();\r\n this.isUnifiedRelease.reset();\r\n this.hexColor.reset();\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: StockTypeDto) {\r\n let modal = this.confirmService.confirm(new DeleteModal({ type: 'LKP_TITLE_STOCK_TYPE', title: row.titles[this.langIndex] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this.delete(row.id);\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => {\r\n this.deletingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n this.model = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n //console.log(this.model);\r\n\r\n this.form.patchValue({\r\n titles: id > 0 ? this.model.titles : ['', ''],\r\n documentType: id > 0 ? this.model.documentType : '',\r\n rangeMin: id > 0 ? this.model.rangeMin : '',\r\n rangeMax: id > 0 ? this.model.rangeMax : '',\r\n isUnifiedRelease: id > 0 ? this.model.isUnifiedRelease : false,\r\n hexColor: id > 0 ? this.model.hexColor : ''\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n\r\n const cmd = this.form.value as PostStockTypeCmd;\r\n //console.log(cmd);\r\n cmd.isUnifiedRelease = cmd.isUnifiedRelease == true;\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(cmd).then(id => {\r\n if (id) {\r\n this.model.id = id;\r\n this.model.titles = cmd.titles;\r\n\r\n this.model.documentType = cmd.documentType;\r\n this.model.isUnifiedRelease = cmd.isUnifiedRelease;\r\n this.model.rangeMin = cmd.rangeMin;\r\n this.model.rangeMax = cmd.rangeMax;\r\n this.model.hexColor = cmd.hexColor;\r\n\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n }).catch(e => this.edit(null))\r\n .finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n });\r\n } else {\r\n\r\n cmd.id = this.editingRowId;\r\n this.service.update(cmd).then(status => {\r\n if (status) {\r\n // //console.log(this.model);\r\n const i = this.dataSource.data.findIndex(i => i.id == this.editingRowId);\r\n //this.dataSource.data[i].titles = cmd.titles;\r\n this.dataSource.data[i].titles = cmd.titles;\r\n this.dataSource.data[i].documentType = cmd.documentType;\r\n this.dataSource.data[i].isUnifiedRelease = cmd.isUnifiedRelease;\r\n this.dataSource.data[i].rangeMin = cmd.rangeMin;\r\n this.dataSource.data[i].rangeMax = cmd.rangeMax;\r\n this.dataSource.data[i].hexColor = cmd.hexColor;\r\n // this.hexColor.setValue(cmd.hexColor);\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n }).finally(() => {\r\n this.editingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n get titles() { return this.form.get('titles') as FormArray; };\r\n get documentType() { return this.form.get('documentType'); };\r\n get isUnifiedRelease() { return this.form.get('isUnifiedRelease'); };\r\n get hexColor() { return this.form.get('hexColor'); };\r\n get rangeMin() { return this.form.get('rangeMin'); };\r\n get rangeMax() { return this.form.get('rangeMax'); };\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n titles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ]),\r\n documentType: ['', [Validators.required]],\r\n isUnifiedRelease: [false],\r\n hexColor: ['', [Validators.required]],\r\n rangeMin: ['', [Validators.required]],\r\n rangeMax: ['', [Validators.required]]\r\n });\r\n }\r\n}","//import { VehicleColorDto } from 'src/app/core/nswag.api';\r\nimport { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { VehicleColorsService } from '../../services/vehicle-colors';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FormBuilder, FormArray, FormGroup, Validators } from '@angular/forms';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { nonEnglishCharactersValidator, nonArabicCharactersValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { LookupDto } from '../../models/lookup';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\n\r\n\r\n@Component({\r\n selector: 'mac-vehicle-colors',\r\n templateUrl: './vehicle-colors.component.html',\r\n styleUrls: ['./vehicle-colors.component.scss'],\r\n providers: [VehicleColorsService]\r\n})\r\nexport class VehicleColorsComponent implements OnInit {\r\n\r\n displayedColumns: string[] = ['titles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n model: LookupDto = { id: 0, titles: ['', ''] };\r\n submitted: boolean;\r\n loading: boolean;\r\n langIndex: number = 0;\r\n form: FormGroup;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get titles() { return this.form.get('titles') as FormArray; }\r\n get Role() { return Role; };\r\n\r\n\r\n constructor(private service: VehicleColorsService,\r\n public auth: AuthService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirm: ConfirmService,\r\n private fb: FormBuilder,\r\n private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n this.langIndex = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.langIndex = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.service.get(null)\r\n .then(result => {\r\n this.dataSource = new MatTableDataSource(result.list);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n // private _loading(status: boolean = true) {\r\n // this.loading = status;\r\n // }\r\n\r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n this.model = { id: 0, titles: ['', ''] };\r\n this.dataSource.data.unshift(this.model);\r\n\r\n this.form.patchValue({ titles: ['', ''] });\r\n\r\n this.titles.controls.forEach(c => c.reset());\r\n\r\n this.editingRowId = 0;\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: LookupDto) {\r\n let modal = this.confirm.confirm(new DeleteModal({ type: 'LKP_TITLE_VEHICLE_COLOR', title: row.titles[0] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(r => {\r\n if (r) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.deletingRowId = null;\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n this.model = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n this.form.patchValue({\r\n titles: id > 0 ? this.model.titles : ['', '']\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(this.form.value).then(id => {\r\n if (id) {\r\n this.model.id = id;\r\n //push new item to array instead\r\n this.model.titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n }).catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n } else {\r\n const cmd = this.form.value as LookupDto;\r\n cmd.id = this.editingRowId;\r\n this.service.update(cmd)\r\n .then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(as => as.id == this.editingRowId);\r\n this.dataSource.data[i].titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n }).catch(err => {\r\n // //console.log(err);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.editingRowId = null;\r\n this.submitted = false;\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n titles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ])\r\n });\r\n }\r\n}\r\n","import { VehicleMakesService } from '../../services/vehicle-makes';\r\nimport { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FormBuilder, FormGroup, FormArray, Validators } from '@angular/forms';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { nonEnglishCharactersValidator, nonArabicCharactersValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { LookupDto } from '../../models/lookup';\r\nimport { CountryDto } from '../../models/country';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\n\r\n@Component({\r\n selector: 'mac-vehicle-makes',\r\n templateUrl: './vehicle-makes.component.html',\r\n styleUrls: ['./vehicle-makes.component.scss'],\r\n providers: [VehicleMakesService]\r\n})\r\nexport class VehicleMakesComponent implements OnInit {\r\n\r\n displayedColumns: string[] = ['titles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n model: LookupDto = { id: 0, titles: ['', ''] };\r\n loading: boolean;\r\n langIndex: number = 0;\r\n form: FormGroup;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get titles() { return this.form.get('titles') as FormArray; }\r\n get Role() { return Role; };\r\n\r\n\r\n constructor(private service: VehicleMakesService,\r\n public auth: AuthService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirm: ConfirmService,\r\n private fb: FormBuilder,\r\n private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n this.langIndex = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.langIndex = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.service.get(null)\r\n .then(result => {\r\n this.dataSource = new MatTableDataSource(result.list);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n // private _loading(status: boolean = true) {\r\n // this.loading = status;\r\n // }\r\n\r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n this.model = { id: 0, titles: ['', ''] };\r\n this.dataSource.data.unshift(this.model);\r\n\r\n this.form.patchValue({ titles: ['', ''] });\r\n\r\n this.editingRowId = 0;\r\n\r\n this.titles.controls.forEach(c => c.reset());\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: LookupDto) {\r\n let modal = this.confirm.confirm(new DeleteModal({ type: 'LKP_TITLE_VEHICLE_MAKE', title: row.titles[this.langIndex] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(r => {\r\n if (r) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.deletingRowId = null;\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n this.model = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n this.form.patchValue({\r\n titles: id > 0 ? this.model.titles : ['', '']\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(this.form.value)\r\n .then(id => {\r\n if (id) {\r\n this.model.id = id;\r\n //push new item to array instead\r\n this.model.titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n })\r\n .catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n } else {\r\n const cmd = this.form.value as CountryDto;\r\n cmd.id = this.editingRowId\r\n this.service.update(cmd)\r\n .then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(as => as.id == this.editingRowId);\r\n this.dataSource.data[i].titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n })\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n titles: this.fb.array([\r\n ['', [Validators.required, nonEnglishCharactersValidator, Validators.minLength(2), Validators.maxLength(50)]],\r\n ['', [Validators.required, nonArabicCharactersValidator, Validators.minLength(2), Validators.maxLength(50)]],\r\n ])\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef, HostListener } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { VehicleModelsService } from '../../services/vehicle-models';\r\nimport { FormGroup, FormBuilder, FormArray, Validators } from '@angular/forms';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CityDto } from '../../models/city';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { nonArabicCharactersValidator, nonEnglishCharactersValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { VehicleModelDto } from '../../models/vehicle-model';\r\nimport { VehicleMakesService } from '../../services/vehicle-makes';\r\nimport { LookupDto } from '../../models/lookup';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport * as _ from 'lodash';\r\nimport { StockTypeDto } from '../../models/stock-type';\r\nimport { StockTypesService } from '../../services/stock-types';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\n\r\n@Component({\r\n selector: 'mac-vehicle-models',\r\n templateUrl: './vehicle-models.component.html',\r\n styleUrls: ['./vehicle-models.component.scss'],\r\n providers: [VehicleModelsService, VehicleMakesService, StockTypesService]\r\n})\r\nexport class VehicleModelsComponent implements OnInit {\r\n displayedColumns: string[] = ['make', 'titles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n //model: VehicleModelDto;\r\n // validators: ElementRef[] = [];\r\n makes: LookupDto[];\r\n _makes: LookupDto[];\r\n _stockTypes: StockTypeDto[] = [];\r\n form: FormGroup;\r\n lang: Language = 0;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get titles() { return this.form.get('titles') as FormArray; }\r\n get make() { return this.form.get('makeId'); }\r\n get stockTypes() { return this.form.get('stockTypes'); }\r\n get Role() { return Role; };\r\n\r\n constructor(private service: VehicleModelsService,\r\n public auth: AuthService,\r\n private vehicleMakeService: VehicleMakesService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirmService: ConfirmService,\r\n private stockTypesService: StockTypesService,\r\n private translate: TranslateService,\r\n private fb: FormBuilder) { }\r\n\r\n ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n Promise.all([this.vehicleMakeService.get(null)\r\n .then(result => {\r\n this.makes = result.list;\r\n this._makes = _.cloneDeep(result.list).map(dto => {\r\n dto.titles = [dto.titles[this.lang]];\r\n return dto;\r\n })\r\n }),\r\n this.stockTypesService.get(this.lang)\r\n .then(result => this._stockTypes = result.list.filter(x => x.documentType == _DocumentType.TripTikDocument)),\r\n this.service.get(0, null)\r\n .then(result => {\r\n // //console.log(result.list);\r\n this.dataSource = new MatTableDataSource(result.list);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n\r\n })])\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n this.toggleUpdateMode(true);\r\n\r\n const newDto = { id: 0, makeId: this.makes[0].id, titles: ['', ''], stockTypes: this._stockTypes.map(x => x.id) };\r\n\r\n this.dataSource.data.unshift(newDto);\r\n\r\n this.editingRowId = 0;\r\n this.form.patchValue({ titles: ['', ''], stockTypes: this._stockTypes.map(x => x.id) });\r\n\r\n this.make.reset();\r\n this.titles.controls.forEach(c => c.reset());\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: CityDto) {\r\n let modal = this.confirmService.confirm(new DeleteModal({ type: 'LKP_TITLE_VEHICLE_MODEL', title: row.titles[this.lang] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n //this.submitted = true;\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.deletingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n edit(id) {\r\n this.toggleUpdateMode(id > 0);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n const dto = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n //console.log(dto);\r\n\r\n this.form.patchValue({\r\n titles: id > 0 ? dto.titles : ['', ''],\r\n makeId: id > 0 ? dto.makeId : '',\r\n stockTypes: id > 0 ? dto.stockTypes : []\r\n });\r\n //console.log(this.form.value);\r\n }\r\n\r\n toggleUpdateMode(mode: boolean) {\r\n if (mode)\r\n this.displayedColumns = ['make', 'titles', 'stockTypes', 'tools'];\r\n else\r\n this.displayedColumns = ['make', 'titles', 'tools'];\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n const cmd = this.form.value as VehicleModelDto;\r\n this.loader.load(LoaderType.Body);\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(cmd).then(id => {\r\n if (id) {\r\n cmd.id = id;\r\n cmd.makeTitles = this.makes.find(c => c.id == cmd.makeId).titles;\r\n cmd.stockTypes = this.stockTypes.value;\r\n this.dataSource.data[0] = cmd;\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n\r\n }).catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.toggleUpdateMode(false);\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n } else {\r\n\r\n cmd.id = this.editingRowId;\r\n this.service.update(cmd).then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(i => i.id == this.editingRowId);\r\n this.dataSource.data[i].titles = cmd.titles;\r\n this.dataSource.data[i].stockTypes = cmd.stockTypes;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.toggleUpdateMode(false);\r\n this.editingRowId = null;\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n makeId: ['', [Validators.required]],\r\n titles: this.fb.array([\r\n ['', [Validators.required, nonEnglishCharactersValidator, Validators.minLength(2), Validators.maxLength(50)]],\r\n ['', [Validators.required, nonArabicCharactersValidator, Validators.minLength(2), Validators.maxLength(50)]]\r\n ]),\r\n stockTypes: ['']\r\n });\r\n }\r\n}\r\n","//import { VehicleColorDto } from 'src/app/core/nswag.api';\r\nimport { Component, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { VehicleTypesService } from '../../services/vehicle-types';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FormBuilder, FormArray, FormGroup, Validators } from '@angular/forms';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { nonEnglishCharactersValidator, nonArabicCharactersValidator, standardLocalizedControlValidators } from 'src/app/shared/services/custom-validators';\r\nimport { LookupDto } from '../../models/lookup';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\n\r\n\r\n@Component({\r\n selector: 'mac-vehicle-types',\r\n templateUrl: './vehicle-types.component.html',\r\n styleUrls: ['./vehicle-types.component.scss'],\r\n providers: [VehicleTypesService]\r\n})\r\nexport class VehicleTypesComponent implements OnInit {\r\n\r\n displayedColumns: string[] = ['titles', 'tools'];\r\n dataSource: MatTableDataSource;\r\n editingRowId: number = null;\r\n deletingRowId: number = null;\r\n model: LookupDto = { id: 0, titles: ['', ''] };\r\n //submitted: boolean;\r\n //loading: boolean;\r\n lang: Language = 0;\r\n form: FormGroup;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n get titles() { return this.form.get('titles') as FormArray; }\r\n get Role() { return Role; };\r\n\r\n constructor(private service: VehicleTypesService,\r\n public auth: AuthService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirm: ConfirmService,\r\n private fb: FormBuilder,\r\n private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.service.get(null)\r\n .then(result => {\r\n this.dataSource = new MatTableDataSource(result.list);\r\n\r\n this.dataSource.paginator = this.paginator;\r\n this.dataSource.sort = this.sort;\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n add() {\r\n if (this.dataSource.data.findIndex(i => i.id == 0) > -1)\r\n return;\r\n\r\n this.model = { id: 0, titles: ['', ''] };\r\n this.dataSource.data.unshift(this.model);\r\n\r\n this.form.patchValue({ titles: ['', ''] });\r\n\r\n this.titles.controls.forEach(c => c.reset());\r\n\r\n this.editingRowId = 0;\r\n\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.paginator.firstPage();\r\n }\r\n\r\n tryDelete(row: LookupDto) {\r\n let modal = this.confirm.confirm(new DeleteModal({ type: 'LKP_TITLE_VEHICLE_TYPE', title: row.titles[0] }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n //delete handler\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n delete(id) {\r\n this.loader.load(LoaderType.Body);\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = null;\r\n this.deletingRowId = id;\r\n\r\n this.service.delete(id).then(r => {\r\n if (r) {\r\n const i = this.dataSource.data.findIndex(o => o.id == id);\r\n this.dataSource.data.splice(i, 1);\r\n this.dataSource.filter = \"\";\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n }).catch(e => {\r\n ////console.log(e);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.deletingRowId = null;\r\n });\r\n }\r\n\r\n edit(id) {\r\n if (this.editingRowId == 0) {\r\n this.dataSource.data.shift();\r\n this.dataSource.filter = \"\";\r\n }\r\n this.editingRowId = id;\r\n this.model = id > 0 ? [...this.dataSource.data].find(c => c.id == id) : null;\r\n\r\n this.form.patchValue({\r\n titles: id > 0 ? this.model.titles : ['', '']\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n if (this.deletingRowId == null) {\r\n if (this.editingRowId == 0) {\r\n this.service.create(this.form.value).then(id => {\r\n if (id) {\r\n this.model.id = id;\r\n //push new item to array instead\r\n this.model.titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n }).catch(e => this.edit(null))\r\n .finally(() => {\r\n this.editingRowId = null;\r\n this.deletingRowId = null;\r\n this.dataSource.filter = \"\";\r\n this.loader.load(LoaderType.Body, false);\r\n })\r\n } else {\r\n const cmd = this.form.value as LookupDto;\r\n cmd.id = this.editingRowId;\r\n this.service.update(cmd)\r\n .then(status => {\r\n if (status) {\r\n const i = this.dataSource.data.findIndex(as => as.id == this.editingRowId);\r\n this.dataSource.data[i].titles = this.form.value.titles;\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n } else this.alert.failure(DefaultAlertAction.UPDATING);\r\n }).catch(err => {\r\n // //console.log(err);\r\n //this.alert.error();\r\n }).finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.editingRowId = null;\r\n //this.submitted = false;\r\n });\r\n }\r\n }\r\n }\r\n\r\n applyFilter(e: any) {\r\n this.dataSource.filter = e.target.value.trim().toLowerCase();\r\n\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n this.edit(null);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n titles: this.fb.array([\r\n ['', standardLocalizedControlValidators(Language.Arabic)],\r\n ['', standardLocalizedControlValidators(Language.English)]\r\n ])\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { LookupVm, LookupDto } from '../models/lookup';\r\n\r\n@Injectable()\r\nexport class AccountStatusesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(lang: Language = null) {\r\n return this.api.get(EndPoint.ACCOUNT_STATUSES, null, { lang }).toPromise();\r\n }\r\n\r\n create(dto: LookupDto) {\r\n return this.api.create(EndPoint.ACCOUNT_STATUSES, dto).toPromise();\r\n }\r\n\r\n update(dto: LookupDto) {\r\n return this.api.update(EndPoint.ACCOUNT_STATUSES, dto).toPromise();\r\n }\r\n\r\n delete(id: number) { \r\n return this.api.delete(EndPoint.ACCOUNT_STATUSES, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\n//import { AccountTypeDto, AccountTypesVm } from 'src/app/core/nswag.api';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { AccountTypesVm, AccountTypeDto } from '../models/account-type';\r\n\r\n@Injectable()\r\nexport class AccountTypesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n getAllowed() {\r\n return this.api.get(EndPoint.ACCOUNT_TYPES_ALLOWED).toPromise();\r\n }\r\n\r\n get(lang: Language = null) {\r\n return this.api.get(EndPoint.ACCOUNT_TYPES, null, { lang }).toPromise();\r\n }\r\n\r\n create(dto: AccountTypeDto) {\r\n return this.api.create(EndPoint.ACCOUNT_TYPES, dto).toPromise();\r\n }\r\n\r\n update(dto: AccountTypeDto) {\r\n return this.api.update(EndPoint.ACCOUNT_TYPES, dto).toPromise();\r\n }\r\n\r\n delete(id: number) {\r\n return this.api.delete(EndPoint.ACCOUNT_TYPES, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { CityDto, CitiesVm } from '../models/city';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\n\r\n@Injectable()\r\nexport class CitiesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(countryId = 0, lang = null) {\r\n return this.api.get(EndPoint.CITIES, countryId, { lang }).toPromise();\r\n }\r\n\r\n create(dto: CityDto) {\r\n return this.api.create(EndPoint.CITIES, dto).toPromise();\r\n }\r\n\r\n update(dto: CityDto) {\r\n return this.api.update(EndPoint.CITIES, dto).toPromise();\r\n }\r\n\r\n delete(id: number) {\r\n return this.api.delete(EndPoint.CITIES, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { ConfigObject } from 'src/app/core/models/enums/config-object';\r\nimport { ConfigVm, ConfigDto } from '../models/config';\r\nimport * as _ from 'lodash';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class StaticConfig {\r\n static config: ConfigDto[] = [];\r\n get() {\r\n //const lang = null;\r\n return this.api.get(EndPoint.CONFIG, null, null, false).toPromise()\r\n .then(result => StaticConfig.config = result.list);\r\n }\r\n\r\n constructor(private api: ApiHandler) { }\r\n\r\n static getConfigKeyValuePairs(configObj: ConfigObject, lang: Language = null) {\r\n return _.cloneDeep(this.config).find(x => x.id == configObj).keyValuePairs\r\n .map(pair => {\r\n pair.value = lang != undefined && lang != null && pair.localized ? pair.value[lang] : pair.value;\r\n return pair;\r\n });\r\n }\r\n\r\n static getConfigValue(configObj: ConfigObject, key: number, lang: Language = null) {\r\n const keyValuePair = _.cloneDeep(this.config).find(x => x.id == configObj).keyValuePairs.find(x => x.key == key);\r\n return lang != undefined && lang != null && keyValuePair.localized ? keyValuePair.value[lang] : keyValuePair.value;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { CountriesVm, CountryDto } from '../models/country';\r\n\r\n@Injectable()\r\nexport class CountriesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(lang: Language = null) {\r\n //console.log(lang);\r\n return this.api.get(EndPoint.COUNTRIES, null, { lang }).toPromise();\r\n }\r\n\r\n create(dto: CountryDto) {\r\n return this.api.create(EndPoint.COUNTRIES, dto).toPromise();\r\n }\r\n\r\n update(dto: CountryDto) {\r\n return this.api.update(EndPoint.COUNTRIES, dto).toPromise();\r\n }\r\n\r\n delete(id: number) {\r\n return this.api.delete(EndPoint.COUNTRIES, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { CurrencyDto, CurrenciesVm } from '../models/currency';\r\n\r\n@Injectable()\r\nexport class CurrenciesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(lang: Language = null) {\r\n return this.api.get(EndPoint.CURRENCIES, null, { lang }).toPromise();\r\n }\r\n\r\n create(dto: CurrencyDto) {\r\n return this.api.create(EndPoint.CURRENCIES, dto).toPromise();\r\n }\r\n\r\n update(dto: CurrencyDto) { \r\n return this.api.update(EndPoint.CURRENCIES, dto).toPromise();\r\n }\r\n\r\n delete(id: number) { \r\n return this.api.delete(EndPoint.CURRENCIES, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { CustomsPortsVm, CustomsPortDto } from '../models/customs-port';\r\n\r\n@Injectable()\r\nexport class CustomsPortsService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(countryId = 0, lang = null) {\r\n return this.api.get(EndPoint.CUSTOMS_PORTS, countryId, { lang }).toPromise();\r\n }\r\n\r\n create(dto: CustomsPortDto) {\r\n return this.api.create(EndPoint.CUSTOMS_PORTS, dto).toPromise();\r\n }\r\n\r\n update(dto: CustomsPortDto) {\r\n return this.api.update(EndPoint.CUSTOMS_PORTS, dto).toPromise();\r\n }\r\n\r\n delete(id: number) {\r\n return this.api.delete(EndPoint.CUSTOMS_PORTS, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { LookupVm, LookupDto } from '../models/lookup';\r\n\r\n@Injectable()\r\nexport class PursuingZonesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(lang = null) {\r\n return this.api.get(EndPoint.TRIPTIK_CLAIMS_PURSUING_ZONES, null, { lang }).toPromise();\r\n }\r\n\r\n create(dto: LookupDto) {\r\n return this.api.create(EndPoint.TRIPTIK_CLAIMS_PURSUING_ZONES, dto).toPromise();\r\n }\r\n\r\n update(dto: LookupDto) {\r\n return this.api.update(EndPoint.TRIPTIK_CLAIMS_PURSUING_ZONES, dto).toPromise();\r\n }\r\n\r\n delete(id: number) {\r\n return this.api.delete(EndPoint.TRIPTIK_CLAIMS_PURSUING_ZONES, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { StockTypesVm, StockTypeDto } from '../models/stock-type';\r\n\r\n@Injectable()\r\nexport class StockTypesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(lang: Language = null) {\r\n //console.log(lang);\r\n return this.api.get(EndPoint.STOCK_TYPES, null, { lang }).toPromise();\r\n }\r\n\r\n getURO(lang: Language = null) {\r\n return this.api.get(EndPoint.STOCK_TYPES_URO, null, { lang }).toPromise();\r\n }\r\n\r\n getAllowed(accountId: number = 0, transactAllowedOnly: boolean = false) {\r\n return this.api.get(EndPoint.STOCK_TYPES_ALLOWED, [accountId ? accountId : 0, transactAllowedOnly]).toPromise();\r\n }\r\n\r\n create(dto: StockTypeDto) {\r\n return this.api.create(EndPoint.STOCK_TYPES, dto).toPromise();\r\n }\r\n\r\n update(dto: StockTypeDto) {\r\n return this.api.update(EndPoint.STOCK_TYPES, dto).toPromise();\r\n }\r\n\r\n delete(id: number) {\r\n return this.api.delete(EndPoint.STOCK_TYPES, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { TripTikClaimsStatusesVm, TripTikClaimStatusDto } from '../models/trip-tik-claim-status';\r\n\r\n@Injectable()\r\nexport class TripTikClaimsStatusesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(parentId, lang = null) {\r\n return this.api.get(EndPoint.TRIPTIK_CLAIMS_STATUSES, [parentId], { lang }).toPromise();\r\n }\r\n\r\n // getBaseStatuses(lang = null) {\r\n // return this.api.get(EndPoint.TRIPTIK_CLAIMS_STATUSES_BASE, null, { lang }).toPromise();\r\n // }\r\n\r\n // create(dto: TripTikClaimStatusDto) {\r\n // return this.api.create(EndPoint.TRIPTIK_CLAIMS_STATUSES, dto).toPromise();\r\n // }\r\n\r\n // update(dto: TripTikClaimStatusDto) {\r\n // return this.api.update(EndPoint.TRIPTIK_CLAIMS_STATUSES, dto).toPromise();\r\n // }\r\n\r\n // delete(id: number) {\r\n // return this.api.delete(EndPoint.TRIPTIK_CLAIMS_STATUSES, id).toPromise();\r\n // }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\n//import { VehicleColorDto, VehicleColorsVm } from 'src/app/core/nswag.api';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { LookupVm, LookupDto } from '../models/lookup';\r\n\r\n@Injectable()\r\nexport class VehicleColorsService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(lang: Language = null) {\r\n return this.api.get(EndPoint.VEHICLE_COLORS, null, { lang }).toPromise();\r\n }\r\n\r\n create(dto: LookupDto) {\r\n return this.api.create(EndPoint.VEHICLE_COLORS, dto).toPromise();\r\n }\r\n\r\n update(dto: LookupDto) { \r\n return this.api.update(EndPoint.VEHICLE_COLORS, dto).toPromise();\r\n }\r\n\r\n delete(id: number) { \r\n return this.api.delete(EndPoint.VEHICLE_COLORS, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\n//import { CountryDto, VehicleMakesVm, VehicleMakeDto } from 'src/app/core/nswag.api';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { LookupVm, LookupDto } from '../models/lookup';\r\nimport { CountryDto } from '../models/country';\r\n\r\n@Injectable()\r\nexport class VehicleMakesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(lang: Language = null) {\r\n return this.api.get(EndPoint.VEHICLE_MAKES, null, { lang }).toPromise();\r\n }\r\n\r\n create(dto: LookupDto) {\r\n return this.api.create(EndPoint.VEHICLE_MAKES, dto).toPromise();\r\n }\r\n\r\n update(dto: CountryDto) {\r\n return this.api.update(EndPoint.VEHICLE_MAKES, dto).toPromise();\r\n }\r\n\r\n delete(id: number) {\r\n return this.api.delete(EndPoint.VEHICLE_MAKES, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { VehicleModelsVm, VehicleModelDto } from '../models/vehicle-model';\r\n\r\n@Injectable()\r\nexport class VehicleModelsService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(makeId = 0, stockTypeId = null, lang = null) {\r\n // const params = [makeId];\r\n // if (stockTypeId)\r\n // params.push(stockTypeId ? stockTypeId : nul);\r\n\r\n return this.api.get(EndPoint.VEHICLE_MODELS, [makeId, stockTypeId], { lang }).toPromise();\r\n }\r\n\r\n create(dto: VehicleModelDto) {\r\n return this.api.create(EndPoint.VEHICLE_MODELS, dto).toPromise();\r\n }\r\n\r\n update(dto: VehicleModelDto) {\r\n return this.api.update(EndPoint.VEHICLE_MODELS, dto).toPromise();\r\n }\r\n\r\n delete(id: number) {\r\n return this.api.delete(EndPoint.VEHICLE_MODELS, id).toPromise();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { LookupVm, LookupDto } from '../models/lookup';\r\n\r\n@Injectable()\r\nexport class VehicleTypesService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n get(lang: Language = null) {\r\n return this.api.get(EndPoint.VEHICLE_TYPES, null, { lang }).toPromise();\r\n }\r\n\r\n create(dto: LookupDto) {\r\n return this.api.create(EndPoint.VEHICLE_TYPES, dto).toPromise();\r\n }\r\n\r\n update(dto: LookupDto) { \r\n return this.api.update(EndPoint.VEHICLE_TYPES, dto).toPromise();\r\n }\r\n\r\n delete(id: number) { \r\n return this.api.delete(EndPoint.VEHICLE_TYPES, id).toPromise();\r\n }\r\n}","import { DefaultAlertAction } from './../../../../shared/models/default-alert-action';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AuthService } from './../../../../core/auth/auth.service';\r\nimport { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { UsersService } from 'src/app/features/security/services/users.service';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DeleteModal, UpdateModal } from 'src/app/shared/models/modal';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { UserDto, UsersVm } from '../../models/user';\r\nimport { AccountMetaDto } from 'src/app/features/accounts/models/account';\r\nimport { AccountsService } from 'src/app/features/accounts/services/accounts.service';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { UsersDataSource } from '../../services/users-datasource';\r\nimport { tap } from 'rxjs/operators';\r\nimport { merge } from 'rxjs/internal/observable/merge';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { fromEvent } from 'rxjs';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'mac-account-users',\r\n templateUrl: './account-users.component.html',\r\n styleUrls: ['./account-users.component.scss'],\r\n providers: [UsersService, AccountsService]\r\n})\r\nexport class AccountUsersComponent implements OnInit {\r\n displayedColumns: string[] = ['names', 'username', 'email', 'phoneNumber', 'created', 'permissions', 'isActive', 'tools'];\r\n cashedVm: UsersVm;\r\n accounts: LookupDto[];\r\n lang: Language;\r\n accountId: number = 0;\r\n dataSource: UsersDataSource;\r\n parentAccounts: AccountMetaDto[] = [];\r\n badgeClasses: string[];\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('account', { static: true }) account: ElementRef;\r\n @ViewChild('filter', { static: true }) filter: ElementRef;\r\n @ViewChild('filterBtn') filterBtn: ElementRef;\r\n\r\n get Role() { return Role; }\r\n\r\n constructor(private service: UsersService,\r\n private confirmService: ConfirmService,\r\n private loader: LoadingService,\r\n private alert: AlertService,\r\n public auth: AuthService,\r\n public translate: TranslateService,\r\n public route: ActivatedRoute,\r\n private accountsService: AccountsService,\r\n private location: Location,\r\n private router: Router) { }\r\n\r\n ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.accountId = Number(this.route.snapshot.paramMap.get('accountId'));\r\n this.loader.load(LoaderType.Nav);\r\n\r\n if (!this.auth.currentUser.isInRole(Role.USERS_SECURITY_GROUPS_READ)) {\r\n const i = this.displayedColumns.findIndex(c => c == \"permissions\");\r\n this.displayedColumns.splice(i, 1);\r\n }\r\n\r\n if (!this.auth.currentUser.isInRole(Role.USERS_UPDATE)\r\n && !this.auth.currentUser.isInRole(Role.USERS_DELETE))\r\n this.displayedColumns.splice(this.displayedColumns.length - 1, 1);\r\n\r\n this.route.params.subscribe(p => {\r\n if (p.accountId == 0) {\r\n //console.warn(this.filter.nativeElement.value);\r\n this.filter.nativeElement.value = \"\";\r\n this.accountId = 0;\r\n //this.account.select(0);\r\n //this.account.nativeElement.value = 0;\r\n //this.account.valueChange.emit();\r\n }\r\n });\r\n\r\n this.sort.active = 'names';\r\n this.sort.direction = 'asc';\r\n this.paginator.pageSize = 10;\r\n this.dataSource = new UsersDataSource(this.service, this.loader);\r\n this.dataSource.loadUsers(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction, '', this.accountId);\r\n\r\n //this.loader.load(LoaderType.Body);\r\n // this.accountsService.getChildrenAccountsLookup(!this.auth.isSystemAccount ? this.auth.accountId : 0).then(d => {\r\n // this.accounts = populateAccountsSelect(d.list);\r\n // this.accounts.unshift({ id: 0, titles: [[\"الكل\", \"All\"][this.lang]] });\r\n // }).finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n filterWithAccount(id) {\r\n //console.log(id);\r\n this.accountId = id;\r\n //this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: 0, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n // this.dataSource.loadUsers(0, this.paginator.pageSize, this.sort.active, this.sort.direction, '', this.accountId);\r\n\r\n }\r\n\r\n async ngAfterViewInit() {\r\n this.loader.load(LoaderType.Body);\r\n this.accounts = /*populateAccountsSelect(*/await (await this.accountsService.getChildrenAccountsLookup(!this.auth.currentUser.isSystemAccount ? this.auth.currentUser.accountId : 0)).list/*)*/;\r\n this.accounts.unshift({ id: 0, titles: [[\"الكل\", \"All\"][this.lang]] });\r\n this.loader.load(LoaderType.Body, false);\r\n\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n ).subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => {\r\n ////console.log(this.account.value);\r\n this.dataSource.loadUsers(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction, this.filter.nativeElement.value.trim(), this.accountId)\r\n })).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n merge(fromEvent(this.filter.nativeElement, 'search'), fromEvent(this.filterBtn.nativeElement, 'click'))\r\n .pipe(\r\n tap(() => {\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.loadUsers(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction, this.filter.nativeElement.value.trim(), this.accountId)\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n this.dataSource.connect().subscribe(() => {\r\n this.router.navigate([`/${this.translate.currentLang}/security/users/list/${this.accountId}`], { replaceUrl: true });\r\n //this.location.replaceState(`/${this.translate.currentLang}/security/users/list/${this.accountId}`);\r\n });\r\n }\r\n\r\n tryDelete(row: UserDto) {\r\n if (row.id == this.auth.currentUser.userId || (!this.auth.currentUser.isSystemAccount && row.accountId != this.auth.currentUser.accountId) || !this.auth.currentUser.isInRole(Role.USERS_DELETE))\r\n return;\r\n\r\n let modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'SEC_LINK_USER_ACCOUNT',\r\n title: row.names ? row.names[0] : row.username, //todo: get with lang index\r\n note: 'SEC_USER_CONFIRM_DELETE_NOTE'\r\n }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n this.delete(row.id);\r\n }\r\n });\r\n }\r\n\r\n tryUpdateStatus(row: UserDto, active) {\r\n if (row.id == this.auth.currentUser.userId || (!this.auth.currentUser.isSystemAccount && row.accountId != this.auth.currentUser.accountId) || !this.auth.currentUser.isInRole(Role.USERS_UPDATE))\r\n return;\r\n\r\n if (!active) {\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n type: 'SEC_LINK_USER_ACCOUNT',\r\n confirmQuestion: 'SEC_USER_CONFIRM_DEACTIVATE_CONFIRMATION_QUESTION',\r\n title: row.names ? row.names[0] : row.username,\r\n action: '_ACTION_DEACTIVATE',\r\n submitText: '_ACTION_DEACTIVATE',\r\n note: 'SEC_USER_CONFIRM_DEACTIVATE_NOTE',\r\n dangerNote: ' '\r\n }));\r\n const _data = this.dataSource.UsersSubject.value;\r\n const i = _data.findIndex(d => d.id == row.id);\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n this.updateStatus(row.id, active);\r\n }\r\n }).catch(e => {\r\n _data[i].isActive = true;\r\n });\r\n } else this.updateStatus(row.id, active);\r\n }\r\n\r\n private delete(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.service.deleteUser(id)\r\n .then(r => {\r\n if (r) {\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n this.dataSource.UsersSubject.next(this.dataSource.UsersSubject.value.filter(d => d.id != id));\r\n this.dataSource.countSubject.next(this.dataSource.countSubject.value - 1);\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private updateStatus(id, active) {\r\n const _data = this.dataSource.UsersSubject.value;\r\n const i = _data.findIndex(d => d.id == id);\r\n this.loader.load(LoaderType.Body);\r\n this.service.updateUserStatus(id, active)\r\n .then(r => {\r\n if (r)\r\n this.alert.success(active ? '_ACTION_ACTIVATING' : '_ACTION_DEACTIVATING')\r\n else {\r\n _data[i].isActive = true;\r\n this.alert.failure(active ? '_ACTION_ACTIVATING' : '_ACTION_DEACTIVATING');\r\n }\r\n })\r\n .catch(e => {\r\n _data[i].isActive = true;\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n}","import { DefaultAlertAction } from './../../../../shared/models/default-alert-action';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { UsersService } from 'src/app/features/security/services/users.service';\r\nimport { SecurityService } from '../../services/security.service';\r\nimport { SecurityGroupLookupDto } from '../../models/security-groups.model';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { comparePasswords, usernameValidator, numbersOnlyValidator, nonEnglishCharactersValidator, nonArabicCharactersValidator } from 'src/app/shared/services/custom-validators';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { UserDto } from '../../models/user';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { CustomsPortsService } from 'src/app/features/lookups/services/customs-ports.service';\r\n\r\n@Component({\r\n selector: 'mac-manage-user',\r\n templateUrl: './manage-user.component.html',\r\n styleUrls: ['./manage-user.component.scss'],\r\n providers: [UsersService, SecurityService, CustomsPortsService]\r\n})\r\nexport class ManageUserComponent implements OnInit {\r\n\r\n userForm: FormGroup;\r\n userId: string;\r\n cashedUserData: UserDto;\r\n loading: boolean;\r\n updateMode: boolean = false;\r\n changingPassword: boolean = false;\r\n groups: SecurityGroupLookupDto[] = [];\r\n _claimsCountries: LookupDto[] = [];\r\n lang: number = 0;\r\n isClaimsApplicable: boolean;\r\n claimsSystemGroupId: string = \"#\";\r\n isClaimsGroupSelected: boolean;\r\n\r\n get names() { return this.userForm.get('names') as FormArray; }\r\n get username() { return this.userForm.get('username'); }\r\n get phoneNumber() { return this.userForm.get('phoneNumber'); }\r\n get email() { return this.userForm.get('email'); }\r\n get password() { return this.userForm.get('pass.password'); }\r\n get passwordConfirm() { return this.userForm.get('pass.passwordConfirm'); }\r\n get securityGroups() { return this.userForm.get('securityGroups'); }\r\n get claimsCountries() { return this.userForm.get('claimsCountries'); }\r\n\r\n\r\n\r\n constructor(private fb: FormBuilder,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router,\r\n private usersService: UsersService,\r\n private securityService: SecurityService,\r\n private customsPortsService: CustomsPortsService,\r\n private loader: LoadingService,\r\n private alert: AlertService,\r\n public translate: TranslateService,\r\n public auth: AuthService) { }\r\n\r\n async ngOnInit() {\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.userId = this.activatedRoute.snapshot.paramMap.get(\"id\");\r\n this.updateMode = this.userId ? true : false;\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n this.groups = await (await this.securityService.getAccountGroupsLookup()).groups;\r\n\r\n if (this.auth.currentUser.isAdministrator)\r\n this.claimsSystemGroupId = this.groups.find(x => x.titles[1] == \"Claims\").id;\r\n\r\n const customsPorts = (await this.customsPortsService.get(this.lang)).list;\r\n\r\n\r\n\r\n this._claimsCountries = [...new Map(customsPorts.map(item =>\r\n [item['countryId'], item])).values()].map(x => {\r\n id: x.countryId,\r\n titles: x.countryTitles\r\n });\r\n\r\n\r\n\r\n //console.log(this.groups);\r\n //todo: filter by lang\r\n\r\n\r\n //console.log(this.claimsCountries);\r\n // const arrayUniqueByKey \r\n\r\n\r\n if (this.userId) {\r\n\r\n //this.isClaimsApplicable = await this.securityService.isClaimsApplicable(this.userId);\r\n\r\n this.usersService.getUserData(this.userId)\r\n .then(result => {\r\n //console.log(result);\r\n\r\n this.isClaimsApplicable = result.isClaimsApplicable;\r\n\r\n this.cashedUserData = result.user;\r\n this.userForm.patchValue(this.cashedUserData);\r\n this.username.disable();\r\n this.password.disable();\r\n\r\n if (result.user.accountId != this.auth.currentUser.accountId)\r\n this.securityGroups.disable();\r\n\r\n }).catch(e => {\r\n // //console.log(e);\r\n // this.alert.error('_MESSAGE_ERROR_LOADING_DATA');\r\n }).finally(() => this.loader.load(LoaderType.Nav, false));\r\n } else {\r\n //this.isClaimsApplicable = this.auth.currentUser.isAdministrator;\r\n this.loader.load(LoaderType.Nav, false);\r\n }\r\n }\r\n\r\n onGroupSelectionChange(groups) {\r\n this.isClaimsGroupSelected = groups.indexOf(this.claimsSystemGroupId) > -1;\r\n if (!this.isClaimsGroupSelected && !this.isClaimsApplicable)\r\n this.claimsCountries.reset();\r\n }\r\n\r\n changePassword() {\r\n this.changingPassword = !this.changingPassword;\r\n this.changingPassword ?\r\n this.password.enable() :\r\n this.password.disable();\r\n }\r\n\r\n onSubmit() {\r\n console.warn(this.userForm.value);\r\n\r\n if (this.updateMode && !this.changingPassword) {\r\n this.userForm.get('pass').setErrors(null);\r\n this.password.setErrors(null);\r\n this.passwordConfirm.setErrors(null);\r\n }\r\n\r\n if (!this.userForm.valid)\r\n return Utils.validateAllFormFields(this.userForm);\r\n\r\n this.loader.load(LoaderType.Body);\r\n let user = this.userForm.value as UserDto;\r\n\r\n if (this.updateMode) {\r\n\r\n user.id = this.userId;\r\n user.password = this.password.value;\r\n\r\n this.usersService.updateUserData(user)\r\n .then(r => {\r\n r ?\r\n this.alert.success(DefaultAlertAction.UPDATING)\r\n : this.alert.failure(DefaultAlertAction.UPDATING);\r\n })\r\n .catch(e => {\r\n // //console.log(e);\r\n // this.alert.error();\r\n })\r\n .finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.router.navigate([this.translate.currentLang, 'security', 'users', 'list', this.auth.currentUser.accountId]);\r\n });\r\n } else {\r\n //new\r\n user.password = this.password.value;\r\n\r\n this.usersService.createUser(user)\r\n .then(result => {\r\n //console.log(result)\r\n result ?\r\n this.alert.success(DefaultAlertAction.ADDING)\r\n : this.alert.failure(DefaultAlertAction.ADDING);\r\n })\r\n .catch(e => {\r\n //console.log(e);\r\n // this.alert.error();\r\n })\r\n .finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.router.navigate([this.translate.currentLang, 'security', 'users', 'list', this.auth.currentUser.accountId]);\r\n });\r\n }\r\n }\r\n\r\n private formInit() {\r\n this.userForm = this.fb.group({\r\n names: this.fb.array([\r\n ['', [Validators.required, nonEnglishCharactersValidator, Validators.minLength(3), Validators.maxLength(100)]],\r\n ['', [Validators.required, nonArabicCharactersValidator, Validators.minLength(3), Validators.maxLength(100)]]\r\n ]),\r\n username: this.fb.control('',\r\n [Validators.required, usernameValidator, Validators.minLength(5), Validators.maxLength(50)],\r\n !this.updateMode ? this.usersService.validateUsernameNotTaken.bind(this) : null),\r\n phoneNumber: ['', [Validators.required, numbersOnlyValidator]],\r\n email: ['', [Validators.email]],\r\n pass: this.fb.group({\r\n password: ['', [Validators.required, Validators.minLength(6)]], //todo: regex for password pattern\r\n passwordConfirm: ['']\r\n }, { validator: comparePasswords }),\r\n securityGroups: [''],\r\n claimsCountries: ['']\r\n });\r\n }\r\n}","import { TranslateService } from '@ngx-translate/core';\r\nimport { DefaultAlertAction } from './../../../../shared/models/default-alert-action';\r\nimport { nonEnglishCharactersValidator, nonArabicCharactersValidator } from 'src/app/shared/services/custom-validators';\r\nimport { MatTreeFlatDataSource } from '@angular/material/tree';\r\nimport { SecurityGroupsVm, SecurityRolesVm } from './../../models/security-groups.model';\r\n// import { SecurityService } from './../../services/security.service';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport * as _ from 'lodash';\r\nimport { FormGroup, FormBuilder, Validators, FormControl, FormArray } from '@angular/forms';\r\nimport { SecurityAction, ObjectActionDto, SecurityGroupDto } from '../../models/security-groups.model';\r\nimport { SecurityService } from '../../services/security.service';\r\nimport { ActivatedRoute, Router, NavigationExtras, Navigation } from '@angular/router';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { Location } from '@angular/common';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { DeleteModal } from 'src/app/shared/models/modal';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\n\r\n@Component({\r\n selector: 'mac-security-groups',\r\n templateUrl: './security-groups.component.html',\r\n styleUrls: ['./security-groups.component.scss'],\r\n providers: [SecurityService]\r\n})\r\nexport class SecurityGroupsComponent implements OnInit {\r\n\r\n displayedColumns: any[] = []; // 'action-1'];//, 'action-2', 'action-3', 'action-4'];\r\n securityGroupForm: FormGroup;\r\n securityActions: SecurityAction[] = [];\r\n securityGroups: SecurityGroupDto[] = [];\r\n securityRoles: SecurityRolesVm = new SecurityRolesVm();\r\n selectedGroup: SecurityGroupDto;\r\n dataSource: MatTableDataSource;\r\n selections: SelectionModel[] = [];\r\n formEnabled: boolean = true;\r\n objectsCol: {};\r\n mode: string;\r\n submitted: boolean;\r\n loading: boolean;\r\n navigation: Navigation;\r\n lang: number = 0;\r\n\r\n get titles() { return this.securityGroupForm.get('titles') as FormArray; }\r\n //get descriptions() { return this.securityGroupForm.get('descriptions') as FormArray; }\r\n get objectsActions() { return this.securityGroupForm.get('objectsActions') as FormArray; }\r\n get displayedColumnsTitles() { return this.displayedColumns.map(c => c.titles[this.lang]); }\r\n get Role() {\r\n return Role;\r\n }\r\n\r\n constructor(private fb: FormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private securityService: SecurityService,\r\n private location: Location,\r\n private confirmService: ConfirmService,\r\n private translate: TranslateService,\r\n public auth: AuthService) {\r\n\r\n this.navigation = this.router.getCurrentNavigation();\r\n this.mode = 'LIST';\r\n this.objectsCol = { id: 0, titles: ['الكائنات', 'Objects'] };\r\n }\r\n\r\n async ngOnInit() {\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.formInit();\r\n this.dataSource = new MatTableDataSource();\r\n this.loader.load(LoaderType.Nav);\r\n this.mode = this.route.snapshot.data.mode;\r\n\r\n this.securityRoles = await this.securityService.getAccountRoles();\r\n this.securityGroups = (await this.securityService.getAccountGroups(null)).groups;\r\n\r\n if (this.mode == 'LIST' || this.mode == 'UPDATE') {\r\n //this.securityService.getAccountGroups(null).then(vm => {\r\n // //console.log(vm);\r\n // this.securityGroups = vm.groups;\r\n let groupId;\r\n if (this.mode == 'UPDATE') {\r\n groupId = this.route.snapshot.paramMap.get('id');\r\n }\r\n else if (this.navigation && this.navigation.extras.state) {\r\n const a = this.navigation.extras.state as { id: string };\r\n groupId = a.id;\r\n } else groupId = this.securityGroups[0].id;\r\n\r\n this.onSelectGroup(groupId);\r\n //})\r\n //.finally(() => this.loader.load(LoaderType.Nav, false));\r\n } else if (this.mode == 'ADD') {\r\n // this.securityService.getAccountRoles().then(vm => {\r\n\r\n\r\n let _group = new SecurityGroupDto();\r\n _group.id = null;\r\n _group.titles = ['', ''];\r\n //_group.descriptions = ['', ''];\r\n _group.availableActions = this.securityRoles.availableActions;\r\n _group.objectsActions = this.securityRoles.objectsActions;\r\n _group.isSystemGroup = false;\r\n\r\n this.onSelectGroup(_group);\r\n this.mode = 'ADD';\r\n //this.location.replaceState(`/${this.translate.currentLang}/security/groups/add`);\r\n this.securityGroupForm.enable();\r\n this.formEnabled = true;\r\n\r\n\r\n // this.selectedGroup.objectsActions.filter(x => x.securityObject.id == 1 && x.actions.indexOf(2) > -1)[0].\r\n //console.log(this.selectedGroup);\r\n\r\n // }).catch(e => {\r\n // // //console.log(e);\r\n // // this.alert.error('_MESSAGE_ERROR_LOADING_DATA');\r\n // }).finally(() => this.loader.load(LoaderType.Nav, false));\r\n } else this.loader.load(LoaderType.Nav, false);\r\n }\r\n\r\n private formInit() {\r\n this.securityGroupForm = this.fb.group({\r\n titles: this.fb.array([\r\n ['', [Validators.required, nonEnglishCharactersValidator, Validators.minLength(3), Validators.maxLength(50)]],\r\n ['', [Validators.required, nonArabicCharactersValidator, Validators.minLength(3), Validators.maxLength(50)]]\r\n ]),\r\n objectsActions: this.fb.array([])\r\n });\r\n }\r\n\r\n private addCheckboxes(objectsActions: ObjectActionDto[], empty: boolean = false) {\r\n this.clearSelections();\r\n let matrixIndex = 0;\r\n let formArray = (this.securityGroupForm.controls.objectsActions as FormArray);\r\n formArray.clear();\r\n objectsActions.forEach((objAct, i) => {\r\n objAct.actions.forEach((actionId, _i) => {\r\n const value = !empty && actionId != 0 ? objAct.securityObject.id + \",\" + actionId : null;\r\n const control = new FormControl(value);\r\n formArray.push(control);\r\n\r\n if (!empty && actionId != 0)\r\n this.cellToggle(objAct, actionId, matrixIndex, false);\r\n\r\n matrixIndex++;\r\n });\r\n });\r\n }\r\n\r\n onSelectGroup(group: string | SecurityGroupDto, path: string = null) {\r\n //console.log(group);\r\n this.loader.load(LoaderType.Nav);\r\n this.selectedGroup = group instanceof SecurityGroupDto ?\r\n group :\r\n _.cloneDeep(this.securityGroups.find(g => g.id == group));\r\n\r\n //console.log(this.selectedGroup);\r\n\r\n this.dataSource = new MatTableDataSource(this.selectedGroup.objectsActions);\r\n this.securityActions = this.selectedGroup.availableActions;\r\n this.selections = [];\r\n this.securityActions.forEach(() => this.selections.push(new SelectionModel(true, [])));\r\n this.displayedColumns = [this.objectsCol];\r\n this.displayedColumns.push(...this.securityActions);\r\n\r\n this.securityGroupForm.patchValue({\r\n titles: this.selectedGroup.titles,\r\n //descriptions: ['', '']\r\n });\r\n\r\n this.addCheckboxes(this.selectedGroup.objectsActions, group instanceof SecurityGroupDto && !group.id);\r\n\r\n this.securityGroupForm.disable();\r\n this.formEnabled = false;\r\n this.mode = 'LIST';\r\n if (path)\r\n this.location.replaceState(`/${this.translate.currentLang}/${path}`);\r\n\r\n //this.location.replaceState(`/${this.translate.currentLang}/security/groups/`);\r\n\r\n\r\n this.loader.load(LoaderType.Nav, false);\r\n }\r\n\r\n isColSelected(actionId: number) {\r\n const i = this.getActionIndex(actionId);\r\n\r\n const numSelected = this.selections[i].selected.length;\r\n const numRows = [...this.dataSource.data].filter(d => [...d.actions].map(x => Math.abs(x)).indexOf(actionId) > -1).length;\r\n\r\n return numSelected == numRows;\r\n }\r\n\r\n isRowSelected(row: ObjectActionDto, actionId: number) {\r\n const i = this.getActionIndex(actionId);\r\n return this.selections[i].isSelected(row.securityObject.id + \",\" + actionId);\r\n }\r\n\r\n colToggle(actionId: number) {\r\n const i = this.getActionIndex(actionId);\r\n const colSelected = this.isColSelected(actionId);\r\n\r\n this.dataSource.data\r\n .forEach((row, _i) => {\r\n ////console.warn(actionId);\r\n ////console.warn(row);\r\n if (row.actions[i] != 0) {\r\n ////console.warn(row.actions[i]);\r\n const value = row.securityObject.id + \",\" + actionId;\r\n //const value = row.securityObject.id + \",\" + Math.abs(row.actions[i]);\r\n const matrixIndex = (this.displayedColumns.length - 1) * _i + i;\r\n if (!colSelected) {\r\n if (!this.selections[i].isSelected(value)) {\r\n this.cellToggle(row, actionId, matrixIndex);\r\n this.selections[i].select(value);\r\n }\r\n } else {\r\n this.cellToggle(row, actionId, matrixIndex);\r\n this.selections[i].deselect(value);\r\n }\r\n }\r\n });\r\n }\r\n\r\n cellToggle(row: ObjectActionDto, actionId: number, matrixIndex: number, event: boolean = true) {\r\n\r\n const i = this.getActionIndex(actionId);\r\n const value = row.securityObject.id + \",\" + this.securityActions[i].id;\r\n //const value = row.securityObject.id + \",\" + actionId;\r\n let control = (this.securityGroupForm.controls.objectsActions as FormArray).controls[matrixIndex];\r\n ////console.log(actionId, value);\r\n if (actionId < 0 && !event) {\r\n control.reset();\r\n this.selections[i].deselect(value);\r\n }\r\n else {\r\n if (!this.isRowSelected(row, this.securityActions[i].id)) {\r\n control.setValue(value);\r\n this.selections[i].select(value);\r\n } else {\r\n control.reset();\r\n this.selections[i].toggle(value);\r\n }\r\n }\r\n }\r\n\r\n getActionIndex(actionId: number) {\r\n return this.securityActions.findIndex(x => x.id == Math.abs(actionId));\r\n }\r\n\r\n //todo: include confirmation pop-up\r\n clearSelections() {\r\n //confirm first\r\n this.selections.forEach(s => s.clear());\r\n }\r\n\r\n totalSelected() {\r\n let total = 0;\r\n this.selections.forEach(s => {\r\n total += s.selected.length;\r\n })\r\n return total;\r\n }\r\n\r\n exit() {\r\n this.onSelectGroup(this.securityGroups[0].id, 'security/groups');\r\n }\r\n\r\n update() {\r\n\r\n\r\n let _group = new SecurityGroupDto();\r\n _group.id = this.selectedGroup.id;\r\n _group.titles = this.selectedGroup.titles;\r\n //_group.descriptions = ['', ''];\r\n _group.availableActions = this.securityRoles.availableActions;\r\n _group.objectsActions = this.securityRoles.objectsActions;\r\n _group.isSystemGroup = false;\r\n\r\n //console.log(this.securityRoles);\r\n //map\r\n _group.objectsActions.forEach((oa, i) => {\r\n // //console.log(oa.securityObject.id);\r\n // //console.log(this.selectedGroup.objectsActions[i]);\r\n if (this.selectedGroup.objectsActions.map(x => x.securityObject.id).indexOf(oa.securityObject.id) > -1)\r\n oa.actions = this.selectedGroup.objectsActions.filter(x => x.securityObject.id == oa.securityObject.id)[0].actions;\r\n else oa.actions = oa.actions.map(x => x > 0 ? -x : (x < 0 ? x : 0))\r\n // if (oa.securityObject.id == this.selectedGroup.objectsActions[i].securityObject.id)\r\n // oa.actions = [...this.selectedGroup.objectsActions[i].actions];\r\n\r\n\r\n })\r\n //console.log(this.totalSelected())\r\n\r\n this.onSelectGroup(_group, 'security/groups/update/' + this.selectedGroup.id);\r\n\r\n //bind all roles,\r\n //fetch current data\r\n //this.location.replaceState(`/${this.translate.currentLang}/security/groups/update/${this.selectedGroup.id}`);\r\n this.mode = 'UPDATE';\r\n\r\n //this.objectsActions.controls.forEach(c => { c.enable(); //console.log(c); });\r\n this.securityGroupForm.enable();\r\n this.formEnabled = true;\r\n\r\n }\r\n\r\n reset() {\r\n this.securityGroupForm.reset();\r\n this.clearSelections()\r\n // if (this.mode == 'ADD')\r\n // this.router.navigate(['/', this.translate.currentLang, 'security', 'groups']);\r\n\r\n // //reset ?\r\n // this.location.replaceState(`/${this.translate.currentLang}/security/groups/list`);\r\n // this.onSelectGroup(this.selectedGroup.id); //to refresh\r\n }\r\n\r\n delete(id: string) {\r\n //this._loading();\r\n this.loader.load(LoaderType.Body);\r\n this.securityService.deleteAccountGroup(id)\r\n .then(r => {\r\n // //console.log(r);\r\n if (r) {\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n const groupIndex = this.securityGroups.findIndex(g => g.id == id);\r\n this.securityGroups.splice(groupIndex, 1);\r\n\r\n //display the first group as a default option\r\n this.onSelectGroup(this.securityGroups[0].id, 'security/groups');\r\n } else {\r\n this.alert.failure(DefaultAlertAction.DELETING);\r\n }\r\n })\r\n .finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n tryDelete() {\r\n let modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'SEC_TITLE_SECURITY_GROUP',\r\n title: this.selectedGroup.titles[this.lang],\r\n note: 'SEC_GROUP_CONFIRM_DELETE_NOTE',\r\n dangerNote: 'SEC_GROUP_CONFIRM_DELETE_DANGER_NOTE'\r\n }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this.delete(this.selectedGroup.id);\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (!this.securityGroupForm.valid)\r\n return Utils.validateAllFormFields(this.securityGroupForm);\r\n\r\n this.loader.load(LoaderType.Body);\r\n const [availableActions, objectsActions] = this.mapCheckboxes();\r\n\r\n //console.log(this.selectedGroup);\r\n const _form = _.cloneDeep(this.selectedGroup);\r\n\r\n _form.titles = this.securityGroupForm.controls['titles'].value;\r\n //_form.descriptions = this.securityGroupForm.controls['descriptions'].value;\r\n _form.availableActions = availableActions;\r\n _form.objectsActions = objectsActions;\r\n _form.isSystemGroup = false;\r\n\r\n //console.log(_form);\r\n if (this.mode == 'ADD') {\r\n _form.id = null;\r\n this.securityService.createAccountGroup(_form)\r\n .then(result => {\r\n //console.log(result)\r\n if (result != null) {\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n const navigationExtras: NavigationExtras = { state: { id: result } };\r\n this.router.navigate(['/', this.translate.currentLang, 'security', 'groups'], navigationExtras);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n else if (this.mode == 'UPDATE') {\r\n const isDelete = this.securityGroupForm.value.objectsActions.filter(oa => oa != null).length == 0;\r\n if (isDelete) {\r\n this.tryDelete();\r\n }\r\n else {\r\n //console.log(_form);\r\n this.securityService.updateAccountGroup(_form)\r\n .then(r => {\r\n if (r) {\r\n\r\n this.alert.success(DefaultAlertAction.UPDATING);\r\n const groupIndex = this.securityGroups.findIndex(g => g.id == _form.id);\r\n\r\n\r\n //add recently saved version to cache\r\n // //console.log(this.securityGroups[groupIndex]);\r\n\r\n // //map 'n/a' values \r\n // const __form = _.cloneDeep(_form);;\r\n\r\n // __form.objectsActions.forEach(x)\r\n\r\n\r\n this.securityGroups[groupIndex] = _.cloneDeep(_form);\r\n } else {\r\n this.alert.failure(DefaultAlertAction.UPDATING);\r\n }\r\n })\r\n .finally(() => {\r\n this.loader.load(LoaderType.Body, false);\r\n this.onSelectGroup(this.selectedGroup.id, 'security/groups');\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n private mapCheckboxes(): [SecurityAction[], ObjectActionDto[]] {\r\n // //console.log(this.securityGroupForm.controls.objectsActions);\r\n const formArr = this.securityGroupForm.controls.objectsActions as FormArray;\r\n const availableActions = _.cloneDeep(this.selectedGroup.availableActions);\r\n const objectsActions = _.cloneDeep(this.selectedGroup.objectsActions);\r\n\r\n // //console.log(formArr);\r\n // //console.log(availableActions);\r\n // //console.log(objectsActions);\r\n\r\n let matrixIndex = 0;\r\n objectsActions.forEach(oa => {\r\n const _actions = [...oa.actions];\r\n //console.log(_actions);\r\n oa.actions = [];\r\n availableActions.forEach((action, i) => {\r\n let val = formArr.controls[matrixIndex++].value;\r\n\r\n //let _action = _actions[i] == 0 ? 0 : (val ? action.id : -action.id);\r\n\r\n // if (action.id == 2 && oa.securityObject.id == 1) {\r\n // val = 'value';\r\n // }\r\n const _action = _actions[i] == 0 ? 0 : (val ? action.id : -action.id);\r\n //console.log(_action);\r\n\r\n oa.actions.push(_action);\r\n });\r\n\r\n });\r\n return [availableActions, objectsActions];\r\n }\r\n\r\n // private _loading(status: boolean = true) {\r\n // this.loading = status;\r\n // }\r\n\r\n\r\n\r\n add() {\r\n this.router.navigate(['/', this.translate.currentLang, 'security', 'groups', 'add']);\r\n this.ngOnInit();\r\n }\r\n undo(mode: string) {\r\n if (mode == 'ADD')\r\n this.router.navigate(['/', this.translate.currentLang, 'security', 'groups', 'add']);\r\n }\r\n}\r\n","import { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { FormGroup, FormBuilder, Validators, FormArray, FormControl } from '@angular/forms';\r\nimport { UserSecurityGroupsDto, SecurityGroup, UserDto, UsersSecurityGroupsVm } from '../../models/security-groups.model';\r\nimport { SecurityService } from '../../services/security.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport * as _ from 'lodash';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { UpdateModal } from 'src/app/shared/models/modal';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\n\r\n\r\n@Component({\r\n selector: 'mac-users-groups',\r\n templateUrl: './users-groups.component.html',\r\n styleUrls: ['./users-groups.component.scss'],\r\n providers: [SecurityService]\r\n})\r\nexport class UsersGroupsComponent implements OnInit {\r\n usersGroupsForm: FormGroup;\r\n securityGroups: SecurityGroup[];\r\n cashedVm: UsersSecurityGroupsVm;\r\n displayedColumns: any[] = [];\r\n objectsCol: {};\r\n dataSource = new MatTableDataSource();\r\n selections: SelectionModel[] = [];\r\n loading: boolean;\r\n langIndex: number = 0;\r\n\r\n get displayedColumnsTitles() { return this.displayedColumns.map(c => c.titles[0]/*[this.langIndex]*/); }\r\n get Role(){\r\n return Role;\r\n }\r\n\r\n constructor(private fb: FormBuilder,\r\n private securityService: SecurityService,\r\n private alert: AlertService,\r\n private loader: LoadingService,\r\n private confirmService: ConfirmService,\r\n public auth: AuthService,\r\n private translate: TranslateService) { }\r\n\r\n\r\n ngOnInit() {\r\n this.langIndex = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.langIndex = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.dataSource.data = [];\r\n this.formInit();\r\n\r\n this.objectsCol = { id: 0, titles: [this.langIndex == 0 ? 'المستخدمين': 'Users'] };\r\n this.displayedColumns = [this.objectsCol];\r\n\r\n //fetch data from server\r\n this.loader.load(LoaderType.Nav);\r\n this.securityService.getUsersSecurityGroups().then(vm => {\r\n this.cashedVm = vm;\r\n this.dataSource = new MatTableDataSource(vm.usersGroups);\r\n this.securityGroups = vm.availableGroups;\r\n this.securityGroups.forEach(() => this.selections.push(new SelectionModel(true, [])));\r\n this.displayedColumns.push(...this.securityGroups);\r\n this.addCheckboxes(vm.usersGroups);\r\n }).finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n\r\n isColSelected(groupId: string) {\r\n const i = this.getGroupIndex(groupId);\r\n const numSelected = this.selections[i].selected.length;\r\n const numRows = this.dataSource.data.length - 1; //excluding current user\r\n\r\n return numSelected == numRows;\r\n }\r\n\r\n isRowSelected(row: UserSecurityGroupsDto, groupId: string) {\r\n const i = this.getGroupIndex(groupId);\r\n return this.selections[i].isSelected(row.user.id + \",\" + groupId);\r\n }\r\n\r\n colToggle(groupId: string) {\r\n const i = this.getGroupIndex(groupId);\r\n const colSelected = this.isColSelected(groupId);\r\n\r\n this.dataSource.data.filter(d => d.user.id != this.auth.currentUser.userId)\r\n .forEach((row, _i) => {\r\n const value = row.user.id + \",\" + groupId;\r\n const matrixIndex = (this.displayedColumns.length - 1) * _i + i;\r\n if (!colSelected) {\r\n if (!this.selections[i].isSelected(value))\r\n this.cellToggle(row, groupId, matrixIndex);\r\n this.selections[i].select(value);\r\n } else {\r\n this.cellToggle(row, groupId, matrixIndex);\r\n this.selections[i].deselect(value);\r\n }\r\n });\r\n }\r\n\r\n cellToggle(row: UserSecurityGroupsDto, groupId: string, matrixIndex: number) {\r\n const i = this.getGroupIndex(groupId);\r\n\r\n const value = row.user.id + \",\" + groupId;\r\n let control = (this.usersGroupsForm.controls.usersGroups as FormArray).controls[matrixIndex];\r\n\r\n if (!control.disabled) {\r\n !this.isRowSelected(row, groupId) ?\r\n control.setValue(value) :\r\n control.reset();\r\n\r\n this.selections[i].toggle(value);\r\n }\r\n }\r\n\r\n getGroupIndex(groupId: string) {\r\n return this.securityGroups.findIndex(x => x.id == groupId);\r\n }\r\n\r\n //todo: include confirmation pop-up\r\n clearSelections() {\r\n //confirm first\r\n this.selections.forEach(s => s.clear());\r\n }\r\n\r\n\r\n onSubmit() {\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n title: 'SEC_LINK_USERS', \r\n type: 'SEC_TITLE_USERS_GROUPS', \r\n action: '_ACTION_ASSIGN',\r\n confirmQuestion: 'SEC_USER_GROUPS_CONFIRM_UPDATE_CONFIRMATION_QUESTION',\r\n note: 'SEC_USER_GROUPS_CONFIRM_UPDATE_NOTE',\r\n dangerNote: ' ',\r\n submitText: '_ACTION_ASSIGN'\r\n }));\r\n \r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this.update();\r\n });\r\n }\r\n\r\n private update() {\r\n this.loader.load(LoaderType.Body);\r\n const dto = this.mapCheckboxes();\r\n this.securityService.updateUsersSecurityGroups(dto)\r\n .then(r => {\r\n if (r)\r\n this.alert.success('_ACTION_ASSIGNING');\r\n else\r\n this.alert.failure('_ACTION_ASSIGNING');\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private mapCheckboxes() {\r\n const formArr = this.usersGroupsForm.controls.usersGroups as FormArray;\r\n const result = new UsersSecurityGroupsVm();\r\n result.availableGroups = _.cloneDeep(this.cashedVm.availableGroups);\r\n result.usersGroups = _.cloneDeep(this.cashedVm.usersGroups);\r\n\r\n let matrixIndex = 0;\r\n result.usersGroups.forEach(ug => {\r\n ug.user.names = [];\r\n ug.securityGroups = [];\r\n result.availableGroups.forEach(group => {\r\n group.titles = group.descriptions = [];\r\n ug.securityGroups.push(formArr.controls[matrixIndex++].value ? group.id : null);\r\n });\r\n });\r\n return result;\r\n }\r\n\r\n // private _loading(status: boolean = true) {\r\n // this.loading = status;\r\n // }\r\n\r\n private formInit() {\r\n this.usersGroupsForm = this.fb.group({\r\n usersGroups: this.fb.array([])\r\n });\r\n }\r\n\r\n private addCheckboxes(usersGroups: UserSecurityGroupsDto[], empty: boolean = false) {\r\n this.clearSelections();\r\n let matrixIndex = 0;\r\n let formArray = (this.usersGroupsForm.controls.usersGroups as FormArray);\r\n formArray.clear();\r\n usersGroups.forEach((ug, i) => {\r\n ug.securityGroups.forEach((groupId, _i) => {\r\n const value = !empty && groupId ? ug.user.id + \",\" + groupId : null;\r\n\r\n const control = ug.user.id == this.auth.currentUser.userId \r\n || !this.auth.currentUser.isInRole(Role.USERS_SECURITY_GROUPS_UPDATE) ?\r\n new FormControl({ value: value, disabled: true })\r\n : new FormControl(value);\r\n formArray.push(control);\r\n\r\n if (!empty && groupId)\r\n this.cellToggle(ug, groupId, matrixIndex);\r\n\r\n matrixIndex++;\r\n });\r\n });\r\n }\r\n\r\n}\r\n","export class SecurityGroupsVm {\r\n groups: SecurityGroupDto[];\r\n}\r\n\r\nexport class SecurityGroupsLookupVm {\r\n groups: SecurityGroupLookupDto[];\r\n}\r\n\r\nexport class SecurityRolesVm {\r\n availableActions: SecurityAction[];\r\n objectsActions: ObjectActionDto[];\r\n}\r\n\r\nexport class UsersSecurityGroupsVm {\r\n availableGroups: SecurityGroup[];\r\n usersGroups: UserSecurityGroupsDto[];\r\n}\r\n\r\nexport class UserSecurityGroupsDto {\r\n user: UserDto;\r\n securityGroups: string[];\r\n}\r\n\r\nexport class UserDto {\r\n id: string;\r\n names: string[];\r\n}\r\n\r\nexport class SecurityGroupLookupDto {\r\n id: string;\r\n titles: string[];\r\n}\r\n\r\nexport class SecurityGroupDto {\r\n id: string;\r\n titles: string[];\r\n descriptions: string[];\r\n availableActions: SecurityAction[];\r\n objectsActions: ObjectActionDto[];\r\n isSystemGroup: boolean;\r\n}\r\n\r\nexport class ObjectActionDto {\r\n securityObject: SecurityObject;\r\n actions: number[];\r\n}\r\n\r\nexport interface SecurityAction {\r\n id: number;\r\n titles: string[];\r\n}\r\n\r\nexport interface SecurityObject {\r\n id: number;\r\n titles: string[];\r\n}\r\n\r\nexport interface SecurityGroup {\r\n id: string;\r\n titles: string[];\r\n descriptions: string[];\r\n}","import { SecurityGroupsVm, SecurityRolesVm, SecurityGroupDto, SecurityGroupsLookupVm, UsersSecurityGroupsVm } from './../models/security-groups.model';\r\nimport { Injectable } from '@angular/core';\r\nimport { ApiHandler } from '../../../core/api-handler';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\n\r\n@Injectable()\r\nexport class SecurityService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n public getAccountGroups(lang: Language = null) {\r\n return this.api.get(EndPoint.SECURITY_GROUPS, null, lang).toPromise();\r\n }\r\n\r\n public getAccountRoles(lang: Language = null) {\r\n return this.api.get(EndPoint.SECURITY_ROLES, null, lang).toPromise();\r\n }\r\n\r\n public createAccountGroup(dto: SecurityGroupDto) {\r\n return this.api.create(EndPoint.SECURITY_GROUPS, dto).toPromise();\r\n }\r\n\r\n public updateAccountGroup(dto: SecurityGroupDto) {\r\n return this.api.update(EndPoint.SECURITY_GROUPS, dto).toPromise();\r\n }\r\n\r\n public deleteAccountGroup(id: string) {\r\n return this.api.delete(EndPoint.SECURITY_GROUPS, id).toPromise();\r\n }\r\n\r\n public getAccountGroupsLookup(lang: Language = null) {\r\n return this.api.get(EndPoint.SECURITY_GROUPS_LOOKUP, null, lang).toPromise();\r\n }\r\n\r\n public getUsersSecurityGroups() {\r\n return this.api.get(EndPoint.SECURITY_USERS_GROUPS).toPromise();\r\n }\r\n\r\n public updateUsersSecurityGroups(dto: UsersSecurityGroupsVm) {\r\n return this.api.update(EndPoint.SECURITY_USERS_GROUPS, dto).toPromise();\r\n }\r\n\r\n\r\n public isClaimsApplicable(id: string) {\r\n return this.api.get(EndPoint.SECURITY_CLAIMS_APPLICABLE, [id]).toPromise();\r\n }\r\n\r\n\r\n\r\n\r\n // validation\r\n\r\n //todo: convert to generic method, change language parameter to be global enum\r\n public validateGroupTitle(title: string, language: number) {\r\n //todo: implement async validation generic on one controller\r\n }\r\n}","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { catchError, finalize, filter } from 'rxjs/operators';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { UsersService } from './users.service';\r\nimport { UserDto, UsersVm } from '../models/user';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { AccountMetaDto } from '../../accounts/models/account';\r\n\r\n\r\nexport class UsersDataSource implements DataSource {\r\n // add variables to hold the data and number of total records retrieved asynchronously\r\n // BehaviourSubject type is used for this purpose\r\n public UsersSubject = new BehaviorSubject([]);\r\n public ParentsSubject = new BehaviorSubject([]);\r\n\r\n // to show the total number of records\r\n public countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private usersService: UsersService, private loader: LoadingService) {\r\n\r\n }\r\n\r\n loadUsers(pageIndex: number, pageSize: number, sort: string, direction: string, filter: string = '', accountId: number = 0) {\r\n this.usersService.getUsers(pageIndex, pageSize, sort, direction, filter, accountId)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: UsersVm) => {\r\n result.users.forEach(user => {\r\n user.parentAccounts = populateAccountsSelect([user.parentAccounts])[0];\r\n });\r\n this.UsersSubject.next(result.users);\r\n this.ParentsSubject.next(result.parentAccounts);\r\n this.countSubject.next(result.recordsCount);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n connect(): Observable {\r\n return this.UsersSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.UsersSubject.complete();\r\n this.ParentsSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { map } from 'rxjs/operators';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { ValidationDto } from 'src/app/core/models/validation';\r\nimport { SystemObject } from 'src/app/core/models/enums/system-object';\r\nimport { UserDto, UsersVm, UserProfileVm, UserMetaVm, UserDataVm } from '../models/user';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class UsersService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n public getUserMeta(lang: Language = null) {\r\n return this.api.get(EndPoint.SECURITY_USER_META, null, lang).toPromise();\r\n }\r\n\r\n public getUserProfile(lang: Language = null): Promise {\r\n return this.api.get(EndPoint.SECURITY_USER_PROFILE, null, lang).toPromise();\r\n }\r\n\r\n public updateUserProfile(profile: UserProfileVm) {\r\n return this.api.update(EndPoint.SECURITY_USER_PROFILE, profile).toPromise();\r\n }\r\n\r\n public getAccountUsers(accountId: number = 0, lang: Language = null): Promise {\r\n return this.api.get(EndPoint.SECURITY_USERS, accountId, { lang }).toPromise();\r\n }\r\n\r\n public getUsers(pageIndex: number, pageSize: number, sort: string, direction: string, filter: string = '', accountId: number = 0): Observable {\r\n return this.api.get(EndPoint.SECURITY_USERS, accountId, { pageIndex, pageSize, sort, direction, filter });\r\n }\r\n\r\n public getUserData(id: string, lang: Language = null): Promise {\r\n return this.api.get(EndPoint.SECURITY_USER, id, lang).toPromise();\r\n }\r\n\r\n public updateUserData(user: UserDto) {\r\n return this.api.update(EndPoint.SECURITY_USER, user).toPromise();\r\n }\r\n\r\n public createUser(user: UserDto) {\r\n return this.api.create(EndPoint.SECURITY_USER, user).toPromise();\r\n }\r\n\r\n public deleteUser(id: string) {\r\n return this.api.delete(EndPoint.SECURITY_USER, id).toPromise();\r\n }\r\n\r\n public updateUserStatus(id: string, active: boolean) {\r\n return this.api.update(EndPoint.SECURITY_USER, null, [id, active]).toPromise();\r\n }\r\n\r\n\r\n private duplicatedUsername(username: string) {\r\n const dto = new ValidationDto();\r\n dto.objectType = SystemObject.USER;\r\n dto.value = username;\r\n\r\n return this.api.validate(dto);\r\n }\r\n\r\n public validateUsernameNotTaken = (control: AbstractControl) => {\r\n return this.duplicatedUsername(control.value).pipe(\r\n map(res => {\r\n return res ? null : { duplicatedUsername: true };\r\n }));\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n// export class AccountUserDto {\r\n// id: string;\r\n// username: string;\r\n// name: string;\r\n// email: string;\r\n// phoneNumber: string;\r\n// isActive: boolean;\r\n// avatar: string;\r\n// securityGroups: string[];\r\n// }\r\n\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { ChartDataSets, ChartOptions, ChartLayoutOptions, ChartType } from 'chart.js';\r\nimport { Color, Label } from 'ng2-charts';\r\nimport { StatisticsService } from '../../services/statistics.service';\r\n\r\n@Component({\r\n selector: 'mac-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.scss'],\r\n providers: [StatisticsService]\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n\r\n lineChartData: ChartDataSets[] = [{ data: [] }];\r\n // [\r\n // { data: [133, 59, 280, 81, 56, 55, 40, 59, 280, 81, 120, 552], label: 'رخصة دولية' },\r\n // { data: [59, 280, 81, 56, 55, 40, 59, 280, 81, 120, 552, 133], label: 'دفتر تربتيك يمني' },\r\n // { data: [280, 81, 56, 55, 40, 59, 280, 81, 120, 552, 133, 59], label: 'دفتر تربتيك دولي' },\r\n\r\n // ];\r\n lineChartLabels: Label[] = []; //['July-19', 'August-19', 'September-19', 'October-19', 'November-19', 'December-19', 'January 20', 'February-20', 'March-20', 'April-20', 'May-20', 'June-20'];\r\n lineChartOptions: (ChartOptions & { annotation: any }) = {\r\n responsive: true,\r\n annotation: null\r\n };\r\n lineChartColors: Color[] = [\r\n {\r\n borderColor: '#038fde',\r\n backgroundColor: '#038fdebf'\r\n },\r\n {\r\n borderColor: '#dc3545'\r\n },\r\n {\r\n borderColor: '#28a745'\r\n },\r\n ];\r\n lineChartLegend = true;\r\n lineChartType: ChartType = 'bar';\r\n lineChartPlugins = [];\r\n\r\n constructor(private loader: LoadingService,\r\n private statisticsService: StatisticsService) { }\r\n\r\n ngOnInit() {\r\n this.loader.load(LoaderType.Nav, false);\r\n // //this.loader.load(LoaderType.Body);\r\n // this.statisticsService\r\n // .getIssuingsPerMonth()\r\n // .then(result => {\r\n // this.lineChartLabels = result.lineChartLabels.map(d => d.monthLabel);\r\n // this.lineChartData = result.dataSets.map(d => { return { data: d.issuings, label: d.stockType.titles[0] } });\r\n // })\r\n // .finally(() => {\r\n // //setTimeout(() => {\r\n // this.loader.load(LoaderType.Nav, false);\r\n // //document.getElementsByTagName('mac-dashboard')[0].parentElement.parentElement.style.display = 'none';\r\n // //}, 1000);\r\n // });\r\n \r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n document.getElementsByTagName('mac-dashboard')[0].parentElement.parentElement.setAttribute('hidden', 'hidden');\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { IssuingsPerMonthVm } from '../models/statistics.model';\r\n\r\n@Injectable()\r\nexport class StatisticsService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n getIssuingsPerMonth() {\r\n return this.api.get(EndPoint.STATISTICS_ISSUINGS_PER_MONTH).toPromise();\r\n }\r\n}\r\n\r\n","import { Component, OnInit, ElementRef } from '@angular/core';\r\nimport { TransactionDto } from '../../models/transactions';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\n\r\n@Component({\r\n selector: 'mac-lic-transactions-print',\r\n templateUrl: './lic-transactions-print.component.html',\r\n styleUrls: ['./lic-transactions-print.component.scss']\r\n})\r\nexport class LicTransactionsPrintComponent implements OnInit {\r\n\r\n transaction: TransactionDto;\r\n receiptTemplate: string;\r\n transactionLevel: number;\r\n\r\n constructor(private elRef: ElementRef, public translate: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n print(transaction: TransactionDto) {\r\n this.transaction = transaction;\r\n this.transactionLevel = transaction.fromAccountId && transaction.toAccountId ? 1 : 0;\r\n this.receiptTemplate = `/assets/images/StockTransactionsReceipt${this.transactionLevel}-${this.translate.currentLang}.jpeg`;\r\n\r\n setTimeout(() => {\r\n const printHtmlContent = this.elRef.nativeElement.innerHTML;// document.getElementById('stockReceipt').innerHTML;\r\n Utils.printHtml(printHtmlContent);\r\n }, 500);\r\n }\r\n\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { Component, OnInit, ViewChild, ElementRef, Input } from '@angular/core';\r\nimport { LoaderType } from 'src/app/shared/services/loading';\r\nimport * as noUiSlider from 'nouislider';\r\nimport * as wNumb from 'wnumb';\r\nimport { StockRange } from '../../models/stock-range';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { TransactionLabelDetails } from '../../models/transaction-label-details';\r\n\r\nexport class Range {\r\n from: number;\r\n to: number;\r\n count: number;\r\n}\r\n\r\n\r\n\r\n@Component({\r\n selector: 'mac-stock-slider',\r\n templateUrl: './stock-slider.component.html',\r\n styleUrls: ['./stock-slider.component.scss']\r\n})\r\nexport class StockSliderComponent implements OnInit {\r\n\r\n transactionDetails: TransactionLabelDetails = {};\r\n\r\n count: number = 1;\r\n startRange = 0;\r\n fromRange: number;\r\n toRange: number;\r\n @Input() selectedStock: number[];\r\n @ViewChild('slider', { static: true }) slider: ElementRef;\r\n rangeEnabled: boolean;\r\n countMin: number = 1;\r\n countMax: number;\r\n rangeMin: number;\r\n rangeMax: number;\r\n //alertClass: string;\r\n //operation: string;\r\n // fromAccount: string = '';\r\n // toAccount: string = '';\r\n // stockType: string = '';\r\n\r\n _range: number[] = [];// {title: number, value: number}[] = [];\r\n _rangeCount: number[] = [];\r\n\r\n constructor(private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n }\r\n\r\n ngAfterViewInit() {\r\n noUiSlider.create(this.slider.nativeElement, {\r\n start: [1, 1],\r\n direction: this.translate.currentLang == 'ar' ? 'rtl' : 'ltr',\r\n tooltips: [false, false],\r\n //keyboardSupport: false,\r\n animate: true,\r\n animationDuration: 300,\r\n step: 1,\r\n connect: true,\r\n range: {\r\n 'min': 1,\r\n 'max': 2\r\n }\r\n });\r\n // disable initially\r\n //this._rangeEnable(false);\r\n this.slider.nativeElement.noUiSlider.on('slide', (e) => {\r\n this.fromRange = parseInt(e[0]);\r\n this.toRange = parseInt(e[1]);\r\n this.count = this.toRange - this.fromRange + 1;\r\n\r\n this.transactionDetails.fromRange = this.fromRange;\r\n this.transactionDetails.toRange = this.toRange;\r\n this.transactionDetails.count = this.count;\r\n });\r\n }\r\n\r\n resetSlider(value: number = 1) {\r\n this.slider.nativeElement.noUiSlider.updateOptions({\r\n start: [value, value],\r\n tooltips: [false, false],\r\n range: {\r\n 'min': value,\r\n 'max': value + 1\r\n }\r\n });\r\n this._rangeEnable(false);\r\n }\r\n\r\n onSelectRange(range: number[]) {\r\n\r\n // console.warn(range);\r\n // this._range \r\n this._range = Utils.spreadRange(range);\r\n this._rangeCount = Utils.spreadRange([1, range[1] - range[0] + 1]);\r\n\r\n this.selectedStock = range ? range : this.selectedStock;\r\n this.fromRange = range[0];\r\n this.toRange = range.length > 1 ? range[1] : range[0];\r\n this.count = range.length > 1 ? range[1] - range[0] + 1 : 1;\r\n this.countMax = this.count;\r\n this.rangeMin = this.fromRange;\r\n this.rangeMax = this.toRange;\r\n\r\n if (this.count <= 1)\r\n this.resetSlider(this.fromRange);\r\n else {\r\n this._rangeEnable();\r\n this.slider.nativeElement.noUiSlider.updateOptions({\r\n start: [this.fromRange, this.toRange],\r\n //tooltips: [wNumb({ decimal: 0 }), wNumb({ decimal: 0 })],\r\n range: {\r\n 'min': this.fromRange,\r\n 'max': this.toRange\r\n }\r\n });\r\n }\r\n\r\n this.transactionDetails.fromRange = this.fromRange;\r\n this.transactionDetails.toRange = this.toRange;\r\n this.transactionDetails.count = this.count;\r\n }\r\n\r\n onRangeInput(control: 'from' | 'count' | 'to', value: number) {\r\n\r\n this.count = this.count < this.countMin ? this.countMin\r\n : this.count > this.countMax ? this.countMax\r\n : this.count;\r\n\r\n this.fromRange = this.fromRange < this.rangeMin ? this.rangeMin\r\n : this.fromRange > this.rangeMax ? this.rangeMax\r\n : this.fromRange;\r\n\r\n this.toRange = this.toRange < this.rangeMin ? this.rangeMin\r\n : this.toRange > this.rangeMax ? this.rangeMax\r\n : this.toRange;\r\n\r\n if (control == 'from') {\r\n if ((this.fromRange + this.count - 1) <= this.rangeMax)\r\n this.toRange = this.fromRange + this.count - 1;\r\n else {\r\n this.toRange = this.rangeMax;\r\n this.count = this.toRange - this.fromRange + 1;\r\n //this.fromRange -= (this.count - (this.toRange - this.fromRange) - 1);\r\n }\r\n } else if (control == 'to') {\r\n if ((this.toRange - this.count + 1) >= this.rangeMin)\r\n this.fromRange = this.toRange - this.count;\r\n else {\r\n this.fromRange = this.rangeMin;\r\n this.count = this.toRange - this.fromRange + 1;\r\n }\r\n } else {\r\n //count\r\n if ((this.fromRange + this.count - 1) <= this.rangeMax)\r\n this.toRange = this.fromRange + this.count - 1;\r\n else {\r\n this.toRange = this.rangeMax;\r\n this.fromRange -= (this.count - (this.toRange - this.fromRange) - 1);\r\n }\r\n }\r\n\r\n\r\n this.transactionDetails.fromRange = this.fromRange;\r\n this.transactionDetails.toRange = this.toRange;\r\n this.transactionDetails.count = this.count;\r\n\r\n // flush slider\r\n this.slider.nativeElement.noUiSlider.set([this.fromRange, this.toRange]);\r\n\r\n\r\n // switch (control) {\r\n // case 'from':\r\n // // if((this.count + value) <= this.toRange)\r\n\r\n\r\n\r\n // this.count = this.toRange - this.fromRange + 1;\r\n // break;\r\n\r\n // case 'count':\r\n // break;\r\n\r\n // case 'to':\r\n\r\n // this.count = this.toRange - this.fromRange + 1;\r\n // break;\r\n // }\r\n\r\n // // flush slider\r\n // this.slider.nativeElement.noUiSlider.set([this.fromRange, this.toRange]);\r\n }\r\n\r\n // onRangeInputChange(event) {\r\n // //console.log('from range: ' + this.fromRange);\r\n // //console.log('to range: ' + this.toRange);\r\n // //console.log('count: ' + this.count);\r\n\r\n // this.count = this.count < this.countMin ? this.countMin\r\n // : this.count > this.countMax ? this.countMax\r\n // : this.count;\r\n\r\n // this.fromRange = this.fromRange < this.rangeMin ? this.rangeMin\r\n // : this.fromRange > this.rangeMax ? this.rangeMax\r\n // : this.fromRange;\r\n\r\n // this.toRange = this.toRange < this.rangeMin ? this.rangeMin\r\n // : this.toRange > this.rangeMax ? this.rangeMax\r\n // : this.toRange;\r\n\r\n // if (event == 'from') {\r\n // if ((this.fromRange + this.count - 1) <= this.rangeMax)\r\n // this.toRange = this.fromRange + this.count - 1;\r\n // else {\r\n // this.toRange = this.rangeMax;\r\n // this.count = this.toRange - this.fromRange + 1;\r\n // //this.fromRange -= (this.count - (this.toRange - this.fromRange) - 1);\r\n // }\r\n // } else if (event == 'to') {\r\n // if ((this.toRange - this.count + 1) >= this.rangeMin)\r\n // this.fromRange = this.toRange - this.count;\r\n // else {\r\n // this.fromRange = this.rangeMin;\r\n // this.count = this.toRange - this.fromRange + 1;\r\n // }\r\n // } else {\r\n // //count\r\n // if ((this.fromRange + this.count - 1) <= this.rangeMax)\r\n // this.toRange = this.fromRange + this.count - 1;\r\n // else {\r\n // this.toRange = this.rangeMax;\r\n // this.fromRange -= (this.count - (this.toRange - this.fromRange) - 1);\r\n // }\r\n // }\r\n\r\n // // flush slider\r\n // this.slider.nativeElement.noUiSlider.set([this.fromRange, this.toRange]);\r\n // }\r\n\r\n private _rangeEnable(value: boolean = true) {\r\n if (value)\r\n this.slider.nativeElement.removeAttribute('disabled');\r\n else\r\n this.slider.nativeElement.setAttribute('disabled', true);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'mac-transaction-details-label',\r\n templateUrl: './transaction-details-label.component.html',\r\n styleUrls: ['./transaction-details-label.component.scss']\r\n})\r\nexport class TransactionDetailsLabelComponent implements OnInit {\r\n\r\n @Input() details: any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n //console.log(this.details);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ElementRef } from '@angular/core';\r\nimport { TransactionDto } from '../../models/transactions';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\n\r\n@Component({\r\n selector: 'mac-trp-transactions-print',\r\n templateUrl: './trp-transactions-print.component.html',\r\n styleUrls: ['./trp-transactions-print.component.scss']\r\n})\r\nexport class TrpTransactionsPrintComponent implements OnInit {\r\n\r\n transaction: TransactionDto;\r\n receiptTemplate: string;\r\n //transactionLevel: number;\r\n\r\n constructor(private elRef: ElementRef, public translate: TranslateService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n print(transaction: TransactionDto) {\r\n //console.log(transaction);\r\n this.transaction = transaction;\r\n //this.transactionLevel = transaction.fromAccountId && transaction.toAccountId ? 1 : 0;\r\n this.receiptTemplate = `/assets/images/TripTikStockTransactionsReceipt-ar.jpg`;\r\n\r\n setTimeout(() => {\r\n const printHtmlContent = this.elRef.nativeElement.innerHTML;// document.getElementById('stockReceipt').innerHTML;\r\n Utils.printHtml(printHtmlContent);\r\n }, 500);\r\n }\r\n\r\n}","import { Component, OnInit, ViewChild, ElementRef, ɵConsole } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { StockSliderComponent } from './../../components/stock-slider/stock-slider.component';\r\nimport { AvailableStock, AvailableStocksVm } from './../../models/available-stocks';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { StocksService } from '../../services/stocks.service';\r\nimport { PopulateCmd } from '../../models/populate.cmd';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal, DisplayModal } from 'src/app/shared/models/modal';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { FormBuilder, FormGroup, NgForm, Validators } from '@angular/forms';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\nimport { TransactionLabelDetails } from '../../models/transaction-label-details';\r\nimport { numbersOnlyValidator } from 'src/app/shared/services/custom-validators';\r\n\r\n@Component({\r\n selector: 'mac-populate',\r\n templateUrl: './populate.component.html',\r\n styleUrls: ['./populate.component.scss'],\r\n providers: [StockTypesService, StocksService]\r\n})\r\nexport class PopulateComponent implements OnInit {\r\n populate: boolean;\r\n selectedStock: number[];\r\n availableStock: AvailableStock;\r\n stockTypes: StockTypeDto[];\r\n documentType: _DocumentType;\r\n form: FormGroup;\r\n documentTemplateVersions = [1, 2];\r\n lang: Language;\r\n availableStockHTML: string;\r\n reasons: LookupDto[] = [\r\n { id: -1, titles: ['حذف نهائي', 'Permanent Delete'] },\r\n { id: 1, titles: ['آخر', 'Other'] }\r\n ];\r\n transactionDetails: TransactionLabelDetails = {};\r\n\r\n @ViewChild(StockSliderComponent) slider: StockSliderComponent;\r\n\r\n get _DocumentType() { return _DocumentType };\r\n get customReason() { return this.form.get('customReason') }\r\n get reason() { return this.form.get('reason') }\r\n get documentTemplateVersion() { return this.form.get('documentTemplateVersion') }\r\n get fromRange() { return this.form.get('fromRange') }\r\n get quantity() { return this.form.get('quantity') }\r\n get stockType() { return this.form.get('stockTypeId') }\r\n\r\n constructor(private loader: LoadingService,\r\n private alert: AlertService,\r\n private router: Router,\r\n private translate: TranslateService,\r\n private auth: AuthService,\r\n private route: ActivatedRoute,\r\n private fb: FormBuilder,\r\n private stockTypesService: StockTypesService,\r\n private stocksService: StocksService,\r\n private confirmation: ConfirmService) { }\r\n\r\n ngOnInit() {\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.populate = this.route.snapshot.data.mode == 'POPULATE';\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n this.transactionDetails.alertClass = this.populate ? 'success' : 'danger';\r\n this.transactionDetails.operation = this.populate ? 'STK_TITLE_POPULATE' : 'STK_TITLE_DEPOPULATE';\r\n\r\n this.stockTypesService.get(this.lang)\r\n .then(result => {\r\n this.stockTypes = result.list;\r\n }).finally(() => this.loader.load(LoaderType.Nav, false));\r\n\r\n if (!this.auth.currentUser.isSystemAccount)\r\n console.warn('not allowed!');\r\n }\r\n\r\n viewInfo() {\r\n this.confirmation.confirm(new DisplayModal({\r\n type: `${this.translate.instant('STK_TITLE_AVAILABLE_STOCKS')} - (${this.stockTypes.find(x => x.id == this.stockType.value).titles})`,\r\n innerHTML: this.availableStockHTML,\r\n note: ' '\r\n }))\r\n\r\n }\r\n\r\n onChangeFromRange() {\r\n this.transactionDetails.fromRange = this.fromRange.value;\r\n this.transactionDetails.toRange = Number(this.fromRange.value) + Number(this.quantity.value) - 1;\r\n }\r\n\r\n onChangeQuantity() {\r\n this.transactionDetails.count = this.quantity.value;\r\n this.transactionDetails.toRange = Number(this.fromRange.value) + Number(this.quantity.value) - 1;\r\n }\r\n\r\n onSelectStockType() {\r\n this.loadSystemAvailableStock();\r\n\r\n const stockType = this.stockTypes.find(x => x.id == this.stockType.value)\r\n this.transactionDetails.stockType = stockType.titles[0];\r\n this.documentType = stockType.documentType;\r\n }\r\n\r\n onSubmit() {\r\n if (this.populate) {\r\n this.reason.setErrors(null);\r\n this.customReason.setErrors(null);\r\n if (this.documentType != _DocumentType.TripTikDocument)\r\n this.documentTemplateVersion.setErrors(null);\r\n } else {\r\n this.documentTemplateVersion.setErrors(null);\r\n if (this.reason.value == -1)\r\n this.customReason.setErrors(null);\r\n }\r\n\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n const cmd: PopulateCmd = {\r\n stockTypeId: this.stockType.value,\r\n fromRange: this.fromRange.value,\r\n toRange: Number(this.fromRange.value) + Number(this.quantity.value) - 1,\r\n populate: this.populate,\r\n reason: !this.populate ? this.reason.value && Number(this.reason.value) > 0 ? this.reasons.find(x => x.id == Number(this.reason.value)).titles[this.lang] : this.customReason.value : null,\r\n isPermanentDelete: !this.populate && this.reason && Number(this.reason.value) < 0,\r\n documentTemplateVersion: this.populate ? (this.documentTemplateVersion.value ? this.documentTemplateVersion.value : 1) : 0 //todo: check\r\n }\r\n\r\n if (!this.populate) {\r\n this.confirmation.confirm(new DeleteModal({\r\n type: 'STK_TITLE_STOCK',\r\n confirmQuestion: 'STK_DEPOPULATE_CONFIRM_DELETE_CONFIRMATION_QUESTION',\r\n title: `${cmd.fromRange} - ${cmd.toRange} (${this.stockTypes.find(x => x.id == this.stockType.value).titles})`, // node.titles[this.lang].toString(),\r\n note: JSON.stringify(this.availableStock)\r\n })).then(m => {\r\n if (m.indexOf('CONFIRMED') > -1) {\r\n this._populate(cmd);\r\n }\r\n });\r\n } else this._populate(cmd);\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n stockTypeId: ['', [Validators.required]],\r\n fromRange: ['', [Validators.required, Validators.min(1), numbersOnlyValidator]],\r\n quantity: ['', [Validators.required, Validators.min(1), numbersOnlyValidator]],\r\n documentTemplateVersion: ['', [Validators.required]],\r\n reason: ['', [Validators.required]],\r\n customReason: ['', [Validators.required]]\r\n });\r\n }\r\n\r\n private _populate(cmd: PopulateCmd) {\r\n this.loader.load(LoaderType.Body);\r\n this.stocksService.populate(cmd)\r\n .then(result => {\r\n result ?\r\n this.alert.success(this.populate ? 'STK_LABEL_TRANSACTION_TYPE_POPULATE' : 'STK_LABEL_TRANSACTION_TYPE_DEPOPULATE')\r\n : this.alert.failure(this.populate ? 'STK_LABEL_TRANSACTION_TYPE_POPULATE' : 'STK_LABEL_TRANSACTION_TYPE_DEPOPULATE');\r\n\r\n if (result)\r\n this.router.navigate(['/', this.translate.currentLang, 'stocks', 'transactions']);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private loadSystemAvailableStock() {\r\n this.loader.load(LoaderType.Body)\r\n this.stocksService\r\n .getSystemAvailableStocks(this.stockType.value, this.populate, false)\r\n .then(data => {\r\n this.availableStockHTML = this.renderAvailableStockAsHTML(data);\r\n }).finally(() => this.loader.load(LoaderType.Body, false))\r\n }\r\n\r\n private renderAvailableStockAsHTML(vm: AvailableStocksVm) {\r\n let ranges = '', singles = '', html = '';\r\n\r\n vm.stockTypesAvailableStocks[0].availableStock.forEach(x => {\r\n if (x[0] > 0)\r\n x.length > 1 ? ranges += `
  • ${x[0]} - ${x[1]} (${x[1] - x[0] + 1})
  • `\r\n : singles += `
  • ${x[0]}
  • `;\r\n });\r\n\r\n if (ranges)\r\n html += `

    ${this.translate.instant('STK_LABEL_RANGES')}:

      ${ranges}
    `;\r\n\r\n if (singles)\r\n html += `

    ${this.translate.instant('STK_LABEL_SINGLES')}:

      ${singles}
    `;\r\n\r\n return html;\r\n }\r\n}\r\n\r\nexport interface StockGroup {\r\n group: string, label: string, value: number[]\r\n}","import { TranslateService } from '@ngx-translate/core';\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { StockTypeAvailableStocksDto } from '../../models/available-stocks';\r\nimport { StocksService } from '../../services/stocks.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { exportToExcel } from 'src/app/shared/helpers/export-to-excel';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { AccountsService } from 'src/app/features/accounts/services/accounts.service';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport * as _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'mac-stocks-available',\r\n templateUrl: './stocks-available.component.html',\r\n styleUrls: ['./stocks-available.component.scss'],\r\n providers: [StocksService, AccountsService]\r\n})\r\nexport class StocksAvailableComponent implements OnInit {\r\n displayedColumns = ['from', 'to', 'count'];\r\n availableStocks: StockTypeAvailableStocksDto[];\r\n systemView: boolean;\r\n accounts: LookupDto[];\r\n accountId: number;\r\n\r\n @ViewChild('tabGroup') tabGroup;\r\n\r\n get Math() {\r\n return Math;\r\n }\r\n\r\n constructor(private stocksService: StocksService,\r\n private accountsService: AccountsService,\r\n private loader: LoadingService,\r\n private route: ActivatedRoute,\r\n public auth: AuthService,\r\n public translate: TranslateService,\r\n private router: Router) { }\r\n\r\n async ngOnInit() {\r\n this.loader.load(LoaderType.Nav);\r\n try {\r\n this.accounts = await (await this.accountsService.getChildrenAccountsLookup(!this.auth.currentUser.isSystemAccount ? this.auth.currentUser.accountId : 0)).list;\r\n } catch { }\r\n //this.accounts = this.auth.currentUser.isSystemAccount ? await (await this.accountsService.getChildrenAccountsLookup(0, false)).list : [];\r\n this.accountId = Number(this.route.snapshot.paramMap.get('accountId'));\r\n this.accountId = Number(this.accountId != 0 ? this.accountId : this.auth.currentUser.accountId);\r\n this.systemView = this.route.snapshot.data.mode == 'SYSTEM';\r\n\r\n //console.log(Number(this.accountId));\r\n\r\n this.displayedColumns = ['from', 'to', 'count'];\r\n\r\n if (!this.systemView) {\r\n\r\n this.stocksService.getAvailableStocks(0, this.accountId)\r\n .then(d => this.availableStocks = d.stockTypesAvailableStocks)\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n\r\n } else {\r\n this.displayedColumns.push('available', 'unavailable');\r\n this.stocksService.getSystemAvailableStocks(0, false, false)\r\n .then(d => this.availableStocks = d.stockTypesAvailableStocks)\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n }\r\n\r\n filterWithAccount(id) {\r\n this.accountId = id;\r\n this.loader.load(LoaderType.Body);\r\n this.stocksService.getAvailableStocks(0, this.accountId)\r\n .then(d => {\r\n this.availableStocks = d.stockTypesAvailableStocks;\r\n this.router.navigate([`/${this.translate.currentLang}/stocks/available/${this.accountId}`], { replaceUrl: true });\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n\r\n sumAvailableStocks(availableStock: number[][], all = true) {\r\n let total = 0;\r\n availableStock.forEach(item => {\r\n if (all || (!all && item[0] > 0))\r\n total += item.length > 1 ? Math.abs(item[1]) - Math.abs(item[0]) + 1 : 1;\r\n });\r\n return total;\r\n }\r\n\r\n //serial status == 1 || -1\r\n sumAvailableStocksFilter(availableStock: number[][], serialStatus: number) {\r\n let total = 0;\r\n availableStock.forEach(item => {\r\n if ((serialStatus == -1 && item[0] < 0) || (serialStatus == 1 && item[0] > 0))\r\n total += item.length > 1 ? Math.abs(item[1]) - Math.abs(item[0]) + 1 : 1;\r\n });\r\n return total;\r\n }\r\n\r\n onSerialStatusChange(status: number) {\r\n //console.log($event);\r\n\r\n // if(status == 1)\r\n // this.displayedColumns = this.displayedColumns\r\n\r\n this.displayedColumns = ['from', 'to', 'count'];\r\n\r\n switch (status) {\r\n case 1:\r\n this.displayedColumns.push('available');\r\n break;\r\n\r\n case -1:\r\n this.displayedColumns.push('unavailable');\r\n break;\r\n\r\n default:\r\n this.displayedColumns.push('available', 'unavailable');\r\n break;\r\n }\r\n this.serialStatus = status;\r\n\r\n }\r\n\r\n get Number() { return Number; };\r\n serialStatus: number;\r\n\r\n checkBoxChange($event, obj: StockTypeAvailableStocksDto, available: boolean) {\r\n //console.log($event, obj);\r\n if ($event.checked) {\r\n\r\n const test = [...obj.availableStock.filter(x => x[0] > -1)];\r\n //console.log(test);\r\n obj.availableStock = test;\r\n\r\n\r\n\r\n }\r\n }\r\n\r\n onExportToExcel(all: boolean = true) {\r\n let data = _.cloneDeep(all ? this.availableStocks : [this.availableStocks[this.tabGroup.selectedIndex]]);\r\n\r\n //data.forEach(d => d.availableStock)\r\n\r\n if (this.serialStatus)\r\n data = data.map(x => {\r\n x.availableStock = x.availableStock.filter(y => (this.serialStatus == 1 && y[0] > 0) || (this.serialStatus == -1 && y[0] < 0))\r\n return x;\r\n })\r\n\r\n //console.log(data);\r\n this.exportToExcel(data);\r\n }\r\n\r\n private exportToExcel(data: StockTypeAvailableStocksDto[]) {\r\n const rows: string[][] = [];\r\n\r\n let wscols = [\r\n { width: 24 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 }\r\n ];\r\n\r\n let autofilter = { ref: 'A1:D1' };\r\n\r\n const headers = [\r\n this.translate.instant('LKP_FIELD_STOCK_TYPE'),\r\n `${this.translate.instant('_LABEL_FROM')} ${this.translate.instant('_LABEL_SERIAL')}`,\r\n `${this.translate.instant('_LABEL_TO')} ${this.translate.instant('_LABEL_SERIAL')}`,\r\n this.translate.instant('STK_LABEL_QUANTITY')\r\n ];\r\n\r\n if (this.systemView) {\r\n wscols.push({ width: 14 });\r\n autofilter = { ref: 'A1:E1' };\r\n headers.push(`${this.translate.instant('_FIELD_AVAILABLE')} ${this.translate.currentLang == 'ar' ? '؟' : '?'}`)\r\n }\r\n\r\n rows.push(headers);\r\n // let _total = 0;\r\n // let _availableTotal = 0;\r\n\r\n for (let row of data) {\r\n for (let stockTypeData of row.availableStock) {\r\n const _row = [\r\n row.stockType.titles[0],\r\n Math.abs(stockTypeData[0]).toString(),\r\n Math.abs(stockTypeData.length > 1 ? stockTypeData[1] : stockTypeData[0]).toString(),\r\n (stockTypeData.length > 1 ? stockTypeData[1] - stockTypeData[0] + 1 : 1).toString()\r\n ];\r\n\r\n if (this.systemView)\r\n _row.push(this.translate.instant(stockTypeData[0] > 0 ? '_ACTION_YES' : '_ACTION_NO'))\r\n\r\n rows.push(_row);\r\n }\r\n }\r\n // rows.push([\r\n // this.translate.instant('_LABEL_TOTAL'),\r\n // '',\r\n // '',\r\n // _total\r\n // ])\r\n\r\n exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'Available-Stocks');\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { merge, fromEvent } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { StockTotalsDataSource } from './../../helpers/stocks-totals-datasource';\r\nimport { StocksService } from '../../services/stocks.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { AccountStocksTotalsDto } from '../../models/stocks-totals';\r\nimport { exportToExcel } from 'src/app/shared/helpers/export-to-excel';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AccountsService } from 'src/app/features/accounts/services/accounts.service';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\n\r\n@Component({\r\n selector: 'mac-stocks-totals',\r\n templateUrl: './stocks-totals.component.html',\r\n styleUrls: ['./stocks-totals.component.scss'],\r\n providers: [StocksService, StockTypesService, AccountsService]\r\n})\r\nexport class StocksTotalsComponent implements OnInit {\r\n moment = moment;\r\n displayedColumns: string[] = ['accountTitles', 'received', 'transferedUndone', 'returned', 'transfered', 'issued', 'remainingStocks'];\r\n dataSource: StockTotalsDataSource;\r\n stockTypes: StockTypeDto[];\r\n accounts: LookupDto[];\r\n accountId: number;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('filter', { static: true }) filter: ElementRef;\r\n @ViewChild('filterBtn') filterBtn: ElementRef;\r\n\r\n constructor(private loader: LoadingService,\r\n private stocksService: StocksService,\r\n private stockTypesService: StockTypesService,\r\n public auth: AuthService,\r\n private accountsService: AccountsService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private translate: TranslateService) { }\r\n\r\n ngOnInit() {\r\n this.loader.load(LoaderType.Nav);\r\n //this.accounts = this.auth.currentUser.isSystemAccount ? await (await this.accountsService.getChildrenAccountsLookup(0, false)).list : [];\r\n this.accountId = Number(this.route.snapshot.paramMap.get('accountId'));\r\n this.accountId = Number(this.accountId != 0 ? this.accountId : this.auth.currentUser.accountId);\r\n\r\n this.stockTypesService.getAllowed(this.auth.currentUser.accountId)\r\n .then(result => /*this.stockTypes = result.list.filter(x => x.id == StockType.License)*/this.stockTypes = result.list);\r\n\r\n\r\n // set paginator page size\r\n this.sort.active = 'accountTitles'; // pre-defined sort col\r\n this.sort.direction = 'asc';\r\n this.paginator.pageSize = 25;\r\n\r\n this.dataSource = new StockTotalsDataSource(this.stocksService, this.loader);\r\n this.dataSource.loadStockTotals(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction, '', this.accountId);\r\n //this.dataSource.counter$.subscribe(counter => this.recordsCount = counter);\r\n }\r\n async ngAfterViewInit() {\r\n try {\r\n this.accounts = await (await this.accountsService.getChildrenAccountsLookup(!this.auth.currentUser.isSystemAccount ? this.auth.currentUser.accountId : 0)).list;\r\n } catch { }\r\n\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n ).subscribe();\r\n\r\n // when paginator event is invoked, retrieve the related data\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => this.dataSource.loadStockTotals(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction, this.filter.nativeElement.value.trim(), this.accountId))\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n merge(fromEvent(this.filter.nativeElement, 'search'), fromEvent(this.filterBtn.nativeElement, 'click'))\r\n .pipe(\r\n tap(() => {\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.loadStockTotals(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction, this.filter.nativeElement.value.trim(), this.accountId)\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n this.dataSource.connect().subscribe(() => {\r\n this.router.navigate([`/${this.translate.currentLang}/stocks/totals/${this.accountId}`], { replaceUrl: true });\r\n //this.location.replaceState(`/${this.translate.currentLang}/security/users/list/${this.accountId}`);\r\n });\r\n }\r\n\r\n // recordsCount: number;\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)//todo: check params\r\n this.stocksService.getStockTotals(0, this.paginator.length, this.sort.active, this.sort.direction)\r\n .toPromise()\r\n .then(data => {\r\n this.exportToExcel(data.accountsStocksTotals);\r\n }).finally(() => this.loader.load(LoaderType.Body, false));\r\n else\r\n this.dataSource.connect().subscribe(data => {\r\n this.exportToExcel(data);\r\n this.loader.load(LoaderType.Body, false);\r\n }).unsubscribe();\r\n }\r\n\r\n private exportToExcel(data: AccountStocksTotalsDto[]) {\r\n const wscols = [\r\n { width: 24 },\r\n { width: 16 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 }\r\n ];\r\n const autofilter = { ref: 'A1:H1' };\r\n const rows: string[][] = [];\r\n\r\n const headers = [\r\n this.translate.instant('ACC_FIELD_ACCOUNT_TITLE'),\r\n this.translate.instant('LKP_FIELD_STOCK_TYPE'),\r\n this.translate.instant('STK_LABEL_RECEIVED'),\r\n this.translate.instant('STK_LABEL_TRANSFERED'),\r\n this.translate.instant('STK_LABEL_ISSUED'),\r\n this.translate.instant('STK_LABEL_RETURNED'),\r\n this.translate.instant('STK_LABEL_TRANSFERED_UNDONE'),\r\n this.translate.instant('STK_LABEL_REMAINING')\r\n ];\r\n\r\n rows.push(headers);\r\n for (let row of data) {\r\n for (let stockTypeData of row.stockTypesStocksTotals) {\r\n rows.push([\r\n row.accountTitles[0],\r\n //this.stockTypes.find(st => st.id == stockTypeData.stockTypeId) ? this.stockTypes.find(st => st.id == stockTypeData.stockTypeId).titles[0] : \"N/A\",\r\n stockTypeData.stockType.titles[0],\r\n stockTypeData.received.toString(),\r\n stockTypeData.transfered.toString(),\r\n stockTypeData.issued.toString(),\r\n stockTypeData.returned.toString(),\r\n stockTypeData.transferedUndone.toString(),\r\n stockTypeData.remainingStocks.toString()\r\n ]);\r\n }\r\n }\r\n\r\n exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'Stock-Totals');\r\n }\r\n\r\n filterWithAccount(id) {\r\n //console.log(id);\r\n this.accountId = id;\r\n //this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: 0, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n // this.dataSource.loadUsers(0, this.paginator.pageSize, this.sort.active, this.sort.direction, '', this.accountId);\r\n\r\n }\r\n\r\n}\r\n\r\n","import { Router } from '@angular/router';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Component, OnInit, ElementRef, ViewChild } from '@angular/core';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AvailableStock, AvailableStocksVm } from '../../models/available-stocks';\r\nimport { StockSliderComponent } from '../../components/stock-slider/stock-slider.component';\r\nimport { StocksService } from '../../services/stocks.service';\r\nimport { AccountDto } from 'src/app/features/accounts/models/account';\r\nimport { AccountsService } from 'src/app/features/accounts/services/accounts.service';\r\nimport { TransactCmd } from '../../models/transact.cmd';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { AccountType } from 'src/app/core/models/enums/account-type';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\n\r\n@Component({\r\n selector: 'mac-transact',\r\n templateUrl: './transact.component.html',\r\n styleUrls: ['./transact.component.scss'],\r\n providers: [StockTypesService, StocksService, AccountsService]\r\n})\r\nexport class TransactComponent implements OnInit {\r\n selectedStock: number[];\r\n availableStock: AvailableStock;\r\n stockTypes: StockTypeDto[];\r\n _stockTypes: StockTypeDto[] = [];\r\n stockType: StockTypeDto = { id: 0, titles: [] };\r\n fromAccounts: any[] = [];\r\n toAccounts: AccountDto[];\r\n lang: number;\r\n fromAccountId: number;\r\n toAccountId: number;\r\n defaultStock: number[] = [0];\r\n\r\n @ViewChild(StockSliderComponent) slider: StockSliderComponent;\r\n\r\n constructor(private loader: LoadingService,\r\n private router: Router,\r\n private alert: AlertService,\r\n private stockTypesService: StockTypesService,\r\n private stocksService: StocksService,\r\n private translate: TranslateService,\r\n private accountsService: AccountsService,\r\n private auth: AuthService) { }\r\n\r\n async ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n\r\n\r\n if (this.auth.currentUser.isSystemAccount && this.auth.currentUser.isInRole(Role.SYSTEM_STOCKS_CREATE)) {\r\n this.fromAccounts.push({ id: 0, titles: [this.translate.instant('STK_LABEL_PRIMARY_STOCK')] });\r\n //this.stockTypes = (await this.stockTypesService.get(this.lang)).list;\r\n }\r\n\r\n\r\n // this.stockTypes = (await this.stockTypesService.getAllowed(this.auth.currentUser.accountId)).list;\r\n\r\n\r\n // //this.stockTypes = (await this.stockTypesService.getAllowed(this.auth.currentUser.accountId)).list.filter(x => x.id == StockType.License);\r\n // if (this.stockTypes.length == 1)\r\n // this.stockType = this.stockTypes[0];\r\n\r\n this.fromAccounts.push({ id: this.auth.currentUser.accountId, titles: this.auth.currentUser.accountTitles[this.lang] });\r\n this.fromAccountId = this.fromAccounts[0].id;\r\n this.onSelectFromAccount();\r\n }\r\n\r\n reset() {\r\n this.fromAccountId = this.fromAccounts[0].id;\r\n this.toAccountId = this.toAccounts && this.toAccounts.length > 0 ? this.toAccounts[0].id : null;\r\n this.stockType = { id: 0, titles: [] };\r\n this.selectedStock = null;\r\n }\r\n\r\n async onSelectFromAccount() {\r\n this.loader.load(LoaderType.Body);\r\n const func = this.auth.currentUser.accountTypeId != AccountType.ReleaseCenter ?\r\n 'getChildrenAccounts' : 'getAccounts';\r\n try {\r\n this.toAccounts = [];\r\n const accounts = await (await this.accountsService[func](this.fromAccountId)).accounts;\r\n // .then(d => {\r\n\r\n const _accounts = [...accounts]\r\n .filter(x => x.isActive)\r\n .map(x => { //todo: filter by lang on server instead\r\n x.titles = [x.titles[this.lang]]\r\n return x;\r\n });\r\n\r\n\r\n\r\n\r\n //load stock-types here \r\n\r\n if (this.auth.currentUser.isSystemAccount && this.auth.currentUser.isInRole(Role.SYSTEM_STOCKS_CREATE) && this.fromAccountId == 0) {\r\n this._stockTypes = (await this.stockTypesService.get(this.lang)).list;\r\n this.stockTypes = [...this._stockTypes];\r\n }\r\n else\r\n this.stockTypes = (await this.stockTypesService.getAllowed(this.auth.currentUser.accountId, true)).list;\r\n\r\n //console.log(this.stockTypes);\r\n\r\n\r\n //this.stockTypes = (await this.stockTypesService.getAllowed(this.auth.currentUser.accountId)).list.filter(x => x.id == StockType.License);\r\n this.stockType = (this.stockTypes.length == 1) ? this.stockTypes[0] : { id: 0, titles: [] };\r\n\r\n this.toAccounts = _accounts;\r\n this.toAccountId = this.toAccounts && this.toAccounts.length > 0 ? this.toAccounts[0].id : null;\r\n await this.onSelectToAccount();\r\n\r\n\r\n }\r\n finally {\r\n // .finally(() => {\r\n\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n\r\n }\r\n //});\r\n\r\n //this.slider.fromAccount = this.fromAccounts.find(a => a.id == this.fromAccountId).titles;\r\n\r\n if (this.stockType.id != 0)\r\n await this.onSelectStockType();\r\n\r\n }\r\n\r\n async onSelectToAccount() {\r\n\r\n if (this.auth.currentUser.isSystemAccount && this.auth.currentUser.isInRole(Role.SYSTEM_STOCKS_CREATE) && this.fromAccountId == 0) {\r\n const toAccount = this.toAccounts.find(x => x.id == this.toAccountId);\r\n //filter stock-types\r\n this.stockTypes = [...this._stockTypes].filter(x => (toAccount.accountTypeId == AccountType.ReleaseCenter && x.isUnifiedRelease)\r\n || (toAccount.accountTypeId != AccountType.ReleaseCenter && !x.isUnifiedRelease));\r\n\r\n\r\n }\r\n else {\r\n //get destination stock-types\r\n this.accountsService\r\n this.stockTypes = (await this.stockTypesService.getAllowed(this.toAccountId, true)).list;\r\n // //console.log(this.stockTypes);\r\n }\r\n\r\n\r\n this.onSelectStockType();\r\n\r\n if (this.slider)\r\n this.slider.transactionDetails.toAccount = this.toAccounts.find(a => a.id == this.toAccountId).titles[this.lang].toString();\r\n }\r\n\r\n //stockType: string = '';\r\n async onSelectStockType() {\r\n //this.loader.load(LoaderType.Nav);\r\n this.loader.load(LoaderType.Body);\r\n //this.stockType = this.stockTypes.find(s => s.id == this.stockTypeId).titles;\r\n this.selectedStock = null;\r\n\r\n let stock =\r\n this.auth.currentUser.isSystemAccount && this.fromAccountId == 0 ?\r\n await this.loadSystemAvailableStock() :\r\n await this.loadAvailableStock();\r\n\r\n\r\n this.renderAvailableStock(stock);\r\n\r\n this.loader.load(LoaderType.Body, false);\r\n\r\n\r\n }\r\n\r\n onSelectRange() {\r\n setTimeout(() => {\r\n this.slider.transactionDetails.alertClass = 'primary';\r\n this.slider.transactionDetails.operation = 'STK_TITLE_TRANSACT';\r\n this.slider.transactionDetails.stockType = this.stockType.titles[0];\r\n this.slider.transactionDetails.fromAccount = this.fromAccounts.find(a => a.id == this.fromAccountId).titles;\r\n this.slider.transactionDetails.toAccount = this.toAccounts.find(a => a.id == this.toAccountId).titles[this.lang].toString();\r\n this.slider.onSelectRange(this.selectedStock);\r\n });\r\n }\r\n\r\n onSubmit() {\r\n this.loader.load(LoaderType.Body);\r\n const cmd: TransactCmd = {\r\n stockTypeId: this.stockType.id,\r\n sourceId: this.fromAccountId,\r\n targetId: this.toAccountId,\r\n fromRange: this.slider.fromRange,\r\n toRange: this.slider.toRange\r\n }\r\n this.stocksService.transact(cmd)\r\n .then(result => {\r\n result ?\r\n this.alert.success(DefaultAlertAction.TRANSFERING)\r\n : this.alert.failure(DefaultAlertAction.TRANSFERING);\r\n\r\n if (result)\r\n this.router.navigate(['/', this.translate.currentLang, 'stocks', 'transactions']);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private loadAvailableStock() {\r\n return this.stocksService\r\n .getAvailableStocks(this.stockType.id);\r\n // .then(data => this.renderAvailableStock(data))\r\n // .finally(() => {\r\n // this.loader.load(LoaderType.Body, false);\r\n // });\r\n }\r\n\r\n private loadSystemAvailableStock() {\r\n return this.stocksService\r\n .getSystemAvailableStocks(this.stockType.id);\r\n // .then(data => this.renderAvailableStock(data))\r\n // .finally(() => {\r\n // this.loader.load(LoaderType.Body, false);\r\n // //this.selectedStock = [0];// [];// [0];// this.availableStock.ranges[0];\r\n // });\r\n }\r\n\r\n private renderAvailableStock(vm: AvailableStocksVm) {\r\n this.availableStock = new AvailableStock();\r\n this.availableStock.singles = [];\r\n this.availableStock.ranges = [];\r\n\r\n vm.stockTypesAvailableStocks[0].availableStock.forEach(s => {\r\n if (s[0] > 0)\r\n s.length > 1 ? this.availableStock.ranges.push(s)\r\n : this.availableStock.singles.push(s);\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { merge, fromEvent } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\n\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { transactionTypeLocale } from '../../models/transaction-type.enum';\r\nimport { TransactionsDataSource } from '../../helpers/transactions-datasource';\r\nimport { TransactionDto } from '../../models/transactions';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { exportToExcel } from 'src/app/shared/helpers/export-to-excel';\r\nimport { StocksService } from '../../services/stocks.service';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TransactionType } from 'src/app/core/models/enums/transaction-type';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { LicTransactionsPrintComponent } from '../../components/lic-transactions-print/lic-transactions-print.component';\r\nimport { TrpTransactionsPrintComponent } from '../../components/trp-transactions-print/trp-transactions-print.component';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { AccountsService } from 'src/app/features/accounts/services/accounts.service';\r\nimport { AccountDto } from 'src/app/features/accounts/models/account';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { PaginationQuery } from 'src/app/features/issuing/_shared/models/issuing.models';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { AccountType } from 'src/app/core/models/enums/account-type';\r\n\r\n@Component({\r\n selector: 'mac-transactions',\r\n templateUrl: './transactions.component.html',\r\n styleUrls: ['./transactions.component.scss'],\r\n providers: [StocksService, StockTypesService, AccountsService]\r\n})\r\nexport class TransactionsComponent implements OnInit {\r\n moment = moment;\r\n transactionTypeLocale = transactionTypeLocale;\r\n displayedColumns: string[] = ['created', 'fromAccountTitles', 'toAccountTitles', 'fromRange', 'toRange', 'count', 'transactionType', 'stockType', 'action'];\r\n dataSource: TransactionsDataSource;\r\n stockTypes: StockTypeDto[];\r\n accounts: LookupDto[];\r\n transactionTypes: LookupDto[] = [];\r\n searchForm: FormGroup;\r\n lang: Language;\r\n query: any = null;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('filter', { static: true }) filter: ElementRef;\r\n @ViewChild('filterBtn') filterBtn: ElementRef;\r\n\r\n @ViewChild(MatSelect, { static: true }) stockType: MatSelect;\r\n\r\n @ViewChild('licPrintElm') licPrintElm: LicTransactionsPrintComponent;\r\n @ViewChild('trpPrintElm') trpPrintElm: TrpTransactionsPrintComponent;\r\n\r\n\r\n get TransactionType() { return TransactionType; };\r\n get Object() { return Object; };\r\n //get StockType() { return StockType; };\r\n\r\n constructor(private loader: LoadingService,\r\n private stocksService: StocksService,\r\n private stockTypesService: StockTypesService,\r\n private translate: TranslateService,\r\n public auth: AuthService,\r\n private fb: FormBuilder,\r\n private accountsService: AccountsService,\r\n private router: Router,\r\n private route: ActivatedRoute\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.formInit();\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.stockTypesService.getAllowed().then(result => {\r\n this.stockTypes = result.list;\r\n // \r\n //this.stockTypes = result.list;\r\n //this.stockTypes.unshift({ id: 0, titles: [[\"الكل\", \"All\"][this.lang]] });\r\n });\r\n\r\n\r\n //console.log(Object.keys(TransactionType));\r\n\r\n const arr = Object.keys(TransactionType).reduce((arr, key) => {\r\n if (!arr.includes(key) && isNaN(key)) {\r\n arr.push(TransactionType[key]);\r\n }\r\n return arr;\r\n }, []);\r\n\r\n // const x: LookupDto = {id}\r\n this.transactionTypes = arr.map(elm => {\r\n id: elm,\r\n titles: [this.translate.instant(transactionTypeLocale(elm))]\r\n }).sort((a, b) => b.id - a.id);\r\n\r\n this.transactionTypes = this.transactionTypes.filter(x => x.id != TransactionType.Issue)\r\n\r\n if (!this.auth.currentUser.isSystemAccount)\r\n this.transactionTypes = this.transactionTypes.filter(x => x.id != TransactionType.Populate && x.id != TransactionType.Depopulate)\r\n\r\n //console.log(this.transactionTypes);\r\n\r\n // arr.forEach(element => {\r\n\r\n // //console.log(TransactionType[element]);\r\n // //console.log(element);\r\n // });\r\n\r\n // //console.log(Object.keys(TransactionType).reduce((arr, key) => {\r\n // if (!arr.includes(key) && !isNaN(key)) {\r\n // arr.push(TransactionType[key]);\r\n // }\r\n // return arr;\r\n // }, []));\r\n\r\n // //console.log(TransactionType.Depopulate);\r\n // //console.log(TransactionType[TransactionType.Depopulate]);\r\n\r\n // Object.keys(TransactionType).forEach(x => {\r\n // //console.log(x);\r\n // //console.log(TransactionType[x]);\r\n // })\r\n\r\n //if system account, accounts will be fetched from server, otherwise current account details will be fetched from local auth service\r\n if (this.auth.currentUser.isSystemAccount) {\r\n this.accountsService.getChildrenAccountsLookup(0, false)\r\n .then(result => {\r\n this.accounts = result.list;// populateAccountsSelect(result.list);\r\n\r\n //add system accounts (stock, printing-press)\r\n this.accounts.unshift({ id: AccountType.PrimaryStock, titles: [this.translate.instant('STK_LABEL_PRIMARY_STOCK')] });\r\n this.accounts.unshift({ id: AccountType.PrintingPress, titles: [this.translate.instant('STK_LABEL_PRINTING_PRESS')] });\r\n\r\n }).catch(e => this.searchForm.get('accountId').disable());\r\n } else {\r\n this.accounts = [{ id: this.auth.currentUser.accountId, titles: [this.auth.currentUser.accountTitles[this.lang]] }];\r\n this.searchForm.patchValue({ accountId: this.auth.currentUser.accountId });\r\n this.searchForm.get('accountId').disable();\r\n }\r\n\r\n this.route.queryParamMap.subscribe(p => {\r\n //console.warn(p);\r\n\r\n if (!p.has('pageIndex')) {\r\n //console.warn('ready to reload!');\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.filter.nativeElement.value = '';\r\n this.paginator.page.emit({ pageIndex: 0, pageSize: this.paginator.pageIndex, length: this.paginator.length });\r\n }\r\n });\r\n\r\n //let query = null;\r\n\r\n if (this.route.snapshot.queryParams.query) {\r\n this.query = this.route.snapshot.queryParams.query;\r\n this.filter.nativeElement.value = this.query;\r\n }\r\n else if (this.route.snapshot.queryParams.accountId\r\n || this.route.snapshot.queryParams.stockTypeId\r\n || this.route.snapshot.queryParams.transactionType\r\n || this.route.snapshot.queryParams.fromRange\r\n || this.route.snapshot.queryParams.toRange\r\n || this.route.snapshot.queryParams.fromDate\r\n || this.route.snapshot.queryParams.toDate) {\r\n this.activeFilters = true;\r\n this.searchForm.patchValue(this.route.snapshot.queryParams);\r\n\r\n //fix int for ng-select\r\n this.searchForm.patchValue({ accountId: !isNaN(this.route.snapshot.queryParams.accountId) ? parseInt(this.route.snapshot.queryParams.accountId) : null });\r\n\r\n // this.searchForm.patchValue({countryId: 2});\r\n // //console.log(this.searchForm.value);\r\n this.query = this.searchForm.value;\r\n }\r\n\r\n this.fetchData(this.query);\r\n\r\n // this.sort.active = 'created';\r\n // this.sort.direction = 'desc';\r\n // this.paginator.pageSize = 25;\r\n // this.dataSource = new TransactionsDataSource(this.stocksService, this.loader);\r\n // this.dataSource.loadTransactions(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction);\r\n }\r\n\r\n\r\n private fetchData(query) {\r\n this.paginator.pageIndex = this.route.snapshot.queryParams.pageIndex ? this.route.snapshot.queryParams.pageIndex : 0;\r\n this.paginator.pageSize = this.route.snapshot.queryParams.pageSize ? this.route.snapshot.queryParams.pageSize : 25;\r\n this.sort.active = this.route.snapshot.queryParams.sort ? this.route.snapshot.queryParams.sort : 'created';\r\n this.sort.direction = this.route.snapshot.queryParams.dir ? this.route.snapshot.queryParams.dir : 'desc';\r\n this.dataSource = new TransactionsDataSource(this.stocksService, this.loader, this.translate);\r\n this.dataSource.loadTransactions({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, query);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n ).subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange/*, this.stockType.valueChange*/)\r\n .pipe(\r\n tap(() => {\r\n this.dataSource.loadTransactions({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction },\r\n this.advancedSearchMode || this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim())\r\n })\r\n\r\n //this.dataSource.loadTransactions(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction, this.filter.nativeElement.value.trim(), this.stockType.value))\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n\r\n merge(fromEvent(this.filter.nativeElement, 'search'), fromEvent(this.filterBtn.nativeElement, 'click'))\r\n .pipe(\r\n tap(() => {\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.searchForm.reset();\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.loadTransactions({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, this.filter.nativeElement.value.trim())\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n // fromEvent(this.filter.nativeElement, 'change')\r\n // .pipe(\r\n // tap(() => {\r\n // this.paginator.pageIndex = 0;\r\n // this.dataSource.loadTransactions(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction, this.filter.nativeElement.value.trim(), this.stockType.value)\r\n // })\r\n // ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n this.dataSource.connect()\r\n .subscribe(() => {\r\n let pagination: PaginationQuery = { pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction };\r\n let query = this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim();\r\n this.query = query;\r\n\r\n if (this.activeFilters)\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, ...query }, replaceUrl: true });\r\n else\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, query }, replaceUrl: true });\r\n });\r\n }\r\n\r\n print(row: TransactionDto) {\r\n switch (row.stockType.documentType) {\r\n case _DocumentType.DrivingLicense:\r\n return this.licPrintElm.print(row);\r\n\r\n case _DocumentType.TripTikDocument:\r\n return this.trpPrintElm.print(row);\r\n }\r\n }\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)\r\n this.stocksService[(this.query == null || typeof this.query == 'string') ? 'getTransactions' : 'searchTransactions']({ pageIndex: 0, pageSize: this.paginator.length, sort: this.sort.active, dir: this.sort.direction }, this.query)\r\n .toPromise()\r\n .then(data => {\r\n this.exportToExcel(data.stockTransactions);\r\n }).finally(() => this.loader.load(LoaderType.Body, false));\r\n else\r\n this.dataSource.connect().subscribe(data => {\r\n this.exportToExcel(data);\r\n this.loader.load(LoaderType.Body, false);\r\n }).unsubscribe();\r\n }\r\n\r\n private exportToExcel(data: TransactionDto[]) {\r\n const wscols = [\r\n { width: 14 },\r\n { width: 24 },\r\n { width: 24 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 18 },\r\n { width: 18 }\r\n ];\r\n const autofilter = { ref: 'A1:H1' };\r\n const rows: string[][] = [];\r\n\r\n const headers = [\r\n this.translate.instant('_LABEL_DATE'),\r\n `${this.translate.instant('_LABEL_FROM')} ${this.translate.instant('ACC_LABEL_ACCOUNT')}`,\r\n `${this.translate.instant('_LABEL_TO')} ${this.translate.instant('ACC_LABEL_ACCOUNT')}`,\r\n `${this.translate.instant('_LABEL_FROM')} ${this.translate.instant('_LABEL_SERIAL')}`,\r\n `${this.translate.instant('_LABEL_TO')} ${this.translate.instant('_LABEL_SERIAL')}`,\r\n this.translate.instant('STK_LABEL_QUANTITY'),\r\n this.translate.instant('STK_LABEL_TRANSACTION_TYPE'),\r\n this.translate.instant('LKP_FIELD_STOCK_TYPE')\r\n ];\r\n\r\n rows.push(headers);\r\n for (let row of data) {\r\n rows.push([\r\n moment(row.created).format('DD/MM/YYYY'),\r\n row.fromAccountTitles ? row.fromAccountTitles[0] :\r\n this.translate.instant(row.transactionType == TransactionType.Populate ?\r\n 'STK_LABEL_PRINTING_PRESS' : 'STK_LABEL_PRIMARY_STOCK'),\r\n row.toAccountTitles ? row.toAccountTitles[0] :\r\n this.translate.instant(row.transactionType == TransactionType.Depopulate ?\r\n 'STK_LABEL_PRINTING_PRESS' : 'STK_LABEL_PRIMARY_STOCK'),\r\n row.fromRange.toString(),\r\n row.toRange.toString(),\r\n (row.toRange - row.fromRange + 1).toString(),\r\n this.translate.instant(transactionTypeLocale(row.transactionType)),\r\n row.stockType.titles[0]\r\n ]);\r\n }\r\n\r\n exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'Stock-Transactions');\r\n }\r\n\r\n toggleAdvancedSearch() {\r\n this.advancedSearchMode = !this.advancedSearchMode;\r\n this.filter.nativeElement.value = '';\r\n }\r\n\r\n\r\n onSubmit() {\r\n if (this.fromDate.value && typeof this.fromDate.value == 'object')\r\n this.fromDate.setValue(Utils.convertToServerDateTimeString(this.fromDate.value));\r\n\r\n if (this.toDate.value && typeof this.toDate.value == 'object')\r\n this.toDate.setValue(Utils.convertToServerDateTimeString(this.toDate.value));\r\n\r\n //swap dates\r\n if (this.fromDate.value && this.toDate.value && new Date(this.fromDate.value) > new Date(this.toDate.value)) {\r\n let _temp = this.fromDate.value;\r\n this.fromDate.setValue(this.toDate.value);\r\n this.toDate.setValue(_temp);\r\n }\r\n\r\n // //console.log(this.searchForm.value);\r\n\r\n this.activeFilters = true;\r\n\r\n\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n get fromDate() { return this.searchForm.get('fromDate'); };\r\n get toDate() { return this.searchForm.get('toDate'); };\r\n // searchForm: FormGroup;\r\n activeFilters: boolean;\r\n advancedSearchMode: boolean;\r\n\r\n resetSearch() {\r\n this.advancedSearchMode = false;\r\n if (this.activeFilters) {\r\n this.activeFilters = false;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n this.activeFilters = false;\r\n\r\n setTimeout(() => {\r\n this.searchForm.reset();\r\n this.query = null;\r\n }, 500);\r\n }\r\n\r\n private formInit() {\r\n //use same validators to filter inputs values\r\n this.searchForm = this.fb.group({\r\n fromRange: [''], //regex to match english letters only\r\n toRange: [''],\r\n transactionType: [''],\r\n stockTypeId: [''],\r\n accountId: [null],\r\n fromDate: [''],\r\n toDate: ['']\r\n });\r\n }\r\n}","import { ConfirmService } from './../../../../shared/services/modal.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ResolveUndoCmd } from './../../models/resolve-undo.cmd';\r\nimport { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { tap } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport { merge, fromEvent } from 'rxjs';\r\nimport { StocksService } from '../../services/stocks.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { UndoRequestsDataSource } from '../../helpers/undo-requests-datasource';\r\nimport { undoRequestStatusLocale, UndoRequestStatus, UndoRequestDto } from '../../models/undo-requests';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { exportToExcel } from 'src/app/shared/helpers/export-to-excel';\r\nimport { UpdateModal } from 'src/app/shared/models/modal';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\n\r\n@Component({\r\n selector: 'mac-undo-requests',\r\n templateUrl: './undo-requests.component.html',\r\n styleUrls: ['./undo-requests.component.scss'],\r\n providers: [StocksService, StockTypesService]\r\n})\r\nexport class UndoRequestsComponent implements OnInit {\r\n moment = moment;\r\n undoRequestStatusLocale = undoRequestStatusLocale;\r\n displayedColumns: string[] = ['created', 'fromAccountTitles', 'toAccountTitles', 'username', 'range', 'undoRequestStatus', 'stockType', 'reason', 'tools'];\r\n dataSource: UndoRequestsDataSource;\r\n stockTypes: StockTypeDto[] = [];\r\n lang: Language;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('filter') filter: ElementRef;\r\n @ViewChild(MatSelect, { static: true }) stockType: MatSelect;\r\n\r\n get UndoRequestStatus() {\r\n return UndoRequestStatus;\r\n }\r\n\r\n constructor(private loader: LoadingService,\r\n private stocksService: StocksService,\r\n private stockTypesService: StockTypesService,\r\n private alert: AlertService,\r\n private translate: TranslateService,\r\n private confirmService: ConfirmService,\r\n public auth: AuthService) { }\r\n\r\n ngOnInit() {\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n if (!this.auth.currentUser.isInRole(Role.STOCKS_UNDO_REQUESTS_UPDATE))\r\n this.displayedColumns.splice(this.displayedColumns.length - 1, 1);\r\n\r\n //bug: will take a second to be loaded\r\n this.stockTypesService.get(this.lang).then(result => this.stockTypes = result.list);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.sort.active = 'created';\r\n this.sort.direction = 'desc';\r\n this.paginator.pageSize = 10;\r\n this.dataSource = new UndoRequestsDataSource(this.stocksService, this.loader);\r\n this.dataSource.loadUndoRequests(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n ).subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => this.dataSource.loadUndoRequests(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction, this.stockType.value, this.filter.nativeElement.value ? this.filter.nativeElement.value.trim() : null))\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n merge(fromEvent(this.filter.nativeElement, 'change'), this.stockType.valueChange)\r\n .pipe(\r\n tap(() => {\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.loadUndoRequests(this.paginator.pageIndex, this.paginator.pageSize, this.sort.active, this.sort.direction, this.stockType.value, this.filter.nativeElement.value.trim())\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n }\r\n\r\n getUndoRequestStatusClass(status: UndoRequestStatus) {\r\n switch (status) {\r\n case UndoRequestStatus.Rejected:\r\n return `text-danger`;\r\n\r\n case UndoRequestStatus.Approved:\r\n return `text-success`;\r\n\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n tryResolveRequest(row: UndoRequestDto, approve: boolean = false) {\r\n let modal = this.confirmService.confirm(new UpdateModal({\r\n type: 'STK_TITLE_UNDO_REQUEST',\r\n confirmQuestion: approve ? 'STK_UNDO_REQUEST_CONFIRM_UPDATE_STATUS_CONFIRMATION_QUESTION_APPROVE' : 'STK_UNDO_REQUEST_CONFIRM_UPDATE_STATUS_CONFIRMATION_QUESTION_REJECT',\r\n title: row.fromAccountTitles[0],\r\n action: approve ? '_ACTION_APPROVE' : '_ACTION_REJECT',\r\n submitText: approve ? '_ACTION_APPROVE' : '_ACTION_REJECT',\r\n submitClass: approve ? 'btn-warning' : 'btn-danger',\r\n note: approve ? 'STK_UNDO_REQUEST_CONFIRM_UPDATE_STATUS_APPROVE_NOTE' : 'STK_UNDO_REQUEST_CONFIRM_UPDATE_STATUS_REJECT_NOTE'\r\n }));\r\n modal.then(m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this.resolveRequest(row.transactionId, row.stockType.id, approve);\r\n });\r\n }\r\n\r\n onStockTypeChange(stockTypeId) {\r\n\r\n }\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)\r\n this.stocksService.getUndoRequests(0, this.paginator.length, this.sort.active, this.sort.direction)\r\n .toPromise()\r\n .then(data => {\r\n this.exportToExcel(data.undoRequests);\r\n }).finally(() => this.loader.load(LoaderType.Body, false));\r\n else\r\n this.dataSource.connect().subscribe(data => {\r\n this.exportToExcel(data);\r\n this.loader.load(LoaderType.Body, false);\r\n }).unsubscribe();\r\n }\r\n\r\n private resolveRequest(transactionId: number, stockTypeId: number, approve: boolean) {\r\n this.loader.load(LoaderType.Body);\r\n const cmd: ResolveUndoCmd = {\r\n approve: approve,\r\n stockTypeId: stockTypeId,\r\n transactionId: transactionId\r\n }\r\n this.stocksService.resolveUndo(cmd)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(approve ? '_ACTION_APPROVING' : '_ACTION_REJECTING');\r\n const i = this.dataSource.undoRequestsSubject.value.findIndex(i => i.transactionId == cmd.transactionId);\r\n this.dataSource.undoRequestsSubject.value[i].undoRequestStatus = approve ? UndoRequestStatus.Approved : UndoRequestStatus.Rejected;\r\n } else this.alert.failure('_ACTION_APPROVING');\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private exportToExcel(data: UndoRequestDto[]) {\r\n const wscols = [\r\n { width: 14 },\r\n { width: 24 },\r\n { width: 24 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 14 },\r\n { width: 16 },\r\n { width: 16 }\r\n ];\r\n const autofilter = { ref: 'A1:I1' };\r\n const rows: string[][] = [];\r\n\r\n const headers = [\r\n this.translate.instant('_LABEL_DATE'),\r\n `${this.translate.instant('_LABEL_FROM')} ${this.translate.instant('ACC_LABEL_ACCOUNT')}`,\r\n `${this.translate.instant('_LABEL_TO')} ${this.translate.instant('ACC_LABEL_ACCOUNT')}`,\r\n this.translate.instant('SEC_FIELD_USERNAME'),\r\n `${this.translate.instant('_LABEL_FROM')} ${this.translate.instant('_LABEL_SERIAL')}`,\r\n `${this.translate.instant('_LABEL_TO')} ${this.translate.instant('_LABEL_SERIAL')}`,\r\n this.translate.instant('STK_LABEL_QUANTITY'),\r\n this.translate.instant('STK_LABEL_UNDO_REQUEST_STATUS'),\r\n this.translate.instant('LKP_FIELD_STOCK_TYPE'),\r\n this.translate.instant('_FIELD_REASON')\r\n ];\r\n\r\n rows.push(headers);\r\n for (let row of data) {\r\n rows.push([\r\n moment(row.created).format('DD/MM/YYYY'),\r\n row.fromAccountTitles[0],\r\n row.toAccountTitles ? row.toAccountTitles[0] : this.translate.instant('STK_LABEL_PRIMARY_STOCK'),\r\n row.username ? row.username : '-',\r\n row.fromRange.toString(),\r\n row.toRange.toString(),\r\n (row.toRange - row.fromRange + 1).toString(),\r\n this.translate.instant(undoRequestStatusLocale(row.undoRequestStatus)),\r\n row.stockType.titles[0],\r\n row.reason ? row.reason : '-'\r\n ]);\r\n }\r\n\r\n exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'Stock-Return-Requests');\r\n }\r\n}","import { Router } from '@angular/router';\r\nimport { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { AvailableStock, AvailableStocksVm } from '../../models/available-stocks';\r\nimport { StockSliderComponent } from '../../components/stock-slider/stock-slider.component';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { StocksService } from '../../services/stocks.service';\r\nimport { TryUndoCmd } from '../../models/try-undo.cmd';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { FormBuilder, FormGroup, NgForm, FormArray } from '@angular/forms';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\n\r\n@Component({\r\n selector: 'mac-undo-try',\r\n templateUrl: './undo-try.component.html',\r\n styleUrls: ['./undo-try.component.scss'],\r\n providers: [StockTypesService, StocksService]\r\n})\r\nexport class UndoTryComponent implements OnInit {\r\n selectedStock: number[];\r\n availableStock: AvailableStock;\r\n stockTypes: StockTypeDto[];\r\n stockType: StockTypeDto = { id: 0, titles: ['', ''] };\r\n customReason: any;\r\n reason: LookupDto;\r\n reasons: LookupDto[] = [\r\n { id: 1, titles: ['تالف', 'Destroyed'] },\r\n { id: 2, titles: ['عيوب طباعة', 'Printing Issues'] },\r\n { id: 0, titles: ['آخر', 'Other'] }\r\n ];\r\n lang: Language;\r\n\r\n @ViewChild(StockSliderComponent) slider: StockSliderComponent;\r\n @ViewChild('f', { static: true }) form: NgForm;\r\n\r\n get _customReason() { return this.form.controls.customReason }\r\n get _reason() { return this.form.controls.reason }\r\n\r\n constructor(private loader: LoadingService,\r\n private alert: AlertService,\r\n private router: Router,\r\n private stockTypesService: StockTypesService,\r\n private translate: TranslateService,\r\n private stocksService: StocksService,\r\n public auth: AuthService,\r\n private fb: FormBuilder) { }\r\n\r\n ngOnInit() {\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.stockTypesService.getAllowed(this.auth.currentUser.accountId)\r\n .then(result => {\r\n //this.stockTypes = result.list.filter(x => x.id == StockType.License);\r\n this.stockTypes = result.list;\r\n if (this.stockTypes.length == 1) {\r\n this.stockType = this.stockTypes[0];\r\n this.onSelectStockType()\r\n }\r\n } /*this.stockTypes = result.list*/)\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n ngAfterViewInit() {\r\n // setTimeout(() => {\r\n // //console.log(this.form.controls);\r\n // //console.log(this.form.form.controls);\r\n // //console.log(Object.keys(this.form.controls))\r\n // //console.log(this.form.controls.customReason);\r\n // }, 500);\r\n\r\n\r\n }\r\n reset() {\r\n //this.fromAccountId = this.fromAccounts[0].id;\r\n //this.toAccountId = this.toAccounts[0].id;\r\n this.stockType = { id: 0, titles: [] };\r\n this.selectedStock = null;\r\n this._reason.reset();\r\n this._customReason.reset();\r\n }\r\n\r\n onSelectStockType() {\r\n this.selectedStock = null;\r\n this.loadAvailableStock();\r\n }\r\n\r\n onSelectRange() {\r\n setTimeout(() => {\r\n this.slider.transactionDetails.alertClass = 'primary';\r\n this.slider.transactionDetails.operation = 'STK_TITLE_UNDO';\r\n this.slider.transactionDetails.stockType = this.stockType.titles[0];\r\n this.slider.onSelectRange(this.selectedStock);\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if (this.reason && this.reason.id > 0)\r\n this._customReason.setErrors(null);\r\n\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n const cmd: TryUndoCmd = {\r\n stockTypeId: this.stockType.id,\r\n fromRange: this.slider.fromRange,\r\n toRange: this.slider.toRange,\r\n reason: this.reason && this.reason.id > 0 ? this.reason.titles[this.lang] : this._customReason.value\r\n //cancel: false //todo: include an undo try cancel request,\r\n }\r\n this.stocksService.tryUndo(cmd)\r\n .then(result => {\r\n result ?\r\n this.alert.success(!this.auth.currentUser.isSystemAccount ? '_ACTION_REQUESTING' : 'STK_TITLE_UNDOING')\r\n : this.alert.failure(!this.auth.currentUser.isSystemAccount ? '_ACTION_REQUESTING' : 'STK_TITLE_UNDOING');\r\n\r\n if (result)\r\n this.router.navigate(['/', this.translate.currentLang, 'stocks', 'transactions']);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private loadAvailableStock() {\r\n this.loader.load(LoaderType.Body);\r\n this.stocksService\r\n .getAvailableStocks(this.stockType.id)\r\n .then(data => this.renderAvailableStock(data))\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n private renderAvailableStock(vm: AvailableStocksVm) {\r\n this.availableStock = new AvailableStock();\r\n this.availableStock.singles = [];\r\n this.availableStock.ranges = [];\r\n\r\n vm.stockTypesAvailableStocks[0].availableStock.forEach(s => {\r\n s.length > 1 ? this.availableStock.ranges.push(s)\r\n : this.availableStock.singles.push(s);\r\n });\r\n }\r\n}\r\n","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { StocksService } from '../services/stocks.service';\r\nimport { StocksTotalsVm, AccountStocksTotalsDto } from '../models/stocks-totals';\r\nimport { catchError, finalize, filter } from 'rxjs/operators';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\n\r\n\r\nexport class StockTotalsDataSource implements DataSource {\r\n private StockTotalsSubject = new BehaviorSubject([]);\r\n\r\n private countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private stocksService: StocksService,\r\n private loader: LoadingService) { }\r\n\r\n loadStockTotals(pageIndex: number, pageSize: number, sort: string, direction: string, filter: string = '', accountId: number = 0) {\r\n this.stocksService.getStockTotals(pageIndex, pageSize, sort, direction, filter, accountId)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: StocksTotalsVm) => {\r\n result.accountsStocksTotals.forEach(accountStocksTotals => {\r\n accountStocksTotals.parentAccounts = populateAccountsSelect([accountStocksTotals.parentAccounts])[0];\r\n });\r\n this.StockTotalsSubject.next(result.accountsStocksTotals);\r\n this.countSubject.next(result.recordsCount);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n }\r\n );\r\n }\r\n\r\n connect(): Observable {\r\n return this.StockTotalsSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.StockTotalsSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { StocksService } from '../services/stocks.service';\r\nimport { TransactionsVm, TransactionDto, StockTransactionsSearchQuery } from '../models/transactions';\r\nimport { catchError, finalize, filter } from 'rxjs/operators';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { PaginationQuery } from '../../issuing/_shared/models/issuing.models';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { lookup } from 'dns';\r\nimport { LookupDto } from '../../lookups/models/lookup';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n\r\nexport class TransactionsDataSource implements DataSource {\r\n // add variables to hold the data and number of total records retrieved asynchronously\r\n // BehaviourSubject type is used for this purpose\r\n private TransactionsSubject = new BehaviorSubject([]);\r\n\r\n // to show the total number of records\r\n private countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private stocksService: StocksService, private loader: LoadingService, private translate: TranslateService) {\r\n\r\n }\r\n\r\n //loadTransactions(pageIndex: number, pageSize: number, sort: string, direction: string, filter: string = ''/*, stockTypeId: number = 0*/) {\r\n loadTransactions(pagination: PaginationQuery, query: StockTransactionsSearchQuery | string = null) {\r\n //this.stocksService.getTransactions(pageIndex, pageSize, sort, direction, filter/*, stockTypeId*/)\r\n //console.log(query);\r\n this.stocksService[(query == null || typeof query == 'string') ? 'getTransactions' : 'searchTransactions'](pagination, query)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: TransactionsVm) => {\r\n const systemAccountLabel = this.translate.instant('ACC_SYSTEM_ACCOUNT');\r\n result.stockTransactions.forEach(transaction => {\r\n transaction.fromAccountParentAccounts = transaction.fromAccountParentAccounts ?\r\n populateAccountsSelect([transaction.fromAccountParentAccounts])[0]\r\n : { id: 0, titles: [systemAccountLabel] };\r\n transaction.toAccountParentAccounts = transaction.toAccountParentAccounts ?\r\n populateAccountsSelect([transaction.toAccountParentAccounts])[0]\r\n : { id: 0, titles: [systemAccountLabel] };\r\n });\r\n this.TransactionsSubject.next(result.stockTransactions);\r\n this.countSubject.next(result.recordsCount);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n }\r\n );\r\n }\r\n\r\n connect(): Observable {\r\n return this.TransactionsSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.TransactionsSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { StocksService } from '../services/stocks.service';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { UndoRequestsVm, UndoRequestDto } from '../models/undo-requests';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\n\r\n\r\nexport class UndoRequestsDataSource implements DataSource {\r\n\r\n // add variables to hold the data and number of total records retrieved asynchronously\r\n // BehaviourSubject type is used for this purpose\r\n public undoRequestsSubject = new BehaviorSubject([]);\r\n\r\n // to show the total number of records\r\n private countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private stocksService: StocksService,\r\n private loader: LoadingService) {\r\n }\r\n\r\n loadUndoRequests(pageIndex: number, pageSize: number, sort: string, direction: string, stockTypeId: number = 0, filter: string = '') {\r\n this.stocksService.getUndoRequests(pageIndex, pageSize, sort, direction, stockTypeId, filter)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: UndoRequestsVm) => {\r\n this.undoRequestsSubject.next(result.undoRequests);\r\n this.countSubject.next(result.recordsCount);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n connect(): Observable {\r\n return this.undoRequestsSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.undoRequestsSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","export class AvailableStock {\r\n constructor() {\r\n this.singles = [];\r\n this.ranges = [];\r\n }\r\n singles: number[][];\r\n ranges: number[][];\r\n}\r\n\r\nexport class AvailableStocksVm {\r\n stockTypesAvailableStocks: StockTypeAvailableStocksDto[]\r\n}\r\n\r\nexport class StockTypeAvailableStocksDto {\r\n availableStock: number[][];\r\n //unavailableStock: number[][];\r\n stockType: {\r\n id: number;\r\n titles: string[];\r\n }\r\n}","import { TransactionType } from 'src/app/core/models/enums/transaction-type';\r\n\r\nexport function transactionTypeLocale(type: TransactionType) {\r\n switch (type) {\r\n case TransactionType.Depopulate:\r\n return `STK_TITLE_DEPOPULATE`;\r\n\r\n case TransactionType.Return:\r\n return `STK_TITLE_UNDO`;\r\n\r\n case TransactionType.Issue:\r\n return `STK_LABEL_TRANSACTION_TYPE_ISSUE`;\r\n\r\n case TransactionType.Transfer:\r\n return `STK_TITLE_TRANSACT`;\r\n\r\n case TransactionType.Populate:\r\n return `STK_TITLE_POPULATE`;\r\n\r\n default:\r\n return \"ERROR\";\r\n }\r\n}\r\n","export class UndoRequestsVm {\r\n undoRequests: [];\r\n recordsCount: number;\r\n}\r\n\r\nexport class UndoRequestDto {\r\n transactionId: number;\r\n fromAccountId: number;\r\n fromAccountTitles: string[];\r\n toAccountId: number;\r\n toAccountTitles: string[];\r\n username: string;\r\n fromRange: number;\r\n toRange: number;\r\n undoRequestStatus: UndoRequestStatus\r\n stockType: {\r\n id: number;\r\n titles: string[];\r\n }\r\n createdBy: string;\r\n created: Date;\r\n reason: string;\r\n}\r\n\r\nexport enum UndoRequestStatus {\r\n Rejected = -2,\r\n Removed = -1,\r\n New = 0,\r\n Approved = 1,\r\n}\r\n\r\nexport function undoRequestStatusLocale(status: UndoRequestStatus) {\r\n\r\n let _key = \"_LABEL_UNDO_REQUEST_STATUS_\";\r\n\r\n switch (status) {\r\n case UndoRequestStatus.Rejected:\r\n return `${_key}REJECTED`;\r\n\r\n case UndoRequestStatus.New:\r\n return `${_key}NEW`;\r\n\r\n case UndoRequestStatus.Approved:\r\n return `${_key}APPROVED`;\r\n\r\n case UndoRequestStatus.Removed:\r\n return `${_key}REMOVED`;\r\n\r\n default:\r\n return \"ERROR\";\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { StockTransactionsSearchQuery, TransactionsVm } from '../models/transactions';\r\nimport { StocksTotalsVm } from '../models/stocks-totals';\r\nimport { AvailableStocksVm } from '../models/available-stocks';\r\nimport { UndoRequestsVm } from '../models/undo-requests';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { TransactCmd } from '../models/transact.cmd';\r\nimport { PopulateCmd } from '../models/populate.cmd';\r\nimport { TryUndoCmd } from '../models/try-undo.cmd';\r\nimport { ResolveUndoCmd } from '../models/resolve-undo.cmd';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { PaginationQuery } from '../../issuing/_shared/models/issuing.models';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class StocksService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n getTransactions(pagination: PaginationQuery, query: string = '') {\r\n return this.api.get(EndPoint.STOCKS_TRANSACTIONS, null, { ...pagination, query });\r\n }\r\n\r\n searchTransactions(pagination: PaginationQuery, query: StockTransactionsSearchQuery) {\r\n return this.api.get(EndPoint.STOCKS_TRANSACTIONS_SEARCH, null, { ...pagination, ...query });\r\n }\r\n\r\n getStockTotals(pageIndex: number = 0, pageSize: number, sort: string, direction: string, filter: string = '', accountId: number = 0) {\r\n return this.api.get(EndPoint.STOCKS_TOTALS, accountId, { pageIndex, pageSize, sort, direction, filter });\r\n }\r\n\r\n getUndoRequests(pageIndex: number = 0, pageSize: number, sort: string, direction: string, stockTypeId: number = 0, filter: string = '') {\r\n return this.api.get(EndPoint.STOCKS_UNDO_REQUESTS, [stockTypeId], { pageIndex, pageSize, sort, direction, filter });\r\n }\r\n\r\n getAvailableStocks(stockTypeId: number = 0, accountId = 0) {\r\n return this.api.get(EndPoint.STOCKS_AVAILABLE, [stockTypeId, accountId])\r\n .toPromise();\r\n }\r\n\r\n getSystemAvailableStocks(stockTypeId: number, gaps: boolean = false, threshold: boolean = true) {\r\n return this.api.get(EndPoint.STOCKS_SYSTEM_AVAILABLE, [stockTypeId, gaps, threshold])\r\n .toPromise();\r\n }\r\n\r\n transact(cmd: TransactCmd) {\r\n return this.api.create(EndPoint.STOCKS_TRANSACT, cmd).toPromise();\r\n }\r\n\r\n populate(cmd: PopulateCmd) {\r\n return this.api.create(EndPoint.STOCKS_POPULATE, cmd).toPromise();\r\n }\r\n\r\n tryUndo(cmd: TryUndoCmd) {\r\n return this.api.create(EndPoint.STOCKS_UNDO_TRY, cmd).toPromise();\r\n }\r\n\r\n resolveUndo(cmd: ResolveUndoCmd) {\r\n return this.api.create(EndPoint.STOCKS_UNDO_RESOLVE, cmd).toPromise();\r\n }\r\n\r\n}\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { CountryDto } from 'src/app/features/lookups/models/country';\r\nimport { CountriesService } from 'src/app/features/lookups/services/countries';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BloodGroup } from 'src/app/core/models/enums/blood-group';\r\nimport { IntLicensePermitClass } from 'src/app/core/models/enums/license-permit-class';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { StocksService } from 'src/app/features/stock/services/stocks.service';\r\nimport * as moment from 'moment';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\nimport * as _ from 'lodash';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { TripTiksClaimsService } from '../../services/trip-tiks-claims.service';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { CurrencyDto } from 'src/app/features/lookups/models/currency';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { CurrenciesService } from 'src/app/features/lookups/services/currencies';\r\nimport { CustomsPortsService } from 'src/app/features/lookups/services/customs-ports.service';\r\nimport { PostTripTikClaimCommand } from '../../models/trip-tik-claim.model';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { Router } from '@angular/router';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { PursuingZonesService } from 'src/app/features/lookups/services/pursuing-zones';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\nimport { addressValidator, phoneNumberValidator, triptikNameValidator } from 'src/app/shared/services/custom-validators';\r\nimport { CustomsPortDto } from 'src/app/features/lookups/models/customs-port';\r\n\r\n@Component({\r\n selector: 'mac-manage-trip-tik-claim',\r\n templateUrl: './manage-trip-tik-claim.component.html',\r\n styleUrls: ['./manage-trip-tik-claim.component.scss'],\r\n providers: [\r\n CountriesService,\r\n PursuingZonesService,\r\n StockTypesService,\r\n CurrenciesService,\r\n CustomsPortsService,\r\n TripTiksClaimsService,\r\n FileLoaderService]\r\n})\r\nexport class ManageTripTikClaimComponent implements OnInit {\r\n lang: Language;\r\n form: FormGroup;\r\n // countries: CountryDto[] = [];\r\n pursuingZones: LookupDto[] = [];\r\n stockTypes: StockTypeDto[] = [];\r\n customsPorts: CustomsPortDto[] = [];\r\n _customsPorts: CustomsPortDto[] = [];\r\n claimsCountries: LookupDto[] = [];\r\n currencies: CurrencyDto[] = [];\r\n availableSerials: number[];\r\n //cashedVm: IntLicenseVm;\r\n //dto: IntLicenseDetailsDto = new IntLicenseDetailsDto();\r\n updateMode: boolean;\r\n _loadingGif: string = 'assets/images/Ring-Preloader.gif';\r\n dateFormat = 'L';\r\n mode: 'ADD' | 'UPDATE';\r\n\r\n\r\n get moment() { return moment };\r\n get Object() { return Object };\r\n get BloodGroup() { return BloodGroup };\r\n get IntLicensePermitClass() { return IntLicensePermitClass };\r\n get Gender() { return Gender };\r\n\r\n get entranceID() { return this.form.get('entranceID') };\r\n get entranceDate() { return this.form.get('entranceDate') };\r\n get serial() { return this.form.get('serial') };\r\n get stockType() { return this.form.get('stockTypeId') };\r\n get country() { return this.form.get('countryId') };\r\n get customsPort() { return this.form.get('customsPortId') };\r\n get pursuingZone() { return this.form.get('pursuingZoneId') };\r\n get value() { return this.form.get('value') };\r\n get currency() { return this.form.get('currencyId') };\r\n get holderName() { return this.form.get('holderName') };\r\n get holderAddress() { return this.form.get('holderAddress') };\r\n get holderPhone() { return this.form.get('holderPhone') };\r\n\r\n constructor(private loader: LoadingService,\r\n private fb: FormBuilder,\r\n private countriesService: CountriesService,\r\n private pursuingZonesService: PursuingZonesService,\r\n private customsPortsService: CustomsPortsService,\r\n private stockTypesService: StockTypesService,\r\n private currenciesService: CurrenciesService,\r\n private triptiksClaimsService: TripTiksClaimsService,\r\n public translate: TranslateService,\r\n private alert: AlertService,\r\n private router: Router,\r\n private auth: AuthService) { }\r\n\r\n async ngOnInit() {\r\n moment.locale('en-gb');\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n //const tripTikClaimId = this.route.snapshot.paramMap.get('id');\r\n // this.countries = await (await this.countriesService.get(this.lang)).list;\r\n\r\n\r\n\r\n await Promise.all([\r\n this.stockTypesService.getAllowed()\r\n .then(result => this.stockTypes = result.list.filter(x => x.documentType == _DocumentType.TripTikDocument)),\r\n this.customsPortsService.get(this.lang)\r\n .then(result => {\r\n this._customsPorts = !this.auth.currentUser.isAdministrator ?\r\n result.list.filter(x => this.auth.currentUser.claimsCountries.indexOf(x.countryId) > -1)\r\n : result.list;\r\n\r\n this.claimsCountries = [...new Map(this._customsPorts.map(item =>\r\n [item['countryId'], item])).values()].map(x => {\r\n id: x.countryId,\r\n titles: x.countryTitles\r\n });\r\n\r\n\r\n //bind ports later\r\n\r\n\r\n }),\r\n // this.countriesService.get(this.lang)\r\n // .then(result => this.countries = result.list),\r\n this.pursuingZonesService.get(this.lang)\r\n .then(result => this.pursuingZones = result.list),\r\n this.currenciesService.get(this.lang)\r\n .then(result => {\r\n this.currencies = result.list;\r\n this.currency.setValue(this.currencies[0].id);\r\n })\r\n ]);\r\n\r\n\r\n // if (tripTikClaimId) {\r\n // this.updateMode = this.mode == 'UPDATE';\r\n // this.dto = await (await this.tripTiksClaimsService.get(tripTikClaimId)).intLicense;\r\n\r\n // if (!this.dto || (this.updateMode && this.dto.issued)) { //will ignore if cloning\r\n // this.router.navigate([`/${this.translate.currentLang}/not-found`]);\r\n // return;\r\n // }\r\n // if (this.updateMode) {\r\n // this.availableSerials.unshift(this.dto.serial);\r\n // } else {\r\n // if (this.availableSerials.length > 0)\r\n // this.form.patchValue({ serial: this.availableSerials[0] });\r\n // else {\r\n // this.alert.failure(\"LIC_ALERT_NO_STOCK_AVAILABLE\", false);\r\n // this.form.disable();\r\n // return;\r\n // }\r\n // }\r\n\r\n // this.dto.serial = this.updateMode ? this.dto.serial : this.availableSerials[0];\r\n // this.form.patchValue(this.dto);\r\n\r\n // } else {\r\n // if (this.availableSerials.length > 0)\r\n // this.form.patchValue({ serial: this.availableSerials[0] });\r\n // else {\r\n // this.alert.failure(\"LIC_ALERT_NO_STOCK_AVAILABLE\", false);\r\n // this.form.disable();\r\n //}\r\n //}\r\n this.loader.load(LoaderType.Nav, false);\r\n }\r\n\r\n fetchCustomsPorts(countryId) {\r\n this.customsPort.reset();\r\n\r\n this.customsPorts = this._customsPorts.filter(x => countryId == x.countryId)\r\n // this.customsPortsService.get(countryId, this.lang)\r\n // .then(result => {\r\n // this.customsPorts = result.list;\r\n // });\r\n }\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n entranceID: ['', [Validators.required, Validators.maxLength(10)]],\r\n entranceDate: ['', [Validators.required]],\r\n serial: ['', [Validators.required, Validators.maxLength(10)]],\r\n stockTypeId: ['', [Validators.required]],\r\n countryId: [null, [Validators.required]],\r\n customsPortId: [null, [Validators.required]],\r\n pursuingZoneId: ['', [Validators.required]],\r\n value: [''],\r\n currencyId: [''],\r\n holderName: ['', [Validators.required, triptikNameValidator, Validators.minLength(5), Validators.maxLength(30)]],\r\n holderAddress: ['', [addressValidator]],\r\n holderPhone: ['', [phoneNumberValidator]]\r\n });\r\n }\r\n\r\n onSubmit() {\r\n\r\n // if (!this.auth.currentUser.isInRole(Role.TRIPTIKS_CLAIMS_CREATE))\r\n // return;\r\n\r\n //console.log(this.form.value);\r\n\r\n if (this.entranceDate.value)\r\n this.entranceDate.setValue(moment(this.entranceDate.value).format());\r\n\r\n for (let c in this.form.controls) {\r\n // //console.log(c);\r\n // //console.log(this.form.controls[c].value);\r\n // //console.log(typeof this.form.controls[c].value);\r\n if (this.form.controls[c].value && typeof this.form.controls[c].value == 'string')\r\n this.form.controls[c].setValue(this.form.controls[c].value.trim());\r\n\r\n }\r\n\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n\r\n const cmd = this.form.value as PostTripTikClaimCommand;\r\n\r\n this.triptiksClaimsService.create(cmd)\r\n .then(id => {\r\n if (id) {\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n setTimeout(() => {\r\n this.router.navigate(['/', this.translate.currentLang, 'trip-tiks-claims']);\r\n }, 1000);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { TripTiksClaimsService } from '../../services/trip-tiks-claims.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { TripTikClaimAttachmentDto } from '../../models/trip-tik-claim.model';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\n\r\n@Component({\r\n selector: 'mac-trip-tik-claim-attachments',\r\n templateUrl: './trip-tik-claim-attachments.component.html',\r\n styleUrls: ['./trip-tik-claim-attachments.component.scss'],\r\n providers: [TripTiksClaimsService, FileLoaderService]\r\n})\r\nexport class TripTikClaimAttachmentsComponent implements OnInit {\r\n\r\n displayedColumns = ['created', 'createdBy', 'name', 'tools'];\r\n dataSource: TripTikClaimAttachmentDto[] = [];\r\n tripTikClaimEntranceID: string;\r\n\r\n constructor(private loader: LoadingService,\r\n private tripTiksClaimsService: TripTiksClaimsService,\r\n private route: ActivatedRoute,\r\n private fileLoader: FileLoaderService) { }\r\n\r\n ngOnInit(): void {\r\n this.loader.load(LoaderType.Nav);\r\n const tripTikClaimId = this.route.snapshot.paramMap.get('id');\r\n\r\n this.tripTiksClaimsService.getClaimAttachments(tripTikClaimId)\r\n .then(result => {\r\n //console.log(result);\r\n this.tripTikClaimEntranceID = result.tripTikClaimEntranceID;\r\n\r\n\r\n\r\n result.list.forEach(async att => {\r\n const file = await this.fileLoader.loadAsync(att.url as string);\r\n //console.log(att.url, file);\r\n att.url = file ? file as string : null;\r\n this.dataSource.push(att);\r\n });\r\n\r\n // for (let i = 0; i < this.dataSource.length; i++) {\r\n // this.dataSource[i].url = (await this.fileLoader.loadAsync(this.dto.attachments[0] as string)).changingThisBreaksApplicationSecurity;\r\n // }\r\n\r\n\r\n // this.dto.attachments[0] = (await this.fileLoader.loadAsync(this.dto.attachments[0] as string)).changingThisBreaksApplicationSecurity;\r\n // this.dto.attachments[1] = (await this.fileLoader.loadAsync(this.dto.attachments[1] as string)).changingThisBreaksApplicationSecurity;\r\n // this.dto.attachments[2] = (await this.fileLoader.loadAsync(this.dto.attachments[2] as string)).changingThisBreaksApplicationSecurity;\r\n\r\n // this.dataSource.forEach(async (att, i) => {\r\n // att.url = await this.fileLoader.loadAsync(att.url)\r\n // });\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false));\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { merge, fromEvent } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\n\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { exportToExcel } from 'src/app/shared/helpers/export-to-excel';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TripTiksClaimsService } from '../../services/trip-tiks-claims.service';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { PrintObject } from 'src/app/core/models/enums/print-object';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal, UpdateModal } from 'src/app/shared/models/modal';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { CountriesService } from 'src/app/features/lookups/services/countries';\r\nimport { CountryDto } from 'src/app/features/lookups/models/country';\r\nimport { IntLicensePermitClass } from 'src/app/core/models/enums/license-permit-class';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { AccountsService } from 'src/app/features/accounts/services/accounts.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { TripTiksClaimsDataSource } from '../../services/trip-tiks-claims.datasource';\r\nimport { PaginationQuery } from 'src/app/features/issuing/_shared/models/issuing.models';\r\nimport { TripTikClaimDto, TripTikClaimLogDto } from '../../models/trip-tik-claim.model';\r\nimport { TripTiksClaimsLogsDataSource } from '../../services/trip-tiks-claims-logs.datasource';\r\nimport { CustomsPortDto } from 'src/app/features/lookups/models/customs-port';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { CustomsPortsService } from 'src/app/features/lookups/services/customs-ports.service';\r\nimport { PursuingZonesService } from 'src/app/features/lookups/services/pursuing-zones';\r\nimport { TripTikClaimsStatusesService } from 'src/app/features/lookups/services/trip-tik-claims-statuses.service';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\nimport { QRCodeErrorCorrectionLevel } from 'angularx-qrcode';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\n\r\n@Component({\r\n selector: 'mac-trip-tiks-claims-logs',\r\n templateUrl: './trip-tiks-claims-logs.component.html',\r\n styleUrls: ['./trip-tiks-claims-logs.component.scss'],\r\n providers: [\r\n TripTiksClaimsService,\r\n TripTikClaimsStatusesService,\r\n PursuingZonesService,\r\n AccountsService,\r\n StockTypesService,\r\n CustomsPortsService\r\n ]\r\n})\r\nexport class TripTiksClaimsLogsComponent implements OnInit {\r\n moment = moment;\r\n //displayedColumns: string[] = ['entranceID', 'created', 'entranceDate', 'name', 'accountTitles', 'serial', 'plateID', 'portTitles', 'followUpCity', 'latestStatus', 'tools'];\r\n displayedColumns: string[] = ['created', 'createdBy', 'holderName', 'serial', 'stockType', 'issued', 'customsPort', 'latestStatus', 'note'];\r\n dataSource: TripTiksClaimsLogsDataSource;\r\n lang: Language;\r\n advancedSearchMode: boolean;\r\n pursuingZones: LookupDto[] = [];\r\n accounts: LookupDto[] = [];\r\n customsPorts: CustomsPortDto[] = [];\r\n cities: LookupDto[] = [];\r\n statuses: LookupDto[] = [];\r\n stockTypes: StockTypeDto[] = [];\r\n query: any = null;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('filter', { static: true }) filter: ElementRef;\r\n @ViewChild('filterBtn') filterBtn: ElementRef;\r\n\r\n get Role() { return Role; };\r\n get Gender() { return Gender; };\r\n get PrintObject() { return PrintObject; };\r\n get IntLicensePermitClass() { return IntLicensePermitClass };\r\n get Object() { return Object; };\r\n\r\n constructor(private loader: LoadingService,\r\n private tripTiksClaimsService: TripTiksClaimsService,\r\n private tripTikClaimsStatusesService: TripTikClaimsStatusesService,\r\n private pursuingZonesService: PursuingZonesService,\r\n public translate: TranslateService,\r\n private stockTypesService: StockTypesService,\r\n private customsPortsService: CustomsPortsService,\r\n private accountsService: AccountsService,\r\n public auth: AuthService,\r\n private fb: FormBuilder,\r\n private router: Router,\r\n private route: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n Promise.all([\r\n this.stockTypesService.get(this.lang)\r\n .then(result => this.stockTypes = result.list.filter(x => x.documentType == _DocumentType.TripTikDocument)),\r\n // this.pursuingZonesService.get(this.lang)\r\n // .then(result => this.pursuingZones = result.list),\r\n this.pursuingZonesService.get(this.lang)\r\n .then(result => {\r\n this.pursuingZones = !this.auth.currentUser.isAdministrator ?\r\n result.list.filter(x => this.auth.currentUser.claimsCountries.map(y => Number(y)).indexOf(x.id) > -1)\r\n : result.list;\r\n }),\r\n this.tripTikClaimsStatusesService.get(0, this.lang)\r\n .then(result => {\r\n this.statuses = result.list.filter(x => x.parentId).map(item => {\r\n item.titles = [`${item.parentTitles} - ${item.titles}`];\r\n return item;\r\n })\r\n }),\r\n this.customsPortsService.get(this.lang)\r\n .then(result => this.customsPorts = result.list)\r\n ]);\r\n\r\n //if system account, accounts will be fetched from server, otherwise current account details will be fetched from local auth service\r\n if (this.auth.currentUser.isSystemAccount) {\r\n this.accountsService.getChildrenAccountsLookup(0, false)\r\n .then(result => {\r\n this.accounts = result.list;\r\n }).catch(e => this.searchForm.get('accountId').disable());\r\n } else {\r\n this.accounts = [{ id: this.auth.currentUser.accountId, titles: [this.auth.currentUser.accountTitles[this.lang]] }];\r\n this.searchForm.patchValue({ accountId: this.auth.currentUser.accountId });\r\n this.searchForm.get('accountId').disable();\r\n }\r\n\r\n this.route.queryParamMap.subscribe(p => {\r\n //console.warn(p);\r\n\r\n if (!p.has('pageIndex')) {\r\n //console.warn('ready to reload!');\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.filter.nativeElement.value = '';\r\n this.paginator.page.emit({ pageIndex: 0, pageSize: this.paginator.pageIndex, length: this.paginator.length });\r\n }\r\n });\r\n\r\n //let query = null;\r\n\r\n if (this.route.snapshot.queryParams.query) {\r\n this.query = this.route.snapshot.queryParams.query;\r\n this.filter.nativeElement.value = this.query;\r\n }\r\n else if (this.route.snapshot.queryParams.accountId\r\n || this.route.snapshot.queryParams.countryId\r\n || this.route.snapshot.queryParams.stockTypeId\r\n || this.route.snapshot.queryParams.created\r\n || this.route.snapshot.queryParams.entranceDate\r\n || this.route.snapshot.queryParams.entranceID\r\n || this.route.snapshot.queryParams.holderName\r\n || this.route.snapshot.queryParams.vehiclePlateID\r\n || this.route.snapshot.queryParams.customsPortId\r\n || this.route.snapshot.queryParams.pursuingZoneId\r\n || this.route.snapshot.queryParams.latestStatusId\r\n || this.route.snapshot.queryParams.serial) {\r\n this.activeFilters = true;\r\n this.searchForm.patchValue(this.route.snapshot.queryParams);\r\n\r\n //fix int for ng-select\r\n this.searchForm.patchValue({ accountId: !isNaN(this.route.snapshot.queryParams.accountId) ? parseInt(this.route.snapshot.queryParams.accountId) : null });\r\n\r\n this.query = this.searchForm.value;\r\n }\r\n\r\n this.fetchData(this.query);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n ).subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => {\r\n this.dataSource.loadTripTiksClaimsLogs({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction },\r\n this.advancedSearchMode || this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim())\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n merge(fromEvent(this.filter.nativeElement, 'search'), fromEvent(this.filterBtn.nativeElement, 'click'))\r\n .pipe(\r\n tap(() => {\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.searchForm.reset();\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.loadTripTiksClaimsLogs({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, this.filter.nativeElement.value.trim())\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n this.dataSource.connect()\r\n .subscribe(() => {\r\n let pagination: PaginationQuery = { pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction };\r\n let query = this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim();\r\n this.query = query;\r\n\r\n if (this.activeFilters)\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, ...query }, replaceUrl: true });\r\n else\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, query }, replaceUrl: true });\r\n });\r\n }\r\n\r\n fetchData(query) {\r\n this.paginator.pageIndex = this.route.snapshot.queryParams.pageIndex ? this.route.snapshot.queryParams.pageIndex : 0;\r\n this.paginator.pageSize = this.route.snapshot.queryParams.pageSize ? this.route.snapshot.queryParams.pageSize : 25;\r\n this.sort.active = this.route.snapshot.queryParams.sort ? this.route.snapshot.queryParams.sort : 'created';\r\n this.sort.direction = this.route.snapshot.queryParams.dir ? this.route.snapshot.queryParams.dir : 'desc';\r\n this.dataSource = new TripTiksClaimsLogsDataSource(this.tripTiksClaimsService, this.loader);\r\n this.dataSource.loadTripTiksClaimsLogs({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, query);\r\n }\r\n\r\n toggleAdvancedSearch() {\r\n this.advancedSearchMode = !this.advancedSearchMode;\r\n this.filter.nativeElement.value = '';\r\n }\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)\r\n this.tripTiksClaimsService[(this.query == null || typeof this.query == 'string') ? 'getClaimsLogs' : 'searchClaimsLogs']({ pageIndex: 0, pageSize: this.paginator.length, sort: this.sort.active, dir: this.sort.direction }, this.query)\r\n .toPromise()\r\n .then(data => {\r\n this.exportToExcel(data.list);\r\n }).finally(() => this.loader.load(LoaderType.Body, false));\r\n else\r\n this.dataSource.connect().subscribe(data => {\r\n this.exportToExcel(data);\r\n this.loader.load(LoaderType.Body, false);\r\n }).unsubscribe();\r\n }\r\n\r\n private exportToExcel(data: TripTikClaimLogDto[]) {\r\n // const wscols = [\r\n // { width: 12 },\r\n // { width: 28 },\r\n // { width: 12 },\r\n // { width: 18 },\r\n // { width: 28 },\r\n // { width: 18 },\r\n // { width: 18 },\r\n // { width: 18 },\r\n // { width: 18 }\r\n // ];\r\n // const autofilter = { ref: 'A1:I1' };\r\n // const rows: string[][] = [];\r\n\r\n // const headers = [\r\n // this.translate.instant('_LABEL_SERIAL'),\r\n // this.translate.instant('_FIELD_NAME'),\r\n // this.translate.instant('_LABEL_GENDER'),\r\n // this.translate.instant('_FIELD_PHONE_NO'),\r\n // this.translate.instant('ACC_FIELD_ACCOUNT_TITLE'),\r\n // this.translate.instant('ISS_FIELD_PASSPORT_NUMBER'),\r\n // this.translate.instant('ISS_LABEL_ISSUE_DATE'),\r\n // this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('LIC_LABEL_PRINT_OBJECT_LICENSE') }),\r\n // this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('LIC_LABEL_PRINT_OBJECT_STICKER') }),\r\n // ];\r\n\r\n // rows.push(headers);\r\n // for (let row of data) {\r\n // rows.push([\r\n // row.serial,\r\n // row.name,\r\n // this.translate.instant(row.gender == Gender.Male ? '_LABEL_MALE' : '_LABEL_FEMALE'),\r\n // row.phoneNumber,\r\n // row.accountTitles[0],\r\n // row.passportID,\r\n // moment(row.issued).format('DD/MM/YYYY'),\r\n // this.printObjectsCount(row.printLogs, PrintObject.IntLicenseCard),\r\n // this.printObjectsCount(row.printLogs, PrintObject.IntLicenseSticker)\r\n // ]);\r\n // }\r\n\r\n // exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'Int-Licenses');\r\n }\r\n\r\n onSubmit() {\r\n if (this.created.value)\r\n this.created.setValue(Utils.convertToServerDateTimeString(this.created.value));\r\n\r\n if (this.entranceDate.value)\r\n this.entranceDate.setValue(Utils.convertToServerDateTimeString(this.entranceDate.value));\r\n\r\n this.activeFilters = true;\r\n\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n get created() { return this.searchForm.get('created'); };\r\n get entranceDate() { return this.searchForm.get('entranceDate'); };\r\n searchForm: FormGroup;\r\n activeFilters: boolean;\r\n\r\n resetSearch() {\r\n this.advancedSearchMode = false;\r\n if (this.activeFilters) {\r\n this.activeFilters = false;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n this.activeFilters = false;\r\n\r\n setTimeout(() => {\r\n this.searchForm.reset();\r\n this.query = null;\r\n }, 500);\r\n }\r\n\r\n private formInit() {\r\n this.searchForm = this.fb.group({\r\n accountId: [null],\r\n stockTypeId: [''],\r\n serial: [''],\r\n created: [''],\r\n entranceDate: [''],\r\n entranceID: [''],\r\n holderName: [''],\r\n vehiclePlateID: [''],\r\n customsPortId: [''],\r\n pursuingZoneId: [''],\r\n latestStatusId: ['']\r\n });\r\n }\r\n}","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { merge, fromEvent } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\n\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { exportToExcel } from 'src/app/shared/helpers/export-to-excel';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { TripTiksClaimsService } from '../../services/trip-tiks-claims.service';\r\nimport { Gender } from 'src/app/core/models/enums/gender';\r\nimport { PrintObject } from 'src/app/core/models/enums/print-object';\r\nimport { ConfirmService } from 'src/app/shared/services/modal.service';\r\nimport { DeleteModal, UpdateModal } from 'src/app/shared/models/modal';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { CountriesService } from 'src/app/features/lookups/services/countries';\r\nimport { CountryDto } from 'src/app/features/lookups/models/country';\r\nimport { IntLicensePermitClass } from 'src/app/core/models/enums/license-permit-class';\r\nimport { populateAccountsSelect } from 'src/app/shared/helpers/populate-accounts-select';\r\nimport { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport { AccountsService } from 'src/app/features/accounts/services/accounts.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n//import { StockType } from 'src/app/core/models/enums/stock-type';\r\nimport { TripTiksClaimsDataSource } from '../../services/trip-tiks-claims.datasource';\r\nimport { PaginationQuery } from 'src/app/features/issuing/_shared/models/issuing.models';\r\nimport { TripTikClaimDto } from '../../models/trip-tik-claim.model';\r\nimport { StockTypeDto } from 'src/app/features/lookups/models/stock-type';\r\nimport { StockTypesService } from 'src/app/features/lookups/services/stock-types';\r\nimport { CustomsPortDto } from 'src/app/features/lookups/models/customs-port';\r\nimport { CustomsPortsService } from 'src/app/features/lookups/services/customs-ports.service';\r\nimport { PursuingZonesService } from 'src/app/features/lookups/services/pursuing-zones';\r\nimport { TripTikClaimsStatusesService } from 'src/app/features/lookups/services/trip-tik-claims-statuses.service';\r\nimport { _DocumentType } from 'src/app/core/models/enums/document-type';\r\nimport { TripTikClaimStatusDto } from 'src/app/features/lookups/models/trip-tik-claim-status';\r\nimport { isArray } from 'lodash';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\n\r\n@Component({\r\n selector: 'mac-trip-tiks-claims',\r\n templateUrl: './trip-tiks-claims.component.html',\r\n styleUrls: ['./trip-tiks-claims.component.scss'],\r\n providers: [\r\n TripTiksClaimsService,\r\n TripTikClaimsStatusesService,\r\n AccountsService,\r\n StockTypesService,\r\n CustomsPortsService,\r\n PursuingZonesService\r\n ]\r\n})\r\nexport class TripTiksClaimsComponent implements OnInit {\r\n moment = moment;\r\n displayedColumns: string[] = ['entranceID', /*'created',*/ 'entranceDate', 'holderName', 'accountTitles', 'serial', 'stockType', 'vehiclePlateID', 'country', 'customsPort', 'pursuingZone', 'latestStatus', 'tools'];\r\n dataSource: TripTiksClaimsDataSource;\r\n lang: Language;\r\n advancedSearchMode: boolean;\r\n pursuingZones: LookupDto[] = [];\r\n accounts: LookupDto[] = [];\r\n customsPorts: CustomsPortDto[] = [];\r\n _customsPorts: CustomsPortDto[] = [];\r\n claimsCountries: LookupDto[] = [];\r\n stockTypes: StockTypeDto[] = [];\r\n query: any = null;\r\n baseStatuses: TripTikClaimStatusDto[] = [];\r\n nodeStatuses: TripTikClaimStatusDto[] = [];\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('filter', { static: true }) filter: ElementRef;\r\n @ViewChild('filterBtn') filterBtn: ElementRef;\r\n\r\n get Role() { return Role; };\r\n get Gender() { return Gender; };\r\n get PrintObject() { return PrintObject; };\r\n get IntLicensePermitClass() { return IntLicensePermitClass };\r\n get Object() { return Object; };\r\n\r\n constructor(private loader: LoadingService,\r\n private tripTiksClaimsService: TripTiksClaimsService,\r\n public translate: TranslateService,\r\n private confirmService: ConfirmService,\r\n private alert: AlertService,\r\n public auth: AuthService,\r\n private fb: FormBuilder,\r\n private stockTypesService: StockTypesService,\r\n private tripTikClaimsStatusesService: TripTikClaimsStatusesService,\r\n private pursuingZonesService: PursuingZonesService,\r\n private customsPortsService: CustomsPortsService,\r\n private accountsService: AccountsService,\r\n private router: Router,\r\n private route: ActivatedRoute) { }\r\n\r\n async ngOnInit() {\r\n document.querySelector('mat-card').classList.remove('overflow-hidden');\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n //if system account, accounts will be fetched from server, otherwise current account details will be fetched from local auth service\r\n if (this.auth.currentUser.isAdministrator) {\r\n this.accountsService.getChildrenAccountsLookup(0, false)\r\n .then(result => {\r\n this.accounts = result.list;// populateAccountsSelect(result.list);\r\n }).catch(e => this.searchForm.get('accountId').disable());\r\n } else {\r\n // this.accounts = [{ id: this.auth.currentUser.accountId, titles: [this.auth.currentUser.accountTitles[this.lang]] }];\r\n // this.searchForm.patchValue({ accountId: this.auth.currentUser.accountId });\r\n // this.searchForm.get('accountId').disable();\r\n }\r\n\r\n this.route.queryParamMap.subscribe(p => {\r\n if (!p.has('pageIndex')) {\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.filter.nativeElement.value = '';\r\n this.paginator.page.emit({ pageIndex: 0, pageSize: this.paginator.pageIndex, length: this.paginator.length });\r\n }\r\n });\r\n\r\n if (this.route.snapshot.queryParams.query) {\r\n this.query = this.route.snapshot.queryParams.query;\r\n this.filter.nativeElement.value = this.query;\r\n this.statusId = this.route.snapshot.queryParams.statusId\r\n this.fetchData(this.query);\r\n }\r\n else if (this.route.snapshot.queryParams.accountId\r\n || this.route.snapshot.queryParams.stockTypeId\r\n || this.route.snapshot.queryParams.fromEntranceDate\r\n || this.route.snapshot.queryParams.toEntranceDate\r\n || this.route.snapshot.queryParams.entranceID\r\n || this.route.snapshot.queryParams.holderName\r\n || this.route.snapshot.queryParams.vehiclePlateID\r\n || this.route.snapshot.queryParams.countryId\r\n || this.route.snapshot.queryParams.customsPortId\r\n || this.route.snapshot.queryParams.pursuingZoneId\r\n || this.route.snapshot.queryParams.baseStatusId\r\n || this.route.snapshot.queryParams.statusId\r\n || this.route.snapshot.queryParams.serial) {\r\n this.activeFilters = true;\r\n\r\n this.searchForm.patchValue(this.route.snapshot.queryParams);\r\n\r\n const _stockTypeId = this.route.snapshot.queryParams.stockTypeId && this.route.snapshot.queryParams.stockTypeId.indexOf(',') > -1 ?\r\n this.route.snapshot.queryParams.stockTypeId.split(',') : [this.route.snapshot.queryParams.stockTypeId];\r\n\r\n const _countryId = this.route.snapshot.queryParams.countryId && this.route.snapshot.queryParams.countryId.indexOf(',') > -1 ?\r\n this.route.snapshot.queryParams.countryId.split(',') : [this.route.snapshot.queryParams.countryId];\r\n\r\n const _customsPortId = this.route.snapshot.queryParams.customsPortId && this.route.snapshot.queryParams.customsPortId.indexOf(',') > -1 ?\r\n this.route.snapshot.queryParams.customsPortId.split(',') : [this.route.snapshot.queryParams.customsPortId];\r\n\r\n if (_countryId) {\r\n this.onSelectCountry(_countryId);\r\n }\r\n\r\n this.searchForm.patchValue({ stockTypeId: _stockTypeId, countryId: _countryId, customsPortId: _customsPortId });\r\n\r\n //fix int for ng-select\r\n this.searchForm.patchValue({ accountId: !isNaN(this.route.snapshot.queryParams.accountId) ? parseInt(this.route.snapshot.queryParams.accountId) : null });\r\n\r\n this.query = this.searchForm.value;\r\n this.fetchData(this.query);\r\n } else this.fetchData(this.query);\r\n\r\n await Promise.all([\r\n this.stockTypesService.get(this.lang)\r\n .then(result =>\r\n this.stockTypes = result.list.filter(x => x.documentType == _DocumentType.TripTikDocument)),\r\n this.tripTikClaimsStatusesService.get(null, this.lang)\r\n .then(result => this.baseStatuses = result.list),\r\n this.pursuingZonesService.get(this.lang)\r\n .then(result => this.pursuingZones = result.list),\r\n this.customsPortsService.get(0, this.lang)\r\n .then(result => {\r\n this._customsPorts = !this.auth.currentUser.isAdministrator ?\r\n result.list.filter(x => this.auth.currentUser.claimsCountries.indexOf(x.countryId) > -1)\r\n : result.list;\r\n\r\n this.claimsCountries = [...new Map(this._customsPorts.map(item =>\r\n [item['countryId'], item])).values()].map(x => {\r\n id: x.countryId,\r\n titles: x.countryTitles\r\n });\r\n })\r\n ]);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.counter$\r\n .pipe(\r\n tap((count) => {\r\n this.paginator.length = count;\r\n })\r\n ).subscribe();\r\n\r\n merge(this.paginator.page, this.sort.sortChange)\r\n .pipe(\r\n tap(() => {\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction },\r\n this.advancedSearchMode || this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim(), this.statusId, this.pursuingZoneId)\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n merge(fromEvent(this.filter.nativeElement, 'search'), fromEvent(this.filterBtn.nativeElement, 'click'))\r\n .pipe(\r\n tap(() => {\r\n this.advancedSearchMode = false;\r\n this.activeFilters = false;\r\n this.searchForm.reset();\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, this.filter.nativeElement.value.trim(), this.statusId, this.pursuingZoneId)\r\n })\r\n ).subscribe(() => this.loader.load(LoaderType.Body));\r\n\r\n this.dataSource.connect()\r\n .subscribe(() => {\r\n let pagination: PaginationQuery = { pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction };\r\n let query = this.activeFilters ? this.searchForm.value : this.filter.nativeElement.value.trim();\r\n this.query = query;\r\n //console.log(this.query);\r\n if (typeof query == 'object') {\r\n query.stockTypeId = query.stockTypeId ? query.stockTypeId.toString() : null;\r\n query.countryId = query.countryId ? query.countryId.toString() : null;\r\n query.customsPortId = query.customsPortId ? query.customsPortId.toString() : null;\r\n }\r\n const statusId = null;//this.status.nativeElement.value;\r\n this.statusId = statusId;\r\n const pursuingZoneId = null;// this.pursuingZone.nativeElement.value;\r\n this.pursuingZoneId = pursuingZoneId;\r\n\r\n if (this.activeFilters)\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, ...query }, replaceUrl: true });\r\n else\r\n this.router.navigate(['.'], { relativeTo: this.route, queryParams: { ...pagination, query, statusId, pursuingZoneId }, replaceUrl: true });\r\n });\r\n }\r\n\r\n statusId?: number;\r\n pursuingZoneId?: number;\r\n\r\n filterWithStatusId(statusId) {\r\n //console.log(statusId);\r\n this.statusId = statusId;\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, this.filter.nativeElement.value.trim(), this.statusId, this.pursuingZoneId);\r\n }\r\n\r\n filterWithPursuingZoneId(pursuingZoneId) {\r\n //console.log(pursuingZoneId);\r\n this.pursuingZoneId = pursuingZoneId;\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, this.filter.nativeElement.value.trim(), this.statusId, this.pursuingZoneId);\r\n }\r\n\r\n\r\n fetchData(query, statusId?: number, pursuingZoneId?: number) {\r\n // //console.log('try fetch')\r\n this.paginator.pageIndex = this.route.snapshot.queryParams.pageIndex ? this.route.snapshot.queryParams.pageIndex : 0;\r\n this.paginator.pageSize = this.route.snapshot.queryParams.pageSize ? this.route.snapshot.queryParams.pageSize : 25;\r\n this.sort.active = this.route.snapshot.queryParams.sort ? this.route.snapshot.queryParams.sort : 'created';\r\n this.sort.direction = this.route.snapshot.queryParams.dir ? this.route.snapshot.queryParams.dir : 'desc';\r\n this.dataSource = new TripTiksClaimsDataSource(this.tripTiksClaimsService, this.loader);\r\n this.dataSource.load({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, sort: this.sort.active, dir: this.sort.direction }, query);\r\n }\r\n\r\n toggleAdvancedSearch() {\r\n this.advancedSearchMode = !this.advancedSearchMode;\r\n this.filter.nativeElement.value = '';\r\n }\r\n\r\n delete(dto: TripTikClaimDto) {\r\n // if (dto.accountId != this.auth.accountId\r\n // || !this.auth.currentUser.isInRole(Role.INT_LICENSES_DELETE))\r\n // return;\r\n\r\n //delete confirm if not yet issued\r\n //if (!dto.issued) {\r\n let modal = this.confirmService.confirm(new DeleteModal({\r\n type: 'LIC_TITLE_LICENSE',\r\n title: `${dto.entranceID.toString()}/${dto.holderName}`,\r\n note: 'LIC_CONFIRM_DELETE_NOTE'\r\n }));\r\n\r\n modal.then(async m => {\r\n if (m.indexOf('CONFIRMED') > -1)\r\n this._delete(dto.entranceID);\r\n });\r\n // }\r\n }\r\n\r\n private _delete(id: string) {\r\n this.loader.load(LoaderType.Body);\r\n this.tripTiksClaimsService.delete(id)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.DELETING);\r\n this.dataSource.TripTiksClaimsSubject.next(this.dataSource.TripTiksClaimsSubject.value.filter(d => d.entranceID != id));\r\n this.dataSource.countSubject.next(this.dataSource.countSubject.value - 1);\r\n\r\n } else this.alert.failure(DefaultAlertAction.DELETING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false));\r\n }\r\n\r\n // onExportToExcel(all: boolean = true) {\r\n // this.loader.load(LoaderType.Body);\r\n // if (all)\r\n // this.tripTiksClaimsService[(this.query == null || typeof this.query == 'string') ? 'getClaims' : 'search']({ pageIndex: 0, pageSize: this.paginator.length, sort: this.sort.active, dir: this.sort.direction }, this.query)\r\n // .toPromise()\r\n // .then(data => {\r\n // this.exportToExcel(data.list);\r\n // }).finally(() => this.loader.load(LoaderType.Body, false));\r\n // else\r\n // this.dataSource.connect().subscribe(data => {\r\n // this.exportToExcel(data);\r\n // this.loader.load(LoaderType.Body, false);\r\n // }).unsubscribe();\r\n // }\r\n\r\n // onSelectNestedStatus(status: number) {\r\n // //console.log(status);\r\n // if (status == TripTikClaimStatus.Paid) {\r\n // this.paymentFormInit();\r\n // } else {\r\n // Object.keys(this.payment.controls).forEach(ctrl => {\r\n // this.payment.removeControl(ctrl);\r\n // });\r\n // }\r\n // }\r\n\r\n onSelectCountry(countries: number[]) {\r\n // //console.log(countries);\r\n // //console.log(this._customsPorts);\r\n // //console.log(this.customsPorts);\r\n // if (countries) {\r\n this.searchForm.get('customsPortId').disable();\r\n this.customsPorts = this._customsPorts.filter(x => countries.map(y => Number(y)).indexOf(x.countryId) > -1)\r\n this.searchForm.get('customsPortId').enable();\r\n\r\n // //console.log(this.searchForm.get('countryId').value);\r\n\r\n // }\r\n }\r\n\r\n\r\n async onSelectStatus(statusId: number) {\r\n this.searchForm.get('statusId').disable();\r\n this.nodeStatuses = await (await this.tripTikClaimsStatusesService.get(statusId, this.lang)).list;\r\n this.searchForm.get('statusId').enable();\r\n }\r\n\r\n\r\n onExportToExcel(all: boolean = true) {\r\n this.loader.load(LoaderType.Body);\r\n if (all)\r\n this.tripTiksClaimsService[(this.query == null || typeof this.query == 'string') ? 'getClaims' : 'search']({ pageIndex: 0, pageSize: this.paginator.length, sort: this.sort.active, dir: this.sort.direction }, this.query)\r\n .toPromise()\r\n .then(data => {\r\n this.exportToExcel(data.list);\r\n }).finally(() => this.loader.load(LoaderType.Body, false));\r\n else\r\n this.dataSource.connect().subscribe(data => {\r\n this.exportToExcel(data);\r\n this.loader.load(LoaderType.Body, false);\r\n }).unsubscribe();\r\n }\r\n\r\n private exportToExcel(data: TripTikClaimDto[]) {\r\n const wscols = [\r\n { width: 12 },\r\n // { width: 12 },\r\n { width: 12 },\r\n { width: 28 },\r\n { width: 28 },\r\n { width: 16 },\r\n { width: 28 },\r\n { width: 16 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n { width: 18 },\r\n ];\r\n const autofilter = { ref: 'A1:K1' };\r\n const rows: string[][] = [];\r\n\r\n const headers = [\r\n this.translate.instant('TRP_CLM_FIELD_ENTRANCE_ID'),\r\n // this.translate.instant('TRP_CLM_FIELD_REGISTRATION_DATE'),\r\n this.translate.instant('TRP_CLM_FIELD_ENTRANCE_DATE'),\r\n this.translate.instant('TRP_CLM_FIELD_NAME'),\r\n this.translate.instant('ACC_FIELD_ACCOUNT_TITLE'),\r\n this.translate.instant('TRP_FIELD_TRIPTIK_SERIAL'),\r\n this.translate.instant('TRP_FIELD_TRIPTIK_TYPE'),\r\n this.translate.instant('TRP_FIELD_PLATE_ID'),\r\n this.translate.instant('TRP_CLM_LABEL_CLAIM_COUNTRY'),\r\n this.translate.instant('LKP_FIELD_CUSTOMS_PORT'),\r\n this.translate.instant('LKP_FIELD_PURSUING_ZONE'),\r\n this.translate.instant('TRP_CLM_FIELD_LATEST_STATUS')\r\n ];\r\n\r\n rows.push(headers);\r\n for (let row of data) {\r\n rows.push([\r\n row.entranceID,\r\n moment(row.created).format('DD/MM/YYYY'),\r\n // moment(row.entranceDate).format('DD/MM/YYYY'),\r\n row.holderName,\r\n row.accountTitles ? row.accountTitles[0] : 'N/A',\r\n row.serial.toString(),\r\n row.stockType.titles[0],\r\n row.vehiclePlateID ? row.vehiclePlateID : 'N/A',\r\n row.country.countryTitles[0],\r\n row.customsPort ? row.customsPort.titles[0] : 'N/A',\r\n row.pursuingZone ? row.pursuingZone.titles[0] : 'N/A',\r\n row.latestStatus ? row.latestStatus.titles[0] : 'N/A'\r\n ]);\r\n }\r\n\r\n exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'Trip-Tik-Claims');\r\n }\r\n\r\n\r\n // private exportToExcel(data: TripTikClaimDto[]) {\r\n // // const wscols = [\r\n // // { width: 12 },\r\n // // { width: 28 },\r\n // // { width: 12 },\r\n // // { width: 18 },\r\n // // { width: 28 },\r\n // // { width: 18 },\r\n // // { width: 18 },\r\n // // { width: 18 },\r\n // // { width: 18 }\r\n // // ];\r\n // // const autofilter = { ref: 'A1:I1' };\r\n // // const rows: string[][] = [];\r\n\r\n // // const headers = [\r\n // // this.translate.instant('_LABEL_SERIAL'),\r\n // // this.translate.instant('_FIELD_NAME'),\r\n // // this.translate.instant('_LABEL_GENDER'),\r\n // // this.translate.instant('_FIELD_PHONE_NO'),\r\n // // this.translate.instant('ACC_FIELD_ACCOUNT_TITLE'),\r\n // // this.translate.instant('ISS_FIELD_PASSPORT_NUMBER'),\r\n // // this.translate.instant('ISS_LABEL_ISSUE_DATE'),\r\n // // this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('LIC_LABEL_PRINT_OBJECT_LICENSE') }),\r\n // // this.translate.instant('ISS_LABEL_PRINT_OBJECT_PRINTED_COUNT', { param: this.translate.instant('LIC_LABEL_PRINT_OBJECT_STICKER') }),\r\n // // ];\r\n\r\n // // rows.push(headers);\r\n // // for (let row of data) {\r\n // // rows.push([\r\n // // row.serial,\r\n // // row.name,\r\n // // this.translate.instant(row.gender == Gender.Male ? '_LABEL_MALE' : '_LABEL_FEMALE'),\r\n // // row.phoneNumber,\r\n // // row.accountTitles[0],\r\n // // row.passportID,\r\n // // moment(row.issued).format('DD/MM/YYYY'),\r\n // // this.printObjectsCount(row.printLogs, PrintObject.IntLicenseCard),\r\n // // this.printObjectsCount(row.printLogs, PrintObject.IntLicenseSticker)\r\n // // ]);\r\n // // }\r\n\r\n // // exportToExcel(rows, wscols, autofilter, this.translate.currentLang == 'ar', 'Int-Licenses');\r\n // }\r\n\r\n onSubmit() {\r\n console.warn(this.searchForm.value);\r\n //console.warn(this.searchForm.pristine);\r\n\r\n // if (this.fromEntranceDate.value)\r\n // this.fromEntranceDate.setValue(this.fromEntranceDate.value.toISOString());\r\n\r\n // if (this.toEntranceDate.value)\r\n // this.toEntranceDate.setValue(this.toEntranceDate.value.toISOString());\r\n\r\n if (this.fromEntranceDate.value && typeof this.fromEntranceDate.value == 'object')\r\n this.fromEntranceDate.setValue(Utils.convertToServerDateTimeString(this.fromEntranceDate.value));\r\n\r\n if (this.toEntranceDate.value && typeof this.toEntranceDate.value == 'object')\r\n this.toEntranceDate.setValue(Utils.convertToServerDateTimeString(this.toEntranceDate.value));\r\n\r\n //swap dates\r\n if (this.fromEntranceDate.value && this.toEntranceDate.value && new Date(this.fromEntranceDate.value) > new Date(this.toEntranceDate.value)) {\r\n let _temp = this.fromEntranceDate.value;\r\n this.fromEntranceDate.setValue(this.toEntranceDate.value);\r\n this.toEntranceDate.setValue(_temp);\r\n }\r\n\r\n\r\n\r\n this.activeFilters = true;\r\n\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n // get created() { return this.searchForm.get('created'); };\r\n // get entranceDate() { return this.searchForm.get('entranceDate'); };\r\n\r\n get fromEntranceDate() { return this.searchForm.get('fromEntranceDate'); };\r\n get toEntranceDate() { return this.searchForm.get('toEntranceDate'); };\r\n\r\n searchForm: FormGroup;\r\n activeFilters: boolean;\r\n\r\n resetSearch() {\r\n this.advancedSearchMode = false;\r\n if (this.activeFilters) {\r\n this.activeFilters = false;\r\n this.paginator.pageIndex = 0;\r\n this.paginator.page.emit({ pageIndex: this.paginator.pageIndex, pageSize: this.paginator.pageSize, length: this.paginator.length });\r\n }\r\n\r\n this.activeFilters = false;\r\n\r\n setTimeout(() => {\r\n this.searchForm.reset();\r\n this.query = null;\r\n }, 500);\r\n }\r\n\r\n private formInit() {\r\n this.searchForm = this.fb.group({\r\n accountId: [null],\r\n stockTypeId: [''],\r\n // stockTypes: [''],\r\n serial: [''],\r\n // created: [''],\r\n // entranceDate: [''],\r\n fromEntranceDate: [''],\r\n toEntranceDate: [''],\r\n entranceID: [''],\r\n holderName: [''],\r\n vehiclePlateID: [''],\r\n countryId: [''],\r\n customsPortId: [''],\r\n // customsPorts: [''],\r\n pursuingZoneId: [''],\r\n // latestStatusId: [''],\r\n baseStatusId: [''],\r\n statusId: ['']\r\n });\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TripTiksClaimsService } from '../../services/trip-tiks-claims.service';\r\nimport { TripTikClaimDto, UpdateStatusTripTikClaimCommand } from '../../models/trip-tik-claim.model';\r\nimport { FormBuilder, FormGroup, FormArray, FormControl, AbstractControl, Validators } from '@angular/forms';\r\n// import { isArray } from 'util';\r\nimport { Utils } from 'src/app/shared/services/utils';\r\nimport { AlertService } from 'src/app/shared/services/alert.service';\r\nimport { DefaultAlertAction } from 'src/app/shared/models/default-alert-action';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TripTikClaimsStatusesService } from 'src/app/features/lookups/services/trip-tik-claims-statuses.service';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\nimport { result } from 'lodash';\r\nimport { TripTikClaimStatusDto } from 'src/app/features/lookups/models/trip-tik-claim-status';\r\nimport { stat } from 'fs';\r\nimport { TripTikClaimStatus } from 'src/app/core/models/enums/triptik-claim-status';\r\nimport { CurrenciesService } from 'src/app/features/lookups/services/currencies';\r\nimport { CurrencyDto } from 'src/app/features/lookups/models/currency';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\n\r\n@Component({\r\n selector: 'mac-update-status-trip-tik-claim',\r\n templateUrl: './update-status-trip-tik-claim.component.html',\r\n styleUrls: ['./update-status-trip-tik-claim.component.scss'],\r\n providers: [\r\n TripTiksClaimsService,\r\n TripTikClaimsStatusesService,\r\n CurrenciesService\r\n ]\r\n})\r\nexport class UpdateStatusTripTikClaimComponent implements OnInit {\r\n lang: Language;\r\n dto = new TripTikClaimDto();\r\n form: FormGroup;\r\n id: string;\r\n currencies: CurrencyDto[] = [];\r\n baseStatuses: TripTikClaimStatusDto[] = [];\r\n nodeStatuses: TripTikClaimStatusDto[] = [];\r\n\r\n constructor(private tripTiksClaimsService: TripTiksClaimsService,\r\n private tripTikClaimsStatusesService: TripTikClaimsStatusesService,\r\n private currenciesService: CurrenciesService,\r\n private loader: LoadingService,\r\n private alert: AlertService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private translate: TranslateService,\r\n public auth: AuthService,\r\n private fb: FormBuilder) { }\r\n\r\n async ngOnInit() {\r\n this.lang = this.translate.currentLang == 'ar' ? Language.Arabic : Language.English;\r\n this.translate.onLangChange.subscribe(t => this.lang = t.lang == 'ar' ? Language.Arabic : Language.English);\r\n this.id = this.route.snapshot.paramMap.get('id');\r\n\r\n this.loader.load(LoaderType.Nav);\r\n this.formInit();\r\n\r\n await Promise.all([\r\n this.tripTikClaimsStatusesService.get(null, this.lang)\r\n .then(result => this.baseStatuses = result.list),\r\n this.currenciesService.get(this.lang)\r\n .then(result => this.currencies = result.list)\r\n ]);\r\n\r\n this.tripTiksClaimsService.get(this.id)\r\n .then(async result => {\r\n this.dto = result.item;\r\n //console.log(this.dto);\r\n if (this.dto.latestStatus.parentId)\r\n await this.onSelectStatus(this.dto.latestStatus.parentId)\r\n\r\n this.form.patchValue({\r\n baseStatusId: this.dto.latestStatus.parentId,\r\n statusId: this.dto.latestStatus.id\r\n });\r\n })\r\n .finally(() => {\r\n if (!this.auth.currentUser.isInRole(Role.TRIPTIKS_CLAIMS_STATUS_UPDATE)) {\r\n this.baseStatus.disable();\r\n this.status.disable();\r\n }\r\n this.loader.load(LoaderType.Nav, false);\r\n });\r\n }\r\n\r\n get Object() { return Object; };\r\n get note() { return this.form.get('note'); };\r\n get attachments() { return this.form.get('attachments') as FormArray; };\r\n get baseStatus() { return this.form.get('baseStatusId') };\r\n get status() { return this.form.get('statusId') };\r\n get payment() { return this.form.get('payment') as FormGroup; };\r\n get receiptNo() { return this.payment.get('receiptNo'); };\r\n get currency() { return this.payment.get('currencyId'); };\r\n get value() { return this.payment.get('value'); };\r\n\r\n private formInit() {\r\n this.form = this.fb.group({\r\n baseStatusId: ['', [Validators.required]],\r\n statusId: ['', [Validators.required]],\r\n payment: this.fb.group({}),\r\n note: ['', [Validators.required]],\r\n attachments: this.fb.array([])\r\n });\r\n }\r\n\r\n private paymentFormInit() {\r\n this.payment.addControl('currencyId', this.fb.control(this.currencies.length > 0 ? this.currencies[0].id : '', [Validators.required]));\r\n this.payment.addControl('value', this.fb.control('', [Validators.required]));\r\n this.payment.addControl('receiptNo', this.fb.control('', [Validators.required]));\r\n }\r\n\r\n private attachmentFormInit() {\r\n this.attachments.push(this.fb.group({\r\n name: ['', [Validators.required]],\r\n file: ['', [Validators.required]],\r\n fileName: ['']\r\n }));\r\n }\r\n\r\n onSelectNestedStatus(status: number) {\r\n //console.log(status);\r\n if (status == TripTikClaimStatus.Paid) {\r\n this.paymentFormInit();\r\n } else {\r\n Object.keys(this.payment.controls).forEach(ctrl => {\r\n this.payment.removeControl(ctrl);\r\n });\r\n }\r\n }\r\n\r\n async onSelectStatus(statusId: number) {\r\n //console.log(statusId);\r\n this.loader.load(LoaderType.Body);\r\n this.nodeStatuses = await (await this.tripTikClaimsStatusesService.get(statusId, this.lang)).list;\r\n this.status.reset();\r\n this.loader.load(LoaderType.Body, false)\r\n }\r\n\r\n addAttachment() {\r\n this.attachmentFormInit();\r\n }\r\n\r\n removeAttachment(i) {\r\n this.attachments.removeAt(i);\r\n }\r\n\r\n onSubmit() {\r\n console.warn(this.form.value);\r\n\r\n if (!this.auth.currentUser.isInRole(Role.TRIPTIKS_CLAIMS_UPDATE))\r\n return;\r\n\r\n if (!this.auth.currentUser.isInRole(Role.TRIPTIKS_CLAIMS_STATUS_UPDATE)) {\r\n //this.baseStatus.setValue(this.dto.latestStatus.parentId);\r\n this.baseStatus.reset();\r\n this.baseStatus.setErrors(null);\r\n this.status.reset();\r\n this.status.setErrors(null);\r\n }\r\n\r\n if (!this.form.valid)\r\n return Utils.validateAllFormFields(this.form);\r\n\r\n this.loader.load(LoaderType.Body);\r\n\r\n const cmd = this.form.value as UpdateStatusTripTikClaimCommand;\r\n cmd.id = this.id;\r\n\r\n this.tripTiksClaimsService.updateStatus(this.form.value as UpdateStatusTripTikClaimCommand)\r\n .then(result => {\r\n if (result) {\r\n this.alert.success(DefaultAlertAction.ADDING);\r\n setTimeout(() => {\r\n this.router.navigate(['/', this.translate.currentLang, 'trip-tiks-claims', 'view', this.id])\r\n }, 1000);\r\n } else this.alert.failure(DefaultAlertAction.ADDING);\r\n })\r\n .finally(() => this.loader.load(LoaderType.Body, false))\r\n }\r\n\r\n //attachments\r\n preview($event, group: FormGroup) {\r\n const tgt = $event.target || window.event.srcElement,\r\n files = Array.isArray($event) ? $event : tgt.files;\r\n\r\n if (FileReader && files && files.length) {\r\n const fr = new FileReader();\r\n fr.onload = () => {\r\n //console.log(fr);\r\n if (fr.result.toString().length <= 2 * 2 ** 20) {\r\n group.get('file').setValue(fr.result.toString());\r\n group.get('fileName').setValue(files[0].name);\r\n }\r\n else\r\n alert('file limit is 2 MB.');\r\n };\r\n fr.readAsDataURL(files[0]);\r\n }\r\n else {\r\n //console.error('not supported!');\r\n }\r\n }\r\n\r\n fileDropped(file, group: FormGroup): void {\r\n //console.log(file);\r\n group.get('file').setValue(file.url);\r\n group.get('fileName').setValue(file.name);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { TripTiksClaimsService } from '../../services/trip-tiks-claims.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { TripTikClaimDetailsDto } from '../../models/trip-tik-claim.model';\r\nimport { FileLoaderService } from 'src/app/shared/services/file-loader.service';\r\nimport { TripTikClaimStatus } from 'src/app/core/models/enums/triptik-claim-status';\r\nimport { AuthService } from 'src/app/core/auth/auth.service';\r\nimport { Role } from 'src/app/core/models/enums/role';\r\n\r\n@Component({\r\n selector: 'mac-view-trip-tik-claim',\r\n templateUrl: './view-trip-tik-claim.component.html',\r\n styleUrls: ['./view-trip-tik-claim.component.scss'],\r\n providers: [TripTiksClaimsService, FileLoaderService]\r\n})\r\nexport class ViewTripTikClaimComponent implements OnInit {\r\n\r\n dto = new TripTikClaimDetailsDto();\r\n\r\n get TripTikClaimStatus() { return TripTikClaimStatus; };\r\n get Role() { return Role; };\r\n\r\n constructor(private loader: LoadingService,\r\n private tripTiksClaimsService: TripTiksClaimsService,\r\n private fileLoader: FileLoaderService,\r\n public auth: AuthService,\r\n private route: ActivatedRoute) { }\r\n\r\n ngOnInit(): void {\r\n this.loader.load(LoaderType.Nav);\r\n const tripTikClaimId = this.route.snapshot.paramMap.get('id');\r\n\r\n this.tripTiksClaimsService.get(tripTikClaimId)\r\n .then(result => {\r\n this.dto = result.item;\r\n //console.log(this.dto);\r\n\r\n this.dto.logs = this.dto.logs.map(log => {\r\n log.status.titles = log.status.parentId ? [`${log.status.parentTitles} - ${log.status.titles}`] : log.status.titles;\r\n return log;\r\n });\r\n\r\n // //console.log(this.dto);\r\n\r\n this.dto.logs.forEach((log, i) => {\r\n log.attachments.forEach(async (att) => {\r\n att.url = await this.fileLoader.loadAsync(att.url)\r\n })\r\n });\r\n\r\n\r\n })\r\n .finally(() => this.loader.load(LoaderType.Nav, false))\r\n\r\n // this.attachments.forEach(async att => {\r\n // const file = await this.fileLoader.loadAsync(att.src);\r\n // att.src = file ? file : this.defaultImage;\r\n // });\r\n\r\n //this.dto.attachments[0] = await this.fileLoader.loadAsync(this.dto.attachments[0]);\r\n }\r\n\r\n}\r\n","import { StockTypeDto } from '../../lookups/models/stock-type';\r\nimport { CustomsPortDto } from '../../lookups/models/customs-port';\r\nimport { CountryDto } from '../../lookups/models/country';\r\nimport { SafeUrl } from '@angular/platform-browser';\r\nimport { TripTikClaimStatusDto } from '../../lookups/models/trip-tik-claim-status';\r\nimport { LookupDto } from '../../lookups/models/lookup';\r\n\r\nexport interface TripTikClaimVm {\r\n item: TripTikClaimDto\r\n}\r\n\r\nexport interface TripTiksClaimsVm {\r\n list: TripTikClaimDto[],\r\n recordsCount: number\r\n}\r\n\r\nexport class TripTikClaimDto {\r\n id: string;\r\n entranceID: string;\r\n entranceDate: Date;\r\n created: Date;\r\n holderName: string;\r\n holderAddress: string;\r\n holderPhone: string;\r\n accountId: number;\r\n accountTitles: string[] = [];\r\n serial: number;\r\n stockType: StockTypeDto;\r\n country: CountryDto;\r\n customsPort: CustomsPortDto;\r\n pursuingZone: LookupDto;\r\n latestStatus: TripTikClaimStatusDto;\r\n vehiclePlateID: string;\r\n attachmentsCount: number;\r\n logsCount: number;\r\n}\r\n\r\nexport interface TripTikClaimDetailsVm {\r\n item: TripTikClaimDetailsDto\r\n}\r\n\r\nexport class TripTikClaimDetailsDto extends TripTikClaimDto {\r\n logs: TripTikClaimLogDetailsDto[] = [];\r\n}\r\n\r\nexport interface UpdateStatusTripTikClaimCommand {\r\n id: string,\r\n statusId: number,\r\n note: string,\r\n attachments: { file: string, name: string, fileName: string }[]\r\n}\r\n\r\nexport interface TripTikClaimAttachmentDto {\r\n name: string,\r\n url: string | SafeUrl,\r\n created: Date,\r\n createdBy: string\r\n}\r\n\r\nexport interface TripTikClaimLogDetailsDto {\r\n created: Date,\r\n createdBy: string,\r\n note: string,\r\n status: TripTikClaimStatusDto,\r\n attachments: TripTikClaimAttachmentDto[]\r\n}\r\n\r\nexport interface TripTiksClaimsLogsVm {\r\n list: TripTikClaimLogDto[],\r\n recordsCount: number\r\n}\r\n\r\nexport interface TripTikClaimLogDto {\r\n created: Date,\r\n createdBy: string,\r\n holderName: string,\r\n serial: number,\r\n stockType: StockTypeDto,\r\n issued: Date,\r\n customPort: CustomsPortDto,\r\n status: TripTikClaimStatusDto\r\n note: string\r\n}\r\n\r\nexport interface TripTiksClaimsSearchQuery {\r\n accountId?: number,\r\n serial?: number,\r\n stockTypeId?: number[],\r\n // stockTypes?: number[],\r\n fromEntranceDate?: string,\r\n toEntranceDate?: string,\r\n entranceID?: string,\r\n holderName?: string,\r\n vehiclePlateID?: number,\r\n countryId?: number[],\r\n customsPortId?: number[],\r\n // customsPorts?: number[],\r\n pursuingZoneId?: number,\r\n // latestStatusId?: number,\r\n baseStatusId?: number\r\n statusId?: number\r\n}\r\n\r\nexport interface PostTripTikClaimCommand {\r\n entranceID: string,\r\n EntranceDate: Date,\r\n serial: number,\r\n stockTypeId: number,\r\n countryId: number,\r\n customsPortId?: number,\r\n pursuingZoneId: number\r\n value: number,\r\n currencyId: number,\r\n holderName: string,\r\n holderAddress: string,\r\n holderPhone: string,\r\n}\r\n\r\nexport interface TripTikClaimAttachmentsVm {\r\n tripTikClaimEntranceID: string,\r\n list: TripTikClaimAttachmentDto[],\r\n recordsCount: number\r\n}","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { TripTiksClaimsService } from './trip-tiks-claims.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { PaginationQuery } from '../../issuing/_shared/models/issuing.models';\r\nimport { TripTiksClaimsLogsVm, TripTiksClaimsSearchQuery, TripTikClaimLogDto } from '../models/trip-tik-claim.model';\r\n\r\n\r\nexport class TripTiksClaimsLogsDataSource implements DataSource {\r\n public TripTiksClaimsLogsSubject = new BehaviorSubject([]);\r\n public countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private tripTiksClaimsService: TripTiksClaimsService, private loader: LoadingService) { }\r\n\r\n loadTripTiksClaimsLogs(pagination: PaginationQuery, query: TripTiksClaimsSearchQuery | string = null) {\r\n this.tripTiksClaimsService[(query == null || typeof query == 'string') ? 'getClaimsLogs' : 'searchClaimsLogs'](pagination, query)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: any) => {\r\n //console.log(result);\r\n this.TripTiksClaimsLogsSubject.next(result.list);\r\n this.countSubject.next(result.recordsCount);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n connect(): Observable {\r\n return this.TripTiksClaimsLogsSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.TripTiksClaimsLogsSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { CollectionViewer, DataSource } from \"@angular/cdk/collections\";\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { TripTiksClaimsService } from './trip-tiks-claims.service';\r\nimport { LoadingService, LoaderType } from 'src/app/shared/services/loading';\r\nimport { PaginationQuery } from '../../issuing/_shared/models/issuing.models';\r\nimport { TripTiksClaimsVm, TripTiksClaimsSearchQuery, TripTikClaimDto } from '../models/trip-tik-claim.model';\r\n\r\n\r\nexport class TripTiksClaimsDataSource implements DataSource {\r\n public TripTiksClaimsSubject = new BehaviorSubject([]);\r\n public countSubject = new BehaviorSubject(0);\r\n public counter$ = this.countSubject.asObservable();\r\n\r\n constructor(private tripTiksClaimsService: TripTiksClaimsService, private loader: LoadingService) { }\r\n\r\n load(pagination: PaginationQuery, query: TripTiksClaimsSearchQuery | string = null, statusId?: number, pursuingZoneId?: number) {\r\n this.tripTiksClaimsService[(query == null || typeof query == 'string') ? 'getClaims' : 'search'](pagination, query, statusId, pursuingZoneId)\r\n .pipe(\r\n catchError(() => of([])),\r\n finalize(() => { })\r\n )\r\n .subscribe((result: TripTiksClaimsVm) => {\r\n // //console.log(result);\r\n this.TripTiksClaimsSubject.next(result.list);\r\n this.countSubject.next(result.recordsCount);\r\n this.loader.load(LoaderType.Nav, false);\r\n this.loader.load(LoaderType.Body, false);\r\n });\r\n }\r\n\r\n connect(): Observable {\r\n return this.TripTiksClaimsSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.TripTiksClaimsSubject.complete();\r\n this.countSubject.complete();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiHandler } from 'src/app/core/api-handler';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { PaginationQuery } from '../../issuing/_shared/models/issuing.models';\r\nimport { TripTiksClaimsVm, PostTripTikClaimCommand, TripTiksClaimsSearchQuery, TripTikClaimVm, UpdateStatusTripTikClaimCommand, TripTiksClaimsLogsVm, TripTikClaimDetailsVm, TripTikClaimAttachmentsVm } from '../models/trip-tik-claim.model';\r\n\r\n@Injectable()\r\nexport class TripTiksClaimsService {\r\n constructor(private api: ApiHandler) { }\r\n\r\n delete(id: string) {\r\n return this.api.delete(EndPoint.INT_lICENSE, id).toPromise();\r\n }\r\n\r\n updateStatus(cmd: UpdateStatusTripTikClaimCommand) {\r\n return this.api.update(EndPoint.TRIPTIK_CLAIMS, cmd).toPromise();\r\n }\r\n\r\n create(cmd: PostTripTikClaimCommand) {\r\n return this.api.create(EndPoint.TRIPTIK_CLAIMS, cmd).toPromise();\r\n }\r\n\r\n get(id: string) {\r\n return this.api.get(EndPoint.TRIPTIK_CLAIMS, id).toPromise();\r\n }\r\n\r\n getClaims(pagination: PaginationQuery, query: string = '', statusId?: number, pursuingZoneId?: number) {\r\n return this.api.get(EndPoint.TRIPTIK_CLAIMS, null, { ...pagination, query, statusId, pursuingZoneId });\r\n }\r\n\r\n search(pagination: PaginationQuery, query: TripTiksClaimsSearchQuery, statusId?: number, pursuingZoneId?: number) {\r\n return this.api.get(EndPoint.TRIPTIK_CLAIMS_SEARCH, null, { ...pagination, ...query });\r\n }\r\n\r\n getClaimsLogs(pagination: PaginationQuery, query: string = '') {\r\n return this.api.get(EndPoint.TRIPTIK_CLAIMS_LOGS, null, { ...pagination, query });\r\n }\r\n\r\n searchClaimsLogs(pagination: PaginationQuery, query: TripTiksClaimsSearchQuery) {\r\n return this.api.get(EndPoint.TRIPTIK_CLAIMS_LOGS_SEARCH, null, { ...pagination, ...query });\r\n }\r\n\r\n getClaimAttachments(tripTikClaimId: string) {\r\n return this.api.get(EndPoint.TRIPTIK_CLAIMS_ATTACHMENTS, tripTikClaimId).toPromise();\r\n }\r\n}\r\n\r\n","import {Component, Inject, OnInit} from '@angular/core';\r\nimport {MAT_SNACK_BAR_DATA} from '@angular/material/snack-bar';\r\n\r\n@Component({\r\n selector: 'mac-alert',\r\n templateUrl: './alert.component.html',\r\n styleUrls: ['./alert.component.scss']\r\n})\r\nexport class AlertComponent implements OnInit {\r\n\r\n constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'mac-body-loader',\r\n templateUrl: './body-loader.component.html',\r\n styleUrls: ['./body-loader.component.scss']\r\n})\r\nexport class BodyLoaderComponent implements OnInit {\r\n\r\n constructor() { }\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { BreadcrumbService } from '../../services/breadcrumb.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'mac-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrls: ['./breadcrumb.component.scss']\r\n})\r\nexport class BreadcrumbComponent {\r\n\r\n constructor(public service: BreadcrumbService, public translate: TranslateService) { \r\n \r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'mac-dialog',\r\n templateUrl: './dialog.component.html',\r\n styleUrls: ['./dialog.component.scss']\r\n})\r\nexport class DialogComponent {\r\n\r\n constructor() {}\r\n\r\n}","import { Component } from '@angular/core';\r\nimport { ConfirmState, IModalOptions } from '../../models/modal';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { Utils } from '../../services/utils';\r\n\r\n@Component({\r\n selector: 'mac-modal',\r\n templateUrl: './modal.component.html'\r\n})\r\nexport class ConfirmModalComponent {\r\n options: IModalOptions;\r\n form: FormGroup;\r\n\r\n get attachment() { return this.form.get('attachment'); };\r\n get inputNote() { return this.form.get('inputNote'); };\r\n get isDamaged() { return this.form.get('isDamaged'); };\r\n\r\n constructor(private state: ConfirmState,\r\n private fb: FormBuilder,\r\n public translate: TranslateService) {\r\n this.options = state.options;\r\n }\r\n\r\n ngOnInit() {\r\n this.form = this.fb.group({\r\n inputNote: ['', [Validators.required]],\r\n isDamaged: ['', [Validators.required]],\r\n attachment: ['']\r\n });\r\n }\r\n\r\n onSubmit() {\r\n if ((this.options.requestType || this.options.inputNote) && this.form.invalid) {\r\n\r\n if (!this.options.requestType)\r\n this.isDamaged.setErrors(null);\r\n\r\n if (!this.options.inputNote)\r\n this.inputNote.setErrors(null);\r\n\r\n if (this.form.invalid)\r\n return Utils.validateAllFormFields(this.form);\r\n }\r\n\r\n //console.log(this.form.value);\r\n this.confirm(this.form.value);\r\n //this.confirm(this.options.inputNote ? this.inputNote.value : null);\r\n }\r\n\r\n confirm(data = null) {\r\n const result = ['CONFIRMED'];\r\n data ? result.push(data) : undefined;\r\n this.state.modal.close(result);\r\n }\r\n\r\n discard() {\r\n this.state.modal.dismiss('ignored');\r\n }\r\n\r\n \r\n //attachments\r\n preview($event, control: FormControl) {\r\n const tgt = $event.target || window.event.srcElement,\r\n files = Array.isArray($event) ? $event : tgt.files;\r\n\r\n if (FileReader && files && files.length) {\r\n const fr = new FileReader();\r\n fr.onload = (readerEvt) => {\r\n //console.log(readerEvt.target.fileName);\r\n if (fr.result.toString().length <= 2 * 2 ** 20) {\r\n control.setValue(fr.result.toString());\r\n //console.log(fr)\r\n this.fileName = $event.target.files[0].name;\r\n }\r\n else\r\n alert('file limit is 2 MB.');\r\n };\r\n fr.readAsDataURL(files[0]);\r\n }\r\n else {\r\n //console.error('not supported!');\r\n }\r\n }\r\n\r\n fileName;\r\n fileDropped(file, control: FormControl): void {\r\n //console.log(file);\r\n control.setValue(file.url);\r\n this.fileName = file.name;\r\n }\r\n\r\n removeAttachment() {\r\n //console.log('try remove att!');\r\n this.fileName = null;\r\n this.attachment.setValue(null);\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { LoadingService, LoaderType } from '../../services/loading';\r\n\r\n@Component({\r\n selector: 'mac-not-found',\r\n templateUrl: './not-found.component.html',\r\n styleUrls: ['./not-found.component.scss']\r\n})\r\nexport class NotFoundComponent implements OnInit {\r\n\r\n constructor(private loader: LoadingService) { }\r\n\r\n ngOnInit() {\r\n // this.loader.load(LoaderType.Nav, false);\r\n }\r\n ngAfterViewInit() {\r\n //todo: check why loader keep loading ?\r\n setTimeout(() => {\r\n this.loader.load(LoaderType.Nav);\r\n this.loader.load(LoaderType.Nav, false);\r\n }, 1000);\r\n\r\n\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'mac-under-construction',\r\n templateUrl: './under-construction.component.html',\r\n styleUrls: ['./under-construction.component.scss']\r\n})\r\nexport class UnderConstructionComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { FormControl, AbstractControl } from '@angular/forms';\r\nimport { Component, Input } from '@angular/core';\r\nimport {\r\n trigger,\r\n style,\r\n animate,\r\n transition,\r\n keyframes,\r\n\r\n} from '@angular/animations';\r\n\r\nimport { ValidationService } from '../../services/validation.service';\r\n\r\n@Component({\r\n selector: 'mac-validation-error',\r\n templateUrl: './validation-error.component.html',\r\n styleUrls: ['./validation-error.component.scss'],\r\n animations: [\r\n trigger('bgImgTrigger', [\r\n transition('void => *', [\r\n animate('.25s', keyframes([\r\n style({ transform: 'translateY(-5px)', offset: 0 }),\r\n style({ transform: 'translateY(5px)', offset: 0.25 }),\r\n style({ transform: 'translateY(0px)', offset: 1 })\r\n ]))])\r\n ])\r\n ]\r\n})\r\nexport class ValidationErrorComponent {\r\n @Input() control: FormControl | AbstractControl;\r\n @Input() fieldLocale: string;\r\n isOpen = false;\r\n state: string = 'none';\r\n\r\n\r\n animationState = true;\r\n loading = true;\r\n\r\n constructor(private validation: ValidationService) { }\r\n\r\n get errorMessage() {\r\n if (this.control) {\r\n this.animationState = true;\r\n this.loading = true;\r\n this.state = 'maximum';\r\n for (let propertyName in this.control.errors) {\r\n if (\r\n this.control.errors.hasOwnProperty(propertyName) &&\r\n this.control.touched\r\n ) {\r\n return this.validation.getValidatorErrorMessage(\r\n propertyName,\r\n this.control.errors[propertyName]\r\n );\r\n }\r\n }\r\n }\r\n\r\n else {\r\n this.animationState = false;\r\n this.loading = false;\r\n return null;\r\n }\r\n\r\n }\r\n\r\n isArray(obj: any) {\r\n return Array.isArray(obj)\r\n }\r\n}\r\n","import {\r\n Directive,\r\n HostBinding,\r\n HostListener,\r\n Output,\r\n EventEmitter,\r\n ElementRef\r\n} from \"@angular/core\";\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\n\r\nexport interface FileHandle {\r\n url: string,\r\n name: string,\r\n // url: SafeUrl,\r\n container: any\r\n}\r\n\r\n@Directive({\r\n selector: \"[macDrag]\"\r\n})\r\nexport class DragDirective {\r\n // @Output() files: EventEmitter = new EventEmitter();\r\n @Output() file: EventEmitter = new EventEmitter();\r\n\r\n\r\n\r\n @HostBinding(\"style.background\") private background = \"#eee\";\r\n @HostBinding(\"style.border\") private border = \"none\";\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n @HostListener(\"dragover\", [\"$event\"]) public onDragOver(evt: DragEvent) {\r\n ////console.warn(evt);\r\n evt.preventDefault();\r\n //evt.stopPropagation();\r\n\r\n // //console.warn('dragover', this.border);\r\n ////console.log(this.border);\r\n if (this.border == \"none\") {\r\n this.border = \"2px dashed #82c8ef\";\r\n ////console.warn('dragover', 'style applied')\r\n }\r\n //this.b\r\n //this.sanitizer.bypassSecurityTrustStyle('border: 5px dashed #82c8ef');\r\n // this.background = \"#999\";\r\n }\r\n\r\n @HostListener(\"dragleave\", [\"$event\"]) public onDragLeave(evt: DragEvent) {\r\n ////console.warn(evt);\r\n evt.preventDefault();\r\n //evt.stopPropagation();\r\n ////console.warn('dragleave', this.border);\r\n ////console.log(this.border);\r\n if (this.border != \"none\") {\r\n this.border = \"none\";\r\n ////console.warn('dragleave', 'style applied')\r\n }\r\n //this.background = \"#eee\";\r\n //this.sanitizer.bypassSecurityTrustStyle('border: none');\r\n }\r\n\r\n @HostListener('drop', ['$event']) public onDrop(evt: DragEvent) {\r\n ////console.warn(evt);\r\n evt.preventDefault();\r\n //evt.stopPropagation();\r\n //this.background = '#eee';\r\n // //console.warn('drop', this.border);\r\n ////console.log(this.border);\r\n if (this.border != \"none\") {\r\n this.border = \"none\";\r\n ////console.warn('drop', 'style applied');\r\n }\r\n\r\n ////console.log(evt);\r\n ////console.log(evt.currentTarget);\r\n // //console.log(evt.target)\r\n\r\n // const elm = evt.currentTarget;\r\n // //console.warn(elm.nativeElement);\r\n\r\n // const _index = 0;// (evt.currentTarget).tabindex;\r\n ////console.log(evt.target);\r\n // this.file.emit({ file: null, url: 'assets/images/Ring-Preloader.gif', container: evt.currentTarget });\r\n\r\n const currentTarget = evt.currentTarget;\r\n //console.log(evt);\r\n //this.file.emit({ url: 'assets/images/Ring-Preloader.gif', name: null, container: currentTarget });\r\n\r\n // if (evt.dataTransfer.files.length) {\r\n // this.file.emit({\r\n // file: evt.dataTransfer.files[0],\r\n // // url: this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(evt.dataTransfer.files[0])),\r\n // container: evt.currentTarget\r\n // });\r\n // }\r\n\r\n if (FileReader && evt.dataTransfer.files.length) {\r\n const fr = new FileReader();\r\n // //console.log(evt.dataTransfer.files.item(0))\r\n const _name = evt.dataTransfer.files.item(0).name;\r\n fr.onload = () => {\r\n if (fr.result.toString().length <= 2 * 2 ** 20)\r\n this.file.emit({\r\n url: fr.result.toString(),\r\n name: _name,\r\n //url: this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(evt.dataTransfer.files[0])),\r\n container: currentTarget\r\n });\r\n else\r\n alert('file limit is 2 MB.');\r\n // this[`_${this.images[index]}`] = fr.result.toString();\r\n //(this[this.images[index]]).setValue(fr.result.toString());\r\n //img.setAttribute(\"src\", fr.result.toString());\r\n\r\n // this.licensePhoto.setValue()\r\n // this.form.patchValue({\r\n // [this.images[index]]: fr.result.toString()\r\n // })\r\n };\r\n fr.readAsDataURL(evt.dataTransfer.files.item(0));\r\n }\r\n // Not supported\r\n else {\r\n //console.error('not supported!');\r\n //this[`_${this.images[index]}`] = oldValue;\r\n //(this[this.images[index]]).setValue(oldValue);\r\n }\r\n }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\nimport { ConfirmState } from '../models/modal';\r\n\r\n\r\n// @Directive({\r\n// selector: \"[deleteConfirm]\"\r\n// })\r\n// export class DeleteConfirmTemplateDirective {\r\n// constructor(confirmTemplate: TemplateRef, state: ConfirmState) {\r\n// state.deleteTemplate = confirmTemplate;\r\n// }\r\n// }\r\n\r\n// @Directive({\r\n// selector: \"[updateConfirm]\"\r\n// })\r\n// export class UpdateConfirmTemplateDirective {\r\n// constructor(confirmTemplate: TemplateRef, state: ConfirmState) {\r\n// state.updateTemplate = confirmTemplate;\r\n// }\r\n// }\r\n\r\n@Directive({\r\n selector: \"[confirm]\"\r\n})\r\nexport class ConfirmTemplateDirective {\r\n constructor(template: TemplateRef, state: ConfirmState) {\r\n state.template = template;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { StaticConfig } from 'src/app/features/lookups/services/config';\r\n\r\n@Injectable()\r\nexport class ConfigResolver {\r\n constructor(private config: StaticConfig){\r\n }\r\n\r\n async resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise{\r\n return this.config.get(); \r\n }\r\n}","import { formatDate } from '@angular/common';\r\nimport { NativeDateAdapter } from '@angular/material/core';\r\n\r\nexport const PICK_FORMATS = {\r\n parse: { dateInput: { month: 'short', year: 'numeric', day: 'numeric' } },\r\n display: {\r\n dateInput: 'input',\r\n monthYearLabel: { year: 'numeric', month: 'short' },\r\n dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },\r\n monthYearA11yLabel: { year: 'numeric', month: 'long' }\r\n }\r\n};\r\n\r\nexport class CustomDateAdapter extends NativeDateAdapter {\r\n // format(date: Date, displayFormat: Object): string {\r\n // if (displayFormat === 'input') {\r\n // return formatDate(date, 'dd/MM/yyyy', this.locale);;\r\n // } else {\r\n // return date.toDateString();\r\n // }\r\n // }\r\n parse(value: any): Date | null {\r\n\r\n if ((typeof value === 'string') && (value.indexOf('/') > -1)) {\r\n const str = value.split('/');\r\n\r\n const year = Number(str[2]);\r\n const month = Number(str[1]) - 1;\r\n const date = Number(str[0]);\r\n\r\n return new Date(year, month, date);\r\n }\r\n const timestamp = typeof value === 'number' ? value : Date.parse(value);\r\n return isNaN(timestamp) ? null : new Date(timestamp);\r\n }\r\n\r\n format(date: Date, displayFormat: Object): string {\r\n date = new Date(Date.UTC(\r\n date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(),\r\n date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\r\n displayFormat = Object.assign({}, displayFormat, { timeZone: 'utc' });\r\n\r\n const dtf = new Intl.DateTimeFormat(this.locale, displayFormat);\r\n return dtf.format(date).replace(/[\\u200e\\u200f]/g, '');\r\n }\r\n\r\n}","import { TransactionsVm, TransactionDto } from './../../features/stock/models/transactions';\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport * as moment from 'moment';\r\nimport * as XLSX from 'xlsx';\r\nimport { transactionTypeLocale } from 'src/app/features/stock/models/transaction-type.enum';\r\n\r\nexport function exportToExcel(rows: string[][], wscols: any, autofilter: any, rtl: boolean, type: string) {\r\n\r\n //const [formatted, wscols] = _transactions(data, translate);\r\n\r\n const ws: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(rows);\r\n ws[\"!cols\"] = wscols;\r\n ws[\"!autofilter\"] = autofilter;// { ref: 'A1:G1' };\r\n\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n if (!wb.Workbook) wb.Workbook = {};\r\n if (!wb.Workbook.Views) wb.Workbook.Views = [];\r\n if (!wb.Workbook.Views[0]) wb.Workbook.Views[0] = {};\r\n wb.Workbook.Views[0].RTL = rtl;\r\n\r\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n XLSX.writeFile(wb, `MAC_${type}_Export_${moment(new Date()).format('DD_MM_YYYY')}.xlsx`);\r\n}\r\n\r\n// function _transactions(data: TransactionDto[], translate: TranslateService) {\r\n// let result: [string[][], any[]] = [[], []];\r\n// const headers = [\r\n// translate.instant('_LABEL_DATE'),\r\n// `${translate.instant('_LABEL_FROM')} ${translate.instant('ACC_LABEL_ACCOUNT')}`,\r\n// `${translate.instant('_LABEL_TO')} ${translate.instant('ACC_LABEL_ACCOUNT')}`,\r\n// `${translate.instant('_LABEL_FROM')} ${translate.instant('STK_LABEL_QUANTITY')}`,\r\n// `${translate.instant('_LABEL_TO')} ${translate.instant('STK_LABEL_QUANTITY')}`,\r\n// translate.instant('STK_LABEL_TRANSACTION_TYPE'),\r\n// translate.instant('LKP_FIELD_STOCK_TYPE')\r\n// ];\r\n\r\n// result[0].push(headers);\r\n// for (let row of data) {\r\n// result[0].push([\r\n// moment(row.created).format('DD/MM/YYYY'),\r\n// row.fromAccountTitles ? row.fromAccountTitles[0] : '',\r\n// row.toAccountTitles ? row.toAccountTitles[0] : '',\r\n// row.fromRange.toString(),\r\n// row.toRange.toString(),\r\n// translate.instant(transactionTypeLocale(row.transactionType)),\r\n// row.stockType.titles[0]\r\n// ]);\r\n// }\r\n\r\n// var wscols = [\r\n// { width: 14 },\r\n// { width: 16 },\r\n// { width: 16 },\r\n// { width: 14 },\r\n// { width: 14 },\r\n// { width: 18 },\r\n// { width: 18 }\r\n// ];\r\n\r\n// result[1] = wscols;\r\n\r\n// { ref: 'A1:G1' };\r\n// return result;\r\n// }\r\n","import { MatPaginatorIntl } from '@angular/material/paginator';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class LangMatPaginatorIntl extends MatPaginatorIntl {\r\n\r\n constructor(private translate: TranslateService) {\r\n super();\r\n\r\n this.translate.onLangChange.subscribe((e: Event) => {\r\n this.getAndInitTranslations();\r\n });\r\n\r\n this.getAndInitTranslations();\r\n }\r\n\r\n\r\n\r\n getAndInitTranslations() {\r\n this.translate.get(['_PAGINATOR_ITEMS_PER_PAGE',\r\n '_PAGINATOR_NEXT_PAGE',\r\n '_PAGINATOR_PREVIOUS_PAGE',\r\n '_PAGINATOR_OF_LABEL',\r\n '_PAGINATOR_FIRST_PAGE',\r\n '_PAGINATOR_LAST_PAGE'])\r\n .subscribe(translation => {\r\n this.itemsPerPageLabel = translation['_PAGINATOR_ITEMS_PER_PAGE'];\r\n this.nextPageLabel = translation['_PAGINATOR_NEXT_PAGE'];\r\n this.previousPageLabel = translation['_PAGINATOR_PREVIOUS_PAGE'];\r\n this.firstPageLabel = translation['_PAGINATOR_FIRST_PAGE'];\r\n this.lastPageLabel = translation['_PAGINATOR_LAST_PAGE'];\r\n\r\n this.changes.next();\r\n });\r\n }\r\n\r\n getRangeLabel = (page: number, pageSize: number, length: number) => {\r\n if (length === 0 || pageSize === 0) {\r\n return `0 ${this.translate.instant('_PAGINATOR_OF_LABEL')} ${length}`;\r\n }\r\n length = Math.max(length, 0);\r\n const startIndex = page * pageSize;\r\n const endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\r\n return `${startIndex + 1} - ${endIndex} ${this.translate.instant('_PAGINATOR_OF_LABEL')} ${length}`;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n// const arabicRangeLabel = (page: number, pageSize: number, length: number) => {\r\n// if (length == 0 || pageSize == 0) { return `0 من ${length}`; }\r\n\r\n// length = Math.max(length, 0);\r\n\r\n// const startIndex = page * pageSize;\r\n\r\n// // If the start index exceeds the list length, do not try and fix the end index to the end.\r\n// const endIndex = startIndex < length ?\r\n// Math.min(startIndex + pageSize, length) :\r\n// startIndex + pageSize;\r\n\r\n// return `${startIndex + 1} - ${endIndex} من ${length}`;\r\n// }\r\n\r\n\r\n// export function getLangPaginatorIntl() {\r\n\r\n// const paginatorIntl = new MatPaginatorIntl();\r\n\r\n// paginatorIntl.itemsPerPageLabel = 'عدد العناصر بالصفحة: ';\r\n// paginatorIntl.nextPageLabel = 'الصفحة التالية';\r\n// paginatorIntl.previousPageLabel = 'الصفحة السابقة';\r\n// paginatorIntl.firstPageLabel = 'الصفحة الأولى';\r\n// paginatorIntl.lastPageLabel = 'الصفحة الأخيرة';\r\n// paginatorIntl.getRangeLabel = arabicRangeLabel;\r\n\r\n// return paginatorIntl;\r\n// }","import { LookupDto } from 'src/app/features/lookups/models/lookup';\r\nimport * as _ from 'lodash';\r\n\r\nexport function populateAccountsSelect(list: LookupDto[]) {\r\n //return list;\r\n //console.log(list);\r\n\r\n return list.map(dto => {\r\n let _titles = [];\r\n dto.titles.forEach((t, i) => {\r\n _titles.push(`${t}`);\r\n });\r\n dto.titles = [_titles.join(' // ')];\r\n return dto;\r\n });\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class TranslationResolver {\r\n\r\n constructor(private translate: TranslateService){\r\n }\r\n\r\n async resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise{\r\n return this.translate.get(\"last.dummy\").toPromise(); \r\n }\r\n}","export enum DefaultAlertAction {\r\n ADDING = '_ACTION_ADDING',\r\n UPDATING = '_ACTION_UPDATING',\r\n DELETING = '_ACTION_DELETING',\r\n TRANSFERING = '_ACTION_TRANSFERRING',\r\n\r\n REVOKE_REQUESTING_CANCEL = '_ACTION_REVOKE_REQUESTING_CANCEL',\r\n REQUESTING = '_ACTION_REQUESTING',\r\n APPROVING = '_ACTION_APPROVING',\r\n REJECTING = '_ACTION_REJECTING'\r\n\r\n}","import { Injectable, TemplateRef } from '@angular/core';\r\nimport { NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nexport interface ConfirmOptions {\r\n confirmType?: 'update' | 'delete' | 'form' | 'display',// string, //delete, update\r\n type: string,\r\n title: string\r\n content?: string;\r\n}\r\n\r\nexport interface IModalOptions {\r\n action?: string,\r\n type: string,\r\n confirmQuestion?: string,\r\n title?: string,\r\n note?: string,\r\n dangerNote?: string,\r\n submitClass?: string,\r\n submitText?: string,\r\n cancelText?: string,\r\n inputNote? : string,\r\n requestType?: boolean,\r\n innerHTML?: string,\r\n attachment?: string\r\n}\r\n\r\nexport class DeleteModal implements IModalOptions {\r\n constructor(data: IModalOptions) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n\r\n this.action = this.action ? this.action : '_ACTION_DELETE';\r\n this.confirmQuestion = this.confirmQuestion ? this.confirmQuestion : '_CONFIRM_DELETE_CONFIRMATION_QUESTION';\r\n this.note = this.note ? this.note : '_CONFIRM_DELETE_NOTE';\r\n this.dangerNote = this.dangerNote ? this.dangerNote : '_CONFIRM_DELETE_DANGER_NOTE';\r\n this.submitClass = this.submitClass ? this.submitClass : 'btn-danger';\r\n this.submitText = this.submitText ? this.submitText : '_ACTION_DELETE';\r\n this.cancelText = this.cancelText ? this.cancelText : '_ACTION_CANCEL';\r\n }\r\n action?: string;\r\n type: string;\r\n confirmQuestion?: string;\r\n title: string;\r\n note?: string;\r\n dangerNote?: string;\r\n submitClass?: string;\r\n submitText?: string;\r\n cancelText?: string;\r\n inputNote? : string;\r\n attachment?: string;\r\n requestType?: boolean;\r\n innerHTML?: string;\r\n}\r\n\r\n// export interface IModal {\r\n// header: { action: string; type?: string; };\r\n// body: { confirmQuestion: string; title?: string; note: string; dangerNote: string; };\r\n// footer: { submitClass: string; submitText: string; cancelText: string; };\r\n// }\r\n\r\n\r\nexport class UpdateModal implements IModalOptions {\r\n constructor(data: IModalOptions) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n\r\n this.action = this.action ? this.action : '_ACTION_UPDATE';\r\n this.confirmQuestion = this.confirmQuestion ? this.confirmQuestion : '_CONFIRM_UPDATE_CONFIRMATION_QUESTION';\r\n this.note = this.note ? this.note : '_CONFIRM_UPDATE_NOTE';\r\n this.dangerNote = this.dangerNote ? this.dangerNote : '_CONFIRM_UPDATE_DANGER_NOTE';\r\n this.submitClass = this.submitClass ? this.submitClass : 'btn-warning';\r\n this.submitText = this.submitText ? this.submitText : '_ACTION_UPDATE';\r\n this.cancelText = this.cancelText ? this.cancelText : '_ACTION_CANCEL';\r\n }\r\n action?: string;\r\n type: string;\r\n confirmQuestion?: string;\r\n title: string;\r\n note?: string;\r\n dangerNote?: string;\r\n submitClass?: string;\r\n submitText?: string;\r\n cancelText?: string;\r\n inputNote? : string;\r\n innerHTML?: string;\r\n}\r\n\r\n\r\nexport class ShipmentModal implements IModalOptions {\r\n constructor(data: IModalOptions) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n\r\n this.action = this.action ? this.action : '_ACTION_VIEW';\r\n // this.confirmQuestion = this.confirmQuestion ? this.confirmQuestion : '_CONFIRM_UPDATE_CONFIRMATION_QUESTION';\r\n this.note = this.note ? this.note : '_CONFIRM_UPDATE_NOTE';\r\n // this.dangerNote = this.dangerNote ? this.dangerNote : '_CONFIRM_UPDATE_DANGER_NOTE';\r\n //this.submitClass = this.submitClass ? this.submitClass : 'btn-warning';\r\n //this.submitText = this.submitText ? this.submitText : '_ACTION_UPDATE';\r\n this.cancelText = this.cancelText ? this.cancelText : '_ACTION_CANCEL';\r\n }\r\n action?: string;\r\n type: string;\r\n confirmQuestion?: string;\r\n title: string;\r\n note?: string;\r\n dangerNote?: string;\r\n submitClass?: string;\r\n submitText?: string;\r\n cancelText?: string;\r\n inputNote? : string;\r\n innerHTML?: string;\r\n}\r\n\r\n\r\nexport class DisplayModal implements IModalOptions {\r\n constructor(data: IModalOptions) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n\r\n this.action = this.action ? this.action : '_ACTION_VIEW';\r\n //this.confirmQuestion = this.confirmQuestion ? this.confirmQuestion : '_CONFIRM_UPDATE_CONFIRMATION_QUESTION';\r\n this.note = this.note ? this.note : '_CONFIRM_UPDATE_NOTE';\r\n //this.dangerNote = this.dangerNote ? this.dangerNote : '_CONFIRM_UPDATE_DANGER_NOTE';\r\n //this.submitClass = this.submitClass ? this.submitClass : 'btn-warning';\r\n //this.submitText = this.submitText ? this.submitText : '_ACTION_UPDATE';\r\n this.cancelText = this.cancelText ? this.cancelText : '_ACTION_CANCEL';\r\n }\r\n action?: string;\r\n type: string;\r\n confirmQuestion?: string;\r\n title?: string;\r\n note?: string;\r\n innerHTML?: string;\r\n //dangerNote?: string;\r\n //submitClass?: string;\r\n //submitText?: string;\r\n cancelText?: string;\r\n //inputNote? : string;\r\n}\r\n\r\n\r\n\r\n\r\n// export class FormModal implements IModalOptions {\r\n// constructor(data: IModalOptions) {\r\n// for (var property in data) {\r\n// if (data.hasOwnProperty(property))\r\n// (this)[property] = (data)[property];\r\n// }\r\n\r\n// this.action = this.action ? this.action : '_ACTION_UPDATE';\r\n// this.confirmQuestion = this.confirmQuestion ? this.confirmQuestion : '_CONFIRM_UPDATE_CONFIRMATION_QUESTION';\r\n// this.note = this.note ? this.note : '_CONFIRM_UPDATE_NOTE';\r\n// this.dangerNote = this.dangerNote ? this.dangerNote : '_CONFIRM_UPDATE_DANGER_NOTE';\r\n// this.submitClass = this.submitClass ? this.submitClass : 'btn-warning';\r\n// this.submitText = this.submitText ? this.submitText : '_ACTION_UPDATE';\r\n// this.cancelText = this.cancelText ? this.cancelText : '_ACTION_CANCEL';\r\n// this.inputNote = this.inputNote ? this.inputNote : '';\r\n// }\r\n// action?: string;\r\n// type: string;\r\n// confirmQuestion?: string;\r\n// title: string;\r\n// note?: string;\r\n// dangerNote?: string;\r\n// submitClass?: string;\r\n// submitText?: string;\r\n// cancelText?: string;\r\n// inputNote?: string;\r\n// }\r\n\r\n\r\n\r\n@Injectable()\r\nexport class ConfirmState {\r\n options: IModalOptions;\r\n modal: NgbModalRef;\r\n template: TemplateRef;\r\n // updateTemplate: TemplateRef;\r\n // deleteTemplate: TemplateRef;\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'arrayMap' })\r\nexport class ArrayMapPipe implements PipeTransform {\r\n transform(input: any[], key: string, index: number = null): any {\r\n //console.log(input, key, index);\r\n return input.map(value => { return index != null ? value[key][index] : value[key] });\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { map, first } from 'rxjs/operators';\r\n\r\n@Pipe({\r\n name: 'ParamsTranslate'\r\n})\r\nexport class ParamsTranslatePipe implements PipeTransform {\r\n constructor(private translate: TranslateService) { }\r\n\r\n transform(obj: Object): Object {\r\n const newObject = Object.assign({}, obj);\r\n Object.keys(obj).forEach(\r\n key =>\r\n obj[key].length\r\n ? this.translate\r\n .get(obj[key])\r\n .pipe(first(), map(value => value))\r\n .subscribe(value => (newObject[key] = value))\r\n : undefined\r\n );\r\n return newObject;\r\n }\r\n}","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({name: 'stringJoin'})\r\nexport class StringJoinPipe implements PipeTransform {\r\n transform (input: string[], key: string = '-'): string {\r\n //return input.map(value => value[key]);\r\n return [...input].reverse().join(` ${key} `);\r\n }\r\n}","import { TranslateService } from '@ngx-translate/core';\r\nimport { Injectable } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { AlertComponent } from '../components/alert/alert.component';\r\nimport { isArray } from 'util';\r\n\r\n@Injectable()\r\nexport class AlertService {\r\n\r\n constructor(private _snackBar: MatSnackBar, private translate: TranslateService) { }\r\n\r\n success(message: string, part: boolean = true) {\r\n const param = this.translate.instant(message);\r\n\r\n const _message = part ? this.translate.instant('_MESSAGE_ALERT_SUCCESS', { param: param }) : param;\r\n this._snackBar.open(_message, null, {\r\n duration: 5000,\r\n panelClass: 'success',\r\n verticalPosition: 'top'\r\n });\r\n }\r\n\r\n failure(message: string, part: boolean = true) {\r\n const param = this.translate.instant(message);\r\n const _message = part ? this.translate.instant('_MESSAGE_ALERT_FAILURE', { param: param }) : param;\r\n this._snackBar.open(_message, null, {\r\n duration: 5000,\r\n panelClass: 'error',\r\n verticalPosition: 'top'\r\n });\r\n }\r\n\r\n _error(messages: string []) {\r\n //const _message = this.translate.instant(message ? message : '_MESSAGE_ALERT_ERROR');\r\n\r\n const duration = messages.length * 5000;\r\n\r\n // let content = '';\r\n // let duration = 5000;\r\n // if (!isArray(message) && message.length > 1) {\r\n // content += '
      ';\r\n\r\n // // Item 1\r\n // // Item 2\r\n // // Item 3\r\n\r\n // for (let i = 0; i < message.length; i++) {\r\n // content += `
    • ${message[i]}
    • `;\r\n // duration = 5000 * (i + 1);\r\n // }\r\n // content += '
    ';\r\n // } else {\r\n // content = `${message}`;\r\n // }\r\n\r\n // //console.log(content);\r\n this._snackBar.openFromComponent(AlertComponent, {\r\n panelClass: 'mat-snack-bar-failure',\r\n verticalPosition: 'top',\r\n data: messages,\r\n\r\n duration: duration\r\n });\r\n\r\n // this._snackBar.open(_message, null, {\r\n // duration: 5000,\r\n // panelClass: 'mat-snack-bar-failure',\r\n // verticalPosition: 'top'\r\n // });\r\n\r\n }\r\n\r\n error(message: string | any[] = null) {\r\n const _message = this.translate.instant(message ? message : '_MESSAGE_ALERT_ERROR');\r\n\r\n // if (!isArray(message))\r\n // message = [message];\r\n\r\n if (typeof message == 'string')\r\n message = [message];\r\n \r\n const duration = (message.length + 1) * 5000;\r\n\r\n // let content = '';\r\n // let duration = 5000;\r\n // if (!isArray(message) && message.length > 1) {\r\n // content += '
      ';\r\n\r\n // // Item 1\r\n // // Item 2\r\n // // Item 3\r\n\r\n // for (let i = 0; i < message.length; i++) {\r\n // content += `
    • ${message[i]}
    • `;\r\n // duration = 5000 * (i + 1);\r\n // }\r\n // content += '
    ';\r\n // } else {\r\n // content = `${message}`;\r\n // }\r\n\r\n // //console.log(content);\r\n this._snackBar.openFromComponent(AlertComponent, {\r\n panelClass: 'mat-snack-bar-failure',\r\n verticalPosition: 'top',\r\n data: message,\r\n\r\n duration: duration\r\n });\r\n\r\n // this._snackBar.open(_message, null, {\r\n // duration: 5000,\r\n // panelClass: 'mat-snack-bar-failure',\r\n // verticalPosition: 'top'\r\n // });\r\n\r\n }\r\n}\r\n","import { Injectable, EventEmitter } from '@angular/core';\r\n\r\nInjectable()\r\nexport class BreadcrumbService {\r\n _links: EventEmitter;\r\n links: string[][];\r\n\r\n constructor(){\r\n this._links = new EventEmitter();\r\n this._links.subscribe(l => this.links = l);\r\n }\r\n\r\n public setLinks(links: string[][]){\r\n this._links.emit(links);\r\n }\r\n}","import { AbstractControl, FormGroup, ValidatorFn, Validators } from '@angular/forms';\r\nimport { Language } from 'src/app/core/models/enums/language';\r\n\r\nconst NON_ENGLISH_REGEX = /^[\\u0621-\\u064A0-9-_., ]*$/;\r\nconst NON_ARABIC_REGEX = /^[a-zA-Z0-9-_., ]*$/;\r\nconst ENGLISH_ONLY_REGEX = /^[a-zA-Z]*$/;\r\nconst ENGLISH_AND_SPACES_REGEX = /^[a-zA-Z. ]*$/;\r\nconst NUMBERS_ONLY_REGEX = /^\\d*$/;\r\nconst USERNAME_REGEX = /^[A-Za-z0-9]+(?:[_][A-Za-z0-9]+)*$/; //letters, numbers, and underscores (inside, not in a row), no spaces\r\n//const PASSPORT_ID_OR_IDENTITY_ID_REGEX = /^[A-Za-z0-9]*$/; //letters, numbers\r\n\r\n\r\nclass RangeValidation {\r\n constructor(public min: number, public max: number) { }\r\n}\r\n\r\n\r\n//todo: fetch from db config\r\n\r\nconst vehicleWeightInKG = new RangeValidation(1, 100000);//\"_ERR_OUT_OF_RANGE_VEHICLE_WEIGHT_IN_KG\");\r\nconst vehicleHorsePower = new RangeValidation(1, 10000);//, //\"_ERR_OUT_OF_RANGE_VEHICLE_HORSE_POWER\");\r\nconst vehicleCylindersCount = new RangeValidation(1, 100);//, //\"_ERR_OUT_OF_RANGE_VEHICLE_CYLINDERS_COUNT\");\r\nconst vehicleManufactureYear = new RangeValidation(1900, 2100);//, //\"_ERR_OUT_OF_RANGE_VEHICLE_MANUFACTURE_YEAR\");\r\nconst vehicleSeatsCount = new RangeValidation(1, 100);//, //\"_ERR_OUT_OF_RANGE_VEHICLE_SEATS_COUNT\");\r\nconst vehicleSpareTiresCount = new RangeValidation(1, 2);//, //\"_ERR_OUT_OF_RANGE_VEHICLE_SPARE_TIRES_COUNT\");\r\nconst vehicleValue = new RangeValidation(1, 10000000);//,// \"_ERR_OUT_OF_RANGE_VEHICLE_VALUE\");\r\n\r\nconst ADDRESS_REGEX = /^$|^[\\u0621-\\u064A0-9 ]{3,100}$/\r\nconst PASSPORT_ID_OR_IDENTITY_ID_REGEX = /^[a-zA-Z0-9]+$/; //letters, numbers\r\nconst EMAIL_REGEX = /^$|^.*@.*\\..*$/;\r\n// const PHONE_NO_REGEX = /^$|^[0-9]{7,15}$/;\r\nconst PHONE_NO_REGEX = /^((\\+\\d{1,3}(-| )?\\(?\\d\\)?(-| )?\\d{1,5})|(\\(?\\d{2,6}\\)?))(-| )?(\\d{3,4})(-| )?(\\d{4})(( x| ext)\\d{1,5}){0,1}$/;\r\n\r\n\r\nconst TRIPTIK_NAME_REGEX = /^$|^[\\u0621-\\u064Aa-zA-Z0-9. ]+$/;\r\n\r\nexport function vehicleWeightInKGRangeValidator(control: AbstractControl) {\r\n return control.value >= vehicleWeightInKG.min && control.value <= vehicleWeightInKG.max ? null : { invalidVehicleWeightInKGRange: true };\r\n}\r\n\r\nexport function vehicleHorsePowerRangeValidator(control: AbstractControl) {\r\n //enable null \r\n return !control.value || (control.value >= vehicleHorsePower.min && control.value <= vehicleHorsePower.max) ? null : { invalidVehicleHorsePowerRange: true };\r\n}\r\n\r\nexport function vehicleCylindersCountRangeValidator(control: AbstractControl) {\r\n return control.value >= vehicleCylindersCount.min && control.value <= vehicleCylindersCount.max ? null : { invalidVehicleCylindersCountRange: true };\r\n}\r\n\r\nexport function vehicleManufactureYearRangeValidator(control: AbstractControl) {\r\n return control.value >= vehicleManufactureYear.min && control.value <= vehicleManufactureYear.max ? null : { invalidVehicleManufactureYearRange: true };\r\n}\r\n\r\nexport function vehicleSeatsCountRangeValidator(control: AbstractControl) {\r\n return control.value >= vehicleSeatsCount.min && control.value <= vehicleSeatsCount.max ? null : { invalidVehicleSeatsCountRange: true };\r\n}\r\n\r\nexport function vehicleSpareTiresCountRangeValidator(control: AbstractControl) {\r\n return control.value >= vehicleSpareTiresCount.min && control.value <= vehicleSpareTiresCount.max ? null : { invalidVehicleSpareTiresCountRange: true };\r\n}\r\n\r\nexport function vehicleValueRangeValidator(control: AbstractControl) {\r\n return control.value >= vehicleValue.min && control.value <= vehicleValue.max ? null : { invalidVehicleValueRange: true };\r\n}\r\n\r\n\r\nexport function nonEnglishCharactersValidator(control: AbstractControl) {\r\n return NON_ENGLISH_REGEX.test(control.value) ? null : { nonEnglishOnly: true };\r\n}\r\n\r\nexport function nonArabicCharactersValidator(control: AbstractControl) {\r\n return NON_ARABIC_REGEX.test(control.value) ? null : { nonArabicOnly: true };\r\n}\r\n\r\nexport function englishOnlyValidator(control: AbstractControl) {\r\n return ENGLISH_ONLY_REGEX.test(control.value) ? null : { englishOnly: true };\r\n}\r\n\r\nexport function englishAndSpacesValidator(control: AbstractControl) {\r\n return ENGLISH_AND_SPACES_REGEX.test(control.value) ? null : { englishAndSpacesOnly: true };\r\n}\r\n\r\nexport function numbersOnlyValidator(control: AbstractControl) {\r\n return NUMBERS_ONLY_REGEX.test(control.value) ? null : { invalidNumbersOnly: true };\r\n}\r\n\r\nexport function phoneNumberValidator(control: AbstractControl) {\r\n return PHONE_NO_REGEX.test(control.value) ? null : { invalidPhoneNumber: true };\r\n}\r\n\r\nexport function emailValidator(control: AbstractControl) {\r\n return EMAIL_REGEX.test(control.value) ? null : { invalidEmail: true };\r\n}\r\n\r\nexport function usernameValidator(control: AbstractControl) {\r\n return USERNAME_REGEX.test(control.value) ? null : { invalidUsername: true };\r\n}\r\n\r\nexport function passportIdOrIdentityIdValidator(control: AbstractControl) {\r\n return PASSPORT_ID_OR_IDENTITY_ID_REGEX.test(control.value) ? null : { invalidPassportIdOrIdentityId: true };\r\n}\r\n\r\nexport function _passportIdOrIdentityIdValidator(ctrl1: any, ctrl2: any, control: AbstractControl) {\r\n // //console.log(control, ctrl1, ctrl2);\r\n return control.value != ctrl1.value && control.value != ctrl2.value ? null : { _invalidPassportIdOrIdentityId: true };\r\n}\r\n\r\nexport function addressValidator(control: AbstractControl) {\r\n return ADDRESS_REGEX.test(control.value) ? null : { invalidAddress: true };\r\n}\r\n\r\nexport function triptikNameValidator(control: AbstractControl) {\r\n return TRIPTIK_NAME_REGEX.test(control.value) ? null : { invalidTriptikName: true };\r\n}\r\n\r\nexport function standardLocalizedControlValidators(lang: Language): ValidatorFn[] {\r\n return [\r\n Validators.required,\r\n Validators.minLength(3),\r\n Validators.maxLength(50),\r\n lang == Language.Arabic ? nonEnglishCharactersValidator : nonArabicCharactersValidator];\r\n}\r\n\r\nexport function comparePasswords(group: FormGroup) { // here we have the 'passwords' group\r\n let pass = group.get('password').value;\r\n let confirmPassword = group.get('passwordConfirm').value;\r\n\r\n return pass === confirmPassword ? null : { passwordMismatch: true }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\n//import * as AppConfig from '../../../assets/config.json';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable()\r\nexport class FileLoaderService {\r\n unavailableFile: string = 'assets/images/notfound.png';\r\n constructor(private http: HttpClient, private sanitizer: DomSanitizer) { }\r\n\r\n\r\n private sanitize(url: string) {\r\n return this.sanitizer.bypassSecurityTrustUrl(url);\r\n }\r\n\r\n async loadAsync(url: string) {\r\n const _url = environment.apiBaseUrl + url;\r\n //const _url = 'http://api.dev.mac.org.sa' + url;\r\n\r\n try {\r\n const file = await this.http.get(_url, { responseType: 'blob' })\r\n .pipe(map(blob => { return this.convertToByteArray(blob) }))\r\n .toPromise();\r\n\r\n //if (file)\r\n return file;\r\n\r\n //throw new Error();\r\n } catch (error) {\r\n\r\n // return null;\r\n return this.sanitize(this.unavailableFile);\r\n }\r\n }\r\n\r\n private convertToByteArray(file: Blob) {\r\n return new Promise((resolve, reject) => {\r\n const fr = new FileReader();\r\n fr.onload = () => {\r\n const src = this.sanitize(fr.result.toString());\r\n resolve(src);\r\n };\r\n fr.readAsDataURL(file);\r\n });\r\n }\r\n}","import { Subject } from 'rxjs';\r\nimport { Injectable, EventEmitter } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class LoadingService{\r\n public navLoading: EventEmitter;\r\n public bodyLoading: EventEmitter;\r\n public styleLoading: EventEmitter;\r\n\r\n constructor(){\r\n this.navLoading = new EventEmitter();\r\n this.bodyLoading = new EventEmitter();\r\n this.styleLoading = new EventEmitter();\r\n }\r\n\r\n static style: Subject = new Subject();\r\n\r\n public load(type: LoaderType = null, loading: boolean = true){\r\n switch(type){\r\n case LoaderType.Nav:\r\n this.navLoading.emit(loading);\r\n break;\r\n case LoaderType.Body:\r\n this.bodyLoading.emit(loading);\r\n break;\r\n\r\n default:\r\n this.styleLoading.emit(loading);\r\n break;\r\n }\r\n }\r\n}\r\n\r\nexport enum LoaderType {\r\n Nav,\r\n Body\r\n}","import { Component, Injectable, Directive, TemplateRef } from '@angular/core';\r\nimport { NgbModal, NgbModalRef, NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ConfirmState, ConfirmOptions, IModalOptions } from '../models/modal';\r\n\r\n@Injectable()\r\nexport class ConfirmService {\r\n\r\n constructor(private modalService: NgbModal, private state: ConfirmState) {}\r\n\r\n /**\r\n * Opens a confirmation modal\r\n * @param options the options for the modal (title and message)\r\n * @returns {Promise} a promise that is fulfilled when the user chooses to confirm, and rejected when\r\n * the user chooses not to confirm, or closes the modal\r\n */\r\n confirm(options: IModalOptions): Promise {\r\n this.state.options = options;\r\n //delete is the default modal\r\n //this.state.modal = this.modalService.open(options.confirmType == 'update' ? this.state.updateTemplate : this.state.deleteTemplate);\r\n this.state.modal = this.modalService.open(this.state.template);\r\n return this.state.modal.result;\r\n }\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { FormGroup, FormArray, FormControl, AbstractControl } from '@angular/forms';\r\nimport * as moment from 'moment';\r\nimport * as XLSX from 'xlsx';\r\nimport { EndPoint } from 'src/app/core/models/enums/end-point';\r\n\r\nexport class Utils {\r\n\r\n public static joinByDash(arr: string[]) {\r\n return [...arr].reverse().join(' - ');\r\n }\r\n\r\n public static validateAllFormFields(formGroup: /*AbstractControl | */FormGroup | FormArray) {\r\n ((formGroup instanceof FormArray) ? formGroup.controls :\r\n Object.keys((formGroup).controls)).forEach((field, i) => {\r\n const control = formGroup instanceof FormArray ?\r\n formGroup.controls[i]\r\n : formGroup.get(field);\r\n if (control instanceof FormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n } else if (control instanceof FormGroup\r\n || control instanceof FormArray) {\r\n this.validateAllFormFields(control);\r\n }\r\n });\r\n }\r\n\r\n\r\n public static _printHTML(content) {\r\n const html = `\r\n \r\n \r\n \r\n \r\n ${content}\r\n `;\r\n\r\n //var contents = document.getElementById(\"dvContents\").innerHTML;\r\n var frame1 = document.createElement('iframe');\r\n frame1.name = \"frame1\";\r\n frame1.style.position = \"absolute\";\r\n frame1.style.top = \"-1000000px\";\r\n document.body.appendChild(frame1);\r\n var frameDoc = (frame1.contentWindow) ? frame1.contentWindow : ((frame1.contentDocument).document) ? (frame1.contentDocument).document : frame1.contentDocument;\r\n frameDoc.document.open();\r\n //frameDoc.document.write('DIV Contents');\r\n //frameDoc.document.write('');\r\n frameDoc.document.write(html);\r\n //frameDoc.document.write('');\r\n frameDoc.document.close();\r\n setTimeout(function () {\r\n window.frames[\"frame1\"].focus();\r\n window.frames[\"frame1\"].print();\r\n document.body.removeChild(frame1);\r\n }, 500);\r\n return false;\r\n }\r\n\r\n public static printHtml(content) {\r\n\r\n try {\r\n this._printHTML(content);\r\n // const html = `\r\n // \r\n // \r\n // \r\n // \r\n // ${content}\r\n // `;\r\n\r\n // // const printContent = document.createElement(\"div\");\r\n // // const WindowPrt = window.open('', '', 'left=0,top=0,width=900,height=900,toolbar=0,scrollbars=0,status=0');\r\n // // WindowPrt.document.write(html);\r\n // // //WindowPrt.document.close();\r\n // // WindowPrt.focus();\r\n // // WindowPrt.print();\r\n // // //WindowPrt.close();\r\n\r\n // const frame1 = document.createElement('iframe');\r\n // frame1.name = \"frame1\";\r\n\r\n // frame1.style.position = \"absolute\";\r\n // frame1.style.top = \"-1000000px\";\r\n // document.body.appendChild(frame1);\r\n\r\n // // if (window.navigator.userAgent.toLowerCase().indexOf(\"chrome\") > -1) {\r\n // // frame1.contentWindow.focus();\r\n // // frame1.contentWindow.print();\r\n // // }\r\n\r\n // const frameDoc = frame1.contentDocument;\r\n // frameDoc.write(html);\r\n // setTimeout(function () {\r\n // window.frames[\"frame1\"].focus();\r\n // window.frames[\"frame1\"].print();\r\n // document.body.removeChild(frame1);\r\n // }, 1000);\r\n\r\n\r\n // var is_chrome = function () { return navigator.userAgent.toLowerCase().indexOf('chrome') > -1; }\r\n // window.onload = function () {\r\n // if (is_chrome) {\r\n // /*\r\n // * These 2 lines are here because as usual, for other browsers,\r\n // * the window is a tiny 100x100 box that the user will barely see.\r\n // * On Chrome, it needs to be big enough for the dialogue to be read\r\n // * (NB, it also includes a page preview).\r\n // */\r\n // window.moveTo(0, 0);\r\n // window.resizeTo(640, 480);\r\n\r\n // // This line causes the print dialogue to appear, as usual:\r\n // window.print();\r\n\r\n // /*\r\n // * This setTimeout isn't fired until after .print() has finished\r\n // * or the dialogue is closed/cancelled.\r\n // * It doesn't need to be a big pause, 500ms seems OK.\r\n // */\r\n // setTimeout(function () {\r\n // window.close();\r\n // }, 500);\r\n // } else {\r\n // // For other browsers we can do things more briefly:\r\n // window.print();\r\n // window.close();\r\n // }\r\n // }\r\n return false;\r\n }\r\n catch (e) {\r\n\r\n console.error(e);\r\n }\r\n }\r\n\r\n public static spreadRange(range: number[], reverse: boolean = false) {\r\n let start = range[0], end = range[1];\r\n const result: number[] = [];\r\n while (start <= end)\r\n result.push(start++);\r\n\r\n return !reverse ?\r\n result : result.reverse();\r\n }\r\n\r\n\r\n public static convertToServerDateTimeString(str) {\r\n const date = new Date(str);\r\n return new Date(date.setHours(date.getHours() + 3)).toISOString()\r\n }\r\n\r\n public static spreadRanges(ranges: number[][]) {\r\n const result = [];\r\n\r\n ranges.forEach(s => {\r\n if (s.length > 1) {\r\n let _start = s[0];\r\n const _end = s[1];\r\n while (_start <= _end)\r\n result.push(_start++);\r\n }\r\n else\r\n result.push(s[0]);\r\n });\r\n return result;\r\n }\r\n\r\n public static convertToMillimeter(px: number) {\r\n return px * 0.2645833333;\r\n }\r\n\r\n public static convertToPixel(mm: number) {\r\n return mm / 0.2645833333;\r\n }\r\n\r\n public static generateQrCodeUrl(hash: string) {\r\n //return `https://idl.mac.org.sa/verify-license/${hash}`;\r\n return `${window.location.origin}/verify/${hash}`;\r\n }\r\n\r\n public static exportToExcel(data: any, translate: TranslateService) {\r\n\r\n var output = data.map(function (obj) {\r\n return Object.keys(obj).map(function (key) {\r\n return obj[key];\r\n });\r\n });\r\n\r\n var wscols = [\r\n { width: 10 }, // first column\r\n { width: 10 },\r\n { width: 12.5 },\r\n { width: 30 },\r\n { width: 30 },\r\n { width: 12.5 },\r\n { width: 10 },\r\n { width: 10 },\r\n { width: 20 },\r\n { width: 15 },\r\n { width: 15 },\r\n { width: 15 },\r\n { width: 10 },\r\n { width: 15 },\r\n { width: 10 },\r\n { width: 12.5 },\r\n { width: 12.5 },\r\n { width: 10 }\r\n ];\r\n\r\n const ws: XLSX.WorkSheet = XLSX.utils.aoa_to_sheet(output);\r\n ws[\"!cols\"] = wscols;\r\n ws[\"!autofilter\"] = { ref: 'A1:R1' };\r\n\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n if (!wb.Workbook) wb.Workbook = {};\r\n if (!wb.Workbook.Views) wb.Workbook.Views = [];\r\n if (!wb.Workbook.Views[0]) wb.Workbook.Views[0] = {};\r\n wb.Workbook.Views[0].RTL = true;\r\n\r\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n XLSX.writeFile(wb, `Licenses_Export_${moment(new Date()).format(\"L\")}.xlsx`);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nInjectable()\r\nexport class ValidationService {\r\n constructor(private translate: TranslateService) { }\r\n\r\n getValidatorErrorMessage(validatorName: string, validatorValue?: any, locale?: string) {\r\n let config = {\r\n required: '_MESSAGE_VALIDATION_REQUIRED',//await this.translate.get('_MESSAGE_VALIDATION_REQUIRED', {field: await this.translate.get(locale).toPromise()}).toPromise(),\r\n arabicOnly: '_MESSAGE_VALIDATION_ARABIC_ONLY',\r\n nonEnglishOnly: '_MESSAGE_VALIDATION_NON_ENGLISH_ONLY',\r\n nonArabicOnly: '_MESSAGE_VALIDATION_NON_ARABIC_ONLY',\r\n englishAndSpacesOnly: '_MESSAGE_VALIDATION_ENGLISH_AND_SPACES_ONLY',\r\n englishOnly: '_MESSAGE_VALIDATION_ENGLISH_ONLY',\r\n invalidNumbersOnly: '_MESSAGE_VALIDATION_NUMBERS_ONLY',\r\n invalidUsername: '_MESSAGE_VALIDATION_USERNAME_PATTERN',\r\n duplicatedUsername: '_MESSAGE_VALIDATION_DUPLICATED_USERNAME',\r\n passwordMismatch: '_MESSAGE_VALIDATION_PASSWORD_MISMATCH',\r\n invalidPhoneNumber: '_ERR_REGEX_PHONE_NO',\r\n invalidEmail: '_MESSAGE_VALIDATION_EMAIL_PATTERN',\r\n email: '_MESSAGE_VALIDATION_EMAIL_PATTERN',\r\n invalidAddress: '_ERR_REGEX_ADDRESS',\r\n minlength: ['_MESSAGE_VALIDATION_MIN_CHARACTERS', validatorValue.requiredLength],\r\n maxlength: ['_MESSAGE_VALIDATION_MAX_CHARACTERS', validatorValue.requiredLength],\r\n _invalidPassportIdOrIdentityId: '_ERR_OWNER_PASSPORT_OR_IDENTITY_DUPLICATE',\r\n invalidPassportIdOrIdentityId: '_MESSAGE_VALIDATION_PASSPORT_ID_IDENTITY_ID_PATTERN',\r\n invalidCreditCard: 'Is invalid credit card number',\r\n invalidEmailAddress: 'Invalid email address',\r\n invalidPassword:\r\n 'Invalid password. Password must be at least 6 characters long, and contain a number.',\r\n // minlength: `Minimum length ${validatorValue.requiredLength}`\r\n invalidVehicleWeightInKGRange: '_ERR_OUT_OF_RANGE_VEHICLE_WEIGHT_IN_KG',\r\n invalidVehicleHorsePowerRange: '_ERR_OUT_OF_RANGE_VEHICLE_HORSE_POWER',\r\n invalidVehicleCylindersCountRange: '_ERR_OUT_OF_RANGE_VEHICLE_CYLINDERS_COUNT',\r\n invalidVehicleManufactureYearRange: '_ERR_OUT_OF_RANGE_VEHICLE_MANUFACTURE_YEAR',\r\n invalidVehicleSeatsCountRange: '_ERR_OUT_OF_RANGE_VEHICLE_SEATS_COUNT',\r\n invalidVehicleSpareTiresCountRange: '_ERR_OUT_OF_RANGE_VEHICLE_SPARE_TIRES_COUNT',\r\n invalidVehicleValueRange: '_ERR_OUT_OF_RANGE_VEHICLE_VALUE',\r\n invalidTriptikName: '_ERR_REGEX_TRIPTIK_NAME'\r\n };\r\n\r\n return config[validatorName];\r\n }\r\n\r\n // static creditCardValidator(control) {\r\n // // Visa, MasterCard, American Express, Diners Club, Discover, JCB\r\n // if (\r\n // control.value.match(\r\n // /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$/\r\n // )\r\n // ) {\r\n // return null;\r\n // } else {\r\n // return { invalidCreditCard: true };\r\n // }\r\n // }\r\n\r\n // static emailValidator(control) {\r\n // // RFC 2822 compliant regex\r\n // if (\r\n // control.value.match(\r\n // /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/\r\n // )\r\n // ) {\r\n // return null;\r\n // } else {\r\n // return { invalidEmailAddress: true };\r\n // }\r\n // }\r\n\r\n // static passwordValidator(control) {\r\n // // {6,100} - Assert password is between 6 and 100 characters\r\n // // (?=.*[0-9]) - Assert a string has at least one number\r\n // if (control.value.match(/^(?=.*[0-9])[a-zA-Z0-9!@#$%^&*]{6,100}$/)) {\r\n // return null;\r\n // } else {\r\n // return { invalidPassword: true };\r\n // }\r\n // }\r\n}","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n //apiBaseUrl: \"https://api-stg.mac.org.sa\",\r\n //apiBaseUrl: 'https://localhost:5001'\r\n //apiBaseUrl: 'https://api-online.macxbackupxdata.space'\r\n apiBaseUrl: 'https://api-online.mac.org.sa'\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","var map = {\n\t\"./af\": 51528,\n\t\"./af.js\": 51528,\n\t\"./ar\": 49851,\n\t\"./ar-dz\": 80932,\n\t\"./ar-dz.js\": 80932,\n\t\"./ar-kw\": 95917,\n\t\"./ar-kw.js\": 95917,\n\t\"./ar-ly\": 11682,\n\t\"./ar-ly.js\": 11682,\n\t\"./ar-ma\": 45443,\n\t\"./ar-ma.js\": 45443,\n\t\"./ar-sa\": 74632,\n\t\"./ar-sa.js\": 74632,\n\t\"./ar-tn\": 97216,\n\t\"./ar-tn.js\": 97216,\n\t\"./ar.js\": 49851,\n\t\"./az\": 5681,\n\t\"./az.js\": 5681,\n\t\"./be\": 6722,\n\t\"./be.js\": 6722,\n\t\"./bg\": 2270,\n\t\"./bg.js\": 2270,\n\t\"./bm\": 60308,\n\t\"./bm.js\": 60308,\n\t\"./bn\": 15809,\n\t\"./bn-bd\": 79354,\n\t\"./bn-bd.js\": 79354,\n\t\"./bn.js\": 15809,\n\t\"./bo\": 29029,\n\t\"./bo.js\": 29029,\n\t\"./br\": 58137,\n\t\"./br.js\": 58137,\n\t\"./bs\": 40426,\n\t\"./bs.js\": 40426,\n\t\"./ca\": 62899,\n\t\"./ca.js\": 62899,\n\t\"./cs\": 6567,\n\t\"./cs.js\": 6567,\n\t\"./cv\": 66573,\n\t\"./cv.js\": 66573,\n\t\"./cy\": 88873,\n\t\"./cy.js\": 88873,\n\t\"./da\": 84140,\n\t\"./da.js\": 84140,\n\t\"./de\": 85988,\n\t\"./de-at\": 80896,\n\t\"./de-at.js\": 80896,\n\t\"./de-ch\": 12202,\n\t\"./de-ch.js\": 12202,\n\t\"./de.js\": 85988,\n\t\"./dv\": 19653,\n\t\"./dv.js\": 19653,\n\t\"./el\": 79405,\n\t\"./el.js\": 79405,\n\t\"./en-au\": 24090,\n\t\"./en-au.js\": 24090,\n\t\"./en-ca\": 40924,\n\t\"./en-ca.js\": 40924,\n\t\"./en-gb\": 26317,\n\t\"./en-gb.js\": 26317,\n\t\"./en-ie\": 49792,\n\t\"./en-ie.js\": 49792,\n\t\"./en-il\": 62137,\n\t\"./en-il.js\": 62137,\n\t\"./en-in\": 90506,\n\t\"./en-in.js\": 90506,\n\t\"./en-nz\": 71854,\n\t\"./en-nz.js\": 71854,\n\t\"./en-sg\": 71761,\n\t\"./en-sg.js\": 71761,\n\t\"./eo\": 50398,\n\t\"./eo.js\": 50398,\n\t\"./es\": 13606,\n\t\"./es-do\": 66977,\n\t\"./es-do.js\": 66977,\n\t\"./es-mx\": 95147,\n\t\"./es-mx.js\": 95147,\n\t\"./es-us\": 67363,\n\t\"./es-us.js\": 67363,\n\t\"./es.js\": 13606,\n\t\"./et\": 36785,\n\t\"./et.js\": 36785,\n\t\"./eu\": 53285,\n\t\"./eu.js\": 53285,\n\t\"./fa\": 18660,\n\t\"./fa.js\": 18660,\n\t\"./fi\": 89341,\n\t\"./fi.js\": 89341,\n\t\"./fil\": 81593,\n\t\"./fil.js\": 81593,\n\t\"./fo\": 62067,\n\t\"./fo.js\": 62067,\n\t\"./fr\": 34618,\n\t\"./fr-ca\": 21955,\n\t\"./fr-ca.js\": 21955,\n\t\"./fr-ch\": 19467,\n\t\"./fr-ch.js\": 19467,\n\t\"./fr.js\": 34618,\n\t\"./fy\": 79598,\n\t\"./fy.js\": 79598,\n\t\"./ga\": 43211,\n\t\"./ga.js\": 43211,\n\t\"./gd\": 80069,\n\t\"./gd.js\": 80069,\n\t\"./gl\": 71028,\n\t\"./gl.js\": 71028,\n\t\"./gom-deva\": 54213,\n\t\"./gom-deva.js\": 54213,\n\t\"./gom-latn\": 83350,\n\t\"./gom-latn.js\": 83350,\n\t\"./gu\": 3179,\n\t\"./gu.js\": 3179,\n\t\"./he\": 48468,\n\t\"./he.js\": 48468,\n\t\"./hi\": 98767,\n\t\"./hi.js\": 98767,\n\t\"./hr\": 93390,\n\t\"./hr.js\": 93390,\n\t\"./hu\": 50472,\n\t\"./hu.js\": 50472,\n\t\"./hy-am\": 12268,\n\t\"./hy-am.js\": 12268,\n\t\"./id\": 32954,\n\t\"./id.js\": 32954,\n\t\"./is\": 9497,\n\t\"./is.js\": 9497,\n\t\"./it\": 1507,\n\t\"./it-ch\": 588,\n\t\"./it-ch.js\": 588,\n\t\"./it.js\": 1507,\n\t\"./ja\": 60760,\n\t\"./ja.js\": 60760,\n\t\"./jv\": 44375,\n\t\"./jv.js\": 44375,\n\t\"./ka\": 29709,\n\t\"./ka.js\": 29709,\n\t\"./kk\": 10262,\n\t\"./kk.js\": 10262,\n\t\"./km\": 59992,\n\t\"./km.js\": 59992,\n\t\"./kn\": 91882,\n\t\"./kn.js\": 91882,\n\t\"./ko\": 7293,\n\t\"./ko.js\": 7293,\n\t\"./ku\": 98432,\n\t\"./ku.js\": 98432,\n\t\"./ky\": 43308,\n\t\"./ky.js\": 43308,\n\t\"./lb\": 89660,\n\t\"./lb.js\": 89660,\n\t\"./lo\": 64236,\n\t\"./lo.js\": 64236,\n\t\"./lt\": 88886,\n\t\"./lt.js\": 88886,\n\t\"./lv\": 46210,\n\t\"./lv.js\": 46210,\n\t\"./me\": 89215,\n\t\"./me.js\": 89215,\n\t\"./mi\": 59533,\n\t\"./mi.js\": 59533,\n\t\"./mk\": 13717,\n\t\"./mk.js\": 13717,\n\t\"./ml\": 40976,\n\t\"./ml.js\": 40976,\n\t\"./mn\": 41120,\n\t\"./mn.js\": 41120,\n\t\"./mr\": 82303,\n\t\"./mr.js\": 82303,\n\t\"./ms\": 62750,\n\t\"./ms-my\": 65007,\n\t\"./ms-my.js\": 65007,\n\t\"./ms.js\": 62750,\n\t\"./mt\": 41538,\n\t\"./mt.js\": 41538,\n\t\"./my\": 41861,\n\t\"./my.js\": 41861,\n\t\"./nb\": 93946,\n\t\"./nb.js\": 93946,\n\t\"./ne\": 41459,\n\t\"./ne.js\": 41459,\n\t\"./nl\": 86892,\n\t\"./nl-be\": 10676,\n\t\"./nl-be.js\": 10676,\n\t\"./nl.js\": 86892,\n\t\"./nn\": 98738,\n\t\"./nn.js\": 98738,\n\t\"./oc-lnc\": 74304,\n\t\"./oc-lnc.js\": 74304,\n\t\"./pa-in\": 20212,\n\t\"./pa-in.js\": 20212,\n\t\"./pl\": 43580,\n\t\"./pl.js\": 43580,\n\t\"./pt\": 6697,\n\t\"./pt-br\": 69584,\n\t\"./pt-br.js\": 69584,\n\t\"./pt.js\": 6697,\n\t\"./ro\": 41956,\n\t\"./ro.js\": 41956,\n\t\"./ru\": 68903,\n\t\"./ru.js\": 68903,\n\t\"./sd\": 84305,\n\t\"./sd.js\": 84305,\n\t\"./se\": 77374,\n\t\"./se.js\": 77374,\n\t\"./si\": 18805,\n\t\"./si.js\": 18805,\n\t\"./sk\": 51696,\n\t\"./sk.js\": 51696,\n\t\"./sl\": 73063,\n\t\"./sl.js\": 73063,\n\t\"./sq\": 72075,\n\t\"./sq.js\": 72075,\n\t\"./sr\": 33220,\n\t\"./sr-cyrl\": 67571,\n\t\"./sr-cyrl.js\": 67571,\n\t\"./sr.js\": 33220,\n\t\"./ss\": 91486,\n\t\"./ss.js\": 91486,\n\t\"./sv\": 60846,\n\t\"./sv.js\": 60846,\n\t\"./sw\": 94725,\n\t\"./sw.js\": 94725,\n\t\"./ta\": 89390,\n\t\"./ta.js\": 89390,\n\t\"./te\": 79094,\n\t\"./te.js\": 79094,\n\t\"./tet\": 42982,\n\t\"./tet.js\": 42982,\n\t\"./tg\": 4637,\n\t\"./tg.js\": 4637,\n\t\"./th\": 59851,\n\t\"./th.js\": 59851,\n\t\"./tk\": 18136,\n\t\"./tk.js\": 18136,\n\t\"./tl-ph\": 9876,\n\t\"./tl-ph.js\": 9876,\n\t\"./tlh\": 660,\n\t\"./tlh.js\": 660,\n\t\"./tr\": 93107,\n\t\"./tr.js\": 93107,\n\t\"./tzl\": 45958,\n\t\"./tzl.js\": 45958,\n\t\"./tzm\": 92838,\n\t\"./tzm-latn\": 57379,\n\t\"./tzm-latn.js\": 57379,\n\t\"./tzm.js\": 92838,\n\t\"./ug-cn\": 25454,\n\t\"./ug-cn.js\": 25454,\n\t\"./uk\": 1615,\n\t\"./uk.js\": 1615,\n\t\"./ur\": 55309,\n\t\"./ur.js\": 55309,\n\t\"./uz\": 81879,\n\t\"./uz-latn\": 71537,\n\t\"./uz-latn.js\": 71537,\n\t\"./uz.js\": 81879,\n\t\"./vi\": 92341,\n\t\"./vi.js\": 92341,\n\t\"./x-pseudo\": 69015,\n\t\"./x-pseudo.js\": 69015,\n\t\"./yo\": 75430,\n\t\"./yo.js\": 75430,\n\t\"./zh-cn\": 46607,\n\t\"./zh-cn.js\": 46607,\n\t\"./zh-hk\": 61211,\n\t\"./zh-hk.js\": 61211,\n\t\"./zh-mo\": 30856,\n\t\"./zh-mo.js\": 30856,\n\t\"./zh-tw\": 34911,\n\t\"./zh-tw.js\": 34911\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"]}