ngx-rs-ant 0.9.9 → 0.10.2

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.
@@ -8,16 +8,17 @@ import { Subject, map, lastValueFrom } from 'rxjs';
8
8
  import * as i2$1 from 'ng-devui/input-number';
9
9
  import * as i5 from '@angular/forms';
10
10
  import { FormsModule, UntypedFormGroup, ReactiveFormsModule } from '@angular/forms';
11
- import { DevUIModule, FormLayout } from 'ng-devui';
12
- import * as i3 from 'devextreme-angular';
11
+ import { DevUIModule, HelperUtils, FormLayout } from 'ng-devui';
12
+ import * as i3$1 from 'devextreme-angular';
13
13
  import { DxDataGridComponent, DxDataGridModule } from 'devextreme-angular';
14
14
  import * as i1$1 from '@angular/common/http';
15
15
  import CustomStore from 'devextreme/data/custom_store';
16
16
  import * as i4 from 'devextreme-angular/ui/nested';
17
17
  import * as i5$1 from 'devextreme-angular/core';
18
- import * as i6 from 'ng-devui/popover';
19
- import * as i2$2 from 'ng-devui/button';
20
- import * as i3$1 from 'ng-devui/form';
18
+ import * as i3 from 'ng-devui/popover';
19
+ import * as i2$2 from '@angular/platform-browser';
20
+ import * as i2$3 from 'ng-devui/button';
21
+ import * as i3$2 from 'ng-devui/form';
21
22
  import * as i4$1 from 'ng-devui/text-input';
22
23
  import * as i4$2 from 'ng-devui/loading';
23
24
 
@@ -754,10 +755,11 @@ class DataGridService {
754
755
  return response.data;
755
756
  }));
756
757
  }
757
- getUserColumnDataSource(className, view, field) {
758
+ getUserColumnDataSource(tenant, className, view, field) {
758
759
  return this.http.get('api/data/custom', {
759
760
  params: {
760
761
  executor: 'com.cs.system.data.grid.header.filter.GetUserColumnDataSource',
762
+ tenant,
761
763
  className,
762
764
  view: view || '',
763
765
  field
@@ -775,10 +777,11 @@ class DataGridService {
775
777
  return response.data.list;
776
778
  }));
777
779
  }
778
- getUnitColumnDataSource(className, view, field) {
780
+ getUnitColumnDataSource(tenant, className, view, field) {
779
781
  return this.http.get('api/data/custom', {
780
782
  params: {
781
783
  executor: 'com.cs.system.data.grid.header.filter.GetUnitColumnDataSource',
784
+ tenant,
782
785
  className,
783
786
  view: view || '',
784
787
  field
@@ -796,10 +799,11 @@ class DataGridService {
796
799
  return response.data.list;
797
800
  }));
798
801
  }
799
- getConstraintColumnDataSource(className, view, field, constraintName) {
802
+ getConstraintColumnDataSource(tenant, className, view, field, constraintName) {
800
803
  return this.http.get('api/data/custom', {
801
804
  params: {
802
805
  executor: 'com.cs.system.data.grid.header.filter.GetConstraintColumnDataSource',
806
+ tenant,
803
807
  className,
804
808
  view: view || '',
805
809
  field,
@@ -830,6 +834,12 @@ class DataGridService {
830
834
  return response.data.list;
831
835
  }));
832
836
  }
837
+ downloadAttachment(id, filename, onSuccess) {
838
+ HelperUtils.downloadFileByHttpClient(this.http, 'api/file/download/' + id, {
839
+ method: 'GET',
840
+ filename
841
+ }, undefined, onSuccess);
842
+ }
833
843
  }
834
844
  DataGridService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
835
845
  DataGridService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridService });
@@ -851,6 +861,88 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
851
861
  }]
852
862
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
853
863
 
864
+ class RowButtonsTemplateDirective {
865
+ constructor(templateRef) {
866
+ this.templateRef = templateRef;
867
+ }
868
+ }
869
+ RowButtonsTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: RowButtonsTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
870
+ RowButtonsTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: RowButtonsTemplateDirective, selector: "[rsRowButtonsTemplate]", ngImport: i0 });
871
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: RowButtonsTemplateDirective, decorators: [{
872
+ type: Directive,
873
+ args: [{
874
+ selector: '[rsRowButtonsTemplate]'
875
+ }]
876
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
877
+
878
+ class FileCellTemplateComponent {
879
+ constructor(service, domSanitizer) {
880
+ this.service = service;
881
+ this.domSanitizer = domSanitizer;
882
+ this.loading = false;
883
+ }
884
+ ngOnInit() {
885
+ this.service.getOne('S', 'Attachment', this.oid).subscribe(response => {
886
+ this.file = response.data;
887
+ this.filename = this.file.fileName;
888
+ this.content = this.domSanitizer.bypassSecurityTrustHtml(`名称:${this.file.fileName}<br />
889
+ 大小:${this.getFileSize(this.file.fileSize)}<br />
890
+ 时间:${this.file.modifyTime}`);
891
+ const type = this.file.fileName.substring(this.file.fileName.lastIndexOf('.') + 1).toLocaleLowerCase();
892
+ switch (type) {
893
+ case 'xls':
894
+ case 'xlsx':
895
+ case 'doc':
896
+ case 'docx':
897
+ case 'ppt':
898
+ case 'pptx':
899
+ case 'pdf':
900
+ case 'txt':
901
+ case 'rtf':
902
+ this.icon = type + 'file';
903
+ break;
904
+ case 'jpg':
905
+ case 'jpeg':
906
+ case 'png':
907
+ case 'gif':
908
+ this.icon = 'image';
909
+ break;
910
+ default:
911
+ this.icon = 'file';
912
+ break;
913
+ }
914
+ // 重绘,自适应列宽
915
+ this.template.component.resize();
916
+ });
917
+ }
918
+ download() {
919
+ this.loading = true;
920
+ this.service.downloadAttachment(this.oid, this.filename, () => {
921
+ this.loading = false;
922
+ });
923
+ }
924
+ getFileSize(size) {
925
+ const labels = ['b', 'Kb', 'Mb', 'Gb'];
926
+ const count = labels.length - 1;
927
+ let i = 0;
928
+ while (i < count && size >= 1024) {
929
+ size /= 1024;
930
+ i++;
931
+ }
932
+ return Math.round(size * 100) / 100 + " " + labels[i];
933
+ }
934
+ }
935
+ FileCellTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FileCellTemplateComponent, deps: [{ token: DataGridService }, { token: i2$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
936
+ FileCellTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: FileCellTemplateComponent, selector: "rs-file-cell-template", inputs: { template: "template", oid: "oid" }, ngImport: i0, template: "<button (click)=\"download()\"\n [disabled]=\"loading\"\n dPopover\n [content]=\"content\"\n [trigger]=\"'hover'\"\n [controlled]=\"true\"\n [popMaxWidth]=\"300\">\n <i class=\"dx-icon-{{icon}}\"></i>\n {{filename}}\n</button><br/>\n", styles: [":host{height:20px;padding-right:4px}:host button{color:var(--devui-link, #526ecc)}\n"], dependencies: [{ kind: "directive", type: i3.PopoverDirective, selector: "[dPopover]", inputs: ["content", "controlled", "position", "showAnimation", "showAnimate", "scrollElement", "appendToBody", "zIndex", "popType", "popMaxWidth", "trigger", "hoverToContent", "hoverDelayTime", "popoverStyle", "mouseEnterDelay", "mouseLeaveDelay", "visible"], exportAs: ["dPopover"] }] });
937
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FileCellTemplateComponent, decorators: [{
938
+ type: Component,
939
+ args: [{ selector: 'rs-file-cell-template', template: "<button (click)=\"download()\"\n [disabled]=\"loading\"\n dPopover\n [content]=\"content\"\n [trigger]=\"'hover'\"\n [controlled]=\"true\"\n [popMaxWidth]=\"300\">\n <i class=\"dx-icon-{{icon}}\"></i>\n {{filename}}\n</button><br/>\n", styles: [":host{height:20px;padding-right:4px}:host button{color:var(--devui-link, #526ecc)}\n"] }]
940
+ }], ctorParameters: function () { return [{ type: DataGridService }, { type: i2$2.DomSanitizer }]; }, propDecorators: { template: [{
941
+ type: Input
942
+ }], oid: [{
943
+ type: Input
944
+ }] } });
945
+
854
946
  class DataGridComponent {
855
947
  constructor(service, locale) {
856
948
  this.service = service;
@@ -899,247 +991,263 @@ class DataGridComponent {
899
991
  this.service.getMetadataByView(this.tenant, this.className, this.view || '').subscribe((response) => {
900
992
  const columns = [];
901
993
  for (let field of response.data.columns) {
902
- if (field.type === 'FILE') {
903
- columns.push({
904
- dataField: field.name,
905
- caption: field.caption,
906
- dataType: 'string',
907
- alignment: 'left',
908
- allowHeaderFiltering: false,
909
- filterOperations: [],
910
- visible: field.visible
911
- });
912
- }
913
- else if (field.type === 'NORMAL') {
914
- const column = {
915
- dataField: field.name,
916
- caption: field.caption,
917
- dataType: this.typeMap[field.dataType].dataType,
918
- alignment: 'left',
919
- allowHeaderFiltering: true,
920
- headerFilter: {
921
- allowSelectAll: false
922
- },
923
- filterOperations: this.typeMap[field.dataType].filterOperations,
924
- format: this.typeMap[field.dataType].format,
925
- visible: field.visible
926
- };
927
- columns.push(column);
928
- switch (field.dataType) {
929
- case 'BOOLEAN':
930
- column.allowHeaderFiltering = false;
931
- column.alignment = 'center';
932
- column.trueText = '';
933
- column.falseText = '否';
934
- break;
935
- case 'DATE':
936
- case 'DATETIME':
937
- column.headerFilter.dataSource = (options) => {
938
- options.dataSource.group.length = 3;
939
- options.dataSource.postProcess = (data) => {
940
- data.forEach((year) => {
941
- year.text = year.key + '年';
942
- year.items.forEach((month) => {
943
- month.text = month.key + '月';
944
- month.items.forEach((day) => {
945
- day.text = day.key + '日';
946
- day.items = [];
994
+ switch (field.type) {
995
+ case 'FILE':
996
+ columns.push({
997
+ dataField: field.name,
998
+ caption: field.caption,
999
+ dataType: 'string',
1000
+ alignment: 'center',
1001
+ allowHeaderFiltering: false,
1002
+ allowFiltering: false,
1003
+ allowSorting: false,
1004
+ cellTemplate: 'fileCellTemplate',
1005
+ visible: field.visible
1006
+ });
1007
+ break;
1008
+ case 'NORMAL':
1009
+ const column = {
1010
+ dataField: field.name,
1011
+ caption: field.caption,
1012
+ dataType: this.typeMap[field.dataType].dataType,
1013
+ alignment: 'left',
1014
+ allowHeaderFiltering: true,
1015
+ headerFilter: {
1016
+ allowSelectAll: false
1017
+ },
1018
+ filterOperations: this.typeMap[field.dataType].filterOperations,
1019
+ format: this.typeMap[field.dataType].format,
1020
+ visible: field.visible
1021
+ };
1022
+ columns.push(column);
1023
+ switch (field.dataType) {
1024
+ case 'BOOLEAN':
1025
+ column.allowHeaderFiltering = false;
1026
+ column.alignment = 'center';
1027
+ column.trueText = '';
1028
+ column.falseText = '';
1029
+ break;
1030
+ case 'DATE':
1031
+ case 'DATETIME':
1032
+ column.headerFilter.dataSource = (options) => {
1033
+ options.dataSource.group.length = 3;
1034
+ options.dataSource.postProcess = (data) => {
1035
+ data.forEach((year) => {
1036
+ year.text = year.key + '年';
1037
+ year.items.forEach((month) => {
1038
+ month.text = month.key + '月';
1039
+ month.items.forEach((day) => {
1040
+ day.text = day.key + '日';
1041
+ day.items = [];
1042
+ });
947
1043
  });
948
1044
  });
949
- });
950
- data.unshift({
951
- key: '',
952
- value: null,
953
- text: '(空白)'
954
- });
955
- };
956
- };
957
- break;
958
- case 'DOUBLE':
959
- case 'INTEGER':
960
- column.headerFilter.dataSource = (options) => {
961
- options.dataSource.postProcess = (data) => {
962
- data.unshift({
963
- key: '',
964
- value: null,
965
- text: '(空白)'
966
- });
967
- data.push({
968
- key: '__',
969
- value: '__',
970
- text: '__',
971
- visible: false
972
- });
1045
+ data.unshift({
1046
+ key: '',
1047
+ value: null,
1048
+ text: '(空白)'
1049
+ });
1050
+ };
973
1051
  };
974
- };
975
- break;
976
- case 'STRING':
977
- column.headerFilter.dataSource = (options) => {
978
- options.dataSource.postProcess = (data) => {
979
- data.unshift({
980
- key: '',
981
- value: null,
982
- text: '(空白)'
983
- });
984
- data.push({
985
- key: '__',
986
- value: '__',
987
- text: '__',
988
- visible: false
989
- });
1052
+ break;
1053
+ case 'DOUBLE':
1054
+ case 'INTEGER':
1055
+ column.headerFilter.dataSource = (options) => {
1056
+ options.dataSource.postProcess = (data) => {
1057
+ data.unshift({
1058
+ key: '',
1059
+ value: null,
1060
+ text: '(空白)'
1061
+ });
1062
+ data.push({
1063
+ key: '__',
1064
+ value: '__',
1065
+ text: '__',
1066
+ visible: false
1067
+ });
1068
+ };
990
1069
  };
991
- };
992
- if (field.config.constraint.multiple) {
993
- column.width = 120;
994
- }
995
- switch (field.config.constraint.type) {
996
- case 'USER':
997
- column.headerFilter.dataSource = {
998
- store: new CustomStore({
999
- load: () => {
1000
- return lastValueFrom(this.service.getUserColumnDataSource(this.className, this.view, field.name));
1001
- }
1002
- }),
1003
- paginate: true
1070
+ break;
1071
+ case 'STRING':
1072
+ column.headerFilter.dataSource = (options) => {
1073
+ options.dataSource.postProcess = (data) => {
1074
+ data.unshift({
1075
+ key: '',
1076
+ value: null,
1077
+ text: '(空白)'
1078
+ });
1079
+ data.push({
1080
+ key: '__',
1081
+ value: '__',
1082
+ text: '__',
1083
+ visible: false
1084
+ });
1004
1085
  };
1005
- if (field.config.constraint.multiple) {
1006
- column.allowFiltering = false;
1007
- column.lookup = {
1008
- dataSource: {
1009
- store: new CustomStore({
1010
- load: () => {
1011
- return lastValueFrom(this.service.getUserColumnDataSource(this.className, this.view, field.name));
1012
- }
1013
- }),
1014
- paginate: true
1015
- },
1016
- valueExpr: 'value',
1017
- displayExpr: 'text'
1086
+ };
1087
+ switch (field.config.constraint.type) {
1088
+ case 'USER':
1089
+ column.headerFilter.dataSource = {
1090
+ store: new CustomStore({
1091
+ load: () => {
1092
+ return lastValueFrom(this.service.getUserColumnDataSource(this.tenant, this.className, this.view, field.name));
1093
+ }
1094
+ }),
1095
+ paginate: true
1018
1096
  };
1019
- column.calculateFilterExpression = function (filterValue, selectedFilterOperation, target) {
1020
- if (this.defaultCalculateFilterExpression) {
1021
- return this.defaultCalculateFilterExpression.apply(this, [filterValue, 'contains', target]);
1022
- }
1023
- return '';
1097
+ if (field.config.constraint.multiple) {
1098
+ column.allowFiltering = false;
1099
+ column.lookup = {
1100
+ dataSource: {
1101
+ store: new CustomStore({
1102
+ load: () => {
1103
+ return lastValueFrom(this.service.getUserColumnDataSource(this.tenant, this.className, this.view, field.name));
1104
+ }
1105
+ }),
1106
+ paginate: true
1107
+ },
1108
+ valueExpr: 'value',
1109
+ displayExpr: 'text'
1110
+ };
1111
+ column.calculateFilterExpression = function (filterValue, selectedFilterOperation, target) {
1112
+ if (this.defaultCalculateFilterExpression) {
1113
+ return this.defaultCalculateFilterExpression.apply(this, [filterValue, 'contains', target]);
1114
+ }
1115
+ return '';
1116
+ };
1117
+ column.cellTemplate = 'multipleValueCellTemplate';
1118
+ }
1119
+ else {
1120
+ column.dataField = '__' + field.name + '\u0001User_displayName';
1121
+ column.calculateFilterExpression = function (filterValue, selectedFilterOperation, target) {
1122
+ if (target === 'headerFilter') {
1123
+ if (this.defaultCalculateFilterExpression) {
1124
+ this.dataField = '__' + field.name + '\u0001User_username';
1125
+ return this.defaultCalculateFilterExpression.apply(this, [filterValue, selectedFilterOperation, target]);
1126
+ }
1127
+ }
1128
+ return [
1129
+ [column.name, selectedFilterOperation, filterValue],
1130
+ 'or',
1131
+ ['__' + field.name + '\u0001User_username', selectedFilterOperation, filterValue]
1132
+ ];
1133
+ };
1134
+ }
1135
+ break;
1136
+ case 'UNIT':
1137
+ column.headerFilter.dataSource = {
1138
+ store: new CustomStore({
1139
+ load: () => {
1140
+ return lastValueFrom(this.service.getUnitColumnDataSource(this.tenant, this.className, this.view, field.name));
1141
+ }
1142
+ }),
1143
+ paginate: true
1024
1144
  };
1025
- column.cellTemplate = 'multipleValueCellTemplate';
1026
- }
1027
- else {
1028
- column.dataField = '__' + field.name + '\u0001User_displayName';
1029
- column.calculateFilterExpression = function (filterValue, selectedFilterOperation, target) {
1030
- if (target === 'headerFilter') {
1145
+ if (field.config.constraint.multiple) {
1146
+ column.allowFiltering = false;
1147
+ column.lookup = {
1148
+ dataSource: {
1149
+ store: new CustomStore({
1150
+ load: () => {
1151
+ return lastValueFrom(this.service.getUnitColumnDataSource(this.tenant, this.className, this.view, field.name));
1152
+ }
1153
+ }),
1154
+ paginate: true
1155
+ },
1156
+ valueExpr: 'value',
1157
+ displayExpr: 'text'
1158
+ };
1159
+ column.calculateFilterExpression = function (filterValue, selectedFilterOperation, target) {
1031
1160
  if (this.defaultCalculateFilterExpression) {
1032
- this.dataField = '__' + field.name + '\u0001User_username';
1033
- return this.defaultCalculateFilterExpression.apply(this, [filterValue, selectedFilterOperation, target]);
1161
+ return this.defaultCalculateFilterExpression.apply(this, [filterValue, 'contains', target]);
1162
+ }
1163
+ return '';
1164
+ };
1165
+ column.cellTemplate = 'multipleValueCellTemplate';
1166
+ }
1167
+ else {
1168
+ column.dataField = '__' + field.name + '\u0001Role_displayName';
1169
+ column.calculateFilterExpression = function (filterValue, selectedFilterOperation, target) {
1170
+ if (target === 'headerFilter') {
1171
+ if (this.defaultCalculateFilterExpression) {
1172
+ this.dataField = '__' + field.name + '\u0001Role_name';
1173
+ return this.defaultCalculateFilterExpression.apply(this, [filterValue, selectedFilterOperation, target]);
1174
+ }
1175
+ }
1176
+ return [
1177
+ [column.name, selectedFilterOperation, filterValue],
1178
+ 'or',
1179
+ ['__' + field.name + '\u0001Role_name', selectedFilterOperation, filterValue]
1180
+ ];
1181
+ };
1182
+ }
1183
+ break;
1184
+ case 'CUSTOM':
1185
+ column.headerFilter.dataSource = {
1186
+ store: new CustomStore({
1187
+ load: () => {
1188
+ return lastValueFrom(this.service.getConstraintColumnDataSource(this.tenant, this.className, this.view, field.name, field.config.constraint.name));
1034
1189
  }
1035
- }
1036
- return [
1037
- [column.name, selectedFilterOperation, filterValue],
1038
- 'or',
1039
- ['__' + field.name + '\u0001User_username', selectedFilterOperation, filterValue]
1040
- ];
1190
+ }),
1191
+ paginate: true
1041
1192
  };
1042
- }
1043
- break;
1044
- case 'UNIT':
1045
- column.headerFilter.dataSource = {
1046
- store: new CustomStore({
1047
- load: () => {
1048
- return lastValueFrom(this.service.getUnitColumnDataSource(this.className, this.view, field.name));
1049
- }
1050
- }),
1051
- paginate: true
1052
- };
1053
- if (field.config.constraint.multiple) {
1054
- column.allowFiltering = false;
1055
1193
  column.lookup = {
1056
1194
  dataSource: {
1057
1195
  store: new CustomStore({
1058
1196
  load: () => {
1059
- return lastValueFrom(this.service.getUnitColumnDataSource(this.className, this.view, field.name));
1197
+ return lastValueFrom(this.service.getConstraintEntries(field.config.constraint.name));
1060
1198
  }
1061
1199
  }),
1062
1200
  paginate: true
1063
1201
  },
1064
- valueExpr: 'value',
1065
- displayExpr: 'text'
1202
+ valueExpr: 'store',
1203
+ displayExpr: 'display'
1066
1204
  };
1067
- column.calculateFilterExpression = function (filterValue, selectedFilterOperation, target) {
1068
- if (this.defaultCalculateFilterExpression) {
1069
- return this.defaultCalculateFilterExpression.apply(this, [filterValue, 'contains', target]);
1070
- }
1071
- return '';
1072
- };
1073
- column.cellTemplate = 'multipleValueCellTemplate';
1074
- }
1075
- else {
1076
- column.dataField = '__' + field.name + '\u0001Role_displayName';
1077
- column.calculateFilterExpression = function (filterValue, selectedFilterOperation, target) {
1078
- if (target === 'headerFilter') {
1205
+ column.filterOperations = [];
1206
+ if (field.config.constraint.multiple) {
1207
+ column.calculateFilterExpression = function (filterValue, selectedFilterOperation, target) {
1079
1208
  if (this.defaultCalculateFilterExpression) {
1080
- this.dataField = '__' + field.name + '\u0001Role_name';
1081
- return this.defaultCalculateFilterExpression.apply(this, [filterValue, selectedFilterOperation, target]);
1082
- }
1083
- }
1084
- return [
1085
- [column.name, selectedFilterOperation, filterValue],
1086
- 'or',
1087
- ['__' + field.name + '\u0001Role_name', selectedFilterOperation, filterValue]
1088
- ];
1089
- };
1090
- }
1091
- break;
1092
- case 'CUSTOM':
1093
- column.headerFilter.dataSource = {
1094
- store: new CustomStore({
1095
- load: () => {
1096
- return lastValueFrom(this.service.getConstraintColumnDataSource(this.className, this.view, field.name, field.config.constraint.name));
1097
- }
1098
- }),
1099
- paginate: true
1100
- };
1101
- column.lookup = {
1102
- dataSource: {
1103
- store: new CustomStore({
1104
- load: () => {
1105
- return lastValueFrom(this.service.getConstraintEntries(field.config.constraint.name));
1209
+ return this.defaultCalculateFilterExpression.apply(this, [filterValue, 'contains', target]);
1106
1210
  }
1107
- }),
1108
- paginate: true
1109
- },
1110
- valueExpr: 'store',
1111
- displayExpr: 'display'
1112
- };
1113
- column.filterOperations = [];
1114
- if (field.config.constraint.multiple) {
1115
- column.calculateFilterExpression = function (filterValue, selectedFilterOperation, target) {
1116
- if (this.defaultCalculateFilterExpression) {
1117
- return this.defaultCalculateFilterExpression.apply(this, [filterValue, 'contains', target]);
1118
- }
1119
- return '';
1120
- };
1121
- }
1122
- column.cellTemplate = 'multipleValueCellTemplate';
1123
- break;
1124
- }
1125
- break;
1126
- case 'TEXT':
1127
- column.allowHeaderFiltering = false;
1128
- column.width = 240;
1129
- column.cellTemplate = 'textCellTemplate';
1130
- break;
1131
- }
1132
- }
1133
- else if (field.type === 'RELATION') {
1134
- columns.push({
1135
- dataField: field.name,
1136
- caption: field.caption,
1137
- dataType: 'string',
1138
- alignment: 'left',
1139
- allowHeaderFiltering: false,
1140
- filterOperations: ['='],
1141
- visible: field.visible
1142
- });
1211
+ return '';
1212
+ };
1213
+ }
1214
+ column.cellTemplate = 'multipleValueCellTemplate';
1215
+ break;
1216
+ }
1217
+ break;
1218
+ case 'TEXT':
1219
+ column.allowHeaderFiltering = false;
1220
+ column.cellTemplate = 'textCellTemplate';
1221
+ break;
1222
+ }
1223
+ break;
1224
+ case 'RELATION':
1225
+ switch (field.relationType) {
1226
+ case 'MANY_TO_MANY':
1227
+ case 'ONE_TO_MANY':
1228
+ columns.push({
1229
+ dataField: field.name,
1230
+ caption: field.caption,
1231
+ dataType: 'string',
1232
+ alignment: 'left',
1233
+ allowHeaderFiltering: false,
1234
+ allowFiltering: false,
1235
+ visible: field.visible
1236
+ });
1237
+ break;
1238
+ case 'MANY_TO_ONE':
1239
+ case 'ONE_TO_ONE':
1240
+ columns.push({
1241
+ dataField: field.name,
1242
+ caption: field.caption,
1243
+ dataType: 'string',
1244
+ alignment: 'left',
1245
+ allowHeaderFiltering: false,
1246
+ filterOperations: ['='],
1247
+ visible: field.visible
1248
+ });
1249
+ break;
1250
+ }
1143
1251
  }
1144
1252
  }
1145
1253
  if (this.customColumnFn) {
@@ -1200,15 +1308,12 @@ class DataGridComponent {
1200
1308
  }
1201
1309
  });
1202
1310
  }
1203
- convertMultipleValueCellText(cellInfo, wrap) {
1311
+ convertMultipleValueCellText(cellInfo) {
1204
1312
  if (!cellInfo.value) {
1205
1313
  return;
1206
1314
  }
1207
1315
  if (Array.isArray(cellInfo.value)) {
1208
- if (wrap) {
1209
- return cellInfo.value.map((item) => cellInfo.column.lookup.calculateCellValue(item)).join('<br />');
1210
- }
1211
- return cellInfo.value.map((item) => cellInfo.column.lookup.calculateCellValue(item)).join(';');
1316
+ return cellInfo.value.map((item) => cellInfo.column.lookup.calculateCellValue(item)).join('<br />');
1212
1317
  }
1213
1318
  return cellInfo.column.lookup.calculateCellValue(cellInfo.value);
1214
1319
  }
@@ -1224,10 +1329,10 @@ class DataGridComponent {
1224
1329
  }
1225
1330
  }
1226
1331
  DataGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridComponent, deps: [{ token: DataGridService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
1227
- DataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DataGridComponent, selector: "rs-data-grid", inputs: { tenant: "tenant", className: "className", view: "view", filter: "filter", enableMasterDetail: "enableMasterDetail", customColumnFn: "customColumnFn" }, providers: [DataGridService], queries: [{ propertyName: "masterDetailTemplate", first: true, predicate: MasterDetailTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "dxDataGrid", first: true, predicate: DxDataGridComponent, descendants: true, static: true }], ngImport: i0, template: "<dx-data-grid [dataSource]=\"dataSource\"\n [columns]=\"columns\"\n [syncLookupFilterValues]=\"false\"\n [showBorders]=\"true\"\n [showColumnLines]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [columnAutoWidth]=\"true\"\n [allowColumnResizing]=\"true\"\n columnResizingMode=\"widget\"\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\n (onRowExpanding)=\"$event.component.collapseAll(-1)\"\n>\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n <dxo-selection mode=\"multiple\" selectAllMode=\"page\"></dxo-selection>\n <dxo-header-filter [visible]=\"true\">\n <dxo-search [enabled]=\"true\"></dxo-search>\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\n </dxo-header-filter>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-remote-operations [filtering]=\"true\"\n [sorting]=\"true\"\n [paging]=\"true\">\n </dxo-remote-operations>\n <dxo-master-detail [enabled]=\"enableMasterDetail\" template=\"masterDetailTemplate\"></dxo-master-detail>\n <dxo-paging [pageSize]=\"15\"></dxo-paging>\n <dxo-pager [visible]=\"true\"\n [showInfo]=\"true\"\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\n [showPageSizeSelector]=\"true\"\n [allowedPageSizes]=\"[15, 30, 50]\"\n ></dxo-pager>\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\n <dxo-export [allowExportSelectedData]=\"true\"\n [fileName]=\"className\"></dxo-export>\n <div *dxTemplate=\"let rowInfo of 'masterDetailTemplate'\">\n <ng-container [ngTemplateOutlet]=\"masterDetailTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: rowInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\n {{cellInfo.rowIndex + 1}}\n </div>\n <div *dxTemplate=\"let cellInfo of 'multipleValueCellTemplate'\">\n <div dPopover #textDiv\n [content]=\"convertMultipleValueCellText(cellInfo, true)\"\n [controlled]=\"textDiv.clientWidth < textDiv.scrollWidth\"\n [popoverStyle]=\"{ backgroundColor: '#fff', color: 'rgb(51, 51, 51)' }\"\n style=\"text-overflow: ellipsis; overflow: hidden;\"\n [ngStyle]=\"{ cursor: textDiv.clientWidth < textDiv.scrollWidth ? 'pointer': 'default'}\">\n {{convertMultipleValueCellText(cellInfo)}}\n </div>\n </div>\n <div *dxTemplate=\"let cellInfo of 'textCellTemplate'\">\n <div dPopover #textDiv\n [content]=\"cellInfo.value\"\n [controlled]=\"textDiv.clientWidth < textDiv.scrollWidth\"\n [popMaxWidth]=\"300\"\n [popoverStyle]=\"{ backgroundColor: '#fff', color: 'rgb(51, 51, 51)' }\"\n style=\"text-overflow: ellipsis; overflow: hidden;\"\n [ngStyle]=\"{ cursor: textDiv.clientWidth < textDiv.scrollWidth ? 'pointer': 'default'}\">{{cellInfo.value}}</div>\n </div>\n</dx-data-grid>\n", styles: [":host{display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i4.DxoSearchComponent, selector: "dxo-search", inputs: ["editorOptions", "enabled", "timeout", "mode", "searchExpr"] }, { kind: "component", type: i4.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "recursive", "selectByClick", "deferred", "mode", "selectAllMode", "showCheckBoxesMode"] }, { kind: "component", type: i4.DxoTextsComponent, selector: "dxo-texts", inputs: ["fix", "leftPosition", "rightPosition", "unfix", "addRow", "cancelAllChanges", "cancelRowChanges", "confirmDeleteMessage", "confirmDeleteTitle", "deleteRow", "editRow", "saveAllChanges", "saveRowChanges", "undeleteRow", "validationCancelChanges", "exportAll", "exportSelectedRows", "exportTo", "clearFilter", "createFilter", "filterEnabledHint", "groupByThisColumn", "groupContinuedMessage", "groupContinuesMessage", "ungroup", "ungroupAll", "cancel", "emptyValue", "ok", "avg", "avgOtherColumn", "count", "max", "maxOtherColumn", "min", "minOtherColumn", "sum", "sumOtherColumn", "allFields", "columnFields", "dataFields", "filterFields", "rowFields", "columnFieldArea", "dataFieldArea", "filterFieldArea", "rowFieldArea", "collapseAll", "dataNotAvailable", "expandAll", "exportToExcel", "grandTotal", "noData", "removeAllSorting", "showFieldChooser", "sortColumnBySummary", "sortRowBySummary", "total", "addRowToNode"] }, { kind: "component", type: i4.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "allowSelectAll", "dataSource", "groupInterval", "height", "search", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i4.DxoExportComponent, selector: "dxo-export", inputs: ["backgroundColor", "enabled", "fileName", "formats", "margin", "printingEnabled", "svgToCanvas", "allowExportSelectedData", "texts"] }, { kind: "component", type: i4.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i4.DxoMasterDetailComponent, selector: "dxo-master-detail", inputs: ["autoExpandAll", "enabled", "template"] }, { kind: "component", type: i4.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i4.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i4.DxoRemoteOperationsComponent, selector: "dxo-remote-operations", inputs: ["filtering", "grouping", "groupPaging", "paging", "sorting", "summary"] }, { kind: "component", type: i4.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i4.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "directive", type: i5$1.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "directive", type: i6.PopoverDirective, selector: "[dPopover]", inputs: ["content", "controlled", "position", "showAnimation", "showAnimate", "scrollElement", "appendToBody", "zIndex", "popType", "popMaxWidth", "trigger", "hoverToContent", "hoverDelayTime", "popoverStyle", "mouseEnterDelay", "mouseLeaveDelay", "visible"], exportAs: ["dPopover"] }] });
1332
+ DataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DataGridComponent, selector: "rs-data-grid", inputs: { tenant: "tenant", className: "className", view: "view", filter: "filter", enableMasterDetail: "enableMasterDetail", customColumnFn: "customColumnFn" }, providers: [DataGridService], queries: [{ propertyName: "masterDetailTemplate", first: true, predicate: MasterDetailTemplateDirective, descendants: true }, { propertyName: "rowButtonsTemplate", first: true, predicate: RowButtonsTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "dxDataGrid", first: true, predicate: DxDataGridComponent, descendants: true, static: true }], ngImport: i0, template: "<dx-data-grid [dataSource]=\"dataSource\"\n [columns]=\"columns\"\n [syncLookupFilterValues]=\"false\"\n [showBorders]=\"true\"\n [showColumnLines]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [columnAutoWidth]=\"true\"\n [allowColumnResizing]=\"true\"\n columnResizingMode=\"widget\"\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\n (onRowExpanding)=\"$event.component.collapseAll(-1)\"\n>\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n <dxo-selection mode=\"multiple\" selectAllMode=\"page\"></dxo-selection>\n <dxo-header-filter [visible]=\"true\">\n <dxo-search [enabled]=\"true\"></dxo-search>\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\n </dxo-header-filter>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-remote-operations [filtering]=\"true\"\n [sorting]=\"true\"\n [paging]=\"true\">\n </dxo-remote-operations>\n <dxo-master-detail [enabled]=\"enableMasterDetail\" template=\"masterDetailTemplate\"></dxo-master-detail>\n <dxo-paging [pageSize]=\"15\"></dxo-paging>\n <dxo-pager [visible]=\"true\"\n [showInfo]=\"true\"\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\n [showPageSizeSelector]=\"true\"\n [allowedPageSizes]=\"[15, 30, 50]\"\n ></dxo-pager>\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\n <dxo-export [allowExportSelectedData]=\"true\"\n [fileName]=\"className\"></dxo-export>\n <div *dxTemplate=\"let rowInfo of 'masterDetailTemplate'\">\n <ng-container [ngTemplateOutlet]=\"masterDetailTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: rowInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let rowInfo of 'rowButtonsTemplate'\">\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: rowInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\n {{cellInfo.rowIndex + 1}}\n </div>\n <div *dxTemplate=\"let cellInfo of 'multipleValueCellTemplate'\">\n <div [innerHTML]=\"convertMultipleValueCellText(cellInfo)\"></div>\n </div>\n <div *dxTemplate=\"let cellInfo of 'textCellTemplate'\">\n <div dPopover #textDiv\n [content]=\"cellInfo.value\"\n [trigger]=\"'hover'\"\n [controlled]=\"textDiv.clientWidth < textDiv.scrollWidth\"\n [popMaxWidth]=\"300\"\n style=\"max-width: 240px; text-overflow: ellipsis; overflow: hidden;\"\n [ngStyle]=\"{ cursor: textDiv.clientWidth < textDiv.scrollWidth ? 'pointer': 'default'}\">{{cellInfo.value}}</div>\n </div>\n <div *dxTemplate=\"let cellInfo of 'fileCellTemplate'\">\n <ng-container *ngFor=\"let file of cellInfo.value\">\n <rs-file-cell-template [template]=\"cellInfo\" [oid]=\"file\"></rs-file-cell-template>\n </ng-container>\n </div>\n</dx-data-grid>\n", styles: [":host{display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3$1.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i4.DxoSearchComponent, selector: "dxo-search", inputs: ["editorOptions", "enabled", "timeout", "mode", "searchExpr"] }, { kind: "component", type: i4.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "recursive", "selectByClick", "deferred", "mode", "selectAllMode", "showCheckBoxesMode"] }, { kind: "component", type: i4.DxoTextsComponent, selector: "dxo-texts", inputs: ["fix", "leftPosition", "rightPosition", "unfix", "addRow", "cancelAllChanges", "cancelRowChanges", "confirmDeleteMessage", "confirmDeleteTitle", "deleteRow", "editRow", "saveAllChanges", "saveRowChanges", "undeleteRow", "validationCancelChanges", "exportAll", "exportSelectedRows", "exportTo", "clearFilter", "createFilter", "filterEnabledHint", "groupByThisColumn", "groupContinuedMessage", "groupContinuesMessage", "ungroup", "ungroupAll", "cancel", "emptyValue", "ok", "avg", "avgOtherColumn", "count", "max", "maxOtherColumn", "min", "minOtherColumn", "sum", "sumOtherColumn", "allFields", "columnFields", "dataFields", "filterFields", "rowFields", "columnFieldArea", "dataFieldArea", "filterFieldArea", "rowFieldArea", "collapseAll", "dataNotAvailable", "expandAll", "exportToExcel", "grandTotal", "noData", "removeAllSorting", "showFieldChooser", "sortColumnBySummary", "sortRowBySummary", "total", "addRowToNode"] }, { kind: "component", type: i4.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "allowSelectAll", "dataSource", "groupInterval", "height", "search", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i4.DxoExportComponent, selector: "dxo-export", inputs: ["backgroundColor", "enabled", "fileName", "formats", "margin", "printingEnabled", "svgToCanvas", "allowExportSelectedData", "texts"] }, { kind: "component", type: i4.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i4.DxoMasterDetailComponent, selector: "dxo-master-detail", inputs: ["autoExpandAll", "enabled", "template"] }, { kind: "component", type: i4.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i4.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i4.DxoRemoteOperationsComponent, selector: "dxo-remote-operations", inputs: ["filtering", "grouping", "groupPaging", "paging", "sorting", "summary"] }, { kind: "component", type: i4.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i4.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "directive", type: i5$1.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "directive", type: i3.PopoverDirective, selector: "[dPopover]", inputs: ["content", "controlled", "position", "showAnimation", "showAnimate", "scrollElement", "appendToBody", "zIndex", "popType", "popMaxWidth", "trigger", "hoverToContent", "hoverDelayTime", "popoverStyle", "mouseEnterDelay", "mouseLeaveDelay", "visible"], exportAs: ["dPopover"] }, { kind: "component", type: FileCellTemplateComponent, selector: "rs-file-cell-template", inputs: ["template", "oid"] }] });
1228
1333
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridComponent, decorators: [{
1229
1334
  type: Component,
1230
- args: [{ selector: 'rs-data-grid', providers: [DataGridService], template: "<dx-data-grid [dataSource]=\"dataSource\"\n [columns]=\"columns\"\n [syncLookupFilterValues]=\"false\"\n [showBorders]=\"true\"\n [showColumnLines]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [columnAutoWidth]=\"true\"\n [allowColumnResizing]=\"true\"\n columnResizingMode=\"widget\"\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\n (onRowExpanding)=\"$event.component.collapseAll(-1)\"\n>\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n <dxo-selection mode=\"multiple\" selectAllMode=\"page\"></dxo-selection>\n <dxo-header-filter [visible]=\"true\">\n <dxo-search [enabled]=\"true\"></dxo-search>\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\n </dxo-header-filter>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-remote-operations [filtering]=\"true\"\n [sorting]=\"true\"\n [paging]=\"true\">\n </dxo-remote-operations>\n <dxo-master-detail [enabled]=\"enableMasterDetail\" template=\"masterDetailTemplate\"></dxo-master-detail>\n <dxo-paging [pageSize]=\"15\"></dxo-paging>\n <dxo-pager [visible]=\"true\"\n [showInfo]=\"true\"\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\n [showPageSizeSelector]=\"true\"\n [allowedPageSizes]=\"[15, 30, 50]\"\n ></dxo-pager>\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\n <dxo-export [allowExportSelectedData]=\"true\"\n [fileName]=\"className\"></dxo-export>\n <div *dxTemplate=\"let rowInfo of 'masterDetailTemplate'\">\n <ng-container [ngTemplateOutlet]=\"masterDetailTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: rowInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\n {{cellInfo.rowIndex + 1}}\n </div>\n <div *dxTemplate=\"let cellInfo of 'multipleValueCellTemplate'\">\n <div dPopover #textDiv\n [content]=\"convertMultipleValueCellText(cellInfo, true)\"\n [controlled]=\"textDiv.clientWidth < textDiv.scrollWidth\"\n [popoverStyle]=\"{ backgroundColor: '#fff', color: 'rgb(51, 51, 51)' }\"\n style=\"text-overflow: ellipsis; overflow: hidden;\"\n [ngStyle]=\"{ cursor: textDiv.clientWidth < textDiv.scrollWidth ? 'pointer': 'default'}\">\n {{convertMultipleValueCellText(cellInfo)}}\n </div>\n </div>\n <div *dxTemplate=\"let cellInfo of 'textCellTemplate'\">\n <div dPopover #textDiv\n [content]=\"cellInfo.value\"\n [controlled]=\"textDiv.clientWidth < textDiv.scrollWidth\"\n [popMaxWidth]=\"300\"\n [popoverStyle]=\"{ backgroundColor: '#fff', color: 'rgb(51, 51, 51)' }\"\n style=\"text-overflow: ellipsis; overflow: hidden;\"\n [ngStyle]=\"{ cursor: textDiv.clientWidth < textDiv.scrollWidth ? 'pointer': 'default'}\">{{cellInfo.value}}</div>\n </div>\n</dx-data-grid>\n", styles: [":host{display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"] }]
1335
+ args: [{ selector: 'rs-data-grid', providers: [DataGridService], template: "<dx-data-grid [dataSource]=\"dataSource\"\n [columns]=\"columns\"\n [syncLookupFilterValues]=\"false\"\n [showBorders]=\"true\"\n [showColumnLines]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [columnAutoWidth]=\"true\"\n [allowColumnResizing]=\"true\"\n columnResizingMode=\"widget\"\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\n (onRowExpanding)=\"$event.component.collapseAll(-1)\"\n>\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n <dxo-selection mode=\"multiple\" selectAllMode=\"page\"></dxo-selection>\n <dxo-header-filter [visible]=\"true\">\n <dxo-search [enabled]=\"true\"></dxo-search>\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\n </dxo-header-filter>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-remote-operations [filtering]=\"true\"\n [sorting]=\"true\"\n [paging]=\"true\">\n </dxo-remote-operations>\n <dxo-master-detail [enabled]=\"enableMasterDetail\" template=\"masterDetailTemplate\"></dxo-master-detail>\n <dxo-paging [pageSize]=\"15\"></dxo-paging>\n <dxo-pager [visible]=\"true\"\n [showInfo]=\"true\"\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\n [showPageSizeSelector]=\"true\"\n [allowedPageSizes]=\"[15, 30, 50]\"\n ></dxo-pager>\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\n <dxo-export [allowExportSelectedData]=\"true\"\n [fileName]=\"className\"></dxo-export>\n <div *dxTemplate=\"let rowInfo of 'masterDetailTemplate'\">\n <ng-container [ngTemplateOutlet]=\"masterDetailTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: rowInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let rowInfo of 'rowButtonsTemplate'\">\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: rowInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\n {{cellInfo.rowIndex + 1}}\n </div>\n <div *dxTemplate=\"let cellInfo of 'multipleValueCellTemplate'\">\n <div [innerHTML]=\"convertMultipleValueCellText(cellInfo)\"></div>\n </div>\n <div *dxTemplate=\"let cellInfo of 'textCellTemplate'\">\n <div dPopover #textDiv\n [content]=\"cellInfo.value\"\n [trigger]=\"'hover'\"\n [controlled]=\"textDiv.clientWidth < textDiv.scrollWidth\"\n [popMaxWidth]=\"300\"\n style=\"max-width: 240px; text-overflow: ellipsis; overflow: hidden;\"\n [ngStyle]=\"{ cursor: textDiv.clientWidth < textDiv.scrollWidth ? 'pointer': 'default'}\">{{cellInfo.value}}</div>\n </div>\n <div *dxTemplate=\"let cellInfo of 'fileCellTemplate'\">\n <ng-container *ngFor=\"let file of cellInfo.value\">\n <rs-file-cell-template [template]=\"cellInfo\" [oid]=\"file\"></rs-file-cell-template>\n </ng-container>\n </div>\n</dx-data-grid>\n", styles: [":host{display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"] }]
1231
1336
  }], ctorParameters: function () { return [{ type: DataGridService }, { type: undefined, decorators: [{
1232
1337
  type: Inject,
1233
1338
  args: [LOCALE_ID]
@@ -1249,16 +1354,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1249
1354
  }], masterDetailTemplate: [{
1250
1355
  type: ContentChild,
1251
1356
  args: [MasterDetailTemplateDirective]
1357
+ }], rowButtonsTemplate: [{
1358
+ type: ContentChild,
1359
+ args: [RowButtonsTemplateDirective]
1252
1360
  }] } });
1253
1361
 
1254
1362
  class DataGridModule {
1255
1363
  }
1256
1364
  DataGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1257
1365
  DataGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: DataGridModule, declarations: [DataGridComponent,
1258
- MasterDetailTemplateDirective], imports: [CommonModule,
1366
+ MasterDetailTemplateDirective,
1367
+ FileCellTemplateComponent,
1368
+ RowButtonsTemplateDirective], imports: [CommonModule,
1259
1369
  DxDataGridModule,
1260
1370
  DevUIModule], exports: [DataGridComponent,
1261
- MasterDetailTemplateDirective] });
1371
+ MasterDetailTemplateDirective,
1372
+ RowButtonsTemplateDirective] });
1262
1373
  DataGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridModule, imports: [CommonModule,
1263
1374
  DxDataGridModule,
1264
1375
  DevUIModule] });
@@ -1267,7 +1378,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1267
1378
  args: [{
1268
1379
  declarations: [
1269
1380
  DataGridComponent,
1270
- MasterDetailTemplateDirective
1381
+ MasterDetailTemplateDirective,
1382
+ FileCellTemplateComponent,
1383
+ RowButtonsTemplateDirective
1271
1384
  ],
1272
1385
  imports: [
1273
1386
  CommonModule,
@@ -1276,7 +1389,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1276
1389
  ],
1277
1390
  exports: [
1278
1391
  DataGridComponent,
1279
- MasterDetailTemplateDirective
1392
+ MasterDetailTemplateDirective,
1393
+ RowButtonsTemplateDirective
1280
1394
  ]
1281
1395
  }]
1282
1396
  }] });
@@ -1290,7 +1404,7 @@ class DynamicParamsComponent {
1290
1404
  }
1291
1405
  }
1292
1406
  DynamicParamsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DynamicParamsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1293
- DynamicParamsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DynamicParamsComponent, selector: "rs-dynamic-params", inputs: { params: "params" }, ngImport: i0, template: "<form dForm labelSize=\"sm\">\n <d-form-item>\n <d-form-label>\u52A8\u6001\u53C2\u6570</d-form-label>\n <d-form-control>\n <d-button icon=\"icon-add\" [bsSize]=\"'sm'\" (btnClick)=\"add()\"></d-button>\n </d-form-control>\n </d-form-item>\n <d-form-item>\n <d-form-label></d-form-label>\n <d-form-control>\n <div *ngFor=\"let param of params; let index = index\">\n <input dTextInput [name]=\"'name' + index\" placeholder=\"\u53C2\u6570\u540D\" [(ngModel)]=\"param.name\"/>\n <input dTextInput [name]=\"'value' + index\" placeholder=\"\u53C2\u6570\u503C\" [(ngModel)]=\"param.value\"/>\n <d-button icon=\"icon-close\" [bsStyle]=\"'text'\" (btnClick)=\"delete(index)\"></d-button>\n </div>\n </d-form-control>\n </d-form-item>\n</form>\n", styles: [":host form d-form-item{margin-bottom:8px}:host form d-form-item d-form-control{margin:0}:host form d-form-item d-form-control div{position:relative;display:flex;flex-flow:row nowrap}:host form d-form-item d-form-control div d-button{display:none;position:absolute;left:-30px}:host form d-form-item:hover d-form-control div d-button{display:inline-block!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2$2.ButtonComponent, selector: "d-button", inputs: ["id", "type", "bsStyle", "shape", "bsSize", "bsPosition", "bordered", "icon", "disabled", "showLoading", "width", "autofocus", "loadingTemplateRef"], outputs: ["btnClick"] }, { kind: "component", type: i3$1.FormItemComponent, selector: "d-form-item", inputs: ["dFeedbackType", "dHasFeedback"] }, { kind: "component", type: i3$1.FormLabelComponent, selector: "d-form-label", inputs: ["required", "hasHelp", "helpTips"] }, { kind: "component", type: i3$1.FormControlComponent, selector: "d-form-control", inputs: ["extraInfo", "feedbackStatus", "suffixTemplate"] }, { kind: "directive", type: i3$1.FormDirective, selector: "[dForm]", inputs: ["layout", "labelSize", "labelAlign", "dFeedbackType", "dHasFeedback"], outputs: ["dSubmit"], exportAs: ["dForm"] }, { kind: "directive", type: i4$1.TextDirective, selector: "[dTextInput]", inputs: ["error", "size", "styleType"], exportAs: ["dTextInput"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
1407
+ DynamicParamsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DynamicParamsComponent, selector: "rs-dynamic-params", inputs: { params: "params" }, ngImport: i0, template: "<form dForm labelSize=\"sm\">\n <d-form-item>\n <d-form-label>\u52A8\u6001\u53C2\u6570</d-form-label>\n <d-form-control>\n <d-button icon=\"icon-add\" [bsSize]=\"'sm'\" (btnClick)=\"add()\"></d-button>\n </d-form-control>\n </d-form-item>\n <d-form-item>\n <d-form-label></d-form-label>\n <d-form-control>\n <div *ngFor=\"let param of params; let index = index\">\n <input dTextInput [name]=\"'name' + index\" placeholder=\"\u53C2\u6570\u540D\" [(ngModel)]=\"param.name\"/>\n <input dTextInput [name]=\"'value' + index\" placeholder=\"\u53C2\u6570\u503C\" [(ngModel)]=\"param.value\"/>\n <d-button icon=\"icon-close\" [bsStyle]=\"'text'\" (btnClick)=\"delete(index)\"></d-button>\n </div>\n </d-form-control>\n </d-form-item>\n</form>\n", styles: [":host form d-form-item{margin-bottom:8px}:host form d-form-item d-form-control{margin:0}:host form d-form-item d-form-control div{position:relative;display:flex;flex-flow:row nowrap}:host form d-form-item d-form-control div d-button{display:none;position:absolute;left:-30px}:host form d-form-item:hover d-form-control div d-button{display:inline-block!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2$3.ButtonComponent, selector: "d-button", inputs: ["id", "type", "bsStyle", "shape", "bsSize", "bsPosition", "bordered", "icon", "disabled", "showLoading", "width", "autofocus", "loadingTemplateRef"], outputs: ["btnClick"] }, { kind: "component", type: i3$2.FormItemComponent, selector: "d-form-item", inputs: ["dFeedbackType", "dHasFeedback"] }, { kind: "component", type: i3$2.FormLabelComponent, selector: "d-form-label", inputs: ["required", "hasHelp", "helpTips"] }, { kind: "component", type: i3$2.FormControlComponent, selector: "d-form-control", inputs: ["extraInfo", "feedbackStatus", "suffixTemplate"] }, { kind: "directive", type: i3$2.FormDirective, selector: "[dForm]", inputs: ["layout", "labelSize", "labelAlign", "dFeedbackType", "dHasFeedback"], outputs: ["dSubmit"], exportAs: ["dForm"] }, { kind: "directive", type: i4$1.TextDirective, selector: "[dTextInput]", inputs: ["error", "size", "styleType"], exportAs: ["dTextInput"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
1294
1408
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DynamicParamsComponent, decorators: [{
1295
1409
  type: Component,
1296
1410
  args: [{ selector: 'rs-dynamic-params', template: "<form dForm labelSize=\"sm\">\n <d-form-item>\n <d-form-label>\u52A8\u6001\u53C2\u6570</d-form-label>\n <d-form-control>\n <d-button icon=\"icon-add\" [bsSize]=\"'sm'\" (btnClick)=\"add()\"></d-button>\n </d-form-control>\n </d-form-item>\n <d-form-item>\n <d-form-label></d-form-label>\n <d-form-control>\n <div *ngFor=\"let param of params; let index = index\">\n <input dTextInput [name]=\"'name' + index\" placeholder=\"\u53C2\u6570\u540D\" [(ngModel)]=\"param.name\"/>\n <input dTextInput [name]=\"'value' + index\" placeholder=\"\u53C2\u6570\u503C\" [(ngModel)]=\"param.value\"/>\n <d-button icon=\"icon-close\" [bsStyle]=\"'text'\" (btnClick)=\"delete(index)\"></d-button>\n </div>\n </d-form-control>\n </d-form-item>\n</form>\n", styles: [":host form d-form-item{margin-bottom:8px}:host form d-form-item d-form-control{margin:0}:host form d-form-item d-form-control div{position:relative;display:flex;flex-flow:row nowrap}:host form d-form-item d-form-control div d-button{display:none;position:absolute;left:-30px}:host form d-form-item:hover d-form-control div d-button{display:inline-block!important}\n"] }]
@@ -1417,7 +1531,7 @@ class FormComponent {
1417
1531
  }
1418
1532
  }
1419
1533
  FormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormComponent, deps: [{ token: FormService }], target: i0.ɵɵFactoryTarget.Component });
1420
- FormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: FormComponent, selector: "rs-form", inputs: { tenant: "tenant", className: "className", oid: "oid", copyOid: "copyOid", template: "template" }, outputs: { submitCallback: "submitCallback" }, providers: [FormService], viewQueries: [{ propertyName: "formSubmitter", first: true, predicate: ["formSubmitter"], descendants: true }], ngImport: i0, template: "<form dForm [formGroup]=\"formGroup\" [layout]=\"layoutDirection\" (dSubmit)=\"submitForm($event)\"\n dLoading [loading]=\"loading\">\n <ng-container *ngIf=\"loaded\">\n <rs-box-container [config]=\"config\" [formGroup]=\"formGroup\" [model]=\"model\"></rs-box-container>\n </ng-container>\n <button #formSubmitter dFormSubmit=\"click\"></button>\n</form>\n", styles: ["form{display:flex;flex-flow:row nowrap}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.FormDirective, selector: "[dForm]", inputs: ["layout", "labelSize", "labelAlign", "dFeedbackType", "dHasFeedback"], outputs: ["dSubmit"], exportAs: ["dForm"] }, { kind: "directive", type: i3$1.DFormSubmitDirective, selector: "[dFormSubmit]", inputs: ["dFormSubmit", "dFormSubmitData"] }, { kind: "directive", type: i4$2.LoadingDirective, selector: "[dLoading]", inputs: ["backdrop", "message", "positionType", "showLoading", "view", "zIndex", "loading", "loadingStyle", "loadingTemplateRef"], exportAs: ["dLoading"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: BoxContainerComponent, selector: "rs-box-container", inputs: ["editMode", "config", "formGroup", "model", "tabViewContainerRef"] }] });
1534
+ FormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: FormComponent, selector: "rs-form", inputs: { tenant: "tenant", className: "className", oid: "oid", copyOid: "copyOid", template: "template" }, outputs: { submitCallback: "submitCallback" }, providers: [FormService], viewQueries: [{ propertyName: "formSubmitter", first: true, predicate: ["formSubmitter"], descendants: true }], ngImport: i0, template: "<form dForm [formGroup]=\"formGroup\" [layout]=\"layoutDirection\" (dSubmit)=\"submitForm($event)\"\n dLoading [loading]=\"loading\">\n <ng-container *ngIf=\"loaded\">\n <rs-box-container [config]=\"config\" [formGroup]=\"formGroup\" [model]=\"model\"></rs-box-container>\n </ng-container>\n <button #formSubmitter dFormSubmit=\"click\"></button>\n</form>\n", styles: ["form{display:flex;flex-flow:row nowrap}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$2.FormDirective, selector: "[dForm]", inputs: ["layout", "labelSize", "labelAlign", "dFeedbackType", "dHasFeedback"], outputs: ["dSubmit"], exportAs: ["dForm"] }, { kind: "directive", type: i3$2.DFormSubmitDirective, selector: "[dFormSubmit]", inputs: ["dFormSubmit", "dFormSubmitData"] }, { kind: "directive", type: i4$2.LoadingDirective, selector: "[dLoading]", inputs: ["backdrop", "message", "positionType", "showLoading", "view", "zIndex", "loading", "loadingStyle", "loadingTemplateRef"], exportAs: ["dLoading"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: BoxContainerComponent, selector: "rs-box-container", inputs: ["editMode", "config", "formGroup", "model", "tabViewContainerRef"] }] });
1421
1535
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormComponent, decorators: [{
1422
1536
  type: Component,
1423
1537
  args: [{ selector: 'rs-form', providers: [FormService], template: "<form dForm [formGroup]=\"formGroup\" [layout]=\"layoutDirection\" (dSubmit)=\"submitForm($event)\"\n dLoading [loading]=\"loading\">\n <ng-container *ngIf=\"loaded\">\n <rs-box-container [config]=\"config\" [formGroup]=\"formGroup\" [model]=\"model\"></rs-box-container>\n </ng-container>\n <button #formSubmitter dFormSubmit=\"click\"></button>\n</form>\n", styles: ["form{display:flex;flex-flow:row nowrap}\n"] }]
@@ -1681,5 +1795,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1681
1795
  * Generated bundle index. Do not edit.
1682
1796
  */
1683
1797
 
1684
- export { BoxContainerComponent, BoxContainerModule, DataGridComponent, DataGridModule, DataGridService, DynamicParamsComponent, DynamicParamsModule, FormComponent, FormModule, FormService, ItemConfigComponent, ItemStyleComponent, MasterDetailTemplateDirective, ModalComponent, ModalModule, ModalService, PluginManager };
1798
+ export { BoxContainerComponent, BoxContainerModule, DataGridComponent, DataGridModule, DataGridService, DynamicParamsComponent, DynamicParamsModule, FormComponent, FormModule, FormService, ItemConfigComponent, ItemStyleComponent, MasterDetailTemplateDirective, ModalComponent, ModalModule, ModalService, PluginManager, RowButtonsTemplateDirective };
1685
1799
  //# sourceMappingURL=ngx-rs-ant.mjs.map