tnx-shared 5.3.428 → 5.3.429

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.
@@ -28624,7 +28624,6 @@ class FileUploadComponent extends ComponentBase {
28624
28624
  if (!dataKySo) {
28625
28625
  this._notifierService.showWarning('Người dùng chưa cấu hình thông tin ký số');
28626
28626
  }
28627
- debugger;
28628
28627
  this.forms.fileViewer.formData.data = {
28629
28628
  fileId: sourceFileId,
28630
28629
  isFileVersion: false,
@@ -35547,7 +35546,6 @@ class ServiceFileUploadComponent extends ComponentBase {
35547
35546
  if (!dataKySo) {
35548
35547
  this._notifierService.showWarning('Người dùng chưa cấu hình thông tin ký số');
35549
35548
  }
35550
- debugger;
35551
35549
  this.forms.fileViewer.formData.data = {
35552
35550
  fileId: sourceFileId,
35553
35551
  isFileVersion: false,
@@ -40742,8 +40740,16 @@ class EntityPickerDataComponent extends DataListBase {
40742
40740
  this.onPick = new EventEmitter();
40743
40741
  this.onPickAll = new EventEmitter();
40744
40742
  this.onPickSelected = new EventEmitter();
40743
+ this.template = {};
40744
+ // Context truyền vào templateFilterHeader để template gọi ngược lại (onChange/reload)
40745
+ this.filterHeaderContext = {
40746
+ $implicit: this,
40747
+ onChange: (value) => this.handleFilterHeaderChange(value),
40748
+ reload: () => this._triggerProcessData(),
40749
+ };
40745
40750
  this.showFormAdvancedSearch = false;
40746
40751
  this.popupSizeSearchForm = new PopupSize({ width: 1000, height: 700 });
40752
+ this.schemaData = {};
40747
40753
  this.lstDataNotExist = [];
40748
40754
  }
40749
40755
  set selectedValue(value) {
@@ -40935,13 +40941,34 @@ class EntityPickerDataComponent extends DataListBase {
40935
40941
  this.searchData = model;
40936
40942
  this._triggerProcessData();
40937
40943
  }
40944
+ handleFilterHeaderChange(value) {
40945
+ console.log(value);
40946
+ // Nhận sự kiện onChange từ templateFilterHeader, mặc định lọc lại lưới
40947
+ this._triggerProcessData();
40948
+ }
40949
+ findTemplate(templateName) {
40950
+ var _a;
40951
+ return (_a = this._commonService.findTemplateFromList(this.children, templateName)) !== null && _a !== void 0 ? _a : this._commonService.findTemplateFromList(this.templates, templateName);
40952
+ }
40953
+ hasTemplate(templateName) {
40954
+ if (this.template[templateName] === undefined) {
40955
+ this.template[templateName] = this.findTemplate(templateName);
40956
+ }
40957
+ return this.template[templateName] != null;
40958
+ }
40959
+ getTemplate(templateName) {
40960
+ if (this.template[templateName] === undefined) {
40961
+ this.template[templateName] = this.findTemplate(templateName);
40962
+ }
40963
+ return this.template[templateName];
40964
+ }
40938
40965
  }
40939
40966
  EntityPickerDataComponent.decorators = [
40940
40967
  { type: Component, args: [{
40941
40968
  selector: 'app-entity-picker-data',
40942
- 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>",
40969
+ template: "<crud-list #crudList [templates]=\"templates\" [menuButtons]=\"getMenuButtons\" [model]=\"model\" [setting]=\"setting\"\n [dataSource]=\"model.dataSource\" [showScrollHorizontal]=\"true\" (onContentInit)=\"onContentInit.emit($event)\"\n (onReload)=\"_triggerProcessData($event)\" (onAdd)=\"_add($event)\" (onRowSelect)=\"handleRowSelect($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.titleUnPicked)\"></h1>\n <div class=\"header-search-box\" *ngIf=\"control.templateFilterHeader\">\n <ng-container *ngTemplateOutlet=\"control.templateFilterHeader; context: filterHeaderContext\">\n </ng-container>\n </div>\n </ng-template>\n\n <ng-template #toolbar let-crudList=\"crudList\" let-selectedItems=\"selectedItems\">\n <button\n *ngIf=\"(isSingleSelection || model.total <= 0) && !model.dataSource.length && setting.hiddenAdvanceSearch\"\n pButton 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>",
40943
40970
  providers: [ComponentContextService],
40944
- styles: ["::ng-deep app-entity-picker-data .custom-card{padding:.5em!important}"]
40971
+ styles: ["::ng-deep app-entity-picker-data .custom-card{padding:.5em!important}::ng-deep app-entity-picker-data .header-search-box{padding:1rem 0}::ng-deep app-entity-picker-data .header-search-box p-dropdown .p-dropdown{min-width:300px}"]
40945
40972
  },] }
40946
40973
  ];
40947
40974
  EntityPickerDataComponent.ctorParameters = () => [
@@ -40963,7 +40990,8 @@ EntityPickerDataComponent.propDecorators = {
40963
40990
  onRowSelect: [{ type: Output }],
40964
40991
  onPick: [{ type: Output }],
40965
40992
  onPickAll: [{ type: Output }],
40966
- onPickSelected: [{ type: Output }]
40993
+ onPickSelected: [{ type: Output }],
40994
+ children: [{ type: ContentChildren, args: [TemplateRef,] }]
40967
40995
  };
40968
40996
 
40969
40997
  class EntityPickerSelectedComponent extends DataListBase {
@@ -49806,6 +49834,9 @@ class UserPickerBoxComponent extends ComponentBase {
49806
49834
  }
49807
49835
  }
49808
49836
  ngOnInit() {
49837
+ if (this.controlSetting.templateFilterHeader) {
49838
+ this.control.templateFilterHeader = this.controlSetting.templateFilterHeader;
49839
+ }
49809
49840
  this.control.plusUrl = 'ForUserPicker';
49810
49841
  this.control.filterWhileProcess = [
49811
49842
  this.newFilter('userType', Operator.equal, this.controlSetting.userType)