UNPKG

nr-grid

Version:

NR-Grid is basic a datagrid helper that uses Bootstrap and NgbBootstrap and developed for Angular applications.

2 lines 25.3 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("lodash"),require("rxjs"),require("rxjs/operators"),require("@ng-bootstrap/ng-bootstrap"),require("date-fns/format"),require("@angular/common"),require("@angular/forms"),require("nr-select")):"function"==typeof define&&define.amd?define("nr-grid",["exports","@angular/core","lodash","rxjs","rxjs/operators","@ng-bootstrap/ng-bootstrap","date-fns/format","@angular/common","@angular/forms","nr-select"],e):e((t=t||self)["nr-grid"]={},t.ng.core,t.lodash,t.rxjs,t.rxjs.operators,t.ngBootstrap,t.format,t.ng.common,t.ng.forms,t.nrSelect)}(this,(function(t,e,o,n,i,r,a,l,s,d){"use strict";a=a&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a;function c(t,e,o,n){var i,r=arguments.length,a=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,n);else for(var l=t.length-1;l>=0;l--)(i=t[l])&&(a=(r<3?i(a):r>3?i(e,o,a):i(e,o))||a);return r>3&&a&&Object.defineProperty(e,o,a),a}var m,u,p=function(){function t(){}return t.ɵprov=e.ɵɵdefineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t=c([e.Injectable({providedIn:"root"})],t)}();(m=t.NRGridColumnType||(t.NRGridColumnType={}))[m.none=0]="none",m[m.default=1]="default",m[m.link=2]="link",m[m.inlineEditor=3]="inlineEditor",(u=t.FilterType||(t.FilterType={}))[u.default=0]="default",u[u.date=1]="date",u[u.dateRange=2]="dateRange",u[u.yesNoRadio=3]="yesNoRadio",u[u.typeHead=4]="typeHead",u[u.numericRange=5]="numericRange",u[u.dropdown=6]="dropdown";var g,y=function(){function l(t,o){var r=this;this.modalService=t,this.cdr=o,this.onPageChanged=new e.EventEmitter,this.onEditClicked=new e.EventEmitter,this.onDeleteClicked=new e.EventEmitter,this.onFilterChanged=new e.EventEmitter,this.onOrderChanged=new e.EventEmitter,this.onRowClicked=new e.EventEmitter,this.onRowValueChanged=new e.EventEmitter,this.onCellLinkClicked=new e.EventEmitter,this.onLimitChanged=new e.EventEmitter,this.onCustomButtonClicked=new e.EventEmitter,this.editingRows={},this.limitChangeOptions={searchable:!1,valueMember:"id",displayMember:"text",hideLabel:!0},this.pages=[{id:10,text:"10"},{id:25,text:"25"},{id:50,text:"50"},{id:100,text:"100"}],this.ranges={},this.filterChanged=new n.Subject,this.rowFilterChange=new e.EventEmitter,this.dataLoaded=new e.EventEmitter,this.order={},this.typeheads=[],this._rangeValue="",this.limit=10,this.filterChanged.pipe(i.debounceTime(500)).subscribe((function(t){r.go.dataSource?r.go.dataSource.reload():r.onFilterChanged.emit(r.rowFilter)}))}return Object.defineProperty(l.prototype,"rowFilter",{get:function(){return this._rowFilter},set:function(t){this.changePage(1),this._rowFilter=t,this.rowFilterChange.emit(this._rowFilter)},enumerable:!0,configurable:!0}),l.prototype.changePage=function(t){this.options&&(this.options.page=t)},l.prototype.filteredColumns=function(){var t=o.filter(this.go.columns,(function(t){return!t.denied}));return o.filter(t,(function(t){return!t.hide}))},l.prototype.dataLoad=function(t){var e=this;t.loading=!0,t.dataSource.usePromise?t.dataSource.loader(t.dataSource.parent,this.rowFilter).then((function(o){t.data=o.data,t.rowCount=o.rowCount,t.loading=!1,e.dataLoaded.emit(!0),o.summary&&(t.summary=o.summary)})).catch((function(e){t.loading=!1,console.log("qr-grid-data-load-error",e)})):t.dataSource.loader(this.go.dataSource.parent,this.rowFilter).subscribe((function(o){t.data=o.data,t.rowCount=o.rowCount,t.loading=!1,e.dataLoaded.emit(!0),o.summary&&(t.summary=o.summary)}),(function(e){t.loading=!1,console.log("qr-grid-data-load-error",e)}))},l.prototype.ngOnInit=function(){var t=this;this.rowFilter||(this.rowFilter={}),this.options&&!this.options.limit&&(this.options.limit=10),this.options&&!this.options.loading&&(this.options.loading=!0),this.options&&void 0===this.options.pager&&(this.options.pager=!0),this.go=this.options,this.go.data||(this.go.data=[]),this.go.page||(this.go.page=1),this.go.limit||(this.go.limit=10),this.go.rowCount||(this.go.rowCount=0),this.go.bootstrapTableClass||(this.go.bootstrapTableClass="table-bordered"),this.columns=this.filteredColumns(),this.loadDropdownData(),this.go.dataSource&&(this.go.dataSource.reload=function(){return t.editingRows={},t.dataLoad(t.go)},this.go.dataSource.manualLoading?this.go.loading=!1:this.go.dataSource.reload())},l.prototype.loadDropdownData=function(){var t=this;o.each(this.go.columns,(function(e){e.dropdownDataService&&t.loadLookupData(e)}))},l.prototype.filterChange=function(){this.changePage(1),this.filterChanged.next(this.rowFilter),this.loadDropdownData()},l.prototype.pageChange=function(t){this.go.dataSource&&(this.go.page=t,this.go.dataSource.reload()),this.onPageChanged.emit(t)},l.prototype.editClicked=function(t){this.onEditClicked.emit(o.clone(t))},l.prototype.checkEditButtonOption=function(t){return!this.go.actionButtonsOptions||!!this.go.actionButtonsOptions.edit&&("boolean"==typeof this.go.actionButtonsOptions.edit?this.go.actionButtonsOptions.edit:this.go.actionButtonsOptions.edit(t))},l.prototype.checkDeleteButtonOption=function(t){return!this.go.actionButtonsOptions||!!this.go.actionButtonsOptions.delete&&("boolean"==typeof this.go.actionButtonsOptions.delete?this.go.actionButtonsOptions.delete:this.go.actionButtonsOptions.delete(t))},l.prototype.deleteClicked=function(t){this.activeDeleteModal=this.modalService.open(this.deleteModal,{centered:!0}),this.deleteData=t},l.prototype.submitDelete=function(){this.onDeleteClicked.emit(this.deleteData),this.activeDeleteModal.close()},l.prototype.linkClicked=function(t){this.onCellLinkClicked.emit(t)},l.prototype.isDefaultCell=function(e){return!e||e==t.NRGridColumnType.default||e==t.NRGridColumnType.inlineEditor},l.prototype.isLinkCell=function(e){return e===t.NRGridColumnType.link},l.prototype.toggleOrder=function(t){var e=t.orderKey?t.orderKey:t.name;this.order.column===e?this.order.desc=!this.order.desc:this.order.desc=!1,this.order.column=e,this.onOrderChanged.emit(this.order)},l.prototype.rowValueChanged=function(t){this.onRowValueChanged.emit(t)},l.prototype.rowClicked=function(t){this.go.rowClickAction&&this.go.rowClickAction.enable&&this.onRowClicked.emit(t)},l.prototype.isFilterDefault=function(e){return e===t.FilterType.default},l.prototype.isFilterDateRange=function(e){return e===t.FilterType.dateRange},l.prototype.isFilterYesNo=function(e){return e==t.FilterType.yesNoRadio},l.prototype.isFilterTypehead=function(e){return e==t.FilterType.typeHead},l.prototype.isFilterDropdown=function(e){return e.filterType==t.FilterType.dropdown},l.prototype.isFilterNumericRange=function(e){return e==t.FilterType.numericRange},l.prototype.selectTypeheadItem=function(t,e){this.rowFilter[e]=t.item,this.filterChange()},l.prototype.onDateSelection=function(t,e){if(this.fromDate||this.toDate?this.fromDate&&!this.toDate&&t.after(this.fromDate)?this.toDate=t:(this.toDate=null,this.fromDate=t):this.fromDate=t,this.fromDate&&this.toDate){var o=this.fromDate,n=this.toDate,i=new Date(o.year,o.month-1,o.day),r=new Date(n.year,n.month-1,n.day);this._rangeValue=a(i,"dd/MM/yyyy")+" - "+a(r,"dd/MM/yyyy"),this.rangePicker.toggle(),this.rowFilter[e]=i.toISOString()+","+r.toISOString(),this.filterChange()}},l.prototype.rangeValue=function(){return this._rangeValue},l.prototype.isHovered=function(t){return this.fromDate&&!this.toDate&&this.hoveredDate&&t.after(this.fromDate)&&t.before(this.hoveredDate)},l.prototype.isInside=function(t){return t.after(this.fromDate)&&t.before(this.toDate)},l.prototype.isRange=function(t){return t.equals(this.fromDate)||t.equals(this.toDate)||this.isInside(t)||this.isHovered(t)},l.prototype.getFilterKey=function(t){return t.filterKey?t.filterKey:t.name},l.prototype.rangeChanged=function(t){var e=this.getFilterKey(t),o=e+"___start",n=e+"___end",i=this.ranges[o],r=this.ranges[n];this.rowFilter[e]=(i||"")+"___"+(r||""),this.filterChange()},l.prototype.limitChanged=function(t){this.limit=Number(t.value?t.value:t),this.options.dataSource&&this.options.dataSource.reload(),this.onLimitChanged.emit(this.limit)},l.prototype.loadLookupData=function(t){t.dropdownData||t.dropdownDataService.subscribe((function(e){t.dropdownData=o.map(e.data,(function(t){return{id:t.id,text:t.name}}))}))},l.prototype.customButtonClick=function(t,e){this.onCustomButtonClicked.emit({button:t,data:e})},l.prototype.inlineEditorOn=function(e,o,n){if(e.type==t.NRGridColumnType.inlineEditor){this.editingRows["row-"+o+"-col-"+e.name]={firstValue:n[e.name]},this.cdr.detectChanges();var i=document.getElementById("row-"+o+"-col-"+e.name);i&&i.focus()}},l.prototype.inlineEditorOff=function(t,e,o,n,i){void 0===o&&(o=void 0),void 0===n&&(n=!1),void 0===i&&(i=!1),i&&(o[t.name]=this.editingRows["row-"+e+"-col-"+t.name].firstValue),this.editingRows["row-"+e+"-col-"+t.name]=void 0,!i&&n&&this.rowValueChanged({column:t,row:o})},l.ctorParameters=function(){return[{type:r.NgbModal},{type:e.ChangeDetectorRef}]},c([e.Input()],l.prototype,"options",void 0),c([e.Input()],l.prototype,"loading",void 0),c([e.Output()],l.prototype,"onPageChanged",void 0),c([e.Output()],l.prototype,"onEditClicked",void 0),c([e.Output()],l.prototype,"onDeleteClicked",void 0),c([e.Output()],l.prototype,"onFilterChanged",void 0),c([e.Output()],l.prototype,"onOrderChanged",void 0),c([e.Output()],l.prototype,"onRowClicked",void 0),c([e.Output()],l.prototype,"onRowValueChanged",void 0),c([e.Output()],l.prototype,"onCellLinkClicked",void 0),c([e.Output()],l.prototype,"onLimitChanged",void 0),c([e.Output()],l.prototype,"onCustomButtonClicked",void 0),c([e.ViewChild("deleteModal",{static:!1})],l.prototype,"deleteModal",void 0),c([e.ViewChild("rangePicker",{static:!1})],l.prototype,"rangePicker",void 0),c([e.Input()],l.prototype,"columnHeaderTemplate",void 0),c([e.Input()],l.prototype,"footerTemplate",void 0),c([e.Input()],l.prototype,"rowFilter",null),c([e.Output()],l.prototype,"rowFilterChange",void 0),c([e.Output()],l.prototype,"dataLoaded",void 0),l=c([e.Component({selector:"nr-grid",template:'<div class="nr-grid">\n <div class="table-responsive">\n <table class="table {{options.bootstrapTableClass}} mb-0">\n <thead>\n <tr>\n <th *ngFor="let c of columns" class="nr-order-trigger" (click)="toggleOrder(c)"\n [ngClass]="{\'text-right\': c.alignment == \'right\' }"\n [ngStyle]="{\'width\': c.width != undefined ? c.width : \'auto\' }">\n\n <ng-container *ngTemplateOutlet="columnHeaderTemplate; context: {column: c}">\n\n </ng-container>\n <ng-container *ngIf="!columnHeaderTemplate">\n {{c.title}}\n </ng-container>\n <span class="nr-grid-orderer"\n *ngIf="order.column === (c.orderKey != null ? c.orderKey : c.name)">\n <i *ngIf="!order.desc" class="fa fa-arrow-up"></i>\n <i *ngIf="order.desc" class="fa fa-arrow-down"></i>\n </span>\n </th>\n <th *ngIf="go.actionButtons"\n [ngStyle]="{\'width\': (90 + ((go.buttons ? go.buttons.length : 0) * 25)) + \'px\' }"></th>\n </tr>\n <tr class="filter-row" *ngIf="go.filterRowEnabled">\n <td *ngFor="let c of columns">\n <ng-container *ngIf="!c.filterDisable">\n <input *ngIf="!c.filterType || isFilterDefault(c.filterType)" type="text" placeholder="Filter"\n class="filter-control" [(ngModel)]="rowFilter[getFilterKey(c)]"\n (ngModelChange)="filterChange()">\n <input *ngIf="isFilterDateRange(c.filterType)" type="text" class="btn-light-disable"\n ngbDatepicker\n #rangePicker="ngbDatepicker"\n (dateSelect)="onDateSelection($event, getFilterKey(c))"\n [dayTemplate]="dayTemplate"\n [displayMonths]="2" outsideDays="visible" (focus)="rangePicker.toggle()"\n [autoClose]="false"\n placeholder="Filter"\n [value]="rangeValue()"\n class="filter-control">\n <div *ngIf="isFilterNumericRange(c.filterType)" class="range-selector">\n <input type="text" class="filter-control" placeholder="Grather"\n [(ngModel)]="ranges[getFilterKey(c) + \'___start\']" (ngModelChange)="rangeChanged(c)">\n <input type="text" class="filter-control" placeholder="Lower"\n [(ngModel)]="ranges[getFilterKey(c) + \'___end\']" (ngModelChange)="rangeChanged(c)">\n </div>\n\n <nr-select *ngIf="isFilterDropdown(c)" [(value)]="rowFilter[getFilterKey(c)]" [options]="c.selectOptions"\n label="Select" (valueChange)="filterChange()"></nr-select>\n <div *ngIf="isFilterYesNo(c.filterType)" class="btn-group btn-group-toggle" ngbRadioGroup\n name="radioBasic"\n [(ngModel)]="rowFilter[getFilterKey(c)]" (ngModelChange)="filterChange()">\n <label ngbButtonLabel class="btn-primary btn-xs">\n <input ngbButton type="radio" [value]="true"> Yes\n </label>\n <label ngbButtonLabel class="btn-primary btn-xs">\n <input ngbButton type="radio" [value]="false"> No\n </label>\n </div>\n </ng-container>\n </td>\n <td *ngIf="go.actionButtons"></td>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor="let r of go.data; let rowIndex=index;"\n class="data-row"\n [ngClass]="{\'nr-row-clickable\': go.rowClickAction && go.rowClickAction.enable}"\n (click)="rowClicked(r)">\n <td *ngFor="let cr of columns"\n [ngClass]="{\'text-right\': cr.alignment == \'right\', \'padding-none\': editingRows[\'row-\' + rowIndex + \'-col-\' + cr.name]}">\n\n <div *ngIf="cr.formatter && !isLinkCell(cr.type)">\n {{r[cr.name]|valueFormat: cr.formatter}}\n </div>\n\n <div class="default-view"\n *ngIf="!cr.formatter && isDefaultCell(cr.type) && !editingRows[\'row-\' + rowIndex + \'-col-\' + cr.name]"\n [innerHTML]="cr.format ? cr.format({row: r, value: r[cr.name], parent: go.parent }) : r[cr.name]"\n (click)="inlineEditorOn(cr, rowIndex, r)"></div>\n\n <div *ngIf="isLinkCell(cr.type)">\n <a href="javascript:void(0)" (click)="linkClicked({row: r, column: cr})"\n class="{{cr.link && cr.link.classes ? cr.link.classes : \'\'}}"\n [ngbTooltip]="cr.link && cr.link.tooltip ? cr.link.tooltip : \'\'">\n <i *ngIf="cr.link && cr.link.icon" class="{{cr.link.icon}}"></i>\n\n <span *ngIf="!cr.formatter"\n [innerHTML]="cr.format ? cr.format({row: r, value: r[cr.name], parent: go.parent}) : r[cr.name]"></span>\n <span *ngIf="cr.formatter">{{r[cr.name]|valueFormat: cr.formatter}}</span>\n </a>\n </div>\n <div *ngIf="editingRows[\'row-\' + rowIndex + \'-col-\' + cr.name]">\n <div class="nr-inline-editor">\n <input [id]="\'row-\' + rowIndex + \'-col-\' + cr.name" type="text" [(ngModel)]="r[cr.name]"/>\n <div class="nr-inline-editor-buttons">\n <button class="btn btn-sm btn-primary" type="button" (click)="inlineEditorOff(cr, rowIndex, r, true)">\n Save\n </button>\n <button class="btn btn-sm btn-secondary" type="button"\n (click)="inlineEditorOff(cr, rowIndex, r, false, true)">Cancel\n </button>\n </div>\n </div>\n </div>\n </td>\n <td class="action-buttons-container" *ngIf="go.actionButtons">\n <ng-container *ngFor="let b of go.buttons">\n <a href="javascript:void(0);" (click)="customButtonClick(b, r)" ngbTooltip="{{b.tooltip}}"\n *ngIf="!b.visible || (b.visible && b.visible(r))">\n <i class="{{b.icon}}"></i>\n </a>\n </ng-container>\n <a href="javascript:void(0);" (click)="editClicked(r)" ngbTooltip="Edit"\n *ngIf="!go.actionButtonsOptions || checkEditButtonOption(r)">\n <i class="fa fa-pencil"></i>\n </a>\n <a href="javascript:void(0);" (click)="deleteClicked(r)" ngbTooltip="Delete"\n *ngIf="!go.actionButtonsOptions || checkDeleteButtonOption(r)">\n <i class="fa fa-trash"></i>\n </a>\n </td>\n </tr>\n <tr *ngIf="go.data == undefined || go.data.length == 0">\n <td [colSpan]="columns.length + (go.actionButtons ? 1 : 0)">\n <div style="padding: 20px; text-align: center">\n No data\n </div>\n </td>\n </tr>\n </tbody>\n <tfoot *ngIf="go.summary && !go.hideSummary">\n <tr>\n <th *ngFor="let cr of columns" [ngClass]="{\'text-right\': cr.alignment == \'right\' }">\n <ng-container *ngIf="!cr.hideFromSummary">\n <div *ngIf="cr.formatter">\n {{go.summary[cr.name]|valueFormat: cr.formatter}}\n </div>\n\n <div *ngIf="isDefaultCell(cr.type) && (!cr.formatter)"\n [innerHTML]="cr.format ? cr.format({row: go.summary, value: go.summary[cr.name], parent: go.parent}) : go.summary[cr.name]"></div>\n\n <div *ngIf="isLinkCell(cr.type) && (!cr.formatter)">\n <a href="javascript:void(0)" (click)="linkClicked({row: go.summary, column: cr})"\n class="{{cr.link.classes ? cr.link.classes : \'\'}}"\n [ngbTooltip]="cr.link && cr.link.tooltip ? cr.link.tooltip : \'\'">\n <i *ngIf="cr.link.icon" class="{{cr.link.icon}}"></i>\n <span\n [innerHTML]="cr.format ? cr.format({row: go.summary, value: go.summary[cr.name], parent: go.parent}) : go.summary[cr.name]"></span>\n </a>\n </div>\n </ng-container>\n </th>\n </tr>\n </tfoot>\n </table>\n\n </div>\n <ng-container *ngTemplateOutlet="footerTemplate;">\n\n </ng-container>\n <div class="nr-grid-footer row" *ngIf="go.pager">\n <div class="col-md-12">\n <ngb-pagination class="float-right" [collectionSize]="go.rowCount" [(page)]="go.page" [maxSize]="10"\n [pageSize]="go.limit" (pageChange)="pageChange($event)"></ngb-pagination>\n <div class="float-right limit-selector" style="min-width: 150px; width: 150px">\n <nr-select class="float-right" [data]="pages" [(value)]="go.limit" label="Limit" [options]="limitChangeOptions"\n (valueChange)="limitChanged($event)"></nr-select>\n </div>\n </div>\n </div>\n <div class="clearfix"></div>\n</div>\n<ng-template #deleteModal let-modal>\n <div class="modal-header">\n <h4 class="modal-title" id="modal-basic-title">Delete</h4>\n <button type="button" class="close" aria-label="Close" (click)="modal.dismiss(\'Cross click\')">\n <span aria-hidden="true">&times;</span>\n </button>\n </div>\n <div class="modal-body">\n Data will be deleted, are you sure?\n </div>\n <div class="modal-footer">\n <button type="submit" class="btn btn-success" (click)="submitDelete()">Delete</button>\n <button type="button" class="btn btn-secondary" (click)="modal.dismiss(\'Cross click\')">Cancel</button>\n </div>\n</ng-template>\n<ng-template #dayTemplate let-date let-focused="focused">\n <span class="custom-day"\n [class.focused]="focused"\n [class.range]="isRange(date)"\n [class.faded]="isHovered(date) || isInside(date)"\n (mouseenter)="hoveredDate = date"\n (mouseleave)="hoveredDate = null">\n {{ date.day }}\n </span>\n</ng-template>\n'})],l)}();(g=t.NRValueFormats||(t.NRValueFormats={}))[g.default=0]="default",g[g.euro=1]="euro",g[g.dolar=2]="dolar",g[g.try=3]="try",g[g.commaInt=4]="commaInt",g[g.percent=5]="percent",g[g.dateTime=6]="dateTime",g[g.date=7]="date",g[g.boolean=8]="boolean",g[g.decimal=9]="decimal",g[g.number=10]="number";var b=[{id:"SRD",symbol:"$"},{id:"ANG",symbol:"ƒ"},{id:"AOA",symbol:"Kz"},{id:"ARS",symbol:"$"},{id:"AUD",symbol:"$"},{id:"AWG",symbol:"ƒ"},{id:"BBD",symbol:"$"},{id:"BDT",symbol:"৳"},{id:"BGN",symbol:"лв"},{id:"BHD",symbol:".د.ب"},{id:"ALL",symbol:"L"},{id:"BIF",symbol:"Fr"},{id:"BMD",symbol:"$"},{id:"BND",symbol:"$"},{id:"BOB",symbol:"Bs."},{id:"BRL",symbol:"R$"},{id:"BSD",symbol:"$"},{id:"BTN",symbol:"Nu."},{id:"BWP",symbol:"P"},{id:"BZD",symbol:"$"},{id:"CAD",symbol:"$"},{id:"CDF",symbol:"Fr"},{id:"CHF",symbol:"Fr"},{id:"CLP",symbol:"$"},{id:"CNY",symbol:"¥"},{id:"COP",symbol:"$"},{id:"CRC",symbol:"₡"},{id:"CUC",symbol:"$"},{id:"CUP",symbol:"$"},{id:"CVE",symbol:"Esc"},{id:"CZK",symbol:"Kč"},{id:"DJF",symbol:"Fr"},{id:"DKK",symbol:"kr"},{id:"DOP",symbol:"$"},{id:"DZD",symbol:"د.ج"},{id:"EGP",symbol:"£"},{id:"ERN",symbol:"Nfk"},{id:"ETB",symbol:"Br"},{id:"FJD",symbol:"$"},{id:"FKP",symbol:"£"},{id:"GBP",symbol:"£"},{id:"GEL",symbol:"ლ"},{id:"GIP",symbol:"£"},{id:"GMD",symbol:"D"},{id:"GNF",symbol:"Fr"},{id:"GTQ",symbol:"Q"},{id:"GYD",symbol:"$"},{id:"HKD",symbol:"$"},{id:"HNL",symbol:"L"},{id:"HRK",symbol:"kn"},{id:"HTG",symbol:"G"},{id:"HUF",symbol:"Ft"},{id:"IDR",symbol:"Rp"},{id:"ILS",symbol:"₪"},{id:"INR",symbol:"₹"},{id:"IQD",symbol:"ع.د"},{id:"ISK",symbol:"kr"},{id:"JMD",symbol:"$"},{id:"JOD",symbol:"د.ا"},{id:"JPY",symbol:"¥"},{id:"KES",symbol:"Sh"},{id:"KGS",symbol:"с"},{id:"KHR",symbol:"៛"},{id:"KMF",symbol:"Fr"},{id:"KRW",symbol:"₩"},{id:"KWD",symbol:"د.ك"},{id:"KYD",symbol:"$"},{id:"LAK",symbol:"₭"},{id:"LBP",symbol:"ل.ل"},{id:"LKR",symbol:"Rs"},{id:"LRD",symbol:"$"},{id:"LSL",symbol:"L"},{id:"LYD",symbol:"ل.د"},{id:"MAD",symbol:"د.م."},{id:"MDL",symbol:"L"},{id:"MGA",symbol:"Ar"},{id:"MKD",symbol:"ден"},{id:"MMK",symbol:"Ks"},{id:"MNT",symbol:"₮"},{id:"MOP",symbol:"P"},{id:"MRO",symbol:"UM"},{id:"MUR",symbol:"₨"},{id:"MVR",symbol:".ރ"},{id:"MWK",symbol:"MK"},{id:"MXN",symbol:"$"},{id:"MYR",symbol:"RM"},{id:"NAD",symbol:"$"},{id:"NGN",symbol:"₦"},{id:"NIO",symbol:"C$"},{id:"NOK",symbol:"kr"},{id:"NPR",symbol:"₨"},{id:"NZD",symbol:"$"},{id:"OMR",symbol:"ر.ع."},{id:"PAB",symbol:"B/."},{id:"PEN",symbol:"S/."},{id:"PGK",symbol:"K"},{id:"PHP",symbol:"₱"},{id:"PKR",symbol:"₨"},{id:"PLN",symbol:"zł"},{id:"PYG",symbol:"₲"},{id:"QAR",symbol:"ر.ق"},{id:"RON",symbol:"lei"},{id:"RSD",symbol:"дин."},{id:"RUB",symbol:"₽"},{id:"RWF",symbol:"Fr"},{id:"SAR",symbol:"ر.س"},{id:"SBD",symbol:"$"},{id:"SCR",symbol:"₨"},{id:"SDG",symbol:"ج.س."},{id:"SEK",symbol:"kr"},{id:"SGD",symbol:"$"},{id:"SHP",symbol:"£"},{id:"SLL",symbol:"Le"},{id:"SOS",symbol:"Sh"},{id:"STD",symbol:"Db"},{id:"SYP",symbol:"£"},{id:"SZL",symbol:"L"},{id:"UYU",symbol:"$"},{id:"AFN",symbol:"؋"},{id:"AED",symbol:"د.إ"},{id:"EUR",symbol:"€"},{id:"THB",symbol:"฿"},{id:"TJS",symbol:"ЅМ"},{id:"TND",symbol:"د.ت"},{id:"TOP",symbol:"T$"},{id:"TRY",symbol:"₺"},{id:"TTD",symbol:"$"},{id:"TWD",symbol:"$"},{id:"TZS",symbol:"Sh"},{id:"UAH",symbol:"₴"},{id:"UGX",symbol:"Sh"},{id:"USD",symbol:"$"},{id:"VND",symbol:"₫"},{id:"VUV",symbol:"Vt"},{id:"WST",symbol:"T"},{id:"XAF",symbol:"Fr"},{id:"XCD",symbol:"$"},{id:"XOF",symbol:"Fr"},{id:"XPF",symbol:"Fr"},{id:"YER",symbol:"﷼"},{id:"ZAR",symbol:"R"}],h=function(){function n(){}return n.prototype.transform=function(e,n,i){var r,l="";if("string"==typeof n&&(l=n),i){var s=o.find(b,(function(t){return t&&t.id&&t.id==i?t:void 0}));r=s?s.symbol:i}else r="";var d=2;if(l)switch(l){default:case"number":n=t.NRValueFormats.number;break;case"bool":n=t.NRValueFormats.boolean;break;case"dateTime":n=t.NRValueFormats.dateTime;break;case"date":n=t.NRValueFormats.date;break;case"decimal":n=t.NRValueFormats.decimal;break;case"commaInt":n=t.NRValueFormats.commaInt}if(null==e&&n!=t.NRValueFormats.boolean)return"";switch(n){default:case t.NRValueFormats.default:case t.NRValueFormats.percent:case t.NRValueFormats.commaInt:case t.NRValueFormats.decimal:case t.NRValueFormats.number:switch(n){case t.NRValueFormats.percent:r=" %";break;case t.NRValueFormats.decimal:d=3;break;case t.NRValueFormats.number:d=2;break;default:case t.NRValueFormats.commaInt:d=0}return e.toFixed(d).replace(".",",").replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1.")+" "+r;case t.NRValueFormats.dateTime:return a(e,"dd/MM/yyyy HH:mm:ss");case t.NRValueFormats.date:return a(e,"dd/MM/yyyy");case t.NRValueFormats.boolean:return e?"Yes":"No"}},n=c([e.Pipe({name:"valueFormat"})],n)}(),f=function(){function t(){}return t=c([e.NgModule({declarations:[y,h],imports:[r.NgbModule,l.CommonModule,s.FormsModule,d.NrSelectModule],exports:[y,h]})],t)}(),v=function(){},C=function(){},w=function(){},D=function(t){Object.assign(this,t)},F=function(){};t.NRCellLink=w,t.NRDataSource=C,t.NRGridColumn=D,t.NRGridComponent=y,t.NRGridOptions=v,t.NRRowClickAction=F,t.NrGridModule=f,t.NrGridService=p,t.ValueFormatPipe=h,t.currencies=b,Object.defineProperty(t,"__esModule",{value:!0})})); //# sourceMappingURL=nr-grid.umd.min.js.map