UNPKG

@rucken/todo-web

Version:

Base components and ui for todo application maked on Angular7+ and based on Rucken template

2 lines 37.9 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/common"),require("@angular/core"),require("@rucken/core"),require("@ngx-translate/core"),require("@rucken/todo-core"),require("ngx-repository"),require("ngx-bind-io"),require("@rucken/web"),require("@fortawesome/angular-fontawesome"),require("@angular/forms"),require("ngx-bootstrap/modal"),require("rxjs/operators"),require("ngx-bootstrap/datepicker"),require("ngx-bootstrap/typeahead")):"function"==typeof define&&define.amd?define("@rucken/todo-web",["exports","@angular/common","@angular/core","@rucken/core","@ngx-translate/core","@rucken/todo-core","ngx-repository","ngx-bind-io","@rucken/web","@fortawesome/angular-fontawesome","@angular/forms","ngx-bootstrap/modal","rxjs/operators","ngx-bootstrap/datepicker","ngx-bootstrap/typeahead"],e):e(((t=t||self).rucken=t.rucken||{},t.rucken["todo-web"]={}),t.ng.common,t.ng.core,t.core$1,t.core$2,t.todoCore,t.ngxRepository,t.ngxBindIo,t.web,t.angularFontawesome,t.ng.forms,t.modal,t.rxjs.operators,t.datepicker,t.typeahead)}(this,function(t,e,n,o,r,a,i,s,c,l,d,p,u,m,y){"use strict";var g=function(t,e){return(g=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function f(t,e){function n(){this.constructor=t}g(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var h=function(){return(h=Object.assign||function(t){for(var e,n=1,o=arguments.length;n<o;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};function C(t,e,n,o){var r,a=arguments.length,i=a<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,o);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(a<3?r(i):a>3?r(e,n,i):r(e,n))||i);return a>3&&i&&Object.defineProperty(e,n,i),i}function I(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}var M={"Select project":"Выберите проект",Select:"Выбрать","Delete status":"Удалить статус",'Do you really want to delete status "{{title}}" from project?':'Вы действительно хотите удалить статус "{{title}}" у проекта?',"Select status for append to project":"Выберите статус для добавления в проект","Delete user":"Закрыть доступ",'Do you really want to delete user "{{fullName}}" from project?':'Вы действительно хотите закрыть доступ к проекту пользователю "{{fullName}}"?',"Select user for append to project":"Выберите пользователя для добавления в проект",Projects:"Проекты","Select status":"Выберите статус",Statuses:"Статусы","Select task":"Выберите задачу",Tasks:"Задачи",Russian:"Русский",English:"Английский",Delete:"Удалить",Append:"Добавить",Save:"Сохранить",Create:"Создать",Close:"Закрыть"},S={title:o.translate("Russian"),code:"ru",translations:[M]},v={title:o.translate("English"),code:"en",translations:[]},b=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule],providers:[{provide:o.LANGUAGES_ITEM_CONFIG_TOKEN,useValue:S,multi:!0},{provide:o.LANGUAGES_ITEM_CONFIG_TOKEN,useValue:v,multi:!0}]}]}],t}(),O=function(t){function e(){var e=t.call(this)||this;return e.apiUrl=undefined,e.group(a.Project),e}return f(e,t),e.decorators=[{type:n.Component,args:[{selector:"project-modal",template:'<form\n [formGroup]="form"\n novalidate>\n <prompt-form-modal [bindIO]>\n <div class="row">\n <div class="col-md-6">\n <form-group\n [bindIO]\n name="title"\n [title]="strings.title"\n focus>\n <input\n formControlName="title"\n [readonly]="readonly">\n </form-group>\n <form-group\n [bindIO]\n name="isPublic"\n [title]="false">\n <label>\n <input\n formControlName="isPublic"\n type="checkbox"\n [readonly]="readonly"\n [disableControl]="readonly">\n {{strings.isPublic | translate}}\n </label>\n </form-group>\n </div>\n <div class="col-md-6">\n <form-group\n [bindIO]\n name="description"\n [title]="strings.description">\n <textarea\n formControlName="description"\n [readonly]="readonly">\n </textarea>\n </form-group>\n </div>\n </div>\n <div class="row">\n <div class="col-md-6">\n <h4 *ngIf="!readonly">{{strings.statuses | translate}}</h4>\n <project-statuses-grid\n formControlName="statuses"\n [project]="data"\n [readonly]="readonly"\n [title]="strings.statuses"\n [apiUrl]="apiUrl"></project-statuses-grid>\n </div>\n <div class="col-md-6">\n <h4 *ngIf="!readonly">{{strings.users | translate}}</h4>\n <project-users-grid\n formControlName="users"\n [readonly]="readonly"\n [title]="strings.users"\n [apiUrl]="apiUrl"></project-users-grid>\n </div>\n </div>\n </prompt-form-modal>\n</form>\n',changeDetection:n.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[]},e.propDecorators={apiUrl:[{type:n.Input}]},e=C([s.BindIoInner(),I("design:paramtypes",[])],e)}(o.BasePromptFormModalComponent),j=function(t){function e(e,n,r,i,s,c){var l=t.call(this,i.fork(a.Project),e,a.Project)||this;return l.errorsExtractor=n,l.translateService=r,l.dynamicRepository=i,l.projectsConfig=s,l.userPermPipe=c,l.autoload=!1,l.modalItem={component:O,"class":"modal-lg"},l.modalDelete={"class":"modal-md"},l.title=o.translate("Projects"),l}return f(e,t),e.prototype.ngOnInit=function(){this.mockedItems||this.useRest(h({apiUrl:this.apiUrl},this.projectsConfig,{autoload:this.autoload})),this.mockedItems&&this.useMock(h({items:this.mockedItems},this.projectsConfig,{autoload:this.autoload}))},e.prototype.onDblClick=function(t){this.userPermPipe.transform(t)?this.onUpdateClick(t):this.onViewClick(t)},e.decorators=[{type:n.Component,args:[{selector:"projects-grid",template:'<entity-grid\n [bindIO]\n [columns]="\'change_project\'|perm:false:[\'title\',\'users\',\'isPublic\',\'action\']:[\'title\',\'users\']|async"\n [translatedCells]="[\'isPublic\']"\n [enableCreate]="\'add_project\' | perm:false | async"\n [enableUpdate]="\'change_project\' | perm:false | async"\n [enableDelete]="\'delete_project\' | perm:false | async"\n [gridCellActionContent]="gridCellActionContent"\n #grid>\n</entity-grid>\n<ng-template\n #gridCellActionContent\n let-ctx>\n <button\n type="button"\n class="btn btn-default btn-sm"\n (click)="grid.onUpdate(ctx.item)"\n *ngIf="(grid.notReadonlyAndEnableUpdate$ | async) && (ctx.item|userPerm)">\n <fa-icon [icon]="[\'fas\', \'edit\']"></fa-icon>\n </button>\n <button\n type="button"\n class="btn btn-default btn-sm"\n (click)="grid.onDelete(ctx.item)"\n *ngIf="(grid.notReadonlyAndEnableDelete$ | async) && (ctx.item|userPerm)">\n <fa-icon [icon]="[\'fas\', \'trash\']"></fa-icon>\n </button>\n <button\n type="button"\n class="btn btn-default btn-sm"\n (click)="grid.onView(ctx.item)"\n *ngIf="!(ctx.item|userPerm)">\n <fa-icon [icon]="[\'fas\', \'eye\']"></fa-icon>\n </button>\n</ng-template>\n',changeDetection:n.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:o.ModalsService},{type:o.ErrorsExtractor},{type:r.TranslateService},{type:i.DynamicRepository},{type:undefined,decorators:[{type:n.Inject,args:[a.PROJECTS_CONFIG_TOKEN]}]},{type:o.UserPermPipe}]},e.propDecorators={autoload:[{type:n.Input}],modalItem:[{type:n.Input}],modalDelete:[{type:n.Input}],title:[{type:n.Input}]},e=C([s.BindIoInner(),I("design:paramtypes",[o.ModalsService,o.ErrorsExtractor,r.TranslateService,i.DynamicRepository,Object,o.UserPermPipe])],e)}(o.BaseEntityListComponent),E=function(t){function e(){var e=t.call(this)||this;return e.apiUrl=undefined,e}return f(e,t),e.decorators=[{type:n.Component,args:[{selector:"projects-grid-modal",template:'<entity-grid-modal [bindIO]>\n <projects-grid\n [apiUrl]="apiUrl"\n #grid>\n </projects-grid>\n</entity-grid-modal>\n',changeDetection:n.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[]},e.propDecorators={grid:[{type:n.ViewChild,args:["grid"]}],apiUrl:[{type:n.Input}]},e=C([s.BindIoInner(),I("design:paramtypes",[])],e)}(o.BaseEntityListModalComponent),k=function(t){function e(e,r,a,i,s){var c=t.call(this,e,r,a,i,s)||this;return c.errorsExtractor=r,c.translateService=a,c.dynamicRepository=i,c.projectsConfig=s,c.select=new n.EventEmitter,c.modalAppendFromGrid={component:E,initialState:{title:o.translate("Select project"),yesTitle:o.translate("Select")}},c}return f(e,t),e.prototype.ngOnInit=function(){var t=this;this.mockedItems=[],this.useMock(h({items:this.mockedItems},this.projectsConfig)),this.mockedItemsChange.subscribe(function(e){return t.onSelect(e[0])})},e.prototype.onSelect=function(t){this.select.emit(t)},e.decorators=[{type:n.Component,args:[{selector:"project-input",template:'<entity-input\n [bindIO]\n (select)="onAppendFromGridClick($event)">\n <ng-content></ng-content>\n</entity-input>\n',changeDetection:n.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:o.ModalsService},{type:o.ErrorsExtractor},{type:r.TranslateService},{type:i.DynamicRepository},{type:undefined,decorators:[{type:n.Inject,args:[a.PROJECTS_CONFIG_TOKEN]}]}]},e.propDecorators={select:[{type:n.Output}],modalAppendFromGrid:[{type:n.Input}]},e=C([s.BindIoInner(),I("design:paramtypes",[o.ModalsService,o.ErrorsExtractor,r.TranslateService,i.DynamicRepository,Object])],e)}(j),D=function(t){function e(){var e=t.call(this)||this;return e.group(a.StatusWithProject),e}return f(e,t),e.decorators=[{type:n.Component,args:[{selector:"status-modal",template:'<form\n [formGroup]="form"\n novalidate>\n <prompt-form-modal [bindIO]>\n <form-group\n [bindIO]\n name="name"\n [title]="strings.name"\n focus>\n <input\n formControlName="name"\n [readonly]="readonly">\n </form-group>\n <form-group\n [bindIO]\n name="title"\n [title]="strings.title">\n <input\n formControlName="title"\n [readonly]="readonly">\n </form-group>\n </prompt-form-modal>\n</form>\n',changeDetection:n.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[]},e=C([s.BindIoInner(),I("design:paramtypes",[])],e)}(o.BasePromptFormModalComponent),P=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,c.PromptFormModalModule,s.NgxBindIOModule],declarations:[D],entryComponents:[D],exports:[D,c.PromptFormModalModule]}]}],t}(),x=function(t){function e(e,n,r,i,s){var c=t.call(this,i.fork(a.StatusWithProject),e,a.StatusWithProject)||this;return c.errorsExtractor=n,c.translateService=r,c.dynamicRepository=i,c.statusesConfig=s,c.autoload=!1,c.modalItem={component:D},c.title=o.translate("Statuses"),c.project=undefined,c}return f(e,t),e.prototype.ngOnInit=function(){this.mockedItems||this.useRest(h({apiUrl:this.apiUrl},this.statusesConfig,{autoload:this.autoload})),this.mockedItems&&this.useMock(h({items:this.mockedItems},this.statusesConfig,{autoload:this.autoload})),this.onChangeFilter()},e.prototype.onChangeFilter=function(e){e=e||{},this.project?e.project=this.project.id:e.project=-1,t.prototype.onChangeFilter.call(this,e)},e.prototype.defaultCreateCreateModal=function(e){return(e=e||new a.StatusWithProject).project=this.project,this.modalCreate=h({},this.modalCreate,{initialState:h({},this.modalCreate.initialState,{data:e})}),t.prototype.defaultCreateCreateModal.call(this,e)},e.prototype.defaultCreateUpdateModal=function(e){return e.project=this.project,this.modalUpdate=h({},this.modalUpdate,{initialState:h({},this.modalUpdate.initialState,{data:e})}),t.prototype.defaultCreateUpdateModal.call(this,e)},e.decorators=[{type:n.Component,args:[{selector:"statuses-grid",template:"<entity-grid\n [bindIO]\n [columns]=\"['title','action']\"\n [enableCreate]=\"'add_status' | perm:false | async\"\n [enableUpdate]=\"'change_status' | perm:false | async\"\n [enableDelete]=\"'delete_status' | perm:false | async\">\n</entity-grid>\n",changeDetection:n.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:o.ModalsService},{type:o.ErrorsExtractor},{type:r.TranslateService},{type:i.DynamicRepository},{type:undefined,decorators:[{type:n.Inject,args:[a.STATUSES_CONFIG_TOKEN]}]}]},e.propDecorators={autoload:[{type:n.Input}],modalItem:[{type:n.Input}],title:[{type:n.Input}],project:[{type:n.Input}]},e=C([s.BindIoInner(),I("design:paramtypes",[o.ModalsService,o.ErrorsExtractor,r.TranslateService,i.DynamicRepository,Object])],e)}(o.BaseEntityListComponent),N=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,c.WebModalsModule,c.EntityGridModule,P,s.NgxBindIOModule],declarations:[x],exports:[x,c.EntityGridModule,P]}]}],t}(),T=function(t){function e(){var e=t.call(this)||this;return e.apiUrl=undefined,e.project=undefined,e}return f(e,t),e.decorators=[{type:n.Component,args:[{selector:"statuses-grid-modal",template:'<entity-grid-modal [bindIO]>\n <statuses-grid\n [apiUrl]="apiUrl"\n [project]="project"\n #grid>\n </statuses-grid>\n</entity-grid-modal>\n',changeDetection:n.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[]},e.propDecorators={grid:[{type:n.ViewChild,args:["grid"]}],apiUrl:[{type:n.Input}],project:[{type:n.Input}]},e=C([s.BindIoInner(),I("design:paramtypes",[])],e)}(o.BaseEntityListModalComponent),U=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,c.EntityGridModalModule,N,s.NgxBindIOModule],declarations:[T],entryComponents:[T],exports:[T,c.EntityGridModalModule,N]}]}],t}(),G=function(t){function e(e,n,r,a,i){var s=t.call(this,e,n,r,a,i)||this;return s.errorsExtractor=n,s.translateService=r,s.dynamicRepository=a,s.statusesConfig=i,s.modalDelete={initialState:{title:o.translate("Delete status"),message:o.translate('Do you really want to delete status "{{title}}" from project?')}},s.modalAppendFromGrid={component:T,initialState:{title:o.translate("Select status for append to project")}},s.project=undefined,s._onChange=function(t){},s._onTouched=function(){},s}var c;return f(e,t),c=e,e.prototype.ngOnInit=function(t){var e=this;t&&(this.mockedItems||this.useRest(h({apiUrl:this.apiUrl+"/project/"+this.project.id,autoload:!!this.project.id},this.statusesConfig,{globalEventResolver:function(t,e){return e!==i.ProviderActionEnum.Create&&e!==i.ProviderActionEnum.Delete}})),this.mockedItems&&this.useMock(h({items:this.mockedItems,autoload:!0},this.statusesConfig,{globalEventResolver:function(t,e){return e!==i.ProviderActionEnum.Create&&e!==i.ProviderActionEnum.Delete}})),this.mockedItemsChangeSubscription&&this.mockedItemsChangeSubscription.unsubscribe(),this.mockedItemsChange.subscribe(function(t){return e._onChange(t)}))},e.prototype.ngOnDestroy=function(){this.mockedItemsChangeSubscription&&this.mockedItemsChangeSubscription.unsubscribe()},e.prototype.writeValue=function(t){this.mockedItems=t||[],this.ngOnInit(!0)},e.prototype.registerOnChange=function(t){this._onChange=t},e.prototype.registerOnTouched=function(t){this._onTouched=t},e.prototype.setDisabledState=function(t){},e.decorators=[{type:n.Component,args:[{selector:"project-statuses-grid",template:"<entity-grid\n [bindIO]\n [columns]=\"['title', 'action']\"\n (appendFromGrid)=\"onCreateClick()\"\n [enableCreate]=\"'add_status' | perm:false | async\"\n [enableUpdate]=\"'change_status' | perm:false | async\"\n [enableDelete]=\"'delete_status' | perm:false | async\">\n</entity-grid>\n",providers:[{provide:d.NG_VALUE_ACCESSOR,useExisting:n.forwardRef(function(){return c}),multi:!0}],changeDetection:n.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:o.ModalsService},{type:o.ErrorsExtractor},{type:r.TranslateService},{type:i.DynamicRepository},{type:undefined,decorators:[{type:n.Inject,args:[a.STATUSES_CONFIG_TOKEN]}]}]},e.propDecorators={modalDelete:[{type:n.Input}],modalAppendFromGrid:[{type:n.Input}],project:[{type:n.Input}]},e=c=C([s.BindIoInner(),I("design:paramtypes",[o.ModalsService,o.ErrorsExtractor,r.TranslateService,i.DynamicRepository,Object])],e)}(x),R=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,c.EntityGridModule,P,U,s.NgxBindIOModule],declarations:[G],exports:[G,c.EntityGridModule,P,U]}]}],t}(),_=function(t){function e(){var e=t.call(this)||this;return e.apiUrl=undefined,e.group(o.User),e}return f(e,t),e.decorators=[{type:n.Component,args:[{selector:"project-user-modal",template:'<form\n [formGroup]="form"\n novalidate>\n <prompt-form-modal [bindIO]>\n <form-group\n [bindIO]\n name="username"\n [title]="strings.username"\n focus>\n <input\n formControlName="username"\n [readonly]="readonly">\n </form-group>\n <form-group\n [bindIO]\n name="email"\n [title]="strings.email">\n <input\n formControlName="email"\n [readonly]="readonly">\n </form-group>\n <form-group\n [bindIO]\n name="firstName"\n [title]="strings.firstName">\n <input\n formControlName="firstName"\n [readonly]="readonly">\n </form-group>\n <form-group\n [bindIO]\n name="lastName"\n [title]="strings.lastName">\n <input\n formControlName="lastName"\n [readonly]="readonly">\n </form-group>\n </prompt-form-modal>\n</form>\n',changeDetection:n.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[]},e.propDecorators={apiUrl:[{type:n.Input}]},e=C([s.BindIoInner(),I("design:paramtypes",[])],e)}(o.BasePromptFormModalComponent),F=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,c.PromptFormModalModule,r.TranslateModule.forChild(),s.NgxBindIOModule],declarations:[_],entryComponents:[_],exports:[_,c.PromptFormModalModule]}]}],t}(),A=function(t){function e(e,n,r,a,i,s){var l=t.call(this,e,n,r,a,s)||this;return l.errorsExtractor=n,l.translateService=r,l.dynamicRepository=a,l.modalService=i,l.usersConfig=s,l.modalItem={component:_,initialState:{simpleMode:!0}},l.modalDelete={initialState:{title:o.translate("Delete user"),message:o.translate('Do you really want to delete user "{{fullName}}" from project?')}},l.modalAppendFromGrid={component:c.UsersGridModalComponent,initialState:{title:o.translate("Select user for append to project"),simpleMode:!0}},l.project=undefined,l._onChange=function(t){},l._onTouched=function(){},l}var a;return f(e,t),a=e,e.prototype.ngOnInit=function(t){var e=this;t&&(this.mockedItems||this.useRest(h({apiUrl:this.apiUrl+"/project/"+this.project.id,autoload:!!this.project.id},this.usersConfig,{globalEventResolver:function(t,e){return e!==i.ProviderActionEnum.Create&&e!==i.ProviderActionEnum.Delete}})),this.mockedItems&&this.useMock(h({items:this.mockedItems,autoload:!0},this.usersConfig,{globalEventResolver:function(t,e){return e!==i.ProviderActionEnum.Create&&e!==i.ProviderActionEnum.Delete}})),this.mockedItemsChangeSubscription&&this.mockedItemsChangeSubscription.unsubscribe(),this.mockedItemsChange.subscribe(function(t){return e._onChange(t)}))},e.prototype.ngOnDestroy=function(){this.mockedItemsChangeSubscription&&this.mockedItemsChangeSubscription.unsubscribe()},e.prototype.writeValue=function(t){this.mockedItems=t||[],this.ngOnInit(!0)},e.prototype.registerOnChange=function(t){this._onChange=t},e.prototype.registerOnTouched=function(t){this._onTouched=t},e.prototype.setDisabledState=function(t){},e.decorators=[{type:n.Component,args:[{selector:"project-users-grid",template:"<entity-grid\n [bindIO]\n [columns]=\"['fullName', 'action']\"\n [enableCreate]=\"'change_project' | perm:false | async\"\n [enableUpdate]=\"false\"\n [enableDelete]=\"'change_project' | perm:false | async\">\n</entity-grid>\n",providers:[{provide:d.NG_VALUE_ACCESSOR,useExisting:n.forwardRef(function(){return a}),multi:!0}],changeDetection:n.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:o.ModalsService},{type:o.ErrorsExtractor},{type:r.TranslateService},{type:i.DynamicRepository},{type:p.BsModalService},{type:undefined,decorators:[{type:n.Inject,args:[o.USERS_CONFIG_TOKEN]}]}]},e.propDecorators={modalItem:[{type:n.Input}],modalDelete:[{type:n.Input}],modalAppendFromGrid:[{type:n.Input}],project:[{type:n.Input}]},e=a=C([s.BindIoInner(),I("design:paramtypes",[o.ModalsService,o.ErrorsExtractor,r.TranslateService,i.DynamicRepository,p.BsModalService,Object])],e)}(c.UsersGridComponent),B=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,c.UsersGridModalModule,c.UserModalModule,F,s.NgxBindIOModule],declarations:[A],exports:[A,c.UsersGridModalModule,c.UserModalModule,F]}]}],t}(),w=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,c.PromptFormModalModule,R,B,r.TranslateModule.forChild(),s.NgxBindIOModule],declarations:[O],entryComponents:[O],exports:[O,c.PromptFormModalModule,R,B]}]}],t}(),K=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,c.WebModalsModule,c.EntityGridModule,w,l.FontAwesomeModule,s.NgxBindIOModule],declarations:[j],exports:[j,c.EntityGridModule,w]}]}],t}(),q=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,c.EntityGridModalModule,K,s.NgxBindIOModule],declarations:[E],entryComponents:[E],exports:[E,c.EntityGridModalModule,K]}]}],t}(),V=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,c.EntityInputModule,q,s.NgxBindIOModule],declarations:[k],exports:[k,c.EntityInputModule,q]}]}],t}(),L=function(t){function e(e,n,o,r,a){var i=t.call(this,e,n,o,r,a)||this;return i.errorsExtractor=n,i.translateService=o,i.dynamicRepository=r,i.projectsConfig=a,i.searchField=new d.FormControl,i.nameField="title",i}return f(e,t),e.prototype.ngOnInit=function(){this.mockedItems||this.useRest(h({apiUrl:this.apiUrl},this.projectsConfig,{paginationMeta:{perPage:1e3}})),this.mockedItems&&this.useMock(h({items:this.mockedItems},this.projectsConfig))},e.prototype.checkChange=function(t,e){return e instanceof a.Project},e.decorators=[{type:n.Component,args:[{selector:"project-select",template:"<entity-select [bindIO]>\n <ng-content></ng-content>\n</entity-select>\n",changeDetection:n.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:o.ModalsService},{type:o.ErrorsExtractor},{type:r.TranslateService},{type:i.DynamicRepository},{type:undefined,decorators:[{type:n.Inject,args:[a.PROJECTS_CONFIG_TOKEN]}]}]},e.propDecorators={searchField:[{type:n.Input}]},e=C([s.BindIoInner(),I("design:paramtypes",[o.ModalsService,o.ErrorsExtractor,r.TranslateService,i.DynamicRepository,Object])],e)}(j),$=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,c.EntitySelectModule,q,s.NgxBindIOModule],declarations:[L],exports:[L,c.EntitySelectModule,q]}]}],t}(),W=function(t){function e(e,r,a,i,s){var c=t.call(this,e,r,a,i,s)||this;return c.errorsExtractor=r,c.translateService=a,c.dynamicRepository=i,c.statusesConfig=s,c.modalAppendFromGrid={component:T,initialState:{title:o.translate("Select status"),yesTitle:o.translate("Select")}},c.select=new n.EventEmitter,c}return f(e,t),e.prototype.ngOnInit=function(){var t=this;this.mockedItems=[],this.useMock(h({items:this.mockedItems},this.statusesConfig)),this.mockedItemsChange.subscribe(function(e){return t.onSelect(e[0])})},e.prototype.defaultAppendFromGridModal=function(){return this.modalAppendFromGrid=h({},this.modalAppendFromGrid,{initialState:h({},this.modalAppendFromGrid.initialState,{project:this.project})}),t.prototype.defaultAppendFromGridModal.call(this)},e.prototype.onSelect=function(t){this.select.emit(t)},e.decorators=[{type:n.Component,args:[{selector:"status-input",template:'<entity-input\n [readonly]="readonly"\n (select)="onAppendFromGridClick($event)">\n <ng-content></ng-content>\n</entity-input>\n',changeDetection:n.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:o.ModalsService},{type:o.ErrorsExtractor},{type:r.TranslateService},{type:i.DynamicRepository},{type:undefined,decorators:[{type:n.Inject,args:[a.STATUSES_CONFIG_TOKEN]}]}]},e.propDecorators={modalAppendFromGrid:[{type:n.Input}],select:[{type:n.Output}]},e=C([s.BindIoInner(),I("design:paramtypes",[o.ModalsService,o.ErrorsExtractor,r.TranslateService,i.DynamicRepository,Object])],e)}(x),J=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,c.EntityInputModule,U,s.NgxBindIOModule],declarations:[W],exports:[W,c.EntityInputModule,U]}]}],t}(),z=function(t){function e(e,n,o,r,a){var i=t.call(this,e,n,o,r,a)||this;return i.errorsExtractor=n,i.translateService=o,i.dynamicRepository=r,i.statusesConfig=a,i.searchField=new d.FormControl,i.nameField="name",i}return f(e,t),e.prototype.ngOnInit=function(){this.mockedItems||this.useRest(h({apiUrl:this.apiUrl},this.statusesConfig,{paginationMeta:{perPage:1e3}})),this.mockedItems&&this.useMock(h({items:this.mockedItems},this.statusesConfig))},e.prototype.checkChange=function(t,e){return e instanceof a.StatusWithProject},e.decorators=[{type:n.Component,args:[{selector:"status-select",template:"<entity-select [bindIO]>\n <ng-content></ng-content>\n</entity-select>\n",changeDetection:n.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:o.ModalsService},{type:o.ErrorsExtractor},{type:r.TranslateService},{type:i.DynamicRepository},{type:undefined,decorators:[{type:n.Inject,args:[a.STATUSES_CONFIG_TOKEN]}]}]},e.propDecorators={searchField:[{type:n.Input}]},e=C([s.BindIoInner(),I("design:paramtypes",[o.ModalsService,o.ErrorsExtractor,r.TranslateService,i.DynamicRepository,Object])],e)}(x),H=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,c.EntitySelectModule,U,s.NgxBindIOModule],declarations:[z],exports:[z,c.EntitySelectModule,U]}]}],t}(),Q=function(t){function e(){var e=t.call(this)||this;return e.apiUrl=undefined,e.group(a.Task),e}return f(e,t),e.decorators=[{type:n.Component,args:[{selector:"task-modal",template:'<form\n [formGroup]="form"\n novalidate>\n <prompt-form-modal [bindIO]>\n <div class="row">\n <div class="col-md-12">\n <form-group\n [bindIO]\n name="title"\n [title]="strings.title"\n focus>\n <input\n formControlName="title"\n [readonly]="readonly">\n </form-group>\n </div>\n <div class="col-md-12">\n <form-group\n [bindIO]\n name="description"\n [title]="strings.description">\n <textarea\n formControlName="description"\n [readonly]="readonly">\n </textarea>\n </form-group>\n </div>\n <div class="col-md-4">\n <form-group\n [bindIO]\n name="status"\n [title]="strings.status">\n <status-input\n (select)="form.get(\'status\').setValue($event)"\n [project]="data.project"\n [readonly]="readonly"\n [apiUrl]="apiUrl">\n <input\n formControlName="status"\n [readonly]="readonly">\n </status-input>\n </form-group>\n </div>\n <div class="col-md-4">\n <form-group\n [bindIO]\n name="openAt"\n [title]="strings.openAt">\n <input\n formControlName="openAt"\n bsDatepicker\n [isDisabled]="readonly"\n [readonly]="readonly">\n </form-group>\n </div>\n <div class="col-md-4">\n <form-group\n [bindIO]\n name="closeAt"\n [title]="strings.closeAt">\n <input\n formControlName="closeAt"\n bsDatepicker\n [isDisabled]="readonly"\n [readonly]="readonly">\n </form-group>\n </div>\n </div>\n </prompt-form-modal>\n</form>\n',changeDetection:n.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[]},e.propDecorators={apiUrl:[{type:n.Input}]},e=C([s.BindIoInner(),I("design:paramtypes",[])],e)}(o.BasePromptFormModalComponent),X=function(t){function e(e,n,r,i,s){var c=t.call(this,i.fork(a.Task),e,a.Task)||this;return c.errorsExtractor=n,c.translateService=r,c.dynamicRepository=i,c.tasksConfig=s,c.autoload=!1,c.modalItem={component:Q},c.title=o.translate("Tasks"),c.project=undefined,c}return f(e,t),e.prototype.ngOnInit=function(){var t=this;this.mockedItems||this.useRest(h({apiUrl:this.apiUrl},this.tasksConfig,{autoload:this.autoload})),this.mockedItems&&this.useMock(h({items:this.mockedItems},this.tasksConfig,{autoload:this.autoload})),this.items$=this.repository.items$.pipe(u.map(function(e){return e.map(function(e){return e.project=t.project,e})}))},e.prototype.onChangeFilter=function(e){e=e||{},this.project?(e.project=this.project.id,this.mockedItems=undefined):this.mockedItems=[],this.ngOnInit(),t.prototype.onChangeFilter.call(this,e)},e.prototype.defaultCreateCreateModal=function(e){return(e=e||new a.Task).project=this.project,this.modalCreate=h({},this.modalCreate,{initialState:h({},this.modalCreate.initialState,{data:e})}),t.prototype.defaultCreateCreateModal.call(this,e)},e.prototype.defaultCreateUpdateModal=function(e){return e.project=this.project,this.modalUpdate=h({},this.modalUpdate,{initialState:h({},this.modalUpdate.initialState,{data:e})}),t.prototype.defaultCreateUpdateModal.call(this,e)},e.decorators=[{type:n.Component,args:[{selector:"tasks-grid",template:"<entity-grid\n [bindIO]\n [columns]=\"['title','range','status','action']\"\n [enableCreate]=\"'add_task' | perm:false | async\"\n [enableUpdate]=\"'change_task' | perm:false | async\"\n [enableDelete]=\"'delete_task' | perm:false | async\">\n</entity-grid>\n",changeDetection:n.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:o.ModalsService},{type:o.ErrorsExtractor},{type:r.TranslateService},{type:i.DynamicRepository},{type:undefined,decorators:[{type:n.Inject,args:[a.TASKS_CONFIG_TOKEN]}]}]},e.propDecorators={autoload:[{type:n.Input}],modalItem:[{type:n.Input}],title:[{type:n.Input}],project:[{type:n.Input}]},e=C([s.BindIoInner(),I("design:paramtypes",[o.ModalsService,o.ErrorsExtractor,r.TranslateService,i.DynamicRepository,Object])],e)}(o.BaseEntityListComponent),Y=function(t){function e(){var e=t.call(this)||this;return e.apiUrl=undefined,e}return f(e,t),e.decorators=[{type:n.Component,args:[{selector:"tasks-grid-modal",template:'<entity-grid-modal [bindIO]>\n <tasks-grid\n [apiUrl]="apiUrl"\n #grid>\n </tasks-grid>\n</entity-grid-modal>\n',changeDetection:n.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[]},e.propDecorators={grid:[{type:n.ViewChild,args:["grid"]}],apiUrl:[{type:n.Input}]},e=C([s.BindIoInner(),I("design:paramtypes",[])],e)}(o.BaseEntityListModalComponent),Z=function(t){function e(e,r,a,i,s){var c=t.call(this,e,r,a,i,s)||this;return c.errorsExtractor=r,c.translateService=a,c.dynamicRepository=i,c.tasksConfig=s,c.modalAppendFromGrid={component:Y,initialState:{title:o.translate("Select task"),yesTitle:o.translate("Select")}},c.select=new n.EventEmitter,c}return f(e,t),e.prototype.ngOnInit=function(){var t=this;this.mockedItems=[],this.useMock(h({items:this.mockedItems},this.tasksConfig)),this.mockedItemsChange.subscribe(function(e){return t.onSelect(e[0])})},e.prototype.onSelect=function(t){this.select.emit(t)},e.decorators=[{type:n.Component,args:[{selector:"task-input",template:'<entity-input\n [readonly]="readonly"\n (select)="onAppendFromGridClick($event)">\n <ng-content></ng-content>\n</entity-input>\n',changeDetection:n.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:o.ModalsService},{type:o.ErrorsExtractor},{type:r.TranslateService},{type:i.DynamicRepository},{type:undefined,decorators:[{type:n.Inject,args:[a.TASKS_CONFIG_TOKEN]}]}]},e.propDecorators={modalAppendFromGrid:[{type:n.Input}],select:[{type:n.Output}]},e=C([s.BindIoInner(),I("design:paramtypes",[o.ModalsService,o.ErrorsExtractor,r.TranslateService,i.DynamicRepository,Object])],e)}(X),tt=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,c.PromptFormModalModule,m.BsDatepickerModule,J,y.TypeaheadModule.forRoot(),s.NgxBindIOModule],declarations:[Q],entryComponents:[Q],exports:[Q,c.PromptFormModalModule,m.BsDatepickerModule,H]}]}],t}(),et=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,c.WebModalsModule,c.EntityGridModule,tt,s.NgxBindIOModule],declarations:[X],exports:[X,c.EntityGridModule,tt]}]}],t}(),nt=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,c.EntityGridModalModule,et,s.NgxBindIOModule],declarations:[Y],entryComponents:[Y],exports:[Y,c.EntityGridModalModule,et]}]}],t}(),ot=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,c.EntityInputModule,nt,s.NgxBindIOModule],declarations:[Z],exports:[Z,c.EntityInputModule,nt]}]}],t}(),rt=function(t){function e(e,n,o,r,a){var i=t.call(this,e,n,o,r,a)||this;return i.errorsExtractor=n,i.translateService=o,i.dynamicRepository=r,i.tasksConfig=a,i.searchField=new d.FormControl,i.nameField="title",i}return f(e,t),e.prototype.ngOnInit=function(){this.mockedItems||this.useRest(h({apiUrl:this.apiUrl},this.tasksConfig,{paginationMeta:{perPage:1e3}})),this.mockedItems&&this.useMock(h({items:this.mockedItems},this.tasksConfig))},e.prototype.checkChange=function(t,e){return e instanceof a.Task},e.decorators=[{type:n.Component,args:[{selector:"task-select",template:"<entity-select [bindIO]>\n <ng-content></ng-content>\n</entity-select>\n",changeDetection:n.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:o.ModalsService},{type:o.ErrorsExtractor},{type:r.TranslateService},{type:i.DynamicRepository},{type:undefined,decorators:[{type:n.Inject,args:[a.TASKS_CONFIG_TOKEN]}]}]},e.propDecorators={searchField:[{type:n.Input}]},e=C([s.BindIoInner(),I("design:paramtypes",[o.ModalsService,o.ErrorsExtractor,r.TranslateService,i.DynamicRepository,Object])],e)}(X),at=function(){function t(){}return t.decorators=[{type:n.NgModule,args:[{imports:[e.CommonModule,c.EntitySelectModule,nt,s.NgxBindIOModule],declarations:[rt],exports:[rt,c.EntitySelectModule,nt]}]}],t}();t.ProjectInputComponent=k,t.ProjectInputModule=V,t.ProjectModalComponent=O,t.ProjectModalModule=w,t.ProjectSelectComponent=L,t.ProjectSelectModule=$,t.ProjectStatusesGridComponent=G,t.ProjectStatusesGridModule=R,t.ProjectUserModalComponent=_,t.ProjectUserModalModule=F,t.ProjectUsersGridComponent=A,t.ProjectUsersGridModule=B,t.ProjectsGridComponent=j,t.ProjectsGridModalComponent=E,t.ProjectsGridModalModule=q,t.ProjectsGridModule=K,t.RuI18n=M,t.RuckenTodoWebModule=b,t.StatusInputComponent=W,t.StatusInputModule=J,t.StatusModalComponent=D,t.StatusModalModule=P,t.StatusSelectComponent=z,t.StatusSelectModule=H,t.StatusesGridComponent=x,t.StatusesGridModalComponent=T,t.StatusesGridModalModule=U,t.StatusesGridModule=N,t.TaskInputComponent=Z,t.TaskInputModule=ot,t.TaskModalComponent=Q,t.TaskModalModule=tt,t.TaskSelectComponent=rt,t.TaskSelectModule=at,t.TasksGridComponent=X,t.TasksGridModalComponent=Y,t.TasksGridModalModule=nt,t.TasksGridModule=et,Object.defineProperty(t,"__esModule",{value:!0})}); //# sourceMappingURL=rucken-todo-web.umd.min.js.map