ngx-rs-ant 1.2.8 → 1.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/box-container/box-container.component.d.ts +1 -1
  2. package/camunda-bpmn-editor/camunda-bpmn-editor.component.d.ts +1 -1
  3. package/camunda-bpmn-editor/custom/config/CustomPropertiesProvider.d.ts +1 -4
  4. package/camunda-bpmn-editor/custom/config/properties/{DescriptionProps.d.ts → user-task/TaskDescriptionProps.d.ts} +1 -1
  5. package/camunda-bpmn-editor/custom/config/properties/user-task/user-assignment/UserAssignmentProps.d.ts +2 -0
  6. package/camunda-bpmn-editor/custom/config/properties/user-task/user-assignment/UserAssignmentStaticOrDynamicProps.d.ts +6 -0
  7. package/camunda-bpmn-editor/custom/config/util/ElementUtils.d.ts +3 -1
  8. package/camunda-bpmn-editor/custom/hide-other/HideOtherContextPadProvider.d.ts +4 -0
  9. package/camunda-bpmn-editor/custom/service-task/ServiceTaskContextPadProvider.d.ts +23 -0
  10. package/camunda-bpmn-editor/custom/service-task/ServiceTaskPaletteProvider.d.ts +18 -0
  11. package/camunda-bpmn-editor/custom/service-task/index.d.ts +8 -0
  12. package/data-grid/data-grid.component.d.ts +3 -1
  13. package/data-grid/data-grid.service.d.ts +2 -0
  14. package/esm2020/box-container/box-container.component.mjs +4 -2
  15. package/esm2020/camunda-bpmn-editor/camunda-bpmn-editor.component.mjs +23 -7
  16. package/esm2020/camunda-bpmn-editor/custom/config/CustomPropertiesProvider.mjs +21 -19
  17. package/esm2020/camunda-bpmn-editor/custom/config/properties/user-task/TaskDescriptionProps.mjs +26 -0
  18. package/esm2020/camunda-bpmn-editor/custom/config/properties/user-task/user-assignment/UserAssignmentProps.mjs +5 -0
  19. package/esm2020/camunda-bpmn-editor/custom/config/properties/user-task/user-assignment/UserAssignmentStaticOrDynamicProps.mjs +32 -0
  20. package/esm2020/camunda-bpmn-editor/custom/config/util/ElementUtils.mjs +30 -9
  21. package/esm2020/camunda-bpmn-editor/custom/hide-other/HideOtherContextPadProvider.mjs +3 -1
  22. package/esm2020/camunda-bpmn-editor/custom/hide-other/HideOtherPaletteProvider.mjs +2 -1
  23. package/esm2020/camunda-bpmn-editor/custom/service-task/ServiceTaskContextPadProvider.mjs +46 -0
  24. package/esm2020/camunda-bpmn-editor/custom/service-task/ServiceTaskPaletteProvider.mjs +27 -0
  25. package/esm2020/camunda-bpmn-editor/custom/service-task/index.mjs +8 -0
  26. package/esm2020/camunda-bpmn-editor/custom/translate/translations.mjs +26 -2
  27. package/esm2020/data-detail/data-detail.component.mjs +1 -1
  28. package/esm2020/data-grid/data-grid.component.mjs +20 -14
  29. package/esm2020/data-grid/data-grid.service.mjs +3 -2
  30. package/esm2020/data-grid/file-cell-template/file-cell-template.component.mjs +18 -17
  31. package/esm2020/data-grid/unit-info-template/unit-info-template.component.mjs +8 -7
  32. package/esm2020/data-grid/user-info-template/user-info-template.component.mjs +8 -7
  33. package/esm2020/form/form.component.mjs +5 -3
  34. package/esm2020/modal/modal.component.mjs +8 -5
  35. package/fesm2015/ngx-rs-ant.mjs +285 -126
  36. package/fesm2015/ngx-rs-ant.mjs.map +1 -1
  37. package/fesm2020/ngx-rs-ant.mjs +285 -127
  38. package/fesm2020/ngx-rs-ant.mjs.map +1 -1
  39. package/form/form.component.d.ts +2 -1
  40. package/package.json +1 -1
  41. package/esm2020/camunda-bpmn-editor/custom/config/descriptors/coast.json +0 -24
  42. package/esm2020/camunda-bpmn-editor/custom/config/properties/DescriptionProps.mjs +0 -28
@@ -3,29 +3,29 @@ import { Component, Input, HostBinding, EventEmitter, Output, HostListener, View
3
3
  import { PluginFactory } from 'coast-plugin-register';
4
4
  import * as i1 from '@angular/common';
5
5
  import { CommonModule } from '@angular/common';
6
- import { Subject, ReplaySubject, Subscription, map, of, lastValueFrom, interval } from 'rxjs';
6
+ import { Subject, ReplaySubject, Subscription, map, of, lastValueFrom, debounceTime, interval } from 'rxjs';
7
7
  import * as i2 from 'devextreme-angular/ui/number-box';
8
8
  import * as i2$1 from 'devextreme-angular/ui/draggable';
9
9
  import { DevExtremeModule, DxLoadPanelModule, DxDataGridComponent, DxValidationGroupComponent } from 'devextreme-angular';
10
10
  import BpmnModeler from 'camunda-bpmn-js/lib/camunda-platform/Modeler';
11
11
  import { is } from 'bpmn-js/lib/util/ModelUtil';
12
- import { TextFieldEntry, isTextFieldEntryEdited } from '@bpmn-io/properties-panel';
12
+ import { TextAreaEntry, isTextAreaEntryEdited, SelectEntry, isSelectEntryEdited } from '@bpmn-io/properties-panel';
13
13
  import * as i6 from 'devextreme-angular/ui/load-panel';
14
- import * as i5 from 'devextreme-angular/ui/nested';
14
+ import * as i6$1 from 'devextreme-angular/ui/nested';
15
15
  import { DxoPositionModule } from 'devextreme-angular/ui/nested';
16
16
  import * as i4 from 'devextreme-angular/ui/button';
17
17
  import { HelperUtils } from 'ng-devui';
18
18
  import * as i1$1 from '@angular/common/http';
19
19
  import CustomStore from 'devextreme/data/custom_store';
20
20
  import * as i3 from 'devextreme-angular/core';
21
- import * as i4$1 from 'devextreme-angular/ui/data-grid';
22
- import * as i5$1 from 'devextreme-angular/ui/tooltip';
21
+ import * as i5$1 from 'devextreme-angular/ui/data-grid';
22
+ import * as i5 from 'devextreme-angular/ui/tooltip';
23
23
  import * as i2$2 from '@angular/platform-browser';
24
24
  import * as i3$1 from 'devextreme-angular/ui/accordion';
25
25
  import notify from 'devextreme/ui/notify';
26
26
  import * as i7 from 'devextreme-angular/ui/validation-group';
27
27
  import * as i3$2 from 'devextreme-angular/ui/text-box';
28
- import * as i4$2 from 'devextreme-angular/ui/popover';
28
+ import * as i4$1 from 'devextreme-angular/ui/popover';
29
29
 
30
30
  class DividerLineComponent {
31
31
  get _style() {
@@ -773,7 +773,7 @@ class BoxContainerComponent {
773
773
  }
774
774
  }
775
775
  BoxContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BoxContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
776
- BoxContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: BoxContainerComponent, selector: "rs-box-container", inputs: { config: "config", model: "model", params: "params", readonly: "readonly" }, viewQueries: [{ propertyName: "boxContainerContent", first: true, predicate: ["boxContainerContent"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container #boxContainerContent></ng-container>\n", styles: [":host{flex:1;position:relative;display:flex;flex-flow:row nowrap}\n"] });
776
+ BoxContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: BoxContainerComponent, selector: "rs-box-container", inputs: { config: "config", model: "model", params: "params", readonly: "readonly", tabViewContainerRef: "tabViewContainerRef" }, viewQueries: [{ propertyName: "boxContainerContent", first: true, predicate: ["boxContainerContent"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container #boxContainerContent></ng-container>\n", styles: [":host{flex:1;position:relative;display:flex;flex-flow:row nowrap}\n"] });
777
777
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BoxContainerComponent, decorators: [{
778
778
  type: Component,
779
779
  args: [{ selector: 'rs-box-container', template: "<ng-container #boxContainerContent></ng-container>\n", styles: [":host{flex:1;position:relative;display:flex;flex-flow:row nowrap}\n"] }]
@@ -785,6 +785,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
785
785
  type: Input
786
786
  }], readonly: [{
787
787
  type: Input
788
+ }], tabViewContainerRef: [{
789
+ type: Input
788
790
  }], boxContainerContent: [{
789
791
  type: ViewChild,
790
792
  args: ['boxContainerContent', { static: true, read: ViewContainerRef }]
@@ -844,16 +846,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
844
846
  }] });
845
847
 
846
848
  const translations = {
849
+ // 调色板
847
850
  'Activate the hand tool': '激活拖拽工具',
848
851
  'Activate the lasso tool': '激活框选工具',
849
852
  'Activate the create/remove space tool': '激活空间移动工具',
850
853
  'Activate the global connect tool': '激活全局连接工具',
851
854
  'Create StartEvent': '创建开始节点',
852
855
  'Create EndEvent': '创建结束节点',
853
- 'Create Gateway': '创建网关节点',
854
856
  'Create UserTask': '创建用户任务',
857
+ 'Create ServiceTask': '创建服务任务',
858
+ 'Create Gateway': '创建网关节点',
859
+ // 面板
860
+ 'Append EndEvent': '追加结束节点',
861
+ 'Append UserTask': '追加用户任务',
862
+ 'Append ServiceTask': '追加服务任务',
863
+ 'Append Gateway': '追加网关节点',
864
+ 'Connect using Sequence/MessageFlow or Association': '使用序列/消息流或关联连接',
865
+ 'Remove': '删除',
866
+ 'Set Color': '设置颜色',
867
+ 'Change type': '改变节点类型',
868
+ 'Exclusive Gateway': '互斥网关',
869
+ 'Parallel Gateway': '并行网关',
870
+ 'Default Flow': '默认流向',
871
+ 'Sequence Flow': '顺序流向',
855
872
  'Open minimap': '打开缩略图',
856
873
  'Close minimap': '关闭缩略图',
874
+ // 配置
875
+ 'General': '参数配置',
876
+ 'Name': '名称',
877
+ 'Task description': '任务描述',
878
+ 'Set assignment rule': '设置用户规则',
879
+ 'dynamic user': '动态用户',
880
+ 'static user': '静态用户',
881
+ 'dynamic role': '动态角色',
882
+ 'static role': '静态角色',
857
883
  /*
858
884
  'Create {type}': '创建{type}',
859
885
  'Create Intermediate/Boundary Event': '创建中间/边界事件',
@@ -1224,6 +1250,85 @@ var customUserTaskModule = {
1224
1250
  userTaskContextPadProvider: ['type', UserTaskContextPadProvider],
1225
1251
  };
1226
1252
 
1253
+ class ServiceTaskPaletteProvider {
1254
+ constructor(palette, translate, elementFactory, create) {
1255
+ this.translate = translate;
1256
+ this.elementFactory = elementFactory;
1257
+ this.create = create;
1258
+ palette.registerProvider(this);
1259
+ this.createServiceTask = this.createServiceTask.bind(this);
1260
+ }
1261
+ getPaletteEntries() {
1262
+ return {
1263
+ 'create.service-task': {
1264
+ group: 'activity',
1265
+ className: 'bpmn-icon-service-task',
1266
+ title: this.translate('Create ServiceTask'),
1267
+ action: {
1268
+ dragstart: this.createServiceTask,
1269
+ click: this.createServiceTask
1270
+ }
1271
+ }
1272
+ };
1273
+ }
1274
+ createServiceTask(event) {
1275
+ const shape = this.elementFactory.createShape({ type: 'bpmn:ServiceTask' });
1276
+ this.create.start(event, shape);
1277
+ }
1278
+ }
1279
+
1280
+ class ServiceTaskContextPadProvider {
1281
+ constructor(contextPad, translate, appendPreview, elementFactory, autoPlace, create) {
1282
+ this.translate = translate;
1283
+ this.appendPreview = appendPreview;
1284
+ this.elementFactory = elementFactory;
1285
+ this.autoPlace = autoPlace;
1286
+ this.create = create;
1287
+ contextPad.registerProvider(this);
1288
+ this.appendServiceTaskPreview = this.appendServiceTaskPreview.bind(this);
1289
+ this.appendServiceTask = this.appendServiceTask.bind(this);
1290
+ this.appendServiceTaskStart = this.appendServiceTaskStart.bind(this);
1291
+ }
1292
+ getContextPadEntries() {
1293
+ return {
1294
+ 'append.service-task': {
1295
+ group: 'model',
1296
+ className: 'bpmn-icon-service-task',
1297
+ title: this.translate('Append ServiceTask'),
1298
+ action: {
1299
+ hover: this.appendServiceTaskPreview,
1300
+ click: this.appendServiceTask,
1301
+ dragstart: this.appendServiceTaskStart
1302
+ }
1303
+ }
1304
+ };
1305
+ }
1306
+ appendServiceTaskPreview(event, source) {
1307
+ this.appendPreview.create(source, 'bpmn:ServiceTask');
1308
+ return () => {
1309
+ this.appendPreview.cleanUp();
1310
+ };
1311
+ }
1312
+ appendServiceTask(event, source) {
1313
+ const shape = this.elementFactory.createShape({ type: 'bpmn:ServiceTask' });
1314
+ this.autoPlace.append(source, shape);
1315
+ this.appendPreview.cleanUp();
1316
+ }
1317
+ appendServiceTaskStart(event, source) {
1318
+ const shape = this.elementFactory.createShape({ type: 'bpmn:ServiceTask' });
1319
+ this.create.start(event, shape, {
1320
+ source: source
1321
+ });
1322
+ this.appendPreview.cleanUp();
1323
+ }
1324
+ }
1325
+
1326
+ var customServiceTaskModule = {
1327
+ __init__: ['serviceTaskPaletteProvider', 'serviceTaskContextPadProvider'],
1328
+ serviceTaskPaletteProvider: ['type', ServiceTaskPaletteProvider],
1329
+ serviceTaskContextPadProvider: ['type', ServiceTaskContextPadProvider],
1330
+ };
1331
+
1227
1332
  class HideOtherPaletteProvider {
1228
1333
  constructor(palette) {
1229
1334
  this.visibleEntryKeys = [
@@ -1235,6 +1340,7 @@ class HideOtherPaletteProvider {
1235
1340
  'create.start-event',
1236
1341
  'create.end-event',
1237
1342
  'create.user-task',
1343
+ 'create.service-task',
1238
1344
  'create.exclusive-gateway',
1239
1345
  'xml'
1240
1346
  ];
@@ -1284,6 +1390,7 @@ class HideOtherContextPadProvider {
1284
1390
  else if (is(element, 'bpmn:Gateway')) {
1285
1391
  return {
1286
1392
  'append.user-task': entries['append.user-task'],
1393
+ 'append.service-task': entries['append.service-task'],
1287
1394
  'append.gateway': entries['append.gateway'],
1288
1395
  'append.end-event': entries['append.end-event'],
1289
1396
  'connect': entries['connect'],
@@ -1294,6 +1401,7 @@ class HideOtherContextPadProvider {
1294
1401
  }
1295
1402
  return {
1296
1403
  'append.user-task': entries['append.user-task'],
1404
+ 'append.service-task': entries['append.service-task'],
1297
1405
  'append.gateway': entries['append.gateway'],
1298
1406
  'append.end-event': entries['append.end-event'],
1299
1407
  'connect': entries['connect'],
@@ -1361,12 +1469,13 @@ var customHideOtherModule = {
1361
1469
  gatewayReplaceMenuProvider: ['type', GatewayReplaceMenuProvider]
1362
1470
  };
1363
1471
 
1364
- function addExtensionProperty(element, key, value, bpmnFactory, modeling) {
1472
+ const util = {};
1473
+ function addExtensionProperty(element, key, value) {
1365
1474
  let extensionElements = element.businessObject.get('extensionElements');
1366
1475
  if (!extensionElements) {
1367
- extensionElements = bpmnFactory.create('bpmn:ExtensionElements', { values: [] });
1476
+ extensionElements = util.bpmnFactory.create('bpmn:ExtensionElements', { values: [] });
1368
1477
  extensionElements.$parent = element.businessObject;
1369
- modeling.updateModdleProperties(element, element.businessObject, { extensionElements });
1478
+ util.modeling.updateModdleProperties(element, element.businessObject, { extensionElements });
1370
1479
  }
1371
1480
  let properties = null;
1372
1481
  const extensionElementValues = extensionElements.get('values');
@@ -1375,73 +1484,125 @@ function addExtensionProperty(element, key, value, bpmnFactory, modeling) {
1375
1484
  properties = existPropertiesElements[0];
1376
1485
  }
1377
1486
  if (!properties) {
1378
- properties = bpmnFactory.create('camunda:Properties', { values: [] });
1487
+ properties = util.bpmnFactory.create('camunda:Properties', { values: [] });
1379
1488
  properties.$parent = extensionElements;
1380
- modeling.updateModdleProperties(element, extensionElements, { values: [...extensionElements.get('values'), properties] });
1489
+ util.modeling.updateModdleProperties(element, extensionElements, { values: [...extensionElements.get('values'), properties] });
1381
1490
  }
1382
1491
  const propertyValues = properties.get('values');
1383
1492
  const existPropertyIndex = propertyValues.findIndex((value) => value.name === key);
1384
1493
  if (existPropertyIndex > -1) {
1385
- modeling.updateModdleProperties(element, propertyValues[existPropertyIndex], { name: key, value });
1494
+ util.modeling.updateModdleProperties(element, propertyValues[existPropertyIndex], { name: key, value });
1386
1495
  }
1387
1496
  else {
1388
- const property = bpmnFactory.create('camunda:Property', { name: key, value });
1497
+ const property = util.bpmnFactory.create('camunda:Property', { name: key, value });
1389
1498
  property.$parent = properties;
1390
- modeling.updateModdleProperties(element, properties, { values: [...properties.get('values'), property] });
1499
+ util.modeling.updateModdleProperties(element, properties, { values: [...properties.get('values'), property] });
1500
+ }
1501
+ }
1502
+ function getExtensionPropertyValue(element, key) {
1503
+ let extensionElements = element.businessObject.get('extensionElements');
1504
+ if (!extensionElements) {
1505
+ return '';
1506
+ }
1507
+ let properties = null;
1508
+ const extensionElementValues = extensionElements.get('values');
1509
+ const existPropertiesElements = extensionElementValues.filter((value) => is(value, 'camunda:Properties'));
1510
+ if (existPropertiesElements.length > 0) {
1511
+ properties = existPropertiesElements[0];
1512
+ }
1513
+ if (!properties) {
1514
+ return '';
1515
+ }
1516
+ const propertyValues = properties.get('values');
1517
+ const existPropertyIndex = propertyValues.findIndex((value) => value.name === key);
1518
+ if (existPropertyIndex > -1) {
1519
+ return propertyValues[existPropertyIndex].value;
1391
1520
  }
1392
1521
  }
1393
1522
 
1394
1523
  // @ts-ignore
1395
- class DescriptionProps {
1524
+ class TaskDescriptionProps {
1396
1525
  constructor(props) {
1397
1526
  this.id = 'Coast_taskDescription';
1398
- const { element, translate, bpmnFactory, modeling, debounce } = props;
1527
+ const { element } = props;
1399
1528
  this.component = () => {
1400
- return TextFieldEntry({
1529
+ return TextAreaEntry({
1530
+ element: element,
1401
1531
  id: this.id,
1532
+ label: util.translate('Task description'),
1533
+ getValue: () => {
1534
+ return getExtensionPropertyValue(element, this.id);
1535
+ },
1536
+ setValue: (value) => {
1537
+ addExtensionProperty(element, this.id, value);
1538
+ },
1539
+ debounce: util.debounce,
1540
+ autoResize: true
1541
+ });
1542
+ };
1543
+ this.isEdited = isTextAreaEntryEdited;
1544
+ }
1545
+ }
1546
+
1547
+ // @ts-ignore
1548
+ class UserAssignmentStaticOrDynamicProps {
1549
+ constructor(props) {
1550
+ this.id = 'Coast_userAssignment_staticOrDynamic';
1551
+ const { element } = props;
1552
+ this.component = () => {
1553
+ return SelectEntry({
1402
1554
  element: element,
1403
- label: translate('Task Description'),
1555
+ id: this.id,
1556
+ label: util.translate('Set assignment rule'),
1404
1557
  getValue: () => {
1405
- return element.businessObject.get('taskDescription') || '';
1558
+ return getExtensionPropertyValue(element, this.id);
1406
1559
  },
1407
1560
  setValue: (value) => {
1408
- modeling.updateModdleProperties(element, element.businessObject, {
1409
- 'taskDescription': value
1410
- });
1411
- addExtensionProperty(element, 'taskDescription', value, bpmnFactory, modeling);
1561
+ addExtensionProperty(element, this.id, value);
1412
1562
  },
1413
- debounce
1563
+ getOptions: () => {
1564
+ return [
1565
+ { value: '', label: util.translate('dynamic user') },
1566
+ { value: 'static_user', label: util.translate('static user') },
1567
+ { value: 'dynamic_role', label: util.translate('dynamic role') },
1568
+ { value: 'static_role', label: util.translate('static role') }
1569
+ ];
1570
+ }
1414
1571
  });
1415
1572
  };
1416
- this.isEdited = isTextFieldEntryEdited;
1573
+ this.isEdited = isSelectEntryEdited;
1417
1574
  }
1418
1575
  }
1419
1576
 
1577
+ function getUserAssignmentProps(element) {
1578
+ return [new UserAssignmentStaticOrDynamicProps(element)];
1579
+ }
1580
+
1420
1581
  class CustomPropertiesProvider {
1421
1582
  constructor(propertiesPanel, translate, bpmnFactory, modeling, debounceInput) {
1422
1583
  this.translate = translate;
1423
- this.bpmnFactory = bpmnFactory;
1424
- this.modeling = modeling;
1425
- this.debounceInput = debounceInput;
1584
+ util.translate = translate;
1585
+ util.bpmnFactory = bpmnFactory;
1586
+ util.modeling = modeling;
1587
+ util.debounce = debounceInput;
1426
1588
  propertiesPanel.registerProvider(0, this);
1427
1589
  }
1428
1590
  getGroups(element) {
1429
1591
  return ((groups) => {
1430
- if (is(element, 'bpmn:UserTask')) {
1431
- console.log(groups);
1432
- return [groups.find((group) => group.id === 'general'), {
1433
- id: 'Coast_Implementation',
1434
- label: this.translate('More config'),
1435
- entries: [new DescriptionProps({
1436
- element,
1437
- translate: this.translate,
1438
- bpmnFactory: this.bpmnFactory,
1439
- modeling: this.modeling,
1440
- debounce: this.debounceInput
1441
- })]
1442
- }];
1443
- }
1444
- return groups;
1592
+ const generalGroup = groups.find((group) => group.id === 'general');
1593
+ generalGroup.shouldOpen = true;
1594
+ console.log(generalGroup);
1595
+ if (is(element, 'bpmn:Process')) {
1596
+ generalGroup.entries.splice(1, 3);
1597
+ }
1598
+ else if (is(element, 'bpmn:UserTask')) {
1599
+ generalGroup.entries.splice(1, 1);
1600
+ generalGroup.entries.push(...[
1601
+ new TaskDescriptionProps({ element }),
1602
+ ...getUserAssignmentProps({ element })
1603
+ ]);
1604
+ }
1605
+ return [generalGroup];
1445
1606
  });
1446
1607
  }
1447
1608
  }
@@ -1451,38 +1612,6 @@ var customPropertiesPanelModule = {
1451
1612
  customPropertiesProvider: ['type', CustomPropertiesProvider]
1452
1613
  };
1453
1614
 
1454
- var name = "Coast Custom";
1455
- var prefix = "coast";
1456
- var uri = "https://c-standard.cn";
1457
- var xml = {
1458
- tagAlias: "lowerCase"
1459
- };
1460
- var associations = [
1461
- ];
1462
- var types = [
1463
- {
1464
- name: "CoastUserTask",
1465
- "extends": [
1466
- "bpmn:UserTask"
1467
- ],
1468
- properties: [
1469
- {
1470
- name: "taskDescription",
1471
- isAttr: true,
1472
- type: "String"
1473
- }
1474
- ]
1475
- }
1476
- ];
1477
- var coastModdleDescriptor = {
1478
- name: name,
1479
- prefix: prefix,
1480
- uri: uri,
1481
- xml: xml,
1482
- associations: associations,
1483
- types: types
1484
- };
1485
-
1486
1615
  class CodeEditorComponent {
1487
1616
  set code(code) {
1488
1617
  this._code = code || '';
@@ -1532,7 +1661,7 @@ class CodeEditorComponent {
1532
1661
  }
1533
1662
  }
1534
1663
  CodeEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CodeEditorComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
1535
- CodeEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: CodeEditorComponent, selector: "rs-code-editor", inputs: { code: "code", language: "language", readonly: "readonly", enableMinimap: "enableMinimap", consoleMessage: "consoleMessage" }, outputs: { codeChange: "codeChange", onContentReady: "onContentReady" }, viewQueries: [{ propertyName: "editorContainer", first: true, predicate: ["editorContainer"], descendants: true, static: true }], ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<div class=\"editor-container\" #editorContainer></div>\n<div *ngIf=\"consoleMessage\" class=\"editor-console\">{{consoleMessage}}</div>\n", styles: [":host{display:flex;flex-flow:column nowrap}:host .editor-container{flex:1}:host .editor-console{flex:0 0 30px;padding:4px;border:1px solid var(--coast-border-color, #dddddd);background-color:var(--coast-empty-color, #d4d4d4)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i5.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }] });
1664
+ CodeEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: CodeEditorComponent, selector: "rs-code-editor", inputs: { code: "code", language: "language", readonly: "readonly", enableMinimap: "enableMinimap", consoleMessage: "consoleMessage" }, outputs: { codeChange: "codeChange", onContentReady: "onContentReady" }, viewQueries: [{ propertyName: "editorContainer", first: true, predicate: ["editorContainer"], descendants: true, static: true }], ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<div class=\"editor-container\" #editorContainer></div>\n<div *ngIf=\"consoleMessage\" class=\"editor-console\">{{consoleMessage}}</div>\n", styles: [":host{display:flex;flex-flow:column nowrap}:host .editor-container{flex:1}:host .editor-console{flex:0 0 30px;padding:4px;border:1px solid var(--coast-border-color, #dddddd);background-color:var(--coast-empty-color, #d4d4d4)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i6$1.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }] });
1536
1665
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CodeEditorComponent, decorators: [{
1537
1666
  type: Component,
1538
1667
  args: [{ selector: 'rs-code-editor', template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<div class=\"editor-container\" #editorContainer></div>\n<div *ngIf=\"consoleMessage\" class=\"editor-console\">{{consoleMessage}}</div>\n", styles: [":host{display:flex;flex-flow:column nowrap}:host .editor-container{flex:1}:host .editor-console{flex:0 0 30px;padding:4px;border:1px solid var(--coast-border-color, #dddddd);background-color:var(--coast-empty-color, #d4d4d4)}\n"] }]
@@ -1558,6 +1687,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1558
1687
  class CamundaBpmnEditorComponent {
1559
1688
  constructor() {
1560
1689
  this.isShowXml = false;
1690
+ this.initialDiagram = '<?xml version="1.0" encoding="UTF-8"?>' +
1691
+ '<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
1692
+ 'xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" ' +
1693
+ 'xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" ' +
1694
+ 'xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" ' +
1695
+ 'targetNamespace="http://bpmn.io/schema/bpmn" ' +
1696
+ 'id="Definitions_1">' +
1697
+ '<bpmn:process id="Process_1" isExecutable="true">' +
1698
+ '<bpmn:startEvent id="StartEvent_1"/>' +
1699
+ '</bpmn:process>' +
1700
+ '<bpmndi:BPMNDiagram id="BPMNDiagram_1">' +
1701
+ '<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">' +
1702
+ '<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">' +
1703
+ '<dc:Bounds height="36.0" width="36.0" x="173.0" y="102.0"/>' +
1704
+ '</bpmndi:BPMNShape>' +
1705
+ '</bpmndi:BPMNPlane>' +
1706
+ '</bpmndi:BPMNDiagram>' +
1707
+ '</bpmn:definitions>';
1561
1708
  }
1562
1709
  ngAfterViewInit() {
1563
1710
  this.modeler = new BpmnModeler({
@@ -1571,19 +1718,17 @@ class CamundaBpmnEditorComponent {
1571
1718
  additionalModules: [
1572
1719
  customTranslateModule,
1573
1720
  customUserTaskModule,
1721
+ customServiceTaskModule,
1574
1722
  customHideOtherModule,
1575
1723
  customPropertiesPanelModule
1576
- ],
1577
- moddleExtensions: {
1578
- coast: coastModdleDescriptor
1579
- }
1724
+ ]
1580
1725
  });
1581
1726
  const logo = this.modeler._container.querySelector('.bjs-powered-by');
1582
1727
  if (logo) {
1583
1728
  this.modeler._container.removeChild(logo);
1584
1729
  }
1585
1730
  this.canvas = this.modeler.get('canvas');
1586
- this.modeler.createDiagram().then(() => {
1731
+ this.modeler.importXML(this.initialDiagram).then(() => {
1587
1732
  this.canvas.zoom('fit-viewport');
1588
1733
  });
1589
1734
  }
@@ -1664,6 +1809,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1664
1809
  class DataGridService {
1665
1810
  constructor(http) {
1666
1811
  this.http = http;
1812
+ this.cellTemplateLoaded$ = new EventEmitter();
1667
1813
  this.userInfoCache = {};
1668
1814
  this.unitInfoCache = {};
1669
1815
  }
@@ -2274,21 +2420,21 @@ class FileCellTemplateComponent {
2274
2420
  this.service.getOne('S', 'Attachment', this.oid).subscribe(response => {
2275
2421
  this.file = response.data;
2276
2422
  this.filename = this.file.fileName;
2277
- this.content = this.domSanitizer.bypassSecurityTrustHtml(`
2278
- <table>
2279
- <tr>
2280
- <td style="text-align: right;">名称:</td>
2281
- <td style="text-align: left;">${this.file.fileName}</td>
2282
- </tr>
2283
- <tr>
2284
- <td style="text-align: right;">大小:</td>
2285
- <td style="text-align: left;">${this.getFileSize(this.file.fileSize)}</td>
2286
- </tr>
2287
- <tr>
2288
- <td style="text-align: right;">时间:</td>
2289
- <td style="text-align: left;">${this.file.modifyTime}</td>
2290
- </tr>
2291
- </table>
2423
+ this.content = this.domSanitizer.bypassSecurityTrustHtml(`
2424
+ <table>
2425
+ <tr>
2426
+ <td style="text-align: right;">名称:</td>
2427
+ <td style="text-align: left;">${this.file.fileName}</td>
2428
+ </tr>
2429
+ <tr>
2430
+ <td style="text-align: right;">大小:</td>
2431
+ <td style="text-align: left;">${this.getFileSize(this.file.fileSize)}</td>
2432
+ </tr>
2433
+ <tr>
2434
+ <td style="text-align: right;">时间:</td>
2435
+ <td style="text-align: left;">${this.file.modifyTime}</td>
2436
+ </tr>
2437
+ </table>
2292
2438
  `);
2293
2439
  const type = this.file.fileName.substring(this.file.fileName.lastIndexOf('.') + 1).toLocaleLowerCase();
2294
2440
  switch (type) {
@@ -2332,7 +2478,8 @@ class FileCellTemplateComponent {
2332
2478
  }
2333
2479
  // 重绘表格宽高
2334
2480
  setTimeout(() => {
2335
- this.table.resize();
2481
+ //this.table.resize();
2482
+ this.service.cellTemplateLoaded$.emit();
2336
2483
  });
2337
2484
  });
2338
2485
  }
@@ -2354,7 +2501,7 @@ class FileCellTemplateComponent {
2354
2501
  }
2355
2502
  }
2356
2503
  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 });
2357
- FileCellTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: FileCellTemplateComponent, selector: "rs-file-cell-template", inputs: { table: "table", oid: "oid" }, ngImport: i0, template: "<dx-button #fileBtn type=\"default\" stylingMode=\"text\">\n <i class=\"coast-icon-file-{{icon}}\" style=\"padding-right: 4px;\"></i>\n {{filename}}\n <dx-tooltip [target]=\"fileBtn.instance.element()\"\n [position]=\"'top'\"\n [visible]=\"false\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <div [innerHTML]=\"content\"></div>\n <dx-button type=\"default\" stylingMode=\"text\" icon=\"coast-icon coast-icon-download\" text=\"\u4E0B\u8F7D\"\n (onClick)=\"download()\" [disabled]=\"loading\"></dx-button>\n </div>\n </dx-tooltip>\n</dx-button><br/>\n", styles: [":host{height:20px;padding-right:4px}:host button{color:var(--coast-default-color, #337ab7)}\n"], dependencies: [{ kind: "directive", type: i3.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i4.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i5$1.DxTooltipComponent, selector: "dx-tooltip", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showEvent", "target", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showEventChange", "targetChange", "visibleChange", "widthChange", "wrapperAttrChange"] }] });
2504
+ FileCellTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: FileCellTemplateComponent, selector: "rs-file-cell-template", inputs: { table: "table", oid: "oid" }, ngImport: i0, template: "<dx-button #fileBtn type=\"default\" stylingMode=\"text\">\n <i class=\"coast-icon-file-{{icon}}\" style=\"padding-right: 4px;\"></i>\n {{filename}}\n <dx-tooltip [target]=\"fileBtn.instance.element()\"\n [position]=\"'top'\"\n [visible]=\"false\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <div [innerHTML]=\"content\"></div>\n <dx-button type=\"default\" stylingMode=\"text\" icon=\"coast-icon coast-icon-download\" text=\"\u4E0B\u8F7D\"\n (onClick)=\"download()\" [disabled]=\"loading\"></dx-button>\n </div>\n </dx-tooltip>\n</dx-button><br/>\n", styles: [":host{height:20px;padding-right:4px}:host button{color:var(--coast-default-color, #337ab7)}\n"], dependencies: [{ kind: "directive", type: i3.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i4.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i5.DxTooltipComponent, selector: "dx-tooltip", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showEvent", "target", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showEventChange", "targetChange", "visibleChange", "widthChange", "wrapperAttrChange"] }] });
2358
2505
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FileCellTemplateComponent, decorators: [{
2359
2506
  type: Component,
2360
2507
  args: [{ selector: 'rs-file-cell-template', template: "<dx-button #fileBtn type=\"default\" stylingMode=\"text\">\n <i class=\"coast-icon-file-{{icon}}\" style=\"padding-right: 4px;\"></i>\n {{filename}}\n <dx-tooltip [target]=\"fileBtn.instance.element()\"\n [position]=\"'top'\"\n [visible]=\"false\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <div [innerHTML]=\"content\"></div>\n <dx-button type=\"default\" stylingMode=\"text\" icon=\"coast-icon coast-icon-download\" text=\"\u4E0B\u8F7D\"\n (onClick)=\"download()\" [disabled]=\"loading\"></dx-button>\n </div>\n </dx-tooltip>\n</dx-button><br/>\n", styles: [":host{height:20px;padding-right:4px}:host button{color:var(--coast-default-color, #337ab7)}\n"] }]
@@ -2375,24 +2522,25 @@ class UserInfoTemplateComponent {
2375
2522
  const userInfo = response.userInfo;
2376
2523
  let content = '<table>';
2377
2524
  for (const item of userInfo) {
2378
- content += `
2379
- <tr>
2380
- <td style="text-align: right;">${item.caption}:</td>
2381
- <td style="text-align: left;">${item.value}</td>
2382
- </tr>
2525
+ content += `
2526
+ <tr>
2527
+ <td style="text-align: right;">${item.caption}:</td>
2528
+ <td style="text-align: left;">${item.value}</td>
2529
+ </tr>
2383
2530
  `;
2384
2531
  }
2385
2532
  content += '</table>';
2386
2533
  this.content = this.domSanitizer.bypassSecurityTrustHtml(content);
2387
2534
  // 重绘表格宽高
2388
2535
  setTimeout(() => {
2389
- this.table.resize();
2536
+ //this.table.resize();
2537
+ this.service.cellTemplateLoaded$.emit();
2390
2538
  });
2391
2539
  });
2392
2540
  }
2393
2541
  }
2394
2542
  UserInfoTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: UserInfoTemplateComponent, deps: [{ token: DataGridService }, { token: i2$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
2395
- UserInfoTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: UserInfoTemplateComponent, selector: "rs-user-info-template", inputs: { table: "table", uid: "uid" }, ngImport: i0, template: "<dx-button #textDiv type=\"default\" stylingMode=\"text\">\n {{displayName}}\n <dx-tooltip [target]=\"textDiv.instance.element()\"\n [position]=\"'top'\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <div [innerHTML]=\"content\"></div>\n </div>\n </dx-tooltip>\n</dx-button>\n<br/>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i4.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i5$1.DxTooltipComponent, selector: "dx-tooltip", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showEvent", "target", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showEventChange", "targetChange", "visibleChange", "widthChange", "wrapperAttrChange"] }] });
2543
+ UserInfoTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: UserInfoTemplateComponent, selector: "rs-user-info-template", inputs: { table: "table", uid: "uid" }, ngImport: i0, template: "<dx-button #textDiv type=\"default\" stylingMode=\"text\">\n {{displayName}}\n <dx-tooltip [target]=\"textDiv.instance.element()\"\n [position]=\"'top'\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <div [innerHTML]=\"content\"></div>\n </div>\n </dx-tooltip>\n</dx-button>\n<br/>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i4.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i5.DxTooltipComponent, selector: "dx-tooltip", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showEvent", "target", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showEventChange", "targetChange", "visibleChange", "widthChange", "wrapperAttrChange"] }] });
2396
2544
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: UserInfoTemplateComponent, decorators: [{
2397
2545
  type: Component,
2398
2546
  args: [{ selector: 'rs-user-info-template', template: "<dx-button #textDiv type=\"default\" stylingMode=\"text\">\n {{displayName}}\n <dx-tooltip [target]=\"textDiv.instance.element()\"\n [position]=\"'top'\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <div [innerHTML]=\"content\"></div>\n </div>\n </dx-tooltip>\n</dx-button>\n<br/>\n" }]
@@ -2413,24 +2561,25 @@ class UnitInfoTemplateComponent {
2413
2561
  const unitInfo = response.unitInfo;
2414
2562
  let content = '<table>';
2415
2563
  for (const item of unitInfo) {
2416
- content += `
2417
- <tr>
2418
- <td style="text-align: right;">${item.caption}:</td>
2419
- <td style="text-align: left;">${item.value}</td>
2420
- </tr>
2564
+ content += `
2565
+ <tr>
2566
+ <td style="text-align: right;">${item.caption}:</td>
2567
+ <td style="text-align: left;">${item.value}</td>
2568
+ </tr>
2421
2569
  `;
2422
2570
  }
2423
2571
  content += '</table>';
2424
2572
  this.content = this.domSanitizer.bypassSecurityTrustHtml(content);
2425
2573
  // 重绘表格宽高
2426
2574
  setTimeout(() => {
2427
- this.table.resize();
2575
+ //this.table.resize();
2576
+ this.service.cellTemplateLoaded$.emit();
2428
2577
  });
2429
2578
  });
2430
2579
  }
2431
2580
  }
2432
2581
  UnitInfoTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: UnitInfoTemplateComponent, deps: [{ token: DataGridService }, { token: i2$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
2433
- UnitInfoTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: UnitInfoTemplateComponent, selector: "rs-unit-info-template", inputs: { table: "table", uid: "uid" }, ngImport: i0, template: "<dx-button #textDiv type=\"default\" stylingMode=\"text\">\n {{displayName}}\n <dx-tooltip [target]=\"textDiv.instance.element()\"\n [position]=\"'top'\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <div [innerHTML]=\"content\"></div>\n </div>\n </dx-tooltip>\n</dx-button>\n<br/>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i4.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i5$1.DxTooltipComponent, selector: "dx-tooltip", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showEvent", "target", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showEventChange", "targetChange", "visibleChange", "widthChange", "wrapperAttrChange"] }] });
2582
+ UnitInfoTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: UnitInfoTemplateComponent, selector: "rs-unit-info-template", inputs: { table: "table", uid: "uid" }, ngImport: i0, template: "<dx-button #textDiv type=\"default\" stylingMode=\"text\">\n {{displayName}}\n <dx-tooltip [target]=\"textDiv.instance.element()\"\n [position]=\"'top'\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <div [innerHTML]=\"content\"></div>\n </div>\n </dx-tooltip>\n</dx-button>\n<br/>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i4.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i5.DxTooltipComponent, selector: "dx-tooltip", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showEvent", "target", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showEventChange", "targetChange", "visibleChange", "widthChange", "wrapperAttrChange"] }] });
2434
2583
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: UnitInfoTemplateComponent, decorators: [{
2435
2584
  type: Component,
2436
2585
  args: [{ selector: 'rs-unit-info-template', template: "<dx-button #textDiv type=\"default\" stylingMode=\"text\">\n {{displayName}}\n <dx-tooltip [target]=\"textDiv.instance.element()\"\n [position]=\"'top'\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <div [innerHTML]=\"content\"></div>\n </div>\n </dx-tooltip>\n</dx-button>\n<br/>\n" }]
@@ -2441,8 +2590,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
2441
2590
  }] } });
2442
2591
 
2443
2592
  class DataGridComponent {
2444
- constructor(factory) {
2593
+ constructor(factory, service) {
2445
2594
  this.factory = factory;
2595
+ this.service = service;
2446
2596
  this.enableMasterDetail = false;
2447
2597
  this.selectionMode = 'none';
2448
2598
  this.onDxDataGridCellPrepared = new EventEmitter();
@@ -2453,6 +2603,9 @@ class DataGridComponent {
2453
2603
  }
2454
2604
  ngOnInit() {
2455
2605
  this.reload();
2606
+ this.service.cellTemplateLoaded$.pipe(debounceTime(200)).subscribe(() => {
2607
+ this.dxDataGrid.instance.resize();
2608
+ });
2456
2609
  }
2457
2610
  reload() {
2458
2611
  this.columns.length = 0;
@@ -2521,12 +2674,12 @@ class DataGridComponent {
2521
2674
  }
2522
2675
  }
2523
2676
  }
2524
- DataGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridComponent, deps: [{ token: DataGridFactory }], target: i0.ɵɵFactoryTarget.Component });
2525
- 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", selectionMode: "selectionMode", customColumnFn: "customColumnFn" }, outputs: { onDxDataGridCellPrepared: "onDxDataGridCellPrepared", onDxDataGridContentReady: "onDxDataGridContentReady", onDxDataGridSelectionChanged: "onDxDataGridSelectionChanged" }, providers: [DataGridService], queries: [{ propertyName: "masterDetailTemplate", first: true, predicate: MasterDetailTemplateDirective, descendants: true }, { propertyName: "rowButtonsTemplate", first: true, predicate: RowButtonsTemplateDirective, descendants: true }, { propertyName: "instanceLinkTemplate", first: true, predicate: InstanceLinkTemplateDirective, 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 [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 (onCellPrepared)=\"onCellPrepared($event)\"\n (onEditorPreparing)=\"onEditorPreparing($event)\"\n (onContentReady)=\"onContentReady($event)\"\n (onSelectionChanged)=\"onSelectionChanged($event)\"\n (onRowExpanding)=\"$event.component.collapseAll(-1)\">\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></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 <div *dxTemplate=\"let cellInfo of 'masterDetailTemplate'\">\n <ng-container [ngTemplateOutlet]=\"masterDetailTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\n <ng-container [ngTemplateOutlet]=\"instanceLinkTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></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 #textDiv style=\"text-overflow: ellipsis; overflow: hidden; cursor: pointer;\">{{cellInfo.value}}</div>\n <dx-tooltip [target]=\"textDiv\"\n [position]=\"'top'\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <p style=\"max-width: 320px; text-align: left; white-space: normal;\" [innerText]=\"cellInfo.value\"></p>\n </div>\n </dx-tooltip>\n </div>\n <div *dxTemplate=\"let cellInfo of 'fileCellTemplate'\">\n <ng-container *ngFor=\"let file of cellInfo.value\">\n <rs-file-cell-template [table]=\"cellInfo.component\" [oid]=\"file\"></rs-file-cell-template>\n </ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'userCellTemplate'\">\n <ng-container *ngFor=\"let user of getOriginalValue(cellInfo, 'userInfo')\">\n <rs-user-info-template [table]=\"cellInfo.component\" [uid]=\"user\"></rs-user-info-template>\n </ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'unitCellTemplate'\">\n <ng-container *ngFor=\"let unit of getOriginalValue(cellInfo, 'unitInfo')\">\n <rs-unit-info-template [table]=\"cellInfo.component\" [uid]=\"unit\"></rs-unit-info-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: i3.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i4$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: i5.DxoSearchComponent, selector: "dxo-search", inputs: ["editorOptions", "enabled", "timeout", "mode", "searchExpr"] }, { kind: "component", type: i5.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "recursive", "selectByClick", "deferred", "mode", "selectAllMode", "showCheckBoxesMode"] }, { kind: "component", type: i5.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: i5.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "allowSelectAll", "dataSource", "groupInterval", "height", "search", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i5.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i5.DxoMasterDetailComponent, selector: "dxo-master-detail", inputs: ["autoExpandAll", "enabled", "template"] }, { kind: "component", type: i5.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i5.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i5.DxoRemoteOperationsComponent, selector: "dxo-remote-operations", inputs: ["filtering", "grouping", "groupPaging", "paging", "sorting", "summary"] }, { kind: "component", type: i5.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i5.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "component", type: i5$1.DxTooltipComponent, selector: "dx-tooltip", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showEvent", "target", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showEventChange", "targetChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: FileCellTemplateComponent, selector: "rs-file-cell-template", inputs: ["table", "oid"] }, { kind: "component", type: UserInfoTemplateComponent, selector: "rs-user-info-template", inputs: ["table", "uid"] }, { kind: "component", type: UnitInfoTemplateComponent, selector: "rs-unit-info-template", inputs: ["table", "uid"] }] });
2677
+ DataGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridComponent, deps: [{ token: DataGridFactory }, { token: DataGridService }], target: i0.ɵɵFactoryTarget.Component });
2678
+ 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", selectionMode: "selectionMode", customColumnFn: "customColumnFn" }, outputs: { onDxDataGridCellPrepared: "onDxDataGridCellPrepared", onDxDataGridContentReady: "onDxDataGridContentReady", onDxDataGridSelectionChanged: "onDxDataGridSelectionChanged" }, providers: [DataGridService], queries: [{ propertyName: "masterDetailTemplate", first: true, predicate: MasterDetailTemplateDirective, descendants: true }, { propertyName: "rowButtonsTemplate", first: true, predicate: RowButtonsTemplateDirective, descendants: true }, { propertyName: "instanceLinkTemplate", first: true, predicate: InstanceLinkTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "dxDataGrid", first: true, predicate: DxDataGridComponent, descendants: true, static: true }], ngImport: i0, template: "<dx-data-grid [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [syncLookupFilterValues]=\"false\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\r\n (onCellPrepared)=\"onCellPrepared($event)\"\r\n (onEditorPreparing)=\"onEditorPreparing($event)\"\r\n (onContentReady)=\"onContentReady($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged($event)\"\r\n (onRowExpanding)=\"$event.component.collapseAll(-1)\">\r\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\r\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\r\n <dxo-header-filter [visible]=\"true\">\r\n <dxo-search [enabled]=\"true\"></dxo-search>\r\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\r\n </dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-remote-operations [filtering]=\"true\"\r\n [sorting]=\"true\"\r\n [paging]=\"true\">\r\n </dxo-remote-operations>\r\n <dxo-master-detail [enabled]=\"enableMasterDetail\" template=\"masterDetailTemplate\"></dxo-master-detail>\r\n <dxo-paging [pageSize]=\"15\"></dxo-paging>\r\n <dxo-pager [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\r\n [showPageSizeSelector]=\"true\"\r\n [allowedPageSizes]=\"[15, 30, 50]\"\r\n ></dxo-pager>\r\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\r\n <div *dxTemplate=\"let cellInfo of 'masterDetailTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"masterDetailTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"instanceLinkTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\r\n {{cellInfo.rowIndex + 1}}\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'multipleValueCellTemplate'\">\r\n <div [innerHTML]=\"convertMultipleValueCellText(cellInfo)\"></div>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'textCellTemplate'\">\r\n <div #textDiv style=\"text-overflow: ellipsis; overflow: hidden; cursor: pointer;\">{{cellInfo.value}}</div>\r\n <dx-tooltip [target]=\"textDiv\"\r\n [position]=\"'top'\"\r\n [showEvent]=\"'click'\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p style=\"max-width: 320px; text-align: left; white-space: normal;\" [innerText]=\"cellInfo.value\"></p>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'fileCellTemplate'\">\r\n <ng-container *ngFor=\"let file of cellInfo.value\">\r\n <rs-file-cell-template [table]=\"cellInfo.component\" [oid]=\"file\"></rs-file-cell-template>\r\n </ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'userCellTemplate'\">\r\n <ng-container *ngFor=\"let user of getOriginalValue(cellInfo, 'userInfo')\">\r\n <rs-user-info-template [table]=\"cellInfo.component\" [uid]=\"user\"></rs-user-info-template>\r\n </ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'unitCellTemplate'\">\r\n <ng-container *ngFor=\"let unit of getOriginalValue(cellInfo, 'unitInfo')\">\r\n <rs-unit-info-template [table]=\"cellInfo.component\" [uid]=\"unit\"></rs-unit-info-template>\r\n </ng-container>\r\n </div>\r\n</dx-data-grid>\r\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: i3.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i5$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: i6$1.DxoSearchComponent, selector: "dxo-search", inputs: ["editorOptions", "enabled", "timeout", "mode", "searchExpr"] }, { kind: "component", type: i6$1.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "recursive", "selectByClick", "deferred", "mode", "selectAllMode", "showCheckBoxesMode"] }, { kind: "component", type: i6$1.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: i6$1.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "allowSelectAll", "dataSource", "groupInterval", "height", "search", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i6$1.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i6$1.DxoMasterDetailComponent, selector: "dxo-master-detail", inputs: ["autoExpandAll", "enabled", "template"] }, { kind: "component", type: i6$1.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i6$1.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i6$1.DxoRemoteOperationsComponent, selector: "dxo-remote-operations", inputs: ["filtering", "grouping", "groupPaging", "paging", "sorting", "summary"] }, { kind: "component", type: i6$1.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i6$1.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "component", type: i5.DxTooltipComponent, selector: "dx-tooltip", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showEvent", "target", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showEventChange", "targetChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: FileCellTemplateComponent, selector: "rs-file-cell-template", inputs: ["table", "oid"] }, { kind: "component", type: UserInfoTemplateComponent, selector: "rs-user-info-template", inputs: ["table", "uid"] }, { kind: "component", type: UnitInfoTemplateComponent, selector: "rs-unit-info-template", inputs: ["table", "uid"] }] });
2526
2679
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridComponent, decorators: [{
2527
2680
  type: Component,
2528
- args: [{ selector: 'rs-data-grid', providers: [DataGridService], template: "<dx-data-grid [dataSource]=\"dataSource\"\n [columns]=\"columns\"\n [syncLookupFilterValues]=\"false\"\n [showBorders]=\"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 (onCellPrepared)=\"onCellPrepared($event)\"\n (onEditorPreparing)=\"onEditorPreparing($event)\"\n (onContentReady)=\"onContentReady($event)\"\n (onSelectionChanged)=\"onSelectionChanged($event)\"\n (onRowExpanding)=\"$event.component.collapseAll(-1)\">\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></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 <div *dxTemplate=\"let cellInfo of 'masterDetailTemplate'\">\n <ng-container [ngTemplateOutlet]=\"masterDetailTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\n <ng-container [ngTemplateOutlet]=\"instanceLinkTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></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 #textDiv style=\"text-overflow: ellipsis; overflow: hidden; cursor: pointer;\">{{cellInfo.value}}</div>\n <dx-tooltip [target]=\"textDiv\"\n [position]=\"'top'\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <p style=\"max-width: 320px; text-align: left; white-space: normal;\" [innerText]=\"cellInfo.value\"></p>\n </div>\n </dx-tooltip>\n </div>\n <div *dxTemplate=\"let cellInfo of 'fileCellTemplate'\">\n <ng-container *ngFor=\"let file of cellInfo.value\">\n <rs-file-cell-template [table]=\"cellInfo.component\" [oid]=\"file\"></rs-file-cell-template>\n </ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'userCellTemplate'\">\n <ng-container *ngFor=\"let user of getOriginalValue(cellInfo, 'userInfo')\">\n <rs-user-info-template [table]=\"cellInfo.component\" [uid]=\"user\"></rs-user-info-template>\n </ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'unitCellTemplate'\">\n <ng-container *ngFor=\"let unit of getOriginalValue(cellInfo, 'unitInfo')\">\n <rs-unit-info-template [table]=\"cellInfo.component\" [uid]=\"unit\"></rs-unit-info-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"] }]
2529
- }], ctorParameters: function () { return [{ type: DataGridFactory }]; }, propDecorators: { tenant: [{
2681
+ args: [{ selector: 'rs-data-grid', providers: [DataGridService], template: "<dx-data-grid [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [syncLookupFilterValues]=\"false\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\r\n (onCellPrepared)=\"onCellPrepared($event)\"\r\n (onEditorPreparing)=\"onEditorPreparing($event)\"\r\n (onContentReady)=\"onContentReady($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged($event)\"\r\n (onRowExpanding)=\"$event.component.collapseAll(-1)\">\r\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\r\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\r\n <dxo-header-filter [visible]=\"true\">\r\n <dxo-search [enabled]=\"true\"></dxo-search>\r\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\r\n </dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-remote-operations [filtering]=\"true\"\r\n [sorting]=\"true\"\r\n [paging]=\"true\">\r\n </dxo-remote-operations>\r\n <dxo-master-detail [enabled]=\"enableMasterDetail\" template=\"masterDetailTemplate\"></dxo-master-detail>\r\n <dxo-paging [pageSize]=\"15\"></dxo-paging>\r\n <dxo-pager [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\r\n [showPageSizeSelector]=\"true\"\r\n [allowedPageSizes]=\"[15, 30, 50]\"\r\n ></dxo-pager>\r\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\r\n <div *dxTemplate=\"let cellInfo of 'masterDetailTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"masterDetailTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"instanceLinkTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\r\n {{cellInfo.rowIndex + 1}}\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'multipleValueCellTemplate'\">\r\n <div [innerHTML]=\"convertMultipleValueCellText(cellInfo)\"></div>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'textCellTemplate'\">\r\n <div #textDiv style=\"text-overflow: ellipsis; overflow: hidden; cursor: pointer;\">{{cellInfo.value}}</div>\r\n <dx-tooltip [target]=\"textDiv\"\r\n [position]=\"'top'\"\r\n [showEvent]=\"'click'\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p style=\"max-width: 320px; text-align: left; white-space: normal;\" [innerText]=\"cellInfo.value\"></p>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'fileCellTemplate'\">\r\n <ng-container *ngFor=\"let file of cellInfo.value\">\r\n <rs-file-cell-template [table]=\"cellInfo.component\" [oid]=\"file\"></rs-file-cell-template>\r\n </ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'userCellTemplate'\">\r\n <ng-container *ngFor=\"let user of getOriginalValue(cellInfo, 'userInfo')\">\r\n <rs-user-info-template [table]=\"cellInfo.component\" [uid]=\"user\"></rs-user-info-template>\r\n </ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'unitCellTemplate'\">\r\n <ng-container *ngFor=\"let unit of getOriginalValue(cellInfo, 'unitInfo')\">\r\n <rs-unit-info-template [table]=\"cellInfo.component\" [uid]=\"unit\"></rs-unit-info-template>\r\n </ng-container>\r\n </div>\r\n</dx-data-grid>\r\n", styles: [":host{display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"] }]
2682
+ }], ctorParameters: function () { return [{ type: DataGridFactory }, { type: DataGridService }]; }, propDecorators: { tenant: [{
2530
2683
  type: Input
2531
2684
  }], className: [{
2532
2685
  type: Input
@@ -2836,10 +2989,10 @@ class FormComponent {
2836
2989
  }
2837
2990
  }
2838
2991
  FormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormComponent, deps: [{ token: i0.ViewContainerRef }, { token: FormService }], target: i0.ɵɵFactoryTarget.Component });
2839
- 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", params: "params", onlyFrontEnd: "onlyFrontEnd", model: "model", readonly: "readonly" }, outputs: { submitCallback: "submitCallback" }, providers: [FormService], viewQueries: [{ propertyName: "validator", first: true, predicate: DxValidationGroupComponent, descendants: true }, { propertyName: "formSubmitter", first: true, predicate: ["formSubmitter"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<dx-validation-group *ngIf=\"!loading\">\n <rs-box-container [config]=\"config\" [model]=\"model\" [params]=\"params\" [readonly]=\"readonly\"></rs-box-container>\n <dx-button #formSubmitter [visible]=\"false\" (onClick)=\"submitForm()\"></dx-button>\n</dx-validation-group>\n", styles: [":host{padding:12px 24px 20px}:host dx-validation-group{display:flex;flex-flow:row nowrap}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: BoxContainerComponent, selector: "rs-box-container", inputs: ["config", "model", "params", "readonly"] }, { kind: "component", type: i5.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }, { kind: "component", type: i4.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i6.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i7.DxValidationGroupComponent, selector: "dx-validation-group", inputs: ["elementAttr", "height", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "elementAttrChange", "heightChange", "widthChange"] }] });
2992
+ 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", params: "params", tabViewContainerRef: "tabViewContainerRef", onlyFrontEnd: "onlyFrontEnd", model: "model", readonly: "readonly" }, outputs: { submitCallback: "submitCallback" }, providers: [FormService], viewQueries: [{ propertyName: "validator", first: true, predicate: DxValidationGroupComponent, descendants: true }, { propertyName: "formSubmitter", first: true, predicate: ["formSubmitter"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\r\n [visible]=\"loading\">\r\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\r\n</dx-load-panel>\r\n<dx-validation-group *ngIf=\"!loading\">\r\n <rs-box-container [config]=\"config\"\r\n [model]=\"model\"\r\n [params]=\"params\"\r\n [tabViewContainerRef]=\"tabViewContainerRef\"\r\n [readonly]=\"readonly\"></rs-box-container>\r\n <dx-button #formSubmitter [visible]=\"false\" (onClick)=\"submitForm()\"></dx-button>\r\n</dx-validation-group>\r\n", styles: [":host{padding:12px 24px 20px}:host dx-validation-group{display:flex;flex-flow:row nowrap}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: BoxContainerComponent, selector: "rs-box-container", inputs: ["config", "model", "params", "readonly", "tabViewContainerRef"] }, { kind: "component", type: i6$1.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }, { kind: "component", type: i4.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i6.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i7.DxValidationGroupComponent, selector: "dx-validation-group", inputs: ["elementAttr", "height", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "elementAttrChange", "heightChange", "widthChange"] }] });
2840
2993
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormComponent, decorators: [{
2841
2994
  type: Component,
2842
- args: [{ selector: 'rs-form', providers: [FormService], template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<dx-validation-group *ngIf=\"!loading\">\n <rs-box-container [config]=\"config\" [model]=\"model\" [params]=\"params\" [readonly]=\"readonly\"></rs-box-container>\n <dx-button #formSubmitter [visible]=\"false\" (onClick)=\"submitForm()\"></dx-button>\n</dx-validation-group>\n", styles: [":host{padding:12px 24px 20px}:host dx-validation-group{display:flex;flex-flow:row nowrap}\n"] }]
2995
+ args: [{ selector: 'rs-form', providers: [FormService], template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\r\n [visible]=\"loading\">\r\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\r\n</dx-load-panel>\r\n<dx-validation-group *ngIf=\"!loading\">\r\n <rs-box-container [config]=\"config\"\r\n [model]=\"model\"\r\n [params]=\"params\"\r\n [tabViewContainerRef]=\"tabViewContainerRef\"\r\n [readonly]=\"readonly\"></rs-box-container>\r\n <dx-button #formSubmitter [visible]=\"false\" (onClick)=\"submitForm()\"></dx-button>\r\n</dx-validation-group>\r\n", styles: [":host{padding:12px 24px 20px}:host dx-validation-group{display:flex;flex-flow:row nowrap}\n"] }]
2843
2996
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: FormService }]; }, propDecorators: { tenant: [{
2844
2997
  type: Input
2845
2998
  }], className: [{
@@ -2852,6 +3005,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
2852
3005
  type: Input
2853
3006
  }], params: [{
2854
3007
  type: Input
3008
+ }], tabViewContainerRef: [{
3009
+ type: Input
2855
3010
  }], onlyFrontEnd: [{
2856
3011
  type: Input
2857
3012
  }], model: [{
@@ -2884,7 +3039,7 @@ class DataDetailComponent {
2884
3039
  }
2885
3040
  }
2886
3041
  DataDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataDetailComponent, deps: [{ token: i0.ViewContainerRef }, { token: DataDetailService }], target: i0.ɵɵFactoryTarget.Component });
2887
- DataDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DataDetailComponent, selector: "coast-data-detail", inputs: { tenant: "tenant", className: "className", oid: "oid", params: "params" }, providers: [DataDetailService], ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<div *ngIf=\"!loading && sections.length === 0\" class=\"empty\">\n <span>\u60A8\u65E0\u6743\u67E5\u770B\u8BE5\u6570\u636E\u5B9E\u4F8B\u4EFB\u4F55\u4FE1\u606F</span>\n</div>\n<ng-container *ngIf=\"sections.length > 0\">\n <dx-accordion [collapsible]=\"true\" [multiple]=\"true\" [deferRendering]=\"false\" [dataSource]=\"sections\"\n [selectedItems]=\"sections\">\n <div *dxTemplate=\"let section of 'title'\" class=\"section-title\">\n <div class=\"section-title-name\">{{section.name}}</div>\n </div>\n <div *dxTemplate=\"let section of 'item'\">\n <rs-form [tenant]=\"tenant\" [className]=\"className\" [oid]=\"oid\" [template]=\"section.formTemplate\"\n [readonly]=\"true\"></rs-form>\n </div>\n </dx-accordion>\n</ng-container>\n", styles: [":host{flex:1;padding:24px;display:flex;flex-flow:column nowrap}:host div.empty{flex:1;padding:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div.empty span{text-align:center;-webkit-user-select:none;user-select:none}:host .section-title{border-bottom:1px solid var(--coast-border-color, #dddddd)}:host .section-title .section-title-name{height:24px;font-size:14px;font-weight:700;padding:4px 8px;display:flex;flex-flow:column nowrap;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$1.DxAccordionComponent, selector: "dx-accordion", inputs: ["accessKey", "activeStateEnabled", "animationDuration", "collapsible", "dataSource", "deferRendering", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "itemHoldTimeout", "items", "itemTemplate", "itemTitleTemplate", "keyExpr", "multiple", "noDataText", "repaintChangesOnly", "rtlEnabled", "selectedIndex", "selectedItem", "selectedItemKeys", "selectedItems", "tabIndex", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onItemClick", "onItemContextMenu", "onItemHold", "onItemRendered", "onItemTitleClick", "onOptionChanged", "onSelectionChanged", "accessKeyChange", "activeStateEnabledChange", "animationDurationChange", "collapsibleChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "itemHoldTimeoutChange", "itemsChange", "itemTemplateChange", "itemTitleTemplateChange", "keyExprChange", "multipleChange", "noDataTextChange", "repaintChangesOnlyChange", "rtlEnabledChange", "selectedIndexChange", "selectedItemChange", "selectedItemKeysChange", "selectedItemsChange", "tabIndexChange", "visibleChange", "widthChange"] }, { kind: "directive", type: i3.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i5.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }, { kind: "component", type: i6.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: FormComponent, selector: "rs-form", inputs: ["tenant", "className", "oid", "copyOid", "template", "params", "onlyFrontEnd", "model", "readonly"], outputs: ["submitCallback"] }] });
3042
+ DataDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DataDetailComponent, selector: "coast-data-detail", inputs: { tenant: "tenant", className: "className", oid: "oid", params: "params" }, providers: [DataDetailService], ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<div *ngIf=\"!loading && sections.length === 0\" class=\"empty\">\n <span>\u60A8\u65E0\u6743\u67E5\u770B\u8BE5\u6570\u636E\u5B9E\u4F8B\u4EFB\u4F55\u4FE1\u606F</span>\n</div>\n<ng-container *ngIf=\"sections.length > 0\">\n <dx-accordion [collapsible]=\"true\" [multiple]=\"true\" [deferRendering]=\"false\" [dataSource]=\"sections\"\n [selectedItems]=\"sections\">\n <div *dxTemplate=\"let section of 'title'\" class=\"section-title\">\n <div class=\"section-title-name\">{{section.name}}</div>\n </div>\n <div *dxTemplate=\"let section of 'item'\">\n <rs-form [tenant]=\"tenant\" [className]=\"className\" [oid]=\"oid\" [template]=\"section.formTemplate\"\n [readonly]=\"true\"></rs-form>\n </div>\n </dx-accordion>\n</ng-container>\n", styles: [":host{flex:1;padding:24px;display:flex;flex-flow:column nowrap}:host div.empty{flex:1;padding:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div.empty span{text-align:center;-webkit-user-select:none;user-select:none}:host .section-title{border-bottom:1px solid var(--coast-border-color, #dddddd)}:host .section-title .section-title-name{height:24px;font-size:14px;font-weight:700;padding:4px 8px;display:flex;flex-flow:column nowrap;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$1.DxAccordionComponent, selector: "dx-accordion", inputs: ["accessKey", "activeStateEnabled", "animationDuration", "collapsible", "dataSource", "deferRendering", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "itemHoldTimeout", "items", "itemTemplate", "itemTitleTemplate", "keyExpr", "multiple", "noDataText", "repaintChangesOnly", "rtlEnabled", "selectedIndex", "selectedItem", "selectedItemKeys", "selectedItems", "tabIndex", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onItemClick", "onItemContextMenu", "onItemHold", "onItemRendered", "onItemTitleClick", "onOptionChanged", "onSelectionChanged", "accessKeyChange", "activeStateEnabledChange", "animationDurationChange", "collapsibleChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "itemHoldTimeoutChange", "itemsChange", "itemTemplateChange", "itemTitleTemplateChange", "keyExprChange", "multipleChange", "noDataTextChange", "repaintChangesOnlyChange", "rtlEnabledChange", "selectedIndexChange", "selectedItemChange", "selectedItemKeysChange", "selectedItemsChange", "tabIndexChange", "visibleChange", "widthChange"] }, { kind: "directive", type: i3.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i6$1.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }, { kind: "component", type: i6.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: FormComponent, selector: "rs-form", inputs: ["tenant", "className", "oid", "copyOid", "template", "params", "tabViewContainerRef", "onlyFrontEnd", "model", "readonly"], outputs: ["submitCallback"] }] });
2888
3043
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataDetailComponent, decorators: [{
2889
3044
  type: Component,
2890
3045
  args: [{ selector: 'coast-data-detail', providers: [DataDetailService], template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<div *ngIf=\"!loading && sections.length === 0\" class=\"empty\">\n <span>\u60A8\u65E0\u6743\u67E5\u770B\u8BE5\u6570\u636E\u5B9E\u4F8B\u4EFB\u4F55\u4FE1\u606F</span>\n</div>\n<ng-container *ngIf=\"sections.length > 0\">\n <dx-accordion [collapsible]=\"true\" [multiple]=\"true\" [deferRendering]=\"false\" [dataSource]=\"sections\"\n [selectedItems]=\"sections\">\n <div *dxTemplate=\"let section of 'title'\" class=\"section-title\">\n <div class=\"section-title-name\">{{section.name}}</div>\n </div>\n <div *dxTemplate=\"let section of 'item'\">\n <rs-form [tenant]=\"tenant\" [className]=\"className\" [oid]=\"oid\" [template]=\"section.formTemplate\"\n [readonly]=\"true\"></rs-form>\n </div>\n </dx-accordion>\n</ng-container>\n", styles: [":host{flex:1;padding:24px;display:flex;flex-flow:column nowrap}:host div.empty{flex:1;padding:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div.empty span{text-align:center;-webkit-user-select:none;user-select:none}:host .section-title{border-bottom:1px solid var(--coast-border-color, #dddddd)}:host .section-title .section-title-name{height:24px;font-size:14px;font-weight:700;padding:4px 8px;display:flex;flex-flow:column nowrap;justify-content:center}\n"] }]
@@ -3114,7 +3269,7 @@ class IconSelectorComponent {
3114
3269
  }
3115
3270
  }
3116
3271
  IconSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: IconSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3117
- IconSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: IconSelectorComponent, selector: "rs-icon-selector", inputs: { target: "target" }, outputs: { select: "select" }, viewQueries: [{ propertyName: "popover", first: true, predicate: ["iconSelector"], descendants: true, static: true }, { propertyName: "iconZoomOut", first: true, predicate: ["iconZoomOut"], descendants: true, static: true }], ngImport: i0, template: "<dx-popover #iconSelector\n maxWidth=\"280\"\n maxHeight=\"280\"\n [target]=\"target\"\n [showEvent]=\"{name: 'click'}\">\n <div *dxTemplate=\"let data of 'content'\">\n <ng-container *ngFor=\"let icon of iconList; let index=index\">\n <dx-button [icon]=\"'coast-icon ' + icon\" (onClick)=\"selectIcon(icon)\"\n (mouseenter)=\"zoomOut($event, icon)\" (mouseleave)=\"iconZoomOut.instance.hide()\"></dx-button>\n </ng-container>\n </div>\n</dx-popover>\n<dx-popover #iconZoomOut height=\"72px\" [enableBodyScroll]=\"false\">\n <div *dxTemplate=\"let data of 'content'\"\n style=\"display: flex; flex-flow: column nowrap; align-items: center; justify-content: center;\">\n <i [class]=\"hoverIcon\" style=\"font-size: 36px;\"></i>\n <span>{{hoverIcon?.substring(11)}}</span>\n </div>\n</dx-popover>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i4.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i4$2.DxPopoverComponent, selector: "dx-popover", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "enableBodyScroll", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showEvent", "showTitle", "target", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "onTitleRendered", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "enableBodyScrollChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showEventChange", "showTitleChange", "targetChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }] });
3272
+ IconSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: IconSelectorComponent, selector: "rs-icon-selector", inputs: { target: "target" }, outputs: { select: "select" }, viewQueries: [{ propertyName: "popover", first: true, predicate: ["iconSelector"], descendants: true, static: true }, { propertyName: "iconZoomOut", first: true, predicate: ["iconZoomOut"], descendants: true, static: true }], ngImport: i0, template: "<dx-popover #iconSelector\n maxWidth=\"280\"\n maxHeight=\"280\"\n [target]=\"target\"\n [showEvent]=\"{name: 'click'}\">\n <div *dxTemplate=\"let data of 'content'\">\n <ng-container *ngFor=\"let icon of iconList; let index=index\">\n <dx-button [icon]=\"'coast-icon ' + icon\" (onClick)=\"selectIcon(icon)\"\n (mouseenter)=\"zoomOut($event, icon)\" (mouseleave)=\"iconZoomOut.instance.hide()\"></dx-button>\n </ng-container>\n </div>\n</dx-popover>\n<dx-popover #iconZoomOut height=\"72px\" [enableBodyScroll]=\"false\">\n <div *dxTemplate=\"let data of 'content'\"\n style=\"display: flex; flex-flow: column nowrap; align-items: center; justify-content: center;\">\n <i [class]=\"hoverIcon\" style=\"font-size: 36px;\"></i>\n <span>{{hoverIcon?.substring(11)}}</span>\n </div>\n</dx-popover>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i4.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i4$1.DxPopoverComponent, selector: "dx-popover", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "enableBodyScroll", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showEvent", "showTitle", "target", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "onTitleRendered", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "enableBodyScrollChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showEventChange", "showTitleChange", "targetChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }] });
3118
3273
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: IconSelectorComponent, decorators: [{
3119
3274
  type: Component,
3120
3275
  args: [{ selector: 'rs-icon-selector', template: "<dx-popover #iconSelector\n maxWidth=\"280\"\n maxHeight=\"280\"\n [target]=\"target\"\n [showEvent]=\"{name: 'click'}\">\n <div *dxTemplate=\"let data of 'content'\">\n <ng-container *ngFor=\"let icon of iconList; let index=index\">\n <dx-button [icon]=\"'coast-icon ' + icon\" (onClick)=\"selectIcon(icon)\"\n (mouseenter)=\"zoomOut($event, icon)\" (mouseleave)=\"iconZoomOut.instance.hide()\"></dx-button>\n </ng-container>\n </div>\n</dx-popover>\n<dx-popover #iconZoomOut height=\"72px\" [enableBodyScroll]=\"false\">\n <div *dxTemplate=\"let data of 'content'\"\n style=\"display: flex; flex-flow: column nowrap; align-items: center; justify-content: center;\">\n <i [class]=\"hoverIcon\" style=\"font-size: 36px;\"></i>\n <span>{{hoverIcon?.substring(11)}}</span>\n </div>\n</dx-popover>\n" }]
@@ -3165,10 +3320,10 @@ class ModalComponent {
3165
3320
  }
3166
3321
  ngOnInit() {
3167
3322
  if (this.size === 'full') {
3168
- this.modalElementRef.nativeElement.style.top = '0';
3169
- this.modalElementRef.nativeElement.style.right = '0';
3170
- this.modalElementRef.nativeElement.style.bottom = '0';
3171
- this.modalElementRef.nativeElement.style.left = '0';
3323
+ this.modalElementRef.nativeElement.style.top = '1px';
3324
+ this.modalElementRef.nativeElement.style.right = '1px';
3325
+ this.modalElementRef.nativeElement.style.bottom = '1px';
3326
+ this.modalElementRef.nativeElement.style.left = '1px';
3172
3327
  this.modalElementRef.nativeElement.style.margin = '0';
3173
3328
  this.modalElementRef.nativeElement.style.boxShadow = 'none';
3174
3329
  }
@@ -3217,6 +3372,9 @@ class ModalComponent {
3217
3372
  };
3218
3373
  }
3219
3374
  resolveModalPosition() {
3375
+ if (this.size === 'full') {
3376
+ return {};
3377
+ }
3220
3378
  if (this.modalElementRef.nativeElement.offsetHeight >= this.elementRef.nativeElement.parentElement.offsetHeight - 48) {
3221
3379
  this.modalElementRef.nativeElement.style.height = this.elementRef.nativeElement.parentElement.offsetHeight - 48 + 'px';
3222
3380
  }