@adins/ucsearch 2.11.12 → 2.11.13

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://@adins/ucsearch/lib/ucsearch.service.ts","ng://@adins/ucsearch/lib/model/adins-constant.ts","ng://@adins/ucsearch/lib/model/integration-obj.model.ts","ng://@adins/ucsearch/lib/model/input-search-obj.model.ts","ng://@adins/ucsearch/lib/model/criteria-obj.model.ts","ng://@adins/ucsearch/lib/model/request-criteria-obj.model.ts","ng://@adins/ucsearch/lib/services/excel-service/excel-service.ts","ng://@adins/ucsearch/lib/model/key-value-report.model.ts","ng://@adins/ucsearch/lib/model/key-value-uc-search.model.ts","ng://@adins/ucsearch/lib/ucsearch.component.ts","ng://@adins/ucsearch/lib/pipe/text-search.pipe.ts","ng://@adins/ucsearch/lib/ucsearch.module.ts"],"names":["UCSearchService","Injectable","args","providedIn","AdInsConstant","RestrictionBetween","RestrictionLike","RestrictionEq","RestrictionNeq","RestrictionGt","RestrictionGte","RestrictionLt","RestrictionLte","RestrictionIn","RestrictionNotIn","RestrictionOr","RestrictionOrNeq","RestrictionIsNull","RestrictionIsNotNull","RestrictionGTE","RestrictionLTE","showData","JoinTypeInner","JoinTypeLeft","IntegrationObj","this","baseUrl","apiPath","requestObj","Object","leftColumnToJoin","rightColumnToJoin","joinType","InputSearchObj","_url","enviromentUrl","title","apiQryPaging","arrCritObj","addCritInput","Array","listEnvironments","whereValue","fromValue","switchValue","integrationObj","isJoinExAPI","CriteriaObj","low","high","DataType","isCriteriaDataTable","RequestCriteriaObj","includeCount","includeData","isLoading","queryString","rowVersion","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","ExportTypeConstant","EXP_TYPE_PDF","EXP_TYPE_XLS","EXP_TYPE_XLSX","EXP_TYPE_DOC","EXP_TYPE_DOCX","ListKeyValueMonth","DictOfMonth","ListOfMonth","push","key","value","UCSearchComponent","onClick","ev","elemRef","nativeElement","contains","target","isListHide","defineProperty","content","searchForm","changeState","currentState","isHidden","ngOnInit","apiUrl","searchInput","arrCrit","js","_renderer2","createElement","text","appendChild","_document","body","cookieService","get","BisDt","DecryptString","BusinessDt","initiateForm","_this","getJSON","subscribe","configuration","exportData","exportExcel","exportTypeList","undefined","length","ExportTypeList","ExportType","countForm","component","isDataLoaded","i","isFromURL","request","arrayCrit","criteriaObject","propName","criteriaPropName","criteriaPropValue","restriction","criteria","path","y","environment","fullpath","url","resolveObject","parseFloat","toLocaleString","dtmType","includes","setDefaultValueMonth","items","setMonthDDL","setDefaultValueYear","setYearDDL","ddlType","readonly","businessDate","operator","charAt","dateShow","tempMinus","split","numDay","parseInt","setDate","getDate","dateText","formatDate","toUpperCase","minDate","datePipe","transform","maxDate","setTimeout","j","isEvent","itemsUrl","onChangeEvent","Key","SetRoleOfficeCodes","roleCode","JSON","parse","listOfficeRoleCodes","ddl","myForm","options","selectedIndex","trim","index","element","tempValue","numMonth","setMonth","getMonth","month","equation","match","toMin","toMax","tempEquation","minMax","substring","dictOfMonth","q","sort","a","b","numYear","setFullYear","getFullYear","year","ListOfYear","toString","http","postJSON","post","searchClick","order","orderby","pageNow","search","pageSize","reset","resetForm","pageNo","rowPerPage","orderBy","addCrit","IsQueryIn","IsBreak","querystring","whereQuery","x","fromQuery","formSeq","critObj","getAttribute","nodeName","label","toastr","warning","name","ddlList","listValue","replace","response","qryPaging","result","emit","reqGetAllData","GenerateReport","genRpt","ElRef","lessThanFour","obj","crit","tempData","ReturnObject","exclude","filter","affectedFilter","transformAmount","formattedAmount","transformToDecimal","exportAsXLSX","ExcelData","excelService","error","optValue","afFilter","jsonComp","datatype","filterPropName","SetProcessKey","idx","wfKeyFilter","switchCase","condList","condition","this_1","findIndex","property","conditions","isUser","username","localStorage","getItem","chipperText","chipperKey","chipperKeyArr","CryptoJS.enc","Utf8","iv","CryptoJS.lib","WordArray","create","CryptoJS.AES","decrypt","checkInputDate","minDateVal","maxDateVal","errorMessage","MinComponent","find","id","min","MaxComponent","max","dateWrong","selectedOption","item","descr","Value","Component","selector","template","providers","DatePipe","animations","trigger","state","style","height","opacity","overflow","transition","animate","HttpClient","Renderer2","Inject","DOCUMENT","ToastrService","CookieService","ElementRef","HostListener","ViewChild","Input","Output","isReport","EventEmitter","ClaimList","amount","TextSearchPipe","toLowerCase","indexOf","Pipe","customCurrencyMaskConfig","align","allowNegative","allowZero","decimal","precision","prefix","suffix","thousands","nullable","inputMode","CurrencyMaskInputMode","NATURAL","UCSearchModule","NgModule","declarations","imports","CommonModule","FormsModule","UcShowErrorsModule","UcDirectiveUpperCaseModule","NgxCurrencyModule","forRoot","TranslateModule","forChild","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","import { formatDate } from \"@angular/common\";\r\n\r\nexport class AdInsConstant {\r\n public static RestrictionBetween = \"Between\"\r\n public static RestrictionLike = \"Like\";\r\n public static RestrictionEq = \"Eq\";\r\n public static RestrictionNeq = \"NEQ\";\r\n public static RestrictionGt = \"GT\";\r\n public static RestrictionGte = \"GTE\";\r\n public static RestrictionLt = \"LT\";\r\n public static RestrictionLte = \"LTE\";\r\n public static RestrictionIn = \"IN\";\r\n public static RestrictionNotIn = \"NotIn\";\r\n public static RestrictionOr = \"Or\"; //pastikan ada 1 criteria sebelumnya\r\n public static RestrictionOrNeq = \"OrNeq\"; //pastikan ada 1 criteria sebelumnya\r\n public static RestrictionIsNull = \"ISNULL\";\r\n public static RestrictionIsNotNull = \"ISNOTNULL\";\r\n public static RestrictionGTE = \"GTE\";\r\n public static RestrictionLTE = \"LTE\";\r\n public static showData = \"10,50,100\";\r\n public static JoinTypeInner = \"INNER\";\r\n public static JoinTypeLeft = \"LEFT\";\r\n}\r\n","import { AdInsConstant } from \"./adins-constant\";\r\nexport class IntegrationObj {\r\n baseUrl: string;\r\n apiPath: string;\r\n requestObj: Object;\r\n leftColumnToJoin: string;\r\n rightColumnToJoin: string;\r\n joinType: string;\r\n \r\n constructor() {\r\n this.baseUrl = \"\";\r\n this.apiPath = \"\";\r\n this.requestObj = new Object();\r\n this.leftColumnToJoin = \"\";\r\n this.rightColumnToJoin = \"\";\r\n this.joinType = AdInsConstant.JoinTypeInner;\r\n }\r\n}","import { CriteriaObj } from \"./criteria-obj.model\";\r\nimport { IntegrationObj } from \"./integration-obj.model\";\r\n \r\nexport class InputSearchObj {\r\n _url: string;\r\n enviromentUrl: string;\r\n title: string;\r\n apiQryPaging: string;\r\n arrCritObj: any;\r\n addCritInput: Array<CriteriaObj>;\r\n listEnvironments: Array<EnvisObj>;\r\n whereValue: Array<WhereValueObj>;\r\n fromValue: Array<FromValueObj>;\r\n switchValue: Array<SwitchValueObj>;\r\n integrationObj: IntegrationObj;\r\n isJoinExAPI: boolean;\r\n \r\n constructor() {\r\n this._url = \"\";\r\n this.enviromentUrl = \"\";\r\n this.title = \"\";\r\n this.apiQryPaging = \"\";\r\n this.arrCritObj = null;\r\n this.addCritInput = new Array<CriteriaObj>();\r\n this.listEnvironments = new Array<EnvisObj>();\r\n this.whereValue = new Array<WhereValueObj>();\r\n this.fromValue = new Array<FromValueObj>();\r\n this.switchValue = new Array<SwitchValueObj>();\r\n this.integrationObj = new IntegrationObj();\r\n this.isJoinExAPI = false;\r\n }\r\n}\r\n\r\nexport class EnviObj {\r\n name: string;\r\n environment: string;\r\n\r\n constructor() {\r\n this.name = \"\";\r\n this.environment = \"\";\r\n }\r\n}\r\n\r\nexport class WhereValueObj {\r\n property: string;\r\n value: any;\r\n\r\n constructor() {\r\n this.property = \"\";\r\n }\r\n}\r\n\r\nexport class FromValueObj {\r\n property: string;\r\n value: any;\r\n\r\n constructor() {\r\n this.property = \"\";\r\n }\r\n}\r\n\r\nexport class SwitchValueObj {\r\n property: string;\r\n value: any;\r\n\r\n constructor() {\r\n this.property = \"\";\r\n }\r\n}\r\n\r\nexport class EnvisObj {\r\n environment: string;\r\n url: string;\r\n\r\n constructor() {\r\n this.environment = \"\";\r\n this.url = \"\";\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 listValue: Array<any>;\r\n isCriteriaDataTable: boolean;\r\n\r\n constructor() {\r\n this.low = 0;\r\n this.high = 0;\r\n this.DataType = 'Text';\r\n this.isCriteriaDataTable = false;\r\n }\r\n\r\n}","import { AdInsConstant } from \"./adins-constant\";\r\nimport { CriteriaObj } from \"./criteria-obj.model\";\r\nimport { IntegrationObj } from \"./integration-obj.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 rowVersion: any;\r\n integrationObj: IntegrationObj;\r\n joinType: string;\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 this.rowVersion = '';\r\n this.integrationObj = new IntegrationObj();\r\n this.joinType = AdInsConstant.JoinTypeInner;\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}","export class KeyValueReportObj {\r\n key: number;\r\n value: string;\r\n\r\n constructor() {\r\n this.key = 0;\r\n this.value = \"\";\r\n }\r\n}\r\n\r\nexport class ExportTypeConstant {\r\n public static EXP_TYPE_PDF = 0;\r\n public static EXP_TYPE_XLS = 1;\r\n public static EXP_TYPE_XLSX = 2;\r\n public static EXP_TYPE_DOC = 3;\r\n public static EXP_TYPE_DOCX = 4;\r\n}","export class KeyValueUCSearchObj {\r\n key: number;\r\n value: string;\r\n\r\n constructor() {\r\n this.key = 0;\r\n this.value = \"\";\r\n }\r\n}\r\n\r\nexport class ListKeyValueMonth {\r\n ListOfMonth: Array<KeyValueUCSearchObj>;\r\n DictOfMonth: { [month: number]: string } = {};\r\n constructor() {\r\n this.ListOfMonth = new Array<KeyValueUCSearchObj>();\r\n this.DictOfMonth = {}\r\n this.ListOfMonth.push({ key: 1, value: \"January\" });\r\n this.DictOfMonth[1]= \"January\";\r\n this.ListOfMonth.push({ key: 2, value: \"February\" });\r\n this.DictOfMonth[2]= \"February\";\r\n this.ListOfMonth.push({ key: 3, value: \"March\" });\r\n this.DictOfMonth[3]= \"March\";\r\n this.ListOfMonth.push({ key: 4, value: \"April\" });\r\n this.DictOfMonth[4]= \"April\";\r\n this.ListOfMonth.push({ key: 5, value: \"May\" });\r\n this.DictOfMonth[5]= \"May\";\r\n this.ListOfMonth.push({ key: 6, value: \"June\" });\r\n this.DictOfMonth[6]= \"June\";\r\n this.ListOfMonth.push({ key: 7, value: \"July\" });\r\n this.DictOfMonth[7]= \"July\";\r\n this.ListOfMonth.push({ key: 8, value: \"August\" });\r\n this.DictOfMonth[8]= \"August\";\r\n this.ListOfMonth.push({ key: 9, value: \"September\" });\r\n this.DictOfMonth[9]= \"September\";\r\n this.ListOfMonth.push({ key: 10, value: \"October\" });\r\n this.DictOfMonth[10]= \"October\";\r\n this.ListOfMonth.push({ key: 11, value: \"November\" });\r\n this.DictOfMonth[11]= \"November\";\r\n this.ListOfMonth.push({ key: 12, value: \"December\" });\r\n this.DictOfMonth[12]= \"December\";\r\n }\r\n}","import { Component, OnInit, Input, ViewChild, ElementRef, Inject, Renderer2, EventEmitter, Output, HostListener } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { FormGroup, NgForm } from '@angular/forms';\r\nimport { DatePipe, formatDate } from '@angular/common';\r\nimport { InputSearchObj } from './model/input-search-obj.model';\r\nimport { CriteriaObj } from './model/criteria-obj.model';\r\nimport { RequestCriteriaObj } from './model/request-criteria-obj.model';\r\nimport { AdInsConstant } from './model/adins-constant';\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\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ExportTypeConstant, KeyValueReportObj } from './model/key-value-report.model';\r\nimport { CookieService } from 'ngx-cookie';\r\nimport * as CryptoJS from 'crypto-js';\r\nimport { KeyValueUCSearchObj, ListKeyValueMonth } from './model/key-value-uc-search.model';\r\n\r\n@Component({\r\n selector: 'lib-UCSearch',\r\n templateUrl: './ucsearch.component.html',\r\n styleUrls: ['./ucsearch.component.css'],\r\n providers: [ExcelService, DatePipe],\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 isListHide: boolean = true;\r\n @HostListener('document:click', ['$event'])\r\n onClick(ev: MouseEvent) {\r\n const clickInside = this.elemRef.nativeElement.contains(ev.target);\r\n if (!clickInside) {\r\n this.isListHide = true;\r\n }\r\n }\r\n\r\n @ViewChild('enjiForm') set content(content: NgForm) {\r\n if (content) { // initially setter gets called with undefined\r\n this.searchForm = content;\r\n }\r\n }\r\n\r\n @ViewChild('formIdSearch') myForm: ElementRef;\r\n @Input() searchInput: InputSearchObj = new InputSearchObj();\r\n @Input() pageSize: number = 10;\r\n @Input() isReport: boolean = false;\r\n @Output() result: EventEmitter<any> = new EventEmitter();\r\n @Output() genRpt: EventEmitter<{ ExportType: number, ElRef: ElementRef }> = new EventEmitter<{ ExportType: number, ElRef: ElementRef }>();\r\n @Output() reqGetAllData: EventEmitter<any> = new EventEmitter();\r\n ExportTypeList: Array<KeyValueReportObj> = [\r\n {\r\n key: ExportTypeConstant.EXP_TYPE_PDF,\r\n value: \"PDF\"\r\n },\r\n {\r\n key: ExportTypeConstant.EXP_TYPE_XLS,\r\n value: \"Excel 2003\"\r\n },\r\n {\r\n key: ExportTypeConstant.EXP_TYPE_XLSX,\r\n value: \"Excel 2007\"\r\n },\r\n {\r\n key: ExportTypeConstant.EXP_TYPE_DOC,\r\n value: \"Document\"\r\n },\r\n {\r\n key: ExportTypeConstant.EXP_TYPE_DOCX,\r\n value: \"Document XML\"\r\n },\r\n ];\r\n ListOfMonth: ListKeyValueMonth = new ListKeyValueMonth();\r\n ListOfYear: Array<KeyValueUCSearchObj> = new Array<KeyValueUCSearchObj>();\r\n ClaimList: Array<any> = [\r\n {\r\n Key: AdInsConstant.RestrictionIsNotNull,\r\n Value: \"CLAIMED\"\r\n },\r\n {\r\n Key: AdInsConstant.RestrictionIsNull,\r\n Value: \"UNCLAIMED\"\r\n },\r\n ];\r\n\r\n ExportType: number = 0;\r\n\r\n pageNow: any = 1;\r\n configuration: any;\r\n exportData: any;\r\n ExcelData: any;\r\n isDataLoaded: boolean = false;\r\n isHidden: boolean = false;\r\n BisDt: string;\r\n BusinessDt: Date = new Date();\r\n dateWrong: boolean = false;\r\n readonly: boolean = false;\r\n\r\n currentState = 'initial';\r\n\r\n form: FormGroup;\r\n countForm = 0;\r\n formattedAmount = '';\r\n amount = 0;\r\n apiUrl: string;\r\n arrCrit: any;\r\n searchForm: NgForm;\r\n\r\n constructor(private http: HttpClient, private excelService: ExcelService, private _renderer2: Renderer2,\r\n @Inject(DOCUMENT) private _document, public toastr: ToastrService, private cookieService: CookieService,\r\n private datePipe: DatePipe, private elemRef: ElementRef) {\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 }\r\n\r\n ngOnInit() {\r\n console.log(\"ucsearch\");\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\r\n let value = this.cookieService.get('BusinessDateRaw');\r\n this.BisDt = this.DecryptString(value, \"AdInsFOU12345678\");\r\n this.BusinessDt = new Date(this.BisDt);\r\n this.initiateForm();\r\n }\r\n\r\n initiateForm() {\r\n this.getJSON(this.searchInput._url).subscribe(data => {\r\n this.configuration = data;\r\n this.exportData = data.exportExcel;\r\n if (data.exportTypeList != undefined && data.exportTypeList.length != 0) {\r\n this.ExportTypeList = data.exportTypeList;\r\n this.ExportType = this.ExportTypeList[0].key;\r\n }\r\n\r\n this.countForm = data.component.length;\r\n this.isDataLoaded = true;\r\n\r\n if (this.searchInput.title != undefined && this.searchInput.title != \"\") {\r\n this.configuration.title = this.searchInput.title;\r\n }\r\n\r\n for (let i = 0; i < this.countForm; i++) {\r\n //ini kalau datanya di load dari URL\r\n if (data.component[i].isFromURL == true) {\r\n let request = new RequestCriteriaObj();\r\n let arrayCrit = new Array();\r\n let 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 request[data.component[i].criteriaPropName] = data.component[i].criteriaPropValue;\r\n\r\n // Pengecekan penggunaan url atau path\r\n if (data.component[i].path != undefined && data.component[i].path != \"\") {\r\n if (this.searchInput.listEnvironments != undefined && this.searchInput.listEnvironments.length != 0) {\r\n for (let y = 0; y < this.searchInput.listEnvironments.length; y++) {\r\n if (data.component[i].environment == this.searchInput.listEnvironments[y].environment) {\r\n data.component[i].fullpath = this.searchInput.listEnvironments[y].url + data.component[i].path;\r\n break;\r\n }\r\n }\r\n } else {\r\n data.component[i].fullpath = data.component[i].url;\r\n }\r\n\r\n } else {\r\n data.component[i].fullpath = data.component[i].url;\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].fullpath, 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 ddl\r\n if (data.component[i].type == \"dropdown\") {\r\n if (data.component[i].dtmType != undefined) {\r\n if (data.component[i].dtmType.includes(\"month\")) {\r\n if (data.component[i].value != undefined && data.component[i].value.includes(\"BD\")) {\r\n data.component[i].value = this.setDefaultValueMonth(data.component[i].value);\r\n }\r\n data.component[i].items = this.setMonthDDL(data.component[i].dtmType);\r\n }\r\n if (data.component[i].dtmType.includes(\"year\")) {\r\n if (data.component[i].value != undefined && data.component[i].value.includes(\"BD\")) {\r\n data.component[i].value = this.setDefaultValueYear(data.component[i].value);\r\n }\r\n data.component[i].items = this.setYearDDL(data.component[i].dtmType);\r\n }\r\n }\r\n }\r\n if (!data.component[i].value) {\r\n data.component[i].value = \"\";\r\n if (data.component[i].ddlType == 'all') data.component[i].value = \"all\";\r\n if (data.component[i].ddlType == 'one') data.component[i].value = \"one\";\r\n }\r\n //pengecekan tanggal\r\n if (data.component[i].type == \"datepicker\") {\r\n this.readonly = data.component[i].readonly\r\n\r\n if (data.component[i].value.includes(\"BD\")) {\r\n let businessDate = new Date();\r\n if (this.BisDt != null) {\r\n businessDate = new Date(this.BisDt);\r\n }\r\n let operator = data.component[i].value.charAt(2);\r\n let dateShow = new Date();\r\n if (operator == \"-\") {\r\n let tempMinus = data.component[i].value.split(\"-\", 2);\r\n let numDay = parseInt(tempMinus[1]);\r\n businessDate.setDate(businessDate.getDate() - numDay);\r\n }\r\n else if (operator == \"+\") {\r\n let tempMinus = data.component[i].value.split(\"+\", 2);\r\n let numDay = parseInt(tempMinus[1]);\r\n businessDate.setDate(businessDate.getDate() + numDay);\r\n }\r\n dateShow = businessDate;\r\n let dateText = formatDate(dateShow, 'yyyy-MM-dd', 'en-US')\r\n data.component[i].value = dateText;\r\n }\r\n\r\n if (this.readonly = false) {\r\n if (data.component[i].restriction != undefined && data.component[i].restriction != \"\") {\r\n if (data.component[i].restriction.toUpperCase() == \"GT\") {\r\n let minDate = new Date(this.datePipe.transform(data.component[i].minDate, 'yyyy-MM-dd'));\r\n minDate.setDate(minDate.getDate() + 1);\r\n data.component[i].minDate = minDate;\r\n } else if (data.component[i].restriction.toUpperCase() == \"LT\") {\r\n let maxDate = new Date(this.datePipe.transform(data.component[i].maxDate, 'yyyy-MM-dd'));\r\n maxDate.setDate(maxDate.getDate() - 1);\r\n data.component[i].maxDate = maxDate;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n for (let j = 0; j < this.countForm; j++) {\r\n if (data.component[j].isEvent == true && this.configuration.component[j].itemsUrl.length == 1) {\r\n this.onChangeEvent(data.component[j].itemsUrl[0].Key, data.component[j]);\r\n }\r\n if (data.component[j].type == \"officeRoleCodes\" && this.configuration.component[j].itemsUrl.length > 0) {\r\n this.SetRoleOfficeCodes(j);\r\n }\r\n }\r\n }, 1000);\r\n });\r\n }\r\n\r\n SetRoleOfficeCodes(i: number) {\r\n let value: string = this.cookieService.get(\"UserAccess\");\r\n let userAccess: string = JSON.parse(this.DecryptString(value, \"AdInsFOU12345678\"));\r\n let roleCode: string = userAccess[\"RoleCode\"];\r\n let listOfficeRoleCodes: Array<string> = new Array();\r\n listOfficeRoleCodes.push(roleCode);\r\n let component = this.myForm.nativeElement[i];\r\n let ddl = component.options;\r\n let text = ddl[ddl.selectedIndex].value.trim();\r\n if (this.configuration.component[i].itemsUrl.length == 1 || (this.configuration.component[i].ddlType == 'all' && text == 'all')) {\r\n for (let index = 0; index < this.configuration.component[i].itemsUrl.length; index++) {\r\n const element = this.configuration.component[i].itemsUrl[index];\r\n listOfficeRoleCodes.push(element.Key);\r\n listOfficeRoleCodes.push(roleCode + \"-\" + element.Key);\r\n }\r\n } else {\r\n listOfficeRoleCodes.push(text);\r\n listOfficeRoleCodes.push(roleCode + \"-\" + text);\r\n }\r\n\r\n this.searchInput.integrationObj.requestObj[\"OfficeRoleCodes\"] = listOfficeRoleCodes;\r\n }\r\n\r\n setDefaultValueMonth(value) {\r\n let businessDate = new Date(this.BusinessDt);\r\n let operator = value.charAt(2);\r\n let tempValue = value.split(operator, 2);\r\n let numMonth = parseInt(tempValue[1]);\r\n if (!numMonth) numMonth = 1;\r\n if (operator == \"-\") {\r\n businessDate.setMonth(businessDate.getMonth() - numMonth);\r\n }\r\n else if (operator == \"+\") {\r\n businessDate.setMonth(businessDate.getMonth() + numMonth);\r\n }\r\n return businessDate.getMonth();\r\n }\r\n setMonthDDL(month) {\r\n let ListOfMonth: Array<KeyValueUCSearchObj>;\r\n let equation = month.match(\"[\\\\/+][-]|[-][\\\\/+]|\\\\/+|-\");\r\n let toMin: number = this.BusinessDt.getMonth();\r\n let toMax: number = this.BusinessDt.getMonth();\r\n let tempEquation = equation[0];\r\n let minMax: number = parseInt(month.substring(equation.index + equation[0].length));\r\n if (minMax >= 12) return this.ListOfMonth.ListOfMonth;\r\n if ((tempEquation == \"+-\" || tempEquation == \"-+\") && minMax >= 6) return this.ListOfMonth.ListOfMonth;\r\n let dictOfMonth: { [month: number]: string } = this.ListOfMonth.DictOfMonth;\r\n ListOfMonth.push({ key: toMin, value: dictOfMonth[toMin] });\r\n\r\n for (let q = 0; q < minMax; q++) {\r\n if (tempEquation.includes(\"-\")) {\r\n toMin--;\r\n if (toMin == 0) toMin = 12;\r\n ListOfMonth.push({ key: toMin, value: dictOfMonth[toMin] });\r\n }\r\n if (tempEquation.includes(\"+\")) {\r\n toMax++;\r\n if (toMax == 13) toMax = 1;\r\n ListOfMonth.push({ key: toMax, value: dictOfMonth[toMax] });\r\n }\r\n }\r\n ListOfMonth.sort((a, b) => {\r\n return a.key - b.key;\r\n });\r\n return ListOfMonth;\r\n }\r\n\r\n setDefaultValueYear(value) {\r\n let businessDate = new Date(this.BusinessDt);\r\n let operator = value.charAt(2);\r\n let tempValue = value.split(operator, 2);\r\n let numYear = parseInt(tempValue[1]);\r\n if (!numYear) numYear = 1;\r\n if (operator == \"-\") {\r\n businessDate.setFullYear(businessDate.getFullYear() - numYear);\r\n }\r\n else if (operator == \"+\") {\r\n businessDate.setFullYear(businessDate.getFullYear() + numYear);\r\n }\r\n return businessDate.getFullYear();\r\n }\r\n setYearDDL(year) {\r\n this.ListOfYear = new Array<KeyValueUCSearchObj>();\r\n let equation = year.match(\"[\\\\/+][-]|[-][\\\\/+]|\\\\/+|-\");\r\n let toMin: number = this.BusinessDt.getFullYear();\r\n let toMax: number = this.BusinessDt.getFullYear();\r\n let minMax: number = parseInt(year.substring(equation.index + equation[0].length));\r\n this.ListOfYear.push({ key: this.BusinessDt.getFullYear(), value: this.BusinessDt.getFullYear().toString() });\r\n\r\n for (let q = 0; q < minMax; q++) {\r\n if (equation[0] == \"-+\" || equation[0] == \"+-\") {\r\n toMin--;\r\n toMax++;\r\n this.ListOfYear.push({ key: toMin, value: toMin.toString() }, { key: toMax, value: toMax.toString() });\r\n } else if (equation[0] == \"-\") {\r\n toMin--;\r\n this.ListOfYear.push({ key: toMin, value: toMin.toString() });\r\n } else if (equation[0] == \"+\") {\r\n toMax++;\r\n this.ListOfYear.push({ key: toMax, value: toMax.toString() });\r\n }\r\n }\r\n this.ListOfYear.sort((a, b) => {\r\n return a.key - b.key;\r\n });\r\n return this.ListOfYear;\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 // for(let i=0;i<this.countForm;i++){\r\n // if(this.configuration.component[i].type == \"datepicker\"){\r\n // if ((i != (this.countForm-1)) && (this.configuration.component[i].name != this.configuration.component[i+1].name)){\r\n // this.checkInputDate(this.configuration.component[i]);\r\n // }\r\n // }\r\n // }\r\n // if(this.dateWrong) return;\r\n\r\n let order = null;\r\n if (this.configuration.orderby != null) {\r\n order = {\r\n key: this.configuration.orderby.key,\r\n value: this.configuration.orderby.value\r\n }\r\n }\r\n this.pageNow = 1;\r\n this.search(this.apiUrl, this.pageNow, this.pageSize, order, this.arrCrit);\r\n }\r\n\r\n reset() {\r\n this.searchForm.resetForm({\r\n ExportType: this.ExportTypeList[0].key\r\n });\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 let request = new RequestCriteriaObj();\r\n let arrCrit = new Array();\r\n let IsQueryIn = false;\r\n let IsBreak = false;\r\n\r\n // Inject whereQuery for where criteria\r\n if (this.searchInput.whereValue != undefined && this.searchInput.whereValue.length != 0) {\r\n this.configuration.querystring.whereQuery = new Array<any>();\r\n for (let x = 0; x < this.searchInput.whereValue.length; x++) {\r\n this.configuration.querystring.whereQuery.push(this.searchInput.whereValue[x].value);\r\n }\r\n }\r\n if (this.searchInput.fromValue != undefined && this.searchInput.fromValue.length != 0) {\r\n this.configuration.querystring.fromQuery = new Array<any>();\r\n for (let x = 0; x < this.searchInput.fromValue.length; x++) {\r\n this.configuration.querystring.fromQuery.push(this.searchInput.fromValue[x].value);\r\n }\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 let formSeq: number = 0;\r\n for (let i = 0; i < this.countForm; i++) {\r\n let critObj = new CriteriaObj();\r\n let component = this.myForm.nativeElement[formSeq];\r\n\r\n // // popup message if required\r\n // if (component.getAttribute('data-required') != null && component.getAttribute('data-required') == \"true\") {\r\n // let val = component.value.trim();\r\n // if (val == \"\") {\r\n // IsBreak = true;\r\n // let label = component.getAttribute('label');\r\n // this.toastr.warning(\"Please input \" + label);\r\n // break;\r\n // }\r\n // }\r\n\r\n if (this.configuration.component[i].type == \"dropdownSearch\") {\r\n formSeq += 3;\r\n } else {\r\n formSeq++;\r\n }\r\n\r\n critObj.DataType = component.getAttribute('data-type');\r\n //Ini khusus kalau dari Drop Down\r\n if (component.getAttribute('query-in') != null && component.getAttribute('query-in') == \"true\") {\r\n IsQueryIn = true;\r\n }\r\n else {\r\n IsQueryIn = false;\r\n }\r\n if (component.value != \"\") {\r\n if (component.nodeName == 'SELECT') {\r\n let ddl = component.options;\r\n let text = ddl[ddl.selectedIndex].value.trim();\r\n if (text == \"one\") {\r\n IsBreak = true;\r\n let label = component.getAttribute('label');\r\n this.toastr.warning(\"Please select \" + label);\r\n break;\r\n }\r\n\r\n if (component.getAttribute('data-crit-datatable') != \"\" && component.getAttribute('data-crit-datatable') != null) {\r\n critObj.isCriteriaDataTable = component.getAttribute('data-crit-datatable');\r\n }\r\n\r\n if (this.configuration.component[i].type == \"taskDefinitionKey\" ||\r\n this.configuration.component[i].type == \"processKey\")\r\n continue;\r\n\r\n if (this.configuration.component[i].type == \"claim\") {\r\n critObj.propName = component.getAttribute('data-name');\r\n critObj.restriction = text;\r\n critObj.value = null;\r\n arrCrit.push(critObj);\r\n } else {\r\n if (text != \"all\" && text != \"one\") {\r\n //Kalau Dari Dropdown udah pasti pake Eq\r\n critObj.restriction = AdInsConstant.RestrictionEq;\r\n if (component.name != \"\") {\r\n critObj.propName = component.name;\r\n } else {\r\n critObj.propName = component.getAttribute('data-name');\r\n }\r\n critObj.value = text;\r\n arrCrit.push(critObj);\r\n } else if (text == \"all\" && IsQueryIn == true && component.options.length != 0) {\r\n let ddlList = new Array();\r\n for (let x = 0; x < component.options.length; x++) {\r\n if (x != 0) {\r\n ddlList.push(component.options[x].value);\r\n }\r\n }\r\n if (ddlList.length != 0) {\r\n critObj.restriction = AdInsConstant.RestrictionIn;\r\n if (component.name != \"\") {\r\n critObj.propName = component.name;\r\n } else {\r\n critObj.propName = component.getAttribute('data-name');\r\n }\r\n critObj.listValue = ddlList;\r\n arrCrit.push(critObj);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n //Kalau ada Percent maka yang dipake nnti adalah Restrictions Like\r\n if (component.name != \"\") {\r\n critObj.propName = component.name;\r\n } else {\r\n critObj.propName = component.getAttribute('data-name');\r\n }\r\n critObj.value = component.value.trim();\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 critObj.value = parseFloat(component.value.replace(/,/g, '')).toString();\r\n }\r\n if (critObj.restriction.toUpperCase() == \"LIKE\") {\r\n critObj.value = \"%\" + component.value.trim() + \"%\";\r\n critObj.restriction = AdInsConstant.RestrictionLike\r\n }\r\n }\r\n else {\r\n critObj.restriction = AdInsConstant.RestrictionEq\r\n }\r\n if (component.getAttribute('data-crit-datatable') != \"\" && component.getAttribute('data-crit-datatable') != null) {\r\n critObj.isCriteriaDataTable = component.getAttribute('data-crit-datatable');\r\n }\r\n arrCrit.push(critObj);\r\n }\r\n }\r\n }\r\n\r\n if (IsBreak) {\r\n return;\r\n }\r\n\r\n if (addCrit != null && addCrit != undefined) {\r\n if (addCrit.length != 0) {\r\n for (let i = 0; i < addCrit.length; i++) {\r\n arrCrit.push(addCrit[i]);\r\n }\r\n } else if (this.searchInput.addCritInput != null || this.searchInput.addCritInput != undefined) {\r\n for (let i = 0; i < this.searchInput.addCritInput.length; i++) {\r\n arrCrit.push(this.searchInput.addCritInput[i]);\r\n }\r\n }\r\n }\r\n else if (this.searchInput.addCritInput != null || this.searchInput.addCritInput != undefined) {\r\n for (let 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\r\n if (!this.searchInput.isJoinExAPI) {\r\n request.integrationObj = null;\r\n } else {\r\n request.integrationObj = this.searchInput.integrationObj;\r\n }\r\n\r\n this.http.post(apiUrl, request).subscribe((response) => {\r\n let qryPaging = {\r\n response: response,\r\n pageNow: pageNo\r\n }\r\n console.log(qryPaging);\r\n this.result.emit(qryPaging);\r\n this.reqGetAllData.emit(request);\r\n return response;\r\n });\r\n }\r\n\r\n GenerateReport() {\r\n this.genRpt.emit({ ExportType: this.ExportType, ElRef: this.myForm });\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 = new Array();\r\n obj.itemsUrl = tempData.ReturnObject;\r\n\r\n if (obj.exclude != undefined && obj.exclude != \"\") {\r\n obj.itemsUrl = obj.itemsUrl.filter((value) => !obj.exclude.includes(value.Key));\r\n }\r\n\r\n if (obj.affectedFilter && obj.itemsUrl.length == 1) {\r\n this.onChangeEvent(obj.itemsUrl[0].Key, obj);\r\n }\r\n });\r\n }\r\n\r\n transformAmount(element: any) {\r\n this.formattedAmount = parseFloat(element.target.value).toLocaleString('en');\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 let request = new RequestCriteriaObj();\r\n request.pageNo = 1;\r\n request.rowPerPage = 9999;\r\n request.orderBy = null;\r\n request.criteria = [];\r\n request.queryString = this.configuration.querystring;\r\n if (!this.searchInput.isJoinExAPI) {\r\n request.integrationObj = null;\r\n } else {\r\n request.integrationObj = this.searchInput.integrationObj;\r\n }\r\n\r\n this.http.post(this.apiUrl, request).subscribe(\r\n response => {\r\n this.ExcelData = response[\"Data\"];\r\n this.excelService.exportAsExcelFile(this.ExcelData, 'sample');\r\n },\r\n (error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n onChangeEvent(optValue, afFilter) {\r\n let jsonComp = this.configuration.component;\r\n\r\n for (let i = 0; i < afFilter.affectedFilter.length; i++) {\r\n for (let j = 0; j < jsonComp.length; j++) {\r\n if (jsonComp[j].name == afFilter.affectedFilter[i]) {\r\n let request = new RequestCriteriaObj();\r\n let arrayCrit = new Array();\r\n\r\n if (optValue != \"all\" && optValue != \"one\") {\r\n let critObj = new CriteriaObj();\r\n critObj.DataType = afFilter.datatype;\r\n if (afFilter.filterPropName != undefined || afFilter.filterPropName != \"\") {\r\n request[afFilter.filterPropName] = optValue;\r\n critObj.propName = afFilter.filterPropName;\r\n } else {\r\n critObj.propName = afFilter.name;\r\n request[afFilter.name] = optValue;\r\n }\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 if (jsonComp[j].path != undefined && jsonComp[j].path != \"\") {\r\n if (this.searchInput.listEnvironments != undefined && this.searchInput.listEnvironments.length != 0) {\r\n for (let y = 0; y < this.searchInput.listEnvironments.length; y++) {\r\n if (jsonComp[j].environment == this.searchInput.listEnvironments[y].environment) {\r\n jsonComp[j].fullpath = this.searchInput.listEnvironments[y].url + jsonComp[j].path;\r\n break;\r\n }\r\n }\r\n } else {\r\n jsonComp[j].fullpath = jsonComp[j].url;\r\n }\r\n\r\n } else {\r\n jsonComp[j].fullpath = jsonComp[j].url;\r\n }\r\n this.resolveObject(jsonComp[j], jsonComp[j].fullpath, request);\r\n }\r\n }\r\n }\r\n }\r\n\r\n SetProcessKey(idx: number, wfKeyFilter: string) {\r\n let component = this.myForm.nativeElement[idx];\r\n let ddl = component.options;\r\n let text = ddl[ddl.selectedIndex].value.trim();\r\n if (text) {\r\n this.searchInput.integrationObj.requestObj[wfKeyFilter] = text;\r\n }\r\n }\r\n\r\n switchCase(condList) {\r\n let condition = false;\r\n\r\n for (let i = 0; i < condList.conditions.length; i++) {\r\n let idx = this.searchInput.switchValue.findIndex(x => x.property == condList.conditions[i].property);\r\n if (condList.conditions[i].restriction == \"EQ\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (this.searchInput.switchValue[idx].value == condList.conditions[i].value) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n let username = localStorage.getItem(\"Username\");\r\n if (this.searchInput.switchValue[idx].value == username) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"NEQ\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (this.searchInput.switchValue[idx].value != condList.conditions[i].value) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n let username = localStorage.getItem(\"Username\");\r\n if (this.searchInput.switchValue[idx].value != username) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"GT\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (this.searchInput.switchValue[idx].value > condList.conditions[i].value) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n let username = localStorage.getItem(\"Username\");\r\n if (this.searchInput.switchValue[idx].value > username) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"GTE\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (this.searchInput.switchValue[idx].value >= condList.conditions[i].value) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n let username = localStorage.getItem(\"Username\");\r\n if (this.searchInput.switchValue[idx].value >= username) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"LT\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (this.searchInput.switchValue[idx].value < condList.conditions[i].value) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n let username = localStorage.getItem(\"Username\");\r\n if (this.searchInput.switchValue[idx].value < username) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"LTE\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (this.searchInput.switchValue[idx].value <= condList.conditions[i].value) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n let username = localStorage.getItem(\"Username\");\r\n if (this.searchInput.switchValue[idx].value <= username) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return condition;\r\n\r\n }\r\n\r\n private DecryptString(chipperText: string, chipperKey: string) {\r\n if (\r\n chipperKey == undefined || chipperKey.trim() == '' ||\r\n chipperText == undefined || chipperText.trim() == ''\r\n ) return chipperText;\r\n let chipperKeyArr = CryptoJS.enc.Utf8.parse(chipperKey);\r\n let iv = CryptoJS.lib.WordArray.create([0x00, 0x00, 0x00, 0x00]);\r\n let decrypted = CryptoJS.AES.decrypt(chipperText, chipperKeyArr, { iv: iv });\r\n let plainText = decrypted.toString(CryptoJS.enc.Utf8);\r\n return plainText;\r\n }\r\n\r\n checkInputDate(component: any) {\r\n let minDateVal;\r\n let maxDateVal;\r\n let label;\r\n let errorMessage = new Array<string>();\r\n\r\n let MinComponent = this.configuration.component.find(x => x.name == component.name && (x.restriction.toUpperCase() == \"GTE\")) == undefined ? this.configuration.component.find(x => x.name == component.name && (x.restriction.toUpperCase() == \"GT\")) : this.configuration.component.find(x => x.name == component.name && (x.restriction.toUpperCase() == \"GTE\"));\r\n if (MinComponent != undefined) {\r\n minDateVal = this.myForm.nativeElement[MinComponent.id].min == \"\" ? null : new Date(this.myForm.nativeElement[MinComponent.id].min);\r\n label = MinComponent.label.split(\">\", 2);\r\n if (minDateVal != null) {\r\n if (MinComponent.restriction.toUpperCase() == \"GT\") {\r\n minDateVal.setDate(minDateVal.getDate() - 1);\r\n errorMessage.push(\" must be greater than \");\r\n } else if (MinComponent.restriction.toUpperCase() == \"GTE\") {\r\n errorMessage.push(\" must be greater than or equals to \");\r\n }\r\n }\r\n }\r\n\r\n let MaxComponent = this.configuration.component.find(x => x.name == component.name && (x.restriction.toUpperCase() == \"LTE\")) == undefined ? this.configuration.component.find(x => x.name == component.name && (x.restriction.toUpperCase() == \"LT\")) : this.configuration.component.find(x => x.name == component.name && (x.restriction.toUpperCase() == \"LTE\"));\r\n if (MaxComponent != undefined) {\r\n maxDateVal = this.myForm.nativeElement[MaxComponent.id].max == \"\" ? null : new Date(this.myForm.nativeElement[MaxComponent.id].max);\r\n label = MaxComponent.label.split(\"<\", 2);\r\n if (maxDateVal != null) {\r\n if (MaxComponent.restriction.toUpperCase() == \"LT\") {\r\n maxDateVal.setDate(maxDateVal.getDate() + 1);\r\n errorMessage.push(\" must be less than \");\r\n } else if (MaxComponent.restriction.toUpperCase() == \"LTE\") {\r\n errorMessage.push(\" must be less than or equals to \");\r\n }\r\n }\r\n }\r\n\r\n if (minDateVal != null && maxDateVal == null && new Date(this.myForm.nativeElement[MinComponent.id].value) < minDateVal) {\r\n this.toastr.warning(label[0] + errorMessage[0] + formatDate(minDateVal, 'dd MMMM yyyy', 'en-US') + \".\")\r\n this.dateWrong = true;\r\n } else if (maxDateVal != null && minDateVal == null && new Date(this.myForm.nativeElement[MaxComponent.id].value) > maxDateVal) {\r\n this.toastr.warning(label[0] + errorMessage[0] + formatDate(maxDateVal, 'dd MMMM yyyy', 'en-US') + \".\")\r\n this.dateWrong = true;\r\n } else if (minDateVal != null && maxDateVal != null) {\r\n if (new Date(this.myForm.nativeElement[MaxComponent.id].value) > maxDateVal || new Date(this.myForm.nativeElement[MinComponent.id].value) < minDateVal) {\r\n this.toastr.warning(label[0] + errorMessage[0] + formatDate(minDateVal, 'dd MMMM yyyy', 'en-US') + \" and\" + errorMessage[1] + formatDate(maxDateVal, 'dd MMMM yyyy', 'en-US') + \".\")\r\n this.dateWrong = true;\r\n } else {\r\n this.dateWrong = false;\r\n }\r\n } else {\r\n this.dateWrong = false;\r\n }\r\n }\r\n\r\n selectedOption(item: { Key: string, Value: string },crit:any) {\r\n crit.descr = item.Value;\r\n crit.isListHide = true;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'textSearch'\r\n})\r\nexport class TextSearchPipe implements PipeTransform {\r\n\r\n transform(items: any[], text?: any): any {\r\n if(!text){\r\n return items;\r\n }\r\n return items.filter((item)=>{\r\n if(item.value && typeof item.value === 'string'){\r\n return item.value.toLowerCase().indexOf(text.toLowerCase())> -1;\r\n }\r\n return false;\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\nimport { FormsModule } from '@angular/forms';\r\nimport { CurrencyMaskInputMode, NgxCurrencyModule } from 'ngx-currency';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { UcShowErrorsModule } from '@adins/uc-show-errors';\r\nimport { UcDirectiveUpperCaseModule } from '@adins/uc-directive-upper-case';\r\nimport { TextSearchPipe } from './pipe/text-search.pipe';\r\n\r\nexport const customCurrencyMaskConfig = { \r\n align: \"right\",\r\n allowNegative: false,\r\n allowZero: true,\r\n decimal: \".\",\r\n precision: 2,\r\n prefix: \"\",\r\n suffix: \"\",\r\n thousands: \",\",\r\n nullable: false,\r\n inputMode: CurrencyMaskInputMode.NATURAL };\r\n\r\n@NgModule({\r\n declarations: [UCSearchComponent,TextSearchPipe],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n UcShowErrorsModule,\r\n UcDirectiveUpperCaseModule,\r\n NgxCurrencyModule.forRoot(customCurrencyMaskConfig),\r\n TranslateModule.forChild()\r\n ],\r\n exports: [UCSearchComponent]\r\n})\r\nexport class UCSearchModule { }\r\n"]}
1
+ {"version":3,"sources":["ng://@adins/ucsearch/lib/ucsearch.service.ts","ng://@adins/ucsearch/lib/model/adins-constant.ts","ng://@adins/ucsearch/lib/model/integration-obj.model.ts","ng://@adins/ucsearch/lib/model/input-search-obj.model.ts","ng://@adins/ucsearch/lib/model/criteria-obj.model.ts","ng://@adins/ucsearch/lib/model/request-criteria-obj.model.ts","ng://@adins/ucsearch/lib/services/excel-service/excel-service.ts","ng://@adins/ucsearch/lib/model/key-value-report.model.ts","ng://@adins/ucsearch/lib/model/key-value-uc-search.model.ts","ng://@adins/ucsearch/lib/ucsearch.component.ts","ng://@adins/ucsearch/lib/pipe/text-search.pipe.ts","ng://@adins/ucsearch/lib/ucsearch.module.ts"],"names":["UCSearchService","Injectable","args","providedIn","AdInsConstant","RestrictionBetween","RestrictionLike","RestrictionEq","RestrictionNeq","RestrictionGt","RestrictionGte","RestrictionLt","RestrictionLte","RestrictionIn","RestrictionNotIn","RestrictionOr","RestrictionOrNeq","RestrictionIsNull","RestrictionIsNotNull","RestrictionGTE","RestrictionLTE","showData","JoinTypeInner","JoinTypeLeft","IntegrationObj","this","baseUrl","apiPath","requestObj","Object","leftColumnToJoin","rightColumnToJoin","joinType","InputSearchObj","_url","enviromentUrl","title","apiQryPaging","arrCritObj","addCritInput","Array","listEnvironments","whereValue","fromValue","switchValue","integrationObj","isJoinExAPI","CriteriaObj","low","high","DataType","isCriteriaDataTable","RequestCriteriaObj","includeCount","includeData","isLoading","queryString","rowVersion","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","ExportTypeConstant","EXP_TYPE_PDF","EXP_TYPE_XLS","EXP_TYPE_XLSX","EXP_TYPE_DOC","EXP_TYPE_DOCX","ListKeyValueMonth","DictOfMonth","ListOfMonth","push","key","value","UCSearchComponent","onClick","ev","elemRef","nativeElement","contains","target","isListHide","defineProperty","content","searchForm","changeState","currentState","isHidden","ngOnInit","apiUrl","searchInput","arrCrit","js","_renderer2","createElement","text","appendChild","_document","body","cookieService","get","BisDt","DecryptString","BusinessDt","initiateForm","_this","getJSON","subscribe","configuration","exportData","exportExcel","exportTypeList","undefined","length","ExportTypeList","ExportType","countForm","component","isDataLoaded","i","isFromURL","request","arrayCrit","criteriaObject","propName","criteriaPropName","criteriaPropValue","restriction","criteria","path","y","environment","fullpath","url","resolveObject","parseFloat","toLocaleString","dtmType","includes","setDefaultValueMonth","items","setMonthDDL","setDefaultValueYear","setYearDDL","ddlType","readonly","businessDate","operator","charAt","dateShow","tempMinus","split","numDay","parseInt","setDate","getDate","dateText","formatDate","toUpperCase","minDate","datePipe","transform","maxDate","setTimeout","j","isEvent","itemsUrl","onChangeEvent","Key","SetRoleOfficeCodes","roleCode","JSON","parse","listOfficeRoleCodes","ddl","myForm","options","selectedIndex","trim","index","element","tempValue","numMonth","setMonth","getMonth","month","equation","match","toMin","toMax","tempEquation","minMax","substring","dictOfMonth","q","sort","a","b","numYear","setFullYear","getFullYear","year","ListOfYear","toString","http","postJSON","post","searchClick","order","orderby","pageNow","search","pageSize","reset","resetForm","pageNo","rowPerPage","orderBy","addCrit","IsQueryIn","IsBreak","querystring","whereQuery","x","fromQuery","formSeq","critObj","getAttribute","nodeName","label","toastr","warning","name","ddlList","listValue","replace","response","qryPaging","result","emit","reqGetAllData","GenerateReport","genRpt","ElRef","lessThanFour","obj","crit","tempData","ReturnObject","exclude","filter","affectedFilter","transformAmount","formattedAmount","transformToDecimal","exportAsXLSX","ExcelData","excelService","error","optValue","afFilter","jsonComp","datatype","filterPropName","SetProcessKey","idx","wfKeyFilter","switchCase","condList","condition","this_1","findIndex","property","conditions","isUser","username","localStorage","getItem","chipperText","chipperKey","chipperKeyArr","CryptoJS.enc","Utf8","iv","CryptoJS.lib","WordArray","create","CryptoJS.AES","decrypt","checkInputDate","minDateVal","maxDateVal","errorMessage","MinComponent","find","id","min","MaxComponent","max","dateWrong","selectedOption","item","descr","Value","Component","selector","template","providers","DatePipe","animations","trigger","state","style","height","opacity","overflow","transition","animate","HttpClient","Renderer2","Inject","DOCUMENT","ToastrService","CookieService","ElementRef","HostListener","ViewChild","Input","Output","isReport","EventEmitter","ClaimList","amount","TextSearchPipe","toLowerCase","indexOf","Pipe","customCurrencyMaskConfig","align","allowNegative","allowZero","decimal","precision","prefix","suffix","thousands","nullable","inputMode","CurrencyMaskInputMode","NATURAL","UCSearchModule","NgModule","declarations","imports","CommonModule","FormsModule","UcShowErrorsModule","UcDirectiveUpperCaseModule","NgxCurrencyModule","forRoot","TranslateModule","forChild","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","import { formatDate } from \"@angular/common\";\r\n\r\nexport class AdInsConstant {\r\n public static RestrictionBetween = \"Between\"\r\n public static RestrictionLike = \"Like\";\r\n public static RestrictionEq = \"Eq\";\r\n public static RestrictionNeq = \"NEQ\";\r\n public static RestrictionGt = \"GT\";\r\n public static RestrictionGte = \"GTE\";\r\n public static RestrictionLt = \"LT\";\r\n public static RestrictionLte = \"LTE\";\r\n public static RestrictionIn = \"IN\";\r\n public static RestrictionNotIn = \"NotIn\";\r\n public static RestrictionOr = \"Or\"; //pastikan ada 1 criteria sebelumnya\r\n public static RestrictionOrNeq = \"OrNeq\"; //pastikan ada 1 criteria sebelumnya\r\n public static RestrictionIsNull = \"ISNULL\";\r\n public static RestrictionIsNotNull = \"ISNOTNULL\";\r\n public static RestrictionGTE = \"GTE\";\r\n public static RestrictionLTE = \"LTE\";\r\n public static showData = \"10,50,100\";\r\n public static JoinTypeInner = \"INNER\";\r\n public static JoinTypeLeft = \"LEFT\";\r\n}\r\n","import { AdInsConstant } from \"./adins-constant\";\r\nexport class IntegrationObj {\r\n baseUrl: string;\r\n apiPath: string;\r\n requestObj: Object;\r\n leftColumnToJoin: string;\r\n rightColumnToJoin: string;\r\n joinType: string;\r\n \r\n constructor() {\r\n this.baseUrl = \"\";\r\n this.apiPath = \"\";\r\n this.requestObj = new Object();\r\n this.leftColumnToJoin = \"\";\r\n this.rightColumnToJoin = \"\";\r\n this.joinType = AdInsConstant.JoinTypeInner;\r\n }\r\n}","import { CriteriaObj } from \"./criteria-obj.model\";\r\nimport { IntegrationObj } from \"./integration-obj.model\";\r\n \r\nexport class InputSearchObj {\r\n _url: string;\r\n enviromentUrl: string;\r\n title: string;\r\n apiQryPaging: string;\r\n arrCritObj: any;\r\n addCritInput: Array<CriteriaObj>;\r\n listEnvironments: Array<EnvisObj>;\r\n whereValue: Array<WhereValueObj>;\r\n fromValue: Array<FromValueObj>;\r\n switchValue: Array<SwitchValueObj>;\r\n integrationObj: IntegrationObj;\r\n isJoinExAPI: boolean;\r\n \r\n constructor() {\r\n this._url = \"\";\r\n this.enviromentUrl = \"\";\r\n this.title = \"\";\r\n this.apiQryPaging = \"\";\r\n this.arrCritObj = null;\r\n this.addCritInput = new Array<CriteriaObj>();\r\n this.listEnvironments = new Array<EnvisObj>();\r\n this.whereValue = new Array<WhereValueObj>();\r\n this.fromValue = new Array<FromValueObj>();\r\n this.switchValue = new Array<SwitchValueObj>();\r\n this.integrationObj = new IntegrationObj();\r\n this.isJoinExAPI = false;\r\n }\r\n}\r\n\r\nexport class EnviObj {\r\n name: string;\r\n environment: string;\r\n\r\n constructor() {\r\n this.name = \"\";\r\n this.environment = \"\";\r\n }\r\n}\r\n\r\nexport class WhereValueObj {\r\n property: string;\r\n value: any;\r\n\r\n constructor() {\r\n this.property = \"\";\r\n }\r\n}\r\n\r\nexport class FromValueObj {\r\n property: string;\r\n value: any;\r\n\r\n constructor() {\r\n this.property = \"\";\r\n }\r\n}\r\n\r\nexport class SwitchValueObj {\r\n property: string;\r\n value: any;\r\n\r\n constructor() {\r\n this.property = \"\";\r\n }\r\n}\r\n\r\nexport class EnvisObj {\r\n environment: string;\r\n url: string;\r\n\r\n constructor() {\r\n this.environment = \"\";\r\n this.url = \"\";\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 listValue: Array<any>;\r\n isCriteriaDataTable: boolean;\r\n\r\n constructor() {\r\n this.low = 0;\r\n this.high = 0;\r\n this.DataType = 'Text';\r\n this.isCriteriaDataTable = false;\r\n }\r\n\r\n}","import { AdInsConstant } from \"./adins-constant\";\r\nimport { CriteriaObj } from \"./criteria-obj.model\";\r\nimport { IntegrationObj } from \"./integration-obj.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 rowVersion: any;\r\n integrationObj: IntegrationObj;\r\n joinType: string;\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 this.rowVersion = '';\r\n this.integrationObj = new IntegrationObj();\r\n this.joinType = AdInsConstant.JoinTypeInner;\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}","export class KeyValueReportObj {\r\n key: number;\r\n value: string;\r\n\r\n constructor() {\r\n this.key = 0;\r\n this.value = \"\";\r\n }\r\n}\r\n\r\nexport class ExportTypeConstant {\r\n public static EXP_TYPE_PDF = 0;\r\n public static EXP_TYPE_XLS = 1;\r\n public static EXP_TYPE_XLSX = 2;\r\n public static EXP_TYPE_DOC = 3;\r\n public static EXP_TYPE_DOCX = 4;\r\n}","export class KeyValueUCSearchObj {\r\n key: number;\r\n value: string;\r\n\r\n constructor() {\r\n this.key = 0;\r\n this.value = \"\";\r\n }\r\n}\r\n\r\nexport class ListKeyValueMonth {\r\n ListOfMonth: Array<KeyValueUCSearchObj>;\r\n DictOfMonth: { [month: number]: string } = {};\r\n constructor() {\r\n this.ListOfMonth = new Array<KeyValueUCSearchObj>();\r\n this.DictOfMonth = {}\r\n this.ListOfMonth.push({ key: 1, value: \"January\" });\r\n this.DictOfMonth[1]= \"January\";\r\n this.ListOfMonth.push({ key: 2, value: \"February\" });\r\n this.DictOfMonth[2]= \"February\";\r\n this.ListOfMonth.push({ key: 3, value: \"March\" });\r\n this.DictOfMonth[3]= \"March\";\r\n this.ListOfMonth.push({ key: 4, value: \"April\" });\r\n this.DictOfMonth[4]= \"April\";\r\n this.ListOfMonth.push({ key: 5, value: \"May\" });\r\n this.DictOfMonth[5]= \"May\";\r\n this.ListOfMonth.push({ key: 6, value: \"June\" });\r\n this.DictOfMonth[6]= \"June\";\r\n this.ListOfMonth.push({ key: 7, value: \"July\" });\r\n this.DictOfMonth[7]= \"July\";\r\n this.ListOfMonth.push({ key: 8, value: \"August\" });\r\n this.DictOfMonth[8]= \"August\";\r\n this.ListOfMonth.push({ key: 9, value: \"September\" });\r\n this.DictOfMonth[9]= \"September\";\r\n this.ListOfMonth.push({ key: 10, value: \"October\" });\r\n this.DictOfMonth[10]= \"October\";\r\n this.ListOfMonth.push({ key: 11, value: \"November\" });\r\n this.DictOfMonth[11]= \"November\";\r\n this.ListOfMonth.push({ key: 12, value: \"December\" });\r\n this.DictOfMonth[12]= \"December\";\r\n }\r\n}","import { Component, OnInit, Input, ViewChild, ElementRef, Inject, Renderer2, EventEmitter, Output, HostListener } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { FormGroup, NgForm } from '@angular/forms';\r\nimport { DatePipe, formatDate } from '@angular/common';\r\nimport { InputSearchObj } from './model/input-search-obj.model';\r\nimport { CriteriaObj } from './model/criteria-obj.model';\r\nimport { RequestCriteriaObj } from './model/request-criteria-obj.model';\r\nimport { AdInsConstant } from './model/adins-constant';\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\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ExportTypeConstant, KeyValueReportObj } from './model/key-value-report.model';\r\nimport { CookieService } from 'ngx-cookie';\r\nimport * as CryptoJS from 'crypto-js';\r\nimport { KeyValueUCSearchObj, ListKeyValueMonth } from './model/key-value-uc-search.model';\r\n\r\n@Component({\r\n selector: 'lib-UCSearch',\r\n templateUrl: './ucsearch.component.html',\r\n styleUrls: ['./ucsearch.component.css'],\r\n providers: [ExcelService, DatePipe],\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 isListHide: boolean = true;\r\n @HostListener('.xania:click', ['$event'])\r\n onClick(ev: MouseEvent) {\r\n const clickInside = this.elemRef.nativeElement.contains(ev.target);\r\n if (!clickInside) {\r\n this.isListHide = true;\r\n }\r\n }\r\n\r\n @ViewChild('enjiForm') set content(content: NgForm) {\r\n if (content) { // initially setter gets called with undefined\r\n this.searchForm = content;\r\n }\r\n }\r\n\r\n @ViewChild('formIdSearch') myForm: ElementRef;\r\n @Input() searchInput: InputSearchObj = new InputSearchObj();\r\n @Input() pageSize: number = 10;\r\n @Input() isReport: boolean = false;\r\n @Output() result: EventEmitter<any> = new EventEmitter();\r\n @Output() genRpt: EventEmitter<{ ExportType: number, ElRef: ElementRef }> = new EventEmitter<{ ExportType: number, ElRef: ElementRef }>();\r\n @Output() reqGetAllData: EventEmitter<any> = new EventEmitter();\r\n ExportTypeList: Array<KeyValueReportObj> = [\r\n {\r\n key: ExportTypeConstant.EXP_TYPE_PDF,\r\n value: \"PDF\"\r\n },\r\n {\r\n key: ExportTypeConstant.EXP_TYPE_XLS,\r\n value: \"Excel 2003\"\r\n },\r\n {\r\n key: ExportTypeConstant.EXP_TYPE_XLSX,\r\n value: \"Excel 2007\"\r\n },\r\n {\r\n key: ExportTypeConstant.EXP_TYPE_DOC,\r\n value: \"Document\"\r\n },\r\n {\r\n key: ExportTypeConstant.EXP_TYPE_DOCX,\r\n value: \"Document XML\"\r\n },\r\n ];\r\n ListOfMonth: ListKeyValueMonth = new ListKeyValueMonth();\r\n ListOfYear: Array<KeyValueUCSearchObj> = new Array<KeyValueUCSearchObj>();\r\n ClaimList: Array<any> = [\r\n {\r\n Key: AdInsConstant.RestrictionIsNotNull,\r\n Value: \"CLAIMED\"\r\n },\r\n {\r\n Key: AdInsConstant.RestrictionIsNull,\r\n Value: \"UNCLAIMED\"\r\n },\r\n ];\r\n\r\n ExportType: number = 0;\r\n\r\n pageNow: any = 1;\r\n configuration: any;\r\n exportData: any;\r\n ExcelData: any;\r\n isDataLoaded: boolean = false;\r\n isHidden: boolean = false;\r\n BisDt: string;\r\n BusinessDt: Date = new Date();\r\n dateWrong: boolean = false;\r\n readonly: boolean = false;\r\n\r\n currentState = 'initial';\r\n\r\n form: FormGroup;\r\n countForm = 0;\r\n formattedAmount = '';\r\n amount = 0;\r\n apiUrl: string;\r\n arrCrit: any;\r\n searchForm: NgForm;\r\n\r\n constructor(private http: HttpClient, private excelService: ExcelService, private _renderer2: Renderer2,\r\n @Inject(DOCUMENT) private _document, public toastr: ToastrService, private cookieService: CookieService,\r\n private datePipe: DatePipe, private elemRef: ElementRef) {\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 }\r\n\r\n ngOnInit() {\r\n console.log(\"ucsearch\");\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\r\n let value = this.cookieService.get('BusinessDateRaw');\r\n this.BisDt = this.DecryptString(value, \"AdInsFOU12345678\");\r\n this.BusinessDt = new Date(this.BisDt);\r\n this.initiateForm();\r\n }\r\n\r\n initiateForm() {\r\n this.getJSON(this.searchInput._url).subscribe(data => {\r\n this.configuration = data;\r\n this.exportData = data.exportExcel;\r\n if (data.exportTypeList != undefined && data.exportTypeList.length != 0) {\r\n this.ExportTypeList = data.exportTypeList;\r\n this.ExportType = this.ExportTypeList[0].key;\r\n }\r\n\r\n this.countForm = data.component.length;\r\n this.isDataLoaded = true;\r\n\r\n if (this.searchInput.title != undefined && this.searchInput.title != \"\") {\r\n this.configuration.title = this.searchInput.title;\r\n }\r\n\r\n for (let i = 0; i < this.countForm; i++) {\r\n //ini kalau datanya di load dari URL\r\n if (data.component[i].isFromURL == true) {\r\n let request = new RequestCriteriaObj();\r\n let arrayCrit = new Array();\r\n let 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 request[data.component[i].criteriaPropName] = data.component[i].criteriaPropValue;\r\n\r\n // Pengecekan penggunaan url atau path\r\n if (data.component[i].path != undefined && data.component[i].path != \"\") {\r\n if (this.searchInput.listEnvironments != undefined && this.searchInput.listEnvironments.length != 0) {\r\n for (let y = 0; y < this.searchInput.listEnvironments.length; y++) {\r\n if (data.component[i].environment == this.searchInput.listEnvironments[y].environment) {\r\n data.component[i].fullpath = this.searchInput.listEnvironments[y].url + data.component[i].path;\r\n break;\r\n }\r\n }\r\n } else {\r\n data.component[i].fullpath = data.component[i].url;\r\n }\r\n\r\n } else {\r\n data.component[i].fullpath = data.component[i].url;\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].fullpath, 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 ddl\r\n if (data.component[i].type == \"dropdown\") {\r\n if (data.component[i].dtmType != undefined) {\r\n if (data.component[i].dtmType.includes(\"month\")) {\r\n if (data.component[i].value != undefined && data.component[i].value.includes(\"BD\")) {\r\n data.component[i].value = this.setDefaultValueMonth(data.component[i].value);\r\n }\r\n data.component[i].items = this.setMonthDDL(data.component[i].dtmType);\r\n }\r\n if (data.component[i].dtmType.includes(\"year\")) {\r\n if (data.component[i].value != undefined && data.component[i].value.includes(\"BD\")) {\r\n data.component[i].value = this.setDefaultValueYear(data.component[i].value);\r\n }\r\n data.component[i].items = this.setYearDDL(data.component[i].dtmType);\r\n }\r\n }\r\n }\r\n if (!data.component[i].value) {\r\n data.component[i].value = \"\";\r\n if (data.component[i].ddlType == 'all') data.component[i].value = \"all\";\r\n if (data.component[i].ddlType == 'one') data.component[i].value = \"one\";\r\n }\r\n //pengecekan tanggal\r\n if (data.component[i].type == \"datepicker\") {\r\n this.readonly = data.component[i].readonly\r\n\r\n if (data.component[i].value.includes(\"BD\")) {\r\n let businessDate = new Date();\r\n if (this.BisDt != null) {\r\n businessDate = new Date(this.BisDt);\r\n }\r\n let operator = data.component[i].value.charAt(2);\r\n let dateShow = new Date();\r\n if (operator == \"-\") {\r\n let tempMinus = data.component[i].value.split(\"-\", 2);\r\n let numDay = parseInt(tempMinus[1]);\r\n businessDate.setDate(businessDate.getDate() - numDay);\r\n }\r\n else if (operator == \"+\") {\r\n let tempMinus = data.component[i].value.split(\"+\", 2);\r\n let numDay = parseInt(tempMinus[1]);\r\n businessDate.setDate(businessDate.getDate() + numDay);\r\n }\r\n dateShow = businessDate;\r\n let dateText = formatDate(dateShow, 'yyyy-MM-dd', 'en-US')\r\n data.component[i].value = dateText;\r\n }\r\n\r\n if (this.readonly = false) {\r\n if (data.component[i].restriction != undefined && data.component[i].restriction != \"\") {\r\n if (data.component[i].restriction.toUpperCase() == \"GT\") {\r\n let minDate = new Date(this.datePipe.transform(data.component[i].minDate, 'yyyy-MM-dd'));\r\n minDate.setDate(minDate.getDate() + 1);\r\n data.component[i].minDate = minDate;\r\n } else if (data.component[i].restriction.toUpperCase() == \"LT\") {\r\n let maxDate = new Date(this.datePipe.transform(data.component[i].maxDate, 'yyyy-MM-dd'));\r\n maxDate.setDate(maxDate.getDate() - 1);\r\n data.component[i].maxDate = maxDate;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n for (let j = 0; j < this.countForm; j++) {\r\n if (data.component[j].isEvent == true && this.configuration.component[j].itemsUrl.length == 1) {\r\n this.onChangeEvent(data.component[j].itemsUrl[0].Key, data.component[j]);\r\n }\r\n if (data.component[j].type == \"officeRoleCodes\" && this.configuration.component[j].itemsUrl.length > 0) {\r\n this.SetRoleOfficeCodes(j);\r\n }\r\n }\r\n }, 1000);\r\n });\r\n }\r\n\r\n SetRoleOfficeCodes(i: number) {\r\n let value: string = this.cookieService.get(\"UserAccess\");\r\n let userAccess: string = JSON.parse(this.DecryptString(value, \"AdInsFOU12345678\"));\r\n let roleCode: string = userAccess[\"RoleCode\"];\r\n let listOfficeRoleCodes: Array<string> = new Array();\r\n listOfficeRoleCodes.push(roleCode);\r\n let component = this.myForm.nativeElement[i];\r\n let ddl = component.options;\r\n let text = ddl[ddl.selectedIndex].value.trim();\r\n if (this.configuration.component[i].itemsUrl.length == 1 || (this.configuration.component[i].ddlType == 'all' && text == 'all')) {\r\n for (let index = 0; index < this.configuration.component[i].itemsUrl.length; index++) {\r\n const element = this.configuration.component[i].itemsUrl[index];\r\n listOfficeRoleCodes.push(element.Key);\r\n listOfficeRoleCodes.push(roleCode + \"-\" + element.Key);\r\n }\r\n } else {\r\n listOfficeRoleCodes.push(text);\r\n listOfficeRoleCodes.push(roleCode + \"-\" + text);\r\n }\r\n\r\n this.searchInput.integrationObj.requestObj[\"OfficeRoleCodes\"] = listOfficeRoleCodes;\r\n }\r\n\r\n setDefaultValueMonth(value) {\r\n let businessDate = new Date(this.BusinessDt);\r\n let operator = value.charAt(2);\r\n let tempValue = value.split(operator, 2);\r\n let numMonth = parseInt(tempValue[1]);\r\n if (!numMonth) numMonth = 1;\r\n if (operator == \"-\") {\r\n businessDate.setMonth(businessDate.getMonth() - numMonth);\r\n }\r\n else if (operator == \"+\") {\r\n businessDate.setMonth(businessDate.getMonth() + numMonth);\r\n }\r\n return businessDate.getMonth();\r\n }\r\n setMonthDDL(month) {\r\n let ListOfMonth: Array<KeyValueUCSearchObj>;\r\n let equation = month.match(\"[\\\\/+][-]|[-][\\\\/+]|\\\\/+|-\");\r\n let toMin: number = this.BusinessDt.getMonth();\r\n let toMax: number = this.BusinessDt.getMonth();\r\n let tempEquation = equation[0];\r\n let minMax: number = parseInt(month.substring(equation.index + equation[0].length));\r\n if (minMax >= 12) return this.ListOfMonth.ListOfMonth;\r\n if ((tempEquation == \"+-\" || tempEquation == \"-+\") && minMax >= 6) return this.ListOfMonth.ListOfMonth;\r\n let dictOfMonth: { [month: number]: string } = this.ListOfMonth.DictOfMonth;\r\n ListOfMonth.push({ key: toMin, value: dictOfMonth[toMin] });\r\n\r\n for (let q = 0; q < minMax; q++) {\r\n if (tempEquation.includes(\"-\")) {\r\n toMin--;\r\n if (toMin == 0) toMin = 12;\r\n ListOfMonth.push({ key: toMin, value: dictOfMonth[toMin] });\r\n }\r\n if (tempEquation.includes(\"+\")) {\r\n toMax++;\r\n if (toMax == 13) toMax = 1;\r\n ListOfMonth.push({ key: toMax, value: dictOfMonth[toMax] });\r\n }\r\n }\r\n ListOfMonth.sort((a, b) => {\r\n return a.key - b.key;\r\n });\r\n return ListOfMonth;\r\n }\r\n\r\n setDefaultValueYear(value) {\r\n let businessDate = new Date(this.BusinessDt);\r\n let operator = value.charAt(2);\r\n let tempValue = value.split(operator, 2);\r\n let numYear = parseInt(tempValue[1]);\r\n if (!numYear) numYear = 1;\r\n if (operator == \"-\") {\r\n businessDate.setFullYear(businessDate.getFullYear() - numYear);\r\n }\r\n else if (operator == \"+\") {\r\n businessDate.setFullYear(businessDate.getFullYear() + numYear);\r\n }\r\n return businessDate.getFullYear();\r\n }\r\n setYearDDL(year) {\r\n this.ListOfYear = new Array<KeyValueUCSearchObj>();\r\n let equation = year.match(\"[\\\\/+][-]|[-][\\\\/+]|\\\\/+|-\");\r\n let toMin: number = this.BusinessDt.getFullYear();\r\n let toMax: number = this.BusinessDt.getFullYear();\r\n let minMax: number = parseInt(year.substring(equation.index + equation[0].length));\r\n this.ListOfYear.push({ key: this.BusinessDt.getFullYear(), value: this.BusinessDt.getFullYear().toString() });\r\n\r\n for (let q = 0; q < minMax; q++) {\r\n if (equation[0] == \"-+\" || equation[0] == \"+-\") {\r\n toMin--;\r\n toMax++;\r\n this.ListOfYear.push({ key: toMin, value: toMin.toString() }, { key: toMax, value: toMax.toString() });\r\n } else if (equation[0] == \"-\") {\r\n toMin--;\r\n this.ListOfYear.push({ key: toMin, value: toMin.toString() });\r\n } else if (equation[0] == \"+\") {\r\n toMax++;\r\n this.ListOfYear.push({ key: toMax, value: toMax.toString() });\r\n }\r\n }\r\n this.ListOfYear.sort((a, b) => {\r\n return a.key - b.key;\r\n });\r\n return this.ListOfYear;\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 // for(let i=0;i<this.countForm;i++){\r\n // if(this.configuration.component[i].type == \"datepicker\"){\r\n // if ((i != (this.countForm-1)) && (this.configuration.component[i].name != this.configuration.component[i+1].name)){\r\n // this.checkInputDate(this.configuration.component[i]);\r\n // }\r\n // }\r\n // }\r\n // if(this.dateWrong) return;\r\n\r\n let order = null;\r\n if (this.configuration.orderby != null) {\r\n order = {\r\n key: this.configuration.orderby.key,\r\n value: this.configuration.orderby.value\r\n }\r\n }\r\n this.pageNow = 1;\r\n this.search(this.apiUrl, this.pageNow, this.pageSize, order, this.arrCrit);\r\n }\r\n\r\n reset() {\r\n this.searchForm.resetForm({\r\n ExportType: this.ExportTypeList[0].key\r\n });\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 let request = new RequestCriteriaObj();\r\n let arrCrit = new Array();\r\n let IsQueryIn = false;\r\n let IsBreak = false;\r\n\r\n // Inject whereQuery for where criteria\r\n if (this.searchInput.whereValue != undefined && this.searchInput.whereValue.length != 0) {\r\n this.configuration.querystring.whereQuery = new Array<any>();\r\n for (let x = 0; x < this.searchInput.whereValue.length; x++) {\r\n this.configuration.querystring.whereQuery.push(this.searchInput.whereValue[x].value);\r\n }\r\n }\r\n if (this.searchInput.fromValue != undefined && this.searchInput.fromValue.length != 0) {\r\n this.configuration.querystring.fromQuery = new Array<any>();\r\n for (let x = 0; x < this.searchInput.fromValue.length; x++) {\r\n this.configuration.querystring.fromQuery.push(this.searchInput.fromValue[x].value);\r\n }\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 let formSeq: number = 0;\r\n for (let i = 0; i < this.countForm; i++) {\r\n let critObj = new CriteriaObj();\r\n let component = this.myForm.nativeElement[formSeq];\r\n\r\n // // popup message if required\r\n // if (component.getAttribute('data-required') != null && component.getAttribute('data-required') == \"true\") {\r\n // let val = component.value.trim();\r\n // if (val == \"\") {\r\n // IsBreak = true;\r\n // let label = component.getAttribute('label');\r\n // this.toastr.warning(\"Please input \" + label);\r\n // break;\r\n // }\r\n // }\r\n\r\n if (this.configuration.component[i].type == \"dropdownSearch\") {\r\n formSeq += 3;\r\n } else {\r\n formSeq++;\r\n }\r\n\r\n critObj.DataType = component.getAttribute('data-type');\r\n //Ini khusus kalau dari Drop Down\r\n if (component.getAttribute('query-in') != null && component.getAttribute('query-in') == \"true\") {\r\n IsQueryIn = true;\r\n }\r\n else {\r\n IsQueryIn = false;\r\n }\r\n if (component.value != \"\") {\r\n if (component.nodeName == 'SELECT') {\r\n let ddl = component.options;\r\n let text = ddl[ddl.selectedIndex].value.trim();\r\n if (text == \"one\") {\r\n IsBreak = true;\r\n let label = component.getAttribute('label');\r\n this.toastr.warning(\"Please select \" + label);\r\n break;\r\n }\r\n\r\n if (component.getAttribute('data-crit-datatable') != \"\" && component.getAttribute('data-crit-datatable') != null) {\r\n critObj.isCriteriaDataTable = component.getAttribute('data-crit-datatable');\r\n }\r\n\r\n if (this.configuration.component[i].type == \"taskDefinitionKey\" ||\r\n this.configuration.component[i].type == \"processKey\")\r\n continue;\r\n\r\n if (this.configuration.component[i].type == \"claim\") {\r\n critObj.propName = component.getAttribute('data-name');\r\n critObj.restriction = text;\r\n critObj.value = null;\r\n arrCrit.push(critObj);\r\n } else {\r\n if (text != \"all\" && text != \"one\") {\r\n //Kalau Dari Dropdown udah pasti pake Eq\r\n critObj.restriction = AdInsConstant.RestrictionEq;\r\n if (component.name != \"\") {\r\n critObj.propName = component.name;\r\n } else {\r\n critObj.propName = component.getAttribute('data-name');\r\n }\r\n critObj.value = text;\r\n arrCrit.push(critObj);\r\n } else if (text == \"all\" && IsQueryIn == true && component.options.length != 0) {\r\n let ddlList = new Array();\r\n for (let x = 0; x < component.options.length; x++) {\r\n if (x != 0) {\r\n ddlList.push(component.options[x].value);\r\n }\r\n }\r\n if (ddlList.length != 0) {\r\n critObj.restriction = AdInsConstant.RestrictionIn;\r\n if (component.name != \"\") {\r\n critObj.propName = component.name;\r\n } else {\r\n critObj.propName = component.getAttribute('data-name');\r\n }\r\n critObj.listValue = ddlList;\r\n arrCrit.push(critObj);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n //Kalau ada Percent maka yang dipake nnti adalah Restrictions Like\r\n if (component.name != \"\") {\r\n critObj.propName = component.name;\r\n } else {\r\n critObj.propName = component.getAttribute('data-name');\r\n }\r\n critObj.value = component.value.trim();\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 critObj.value = parseFloat(component.value.replace(/,/g, '')).toString();\r\n }\r\n if (critObj.restriction.toUpperCase() == \"LIKE\") {\r\n critObj.value = \"%\" + component.value.trim() + \"%\";\r\n critObj.restriction = AdInsConstant.RestrictionLike\r\n }\r\n }\r\n else {\r\n critObj.restriction = AdInsConstant.RestrictionEq\r\n }\r\n if (component.getAttribute('data-crit-datatable') != \"\" && component.getAttribute('data-crit-datatable') != null) {\r\n critObj.isCriteriaDataTable = component.getAttribute('data-crit-datatable');\r\n }\r\n arrCrit.push(critObj);\r\n }\r\n }\r\n }\r\n\r\n if (IsBreak) {\r\n return;\r\n }\r\n\r\n if (addCrit != null && addCrit != undefined) {\r\n if (addCrit.length != 0) {\r\n for (let i = 0; i < addCrit.length; i++) {\r\n arrCrit.push(addCrit[i]);\r\n }\r\n } else if (this.searchInput.addCritInput != null || this.searchInput.addCritInput != undefined) {\r\n for (let i = 0; i < this.searchInput.addCritInput.length; i++) {\r\n arrCrit.push(this.searchInput.addCritInput[i]);\r\n }\r\n }\r\n }\r\n else if (this.searchInput.addCritInput != null || this.searchInput.addCritInput != undefined) {\r\n for (let 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\r\n if (!this.searchInput.isJoinExAPI) {\r\n request.integrationObj = null;\r\n } else {\r\n request.integrationObj = this.searchInput.integrationObj;\r\n }\r\n\r\n this.http.post(apiUrl, request).subscribe((response) => {\r\n let qryPaging = {\r\n response: response,\r\n pageNow: pageNo\r\n }\r\n console.log(qryPaging);\r\n this.result.emit(qryPaging);\r\n this.reqGetAllData.emit(request);\r\n return response;\r\n });\r\n }\r\n\r\n GenerateReport() {\r\n this.genRpt.emit({ ExportType: this.ExportType, ElRef: this.myForm });\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 = new Array();\r\n obj.itemsUrl = tempData.ReturnObject;\r\n\r\n if (obj.exclude != undefined && obj.exclude != \"\") {\r\n obj.itemsUrl = obj.itemsUrl.filter((value) => !obj.exclude.includes(value.Key));\r\n }\r\n\r\n if (obj.affectedFilter && obj.itemsUrl.length == 1) {\r\n this.onChangeEvent(obj.itemsUrl[0].Key, obj);\r\n }\r\n });\r\n }\r\n\r\n transformAmount(element: any) {\r\n this.formattedAmount = parseFloat(element.target.value).toLocaleString('en');\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 let request = new RequestCriteriaObj();\r\n request.pageNo = 1;\r\n request.rowPerPage = 9999;\r\n request.orderBy = null;\r\n request.criteria = [];\r\n request.queryString = this.configuration.querystring;\r\n if (!this.searchInput.isJoinExAPI) {\r\n request.integrationObj = null;\r\n } else {\r\n request.integrationObj = this.searchInput.integrationObj;\r\n }\r\n\r\n this.http.post(this.apiUrl, request).subscribe(\r\n response => {\r\n this.ExcelData = response[\"Data\"];\r\n this.excelService.exportAsExcelFile(this.ExcelData, 'sample');\r\n },\r\n (error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n onChangeEvent(optValue, afFilter) {\r\n let jsonComp = this.configuration.component;\r\n\r\n for (let i = 0; i < afFilter.affectedFilter.length; i++) {\r\n for (let j = 0; j < jsonComp.length; j++) {\r\n if (jsonComp[j].name == afFilter.affectedFilter[i]) {\r\n let request = new RequestCriteriaObj();\r\n let arrayCrit = new Array();\r\n\r\n if (optValue != \"all\" && optValue != \"one\") {\r\n let critObj = new CriteriaObj();\r\n critObj.DataType = afFilter.datatype;\r\n if (afFilter.filterPropName != undefined || afFilter.filterPropName != \"\") {\r\n request[afFilter.filterPropName] = optValue;\r\n critObj.propName = afFilter.filterPropName;\r\n } else {\r\n critObj.propName = afFilter.name;\r\n request[afFilter.name] = optValue;\r\n }\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 if (jsonComp[j].path != undefined && jsonComp[j].path != \"\") {\r\n if (this.searchInput.listEnvironments != undefined && this.searchInput.listEnvironments.length != 0) {\r\n for (let y = 0; y < this.searchInput.listEnvironments.length; y++) {\r\n if (jsonComp[j].environment == this.searchInput.listEnvironments[y].environment) {\r\n jsonComp[j].fullpath = this.searchInput.listEnvironments[y].url + jsonComp[j].path;\r\n break;\r\n }\r\n }\r\n } else {\r\n jsonComp[j].fullpath = jsonComp[j].url;\r\n }\r\n\r\n } else {\r\n jsonComp[j].fullpath = jsonComp[j].url;\r\n }\r\n this.resolveObject(jsonComp[j], jsonComp[j].fullpath, request);\r\n }\r\n }\r\n }\r\n }\r\n\r\n SetProcessKey(idx: number, wfKeyFilter: string) {\r\n let component = this.myForm.nativeElement[idx];\r\n let ddl = component.options;\r\n let text = ddl[ddl.selectedIndex].value.trim();\r\n if (text) {\r\n this.searchInput.integrationObj.requestObj[wfKeyFilter] = text;\r\n }\r\n }\r\n\r\n switchCase(condList) {\r\n let condition = false;\r\n\r\n for (let i = 0; i < condList.conditions.length; i++) {\r\n let idx = this.searchInput.switchValue.findIndex(x => x.property == condList.conditions[i].property);\r\n if (condList.conditions[i].restriction == \"EQ\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (this.searchInput.switchValue[idx].value == condList.conditions[i].value) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n let username = localStorage.getItem(\"Username\");\r\n if (this.searchInput.switchValue[idx].value == username) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"NEQ\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (this.searchInput.switchValue[idx].value != condList.conditions[i].value) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n let username = localStorage.getItem(\"Username\");\r\n if (this.searchInput.switchValue[idx].value != username) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"GT\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (this.searchInput.switchValue[idx].value > condList.conditions[i].value) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n let username = localStorage.getItem(\"Username\");\r\n if (this.searchInput.switchValue[idx].value > username) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"GTE\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (this.searchInput.switchValue[idx].value >= condList.conditions[i].value) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n let username = localStorage.getItem(\"Username\");\r\n if (this.searchInput.switchValue[idx].value >= username) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"LT\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (this.searchInput.switchValue[idx].value < condList.conditions[i].value) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n let username = localStorage.getItem(\"Username\");\r\n if (this.searchInput.switchValue[idx].value < username) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n } else if (condList.conditions[i].restriction == \"LTE\") {\r\n if (condList.conditions[i].isUser != true) {\r\n if (this.searchInput.switchValue[idx].value <= condList.conditions[i].value) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n } else {\r\n let username = localStorage.getItem(\"Username\");\r\n if (this.searchInput.switchValue[idx].value <= username) {\r\n condition = true;\r\n } else {\r\n condition = false;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return condition;\r\n\r\n }\r\n\r\n private DecryptString(chipperText: string, chipperKey: string) {\r\n if (\r\n chipperKey == undefined || chipperKey.trim() == '' ||\r\n chipperText == undefined || chipperText.trim() == ''\r\n ) return chipperText;\r\n let chipperKeyArr = CryptoJS.enc.Utf8.parse(chipperKey);\r\n let iv = CryptoJS.lib.WordArray.create([0x00, 0x00, 0x00, 0x00]);\r\n let decrypted = CryptoJS.AES.decrypt(chipperText, chipperKeyArr, { iv: iv });\r\n let plainText = decrypted.toString(CryptoJS.enc.Utf8);\r\n return plainText;\r\n }\r\n\r\n checkInputDate(component: any) {\r\n let minDateVal;\r\n let maxDateVal;\r\n let label;\r\n let errorMessage = new Array<string>();\r\n\r\n let MinComponent = this.configuration.component.find(x => x.name == component.name && (x.restriction.toUpperCase() == \"GTE\")) == undefined ? this.configuration.component.find(x => x.name == component.name && (x.restriction.toUpperCase() == \"GT\")) : this.configuration.component.find(x => x.name == component.name && (x.restriction.toUpperCase() == \"GTE\"));\r\n if (MinComponent != undefined) {\r\n minDateVal = this.myForm.nativeElement[MinComponent.id].min == \"\" ? null : new Date(this.myForm.nativeElement[MinComponent.id].min);\r\n label = MinComponent.label.split(\">\", 2);\r\n if (minDateVal != null) {\r\n if (MinComponent.restriction.toUpperCase() == \"GT\") {\r\n minDateVal.setDate(minDateVal.getDate() - 1);\r\n errorMessage.push(\" must be greater than \");\r\n } else if (MinComponent.restriction.toUpperCase() == \"GTE\") {\r\n errorMessage.push(\" must be greater than or equals to \");\r\n }\r\n }\r\n }\r\n\r\n let MaxComponent = this.configuration.component.find(x => x.name == component.name && (x.restriction.toUpperCase() == \"LTE\")) == undefined ? this.configuration.component.find(x => x.name == component.name && (x.restriction.toUpperCase() == \"LT\")) : this.configuration.component.find(x => x.name == component.name && (x.restriction.toUpperCase() == \"LTE\"));\r\n if (MaxComponent != undefined) {\r\n maxDateVal = this.myForm.nativeElement[MaxComponent.id].max == \"\" ? null : new Date(this.myForm.nativeElement[MaxComponent.id].max);\r\n label = MaxComponent.label.split(\"<\", 2);\r\n if (maxDateVal != null) {\r\n if (MaxComponent.restriction.toUpperCase() == \"LT\") {\r\n maxDateVal.setDate(maxDateVal.getDate() + 1);\r\n errorMessage.push(\" must be less than \");\r\n } else if (MaxComponent.restriction.toUpperCase() == \"LTE\") {\r\n errorMessage.push(\" must be less than or equals to \");\r\n }\r\n }\r\n }\r\n\r\n if (minDateVal != null && maxDateVal == null && new Date(this.myForm.nativeElement[MinComponent.id].value) < minDateVal) {\r\n this.toastr.warning(label[0] + errorMessage[0] + formatDate(minDateVal, 'dd MMMM yyyy', 'en-US') + \".\")\r\n this.dateWrong = true;\r\n } else if (maxDateVal != null && minDateVal == null && new Date(this.myForm.nativeElement[MaxComponent.id].value) > maxDateVal) {\r\n this.toastr.warning(label[0] + errorMessage[0] + formatDate(maxDateVal, 'dd MMMM yyyy', 'en-US') + \".\")\r\n this.dateWrong = true;\r\n } else if (minDateVal != null && maxDateVal != null) {\r\n if (new Date(this.myForm.nativeElement[MaxComponent.id].value) > maxDateVal || new Date(this.myForm.nativeElement[MinComponent.id].value) < minDateVal) {\r\n this.toastr.warning(label[0] + errorMessage[0] + formatDate(minDateVal, 'dd MMMM yyyy', 'en-US') + \" and\" + errorMessage[1] + formatDate(maxDateVal, 'dd MMMM yyyy', 'en-US') + \".\")\r\n this.dateWrong = true;\r\n } else {\r\n this.dateWrong = false;\r\n }\r\n } else {\r\n this.dateWrong = false;\r\n }\r\n }\r\n\r\n selectedOption(item: { Key: string, Value: string },crit:any) {\r\n crit.descr = item.Value;\r\n crit.isListHide = true;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'textSearch'\r\n})\r\nexport class TextSearchPipe implements PipeTransform {\r\n\r\n transform(items: any[], text?: any): any {\r\n if(!text){\r\n return items;\r\n }\r\n return items.filter((item)=>{\r\n if(item.value && typeof item.value === 'string'){\r\n return item.value.toLowerCase().indexOf(text.toLowerCase())> -1;\r\n }\r\n return false;\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\nimport { FormsModule } from '@angular/forms';\r\nimport { CurrencyMaskInputMode, NgxCurrencyModule } from 'ngx-currency';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { UcShowErrorsModule } from '@adins/uc-show-errors';\r\nimport { UcDirectiveUpperCaseModule } from '@adins/uc-directive-upper-case';\r\nimport { TextSearchPipe } from './pipe/text-search.pipe';\r\n\r\nexport const customCurrencyMaskConfig = { \r\n align: \"right\",\r\n allowNegative: false,\r\n allowZero: true,\r\n decimal: \".\",\r\n precision: 2,\r\n prefix: \"\",\r\n suffix: \"\",\r\n thousands: \",\",\r\n nullable: false,\r\n inputMode: CurrencyMaskInputMode.NATURAL };\r\n\r\n@NgModule({\r\n declarations: [UCSearchComponent,TextSearchPipe],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n UcShowErrorsModule,\r\n UcDirectiveUpperCaseModule,\r\n NgxCurrencyModule.forRoot(customCurrencyMaskConfig),\r\n TranslateModule.forChild()\r\n ],\r\n exports: [UCSearchComponent]\r\n})\r\nexport class UCSearchModule { }\r\n"]}