UNPKG

@rucken/todo-core

Version:

Core with base class and entities for todo application maked on Angular7+ and based on Rucken template

670 lines (646 loc) 28.1 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@rucken/core'), require('class-transformer'), require('ngx-repository'), require('class-validator'), require('luxon')) : typeof define === 'function' && define.amd ? define('@rucken/todo-core', ['exports', '@angular/common', '@angular/core', '@rucken/core', 'class-transformer', 'ngx-repository', 'class-validator', 'luxon'], factory) : (global = global || self, factory((global.rucken = global.rucken || {}, global.rucken['todo-core'] = {}), global.ng.common, global.ng.core, global.core$1, global.classTransformer, global.ngxRepository, global.classValidator, global.luxon)); }(this, function (exports, common, core, core$1, classTransformer, ngxRepository, classValidator, luxon) { 'use strict'; /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ /* global Reflect, Promise */ var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; function __extends(d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } var __assign = function() { __assign = Object.assign || function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; function __decorate(decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; } function __metadata(metadataKey, metadataValue) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); } function __read(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; } function __spread() { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; } /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ var RuI18n = { Id: 'Ид.', Title: 'Заголовок', Description: 'Описание', 'Is public': 'Публичный', 'Created at': 'Дата создания', 'Updated at': 'Дата изменения', Statuses: 'Статусы', Tasks: 'Задачи', Users: 'Пользователи', 'Completed tasks': 'Выполненные задачи', 'Add new project': 'Добавить проект', 'Project #{{id}}': 'Проекта #{{id}}', 'Update project #{{id}}': 'Редактирование проекта #{{id}}', 'Delete project #{{id}}': 'Удалить проект #{{id}}', 'Do you really want to delete project?': 'Вы действительно хотите удалить этот проект?', Yes: 'Да', No: 'Нет', Project: 'Проект', Name: 'Наименование', 'Add new status': 'Создание нового статуса', 'Status #{{id}}': 'Статус #{{id}}', 'Update status #{{id}}': 'Изменить статус #{{id}}', 'Delete status #{{id}}': 'Удалить статус #{{id}}', 'Do you really want to delete status?': 'Вы действительно хотите удалить статус?', Status: 'Статус', 'Open at': 'Дата открытия', 'Close at': 'Дата закрытия', 'Task time': 'Время задачи', 'Created user': 'Создал', 'Updated user': 'Обновил', 'Assigned user': 'Пользователь', 'Add new task': 'Создание новой задачи', 'Task #{{id}}': 'Задача #{{id}}', 'Update task #{{id}}': 'Изменить задачу #{{id}}', 'Delete task #{{id}}': 'Удалить задачу #{{id}}', 'Do you really want to delete task?': 'Вы действительно хотите удалить задачу?', Russian: 'Русский', English: 'Английский' }; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var Status = /** @class */ (function () { function Status() { this.id = undefined; this.name = undefined; this.title = undefined; this.createdAt = undefined; this.updatedAt = undefined; } /** * @return {?} */ Status.prototype.toString = /** * @return {?} */ function () { return this.title; }; Status.strings = { id: core$1.translate('Id'), name: core$1.translate('Name'), title: core$1.translate('Title'), project: core$1.translate('Project'), createdAt: core$1.translate('Created at'), updatedAt: core$1.translate('Updated at'), createTitle: core$1.translate('Add new status'), viewTitle: core$1.translate('Status #{{id}}'), updateTitle: core$1.translate('Update status #{{id}}'), deleteTitle: core$1.translate('Delete status #{{id}}'), deleteMessage: core$1.translate('Do you really want to delete status?') }; __decorate([ classValidator.IsNotEmpty(), __metadata("design:type", String) ], Status.prototype, "name", void 0); __decorate([ classTransformer.Transform(core$1.transformStringToDate, { toClassOnly: true }), classTransformer.Transform(core$1.transformDateToString, { toPlainOnly: true }), __metadata("design:type", Object) ], Status.prototype, "createdAt", void 0); __decorate([ classTransformer.Transform(core$1.transformStringToDate, { toClassOnly: true }), classTransformer.Transform(core$1.transformDateToString, { toPlainOnly: true }), __metadata("design:type", Object) ], Status.prototype, "updatedAt", void 0); return Status; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var Project = /** @class */ (function () { function Project() { this.id = undefined; this.completedTasksCount = undefined; this.tasksCount = undefined; this.title = undefined; this.description = undefined; this.isPublic = undefined; this.createdAt = undefined; this.updatedAt = undefined; this.statuses = []; this.users = []; this.createdUser = undefined; this.updatedUser = undefined; } Object.defineProperty(Project.prototype, "isPublicAsString", { get: /** * @return {?} */ function () { if (this.isPublic) { return core$1.translate('Yes'); } else { return core$1.translate('No'); } }, enumerable: true, configurable: true }); Object.defineProperty(Project.prototype, "usersAsString", { get: /** * @return {?} */ function () { return this.users.join(', '); }, enumerable: true, configurable: true }); Object.defineProperty(Project.prototype, "statusesAsString", { get: /** * @return {?} */ function () { return this.statuses.join(', '); }, enumerable: true, configurable: true }); /** * @return {?} */ Project.prototype.toString = /** * @return {?} */ function () { return this.title; }; Project.strings = { id: core$1.translate('Id'), title: core$1.translate('Title'), description: core$1.translate('Description'), isPublic: core$1.translate('Is public'), createdAt: core$1.translate('Created at'), updatedAt: core$1.translate('Updated at'), statuses: core$1.translate('Statuses'), tasks: core$1.translate('Tasks'), users: core$1.translate('Users'), completedTasksCount: core$1.translate('Completed tasks'), tasksCount: core$1.translate('Tasks'), createTitle: core$1.translate('Add new project'), viewTitle: core$1.translate('Project #{{id}}'), updateTitle: core$1.translate('Update project #{{id}}'), deleteTitle: core$1.translate('Delete project #{{id}}'), deleteMessage: core$1.translate('Do you really want to delete project?') }; __decorate([ classValidator.IsNotEmpty(), __metadata("design:type", String) ], Project.prototype, "title", void 0); __decorate([ classTransformer.Transform(core$1.transformStringToDate, { toClassOnly: true }), classTransformer.Transform(core$1.transformDateToString, { toPlainOnly: true }), __metadata("design:type", Object) ], Project.prototype, "createdAt", void 0); __decorate([ classTransformer.Transform(core$1.transformStringToDate, { toClassOnly: true }), classTransformer.Transform(core$1.transformDateToString, { toPlainOnly: true }), __metadata("design:type", Object) ], Project.prototype, "updatedAt", void 0); __decorate([ classValidator.IsOptional(), classTransformer.Type(core$1.serializeModel(Status)), __metadata("design:type", Array) ], Project.prototype, "statuses", void 0); __decorate([ classValidator.IsOptional(), classTransformer.Type(core$1.serializeModel(core$1.User)), __metadata("design:type", Array) ], Project.prototype, "users", void 0); __decorate([ classTransformer.Type(core$1.serializeModel(core$1.User)), classTransformer.Transform(core$1.transformStringToObject, { toPlainOnly: true }), __metadata("design:type", core$1.User) ], Project.prototype, "createdUser", void 0); __decorate([ classTransformer.Type(core$1.serializeModel(core$1.User)), classTransformer.Transform(core$1.transformStringToObject, { toPlainOnly: true }), __metadata("design:type", core$1.User) ], Project.prototype, "updatedUser", void 0); return Project; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ var DEFAULT_PROJECTS_CONFIG = { name: 'project', pluralName: 'projects', autoload: true, paginationMeta: { perPage: 5 }, actionOptions: { responseData: (/** * @param {?} data * @param {?} action * @return {?} */ function (data, action) { if (action === ngxRepository.ProviderActionEnum.Delete) { return true; } else { if (action === ngxRepository.ProviderActionEnum.LoadAll) { return classTransformer.plainToClass(Project, data && data.body && data.body.projects); } else { return classTransformer.plainToClass(Project, data && data.body && data.body.project); } } }), responsePaginationMeta: (/** * @param {?} data * @param {?} action * @return {?} */ function (data, action) { return { totalResults: data && data.body && data.body.meta && data.body.meta.totalResults, perPage: undefined }; }) }, restOptions: { limitQueryParam: 'per_page', pageQueryParam: 'cur_page', searchTextQueryParam: 'q' } }; /** @type {?} */ var PROJECTS_CONFIG_TOKEN = 'ProjectsConfig'; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ var DEFAULT_STATUSES_CONFIG = { name: 'status', pluralName: 'statuses', autoload: true, paginationMeta: { perPage: 5 }, actionOptions: { responseData: (/** * @param {?} data * @param {?} action * @return {?} */ function (data, action) { if (action === ngxRepository.ProviderActionEnum.Delete) { return true; } else { if (action === ngxRepository.ProviderActionEnum.LoadAll) { return classTransformer.plainToClass(Status, data && data.body && data.body.statuses); } else { return classTransformer.plainToClass(Status, data && data.body && data.body.status); } } }), responsePaginationMeta: (/** * @param {?} data * @param {?} action * @return {?} */ function (data, action) { return { totalResults: data && data.body && data.body.meta && data.body.meta.totalResults, perPage: undefined }; }) }, restOptions: { limitQueryParam: 'per_page', pageQueryParam: 'cur_page', searchTextQueryParam: 'q' } }; /** @type {?} */ var STATUSES_CONFIG_TOKEN = 'StatusesConfig'; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var Task = /** @class */ (function () { function Task() { this.id = undefined; this.project = undefined; this.title = undefined; this.description = undefined; this.status = undefined; this.openAt = undefined; this.closeAt = undefined; this.createdAt = undefined; this.updatedAt = undefined; this.createdUser = undefined; this.updatedUser = undefined; this.assignedUser = undefined; } /** * @return {?} */ Task.prototype.toString = /** * @return {?} */ function () { return this.title; }; Object.defineProperty(Task.prototype, "range", { get: /** * @return {?} */ function () { /** @type {?} */ var arr = []; if (this.openAt) { if (!this.closeAt) { arr.push(' >= '); } arr.push((typeof this.openAt === 'string' ? luxon.DateTime.fromISO(String(this.openAt)) : luxon.DateTime.fromJSDate((/** @type {?} */ (this.openAt)))).toLocaleString()); } if (this.openAt && this.closeAt) { arr.push(' - '); } if (this.closeAt) { if (!this.openAt) { arr.push(' <= '); } arr.push((typeof this.closeAt === 'string' ? luxon.DateTime.fromISO(String(this.closeAt)) : luxon.DateTime.fromJSDate((/** @type {?} */ (this.closeAt)))).toLocaleString()); } return arr.join(''); }, enumerable: true, configurable: true }); Task.strings = { id: core$1.translate('Id'), project: core$1.translate('Project'), title: core$1.translate('Title'), description: core$1.translate('Description'), status: core$1.translate('Status'), openAt: core$1.translate('Open at'), closeAt: core$1.translate('Close at'), createdAt: core$1.translate('Created at'), updatedAt: core$1.translate('Updated at'), range: core$1.translate('Task time'), createdUser: core$1.translate('Created user'), updatedUser: core$1.translate('Updated user'), assignedUser: core$1.translate('Assigned user'), createTitle: core$1.translate('Add new task'), viewTitle: core$1.translate('Task #{{id}}'), updateTitle: core$1.translate('Update task #{{id}}'), deleteTitle: core$1.translate('Delete task #{{id}}'), deleteMessage: core$1.translate('Do you really want to delete task?') }; __decorate([ classValidator.IsNotEmpty(), classTransformer.Type(core$1.serializeModel(Project)), classTransformer.Transform(core$1.transformStringToObject, { toPlainOnly: true }), __metadata("design:type", Project) ], Task.prototype, "project", void 0); __decorate([ classValidator.IsNotEmpty(), __metadata("design:type", String) ], Task.prototype, "title", void 0); __decorate([ classValidator.IsNotEmpty(), classTransformer.Type(core$1.serializeModel(Status)), classTransformer.Transform(core$1.transformStringToObject, { toPlainOnly: true }), __metadata("design:type", Status) ], Task.prototype, "status", void 0); __decorate([ classTransformer.Transform(core$1.transformStringToDate, { toClassOnly: true }), classTransformer.Transform(core$1.transformDateToString, { toPlainOnly: true }), __metadata("design:type", Object) ], Task.prototype, "openAt", void 0); __decorate([ classTransformer.Transform(core$1.transformStringToDate, { toClassOnly: true }), classTransformer.Transform(core$1.transformDateToString, { toPlainOnly: true }), __metadata("design:type", Object) ], Task.prototype, "closeAt", void 0); __decorate([ classTransformer.Transform(core$1.transformStringToDate, { toClassOnly: true }), classTransformer.Transform(core$1.transformDateToString, { toPlainOnly: true }), __metadata("design:type", Object) ], Task.prototype, "createdAt", void 0); __decorate([ classTransformer.Transform(core$1.transformStringToDate, { toClassOnly: true }), classTransformer.Transform(core$1.transformDateToString, { toPlainOnly: true }), __metadata("design:type", Object) ], Task.prototype, "updatedAt", void 0); __decorate([ classTransformer.Type(core$1.serializeModel(core$1.User)), classTransformer.Transform(core$1.transformStringToObject, { toPlainOnly: true }), __metadata("design:type", core$1.User) ], Task.prototype, "createdUser", void 0); __decorate([ classTransformer.Type(core$1.serializeModel(core$1.User)), classTransformer.Transform(core$1.transformStringToObject, { toPlainOnly: true }), __metadata("design:type", core$1.User) ], Task.prototype, "updatedUser", void 0); __decorate([ classTransformer.Type(core$1.serializeModel(core$1.User)), classTransformer.Transform(core$1.transformStringToObject, { toPlainOnly: true }), __metadata("design:type", core$1.User) ], Task.prototype, "assignedUser", void 0); return Task; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ var DEFAULT_TASKS_CONFIG = { name: 'task', pluralName: 'tasks', autoload: true, paginationMeta: { perPage: 5 }, actionOptions: { responseData: (/** * @param {?} data * @param {?} action * @return {?} */ function (data, action) { if (action === ngxRepository.ProviderActionEnum.Delete) { return true; } else { if (action === ngxRepository.ProviderActionEnum.LoadAll) { return classTransformer.plainToClass(Task, data && data.body && data.body.tasks); } else { return classTransformer.plainToClass(Task, data && data.body && data.body.task); } } }), responsePaginationMeta: (/** * @param {?} data * @param {?} action * @return {?} */ function (data, action) { return { totalResults: data && data.body && data.body.meta && data.body.meta.totalResults, perPage: undefined }; }) }, restOptions: { limitQueryParam: 'per_page', pageQueryParam: 'cur_page', searchTextQueryParam: 'q' } }; /** @type {?} */ var TASKS_CONFIG_TOKEN = 'TasksConfig'; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ var ENTITIES_PROVIDERS = [ { provide: PROJECTS_CONFIG_TOKEN, useValue: DEFAULT_PROJECTS_CONFIG }, { provide: STATUSES_CONFIG_TOKEN, useValue: DEFAULT_STATUSES_CONFIG }, { provide: TASKS_CONFIG_TOKEN, useValue: DEFAULT_TASKS_CONFIG } ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var ɵ0 = { title: core$1.translate('Russian'), code: 'ru', translations: [RuI18n] }, ɵ1 = { title: core$1.translate('English'), code: 'en', translations: [] }; var RuckenTodoCoreModule = /** @class */ (function () { function RuckenTodoCoreModule() { } RuckenTodoCoreModule.decorators = [ { type: core.NgModule, args: [{ imports: [common.CommonModule], providers: __spread([ { provide: core$1.LANGUAGES_ITEM_CONFIG_TOKEN, useValue: ɵ0, multi: true }, { provide: core$1.LANGUAGES_ITEM_CONFIG_TOKEN, useValue: ɵ1, multi: true } ], ENTITIES_PROVIDERS) },] } ]; return RuckenTodoCoreModule; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var StatusWithProject = /** @class */ (function (_super) { __extends(StatusWithProject, _super); function StatusWithProject() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.project = undefined; return _this; } StatusWithProject.strings = __assign({}, Status.strings, { project: core$1.translate('Project') }); __decorate([ classTransformer.Type(core$1.serializeModel(Project)), classTransformer.Transform(core$1.transformStringToObject, { toPlainOnly: true }), __metadata("design:type", Project) ], StatusWithProject.prototype, "project", void 0); return StatusWithProject; }(Status)); exports.DEFAULT_PROJECTS_CONFIG = DEFAULT_PROJECTS_CONFIG; exports.DEFAULT_STATUSES_CONFIG = DEFAULT_STATUSES_CONFIG; exports.DEFAULT_TASKS_CONFIG = DEFAULT_TASKS_CONFIG; exports.ENTITIES_PROVIDERS = ENTITIES_PROVIDERS; exports.PROJECTS_CONFIG_TOKEN = PROJECTS_CONFIG_TOKEN; exports.Project = Project; exports.RuI18n = RuI18n; exports.RuckenTodoCoreModule = RuckenTodoCoreModule; exports.STATUSES_CONFIG_TOKEN = STATUSES_CONFIG_TOKEN; exports.Status = Status; exports.StatusWithProject = StatusWithProject; exports.TASKS_CONFIG_TOKEN = TASKS_CONFIG_TOKEN; exports.Task = Task; Object.defineProperty(exports, '__esModule', { value: true }); })); //# sourceMappingURL=rucken-todo-core.umd.js.map