tnx-shared 5.3.303 → 5.3.305

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 (27) hide show
  1. package/bundles/tnx-shared.umd.js +76 -84
  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 +2 -0
  6. package/classes/form-schema.d.ts.map +1 -1
  7. package/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.d.ts +3 -1
  8. package/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.d.ts.map +1 -1
  9. package/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.d.ts +3 -1
  10. package/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.d.ts.map +1 -1
  11. package/components/entity-picker/entity-picker-dialog/components/entity-picker-tree-data/entity-picker-tree-data.component.d.ts +3 -1
  12. package/components/entity-picker/entity-picker-dialog/components/entity-picker-tree-data/entity-picker-tree-data.component.d.ts.map +1 -1
  13. package/components/entity-picker/entity-picker-dialog/components/entity-picker-tree-selected/entity-picker-tree-selected.component.d.ts +3 -1
  14. package/components/entity-picker/entity-picker-dialog/components/entity-picker-tree-selected/entity-picker-tree-selected.component.d.ts.map +1 -1
  15. package/esm2015/classes/form-schema.js +3 -1
  16. package/esm2015/components/entity-picker/entity-picker-dialog/components/entity-picker-data/entity-picker-data.component.js +7 -4
  17. package/esm2015/components/entity-picker/entity-picker-dialog/components/entity-picker-selected/entity-picker-selected.component.js +7 -4
  18. package/esm2015/components/entity-picker/entity-picker-dialog/components/entity-picker-tree-data/entity-picker-tree-data.component.js +7 -4
  19. package/esm2015/components/entity-picker/entity-picker-dialog/components/entity-picker-tree-selected/entity-picker-tree-selected.component.js +7 -4
  20. package/esm2015/components/entity-picker/entity-picker.component.js +1 -1
  21. package/esm2015/services/master-data.service.js +3 -16
  22. package/fesm2015/tnx-shared.js +25 -28
  23. package/fesm2015/tnx-shared.js.map +1 -1
  24. package/package.json +2 -2
  25. package/services/master-data.service.d.ts +0 -1
  26. package/services/master-data.service.d.ts.map +1 -1
  27. package/tnx-shared.metadata.json +1 -1
@@ -1668,6 +1668,8 @@
1668
1668
  _this.rowButtonBeforeTemplate = null;
1669
1669
  _this.hiddenPageSetting = false;
1670
1670
  _this.showEditLink = true;
1671
+ _this.titleUnPicked = 'Danh sách các mục chưa chọn';
1672
+ _this.titlePicked = 'Danh sách các mục đã chọn';
1671
1673
  for (var key in init) {
1672
1674
  _this[key] = init[key];
1673
1675
  }
@@ -6282,14 +6284,12 @@
6282
6284
  var MasterDataService = /** @class */ (function () {
6283
6285
  function MasterDataService(_httpClient, _commonService, _injector, _storageUpdatedService, _moduleConfigService) {
6284
6286
  var _this = this;
6285
- var _a, _b;
6286
6287
  this._httpClient = _httpClient;
6287
6288
  this._commonService = _commonService;
6288
6289
  this._injector = _injector;
6289
6290
  this._storageUpdatedService = _storageUpdatedService;
6290
6291
  this._moduleConfigService = _moduleConfigService;
6291
6292
  this.setupSignalr = false;
6292
- this.isDisabledGetCache = false;
6293
6293
  this.storage = localStorage;
6294
6294
  this.categoryPrefix = 'cat_';
6295
6295
  this.categoryGroupPrefix = 'cat_group_';
@@ -6298,14 +6298,13 @@
6298
6298
  this.env = this._moduleConfigService.getConfig().environment;
6299
6299
  this.apiEndpoint = this.env.apiDomain.commonMasterDataEndpoint;
6300
6300
  this.apiVersion = this.env.apiVersion;
6301
- this.isDisabledGetCache = (_b = (_a = this.env.cauHinhNghiepVu) === null || _a === void 0 ? void 0 : _a.isDisabledGetCacheCommonMasterdata) !== null && _b !== void 0 ? _b : false;
6302
6301
  this.groupCategoryEndpoint = this.apiEndpoint + "/" + this.apiVersion + "/Groupcategory";
6303
6302
  this.singleCategoryEndpoint = this.apiEndpoint + "/" + this.apiVersion + "/SingleCategory";
6304
6303
  if (!this.setupSignalr) {
6305
6304
  this._storageUpdatedService.subscribeChangedLocalStorage('cat_*', function (data) { return __awaiter(_this, void 0, void 0, function () {
6306
6305
  var dataObj, dataSource_1, content, groupCode, result, groupCode, result;
6307
- return __generator(this, function (_c) {
6308
- switch (_c.label) {
6306
+ return __generator(this, function (_a) {
6307
+ switch (_a.label) {
6309
6308
  case 0:
6310
6309
  if (typeof data == 'string') {
6311
6310
  dataObj = JSON.parse(data);
@@ -6320,19 +6319,19 @@
6320
6319
  groupCode = dataObj.message.content.replace(this.categoryGroupPrefix, '');
6321
6320
  return [4 /*yield*/, this.getGroupItemByCode(groupCode)];
6322
6321
  case 1:
6323
- result = _c.sent();
6322
+ result = _a.sent();
6324
6323
  this.storage.setItem("" + this.categoryGroupPrefix + groupCode, JSON.stringify(result.data));
6325
6324
  return [3 /*break*/, 4];
6326
6325
  case 2:
6327
6326
  groupCode = dataObj.message.content.replace(this.categoryPrefix, '');
6328
6327
  return [4 /*yield*/, this.doGetAll(groupCode)];
6329
6328
  case 3:
6330
- result = _c.sent();
6329
+ result = _a.sent();
6331
6330
  result.data.forEach(function (element) {
6332
6331
  dataSource_1.push({ id: element.id, code: element.code, name: element.name });
6333
6332
  });
6334
6333
  this.storage.setItem("" + this.categoryPrefix + groupCode, JSON.stringify(dataSource_1));
6335
- _c.label = 4;
6334
+ _a.label = 4;
6336
6335
  case 4: return [2 /*return*/];
6337
6336
  }
6338
6337
  });
@@ -6343,13 +6342,13 @@
6343
6342
  MasterDataService.prototype.getAllByGroupCode = function (groupCode) {
6344
6343
  return __awaiter(this, void 0, void 0, function () {
6345
6344
  var dataSource, result;
6346
- return __generator(this, function (_c) {
6347
- switch (_c.label) {
6345
+ return __generator(this, function (_a) {
6346
+ switch (_a.label) {
6348
6347
  case 0:
6349
6348
  dataSource = [];
6350
6349
  return [4 /*yield*/, this.doGetAllCustom(groupCode)];
6351
6350
  case 1:
6352
- result = _c.sent();
6351
+ result = _a.sent();
6353
6352
  result.data.forEach(function (element) {
6354
6353
  dataSource.push({ id: element.id, code: element.code, name: element.name });
6355
6354
  });
@@ -6362,26 +6361,11 @@
6362
6361
  var _this = this;
6363
6362
  return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
6364
6363
  var dataSource;
6365
- return __generator(this, function (_c) {
6366
- switch (_c.label) {
6367
- case 0:
6368
- dataSource = [];
6369
- if (!(this.isDisabledGetCache === true)) return [3 /*break*/, 2];
6370
- return [4 /*yield*/, this.getAllByGroupCode(groupCode)];
6364
+ return __generator(this, function (_a) {
6365
+ switch (_a.label) {
6366
+ case 0: return [4 /*yield*/, this.getAllByGroupCode(groupCode)];
6371
6367
  case 1:
6372
- dataSource = _c.sent();
6373
- return [3 /*break*/, 5];
6374
- case 2:
6375
- if (!!this.storage.getItem("" + this.categoryPrefix + groupCode)) return [3 /*break*/, 4];
6376
- return [4 /*yield*/, this.getAllByGroupCode(groupCode)];
6377
- case 3:
6378
- dataSource = _c.sent();
6379
- this.storage.setItem("" + this.categoryPrefix + groupCode, JSON.stringify(dataSource));
6380
- return [3 /*break*/, 5];
6381
- case 4:
6382
- dataSource = JSON.parse(this.storage.getItem("" + this.categoryPrefix + groupCode));
6383
- _c.label = 5;
6384
- case 5:
6368
+ dataSource = _a.sent();
6385
6369
  resolve(dataSource);
6386
6370
  return [2 /*return*/];
6387
6371
  }
@@ -6392,20 +6376,20 @@
6392
6376
  var _this = this;
6393
6377
  return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
6394
6378
  var config, result;
6395
- return __generator(this, function (_c) {
6396
- switch (_c.label) {
6379
+ return __generator(this, function (_a) {
6380
+ switch (_a.label) {
6397
6381
  case 0:
6398
6382
  config = '';
6399
6383
  if (!!this.storage.getItem(code)) return [3 /*break*/, 2];
6400
6384
  return [4 /*yield*/, this.doGetConfigByCode(code)];
6401
6385
  case 1:
6402
- result = _c.sent();
6386
+ result = _a.sent();
6403
6387
  this.storage.setItem(code, JSON.stringify(result.data));
6404
6388
  config = result.data;
6405
6389
  return [3 /*break*/, 3];
6406
6390
  case 2:
6407
6391
  config = JSON.parse(this.storage.getItem(code));
6408
- _c.label = 3;
6392
+ _a.label = 3;
6409
6393
  case 3:
6410
6394
  resolve(config);
6411
6395
  return [2 /*return*/];
@@ -6416,7 +6400,7 @@
6416
6400
  MasterDataService.prototype.getDropdown = function (groupCode) {
6417
6401
  var _this = this;
6418
6402
  return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
6419
- return __generator(this, function (_c) {
6403
+ return __generator(this, function (_a) {
6420
6404
  this.get(groupCode).then(function (source) {
6421
6405
  var op = source.map(function (x) { return ({ title: x.name, label: x.name, value: x.code }); });
6422
6406
  resolve(op);
@@ -6434,7 +6418,7 @@
6434
6418
  MasterDataService.prototype.getItems = function (groupCode) {
6435
6419
  var _this = this;
6436
6420
  return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
6437
- return __generator(this, function (_c) {
6421
+ return __generator(this, function (_a) {
6438
6422
  this.get(groupCode).then(function (source) {
6439
6423
  var op = source.map(function (x) { return ({ label: x.name, value: x.code }); });
6440
6424
  resolve(op);
@@ -6454,7 +6438,7 @@
6454
6438
  var _this = this;
6455
6439
  if (level === void 0) { level = 1; }
6456
6440
  return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
6457
- return __generator(this, function (_c) {
6441
+ return __generator(this, function (_a) {
6458
6442
  this.getAddress(id, level).then(function (source) {
6459
6443
  var op = source.map(function (x) { return ({ title: x.name, label: x.name, value: x.code }); });
6460
6444
  resolve(op);
@@ -6468,20 +6452,20 @@
6468
6452
  if (level === void 0) { level = 1; }
6469
6453
  return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
6470
6454
  var dataSource, result;
6471
- return __generator(this, function (_c) {
6472
- switch (_c.label) {
6455
+ return __generator(this, function (_a) {
6456
+ switch (_a.label) {
6473
6457
  case 0:
6474
6458
  dataSource = [];
6475
6459
  if (!!this.storage.getItem(this.administrativeUnit + ".Level" + level + "." + id)) return [3 /*break*/, 2];
6476
6460
  return [4 /*yield*/, this.dogetAddress(id, level)];
6477
6461
  case 1:
6478
- result = _c.sent();
6462
+ result = _a.sent();
6479
6463
  this.storage.setItem(this.administrativeUnit + ".Level" + level + "." + id, JSON.stringify(result.data));
6480
6464
  dataSource = result.data;
6481
6465
  return [3 /*break*/, 3];
6482
6466
  case 2:
6483
6467
  dataSource = JSON.parse(this.storage.getItem(this.administrativeUnit + ".Level" + level + "." + id));
6484
- _c.label = 3;
6468
+ _a.label = 3;
6485
6469
  case 3:
6486
6470
  resolve(dataSource);
6487
6471
  return [2 /*return*/];
@@ -6493,11 +6477,11 @@
6493
6477
  var _this = this;
6494
6478
  return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
6495
6479
  var streets, parentIds;
6496
- return __generator(this, function (_c) {
6497
- switch (_c.label) {
6480
+ return __generator(this, function (_a) {
6481
+ switch (_a.label) {
6498
6482
  case 0: return [4 /*yield*/, this.getAddress(districtCode, 2)];
6499
6483
  case 1:
6500
- streets = _c.sent();
6484
+ streets = _a.sent();
6501
6485
  parentIds = streets.filter(function (x) { return x.name == streetName; }).map(function (x) { return x.parentId; });
6502
6486
  resolve(parentIds);
6503
6487
  return [2 /*return*/];
@@ -6518,8 +6502,8 @@
6518
6502
  return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
6519
6503
  var itemData, serviceUri, result;
6520
6504
  var _this = this;
6521
- return __generator(this, function (_c) {
6522
- switch (_c.label) {
6505
+ return __generator(this, function (_a) {
6506
+ switch (_a.label) {
6523
6507
  case 0:
6524
6508
  itemData = new MasterDataItem();
6525
6509
  if (!!this.storage.getItem("" + this.administrativeUnitItem + id)) return [3 /*break*/, 2];
@@ -6528,13 +6512,13 @@
6528
6512
  .pipe(operators.catchError(function (err) { return _this._commonService.handleError(err, _this._injector); }))
6529
6513
  .toPromise()];
6530
6514
  case 1:
6531
- result = _c.sent();
6515
+ result = _a.sent();
6532
6516
  this.storage.setItem("" + this.administrativeUnitItem + id, JSON.stringify(result.data));
6533
6517
  itemData = result.data;
6534
6518
  return [3 /*break*/, 3];
6535
6519
  case 2:
6536
6520
  itemData = JSON.parse(this.storage.getItem("" + this.administrativeUnitItem + id));
6537
- _c.label = 3;
6521
+ _a.label = 3;
6538
6522
  case 3:
6539
6523
  resolve(itemData);
6540
6524
  return [2 /*return*/];
@@ -6556,14 +6540,14 @@
6556
6540
  return __awaiter(this, void 0, void 0, function () {
6557
6541
  var group, gridInfo;
6558
6542
  var _this = this;
6559
- return __generator(this, function (_c) {
6560
- switch (_c.label) {
6543
+ return __generator(this, function (_a) {
6544
+ switch (_a.label) {
6561
6545
  case 0: return [4 /*yield*/, this.getGroupByCode(groupCode)];
6562
6546
  case 1:
6563
- group = _c.sent();
6547
+ group = _a.sent();
6564
6548
  if (!group.data) {
6565
6549
  return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
6566
- return __generator(this, function (_c) {
6550
+ return __generator(this, function (_a) {
6567
6551
  resolve({ success: true, data: [] });
6568
6552
  return [2 /*return*/];
6569
6553
  });
@@ -6583,11 +6567,11 @@
6583
6567
  });
6584
6568
  });
6585
6569
  };
6586
- // thực hiện get list singleCategory theo groupCategoryCode trên redis
6570
+ // thực hiện get list singleCategory theo groupCategoryCode trên redis cache
6587
6571
  MasterDataService.prototype.doGetAllCustom = function (groupCode) {
6588
6572
  return __awaiter(this, void 0, void 0, function () {
6589
6573
  var uri;
6590
- return __generator(this, function (_c) {
6574
+ return __generator(this, function (_a) {
6591
6575
  uri = this.singleCategoryEndpoint + "/GetDataByGroupCode/" + groupCode;
6592
6576
  return [2 /*return*/, this._httpClient.get(uri).toPromise()];
6593
6577
  });
@@ -6599,7 +6583,7 @@
6599
6583
  MasterDataService.prototype.getGroupByCode = function (groupCode) {
6600
6584
  return __awaiter(this, void 0, void 0, function () {
6601
6585
  var uri;
6602
- return __generator(this, function (_c) {
6586
+ return __generator(this, function (_a) {
6603
6587
  uri = this.groupCategoryEndpoint + "/getByCode/" + groupCode;
6604
6588
  return [2 /*return*/, this._httpClient.get(uri).toPromise()];
6605
6589
  });
@@ -6633,20 +6617,20 @@
6633
6617
  var _this = this;
6634
6618
  return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
6635
6619
  var dataSource, result;
6636
- return __generator(this, function (_c) {
6637
- switch (_c.label) {
6620
+ return __generator(this, function (_a) {
6621
+ switch (_a.label) {
6638
6622
  case 0:
6639
6623
  dataSource = [];
6640
6624
  if (!!this.storage.getItem("" + this.categoryPrefix + groupCode)) return [3 /*break*/, 2];
6641
6625
  return [4 /*yield*/, this.doGetAll(groupCode)];
6642
6626
  case 1:
6643
- result = _c.sent();
6627
+ result = _a.sent();
6644
6628
  this.storage.setItem("" + this.categoryPrefix + groupCode, JSON.stringify(result.data));
6645
6629
  dataSource = result.data;
6646
6630
  return [3 /*break*/, 3];
6647
6631
  case 2:
6648
6632
  dataSource = JSON.parse(this.storage.getItem("" + this.categoryPrefix + groupCode));
6649
- _c.label = 3;
6633
+ _a.label = 3;
6650
6634
  case 3:
6651
6635
  resolve(dataSource.find(function (x) { return x.code === code; }));
6652
6636
  return [2 /*return*/];
@@ -6667,8 +6651,8 @@
6667
6651
  var _this = this;
6668
6652
  return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
6669
6653
  var strResult, x, x, x;
6670
- return __generator(this, function (_c) {
6671
- switch (_c.label) {
6654
+ return __generator(this, function (_a) {
6655
+ switch (_a.label) {
6672
6656
  case 0:
6673
6657
  strResult = '';
6674
6658
  if (strText && strText != '') {
@@ -6680,29 +6664,29 @@
6680
6664
  if (!(ward && ward != '')) return [3 /*break*/, 2];
6681
6665
  return [4 /*yield*/, this.getItemDetailUnit(ward)];
6682
6666
  case 1:
6683
- x = _c.sent();
6667
+ x = _a.sent();
6684
6668
  if (x !== null) {
6685
6669
  strResult += x.name + ', ';
6686
6670
  }
6687
- _c.label = 2;
6671
+ _a.label = 2;
6688
6672
  case 2:
6689
6673
  if (!(district && district != '')) return [3 /*break*/, 4];
6690
6674
  return [4 /*yield*/, this.getItemDetailUnit(district)];
6691
6675
  case 3:
6692
- x = _c.sent();
6676
+ x = _a.sent();
6693
6677
  if (x !== null) {
6694
6678
  strResult += x.name + ', ';
6695
6679
  }
6696
- _c.label = 4;
6680
+ _a.label = 4;
6697
6681
  case 4:
6698
6682
  if (!(city && city != '')) return [3 /*break*/, 6];
6699
6683
  return [4 /*yield*/, this.getItemDetailUnit(city)];
6700
6684
  case 5:
6701
- x = _c.sent();
6685
+ x = _a.sent();
6702
6686
  if (x !== null) {
6703
6687
  strResult += x.name;
6704
6688
  }
6705
- _c.label = 6;
6689
+ _a.label = 6;
6706
6690
  case 6:
6707
6691
  resolve(strResult);
6708
6692
  return [2 /*return*/];
@@ -6738,8 +6722,8 @@
6738
6722
  return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
6739
6723
  var data, dataStorage, apiUrl;
6740
6724
  var _this = this;
6741
- return __generator(this, function (_c) {
6742
- switch (_c.label) {
6725
+ return __generator(this, function (_a) {
6726
+ switch (_a.label) {
6743
6727
  case 0:
6744
6728
  dataStorage = this.storage.getItem("" + this.categoryPrefix + groupCode);
6745
6729
  if (!!dataStorage) return [3 /*break*/, 2];
@@ -6750,7 +6734,7 @@
6750
6734
  .post(apiUrl, gridInfo)
6751
6735
  .pipe(operators.catchError(function (err) { return _this.handleError(err, _this._injector); })).toPromise()];
6752
6736
  case 1:
6753
- data = _c.sent();
6737
+ data = _a.sent();
6754
6738
  this.storage.setItem("" + this.categoryPrefix + groupCode, JSON.stringify(data.data));
6755
6739
  return [3 /*break*/, 3];
6756
6740
  case 2:
@@ -6758,7 +6742,7 @@
6758
6742
  success: true,
6759
6743
  data: JSON.parse(dataStorage)
6760
6744
  };
6761
- _c.label = 3;
6745
+ _a.label = 3;
6762
6746
  case 3:
6763
6747
  resolve(data);
6764
6748
  return [2 /*return*/];
@@ -46027,9 +46011,10 @@
46027
46011
 
46028
46012
  var EntityPickerDataComponent = /** @class */ (function (_super) {
46029
46013
  __extends(EntityPickerDataComponent, _super);
46030
- function EntityPickerDataComponent(_injector, _deviceDetectorService) {
46014
+ function EntityPickerDataComponent(_injector, _deviceDetectorService, dom) {
46031
46015
  var _this = _super.call(this, _injector) || this;
46032
46016
  _this._deviceDetectorService = _deviceDetectorService;
46017
+ _this.dom = dom;
46033
46018
  _this.datasourceFieldFilter = [];
46034
46019
  _this.isSingleSelection = false;
46035
46020
  _this.onContentInit = new i0.EventEmitter();
@@ -46251,14 +46236,15 @@
46251
46236
  EntityPickerDataComponent.decorators = [
46252
46237
  { type: i0.Component, args: [{
46253
46238
  selector: 'app-entity-picker-data',
46254
- 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 #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.dataSource.length > 0\" type=\"button\" pButton pRipple\n label=\"L\u1EA5y t\u1EA5t c\u1EA3 ({{model.dataSource.length}})\" icon=\"pi pi-angle-double-right\"\n class=\"p-button-text p-button-success\" [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\" (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\" (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>",
46239
+ 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.dataSource.length > 0\" type=\"button\" pButton pRipple\n label=\"L\u1EA5y t\u1EA5t c\u1EA3 ({{model.dataSource.length}})\" icon=\"pi pi-angle-double-right\"\n class=\"p-button-text p-button-success\" [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\" (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\" (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>",
46255
46240
  providers: [ComponentContextService],
46256
46241
  styles: ["::ng-deep app-entity-picker-data .custom-card{padding:.5em!important}"]
46257
46242
  },] }
46258
46243
  ];
46259
46244
  EntityPickerDataComponent.ctorParameters = function () { return [
46260
46245
  { type: i0.Injector },
46261
- { type: ngxDeviceDetector.DeviceDetectorService }
46246
+ { type: ngxDeviceDetector.DeviceDetectorService },
46247
+ { type: platformBrowser.DomSanitizer }
46262
46248
  ]; };
46263
46249
  EntityPickerDataComponent.propDecorators = {
46264
46250
  parentSetting: [{ type: i0.Input }],
@@ -46278,8 +46264,9 @@
46278
46264
 
46279
46265
  var EntityPickerSelectedComponent = /** @class */ (function (_super) {
46280
46266
  __extends(EntityPickerSelectedComponent, _super);
46281
- function EntityPickerSelectedComponent(_injector) {
46267
+ function EntityPickerSelectedComponent(_injector, dom) {
46282
46268
  var _this = _super.call(this, _injector) || this;
46269
+ _this.dom = dom;
46283
46270
  _this.onContentInit = new i0.EventEmitter();
46284
46271
  _this.onUnPick = new i0.EventEmitter();
46285
46272
  _this.onUnPickAll = new i0.EventEmitter();
@@ -46500,13 +46487,14 @@
46500
46487
  { type: i0.Component, args: [{
46501
46488
  // tslint:disable-next-line: component-selector
46502
46489
  selector: 'app-entity-picker-selected',
46503
- 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\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 ({{itemCanDeletes.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\" (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>",
46490
+ 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 ({{itemCanDeletes.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\" (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>",
46504
46491
  providers: [ComponentContextService],
46505
46492
  styles: ["::ng-deep app-entity-picker-selected .custom-card{padding:.5em .5em 0!important}"]
46506
46493
  },] }
46507
46494
  ];
46508
46495
  EntityPickerSelectedComponent.ctorParameters = function () { return [
46509
- { type: i0.Injector }
46496
+ { type: i0.Injector },
46497
+ { type: platformBrowser.DomSanitizer }
46510
46498
  ]; };
46511
46499
  EntityPickerSelectedComponent.propDecorators = {
46512
46500
  parentSetting: [{ type: i0.Input }],
@@ -46792,9 +46780,10 @@
46792
46780
 
46793
46781
  var EntityPickerTreeDataComponent = /** @class */ (function (_super) {
46794
46782
  __extends(EntityPickerTreeDataComponent, _super);
46795
- function EntityPickerTreeDataComponent(_injector, _deviceDetectorService) {
46783
+ function EntityPickerTreeDataComponent(_injector, _deviceDetectorService, dom) {
46796
46784
  var _this = _super.call(this, _injector) || this;
46797
46785
  _this._deviceDetectorService = _deviceDetectorService;
46786
+ _this.dom = dom;
46798
46787
  _this.isSingleSelection = false;
46799
46788
  _this.onContentInit = new i0.EventEmitter();
46800
46789
  _this.onRowSelect = new i0.EventEmitter();
@@ -46949,14 +46938,15 @@
46949
46938
  EntityPickerTreeDataComponent.decorators = [
46950
46939
  { type: i0.Component, args: [{
46951
46940
  selector: 'app-entity-picker-tree-data',
46952
- 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 (onRowSelect)=\"handleRowSelect($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\"\n (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\n <ng-template #toolbar let-crudList=\"crudList\" let-selectedItems=\"selectedItems\">\n <button *ngIf=\"!isSingleSelection && model.dataSource.length > 0\" type=\"button\" pButton pRipple\n label=\"L\u1EA5y t\u1EA5t c\u1EA3 ({{model.dataSource.length}})\" icon=\"pi pi-angle-double-right\"\n class=\"p-button-text p-button-success\" (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\" (click)=\"pickSelected(selectedItems)\"></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<tn-tree-table [model]=\"model\" [setting]=\"setting\" [allDataSource]=\"model.allDataSource\" [hiddenAdd]=\"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)=\"_handleReloaded($event)\">\n <ng-template #toolbar let-crudList=\"crudList\" let-selectedItems=\"selectedItems\">\n <button *ngIf=\"!isSingleSelection && model.dataSource.length > 0\" type=\"button\" pButton pRipple\n label=\"L\u1EA5y t\u1EA5t c\u1EA3 ({{model.dataSource.length}})\" icon=\"pi pi-angle-double-right\"\n class=\"p-button-text p-button-success\" (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\" (click)=\"pickSelected(selectedItems)\"></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</tn-tree-table>",
46941
+ 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 (onRowSelect)=\"handleRowSelect($event)\" (onEdit)=\"_edit($event)\" (onView)=\"_view($event)\"\n (onDelete)=\"_delete($event)\" (onDeleteMultiple)=\"_deleteMultiple($event)\" (onReloaded)=\"_unmarkLoading()\">\n <ng-template #toolbar let-crudList=\"crudList\" let-selectedItems=\"selectedItems\">\n <button *ngIf=\"!isSingleSelection && model.dataSource.length > 0\" type=\"button\" pButton pRipple\n label=\"L\u1EA5y t\u1EA5t c\u1EA3 ({{model.dataSource.length}})\" icon=\"pi pi-angle-double-right\"\n class=\"p-button-text p-button-success\" (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\" (click)=\"pickSelected(selectedItems)\"></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<tn-tree-table [model]=\"model\" [setting]=\"setting\" [allDataSource]=\"model.allDataSource\" [hiddenAdd]=\"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)=\"_handleReloaded($event)\">\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.dataSource.length > 0\" type=\"button\" pButton pRipple\n label=\"L\u1EA5y t\u1EA5t c\u1EA3 ({{model.dataSource.length}})\" icon=\"pi pi-angle-double-right\"\n class=\"p-button-text p-button-success\" (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\" (click)=\"pickSelected(selectedItems)\"></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</tn-tree-table>",
46953
46942
  providers: [ComponentContextService],
46954
46943
  styles: ["::ng-deep app-entity-picker-data .custom-card{padding:.5em!important}"]
46955
46944
  },] }
46956
46945
  ];
46957
46946
  EntityPickerTreeDataComponent.ctorParameters = function () { return [
46958
46947
  { type: i0.Injector },
46959
- { type: ngxDeviceDetector.DeviceDetectorService }
46948
+ { type: ngxDeviceDetector.DeviceDetectorService },
46949
+ { type: platformBrowser.DomSanitizer }
46960
46950
  ]; };
46961
46951
  EntityPickerTreeDataComponent.propDecorators = {
46962
46952
  parentSetting: [{ type: i0.Input }],
@@ -46976,8 +46966,9 @@
46976
46966
 
46977
46967
  var EntityPickerTreeSelectedComponent = /** @class */ (function (_super) {
46978
46968
  __extends(EntityPickerTreeSelectedComponent, _super);
46979
- function EntityPickerTreeSelectedComponent(_injector) {
46969
+ function EntityPickerTreeSelectedComponent(_injector, dom) {
46980
46970
  var _this = _super.call(this, _injector) || this;
46971
+ _this.dom = dom;
46981
46972
  _this.onContentInit = new i0.EventEmitter();
46982
46973
  _this.onUnPick = new i0.EventEmitter();
46983
46974
  _this.onUnPickAll = new i0.EventEmitter();
@@ -47154,13 +47145,14 @@
47154
47145
  { type: i0.Component, args: [{
47155
47146
  // tslint:disable-next-line: component-selector
47156
47147
  selector: 'app-entity-picker-tree-selected',
47157
- 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\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 ({{itemCanDeletes.length}})\" icon=\"pi pi-angle-double-left\"\n class=\"p-button-text p-button-danger\" (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\" (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>",
47148
+ 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 ({{itemCanDeletes.length}})\" icon=\"pi pi-angle-double-left\"\n class=\"p-button-text p-button-danger\" (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\" (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>",
47158
47149
  providers: [ComponentContextService],
47159
47150
  styles: ["::ng-deep app-entity-picker-selected .custom-card{padding:.5em .5em 0!important}"]
47160
47151
  },] }
47161
47152
  ];
47162
47153
  EntityPickerTreeSelectedComponent.ctorParameters = function () { return [
47163
- { type: i0.Injector }
47154
+ { type: i0.Injector },
47155
+ { type: platformBrowser.DomSanitizer }
47164
47156
  ]; };
47165
47157
  EntityPickerTreeSelectedComponent.propDecorators = {
47166
47158
  parentSetting: [{ type: i0.Input }],
@@ -47569,7 +47561,7 @@
47569
47561
  EntityPickerComponent.decorators = [
47570
47562
  { type: i0.Component, args: [{
47571
47563
  selector: 'entity-picker',
47572
- 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 (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 let-crudList=\"crudList\" #function 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>",
47564
+ 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 (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>",
47573
47565
  providers: [
47574
47566
  {
47575
47567
  provide: forms.NG_VALUE_ACCESSOR,