tnx-shared 5.0.59 → 5.0.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,10 @@
1
- import { Pipe } from '@angular/core';
1
+ import { Inject, LOCALE_ID, Pipe } from '@angular/core';
2
+ import * as moment_ from 'moment';
3
+ const moment = moment_;
2
4
  export class TnDatePipe {
5
+ constructor(format) {
6
+ this.format = format;
7
+ }
3
8
  addZero(value) {
4
9
  if (value < 10)
5
10
  return `0${value}`;
@@ -8,6 +13,8 @@ export class TnDatePipe {
8
13
  transform(value, args) {
9
14
  if (value == null)
10
15
  return '';
16
+ if (this.format)
17
+ return moment(value).format(this.format);
11
18
  let date = new Date(value);
12
19
  return `${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}:${this.addZero(date.getSeconds())}, Ngày ${this.addZero(date.getDate())}/${this.addZero(date.getMonth() + 1)}/${date.getFullYear()}`;
13
20
  }
@@ -17,4 +24,7 @@ TnDatePipe.decorators = [
17
24
  name: 'tnDate'
18
25
  },] }
19
26
  ];
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG4tZGF0ZS5waXBlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbInBpcGVzL3RuLWRhdGUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUtwRCxNQUFNLE9BQU8sVUFBVTtJQUNuQixPQUFPLENBQUMsS0FBSztRQUNULElBQUksS0FBSyxHQUFHLEVBQUU7WUFDVixPQUFPLElBQUksS0FBSyxFQUFFLENBQUM7UUFDdkIsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUNELFNBQVMsQ0FBQyxLQUFVLEVBQUUsSUFBVTtRQUM1QixJQUFJLEtBQUssSUFBSSxJQUFJO1lBQ2IsT0FBTyxFQUFFLENBQUM7UUFDZCxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFVBQVUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztJQUNyTixDQUFDOzs7WUFkSixJQUFJLFNBQUM7Z0JBQ0YsSUFBSSxFQUFFLFFBQVE7YUFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgICBuYW1lOiAndG5EYXRlJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVG5EYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgYWRkWmVybyh2YWx1ZSkge1xyXG4gICAgICAgIGlmICh2YWx1ZSA8IDEwKVxyXG4gICAgICAgICAgICByZXR1cm4gYDAke3ZhbHVlfWA7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgYXJncz86IGFueSk6IGFueSB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwpXHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcclxuICAgICAgICByZXR1cm4gYCR7dGhpcy5hZGRaZXJvKGRhdGUuZ2V0SG91cnMoKSl9OiR7dGhpcy5hZGRaZXJvKGRhdGUuZ2V0TWludXRlcygpKX06JHt0aGlzLmFkZFplcm8oZGF0ZS5nZXRTZWNvbmRzKCkpfSwgTmfDoHkgJHt0aGlzLmFkZFplcm8oZGF0ZS5nZXREYXRlKCkpfS8ke3RoaXMuYWRkWmVybyhkYXRlLmdldE1vbnRoKCkgKyAxKX0vJHtkYXRlLmdldEZ1bGxZZWFyKCl9YDtcclxuICAgIH1cclxufVxyXG4iXX0=
27
+ TnDatePipe.ctorParameters = () => [
28
+ { type: undefined, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }
29
+ ];
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG4tZGF0ZS5waXBlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbInBpcGVzL3RuLWRhdGUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQztBQUt2QixNQUFNLE9BQU8sVUFBVTtJQUNuQixZQUF1QyxNQUFZO1FBQVosV0FBTSxHQUFOLE1BQU0sQ0FBTTtJQUNuRCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEtBQUs7UUFDVCxJQUFJLEtBQUssR0FBRyxFQUFFO1lBQ1YsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFDRCxTQUFTLENBQUMsS0FBVSxFQUFFLElBQVU7UUFDNUIsSUFBSSxLQUFLLElBQUksSUFBSTtZQUNiLE9BQU8sRUFBRSxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsTUFBTTtZQUNYLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxVQUFVLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7SUFDck4sQ0FBQzs7O1lBbEJKLElBQUksU0FBQztnQkFDRixJQUFJLEVBQUUsUUFBUTthQUNqQjs7OzRDQUVnQixNQUFNLFNBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgTE9DQUxFX0lELCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcclxuY29uc3QgbW9tZW50ID0gbW9tZW50XztcclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICd0bkRhdGUnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbkRhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KExPQ0FMRV9JRCkgcHJpdmF0ZSBmb3JtYXQ/OiBhbnkpIHtcclxuICAgIH1cclxuICAgIGFkZFplcm8odmFsdWUpIHtcclxuICAgICAgICBpZiAodmFsdWUgPCAxMClcclxuICAgICAgICAgICAgcmV0dXJuIGAwJHt2YWx1ZX1gO1xyXG4gICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xyXG4gICAgfVxyXG4gICAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGFyZ3M/OiBhbnkpOiBhbnkge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKVxyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0KVxyXG4gICAgICAgICAgICByZXR1cm4gbW9tZW50KHZhbHVlKS5mb3JtYXQodGhpcy5mb3JtYXQpO1xyXG4gICAgICAgIGxldCBkYXRlID0gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgICAgIHJldHVybiBgJHt0aGlzLmFkZFplcm8oZGF0ZS5nZXRIb3VycygpKX06JHt0aGlzLmFkZFplcm8oZGF0ZS5nZXRNaW51dGVzKCkpfToke3RoaXMuYWRkWmVybyhkYXRlLmdldFNlY29uZHMoKSl9LCBOZ8OgeSAke3RoaXMuYWRkWmVybyhkYXRlLmdldERhdGUoKSl9LyR7dGhpcy5hZGRaZXJvKGRhdGUuZ2V0TW9udGgoKSArIDEpfS8ke2RhdGUuZ2V0RnVsbFllYXIoKX1gO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { DatePipe, Location, DecimalPipe, CommonModule, registerLocaleData, APP_BASE_HREF } from '@angular/common';
2
- import { InjectionToken, ɵɵdefineInjectable, ɵɵinject, Injectable, Optional, Inject, INJECTOR, Injector, Directive, Input, Component, EventEmitter, ElementRef, ViewChild, Output, ContentChildren, TemplateRef, ComponentFactoryResolver, ApplicationRef, ContentChild, ChangeDetectorRef, forwardRef, Renderer2, HostListener, isDevMode, ChangeDetectionStrategy, ViewEncapsulation, NgZone, Pipe, NgModule, LOCALE_ID, NgModuleFactory, Compiler } from '@angular/core';
2
+ import { InjectionToken, ɵɵdefineInjectable, ɵɵinject, Injectable, Optional, Inject, INJECTOR, Injector, Directive, Input, Component, EventEmitter, ElementRef, ViewChild, Output, ContentChildren, TemplateRef, ComponentFactoryResolver, ApplicationRef, ContentChild, ChangeDetectorRef, forwardRef, Renderer2, HostListener, isDevMode, ChangeDetectionStrategy, ViewEncapsulation, NgZone, Pipe, LOCALE_ID, NgModule, NgModuleFactory, Compiler } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
4
4
  import { TranslateService, TranslateModule, TranslateLoader } from '@ngx-translate/core';
5
5
  import { AngularSplitModule } from 'angular-split';
@@ -17374,7 +17374,7 @@ class CrudListComponent extends ComponentBase {
17374
17374
  for (const col of colHasPipe) {
17375
17375
  for (const item of dataSource) {
17376
17376
  this.transform(col.pipe, col.asyncPipe, item[col.field]).then(rs => {
17377
- item[`pipe__${col.field} `] = rs;
17377
+ item[`pipe__${col.field}`] = rs;
17378
17378
  });
17379
17379
  }
17380
17380
  }
@@ -18316,8 +18316,17 @@ class DataListBase extends ComponentBase {
18316
18316
  return __awaiter(this, void 0, void 0, function* () {
18317
18317
  });
18318
18318
  }
18319
+ validateEdit(rowData) {
18320
+ return __awaiter(this, void 0, void 0, function* () {
18321
+ return true;
18322
+ });
18323
+ }
18319
18324
  _edit(rowData, scopeDataEdit = {}) {
18320
18325
  return __awaiter(this, void 0, void 0, function* () {
18326
+ const resultValidate = yield this.validateEdit(rowData);
18327
+ if (!resultValidate) {
18328
+ return;
18329
+ }
18321
18330
  const flashShow = rowData[KeyFlashShow];
18322
18331
  delete rowData[KeyFlashShow];
18323
18332
  this.formModel.formState = FormState.EDIT;
@@ -18347,33 +18356,44 @@ class DataListBase extends ComponentBase {
18347
18356
  getPromiseDeleteItem(rowData) {
18348
18357
  return this.setting.baseService.delete(rowData.id);
18349
18358
  }
18359
+ validateDelete(rowData) {
18360
+ return __awaiter(this, void 0, void 0, function* () {
18361
+ return true;
18362
+ });
18363
+ }
18350
18364
  _delete(rowData) {
18351
- if (rowData.__disableDelete) {
18352
- return;
18353
- }
18354
- this._notifierService.showDeleteConfirm().then(rs => {
18355
- if (!rs) {
18365
+ return __awaiter(this, void 0, void 0, function* () {
18366
+ if (rowData.__disableDelete) {
18356
18367
  return;
18357
18368
  }
18358
- if (this.setting.baseService) {
18359
- this.getPromiseDeleteItem(rowData)
18360
- .then(response => {
18361
- if (response.success) {
18362
- if (this.setting.showVersionButton) {
18363
- this.context.fireEvent(ComCtxConstants.COMMON.RELOAD_DATA_VERSION, {}, true);
18369
+ const resultValidate = yield this.validateDelete(rowData);
18370
+ if (!resultValidate) {
18371
+ return;
18372
+ }
18373
+ this._notifierService.showDeleteConfirm().then(rs => {
18374
+ if (!rs) {
18375
+ return;
18376
+ }
18377
+ if (this.setting.baseService) {
18378
+ this.getPromiseDeleteItem(rowData)
18379
+ .then(response => {
18380
+ if (response.success) {
18381
+ if (this.setting.showVersionButton) {
18382
+ this.context.fireEvent(ComCtxConstants.COMMON.RELOAD_DATA_VERSION, {}, true);
18383
+ }
18384
+ else {
18385
+ this._triggerProcessData();
18386
+ }
18387
+ this._notifierService.showDeleteDataSuccess();
18364
18388
  }
18365
18389
  else {
18366
- this._triggerProcessData();
18390
+ this._notifierService.showWarningByReponse(response);
18367
18391
  }
18368
- this._notifierService.showDeleteDataSuccess();
18369
- }
18370
- else {
18371
- this._notifierService.showWarningByReponse(response);
18372
- }
18373
- }, error => {
18374
- this._notifierService.showDeleteDataError();
18375
- });
18376
- }
18392
+ }, error => {
18393
+ this._notifierService.showDeleteDataError();
18394
+ });
18395
+ }
18396
+ });
18377
18397
  });
18378
18398
  }
18379
18399
  getPromiseDeleteItems(items) {
@@ -40085,7 +40105,11 @@ SummaryPipe.decorators = [
40085
40105
  },] }
40086
40106
  ];
40087
40107
 
40108
+ const moment$1 = moment_;
40088
40109
  class TnDatePipe {
40110
+ constructor(format) {
40111
+ this.format = format;
40112
+ }
40089
40113
  addZero(value) {
40090
40114
  if (value < 10)
40091
40115
  return `0${value}`;
@@ -40094,6 +40118,8 @@ class TnDatePipe {
40094
40118
  transform(value, args) {
40095
40119
  if (value == null)
40096
40120
  return '';
40121
+ if (this.format)
40122
+ return moment$1(value).format(this.format);
40097
40123
  let date = new Date(value);
40098
40124
  return `${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}:${this.addZero(date.getSeconds())}, Ngày ${this.addZero(date.getDate())}/${this.addZero(date.getMonth() + 1)}/${date.getFullYear()}`;
40099
40125
  }
@@ -40102,6 +40128,9 @@ TnDatePipe.decorators = [
40102
40128
  { type: Pipe, args: [{
40103
40129
  name: 'tnDate'
40104
40130
  },] }
40131
+ ];
40132
+ TnDatePipe.ctorParameters = () => [
40133
+ { type: undefined, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }
40105
40134
  ];
40106
40135
 
40107
40136
  class UserFormatPipe {