ngx-rs-ant 1.3.2 → 1.3.5

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 (41) hide show
  1. package/camunda-bpmn-editor/camunda-bpmn-editor.component.d.ts +1 -1
  2. package/camunda-bpmn-editor/custom/config/CustomPropertiesProvider.d.ts +1 -4
  3. package/camunda-bpmn-editor/custom/config/properties/{DescriptionProps.d.ts → user-task/TaskDescriptionProps.d.ts} +1 -1
  4. package/camunda-bpmn-editor/custom/config/properties/user-task/user-assignment/UserAssignmentProps.d.ts +2 -0
  5. package/camunda-bpmn-editor/custom/config/properties/user-task/user-assignment/UserAssignmentStaticOrDynamicProps.d.ts +6 -0
  6. package/camunda-bpmn-editor/custom/config/util/ElementUtils.d.ts +3 -1
  7. package/camunda-bpmn-editor/custom/hide-other/HideOtherContextPadProvider.d.ts +4 -0
  8. package/camunda-bpmn-editor/custom/service-task/ServiceTaskContextPadProvider.d.ts +23 -0
  9. package/camunda-bpmn-editor/custom/service-task/ServiceTaskPaletteProvider.d.ts +18 -0
  10. package/camunda-bpmn-editor/custom/service-task/index.d.ts +8 -0
  11. package/data-detail/data-detail.component.d.ts +2 -1
  12. package/dynamic-params/dynamic-params.component.d.ts +7 -1
  13. package/dynamic-params/dynamic-params.module.d.ts +4 -3
  14. package/dynamic-params/tooltip-content-template.directive.d.ts +8 -0
  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 +5 -13
  28. package/esm2020/dynamic-params/dynamic-params.component.mjs +25 -6
  29. package/esm2020/dynamic-params/dynamic-params.module.mjs +10 -5
  30. package/esm2020/dynamic-params/tooltip-content-template.directive.mjs +16 -0
  31. package/esm2020/form/form.component.mjs +10 -3
  32. package/esm2020/public-api.mjs +2 -1
  33. package/fesm2015/ngx-rs-ant.mjs +275 -98
  34. package/fesm2015/ngx-rs-ant.mjs.map +1 -1
  35. package/fesm2020/ngx-rs-ant.mjs +275 -99
  36. package/fesm2020/ngx-rs-ant.mjs.map +1 -1
  37. package/form/form.component.d.ts +2 -1
  38. package/package.json +1 -1
  39. package/public-api.d.ts +1 -0
  40. package/esm2020/camunda-bpmn-editor/custom/config/descriptors/coast.json +0 -24
  41. package/esm2020/camunda-bpmn-editor/custom/config/properties/DescriptionProps.mjs +0 -28
@@ -9,7 +9,7 @@ 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
14
  import * as i6$1 from 'devextreme-angular/ui/nested';
15
15
  import { DxoPositionModule } from 'devextreme-angular/ui/nested';
@@ -24,8 +24,8 @@ 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
- import * as i3$2 from 'devextreme-angular/ui/text-box';
28
- import * as i4$1 from 'devextreme-angular/ui/popover';
27
+ import * as i4$1 from 'devextreme-angular/ui/text-box';
28
+ import * as i4$2 from 'devextreme-angular/ui/popover';
29
29
 
30
30
  class DividerLineComponent {
31
31
  get _style() {
@@ -846,16 +846,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
846
846
  }] });
847
847
 
848
848
  const translations = {
849
+ // 调色板
849
850
  'Activate the hand tool': '激活拖拽工具',
850
851
  'Activate the lasso tool': '激活框选工具',
851
852
  'Activate the create/remove space tool': '激活空间移动工具',
852
853
  'Activate the global connect tool': '激活全局连接工具',
853
854
  'Create StartEvent': '创建开始节点',
854
855
  'Create EndEvent': '创建结束节点',
855
- 'Create Gateway': '创建网关节点',
856
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': '顺序流向',
857
872
  'Open minimap': '打开缩略图',
858
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': '静态角色',
859
883
  /*
860
884
  'Create {type}': '创建{type}',
861
885
  'Create Intermediate/Boundary Event': '创建中间/边界事件',
@@ -1226,6 +1250,85 @@ var customUserTaskModule = {
1226
1250
  userTaskContextPadProvider: ['type', UserTaskContextPadProvider],
1227
1251
  };
1228
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
+
1229
1332
  class HideOtherPaletteProvider {
1230
1333
  constructor(palette) {
1231
1334
  this.visibleEntryKeys = [
@@ -1237,6 +1340,7 @@ class HideOtherPaletteProvider {
1237
1340
  'create.start-event',
1238
1341
  'create.end-event',
1239
1342
  'create.user-task',
1343
+ 'create.service-task',
1240
1344
  'create.exclusive-gateway',
1241
1345
  'xml'
1242
1346
  ];
@@ -1286,6 +1390,7 @@ class HideOtherContextPadProvider {
1286
1390
  else if (is(element, 'bpmn:Gateway')) {
1287
1391
  return {
1288
1392
  'append.user-task': entries['append.user-task'],
1393
+ 'append.service-task': entries['append.service-task'],
1289
1394
  'append.gateway': entries['append.gateway'],
1290
1395
  'append.end-event': entries['append.end-event'],
1291
1396
  'connect': entries['connect'],
@@ -1296,6 +1401,7 @@ class HideOtherContextPadProvider {
1296
1401
  }
1297
1402
  return {
1298
1403
  'append.user-task': entries['append.user-task'],
1404
+ 'append.service-task': entries['append.service-task'],
1299
1405
  'append.gateway': entries['append.gateway'],
1300
1406
  'append.end-event': entries['append.end-event'],
1301
1407
  'connect': entries['connect'],
@@ -1363,12 +1469,13 @@ var customHideOtherModule = {
1363
1469
  gatewayReplaceMenuProvider: ['type', GatewayReplaceMenuProvider]
1364
1470
  };
1365
1471
 
1366
- function addExtensionProperty(element, key, value, bpmnFactory, modeling) {
1472
+ const util = {};
1473
+ function addExtensionProperty(element, key, value) {
1367
1474
  let extensionElements = element.businessObject.get('extensionElements');
1368
1475
  if (!extensionElements) {
1369
- extensionElements = bpmnFactory.create('bpmn:ExtensionElements', { values: [] });
1476
+ extensionElements = util.bpmnFactory.create('bpmn:ExtensionElements', { values: [] });
1370
1477
  extensionElements.$parent = element.businessObject;
1371
- modeling.updateModdleProperties(element, element.businessObject, { extensionElements });
1478
+ util.modeling.updateModdleProperties(element, element.businessObject, { extensionElements });
1372
1479
  }
1373
1480
  let properties = null;
1374
1481
  const extensionElementValues = extensionElements.get('values');
@@ -1377,73 +1484,125 @@ function addExtensionProperty(element, key, value, bpmnFactory, modeling) {
1377
1484
  properties = existPropertiesElements[0];
1378
1485
  }
1379
1486
  if (!properties) {
1380
- properties = bpmnFactory.create('camunda:Properties', { values: [] });
1487
+ properties = util.bpmnFactory.create('camunda:Properties', { values: [] });
1381
1488
  properties.$parent = extensionElements;
1382
- modeling.updateModdleProperties(element, extensionElements, { values: [...extensionElements.get('values'), properties] });
1489
+ util.modeling.updateModdleProperties(element, extensionElements, { values: [...extensionElements.get('values'), properties] });
1383
1490
  }
1384
1491
  const propertyValues = properties.get('values');
1385
1492
  const existPropertyIndex = propertyValues.findIndex((value) => value.name === key);
1386
1493
  if (existPropertyIndex > -1) {
1387
- modeling.updateModdleProperties(element, propertyValues[existPropertyIndex], { name: key, value });
1494
+ util.modeling.updateModdleProperties(element, propertyValues[existPropertyIndex], { name: key, value });
1388
1495
  }
1389
1496
  else {
1390
- const property = bpmnFactory.create('camunda:Property', { name: key, value });
1497
+ const property = util.bpmnFactory.create('camunda:Property', { name: key, value });
1391
1498
  property.$parent = properties;
1392
- 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;
1393
1520
  }
1394
1521
  }
1395
1522
 
1396
1523
  // @ts-ignore
1397
- class DescriptionProps {
1524
+ class TaskDescriptionProps {
1398
1525
  constructor(props) {
1399
1526
  this.id = 'Coast_taskDescription';
1400
- const { element, translate, bpmnFactory, modeling, debounce } = props;
1527
+ const { element } = props;
1401
1528
  this.component = () => {
1402
- return TextFieldEntry({
1529
+ return TextAreaEntry({
1530
+ element: element,
1403
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({
1404
1554
  element: element,
1405
- label: translate('Task Description'),
1555
+ id: this.id,
1556
+ label: util.translate('Set assignment rule'),
1406
1557
  getValue: () => {
1407
- return element.businessObject.get('taskDescription') || '';
1558
+ return getExtensionPropertyValue(element, this.id);
1408
1559
  },
1409
1560
  setValue: (value) => {
1410
- modeling.updateModdleProperties(element, element.businessObject, {
1411
- 'taskDescription': value
1412
- });
1413
- addExtensionProperty(element, 'taskDescription', value, bpmnFactory, modeling);
1561
+ addExtensionProperty(element, this.id, value);
1414
1562
  },
1415
- 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
+ }
1416
1571
  });
1417
1572
  };
1418
- this.isEdited = isTextFieldEntryEdited;
1573
+ this.isEdited = isSelectEntryEdited;
1419
1574
  }
1420
1575
  }
1421
1576
 
1577
+ function getUserAssignmentProps(element) {
1578
+ return [new UserAssignmentStaticOrDynamicProps(element)];
1579
+ }
1580
+
1422
1581
  class CustomPropertiesProvider {
1423
1582
  constructor(propertiesPanel, translate, bpmnFactory, modeling, debounceInput) {
1424
1583
  this.translate = translate;
1425
- this.bpmnFactory = bpmnFactory;
1426
- this.modeling = modeling;
1427
- this.debounceInput = debounceInput;
1584
+ util.translate = translate;
1585
+ util.bpmnFactory = bpmnFactory;
1586
+ util.modeling = modeling;
1587
+ util.debounce = debounceInput;
1428
1588
  propertiesPanel.registerProvider(0, this);
1429
1589
  }
1430
1590
  getGroups(element) {
1431
1591
  return ((groups) => {
1432
- if (is(element, 'bpmn:UserTask')) {
1433
- console.log(groups);
1434
- return [groups.find((group) => group.id === 'general'), {
1435
- id: 'Coast_Implementation',
1436
- label: this.translate('More config'),
1437
- entries: [new DescriptionProps({
1438
- element,
1439
- translate: this.translate,
1440
- bpmnFactory: this.bpmnFactory,
1441
- modeling: this.modeling,
1442
- debounce: this.debounceInput
1443
- })]
1444
- }];
1445
- }
1446
- 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];
1447
1606
  });
1448
1607
  }
1449
1608
  }
@@ -1453,38 +1612,6 @@ var customPropertiesPanelModule = {
1453
1612
  customPropertiesProvider: ['type', CustomPropertiesProvider]
1454
1613
  };
1455
1614
 
1456
- var name = "Coast Custom";
1457
- var prefix = "coast";
1458
- var uri = "https://c-standard.cn";
1459
- var xml = {
1460
- tagAlias: "lowerCase"
1461
- };
1462
- var associations = [
1463
- ];
1464
- var types = [
1465
- {
1466
- name: "CoastUserTask",
1467
- "extends": [
1468
- "bpmn:UserTask"
1469
- ],
1470
- properties: [
1471
- {
1472
- name: "taskDescription",
1473
- isAttr: true,
1474
- type: "String"
1475
- }
1476
- ]
1477
- }
1478
- ];
1479
- var coastModdleDescriptor = {
1480
- name: name,
1481
- prefix: prefix,
1482
- uri: uri,
1483
- xml: xml,
1484
- associations: associations,
1485
- types: types
1486
- };
1487
-
1488
1615
  class CodeEditorComponent {
1489
1616
  set code(code) {
1490
1617
  this._code = code || '';
@@ -1560,6 +1687,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1560
1687
  class CamundaBpmnEditorComponent {
1561
1688
  constructor() {
1562
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>';
1563
1708
  }
1564
1709
  ngAfterViewInit() {
1565
1710
  this.modeler = new BpmnModeler({
@@ -1573,19 +1718,17 @@ class CamundaBpmnEditorComponent {
1573
1718
  additionalModules: [
1574
1719
  customTranslateModule,
1575
1720
  customUserTaskModule,
1721
+ customServiceTaskModule,
1576
1722
  customHideOtherModule,
1577
1723
  customPropertiesPanelModule
1578
- ],
1579
- moddleExtensions: {
1580
- coast: coastModdleDescriptor
1581
- }
1724
+ ]
1582
1725
  });
1583
1726
  const logo = this.modeler._container.querySelector('.bjs-powered-by');
1584
1727
  if (logo) {
1585
1728
  this.modeler._container.removeChild(logo);
1586
1729
  }
1587
1730
  this.canvas = this.modeler.get('canvas');
1588
- this.modeler.createDiagram().then(() => {
1731
+ this.modeler.importXML(this.initialDiagram).then(() => {
1589
1732
  this.canvas.zoom('fit-viewport');
1590
1733
  });
1591
1734
  }
@@ -2801,7 +2944,7 @@ class FormComponent {
2801
2944
  }
2802
2945
  load() {
2803
2946
  this.loading = true;
2804
- this.params = Object.assign(this.params, {
2947
+ this.params = Object.assign(this.params || {}, {
2805
2948
  __form: {
2806
2949
  tenant: this.tenant,
2807
2950
  className: this.className,
@@ -2833,6 +2976,11 @@ class FormComponent {
2833
2976
  submitForm() {
2834
2977
  this.validate().then(isValid => {
2835
2978
  if (isValid) {
2979
+ if (this.extraAttrMap) {
2980
+ for (const entry of this.extraAttrMap) {
2981
+ this.model[entry.name] = entry.value;
2982
+ }
2983
+ }
2836
2984
  this.service.createOrUpdate(this.tenant, this.className, {
2837
2985
  oid: this.oid,
2838
2986
  ...this.model
@@ -2853,7 +3001,7 @@ class FormComponent {
2853
3001
  }
2854
3002
  }
2855
3003
  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 });
2856
- 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"] }] });
3004
+ 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", extraAttrMap: "extraAttrMap", 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"] }] });
2857
3005
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormComponent, decorators: [{
2858
3006
  type: Component,
2859
3007
  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"] }]
@@ -2867,6 +3015,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
2867
3015
  type: Input
2868
3016
  }], template: [{
2869
3017
  type: Input
3018
+ }], extraAttrMap: [{
3019
+ type: Input
2870
3020
  }], params: [{
2871
3021
  type: Input
2872
3022
  }], tabViewContainerRef: [{
@@ -2903,19 +3053,11 @@ class DataDetailComponent {
2903
3053
  }
2904
3054
  }
2905
3055
  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 });
2906
- 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"] }] });
3056
+ DataDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DataDetailComponent, selector: "coast-data-detail", 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\" [params]=\"params\"\n [tabViewContainerRef]=\"tabViewContainerRef\" [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", "extraAttrMap", "params", "tabViewContainerRef", "onlyFrontEnd", "model", "readonly"], outputs: ["submitCallback"] }] });
2907
3057
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataDetailComponent, decorators: [{
2908
3058
  type: Component,
2909
- 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"] }]
2910
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: DataDetailService }]; }, propDecorators: { tenant: [{
2911
- type: Input
2912
- }], className: [{
2913
- type: Input
2914
- }], oid: [{
2915
- type: Input
2916
- }], params: [{
2917
- type: Input
2918
- }] } });
3059
+ 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\" [params]=\"params\"\n [tabViewContainerRef]=\"tabViewContainerRef\" [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"] }]
3060
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: DataDetailService }]; } });
2919
3061
 
2920
3062
  class FormModule {
2921
3063
  }
@@ -3061,8 +3203,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
3061
3203
  }]
3062
3204
  }], ctorParameters: function () { return []; } });
3063
3205
 
3206
+ class TooltipContentTemplateDirective {
3207
+ constructor(templateRef) {
3208
+ this.templateRef = templateRef;
3209
+ }
3210
+ }
3211
+ TooltipContentTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TooltipContentTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
3212
+ TooltipContentTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: TooltipContentTemplateDirective, selector: "[rsTooltipContentTemplate]", ngImport: i0 });
3213
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TooltipContentTemplateDirective, decorators: [{
3214
+ type: Directive,
3215
+ args: [{
3216
+ selector: '[rsTooltipContentTemplate]'
3217
+ }]
3218
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
3219
+
3064
3220
  class DynamicParamsComponent {
3065
3221
  constructor() {
3222
+ this.label = '动态参数';
3223
+ this.showHelp = false;
3224
+ this.keyPlaceholder = '参数名';
3225
+ this.valuePlaceholder = '参数值';
3226
+ this.required = false;
3066
3227
  this.readonly = false;
3067
3228
  }
3068
3229
  add() {
@@ -3073,37 +3234,52 @@ class DynamicParamsComponent {
3073
3234
  }
3074
3235
  }
3075
3236
  DynamicParamsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DynamicParamsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3076
- DynamicParamsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DynamicParamsComponent, selector: "rs-dynamic-params", inputs: { label: "label", params: "params", readonly: "readonly" }, ngImport: i0, template: "<div class=\"dx-field\">\n <div class=\"dx-field-label\">\n <span>{{label || '\u52A8\u6001\u53C2\u6570'}}</span>\n <dx-button type=\"default\" stylingMode=\"text\" icon=\"coast-icon coast-icon-add\" (onClick)=\"add()\"\n [disabled]=\"readonly\"></dx-button>\n </div>\n <div class=\"dx-field-value\">\n <div *ngFor=\"let param of params; let index = index\">\n <dx-text-box placeholder=\"\u53C2\u6570\u540D\" [(value)]=\"param.name\" [disabled]=\"readonly\"></dx-text-box>\n <dx-text-box placeholder=\"\u53C2\u6570\u503C\" [(value)]=\"param.value\" [disabled]=\"readonly\"></dx-text-box>\n <dx-button type=\"danger\" stylingMode=\"text\" icon=\"coast-icon coast-icon-close\"\n (onClick)=\"delete(index)\" [disabled]=\"readonly\"></dx-button>\n </div>\n </div>\n</div>\n", styles: [":host .dx-field .dx-field-label{display:flex;align-items:center}:host .dx-field .dx-field-value div{display:flex;flex-flow:row nowrap}:host .dx-field .dx-field-value div dx-text-box{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: i3$2.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }] });
3237
+ DynamicParamsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DynamicParamsComponent, selector: "rs-dynamic-params", inputs: { label: "label", showHelp: "showHelp", keyPlaceholder: "keyPlaceholder", valuePlaceholder: "valuePlaceholder", params: "params", required: "required", readonly: "readonly" }, queries: [{ propertyName: "tooltipContentTemplate", first: true, predicate: TooltipContentTemplateDirective, descendants: true }], ngImport: i0, template: "<div class=\"dx-field\">\n <div class=\"dx-field-label\">\n <span>{{ label }}</span>\n <span *ngIf=\"required\" class=\"required-mark\">&nbsp;*</span>\n <i *ngIf=\"showHelp\" #dynamicParamsSpan class=\"coast-icon-help cursor-pointer\">\n <dx-tooltip [target]=\"dynamicParamsSpan\"\n [position]=\"'top'\"\n [showEvent]=\"'mouseover'\"\n [hideEvent]=\"'mouseout'\">\n <div *dxTemplate=\"let data of 'content'\"\n style=\"display: flex; flex-flow: column nowrap;align-items: flex-start;\">\n <ng-container [ngTemplateOutlet]=\"tooltipContentTemplate.templateRef\"></ng-container>\n </div>\n </dx-tooltip>\n </i>\n <dx-button type=\"default\" stylingMode=\"text\" icon=\"coast-icon coast-icon-add\" (onClick)=\"add()\"\n [disabled]=\"readonly\"></dx-button>\n </div>\n <div class=\"dx-field-value\">\n <div *ngFor=\"let param of params; let index = index\">\n <dx-text-box [placeholder]=\"keyPlaceholder\" [(value)]=\"param.name\" [disabled]=\"readonly\"></dx-text-box>\n <dx-text-box [placeholder]=\"valuePlaceholder\" [(value)]=\"param.value\" [disabled]=\"readonly\"></dx-text-box>\n <dx-button type=\"danger\" stylingMode=\"text\" icon=\"coast-icon coast-icon-close\"\n (onClick)=\"delete(index)\" [disabled]=\"readonly\"></dx-button>\n </div>\n </div>\n</div>\n", styles: [":host .dx-field .dx-field-label{display:flex;align-items:center}:host .dx-field .dx-field-value div{display:flex;flex-flow:row nowrap}:host .dx-field .dx-field-value div dx-text-box{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { 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"] }] });
3077
3238
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DynamicParamsComponent, decorators: [{
3078
3239
  type: Component,
3079
- args: [{ selector: 'rs-dynamic-params', template: "<div class=\"dx-field\">\n <div class=\"dx-field-label\">\n <span>{{label || '\u52A8\u6001\u53C2\u6570'}}</span>\n <dx-button type=\"default\" stylingMode=\"text\" icon=\"coast-icon coast-icon-add\" (onClick)=\"add()\"\n [disabled]=\"readonly\"></dx-button>\n </div>\n <div class=\"dx-field-value\">\n <div *ngFor=\"let param of params; let index = index\">\n <dx-text-box placeholder=\"\u53C2\u6570\u540D\" [(value)]=\"param.name\" [disabled]=\"readonly\"></dx-text-box>\n <dx-text-box placeholder=\"\u53C2\u6570\u503C\" [(value)]=\"param.value\" [disabled]=\"readonly\"></dx-text-box>\n <dx-button type=\"danger\" stylingMode=\"text\" icon=\"coast-icon coast-icon-close\"\n (onClick)=\"delete(index)\" [disabled]=\"readonly\"></dx-button>\n </div>\n </div>\n</div>\n", styles: [":host .dx-field .dx-field-label{display:flex;align-items:center}:host .dx-field .dx-field-value div{display:flex;flex-flow:row nowrap}:host .dx-field .dx-field-value div dx-text-box{flex:1}\n"] }]
3240
+ args: [{ selector: 'rs-dynamic-params', template: "<div class=\"dx-field\">\n <div class=\"dx-field-label\">\n <span>{{ label }}</span>\n <span *ngIf=\"required\" class=\"required-mark\">&nbsp;*</span>\n <i *ngIf=\"showHelp\" #dynamicParamsSpan class=\"coast-icon-help cursor-pointer\">\n <dx-tooltip [target]=\"dynamicParamsSpan\"\n [position]=\"'top'\"\n [showEvent]=\"'mouseover'\"\n [hideEvent]=\"'mouseout'\">\n <div *dxTemplate=\"let data of 'content'\"\n style=\"display: flex; flex-flow: column nowrap;align-items: flex-start;\">\n <ng-container [ngTemplateOutlet]=\"tooltipContentTemplate.templateRef\"></ng-container>\n </div>\n </dx-tooltip>\n </i>\n <dx-button type=\"default\" stylingMode=\"text\" icon=\"coast-icon coast-icon-add\" (onClick)=\"add()\"\n [disabled]=\"readonly\"></dx-button>\n </div>\n <div class=\"dx-field-value\">\n <div *ngFor=\"let param of params; let index = index\">\n <dx-text-box [placeholder]=\"keyPlaceholder\" [(value)]=\"param.name\" [disabled]=\"readonly\"></dx-text-box>\n <dx-text-box [placeholder]=\"valuePlaceholder\" [(value)]=\"param.value\" [disabled]=\"readonly\"></dx-text-box>\n <dx-button type=\"danger\" stylingMode=\"text\" icon=\"coast-icon coast-icon-close\"\n (onClick)=\"delete(index)\" [disabled]=\"readonly\"></dx-button>\n </div>\n </div>\n</div>\n", styles: [":host .dx-field .dx-field-label{display:flex;align-items:center}:host .dx-field .dx-field-value div{display:flex;flex-flow:row nowrap}:host .dx-field .dx-field-value div dx-text-box{flex:1}\n"] }]
3080
3241
  }], propDecorators: { label: [{
3081
3242
  type: Input
3243
+ }], showHelp: [{
3244
+ type: Input
3245
+ }], keyPlaceholder: [{
3246
+ type: Input
3247
+ }], valuePlaceholder: [{
3248
+ type: Input
3082
3249
  }], params: [{
3083
3250
  type: Input
3251
+ }], required: [{
3252
+ type: Input
3084
3253
  }], readonly: [{
3085
3254
  type: Input
3255
+ }], tooltipContentTemplate: [{
3256
+ type: ContentChild,
3257
+ args: [TooltipContentTemplateDirective]
3086
3258
  }] } });
3087
3259
 
3088
3260
  class DynamicParamsModule {
3089
3261
  }
3090
3262
  DynamicParamsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DynamicParamsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3091
- DynamicParamsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: DynamicParamsModule, declarations: [DynamicParamsComponent], imports: [CommonModule,
3092
- DevExtremeModule], exports: [DynamicParamsComponent] });
3263
+ DynamicParamsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: DynamicParamsModule, declarations: [DynamicParamsComponent,
3264
+ TooltipContentTemplateDirective], imports: [CommonModule,
3265
+ DevExtremeModule], exports: [DynamicParamsComponent,
3266
+ TooltipContentTemplateDirective] });
3093
3267
  DynamicParamsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DynamicParamsModule, imports: [CommonModule,
3094
3268
  DevExtremeModule] });
3095
3269
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DynamicParamsModule, decorators: [{
3096
3270
  type: NgModule,
3097
3271
  args: [{
3098
3272
  declarations: [
3099
- DynamicParamsComponent
3273
+ DynamicParamsComponent,
3274
+ TooltipContentTemplateDirective
3100
3275
  ],
3101
3276
  imports: [
3102
3277
  CommonModule,
3103
3278
  DevExtremeModule
3104
3279
  ],
3105
3280
  exports: [
3106
- DynamicParamsComponent
3281
+ DynamicParamsComponent,
3282
+ TooltipContentTemplateDirective
3107
3283
  ]
3108
3284
  }]
3109
3285
  }] });
@@ -3133,7 +3309,7 @@ class IconSelectorComponent {
3133
3309
  }
3134
3310
  }
3135
3311
  IconSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: IconSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3136
- 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"] }] });
3312
+ 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"] }] });
3137
3313
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: IconSelectorComponent, decorators: [{
3138
3314
  type: Component,
3139
3315
  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" }]
@@ -3522,5 +3698,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
3522
3698
  * Generated bundle index. Do not edit.
3523
3699
  */
3524
3700
 
3525
- export { BoxContainerComponent, BoxContainerModule, CamundaBpmnEditorComponent, CamundaBpmnEditorModule, ChangeFilter, CodeEditorComponent, CodeEditorModule, DataDetailComponent, DataDetailModule, DataGridComponent, DataGridFactory, DataGridModule, DataGridService, DrawerComponent, DrawerModule, DrawerService, DynamicParamsComponent, DynamicParamsModule, FormComponent, FormModule, FormService, IconSelectorComponent, IconSelectorModule, InstanceLinkTemplateDirective, ItemConfigComponent, ItemStyleComponent, MasterDetailTemplateDirective, ModalComponent, ModalModule, ModalService, PluginManager, RowButtonsTemplateDirective, WebsocketModule, WebsocketService, notify_error, notify_success, notify_warning, validate, validate_group };
3701
+ export { BoxContainerComponent, BoxContainerModule, CamundaBpmnEditorComponent, CamundaBpmnEditorModule, ChangeFilter, CodeEditorComponent, CodeEditorModule, DataDetailComponent, DataDetailModule, DataGridComponent, DataGridFactory, DataGridModule, DataGridService, DrawerComponent, DrawerModule, DrawerService, DynamicParamsComponent, DynamicParamsModule, FormComponent, FormModule, FormService, IconSelectorComponent, IconSelectorModule, InstanceLinkTemplateDirective, ItemConfigComponent, ItemStyleComponent, MasterDetailTemplateDirective, ModalComponent, ModalModule, ModalService, PluginManager, RowButtonsTemplateDirective, TooltipContentTemplateDirective, WebsocketModule, WebsocketService, notify_error, notify_success, notify_warning, validate, validate_group };
3526
3702
  //# sourceMappingURL=ngx-rs-ant.mjs.map