@rucken/todo-web
Version:
Base components and ui for todo application maked on Angular7+ and based on Rucken template
130 lines • 11.4 kB
JavaScript
/**
* @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';
var ProjectsGridComponent = /** @class */ (function (_super) {
tslib_1.__extends(ProjectsGridComponent, _super);
function ProjectsGridComponent(modalsService, errorsExtractor, translateService, dynamicRepository, projectsConfig, userPermPipe) {
var _this = _super.call(this, dynamicRepository.fork(Project), modalsService, Project) || this;
_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 _this;
}
/**
* @return {?}
*/
ProjectsGridComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
if (!this.mockedItems) {
this.useRest(tslib_1.__assign({ apiUrl: this.apiUrl }, this.projectsConfig, { autoload: this.autoload }));
}
if (this.mockedItems) {
this.useMock(tslib_1.__assign({ items: this.mockedItems }, this.projectsConfig, { autoload: this.autoload }));
}
};
/**
* @param {?} item
* @return {?}
*/
ProjectsGridComponent.prototype.onDblClick = /**
* @param {?} item
* @return {?}
*/
function (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 = function () { return [
{ 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);
return ProjectsGridComponent;
}(BaseEntityListComponent));
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdHMtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcnVja2VuL3RvZG8td2ViLyIsInNvdXJjZXMiOlsibGliL2VudGl0aWVzL3Byb2plY3RzL3Byb2plY3RzLWdyaWQvcHJvamVjdHMtZ3JpZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixlQUFlLEVBRWYsYUFBYSxFQUNiLFNBQVMsRUFDVCxZQUFZLEVBQ2IsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDOztJQVFDLGlEQUFnQztJQWN6RSwrQkFDRSxhQUE0QixFQUNsQixlQUFnQyxFQUNoQyxnQkFBa0MsRUFDbEMsaUJBQW9DLEVBRXBDLGNBQTZDLEVBQzdDLFlBQTJCO1FBUHZDLFlBU0Usa0JBQU0saUJBQWlCLENBQUMsSUFBSSxDQUFVLE9BQU8sQ0FBQyxFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUMsU0FDeEU7UUFSVyxxQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsc0JBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx1QkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBRXBDLG9CQUFjLEdBQWQsY0FBYyxDQUErQjtRQUM3QyxrQkFBWSxHQUFaLFlBQVksQ0FBZTtRQW5CdkMsY0FBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixlQUFTLEdBQTRCO1lBQ25DLFNBQVMsRUFBRSxxQkFBcUI7WUFDaEMsS0FBSyxFQUFFLFVBQVU7U0FDbEIsQ0FBQztRQUVGLGlCQUFXLEdBQUc7WUFDWixLQUFLLEVBQUUsVUFBVTtTQUNsQixDQUFDO1FBRUYsV0FBSyxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQzs7SUFXOUIsQ0FBQzs7OztJQUNELHdDQUFROzs7SUFBUjtRQUNFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxPQUFPLG9CQUNWLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxJQUNoQixJQUFJLENBQUMsY0FBYyxJQUN0QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFDdkIsQ0FBQztTQUNKO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxPQUFPLG9CQUNWLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxJQUNwQixJQUFJLENBQUMsY0FBYyxJQUN0QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFDdkIsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7Ozs7SUFDRCwwQ0FBVTs7OztJQUFWLFVBQVcsSUFBYTtRQUN0QixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUI7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEI7SUFDSCxDQUFDOztnQkFwREYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6Qiw4eUNBQTZDO29CQUM3QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7Ozs7Z0JBZEMsYUFBYTtnQkFGYixlQUFlO2dCQUhSLGdCQUFnQjtnQkFVaEIsaUJBQWlCO2dEQTZCckIsTUFBTSxTQUFDLHFCQUFxQjtnQkFoQy9CLFlBQVk7OzsyQkFjWCxLQUFLOzRCQUVMLEtBQUs7OEJBS0wsS0FBSzt3QkFJTCxLQUFLOztJQVpLLHFCQUFxQjtRQU5qQyxXQUFXLEVBQUU7aURBcUJLLGFBQWE7WUFDRCxlQUFlO1lBQ2QsZ0JBQWdCO1lBQ2YsaUJBQWlCLFVBR3JCLFlBQVk7T0FyQjVCLHFCQUFxQixDQWdEakM7SUFBRCw0QkFBQztDQUFBLENBaEQwQyx1QkFBdUIsR0FnRGpFO1NBaERZLHFCQUFxQjs7O0lBQ2hDLHlDQUNpQjs7SUFDakIsMENBSUU7O0lBQ0YsNENBR0U7O0lBQ0Ysc0NBQzhCOzs7OztJQUc1QixnREFBMEM7Ozs7O0lBQzFDLGlEQUE0Qzs7Ozs7SUFDNUMsa0RBQThDOzs7OztJQUM5QywrQ0FDdUQ7Ozs7O0lBQ3ZELDZDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmFzZUVudGl0eUxpc3RDb21wb25lbnQsXG4gIEVycm9yc0V4dHJhY3RvcixcbiAgSUJhc2VFbnRpdHlNb2RhbE9wdGlvbnMsXG4gIE1vZGFsc1NlcnZpY2UsXG4gIHRyYW5zbGF0ZSxcbiAgVXNlclBlcm1QaXBlXG59IGZyb20gJ0BydWNrZW4vY29yZSc7XG5pbXBvcnQgeyBQcm9qZWN0LCBQUk9KRUNUU19DT05GSUdfVE9LRU4gfSBmcm9tICdAcnVja2VuL3RvZG8tY29yZSc7XG5pbXBvcnQgeyBEeW5hbWljUmVwb3NpdG9yeSwgSVJlc3RQcm92aWRlck9wdGlvbnMgfSBmcm9tICduZ3gtcmVwb3NpdG9yeSc7XG5pbXBvcnQgeyBQcm9qZWN0TW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9wcm9qZWN0LW1vZGFsL3Byb2plY3QtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEJpbmRJb0lubmVyIH0gZnJvbSAnbmd4LWJpbmQtaW8nO1xuXG5AQmluZElvSW5uZXIoKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJvamVjdHMtZ3JpZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9qZWN0cy1ncmlkLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUHJvamVjdHNHcmlkQ29tcG9uZW50IGV4dGVuZHMgQmFzZUVudGl0eUxpc3RDb21wb25lbnQ8UHJvamVjdD4gaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBhdXRvbG9hZCA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBtb2RhbEl0ZW06IElCYXNlRW50aXR5TW9kYWxPcHRpb25zID0ge1xuICAgIGNvbXBvbmVudDogUHJvamVjdE1vZGFsQ29tcG9uZW50LFxuICAgIGNsYXNzOiAnbW9kYWwtbGcnXG4gIH07XG4gIEBJbnB1dCgpXG4gIG1vZGFsRGVsZXRlID0ge1xuICAgIGNsYXNzOiAnbW9kYWwtbWQnXG4gIH07XG4gIEBJbnB1dCgpXG4gIHRpdGxlID0gdHJhbnNsYXRlKCdQcm9qZWN0cycpO1xuICBjb25zdHJ1Y3RvcihcbiAgICBtb2RhbHNTZXJ2aWNlOiBNb2RhbHNTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBlcnJvcnNFeHRyYWN0b3I6IEVycm9yc0V4dHJhY3RvcixcbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgZHluYW1pY1JlcG9zaXRvcnk6IER5bmFtaWNSZXBvc2l0b3J5LFxuICAgIEBJbmplY3QoUFJPSkVDVFNfQ09ORklHX1RPS0VOKVxuICAgIHByb3RlY3RlZCBwcm9qZWN0c0NvbmZpZzogSVJlc3RQcm92aWRlck9wdGlvbnM8UHJvamVjdD4sXG4gICAgcHJvdGVjdGVkIHVzZXJQZXJtUGlwZT86IFVzZXJQZXJtUGlwZVxuICApIHtcbiAgICBzdXBlcihkeW5hbWljUmVwb3NpdG9yeS5mb3JrPFByb2plY3Q+KFByb2plY3QpLCBtb2RhbHNTZXJ2aWNlLCBQcm9qZWN0KTtcbiAgfVxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMubW9ja2VkSXRlbXMpIHtcbiAgICAgIHRoaXMudXNlUmVzdCh7XG4gICAgICAgIGFwaVVybDogdGhpcy5hcGlVcmwsXG4gICAgICAgIC4uLnRoaXMucHJvamVjdHNDb25maWcsXG4gICAgICAgIGF1dG9sb2FkOiB0aGlzLmF1dG9sb2FkXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMubW9ja2VkSXRlbXMpIHtcbiAgICAgIHRoaXMudXNlTW9jayh7XG4gICAgICAgIGl0ZW1zOiB0aGlzLm1vY2tlZEl0ZW1zLFxuICAgICAgICAuLi50aGlzLnByb2plY3RzQ29uZmlnLFxuICAgICAgICBhdXRvbG9hZDogdGhpcy5hdXRvbG9hZFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIG9uRGJsQ2xpY2soaXRlbTogUHJvamVjdCkge1xuICAgIGlmICh0aGlzLnVzZXJQZXJtUGlwZS50cmFuc2Zvcm0oaXRlbSkpIHtcbiAgICAgIHRoaXMub25VcGRhdGVDbGljayhpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vblZpZXdDbGljayhpdGVtKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==