@adins/ucsearch 2.0.4 → 2.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["ng://ucsearch/lib/ucsearch.service.ts","ng://ucsearch/lib/model/CriteriaObj.Model.ts","ng://ucsearch/lib/model/RequestCriteriaObj.model.ts","ng://ucsearch/lib/model/AdInstConstant.ts","ng://ucsearch/lib/services/excel-service/excel-service.ts","ng://ucsearch/lib/ucsearch.component.ts","ng://ucsearch/lib/ucsearch.module.ts"],"names":["UCSearchService","Injectable","args","providedIn","CriteriaObj","this","low","high","DataType","RequestCriteriaObj","includeCount","includeData","isLoading","queryString","AdInsConstant","RestrictionLike","RestrictionEq","showData","TimeoutSession","GetListProduct","Login","LoginToken","Logout","GetListOffice","GetProvince","GetCityByProvince","getProspectByProspectNo","submitNCProspect","addCustPersonal","FormDefault","GetBusinessDt","AddGeneralSetting","EditGeneralSetting","GetGeneralSettingPaging","GetGeneralSettingById","GetGeneralSettingValue","GetRefOfficeObj","GetRefOfficeActiveAndNonVirtualKeyValue","GetAllRefOffice","GetListUpperHierarchyRefOfficeByRefOrgId","AddRefOffice","EditRefOffice","DeleteRefOffice","GetAllListArea","GetRefOfficeAreaPaging","GetRefArea","AddRefOfficeArea","EditRefOfficeArea","DeleteRefOfficeArea","CheckDuplAreaCode","GetRefOrg","EditRefOrgWithOldParentId","DeleteRefOrg","GetListAllRefOrg","AddRefOrg","GetRefOrgPaging","GetAllRefBizUnit","GetOrgJobTitleByMdlStruc","GetRefBizUnitByOffice","GetAllOrgMdl","GetAllActiveOrgMdlByRefOrgId","GetOrgMdlPaging","DeleteOrgMdl","EditOrgMdl","AddOrgMdl","GetOrgMdl","GetOrgMdlByOrgMdlId","GetAllRefBizUnitKeyValuePair","DeleteOrgMdlStruc","AddOrgMdlStruc","EditOrgMdlStruc","GetOrgMdlStruc","GetOrgMdlStrucPaging","GetOrgMdlStrucById","GetRefJobTitle","AddRefJobTitle","EditRefJobTitle","DeleteRefJobTitle","GetJobPositionLvl","GetRefJobTitleById","GetOrgJobTitlePaging","AddOrgJobTitle","EditOrgJobTitle","DeleteOrgJobTitle","GetOrgJobTitleByOrgJobTitleId","GetBankPaging","GetBank","EditRefBank","AddRefBank","DeleteRefBank","GetBankByBankCode","GetListEmployee","GetRefEmployeeById","AddRefEmp","EditRefEmp","DeleteRefEmployee","AddEmpBankAcc","GetEmpBankAccByRefEmpId","AddRefEmpAndEmpBankAcc","EditRefEmpAndEmpBankAcc","DeleteRefEmpAndEmpBankAcc","GetListEmployeebyRefEmpId","GetEmpListByOfficeIdAndIsActive","GetEmpPositionPaging","GetEmpByEmpPositionId","AddEmpPosition","EditEmpPosition","DeleteEmpPosition","GetListUserEmployee","GetRefUserPaging","AddRefUser","EditRefUser","ChangePassword","GetRefUser","GetUserByUsername","ValidatePwd","GetCountRefUserByRefEmpId","ResetPassword","GetRefRolePaging","AddRefRole","EditRefRole","DeleteRefRole","GetRefRoleByRefRoleId","GetRefRole","GetListDataCurrentUser","GetRefRoleByEmpPositionId","EditUserTitleRole","AddUserTitleRole","AssignRoleToUsers","GetUserTitleRoleByEmpPositionIdAndRefRoleId","GetRefZipcodePaging","GetRefZipCode","GetRefProvDistrictObj","EditRefZipcode","AddRefZipcode","DeleteRefZipcode","GetBusinessUnitPaging","GetRefBizUnit","AddRefBizUnit","EditRefBizUnit","GetRefCoyPaging","GetRefCoy","EditRefCoy","GetCoyBodPaging","AddCoyBod","EditCoyBod","DeleteCoyBod","GetCoyBod","GetCommissionerPaging","AddCoyCommissioner","EditCoyCommissioner","DeleteCoyCommissioner","GetCoyCommissioner","GetAllActiveRefTaxOffice","GetRefMasterList","GetRefMastersByCriteria","GetRefMaster","GetRefMasterListByTypeCode","GetRefMasterListKeyValuePair","AddRefMaster","EditRefMaster","GetRefMasterType","DeleteRefMaster","GetRefMasterPaging","GetRefProvDistrictPaging","GetRefFormPaging","GetAllActiveRefFormByRefRoleId","GetRefFormByRefFormId","EditRefForm","AddRefForm","DeleteRefForm","AssignRoleToForms","GetAllAuthFormsByRefRoleId","GetAuthByRefFormIdAndRefRoleId","UpdateFormFeatureAuthForm","GetListRefFeature","GetRefFeatureByComponent","GetAllActiveHolidaySchmH","GetHolidayPaging","AddHolidaySchmH","AddHolidaySchmD","AddHolidaySchmDUntilYear","GetHolidaySchmH","EditHolidaySchmHOnly","DeleteHolidaySchmH","DeleteHolidaySchmD","GetHolidayDetailPaging","SelectRole","NotificationPost","GetRefCurrPaging","AddRefCurr","EditRefCurr","GetRefCurr","AddExchangeRate","EditExchangeRate","GetExchangeRate","GetListOfWorkingHourSchm","GetWorkHourSchmHPaging","AddWorkingHourSchmH","EditWorkingHourSchmH","GetWorkingHourSchmH","GetWorkingHourSchmD","DeleteWorkingHourSchmH","ExcelService","prototype","exportAsExcelFile","json","excelFileName","worksheet","XLSX.utils","json_to_sheet","console","log","workbook","Sheets","data","SheetNames","excelBuffer","XLSX.write","bookType","type","saveAsExcelFile","buffer","fileName","Blob","FileSaver.saveAs","Date","getTime","UCSearchComponent","hide","obj","target","event","srcElement","changeState","currentState","isHidden","ngOnInit","apiUrl","searchInput","enviromentUrl","apiQryPaging","arrCrit","arrCritObj","js","_renderer2","createElement","text","appendChild","_document","body","initiateForm","_this","getJSON","_url","subscribe","configuration","urlGet","url","exportData","exportExcel","countForm","component","length","isDataLoaded","i","isFromURL","request","arrayCrit","Array","criteriaObject","propName","criteriaPropName","value","criteriaPropValue","restriction","push","criteria","resolveObject","parseFloat","toLocaleString","includes","businessDate","JSON","parse","localStorage","getItem","BusinessDate","operator","charAt","dateShow","tempMinus","split","numDay","parseInt","setDate","getDate","dateText","formatDate","http","get","postJSON","post","searchClick","orderByKey","orderByValue","pageNow","search","pageSize","reset","pageNo","rowPerPage","orderBy","addCrit","querystring","critObj","myForm","nativeElement","getAttribute","nodeName","ddl","options","selectedIndex","name","replace","addCritInput","undefined","response","qryPaging","result","emit","lessThanFour","crit","tempData","itemsUrl","returnObject","transformAmount","element","formattedAmount","transformToDecimal","toString","exportAsXLSX","ExcelData","excelService","error","onChangeEvent","optValue","afFilter","jsonComp","affectedFilter","j","datatype","Component","selector","template","providers","animations","trigger","state","style","height","opacity","overflow","transition","animate","HttpClient","Renderer2","Inject","DOCUMENT","ViewChild","Input","Output","EventEmitter","payLoad","amount","UCSearchModule","NgModule","declarations","imports","CommonModule","exports"],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UCSearchService {\r\n\r\n constructor() { }\r\n}\r\n","export class CriteriaObj{\r\n propName:string;\r\n restriction:string;\r\n value:string;\r\n low:number;\r\n high:number;\r\n DataType:string;\r\n\r\n constructor()\r\n {\r\n this.low=0;\r\n this.high=0;\r\n this.DataType='Text';\r\n }\r\n\r\n}","import { CriteriaObj } from \"../model/CriteriaObj.model\";\r\n\r\nexport class RequestCriteriaObj{\r\n includeCount:boolean;\r\n includeData:boolean;\r\n pageNo:number;\r\n rowPerPage:number;\r\n orderBy:any;\r\n criteria:CriteriaObj[];\r\n isLoading : boolean;\r\n queryString: any;\r\n\r\n constructor()\r\n {\r\n this.includeCount=true;\r\n this.includeData=true;\r\n this.isLoading = true;\r\n this.queryString = '';\r\n }\r\n}","import { formatDate } from \"@angular/common\";\r\n\r\nexport class AdInsConstant {\r\n public static RestrictionLike = \"Like\";\r\n public static RestrictionEq = \"Eq\";\r\n public static showData = \"10,50,100\";\r\n public static TimeoutSession = 6000000;\r\n public static GetListProduct = \"http://creator_websvr:7272/NEW_FINANCING/api/Catalog/getPopularViewByCriteria\";\r\n public static Login = \"/UserManagement/HTML5Login\";\r\n public static LoginToken = \"/UserManagement/HTML6Login\";\r\n public static Logout = \"/UserManagement/LogOut\"\r\n public static GetListOffice = \"/RefOffice/GetRefOfficePaging\";\r\n public static GetProvince = \"/los/v1/get_provinsi\";\r\n public static GetCityByProvince = \"/los/v1/get_kota\";\r\n public static getProspectByProspectNo = \"/api/MobileProspectTask/GetProspectByProspectNo\";\r\n public static submitNCProspect = \"/api/MobileProspectTask/submitNCProspect\";\r\n public static addCustPersonal = \"\";\r\n public static FormDefault = \"dashboard/dash-board\";\r\n\r\n //GENERAL SETTING\r\n public static GetBusinessDt = \"/GeneralSetting/GetBusinessDate\";\r\n public static AddGeneralSetting = \"/GeneralSetting/AddGeneralSetting\";\r\n public static EditGeneralSetting = \"/GeneralSetting/EditGeneralSetting\";\r\n public static GetGeneralSettingPaging = \"/GeneralSetting/GetGeneralSettingPaging\";\r\n public static GetGeneralSettingById = \"/GeneralSetting/GetGeneralSettingById\";\r\n public static GetGeneralSettingValue = \"/GeneralSetting/GetGeneralSettingValue\";\r\n\r\n\r\n //REF OFFICE\r\n public static GetRefOfficeObj = \"/RefOffice/GetRefOfficeObj\";\r\n public static GetRefOfficeActiveAndNonVirtualKeyValue = \"/RefOffice/GetRefOfficeActiveAndNonVirtualKeyValue\";\r\n public static GetAllRefOffice = \"/RefOffice/GetAllRefOffice\";\r\n public static GetListUpperHierarchyRefOfficeByRefOrgId = \"/RefOffice/GetListUpperHierarchyRefOfficeByRefOrgId\";\r\n public static AddRefOffice = \"/RefOffice/AddRefOffice\";\r\n public static EditRefOffice = \"/RefOffice/EditRefOffice\";\r\n public static DeleteRefOffice = \"/RefOffice/DeleteRefOffice\";\r\n\r\n //REF OFFICE AREA\r\n public static GetAllListArea = \"/RefOfficeArea/GetAllListArea\";\r\n public static GetRefOfficeAreaPaging = \"/RefOfficeArea/GetRefOfficeAreaPaging\";\r\n public static GetRefArea = \"/RefOfficeArea/GetRefArea\";\r\n public static AddRefOfficeArea = \"/RefOfficeArea/AddRefOfficeArea\";\r\n public static EditRefOfficeArea = \"/RefOfficeArea/EditRefOfficeArea\";\r\n public static DeleteRefOfficeArea = \"/RefOfficeArea/DeleteRefOfficeArea\";\r\n public static CheckDuplAreaCode = \"/RefOfficeArea/CheckDuplAreaCode\";\r\n\r\n //ORGANIZATION\r\n public static GetRefOrg = \"/OrganizationDefinition/GetRefOrg\";\r\n public static EditRefOrgWithOldParentId = \"/OrganizationDefinition/EditRefOrgWithOldParentId\";\r\n public static DeleteRefOrg = \"/OrganizationDefinition/DeleteRefOrg\";\r\n public static GetListAllRefOrg = \"/OrganizationDefinition/GetListAllRefOrg\";\r\n public static AddRefOrg = \"/OrganizationDefinition/AddRefOrg\";\r\n public static GetRefOrgPaging = \"/OrganizationDefinition/GetRefOrgPaging\";\r\n public static GetAllRefBizUnit = \"/OrganizationDefinition/GetAllRefBizUnit\";\r\n public static GetOrgJobTitleByMdlStruc = \"/OrganizationDefinition/GetOrgJobTitleByMdlStruc\";\r\n public static GetRefBizUnitByOffice = \"/OrganizationDefinition/GetRefBizUnitByOffice\";\r\n public static GetAllOrgMdl = \"/OrganizationDefinition/GetAllOrgMdl\";\r\n public static GetAllActiveOrgMdlByRefOrgId = \"/OrganizationDefinition/GetAllActiveOrgMdlByRefOrgId\";\r\n public static GetOrgMdlPaging = \"/OrganizationDefinition/GetOrgMdlPaging\";\r\n public static DeleteOrgMdl = \"/OrganizationDefinition/DeleteOrgMdl\";\r\n public static EditOrgMdl = \"/OrganizationDefinition/EditOrgMdl\";\r\n public static AddOrgMdl = \"/OrganizationDefinition/AddOrgMdl\";\r\n public static GetOrgMdl = \"/OrganizationDefinition/GetOrgMdl\";\r\n public static GetOrgMdlByOrgMdlId = \"/OrganizationDefinition/GetOrgMdlByOrgMdlId\";\r\n public static GetAllRefBizUnitKeyValuePair = \"/OrganizationDefinition/GetAllRefBizUnitKeyValuePair\";\r\n public static DeleteOrgMdlStruc = \"/OrganizationDefinition/DeleteOrgMdlStruc\";\r\n public static AddOrgMdlStruc = \"/OrganizationDefinition/AddOrgMdlStruc\";\r\n public static EditOrgMdlStruc = \"/OrganizationDefinition/EditOrgMdlStruc\";\r\n public static GetOrgMdlStruc = \"/OrganizationDefinition/GetOrgMdlStruc\";\r\n public static GetOrgMdlStrucPaging = \"/OrganizationDefinition/GetOrgMdlStrucPaging\";\r\n public static GetOrgMdlStrucById = \"/OrganizationDefinition/GetOrgMdlStrucById\";\r\n\r\n //REF-JOB-TITLE\r\n public static GetRefJobTitle = \"/OrganizationDefinition/GetRefJobTitlePaging\";\r\n public static AddRefJobTitle = \"/OrganizationDefinition/AddRefJobTitle\";\r\n public static EditRefJobTitle = \"/OrganizationDefinition/EditRefJobTitle\";\r\n public static DeleteRefJobTitle = \"/OrganizationDefinition/DeleteRefJobTitle\";\r\n public static GetJobPositionLvl = \"/OrganizationDefinition/GetJobPositionLvl\";\r\n public static GetRefJobTitleById = \"/OrganizationDefinition/GetRefJobTitleByRefJobTitleId\";\r\n\r\n //ORG JOB TITLE\r\n public static GetOrgJobTitlePaging = \"/OrganizationDefinition/GetOrgJobTitlePaging\";\r\n public static AddOrgJobTitle = \"/OrganizationDefinition/AddOrgJobTitle\";\r\n public static EditOrgJobTitle = \"/OrganizationDefinition/EditOrgJobTitle\";\r\n public static DeleteOrgJobTitle = \"/OrganizationDefinition/DeleteOrgJobTitle\";\r\n public static GetOrgJobTitleByOrgJobTitleId = \"/OrganizationDefinition/GetOrgJobTitleByOrgJobTitleId\";\r\n\r\n //REF-BANK\r\n public static GetBankPaging = \"/RefBank/GetRefBankPaging\";\r\n public static GetBank = \"/RefBank/GetBank\";\r\n public static EditRefBank = \"/RefBank/EditRefBank\";\r\n public static AddRefBank = \"/RefBank/AddRefBank\";\r\n public static DeleteRefBank = \"/RefBank/DeleteRefBank\";\r\n public static GetBankByBankCode = \"/RefBank/GetBankByBankCode\";\r\n\r\n //REF-EMP\r\n public static GetListEmployee = \"/RefEmp/GetRefEmpPaging\";\r\n public static GetRefEmployeeById = \"/RefEmp/GetEmp\"\r\n public static AddRefEmp = \"/RefEmp/AddRefEmp\";\r\n public static EditRefEmp = \"/RefEmp/EditRefEmp\";\r\n public static DeleteRefEmployee = \"/RefEmp/DeleteRefEmp\";\r\n public static AddEmpBankAcc = \"/EmpBankAcc/AddEmpBankAcc\";\r\n public static GetEmpBankAccByRefEmpId = \"/EmpBankAcc/GetEmpBankAccByRefEmpId\";\r\n public static AddRefEmpAndEmpBankAcc = \"/RefEmp/AddRefEmpAndEmpBankAcc\";\r\n public static EditRefEmpAndEmpBankAcc = \"/RefEmp/EditRefEmpAndEmpBankAcc\";\r\n public static DeleteRefEmpAndEmpBankAcc = \"/RefEmp/DeleteRefEmpAndEmpBankAcc\";\r\n public static GetListEmployeebyRefEmpId = \"/EmpPosition/GetListEmployeebyRefEmpId\";\r\n public static GetEmpListByOfficeIdAndIsActive = \"/RefEmp/GetEmpListByOfficeIdAndIsActive\";\r\n\r\n //EMP_POSITION\r\n public static GetEmpPositionPaging = \"/EmpPosition/GetEmpPositionPaging\";\r\n public static GetEmpByEmpPositionId = \"/EmpPosition/GetEmpByEmpPositionId\";\r\n public static AddEmpPosition = \"/EmpPosition/AddEmpPosition\";\r\n public static EditEmpPosition = \"/EmpPosition/EditEmpPosition\";\r\n public static DeleteEmpPosition = \"/EmpPosition/DeleteEmpPosition\";\r\n public static GetListUserEmployee = \"/EmpPosition/GetListUserEmployee\";\r\n\r\n //REF-USER\r\n public static GetRefUserPaging = \"/UserManagement/GetRefUserPaging\";\r\n public static AddRefUser = \"/UserManagement/AddRefUser\";\r\n public static EditRefUser = \"/UserManagement/EditRefUser\";\r\n public static ChangePassword = \"/UserManagement/ChangePassword\";\r\n public static GetRefUser = \"/UserManagement/GetRefUser\";\r\n public static GetUserByUsername = \"/UserManagement/GetUserByUsername\";\r\n public static ValidatePwd = \"/UserManagement/ValidatePwd\";\r\n public static GetCountRefUserByRefEmpId = \"/UserManagement/GetCountRefUserByRefEmpId\";\r\n public static ResetPassword = \"/UserManagement/ResetPassword\";\r\n\r\n //REF-ROLE\r\n public static GetRefRolePaging = \"/UserManagement/GetRefRolePaging\";\r\n public static AddRefRole = \"/UserManagement/AddRefRole\";\r\n public static EditRefRole = \"/UserManagement/EditRefRole\";\r\n public static DeleteRefRole = \"/UserManagement/DeleteRefRole\";\r\n public static GetRefRoleByRefRoleId = \"/RefRole/GetRefRoleByRefRoleId\";\r\n public static GetRefRole = \"/RefRole/GetRefRole\";\r\n public static GetListDataCurrentUser = \"/UserManagement/GetListDataCurrentUser\";\r\n public static GetRefRoleByEmpPositionId = \"/RefRole/GetRefRoleByEmpPositionId\";\r\n public static EditUserTitleRole = \"/UserManagement/EditUserTitleRole\";\r\n public static AddUserTitleRole = \"/UserManagement/AddUserTitleRole\";\r\n public static AssignRoleToUsers = \"/UserManagement/AssignRoleToUsers\";\r\n public static GetUserTitleRoleByEmpPositionIdAndRefRoleId = \"/UserManagement/GetUserTitleRoleByEmpPositionIdAndRefRoleId\";\r\n\r\n //ZIPCODE\r\n public static GetRefZipcodePaging = \"/RefZipcode/GetRefZipcodePaging\";\r\n public static GetRefZipCode = \"/RefZipcode/GetRefZipcode\";\r\n public static GetRefProvDistrictObj = \"/RefProvDistrict/GetRefProvDistrict\";\r\n public static EditRefZipcode = \"/RefZipcode/EditRefZipCode\";\r\n public static AddRefZipcode = \"/RefZipcode/AddRefZipCode\";\r\n public static DeleteRefZipcode = \"/RefZipcode/DeleteRefZipCode\"\r\n\r\n //BUSINESS UNIT\r\n public static GetBusinessUnitPaging = \"/OrganizationDefinition/GetRefBizUnitPaging\";\r\n public static GetRefBizUnit = \"/OrganizationDefinition/GetRefBizUnit\";\r\n public static AddRefBizUnit = \"/OrganizationDefinition/AddRefBizUnit\";\r\n public static EditRefBizUnit = \"/OrganizationDefinition/EditRefBizUnit\";\r\n\r\n //REF COY\r\n public static GetRefCoyPaging = \"/RefCoy/GetRefCoyPaging\";\r\n public static GetRefCoy = \"/RefCoy/GetRefCoy\";\r\n public static EditRefCoy = \"/RefCoy/EditRefCoy\";\r\n public static GetCoyBodPaging = \"/CoyBod/GetCoyBodPaging\";\r\n public static AddCoyBod = \"/CoyBod/AddCoyBOD\";\r\n public static EditCoyBod = \"/CoyBod/EditCoyBOD\";\r\n public static DeleteCoyBod = \"/CoyBod/DeleteCoyBOD\";\r\n public static GetCoyBod = \"/CoyBod/GetCoyBod\";\r\n public static GetCommissionerPaging = \"/CoyCommissioner/GetCoyCommissionerPaging\";\r\n public static AddCoyCommissioner = \"/CoyCommissioner/AddCoyCommissioner\";\r\n public static EditCoyCommissioner = \"/CoyCommissioner/EditCoyCommissioner\";\r\n public static DeleteCoyCommissioner = \"/CoyCommissioner/DeleteCoyCommissioner\";\r\n public static GetCoyCommissioner = \"/CoyCommissioner/GetCoyCommissioner\";\r\n\r\n //REF TAX OFFICE\r\n public static GetAllActiveRefTaxOffice = \"/RefTaxOffice/GetAllActiveRefTaxOffice\";\r\n\r\n //REF MASTER\r\n public static GetRefMasterList = \"/RefMaster/GetRefMasterList\";\r\n public static GetRefMastersByCriteria = \"/RefMaster/GetRefMastersByCriteria\";\r\n public static GetRefMaster = \"/RefMaster/GetRefMaster\";\r\n public static GetRefMasterListByTypeCode = \"/RefMaster/GetRefMasterListByTypeCode\";\r\n public static GetRefMasterListKeyValuePair = \"/RefMaster/GetRefMasterListKeyValuePair\";\r\n public static AddRefMaster = \"/RefMaster/AddRefMaster\";\r\n public static EditRefMaster = \"/RefMaster/EditRefMaster\";\r\n public static GetRefMasterType = \"/RefMaster/GetRefMasterType\";\r\n public static DeleteRefMaster = \"/RefMaster/DeleteRefMaster\";\r\n public static GetRefMasterPaging = \"/RefMaster/GetRefMasterPaging\";\r\n\r\n //REF PROV DISTRICT\r\n public static GetRefProvDistrictPaging = \"/RefProvDistrict/GetRefProvDistrictPaging\";\r\n\r\n //MENU\r\n public static GetRefFormPaging = \"/MenuManagement/GetRefFormPaging\";\r\n public static GetAllActiveRefFormByRefRoleId = \"/MenuManagement/GetAllActiveRefFormByRefRoleId\";\r\n public static GetRefFormByRefFormId = \"/MenuManagement/GetRefFormByRefFormId\";\r\n public static EditRefForm = \"/MenuManagement/EditRefForm\";\r\n public static AddRefForm = \"/MenuManagement/AddRefForm\";\r\n public static DeleteRefForm = \"/MenuManagement/DeleteRefForm\";\r\n public static AssignRoleToForms = \"/MenuManagement/AssignRoleToForms\";\r\n public static GetAllAuthFormsByRefRoleId = \"/MenuManagement/GetAllAuthFormsByRefRoleId\";\r\n public static GetAuthByRefFormIdAndRefRoleId = \"/MenuManagement/GetAuthByRefFormIdAndRefRoleId\";\r\n public static UpdateFormFeatureAuthForm = \"/MenuManagement/UpdateFormFeatureAuthForm\";\r\n\r\n //FORM FEATURE\r\n public static GetListRefFeature = \"/RefFeature/GetListRefFeature\";\r\n public static GetRefFeatureByComponent = \"/RefFeature/GetRefFeatureByComponent\";\r\n\r\n //HOLIDAY\r\n public static GetAllActiveHolidaySchmH = \"/Holiday/GetAllActiveHolidaySchmH\";\r\n public static GetHolidayPaging = \"/Holiday/GetHolidayPaging\";\r\n public static AddHolidaySchmH = \"/Holiday/AddHolidaySchmH\";\r\n public static AddHolidaySchmD = \"/Holiday/AddHolidaySchmD\";\r\n public static AddHolidaySchmDUntilYear = \"/Holiday/AddHolidaySchmDUntilYear\";\r\n public static GetHolidaySchmH = \"/Holiday/GetHolidaySchmH\";\r\n public static EditHolidaySchmHOnly = \"/Holiday/EditHolidaySchmHOnly\";\r\n public static DeleteHolidaySchmH = \"/Holiday/DeleteHolidaySchmH\";\r\n public static DeleteHolidaySchmD = \"/Holiday/DeleteHolidaySchmD\";\r\n public static GetHolidayDetailPaging = \"/Holiday/GetHolidayDetailPaging\";\r\n\r\n //USER SESSION LOG\r\n public static SelectRole = \"/UserSessionLog/SelectRole\";\r\n\r\n //NOTIFICATION\r\n public static NotificationPost = \"/Message/Post\";\r\n\r\n //REF CURR\r\n public static GetRefCurrPaging = \"/RefCurr/GetRefCurrPaging\";\r\n public static AddRefCurr = \"/RefCurr/AddRefCurr\";\r\n public static EditRefCurr = \"/RefCurr/EditRefCurr\";\r\n public static GetRefCurr = \"/RefCurr/GetRefCurr\";\r\n public static AddExchangeRate = \"/RefCurr/AddExchangeRate\";\r\n public static EditExchangeRate = \"/RefCurr/EditExchangeRate\";\r\n public static GetExchangeRate = \"/RefCurr/GetExchangeRate\";\r\n\r\n //WORKHOUR\r\n public static GetListOfWorkingHourSchm = \"/WorkHour/GetListOfWorkingHourSchm\";\r\n public static GetWorkHourSchmHPaging = \"/WorkHour/GetWorkHourSchmHPaging\";\r\n public static AddWorkingHourSchmH = \"/WorkHour/AddWorkingHourSchmH\";\r\n public static EditWorkingHourSchmH = \"/WorkHour/EditWorkingHourSchmH\";\r\n public static GetWorkingHourSchmH = \"/WorkHour/GetWorkingHourSchmH\";\r\n public static GetWorkingHourSchmD = \"/WorkHour/GetWorkingHourSchmD\";\r\n public static DeleteWorkingHourSchmH = \"/WorkHour/DeleteWorkingHourSchmH\";\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as FileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n\r\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\nconst EXCEL_EXTENSION = '.xlsx';\r\n\r\n@Injectable()\r\nexport class ExcelService {\r\n\r\n constructor() { }\r\n\r\n public exportAsExcelFile(json: any[], excelFileName: string): void {\r\n \r\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\r\n console.log('worksheet',worksheet);\r\n const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\r\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n //const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'buffer' });\r\n this.saveAsExcelFile(excelBuffer, excelFileName);\r\n }\r\n\r\n private saveAsExcelFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION);\r\n }\r\n\r\n}","import { Component, OnInit, Input, ViewChild, ElementRef, Inject, Renderer2, EventEmitter, Output, ViewEncapsulation } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { formatDate } from '@angular/common';\r\nimport { CriteriaObj } from './model/CriteriaObj.Model';\r\nimport { RequestCriteriaObj } from './model/RequestCriteriaObj.model';\r\nimport { AdInsConstant } from './model/AdInstConstant';\r\nimport { DOCUMENT } from '@angular/platform-browser';\r\nimport { ExcelService } from './services/excel-service/excel-service';\r\nimport { trigger, transition, style, animate, state } from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'lib-UCSearch',\r\n templateUrl: './ucsearch.component.html',\r\n styles: [],\r\n providers: [ExcelService],\r\n animations: [\r\n trigger('changeDivSize', [\r\n state('initial', style({\r\n height: '*',\r\n opacity: '1',\r\n })),\r\n state('final', style({\r\n height: '0px',\r\n opacity: '0',\r\n overflow: 'hidden',\r\n })),\r\n transition('initial=>final', animate('300ms')),\r\n transition('final=>initial', animate('300ms'))\r\n ]),\r\n ]\r\n})\r\nexport class UCSearchComponent implements OnInit {\r\n\r\n @ViewChild('formIdSearch') myForm: ElementRef;\r\n @Input() searchInput: any;\r\n @Output() result: EventEmitter<any> = new EventEmitter();\r\n pageSize: any = 10;\r\n pageNow: any = 1;\r\n orderByKey: any;\r\n orderByValue: any;\r\n tempUrl: string;\r\n urlGet: string;\r\n server: any;\r\n configuration: any;\r\n itemUrl: any;\r\n exportData: any;\r\n ExcelData: any;\r\n isDataLoaded: boolean = false;\r\n isHidden: boolean = false;\r\n\r\n currentState = 'initial';\r\n\r\n form: FormGroup;\r\n payLoad = '';\r\n countForm = 0;\r\n formattedAmount = '';\r\n amount = 0;\r\n apiUrl: string;\r\n arrCrit: any;\r\n constructor(private http: HttpClient, private excelService: ExcelService, private _renderer2: Renderer2, @Inject(DOCUMENT) private _document) {\r\n }\r\n\r\n hide(obj:any){\r\n console.log(obj);\r\n var target =event.srcElement;\r\n console.log(target);\r\n // var idAttr = target.attributes.id;\r\n // var value = idAttr.nodeValue;\r\n\r\n }\r\n\r\n changeState() {\r\n this.currentState = this.currentState === 'initial' ? 'final' : 'initial';\r\n this.isHidden = this.isHidden === false ? true : false;\r\n console.log(this.currentState);\r\n }\r\n\r\n ngOnInit() {\r\n this.apiUrl = this.searchInput.enviromentUrl + this.searchInput.apiQryPaging;\r\n this.arrCrit = this.searchInput.arrCritObj;\r\n let js = this._renderer2.createElement('script');\r\n js.text = `\r\n $(document).ready(function(){\r\n $(\"#flip\").click(function(){\r\n $(\"#panel\").slideToggle(\"slow\");\r\n });\r\n });\r\n `;\r\n this._renderer2.appendChild(this._document.body, js);\r\n this.initiateForm();\r\n }\r\n\r\n initiateForm() {\r\n this.getJSON(this.searchInput._url).subscribe(data => {\r\n console.log(data);\r\n this.configuration = data;\r\n this.urlGet = data.url;\r\n this.exportData = data.exportExcel;\r\n this.countForm = data.component.length;\r\n this.isDataLoaded = true;\r\n\r\n for (var i = 0; i < this.countForm; i++) {\r\n\r\n //ini kalau datanya di load dari URL\r\n if (data.component[i].isFromURL == true) {\r\n var request = new RequestCriteriaObj();\r\n var arrayCrit = new Array();\r\n var criteriaObject = new CriteriaObj();\r\n criteriaObject.DataType = \"text\";\r\n criteriaObject.propName = data.component[i].criteriaPropName;\r\n criteriaObject.value = data.component[i].criteriaPropValue;\r\n criteriaObject.restriction = \"eq\";\r\n arrayCrit.push(criteriaObject);\r\n request.criteria = arrayCrit;\r\n \r\n \r\n //lempar objectnya sekalian sama urlnya, nnti di bind di dalem karena masalah di asyncnya\r\n //biar tiap function ada state2nya sendiri\r\n this.resolveObject(data.component[i], data.component[i].url, request);\r\n }\r\n\r\n if (data.component[i].type == \"numeric\") {\r\n data.component[i].value = parseFloat(data.component[i].value).toLocaleString('en');\r\n }\r\n\r\n //pengecekan tanggal\r\n if (data.component[i].type == \"datepicker\") {\r\n if (data.component[i].value.includes(\"BD\")) {\r\n let businessDate = new Date(JSON.parse(localStorage.getItem(\"UserContext\")).BusinessDate);\r\n var operator = data.component[i].value.charAt(2);\r\n var dateShow = new Date();\r\n if (operator == \"-\") {\r\n var tempMinus = data.component[i].value.split(\"-\", 2);\r\n var numDay = parseInt(tempMinus[1]);\r\n dateShow.setDate(businessDate.getDate() - numDay);\r\n }\r\n else if (operator == \"+\") {\r\n var tempMinus = data.component[i].value.split(\"+\", 2);\r\n var numDay = parseInt(tempMinus[1]);\r\n dateShow.setDate(businessDate.getDate() + numDay);\r\n }\r\n var dateText = formatDate(dateShow, 'yyyy-MM-dd', 'en-US')\r\n data.component[i].value = dateText;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n public getJSON(url: string): Observable<any> {\r\n return this.http.get(url);\r\n }\r\n\r\n public postJSON(url: string, criteria: any = null): Observable<any> {\r\n return this.http.post(url, criteria);\r\n }\r\n\r\n searchClick() {\r\n this.orderByKey = null\r\n this.orderByValue = true\r\n this.pageNow = 1;\r\n this.search(this.apiUrl, this.pageNow, this.pageSize, null, this.arrCrit);\r\n }\r\n\r\n reset() {\r\n this.initiateForm();\r\n }\r\n\r\n search(apiUrl: string, pageNo: number, rowPerPage: number, orderBy: any, addCrit: CriteriaObj[] = new Array()) {\r\n var request = new RequestCriteriaObj();\r\n var arrCrit = new Array();\r\n\r\n request.pageNo = pageNo;\r\n request.rowPerPage = rowPerPage;\r\n request.orderBy = orderBy;\r\n request.queryString = this.configuration.querystring;\r\n\r\n for (var i = 0; i < this.countForm; i++) {\r\n var critObj = new CriteriaObj();\r\n var component = this.myForm.nativeElement[i];\r\n critObj.DataType = component.getAttribute('data-type');\r\n console.log(component);\r\n //Ini khusus kalau dari Drop Down\r\n if (component.value != \"\") {\r\n if (component.nodeName == 'SELECT') {\r\n var ddl = component.options;\r\n var text = ddl[ddl.selectedIndex].value;\r\n if (text != \"All\") {\r\n //Kalau Dari Dropdown udah pasti pake Eq\r\n critObj.restriction = AdInsConstant.RestrictionEq;\r\n critObj.propName = component.name;\r\n critObj.value = text;\r\n arrCrit.push(critObj);\r\n }\r\n }\r\n else {\r\n //Kalau ada Percent maka yang dipake nnti adalah Restrictions Like\r\n critObj.propName = component.name;\r\n critObj.value = component.value;\r\n if (component.value.includes(\"%\")) {\r\n critObj.restriction = AdInsConstant.RestrictionLike;\r\n }\r\n //kalau componentnya Date, restrictionsnya lgsg ambil dari property JSONnya\r\n else if (component.getAttribute('data-restriction') != \"\" && component.getAttribute('data-restriction') != null) {\r\n critObj.restriction = component.getAttribute('data-restriction');\r\n if(component.getAttribute('data-type')=='numeric')\r\n {\r\n component.value = parseFloat(component.value.replace(/,/g, ''));\r\n console.log(component.value);\r\n }\r\n }\r\n else {\r\n critObj.restriction = AdInsConstant.RestrictionEq\r\n }\r\n arrCrit.push(critObj);\r\n }\r\n }\r\n\r\n }\r\n if (addCrit.length != 0 || addCrit != null ) {\r\n for (var i = 0; i < addCrit.length; i++) {\r\n arrCrit.push(addCrit[i]);\r\n }\r\n }\r\n else if (this.searchInput.addCritInput != null || this.searchInput.addCritInput != undefined) {\r\n for (var i = 0; i < this.searchInput.addCritInput.length; i++) {\r\n arrCrit.push(this.searchInput.addCritInput[i]);\r\n }\r\n }\r\n\r\n request.criteria = arrCrit;\r\n this.http.post(apiUrl, request).subscribe((response) => {\r\n var qryPaging = {\r\n response: response,\r\n pageNow: pageNo\r\n }\r\n console.log(qryPaging);\r\n this.result.emit(qryPaging);\r\n return response;\r\n });\r\n }\r\n\r\n lessThanFour(): boolean {\r\n if (this.countForm > 3) {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n resolveObject(obj: any, url: string, crit: RequestCriteriaObj = null) {\r\n const val = this.postJSON(url, crit);\r\n val.subscribe(tempData => {\r\n obj.itemsUrl = tempData.returnObject;\r\n });\r\n }\r\n\r\n transformAmount(element: any) {\r\n this.formattedAmount = parseFloat(element.target.value).toLocaleString('en');\r\n // Remove or comment this line if you dont want\r\n // to show the formatted amount in the textbox.\r\n element.target.value = this.formattedAmount;\r\n }\r\n\r\n transformToDecimal(element: any) {\r\n element.target.value = parseFloat(element.target.value.toString().replace(/,/g, ''));\r\n }\r\n\r\n exportAsXLSX(): void {\r\n var request = new RequestCriteriaObj();\r\n request.pageNo = 1;\r\n request.rowPerPage = 9999;\r\n request.orderBy = null;\r\n request.criteria = [];\r\n\r\n this.http.post(this.apiUrl, request).subscribe(\r\n response => {\r\n this.ExcelData = response[\"returnObject\"][\"data\"];\r\n this.excelService.exportAsExcelFile(this.ExcelData, 'sample');\r\n console.log(response);\r\n },\r\n (error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n onChangeEvent(optValue, afFilter) {\r\n var jsonComp = this.configuration.component;\r\n\r\n for (var i = 0; i < afFilter.affectedFilter.length; i++) {\r\n for (var j = 0; j < jsonComp.length; j++) {\r\n if (jsonComp[j].name == afFilter.affectedFilter[i]) {\r\n var request = new RequestCriteriaObj();\r\n var arrayCrit = new Array();\r\n\r\n if (optValue != \"All\") {\r\n var critObj = new CriteriaObj();\r\n critObj.DataType = afFilter.datatype;\r\n critObj.propName = afFilter.name;\r\n critObj.value = optValue;\r\n critObj.restriction = AdInsConstant.RestrictionEq;\r\n arrayCrit.push(critObj);\r\n }\r\n request.criteria = arrayCrit;\r\n this.resolveObject(jsonComp[j], jsonComp[j].url, request);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { UCSearchComponent } from './ucsearch.component';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n declarations: [UCSearchComponent],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [UCSearchComponent]\r\n})\r\nexport class UCSearchModule { }\r\n"]}
1
+ {"version":3,"sources":["ng://ucsearch/lib/ucsearch.service.ts","ng://ucsearch/lib/model/CriteriaObj.Model.ts","ng://ucsearch/lib/model/RequestCriteriaObj.model.ts","ng://ucsearch/lib/model/AdInstConstant.ts","ng://ucsearch/lib/services/excel-service/excel-service.ts","ng://ucsearch/lib/ucsearch.component.ts","ng://ucsearch/lib/ucsearch.module.ts"],"names":["UCSearchService","Injectable","args","providedIn","CriteriaObj","this","low","high","DataType","RequestCriteriaObj","includeCount","includeData","isLoading","queryString","AdInsConstant","RestrictionLike","RestrictionEq","showData","TimeoutSession","GetListProduct","Login","LoginToken","Logout","GetListOffice","GetProvince","GetCityByProvince","getProspectByProspectNo","submitNCProspect","addCustPersonal","FormDefault","GetBusinessDt","AddGeneralSetting","EditGeneralSetting","GetGeneralSettingPaging","GetGeneralSettingById","GetGeneralSettingValue","GetRefOfficeObj","GetRefOfficeActiveAndNonVirtualKeyValue","GetAllRefOffice","GetListUpperHierarchyRefOfficeByRefOrgId","AddRefOffice","EditRefOffice","DeleteRefOffice","GetAllListArea","GetRefOfficeAreaPaging","GetRefArea","AddRefOfficeArea","EditRefOfficeArea","DeleteRefOfficeArea","CheckDuplAreaCode","GetRefOrg","EditRefOrgWithOldParentId","DeleteRefOrg","GetListAllRefOrg","AddRefOrg","GetRefOrgPaging","GetAllRefBizUnit","GetOrgJobTitleByMdlStruc","GetRefBizUnitByOffice","GetAllOrgMdl","GetAllActiveOrgMdlByRefOrgId","GetOrgMdlPaging","DeleteOrgMdl","EditOrgMdl","AddOrgMdl","GetOrgMdl","GetOrgMdlByOrgMdlId","GetAllRefBizUnitKeyValuePair","DeleteOrgMdlStruc","AddOrgMdlStruc","EditOrgMdlStruc","GetOrgMdlStruc","GetOrgMdlStrucPaging","GetOrgMdlStrucById","GetRefJobTitle","AddRefJobTitle","EditRefJobTitle","DeleteRefJobTitle","GetJobPositionLvl","GetRefJobTitleById","GetOrgJobTitlePaging","AddOrgJobTitle","EditOrgJobTitle","DeleteOrgJobTitle","GetOrgJobTitleByOrgJobTitleId","GetBankPaging","GetBank","EditRefBank","AddRefBank","DeleteRefBank","GetBankByBankCode","GetListEmployee","GetRefEmployeeById","AddRefEmp","EditRefEmp","DeleteRefEmployee","AddEmpBankAcc","GetEmpBankAccByRefEmpId","AddRefEmpAndEmpBankAcc","EditRefEmpAndEmpBankAcc","DeleteRefEmpAndEmpBankAcc","GetListEmployeebyRefEmpId","GetEmpListByOfficeIdAndIsActive","GetEmpPositionPaging","GetEmpByEmpPositionId","AddEmpPosition","EditEmpPosition","DeleteEmpPosition","GetListUserEmployee","GetRefUserPaging","AddRefUser","EditRefUser","ChangePassword","GetRefUser","GetUserByUsername","ValidatePwd","GetCountRefUserByRefEmpId","ResetPassword","GetRefRolePaging","AddRefRole","EditRefRole","DeleteRefRole","GetRefRoleByRefRoleId","GetRefRole","GetListDataCurrentUser","GetRefRoleByEmpPositionId","EditUserTitleRole","AddUserTitleRole","AssignRoleToUsers","GetUserTitleRoleByEmpPositionIdAndRefRoleId","GetRefZipcodePaging","GetRefZipCode","GetRefProvDistrictObj","EditRefZipcode","AddRefZipcode","DeleteRefZipcode","GetBusinessUnitPaging","GetRefBizUnit","AddRefBizUnit","EditRefBizUnit","GetRefCoyPaging","GetRefCoy","EditRefCoy","GetCoyBodPaging","AddCoyBod","EditCoyBod","DeleteCoyBod","GetCoyBod","GetCommissionerPaging","AddCoyCommissioner","EditCoyCommissioner","DeleteCoyCommissioner","GetCoyCommissioner","GetAllActiveRefTaxOffice","GetRefMasterList","GetRefMastersByCriteria","GetRefMaster","GetRefMasterListByTypeCode","GetRefMasterListKeyValuePair","AddRefMaster","EditRefMaster","GetRefMasterType","DeleteRefMaster","GetRefMasterPaging","GetRefProvDistrictPaging","GetRefFormPaging","GetAllActiveRefFormByRefRoleId","GetRefFormByRefFormId","EditRefForm","AddRefForm","DeleteRefForm","AssignRoleToForms","GetAllAuthFormsByRefRoleId","GetAuthByRefFormIdAndRefRoleId","UpdateFormFeatureAuthForm","GetListRefFeature","GetRefFeatureByComponent","GetAllActiveHolidaySchmH","GetHolidayPaging","AddHolidaySchmH","AddHolidaySchmD","AddHolidaySchmDUntilYear","GetHolidaySchmH","EditHolidaySchmHOnly","DeleteHolidaySchmH","DeleteHolidaySchmD","GetHolidayDetailPaging","SelectRole","NotificationPost","GetRefCurrPaging","AddRefCurr","EditRefCurr","GetRefCurr","AddExchangeRate","EditExchangeRate","GetExchangeRate","GetListOfWorkingHourSchm","GetWorkHourSchmHPaging","AddWorkingHourSchmH","EditWorkingHourSchmH","GetWorkingHourSchmH","GetWorkingHourSchmD","DeleteWorkingHourSchmH","ExcelService","prototype","exportAsExcelFile","json","excelFileName","worksheet","XLSX.utils","json_to_sheet","console","log","workbook","Sheets","data","SheetNames","excelBuffer","XLSX.write","bookType","type","saveAsExcelFile","buffer","fileName","Blob","FileSaver.saveAs","Date","getTime","UCSearchComponent","hide","obj","target","event","srcElement","changeState","currentState","isHidden","ngOnInit","apiUrl","searchInput","enviromentUrl","apiQryPaging","arrCrit","arrCritObj","js","_renderer2","createElement","text","appendChild","_document","body","initiateForm","_this","getJSON","_url","subscribe","configuration","urlGet","url","exportData","exportExcel","countForm","component","length","isDataLoaded","i","isFromURL","request","arrayCrit","Array","criteriaObject","propName","criteriaPropName","value","criteriaPropValue","restriction","push","criteria","resolveObject","parseFloat","toLocaleString","includes","businessDate","JSON","parse","localStorage","getItem","BusinessDate","operator","charAt","dateShow","tempMinus","split","numDay","parseInt","setDate","getDate","dateText","formatDate","http","get","postJSON","post","searchClick","orderByKey","orderByValue","pageNow","search","pageSize","reset","pageNo","rowPerPage","orderBy","addCrit","querystring","critObj","myForm","nativeElement","getAttribute","nodeName","ddl","options","selectedIndex","name","replace","addCritInput","undefined","response","qryPaging","result","emit","lessThanFour","crit","tempData","itemsUrl","returnObject","transformAmount","element","formattedAmount","transformToDecimal","toString","exportAsXLSX","ExcelData","excelService","error","onChangeEvent","optValue","afFilter","jsonComp","affectedFilter","j","datatype","Component","selector","template","providers","animations","trigger","state","style","height","opacity","overflow","transition","animate","HttpClient","Renderer2","Inject","DOCUMENT","ViewChild","Input","Output","EventEmitter","payLoad","amount","UCSearchModule","NgModule","declarations","imports","CommonModule","exports"],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UCSearchService {\r\n\r\n constructor() { }\r\n}\r\n","export class CriteriaObj{\r\n propName:string;\r\n restriction:string;\r\n value:string;\r\n low:number;\r\n high:number;\r\n DataType:string;\r\n\r\n constructor()\r\n {\r\n this.low=0;\r\n this.high=0;\r\n this.DataType='Text';\r\n }\r\n\r\n}","import { CriteriaObj } from \"../model/CriteriaObj.model\";\r\n\r\nexport class RequestCriteriaObj{\r\n includeCount:boolean;\r\n includeData:boolean;\r\n pageNo:number;\r\n rowPerPage:number;\r\n orderBy:any;\r\n criteria:CriteriaObj[];\r\n isLoading : boolean;\r\n queryString: any;\r\n\r\n constructor()\r\n {\r\n this.includeCount=true;\r\n this.includeData=true;\r\n this.isLoading = true;\r\n this.queryString = '';\r\n }\r\n}","import { formatDate } from \"@angular/common\";\r\n\r\nexport class AdInsConstant {\r\n public static RestrictionLike = \"Like\";\r\n public static RestrictionEq = \"Eq\";\r\n public static showData = \"10,50,100\";\r\n public static TimeoutSession = 6000000;\r\n public static GetListProduct = \"http://creator_websvr:7272/NEW_FINANCING/api/Catalog/getPopularViewByCriteria\";\r\n public static Login = \"/UserManagement/HTML5Login\";\r\n public static LoginToken = \"/UserManagement/HTML6Login\";\r\n public static Logout = \"/UserManagement/LogOut\"\r\n public static GetListOffice = \"/RefOffice/GetRefOfficePaging\";\r\n public static GetProvince = \"/los/v1/get_provinsi\";\r\n public static GetCityByProvince = \"/los/v1/get_kota\";\r\n public static getProspectByProspectNo = \"/api/MobileProspectTask/GetProspectByProspectNo\";\r\n public static submitNCProspect = \"/api/MobileProspectTask/submitNCProspect\";\r\n public static addCustPersonal = \"\";\r\n public static FormDefault = \"dashboard/dash-board\";\r\n\r\n //GENERAL SETTING\r\n public static GetBusinessDt = \"/GeneralSetting/GetBusinessDate\";\r\n public static AddGeneralSetting = \"/GeneralSetting/AddGeneralSetting\";\r\n public static EditGeneralSetting = \"/GeneralSetting/EditGeneralSetting\";\r\n public static GetGeneralSettingPaging = \"/GeneralSetting/GetGeneralSettingPaging\";\r\n public static GetGeneralSettingById = \"/GeneralSetting/GetGeneralSettingById\";\r\n public static GetGeneralSettingValue = \"/GeneralSetting/GetGeneralSettingValue\";\r\n\r\n\r\n //REF OFFICE\r\n public static GetRefOfficeObj = \"/RefOffice/GetRefOfficeObj\";\r\n public static GetRefOfficeActiveAndNonVirtualKeyValue = \"/RefOffice/GetRefOfficeActiveAndNonVirtualKeyValue\";\r\n public static GetAllRefOffice = \"/RefOffice/GetAllRefOffice\";\r\n public static GetListUpperHierarchyRefOfficeByRefOrgId = \"/RefOffice/GetListUpperHierarchyRefOfficeByRefOrgId\";\r\n public static AddRefOffice = \"/RefOffice/AddRefOffice\";\r\n public static EditRefOffice = \"/RefOffice/EditRefOffice\";\r\n public static DeleteRefOffice = \"/RefOffice/DeleteRefOffice\";\r\n\r\n //REF OFFICE AREA\r\n public static GetAllListArea = \"/RefOfficeArea/GetAllListArea\";\r\n public static GetRefOfficeAreaPaging = \"/RefOfficeArea/GetRefOfficeAreaPaging\";\r\n public static GetRefArea = \"/RefOfficeArea/GetRefArea\";\r\n public static AddRefOfficeArea = \"/RefOfficeArea/AddRefOfficeArea\";\r\n public static EditRefOfficeArea = \"/RefOfficeArea/EditRefOfficeArea\";\r\n public static DeleteRefOfficeArea = \"/RefOfficeArea/DeleteRefOfficeArea\";\r\n public static CheckDuplAreaCode = \"/RefOfficeArea/CheckDuplAreaCode\";\r\n\r\n //ORGANIZATION\r\n public static GetRefOrg = \"/OrganizationDefinition/GetRefOrg\";\r\n public static EditRefOrgWithOldParentId = \"/OrganizationDefinition/EditRefOrgWithOldParentId\";\r\n public static DeleteRefOrg = \"/OrganizationDefinition/DeleteRefOrg\";\r\n public static GetListAllRefOrg = \"/OrganizationDefinition/GetListAllRefOrg\";\r\n public static AddRefOrg = \"/OrganizationDefinition/AddRefOrg\";\r\n public static GetRefOrgPaging = \"/OrganizationDefinition/GetRefOrgPaging\";\r\n public static GetAllRefBizUnit = \"/OrganizationDefinition/GetAllRefBizUnit\";\r\n public static GetOrgJobTitleByMdlStruc = \"/OrganizationDefinition/GetOrgJobTitleByMdlStruc\";\r\n public static GetRefBizUnitByOffice = \"/OrganizationDefinition/GetRefBizUnitByOffice\";\r\n public static GetAllOrgMdl = \"/OrganizationDefinition/GetAllOrgMdl\";\r\n public static GetAllActiveOrgMdlByRefOrgId = \"/OrganizationDefinition/GetAllActiveOrgMdlByRefOrgId\";\r\n public static GetOrgMdlPaging = \"/OrganizationDefinition/GetOrgMdlPaging\";\r\n public static DeleteOrgMdl = \"/OrganizationDefinition/DeleteOrgMdl\";\r\n public static EditOrgMdl = \"/OrganizationDefinition/EditOrgMdl\";\r\n public static AddOrgMdl = \"/OrganizationDefinition/AddOrgMdl\";\r\n public static GetOrgMdl = \"/OrganizationDefinition/GetOrgMdl\";\r\n public static GetOrgMdlByOrgMdlId = \"/OrganizationDefinition/GetOrgMdlByOrgMdlId\";\r\n public static GetAllRefBizUnitKeyValuePair = \"/OrganizationDefinition/GetAllRefBizUnitKeyValuePair\";\r\n public static DeleteOrgMdlStruc = \"/OrganizationDefinition/DeleteOrgMdlStruc\";\r\n public static AddOrgMdlStruc = \"/OrganizationDefinition/AddOrgMdlStruc\";\r\n public static EditOrgMdlStruc = \"/OrganizationDefinition/EditOrgMdlStruc\";\r\n public static GetOrgMdlStruc = \"/OrganizationDefinition/GetOrgMdlStruc\";\r\n public static GetOrgMdlStrucPaging = \"/OrganizationDefinition/GetOrgMdlStrucPaging\";\r\n public static GetOrgMdlStrucById = \"/OrganizationDefinition/GetOrgMdlStrucById\";\r\n\r\n //REF-JOB-TITLE\r\n public static GetRefJobTitle = \"/OrganizationDefinition/GetRefJobTitlePaging\";\r\n public static AddRefJobTitle = \"/OrganizationDefinition/AddRefJobTitle\";\r\n public static EditRefJobTitle = \"/OrganizationDefinition/EditRefJobTitle\";\r\n public static DeleteRefJobTitle = \"/OrganizationDefinition/DeleteRefJobTitle\";\r\n public static GetJobPositionLvl = \"/OrganizationDefinition/GetJobPositionLvl\";\r\n public static GetRefJobTitleById = \"/OrganizationDefinition/GetRefJobTitleByRefJobTitleId\";\r\n\r\n //ORG JOB TITLE\r\n public static GetOrgJobTitlePaging = \"/OrganizationDefinition/GetOrgJobTitlePaging\";\r\n public static AddOrgJobTitle = \"/OrganizationDefinition/AddOrgJobTitle\";\r\n public static EditOrgJobTitle = \"/OrganizationDefinition/EditOrgJobTitle\";\r\n public static DeleteOrgJobTitle = \"/OrganizationDefinition/DeleteOrgJobTitle\";\r\n public static GetOrgJobTitleByOrgJobTitleId = \"/OrganizationDefinition/GetOrgJobTitleByOrgJobTitleId\";\r\n\r\n //REF-BANK\r\n public static GetBankPaging = \"/RefBank/GetRefBankPaging\";\r\n public static GetBank = \"/RefBank/GetBank\";\r\n public static EditRefBank = \"/RefBank/EditRefBank\";\r\n public static AddRefBank = \"/RefBank/AddRefBank\";\r\n public static DeleteRefBank = \"/RefBank/DeleteRefBank\";\r\n public static GetBankByBankCode = \"/RefBank/GetBankByBankCode\";\r\n\r\n //REF-EMP\r\n public static GetListEmployee = \"/RefEmp/GetRefEmpPaging\";\r\n public static GetRefEmployeeById = \"/RefEmp/GetEmp\"\r\n public static AddRefEmp = \"/RefEmp/AddRefEmp\";\r\n public static EditRefEmp = \"/RefEmp/EditRefEmp\";\r\n public static DeleteRefEmployee = \"/RefEmp/DeleteRefEmp\";\r\n public static AddEmpBankAcc = \"/EmpBankAcc/AddEmpBankAcc\";\r\n public static GetEmpBankAccByRefEmpId = \"/EmpBankAcc/GetEmpBankAccByRefEmpId\";\r\n public static AddRefEmpAndEmpBankAcc = \"/RefEmp/AddRefEmpAndEmpBankAcc\";\r\n public static EditRefEmpAndEmpBankAcc = \"/RefEmp/EditRefEmpAndEmpBankAcc\";\r\n public static DeleteRefEmpAndEmpBankAcc = \"/RefEmp/DeleteRefEmpAndEmpBankAcc\";\r\n public static GetListEmployeebyRefEmpId = \"/EmpPosition/GetListEmployeebyRefEmpId\";\r\n public static GetEmpListByOfficeIdAndIsActive = \"/RefEmp/GetEmpListByOfficeIdAndIsActive\";\r\n\r\n //EMP_POSITION\r\n public static GetEmpPositionPaging = \"/EmpPosition/GetEmpPositionPaging\";\r\n public static GetEmpByEmpPositionId = \"/EmpPosition/GetEmpByEmpPositionId\";\r\n public static AddEmpPosition = \"/EmpPosition/AddEmpPosition\";\r\n public static EditEmpPosition = \"/EmpPosition/EditEmpPosition\";\r\n public static DeleteEmpPosition = \"/EmpPosition/DeleteEmpPosition\";\r\n public static GetListUserEmployee = \"/EmpPosition/GetListUserEmployee\";\r\n\r\n //REF-USER\r\n public static GetRefUserPaging = \"/UserManagement/GetRefUserPaging\";\r\n public static AddRefUser = \"/UserManagement/AddRefUser\";\r\n public static EditRefUser = \"/UserManagement/EditRefUser\";\r\n public static ChangePassword = \"/UserManagement/ChangePassword\";\r\n public static GetRefUser = \"/UserManagement/GetRefUser\";\r\n public static GetUserByUsername = \"/UserManagement/GetUserByUsername\";\r\n public static ValidatePwd = \"/UserManagement/ValidatePwd\";\r\n public static GetCountRefUserByRefEmpId = \"/UserManagement/GetCountRefUserByRefEmpId\";\r\n public static ResetPassword = \"/UserManagement/ResetPassword\";\r\n\r\n //REF-ROLE\r\n public static GetRefRolePaging = \"/UserManagement/GetRefRolePaging\";\r\n public static AddRefRole = \"/UserManagement/AddRefRole\";\r\n public static EditRefRole = \"/UserManagement/EditRefRole\";\r\n public static DeleteRefRole = \"/UserManagement/DeleteRefRole\";\r\n public static GetRefRoleByRefRoleId = \"/RefRole/GetRefRoleByRefRoleId\";\r\n public static GetRefRole = \"/RefRole/GetRefRole\";\r\n public static GetListDataCurrentUser = \"/UserManagement/GetListDataCurrentUser\";\r\n public static GetRefRoleByEmpPositionId = \"/RefRole/GetRefRoleByEmpPositionId\";\r\n public static EditUserTitleRole = \"/UserManagement/EditUserTitleRole\";\r\n public static AddUserTitleRole = \"/UserManagement/AddUserTitleRole\";\r\n public static AssignRoleToUsers = \"/UserManagement/AssignRoleToUsers\";\r\n public static GetUserTitleRoleByEmpPositionIdAndRefRoleId = \"/UserManagement/GetUserTitleRoleByEmpPositionIdAndRefRoleId\";\r\n\r\n //ZIPCODE\r\n public static GetRefZipcodePaging = \"/RefZipcode/GetRefZipcodePaging\";\r\n public static GetRefZipCode = \"/RefZipcode/GetRefZipcode\";\r\n public static GetRefProvDistrictObj = \"/RefProvDistrict/GetRefProvDistrict\";\r\n public static EditRefZipcode = \"/RefZipcode/EditRefZipCode\";\r\n public static AddRefZipcode = \"/RefZipcode/AddRefZipCode\";\r\n public static DeleteRefZipcode = \"/RefZipcode/DeleteRefZipCode\"\r\n\r\n //BUSINESS UNIT\r\n public static GetBusinessUnitPaging = \"/OrganizationDefinition/GetRefBizUnitPaging\";\r\n public static GetRefBizUnit = \"/OrganizationDefinition/GetRefBizUnit\";\r\n public static AddRefBizUnit = \"/OrganizationDefinition/AddRefBizUnit\";\r\n public static EditRefBizUnit = \"/OrganizationDefinition/EditRefBizUnit\";\r\n\r\n //REF COY\r\n public static GetRefCoyPaging = \"/RefCoy/GetRefCoyPaging\";\r\n public static GetRefCoy = \"/RefCoy/GetRefCoy\";\r\n public static EditRefCoy = \"/RefCoy/EditRefCoy\";\r\n public static GetCoyBodPaging = \"/CoyBod/GetCoyBodPaging\";\r\n public static AddCoyBod = \"/CoyBod/AddCoyBOD\";\r\n public static EditCoyBod = \"/CoyBod/EditCoyBOD\";\r\n public static DeleteCoyBod = \"/CoyBod/DeleteCoyBOD\";\r\n public static GetCoyBod = \"/CoyBod/GetCoyBod\";\r\n public static GetCommissionerPaging = \"/CoyCommissioner/GetCoyCommissionerPaging\";\r\n public static AddCoyCommissioner = \"/CoyCommissioner/AddCoyCommissioner\";\r\n public static EditCoyCommissioner = \"/CoyCommissioner/EditCoyCommissioner\";\r\n public static DeleteCoyCommissioner = \"/CoyCommissioner/DeleteCoyCommissioner\";\r\n public static GetCoyCommissioner = \"/CoyCommissioner/GetCoyCommissioner\";\r\n\r\n //REF TAX OFFICE\r\n public static GetAllActiveRefTaxOffice = \"/RefTaxOffice/GetAllActiveRefTaxOffice\";\r\n\r\n //REF MASTER\r\n public static GetRefMasterList = \"/RefMaster/GetRefMasterList\";\r\n public static GetRefMastersByCriteria = \"/RefMaster/GetRefMastersByCriteria\";\r\n public static GetRefMaster = \"/RefMaster/GetRefMaster\";\r\n public static GetRefMasterListByTypeCode = \"/RefMaster/GetRefMasterListByTypeCode\";\r\n public static GetRefMasterListKeyValuePair = \"/RefMaster/GetRefMasterListKeyValuePair\";\r\n public static AddRefMaster = \"/RefMaster/AddRefMaster\";\r\n public static EditRefMaster = \"/RefMaster/EditRefMaster\";\r\n public static GetRefMasterType = \"/RefMaster/GetRefMasterType\";\r\n public static DeleteRefMaster = \"/RefMaster/DeleteRefMaster\";\r\n public static GetRefMasterPaging = \"/RefMaster/GetRefMasterPaging\";\r\n\r\n //REF PROV DISTRICT\r\n public static GetRefProvDistrictPaging = \"/RefProvDistrict/GetRefProvDistrictPaging\";\r\n\r\n //MENU\r\n public static GetRefFormPaging = \"/MenuManagement/GetRefFormPaging\";\r\n public static GetAllActiveRefFormByRefRoleId = \"/MenuManagement/GetAllActiveRefFormByRefRoleId\";\r\n public static GetRefFormByRefFormId = \"/MenuManagement/GetRefFormByRefFormId\";\r\n public static EditRefForm = \"/MenuManagement/EditRefForm\";\r\n public static AddRefForm = \"/MenuManagement/AddRefForm\";\r\n public static DeleteRefForm = \"/MenuManagement/DeleteRefForm\";\r\n public static AssignRoleToForms = \"/MenuManagement/AssignRoleToForms\";\r\n public static GetAllAuthFormsByRefRoleId = \"/MenuManagement/GetAllAuthFormsByRefRoleId\";\r\n public static GetAuthByRefFormIdAndRefRoleId = \"/MenuManagement/GetAuthByRefFormIdAndRefRoleId\";\r\n public static UpdateFormFeatureAuthForm = \"/MenuManagement/UpdateFormFeatureAuthForm\";\r\n\r\n //FORM FEATURE\r\n public static GetListRefFeature = \"/RefFeature/GetListRefFeature\";\r\n public static GetRefFeatureByComponent = \"/RefFeature/GetRefFeatureByComponent\";\r\n\r\n //HOLIDAY\r\n public static GetAllActiveHolidaySchmH = \"/Holiday/GetAllActiveHolidaySchmH\";\r\n public static GetHolidayPaging = \"/Holiday/GetHolidayPaging\";\r\n public static AddHolidaySchmH = \"/Holiday/AddHolidaySchmH\";\r\n public static AddHolidaySchmD = \"/Holiday/AddHolidaySchmD\";\r\n public static AddHolidaySchmDUntilYear = \"/Holiday/AddHolidaySchmDUntilYear\";\r\n public static GetHolidaySchmH = \"/Holiday/GetHolidaySchmH\";\r\n public static EditHolidaySchmHOnly = \"/Holiday/EditHolidaySchmHOnly\";\r\n public static DeleteHolidaySchmH = \"/Holiday/DeleteHolidaySchmH\";\r\n public static DeleteHolidaySchmD = \"/Holiday/DeleteHolidaySchmD\";\r\n public static GetHolidayDetailPaging = \"/Holiday/GetHolidayDetailPaging\";\r\n\r\n //USER SESSION LOG\r\n public static SelectRole = \"/UserSessionLog/SelectRole\";\r\n\r\n //NOTIFICATION\r\n public static NotificationPost = \"/Message/Post\";\r\n\r\n //REF CURR\r\n public static GetRefCurrPaging = \"/RefCurr/GetRefCurrPaging\";\r\n public static AddRefCurr = \"/RefCurr/AddRefCurr\";\r\n public static EditRefCurr = \"/RefCurr/EditRefCurr\";\r\n public static GetRefCurr = \"/RefCurr/GetRefCurr\";\r\n public static AddExchangeRate = \"/RefCurr/AddExchangeRate\";\r\n public static EditExchangeRate = \"/RefCurr/EditExchangeRate\";\r\n public static GetExchangeRate = \"/RefCurr/GetExchangeRate\";\r\n\r\n //WORKHOUR\r\n public static GetListOfWorkingHourSchm = \"/WorkHour/GetListOfWorkingHourSchm\";\r\n public static GetWorkHourSchmHPaging = \"/WorkHour/GetWorkHourSchmHPaging\";\r\n public static AddWorkingHourSchmH = \"/WorkHour/AddWorkingHourSchmH\";\r\n public static EditWorkingHourSchmH = \"/WorkHour/EditWorkingHourSchmH\";\r\n public static GetWorkingHourSchmH = \"/WorkHour/GetWorkingHourSchmH\";\r\n public static GetWorkingHourSchmD = \"/WorkHour/GetWorkingHourSchmD\";\r\n public static DeleteWorkingHourSchmH = \"/WorkHour/DeleteWorkingHourSchmH\";\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as FileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n\r\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\nconst EXCEL_EXTENSION = '.xlsx';\r\n\r\n@Injectable()\r\nexport class ExcelService {\r\n\r\n constructor() { }\r\n\r\n public exportAsExcelFile(json: any[], excelFileName: string): void {\r\n \r\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\r\n console.log('worksheet',worksheet);\r\n const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\r\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n //const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'buffer' });\r\n this.saveAsExcelFile(excelBuffer, excelFileName);\r\n }\r\n\r\n private saveAsExcelFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION);\r\n }\r\n\r\n}","import { Component, OnInit, Input, ViewChild, ElementRef, Inject, Renderer2, EventEmitter, Output, ViewEncapsulation } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { formatDate } from '@angular/common';\r\nimport { CriteriaObj } from './model/CriteriaObj.Model';\r\nimport { RequestCriteriaObj } from './model/RequestCriteriaObj.model';\r\nimport { AdInsConstant } from './model/AdInstConstant';\r\nimport { DOCUMENT } from '@angular/platform-browser';\r\nimport { ExcelService } from './services/excel-service/excel-service';\r\nimport { trigger, transition, style, animate, state } from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'lib-UCSearch',\r\n templateUrl: './ucsearch.component.html',\r\n styles: [],\r\n providers: [ExcelService],\r\n animations: [\r\n trigger('changeDivSize', [\r\n state('initial', style({\r\n height: '*',\r\n opacity: '1',\r\n })),\r\n state('final', style({\r\n height: '0px',\r\n opacity: '0',\r\n overflow: 'hidden',\r\n })),\r\n transition('initial=>final', animate('300ms')),\r\n transition('final=>initial', animate('300ms'))\r\n ]),\r\n ]\r\n})\r\nexport class UCSearchComponent implements OnInit {\r\n\r\n @ViewChild('formIdSearch') myForm: ElementRef;\r\n @Input() searchInput: any;\r\n @Output() result: EventEmitter<any> = new EventEmitter();\r\n pageSize: any = 10;\r\n pageNow: any = 1;\r\n orderByKey: any;\r\n orderByValue: any;\r\n tempUrl: string;\r\n urlGet: string;\r\n server: any;\r\n configuration: any;\r\n itemUrl: any;\r\n exportData: any;\r\n ExcelData: any;\r\n isDataLoaded: boolean = false;\r\n isHidden: boolean = false;\r\n\r\n currentState = 'initial';\r\n\r\n form: FormGroup;\r\n payLoad = '';\r\n countForm = 0;\r\n formattedAmount = '';\r\n amount = 0;\r\n apiUrl: string;\r\n arrCrit: any;\r\n constructor(private http: HttpClient, private excelService: ExcelService, private _renderer2: Renderer2, @Inject(DOCUMENT) private _document) {\r\n }\r\n\r\n hide(obj:any){\r\n console.log(obj);\r\n var target =event.srcElement;\r\n console.log(target);\r\n // var idAttr = target.attributes.id;\r\n // var value = idAttr.nodeValue;\r\n\r\n }\r\n\r\n changeState() {\r\n this.currentState = this.currentState === 'initial' ? 'final' : 'initial';\r\n this.isHidden = this.isHidden === false ? true : false;\r\n console.log(this.currentState);\r\n }\r\n\r\n ngOnInit() {\r\n this.apiUrl = this.searchInput.enviromentUrl + this.searchInput.apiQryPaging;\r\n this.arrCrit = this.searchInput.arrCritObj;\r\n let js = this._renderer2.createElement('script');\r\n js.text = `\r\n $(document).ready(function(){\r\n $(\"#flip\").click(function(){\r\n $(\"#panel\").slideToggle(\"slow\");\r\n });\r\n });\r\n `;\r\n this._renderer2.appendChild(this._document.body, js);\r\n this.initiateForm();\r\n }\r\n\r\n initiateForm() {\r\n this.getJSON(this.searchInput._url).subscribe(data => {\r\n console.log(data);\r\n this.configuration = data;\r\n this.urlGet = data.url;\r\n this.exportData = data.exportExcel;\r\n this.countForm = data.component.length;\r\n this.isDataLoaded = true;\r\n\r\n for (var i = 0; i < this.countForm; i++) {\r\n\r\n //ini kalau datanya di load dari URL\r\n if (data.component[i].isFromURL == true) {\r\n var request = new RequestCriteriaObj();\r\n var arrayCrit = new Array();\r\n var criteriaObject = new CriteriaObj();\r\n criteriaObject.DataType = \"text\";\r\n criteriaObject.propName = data.component[i].criteriaPropName;\r\n criteriaObject.value = data.component[i].criteriaPropValue;\r\n criteriaObject.restriction = \"eq\";\r\n arrayCrit.push(criteriaObject);\r\n request.criteria = arrayCrit;\r\n \r\n \r\n //lempar objectnya sekalian sama urlnya, nnti di bind di dalem karena masalah di asyncnya\r\n //biar tiap function ada state2nya sendiri\r\n this.resolveObject(data.component[i], data.component[i].url, request);\r\n }\r\n\r\n if (data.component[i].type == \"numeric\") {\r\n data.component[i].value = parseFloat(data.component[i].value).toLocaleString('en');\r\n }\r\n\r\n //pengecekan tanggal\r\n if (data.component[i].type == \"datepicker\") {\r\n if (data.component[i].value.includes(\"BD\")) {\r\n let businessDate = new Date(JSON.parse(localStorage.getItem(\"UserContext\")).BusinessDate);\r\n var operator = data.component[i].value.charAt(2);\r\n var dateShow = new Date();\r\n if (operator == \"-\") {\r\n var tempMinus = data.component[i].value.split(\"-\", 2);\r\n var numDay = parseInt(tempMinus[1]);\r\n dateShow.setDate(businessDate.getDate() - numDay);\r\n }\r\n else if (operator == \"+\") {\r\n var tempMinus = data.component[i].value.split(\"+\", 2);\r\n var numDay = parseInt(tempMinus[1]);\r\n dateShow.setDate(businessDate.getDate() + numDay);\r\n }\r\n var dateText = formatDate(dateShow, 'yyyy-MM-dd', 'en-US')\r\n data.component[i].value = dateText;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n public getJSON(url: string): Observable<any> {\r\n return this.http.get(url);\r\n }\r\n\r\n public postJSON(url: string, criteria: any = null): Observable<any> {\r\n return this.http.post(url, criteria);\r\n }\r\n\r\n searchClick() {\r\n this.orderByKey = null\r\n this.orderByValue = true\r\n this.pageNow = 1;\r\n this.search(this.apiUrl, this.pageNow, this.pageSize, null, this.arrCrit);\r\n }\r\n\r\n reset() {\r\n this.initiateForm();\r\n }\r\n\r\n search(apiUrl: string, pageNo: number, rowPerPage: number, orderBy: any, addCrit: CriteriaObj[] = new Array()) {\r\n var request = new RequestCriteriaObj();\r\n var arrCrit = new Array();\r\n\r\n request.pageNo = pageNo;\r\n request.rowPerPage = rowPerPage;\r\n request.orderBy = orderBy;\r\n request.queryString = this.configuration.querystring;\r\n\r\n for (var i = 0; i < this.countForm; i++) {\r\n var critObj = new CriteriaObj();\r\n var component = this.myForm.nativeElement[i];\r\n critObj.DataType = component.getAttribute('data-type');\r\n console.log(component);\r\n //Ini khusus kalau dari Drop Down\r\n if (component.value != \"\") {\r\n if (component.nodeName == 'SELECT') {\r\n var ddl = component.options;\r\n var text = ddl[ddl.selectedIndex].value;\r\n if (text != \"All\") {\r\n //Kalau Dari Dropdown udah pasti pake Eq\r\n critObj.restriction = AdInsConstant.RestrictionEq;\r\n critObj.propName = component.name;\r\n critObj.value = text;\r\n arrCrit.push(critObj);\r\n }\r\n }\r\n else {\r\n //Kalau ada Percent maka yang dipake nnti adalah Restrictions Like\r\n critObj.propName = component.name;\r\n critObj.value = component.value;\r\n if (component.value.includes(\"%\")) {\r\n critObj.restriction = AdInsConstant.RestrictionLike;\r\n }\r\n //kalau componentnya Date, restrictionsnya lgsg ambil dari property JSONnya\r\n else if (component.getAttribute('data-restriction') != \"\" && component.getAttribute('data-restriction') != null) {\r\n critObj.restriction = component.getAttribute('data-restriction');\r\n if(component.getAttribute('data-type')=='numeric')\r\n {\r\n component.value = parseFloat(component.value.replace(/,/g, ''));\r\n console.log(component.value);\r\n }\r\n }\r\n else {\r\n critObj.restriction = AdInsConstant.RestrictionEq\r\n }\r\n arrCrit.push(critObj);\r\n }\r\n }\r\n\r\n }\r\n \r\n if (addCrit != null) {\r\n if (addCrit.length != 0) {\r\n for (var i = 0; i < addCrit.length; i++) {\r\n arrCrit.push(addCrit[i]);\r\n }\r\n }\r\n }\r\n else if (this.searchInput.addCritInput != null || this.searchInput.addCritInput != undefined) {\r\n for (var i = 0; i < this.searchInput.addCritInput.length; i++) {\r\n arrCrit.push(this.searchInput.addCritInput[i]);\r\n }\r\n }\r\n\r\n request.criteria = arrCrit;\r\n this.http.post(apiUrl, request).subscribe((response) => {\r\n var qryPaging = {\r\n response: response,\r\n pageNow: pageNo\r\n }\r\n console.log(qryPaging);\r\n this.result.emit(qryPaging);\r\n return response;\r\n });\r\n }\r\n\r\n lessThanFour(): boolean {\r\n if (this.countForm > 3) {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n resolveObject(obj: any, url: string, crit: RequestCriteriaObj = null) {\r\n const val = this.postJSON(url, crit);\r\n val.subscribe(tempData => {\r\n obj.itemsUrl = tempData.returnObject;\r\n });\r\n }\r\n\r\n transformAmount(element: any) {\r\n this.formattedAmount = parseFloat(element.target.value).toLocaleString('en');\r\n // Remove or comment this line if you dont want\r\n // to show the formatted amount in the textbox.\r\n element.target.value = this.formattedAmount;\r\n }\r\n\r\n transformToDecimal(element: any) {\r\n element.target.value = parseFloat(element.target.value.toString().replace(/,/g, ''));\r\n }\r\n\r\n exportAsXLSX(): void {\r\n var request = new RequestCriteriaObj();\r\n request.pageNo = 1;\r\n request.rowPerPage = 9999;\r\n request.orderBy = null;\r\n request.criteria = [];\r\n\r\n this.http.post(this.apiUrl, request).subscribe(\r\n response => {\r\n this.ExcelData = response[\"returnObject\"][\"data\"];\r\n this.excelService.exportAsExcelFile(this.ExcelData, 'sample');\r\n console.log(response);\r\n },\r\n (error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n onChangeEvent(optValue, afFilter) {\r\n var jsonComp = this.configuration.component;\r\n\r\n for (var i = 0; i < afFilter.affectedFilter.length; i++) {\r\n for (var j = 0; j < jsonComp.length; j++) {\r\n if (jsonComp[j].name == afFilter.affectedFilter[i]) {\r\n var request = new RequestCriteriaObj();\r\n var arrayCrit = new Array();\r\n\r\n if (optValue != \"All\") {\r\n var critObj = new CriteriaObj();\r\n critObj.DataType = afFilter.datatype;\r\n critObj.propName = afFilter.name;\r\n critObj.value = optValue;\r\n critObj.restriction = AdInsConstant.RestrictionEq;\r\n arrayCrit.push(critObj);\r\n }\r\n request.criteria = arrayCrit;\r\n this.resolveObject(jsonComp[j], jsonComp[j].url, request);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { UCSearchComponent } from './ucsearch.component';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n declarations: [UCSearchComponent],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [UCSearchComponent]\r\n})\r\nexport class UCSearchModule { }\r\n"]}
@@ -231,9 +231,11 @@ export class UCSearchComponent {
231
231
  }
232
232
  }
233
233
  }
234
- if (addCrit.length != 0 || addCrit != null) {
235
- for (var i = 0; i < addCrit.length; i++) {
236
- arrCrit.push(addCrit[i]);
234
+ if (addCrit != null) {
235
+ if (addCrit.length != 0) {
236
+ for (var i = 0; i < addCrit.length; i++) {
237
+ arrCrit.push(addCrit[i]);
238
+ }
237
239
  }
238
240
  }
239
241
  else if (this.searchInput.addCritInput != null || this.searchInput.addCritInput != undefined) {
@@ -463,4 +465,4 @@ if (false) {
463
465
  */
464
466
  UCSearchComponent.prototype._document;
465
467
  }
466
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWNzZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdWNzZWFyY2gvIiwic291cmNlcyI6WyJsaWIvdWNzZWFyY2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFNUksT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQXVCakYsTUFBTSxPQUFPLGlCQUFpQjs7Ozs7OztJQTRCNUIsWUFBb0IsSUFBZ0IsRUFBVSxZQUEwQixFQUFVLFVBQXFCLEVBQTRCLFNBQVM7UUFBeEgsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUE0QixjQUFTLEdBQVQsU0FBUyxDQUFBO1FBeEJsSSxXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekQsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUNuQixZQUFPLEdB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T0FBTyxDQUFDLENBQUM7d0JBQzlDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7cUJBQy9DLENBQUM7aUJBQ0g7YUFDRjs7OztZQTlCUSxVQUFVO1lBT1YsWUFBWTtZQVQ2QyxTQUFTOzRDQTZEaUMsTUFBTSxTQUFDLFFBQVE7OztxQkExQnhILFNBQVMsU0FBQyxjQUFjOzBCQUN4QixLQUFLO3FCQUNMLE1BQU07Ozs7SUFGUCxtQ0FBOEM7O0lBQzlDLHdDQUEwQjs7SUFDMUIsbUNBQXlEOztJQUN6RCxxQ0FBbUI7O0lBQ25CLG9DQUFpQjs7SUFDakIsdUNBQWdCOztJQUNoQix5Q0FBa0I7O0lBQ2xCLG9DQUFnQjs7SUFDaEIsbUNBQWU7O0lBQ2YsbUNBQVk7O0lBQ1osMENBQW1COztJQUNuQixvQ0FBYTs7SUFDYix1Q0FBZ0I7O0lBQ2hCLHNDQUFlOztJQUNmLHlDQUE4Qjs7SUFDOUIscUNBQTBCOztJQUUxQix5Q0FBeUI7O0lBRXpCLGlDQUFnQjs7SUFDaEIsb0NBQWE7O0lBQ2Isc0NBQWM7O0lBQ2QsNENBQXFCOztJQUNyQixtQ0FBVzs7SUFDWCxtQ0FBZTs7SUFDZixvQ0FBYTs7Ozs7SUFDRCxpQ0FBd0I7Ozs7O0lBQUUseUNBQWtDOzs7OztJQUFFLHVDQUE2Qjs7Ozs7SUFBRSxzQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgSW5qZWN0LCBSZW5kZXJlcjIsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENyaXRlcmlhT2JqIH0gZnJvbSAnLi9tb2RlbC9Dcml0ZXJpYU9iai5Nb2RlbCc7XHJcbmltcG9ydCB7IFJlcXVlc3RDcml0ZXJpYU9iaiB9IGZyb20gJy4vbW9kZWwvUmVxdWVzdENyaXRlcmlhT2JqLm1vZGVsJztcclxuaW1wb3J0IHsgQWRJbnNDb25zdGFudCB9IGZyb20gJy4vbW9kZWwvQWRJbnN0Q29uc3RhbnQnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBFeGNlbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2V4Y2VsLXNlcnZpY2UvZXhjZWwtc2VydmljZSc7XHJcbmltcG9ydCB7IHRyaWdnZXIsIHRyYW5zaXRpb24sIHN0eWxlLCBhbmltYXRlLCBzdGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItVUNTZWFyY2gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91Y3NlYXJjaC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVzOiBbXSxcclxuICBwcm92aWRlcnM6IFtFeGNlbFNlcnZpY2VdLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ2NoYW5nZURpdlNpemUnLCBbXHJcbiAgICAgIHN0YXRlKCdpbml0aWFsJywgc3R5bGUoe1xyXG4gICAgICAgIGhlaWdodDogJyonLFxyXG4gICAgICAgIG9wYWNpdHk6ICcxJyxcclxuICAgICAgfSkpLFxyXG4gICAgICBzdGF0ZSgnZmluYWwnLCBzdHlsZSh7XHJcbiAgICAgICAgaGVpZ2h0OiAnMHB4JyxcclxuICAgICAgICBvcGFjaXR5OiAnMCcsXHJcbiAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxyXG4gICAgICB9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ2luaXRpYWw9PmZpbmFsJywgYW5pbWF0ZSgnMzAwbXMnKSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ2ZpbmFsPT5pbml0aWFsJywgYW5pbWF0ZSgnMzAwbXMnKSlcclxuICAgIF0pLFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFVDU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZm9ybUlkU2VhcmNoJykgbXlGb3JtOiBFbGVtZW50UmVmO1xyXG4gIEBJbnB1dCgpIHNlYXJjaElucHV0OiBhbnk7XHJcbiAgQE91dHB1dCgpIHJlc3VsdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgcGFnZVNpemU6IGFueSA9IDEwO1xyXG4gIHBhZ2VOb3c6IGFueSA9IDE7XHJcbiAgb3JkZXJCeUtleTogYW55O1xyXG4gIG9yZGVyQnlWYWx1ZTogYW55O1xyXG4gIHRlbXBVcmw6IHN0cmluZztcclxuICB1cmxHZXQ6IHN0cmluZztcclxuICBzZXJ2ZXI6IGFueTtcclxuICBjb25maWd1cmF0aW9uOiBhbnk7XHJcbiAgaXRlbVVybDogYW55O1xyXG4gIGV4cG9ydERhdGE6IGFueTtcclxuICBFeGNlbERhdGE6IGFueTtcclxuICBpc0RhdGFMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0hpZGRlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjdXJyZW50U3RhdGUgPSAnaW5pdGlhbCc7XHJcblxyXG4gIGZvcm06IEZvcm1Hcm91cDtcclxuICBwYXlMb2FkID0gJyc7XHJcbiAgY291bnRGb3JtID0gMDtcclxuICBmb3JtYXR0ZWRBbW91bnQgPSAnJztcclxuICBhbW91bnQgPSAwO1xyXG4gIGFwaVVybDogc3RyaW5nO1xyXG4gIGFyckNyaXQ6IGFueTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgZXhjZWxTZXJ2aWNlOiBFeGNlbFNlcnZpY2UsIHByaXZhdGUgX3JlbmRlcmVyMjogUmVuZGVyZXIyLCBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudCkge1xyXG4gIH1cclxuXHJcbiAgaGlkZShvYmo6YW55KXtcclxuICAgIGNvbnNvbGUubG9nKG9iaik7XHJcbiAgICB2YXIgdGFyZ2V0ID1ldmVudC5zcmNFbGVtZW50O1xyXG4gICAgY29uc29sZS5sb2codGFyZ2V0KTtcclxuICAgIC8vIHZhciBpZEF0dHIgPSB0YXJnZXQuYXR0cmlidXRlcy5pZDtcclxuICAgIC8vIHZhciB2YWx1ZSA9IGlkQXR0ci5ub2RlVmFsdWU7XHJcblxyXG4gIH1cclxuXHJcbiAgY2hhbmdlU3RhdGUoKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRTdGF0ZSA9IHRoaXMuY3VycmVudFN0YXRlID09PSAnaW5pdGlhbCcgPyAnZmluYWwnIDogJ2luaXRpYWwnO1xyXG4gICAgdGhpcy5pc0hpZGRlbiA9IHRoaXMuaXNIaWRkZW4gPT09IGZhbHNlID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5jdXJyZW50U3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmFwaVVybCA9IHRoaXMuc2VhcmNoSW5wdXQuZW52aXJvbWVudFVybCArIHRoaXMuc2VhcmNoSW5wdXQuYXBpUXJ5UGFnaW5nO1xyXG4gICAgdGhpcy5hcnJDcml0ID0gdGhpcy5zZWFyY2hJbnB1dC5hcnJDcml0T2JqO1xyXG4gICAgbGV0IGpzID0gdGhpcy5fcmVuZGVyZXIyLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xyXG4gICAganMudGV4dCA9IGBcclxuICAgICAgICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgICQoXCIjZmxpcFwiKS5jbGljayhmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICAgICQoXCIjcGFuZWxcIikuc2xpZGVUb2dnbGUoXCJzbG93XCIpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIGA7XHJcbiAgICB0aGlzLl9yZW5kZXJlcjIuYXBwZW5kQ2hpbGQodGhpcy5fZG9jdW1lbnQuYm9keSwganMpO1xyXG4gICAgdGhpcy5pbml0aWF0ZUZvcm0oKTtcclxuICB9XHJcblxyXG4gIGluaXRpYXRlRm9ybSgpIHtcclxuICAgIHRoaXMuZ2V0SlNPTih0aGlzLnNlYXJjaElucHV0Ll91cmwpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgY29uc29sZS5sb2coZGF0YSk7XHJcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGRhdGE7XHJcbiAgICAgIHRoaXMudXJsR2V0ID0gZGF0YS51cmw7XHJcbiAgICAgIHRoaXMuZXhwb3J0RGF0YSA9IGRhdGEuZXhwb3J0RXhjZWw7XHJcbiAgICAgIHRoaXMuY291bnRGb3JtID0gZGF0YS5jb21wb25lbnQubGVuZ3RoO1xyXG4gICAgICB0aGlzLmlzRGF0YUxvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY291bnRGb3JtOyBpKyspIHtcclxuXHJcbiAgICAgICAgLy9pbmkga2FsYXUgZGF0YW55YSBkaSBsb2FkIGRhcmkgVVJMXHJcbiAgICAgICAgaWYgKGRhdGEuY29tcG9uZW50W2ldLmlzRnJvbVVSTCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0Q3JpdGVyaWFPYmooKTtcclxuICAgICAgICAgIHZhciBhcnJheUNyaXQgPSBuZXcgQXJyYXkoKTtcclxuICAgICAgICAgIHZhciBjcml0ZXJpYU9iamVjdCA9IG5ldyBDcml0ZXJpYU9iaigpO1xyXG4gICAgICAgICAgY3JpdGVyaWFPYmplY3QuRGF0YVR5cGUgPSBcInRleHRcIjtcclxuICAgICAgICAgIGNyaXRlcmlhT2JqZWN0LnByb3BOYW1lID0gZGF0YS5jb21wb25lbnRbaV0uY3JpdGVyaWFQcm9wTmFtZTtcclxuICAgICAgICAgIGNyaXRlcmlhT2JqZWN0LnZhbHVlID0gZGF0YS5jb21wb25lbnRbaV0uY3JpdGVyaWFQcm9wVmFsdWU7XHJcbiAgICAgICAgICBjcml0ZXJpYU9iamVjdC5yZXN0cmljdGlvbiA9IFwiZXFcIjtcclxuICAgICAgICAgIGFycmF5Q3JpdC5wdXNoKGNyaXRlcmlhT2JqZWN0KTtcclxuICAgICAgICAgIHJlcXVlc3QuY3JpdGVyaWEgPSBhcnJheUNyaXQ7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9sZW1wYXIgb2JqZWN0bnlhIHNla2FsaWFuIHNhbWEgdXJsbnlhLCBubnRpIGRpIGJpbmQgZGkgZGFsZW0ga2FyZW5hIG1hc2FsYWggZGkgYXN5bmNueWFcclxuICAgICAgICAgIC8vYmlhciB0aWFwIGZ1bmN0aW9uIGFkYSBzdGF0ZTJueWEgc2VuZGlyaVxyXG4gICAgICAgICAgdGhpcy5yZXNvbHZlT2JqZWN0KGRhdGEuY29tcG9uZW50W2ldLCBkYXRhLmNvbXBvbmVudFtpXS51cmwsIHJlcXVlc3QpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGRhdGEuY29tcG9uZW50W2ldLnR5cGUgPT0gXCJudW1lcmljXCIpIHtcclxuICAgICAgICAgIGRhdGEuY29tcG9uZW50W2ldLnZhbHVlID0gcGFyc2VGbG9hdChkYXRhLmNvbXBvbmVudFtpXS52YWx1ZSkudG9Mb2NhbGVTdHJpbmcoJ2VuJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL3BlbmdlY2VrYW4gdGFuZ2dhbFxyXG4gICAgICAgIGlmIChkYXRhLmNvbXBvbmVudFtpXS50eXBlID09IFwiZGF0ZXBpY2tlclwiKSB7XHJcbiAgICAgICAgICBpZiAoZGF0YS5jb21wb25lbnRbaV0udmFsdWUuaW5jbHVkZXMoXCJCRFwiKSkge1xyXG4gICAgICAgICAgICBsZXQgYnVzaW5lc3NEYXRlID0gbmV3IERhdGUoSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIlVzZXJDb250ZXh0XCIpKS5CdXNpbmVzc0RhdGUpO1xyXG4gICAgICAgICAgICB2YXIgb3BlcmF0b3IgPSBkYXRhLmNvbXBvbmVudFtpXS52YWx1ZS5jaGFyQXQoMik7XHJcbiAgICAgICAgICAgIHZhciBkYXRlU2hvdyA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgICAgIGlmIChvcGVyYXRvciA9PSBcIi1cIikge1xyXG4gICAgICAgICAgICAgIHZhciB0ZW1wTWludXMgPSBkYXRhLmNvbXBvbmVudFtpXS52YWx1ZS5zcGxpdChcIi1cIiwgMik7XHJcbiAgICAgICAgICAgICAgdmFyIG51bURheSA9IHBhcnNlSW50KHRlbXBNaW51c1sxXSk7XHJcbiAgICAgICAgICAgICAgZGF0ZVNob3cuc2V0RGF0ZShidXNpbmVzc0RhdGUuZ2V0RGF0ZSgpIC0gbnVtRGF5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChvcGVyYXRvciA9PSBcIitcIikge1xyXG4gICAgICAgICAgICAgIHZhciB0ZW1wTWludXMgPSBkYXRhLmNvbXBvbmVudFtpXS52YWx1ZS5zcGxpdChcIitcIiwgMik7XHJcbiAgICAgICAgICAgICAgdmFyIG51bURheSA9IHBhcnNlSW50KHRlbXBNaW51c1sxXSk7XHJcbiAgICAgICAgICAgICAgZGF0ZVNob3cuc2V0RGF0ZShidXNpbmVzc0RhdGUuZ2V0RGF0ZSgpICsgbnVtRGF5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgZGF0ZVRleHQgPSBmb3JtYXREYXRlKGRhdGVTaG93LCAneXl5eS1NTS1kZCcsICdlbi1VUycpXHJcbiAgICAgICAgICAgIGRhdGEuY29tcG9uZW50W2ldLnZhbHVlID0gZGF0ZVRleHQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRKU09OKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcG9zdEpTT04odXJsOiBzdHJpbmcsIGNyaXRlcmlhOiBhbnkgPSBudWxsKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIGNyaXRlcmlhKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaENsaWNrKCkge1xyXG4gICAgdGhpcy5vcmRlckJ5S2V5ID0gbnVsbFxyXG4gICAgdGhpcy5vcmRlckJ5VmFsdWUgPSB0cnVlXHJcbiAgICB0aGlzLnBhZ2VOb3cgPSAxO1xyXG4gICAgdGhpcy5zZWFyY2godGhpcy5hcGlVcmwsIHRoaXMucGFnZU5vdywgdGhpcy5wYWdlU2l6ZSwgbnVsbCwgdGhpcy5hcnJDcml0KTtcclxuICB9XHJcblxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5pbml0aWF0ZUZvcm0oKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaChhcGlVcmw6IHN0cmluZywgcGFnZU5vOiBudW1iZXIsIHJvd1BlclBhZ2U6IG51bWJlciwgb3JkZXJCeTogYW55LCBhZGRDcml0OiBDcml0ZXJpYU9ialtdID0gbmV3IEFycmF5KCkpIHtcclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3RDcml0ZXJpYU9iaigpO1xyXG4gICAgdmFyIGFyckNyaXQgPSBuZXcgQXJyYXkoKTtcclxuXHJcbiAgICByZXF1ZXN0LnBhZ2VObyA9IHBhZ2VObztcclxuICAgIHJlcXVlc3Qucm93UGVyUGFnZSA9IHJvd1BlclBhZ2U7XHJcbiAgICByZXF1ZXN0Lm9yZGVyQnkgPSBvcmRlckJ5O1xyXG4gICAgcmVxdWVzdC5xdWVyeVN0cmluZyA9IHRoaXMuY29uZmlndXJhdGlvbi5xdWVyeXN0cmluZztcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY291bnRGb3JtOyBpKyspIHtcclxuICAgICAgdmFyIGNyaXRPYmogPSBuZXcgQ3JpdGVyaWFPYmooKTtcclxuICAgICAgdmFyIGNvbXBvbmVudCA9IHRoaXMubXlGb3JtLm5hdGl2ZUVsZW1lbnRbaV07XHJcbiAgICAgIGNyaXRPYmouRGF0YVR5cGUgPSBjb21wb25lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cGUnKTtcclxuICAgICAgY29uc29sZS5sb2coY29tcG9uZW50KTtcclxuICAgICAgLy9Jbmkga2h1c3VzIGthbGF1IGRhcmkgRHJvcCBEb3duXHJcbiAgICAgIGlmIChjb21wb25lbnQudmFsdWUgIT0gXCJcIikge1xyXG4gICAgICAgIGlmIChjb21wb25lbnQubm9kZU5hbWUgPT0gJ1NFTEVDVCcpIHtcclxuICAgICAgICAgIHZhciBkZGwgPSBjb21wb25lbnQub3B0aW9ucztcclxuICAgICAgICAgIHZhciB0ZXh0ID0gZGRsW2RkbC5zZWxlY3RlZEluZGV4XS52YWx1ZTtcclxuICAgICAgICAgIGlmICh0ZXh0ICE9IFwiQWxsXCIpIHtcclxuICAgICAgICAgICAgLy9LYWxhdSBEYXJpIERyb3Bkb3duIHVkYWggcGFzdGkgcGFrZSBFcVxyXG4gICAgICAgICAgICBjcml0T2JqLnJlc3RyaWN0aW9uID0gQWRJbnNDb25zdGFudC5SZXN0cmljdGlvbkVxO1xyXG4gICAgICAgICAgICBjcml0T2JqLnByb3BOYW1lID0gY29tcG9uZW50Lm5hbWU7XHJcbiAgICAgICAgICAgIGNyaXRPYmoudmFsdWUgPSB0ZXh0O1xyXG4gICAgICAgICAgICBhcnJDcml0LnB1c2goY3JpdE9iaik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgLy9LYWxhdSBhZGEgUGVyY2VudCBtYWthIHlhbmcgZGlwYWtlIG5udGkgYWRhbGFoIFJlc3RyaWN0aW9ucyBMaWtlXHJcbiAgICAgICAgICBjcml0T2JqLnByb3BOYW1lID0gY29tcG9uZW50Lm5hbWU7XHJcbiAgICAgICAgICBjcml0T2JqLnZhbHVlID0gY29tcG9uZW50LnZhbHVlO1xyXG4gICAgICAgICAgaWYgKGNvbXBvbmVudC52YWx1ZS5pbmNsdWRlcyhcIiVcIikpIHtcclxuICAgICAgICAgICAgY3JpdE9iai5yZXN0cmljdGlvbiA9IEFkSW5zQ29uc3RhbnQuUmVzdHJpY3Rpb25MaWtlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy9rYWxhdSBjb21wb25lbnRueWEgRGF0ZSwgcmVzdHJpY3Rpb25zbnlhIGxnc2cgYW1iaWwgZGFyaSBwcm9wZXJ0eSBKU09ObnlhXHJcbiAgICAgICAgICBlbHNlIGlmIChjb21wb25lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXJlc3RyaWN0aW9uJykgIT0gXCJcIiAmJiBjb21wb25lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXJlc3RyaWN0aW9uJykgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjcml0T2JqLnJlc3RyaWN0aW9uID0gY29tcG9uZW50LmdldEF0dHJpYnV0ZSgnZGF0YS1yZXN0cmljdGlvbicpO1xyXG4gICAgICAgICAgICBpZihjb21wb25lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cGUnKT09J251bWVyaWMnKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgY29tcG9uZW50LnZhbHVlID0gcGFyc2VGbG9hdChjb21wb25lbnQudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpO1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNvbXBvbmVudC52YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjcml0T2JqLnJlc3RyaWN0aW9uID0gQWRJbnNDb25zdGFudC5SZXN0cmljdGlvbkVxXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBhcnJDcml0LnB1c2goY3JpdE9iaik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgaWYgKGFkZENyaXQubGVuZ3RoICE9IDAgfHwgYWRkQ3JpdCAhPSBudWxsICkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFkZENyaXQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBhcnJDcml0LnB1c2goYWRkQ3JpdFtpXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuc2VhcmNoSW5wdXQuYWRkQ3JpdElucHV0ICE9IG51bGwgfHwgdGhpcy5zZWFyY2hJbnB1dC5hZGRDcml0SW5wdXQgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zZWFyY2hJbnB1dC5hZGRDcml0SW5wdXQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBhcnJDcml0LnB1c2godGhpcy5zZWFyY2hJbnB1dC5hZGRDcml0SW5wdXRbaV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVxdWVzdC5jcml0ZXJpYSA9IGFyckNyaXQ7XHJcbiAgICB0aGlzLmh0dHAucG9zdChhcGlVcmwsIHJlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgdmFyIHFyeVBhZ2luZyA9IHtcclxuICAgICAgICByZXNwb25zZTogcmVzcG9uc2UsXHJcbiAgICAgICAgcGFnZU5vdzogcGFnZU5vXHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS5sb2cocXJ5UGFnaW5nKTtcclxuICAgICAgdGhpcy5yZXN1bHQuZW1pdChxcnlQYWdpbmcpO1xyXG4gICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGxlc3NUaGFuRm91cigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLmNvdW50Rm9ybSA+IDMpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzb2x2ZU9iamVjdChvYmo6IGFueSwgdXJsOiBzdHJpbmcsIGNyaXQ6IFJlcXVlc3RDcml0ZXJpYU9iaiA9IG51bGwpIHtcclxuICAgIGNvbnN0IHZhbCA9IHRoaXMucG9zdEpTT04odXJsLCBjcml0KTtcclxuICAgIHZhbC5zdWJzY3JpYmUodGVtcERhdGEgPT4ge1xyXG4gICAgICBvYmouaXRlbXNVcmwgPSB0ZW1wRGF0YS5yZXR1cm5PYmplY3Q7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRyYW5zZm9ybUFtb3VudChlbGVtZW50OiBhbnkpIHtcclxuICAgIHRoaXMuZm9ybWF0dGVkQW1vdW50ID0gcGFyc2VGbG9hdChlbGVtZW50LnRhcmdldC52YWx1ZSkudG9Mb2NhbGVTdHJpbmcoJ2VuJyk7XHJcbiAgICAvLyBSZW1vdmUgb3IgY29tbWVudCB0aGlzIGxpbmUgaWYgeW91IGRvbnQgd2FudFxyXG4gICAgLy8gdG8gc2hvdyB0aGUgZm9ybWF0dGVkIGFtb3VudCBpbiB0aGUgdGV4dGJveC5cclxuICAgIGVsZW1lbnQudGFyZ2V0LnZhbHVlID0gdGhpcy5mb3JtYXR0ZWRBbW91bnQ7XHJcbiAgfVxyXG5cclxuICB0cmFuc2Zvcm1Ub0RlY2ltYWwoZWxlbWVudDogYW55KSB7XHJcbiAgICBlbGVtZW50LnRhcmdldC52YWx1ZSA9IHBhcnNlRmxvYXQoZWxlbWVudC50YXJnZXQudmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC8sL2csICcnKSk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRBc1hMU1goKTogdm9pZCB7XHJcbiAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0Q3JpdGVyaWFPYmooKTtcclxuICAgIHJlcXVlc3QucGFnZU5vID0gMTtcclxuICAgIHJlcXVlc3Qucm93UGVyUGFnZSA9IDk5OTk7XHJcbiAgICByZXF1ZXN0Lm9yZGVyQnkgPSBudWxsO1xyXG4gICAgcmVxdWVzdC5jcml0ZXJpYSA9IFtdO1xyXG5cclxuICAgIHRoaXMuaHR0cC5wb3N0KHRoaXMuYXBpVXJsLCByZXF1ZXN0KS5zdWJzY3JpYmUoXHJcbiAgICAgIHJlc3BvbnNlID0+IHtcclxuICAgICAgICB0aGlzLkV4Y2VsRGF0YSA9IHJlc3BvbnNlW1wicmV0dXJuT2JqZWN0XCJdW1wiZGF0YVwiXTtcclxuICAgICAgICB0aGlzLmV4Y2VsU2VydmljZS5leHBvcnRBc0V4Y2VsRmlsZSh0aGlzLkV4Y2VsRGF0YSwgJ3NhbXBsZScpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlRXZlbnQob3B0VmFsdWUsIGFmRmlsdGVyKSB7XHJcbiAgICB2YXIganNvbkNvbXAgPSB0aGlzLmNvbmZpZ3VyYXRpb24uY29tcG9uZW50O1xyXG5cclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWZGaWx0ZXIuYWZmZWN0ZWRGaWx0ZXIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBqc29uQ29tcC5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGlmIChqc29uQ29tcFtqXS5uYW1lID09IGFmRmlsdGVyLmFmZmVjdGVkRmlsdGVyW2ldKSB7XHJcbiAgICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0Q3JpdGVyaWFPYmooKTtcclxuICAgICAgICAgIHZhciBhcnJheUNyaXQgPSBuZXcgQXJyYXkoKTtcclxuXHJcbiAgICAgICAgICBpZiAob3B0VmFsdWUgIT0gXCJBbGxcIikge1xyXG4gICAgICAgICAgICB2YXIgY3JpdE9iaiA9IG5ldyBDcml0ZXJpYU9iaigpO1xyXG4gICAgICAgICAgICBjcml0T2JqLkRhdGFUeXBlID0gYWZGaWx0ZXIuZGF0YXR5cGU7XHJcbiAgICAgICAgICAgIGNyaXRPYmoucHJvcE5hbWUgPSBhZkZpbHRlci5uYW1lO1xyXG4gICAgICAgICAgICBjcml0T2JqLnZhbHVlID0gb3B0VmFsdWU7XHJcbiAgICAgICAgICAgIGNyaXRPYmoucmVzdHJpY3Rpb24gPSBBZEluc0NvbnN0YW50LlJlc3RyaWN0aW9uRXE7XHJcbiAgICAgICAgICAgIGFycmF5Q3JpdC5wdXNoKGNyaXRPYmopO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmVxdWVzdC5jcml0ZXJpYSA9IGFycmF5Q3JpdDtcclxuICAgICAgICAgIHRoaXMucmVzb2x2ZU9iamVjdChqc29uQ29tcFtqXSwganNvbkNvbXBbal0udXJsLCByZXF1ZXN0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
468
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWNzZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdWNzZWFyY2gvIiwic291cmNlcyI6WyJsaWIvdWNzZWFyY2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFNUksT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQXVCakYsTUFBTSxPQUFPLGlCQUFpQjs7Ozs7OztJQTRCNUIsWUFBb0IsSUFBZ0IsRUFBVSxZQUEwQixFQUFVLFVBQXFCLEVBQTRCLFNBQVM7UUFBeEgsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUE0QixjQUFTLEdBQVQsU0FBUyxDQUFBO1FBeEJsSSxXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekQsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUNuQixZQUFPLEdB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Z0IsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7d0JBQzlDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7cUJBQy9DLENBQUM7aUJBQ0g7YUFDRjs7OztZQTlCUSxVQUFVO1lBT1YsWUFBWTtZQVQ2QyxTQUFTOzRDQTZEaUMsTUFBTSxTQUFDLFFBQVE7OztxQkExQnhILFNBQVMsU0FBQyxjQUFjOzBCQUN4QixLQUFLO3FCQUNMLE1BQU07Ozs7SUFGUCxtQ0FBOEM7O0lBQzlDLHdDQUEwQjs7SUFDMUIsbUNBQXlEOztJQUN6RCxxQ0FBbUI7O0lBQ25CLG9DQUFpQjs7SUFDakIsdUNBQWdCOztJQUNoQix5Q0FBa0I7O0lBQ2xCLG9DQUFnQjs7SUFDaEIsbUNBQWU7O0lBQ2YsbUNBQVk7O0lBQ1osMENBQW1COztJQUNuQixvQ0FBYTs7SUFDYix1Q0FBZ0I7O0lBQ2hCLHNDQUFlOztJQUNmLHlDQUE4Qjs7SUFDOUIscUNBQTBCOztJQUUxQix5Q0FBeUI7O0lBRXpCLGlDQUFnQjs7SUFDaEIsb0NBQWE7O0lBQ2Isc0NBQWM7O0lBQ2QsNENBQXFCOztJQUNyQixtQ0FBVzs7SUFDWCxtQ0FBZTs7SUFDZixvQ0FBYTs7Ozs7SUFDRCxpQ0FBd0I7Ozs7O0lBQUUseUNBQWtDOzs7OztJQUFFLHVDQUE2Qjs7Ozs7SUFBRSxzQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgSW5qZWN0LCBSZW5kZXJlcjIsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENyaXRlcmlhT2JqIH0gZnJvbSAnLi9tb2RlbC9Dcml0ZXJpYU9iai5Nb2RlbCc7XHJcbmltcG9ydCB7IFJlcXVlc3RDcml0ZXJpYU9iaiB9IGZyb20gJy4vbW9kZWwvUmVxdWVzdENyaXRlcmlhT2JqLm1vZGVsJztcclxuaW1wb3J0IHsgQWRJbnNDb25zdGFudCB9IGZyb20gJy4vbW9kZWwvQWRJbnN0Q29uc3RhbnQnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBFeGNlbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2V4Y2VsLXNlcnZpY2UvZXhjZWwtc2VydmljZSc7XHJcbmltcG9ydCB7IHRyaWdnZXIsIHRyYW5zaXRpb24sIHN0eWxlLCBhbmltYXRlLCBzdGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItVUNTZWFyY2gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91Y3NlYXJjaC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVzOiBbXSxcclxuICBwcm92aWRlcnM6IFtFeGNlbFNlcnZpY2VdLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ2NoYW5nZURpdlNpemUnLCBbXHJcbiAgICAgIHN0YXRlKCdpbml0aWFsJywgc3R5bGUoe1xyXG4gICAgICAgIGhlaWdodDogJyonLFxyXG4gICAgICAgIG9wYWNpdHk6ICcxJyxcclxuICAgICAgfSkpLFxyXG4gICAgICBzdGF0ZSgnZmluYWwnLCBzdHlsZSh7XHJcbiAgICAgICAgaGVpZ2h0OiAnMHB4JyxcclxuICAgICAgICBvcGFjaXR5OiAnMCcsXHJcbiAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxyXG4gICAgICB9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ2luaXRpYWw9PmZpbmFsJywgYW5pbWF0ZSgnMzAwbXMnKSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ2ZpbmFsPT5pbml0aWFsJywgYW5pbWF0ZSgnMzAwbXMnKSlcclxuICAgIF0pLFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFVDU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZm9ybUlkU2VhcmNoJykgbXlGb3JtOiBFbGVtZW50UmVmO1xyXG4gIEBJbnB1dCgpIHNlYXJjaElucHV0OiBhbnk7XHJcbiAgQE91dHB1dCgpIHJlc3VsdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgcGFnZVNpemU6IGFueSA9IDEwO1xyXG4gIHBhZ2VOb3c6IGFueSA9IDE7XHJcbiAgb3JkZXJCeUtleTogYW55O1xyXG4gIG9yZGVyQnlWYWx1ZTogYW55O1xyXG4gIHRlbXBVcmw6IHN0cmluZztcclxuICB1cmxHZXQ6IHN0cmluZztcclxuICBzZXJ2ZXI6IGFueTtcclxuICBjb25maWd1cmF0aW9uOiBhbnk7XHJcbiAgaXRlbVVybDogYW55O1xyXG4gIGV4cG9ydERhdGE6IGFueTtcclxuICBFeGNlbERhdGE6IGFueTtcclxuICBpc0RhdGFMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0hpZGRlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjdXJyZW50U3RhdGUgPSAnaW5pdGlhbCc7XHJcblxyXG4gIGZvcm06IEZvcm1Hcm91cDtcclxuICBwYXlMb2FkID0gJyc7XHJcbiAgY291bnRGb3JtID0gMDtcclxuICBmb3JtYXR0ZWRBbW91bnQgPSAnJztcclxuICBhbW91bnQgPSAwO1xyXG4gIGFwaVVybDogc3RyaW5nO1xyXG4gIGFyckNyaXQ6IGFueTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgZXhjZWxTZXJ2aWNlOiBFeGNlbFNlcnZpY2UsIHByaXZhdGUgX3JlbmRlcmVyMjogUmVuZGVyZXIyLCBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudCkge1xyXG4gIH1cclxuXHJcbiAgaGlkZShvYmo6YW55KXtcclxuICAgIGNvbnNvbGUubG9nKG9iaik7XHJcbiAgICB2YXIgdGFyZ2V0ID1ldmVudC5zcmNFbGVtZW50O1xyXG4gICAgY29uc29sZS5sb2codGFyZ2V0KTtcclxuICAgIC8vIHZhciBpZEF0dHIgPSB0YXJnZXQuYXR0cmlidXRlcy5pZDtcclxuICAgIC8vIHZhciB2YWx1ZSA9IGlkQXR0ci5ub2RlVmFsdWU7XHJcblxyXG4gIH1cclxuXHJcbiAgY2hhbmdlU3RhdGUoKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRTdGF0ZSA9IHRoaXMuY3VycmVudFN0YXRlID09PSAnaW5pdGlhbCcgPyAnZmluYWwnIDogJ2luaXRpYWwnO1xyXG4gICAgdGhpcy5pc0hpZGRlbiA9IHRoaXMuaXNIaWRkZW4gPT09IGZhbHNlID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5jdXJyZW50U3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmFwaVVybCA9IHRoaXMuc2VhcmNoSW5wdXQuZW52aXJvbWVudFVybCArIHRoaXMuc2VhcmNoSW5wdXQuYXBpUXJ5UGFnaW5nO1xyXG4gICAgdGhpcy5hcnJDcml0ID0gdGhpcy5zZWFyY2hJbnB1dC5hcnJDcml0T2JqO1xyXG4gICAgbGV0IGpzID0gdGhpcy5fcmVuZGVyZXIyLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xyXG4gICAganMudGV4dCA9IGBcclxuICAgICAgICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgICQoXCIjZmxpcFwiKS5jbGljayhmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICAgICQoXCIjcGFuZWxcIikuc2xpZGVUb2dnbGUoXCJzbG93XCIpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIGA7XHJcbiAgICB0aGlzLl9yZW5kZXJlcjIuYXBwZW5kQ2hpbGQodGhpcy5fZG9jdW1lbnQuYm9keSwganMpO1xyXG4gICAgdGhpcy5pbml0aWF0ZUZvcm0oKTtcclxuICB9XHJcblxyXG4gIGluaXRpYXRlRm9ybSgpIHtcclxuICAgIHRoaXMuZ2V0SlNPTih0aGlzLnNlYXJjaElucHV0Ll91cmwpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgY29uc29sZS5sb2coZGF0YSk7XHJcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGRhdGE7XHJcbiAgICAgIHRoaXMudXJsR2V0ID0gZGF0YS51cmw7XHJcbiAgICAgIHRoaXMuZXhwb3J0RGF0YSA9IGRhdGEuZXhwb3J0RXhjZWw7XHJcbiAgICAgIHRoaXMuY291bnRGb3JtID0gZGF0YS5jb21wb25lbnQubGVuZ3RoO1xyXG4gICAgICB0aGlzLmlzRGF0YUxvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY291bnRGb3JtOyBpKyspIHtcclxuXHJcbiAgICAgICAgLy9pbmkga2FsYXUgZGF0YW55YSBkaSBsb2FkIGRhcmkgVVJMXHJcbiAgICAgICAgaWYgKGRhdGEuY29tcG9uZW50W2ldLmlzRnJvbVVSTCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0Q3JpdGVyaWFPYmooKTtcclxuICAgICAgICAgIHZhciBhcnJheUNyaXQgPSBuZXcgQXJyYXkoKTtcclxuICAgICAgICAgIHZhciBjcml0ZXJpYU9iamVjdCA9IG5ldyBDcml0ZXJpYU9iaigpO1xyXG4gICAgICAgICAgY3JpdGVyaWFPYmplY3QuRGF0YVR5cGUgPSBcInRleHRcIjtcclxuICAgICAgICAgIGNyaXRlcmlhT2JqZWN0LnByb3BOYW1lID0gZGF0YS5jb21wb25lbnRbaV0uY3JpdGVyaWFQcm9wTmFtZTtcclxuICAgICAgICAgIGNyaXRlcmlhT2JqZWN0LnZhbHVlID0gZGF0YS5jb21wb25lbnRbaV0uY3JpdGVyaWFQcm9wVmFsdWU7XHJcbiAgICAgICAgICBjcml0ZXJpYU9iamVjdC5yZXN0cmljdGlvbiA9IFwiZXFcIjtcclxuICAgICAgICAgIGFycmF5Q3JpdC5wdXNoKGNyaXRlcmlhT2JqZWN0KTtcclxuICAgICAgICAgIHJlcXVlc3QuY3JpdGVyaWEgPSBhcnJheUNyaXQ7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9sZW1wYXIgb2JqZWN0bnlhIHNla2FsaWFuIHNhbWEgdXJsbnlhLCBubnRpIGRpIGJpbmQgZGkgZGFsZW0ga2FyZW5hIG1hc2FsYWggZGkgYXN5bmNueWFcclxuICAgICAgICAgIC8vYmlhciB0aWFwIGZ1bmN0aW9uIGFkYSBzdGF0ZTJueWEgc2VuZGlyaVxyXG4gICAgICAgICAgdGhpcy5yZXNvbHZlT2JqZWN0KGRhdGEuY29tcG9uZW50W2ldLCBkYXRhLmNvbXBvbmVudFtpXS51cmwsIHJlcXVlc3QpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGRhdGEuY29tcG9uZW50W2ldLnR5cGUgPT0gXCJudW1lcmljXCIpIHtcclxuICAgICAgICAgIGRhdGEuY29tcG9uZW50W2ldLnZhbHVlID0gcGFyc2VGbG9hdChkYXRhLmNvbXBvbmVudFtpXS52YWx1ZSkudG9Mb2NhbGVTdHJpbmcoJ2VuJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL3BlbmdlY2VrYW4gdGFuZ2dhbFxyXG4gICAgICAgIGlmIChkYXRhLmNvbXBvbmVudFtpXS50eXBlID09IFwiZGF0ZXBpY2tlclwiKSB7XHJcbiAgICAgICAgICBpZiAoZGF0YS5jb21wb25lbnRbaV0udmFsdWUuaW5jbHVkZXMoXCJCRFwiKSkge1xyXG4gICAgICAgICAgICBsZXQgYnVzaW5lc3NEYXRlID0gbmV3IERhdGUoSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIlVzZXJDb250ZXh0XCIpKS5CdXNpbmVzc0RhdGUpO1xyXG4gICAgICAgICAgICB2YXIgb3BlcmF0b3IgPSBkYXRhLmNvbXBvbmVudFtpXS52YWx1ZS5jaGFyQXQoMik7XHJcbiAgICAgICAgICAgIHZhciBkYXRlU2hvdyA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgICAgIGlmIChvcGVyYXRvciA9PSBcIi1cIikge1xyXG4gICAgICAgICAgICAgIHZhciB0ZW1wTWludXMgPSBkYXRhLmNvbXBvbmVudFtpXS52YWx1ZS5zcGxpdChcIi1cIiwgMik7XHJcbiAgICAgICAgICAgICAgdmFyIG51bURheSA9IHBhcnNlSW50KHRlbXBNaW51c1sxXSk7XHJcbiAgICAgICAgICAgICAgZGF0ZVNob3cuc2V0RGF0ZShidXNpbmVzc0RhdGUuZ2V0RGF0ZSgpIC0gbnVtRGF5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChvcGVyYXRvciA9PSBcIitcIikge1xyXG4gICAgICAgICAgICAgIHZhciB0ZW1wTWludXMgPSBkYXRhLmNvbXBvbmVudFtpXS52YWx1ZS5zcGxpdChcIitcIiwgMik7XHJcbiAgICAgICAgICAgICAgdmFyIG51bURheSA9IHBhcnNlSW50KHRlbXBNaW51c1sxXSk7XHJcbiAgICAgICAgICAgICAgZGF0ZVNob3cuc2V0RGF0ZShidXNpbmVzc0RhdGUuZ2V0RGF0ZSgpICsgbnVtRGF5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgZGF0ZVRleHQgPSBmb3JtYXREYXRlKGRhdGVTaG93LCAneXl5eS1NTS1kZCcsICdlbi1VUycpXHJcbiAgICAgICAgICAgIGRhdGEuY29tcG9uZW50W2ldLnZhbHVlID0gZGF0ZVRleHQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRKU09OKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcG9zdEpTT04odXJsOiBzdHJpbmcsIGNyaXRlcmlhOiBhbnkgPSBudWxsKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIGNyaXRlcmlhKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaENsaWNrKCkge1xyXG4gICAgdGhpcy5vcmRlckJ5S2V5ID0gbnVsbFxyXG4gICAgdGhpcy5vcmRlckJ5VmFsdWUgPSB0cnVlXHJcbiAgICB0aGlzLnBhZ2VOb3cgPSAxO1xyXG4gICAgdGhpcy5zZWFyY2godGhpcy5hcGlVcmwsIHRoaXMucGFnZU5vdywgdGhpcy5wYWdlU2l6ZSwgbnVsbCwgdGhpcy5hcnJDcml0KTtcclxuICB9XHJcblxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5pbml0aWF0ZUZvcm0oKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaChhcGlVcmw6IHN0cmluZywgcGFnZU5vOiBudW1iZXIsIHJvd1BlclBhZ2U6IG51bWJlciwgb3JkZXJCeTogYW55LCBhZGRDcml0OiBDcml0ZXJpYU9ialtdID0gbmV3IEFycmF5KCkpIHtcclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3RDcml0ZXJpYU9iaigpO1xyXG4gICAgdmFyIGFyckNyaXQgPSBuZXcgQXJyYXkoKTtcclxuXHJcbiAgICByZXF1ZXN0LnBhZ2VObyA9IHBhZ2VObztcclxuICAgIHJlcXVlc3Qucm93UGVyUGFnZSA9IHJvd1BlclBhZ2U7XHJcbiAgICByZXF1ZXN0Lm9yZGVyQnkgPSBvcmRlckJ5O1xyXG4gICAgcmVxdWVzdC5xdWVyeVN0cmluZyA9IHRoaXMuY29uZmlndXJhdGlvbi5xdWVyeXN0cmluZztcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY291bnRGb3JtOyBpKyspIHtcclxuICAgICAgdmFyIGNyaXRPYmogPSBuZXcgQ3JpdGVyaWFPYmooKTtcclxuICAgICAgdmFyIGNvbXBvbmVudCA9IHRoaXMubXlGb3JtLm5hdGl2ZUVsZW1lbnRbaV07XHJcbiAgICAgIGNyaXRPYmouRGF0YVR5cGUgPSBjb21wb25lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cGUnKTtcclxuICAgICAgY29uc29sZS5sb2coY29tcG9uZW50KTtcclxuICAgICAgLy9Jbmkga2h1c3VzIGthbGF1IGRhcmkgRHJvcCBEb3duXHJcbiAgICAgIGlmIChjb21wb25lbnQudmFsdWUgIT0gXCJcIikge1xyXG4gICAgICAgIGlmIChjb21wb25lbnQubm9kZU5hbWUgPT0gJ1NFTEVDVCcpIHtcclxuICAgICAgICAgIHZhciBkZGwgPSBjb21wb25lbnQub3B0aW9ucztcclxuICAgICAgICAgIHZhciB0ZXh0ID0gZGRsW2RkbC5zZWxlY3RlZEluZGV4XS52YWx1ZTtcclxuICAgICAgICAgIGlmICh0ZXh0ICE9IFwiQWxsXCIpIHtcclxuICAgICAgICAgICAgLy9LYWxhdSBEYXJpIERyb3Bkb3duIHVkYWggcGFzdGkgcGFrZSBFcVxyXG4gICAgICAgICAgICBjcml0T2JqLnJlc3RyaWN0aW9uID0gQWRJbnNDb25zdGFudC5SZXN0cmljdGlvbkVxO1xyXG4gICAgICAgICAgICBjcml0T2JqLnByb3BOYW1lID0gY29tcG9uZW50Lm5hbWU7XHJcbiAgICAgICAgICAgIGNyaXRPYmoudmFsdWUgPSB0ZXh0O1xyXG4gICAgICAgICAgICBhcnJDcml0LnB1c2goY3JpdE9iaik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgLy9LYWxhdSBhZGEgUGVyY2VudCBtYWthIHlhbmcgZGlwYWtlIG5udGkgYWRhbGFoIFJlc3RyaWN0aW9ucyBMaWtlXHJcbiAgICAgICAgICBjcml0T2JqLnByb3BOYW1lID0gY29tcG9uZW50Lm5hbWU7XHJcbiAgICAgICAgICBjcml0T2JqLnZhbHVlID0gY29tcG9uZW50LnZhbHVlO1xyXG4gICAgICAgICAgaWYgKGNvbXBvbmVudC52YWx1ZS5pbmNsdWRlcyhcIiVcIikpIHtcclxuICAgICAgICAgICAgY3JpdE9iai5yZXN0cmljdGlvbiA9IEFkSW5zQ29uc3RhbnQuUmVzdHJpY3Rpb25MaWtlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy9rYWxhdSBjb21wb25lbnRueWEgRGF0ZSwgcmVzdHJpY3Rpb25zbnlhIGxnc2cgYW1iaWwgZGFyaSBwcm9wZXJ0eSBKU09ObnlhXHJcbiAgICAgICAgICBlbHNlIGlmIChjb21wb25lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXJlc3RyaWN0aW9uJykgIT0gXCJcIiAmJiBjb21wb25lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXJlc3RyaWN0aW9uJykgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjcml0T2JqLnJlc3RyaWN0aW9uID0gY29tcG9uZW50LmdldEF0dHJpYnV0ZSgnZGF0YS1yZXN0cmljdGlvbicpO1xyXG4gICAgICAgICAgICBpZihjb21wb25lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cGUnKT09J251bWVyaWMnKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgY29tcG9uZW50LnZhbHVlID0gcGFyc2VGbG9hdChjb21wb25lbnQudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpO1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNvbXBvbmVudC52YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjcml0T2JqLnJlc3RyaWN0aW9uID0gQWRJbnNDb25zdGFudC5SZXN0cmljdGlvbkVxXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBhcnJDcml0LnB1c2goY3JpdE9iaik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZiAoYWRkQ3JpdCAhPSBudWxsKSB7XHJcbiAgICAgIGlmIChhZGRDcml0Lmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhZGRDcml0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBhcnJDcml0LnB1c2goYWRkQ3JpdFtpXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnNlYXJjaElucHV0LmFkZENyaXRJbnB1dCAhPSBudWxsIHx8IHRoaXMuc2VhcmNoSW5wdXQuYWRkQ3JpdElucHV0ICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc2VhcmNoSW5wdXQuYWRkQ3JpdElucHV0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgYXJyQ3JpdC5wdXNoKHRoaXMuc2VhcmNoSW5wdXQuYWRkQ3JpdElucHV0W2ldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlcXVlc3QuY3JpdGVyaWEgPSBhcnJDcml0O1xyXG4gICAgdGhpcy5odHRwLnBvc3QoYXBpVXJsLCByZXF1ZXN0KS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHZhciBxcnlQYWdpbmcgPSB7XHJcbiAgICAgICAgcmVzcG9uc2U6IHJlc3BvbnNlLFxyXG4gICAgICAgIHBhZ2VOb3c6IHBhZ2VOb1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUubG9nKHFyeVBhZ2luZyk7XHJcbiAgICAgIHRoaXMucmVzdWx0LmVtaXQocXJ5UGFnaW5nKTtcclxuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsZXNzVGhhbkZvdXIoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5jb3VudEZvcm0gPiAzKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc29sdmVPYmplY3Qob2JqOiBhbnksIHVybDogc3RyaW5nLCBjcml0OiBSZXF1ZXN0Q3JpdGVyaWFPYmogPSBudWxsKSB7XHJcbiAgICBjb25zdCB2YWwgPSB0aGlzLnBvc3RKU09OKHVybCwgY3JpdCk7XHJcbiAgICB2YWwuc3Vic2NyaWJlKHRlbXBEYXRhID0+IHtcclxuICAgICAgb2JqLml0ZW1zVXJsID0gdGVtcERhdGEucmV0dXJuT2JqZWN0O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB0cmFuc2Zvcm1BbW91bnQoZWxlbWVudDogYW55KSB7XHJcbiAgICB0aGlzLmZvcm1hdHRlZEFtb3VudCA9IHBhcnNlRmxvYXQoZWxlbWVudC50YXJnZXQudmFsdWUpLnRvTG9jYWxlU3RyaW5nKCdlbicpO1xyXG4gICAgLy8gUmVtb3ZlIG9yIGNvbW1lbnQgdGhpcyBsaW5lIGlmIHlvdSBkb250IHdhbnRcclxuICAgIC8vIHRvIHNob3cgdGhlIGZvcm1hdHRlZCBhbW91bnQgaW4gdGhlIHRleHRib3guXHJcbiAgICBlbGVtZW50LnRhcmdldC52YWx1ZSA9IHRoaXMuZm9ybWF0dGVkQW1vdW50O1xyXG4gIH1cclxuXHJcbiAgdHJhbnNmb3JtVG9EZWNpbWFsKGVsZW1lbnQ6IGFueSkge1xyXG4gICAgZWxlbWVudC50YXJnZXQudmFsdWUgPSBwYXJzZUZsb2F0KGVsZW1lbnQudGFyZ2V0LnZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJykpO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0QXNYTFNYKCk6IHZvaWQge1xyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdENyaXRlcmlhT2JqKCk7XHJcbiAgICByZXF1ZXN0LnBhZ2VObyA9IDE7XHJcbiAgICByZXF1ZXN0LnJvd1BlclBhZ2UgPSA5OTk5O1xyXG4gICAgcmVxdWVzdC5vcmRlckJ5ID0gbnVsbDtcclxuICAgIHJlcXVlc3QuY3JpdGVyaWEgPSBbXTtcclxuXHJcbiAgICB0aGlzLmh0dHAucG9zdCh0aGlzLmFwaVVybCwgcmVxdWVzdCkuc3Vic2NyaWJlKFxyXG4gICAgICByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgdGhpcy5FeGNlbERhdGEgPSByZXNwb25zZVtcInJldHVybk9iamVjdFwiXVtcImRhdGFcIl07XHJcbiAgICAgICAgdGhpcy5leGNlbFNlcnZpY2UuZXhwb3J0QXNFeGNlbEZpbGUodGhpcy5FeGNlbERhdGEsICdzYW1wbGUnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZUV2ZW50KG9wdFZhbHVlLCBhZkZpbHRlcikge1xyXG4gICAgdmFyIGpzb25Db21wID0gdGhpcy5jb25maWd1cmF0aW9uLmNvbXBvbmVudDtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFmRmlsdGVyLmFmZmVjdGVkRmlsdGVyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwganNvbkNvbXAubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICBpZiAoanNvbkNvbXBbal0ubmFtZSA9PSBhZkZpbHRlci5hZmZlY3RlZEZpbHRlcltpXSkge1xyXG4gICAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdENyaXRlcmlhT2JqKCk7XHJcbiAgICAgICAgICB2YXIgYXJyYXlDcml0ID0gbmV3IEFycmF5KCk7XHJcblxyXG4gICAgICAgICAgaWYgKG9wdFZhbHVlICE9IFwiQWxsXCIpIHtcclxuICAgICAgICAgICAgdmFyIGNyaXRPYmogPSBuZXcgQ3JpdGVyaWFPYmooKTtcclxuICAgICAgICAgICAgY3JpdE9iai5EYXRhVHlwZSA9IGFmRmlsdGVyLmRhdGF0eXBlO1xyXG4gICAgICAgICAgICBjcml0T2JqLnByb3BOYW1lID0gYWZGaWx0ZXIubmFtZTtcclxuICAgICAgICAgICAgY3JpdE9iai52YWx1ZSA9IG9wdFZhbHVlO1xyXG4gICAgICAgICAgICBjcml0T2JqLnJlc3RyaWN0aW9uID0gQWRJbnNDb25zdGFudC5SZXN0cmljdGlvbkVxO1xyXG4gICAgICAgICAgICBhcnJheUNyaXQucHVzaChjcml0T2JqKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJlcXVlc3QuY3JpdGVyaWEgPSBhcnJheUNyaXQ7XHJcbiAgICAgICAgICB0aGlzLnJlc29sdmVPYmplY3QoanNvbkNvbXBbal0sIGpzb25Db21wW2pdLnVybCwgcmVxdWVzdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -259,9 +259,11 @@ var UCSearchComponent = /** @class */ (function () {
259
259
  }
260
260
  }
261
261
  }
262
- if (addCrit.length != 0 || addCrit != null) {
263
- for (var i = 0; i < addCrit.length; i++) {
264
- arrCrit.push(addCrit[i]);
262
+ if (addCrit != null) {
263
+ if (addCrit.length != 0) {
264
+ for (var i = 0; i < addCrit.length; i++) {
265
+ arrCrit.push(addCrit[i]);
266
+ }
265
267
  }
266
268
  }
267
269
  else if (this.searchInput.addCritInput != null || this.searchInput.addCritInput != undefined) {
@@ -520,4 +522,4 @@ if (false) {
520
522
  */
521
523
  UCSearchComponent.prototype._document;
522
524
  }
523
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWNzZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdWNzZWFyY2gvIiwic291cmNlcyI6WyJsaWIvdWNzZWFyY2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFNUksT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRjtJQWlERSwyQkFBb0IsSUFBZ0IsRUFBVSxZQUEwQixFQUFVLFVBQXFCLEVBQTRCLFNBQVM7UUFBeEgsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUE0QixjQUFTLEdBQVQsU0FBUyxDQUFBO1FBeEJsSSxXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekQsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUNuQixZQUFPLEdBQVEsQ0FBQyxDQUFDO1FBVWpCLGlCQUFZ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QUNiLENBQUMsQ0FBQzs0QkFDSCxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztnQ0FDbkIsTUFBTSxFQUFFLEtBQUs7Z0NBQ2IsT0FBTyxFQUFFLEdBQUc7Z0NBQ1osUUFBUSxFQUFFLFFBQVE7NkJBQ25CLENBQUMsQ0FBQzs0QkFDSCxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDOzRCQUM5QyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3lCQUMvQyxDQUFDO3FCQUNIO2lCQUNGOzs7O2dCQTlCUSxVQUFVO2dCQU9WLFlBQVk7Z0JBVDZDLFNBQVM7Z0RBNkRpQyxNQUFNLFNBQUMsUUFBUTs7O3lCQTFCeEgsU0FBUyxTQUFDLGNBQWM7OEJBQ3hCLEtBQUs7eUJBQ0wsTUFBTTs7SUFtUlQsd0JBQUM7Q0FBQSxBQTVTRCxJQTRTQztTQXZSWSxpQkFBaUI7OztJQUU1QixtQ0FBOEM7O0lBQzlDLHdDQUEwQjs7SUFDMUIsbUNBQXlEOztJQUN6RCxxQ0FBbUI7O0lBQ25CLG9DQUFpQjs7SUFDakIsdUNBQWdCOztJQUNoQix5Q0FBa0I7O0lBQ2xCLG9DQUFnQjs7SUFDaEIsbUNBQWU7O0lBQ2YsbUNBQVk7O0lBQ1osMENBQW1COztJQUNuQixvQ0FBYTs7SUFDYix1Q0FBZ0I7O0lBQ2hCLHNDQUFlOztJQUNmLHlDQUE4Qjs7SUFDOUIscUNBQTBCOztJQUUxQix5Q0FBeUI7O0lBRXpCLGlDQUFnQjs7SUFDaEIsb0NBQWE7O0lBQ2Isc0NBQWM7O0lBQ2QsNENBQXFCOztJQUNyQixtQ0FBVzs7SUFDWCxtQ0FBZTs7SUFDZixvQ0FBYTs7Ozs7SUFDRCxpQ0FBd0I7Ozs7O0lBQUUseUNBQWtDOzs7OztJQUFFLHVDQUE2Qjs7Ozs7SUFBRSxzQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgSW5qZWN0LCBSZW5kZXJlcjIsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENyaXRlcmlhT2JqIH0gZnJvbSAnLi9tb2RlbC9Dcml0ZXJpYU9iai5Nb2RlbCc7XHJcbmltcG9ydCB7IFJlcXVlc3RDcml0ZXJpYU9iaiB9IGZyb20gJy4vbW9kZWwvUmVxdWVzdENyaXRlcmlhT2JqLm1vZGVsJztcclxuaW1wb3J0IHsgQWRJbnNDb25zdGFudCB9IGZyb20gJy4vbW9kZWwvQWRJbnN0Q29uc3RhbnQnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBFeGNlbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2V4Y2VsLXNlcnZpY2UvZXhjZWwtc2VydmljZSc7XHJcbmltcG9ydCB7IHRyaWdnZXIsIHRyYW5zaXRpb24sIHN0eWxlLCBhbmltYXRlLCBzdGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItVUNTZWFyY2gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91Y3NlYXJjaC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVzOiBbXSxcclxuICBwcm92aWRlcnM6IFtFeGNlbFNlcnZpY2VdLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ2NoYW5nZURpdlNpemUnLCBbXHJcbiAgICAgIHN0YXRlKCdpbml0aWFsJywgc3R5bGUoe1xyXG4gICAgICAgIGhlaWdodDogJyonLFxyXG4gICAgICAgIG9wYWNpdHk6ICcxJyxcclxuICAgICAgfSkpLFxyXG4gICAgICBzdGF0ZSgnZmluYWwnLCBzdHlsZSh7XHJcbiAgICAgICAgaGVpZ2h0OiAnMHB4JyxcclxuICAgICAgICBvcGFjaXR5OiAnMCcsXHJcbiAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxyXG4gICAgICB9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ2luaXRpYWw9PmZpbmFsJywgYW5pbWF0ZSgnMzAwbXMnKSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ2ZpbmFsPT5pbml0aWFsJywgYW5pbWF0ZSgnMzAwbXMnKSlcclxuICAgIF0pLFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFVDU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZm9ybUlkU2VhcmNoJykgbXlGb3JtOiBFbGVtZW50UmVmO1xyXG4gIEBJbnB1dCgpIHNlYXJjaElucHV0OiBhbnk7XHJcbiAgQE91dHB1dCgpIHJlc3VsdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgcGFnZVNpemU6IGFueSA9IDEwO1xyXG4gIHBhZ2VOb3c6IGFueSA9IDE7XHJcbiAgb3JkZXJCeUtleTogYW55O1xyXG4gIG9yZGVyQnlWYWx1ZTogYW55O1xyXG4gIHRlbXBVcmw6IHN0cmluZztcclxuICB1cmxHZXQ6IHN0cmluZztcclxuICBzZXJ2ZXI6IGFueTtcclxuICBjb25maWd1cmF0aW9uOiBhbnk7XHJcbiAgaXRlbVVybDogYW55O1xyXG4gIGV4cG9ydERhdGE6IGFueTtcclxuICBFeGNlbERhdGE6IGFueTtcclxuICBpc0RhdGFMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0hpZGRlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjdXJyZW50U3RhdGUgPSAnaW5pdGlhbCc7XHJcblxyXG4gIGZvcm06IEZvcm1Hcm91cDtcclxuICBwYXlMb2FkID0gJyc7XHJcbiAgY291bnRGb3JtID0gMDtcclxuICBmb3JtYXR0ZWRBbW91bnQgPSAnJztcclxuICBhbW91bnQgPSAwO1xyXG4gIGFwaVVybDogc3RyaW5nO1xyXG4gIGFyckNyaXQ6IGFueTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgZXhjZWxTZXJ2aWNlOiBFeGNlbFNlcnZpY2UsIHByaXZhdGUgX3JlbmRlcmVyMjogUmVuZGVyZXIyLCBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudCkge1xyXG4gIH1cclxuXHJcbiAgaGlkZShvYmo6YW55KXtcclxuICAgIGNvbnNvbGUubG9nKG9iaik7XHJcbiAgICB2YXIgdGFyZ2V0ID1ldmVudC5zcmNFbGVtZW50O1xyXG4gICAgY29uc29sZS5sb2codGFyZ2V0KTtcclxuICAgIC8vIHZhciBpZEF0dHIgPSB0YXJnZXQuYXR0cmlidXRlcy5pZDtcclxuICAgIC8vIHZhciB2YWx1ZSA9IGlkQXR0ci5ub2RlVmFsdWU7XHJcblxyXG4gIH1cclxuXHJcbiAgY2hhbmdlU3RhdGUoKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRTdGF0ZSA9IHRoaXMuY3VycmVudFN0YXRlID09PSAnaW5pdGlhbCcgPyAnZmluYWwnIDogJ2luaXRpYWwnO1xyXG4gICAgdGhpcy5pc0hpZGRlbiA9IHRoaXMuaXNIaWRkZW4gPT09IGZhbHNlID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5jdXJyZW50U3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmFwaVVybCA9IHRoaXMuc2VhcmNoSW5wdXQuZW52aXJvbWVudFVybCArIHRoaXMuc2VhcmNoSW5wdXQuYXBpUXJ5UGFnaW5nO1xyXG4gICAgdGhpcy5hcnJDcml0ID0gdGhpcy5zZWFyY2hJbnB1dC5hcnJDcml0T2JqO1xyXG4gICAgbGV0IGpzID0gdGhpcy5fcmVuZGVyZXIyLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xyXG4gICAganMudGV4dCA9IGBcclxuICAgICAgICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgICQoXCIjZmxpcFwiKS5jbGljayhmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICAgICQoXCIjcGFuZWxcIikuc2xpZGVUb2dnbGUoXCJzbG93XCIpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIGA7XHJcbiAgICB0aGlzLl9yZW5kZXJlcjIuYXBwZW5kQ2hpbGQodGhpcy5fZG9jdW1lbnQuYm9keSwganMpO1xyXG4gICAgdGhpcy5pbml0aWF0ZUZvcm0oKTtcclxuICB9XHJcblxyXG4gIGluaXRpYXRlRm9ybSgpIHtcclxuICAgIHRoaXMuZ2V0SlNPTih0aGlzLnNlYXJjaElucHV0Ll91cmwpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgY29uc29sZS5sb2coZGF0YSk7XHJcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGRhdGE7XHJcbiAgICAgIHRoaXMudXJsR2V0ID0gZGF0YS51cmw7XHJcbiAgICAgIHRoaXMuZXhwb3J0RGF0YSA9IGRhdGEuZXhwb3J0RXhjZWw7XHJcbiAgICAgIHRoaXMuY291bnRGb3JtID0gZGF0YS5jb21wb25lbnQubGVuZ3RoO1xyXG4gICAgICB0aGlzLmlzRGF0YUxvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY291bnRGb3JtOyBpKyspIHtcclxuXHJcbiAgICAgICAgLy9pbmkga2FsYXUgZGF0YW55YSBkaSBsb2FkIGRhcmkgVVJMXHJcbiAgICAgICAgaWYgKGRhdGEuY29tcG9uZW50W2ldLmlzRnJvbVVSTCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0Q3JpdGVyaWFPYmooKTtcclxuICAgICAgICAgIHZhciBhcnJheUNyaXQgPSBuZXcgQXJyYXkoKTtcclxuICAgICAgICAgIHZhciBjcml0ZXJpYU9iamVjdCA9IG5ldyBDcml0ZXJpYU9iaigpO1xyXG4gICAgICAgICAgY3JpdGVyaWFPYmplY3QuRGF0YVR5cGUgPSBcInRleHRcIjtcclxuICAgICAgICAgIGNyaXRlcmlhT2JqZWN0LnByb3BOYW1lID0gZGF0YS5jb21wb25lbnRbaV0uY3JpdGVyaWFQcm9wTmFtZTtcclxuICAgICAgICAgIGNyaXRlcmlhT2JqZWN0LnZhbHVlID0gZGF0YS5jb21wb25lbnRbaV0uY3JpdGVyaWFQcm9wVmFsdWU7XHJcbiAgICAgICAgICBjcml0ZXJpYU9iamVjdC5yZXN0cmljdGlvbiA9IFwiZXFcIjtcclxuICAgICAgICAgIGFycmF5Q3JpdC5wdXNoKGNyaXRlcmlhT2JqZWN0KTtcclxuICAgICAgICAgIHJlcXVlc3QuY3JpdGVyaWEgPSBhcnJheUNyaXQ7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9sZW1wYXIgb2JqZWN0bnlhIHNla2FsaWFuIHNhbWEgdXJsbnlhLCBubnRpIGRpIGJpbmQgZGkgZGFsZW0ga2FyZW5hIG1hc2FsYWggZGkgYXN5bmNueWFcclxuICAgICAgICAgIC8vYmlhciB0aWFwIGZ1bmN0aW9uIGFkYSBzdGF0ZTJueWEgc2VuZGlyaVxyXG4gICAgICAgICAgdGhpcy5yZXNvbHZlT2JqZWN0KGRhdGEuY29tcG9uZW50W2ldLCBkYXRhLmNvbXBvbmVudFtpXS51cmwsIHJlcXVlc3QpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGRhdGEuY29tcG9uZW50W2ldLnR5cGUgPT0gXCJudW1lcmljXCIpIHtcclxuICAgICAgICAgIGRhdGEuY29tcG9uZW50W2ldLnZhbHVlID0gcGFyc2VGbG9hdChkYXRhLmNvbXBvbmVudFtpXS52YWx1ZSkudG9Mb2NhbGVTdHJpbmcoJ2VuJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL3BlbmdlY2VrYW4gdGFuZ2dhbFxyXG4gICAgICAgIGlmIChkYXRhLmNvbXBvbmVudFtpXS50eXBlID09IFwiZGF0ZXBpY2tlclwiKSB7XHJcbiAgICAgICAgICBpZiAoZGF0YS5jb21wb25lbnRbaV0udmFsdWUuaW5jbHVkZXMoXCJCRFwiKSkge1xyXG4gICAgICAgICAgICBsZXQgYnVzaW5lc3NEYXRlID0gbmV3IERhdGUoSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIlVzZXJDb250ZXh0XCIpKS5CdXNpbmVzc0RhdGUpO1xyXG4gICAgICAgICAgICB2YXIgb3BlcmF0b3IgPSBkYXRhLmNvbXBvbmVudFtpXS52YWx1ZS5jaGFyQXQoMik7XHJcbiAgICAgICAgICAgIHZhciBkYXRlU2hvdyA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgICAgIGlmIChvcGVyYXRvciA9PSBcIi1cIikge1xyXG4gICAgICAgICAgICAgIHZhciB0ZW1wTWludXMgPSBkYXRhLmNvbXBvbmVudFtpXS52YWx1ZS5zcGxpdChcIi1cIiwgMik7XHJcbiAgICAgICAgICAgICAgdmFyIG51bURheSA9IHBhcnNlSW50KHRlbXBNaW51c1sxXSk7XHJcbiAgICAgICAgICAgICAgZGF0ZVNob3cuc2V0RGF0ZShidXNpbmVzc0RhdGUuZ2V0RGF0ZSgpIC0gbnVtRGF5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChvcGVyYXRvciA9PSBcIitcIikge1xyXG4gICAgICAgICAgICAgIHZhciB0ZW1wTWludXMgPSBkYXRhLmNvbXBvbmVudFtpXS52YWx1ZS5zcGxpdChcIitcIiwgMik7XHJcbiAgICAgICAgICAgICAgdmFyIG51bURheSA9IHBhcnNlSW50KHRlbXBNaW51c1sxXSk7XHJcbiAgICAgICAgICAgICAgZGF0ZVNob3cuc2V0RGF0ZShidXNpbmVzc0RhdGUuZ2V0RGF0ZSgpICsgbnVtRGF5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgZGF0ZVRleHQgPSBmb3JtYXREYXRlKGRhdGVTaG93LCAneXl5eS1NTS1kZCcsICdlbi1VUycpXHJcbiAgICAgICAgICAgIGRhdGEuY29tcG9uZW50W2ldLnZhbHVlID0gZGF0ZVRleHQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRKU09OKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcG9zdEpTT04odXJsOiBzdHJpbmcsIGNyaXRlcmlhOiBhbnkgPSBudWxsKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIGNyaXRlcmlhKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaENsaWNrKCkge1xyXG4gICAgdGhpcy5vcmRlckJ5S2V5ID0gbnVsbFxyXG4gICAgdGhpcy5vcmRlckJ5VmFsdWUgPSB0cnVlXHJcbiAgICB0aGlzLnBhZ2VOb3cgPSAxO1xyXG4gICAgdGhpcy5zZWFyY2godGhpcy5hcGlVcmwsIHRoaXMucGFnZU5vdywgdGhpcy5wYWdlU2l6ZSwgbnVsbCwgdGhpcy5hcnJDcml0KTtcclxuICB9XHJcblxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5pbml0aWF0ZUZvcm0oKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaChhcGlVcmw6IHN0cmluZywgcGFnZU5vOiBudW1iZXIsIHJvd1BlclBhZ2U6IG51bWJlciwgb3JkZXJCeTogYW55LCBhZGRDcml0OiBDcml0ZXJpYU9ialtdID0gbmV3IEFycmF5KCkpIHtcclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3RDcml0ZXJpYU9iaigpO1xyXG4gICAgdmFyIGFyckNyaXQgPSBuZXcgQXJyYXkoKTtcclxuXHJcbiAgICByZXF1ZXN0LnBhZ2VObyA9IHBhZ2VObztcclxuICAgIHJlcXVlc3Qucm93UGVyUGFnZSA9IHJvd1BlclBhZ2U7XHJcbiAgICByZXF1ZXN0Lm9yZGVyQnkgPSBvcmRlckJ5O1xyXG4gICAgcmVxdWVzdC5xdWVyeVN0cmluZyA9IHRoaXMuY29uZmlndXJhdGlvbi5xdWVyeXN0cmluZztcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY291bnRGb3JtOyBpKyspIHtcclxuICAgICAgdmFyIGNyaXRPYmogPSBuZXcgQ3JpdGVyaWFPYmooKTtcclxuICAgICAgdmFyIGNvbXBvbmVudCA9IHRoaXMubXlGb3JtLm5hdGl2ZUVsZW1lbnRbaV07XHJcbiAgICAgIGNyaXRPYmouRGF0YVR5cGUgPSBjb21wb25lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cGUnKTtcclxuICAgICAgY29uc29sZS5sb2coY29tcG9uZW50KTtcclxuICAgICAgLy9Jbmkga2h1c3VzIGthbGF1IGRhcmkgRHJvcCBEb3duXHJcbiAgICAgIGlmIChjb21wb25lbnQudmFsdWUgIT0gXCJcIikge1xyXG4gICAgICAgIGlmIChjb21wb25lbnQubm9kZU5hbWUgPT0gJ1NFTEVDVCcpIHtcclxuICAgICAgICAgIHZhciBkZGwgPSBjb21wb25lbnQub3B0aW9ucztcclxuICAgICAgICAgIHZhciB0ZXh0ID0gZGRsW2RkbC5zZWxlY3RlZEluZGV4XS52YWx1ZTtcclxuICAgICAgICAgIGlmICh0ZXh0ICE9IFwiQWxsXCIpIHtcclxuICAgICAgICAgICAgLy9LYWxhdSBEYXJpIERyb3Bkb3duIHVkYWggcGFzdGkgcGFrZSBFcVxyXG4gICAgICAgICAgICBjcml0T2JqLnJlc3RyaWN0aW9uID0gQWRJbnNDb25zdGFudC5SZXN0cmljdGlvbkVxO1xyXG4gICAgICAgICAgICBjcml0T2JqLnByb3BOYW1lID0gY29tcG9uZW50Lm5hbWU7XHJcbiAgICAgICAgICAgIGNyaXRPYmoudmFsdWUgPSB0ZXh0O1xyXG4gICAgICAgICAgICBhcnJDcml0LnB1c2goY3JpdE9iaik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgLy9LYWxhdSBhZGEgUGVyY2VudCBtYWthIHlhbmcgZGlwYWtlIG5udGkgYWRhbGFoIFJlc3RyaWN0aW9ucyBMaWtlXHJcbiAgICAgICAgICBjcml0T2JqLnByb3BOYW1lID0gY29tcG9uZW50Lm5hbWU7XHJcbiAgICAgICAgICBjcml0T2JqLnZhbHVlID0gY29tcG9uZW50LnZhbHVlO1xyXG4gICAgICAgICAgaWYgKGNvbXBvbmVudC52YWx1ZS5pbmNsdWRlcyhcIiVcIikpIHtcclxuICAgICAgICAgICAgY3JpdE9iai5yZXN0cmljdGlvbiA9IEFkSW5zQ29uc3RhbnQuUmVzdHJpY3Rpb25MaWtlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy9rYWxhdSBjb21wb25lbnRueWEgRGF0ZSwgcmVzdHJpY3Rpb25zbnlhIGxnc2cgYW1iaWwgZGFyaSBwcm9wZXJ0eSBKU09ObnlhXHJcbiAgICAgICAgICBlbHNlIGlmIChjb21wb25lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXJlc3RyaWN0aW9uJykgIT0gXCJcIiAmJiBjb21wb25lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXJlc3RyaWN0aW9uJykgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjcml0T2JqLnJlc3RyaWN0aW9uID0gY29tcG9uZW50LmdldEF0dHJpYnV0ZSgnZGF0YS1yZXN0cmljdGlvbicpO1xyXG4gICAgICAgICAgICBpZihjb21wb25lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cGUnKT09J251bWVyaWMnKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgY29tcG9uZW50LnZhbHVlID0gcGFyc2VGbG9hdChjb21wb25lbnQudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpO1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNvbXBvbmVudC52YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjcml0T2JqLnJlc3RyaWN0aW9uID0gQWRJbnNDb25zdGFudC5SZXN0cmljdGlvbkVxXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBhcnJDcml0LnB1c2goY3JpdE9iaik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgaWYgKGFkZENyaXQubGVuZ3RoICE9IDAgfHwgYWRkQ3JpdCAhPSBudWxsICkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFkZENyaXQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBhcnJDcml0LnB1c2goYWRkQ3JpdFtpXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuc2VhcmNoSW5wdXQuYWRkQ3JpdElucHV0ICE9IG51bGwgfHwgdGhpcy5zZWFyY2hJbnB1dC5hZGRDcml0SW5wdXQgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zZWFyY2hJbnB1dC5hZGRDcml0SW5wdXQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBhcnJDcml0LnB1c2godGhpcy5zZWFyY2hJbnB1dC5hZGRDcml0SW5wdXRbaV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVxdWVzdC5jcml0ZXJpYSA9IGFyckNyaXQ7XHJcbiAgICB0aGlzLmh0dHAucG9zdChhcGlVcmwsIHJlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgdmFyIHFyeVBhZ2luZyA9IHtcclxuICAgICAgICByZXNwb25zZTogcmVzcG9uc2UsXHJcbiAgICAgICAgcGFnZU5vdzogcGFnZU5vXHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS5sb2cocXJ5UGFnaW5nKTtcclxuICAgICAgdGhpcy5yZXN1bHQuZW1pdChxcnlQYWdpbmcpO1xyXG4gICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGxlc3NUaGFuRm91cigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLmNvdW50Rm9ybSA+IDMpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzb2x2ZU9iamVjdChvYmo6IGFueSwgdXJsOiBzdHJpbmcsIGNyaXQ6IFJlcXVlc3RDcml0ZXJpYU9iaiA9IG51bGwpIHtcclxuICAgIGNvbnN0IHZhbCA9IHRoaXMucG9zdEpTT04odXJsLCBjcml0KTtcclxuICAgIHZhbC5zdWJzY3JpYmUodGVtcERhdGEgPT4ge1xyXG4gICAgICBvYmouaXRlbXNVcmwgPSB0ZW1wRGF0YS5yZXR1cm5PYmplY3Q7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRyYW5zZm9ybUFtb3VudChlbGVtZW50OiBhbnkpIHtcclxuICAgIHRoaXMuZm9ybWF0dGVkQW1vdW50ID0gcGFyc2VGbG9hdChlbGVtZW50LnRhcmdldC52YWx1ZSkudG9Mb2NhbGVTdHJpbmcoJ2VuJyk7XHJcbiAgICAvLyBSZW1vdmUgb3IgY29tbWVudCB0aGlzIGxpbmUgaWYgeW91IGRvbnQgd2FudFxyXG4gICAgLy8gdG8gc2hvdyB0aGUgZm9ybWF0dGVkIGFtb3VudCBpbiB0aGUgdGV4dGJveC5cclxuICAgIGVsZW1lbnQudGFyZ2V0LnZhbHVlID0gdGhpcy5mb3JtYXR0ZWRBbW91bnQ7XHJcbiAgfVxyXG5cclxuICB0cmFuc2Zvcm1Ub0RlY2ltYWwoZWxlbWVudDogYW55KSB7XHJcbiAgICBlbGVtZW50LnRhcmdldC52YWx1ZSA9IHBhcnNlRmxvYXQoZWxlbWVudC50YXJnZXQudmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC8sL2csICcnKSk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRBc1hMU1goKTogdm9pZCB7XHJcbiAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0Q3JpdGVyaWFPYmooKTtcclxuICAgIHJlcXVlc3QucGFnZU5vID0gMTtcclxuICAgIHJlcXVlc3Qucm93UGVyUGFnZSA9IDk5OTk7XHJcbiAgICByZXF1ZXN0Lm9yZGVyQnkgPSBudWxsO1xyXG4gICAgcmVxdWVzdC5jcml0ZXJpYSA9IFtdO1xyXG5cclxuICAgIHRoaXMuaHR0cC5wb3N0KHRoaXMuYXBpVXJsLCByZXF1ZXN0KS5zdWJzY3JpYmUoXHJcbiAgICAgIHJlc3BvbnNlID0+IHtcclxuICAgICAgICB0aGlzLkV4Y2VsRGF0YSA9IHJlc3BvbnNlW1wicmV0dXJuT2JqZWN0XCJdW1wiZGF0YVwiXTtcclxuICAgICAgICB0aGlzLmV4Y2VsU2VydmljZS5leHBvcnRBc0V4Y2VsRmlsZSh0aGlzLkV4Y2VsRGF0YSwgJ3NhbXBsZScpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlRXZlbnQob3B0VmFsdWUsIGFmRmlsdGVyKSB7XHJcbiAgICB2YXIganNvbkNvbXAgPSB0aGlzLmNvbmZpZ3VyYXRpb24uY29tcG9uZW50O1xyXG5cclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWZGaWx0ZXIuYWZmZWN0ZWRGaWx0ZXIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBqc29uQ29tcC5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGlmIChqc29uQ29tcFtqXS5uYW1lID09IGFmRmlsdGVyLmFmZmVjdGVkRmlsdGVyW2ldKSB7XHJcbiAgICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0Q3JpdGVyaWFPYmooKTtcclxuICAgICAgICAgIHZhciBhcnJheUNyaXQgPSBuZXcgQXJyYXkoKTtcclxuXHJcbiAgICAgICAgICBpZiAob3B0VmFsdWUgIT0gXCJBbGxcIikge1xyXG4gICAgICAgICAgICB2YXIgY3JpdE9iaiA9IG5ldyBDcml0ZXJpYU9iaigpO1xyXG4gICAgICAgICAgICBjcml0T2JqLkRhdGFUeXBlID0gYWZGaWx0ZXIuZGF0YXR5cGU7XHJcbiAgICAgICAgICAgIGNyaXRPYmoucHJvcE5hbWUgPSBhZkZpbHRlci5uYW1lO1xyXG4gICAgICAgICAgICBjcml0T2JqLnZhbHVlID0gb3B0VmFsdWU7XHJcbiAgICAgICAgICAgIGNyaXRPYmoucmVzdHJpY3Rpb24gPSBBZEluc0NvbnN0YW50LlJlc3RyaWN0aW9uRXE7XHJcbiAgICAgICAgICAgIGFycmF5Q3JpdC5wdXNoKGNyaXRPYmopO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmVxdWVzdC5jcml0ZXJpYSA9IGFycmF5Q3JpdDtcclxuICAgICAgICAgIHRoaXMucmVzb2x2ZU9iamVjdChqc29uQ29tcFtqXSwganNvbkNvbXBbal0udXJsLCByZXF1ZXN0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
525
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWNzZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdWNzZWFyY2gvIiwic291cmNlcyI6WyJsaWIvdWNzZWFyY2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFNUksT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRjtJQWlERSwyQkFBb0IsSUFBZ0IsRUFBVSxZQUEwQixFQUFVLFVBQXFCLEVBQTRCLFNBQVM7UUFBeEgsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUE0QixjQUFTLEdBQVQsU0FBUyxDQUFBO1FBeEJsSSxXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekQsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUNuQixZQUFPLEdBQVEsQ0FBQyxDQUFDO1FBVWpCLGlCQUFZ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LE9BQU8sRUFBRSxHQUFHOzZCQUNiLENBQUMsQ0FBQzs0QkFDSCxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztnQ0FDbkIsTUFBTSxFQUFFLEtBQUs7Z0NBQ2IsT0FBTyxFQUFFLEdBQUc7Z0NBQ1osUUFBUSxFQUFFLFFBQVE7NkJBQ25CLENBQUMsQ0FBQzs0QkFDSCxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDOzRCQUM5QyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3lCQUMvQyxDQUFDO3FCQUNIO2lCQUNGOzs7O2dCQTlCUSxVQUFVO2dCQU9WLFlBQVk7Z0JBVDZDLFNBQVM7Z0RBNkRpQyxNQUFNLFNBQUMsUUFBUTs7O3lCQTFCeEgsU0FBUyxTQUFDLGNBQWM7OEJBQ3hCLEtBQUs7eUJBQ0wsTUFBTTs7SUFzUlQsd0JBQUM7Q0FBQSxBQS9TRCxJQStTQztTQTFSWSxpQkFBaUI7OztJQUU1QixtQ0FBOEM7O0lBQzlDLHdDQUEwQjs7SUFDMUIsbUNBQXlEOztJQUN6RCxxQ0FBbUI7O0lBQ25CLG9DQUFpQjs7SUFDakIsdUNBQWdCOztJQUNoQix5Q0FBa0I7O0lBQ2xCLG9DQUFnQjs7SUFDaEIsbUNBQWU7O0lBQ2YsbUNBQVk7O0lBQ1osMENBQW1COztJQUNuQixvQ0FBYTs7SUFDYix1Q0FBZ0I7O0lBQ2hCLHNDQUFlOztJQUNmLHlDQUE4Qjs7SUFDOUIscUNBQTBCOztJQUUxQix5Q0FBeUI7O0lBRXpCLGlDQUFnQjs7SUFDaEIsb0NBQWE7O0lBQ2Isc0NBQWM7O0lBQ2QsNENBQXFCOztJQUNyQixtQ0FBVzs7SUFDWCxtQ0FBZTs7SUFDZixvQ0FBYTs7Ozs7SUFDRCxpQ0FBd0I7Ozs7O0lBQUUseUNBQWtDOzs7OztJQUFFLHVDQUE2Qjs7Ozs7SUFBRSxzQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgSW5qZWN0LCBSZW5kZXJlcjIsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENyaXRlcmlhT2JqIH0gZnJvbSAnLi9tb2RlbC9Dcml0ZXJpYU9iai5Nb2RlbCc7XHJcbmltcG9ydCB7IFJlcXVlc3RDcml0ZXJpYU9iaiB9IGZyb20gJy4vbW9kZWwvUmVxdWVzdENyaXRlcmlhT2JqLm1vZGVsJztcclxuaW1wb3J0IHsgQWRJbnNDb25zdGFudCB9IGZyb20gJy4vbW9kZWwvQWRJbnN0Q29uc3RhbnQnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBFeGNlbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2V4Y2VsLXNlcnZpY2UvZXhjZWwtc2VydmljZSc7XHJcbmltcG9ydCB7IHRyaWdnZXIsIHRyYW5zaXRpb24sIHN0eWxlLCBhbmltYXRlLCBzdGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItVUNTZWFyY2gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91Y3NlYXJjaC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVzOiBbXSxcclxuICBwcm92aWRlcnM6IFtFeGNlbFNlcnZpY2VdLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ2NoYW5nZURpdlNpemUnLCBbXHJcbiAgICAgIHN0YXRlKCdpbml0aWFsJywgc3R5bGUoe1xyXG4gICAgICAgIGhlaWdodDogJyonLFxyXG4gICAgICAgIG9wYWNpdHk6ICcxJyxcclxuICAgICAgfSkpLFxyXG4gICAgICBzdGF0ZSgnZmluYWwnLCBzdHlsZSh7XHJcbiAgICAgICAgaGVpZ2h0OiAnMHB4JyxcclxuICAgICAgICBvcGFjaXR5OiAnMCcsXHJcbiAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxyXG4gICAgICB9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ2luaXRpYWw9PmZpbmFsJywgYW5pbWF0ZSgnMzAwbXMnKSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ2ZpbmFsPT5pbml0aWFsJywgYW5pbWF0ZSgnMzAwbXMnKSlcclxuICAgIF0pLFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFVDU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZm9ybUlkU2VhcmNoJykgbXlGb3JtOiBFbGVtZW50UmVmO1xyXG4gIEBJbnB1dCgpIHNlYXJjaElucHV0OiBhbnk7XHJcbiAgQE91dHB1dCgpIHJlc3VsdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgcGFnZVNpemU6IGFueSA9IDEwO1xyXG4gIHBhZ2VOb3c6IGFueSA9IDE7XHJcbiAgb3JkZXJCeUtleTogYW55O1xyXG4gIG9yZGVyQnlWYWx1ZTogYW55O1xyXG4gIHRlbXBVcmw6IHN0cmluZztcclxuICB1cmxHZXQ6IHN0cmluZztcclxuICBzZXJ2ZXI6IGFueTtcclxuICBjb25maWd1cmF0aW9uOiBhbnk7XHJcbiAgaXRlbVVybDogYW55O1xyXG4gIGV4cG9ydERhdGE6IGFueTtcclxuICBFeGNlbERhdGE6IGFueTtcclxuICBpc0RhdGFMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0hpZGRlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjdXJyZW50U3RhdGUgPSAnaW5pdGlhbCc7XHJcblxyXG4gIGZvcm06IEZvcm1Hcm91cDtcclxuICBwYXlMb2FkID0gJyc7XHJcbiAgY291bnRGb3JtID0gMDtcclxuICBmb3JtYXR0ZWRBbW91bnQgPSAnJztcclxuICBhbW91bnQgPSAwO1xyXG4gIGFwaVVybDogc3RyaW5nO1xyXG4gIGFyckNyaXQ6IGFueTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgZXhjZWxTZXJ2aWNlOiBFeGNlbFNlcnZpY2UsIHByaXZhdGUgX3JlbmRlcmVyMjogUmVuZGVyZXIyLCBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudCkge1xyXG4gIH1cclxuXHJcbiAgaGlkZShvYmo6YW55KXtcclxuICAgIGNvbnNvbGUubG9nKG9iaik7XHJcbiAgICB2YXIgdGFyZ2V0ID1ldmVudC5zcmNFbGVtZW50O1xyXG4gICAgY29uc29sZS5sb2codGFyZ2V0KTtcclxuICAgIC8vIHZhciBpZEF0dHIgPSB0YXJnZXQuYXR0cmlidXRlcy5pZDtcclxuICAgIC8vIHZhciB2YWx1ZSA9IGlkQXR0ci5ub2RlVmFsdWU7XHJcblxyXG4gIH1cclxuXHJcbiAgY2hhbmdlU3RhdGUoKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRTdGF0ZSA9IHRoaXMuY3VycmVudFN0YXRlID09PSAnaW5pdGlhbCcgPyAnZmluYWwnIDogJ2luaXRpYWwnO1xyXG4gICAgdGhpcy5pc0hpZGRlbiA9IHRoaXMuaXNIaWRkZW4gPT09IGZhbHNlID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5jdXJyZW50U3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmFwaVVybCA9IHRoaXMuc2VhcmNoSW5wdXQuZW52aXJvbWVudFVybCArIHRoaXMuc2VhcmNoSW5wdXQuYXBpUXJ5UGFnaW5nO1xyXG4gICAgdGhpcy5hcnJDcml0ID0gdGhpcy5zZWFyY2hJbnB1dC5hcnJDcml0T2JqO1xyXG4gICAgbGV0IGpzID0gdGhpcy5fcmVuZGVyZXIyLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xyXG4gICAganMudGV4dCA9IGBcclxuICAgICAgICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgICQoXCIjZmxpcFwiKS5jbGljayhmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICAgICQoXCIjcGFuZWxcIikuc2xpZGVUb2dnbGUoXCJzbG93XCIpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIGA7XHJcbiAgICB0aGlzLl9yZW5kZXJlcjIuYXBwZW5kQ2hpbGQodGhpcy5fZG9jdW1lbnQuYm9keSwganMpO1xyXG4gICAgdGhpcy5pbml0aWF0ZUZvcm0oKTtcclxuICB9XHJcblxyXG4gIGluaXRpYXRlRm9ybSgpIHtcclxuICAgIHRoaXMuZ2V0SlNPTih0aGlzLnNlYXJjaElucHV0Ll91cmwpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgY29uc29sZS5sb2coZGF0YSk7XHJcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGRhdGE7XHJcbiAgICAgIHRoaXMudXJsR2V0ID0gZGF0YS51cmw7XHJcbiAgICAgIHRoaXMuZXhwb3J0RGF0YSA9IGRhdGEuZXhwb3J0RXhjZWw7XHJcbiAgICAgIHRoaXMuY291bnRGb3JtID0gZGF0YS5jb21wb25lbnQubGVuZ3RoO1xyXG4gICAgICB0aGlzLmlzRGF0YUxvYWRlZCA9IHRydWU7XHJcblxyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY291bnRGb3JtOyBpKyspIHtcclxuXHJcbiAgICAgICAgLy9pbmkga2FsYXUgZGF0YW55YSBkaSBsb2FkIGRhcmkgVVJMXHJcbiAgICAgICAgaWYgKGRhdGEuY29tcG9uZW50W2ldLmlzRnJvbVVSTCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0Q3JpdGVyaWFPYmooKTtcclxuICAgICAgICAgIHZhciBhcnJheUNyaXQgPSBuZXcgQXJyYXkoKTtcclxuICAgICAgICAgIHZhciBjcml0ZXJpYU9iamVjdCA9IG5ldyBDcml0ZXJpYU9iaigpO1xyXG4gICAgICAgICAgY3JpdGVyaWFPYmplY3QuRGF0YVR5cGUgPSBcInRleHRcIjtcclxuICAgICAgICAgIGNyaXRlcmlhT2JqZWN0LnByb3BOYW1lID0gZGF0YS5jb21wb25lbnRbaV0uY3JpdGVyaWFQcm9wTmFtZTtcclxuICAgICAgICAgIGNyaXRlcmlhT2JqZWN0LnZhbHVlID0gZGF0YS5jb21wb25lbnRbaV0uY3JpdGVyaWFQcm9wVmFsdWU7XHJcbiAgICAgICAgICBjcml0ZXJpYU9iamVjdC5yZXN0cmljdGlvbiA9IFwiZXFcIjtcclxuICAgICAgICAgIGFycmF5Q3JpdC5wdXNoKGNyaXRlcmlhT2JqZWN0KTtcclxuICAgICAgICAgIHJlcXVlc3QuY3JpdGVyaWEgPSBhcnJheUNyaXQ7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy9sZW1wYXIgb2JqZWN0bnlhIHNla2FsaWFuIHNhbWEgdXJsbnlhLCBubnRpIGRpIGJpbmQgZGkgZGFsZW0ga2FyZW5hIG1hc2FsYWggZGkgYXN5bmNueWFcclxuICAgICAgICAgIC8vYmlhciB0aWFwIGZ1bmN0aW9uIGFkYSBzdGF0ZTJueWEgc2VuZGlyaVxyXG4gICAgICAgICAgdGhpcy5yZXNvbHZlT2JqZWN0KGRhdGEuY29tcG9uZW50W2ldLCBkYXRhLmNvbXBvbmVudFtpXS51cmwsIHJlcXVlc3QpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGRhdGEuY29tcG9uZW50W2ldLnR5cGUgPT0gXCJudW1lcmljXCIpIHtcclxuICAgICAgICAgIGRhdGEuY29tcG9uZW50W2ldLnZhbHVlID0gcGFyc2VGbG9hdChkYXRhLmNvbXBvbmVudFtpXS52YWx1ZSkudG9Mb2NhbGVTdHJpbmcoJ2VuJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL3BlbmdlY2VrYW4gdGFuZ2dhbFxyXG4gICAgICAgIGlmIChkYXRhLmNvbXBvbmVudFtpXS50eXBlID09IFwiZGF0ZXBpY2tlclwiKSB7XHJcbiAgICAgICAgICBpZiAoZGF0YS5jb21wb25lbnRbaV0udmFsdWUuaW5jbHVkZXMoXCJCRFwiKSkge1xyXG4gICAgICAgICAgICBsZXQgYnVzaW5lc3NEYXRlID0gbmV3IERhdGUoSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIlVzZXJDb250ZXh0XCIpKS5CdXNpbmVzc0RhdGUpO1xyXG4gICAgICAgICAgICB2YXIgb3BlcmF0b3IgPSBkYXRhLmNvbXBvbmVudFtpXS52YWx1ZS5jaGFyQXQoMik7XHJcbiAgICAgICAgICAgIHZhciBkYXRlU2hvdyA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgICAgIGlmIChvcGVyYXRvciA9PSBcIi1cIikge1xyXG4gICAgICAgICAgICAgIHZhciB0ZW1wTWludXMgPSBkYXRhLmNvbXBvbmVudFtpXS52YWx1ZS5zcGxpdChcIi1cIiwgMik7XHJcbiAgICAgICAgICAgICAgdmFyIG51bURheSA9IHBhcnNlSW50KHRlbXBNaW51c1sxXSk7XHJcbiAgICAgICAgICAgICAgZGF0ZVNob3cuc2V0RGF0ZShidXNpbmVzc0RhdGUuZ2V0RGF0ZSgpIC0gbnVtRGF5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChvcGVyYXRvciA9PSBcIitcIikge1xyXG4gICAgICAgICAgICAgIHZhciB0ZW1wTWludXMgPSBkYXRhLmNvbXBvbmVudFtpXS52YWx1ZS5zcGxpdChcIitcIiwgMik7XHJcbiAgICAgICAgICAgICAgdmFyIG51bURheSA9IHBhcnNlSW50KHRlbXBNaW51c1sxXSk7XHJcbiAgICAgICAgICAgICAgZGF0ZVNob3cuc2V0RGF0ZShidXNpbmVzc0RhdGUuZ2V0RGF0ZSgpICsgbnVtRGF5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgZGF0ZVRleHQgPSBmb3JtYXREYXRlKGRhdGVTaG93LCAneXl5eS1NTS1kZCcsICdlbi1VUycpXHJcbiAgICAgICAgICAgIGRhdGEuY29tcG9uZW50W2ldLnZhbHVlID0gZGF0ZVRleHQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRKU09OKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcG9zdEpTT04odXJsOiBzdHJpbmcsIGNyaXRlcmlhOiBhbnkgPSBudWxsKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIGNyaXRlcmlhKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaENsaWNrKCkge1xyXG4gICAgdGhpcy5vcmRlckJ5S2V5ID0gbnVsbFxyXG4gICAgdGhpcy5vcmRlckJ5VmFsdWUgPSB0cnVlXHJcbiAgICB0aGlzLnBhZ2VOb3cgPSAxO1xyXG4gICAgdGhpcy5zZWFyY2godGhpcy5hcGlVcmwsIHRoaXMucGFnZU5vdywgdGhpcy5wYWdlU2l6ZSwgbnVsbCwgdGhpcy5hcnJDcml0KTtcclxuICB9XHJcblxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5pbml0aWF0ZUZvcm0oKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaChhcGlVcmw6IHN0cmluZywgcGFnZU5vOiBudW1iZXIsIHJvd1BlclBhZ2U6IG51bWJlciwgb3JkZXJCeTogYW55LCBhZGRDcml0OiBDcml0ZXJpYU9ialtdID0gbmV3IEFycmF5KCkpIHtcclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3RDcml0ZXJpYU9iaigpO1xyXG4gICAgdmFyIGFyckNyaXQgPSBuZXcgQXJyYXkoKTtcclxuXHJcbiAgICByZXF1ZXN0LnBhZ2VObyA9IHBhZ2VObztcclxuICAgIHJlcXVlc3Qucm93UGVyUGFnZSA9IHJvd1BlclBhZ2U7XHJcbiAgICByZXF1ZXN0Lm9yZGVyQnkgPSBvcmRlckJ5O1xyXG4gICAgcmVxdWVzdC5xdWVyeVN0cmluZyA9IHRoaXMuY29uZmlndXJhdGlvbi5xdWVyeXN0cmluZztcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY291bnRGb3JtOyBpKyspIHtcclxuICAgICAgdmFyIGNyaXRPYmogPSBuZXcgQ3JpdGVyaWFPYmooKTtcclxuICAgICAgdmFyIGNvbXBvbmVudCA9IHRoaXMubXlGb3JtLm5hdGl2ZUVsZW1lbnRbaV07XHJcbiAgICAgIGNyaXRPYmouRGF0YVR5cGUgPSBjb21wb25lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cGUnKTtcclxuICAgICAgY29uc29sZS5sb2coY29tcG9uZW50KTtcclxuICAgICAgLy9Jbmkga2h1c3VzIGthbGF1IGRhcmkgRHJvcCBEb3duXHJcbiAgICAgIGlmIChjb21wb25lbnQudmFsdWUgIT0gXCJcIikge1xyXG4gICAgICAgIGlmIChjb21wb25lbnQubm9kZU5hbWUgPT0gJ1NFTEVDVCcpIHtcclxuICAgICAgICAgIHZhciBkZGwgPSBjb21wb25lbnQub3B0aW9ucztcclxuICAgICAgICAgIHZhciB0ZXh0ID0gZGRsW2RkbC5zZWxlY3RlZEluZGV4XS52YWx1ZTtcclxuICAgICAgICAgIGlmICh0ZXh0ICE9IFwiQWxsXCIpIHtcclxuICAgICAgICAgICAgLy9LYWxhdSBEYXJpIERyb3Bkb3duIHVkYWggcGFzdGkgcGFrZSBFcVxyXG4gICAgICAgICAgICBjcml0T2JqLnJlc3RyaWN0aW9uID0gQWRJbnNDb25zdGFudC5SZXN0cmljdGlvbkVxO1xyXG4gICAgICAgICAgICBjcml0T2JqLnByb3BOYW1lID0gY29tcG9uZW50Lm5hbWU7XHJcbiAgICAgICAgICAgIGNyaXRPYmoudmFsdWUgPSB0ZXh0O1xyXG4gICAgICAgICAgICBhcnJDcml0LnB1c2goY3JpdE9iaik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgLy9LYWxhdSBhZGEgUGVyY2VudCBtYWthIHlhbmcgZGlwYWtlIG5udGkgYWRhbGFoIFJlc3RyaWN0aW9ucyBMaWtlXHJcbiAgICAgICAgICBjcml0T2JqLnByb3BOYW1lID0gY29tcG9uZW50Lm5hbWU7XHJcbiAgICAgICAgICBjcml0T2JqLnZhbHVlID0gY29tcG9uZW50LnZhbHVlO1xyXG4gICAgICAgICAgaWYgKGNvbXBvbmVudC52YWx1ZS5pbmNsdWRlcyhcIiVcIikpIHtcclxuICAgICAgICAgICAgY3JpdE9iai5yZXN0cmljdGlvbiA9IEFkSW5zQ29uc3RhbnQuUmVzdHJpY3Rpb25MaWtlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy9rYWxhdSBjb21wb25lbnRueWEgRGF0ZSwgcmVzdHJpY3Rpb25zbnlhIGxnc2cgYW1iaWwgZGFyaSBwcm9wZXJ0eSBKU09ObnlhXHJcbiAgICAgICAgICBlbHNlIGlmIChjb21wb25lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXJlc3RyaWN0aW9uJykgIT0gXCJcIiAmJiBjb21wb25lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXJlc3RyaWN0aW9uJykgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjcml0T2JqLnJlc3RyaWN0aW9uID0gY29tcG9uZW50LmdldEF0dHJpYnV0ZSgnZGF0YS1yZXN0cmljdGlvbicpO1xyXG4gICAgICAgICAgICBpZihjb21wb25lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXR5cGUnKT09J251bWVyaWMnKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgY29tcG9uZW50LnZhbHVlID0gcGFyc2VGbG9hdChjb21wb25lbnQudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpO1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNvbXBvbmVudC52YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjcml0T2JqLnJlc3RyaWN0aW9uID0gQWRJbnNDb25zdGFudC5SZXN0cmljdGlvbkVxXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBhcnJDcml0LnB1c2goY3JpdE9iaik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZiAoYWRkQ3JpdCAhPSBudWxsKSB7XHJcbiAgICAgIGlmIChhZGRDcml0Lmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhZGRDcml0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBhcnJDcml0LnB1c2goYWRkQ3JpdFtpXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnNlYXJjaElucHV0LmFkZENyaXRJbnB1dCAhPSBudWxsIHx8IHRoaXMuc2VhcmNoSW5wdXQuYWRkQ3JpdElucHV0ICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc2VhcmNoSW5wdXQuYWRkQ3JpdElucHV0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgYXJyQ3JpdC5wdXNoKHRoaXMuc2VhcmNoSW5wdXQuYWRkQ3JpdElucHV0W2ldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlcXVlc3QuY3JpdGVyaWEgPSBhcnJDcml0O1xyXG4gICAgdGhpcy5odHRwLnBvc3QoYXBpVXJsLCByZXF1ZXN0KS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHZhciBxcnlQYWdpbmcgPSB7XHJcbiAgICAgICAgcmVzcG9uc2U6IHJlc3BvbnNlLFxyXG4gICAgICAgIHBhZ2VOb3c6IHBhZ2VOb1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUubG9nKHFyeVBhZ2luZyk7XHJcbiAgICAgIHRoaXMucmVzdWx0LmVtaXQocXJ5UGFnaW5nKTtcclxuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsZXNzVGhhbkZvdXIoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5jb3VudEZvcm0gPiAzKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc29sdmVPYmplY3Qob2JqOiBhbnksIHVybDogc3RyaW5nLCBjcml0OiBSZXF1ZXN0Q3JpdGVyaWFPYmogPSBudWxsKSB7XHJcbiAgICBjb25zdCB2YWwgPSB0aGlzLnBvc3RKU09OKHVybCwgY3JpdCk7XHJcbiAgICB2YWwuc3Vic2NyaWJlKHRlbXBEYXRhID0+IHtcclxuICAgICAgb2JqLml0ZW1zVXJsID0gdGVtcERhdGEucmV0dXJuT2JqZWN0O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB0cmFuc2Zvcm1BbW91bnQoZWxlbWVudDogYW55KSB7XHJcbiAgICB0aGlzLmZvcm1hdHRlZEFtb3VudCA9IHBhcnNlRmxvYXQoZWxlbWVudC50YXJnZXQudmFsdWUpLnRvTG9jYWxlU3RyaW5nKCdlbicpO1xyXG4gICAgLy8gUmVtb3ZlIG9yIGNvbW1lbnQgdGhpcyBsaW5lIGlmIHlvdSBkb250IHdhbnRcclxuICAgIC8vIHRvIHNob3cgdGhlIGZvcm1hdHRlZCBhbW91bnQgaW4gdGhlIHRleHRib3guXHJcbiAgICBlbGVtZW50LnRhcmdldC52YWx1ZSA9IHRoaXMuZm9ybWF0dGVkQW1vdW50O1xyXG4gIH1cclxuXHJcbiAgdHJhbnNmb3JtVG9EZWNpbWFsKGVsZW1lbnQ6IGFueSkge1xyXG4gICAgZWxlbWVudC50YXJnZXQudmFsdWUgPSBwYXJzZUZsb2F0KGVsZW1lbnQudGFyZ2V0LnZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJykpO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0QXNYTFNYKCk6IHZvaWQge1xyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdENyaXRlcmlhT2JqKCk7XHJcbiAgICByZXF1ZXN0LnBhZ2VObyA9IDE7XHJcbiAgICByZXF1ZXN0LnJvd1BlclBhZ2UgPSA5OTk5O1xyXG4gICAgcmVxdWVzdC5vcmRlckJ5ID0gbnVsbDtcclxuICAgIHJlcXVlc3QuY3JpdGVyaWEgPSBbXTtcclxuXHJcbiAgICB0aGlzLmh0dHAucG9zdCh0aGlzLmFwaVVybCwgcmVxdWVzdCkuc3Vic2NyaWJlKFxyXG4gICAgICByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgdGhpcy5FeGNlbERhdGEgPSByZXNwb25zZVtcInJldHVybk9iamVjdFwiXVtcImRhdGFcIl07XHJcbiAgICAgICAgdGhpcy5leGNlbFNlcnZpY2UuZXhwb3J0QXNFeGNlbEZpbGUodGhpcy5FeGNlbERhdGEsICdzYW1wbGUnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZUV2ZW50KG9wdFZhbHVlLCBhZkZpbHRlcikge1xyXG4gICAgdmFyIGpzb25Db21wID0gdGhpcy5jb25maWd1cmF0aW9uLmNvbXBvbmVudDtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFmRmlsdGVyLmFmZmVjdGVkRmlsdGVyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwganNvbkNvbXAubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICBpZiAoanNvbkNvbXBbal0ubmFtZSA9PSBhZkZpbHRlci5hZmZlY3RlZEZpbHRlcltpXSkge1xyXG4gICAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdENyaXRlcmlhT2JqKCk7XHJcbiAgICAgICAgICB2YXIgYXJyYXlDcml0ID0gbmV3IEFycmF5KCk7XHJcblxyXG4gICAgICAgICAgaWYgKG9wdFZhbHVlICE9IFwiQWxsXCIpIHtcclxuICAgICAgICAgICAgdmFyIGNyaXRPYmogPSBuZXcgQ3JpdGVyaWFPYmooKTtcclxuICAgICAgICAgICAgY3JpdE9iai5EYXRhVHlwZSA9IGFmRmlsdGVyLmRhdGF0eXBlO1xyXG4gICAgICAgICAgICBjcml0T2JqLnByb3BOYW1lID0gYWZGaWx0ZXIubmFtZTtcclxuICAgICAgICAgICAgY3JpdE9iai52YWx1ZSA9IG9wdFZhbHVlO1xyXG4gICAgICAgICAgICBjcml0T2JqLnJlc3RyaWN0aW9uID0gQWRJbnNDb25zdGFudC5SZXN0cmljdGlvbkVxO1xyXG4gICAgICAgICAgICBhcnJheUNyaXQucHVzaChjcml0T2JqKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJlcXVlc3QuY3JpdGVyaWEgPSBhcnJheUNyaXQ7XHJcbiAgICAgICAgICB0aGlzLnJlc29sdmVPYmplY3QoanNvbkNvbXBbal0sIGpzb25Db21wW2pdLnVybCwgcmVxdWVzdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -536,9 +536,11 @@ class UCSearchComponent {
536
536
  }
537
537
  }
538
538
  }
539
- if (addCrit.length != 0 || addCrit != null) {
540
- for (var i = 0; i < addCrit.length; i++) {
541
- arrCrit.push(addCrit[i]);
539
+ if (addCrit != null) {
540
+ if (addCrit.length != 0) {
541
+ for (var i = 0; i < addCrit.length; i++) {
542
+ arrCrit.push(addCrit[i]);
543
+ }
542
544
  }
543
545
  }
544
546
  else if (this.searchInput.addCritInput != null || this.searchInput.addCritInput != undefined) {