@adins/ucsearch 2.13.6 → 2.13.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/adins-ucsearch.metadata.json +1 -1
- package/bundles/adins-ucsearch.umd.js +81 -5
- package/bundles/adins-ucsearch.umd.js.map +1 -1
- package/bundles/adins-ucsearch.umd.min.js +1 -1
- package/bundles/adins-ucsearch.umd.min.js.map +1 -1
- package/esm2015/lib/ucsearch.component.js +69 -6
- package/esm5/lib/ucsearch.component.js +83 -6
- package/fesm2015/adins-ucsearch.js +66 -5
- package/fesm2015/adins-ucsearch.js.map +1 -1
- package/fesm5/adins-ucsearch.js +80 -5
- package/fesm5/adins-ucsearch.js.map +1 -1
- package/lib/ucsearch.component.d.ts +4 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ng://@adins/ucsearch/lib/ucsearch.service.ts","node_modules/tslib/tslib.es6.js","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","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","adopt","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","AdInsConstant","RestrictionBetween","RestrictionLike","RestrictionEq","RestrictionNeq","RestrictionGt","RestrictionGte","RestrictionLt","RestrictionLte","RestrictionIn","RestrictionNotIn","RestrictionOr","RestrictionOrNeq","RestrictionIsNull","RestrictionIsNotNull","RestrictionGTE","RestrictionLTE","showData","JoinTypeInner","JoinTypeLeft","IntegrationObj","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","EXP_TYPE_JPDF","ListKeyValueMonth","DictOfMonth","ListOfMonth","key","defineProperty","UCSearchComponent","content","searchForm","changeState","currentState","isHidden","ngOnInit","apiUrl","searchInput","arrCrit","js","_renderer2","createElement","text","appendChild","_document","cookieService","get","BisDt","DecryptString","BusinessDt","initiateForm","_a","getJSON","subscribe","_this","configuration","exportData","exportExcel","exportTypeList","undefined","ExportTypeList","ExportType","countForm","component","isDataLoaded","i","isFromURL","request","arrayCrit","criteriaObject","propName","criteriaPropName","criteriaPropValue","restriction","criteria","path","environment","fullpath","url","resolveObject","parseFloat","toLocaleString","dtmType","includes","setDefaultValueMonth","items","setMonthDDL","setDefaultValueYear","setYearDDL","Key","descr","Value","ddlType","readonly","businessDate","operator","charAt","dateShow","tempMinus","split","numDay","parseInt","setDate","getDate","dateText","formatDate","toUpperCase","minDate","datePipe","transform","maxDate","autofill","setTimeout","j","isEvent","itemsUrl","onChangeEvent","SetRoleOfficeCodes","queryParam","source","roleCode","JSON","parse","listOfficeRoleCodes","ddl","myForm","nativeElement","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","IsExportExcel","filtered","filter","item","arr","findIndex","x","name","checkValueGteLte","order","orderby","pageNow","rowPerPage","pageSize","search","reset","resetForm","pageNo","orderBy","isClickSearch","addCrit","IsQueryIn","IsBreak","querystring","whereQuery","fromQuery","formSeq","critObj","getAttribute","nodeName","toastr","warning","ddlList","listValue","replace","persistCrit","response","ExcelData","excelService","qryPaging","emit","reqGetAllData","GenerateReport","genRpt","ElRef","lessThanFour","obj","crit","tempData","ReturnObject","exclude","affectedFilter","MinComponent","find","MaxComponent","id","transformAmount","formattedAmount","target","transformToDecimal","exportAsXLSX","optValue","afFilter","jsonComp","datatype","filterPropName","SetProcessKey","idx","wfKeyFilter","listWfKey","switchCase","condList","condition","this_1","property","conditions","isUser","username","localStorage","getItem","chipperText","chipperKey","chipperKeyArr","CryptoJS.enc","Utf8","iv","CryptoJS.lib","WordArray","create","CryptoJS.AES","decrypt","checkInputDate","minDateVal","maxDateVal","errorMessage","min","max","dateWrong","selectedOption","isListHide","Component","selector","template","providers","DatePipe","animations","trigger","state","style","height","opacity","overflow","transition","animate","HttpClient","Renderer2","Inject","DOCUMENT","ToastrService","CookieService","ElementRef","ActivatedRoute","ViewChild","Input","Output","elemRef","route","isReport","EventEmitter","ClaimList","amount","queryParams","params","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","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\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 public static EXP_TYPE_JPDF = 5;\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\nimport { ActivatedRoute } from '@angular/router';\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_XLSX,\r\n value: \"Excel 2007\"\r\n },\r\n {\r\n key: ExportTypeConstant.EXP_TYPE_DOCX,\r\n value: \"Document XML\"\r\n },\r\n {\r\n key: ExportTypeConstant.EXP_TYPE_JPDF,\r\n value: \"Justify PDF\"\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 queryParam: Record<string, string>;\r\n persistCrit: CriteriaObj[];\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, private route: ActivatedRoute) {\r\n this.route.queryParams.subscribe(params => {\r\n this.queryParam = params;\r\n });\r\n }\r\n\r\n changeState() {\r\n this.currentState = this.currentState === 'initial' ? 'final' : 'initial';\r\n this.isHidden = this.isHidden === false ? true : false;\r\n }\r\n\r\n async 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 await this.initiateForm();\r\n }\r\n\r\n async initiateForm() {\r\n await 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].type == \"dropdownSearch\" && !data.component[i].isFromURL && data.component[i].items?.length != 1) {\r\n // if (data.component[i].ddsType == undefined || data.component[i].ddsType == \"all\") {\r\n // data.component[i].value = \"all\";\r\n // data.component[i].descr = \"All\";\r\n // } else if (data.component[i].ddsType == \"one\") {\r\n // data.component[i].value = \"one\";\r\n // data.component[i].descr = \"Select One\";\r\n // }\r\n // }\r\n if (data.component[i].type == \"dropdownSearch\" && !data.component[i].isFromURL && data.component[i].items.length == 1) {\r\n data.component[i].value = data.component[i].items[0].Key;\r\n data.component[i].descr = data.component[i].items[0].Value;\r\n }\r\n if (data.component[i].type != \"dropdownSearch\" && !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 if(data.component[i].type == \"textbox\") {\r\n this.configuration.component[i].value = this.autofill(data.component[i]);\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 private autofill(data: any) {\r\n if (data.value != \"\") return data.value;\r\n const autofill: Record<string, string> = data.autofill;\r\n if (autofill == undefined) return data.value;\r\n if (this.queryParam[autofill.key] == undefined) return data.value;\r\n if (autofill.source == \"param\") {\r\n return this.queryParam[autofill.key];\r\n }\r\n return data.value;\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(IsExportExcel: boolean = false) {\r\n let filtered = this.configuration.component.filter((item, i, arr) =>\r\n arr.findIndex((x) => (x.name === item.name)) === i);\r\n\r\n for (let i = 0; i < filtered.length; i++) {\r\n if (filtered[i].type == \"numeric\") {\r\n if(!this.checkValueGteLte(filtered[i])) return;\r\n }\r\n }\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 let rowPerPage = this.pageSize;\r\n if (IsExportExcel) rowPerPage = 9999;\r\n this.search(this.apiUrl, this.pageNow, rowPerPage, order, true, this.arrCrit, IsExportExcel);\r\n }\r\n\r\n async reset() {\r\n this.searchForm.resetForm({\r\n ExportType: this.ExportTypeList[0].key\r\n });\r\n await this.initiateForm();\r\n }\r\n\r\n search(apiUrl: string, pageNo: number, rowPerPage: number, orderBy: any, isClickSearch: boolean, addCrit: CriteriaObj[] = new Array(), IsExportExcel: boolean = false) {\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 = -1;\r\n for (let i = 0; i < this.countForm; i++) {\r\n let critObj = new CriteriaObj();\r\n if (this.configuration.component[i].type == \"dropdownSearch\") {\r\n formSeq += 3;\r\n } else {\r\n formSeq++;\r\n }\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 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 if (isClickSearch) {\r\n this.persistCrit = arrCrit;\r\n }\r\n request.criteria = this.persistCrit;\r\n\r\n request.integrationObj = null;\r\n if (this.searchInput.isJoinExAPI) {\r\n request.integrationObj = this.searchInput.integrationObj;\r\n }\r\n\r\n this.http.post(apiUrl, request).subscribe((response) => {\r\n if (IsExportExcel) {\r\n this.ExcelData = response[\"Data\"];\r\n this.excelService.exportAsExcelFile(this.ExcelData, 'sample');\r\n return;\r\n }\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.type == \"dropdownSearch\" && obj.itemsUrl.length == 1) {\r\n obj.value = obj.itemsUrl[0].Key;\r\n obj.descr = obj.itemsUrl[0].Value;\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 checkValueGteLte(component){\r\n //cek yg pakai restriction gte/lte/gt/lt\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 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 \r\n if(this.myForm.nativeElement[MinComponent.id].value > this.myForm.nativeElement[MaxComponent.id].value){\r\n this.toastr.warning(MinComponent.label + \" must be less than \" + MaxComponent.label);\r\n return false;\r\n }\r\n\r\n return true;\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 this.searchClick(true);\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: string = ddl[ddl.selectedIndex].value.trim();\r\n let listValue = text.split(';');\r\n let listWfKey = wfKeyFilter.split(';');\r\n \r\n for (let i = 0; i < listValue.length; i++) {\r\n this.searchInput.integrationObj.requestObj[listWfKey[i]] = listValue[i];\r\n }\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","node_modules/tslib/tslib.es6.js","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","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","adopt","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","AdInsConstant","RestrictionBetween","RestrictionLike","RestrictionEq","RestrictionNeq","RestrictionGt","RestrictionGte","RestrictionLt","RestrictionLte","RestrictionIn","RestrictionNotIn","RestrictionOr","RestrictionOrNeq","RestrictionIsNull","RestrictionIsNotNull","RestrictionGTE","RestrictionLTE","showData","JoinTypeInner","JoinTypeLeft","IntegrationObj","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","EXP_TYPE_JPDF","ListKeyValueMonth","DictOfMonth","ListOfMonth","key","defineProperty","UCSearchComponent","content","searchForm","changeState","currentState","isHidden","ngOnInit","apiUrl","searchInput","arrCrit","js","_renderer2","createElement","text","appendChild","_document","cookieService","get","BisDt","DecryptString","BusinessDt","initiateForm","_a","getJSON","subscribe","_this","configuration","exportData","exportExcel","exportTypeList","undefined","ExportTypeList","ExportType","countForm","component","isDataLoaded","i","isFromURL","request","arrayCrit","criteriaObject","propName","criteriaPropName","criteriaPropValue","restriction","criteria","path","environment","fullpath","url","resolveObject","parseFloat","toLocaleString","dtmType","includes","setDefaultValueMonth","items","setMonthDDL","setDefaultValueYear","setYearDDL","Key","descr","Value","ddlType","readonly","businessDate","operator","charAt","dateShow","tempMinus","split","numDay","parseInt","setDate","getDate","dateText","formatDate","toUpperCase","minDate","datePipe","transform","maxDate","autofill","setTimeout","j","isEvent","itemsUrl","onChangeEvent","SetRoleOfficeCodes","queryParam","source","roleCode","JSON","parse","listOfficeRoleCodes","ddl","myForm","nativeElement","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","IsExportExcel","filtered","filter","item","arr","findIndex","x","name","checkValueGteLte","order","orderby","pageNow","rowPerPage","pageSize","search","reset","resetForm","pageNo","orderBy","isClickSearch","addCrit","isAddToTemp","addToTempCrit","IsQueryIn","IsBreak","querystring","whereQuery","fromQuery","formSeq","critObj","getAttribute","nodeName","toastr","warning","ddlList","listValue","replace","persistCrit","persistAddToTempCrit","concat","filterDuplicateData","filterListValueEmpty","response","ExcelData","excelService","qryPaging","emit","reqGetAllData","_value","stringify","obj","GenerateReport","genRpt","ElRef","lessThanFour","crit","tempData","ReturnObject","exclude","affectedFilter","MinComponent","find","MaxComponent","id","transformAmount","formattedAmount","target","transformToDecimal","exportAsXLSX","optValue","afFilter","jsonComp","datatype","filterPropName","SetProcessKey","idx","wfKeyFilter","listWfKey","switchCase","condList","condition","this_1","property","conditions","isUser","username","localStorage","getItem","chipperText","chipperKey","chipperKeyArr","CryptoJS.enc","Utf8","iv","CryptoJS.lib","WordArray","create","CryptoJS.AES","decrypt","checkInputDate","minDateVal","maxDateVal","errorMessage","min","max","dateWrong","selectedOption","isListHide","Component","selector","template","providers","DatePipe","animations","trigger","state","style","height","opacity","overflow","transition","animate","HttpClient","Renderer2","Inject","DOCUMENT","ToastrService","CookieService","ElementRef","ActivatedRoute","ViewChild","Input","Output","elemRef","route","isReport","EventEmitter","ClaimList","amount","queryParams","params","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","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\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 public static EXP_TYPE_JPDF = 5;\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\nimport { ActivatedRoute } from '@angular/router';\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_XLSX,\r\n value: \"Excel 2007\"\r\n },\r\n {\r\n key: ExportTypeConstant.EXP_TYPE_DOCX,\r\n value: \"Document XML\"\r\n },\r\n {\r\n key: ExportTypeConstant.EXP_TYPE_JPDF,\r\n value: \"Justify PDF\"\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 queryParam: Record<string, string>;\r\n persistCrit: CriteriaObj[];\r\n persistAddToTempCrit: CriteriaObj[];\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, private route: ActivatedRoute) {\r\n this.route.queryParams.subscribe(params => {\r\n this.queryParam = params;\r\n });\r\n }\r\n\r\n changeState() {\r\n this.currentState = this.currentState === 'initial' ? 'final' : 'initial';\r\n this.isHidden = this.isHidden === false ? true : false;\r\n }\r\n\r\n async 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 await this.initiateForm();\r\n }\r\n\r\n async initiateForm() {\r\n await 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].type == \"dropdownSearch\" && !data.component[i].isFromURL && data.component[i].items?.length != 1) {\r\n // if (data.component[i].ddsType == undefined || data.component[i].ddsType == \"all\") {\r\n // data.component[i].value = \"all\";\r\n // data.component[i].descr = \"All\";\r\n // } else if (data.component[i].ddsType == \"one\") {\r\n // data.component[i].value = \"one\";\r\n // data.component[i].descr = \"Select One\";\r\n // }\r\n // }\r\n if (data.component[i].type == \"dropdownSearch\" && !data.component[i].isFromURL && data.component[i].items.length == 1) {\r\n data.component[i].value = data.component[i].items[0].Key;\r\n data.component[i].descr = data.component[i].items[0].Value;\r\n }\r\n if (data.component[i].type != \"dropdownSearch\" && !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 if(data.component[i].type == \"textbox\") {\r\n this.configuration.component[i].value = this.autofill(data.component[i]);\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 private autofill(data: any) {\r\n if (data.value != \"\") return data.value;\r\n const autofill: Record<string, string> = data.autofill;\r\n if (autofill == undefined) return data.value;\r\n if (this.queryParam[autofill.key] == undefined) return data.value;\r\n if (autofill.source == \"param\") {\r\n return this.queryParam[autofill.key];\r\n }\r\n return data.value;\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(IsExportExcel: boolean = false) {\r\n let filtered = this.configuration.component.filter((item, i, arr) =>\r\n arr.findIndex((x) => (x.name === item.name)) === i);\r\n\r\n for (let i = 0; i < filtered.length; i++) {\r\n if (filtered[i].type == \"numeric\") {\r\n if(!this.checkValueGteLte(filtered[i])) return;\r\n }\r\n }\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 let rowPerPage = this.pageSize;\r\n if (IsExportExcel) rowPerPage = 9999;\r\n this.search(this.apiUrl, this.pageNow, rowPerPage, order, true, this.arrCrit, IsExportExcel);\r\n }\r\n\r\n async reset() {\r\n this.searchForm.resetForm({\r\n ExportType: this.ExportTypeList[0].key\r\n });\r\n await this.initiateForm();\r\n }\r\n\r\n search(apiUrl: string, pageNo: number, rowPerPage: number, orderBy: any, isClickSearch: boolean, addCrit: CriteriaObj[] = new Array(), IsExportExcel: boolean = false, isAddToTemp: boolean = false, addToTempCrit: 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 = -1;\r\n for (let i = 0; i < this.countForm; i++) {\r\n let critObj = new CriteriaObj();\r\n if (this.configuration.component[i].type == \"dropdownSearch\") {\r\n formSeq += 3;\r\n } else {\r\n formSeq++;\r\n }\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 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 if (!isAddToTemp) {\r\n arrCrit.push(critObj);\r\n }\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 if (!isAddToTemp) {\r\n arrCrit.push(critObj);\r\n }\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 if (!isAddToTemp) {\r\n arrCrit.push(critObj);\r\n }\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 if (!isAddToTemp) {\r\n arrCrit.push(critObj);\r\n }\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 if (isClickSearch) {\r\n this.persistCrit = arrCrit;\r\n }\r\n request.criteria = this.persistCrit;\r\n\r\n if (isAddToTemp) {\r\n this.persistAddToTempCrit = addToTempCrit;\r\n }\r\n \r\n if (this.persistAddToTempCrit !== undefined) {\r\n request.criteria = request.criteria.concat(this.persistAddToTempCrit);\r\n }\r\n\r\n // filter duplicate data in array\r\n request.criteria = this.filterDuplicateData(request.criteria)\r\n \r\n // filter empty value in listValue\r\n request.criteria = this.filterListValueEmpty(request.criteria);\r\n\r\n request.integrationObj = null;\r\n if (this.searchInput.isJoinExAPI) {\r\n request.integrationObj = this.searchInput.integrationObj;\r\n }\r\n\r\n this.http.post(apiUrl, request).subscribe((response) => {\r\n if (IsExportExcel) {\r\n this.ExcelData = response[\"Data\"];\r\n this.excelService.exportAsExcelFile(this.ExcelData, 'sample');\r\n return;\r\n }\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 private filterDuplicateData(data) {\r\n return data.filter((value, index) => {\r\n const _value = JSON.stringify(value);\r\n return index === data.findIndex(obj => {\r\n return JSON.stringify(obj) === _value;\r\n });\r\n });\r\n }\r\n\r\n private filterListValueEmpty(data) {\r\n return data.filter((value) => {\r\n if (value.listValue === undefined) return value;\r\n if (value.listValue.length === 0 ) return;\r\n return value;\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.type == \"dropdownSearch\" && obj.itemsUrl.length == 1) {\r\n obj.value = obj.itemsUrl[0].Key;\r\n obj.descr = obj.itemsUrl[0].Value;\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 checkValueGteLte(component){\r\n //cek yg pakai restriction gte/lte/gt/lt\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 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 \r\n if(this.myForm.nativeElement[MinComponent.id].value > this.myForm.nativeElement[MaxComponent.id].value){\r\n this.toastr.warning(MinComponent.label + \" must be less than \" + MaxComponent.label);\r\n return false;\r\n }\r\n\r\n return true;\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 this.searchClick(true);\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: string = ddl[ddl.selectedIndex].value.trim();\r\n let listValue = text.split(';');\r\n let listWfKey = wfKeyFilter.split(';');\r\n \r\n for (let i = 0; i < listValue.length; i++) {\r\n this.searchInput.integrationObj.requestObj[listWfKey[i]] = listValue[i];\r\n }\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"]}
|