UNPKG

@vicoders/angular

Version:

- [Vicoders Angular Common Module](#vicoders-angular-common-module) - [Install](#install) - [How to use](#how-to-use) - [Pipes](#pipes) - [hasItem](#hasitem) - [isArray](#isarray) - [length](#length) - [orderBy](#orderby)

2 lines 27.8 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("moment"),require("@angular/router"),require("@angular/forms"),require("lodash"),require("@angular/core"),require("@angular/common")):"function"==typeof define&&define.amd?define("@vicoders/angular",["exports","moment","@angular/router","@angular/forms","lodash","@angular/core","@angular/common"],t):t((e.vicoders=e.vicoders||{},e.vicoders.angular={}),e.moment_,e.ng.router,e.ng.forms,e._,e.ng.core,e.ng.common)}(this,function(e,t,r,n,s,i,o){"use strict";var a=function(){function e(){}return e.prototype.transform=function(e,t){return!!s.isArray(e)&&0!==e.length},e.decorators=[{type:i.Pipe,args:[{name:"hasItem"}]}],e}(),u=function(){function e(){}return e.prototype.transform=function(e,t){return s.isArray(e)?e.length:0},e.decorators=[{type:i.Pipe,args:[{name:"length"}]}],e}(),c=function(){function e(){}return e.prototype.transform=function(e,t,n,r){if(!s.isArray(e))return null;if(s.isArray(n))return s.filter(e,function(e){return s.includes(n,s.get(e,t))});switch(r){case">":return s.filter(e,function(e){return s.get(e,t)>n});case"<":return s.filter(e,function(e){return s.get(e,t)<n});case"not":return s.filter(e,function(e){return s.get(e,t)!==n});default:return s.filter(e,function(e){return s.get(e,t)===n})}},e.decorators=[{type:i.Pipe,args:[{name:"filterBy"}]}],e}(),p=function(){function e(){}return e.prototype.transform=function(e,t,n,r){if(!s.isArray(e))return null;if(s.isArray(n))return s.find(e,function(e){return s.includes(n,s.get(e,t))});switch(r){case">":return s.find(e,function(e){return s.get(e,t)>n});case"<":return s.find(e,function(e){return s.get(e,t)<n});case"not":return s.find(e,function(e){return s.get(e,t)!==n});default:return s.find(e,function(e){return s.get(e,t)===n})}},e.decorators=[{type:i.Pipe,args:[{name:"findBy"}]}],e}(),l=function(){function e(){}return e.prototype.transform=function(e,t){return Array.isArray(e)},e.decorators=[{type:i.Pipe,args:[{name:"isArray"}]}],e}(),f=function(){function e(){}return e.prototype.transform=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=[],i=[];return s.forEach(t,function(e){r.push(e[0]),i.push(e[1])}),0<s.filter(i,function(e){return!s.isNil(e)}).length?e=s.orderBy.apply(null,[e,r,i]):e},e.decorators=[{type:i.Pipe,args:[{name:"orderBy"}]}],e}(),d=function(){function e(){}return e.prototype.transform=function(e,t){return s.isArray(e)?0===e.length?0:s.sumBy(e,function(e){return Number(s.get(e,t))}):0},e.decorators=[{type:i.Pipe,args:[{name:"sumBy"}]}],e}(),g=function(){function e(){}return e.prototype.transform=function(e,t){return s.flatMap(e,t)},e.decorators=[{type:i.Pipe,args:[{name:"flatMap"}]}],e}(),h=t,m=function(){function e(){}return e.prototype.transform=function(e,t){return s.isObject(e)&&e instanceof h?e.format(t):s.isString(e)?h(e).format(t):null},e.decorators=[{type:i.Pipe,args:[{name:"timeFormat"}]}],e}(),y=t,b=function(){function e(){}return e.prototype.transform=function(e,t){t=t||"en";var n=y(e).locale(t);return n.isValid()?n.fromNow():""},e.decorators=[{type:i.Pipe,args:[{name:"readableTime"}]}],e}(),v=function(){function e(){}return e.decorators=[{type:i.NgModule,args:[{imports:[o.CommonModule],exports:[a,u,l,c,f,d,g,p,m,b],declarations:[a,u,c,l,f,d,g,p,m,b]}]}],e}(),w=function(){function e(){this.goPrev=new i.EventEmitter,this.goNext=new i.EventEmitter,this.goPage=new i.EventEmitter}return e.prototype.getMin=function(){return this.perPage*this.page-this.perPage+1},e.prototype.getMax=function(){var e=this.perPage*this.page;return e>this.count&&(e=this.count),e},e.prototype.onPage=function(e){this.goPage.emit(e)},e.prototype.onPrev=function(){this.goPrev.emit(!0)},e.prototype.onNext=function(e){this.goNext.emit(e)},e.prototype.totalPages=function(){return Math.ceil(this.count/this.perPage)||0},e.prototype.lastPage=function(){return this.perPage*this.page>this.count},e.prototype.getPages=function(){var e=Math.ceil(this.count/this.perPage),t=this.page||1,n=this.pagesToShow||9,r=[];r.push(t);for(var i=n-1,o=0;o<i;o++)r.length<n&&1<Math.min.apply(null,r)&&r.push(Math.min.apply(null,r)-1),r.length<n&&Math.max.apply(null,r)<e&&r.push(Math.max.apply(null,r)+1);return r.sort(function(e,t){return e-t}),r},e.decorators=[{type:i.Component,args:[{selector:"app-pagination",template:'<div class="row">\n <div class="col-md-5 col-sm-7">\n <div class="description">\n <span class="page-counts">{{ getMin() }} - {{ getMax() }} of {{ count }}</span>\n <span class="page-totals">{{ totalPages() }} pages</span>\n </div>\n </div>\n <div class="col-md-7 col-sm-7">\n <div class="dataTables_paginate paging_simple_numbers" *ngIf="count > 0">\n\n <ul class="pagination">\n <li class="paginate_button previous" [ngClass]="{ \'disabled\': page === 1 || loading }">\n <button class="link" (click)="onPrev()" [disabled]="page === 1 || loading">\n Previous\n </button>\n </li>\n <li class="paginate_button" *ngFor="let pageNum of getPages()" (click)="onPage(pageNum)" [ngClass]="{\'active\': pageNum === page, \'disabled\': loading}">\n <a href="javascript:;">{{ pageNum }}</a>\n </li>\n <li class="paginate_button next" [ngClass]="{ \'disabled\': lastPage() || loading }">\n <button class="link" (click)="onNext(true)" [disabled]="lastPage() || loading">\n Next\n </button>\n </li>\n </ul>\n </div>\n </div>\n</div>',styles:[""]}]}],e.ctorParameters=function(){return[]},e.propDecorators={pagesToShow:[{type:i.Input}],page:[{type:i.Input}],count:[{type:i.Input}],perPage:[{type:i.Input}],loading:[{type:i.Input}],goPrev:[{type:i.Output}],goNext:[{type:i.Output}],goPage:[{type:i.Output}]},e}(),P=function(){function e(){}return e.prototype.ngOnInit=function(){},e.decorators=[{type:i.Component,args:[{selector:"loader",template:'<div class="preloader-wrapper active small">\n <div class="spinner-layer spinner-red-only">\n <div class="circle-clipper left">\n <div class="circle"></div>\n </div>\n <div class="gap-patch">\n <div class="circle"></div>\n </div>\n <div class="circle-clipper right">\n <div class="circle"></div>\n </div>\n </div>\n</div>\n',styles:['.preloader-wrapper{display:inline-block;position:relative;width:48px;height:48px}.preloader-wrapper.small{width:36px;height:36px}.preloader-wrapper.big{width:64px;height:64px}.preloader-wrapper.active{-webkit-animation:1568ms linear infinite container-rotate;animation:1568ms linear infinite container-rotate}@-webkit-keyframes container-rotate{to{-webkit-transform:rotate(360deg)}}@keyframes container-rotate{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-layer{position:absolute;width:100%;height:100%;opacity:0;border-color:color("teal", "lighten-1")}.spinner-blue,.spinner-blue-only{border-color:#4285f4}.spinner-red,.spinner-red-only{border-color:#ef6b59}.spinner-yellow,.spinner-yellow-only{border-color:#f4b400}.spinner-green,.spinner-green-only{border-color:#0f9d58}.active .spinner-layer.spinner-blue{-webkit-animation:5332ms cubic-bezier(.4,0,.2,1) infinite both fill-unfill-rotate,5332ms cubic-bezier(.4,0,.2,1) infinite both blue-fade-in-out;animation:5332ms cubic-bezier(.4,0,.2,1) infinite both fill-unfill-rotate,5332ms cubic-bezier(.4,0,.2,1) infinite both blue-fade-in-out}.active .spinner-layer.spinner-red{-webkit-animation:5332ms cubic-bezier(.4,0,.2,1) infinite both fill-unfill-rotate,5332ms cubic-bezier(.4,0,.2,1) infinite both red-fade-in-out;animation:5332ms cubic-bezier(.4,0,.2,1) infinite both fill-unfill-rotate,5332ms cubic-bezier(.4,0,.2,1) infinite both red-fade-in-out}.active .spinner-layer.spinner-yellow{-webkit-animation:5332ms cubic-bezier(.4,0,.2,1) infinite both fill-unfill-rotate,5332ms cubic-bezier(.4,0,.2,1) infinite both yellow-fade-in-out;animation:5332ms cubic-bezier(.4,0,.2,1) infinite both fill-unfill-rotate,5332ms cubic-bezier(.4,0,.2,1) infinite both yellow-fade-in-out}.active .spinner-layer.spinner-green{-webkit-animation:5332ms cubic-bezier(.4,0,.2,1) infinite both fill-unfill-rotate,5332ms cubic-bezier(.4,0,.2,1) infinite both green-fade-in-out;animation:5332ms cubic-bezier(.4,0,.2,1) infinite both fill-unfill-rotate,5332ms cubic-bezier(.4,0,.2,1) infinite both green-fade-in-out}.active .spinner-layer,.active .spinner-layer.spinner-blue-only,.active .spinner-layer.spinner-green-only,.active .spinner-layer.spinner-red-only,.active .spinner-layer.spinner-yellow-only{opacity:1;-webkit-animation:5332ms cubic-bezier(.4,0,.2,1) infinite both fill-unfill-rotate;animation:5332ms cubic-bezier(.4,0,.2,1) infinite both fill-unfill-rotate}@-webkit-keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg)}}@keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg);transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg);transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg);transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg);transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg);transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg);transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg);transform:rotate(1080deg)}}@-webkit-keyframes blue-fade-in-out{100%,25%,90%,from{opacity:1}26%,89%{opacity:0}}@keyframes blue-fade-in-out{100%,25%,90%,from{opacity:1}26%,89%{opacity:0}}@-webkit-keyframes red-fade-in-out{15%,51%,from{opacity:0}25%,50%{opacity:1}}@keyframes red-fade-in-out{15%,51%,from{opacity:0}25%,50%{opacity:1}}@-webkit-keyframes yellow-fade-in-out{40%,76%,from{opacity:0}50%,75%{opacity:1}}@keyframes yellow-fade-in-out{40%,76%,from{opacity:0}50%,75%{opacity:1}}@-webkit-keyframes green-fade-in-out{100%,65%,from{opacity:0}75%,90%{opacity:1}}@keyframes green-fade-in-out{100%,65%,from{opacity:0}75%,90%{opacity:1}}.gap-patch{position:absolute;top:0;left:45%;width:10%;height:100%;overflow:hidden;border-color:inherit}.gap-patch .circle{width:1000%;left:-450%}.circle-clipper{display:inline-block;position:relative;width:50%;height:100%;overflow:hidden;border-color:inherit}.circle-clipper .circle{width:200%;height:100%;border-width:3px;border-style:solid;border-color:inherit;border-bottom-color:transparent!important;border-radius:50%;-webkit-animation:none;animation:none;position:absolute;top:0;right:0;bottom:0}.circle-clipper.left .circle{left:0;border-right-color:transparent!important;-webkit-transform:rotate(129deg);transform:rotate(129deg)}.circle-clipper.right .circle{left:-100%;border-left-color:transparent!important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg)}.active .circle-clipper.left .circle{-webkit-animation:1333ms cubic-bezier(.4,0,.2,1) infinite both left-spin;animation:1333ms cubic-bezier(.4,0,.2,1) infinite both left-spin}.active .circle-clipper.right .circle{-webkit-animation:1333ms cubic-bezier(.4,0,.2,1) infinite both right-spin;animation:1333ms cubic-bezier(.4,0,.2,1) infinite both right-spin}@-webkit-keyframes left-spin{from,to{-webkit-transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg)}}@keyframes left-spin{from,to{-webkit-transform:rotate(130deg);transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}}@-webkit-keyframes right-spin{from,to{-webkit-transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg)}}@keyframes right-spin{from,to{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}}#spinnerContainer.cooldown{-webkit-animation:1568ms linear infinite container-rotate,.4s cubic-bezier(.4,0,.2,1) fade-out;animation:1568ms linear infinite container-rotate,.4s cubic-bezier(.4,0,.2,1) fade-out}@-webkit-keyframes fade-out{from{opacity:1}to{opacity:0}}@keyframes fade-out{from{opacity:1}to{opacity:0}}loader{display:block;width:100%;text-align:center;padding:20px}loader .preloader-wrapper .spinner-layer .left{float:left}loader .preloader-wrapper .spinner-layer .right{float:right}']}]}],e.ctorParameters=function(){return[]},e}(),k=function(){function e(e,t){var n=this;this.route=e,this.activatedRoute=t,this.keyword="",this.placeHolder="Search",s.isUndefined(this.navigationSubscription)&&(this.navigationSubscription=this.route.events.subscribe(function(e){e instanceof r.NavigationEnd&&(s.isUndefined(n.activatedRoute.snapshot.queryParams.search)?n.keyword="":n.keyword=n.activatedRoute.snapshot.queryParams.search)}))}return e.prototype.ngOnInit=function(){},e.prototype.ngOnDestroy=function(){this.navigationSubscription.unsubscribe()},e.prototype.onSubmit=function(){var e=window.location.pathname,t=this.activatedRoute.snapshot.queryParams;t=s.assign({},t,{search:this.keyword});var n=s.assign({},this.activatedRoute.snapshot.params,{queryParams:t});this.route.navigate([e],n)},e.decorators=[{type:i.Component,args:[{selector:"search-form",template:'<form class="search-form search-form--inline" (ngSubmit)="onSubmit()">\n <div class="form-group search-form--inline__submit">\n <input type="submit" value="Search" class="btn btn-success search-form--inline__btn-submit">\n </div>\n <div class="form-group search-form--inline__search">\n <input type="search" name="keyword" placeholder="{{ placeHolder }}" class="form-control search-form--inline__input-field" [(ngModel)]="keyword">\n </div>\n</form>',styles:[""]}]}],e.ctorParameters=function(){return[{type:r.Router},{type:r.ActivatedRoute}]},e.propDecorators={placeHolder:[{type:i.Input}]},e}(),I=function(e,t){return(I=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function R(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||0<t--)&&!(r=o.next()).done;)a.push(r.value)}catch(s){i={error:s}}finally{try{r&&!r.done&&(n=o["return"])&&n.call(o)}finally{if(i)throw i.error}}return a}var C=function(t){function e(e){return t.call(this,e)||this}return function r(e,t){function n(){this.constructor=e}I(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}(e,t),e}(Error),_=function(){function e(e,t){var n=this;this.name="page",this.current_page=1,this.pages=[],this.numberPageInBetween=5,this.pagesInBetween=[],this.router=e,this.activeRoute=t,this.navigationSubscription=this.router.events.subscribe(function(e){e instanceof r.NavigationEnd&&(s.isUndefined(n.activeRoute.snapshot.queryParams.page)||(n.current_page=parseInt(n.activeRoute.snapshot.queryParams.page)))})}return e.prototype.ngOnInit=function(){s.isUndefined(this.activeRoute.snapshot.queryParams[this.name])||(this.current_page=parseInt(this.activeRoute.snapshot.queryParams[this.name]))},e.prototype.ngOnDestroy=function(){this.navigationSubscription.unsubscribe()},e.prototype.ngOnChanges=function(e){if(!s.isUndefined(this.paginator)){for(var t=[],n=this.paginator.getTotalPages(),r=1;r<=n;r++)t.push(r);this.pages=t;var i=[];if(n-2>this.numberPageInBetween)if(this.isHideLeftShowMore(this.current_page))for(r=2;r<=this.numberPageInBetween+1;r++)i.push(r);else if(this.isHideRightShowMore(this.current_page))for(r=n-this.numberPageInBetween;r<=n-1;r++)i.push(r);else if(-1<this.pagesInBetween.indexOf(this.current_page))i=this.pagesInBetween;else for(r=this.current_page;r<=this.current_page+this.numberPageInBetween-1;r++)i.push(r);else for(r=2;r<=n-1;r++)i.push(r);this.pagesInBetween=i}},e.prototype.resolveParams=function(e,t){var n,r,i;if(s.isUndefined(t))return s.assign({},this.activeRoute.snapshot.queryParams,((i={})[this.name]=e,i));if("prev"===t){var o=e-1;return s.assign({},this.activeRoute.snapshot.queryParams,((n={})[this.name]=o,n))}if("next"!==t)throw new C("only 'prev' or 'next' action are allowed");var a=e+1;return s.assign({},this.activeRoute.snapshot.queryParams,((r={})[this.name]=a,r))},e.prototype.getCurrentPage=function(){return this.current_page},e.prototype.isCurrentPage=function(e){return e===this.current_page},e.prototype.shouldActivePrev=function(){return 1<this.current_page},e.prototype.shouldActiveNext=function(){return this.current_page<this.paginator.getTotalPages()},e.prototype.getCurrentUrl=function(){var t=["/"];return this.activeRoute.snapshot.pathFromRoot.forEach(function(e){Array.isArray(e.url)&&0<e.url.length&&(t=function n(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(R(arguments[t]));return e}(t,e.url.map(function(e){return e.path})))}),t},e.prototype.isHideLeftShowMore=function(e){return this.pages.length-2<this.numberPageInBetween||e<=this.numberPageInBetween+1},e.prototype.isHideRightShowMore=function(e){return this.isHideLeftShowMore(e)?this.pages.length-2<this.numberPageInBetween||e>this.numberPageInBetween+1:this.pages.length-2<this.numberPageInBetween||e>this.pages.length-this.numberPageInBetween},e.decorators=[{type:i.Component,args:[{selector:"length-aware-paginator",template:'<div class="row" *ngIf="paginator !== undefined && (alwaysDisplay === true || this.paginator.getTotalPages() > 1)">\n <div class="col-md-12 col-sm-12 col-xs-12">\n <ul class="pagination animated fadeIn">\n <li class="page-item" *ngIf="shouldActivePrev()">\n <a class="page-link" [routerLink]="getCurrentUrl()" [queryParams]="this.resolveParams(getCurrentPage(), \'prev\')">Prev</a>\n </li>\n <li class="page-item" [ngClass]="{\'active\': isCurrentPage(1)}">\n <a class="page-link" [routerLink]="getCurrentUrl()" [queryParams]="this.resolveParams(1)">1</a>\n </li>\n <li class="page-item left-show-more" *ngIf="!isHideLeftShowMore(getCurrentPage())">\n <a class="page-link" [routerLink]="getCurrentUrl()" [queryParams]="this.resolveParams(pagesInBetween[0] - numberPageInBetween )">...</a>\n </li>\n <li class="page-item" [ngClass]="{\'active\': isCurrentPage(page)}" *ngFor="let page of pagesInBetween">\n <a class="page-link" [routerLink]="getCurrentUrl()" [queryParams]="this.resolveParams(page)">{{ page }}</a>\n </li>\n <li class="page-item right-show-more" *ngIf="!isHideRightShowMore(getCurrentPage())">\n <a class="page-link" [routerLink]="getCurrentUrl()" [queryParams]="this.resolveParams(pagesInBetween[pagesInBetween.length - 1] + 1)">...</a>\n </li>\n <li class="page-item" [ngClass]="{\'active\': isCurrentPage(pages.length)}" *ngIf="pages.length > 1">\n <a class="page-link" [routerLink]="getCurrentUrl()" [queryParams]="this.resolveParams(pages.length)">{{ pages.length }}</a>\n </li>\n <li class="page-item" *ngIf="shouldActiveNext()">\n <a class="page-link" [routerLink]="getCurrentUrl()" [queryParams]="this.resolveParams(getCurrentPage(), \'next\')">Next</a>\n </li>\n </ul>\n </div>\n</div>',styles:[""]}]}],e.ctorParameters=function(){return[{type:r.Router},{type:r.ActivatedRoute}]},e.propDecorators={alwaysDisplay:[{type:i.Input}],paginator:[{type:i.Input}],name:[{type:i.Input}]},e}(),x="asc",M="desc",q=function(){function e(e,t){this.allowMulti=!1,this.route=e,this.activatedRoute=t}return e.prototype.ngOnInit=function(){var n=this;if(s.isUndefined(this["default"])||("asc"===this["default"].toLowerCase()&&(this.direction=x),"desc"===this["default"].toLowerCase()&&(this.direction=M)),!s.isUndefined(this.activatedRoute.snapshot.queryParams.sort)){var e=this.activatedRoute.snapshot.queryParams.sort.split(",");s.includes(e,this.field)||s.includes(e,"+"+this.field)?this.direction=x:s.includes(e,"-"+this.field)&&(this.direction=M)}this.navigationSubscription=this.route.events.subscribe(function(e){if(e instanceof r.NavigationEnd)if(s.isUndefined(n["default"])||("asc"===n["default"].toLowerCase()&&(n.direction=x),"desc"===n["default"].toLowerCase()&&(n.direction=M)),s.isUndefined(n.activatedRoute.snapshot.queryParams.sort))n.direction=undefined;else{var t=n.activatedRoute.snapshot.queryParams.sort.split(",");s.includes(t,n.field)||s.includes(t,"+"+n.field)?n.direction=x:s.includes(t,"-"+n.field)?n.direction=M:n.direction=undefined}})},e.prototype.ngOnDestroy=function(){this.navigationSubscription.unsubscribe()},e.prototype.getDirection=function(){return this.direction},e.prototype.getRouterDirection=function(){return this.direction===x?"":this.direction===M?"-":undefined},e.prototype.sort=function(){var t=this;this.direction===x?this.direction=M:this.direction===M?this.direction=undefined:this.direction=x;this.activatedRoute.snapshot.url;var e=this.activatedRoute.snapshot.queryParams,n=[];!0===this.allowMulti?s.isUndefined(e.sort)?this.getRouterDirection()!==undefined&&n.push(""+this.getRouterDirection()+this.field):(n=e.sort.split(","),s.includes(n,this.field)||s.includes(n,"+"+this.field)||s.includes(n,"-"+this.field)?this.getRouterDirection()===undefined?s.remove(n,function(e){return e===t.field||e==="+"+t.field||e==="-"+t.field}):n=s.map(n,function(e){return e!==t.field&&e!=="+"+t.field&&e!=="-"+t.field||(e=""+t.getRouterDirection()+t.field),e}):this.getRouterDirection()!==undefined&&n.push(""+this.getRouterDirection()+this.field)):this.getRouterDirection()!==undefined&&n.push(""+this.getRouterDirection()+this.field),s.remove(n,function(e){return s.isNil(e)||""===e});var r={queryParams:{sort:n.join(","),page:1}};s.isUndefined(this.options)||(r=s.assign(this.options,r)),s.isUndefined(this.callback)?this.route.navigate([document.location.pathname],s.assign(r,{queryParamsHandling:"merge"})):this.callback(this.field,this.direction,r)},e.decorators=[{type:i.Component,args:[{selector:"sort-by-field",template:"<span class=\"sorting fa fa-sort\" [ngClass]=\"{ 'fa-sort-up': direction === 'asc', 'fa-sort-down': direction === 'desc' }\" (click)=\"sort()\"></span>\n",styles:[":host .sorting{cursor:pointer}"]}]}],e.ctorParameters=function(){return[{type:r.Router},{type:r.ActivatedRoute}]},e.propDecorators={field:[{type:i.Input}],allowMulti:[{type:i.Input}],"default":[{type:i.Input}],options:[{type:i.Input}],callback:[{type:i.Input}]},e}(),S=function(){function e(e,t){var n=this;this.route=e,this.activatedRoute=t,this.limits=[5,10,20,100],this.perPage=20,this.navigationSubscription=this.route.events.subscribe(function(e){if(e instanceof r.NavigationEnd){var t=n.name||"per_page";s.isUndefined(n.activatedRoute.snapshot.queryParams[t])||(n.perPage=parseInt(n.activatedRoute.snapshot.queryParams[t]),s.includes(n.limits,n.perPage)?n.limits=[5,10,20,100]:n.limits.push(n.perPage))}})}return e.prototype.ngOnInit=function(){},e.prototype.ngOnDestroy=function(){s.isUndefined(this.navigationSubscription)||this.navigationSubscription.unsubscribe()},e.prototype.updateLimit=function(){var e=this.name||"per_page",t=this.page||"page",n=window.location.pathname,r=this.activatedRoute.snapshot.queryParams,i={};i[e]=this.perPage,i[t]=1,r=s.assign({},r,i);var o=s.assign({},this.activatedRoute.snapshot.params,{queryParams:r});this.route.navigate([n],o)},e.decorators=[{type:i.Component,args:[{selector:"per-page",template:'<label for="">Show</label>\n<select class="form-control input-sm" name="perPage" [(ngModel)]="perPage" (change)="updateLimit()">\n <option [ngValue]="i" *ngFor="let i of limits">{{ i }}</option>\n</select>\n',styles:[""]}]}],e.ctorParameters=function(){return[{type:r.Router},{type:r.ActivatedRoute}]},e.propDecorators={perPage:[{type:i.Input}],name:[{type:i.Input}],page:[{type:i.Input}]},e}(),D=function(){function e(e,t){this.element=e,this.renderer=t,this.onChange=function(e){},this.onTouched=function(){},this.disabled=!1}return e.prototype.triggerChanged=function(){var e=new CustomEvent("change",{bubbles:!0});this.renderer.invokeElementMethod(this.element.nativeElement,"dispatchEvent",[e])},e.prototype.writeValue=function(e){e&&(this.value=e)},Object.defineProperty(e.prototype,"value",{get:function(){return this._value},set:function(t){this.selected=s.find(this.options,function(e){return e.value===t}),this._value=t,this.onChange(this._value)},enumerable:!0,configurable:!0}),e.prototype.registerOnChange=function(e){this.onChange=e},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.setDisabledState=function(e){this.disabled=e},e.prototype.change=function(e){this.value=e.value,this.triggerChanged()},e.decorators=[{type:i.Component,args:[{selector:"custom-selection",template:'<div class="dropdown custom-selection">\n <button class="btn btn-default btn-sm dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\n {{ selected === undefined ? \'\' : selected.label }}\n </button>\n <div class="dropdown-menu">\n <a class="dropdown-item" *ngFor="let option of options" (click)="change(option)">{{ option.label }}</a>\n </div>\n</div>\n',providers:[{provide:n.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return e}),multi:!0}],styles:[":host .custom-selection button{border:1px solid #ddd;border-radius:4px}:host .custom-selection button.btn:focus{box-shadow:none;outline:0}:host .custom-selection .dropdown-menu .dropdown-item{cursor:pointer}"]}]}],e.ctorParameters=function(){return[{type:i.ElementRef},{type:i.Renderer}]},e.propDecorators={_value:[{type:i.Input}],options:[{type:i.Input}]},e}(),z=function(){function e(e){this.element=e}return e.prototype.onInput=function(e){this.adjust()},e.prototype.ngOnInit=function(){this.adjust()},e.prototype.adjust=function(){var e,t=this.element.nativeElement;t&&(t.style.overflow="hidden",t.style.height="auto",e=this.autoresize?Math.min(t.scrollHeight,this.autoresize):t.scrollHeight,t.style.height=e+"px")},e.decorators=[{type:i.Directive,args:[{selector:"[autoresize]"}]}],e.ctorParameters=function(){return[{type:i.ElementRef}]},e.propDecorators={autoresize:[{type:i.Input}],onInput:[{type:i.HostListener,args:["input",["$event.target"]]}]},e}(),B=function(){function e(){}return e.decorators=[{type:i.NgModule,args:[{imports:[o.CommonModule,n.FormsModule,n.ReactiveFormsModule,r.RouterModule,v],exports:[D,_,S,k,q,w,P,z],declarations:[D,_,S,k,q,w,P,z]}]}],e}(),O=function(){function e(){}return e.prototype.ngOnInit=function(){},e.decorators=[{type:i.Component,args:[{selector:"vicoders-activity-log",template:'<table class="table table-no-border-top">\n <thead>\n <tr>\n <th>\n ID\n <sort-by-field field="id"></sort-by-field>\n </th>\n <th>Thời gian</th>\n <th>Sự kiện</th>\n </tr>\n </thead>\n <tbody *ngIf="(items | hasItem)">\n <tr *ngFor="let item of items">\n <td>{{ item.getId() }}</td>\n <td>\n {{\n item.timestamps.created_at.date | timeFormat: "DD/MM/YYYY HH:mm:ss"\n }}\n </td>\n <td>{{ item.getDescription() }}</td>\n </tr>\n </tbody>\n\n <tbody *ngIf="!(items | hasItem)">\n <tr>\n <td colspan="4" class="text-center">We don\'t have any record here</td>\n </tr>\n </tbody>\n</table>\n<length-aware-paginator *ngIf="paginator" [(paginator)]="paginator"></length-aware-paginator>\n',styles:[""]}]}],e.ctorParameters=function(){return[]},e.propDecorators={items:[{type:i.Input}],paginator:[{type:i.Input}]},e}(),A=function(){function e(){}return e.decorators=[{type:i.NgModule,args:[{imports:[o.CommonModule,B,v],declarations:[O],exports:[O]}]}],e}();e.DirectivesModule=B,e.PipesModule=v,e.Exception=C,e.ActivityLogComponent=O,e.VicodersActivityLogModule=A,e.ɵr=z,e.ɵk=D,e.ɵl=_,e.ɵq=P,e.ɵp=w,e.ɵm=S,e.ɵn=k,e.ɵo=q,e.ɵd=c,e.ɵh=p,e.ɵg=g,e.ɵa=a,e.ɵc=l,e.ɵb=u,e.ɵe=f,e.ɵj=b,e.ɵf=d,e.ɵi=m,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=vicoders-angular.umd.min.js.map