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
 
@@ -761,10 +762,11 @@ class DataGridService {
761
762
  return response.data;
762
763
  }));
763
764
  }
764
- getUserColumnDataSource(className, view, field) {
765
+ getUserColumnDataSource(tenant, className, view, field) {
765
766
  return this.http.get('api/data/custom', {
766
767
  params: {
767
768
  executor: 'com.cs.system.data.grid.header.filter.GetUserColumnDataSource',
769
+ tenant,
768
770
  className,
769
771
  view: view || '',
770
772
  field
@@ -782,10 +784,11 @@ class DataGridService {
782
784
  return response.data.list;
783
785
  }));
784
786
  }
785
- getUnitColumnDataSource(className, view, field) {
787
+ getUnitColumnDataSource(tenant, className, view, field) {
786
788
  return this.http.get('api/data/custom', {
787
789
  params: {
788
790
  executor: 'com.cs.system.data.grid.header.filter.GetUnitColumnDataSource',
791
+ tenant,
789
792
  className,
790
793
  view: view || '',
791
794
  field
@@ -803,10 +806,11 @@ class DataGridService {
803
806
  return response.data.list;
804
807
  }));
805
808
  }
806
- getConstraintColumnDataSource(className, view, field, constraintName) {
809
+ getConstraintColumnDataSource(tenant, className, view, field, constraintName) {
807
810
  return this.http.get('api/data/custom', {
808
811
  params: {
809
812
  executor: 'com.cs.system.data.grid.header.filter.GetConstraintColumnDataSource',
813
+ tenant,
810
814
  className,
811
815
  view: view || '',
812
816
  field,
@@ -837,6 +841,12 @@ class DataGridService {
837
841
  return response.data.list;
838
842
  }));
839
843
  }
844
+ downloadAttachment(id, filename, onSuccess) {
845
+ HelperUtils.downloadFileByHttpClient(this.http, 'api/file/download/' + id, {
846
+ method: 'GET',
847
+ filename
848
+ }, undefined, onSuccess);
849
+ }
840
850
  }
841
851
  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 });
842
852
  DataGridService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridService });
@@ -858,6 +868,88 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
858
868
  }]
859
869
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
860
870
 
871
+ class RowButtonsTemplateDirective {
872
+ constructor(templateRef) {
873
+ this.templateRef = templateRef;
874
+ }
875
+ }
876
+ RowButtonsTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: RowButtonsTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
877
+ RowButtonsTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: RowButtonsTemplateDirective, selector: "[rsRowButtonsTemplate]", ngImport: i0 });
878
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: RowButtonsTemplateDirective, decorators: [{
879
+ type: Directive,
880
+ args: [{
881
+ selector: '[rsRowButtonsTemplate]'
882
+ }]
883
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
884
+
885
+ class FileCellTemplateComponent {
886
+ constructor(service, domSanitizer) {
887
+ this.service = service;
888
+ this.domSanitizer = domSanitizer;
889
+ this.loading = false;
890
+ }
891
+ ngOnInit() {
892
+ this.service.getOne('S', 'Attachment', this.oid).subscribe(response => {
893
+ this.file = response.data;
894
+ this.filename = this.file.fileName;
895
+ this.content = this.domSanitizer.bypassSecurityTrustHtml(`名称:${this.file.fileName}<br />
896
+ 大小:${this.getFileSize(this.file.fileSize)}<br />
897
+ 时间:${this.file.modifyTime}`);
898
+ const type = this.file.fileName.substring(this.file.fileName.lastIndexOf('.') + 1).toLocaleLowerCase();
899
+ switch (type) {
900
+ case 'xls':
901
+ case 'xlsx':
902
+ case 'doc':
903
+ case 'docx':
904
+ case 'ppt':
905
+ case 'pptx':
906
+ case 'pdf':
907
+ case 'txt':
908
+ case 'rtf':
909
+ this.icon = type + 'file';
910
+ break;
911
+ case 'jpg':
912
+ case 'jpeg':
913
+ case 'png':
914
+ case 'gif':
915
+ this.icon = 'image';
916
+ break;
917
+ default:
918
+ this.icon = 'file';
919
+ break;
920
+ }
921
+ // 重绘,自适应列宽
922
+ this.template.component.resize();
923
+ });
924
+ }
925
+ download() {
926
+ this.loading = true;
927
+ this.service.downloadAttachment(this.oid, this.filename, () => {
928
+ this.loading = false;
929
+ });
930
+ }
931
+ getFileSize(size) {
932
+ const labels = ['b', 'Kb', 'Mb', 'Gb'];
933
+ const count = labels.length - 1;
934
+ let i = 0;
935
+ while (i < count && size >= 1024) {
936
+ size /= 1024;
937
+ i++;
938
+ }
939
+ return Math.round(size * 100) / 100 + " " + labels[i];
940
+ }
941
+ }
942
+ 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 });
943
+ 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"] }] });
944
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FileCellTemplateComponent, decorators: [{
945
+ type: Component,
946
+ 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"] }]
947
+ }], ctorParameters: function () { return [{ type: DataGridService }, { type: i2$2.DomSanitizer }]; }, propDecorators: { template: [{
948
+ type: Input
949
+ }], oid: [{
950
+ type: Input
951
+ }] } });
952
+
861
953
  class DataGridComponent {
862
954
  constructor(service, locale) {
863
955
  this.service = service;
@@ -906,247 +998,263 @@ class DataGridComponent {
906
998
  this.service.getMetadataByView(this.tenant, this.className, this.view || '').subscribe((response) => {
907
999
  const columns = [];
908
1000
  for (let field of response.data.columns) {
909
- if (field.type === 'FILE') {
910
- columns.push({
911
- dataField: field.name,
912
- caption: field.caption,
913
- dataType: 'string',
914
- alignment: 'left',
915
- allowHeaderFiltering: false,
916
- filterOperations: [],
917
- visible: field.visible
918
- });
919
- }
920
- else if (field.type === 'NORMAL') {
921
- const column = {
922
- dataField: field.name,
923
- caption: field.caption,
924
- dataType: this.typeMap[field.dataType].dataType,
925
- alignment: 'left',
926
- allowHeaderFiltering: true,
927
- headerFilter: {
928
- allowSelectAll: false
929
- },
930
- filterOperations: this.typeMap[field.dataType].filterOperations,
931
- format: this.typeMap[field.dataType].format,
932
- visible: field.visible
933
- };
934
- columns.push(column);
935
- switch (field.dataType) {
936
- case 'BOOLEAN':
937
- column.allowHeaderFiltering = false;
938
- column.alignment = 'center';
939
- column.trueText = '';
940
- column.falseText = '否';
941
- break;
942
- case 'DATE':
943
- case 'DATETIME':
944
- column.headerFilter.dataSource = (options) => {
945
- options.dataSource.group.length = 3;
946
- options.dataSource.postProcess = (data) => {
947
- data.forEach((year) => {
948
- year.text = year.key + '年';
949
- year.items.forEach((month) => {
950
- month.text = month.key + '月';
951
- month.items.forEach((day) => {
952
- day.text = day.key + '日';
953
- day.items = [];
1001
+ switch (field.type) {
1002
+ case 'FILE':
1003
+ columns.push({
1004
+ dataField: field.name,
1005
+ caption: field.caption,
1006
+ dataType: 'string',
1007
+ alignment: 'center',
1008
+ allowHeaderFiltering: false,
1009
+ allowFiltering: false,
1010
+ allowSorting: false,
1011
+ cellTemplate: 'fileCellTemplate',
1012
+ visible: field.visible
1013
+ });
1014
+ break;
1015
+ case 'NORMAL':
1016
+ const column = {
1017
+ dataField: field.name,
1018
+ caption: field.caption,
1019
+ dataType: this.typeMap[field.dataType].dataType,
1020
+ alignment: 'left',
1021
+ allowHeaderFiltering: true,
1022
+ headerFilter: {
1023
+ allowSelectAll: false
1024
+ },
1025
+ filterOperations: this.typeMap[field.dataType].filterOperations,
1026
+ format: this.typeMap[field.dataType].format,
1027
+ visible: field.visible
1028
+ };
1029
+ columns.push(column);
1030
+ switch (field.dataType) {
1031
+ case 'BOOLEAN':
1032
+ column.allowHeaderFiltering = false;
1033
+ column.alignment = 'center';
1034
+ column.trueText = '';
1035
+ column.falseText = '';
1036
+ break;
1037
+ case 'DATE':
1038
+ case 'DATETIME':
1039
+ column.headerFilter.dataSource = (options) => {
1040
+ options.dataSource.group.length = 3;
1041
+ options.dataSource.postProcess = (data) => {
1042
+ data.forEach((year) => {
1043
+ year.text = year.key + '年';
1044
+ year.items.forEach((month) => {
1045
+ month.text = month.key + '月';
1046
+ month.items.forEach((day) => {
1047
+ day.text = day.key + '日';
1048
+ day.items = [];
1049
+ });
954
1050
  });
955
1051
  });
956
- });
957
- data.unshift({
958
- key: '',
959
- value: null,
960
- text: '(空白)'
961
- });
962
- };
963
- };
964
- break;
965
- case 'DOUBLE':
966
- case 'INTEGER':
967
- column.headerFilter.dataSource = (options) => {
968
- options.dataSource.postProcess = (data) => {
969
- data.unshift({
970
- key: '',
971
- value: null,
972
- text: '(空白)'
973
- });
974
- data.push({
975
- key: '__',
976
- value: '__',
977
- text: '__',
978
- visible: false
979
- });
1052
+ data.unshift({
1053
+ key: '',
1054
+ value: null,
1055
+ text: '(空白)'
1056
+ });
1057
+ };
980
1058
  };
981
- };
982
- break;
983
- case 'STRING':
984
- column.headerFilter.dataSource = (options) => {
985
- options.dataSource.postProcess = (data) => {
986
- data.unshift({
987
- key: '',
988
- value: null,
989
- text: '(空白)'
990
- });
991
- data.push({
992
- key: '__',
993
- value: '__',
994
- text: '__',
995
- visible: false
996
- });
1059
+ break;
1060
+ case 'DOUBLE':
1061
+ case 'INTEGER':
1062
+ column.headerFilter.dataSource = (options) => {
1063
+ options.dataSource.postProcess = (data) => {
1064
+ data.unshift({
1065
+ key: '',
1066
+ value: null,
1067
+ text: '(空白)'
1068
+ });
1069
+ data.push({
1070
+ key: '__',
1071
+ value: '__',
1072
+ text: '__',
1073
+ visible: false
1074
+ });
1075
+ };
997
1076
  };
998
- };
999
- if (field.config.constraint.multiple) {
1000
- column.width = 120;
1001
- }
1002
- switch (field.config.constraint.type) {
1003
- case 'USER':
1004
- column.headerFilter.dataSource = {
1005
- store: new CustomStore({
1006
- load: () => {
1007
- return lastValueFrom(this.service.getUserColumnDataSource(this.className, this.view, field.name));
1008
- }
1009
- }),
1010
- paginate: true
1077
+ break;
1078
+ case 'STRING':
1079
+ column.headerFilter.dataSource = (options) => {
1080
+ options.dataSource.postProcess = (data) => {
1081
+ data.unshift({
1082
+ key: '',
1083
+ value: null,
1084
+ text: '(空白)'
1085
+ });
1086
+ data.push({
1087
+ key: '__',
1088
+ value: '__',
1089
+ text: '__',
1090
+ visible: false
1091
+ });
1011
1092
  };
1012
- if (field.config.constraint.multiple) {
1013
- column.allowFiltering = false;
1014
- column.lookup = {
1015
- dataSource: {
1016
- store: new CustomStore({
1017
- load: () => {
1018
- return lastValueFrom(this.service.getUserColumnDataSource(this.className, this.view, field.name));
1019
- }
1020
- }),
1021
- paginate: true
1022
- },
1023
- valueExpr: 'value',
1024
- displayExpr: 'text'
1093
+ };
1094
+ switch (field.config.constraint.type) {
1095
+ case 'USER':
1096
+ column.headerFilter.dataSource = {
1097
+ store: new CustomStore({
1098
+ load: () => {
1099
+ return lastValueFrom(this.service.getUserColumnDataSource(this.tenant, this.className, this.view, field.name));
1100
+ }
1101
+ }),
1102
+ paginate: true
1025
1103
  };
1026
- column.calculateFilterExpression = function (filterValue, selectedFilterOperation, target) {
1027
- if (this.defaultCalculateFilterExpression) {
1028
- return this.defaultCalculateFilterExpression.apply(this, [filterValue, 'contains', target]);
1029
- }
1030
- return '';
1104
+ if (field.config.constraint.multiple) {
1105
+ column.allowFiltering = false;
1106
+ column.lookup = {
1107
+ dataSource: {
1108
+ store: new CustomStore({
1109
+ load: () => {
1110
+ return lastValueFrom(this.service.getUserColumnDataSource(this.tenant, this.className, this.view, field.name));
1111
+ }
1112
+ }),
1113
+ paginate: true
1114
+ },
1115
+ valueExpr: 'value',
1116
+ displayExpr: 'text'
1117
+ };
1118
+ column.calculateFilterExpression = function (filterValue, selectedFilterOperation, target) {
1119
+ if (this.defaultCalculateFilterExpression) {
1120
+ return this.defaultCalculateFilterExpression.apply(this, [filterValue, 'contains', target]);
1121
+ }
1122
+ return '';
1123
+ };
1124
+ column.cellTemplate = 'multipleValueCellTemplate';
1125
+ }
1126
+ else {
1127
+ column.dataField = '__' + field.name + '\u0001User_displayName';
1128
+ column.calculateFilterExpression = function (filterValue, selectedFilterOperation, target) {
1129
+ if (target === 'headerFilter') {
1130
+ if (this.defaultCalculateFilterExpression) {
1131
+ this.dataField = '__' + field.name + '\u0001User_username';
1132
+ return this.defaultCalculateFilterExpression.apply(this, [filterValue, selectedFilterOperation, target]);
1133
+ }
1134
+ }
1135
+ return [
1136
+ [column.name, selectedFilterOperation, filterValue],
1137
+ 'or',
1138
+ ['__' + field.name + '\u0001User_username', selectedFilterOperation, filterValue]
1139
+ ];
1140
+ };
1141
+ }
1142
+ break;
1143
+ case 'UNIT':
1144
+ column.headerFilter.dataSource = {
1145
+ store: new CustomStore({
1146
+ load: () => {
1147
+ return lastValueFrom(this.service.getUnitColumnDataSource(this.tenant, this.className, this.view, field.name));
1148
+ }
1149
+ }),
1150
+ paginate: true
1031
1151
  };
1032
- column.cellTemplate = 'multipleValueCellTemplate';
1033
- }
1034
- else {
1035
- column.dataField = '__' + field.name + '\u0001User_displayName';
1036
- column.calculateFilterExpression = function (filterValue, selectedFilterOperation, target) {
1037
- if (target === 'headerFilter') {
1152
+ if (field.config.constraint.multiple) {
1153
+ column.allowFiltering = false;
1154
+ column.lookup = {
1155
+ dataSource: {
1156
+ store: new CustomStore({
1157
+ load: () => {
1158
+ return lastValueFrom(this.service.getUnitColumnDataSource(this.tenant, this.className, this.view, field.name));
1159
+ }
1160
+ }),
1161
+ paginate: true
1162
+ },
1163
+ valueExpr: 'value',
1164
+ displayExpr: 'text'
1165
+ };
1166
+ column.calculateFilterExpression = function (filterValue, selectedFilterOperation, target) {
1038
1167
  if (this.defaultCalculateFilterExpression) {
1039
- this.dataField = '__' + field.name + '\u0001User_username';
1040
- return this.defaultCalculateFilterExpression.apply(this, [filterValue, selectedFilterOperation, target]);
1168
+ return this.defaultCalculateFilterExpression.apply(this, [filterValue, 'contains', target]);
1169
+ }
1170
+ return '';
1171
+ };
1172
+ column.cellTemplate = 'multipleValueCellTemplate';
1173
+ }
1174
+ else {
1175
+ column.dataField = '__' + field.name + '\u0001Role_displayName';
1176
+ column.calculateFilterExpression = function (filterValue, selectedFilterOperation, target) {
1177
+ if (target === 'headerFilter') {
1178
+ if (this.defaultCalculateFilterExpression) {
1179
+ this.dataField = '__' + field.name + '\u0001Role_name';
1180
+ return this.defaultCalculateFilterExpression.apply(this, [filterValue, selectedFilterOperation, target]);
1181
+ }
1182
+ }
1183
+ return [
1184
+ [column.name, selectedFilterOperation, filterValue],
1185
+ 'or',
1186
+ ['__' + field.name + '\u0001Role_name', selectedFilterOperation, filterValue]
1187
+ ];
1188
+ };
1189
+ }
1190
+ break;
1191
+ case 'CUSTOM':
1192
+ column.headerFilter.dataSource = {
1193
+ store: new CustomStore({
1194
+ load: () => {
1195
+ return lastValueFrom(this.service.getConstraintColumnDataSource(this.tenant, this.className, this.view, field.name, field.config.constraint.name));
1041
1196
  }
1042
- }
1043
- return [
1044
- [column.name, selectedFilterOperation, filterValue],
1045
- 'or',
1046
- ['__' + field.name + '\u0001User_username', selectedFilterOperation, filterValue]
1047
- ];
1197
+ }),
1198
+ paginate: true
1048
1199
  };
1049
- }
1050
- break;
1051
- case 'UNIT':
1052
- column.headerFilter.dataSource = {
1053
- store: new CustomStore({
1054
- load: () => {
1055
- return lastValueFrom(this.service.getUnitColumnDataSource(this.className, this.view, field.name));
1056
- }
1057
- }),
1058
- paginate: true
1059
- };
1060
- if (field.config.constraint.multiple) {
1061
- column.allowFiltering = false;
1062
1200
  column.lookup = {
1063
1201
  dataSource: {
1064
1202
  store: new CustomStore({
1065
1203
  load: () => {
1066
- return lastValueFrom(this.service.getUnitColumnDataSource(this.className, this.view, field.name));
1204
+ return lastValueFrom(this.service.getConstraintEntries(field.config.constraint.name));
1067
1205
  }
1068
1206
  }),
1069
1207
  paginate: true
1070
1208
  },
1071
- valueExpr: 'value',
1072
- displayExpr: 'text'
1209
+ valueExpr: 'store',
1210
+ displayExpr: 'display'
1073
1211
  };
1074
- column.calculateFilterExpression = function (filterValue, selectedFilterOperation, target) {
1075
- if (this.defaultCalculateFilterExpression) {
1076
- return this.defaultCalculateFilterExpression.apply(this, [filterValue, 'contains', target]);
1077
- }
1078
- return '';
1079
- };
1080
- column.cellTemplate = 'multipleValueCellTemplate';
1081
- }
1082
- else {
1083
- column.dataField = '__' + field.name + '\u0001Role_displayName';
1084
- column.calculateFilterExpression = function (filterValue, selectedFilterOperation, target) {
1085
- if (target === 'headerFilter') {
1212
+ column.filterOperations = [];
1213
+ if (field.config.constraint.multiple) {
1214
+ column.calculateFilterExpression = function (filterValue, selectedFilterOperation, target) {
1086
1215
  if (this.defaultCalculateFilterExpression) {
1087
- this.dataField = '__' + field.name + '\u0001Role_name';
1088
- return this.defaultCalculateFilterExpression.apply(this, [filterValue, selectedFilterOperation, target]);
1089
- }
1090
- }
1091
- return [
1092
- [column.name, selectedFilterOperation, filterValue],
1093
- 'or',
1094
- ['__' + field.name + '\u0001Role_name', selectedFilterOperation, filterValue]
1095
- ];
1096
- };
1097
- }
1098
- break;
1099
- case 'CUSTOM':
1100
- column.headerFilter.dataSource = {
1101
- store: new CustomStore({
1102
- load: () => {
1103
- return lastValueFrom(this.service.getConstraintColumnDataSource(this.className, this.view, field.name, field.config.constraint.name));
1104
- }
1105
- }),
1106
- paginate: true
1107
- };
1108
- column.lookup = {
1109
- dataSource: {
1110
- store: new CustomStore({
1111
- load: () => {
1112
- return lastValueFrom(this.service.getConstraintEntries(field.config.constraint.name));
1216
+ return this.defaultCalculateFilterExpression.apply(this, [filterValue, 'contains', target]);
1113
1217
  }
1114
- }),
1115
- paginate: true
1116
- },
1117
- valueExpr: 'store',
1118
- displayExpr: 'display'
1119
- };
1120
- column.filterOperations = [];
1121
- if (field.config.constraint.multiple) {
1122
- column.calculateFilterExpression = function (filterValue, selectedFilterOperation, target) {
1123
- if (this.defaultCalculateFilterExpression) {
1124
- return this.defaultCalculateFilterExpression.apply(this, [filterValue, 'contains', target]);
1125
- }
1126
- return '';
1127
- };
1128
- }
1129
- column.cellTemplate = 'multipleValueCellTemplate';
1130
- break;
1131
- }
1132
- break;
1133
- case 'TEXT':
1134
- column.allowHeaderFiltering = false;
1135
- column.width = 240;
1136
- column.cellTemplate = 'textCellTemplate';
1137
- break;
1138
- }
1139
- }
1140
- else if (field.type === 'RELATION') {
1141
- columns.push({
1142
- dataField: field.name,
1143
- caption: field.caption,
1144
- dataType: 'string',
1145
- alignment: 'left',
1146
- allowHeaderFiltering: false,
1147
- filterOperations: ['='],
1148
- visible: field.visible
1149
- });
1218
+ return '';
1219
+ };
1220
+ }
1221
+ column.cellTemplate = 'multipleValueCellTemplate';
1222
+ break;
1223
+ }
1224
+ break;
1225
+ case 'TEXT':
1226
+ column.allowHeaderFiltering = false;
1227
+ column.cellTemplate = 'textCellTemplate';
1228
+ break;
1229
+ }
1230
+ break;
1231
+ case 'RELATION':
1232
+ switch (field.relationType) {
1233
+ case 'MANY_TO_MANY':
1234
+ case 'ONE_TO_MANY':
1235
+ columns.push({
1236
+ dataField: field.name,
1237
+ caption: field.caption,
1238
+ dataType: 'string',
1239
+ alignment: 'left',
1240
+ allowHeaderFiltering: false,
1241
+ allowFiltering: false,
1242
+ visible: field.visible
1243
+ });
1244
+ break;
1245
+ case 'MANY_TO_ONE':
1246
+ case 'ONE_TO_ONE':
1247
+ columns.push({
1248
+ dataField: field.name,
1249
+ caption: field.caption,
1250
+ dataType: 'string',
1251
+ alignment: 'left',
1252
+ allowHeaderFiltering: false,
1253
+ filterOperations: ['='],
1254
+ visible: field.visible
1255
+ });
1256
+ break;
1257
+ }
1150
1258
  }
1151
1259
  }
1152
1260
  if (this.customColumnFn) {
@@ -1207,15 +1315,12 @@ class DataGridComponent {
1207
1315
  }
1208
1316
  });
1209
1317
  }
1210
- convertMultipleValueCellText(cellInfo, wrap) {
1318
+ convertMultipleValueCellText(cellInfo) {
1211
1319
  if (!cellInfo.value) {
1212
1320
  return;
1213
1321
  }
1214
1322
  if (Array.isArray(cellInfo.value)) {
1215
- if (wrap) {
1216
- return cellInfo.value.map((item) => cellInfo.column.lookup.calculateCellValue(item)).join('<br />');
1217
- }
1218
- return cellInfo.value.map((item) => cellInfo.column.lookup.calculateCellValue(item)).join(';');
1323
+ return cellInfo.value.map((item) => cellInfo.column.lookup.calculateCellValue(item)).join('<br />');
1219
1324
  }
1220
1325
  return cellInfo.column.lookup.calculateCellValue(cellInfo.value);
1221
1326
  }
@@ -1231,10 +1336,10 @@ class DataGridComponent {
1231
1336
  }
1232
1337
  }
1233
1338
  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 });
1234
- 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"] }] });
1339
+ 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"] }] });
1235
1340
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridComponent, decorators: [{
1236
1341
  type: Component,
1237
- 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"] }]
1342
+ 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"] }]
1238
1343
  }], ctorParameters: function () {
1239
1344
  return [{ type: DataGridService }, { type: undefined, decorators: [{
1240
1345
  type: Inject,
@@ -1258,16 +1363,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1258
1363
  }], masterDetailTemplate: [{
1259
1364
  type: ContentChild,
1260
1365
  args: [MasterDetailTemplateDirective]
1366
+ }], rowButtonsTemplate: [{
1367
+ type: ContentChild,
1368
+ args: [RowButtonsTemplateDirective]
1261
1369
  }] } });
1262
1370
 
1263
1371
  class DataGridModule {
1264
1372
  }
1265
1373
  DataGridModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1266
1374
  DataGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: DataGridModule, declarations: [DataGridComponent,
1267
- MasterDetailTemplateDirective], imports: [CommonModule,
1375
+ MasterDetailTemplateDirective,
1376
+ FileCellTemplateComponent,
1377
+ RowButtonsTemplateDirective], imports: [CommonModule,
1268
1378
  DxDataGridModule,
1269
1379
  DevUIModule], exports: [DataGridComponent,
1270
- MasterDetailTemplateDirective] });
1380
+ MasterDetailTemplateDirective,
1381
+ RowButtonsTemplateDirective] });
1271
1382
  DataGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridModule, imports: [CommonModule,
1272
1383
  DxDataGridModule,
1273
1384
  DevUIModule] });
@@ -1276,7 +1387,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1276
1387
  args: [{
1277
1388
  declarations: [
1278
1389
  DataGridComponent,
1279
- MasterDetailTemplateDirective
1390
+ MasterDetailTemplateDirective,
1391
+ FileCellTemplateComponent,
1392
+ RowButtonsTemplateDirective
1280
1393
  ],
1281
1394
  imports: [
1282
1395
  CommonModule,
@@ -1285,7 +1398,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1285
1398
  ],
1286
1399
  exports: [
1287
1400
  DataGridComponent,
1288
- MasterDetailTemplateDirective
1401
+ MasterDetailTemplateDirective,
1402
+ RowButtonsTemplateDirective
1289
1403
  ]
1290
1404
  }]
1291
1405
  }] });
@@ -1299,7 +1413,7 @@ class DynamicParamsComponent {
1299
1413
  }
1300
1414
  }
1301
1415
  DynamicParamsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DynamicParamsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1302
- 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"] }] });
1416
+ 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"] }] });
1303
1417
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DynamicParamsComponent, decorators: [{
1304
1418
  type: Component,
1305
1419
  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"] }]
@@ -1423,7 +1537,7 @@ class FormComponent {
1423
1537
  }
1424
1538
  }
1425
1539
  FormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormComponent, deps: [{ token: FormService }], target: i0.ɵɵFactoryTarget.Component });
1426
- 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"] }] });
1540
+ 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"] }] });
1427
1541
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormComponent, decorators: [{
1428
1542
  type: Component,
1429
1543
  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"] }]
@@ -1687,5 +1801,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1687
1801
  * Generated bundle index. Do not edit.
1688
1802
  */
1689
1803
 
1690
- export { BoxContainerComponent, BoxContainerModule, DataGridComponent, DataGridModule, DataGridService, DynamicParamsComponent, DynamicParamsModule, FormComponent, FormModule, FormService, ItemConfigComponent, ItemStyleComponent, MasterDetailTemplateDirective, ModalComponent, ModalModule, ModalService, PluginManager };
1804
+ export { BoxContainerComponent, BoxContainerModule, DataGridComponent, DataGridModule, DataGridService, DynamicParamsComponent, DynamicParamsModule, FormComponent, FormModule, FormService, ItemConfigComponent, ItemStyleComponent, MasterDetailTemplateDirective, ModalComponent, ModalModule, ModalService, PluginManager, RowButtonsTemplateDirective };
1691
1805
  //# sourceMappingURL=ngx-rs-ant.mjs.map