@adins/ucsearch 2.0.72 → 2.1.0
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 +9 -3
- package/adins-ucsearch.metadata.json +1 -1
- package/bundles/adins-ucsearch.umd.js +26 -12
- 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 +35 -17
- package/esm5/lib/ucsearch.component.js +26 -9
- package/fesm2015/adins-ucsearch.js +32 -16
- package/fesm2015/adins-ucsearch.js.map +1 -1
- package/fesm5/adins-ucsearch.js +23 -8
- package/fesm5/adins-ucsearch.js.map +1 -1
- package/lib/ucsearch.component.d.ts +3 -1
- package/package.json +2 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/common/http"),require("@angular/platform-browser"),require("file-saver"),require("xlsx"),require("@angular/animations"),require("@angular/core"),require("@angular/common"),require("@angular/forms"),require("ngx-currency")):"function"==typeof define&&define.amd?define("@adins/ucsearch",["exports","@angular/common/http","@angular/platform-browser","file-saver","xlsx","@angular/animations","@angular/core","@angular/common","@angular/forms","ngx-currency"],e):e((t.adins=t.adins||{},t.adins.ucsearch={}),t.ng.common.http,t.ng.platformBrowser,t.FileSaver,t.XLSX,t.ng.animations,t.ng.core,t.ng.common,t.ng.forms,t.ngxCurrency)}(this,function(t,e,n,r,o,i,a,m,s,l){"use strict";var c=(u.decorators=[{type:a.Injectable,args:[{providedIn:"root"}]}],u.ctorParameters=function(){return[]},u.ngInjectableDef=a.defineInjectable({factory:function(){return new u},token:u,providedIn:"root"}),u);function u(){}var p=function S(){this._url="",this.enviromentUrl="",this.title="",this.apiQryPaging="",this.arrCritObj=null,this.addCritInput=new Array,this.ddlEnvironments=new Array,this.whereValue=new Array,this.switchValue=new Array},v=function k(){this.low=0,this.high=0,this.DataType="Text"},g=function C(){this.includeCount=!0,this.includeData=!0,this.isLoading=!0,this.queryString="",this.rowVersion=""},y=(d.RestrictionBetween="Between",d.RestrictionLike="Like",d.RestrictionEq="Eq",d.RestrictionNeq="NEQ",d.RestrictionGt="GT",d.RestrictionGte="GTE",d.RestrictionLt="LT",d.RestrictionLte="LTE",d.RestrictionIn="IN",d.RestrictionNotIn="NotIn",d.RestrictionOr="Or",d.RestrictionOrNeq="OrNeq",d.RestrictionIsNull="isnull",d.RestrictionIsNotNull="isnotnull",d.RestrictionGTE="GTE",d.RestrictionLTE="LTE",d.showData="10,50,100",d);function d(){}var h=(f.prototype.exportAsExcelFile=function(t,e){var n=o.utils.json_to_sheet(t);console.log("worksheet",n);var r={Sheets:{data:n},SheetNames:["data"]},i=o.write(r,{bookType:"xlsx",type:"array"});this.saveAsExcelFile(i,e)},f.prototype.saveAsExcelFile=function(t,e){var n=new Blob([t],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8"});r.saveAs(n,e+"_export_"+(new Date).getTime()+".xlsx")},f.decorators=[{type:a.Injectable}],f.ctorParameters=function(){return[]},f);function f(){}var I=(q.prototype.changeState=function(){this.currentState="initial"===this.currentState?"final":"initial",this.isHidden=!1===this.isHidden},q.prototype.ngOnInit=function(){console.log("ucsearch"),this.apiUrl=this.searchInput.enviromentUrl+this.searchInput.apiQryPaging,this.arrCrit=this.searchInput.arrCritObj;var t=this._renderer2.createElement("script");t.text='\n $(document).ready(function(){\n $("#flip").click(function(){\n $("#panel").slideToggle("slow");\n });\n });\n ',this._renderer2.appendChild(this._document.body,t),this.initiateForm()},q.prototype.initiateForm=function(){var h=this;this.getJSON(this.searchInput._url).subscribe(function(t){h.configuration=t,h.exportData=t.exportExcel,h.countForm=t.component.length,h.isDataLoaded=!0,h.searchInput.title!=undefined&&""!=h.searchInput.title&&(h.configuration.title=h.searchInput.title);for(var e=0;e<h.countForm;e++){if(1==t.component[e].isFromURL){var n=new g,r=new Array,i=new v;if(i.DataType="text",i.propName=t.component[e].criteriaPropName,i.value=t.component[e].criteriaPropValue,i.restriction="eq",r.push(i),n.criteria=r,n[t.component[e].criteriaPropName]=t.component[e].criteriaPropValue,t.component[e].path!=undefined&&""!=t.component[e].path)if(h.searchInput.ddlEnvironments!=undefined&&0!=h.searchInput.ddlEnvironments.length){for(var o=0;o<h.searchInput.ddlEnvironments.length;o++)if(t.component[e].name==h.searchInput.ddlEnvironments[o].name){t.component[e].fullpath=h.searchInput.ddlEnvironments[o].environment+t.component[e].path;break}}else t.component[e].fullpath=t.component[e].url;else t.component[e].fullpath=t.component[e].url;h.resolveObject(t.component[e],t.component[e].fullpath,n)}if("numeric"==t.component[e].type&&(t.component[e].value=parseFloat(t.component[e].value).toLocaleString("en")),"datepicker"==t.component[e].type&&t.component[e].value.includes("BD")){var a=localStorage.getItem("BusinessDateRaw"),s=new Date;null!=a&&(s=new Date(a));var l=t.component[e].value.charAt(2),c=new Date;if("-"==l){var u=t.component[e].value.split("-",2),p=parseInt(u[1]);c.setDate(s.getDate()-p)}else"+"==l?(u=t.component[e].value.split("+",2),p=parseInt(u[1]),c.setDate(s.getDate()+p)):c=s;var d=m.formatDate(c,"yyyy-MM-dd","en-US");t.component[e].value=d}}})},q.prototype.getJSON=function(t){return this.http.get(t)},q.prototype.postJSON=function(t,e){return void 0===e&&(e=null),this.http.post(t,e)},q.prototype.searchClick=function(){var t=null;null!=this.configuration.orderby&&(t={key:this.configuration.orderby.key,value:this.configuration.orderby.value}),this.pageNow=1,this.search(this.apiUrl,this.pageNow,this.pageSize,t,this.arrCrit)},q.prototype.reset=function(){this.initiateForm()},q.prototype.search=function(t,n,e,r,i){var o=this;void 0===i&&(i=new Array);var a=new g,s=new Array,l=!1;if(this.searchInput.whereValue!=undefined&&0!=this.searchInput.whereValue.length){this.configuration.querystring.whereQuery=new Array;for(var c=0;c<this.searchInput.whereValue.length;c++)this.configuration.querystring.whereQuery.push(this.searchInput.whereValue[c].value)}a.pageNo=n,a.rowPerPage=e,a.orderBy=r,a.queryString=this.configuration.querystring;for(var u=0;u<this.countForm;u++){var p=new v,d=this.myForm.nativeElement[u];if(p.DataType=d.getAttribute("data-type"),l=null!=d.getAttribute("query-in")&&"true"==d.getAttribute("query-in"),""!=d.value)if("SELECT"==d.nodeName){var h=d.options,m=h[h.selectedIndex].value.trim();if("All"!=m)p.restriction=y.RestrictionEq,p.propName=d.name,p.value=m,s.push(p);else if("All"==m&&1==l&&0!=d.options.length){var f=new Array;for(c=0;c<d.options.length;c++)0!=c&&f.push(d.options[c].value);0!=f.length&&(p.restriction=y.RestrictionIn,p.propName=d.name,p.listValue=f,s.push(p))}}else""!=d.name?p.propName=d.name:p.propName=d.getAttribute("ng-reflect-name"),p.value=d.value.trim(),d.value.includes("%")?p.restriction=y.RestrictionLike:""!=d.getAttribute("data-restriction")&&null!=d.getAttribute("data-restriction")?(p.restriction=d.getAttribute("data-restriction"),"numeric"==d.getAttribute("data-type")&&(p.value=parseFloat(d.value.replace(/,/g,"")).toString()),"LIKE"==p.restriction.toUpperCase()&&(p.value="%"+d.value.trim()+"%",p.restriction=y.RestrictionLike)):p.restriction=y.RestrictionEq,s.push(p)}if(null!=i&&i!=undefined){if(0!=i.length)for(u=0;u<i.length;u++)s.push(i[u]);else if(null!=this.searchInput.addCritInput||this.searchInput.addCritInput!=undefined)for(u=0;u<this.searchInput.addCritInput.length;u++)s.push(this.searchInput.addCritInput[u])}else if(null!=this.searchInput.addCritInput||this.searchInput.addCritInput!=undefined)for(u=0;u<this.searchInput.addCritInput.length;u++)s.push(this.searchInput.addCritInput[u]);a.criteria=s,this.http.post(t,a).subscribe(function(t){var e={response:t,pageNow:n};return console.log(e),o.result.emit(e),t})},q.prototype.lessThanFour=function(){return!(3<this.countForm)},q.prototype.resolveObject=function(e,t,n){void 0===n&&(n=null),this.postJSON(t,n).subscribe(function(t){e.itemsUrl=new Array,e.itemsUrl=t.ReturnObject})},q.prototype.transformAmount=function(t){this.formattedAmount=parseFloat(t.target.value).toLocaleString("en"),t.target.value=this.formattedAmount},q.prototype.transformToDecimal=function(t){t.target.value=parseFloat(t.target.value.toString().replace(/,/g,""))},q.prototype.exportAsXLSX=function(){var e=this,t=new g;t.pageNo=1,t.rowPerPage=9999,t.orderBy=null,t.criteria=[],t.queryString=this.configuration.querystring,this.http.post(this.apiUrl,t).subscribe(function(t){e.ExcelData=t.Data,e.excelService.exportAsExcelFile(e.ExcelData,"sample")},function(t){console.log(t)})},q.prototype.onChangeEvent=function(t,e){for(var n=this.configuration.component,r=0;r<e.affectedFilter.length;r++)for(var i=0;i<n.length;i++)if(n[i].name==e.affectedFilter[r]){var o=new g,a=new Array;if("All"!=t){var s=new v;s.DataType=e.datatype,s.propName=e.name,s.value=t,s.restriction=y.RestrictionEq,a.push(s)}if(o.criteria=a,n[i].path!=undefined&&""!=n[i].path)if(this.searchInput.ddlEnvironments!=undefined&&0!=this.searchInput.ddlEnvironments.length){for(var l=0;l<this.searchInput.ddlEnvironments.length;l++)if(n[i].name==this.searchInput.ddlEnvironments[l].name){n[i].fullpath=this.searchInput.ddlEnvironments[l].environment+n[i].path;break}}else n[i].fullpath=n[i].url;else n[i].fullpath=n[i].url;this.resolveObject(n[i],n[i].fullpath,o)}},q.prototype.switchCase=function(e){for(var t=!1,n=0;n<e.conditions.length;n++){var r=this.searchInput.switchValue.findIndex(function(t){return t.property==e.conditions[n].property});if("EQ"==e.conditions[n].restriction)if(1!=e.conditions[n].isUser){if(this.searchInput.switchValue[r].value!=e.conditions[n].value){t=!1;break}t=!0}else{var i=localStorage.getItem("Username");if(this.searchInput.switchValue[r].value!=i){t=!1;break}t=!0}else if("NEQ"==e.conditions[n].restriction)if(1!=e.conditions[n].isUser){if(this.searchInput.switchValue[r].value==e.conditions[n].value){t=!1;break}t=!0}else{if(i=localStorage.getItem("Username"),this.searchInput.switchValue[r].value==i){t=!1;break}t=!0}else if("GT"==e.conditions[n].restriction)if(1!=e.conditions[n].isUser){if(!(this.searchInput.switchValue[r].value>e.conditions[n].value)){t=!1;break}t=!0}else{if(i=localStorage.getItem("Username"),!(this.searchInput.switchValue[r].value>i)){t=!1;break}t=!0}else if("GTE"==e.conditions[n].restriction)if(1!=e.conditions[n].isUser){if(!(this.searchInput.switchValue[r].value>=e.conditions[n].value)){t=!1;break}t=!0}else{if(i=localStorage.getItem("Username"),!(this.searchInput.switchValue[r].value>=i)){t=!1;break}t=!0}else if("LT"==e.conditions[n].restriction)if(1!=e.conditions[n].isUser){if(!(this.searchInput.switchValue[r].value<e.conditions[n].value)){t=!1;break}t=!0}else{if(i=localStorage.getItem("Username"),!(this.searchInput.switchValue[r].value<i)){t=!1;break}t=!0}else if("LTE"==e.conditions[n].restriction)if(1!=e.conditions[n].isUser){if(!(this.searchInput.switchValue[r].value<=e.conditions[n].value)){t=!1;break}t=!0}else{if(i=localStorage.getItem("Username"),!(this.searchInput.switchValue[r].value<=i)){t=!1;break}t=!0}}return t},q.decorators=[{type:a.Component,args:[{selector:"lib-UCSearch",template:'\x3c!-- Basic form layout section start --\x3e\r\n<section id="horizontal-form-layouts">\r\n <div class="row text-left">\r\n <div class="col-md-12">\r\n <div class="card">\r\n <div class="pl-3 mb-2 mt-2" *ngIf="configuration?.title != undefined && configuration?.title != \'\'">\r\n <h4 class="card-title ucSearch-title" translate> {{ configuration.title }} </h4>\r\n </div>\r\n <div class="card-body">\r\n <div class="px-3">\r\n <form class="form form-horizontal" id="formSearch" #formIdSearch #enjiForm="ngForm" (ngSubmit)="false">\r\n <div class="form-body">\r\n <h4 class="form-section font-weight-bold">\r\n <div (click)="changeState()" class="btn no-padding cursor-pointer flip">\r\n <i class="fa" style="font-size: 15px; margin: 0px 0px 5px -15px;"\r\n [ngClass]="isHidden ? \'fa-chevron-right\' : \'fa-chevron-down\'"></i>\r\n </div>\r\n <span\r\n *ngIf="configuration?.sectionTitle != undefined && configuration?.sectionTitle != \'\'; then inputSectionTitle else defaultSectionTitle"></span>\r\n <ng-template #inputSectionTitle>\r\n {{configuration?.sectionTitle}}\r\n </ng-template>\r\n <ng-template #defaultSectionTitle>\r\n Paging\r\n </ng-template>\r\n </h4>\r\n \x3c!-- Ini Digunakan untuk Generate Dynamic Component --\x3e\r\n \x3c!-- [hidden]="isHidden" --\x3e\r\n <div class="panel-active" [@changeDivSize]=currentState>\r\n <div class="row">\r\n <div class="col-md-6 form-group" *ngFor="let question of configuration?.component">\r\n <div class="col-md-12">\r\n <div class="row">\r\n <label class="col-md-5 no-padding" for="{{question.id}}" translate>{{question.label}}</label>\r\n <div class="col-md-7 no-padding">\r\n <div *ngIf="question.type==\'textbox\'">\r\n <input type="text" id="{{question.id}}" class="form-control search-form-control"\r\n name="{{question.name}}" value="{{question.value}}" (keyup.enter)="searchClick()"\r\n attr.data-type="{{question.datatype}}" attr.data-restriction="{{question.restriction}}">\r\n </div>\r\n <div *ngIf="question.type==\'textarea\'">\r\n <textarea type="text" id="{{question.id}}" class="form-control search-form-control"\r\n name="{{question.name}}" attr.data-type="{{question.datatype}}"\r\n value="{{question.value}}"></textarea>\r\n </div>\r\n <div *ngIf="question.type==\'numeric\'">\r\n <input type="text" id="{{question.id}}" (focus)="transformToDecimal($event)"\r\n (blur)="transformAmount($event)" class="form-control search-form-control"\r\n name="{{question.name}}" value="{{question.value}}" (keyup.enter)="searchClick()"\r\n attr.data-restriction="{{question.restriction}}" attr.data-type="{{question.datatype}}">\r\n </div>\r\n <div *ngIf="question.type==\'currency\'">\r\n <div *ngIf="question?.isCustom != undefined && question?.isCustom">\r\n <input type="text" id="{{question.id}}" class="form-control search-form-control"\r\n [name]="question.name" (keyup.enter)="searchClick()"\r\n attr.data-restriction="{{question.restriction}}"\r\n attr.data-type="{{question.datatype}}" currencyMask ngModel [(ngModel)]="question.value" [ngModelOptions]="{standalone: true}" \r\n [options]="{ thousands: question.thousands, decimal: question.decimal, align: question.align, allowNegative: question.allowNegative, allowZero: question.allowZero, precision: question.precision, nullable: question.nullable }">\r\n </div>\r\n <div *ngIf="question?.isCustom == undefined || !question?.isCustom">\r\n <input type="text" id="{{question.id}}" class="form-control search-form-control"\r\n [name]="question.name" (keyup.enter)="searchClick()"\r\n attr.data-restriction="{{question.restriction}}"\r\n attr.data-type="{{question.datatype}}" currencyMask ngModel [(ngModel)]="question.value" [ngModelOptions]="{standalone: true}" \r\n [options]="{ thousands: \',\', decimal: \'.\', align: \'right\', allowNegative: false, allowZero:true, precision: 2, nullable: false }">\r\n </div>\r\n </div>\r\n\r\n \x3c!-- End Hardcode Lookup didalem--\x3e\r\n <div *ngIf="question.type==\'datepicker\'">\r\n <input type="date" id="{{question.id}}"\r\n class="form-control search-form-control btn-lookup" name="{{question.name}}"\r\n value="{{question.value}}" attr.data-type="{{question.datatype}}"\r\n (keyup.enter)="searchClick()" attr.data-restriction="{{question.restriction}}">\r\n </div>\r\n <div *ngIf="question.type==\'dropdown\'">\r\n \x3c!-- Ini kalau datanya tidak di load dari URL --\x3e\r\n <div *ngIf="!question.isFromURL">\r\n <select name="{{question.name}}" class="form-control search-form-control"\r\n attr.query-in="{{question.isQueryIn}}" attr.data-type="{{question.datatype}}">\r\n <option *ngIf="!question.isSelectOne" value="All">\r\n All\r\n </option>\r\n <option *ngFor="let item of question?.items" value="{{item.key}}">\r\n {{item.value}}\r\n </option>\r\n </select>\r\n </div>\r\n \x3c!-- Ini kalau datanya di load dari URL --\x3e\r\n <div *ngIf="question.isFromURL">\r\n <div *ngIf="question.isEvent">\r\n <select name="{{question.name}}"\r\n (change)="onChangeEvent($event.target.value, question)"\r\n class="form-control search-form-control" attr.query-in="{{question.isQueryIn}}"\r\n attr.data-type="{{question.datatype}}">\r\n <option *ngIf="!question.isSelectOne" value="All">\r\n All\r\n </option>\r\n <option *ngFor="let item of question?.itemsUrl" value="{{item.Key}}">\r\n {{item.Value}}\r\n </option>\r\n </select>\r\n </div>\r\n <div *ngIf="!question.isEvent">\r\n <select name="{{question.name}}" class="form-control search-form-control"\r\n attr.query-in="{{question.isQueryIn}}" attr.data-type="{{question.datatype}}">\r\n <option *ngIf="!question.isSelectOne" value="All">\r\n All\r\n </option>\r\n <option *ngFor="let item of question?.itemsUrl" value="{{item.Key}}">\r\n {{item.Value}}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="col-md-12 no-padding">\r\n <form>\r\n <div class="form-actions right">\r\n <button *ngIf="exportData == true" type="button" (click)="exportAsXLSX()"\r\n class="btn btn-raised btn-success mr-1" translate>\r\n <i class="fa ft-download"></i> Export Excel\r\n </button>\r\n <button type="button" (click)="reset()" class="btn btn-raised btn-warning mr-1" translate>\r\n <i class="fa fa-times"></i> Reset\r\n </button>\r\n <button type="button" (click)="searchClick()" class="btn btn-raised btn-primary" #UCSearchClick\r\n translate>\r\n <i class="fa fa-search"></i> Search\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n<br>\r\n\x3c!-- // Basic form layout section end --\x3e',providers:[h],animations:[i.trigger("changeDivSize",[i.state("initial",i.style({height:"*",opacity:"1"})),i.state("final",i.style({height:"0px",opacity:"0",overflow:"hidden"})),i.transition("initial=>final",i.animate("300ms")),i.transition("final=>initial",i.animate("300ms"))])],styles:[".ucSearch-title{margin:3px}"]}]}],q.ctorParameters=function(){return[{type:e.HttpClient},{type:h},{type:a.Renderer2},{type:undefined,decorators:[{type:a.Inject,args:[n.DOCUMENT]}]}]},q.propDecorators={myForm:[{type:a.ViewChild,args:["formIdSearch"]}],searchInput:[{type:a.Input}],pageSize:[{type:a.Input}],result:[{type:a.Output}]},q);function q(t,e,n,r){this.http=t,this.excelService=e,this._renderer2=n,this._document=r,this.searchInput=new p,this.pageSize=10,this.result=new a.EventEmitter,this.pageNow=1,this.isDataLoaded=!1,this.isHidden=!1,this.currentState="initial",this.countForm=0,this.formattedAmount="",this.amount=0}var b={align:"right",allowNegative:!1,allowZero:!0,decimal:".",precision:2,prefix:"",suffix:"",thousands:",",nullable:!1,inputMode:l.CurrencyMaskInputMode.NATURAL},w=(x.decorators=[{type:a.NgModule,args:[{declarations:[I],imports:[m.CommonModule,s.FormsModule,l.NgxCurrencyModule.forRoot(b)],exports:[I]}]}],x);function x(){}t.UCSearchService=c,t.UCSearchComponent=I,t.customCurrencyMaskConfig=b,t.UCSearchModule=w,t.ɵa=h,Object.defineProperty(t,"__esModule",{value:!0})});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common/http"),require("@angular/platform-browser"),require("file-saver"),require("xlsx"),require("@angular/animations"),require("ngx-toastr"),require("@angular/core"),require("@angular/common"),require("@angular/forms"),require("ngx-currency")):"function"==typeof define&&define.amd?define("@adins/ucsearch",["exports","@angular/common/http","@angular/platform-browser","file-saver","xlsx","@angular/animations","ngx-toastr","@angular/core","@angular/common","@angular/forms","ngx-currency"],t):t((e.adins=e.adins||{},e.adins.ucsearch={}),e.ng.common.http,e.ng.platformBrowser,e.FileSaver,e.XLSX,e.ng.animations,e.ngxToastr,e.ng.core,e.ng.common,e.ng.forms,e.ngxCurrency)}(this,function(e,t,n,r,o,i,a,s,f,l,u){"use strict";var c=(p.decorators=[{type:s.Injectable,args:[{providedIn:"root"}]}],p.ctorParameters=function(){return[]},p.ngInjectableDef=s.defineInjectable({factory:function(){return new p},token:p,providedIn:"root"}),p);function p(){}var d=function k(){this._url="",this.enviromentUrl="",this.title="",this.apiQryPaging="",this.arrCritObj=null,this.addCritInput=new Array,this.ddlEnvironments=new Array,this.whereValue=new Array,this.switchValue=new Array},I=function C(){this.low=0,this.high=0,this.DataType="Text"},q=function E(){this.includeCount=!0,this.includeData=!0,this.isLoading=!0,this.queryString="",this.rowVersion=""},b=(h.RestrictionBetween="Between",h.RestrictionLike="Like",h.RestrictionEq="Eq",h.RestrictionNeq="NEQ",h.RestrictionGt="GT",h.RestrictionGte="GTE",h.RestrictionLt="LT",h.RestrictionLte="LTE",h.RestrictionIn="IN",h.RestrictionNotIn="NotIn",h.RestrictionOr="Or",h.RestrictionOrNeq="OrNeq",h.RestrictionIsNull="isnull",h.RestrictionIsNotNull="isnotnull",h.RestrictionGTE="GTE",h.RestrictionLTE="LTE",h.showData="10,50,100",h);function h(){}var m=(v.prototype.exportAsExcelFile=function(e,t){var n=o.utils.json_to_sheet(e);console.log("worksheet",n);var r={Sheets:{data:n},SheetNames:["data"]},i=o.write(r,{bookType:"xlsx",type:"array"});this.saveAsExcelFile(i,t)},v.prototype.saveAsExcelFile=function(e,t){var n=new Blob([e],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8"});r.saveAs(n,t+"_export_"+(new Date).getTime()+".xlsx")},v.decorators=[{type:s.Injectable}],v.ctorParameters=function(){return[]},v);function v(){}var g=(y.prototype.changeState=function(){this.currentState="initial"===this.currentState?"final":"initial",this.isHidden=!1===this.isHidden},y.prototype.ngOnInit=function(){console.log("ucsearch"),this.apiUrl=this.searchInput.enviromentUrl+this.searchInput.apiQryPaging,this.arrCrit=this.searchInput.arrCritObj;var e=this._renderer2.createElement("script");e.text='\n $(document).ready(function(){\n $("#flip").click(function(){\n $("#panel").slideToggle("slow");\n });\n });\n ',this._renderer2.appendChild(this._document.body,e),this.initiateForm()},y.prototype.initiateForm=function(){var h=this;this.getJSON(this.searchInput._url).subscribe(function(e){h.configuration=e,h.exportData=e.exportExcel,h.countForm=e.component.length,h.isDataLoaded=!0,h.searchInput.title!=undefined&&""!=h.searchInput.title&&(h.configuration.title=h.searchInput.title);for(var t=0;t<h.countForm;t++){if(1==e.component[t].isFromURL){var n=new q,r=new Array,i=new I;if(i.DataType="text",i.propName=e.component[t].criteriaPropName,i.value=e.component[t].criteriaPropValue,i.restriction="eq",r.push(i),n.criteria=r,n[e.component[t].criteriaPropName]=e.component[t].criteriaPropValue,e.component[t].path!=undefined&&""!=e.component[t].path)if(h.searchInput.ddlEnvironments!=undefined&&0!=h.searchInput.ddlEnvironments.length){for(var o=0;o<h.searchInput.ddlEnvironments.length;o++)if(e.component[t].name==h.searchInput.ddlEnvironments[o].name){e.component[t].fullpath=h.searchInput.ddlEnvironments[o].environment+e.component[t].path;break}}else e.component[t].fullpath=e.component[t].url;else e.component[t].fullpath=e.component[t].url;h.resolveObject(e.component[t],e.component[t].fullpath,n)}if("numeric"==e.component[t].type&&(e.component[t].value=parseFloat(e.component[t].value).toLocaleString("en")),"datepicker"==e.component[t].type&&e.component[t].value.includes("BD")){var a=localStorage.getItem("BusinessDateRaw"),s=new Date;null!=a&&(s=new Date(a));var l=e.component[t].value.charAt(2),u=new Date;if("-"==l){var c=e.component[t].value.split("-",2),p=parseInt(c[1]);u.setDate(s.getDate()-p)}else"+"==l?(c=e.component[t].value.split("+",2),p=parseInt(c[1]),u.setDate(s.getDate()+p)):u=s;var d=f.formatDate(u,"yyyy-MM-dd","en-US");e.component[t].value=d}}})},y.prototype.getJSON=function(e){return this.http.get(e)},y.prototype.postJSON=function(e,t){return void 0===t&&(t=null),this.http.post(e,t)},y.prototype.searchClick=function(){var e=null;null!=this.configuration.orderby&&(e={key:this.configuration.orderby.key,value:this.configuration.orderby.value}),this.pageNow=1,this.search(this.apiUrl,this.pageNow,this.pageSize,e,this.arrCrit)},y.prototype.reset=function(){this.initiateForm()},y.prototype.search=function(e,n,t,r,i){var o=this;void 0===i&&(i=new Array);var a=new q,s=new Array,l=!1,u=!1;if(this.searchInput.whereValue!=undefined&&0!=this.searchInput.whereValue.length){this.configuration.querystring.whereQuery=new Array;for(var c=0;c<this.searchInput.whereValue.length;c++)this.configuration.querystring.whereQuery.push(this.searchInput.whereValue[c].value)}a.pageNo=n,a.rowPerPage=t,a.orderBy=r,a.queryString=this.configuration.querystring;for(var p=0;p<this.countForm;p++){var d=new I,h=this.myForm.nativeElement[p];if(d.DataType=h.getAttribute("data-type"),l=null!=h.getAttribute("query-in")&&"true"==h.getAttribute("query-in"),""!=h.value)if("SELECT"==h.nodeName){var f=h.options,m=f[f.selectedIndex].value.trim();if("one"==m){u=!0;var v=h.getAttribute("label");this.toastr.warning("Please select "+v);break}if("all"!=m&&"one"!=m)d.restriction=b.RestrictionEq,d.propName=h.name,d.value=m,s.push(d);else if("all"==m&&1==l&&0!=h.options.length){var g=new Array;for(c=0;c<h.options.length;c++)0!=c&&g.push(h.options[c].value);0!=g.length&&(d.restriction=b.RestrictionIn,d.propName=h.name,d.listValue=g,s.push(d))}}else""!=h.name?d.propName=h.name:d.propName=h.getAttribute("ng-reflect-name"),d.value=h.value.trim(),h.value.includes("%")?d.restriction=b.RestrictionLike:""!=h.getAttribute("data-restriction")&&null!=h.getAttribute("data-restriction")?(d.restriction=h.getAttribute("data-restriction"),"numeric"==h.getAttribute("data-type")&&(d.value=parseFloat(h.value.replace(/,/g,"")).toString()),"LIKE"==d.restriction.toUpperCase()&&(d.value="%"+h.value.trim()+"%",d.restriction=b.RestrictionLike)):d.restriction=b.RestrictionEq,s.push(d)}if(!u){if(null!=i&&i!=undefined){if(0!=i.length)for(var y=0;y<i.length;y++)s.push(i[y]);else if(null!=this.searchInput.addCritInput||this.searchInput.addCritInput!=undefined)for(y=0;y<this.searchInput.addCritInput.length;y++)s.push(this.searchInput.addCritInput[y])}else if(null!=this.searchInput.addCritInput||this.searchInput.addCritInput!=undefined)for(y=0;y<this.searchInput.addCritInput.length;y++)s.push(this.searchInput.addCritInput[y]);a.criteria=s,this.http.post(e,a).subscribe(function(e){var t={response:e,pageNow:n};return console.log(t),o.result.emit(t),e})}},y.prototype.lessThanFour=function(){return!(3<this.countForm)},y.prototype.resolveObject=function(t,e,n){void 0===n&&(n=null),this.postJSON(e,n).subscribe(function(e){t.itemsUrl=new Array,t.itemsUrl=e.ReturnObject})},y.prototype.transformAmount=function(e){this.formattedAmount=parseFloat(e.target.value).toLocaleString("en"),e.target.value=this.formattedAmount},y.prototype.transformToDecimal=function(e){e.target.value=parseFloat(e.target.value.toString().replace(/,/g,""))},y.prototype.exportAsXLSX=function(){var t=this,e=new q;e.pageNo=1,e.rowPerPage=9999,e.orderBy=null,e.criteria=[],e.queryString=this.configuration.querystring,this.http.post(this.apiUrl,e).subscribe(function(e){t.ExcelData=e.Data,t.excelService.exportAsExcelFile(t.ExcelData,"sample")},function(e){console.log(e)})},y.prototype.onChangeEvent=function(e,t){for(var n=this.configuration.component,r=0;r<t.affectedFilter.length;r++)for(var i=0;i<n.length;i++)if(n[i].name==t.affectedFilter[r]){var o=new q,a=new Array;if("all"!=e&&"one"!=e){var s=new I;s.DataType=t.datatype,s.propName=t.name,s.value=e,s.restriction=b.RestrictionEq,a.push(s)}if(o.criteria=a,n[i].path!=undefined&&""!=n[i].path)if(this.searchInput.ddlEnvironments!=undefined&&0!=this.searchInput.ddlEnvironments.length){for(var l=0;l<this.searchInput.ddlEnvironments.length;l++)if(n[i].name==this.searchInput.ddlEnvironments[l].name){n[i].fullpath=this.searchInput.ddlEnvironments[l].environment+n[i].path;break}}else n[i].fullpath=n[i].url;else n[i].fullpath=n[i].url;this.resolveObject(n[i],n[i].fullpath,o)}},y.prototype.switchCase=function(t){for(var e=!1,n=0;n<t.conditions.length;n++){var r=this.searchInput.switchValue.findIndex(function(e){return e.property==t.conditions[n].property});if("EQ"==t.conditions[n].restriction)if(1!=t.conditions[n].isUser){if(this.searchInput.switchValue[r].value!=t.conditions[n].value){e=!1;break}e=!0}else{var i=localStorage.getItem("Username");if(this.searchInput.switchValue[r].value!=i){e=!1;break}e=!0}else if("NEQ"==t.conditions[n].restriction)if(1!=t.conditions[n].isUser){if(this.searchInput.switchValue[r].value==t.conditions[n].value){e=!1;break}e=!0}else{if(i=localStorage.getItem("Username"),this.searchInput.switchValue[r].value==i){e=!1;break}e=!0}else if("GT"==t.conditions[n].restriction)if(1!=t.conditions[n].isUser){if(!(this.searchInput.switchValue[r].value>t.conditions[n].value)){e=!1;break}e=!0}else{if(i=localStorage.getItem("Username"),!(this.searchInput.switchValue[r].value>i)){e=!1;break}e=!0}else if("GTE"==t.conditions[n].restriction)if(1!=t.conditions[n].isUser){if(!(this.searchInput.switchValue[r].value>=t.conditions[n].value)){e=!1;break}e=!0}else{if(i=localStorage.getItem("Username"),!(this.searchInput.switchValue[r].value>=i)){e=!1;break}e=!0}else if("LT"==t.conditions[n].restriction)if(1!=t.conditions[n].isUser){if(!(this.searchInput.switchValue[r].value<t.conditions[n].value)){e=!1;break}e=!0}else{if(i=localStorage.getItem("Username"),!(this.searchInput.switchValue[r].value<i)){e=!1;break}e=!0}else if("LTE"==t.conditions[n].restriction)if(1!=t.conditions[n].isUser){if(!(this.searchInput.switchValue[r].value<=t.conditions[n].value)){e=!1;break}e=!0}else{if(i=localStorage.getItem("Username"),!(this.searchInput.switchValue[r].value<=i)){e=!1;break}e=!0}}return e},y.decorators=[{type:s.Component,args:[{selector:"lib-UCSearch",template:'\x3c!-- Basic form layout section start --\x3e\r\n<section id="horizontal-form-layouts">\r\n <div class="row text-left">\r\n <div class="col-md-12">\r\n <div class="card">\r\n <div class="pl-3 mb-2 mt-2" *ngIf="configuration?.title != undefined && configuration?.title != \'\'">\r\n <h4 class="card-title ucSearch-title" translate> {{ configuration.title }} </h4>\r\n </div>\r\n <div class="card-body">\r\n <div class="px-3">\r\n <form class="form form-horizontal" id="formSearch" #formIdSearch #enjiForm="ngForm" (ngSubmit)="false">\r\n <div class="form-body">\r\n <h4 class="form-section font-weight-bold">\r\n <div (click)="changeState()" class="btn no-padding cursor-pointer flip">\r\n <i class="fa" style="font-size: 15px; margin: 0px 0px 5px -15px;"\r\n [ngClass]="isHidden ? \'fa-chevron-right\' : \'fa-chevron-down\'"></i>\r\n </div>\r\n <span\r\n *ngIf="configuration?.sectionTitle != undefined && configuration?.sectionTitle != \'\'; then inputSectionTitle else defaultSectionTitle"></span>\r\n <ng-template #inputSectionTitle>\r\n {{configuration?.sectionTitle}}\r\n </ng-template>\r\n <ng-template #defaultSectionTitle>\r\n Paging\r\n </ng-template>\r\n </h4>\r\n \x3c!-- Ini Digunakan untuk Generate Dynamic Component --\x3e\r\n \x3c!-- [hidden]="isHidden" --\x3e\r\n <div class="panel-active" [@changeDivSize]=currentState>\r\n <div class="row">\r\n <div class="col-md-6 form-group" *ngFor="let question of configuration?.component">\r\n <div class="col-md-12">\r\n <div class="row">\r\n <label class="col-md-5 no-padding" for="{{question.id}}" translate>{{question.label}}</label>\r\n <div class="col-md-7 no-padding">\r\n <div *ngIf="question.type==\'textbox\'">\r\n <input type="text" id="{{question.id}}" class="form-control search-form-control"\r\n name="{{question.name}}" value="{{question.value}}" (keyup.enter)="searchClick()"\r\n attr.data-type="{{question.datatype}}" attr.data-restriction="{{question.restriction}}">\r\n </div>\r\n <div *ngIf="question.type==\'textarea\'">\r\n <textarea type="text" id="{{question.id}}" class="form-control search-form-control"\r\n name="{{question.name}}" attr.data-type="{{question.datatype}}"\r\n value="{{question.value}}"></textarea>\r\n </div>\r\n <div *ngIf="question.type==\'numeric\'">\r\n <input type="text" id="{{question.id}}" (focus)="transformToDecimal($event)"\r\n (blur)="transformAmount($event)" class="form-control search-form-control"\r\n name="{{question.name}}" value="{{question.value}}" (keyup.enter)="searchClick()"\r\n attr.data-restriction="{{question.restriction}}" attr.data-type="{{question.datatype}}">\r\n </div>\r\n <div *ngIf="question.type==\'currency\'">\r\n <div *ngIf="question?.isCustom != undefined && question?.isCustom">\r\n <input type="text" id="{{question.id}}" class="form-control search-form-control"\r\n [name]="question.name" (keyup.enter)="searchClick()"\r\n attr.data-restriction="{{question.restriction}}"\r\n attr.data-type="{{question.datatype}}" currencyMask ngModel\r\n [(ngModel)]="question.value" [ngModelOptions]="{standalone: true}"\r\n [options]="{ thousands: question.thousands, decimal: question.decimal, align: question.align, allowNegative: question.allowNegative, allowZero: question.allowZero, precision: question.precision, nullable: question.nullable }">\r\n </div>\r\n <div *ngIf="question?.isCustom == undefined || !question?.isCustom">\r\n <input type="text" id="{{question.id}}" class="form-control search-form-control"\r\n [name]="question.name" (keyup.enter)="searchClick()"\r\n attr.data-restriction="{{question.restriction}}"\r\n attr.data-type="{{question.datatype}}" currencyMask ngModel\r\n [(ngModel)]="question.value" [ngModelOptions]="{standalone: true}"\r\n [options]="{ thousands: \',\', decimal: \'.\', align: \'right\', allowNegative: false, allowZero:true, precision: 2, nullable: false }">\r\n </div>\r\n </div>\r\n\r\n \x3c!-- End Hardcode Lookup didalem--\x3e\r\n <div *ngIf="question.type==\'datepicker\'">\r\n <input type="date" id="{{question.id}}"\r\n class="form-control search-form-control btn-lookup" name="{{question.name}}"\r\n value="{{question.value}}" attr.data-type="{{question.datatype}}"\r\n (keyup.enter)="searchClick()" attr.data-restriction="{{question.restriction}}">\r\n </div>\r\n <div *ngIf="question.type==\'dropdown\'">\r\n \x3c!-- Ini kalau datanya tidak di load dari URL --\x3e\r\n <div *ngIf="!question.isFromURL">\r\n <select name="{{question.name}}" class="form-control search-form-control"\r\n attr.query-in="{{question.isQueryIn}}" attr.data-type="{{question.datatype}}" attr.label="{{question.label}}">\r\n <option *ngIf="question.ddlType == \'one\'" value="one">Select One</option>\r\n <option *ngIf="question?.ddlType == undefined || question.ddlType == \'all\'"\r\n value="all">All</option>\r\n <option *ngFor="let item of question?.items" value="{{item.key}}">\r\n {{item.value}}\r\n </option>\r\n </select>\r\n </div>\r\n \x3c!-- Ini kalau datanya di load dari URL --\x3e\r\n <div *ngIf="question.isFromURL">\r\n <div *ngIf="question.isEvent">\r\n <select name="{{question.name}}" class="form-control search-form-control"\r\n attr.query-in="{{question.isQueryIn}}" attr.data-type="{{question.datatype}}" attr.label="{{question.label}}"\r\n (change)="onChangeEvent($event.target.value, question)">\r\n <option *ngIf="question.ddlType == \'one\'" value="one">Select One</option>\r\n <option *ngIf="question?.ddlType == undefined || question.ddlType == \'all\'"\r\n value="all">All</option>\r\n <option *ngFor="let item of question?.itemsUrl" value="{{item.Key}}">\r\n {{item.Value}}\r\n </option>\r\n </select>\r\n </div>\r\n <div *ngIf="!question.isEvent">\r\n <select name="{{question.name}}" class="form-control search-form-control"\r\n attr.query-in="{{question.isQueryIn}}" attr.data-type="{{question.datatype}}" attr.label="{{question.label}}">\r\n <option *ngIf="question.ddlType == \'one\'" value="one">Select One</option>\r\n <option *ngIf="question?.ddlType == undefined || question.ddlType == \'all\'"\r\n value="all">All</option>\r\n <option *ngFor="let item of question?.itemsUrl" value="{{item.Key}}">\r\n {{item.Value}}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="col-md-12 no-padding">\r\n <form>\r\n <div class="form-actions right">\r\n <button *ngIf="exportData == true" type="button" (click)="exportAsXLSX()"\r\n class="btn btn-raised btn-success mr-1" translate>\r\n <i class="fa ft-download"></i> Export Excel\r\n </button>\r\n <button type="button" (click)="reset()" class="btn btn-raised btn-warning mr-1" translate>\r\n <i class="fa fa-times"></i> Reset\r\n </button>\r\n <button type="button" (click)="searchClick()" class="btn btn-raised btn-primary" #UCSearchClick\r\n translate>\r\n <i class="fa fa-search"></i> Search\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n<br>\r\n\x3c!-- // Basic form layout section end --\x3e',providers:[m],animations:[i.trigger("changeDivSize",[i.state("initial",i.style({height:"*",opacity:"1"})),i.state("final",i.style({height:"0px",opacity:"0",overflow:"hidden"})),i.transition("initial=>final",i.animate("300ms")),i.transition("final=>initial",i.animate("300ms"))])],styles:[".ucSearch-title{margin:3px}"]}]}],y.ctorParameters=function(){return[{type:t.HttpClient},{type:m},{type:s.Renderer2},{type:undefined,decorators:[{type:s.Inject,args:[n.DOCUMENT]}]},{type:a.ToastrService}]},y.propDecorators={myForm:[{type:s.ViewChild,args:["formIdSearch"]}],searchInput:[{type:s.Input}],pageSize:[{type:s.Input}],result:[{type:s.Output}]},y);function y(e,t,n,r,i){this.http=e,this.excelService=t,this._renderer2=n,this._document=r,this.toastr=i,this.searchInput=new d,this.pageSize=10,this.result=new s.EventEmitter,this.pageNow=1,this.isDataLoaded=!1,this.isHidden=!1,this.currentState="initial",this.countForm=0,this.formattedAmount="",this.amount=0}var w={align:"right",allowNegative:!1,allowZero:!0,decimal:".",precision:2,prefix:"",suffix:"",thousands:",",nullable:!1,inputMode:u.CurrencyMaskInputMode.NATURAL},x=(S.decorators=[{type:s.NgModule,args:[{declarations:[g],imports:[f.CommonModule,l.FormsModule,u.NgxCurrencyModule.forRoot(w)],exports:[g]}]}],S);function S(){}e.UCSearchService=c,e.UCSearchComponent=g,e.customCurrencyMaskConfig=w,e.UCSearchModule=x,e.ɵa=m,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
2
2
|
//# sourceMappingURL=adins-ucsearch.umd.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ng://@adins/ucsearch/lib/ucsearch.service.ts","ng://@adins/ucsearch/lib/model/InputSearchObj.Model.ts","ng://@adins/ucsearch/lib/model/CriteriaObj.model.ts","ng://@adins/ucsearch/lib/model/RequestCriteriaObj.model.ts","ng://@adins/ucsearch/lib/model/AdInstConstant.ts","ng://@adins/ucsearch/lib/services/excel-service/excel-service.ts","ng://@adins/ucsearch/lib/ucsearch.component.ts","ng://@adins/ucsearch/lib/ucsearch.module.ts"],"names":["UCSearchService","Injectable","args","providedIn","InputSearchObj","this","_url","enviromentUrl","title","apiQryPaging","arrCritObj","addCritInput","Array","ddlEnvironments","whereValue","switchValue","CriteriaObj","low","high","DataType","RequestCriteriaObj","includeCount","includeData","isLoading","queryString","rowVersion","AdInsConstant","RestrictionBetween","RestrictionLike","RestrictionEq","RestrictionNeq","RestrictionGt","RestrictionGte","RestrictionLt","RestrictionLte","RestrictionIn","RestrictionNotIn","RestrictionOr","RestrictionOrNeq","RestrictionIsNull","RestrictionIsNotNull","RestrictionGTE","RestrictionLTE","showData","ExcelService","prototype","exportAsExcelFile","json","excelFileName","worksheet","XLSX.utils","json_to_sheet","console","log","workbook","Sheets","data","SheetNames","excelBuffer","XLSX.write","bookType","type","saveAsExcelFile","buffer","fileName","Blob","FileSaver.saveAs","Date","getTime","UCSearchComponent","changeState","currentState","isHidden","ngOnInit","apiUrl","searchInput","arrCrit","js","_renderer2","createElement","text","appendChild","_document","body","initiateForm","_this","getJSON","subscribe","configuration","exportData","exportExcel","countForm","component","length","isDataLoaded","undefined","i","isFromURL","request","arrayCrit","criteriaObject","propName","criteriaPropName","value","criteriaPropValue","restriction","push","criteria","path","y","name","fullpath","environment","url","resolveObject","parseFloat","toLocaleString","includes","llsBD","localStorage","getItem","businessDate","operator","charAt","dateShow","tempMinus","split","numDay","parseInt","setDate","getDate","dateText","formatDate","http","get","postJSON","post","searchClick","order","orderby","key","pageNow","search","pageSize","reset","pageNo","rowPerPage","orderBy","addCrit","IsQueryIn","querystring","whereQuery","x","critObj","myForm","nativeElement","getAttribute","nodeName","ddl","options","selectedIndex","trim","ddlList","listValue","replace","toString","toUpperCase","response","qryPaging","result","emit","lessThanFour","obj","crit","tempData","itemsUrl","ReturnObject","transformAmount","element","formattedAmount","target","transformToDecimal","exportAsXLSX","ExcelData","excelService","error","onChangeEvent","optValue","afFilter","jsonComp","affectedFilter","j","datatype","switchCase","condList","condition","conditions","idx","findIndex","property","isUser","username","Component","selector","template","providers","animations","trigger","state","style","height","opacity","overflow","transition","animate","HttpClient","Renderer2","Inject","DOCUMENT","ViewChild","Input","Output","EventEmitter","amount","customCurrencyMaskConfig","align","allowNegative","allowZero","decimal","precision","prefix","suffix","thousands","nullable","inputMode","CurrencyMaskInputMode","NATURAL","UCSearchModule","NgModule","declarations","imports","CommonModule","FormsModule","NgxCurrencyModule","forRoot","exports"],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UCSearchService {\r\n\r\n constructor() { }\r\n}\r\n","import { CriteriaObj } from \"./CriteriaObj.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 ddlEnvironments: Array<EnviObj>;\r\n whereValue: Array<WhereValueObj>;\r\n switchValue: Array<SwitchValueObj>;\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.ddlEnvironments = new Array<EnviObj>();\r\n this.whereValue = new Array<WhereValueObj>();\r\n this.switchValue = new Array<SwitchValueObj>();\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 SwitchValueObj {\r\n property: string;\r\n value: any;\r\n\r\n constructor() {\r\n this.property = \"\";\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\r\n constructor() {\r\n this.low = 0;\r\n this.high = 0;\r\n this.DataType = 'Text';\r\n }\r\n\r\n}","import { CriteriaObj } from \"./CriteriaObj.model\";\r\n\r\nexport class RequestCriteriaObj{\r\n includeCount:boolean;\r\n includeData:boolean;\r\n pageNo:number;\r\n rowPerPage:number;\r\n orderBy:any;\r\n criteria:CriteriaObj[];\r\n isLoading : boolean;\r\n queryString: any;\r\n rowVersion: any;\r\n\r\n constructor()\r\n {\r\n this.includeCount=true;\r\n this.includeData=true;\r\n this.isLoading = true;\r\n this.queryString = '';\r\n this.rowVersion = '';\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}\r\n","import { Injectable } from '@angular/core';\r\nimport * as FileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n\r\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\nconst EXCEL_EXTENSION = '.xlsx';\r\n\r\n@Injectable()\r\nexport class ExcelService {\r\n\r\n constructor() { }\r\n\r\n public exportAsExcelFile(json: any[], excelFileName: string): void {\r\n \r\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\r\n console.log('worksheet',worksheet);\r\n const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\r\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n //const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'buffer' });\r\n this.saveAsExcelFile(excelBuffer, excelFileName);\r\n }\r\n\r\n private saveAsExcelFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION);\r\n }\r\n\r\n}","import { Component, OnInit, Input, ViewChild, ElementRef, Inject, Renderer2, EventEmitter, Output } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { formatDate } from '@angular/common';\r\nimport { InputSearchObj } from './model/InputSearchObj.Model';\r\nimport { CriteriaObj } from './model/CriteriaObj.model';\r\nimport { RequestCriteriaObj } from './model/RequestCriteriaObj.model';\r\nimport { AdInsConstant } from './model/AdInstConstant';\r\nimport { DOCUMENT } from '@angular/platform-browser';\r\nimport { ExcelService } from './services/excel-service/excel-service';\r\nimport { trigger, transition, style, animate, state } from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'lib-UCSearch',\r\n templateUrl: './ucsearch.component.html',\r\n styleUrls: ['./ucsearch.component.css'],\r\n providers: [ExcelService],\r\n animations: [\r\n trigger('changeDivSize', [\r\n state('initial', style({\r\n height: '*',\r\n opacity: '1',\r\n })),\r\n state('final', style({\r\n height: '0px',\r\n opacity: '0',\r\n overflow: 'hidden',\r\n })),\r\n transition('initial=>final', animate('300ms')),\r\n transition('final=>initial', animate('300ms'))\r\n ]),\r\n ]\r\n})\r\nexport class UCSearchComponent implements OnInit {\r\n\r\n @ViewChild('formIdSearch') myForm: ElementRef;\r\n @Input() searchInput: InputSearchObj = new InputSearchObj();\r\n @Input() pageSize: number = 10;\r\n @Output() result: EventEmitter<any> = new EventEmitter();\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\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 constructor(private http: HttpClient, private excelService: ExcelService, private _renderer2: Renderer2, @Inject(DOCUMENT) private _document) {\r\n }\r\n\r\n changeState() {\r\n this.currentState = this.currentState === 'initial' ? 'final' : 'initial';\r\n this.isHidden = this.isHidden === false ? true : false;\r\n }\r\n\r\n ngOnInit() {\r\n console.log(\"ucsearch\");\r\n this.apiUrl = this.searchInput.enviromentUrl + this.searchInput.apiQryPaging;\r\n this.arrCrit = this.searchInput.arrCritObj;\r\n let js = this._renderer2.createElement('script');\r\n js.text = `\r\n $(document).ready(function(){\r\n $(\"#flip\").click(function(){\r\n $(\"#panel\").slideToggle(\"slow\");\r\n });\r\n });\r\n `;\r\n this._renderer2.appendChild(this._document.body, js);\r\n this.initiateForm();\r\n }\r\n\r\n initiateForm() {\r\n this.getJSON(this.searchInput._url).subscribe(data => {\r\n this.configuration = data;\r\n this.exportData = data.exportExcel;\r\n 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 (var 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 var request = new RequestCriteriaObj();\r\n var arrayCrit = new Array();\r\n var criteriaObject = new CriteriaObj();\r\n criteriaObject.DataType = \"text\";\r\n criteriaObject.propName = data.component[i].criteriaPropName;\r\n criteriaObject.value = data.component[i].criteriaPropValue;\r\n criteriaObject.restriction = \"eq\";\r\n arrayCrit.push(criteriaObject);\r\n request.criteria = arrayCrit;\r\n 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.ddlEnvironments != undefined && this.searchInput.ddlEnvironments.length != 0) {\r\n for (let y = 0; y < this.searchInput.ddlEnvironments.length; y++) {\r\n if (data.component[i].name == this.searchInput.ddlEnvironments[y].name) {\r\n data.component[i].fullpath = this.searchInput.ddlEnvironments[y].environment + 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 tanggal\r\n if (data.component[i].type == \"datepicker\") {\r\n if (data.component[i].value.includes(\"BD\")) {\r\n let llsBD = localStorage.getItem(\"BusinessDateRaw\");\r\n let businessDate = new Date();\r\n if (llsBD != null) {\r\n businessDate = new Date(llsBD);\r\n }\r\n var operator = data.component[i].value.charAt(2);\r\n var dateShow = new Date();\r\n if (operator == \"-\") {\r\n var tempMinus = data.component[i].value.split(\"-\", 2);\r\n var numDay = parseInt(tempMinus[1]);\r\n dateShow.setDate(businessDate.getDate() - numDay);\r\n }\r\n else if (operator == \"+\") {\r\n var tempMinus = data.component[i].value.split(\"+\", 2);\r\n var numDay = parseInt(tempMinus[1]);\r\n dateShow.setDate(businessDate.getDate() + numDay);\r\n } else {\r\n dateShow = businessDate;\r\n }\r\n var dateText = formatDate(dateShow, 'yyyy-MM-dd', 'en-US')\r\n data.component[i].value = dateText;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n public getJSON(url: string): Observable<any> {\r\n return this.http.get(url);\r\n }\r\n\r\n public postJSON(url: string, criteria: any = null): Observable<any> {\r\n return this.http.post(url, criteria);\r\n }\r\n\r\n searchClick() {\r\n let order = null;\r\n if (this.configuration.orderby != null) {\r\n order = {\r\n key: this.configuration.orderby.key,\r\n value: this.configuration.orderby.value\r\n }\r\n }\r\n this.pageNow = 1;\r\n this.search(this.apiUrl, this.pageNow, this.pageSize, order, this.arrCrit);\r\n }\r\n\r\n reset() {\r\n this.initiateForm();\r\n }\r\n\r\n search(apiUrl: string, pageNo: number, rowPerPage: number, orderBy: any, addCrit: CriteriaObj[] = new Array()) {\r\n var request = new RequestCriteriaObj();\r\n var arrCrit = new Array();\r\n var IsQueryIn = 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 request.pageNo = pageNo;\r\n request.rowPerPage = rowPerPage;\r\n request.orderBy = orderBy;\r\n request.queryString = this.configuration.querystring;\r\n\r\n for (var i = 0; i < this.countForm; i++) {\r\n var critObj = new CriteriaObj();\r\n var component = this.myForm.nativeElement[i];\r\n critObj.DataType = component.getAttribute('data-type');\r\n //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 var ddl = component.options;\r\n var text = ddl[ddl.selectedIndex].value.trim();\r\n if (text != \"All\") {\r\n //Kalau Dari Dropdown udah pasti pake Eq\r\n critObj.restriction = AdInsConstant.RestrictionEq;\r\n critObj.propName = component.name;\r\n critObj.value = text;\r\n arrCrit.push(critObj);\r\n } else if (text == \"All\" && IsQueryIn == true && component.options.length != 0) {\r\n var 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 critObj.propName = component.name;\r\n critObj.listValue = ddlList;\r\n arrCrit.push(critObj);\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('ng-reflect-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 arrCrit.push(critObj);\r\n }\r\n }\r\n }\r\n\r\n if (addCrit != null && addCrit != undefined) {\r\n if (addCrit.length != 0) {\r\n for (var i = 0; i < addCrit.length; i++) {\r\n arrCrit.push(addCrit[i]);\r\n }\r\n } else if (this.searchInput.addCritInput != null || this.searchInput.addCritInput != undefined) {\r\n for (var i = 0; i < this.searchInput.addCritInput.length; i++) {\r\n arrCrit.push(this.searchInput.addCritInput[i]);\r\n }\r\n }\r\n }\r\n else if (this.searchInput.addCritInput != null || this.searchInput.addCritInput != undefined) {\r\n for (var i = 0; i < this.searchInput.addCritInput.length; i++) {\r\n arrCrit.push(this.searchInput.addCritInput[i]);\r\n }\r\n }\r\n\r\n request.criteria = arrCrit;\r\n this.http.post(apiUrl, request).subscribe((response) => {\r\n var qryPaging = {\r\n response: response,\r\n pageNow: pageNo\r\n }\r\n console.log(qryPaging);\r\n this.result.emit(qryPaging);\r\n return response;\r\n });\r\n }\r\n\r\n lessThanFour(): boolean {\r\n if (this.countForm > 3) {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n resolveObject(obj: any, url: string, crit: RequestCriteriaObj = null) {\r\n const val = this.postJSON(url, crit);\r\n val.subscribe(tempData => {\r\n obj.itemsUrl = new Array();\r\n obj.itemsUrl = tempData.ReturnObject;\r\n });\r\n }\r\n\r\n transformAmount(element: any) {\r\n this.formattedAmount = parseFloat(element.target.value).toLocaleString('en');\r\n // to show the formatted amount in the textbox.\r\n element.target.value = this.formattedAmount;\r\n }\r\n\r\n transformToDecimal(element: any) {\r\n element.target.value = parseFloat(element.target.value.toString().replace(/,/g, ''));\r\n }\r\n\r\n exportAsXLSX(): void {\r\n var request = new RequestCriteriaObj();\r\n request.pageNo = 1;\r\n request.rowPerPage = 9999;\r\n request.orderBy = null;\r\n request.criteria = [];\r\n request.queryString = this.configuration.querystring;\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 var jsonComp = this.configuration.component;\r\n\r\n for (var i = 0; i < afFilter.affectedFilter.length; i++) {\r\n for (var j = 0; j < jsonComp.length; j++) {\r\n if (jsonComp[j].name == afFilter.affectedFilter[i]) {\r\n var request = new RequestCriteriaObj();\r\n var arrayCrit = new Array();\r\n\r\n if (optValue != \"All\") {\r\n var critObj = new CriteriaObj();\r\n critObj.DataType = afFilter.datatype;\r\n critObj.propName = afFilter.name;\r\n critObj.value = optValue;\r\n critObj.restriction = AdInsConstant.RestrictionEq;\r\n arrayCrit.push(critObj);\r\n }\r\n request.criteria = arrayCrit;\r\n if (jsonComp[j].path != undefined && jsonComp[j].path != \"\") {\r\n if (this.searchInput.ddlEnvironments != undefined && this.searchInput.ddlEnvironments.length != 0) {\r\n for (let y = 0; y < this.searchInput.ddlEnvironments.length; y++) {\r\n if (jsonComp[j].name == this.searchInput.ddlEnvironments[y].name) {\r\n jsonComp[j].fullpath = this.searchInput.ddlEnvironments[y].environment + 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 switchCase(condList) {\r\n var condition = false;\r\n\r\n for (var i = 0; i < condList.conditions.length; i++) {\r\n var 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 var 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 var 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 var 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 var 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 var 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 var 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","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\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],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NgxCurrencyModule.forRoot(customCurrencyMaskConfig),\r\n ],\r\n exports: [UCSearchComponent]\r\n})\r\nexport class UCSearchModule { }\r\n"]}
|
|
1
|
+
{"version":3,"sources":["ng://@adins/ucsearch/lib/ucsearch.service.ts","ng://@adins/ucsearch/lib/model/InputSearchObj.Model.ts","ng://@adins/ucsearch/lib/model/CriteriaObj.model.ts","ng://@adins/ucsearch/lib/model/RequestCriteriaObj.model.ts","ng://@adins/ucsearch/lib/model/AdInstConstant.ts","ng://@adins/ucsearch/lib/services/excel-service/excel-service.ts","ng://@adins/ucsearch/lib/ucsearch.component.ts","ng://@adins/ucsearch/lib/ucsearch.module.ts"],"names":["UCSearchService","Injectable","args","providedIn","InputSearchObj","this","_url","enviromentUrl","title","apiQryPaging","arrCritObj","addCritInput","Array","ddlEnvironments","whereValue","switchValue","CriteriaObj","low","high","DataType","RequestCriteriaObj","includeCount","includeData","isLoading","queryString","rowVersion","AdInsConstant","RestrictionBetween","RestrictionLike","RestrictionEq","RestrictionNeq","RestrictionGt","RestrictionGte","RestrictionLt","RestrictionLte","RestrictionIn","RestrictionNotIn","RestrictionOr","RestrictionOrNeq","RestrictionIsNull","RestrictionIsNotNull","RestrictionGTE","RestrictionLTE","showData","ExcelService","prototype","exportAsExcelFile","json","excelFileName","worksheet","XLSX.utils","json_to_sheet","console","log","workbook","Sheets","data","SheetNames","excelBuffer","XLSX.write","bookType","type","saveAsExcelFile","buffer","fileName","Blob","FileSaver.saveAs","Date","getTime","UCSearchComponent","changeState","currentState","isHidden","ngOnInit","apiUrl","searchInput","arrCrit","js","_renderer2","createElement","text","appendChild","_document","body","initiateForm","_this","getJSON","subscribe","configuration","exportData","exportExcel","countForm","component","length","isDataLoaded","undefined","i","isFromURL","request","arrayCrit","criteriaObject","propName","criteriaPropName","value","criteriaPropValue","restriction","push","criteria","path","y","name","fullpath","environment","url","resolveObject","parseFloat","toLocaleString","includes","llsBD","localStorage","getItem","businessDate","operator","charAt","dateShow","tempMinus","split","numDay","parseInt","setDate","getDate","dateText","formatDate","http","get","postJSON","post","searchClick","order","orderby","key","pageNow","search","pageSize","reset","pageNo","rowPerPage","orderBy","addCrit","IsQueryIn","IsBreak","querystring","whereQuery","x","i_1","critObj","myForm","nativeElement","getAttribute","nodeName","ddl","options","selectedIndex","trim","label","toastr","warning","ddlList","listValue","replace","toString","toUpperCase","response","qryPaging","result","emit","lessThanFour","obj","crit","tempData","itemsUrl","ReturnObject","transformAmount","element","formattedAmount","target","transformToDecimal","exportAsXLSX","ExcelData","excelService","error","onChangeEvent","optValue","afFilter","jsonComp","affectedFilter","j","datatype","switchCase","condList","condition","conditions","idx","findIndex","property","isUser","username","Component","selector","template","providers","animations","trigger","state","style","height","opacity","overflow","transition","animate","HttpClient","Renderer2","Inject","DOCUMENT","ToastrService","ViewChild","Input","Output","EventEmitter","amount","customCurrencyMaskConfig","align","allowNegative","allowZero","decimal","precision","prefix","suffix","thousands","nullable","inputMode","CurrencyMaskInputMode","NATURAL","UCSearchModule","NgModule","declarations","imports","CommonModule","FormsModule","NgxCurrencyModule","forRoot","exports"],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UCSearchService {\r\n\r\n constructor() { }\r\n}\r\n","import { CriteriaObj } from \"./CriteriaObj.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 ddlEnvironments: Array<EnviObj>;\r\n whereValue: Array<WhereValueObj>;\r\n switchValue: Array<SwitchValueObj>;\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.ddlEnvironments = new Array<EnviObj>();\r\n this.whereValue = new Array<WhereValueObj>();\r\n this.switchValue = new Array<SwitchValueObj>();\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 SwitchValueObj {\r\n property: string;\r\n value: any;\r\n\r\n constructor() {\r\n this.property = \"\";\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\r\n constructor() {\r\n this.low = 0;\r\n this.high = 0;\r\n this.DataType = 'Text';\r\n }\r\n\r\n}","import { CriteriaObj } from \"./CriteriaObj.model\";\r\n\r\nexport class RequestCriteriaObj{\r\n includeCount:boolean;\r\n includeData:boolean;\r\n pageNo:number;\r\n rowPerPage:number;\r\n orderBy:any;\r\n criteria:CriteriaObj[];\r\n isLoading : boolean;\r\n queryString: any;\r\n rowVersion: any;\r\n\r\n constructor()\r\n {\r\n this.includeCount=true;\r\n this.includeData=true;\r\n this.isLoading = true;\r\n this.queryString = '';\r\n this.rowVersion = '';\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}\r\n","import { Injectable } from '@angular/core';\r\nimport * as FileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n\r\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\nconst EXCEL_EXTENSION = '.xlsx';\r\n\r\n@Injectable()\r\nexport class ExcelService {\r\n\r\n constructor() { }\r\n\r\n public exportAsExcelFile(json: any[], excelFileName: string): void {\r\n \r\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\r\n console.log('worksheet',worksheet);\r\n const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\r\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n //const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'buffer' });\r\n this.saveAsExcelFile(excelBuffer, excelFileName);\r\n }\r\n\r\n private saveAsExcelFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION);\r\n }\r\n\r\n}","import { Component, OnInit, Input, ViewChild, ElementRef, Inject, Renderer2, EventEmitter, Output } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { formatDate } from '@angular/common';\r\nimport { InputSearchObj } from './model/InputSearchObj.Model';\r\nimport { CriteriaObj } from './model/CriteriaObj.model';\r\nimport { RequestCriteriaObj } from './model/RequestCriteriaObj.model';\r\nimport { AdInsConstant } from './model/AdInstConstant';\r\nimport { DOCUMENT } from '@angular/platform-browser';\r\nimport { ExcelService } from './services/excel-service/excel-service';\r\nimport { trigger, transition, style, animate, state } from '@angular/animations';\r\nimport { ToastrService } from 'ngx-toastr';\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],\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 // trus nad, bisa ga kalo misalkan gw mau bikin\r\n // kalo login di cabang IsSelectOne: true\r\n // kalo login di HO, IsSelectOne: false\r\n\r\n @ViewChild('formIdSearch') myForm: ElementRef;\r\n @Input() searchInput: InputSearchObj = new InputSearchObj();\r\n @Input() pageSize: number = 10;\r\n @Output() result: EventEmitter<any> = new EventEmitter();\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\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 constructor(private http: HttpClient, private excelService: ExcelService, private _renderer2: Renderer2, @Inject(DOCUMENT) private _document, public toastr: ToastrService) {\r\n }\r\n\r\n changeState() {\r\n this.currentState = this.currentState === 'initial' ? 'final' : 'initial';\r\n this.isHidden = this.isHidden === false ? true : false;\r\n }\r\n\r\n ngOnInit() {\r\n console.log(\"ucsearch\");\r\n this.apiUrl = this.searchInput.enviromentUrl + this.searchInput.apiQryPaging;\r\n this.arrCrit = this.searchInput.arrCritObj;\r\n let js = this._renderer2.createElement('script');\r\n js.text = `\r\n $(document).ready(function(){\r\n $(\"#flip\").click(function(){\r\n $(\"#panel\").slideToggle(\"slow\");\r\n });\r\n });\r\n `;\r\n this._renderer2.appendChild(this._document.body, js);\r\n this.initiateForm();\r\n }\r\n\r\n initiateForm() {\r\n this.getJSON(this.searchInput._url).subscribe(data => {\r\n this.configuration = data;\r\n this.exportData = data.exportExcel;\r\n 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 (var 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 var request = new RequestCriteriaObj();\r\n var arrayCrit = new Array();\r\n var criteriaObject = new CriteriaObj();\r\n criteriaObject.DataType = \"text\";\r\n criteriaObject.propName = data.component[i].criteriaPropName;\r\n criteriaObject.value = data.component[i].criteriaPropValue;\r\n criteriaObject.restriction = \"eq\";\r\n arrayCrit.push(criteriaObject);\r\n request.criteria = arrayCrit;\r\n 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.ddlEnvironments != undefined && this.searchInput.ddlEnvironments.length != 0) {\r\n for (let y = 0; y < this.searchInput.ddlEnvironments.length; y++) {\r\n if (data.component[i].name == this.searchInput.ddlEnvironments[y].name) {\r\n data.component[i].fullpath = this.searchInput.ddlEnvironments[y].environment + 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 tanggal\r\n if (data.component[i].type == \"datepicker\") {\r\n if (data.component[i].value.includes(\"BD\")) {\r\n let llsBD = localStorage.getItem(\"BusinessDateRaw\");\r\n let businessDate = new Date();\r\n if (llsBD != null) {\r\n businessDate = new Date(llsBD);\r\n }\r\n var operator = data.component[i].value.charAt(2);\r\n var dateShow = new Date();\r\n if (operator == \"-\") {\r\n var tempMinus = data.component[i].value.split(\"-\", 2);\r\n var numDay = parseInt(tempMinus[1]);\r\n dateShow.setDate(businessDate.getDate() - numDay);\r\n }\r\n else if (operator == \"+\") {\r\n var tempMinus = data.component[i].value.split(\"+\", 2);\r\n var numDay = parseInt(tempMinus[1]);\r\n dateShow.setDate(businessDate.getDate() + numDay);\r\n } else {\r\n dateShow = businessDate;\r\n }\r\n var dateText = formatDate(dateShow, 'yyyy-MM-dd', 'en-US')\r\n data.component[i].value = dateText;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n public getJSON(url: string): Observable<any> {\r\n return this.http.get(url);\r\n }\r\n\r\n public postJSON(url: string, criteria: any = null): Observable<any> {\r\n return this.http.post(url, criteria);\r\n }\r\n\r\n searchClick() {\r\n let order = null;\r\n if (this.configuration.orderby != null) {\r\n order = {\r\n key: this.configuration.orderby.key,\r\n value: this.configuration.orderby.value\r\n }\r\n }\r\n this.pageNow = 1;\r\n this.search(this.apiUrl, this.pageNow, this.pageSize, order, this.arrCrit);\r\n }\r\n\r\n reset() {\r\n this.initiateForm();\r\n }\r\n\r\n search(apiUrl: string, pageNo: number, rowPerPage: number, orderBy: any, addCrit: CriteriaObj[] = new Array()) {\r\n let request = new RequestCriteriaObj();\r\n let arrCrit = new Array();\r\n let IsQueryIn = false;\r\n let IsBreak = false;\r\n\r\n // Inject whereQuery for where criteria\r\n if (this.searchInput.whereValue != undefined && this.searchInput.whereValue.length != 0) {\r\n this.configuration.querystring.whereQuery = new Array<any>();\r\n for (let x = 0; x < this.searchInput.whereValue.length; x++) {\r\n this.configuration.querystring.whereQuery.push(this.searchInput.whereValue[x].value);\r\n }\r\n }\r\n request.pageNo = pageNo;\r\n request.rowPerPage = rowPerPage;\r\n request.orderBy = orderBy;\r\n request.queryString = this.configuration.querystring;\r\n\r\n for (let i = 0; i < this.countForm; i++) {\r\n let critObj = new CriteriaObj();\r\n let component = this.myForm.nativeElement[i];\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 if (text != \"all\" && text != \"one\") {\r\n //Kalau Dari Dropdown udah pasti pake Eq\r\n critObj.restriction = AdInsConstant.RestrictionEq;\r\n critObj.propName = component.name;\r\n critObj.value = text;\r\n arrCrit.push(critObj);\r\n } 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 critObj.propName = component.name;\r\n critObj.listValue = ddlList;\r\n arrCrit.push(critObj);\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('ng-reflect-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 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 (var 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 (var i = 0; i < this.searchInput.addCritInput.length; i++) {\r\n arrCrit.push(this.searchInput.addCritInput[i]);\r\n }\r\n }\r\n }\r\n else if (this.searchInput.addCritInput != null || this.searchInput.addCritInput != undefined) {\r\n for (var i = 0; i < this.searchInput.addCritInput.length; i++) {\r\n arrCrit.push(this.searchInput.addCritInput[i]);\r\n }\r\n }\r\n\r\n request.criteria = arrCrit;\r\n this.http.post(apiUrl, request).subscribe((response) => {\r\n 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 return response;\r\n });\r\n }\r\n\r\n lessThanFour(): boolean {\r\n if (this.countForm > 3) {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n resolveObject(obj: any, url: string, crit: RequestCriteriaObj = null) {\r\n const val = this.postJSON(url, crit);\r\n val.subscribe(tempData => {\r\n obj.itemsUrl = new Array();\r\n obj.itemsUrl = tempData.ReturnObject;\r\n });\r\n }\r\n\r\n transformAmount(element: any) {\r\n this.formattedAmount = parseFloat(element.target.value).toLocaleString('en');\r\n // to show the formatted amount in the textbox.\r\n element.target.value = this.formattedAmount;\r\n }\r\n\r\n transformToDecimal(element: any) {\r\n element.target.value = parseFloat(element.target.value.toString().replace(/,/g, ''));\r\n }\r\n\r\n exportAsXLSX(): void {\r\n var request = new RequestCriteriaObj();\r\n request.pageNo = 1;\r\n request.rowPerPage = 9999;\r\n request.orderBy = null;\r\n request.criteria = [];\r\n request.queryString = this.configuration.querystring;\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 var jsonComp = this.configuration.component;\r\n\r\n for (var i = 0; i < afFilter.affectedFilter.length; i++) {\r\n for (var j = 0; j < jsonComp.length; j++) {\r\n if (jsonComp[j].name == afFilter.affectedFilter[i]) {\r\n var request = new RequestCriteriaObj();\r\n var arrayCrit = new Array();\r\n\r\n if (optValue != \"all\" && optValue != \"one\") {\r\n var critObj = new CriteriaObj();\r\n critObj.DataType = afFilter.datatype;\r\n critObj.propName = afFilter.name;\r\n critObj.value = optValue;\r\n critObj.restriction = AdInsConstant.RestrictionEq;\r\n arrayCrit.push(critObj);\r\n }\r\n request.criteria = arrayCrit;\r\n if (jsonComp[j].path != undefined && jsonComp[j].path != \"\") {\r\n if (this.searchInput.ddlEnvironments != undefined && this.searchInput.ddlEnvironments.length != 0) {\r\n for (let y = 0; y < this.searchInput.ddlEnvironments.length; y++) {\r\n if (jsonComp[j].name == this.searchInput.ddlEnvironments[y].name) {\r\n jsonComp[j].fullpath = this.searchInput.ddlEnvironments[y].environment + 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 switchCase(condList) {\r\n var condition = false;\r\n\r\n for (var i = 0; i < condList.conditions.length; i++) {\r\n var 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 var 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 var 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 var 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 var 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 var 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 var 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","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\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],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NgxCurrencyModule.forRoot(customCurrencyMaskConfig),\r\n ],\r\n exports: [UCSearchComponent]\r\n})\r\nexport class UCSearchModule { }\r\n"]}
|