@adins/ucsearch 2.0.40 → 2.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,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")):"function"==typeof define&&define.amd?define("@adins/ucsearch",["exports","@angular/common/http","@angular/platform-browser","file-saver","xlsx","@angular/animations","@angular/core","@angular/common"],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)}(this,function(t,e,n,r,o,i,a,m){"use strict";var s=(l.decorators=[{type:a.Injectable,args:[{providedIn:"root"}]}],l.ctorParameters=function(){return[]},l.ngInjectableDef=a.defineInjectable({factory:function(){return new l},token:l,providedIn:"root"}),l);function l(){}var c=function b(){this._url="",this.enviromentUrl="",this.title="",this.apiQryPaging="",this.arrCritObj=null,this.addCritInput=new Array,this.ddlEnvironments=new Array,this.whereValue=new Array},v=function x(){this.low=0,this.high=0,this.DataType="Text"},g=function w(){this.includeCount=!0,this.includeData=!0,this.isLoading=!0,this.queryString="",this.rowVersion=""},y=(u.RestrictionBetween="Between",u.RestrictionLike="Like",u.RestrictionEq="Eq",u.RestrictionNeq="NEQ",u.RestrictionGt="GT",u.RestrictionGte="GTE",u.RestrictionLt="LT",u.RestrictionLte="LTE",u.RestrictionIn="IN",u.RestrictionNotIn="NotIn",u.RestrictionOr="Or",u.RestrictionOrNeq="OrNeq",u.RestrictionIsNull="isnull",u.RestrictionIsNotNull="isnotnull",u.RestrictionGTE="GTE",u.RestrictionLTE="LTE",u.showData="10,50,100",u);function u(){}var p=(d.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)},d.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")},d.decorators=[{type:a.Injectable}],d.ctorParameters=function(){return[]},d);function d(){}var h=(f.prototype.changeState=function(){this.currentState="initial"===this.currentState?"final":"initial",this.isHidden=!1===this.isHidden},f.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()},f.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}}})},f.prototype.getJSON=function(t){return this.http.get(t)},f.prototype.postJSON=function(t,e){return void 0===e&&(e=null),this.http.post(t,e)},f.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)},f.prototype.reset=function(){this.initiateForm()},f.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 p.propName=d.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")&&(d.value=parseFloat(d.value.replace(/,/g,""))),"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})},f.prototype.lessThanFour=function(){return!(3<this.countForm)},f.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})},f.prototype.transformAmount=function(t){this.formattedAmount=parseFloat(t.target.value).toLocaleString("en"),t.target.value=this.formattedAmount},f.prototype.transformToDecimal=function(t){t.target.value=parseFloat(t.target.value.toString().replace(/,/g,""))},f.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)})},f.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)}},f.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>\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}}" (keydown.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}}" (keydown.enter)="searchClick()"\r\n attr.data-restriction="{{question.restriction}}" attr.data-type="{{question.datatype}}">\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}}" (keydown.enter)="searchClick()"\r\n 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:[p],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}"]}]}],f.ctorParameters=function(){return[{type:e.HttpClient},{type:p},{type:a.Renderer2},{type:undefined,decorators:[{type:a.Inject,args:[n.DOCUMENT]}]}]},f.propDecorators={myForm:[{type:a.ViewChild,args:["formIdSearch"]}],searchInput:[{type:a.Input}],pageSize:[{type:a.Input}],result:[{type:a.Output}]},f);function f(t,e,n,r){this.http=t,this.excelService=e,this._renderer2=n,this._document=r,this.searchInput=new c,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 I=(q.decorators=[{type:a.NgModule,args:[{declarations:[h],imports:[m.CommonModule],exports:[h]}]}],q);function q(){}t.UCSearchService=s,t.UCSearchComponent=h,t.UCSearchModule=I,t.ɵa=p,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("@angular/core"),require("@angular/common")):"function"==typeof define&&define.amd?define("@adins/ucsearch",["exports","@angular/common/http","@angular/platform-browser","file-saver","xlsx","@angular/animations","@angular/core","@angular/common"],t):t((e.adins=e.adins||{},e.adins.ucsearch={}),e.ng.common.http,e.ng.platformBrowser,e.FileSaver,e.XLSX,e.ng.animations,e.ng.core,e.ng.common)}(this,function(e,t,n,r,a,i,o,m){"use strict";var s=(l.decorators=[{type:o.Injectable,args:[{providedIn:"root"}]}],l.ctorParameters=function(){return[]},l.ngInjectableDef=o.defineInjectable({factory:function(){return new l},token:l,providedIn:"root"}),l);function l(){}var c=function q(){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 w(){this.low=0,this.high=0,this.DataType="Text"},g=function x(){this.includeCount=!0,this.includeData=!0,this.isLoading=!0,this.queryString="",this.rowVersion=""},y=(u.RestrictionBetween="Between",u.RestrictionLike="Like",u.RestrictionEq="Eq",u.RestrictionNeq="NEQ",u.RestrictionGt="GT",u.RestrictionGte="GTE",u.RestrictionLt="LT",u.RestrictionLte="LTE",u.RestrictionIn="IN",u.RestrictionNotIn="NotIn",u.RestrictionOr="Or",u.RestrictionOrNeq="OrNeq",u.RestrictionIsNull="isnull",u.RestrictionIsNotNull="isnotnull",u.RestrictionGTE="GTE",u.RestrictionLTE="LTE",u.showData="10,50,100",u);function u(){}var d=(p.prototype.exportAsExcelFile=function(e,t){var n=a.utils.json_to_sheet(e);console.log("worksheet",n);var r={Sheets:{data:n},SheetNames:["data"]},i=a.write(r,{bookType:"xlsx",type:"array"});this.saveAsExcelFile(i,t)},p.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")},p.decorators=[{type:o.Injectable}],p.ctorParameters=function(){return[]},p);function p(){}var h=(f.prototype.changeState=function(){this.currentState="initial"===this.currentState?"final":"initial",this.isHidden=!1===this.isHidden},f.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()},f.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 g,r=new Array,i=new v;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 a=0;a<h.searchInput.ddlEnvironments.length;a++)if(e.component[t].name==h.searchInput.ddlEnvironments[a].name){e.component[t].fullpath=h.searchInput.ddlEnvironments[a].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 o=localStorage.getItem("BusinessDateRaw"),s=new Date;null!=o&&(s=new Date(o));var l=e.component[t].value.charAt(2),c=new Date;if("-"==l){var u=e.component[t].value.split("-",2),d=parseInt(u[1]);c.setDate(s.getDate()-d)}else"+"==l?(u=e.component[t].value.split("+",2),d=parseInt(u[1]),c.setDate(s.getDate()+d)):c=s;var p=m.formatDate(c,"yyyy-MM-dd","en-US");e.component[t].value=p}}})},f.prototype.getJSON=function(e){return this.http.get(e)},f.prototype.postJSON=function(e,t){return void 0===t&&(t=null),this.http.post(e,t)},f.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)},f.prototype.reset=function(){this.initiateForm()},f.prototype.search=function(e,n,t,r,i){var a=this;void 0===i&&(i=new Array);var o=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)}o.pageNo=n,o.rowPerPage=t,o.orderBy=r,o.queryString=this.configuration.querystring;for(var u=0;u<this.countForm;u++){var d=new v,p=this.myForm.nativeElement[u];if(d.DataType=p.getAttribute("data-type"),l=null!=p.getAttribute("query-in")&&"true"==p.getAttribute("query-in"),""!=p.value)if("SELECT"==p.nodeName){var h=p.options,m=h[h.selectedIndex].value.trim();if("All"!=m)d.restriction=y.RestrictionEq,d.propName=p.name,d.value=m,s.push(d);else if("All"==m&&1==l&&0!=p.options.length){var f=new Array;for(c=0;c<p.options.length;c++)0!=c&&f.push(p.options[c].value);0!=f.length&&(d.restriction=y.RestrictionIn,d.propName=p.name,d.listValue=f,s.push(d))}}else d.propName=p.name,d.value=p.value.trim(),p.value.includes("%")?d.restriction=y.RestrictionLike:""!=p.getAttribute("data-restriction")&&null!=p.getAttribute("data-restriction")?(d.restriction=p.getAttribute("data-restriction"),"numeric"==p.getAttribute("data-type")&&(p.value=parseFloat(p.value.replace(/,/g,""))),"LIKE"==d.restriction.toUpperCase()&&(d.value="%"+p.value.trim()+"%",d.restriction=y.RestrictionLike)):d.restriction=y.RestrictionEq,s.push(d)}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]);o.criteria=s,this.http.post(e,o).subscribe(function(e){var t={response:e,pageNow:n};return console.log(t),a.result.emit(t),e})},f.prototype.lessThanFour=function(){return!(3<this.countForm)},f.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})},f.prototype.transformAmount=function(e){this.formattedAmount=parseFloat(e.target.value).toLocaleString("en"),e.target.value=this.formattedAmount},f.prototype.transformToDecimal=function(e){e.target.value=parseFloat(e.target.value.toString().replace(/,/g,""))},f.prototype.exportAsXLSX=function(){var t=this,e=new g;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)})},f.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 a=new g,o=new Array;if("All"!=e){var s=new v;s.DataType=t.datatype,s.propName=t.name,s.value=e,s.restriction=y.RestrictionEq,o.push(s)}if(a.criteria=o,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,a)}},f.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},f.decorators=[{type:o.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>\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 <div *ngIf="question.type==\'textbox\'">\r\n <label class="col-md-5 no-padding" for="{{question.id}}"\r\n translate>{{question.label}}</label>\r\n <input class="col-md-7 no-padding" type="text" id="{{question.id}}"\r\n class="form-control search-form-control" name="{{question.name}}"\r\n value="{{question.value}}" (keydown.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 <label class="col-md-5 no-padding" for="{{question.id}}"\r\n translate>{{question.label}}</label>\r\n <textarea class="col-md-7 no-padding" type="text" id="{{question.id}}"\r\n class="form-control search-form-control" name="{{question.name}}"\r\n attr.data-type="{{question.datatype}}" value="{{question.value}}"></textarea>\r\n </div>\r\n <div *ngIf="question.type==\'numeric\'">\r\n <label class="col-md-5 no-padding" for="{{question.id}}"\r\n translate>{{question.label}}</label>\r\n <input class="col-md-7 no-padding" type="text" id="{{question.id}}"\r\n (focus)="transformToDecimal($event)" (blur)="transformAmount($event)"\r\n class="form-control search-form-control" name="{{question.name}}"\r\n value="{{question.value}}" (keydown.enter)="searchClick()"\r\n attr.data-restriction="{{question.restriction}}" attr.data-type="{{question.datatype}}">\r\n </div>\r\n\r\n \x3c!-- End Hardcode Lookup didalem--\x3e\r\n <div *ngIf="question.type==\'datepicker\'">\r\n <label class="col-md-5 no-padding" for="{{question.id}}"\r\n translate>{{question.label}}</label>\r\n <input class="col-md-7 no-padding" 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 (keydown.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 <label class="col-md-5 no-padding" for="{{question.id}}"\r\n translate>{{question.label}}</label>\r\n <select class="col-md-7 no-padding" name="{{question.name}}"\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?.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 <label class="col-md-5 no-padding" for="{{question.id}}"\r\n translate>{{question.label}}</label>\r\n <select class="col-md-7 no-padding" 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 <label class="col-md-5 no-padding" for="{{question.id}}"\r\n translate>{{question.label}}</label>\r\n <select class="col-md-7 no-padding" name="{{question.name}}"\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>\r\n </div>\r\n <div *ngIf="question.type==\'switch\'">\r\n <div *ngFor="let case of question.case">\r\n <div *ngIf="switchCase(case) && case.isHide != true">\r\n <label class="col-md-5 no-padding" for="{{case.result.id}}" translate> {{\r\n case.result.label }} </label>\r\n </div>\r\n <div class="col-md-7 no-padding">\r\n <div *ngIf="case.result.type==\'textbox\'">\r\n <input type="text" id="{{case.result.id}}" class="form-control search-form-control"\r\n name="{{case.result.name}}" value="{{case.result.value}}" (keydown.enter)="searchClick()"\r\n attr.data-type="{{case.result.datatype}}"\r\n attr.data-restriction="{{case.result.restriction}}">\r\n </div>\r\n <div *ngIf="case.result.type==\'textarea\'">\r\n <textarea type="text" id="{{case.result.id}}"\r\n class="form-control search-form-control" name="{{case.result.name}}"\r\n attr.data-type="{{case.result.datatype}}" value="{{case.result.value}}"></textarea>\r\n </div>\r\n <div *ngIf="case.result.type==\'numeric\'">\r\n <input type="text" id="{{case.result.id}}"\r\n (focus)="transformToDecimal($event)" (blur)="transformAmount($event)"\r\n class="form-control search-form-control" name="{{case.result.name}}"\r\n value="{{case.result.value}}" (keydown.enter)="searchClick()"\r\n attr.data-restriction="{{case.result.restriction}}" attr.data-type="{{case.result.datatype}}">\r\n </div>\r\n <div *ngIf="case.result.type==\'datepicker\'">\r\n <input type="date" id="{{case.result.id}}"\r\n class="form-control search-form-control btn-lookup" name="{{case.result.name}}"\r\n value="{{case.result.value}}" attr.data-type="{{case.result.datatype}}"\r\n (keydown.enter)="searchClick()" attr.data-restriction="{{case.result.restriction}}">\r\n </div>\r\n <div *ngIf="case.result.type==\'dropdown\'">\r\n <div *ngIf="!case.result.isFromURL">\r\n <label class="col-md-5 no-padding" for="{{case.result.id}}"\r\n translate>{{case.result.label}}</label>\r\n <select name="{{case.result.name}}"\r\n class="form-control search-form-control" attr.query-in="{{case.result.isQueryIn}}"\r\n attr.data-type="{{case.result.datatype}}">\r\n <option *ngIf="!case.result.isSelectOne" value="All">\r\n All\r\n </option>\r\n <option *ngFor="let item of case.result?.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="case.result.isFromURL">\r\n <div *ngIf="case.result.isEvent">\r\n <label class="col-md-5 no-padding" for="{{case.result.id}}"\r\n translate>{{case.result.label}}</label>\r\n <select name="{{case.result.name}}"\r\n (change)="onChangeEvent($event.target.value, case.result)"\r\n class="form-control search-form-control" attr.query-in="{{case.result.isQueryIn}}"\r\n attr.data-type="{{case.result.datatype}}">\r\n <option *ngIf="!case.result.isSelectOne" value="All">\r\n All\r\n </option>\r\n <option *ngFor="let item of case.result?.itemsUrl" value="{{item.Key}}">\r\n {{item.Value}}\r\n </option>\r\n </select>\r\n </div>\r\n <div *ngIf="!case.result.isEvent">\r\n <label class="col-md-5 no-padding" for="{{case.result.id}}"\r\n translate>{{case.result.label}}</label>\r\n <select name="{{case.result.name}}"\r\n class="form-control search-form-control" attr.query-in="{{case.result.isQueryIn}}"\r\n attr.data-type="{{case.result.datatype}}">\r\n <option *ngIf="!case.result.isSelectOne" value="All">\r\n All\r\n </option>\r\n <option *ngFor="let item of case.result?.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>\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:[d],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}"]}]}],f.ctorParameters=function(){return[{type:t.HttpClient},{type:d},{type:o.Renderer2},{type:undefined,decorators:[{type:o.Inject,args:[n.DOCUMENT]}]}]},f.propDecorators={myForm:[{type:o.ViewChild,args:["formIdSearch"]}],searchInput:[{type:o.Input}],pageSize:[{type:o.Input}],result:[{type:o.Output}]},f);function f(e,t,n,r){this.http=e,this.excelService=t,this._renderer2=n,this._document=r,this.searchInput=new c,this.pageSize=10,this.result=new o.EventEmitter,this.pageNow=1,this.isDataLoaded=!1,this.isHidden=!1,this.currentState="initial",this.countForm=0,this.formattedAmount="",this.amount=0}var I=(b.decorators=[{type:o.NgModule,args:[{declarations:[h],imports:[m.CommonModule],exports:[h]}]}],b);function b(){}e.UCSearchService=s,e.UCSearchComponent=h,e.UCSearchModule=I,e.ɵa=d,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","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","toUpperCase","response","qryPaging","result","emit","lessThanFour","obj","crit","tempData","itemsUrl","ReturnObject","transformAmount","element","formattedAmount","target","transformToDecimal","toString","exportAsXLSX","ExcelData","excelService","error","onChangeEvent","optValue","afFilter","jsonComp","affectedFilter","j","datatype","Component","selector","template","providers","animations","trigger","state","style","height","opacity","overflow","transition","animate","HttpClient","Renderer2","Inject","DOCUMENT","ViewChild","Input","Output","EventEmitter","amount","UCSearchModule","NgModule","declarations","imports","CommonModule","exports"],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UCSearchService {\r\n\r\n constructor() { }\r\n}\r\n","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 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 }\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}","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 critObj.propName = component.name;\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 component.value = parseFloat(component.value.replace(/,/g, ''));\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","import { NgModule } from '@angular/core';\r\nimport { UCSearchComponent } from './ucsearch.component';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n declarations: [UCSearchComponent],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [UCSearchComponent]\r\n})\r\nexport class UCSearchModule { }\r\n"]}
1
+ {"version":3,"sources":["ng://@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","toUpperCase","response","qryPaging","result","emit","lessThanFour","obj","crit","tempData","itemsUrl","ReturnObject","transformAmount","element","formattedAmount","target","transformToDecimal","toString","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","UCSearchModule","NgModule","declarations","imports","CommonModule","exports"],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UCSearchService {\r\n\r\n constructor() { }\r\n}\r\n","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 critObj.propName = component.name;\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 component.value = parseFloat(component.value.replace(/,/g, ''));\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\n\r\n@NgModule({\r\n declarations: [UCSearchComponent],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [UCSearchComponent]\r\n})\r\nexport class UCSearchModule { }\r\n"]}
@@ -12,6 +12,7 @@ export class InputSearchObj {
12
12
  this.addCritInput = new Array();
13
13
  this.ddlEnvironments = new Array();
14
14
  this.whereValue = new Array();
15
+ this.switchValue = new Array();
15
16
  }
16
17
  }
17
18
  if (false) {
@@ -31,6 +32,8 @@ if (false) {
31
32
  InputSearchObj.prototype.ddlEnvironments;
32
33
  /** @type {?} */
33
34
  InputSearchObj.prototype.whereValue;
35
+ /** @type {?} */
36
+ InputSearchObj.prototype.switchValue;
34
37
  }
35
38
  export class EnviObj {
36
39
  constructor() {
@@ -55,4 +58,15 @@ if (false) {
55
58
  /** @type {?} */
56
59
  WhereValueObj.prototype.value;
57
60
  }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5wdXRTZWFyY2hPYmouTW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWRpbnMvdWNzZWFyY2gvIiwic291cmNlcyI6WyJsaWIvbW9kZWwvSW5wdXRTZWFyY2hPYmouTW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLE1BQU0sT0FBTyxjQUFjO0lBU3ZCO1FBQ0ksSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksS0FBSyxFQUFlLENBQUM7UUFDN0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLEtBQUssRUFBVyxDQUFDO1FBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxLQUFLLEVBQWlCLENBQUM7SUFDakQsQ0FBQztDQUNKOzs7SUFsQkcsOEJBQWE7O0lBQ2IsdUNBQXNCOztJQUN0QiwrQkFBYzs7SUFDZCxzQ0FBcUI7O0lBQ3JCLG9DQUFnQjs7SUFDaEIsc0NBQWlDOztJQUNqQyx5Q0FBZ0M7O0lBQ2hDLG9DQUFpQzs7QUFhckMsTUFBTSxPQUFPLE9BQU87SUFJaEI7UUFDSSxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7Q0FDSjs7O0lBUEcsdUJBQWE7O0lBQ2IsOEJBQW9COztBQVF4QixNQUFNLE9BQU8sYUFBYTtJQUl0QjtRQUNJLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Q0FDSjs7O0lBTkcsaUNBQWlCOztJQUNqQiw4QkFBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENyaXRlcmlhT2JqIH0gZnJvbSBcIi4vQ3JpdGVyaWFPYmoubW9kZWxcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBJbnB1dFNlYXJjaE9iaiB7XHJcbiAgICBfdXJsOiBzdHJpbmc7XHJcbiAgICBlbnZpcm9tZW50VXJsOiBzdHJpbmc7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgYXBpUXJ5UGFnaW5nOiBzdHJpbmc7XHJcbiAgICBhcnJDcml0T2JqOiBhbnk7XHJcbiAgICBhZGRDcml0SW5wdXQ6IEFycmF5PENyaXRlcmlhT2JqPjtcclxuICAgIGRkbEVudmlyb25tZW50czogQXJyYXk8RW52aU9iaj47XHJcbiAgICB3aGVyZVZhbHVlOiBBcnJheTxXaGVyZVZhbHVlT2JqPjtcclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuX3VybCA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy5lbnZpcm9tZW50VXJsID0gXCJcIjtcclxuICAgICAgICB0aGlzLnRpdGxlID0gXCJcIjtcclxuICAgICAgICB0aGlzLmFwaVFyeVBhZ2luZyA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy5hcnJDcml0T2JqID0gbnVsbDtcclxuICAgICAgICB0aGlzLmFkZENyaXRJbnB1dCA9IG5ldyBBcnJheTxDcml0ZXJpYU9iaj4oKTtcclxuICAgICAgICB0aGlzLmRkbEVudmlyb25tZW50cyA9IG5ldyBBcnJheTxFbnZpT2JqPigpO1xyXG4gICAgICAgIHRoaXMud2hlcmVWYWx1ZSA9IG5ldyBBcnJheTxXaGVyZVZhbHVlT2JqPigpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRW52aU9iaiB7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBlbnZpcm9ubWVudDogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMubmFtZSA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IFwiXCI7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBXaGVyZVZhbHVlT2JqIHtcclxuICAgIHByb3BlcnR5OiBzdHJpbmc7XHJcbiAgICB2YWx1ZTogYW55O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMucHJvcGVydHkgPSBcIlwiO1xyXG4gICAgfVxyXG59Il19
61
+ export class SwitchValueObj {
62
+ constructor() {
63
+ this.property = "";
64
+ }
65
+ }
66
+ if (false) {
67
+ /** @type {?} */
68
+ SwitchValueObj.prototype.property;
69
+ /** @type {?} */
70
+ SwitchValueObj.prototype.value;
71
+ }
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5wdXRTZWFyY2hPYmouTW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWRpbnMvdWNzZWFyY2gvIiwic291cmNlcyI6WyJsaWIvbW9kZWwvSW5wdXRTZWFyY2hPYmouTW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLE1BQU0sT0FBTyxjQUFjO0lBV3ZCO1FBQ0ksSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksS0FBSyxFQUFlLENBQUM7UUFDN0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLEtBQUssRUFBVyxDQUFDO1FBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxLQUFLLEVBQWlCLENBQUM7UUFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLEtBQUssRUFBa0IsQ0FBQztJQUNuRCxDQUFDO0NBQ0o7OztJQXJCRyw4QkFBYTs7SUFDYix1Q0FBc0I7O0lBQ3RCLCtCQUFjOztJQUNkLHNDQUFxQjs7SUFDckIsb0NBQWdCOztJQUNoQixzQ0FBaUM7O0lBQ2pDLHlDQUFnQzs7SUFDaEMsb0NBQWlDOztJQUNqQyxxQ0FBbUM7O0FBZXZDLE1BQU0sT0FBTyxPQUFPO0lBSWhCO1FBQ0ksSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDO0NBQ0o7OztJQVBHLHVCQUFhOztJQUNiLDhCQUFvQjs7QUFReEIsTUFBTSxPQUFPLGFBQWE7SUFJdEI7UUFDSSxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0NBQ0o7OztJQU5HLGlDQUFpQjs7SUFDakIsOEJBQVc7O0FBT2YsTUFBTSxPQUFPLGNBQWM7SUFJdkI7UUFDSSxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0NBQ0o7OztJQU5HLGtDQUFpQjs7SUFDakIsK0JBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcml0ZXJpYU9iaiB9IGZyb20gXCIuL0NyaXRlcmlhT2JqLm1vZGVsXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgSW5wdXRTZWFyY2hPYmoge1xyXG4gICAgX3VybDogc3RyaW5nO1xyXG4gICAgZW52aXJvbWVudFVybDogc3RyaW5nO1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIGFwaVFyeVBhZ2luZzogc3RyaW5nO1xyXG4gICAgYXJyQ3JpdE9iajogYW55O1xyXG4gICAgYWRkQ3JpdElucHV0OiBBcnJheTxDcml0ZXJpYU9iaj47XHJcbiAgICBkZGxFbnZpcm9ubWVudHM6IEFycmF5PEVudmlPYmo+O1xyXG4gICAgd2hlcmVWYWx1ZTogQXJyYXk8V2hlcmVWYWx1ZU9iaj47XHJcbiAgICBzd2l0Y2hWYWx1ZTogQXJyYXk8U3dpdGNoVmFsdWVPYmo+O1xyXG4gICAgXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLl91cmwgPSBcIlwiO1xyXG4gICAgICAgIHRoaXMuZW52aXJvbWVudFVybCA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy50aXRsZSA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy5hcGlRcnlQYWdpbmcgPSBcIlwiO1xyXG4gICAgICAgIHRoaXMuYXJyQ3JpdE9iaiA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5hZGRDcml0SW5wdXQgPSBuZXcgQXJyYXk8Q3JpdGVyaWFPYmo+KCk7XHJcbiAgICAgICAgdGhpcy5kZGxFbnZpcm9ubWVudHMgPSBuZXcgQXJyYXk8RW52aU9iaj4oKTtcclxuICAgICAgICB0aGlzLndoZXJlVmFsdWUgPSBuZXcgQXJyYXk8V2hlcmVWYWx1ZU9iaj4oKTtcclxuICAgICAgICB0aGlzLnN3aXRjaFZhbHVlID0gbmV3IEFycmF5PFN3aXRjaFZhbHVlT2JqPigpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRW52aU9iaiB7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBlbnZpcm9ubWVudDogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMubmFtZSA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IFwiXCI7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBXaGVyZVZhbHVlT2JqIHtcclxuICAgIHByb3BlcnR5OiBzdHJpbmc7XHJcbiAgICB2YWx1ZTogYW55O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMucHJvcGVydHkgPSBcIlwiO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU3dpdGNoVmFsdWVPYmoge1xyXG4gICAgcHJvcGVydHk6IHN0cmluZztcclxuICAgIHZhbHVlOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5wcm9wZXJ0eSA9IFwiXCI7XHJcbiAgICB9XHJcbn0iXX0=