UNPKG

@rucken/todo-web

Version:

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

128 lines 11.1 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { ChangeDetectionStrategy, Component, Inject, Input } from '@angular/core'; import { TranslateService } from '@ngx-translate/core'; import { BaseEntityListComponent, ErrorsExtractor, ModalsService, translate, UserPermPipe } from '@rucken/core'; import { Project, PROJECTS_CONFIG_TOKEN } from '@rucken/todo-core'; import { DynamicRepository } from 'ngx-repository'; import { ProjectModalComponent } from '../project-modal/project-modal.component'; import { BindIoInner } from 'ngx-bind-io'; let ProjectsGridComponent = class ProjectsGridComponent extends BaseEntityListComponent { /** * @param {?} modalsService * @param {?} errorsExtractor * @param {?} translateService * @param {?} dynamicRepository * @param {?} projectsConfig * @param {?=} userPermPipe */ constructor(modalsService, errorsExtractor, translateService, dynamicRepository, projectsConfig, userPermPipe) { super(dynamicRepository.fork(Project), modalsService, Project); this.errorsExtractor = errorsExtractor; this.translateService = translateService; this.dynamicRepository = dynamicRepository; this.projectsConfig = projectsConfig; this.userPermPipe = userPermPipe; this.autoload = false; this.modalItem = { component: ProjectModalComponent, class: 'modal-lg' }; this.modalDelete = { class: 'modal-md' }; this.title = translate('Projects'); } /** * @return {?} */ ngOnInit() { if (!this.mockedItems) { this.useRest(Object.assign({ apiUrl: this.apiUrl }, this.projectsConfig, { autoload: this.autoload })); } if (this.mockedItems) { this.useMock(Object.assign({ items: this.mockedItems }, this.projectsConfig, { autoload: this.autoload })); } } /** * @param {?} item * @return {?} */ onDblClick(item) { if (this.userPermPipe.transform(item)) { this.onUpdateClick(item); } else { this.onViewClick(item); } } }; ProjectsGridComponent.decorators = [ { type: 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: ChangeDetectionStrategy.OnPush }] } ]; /** @nocollapse */ ProjectsGridComponent.ctorParameters = () => [ { type: ModalsService }, { type: ErrorsExtractor }, { type: TranslateService }, { type: DynamicRepository }, { type: undefined, decorators: [{ type: Inject, args: [PROJECTS_CONFIG_TOKEN,] }] }, { type: UserPermPipe } ]; ProjectsGridComponent.propDecorators = { autoload: [{ type: Input }], modalItem: [{ type: Input }], modalDelete: [{ type: Input }], title: [{ type: Input }] }; ProjectsGridComponent = tslib_1.__decorate([ BindIoInner(), tslib_1.__metadata("design:paramtypes", [ModalsService, ErrorsExtractor, TranslateService, DynamicRepository, Object, UserPermPipe]) ], ProjectsGridComponent); export { ProjectsGridComponent }; if (false) { /** @type {?} */ ProjectsGridComponent.prototype.autoload; /** @type {?} */ ProjectsGridComponent.prototype.modalItem; /** @type {?} */ ProjectsGridComponent.prototype.modalDelete; /** @type {?} */ ProjectsGridComponent.prototype.title; /** * @type {?} * @protected */ ProjectsGridComponent.prototype.errorsExtractor; /** * @type {?} * @protected */ ProjectsGridComponent.prototype.translateService; /** * @type {?} * @protected */ ProjectsGridComponent.prototype.dynamicRepository; /** * @type {?} * @protected */ ProjectsGridComponent.prototype.projectsConfig; /** * @type {?} * @protected */ ProjectsGridComponent.prototype.userPermPipe; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdHMtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcnVja2VuL3RvZG8td2ViLyIsInNvdXJjZXMiOlsibGliL2VudGl0aWVzL3Byb2plY3RzL3Byb2plY3RzLWdyaWQvcHJvamVjdHMtZ3JpZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixlQUFlLEVBRWYsYUFBYSxFQUNiLFNBQVMsRUFDVCxZQUFZLEVBQ2IsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0lBUTdCLHFCQUFxQixTQUFyQixxQkFBc0IsU0FBUSx1QkFBZ0M7Ozs7Ozs7OztJQWN6RSxZQUNFLGFBQTRCLEVBQ2xCLGVBQWdDLEVBQ2hDLGdCQUFrQyxFQUNsQyxpQkFBb0MsRUFFcEMsY0FBNkMsRUFDN0MsWUFBMkI7UUFFckMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBVSxPQUFPLENBQUMsRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFQOUQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUVwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBK0I7UUFDN0MsaUJBQVksR0FBWixZQUFZLENBQWU7UUFuQnZDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsY0FBUyxHQUE0QjtZQUNuQyxTQUFTLEVBQUUscUJBQXFCO1lBQ2hDLEtBQUssRUFBRSxVQUFVO1NBQ2xCLENBQUM7UUFFRixnQkFBVyxHQUFHO1lBQ1osS0FBSyxFQUFFLFVBQVU7U0FDbEIsQ0FBQztRQUVGLFVBQUssR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7SUFXOUIsQ0FBQzs7OztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNyQixJQUFJLENBQUMsT0FBTyxpQkFDVixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sSUFDaEIsSUFBSSxDQUFDLGNBQWMsSUFDdEIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLElBQ3ZCLENBQUM7U0FDSjtRQUNELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsT0FBTyxpQkFDVixLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsSUFDcEIsSUFBSSxDQUFDLGNBQWMsSUFDdEIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLElBQ3ZCLENBQUM7U0FDSjtJQUNILENBQUM7Ozs7O0lBQ0QsVUFBVSxDQUFDLElBQWE7UUFDdEIsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFCO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztDQUNGLENBQUE7O1lBckRBLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsOHlDQUE2QztnQkFDN0MsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7Ozs7WUFkQyxhQUFhO1lBRmIsZUFBZTtZQUhSLGdCQUFnQjtZQVVoQixpQkFBaUI7NENBNkJyQixNQUFNLFNBQUMscUJBQXFCO1lBaEMvQixZQUFZOzs7dUJBY1gsS0FBSzt3QkFFTCxLQUFLOzBCQUtMLEtBQUs7b0JBSUwsS0FBSzs7QUFaSyxxQkFBcUI7SUFOakMsV0FBVyxFQUFFOzZDQXFCSyxhQUFhO1FBQ0QsZUFBZTtRQUNkLGdCQUFnQjtRQUNmLGlCQUFpQixVQUdyQixZQUFZO0dBckI1QixxQkFBcUIsQ0FnRGpDO1NBaERZLHFCQUFxQjs7O0lBQ2hDLHlDQUNpQjs7SUFDakIsMENBSUU7O0lBQ0YsNENBR0U7O0lBQ0Ysc0NBQzhCOzs7OztJQUc1QixnREFBMEM7Ozs7O0lBQzFDLGlEQUE0Qzs7Ozs7SUFDNUMsa0RBQThDOzs7OztJQUM5QywrQ0FDdUQ7Ozs7O0lBQ3ZELDZDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmFzZUVudGl0eUxpc3RDb21wb25lbnQsXG4gIEVycm9yc0V4dHJhY3RvcixcbiAgSUJhc2VFbnRpdHlNb2RhbE9wdGlvbnMsXG4gIE1vZGFsc1NlcnZpY2UsXG4gIHRyYW5zbGF0ZSxcbiAgVXNlclBlcm1QaXBlXG59IGZyb20gJ0BydWNrZW4vY29yZSc7XG5pbXBvcnQgeyBQcm9qZWN0LCBQUk9KRUNUU19DT05GSUdfVE9LRU4gfSBmcm9tICdAcnVja2VuL3RvZG8tY29yZSc7XG5pbXBvcnQgeyBEeW5hbWljUmVwb3NpdG9yeSwgSVJlc3RQcm92aWRlck9wdGlvbnMgfSBmcm9tICduZ3gtcmVwb3NpdG9yeSc7XG5pbXBvcnQgeyBQcm9qZWN0TW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9wcm9qZWN0LW1vZGFsL3Byb2plY3QtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEJpbmRJb0lubmVyIH0gZnJvbSAnbmd4LWJpbmQtaW8nO1xuXG5AQmluZElvSW5uZXIoKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJvamVjdHMtZ3JpZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9qZWN0cy1ncmlkLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUHJvamVjdHNHcmlkQ29tcG9uZW50IGV4dGVuZHMgQmFzZUVudGl0eUxpc3RDb21wb25lbnQ8UHJvamVjdD4gaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBhdXRvbG9hZCA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBtb2RhbEl0ZW06IElCYXNlRW50aXR5TW9kYWxPcHRpb25zID0ge1xuICAgIGNvbXBvbmVudDogUHJvamVjdE1vZGFsQ29tcG9uZW50LFxuICAgIGNsYXNzOiAnbW9kYWwtbGcnXG4gIH07XG4gIEBJbnB1dCgpXG4gIG1vZGFsRGVsZXRlID0ge1xuICAgIGNsYXNzOiAnbW9kYWwtbWQnXG4gIH07XG4gIEBJbnB1dCgpXG4gIHRpdGxlID0gdHJhbnNsYXRlKCdQcm9qZWN0cycpO1xuICBjb25zdHJ1Y3RvcihcbiAgICBtb2RhbHNTZXJ2aWNlOiBNb2RhbHNTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBlcnJvcnNFeHRyYWN0b3I6IEVycm9yc0V4dHJhY3RvcixcbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgZHluYW1pY1JlcG9zaXRvcnk6IER5bmFtaWNSZXBvc2l0b3J5LFxuICAgIEBJbmplY3QoUFJPSkVDVFNfQ09ORklHX1RPS0VOKVxuICAgIHByb3RlY3RlZCBwcm9qZWN0c0NvbmZpZzogSVJlc3RQcm92aWRlck9wdGlvbnM8UHJvamVjdD4sXG4gICAgcHJvdGVjdGVkIHVzZXJQZXJtUGlwZT86IFVzZXJQZXJtUGlwZVxuICApIHtcbiAgICBzdXBlcihkeW5hbWljUmVwb3NpdG9yeS5mb3JrPFByb2plY3Q+KFByb2plY3QpLCBtb2RhbHNTZXJ2aWNlLCBQcm9qZWN0KTtcbiAgfVxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMubW9ja2VkSXRlbXMpIHtcbiAgICAgIHRoaXMudXNlUmVzdCh7XG4gICAgICAgIGFwaVVybDogdGhpcy5hcGlVcmwsXG4gICAgICAgIC4uLnRoaXMucHJvamVjdHNDb25maWcsXG4gICAgICAgIGF1dG9sb2FkOiB0aGlzLmF1dG9sb2FkXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMubW9ja2VkSXRlbXMpIHtcbiAgICAgIHRoaXMudXNlTW9jayh7XG4gICAgICAgIGl0ZW1zOiB0aGlzLm1vY2tlZEl0ZW1zLFxuICAgICAgICAuLi50aGlzLnByb2plY3RzQ29uZmlnLFxuICAgICAgICBhdXRvbG9hZDogdGhpcy5hdXRvbG9hZFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIG9uRGJsQ2xpY2soaXRlbTogUHJvamVjdCkge1xuICAgIGlmICh0aGlzLnVzZXJQZXJtUGlwZS50cmFuc2Zvcm0oaXRlbSkpIHtcbiAgICAgIHRoaXMub25VcGRhdGVDbGljayhpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vblZpZXdDbGljayhpdGVtKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==