tnx-shared 5.3.356 → 5.3.358

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.
Files changed (23) hide show
  1. package/bundles/tnx-shared.umd.js +71 -36
  2. package/bundles/tnx-shared.umd.js.map +1 -1
  3. package/bundles/tnx-shared.umd.min.js +1 -1
  4. package/bundles/tnx-shared.umd.min.js.map +1 -1
  5. package/classes/form-schema.d.ts +4 -0
  6. package/classes/form-schema.d.ts.map +1 -1
  7. package/components/entity-picker/entity-picker-box/entity-picker-box.component.d.ts +2 -1
  8. package/components/entity-picker/entity-picker-box/entity-picker-box.component.d.ts.map +1 -1
  9. package/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.d.ts +3 -2
  10. package/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.d.ts.map +1 -1
  11. package/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.d.ts +3 -2
  12. package/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.d.ts.map +1 -1
  13. package/components/entity-picker/entity-picker.component.d.ts +1 -0
  14. package/components/entity-picker/entity-picker.component.d.ts.map +1 -1
  15. package/esm2015/classes/form-schema.js +2 -1
  16. package/esm2015/components/entity-picker/entity-picker-box/entity-picker-box.component.js +4 -3
  17. package/esm2015/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.js +10 -5
  18. package/esm2015/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.js +8 -3
  19. package/esm2015/components/entity-picker/entity-picker.component.js +10 -2
  20. package/fesm2015/tnx-shared.js +26 -6
  21. package/fesm2015/tnx-shared.js.map +1 -1
  22. package/package.json +2 -2
  23. package/tnx-shared.metadata.json +1 -1
@@ -1697,6 +1697,7 @@
1697
1697
  _this.showEditLink = true;
1698
1698
  _this.titleUnPicked = 'Danh sách các mục chưa chọn';
1699
1699
  _this.titlePicked = 'Danh sách các mục đã chọn';
1700
+ _this.fieldsPicked = null;
1700
1701
  for (var key in init) {
1701
1702
  _this[key] = init[key];
1702
1703
  }
@@ -46908,14 +46909,14 @@
46908
46909
  this.onPick.emit(data);
46909
46910
  };
46910
46911
  EntityPickerDataComponent.prototype.pickAll = function () {
46911
- var _a;
46912
+ var _a, _b;
46912
46913
  return __awaiter(this, void 0, void 0, function () {
46913
46914
  var lstData;
46914
- return __generator(this, function (_b) {
46915
- switch (_b.label) {
46916
- case 0: return [4 /*yield*/, this.setting.baseService.getDataCustomRoute(this.plusUrl, this.currentGridInfo.filters, this.control.valueField, this.currentGridInfo.sorts, -1)];
46915
+ return __generator(this, function (_c) {
46916
+ switch (_c.label) {
46917
+ case 0: return [4 /*yield*/, this.setting.baseService.getDataCustomRoute(this.plusUrl, this.currentGridInfo.filters, (_a = this.control.fieldsPicked) !== null && _a !== void 0 ? _a : this.control.valueField, this.currentGridInfo.sorts, -1)];
46917
46918
  case 1:
46918
- lstData = (_a = (_b.sent()).data) !== null && _a !== void 0 ? _a : [];
46919
+ lstData = (_b = (_c.sent()).data) !== null && _b !== void 0 ? _b : [];
46919
46920
  if (lstData.length) {
46920
46921
  this.onPickAll.emit(lstData);
46921
46922
  }
@@ -46930,8 +46931,8 @@
46930
46931
  EntityPickerDataComponent.prototype.modifyGridInfo = function (gridInfo) {
46931
46932
  return __awaiter(this, void 0, void 0, function () {
46932
46933
  var allow;
46933
- return __generator(this, function (_b) {
46934
- switch (_b.label) {
46934
+ return __generator(this, function (_c) {
46935
+ switch (_c.label) {
46935
46936
  case 0:
46936
46937
  gridInfo.fields = this.advanceData.fields;
46937
46938
  if (this.control.multiple) {
@@ -46946,20 +46947,20 @@
46946
46947
  }
46947
46948
  return [4 /*yield*/, appendDefaultFilter(gridInfo.filters, this.control.defaultFilters)];
46948
46949
  case 1:
46949
- _b.sent();
46950
+ _c.sent();
46950
46951
  if (!this.control.modifyFilter) return [3 /*break*/, 3];
46951
46952
  return [4 /*yield*/, this.control.modifyFilter(gridInfo.filters, this, this.currentNode)];
46952
46953
  case 2:
46953
- allow = _b.sent();
46954
+ allow = _c.sent();
46954
46955
  if (allow === false)
46955
46956
  return [2 /*return*/, false];
46956
- _b.label = 3;
46957
+ _c.label = 3;
46957
46958
  case 3:
46958
46959
  if (!this.control.filterWhileProcess) return [3 /*break*/, 5];
46959
46960
  return [4 /*yield*/, appendDefaultFilter(gridInfo.filters, this.control.filterWhileProcess)];
46960
46961
  case 4:
46961
- _b.sent();
46962
- _b.label = 5;
46962
+ _c.sent();
46963
+ _c.label = 5;
46963
46964
  case 5:
46964
46965
  // if (this.setting.columnSetting.sortField) {
46965
46966
  // gridInfo.sorts.push(<Sort>{
@@ -46978,11 +46979,19 @@
46978
46979
  EntityPickerDataComponent.prototype.beforeRenderDataSource = function (data) {
46979
46980
  return __awaiter(this, void 0, void 0, function () {
46980
46981
  var _this = this;
46981
- return __generator(this, function (_b) {
46982
- data.forEach(function (item) {
46983
- item._dropdownvalue = _this.control.valueField;
46984
- });
46985
- return [2 /*return*/];
46982
+ return __generator(this, function (_c) {
46983
+ switch (_c.label) {
46984
+ case 0:
46985
+ data.forEach(function (item) {
46986
+ item._dropdownvalue = _this.control.valueField;
46987
+ });
46988
+ if (!this.control.beforeRenderDataSourceUnPicked) return [3 /*break*/, 2];
46989
+ return [4 /*yield*/, this.control.beforeRenderDataSourceUnPicked(data, this)];
46990
+ case 1:
46991
+ _c.sent();
46992
+ _c.label = 2;
46993
+ case 2: return [2 /*return*/, data];
46994
+ }
46986
46995
  });
46987
46996
  });
46988
46997
  };
@@ -46990,14 +46999,14 @@
46990
46999
  return __awaiter(this, void 0, void 0, function () {
46991
47000
  var filterCheckExist, lstDataCheckExist_1;
46992
47001
  var _this = this;
46993
- return __generator(this, function (_b) {
46994
- switch (_b.label) {
47002
+ return __generator(this, function (_c) {
47003
+ switch (_c.label) {
46995
47004
  case 0:
46996
47005
  if (!this.control.afterGetDataUnPicked) return [3 /*break*/, 2];
46997
47006
  return [4 /*yield*/, this.control.afterGetDataUnPicked(this.model.dataSource, this)];
46998
47007
  case 1:
46999
- _b.sent();
47000
- _b.label = 2;
47008
+ _c.sent();
47009
+ _c.label = 2;
47001
47010
  case 2:
47002
47011
  if (!(this.searchData && this.showFormAdvancedSearch
47003
47012
  && this.model.dataSource.length != this.searchData.lstData.length
@@ -47005,12 +47014,12 @@
47005
47014
  filterCheckExist = [this.newFilter(this.searchData.fieldFilter, exports.Operator.in, this.searchData.lstData)];
47006
47015
  return [4 /*yield*/, this.setting.baseService.getAllWithIgnore(filterCheckExist, this.searchData.fieldFilter)];
47007
47016
  case 3:
47008
- lstDataCheckExist_1 = (_b.sent()).data;
47017
+ lstDataCheckExist_1 = (_c.sent()).data;
47009
47018
  this.lstDataNotExist = this.searchData.lstData.filter(function (p) { return !lstDataCheckExist_1.some(function (c) { return c[_this.searchData.fieldFilter] == p; }); });
47010
47019
  return [3 /*break*/, 5];
47011
47020
  case 4:
47012
47021
  this.showFormAdvancedSearch = false;
47013
- _b.label = 5;
47022
+ _c.label = 5;
47014
47023
  case 5: return [2 /*return*/];
47015
47024
  }
47016
47025
  });
@@ -47038,7 +47047,7 @@
47038
47047
  EntityPickerDataComponent.decorators = [
47039
47048
  { type: i0.Component, args: [{
47040
47049
  selector: 'app-entity-picker-data',
47041
- template: "<crud-list #crudList [menuButtons]=\"getMenuButtons\" [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\n [showScrollHorizontal]=\"true\" (onContentInit)=\"onContentInit.emit($event)\" (onReload)=\"_triggerProcessData($event)\"\n (onAdd)=\"_add($event)\" (onRowSelect)=\"handleRowSelect($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\"\n (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\n <ng-template #customTitle>\n <h1 [innerHTML]=\"dom.bypassSecurityTrustHtml(control.titleUnPicked)\"></h1>\n </ng-template>\n <ng-template #toolbar let-crudList=\"crudList\" let-selectedItems=\"selectedItems\">\n <button *ngIf=\"!model.dataSource.length && setting.hiddenAdvanceSearch\" pButton\n style=\"visibility: hidden\"></button>\n <button *ngIf=\"!isSingleSelection && model.total > 0\" type=\"button\" pButton pRipple\n label=\"L\u1EA5y t\u1EA5t c\u1EA3 ({{model.total}})\" icon=\"pi pi-angle-double-right\" class=\"p-button-text p-button-success\"\n [disabled]=\"model.loading\" (click)=\"pickAll()\"></button>\n <button *ngIf=\"!isSingleSelection && selectedItems.length > 0\" type=\"button\" pButton pRipple\n label=\"L\u1EA5y m\u1EE5c \u0111\u00E3 ch\u1ECDn ({{selectedItems.length}})\" icon=\"pi pi-angle-right\"\n class=\"p-button-text p-button-success\" [disabled]=\"model.loading\"\n (click)=\"pickSelected(selectedItems)\"></button>\n <button *ngIf=\"datasourceFieldFilter.length\" type=\"button\" pButton pRipple label=\"T\u00ECm ki\u1EBFm nhi\u1EC1u ng\u01B0\u1EDDi d\u00F9ng\"\n icon=\"pi pi-search\" class=\"p-button-text p-button-primary\" [disabled]=\"model.loading\"\n (click)=\"handleAdvansearch()\"></button>\n <button *ngIf=\"datasourceFieldFilter.length && searchData\" type=\"button\" pButton pRipple\n label=\"X\u00F3a danh s\u00E1ch t\u00ECm ki\u1EBFm\" pTooltip=\"X\u00F3a t\u1EA5t c\u1EA3 ng\u01B0\u1EDDi d\u00F9ng \u1EDF Danh s\u00E1ch t\u00ECm ki\u1EBFm\" icon=\"pi pi-times\"\n class=\"p-button-text p-button-primary\" [disabled]=\"model.loading\" (click)=\"handleSearch(null)\"></button>\n </ng-template>\n <ng-template let-crudList=\"crudList\" #function let-rowData=\"rowData\">\n <button pButton type=\"button\" class=\"link-or-action p-button-success p-button-text p-button-rounded\"\n icon=\"pi pi-check\" pTooltip=\"Ch\u1ECDn m\u1EE5c n\u00E0y\" tooltipPosition=\"top\" [disabled]=\"rowData.disabled\"\n (click)=\"pickEntity(rowData)\"></button>\n </ng-template>\n</crud-list>\n\n\n<tn-dialog *ngIf=\"showFormAdvancedSearch\" #dialog [styleClass]=\"'address-form'\" [header]=\"'T\u00ECm ki\u1EBFm nhi\u1EC1u ng\u01B0\u1EDDi d\u00F9ng'\"\n [popupSize]=\"popupSizeSearchForm\" [maskClass]=\"setting.maskClass\" (onHide)=\"showFormAdvancedSearch = false\">\n <entity-picker-search-form #formBase [parentModel]=\"model\" [parentContext]=\"context\" [parentSetting]=\"setting\"\n [datasourceFieldFilter]=\"datasourceFieldFilter\" [lstDataNotExist]=\"lstDataNotExist\" [model]=\"formModel\"\n (onSearch)=\"handleSearch($event)\" (onCancel)=\"showFormAdvancedSearch = false;\">\n </entity-picker-search-form>\n</tn-dialog>",
47050
+ template: "<crud-list #crudList [templates]=\"templates\" [menuButtons]=\"getMenuButtons\" [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\n [showScrollHorizontal]=\"true\" (onContentInit)=\"onContentInit.emit($event)\" (onReload)=\"_triggerProcessData($event)\"\n (onAdd)=\"_add($event)\" (onRowSelect)=\"handleRowSelect($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\"\n (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\n <ng-template #customTitle>\n <h1 [innerHTML]=\"dom.bypassSecurityTrustHtml(control.titleUnPicked)\"></h1>\n </ng-template>\n <ng-template #toolbar let-crudList=\"crudList\" let-selectedItems=\"selectedItems\">\n <button *ngIf=\"(isSingleSelection || model.total <= 0) && !model.dataSource.length && setting.hiddenAdvanceSearch\" pButton\n style=\"visibility: hidden\"></button>\n <button *ngIf=\"!isSingleSelection && model.total > 0\" type=\"button\" pButton pRipple\n label=\"L\u1EA5y t\u1EA5t c\u1EA3 ({{model.total}})\" icon=\"pi pi-angle-double-right\" class=\"p-button-text p-button-success\"\n [disabled]=\"model.loading\" (click)=\"pickAll()\"></button>\n <button *ngIf=\"!isSingleSelection && selectedItems.length > 0\" type=\"button\" pButton pRipple\n label=\"L\u1EA5y m\u1EE5c \u0111\u00E3 ch\u1ECDn ({{selectedItems.length}})\" icon=\"pi pi-angle-right\"\n class=\"p-button-text p-button-success\" [disabled]=\"model.loading\"\n (click)=\"pickSelected(selectedItems)\"></button>\n <button *ngIf=\"datasourceFieldFilter.length\" type=\"button\" pButton pRipple label=\"T\u00ECm ki\u1EBFm nhi\u1EC1u ng\u01B0\u1EDDi d\u00F9ng\"\n icon=\"pi pi-search\" class=\"p-button-text p-button-primary\" [disabled]=\"model.loading\"\n (click)=\"handleAdvansearch()\"></button>\n <button *ngIf=\"datasourceFieldFilter.length && searchData\" type=\"button\" pButton pRipple\n label=\"X\u00F3a danh s\u00E1ch t\u00ECm ki\u1EBFm\" pTooltip=\"X\u00F3a t\u1EA5t c\u1EA3 ng\u01B0\u1EDDi d\u00F9ng \u1EDF Danh s\u00E1ch t\u00ECm ki\u1EBFm\" icon=\"pi pi-times\"\n class=\"p-button-text p-button-primary\" [disabled]=\"model.loading\" (click)=\"handleSearch(null)\"></button>\n </ng-template>\n <ng-template let-crudList=\"crudList\" #function let-rowData=\"rowData\">\n <button pButton type=\"button\" class=\"link-or-action p-button-success p-button-text p-button-rounded\"\n icon=\"pi pi-check\" pTooltip=\"Ch\u1ECDn m\u1EE5c n\u00E0y\" tooltipPosition=\"top\" [disabled]=\"rowData.disabled\"\n (click)=\"pickEntity(rowData)\"></button>\n </ng-template>\n</crud-list>\n\n\n<tn-dialog *ngIf=\"showFormAdvancedSearch\" #dialog [styleClass]=\"'address-form'\" [header]=\"'T\u00ECm ki\u1EBFm nhi\u1EC1u ng\u01B0\u1EDDi d\u00F9ng'\"\n [popupSize]=\"popupSizeSearchForm\" [maskClass]=\"setting.maskClass\" (onHide)=\"showFormAdvancedSearch = false\">\n <entity-picker-search-form #formBase [parentModel]=\"model\" [parentContext]=\"context\" [parentSetting]=\"setting\"\n [datasourceFieldFilter]=\"datasourceFieldFilter\" [lstDataNotExist]=\"lstDataNotExist\" [model]=\"formModel\"\n (onSearch)=\"handleSearch($event)\" (onCancel)=\"showFormAdvancedSearch = false;\">\n </entity-picker-search-form>\n</tn-dialog>",
47042
47051
  providers: [ComponentContextService],
47043
47052
  styles: ["::ng-deep app-entity-picker-data .custom-card{padding:.5em!important}"]
47044
47053
  },] }
@@ -47049,6 +47058,7 @@
47049
47058
  { type: platformBrowser.DomSanitizer }
47050
47059
  ]; };
47051
47060
  EntityPickerDataComponent.propDecorators = {
47061
+ templates: [{ type: i0.Input }],
47052
47062
  parentSetting: [{ type: i0.Input }],
47053
47063
  advanceData: [{ type: i0.Input }],
47054
47064
  control: [{ type: i0.Input }],
@@ -47240,15 +47250,23 @@
47240
47250
  return __awaiter(this, void 0, void 0, function () {
47241
47251
  var _this = this;
47242
47252
  return __generator(this, function (_b) {
47243
- this.itemCanDeletes = [];
47244
- data.forEach(function (item) {
47245
- _this.funcCheckReadOnlyItem(item);
47246
- item._dropdownvalue = _this.control.valueField;
47247
- if (!item.hiddenCheckBox) {
47248
- _this.itemCanDeletes.push(item);
47249
- }
47250
- });
47251
- return [2 /*return*/];
47253
+ switch (_b.label) {
47254
+ case 0:
47255
+ this.itemCanDeletes = [];
47256
+ data.forEach(function (item) {
47257
+ _this.funcCheckReadOnlyItem(item);
47258
+ item._dropdownvalue = _this.control.valueField;
47259
+ if (!item.hiddenCheckBox) {
47260
+ _this.itemCanDeletes.push(item);
47261
+ }
47262
+ });
47263
+ if (!this.control.beforeRenderDataSourcePicked) return [3 /*break*/, 2];
47264
+ return [4 /*yield*/, this.control.beforeRenderDataSourcePicked(data, this)];
47265
+ case 1:
47266
+ _b.sent();
47267
+ _b.label = 2;
47268
+ case 2: return [2 /*return*/, data];
47269
+ }
47252
47270
  });
47253
47271
  });
47254
47272
  };
@@ -47292,7 +47310,7 @@
47292
47310
  { type: i0.Component, args: [{
47293
47311
  // tslint:disable-next-line: component-selector
47294
47312
  selector: 'app-entity-picker-selected',
47295
- template: "<crud-list #crudList [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\" [showScrollHorizontal]=\"true\"\n (onContentInit)=\"onContentInit.emit($event)\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\"\n (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\" (onDelete)=\"_delete($event)\"\n (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\n <ng-template #customTitle>\n <h1 [innerHTML]=\"dom.bypassSecurityTrustHtml(control.titlePicked)\"></h1>\n </ng-template>\n <ng-template #toolbar let-crudList=\"crudList\" let-selectedItems=\"selectedItems\">\n <button *ngIf=\"!model.dataSource.length && setting.hiddenAdvanceSearch\" pButton\n style=\"visibility: hidden\"></button>\n <button *ngIf=\"itemCanDeletes.length\" type=\"button\" pButton pRipple\n label=\"B\u1ECF t\u1EA5t c\u1EA3 ({{_selectedValue.length}})\" icon=\"pi pi-angle-double-left\"\n class=\"p-button-text p-button-danger\" [disabled]=\"model.loading\" (click)=\"unPickAll()\"></button>\n <button *ngIf=\"selectedItems.length > 0\" type=\"button\" pButton pRipple\n label=\"B\u1ECF m\u1EE5c \u0111\u00E3 ch\u1ECDn ({{selectedItems.length}})\" icon=\"pi pi-angle-left\"\n class=\"p-button-text p-button-danger\" [disabled]=\"model.loading\"\n (click)=\"unPickSelected(selectedItems)\"></button>\n </ng-template>\n\n <ng-template let-crudList=\"crudList\" #function let-rowData=\"rowData\">\n <button *ngIf=\"!rowData.hiddenDelete\" pButton type=\"button\"\n class=\"link-or-action p-button-danger p-button-text p-button-rounded\" icon=\"pi pi-times\"\n pTooltip=\"B\u1ECF ch\u1ECDn m\u1EE5c n\u00E0y\" tooltipPosition=\"top\" (click)=\"unPickEntity(rowData)\"></button>\n </ng-template>\n\n</crud-list>",
47313
+ template: "<crud-list #crudList [templates]=\"templates\" [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\" [showScrollHorizontal]=\"true\"\n (onContentInit)=\"onContentInit.emit($event)\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\"\n (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\" (onDelete)=\"_delete($event)\"\n (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\n <ng-template #customTitle>\n <h1 [innerHTML]=\"dom.bypassSecurityTrustHtml(control.titlePicked)\"></h1>\n </ng-template>\n <ng-template #toolbar let-crudList=\"crudList\" let-selectedItems=\"selectedItems\">\n <button *ngIf=\"!itemCanDeletes.length && !model.dataSource.length && setting.hiddenAdvanceSearch\" pButton\n style=\"visibility: hidden\"></button>\n <button *ngIf=\"itemCanDeletes.length\" type=\"button\" pButton pRipple\n label=\"B\u1ECF t\u1EA5t c\u1EA3 ({{_selectedValue.length}})\" icon=\"pi pi-angle-double-left\"\n class=\"p-button-text p-button-danger\" [disabled]=\"model.loading\" (click)=\"unPickAll()\"></button>\n <button *ngIf=\"selectedItems.length > 0\" type=\"button\" pButton pRipple\n label=\"B\u1ECF m\u1EE5c \u0111\u00E3 ch\u1ECDn ({{selectedItems.length}})\" icon=\"pi pi-angle-left\"\n class=\"p-button-text p-button-danger\" [disabled]=\"model.loading\"\n (click)=\"unPickSelected(selectedItems)\"></button>\n </ng-template>\n\n <ng-template let-crudList=\"crudList\" #function let-rowData=\"rowData\">\n <button *ngIf=\"!rowData.hiddenDelete\" pButton type=\"button\"\n class=\"link-or-action p-button-danger p-button-text p-button-rounded\" icon=\"pi pi-times\"\n pTooltip=\"B\u1ECF ch\u1ECDn m\u1EE5c n\u00E0y\" tooltipPosition=\"top\" (click)=\"unPickEntity(rowData)\"></button>\n </ng-template>\n\n</crud-list>",
47296
47314
  providers: [ComponentContextService],
47297
47315
  styles: ["::ng-deep app-entity-picker-selected .custom-card{padding:.5em .5em 0!important}"]
47298
47316
  },] }
@@ -47302,6 +47320,7 @@
47302
47320
  { type: platformBrowser.DomSanitizer }
47303
47321
  ]; };
47304
47322
  EntityPickerSelectedComponent.propDecorators = {
47323
+ templates: [{ type: i0.Input }],
47305
47324
  parentSetting: [{ type: i0.Input }],
47306
47325
  advanceData: [{ type: i0.Input }],
47307
47326
  control: [{ type: i0.Input }],
@@ -47436,7 +47455,7 @@
47436
47455
  EntityPickerBoxComponent.decorators = [
47437
47456
  { type: i0.Component, args: [{
47438
47457
  selector: 'entity-picker-box',
47439
- template: "<div #el class=\"entityPicker tn-l-entity-picker-box\">\n <div #scrollContainer class=\"p-grid tn-l-entity-picker-box-inner\"\n (scroll)=\"handleScrollContainer($event, el, scrollContainer)\">\n <div class=\"p-col-12\" [ngClass]=\"control.multiple ? 'p-md-6 picker-left' : ''\">\n <app-entity-picker-data *ngIf=\"!control.isTree\" [currentNode]=\"currentNode\" [control]=\"control\" [datasourceFieldFilter]=\"datasourceFieldFilter\"\n [parentSetting]=\"parentSetting\" [advanceData]=\"advanceData\" [selectedValue]=\"selectedValue\"\n [isSingleSelection]=\"!control.multiple\" (onContentInit)=\"onContentLeftInit.emit($event)\"\n (onPick)=\"handlePick($event)\" (onPickSelected)=\"selectEntity($event)\" (onPickAll)=\"selectEntity($event)\"\n (onRowSelect)=\"handleRowSelect($event)\">\n </app-entity-picker-data>\n\n <app-entity-picker-tree-data *ngIf=\"control.isTree\" [currentNode]=\"currentNode\" [control]=\"control\"\n [parentSetting]=\"parentSetting\" [advanceData]=\"advanceData\" [selectedValue]=\"selectedValue\"\n [isSingleSelection]=\"!control.multiple\" (onContentInit)=\"onContentLeftInit.emit($event)\"\n (onPick)=\"handlePick($event)\" (onPickSelected)=\"selectEntity($event)\" (onPickAll)=\"selectEntity($event)\"\n (onRowSelect)=\"handleRowSelect($event)\">\n </app-entity-picker-tree-data>\n </div>\n <div *ngIf=\"control.multiple\" class=\"p-col-12 p-md-6\">\n <app-entity-picker-selected *ngIf=\"!control.isTree\" [control]=\"control\" [parentSetting]=\"parentSetting\"\n [advanceData]=\"advanceData\" [readOnlyValues]=\"readOnlyValues\" [selectedValue]=\"selectedValue\"\n (onContentInit)=\"onContentRightInit.emit($event)\" (onUnPick)=\"handleUnPick($event)\"\n (onUnPickSelected)=\"unSelectEntity($event)\" (onUnPickAll)=\"unSelectEntity($event)\">\n </app-entity-picker-selected>\n\n <app-entity-picker-tree-selected *ngIf=\"control.isTree\" [control]=\"control\" [parentSetting]=\"parentSetting\"\n [advanceData]=\"advanceData\" [readOnlyValues]=\"readOnlyValues\" [selectedValue]=\"selectedValue\"\n (onContentInit)=\"onContentRightInit.emit($event)\" (onUnPick)=\"handleUnPick($event)\"\n (onUnPickSelected)=\"unSelectEntity($event)\" (onUnPickAll)=\"unSelectEntity($event)\">\n </app-entity-picker-tree-selected>\n </div>\n </div>\n\n <ng-container *ngIf=\"isOnMobile && control.multiple\">\n <div class=\"tn-animated-left-arrow-icon\"></div>\n <div class=\"tn-animated-right-arrow-icon\"></div>\n\n <after-view-checked (loaded)=\"toggleArrowIcon(el, scrollContainer)\"></after-view-checked>\n </ng-container>\n</div>",
47458
+ template: "<div #el class=\"entityPicker tn-l-entity-picker-box\">\n <div #scrollContainer class=\"p-grid tn-l-entity-picker-box-inner\"\n (scroll)=\"handleScrollContainer($event, el, scrollContainer)\">\n <div class=\"p-col-12\" [ngClass]=\"control.multiple ? 'p-md-6 picker-left' : ''\">\n <app-entity-picker-data *ngIf=\"!control.isTree\" [currentNode]=\"currentNode\" [control]=\"control\" [datasourceFieldFilter]=\"datasourceFieldFilter\"\n [parentSetting]=\"parentSetting\" [advanceData]=\"advanceData\" [selectedValue]=\"selectedValue\" [templates]=\"templates\"\n [isSingleSelection]=\"!control.multiple\" (onContentInit)=\"onContentLeftInit.emit($event)\"\n (onPick)=\"handlePick($event)\" (onPickSelected)=\"selectEntity($event)\" (onPickAll)=\"selectEntity($event)\"\n (onRowSelect)=\"handleRowSelect($event)\">\n </app-entity-picker-data>\n\n <app-entity-picker-tree-data *ngIf=\"control.isTree\" [currentNode]=\"currentNode\" [control]=\"control\"\n [parentSetting]=\"parentSetting\" [advanceData]=\"advanceData\" [selectedValue]=\"selectedValue\"\n [isSingleSelection]=\"!control.multiple\" (onContentInit)=\"onContentLeftInit.emit($event)\"\n (onPick)=\"handlePick($event)\" (onPickSelected)=\"selectEntity($event)\" (onPickAll)=\"selectEntity($event)\"\n (onRowSelect)=\"handleRowSelect($event)\">\n </app-entity-picker-tree-data>\n </div>\n <div *ngIf=\"control.multiple\" class=\"p-col-12 p-md-6\">\n <app-entity-picker-selected *ngIf=\"!control.isTree\" [control]=\"control\" [parentSetting]=\"parentSetting\"\n [advanceData]=\"advanceData\" [readOnlyValues]=\"readOnlyValues\" [selectedValue]=\"selectedValue\" [templates]=\"templates\"\n (onContentInit)=\"onContentRightInit.emit($event)\" (onUnPick)=\"handleUnPick($event)\"\n (onUnPickSelected)=\"unSelectEntity($event)\" (onUnPickAll)=\"unSelectEntity($event)\">\n </app-entity-picker-selected>\n\n <app-entity-picker-tree-selected *ngIf=\"control.isTree\" [control]=\"control\" [parentSetting]=\"parentSetting\"\n [advanceData]=\"advanceData\" [readOnlyValues]=\"readOnlyValues\" [selectedValue]=\"selectedValue\"\n (onContentInit)=\"onContentRightInit.emit($event)\" (onUnPick)=\"handleUnPick($event)\"\n (onUnPickSelected)=\"unSelectEntity($event)\" (onUnPickAll)=\"unSelectEntity($event)\">\n </app-entity-picker-tree-selected>\n </div>\n </div>\n\n <ng-container *ngIf=\"isOnMobile && control.multiple\">\n <div class=\"tn-animated-left-arrow-icon\"></div>\n <div class=\"tn-animated-right-arrow-icon\"></div>\n\n <after-view-checked (loaded)=\"toggleArrowIcon(el, scrollContainer)\"></after-view-checked>\n </ng-container>\n</div>",
47440
47459
  providers: [ComponentContextService],
47441
47460
  styles: ["::ng-deep entity-picker-box .picker-left{border-right:1px solid #dee2e6}::ng-deep entity-picker-box .tn-l-entity-picker-box{position:relative}::ng-deep entity-picker-box .tn-animated-left-arrow-icon,::ng-deep entity-picker-box .tn-animated-right-arrow-icon{position:absolute;z-index:10;pointer-events:none;top:50%;margin-top:-16px;opacity:0;transition:opacity .24s ease-in-out}::ng-deep entity-picker-box .tn-animated-left-arrow-icon{left:8px}::ng-deep entity-picker-box .tn-animated-right-arrow-icon{right:8px}::ng-deep entity-picker-box .tn-l-entity-picker-box.--show-left-arrow .tn-animated-left-arrow-icon,::ng-deep entity-picker-box .tn-l-entity-picker-box.--show-right-arrow .tn-animated-right-arrow-icon{opacity:1}::ng-deep entity-picker-box .tn-l-entity-picker-box-inner{display:flex;height:100%;margin:0}::ng-deep entity-picker-box app-entity-picker-data .custom-card,::ng-deep entity-picker-box app-entity-picker-selected .custom-card{box-shadow:none}::ng-deep entity-picker-box app-entity-picker-selected .custom-card{padding:.5em!important}@media (max-width:640px){::ng-deep entity-picker-box .picker-left{border-right:unset}::ng-deep entity-picker-box .tn-l-entity-picker-box-inner{flex-wrap:nowrap;overflow:auto}::ng-deep entity-picker-box .p-datatable .p-datatable-tbody tr td.column-function{padding:.5rem}}::ng-deep .entity-picker-box-dialog .p-dialog-content{overflow:hidden;padding:0}@media (max-width:640px){::ng-deep .entity-picker-box-dialog .p-dialog-content{overflow:auto}::ng-deep .entity-picker-box-dialog .tn-dialog-scrollbar>div{min-height:100%!important}}"]
47442
47461
  },] }
@@ -47452,6 +47471,7 @@
47452
47471
  el: [{ type: i0.ViewChild, args: ['el',] }],
47453
47472
  dataComponent: [{ type: i0.ViewChild, args: [EntityPickerDataComponent, { static: false },] }],
47454
47473
  selectedComponent: [{ type: i0.ViewChild, args: [EntityPickerSelectedComponent, { static: false },] }],
47474
+ templates: [{ type: i0.Input }],
47455
47475
  parentSetting: [{ type: i0.Input }],
47456
47476
  advanceData: [{ type: i0.Input }],
47457
47477
  control: [{ type: i0.Input }],
@@ -48233,6 +48253,21 @@
48233
48253
  });
48234
48254
  });
48235
48255
  };
48256
+ EntityPickerComponent.prototype.beforeRenderDataSource = function (data) {
48257
+ return __awaiter(this, void 0, void 0, function () {
48258
+ return __generator(this, function (_a) {
48259
+ switch (_a.label) {
48260
+ case 0:
48261
+ if (!this.control.beforeRenderDataSource) return [3 /*break*/, 2];
48262
+ return [4 /*yield*/, this.control.beforeRenderDataSource(data, this)];
48263
+ case 1:
48264
+ _a.sent();
48265
+ _a.label = 2;
48266
+ case 2: return [2 /*return*/, data];
48267
+ }
48268
+ });
48269
+ });
48270
+ };
48236
48271
  EntityPickerComponent.prototype.afterGetData = function () {
48237
48272
  return __awaiter(this, void 0, void 0, function () {
48238
48273
  return __generator(this, function (_a) {
@@ -48404,7 +48439,7 @@
48404
48439
  EntityPickerComponent.decorators = [
48405
48440
  { type: i0.Component, args: [{
48406
48441
  selector: 'entity-picker',
48407
- template: "<crud-list #crudList [templates]=\"children\" [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\n [hiddenDelete]=\"readOnly\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\"\n (onView)=\"_view($event)\" (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\"\n [showScrollHorizontal]=\"true\" (onReloaded)=\"_unmarkLoading()\" class=\"--no-wrapper-padding\">\n <ng-template #toolbar let-crudList=\"crudList\">\n <button *ngIf=\"!readOnly\" type=\"button\" pButton icon=\"pi pi-external-link\" class=\"p-button-text\"\n [label]=\"control.title\" [disabled]=\"control.disabled\" (click)=\"selectEntity()\"></button>\n <ng-container *ngIf=\"required\">\n <span class=\"star-required\">*</span>\n </ng-container>\n <ng-container *ngIf=\"control.multiple && !readOnly && !setting.hiddenCheckbox\">\n <button type=\"button\" pButton class=\"p-button-warning p-button-text p-button-rounded link-or-action\"\n icon=\"pi pi-trash\" label=\"B\u1ECF m\u1EE5c \u0111\u00E3 ch\u1ECDn\" tooltipPosition=\"top\"\n [disabled]=\"model.selectedItems.length == 0\" (click)=\"handleUnMultiPickEntity()\"></button>\n </ng-container>\n </ng-template>\n <ng-template #function let-crudList=\"crudList\" let-rowData=\"rowData\" let-index=\"index\">\n <div *ngIf=\"!control.rowButtonTemplate && !readOnly\" class=\"p-toolbar-group-center button-group\">\n <ng-container *ngIf=\"control.rowButtonBeforeTemplate\" class=\"p-toolbar-group-center button-group\">\n <ng-container\n *ngTemplateOutlet=\"control.rowButtonBeforeTemplate; context: {rowData: rowData, rowIndex: index, control: control}\">\n </ng-container>\n </ng-container>\n <button type=\"button\" pButton class=\"p-button-warning p-button-text p-button-rounded link-or-action\"\n icon=\"pi pi-trash\" pTooltip=\"B\u1ECF ch\u1ECDn m\u1EE5c n\u00E0y\" tooltipPosition=\"top\"\n (click)=\"handleUnPickEntity(rowData)\"></button>\n </div>\n <div *ngIf=\"control.rowButtonTemplate\" class=\"p-toolbar-group-center button-group\">\n <ng-container\n *ngTemplateOutlet=\"control.rowButtonTemplate; context: {rowData: rowData, rowIndex: index, control: control}\">\n </ng-container>\n </div>\n </ng-template>\n</crud-list>\n<tn-dialog #dialog *ngIf=\"showDetailForm\" styleClass=\"entity-picker-box-dialog no-padding\" [useDefaultScrollBar]=\"true\"\n [header]=\"control.title | translate\" [popupSize]=\"popupSize\" (onHide)=\"handleHide($event)\">\n <entity-picker-box #entityPickerBox [control]=\"control\" [parentSetting]=\"setting\" [advanceData]=\"advanceData\"\n (onRowSelect)=\"handleEntityPickerBoxRowSelect($event)\" [selectedValue]=\"selectedValue\"\n (onChanged)=\"handleChangeEntity($event)\" (onSelect)=\"handleSelectEntity($event)\"\n (onUnSelect)=\"handleUnSelectEntity($event)\" (onDone)=\"handleHide($event)\">\n </entity-picker-box>\n <ng-template #footer>\n <button type=\"button\" pButton class=\"p-button-text\" (click)=\"onClickSubmitButton($event, entityPickerBox)\"\n [label]=\"'Ho\u00E0n th\u00E0nh' | translate\" icon=\"pi pi-check\"></button>\n </ng-template>\n</tn-dialog>",
48442
+ template: "<crud-list #crudList [templates]=\"children\" [model]=\"model\" [setting]=\"setting\" [dataSource]=\"model.dataSource\"\n [hiddenDelete]=\"readOnly\" (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onEdit)=\"_edit($event)\"\n (onView)=\"_view($event)\" (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\"\n [showScrollHorizontal]=\"true\" (onReloaded)=\"_unmarkLoading()\" class=\"--no-wrapper-padding\">\n <ng-template #toolbar let-crudList=\"crudList\">\n <button *ngIf=\"!readOnly\" type=\"button\" pButton icon=\"pi pi-external-link\" class=\"p-button-text\"\n [label]=\"control.title\" [disabled]=\"control.disabled\" (click)=\"selectEntity()\"></button>\n <ng-container *ngIf=\"required\">\n <span class=\"star-required\">*</span>\n </ng-container>\n <ng-container *ngIf=\"control.multiple && !readOnly && !setting.hiddenCheckbox\">\n <button type=\"button\" pButton class=\"p-button-warning p-button-text p-button-rounded link-or-action\"\n icon=\"pi pi-trash\" label=\"B\u1ECF m\u1EE5c \u0111\u00E3 ch\u1ECDn\" tooltipPosition=\"top\"\n [disabled]=\"model.selectedItems.length == 0\" (click)=\"handleUnMultiPickEntity()\"></button>\n </ng-container>\n </ng-template>\n <ng-template #function let-crudList=\"crudList\" let-rowData=\"rowData\" let-index=\"index\">\n <div *ngIf=\"!control.rowButtonTemplate && !readOnly\" class=\"p-toolbar-group-center button-group\">\n <ng-container *ngIf=\"control.rowButtonBeforeTemplate\" class=\"p-toolbar-group-center button-group\">\n <ng-container\n *ngTemplateOutlet=\"control.rowButtonBeforeTemplate; context: {rowData: rowData, rowIndex: index, control: control}\">\n </ng-container>\n </ng-container>\n <button type=\"button\" pButton class=\"p-button-warning p-button-text p-button-rounded link-or-action\"\n icon=\"pi pi-trash\" pTooltip=\"B\u1ECF ch\u1ECDn m\u1EE5c n\u00E0y\" tooltipPosition=\"top\"\n (click)=\"handleUnPickEntity(rowData)\"></button>\n </div>\n <div *ngIf=\"control.rowButtonTemplate\" class=\"p-toolbar-group-center button-group\">\n <ng-container\n *ngTemplateOutlet=\"control.rowButtonTemplate; context: {rowData: rowData, rowIndex: index, control: control}\">\n </ng-container>\n </div>\n </ng-template>\n</crud-list>\n<tn-dialog #dialog *ngIf=\"showDetailForm\" styleClass=\"entity-picker-box-dialog no-padding\" [useDefaultScrollBar]=\"true\"\n [header]=\"control.title | translate\" [popupSize]=\"popupSize\" (onHide)=\"handleHide($event)\">\n <entity-picker-box #entityPickerBox [control]=\"control\" [parentSetting]=\"setting\" [advanceData]=\"advanceData\" [templates]=\"children\"\n (onRowSelect)=\"handleEntityPickerBoxRowSelect($event)\" [selectedValue]=\"selectedValue\"\n (onChanged)=\"handleChangeEntity($event)\" (onSelect)=\"handleSelectEntity($event)\"\n (onUnSelect)=\"handleUnSelectEntity($event)\" (onDone)=\"handleHide($event)\">\n </entity-picker-box>\n <ng-template #footer>\n <button type=\"button\" pButton class=\"p-button-text\" (click)=\"onClickSubmitButton($event, entityPickerBox)\"\n [label]=\"'Ho\u00E0n th\u00E0nh' | translate\" icon=\"pi pi-check\"></button>\n </ng-template>\n</tn-dialog>",
48408
48443
  providers: [
48409
48444
  {
48410
48445
  provide: forms.NG_VALUE_ACCESSOR,