tnx-shared 5.3.357 → 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 +51 -17
  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 +3 -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 +1 -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 +8 -3
  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 +23 -4
  21. package/fesm2015/tnx-shared.js.map +1 -1
  22. package/package.json +2 -2
  23. package/tnx-shared.metadata.json +1 -1
@@ -46980,10 +46980,18 @@
46980
46980
  return __awaiter(this, void 0, void 0, function () {
46981
46981
  var _this = this;
46982
46982
  return __generator(this, function (_c) {
46983
- data.forEach(function (item) {
46984
- item._dropdownvalue = _this.control.valueField;
46985
- });
46986
- return [2 /*return*/];
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
+ }
46987
46995
  });
46988
46996
  });
46989
46997
  };
@@ -47039,7 +47047,7 @@
47039
47047
  EntityPickerDataComponent.decorators = [
47040
47048
  { type: i0.Component, args: [{
47041
47049
  selector: 'app-entity-picker-data',
47042
- 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>",
47043
47051
  providers: [ComponentContextService],
47044
47052
  styles: ["::ng-deep app-entity-picker-data .custom-card{padding:.5em!important}"]
47045
47053
  },] }
@@ -47050,6 +47058,7 @@
47050
47058
  { type: platformBrowser.DomSanitizer }
47051
47059
  ]; };
47052
47060
  EntityPickerDataComponent.propDecorators = {
47061
+ templates: [{ type: i0.Input }],
47053
47062
  parentSetting: [{ type: i0.Input }],
47054
47063
  advanceData: [{ type: i0.Input }],
47055
47064
  control: [{ type: i0.Input }],
@@ -47241,15 +47250,23 @@
47241
47250
  return __awaiter(this, void 0, void 0, function () {
47242
47251
  var _this = this;
47243
47252
  return __generator(this, function (_b) {
47244
- this.itemCanDeletes = [];
47245
- data.forEach(function (item) {
47246
- _this.funcCheckReadOnlyItem(item);
47247
- item._dropdownvalue = _this.control.valueField;
47248
- if (!item.hiddenCheckBox) {
47249
- _this.itemCanDeletes.push(item);
47250
- }
47251
- });
47252
- 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
+ }
47253
47270
  });
47254
47271
  });
47255
47272
  };
@@ -47293,7 +47310,7 @@
47293
47310
  { type: i0.Component, args: [{
47294
47311
  // tslint:disable-next-line: component-selector
47295
47312
  selector: 'app-entity-picker-selected',
47296
- 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>",
47297
47314
  providers: [ComponentContextService],
47298
47315
  styles: ["::ng-deep app-entity-picker-selected .custom-card{padding:.5em .5em 0!important}"]
47299
47316
  },] }
@@ -47303,6 +47320,7 @@
47303
47320
  { type: platformBrowser.DomSanitizer }
47304
47321
  ]; };
47305
47322
  EntityPickerSelectedComponent.propDecorators = {
47323
+ templates: [{ type: i0.Input }],
47306
47324
  parentSetting: [{ type: i0.Input }],
47307
47325
  advanceData: [{ type: i0.Input }],
47308
47326
  control: [{ type: i0.Input }],
@@ -47437,7 +47455,7 @@
47437
47455
  EntityPickerBoxComponent.decorators = [
47438
47456
  { type: i0.Component, args: [{
47439
47457
  selector: 'entity-picker-box',
47440
- 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>",
47441
47459
  providers: [ComponentContextService],
47442
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}}"]
47443
47461
  },] }
@@ -47453,6 +47471,7 @@
47453
47471
  el: [{ type: i0.ViewChild, args: ['el',] }],
47454
47472
  dataComponent: [{ type: i0.ViewChild, args: [EntityPickerDataComponent, { static: false },] }],
47455
47473
  selectedComponent: [{ type: i0.ViewChild, args: [EntityPickerSelectedComponent, { static: false },] }],
47474
+ templates: [{ type: i0.Input }],
47456
47475
  parentSetting: [{ type: i0.Input }],
47457
47476
  advanceData: [{ type: i0.Input }],
47458
47477
  control: [{ type: i0.Input }],
@@ -48234,6 +48253,21 @@
48234
48253
  });
48235
48254
  });
48236
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
+ };
48237
48271
  EntityPickerComponent.prototype.afterGetData = function () {
48238
48272
  return __awaiter(this, void 0, void 0, function () {
48239
48273
  return __generator(this, function (_a) {
@@ -48405,7 +48439,7 @@
48405
48439
  EntityPickerComponent.decorators = [
48406
48440
  { type: i0.Component, args: [{
48407
48441
  selector: 'entity-picker',
48408
- 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>",
48409
48443
  providers: [
48410
48444
  {
48411
48445
  provide: forms.NG_VALUE_ACCESSOR,