ngx-rs-ant 1.2.9 → 1.3.1

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 (35) 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 +4 -1
  3. package/camunda-bpmn-editor/custom/config/properties/{user-task/TaskDescriptionProps.d.ts → DescriptionProps.d.ts} +1 -1
  4. package/camunda-bpmn-editor/custom/config/util/ElementUtils.d.ts +1 -3
  5. package/camunda-bpmn-editor/custom/hide-other/HideOtherContextPadProvider.d.ts +0 -4
  6. package/data-grid/data-grid.service.d.ts +11 -10
  7. package/esm2020/camunda-bpmn-editor/camunda-bpmn-editor.component.mjs +7 -23
  8. package/esm2020/camunda-bpmn-editor/custom/config/CustomPropertiesProvider.mjs +19 -21
  9. package/esm2020/camunda-bpmn-editor/custom/config/descriptors/coast.json +24 -0
  10. package/esm2020/camunda-bpmn-editor/custom/config/properties/DescriptionProps.mjs +28 -0
  11. package/esm2020/camunda-bpmn-editor/custom/config/util/ElementUtils.mjs +9 -30
  12. package/esm2020/camunda-bpmn-editor/custom/hide-other/HideOtherContextPadProvider.mjs +1 -3
  13. package/esm2020/camunda-bpmn-editor/custom/hide-other/HideOtherPaletteProvider.mjs +1 -2
  14. package/esm2020/camunda-bpmn-editor/custom/translate/translations.mjs +2 -26
  15. package/esm2020/data-grid/data-grid.component.mjs +1 -1
  16. package/esm2020/data-grid/data-grid.service.mjs +22 -24
  17. package/esm2020/drawer/drawer.component.mjs +2 -2
  18. package/esm2020/modal/modal.component.mjs +3 -11
  19. package/fesm2015/ngx-rs-ant.mjs +100 -254
  20. package/fesm2015/ngx-rs-ant.mjs.map +1 -1
  21. package/fesm2020/ngx-rs-ant.mjs +101 -254
  22. package/fesm2020/ngx-rs-ant.mjs.map +1 -1
  23. package/modal/modal.component.d.ts +0 -6
  24. package/package.json +1 -1
  25. package/camunda-bpmn-editor/custom/config/properties/user-task/user-assignment/UserAssignmentProps.d.ts +0 -2
  26. package/camunda-bpmn-editor/custom/config/properties/user-task/user-assignment/UserAssignmentStaticOrDynamicProps.d.ts +0 -6
  27. package/camunda-bpmn-editor/custom/service-task/ServiceTaskContextPadProvider.d.ts +0 -23
  28. package/camunda-bpmn-editor/custom/service-task/ServiceTaskPaletteProvider.d.ts +0 -18
  29. package/camunda-bpmn-editor/custom/service-task/index.d.ts +0 -8
  30. package/esm2020/camunda-bpmn-editor/custom/config/properties/user-task/TaskDescriptionProps.mjs +0 -26
  31. package/esm2020/camunda-bpmn-editor/custom/config/properties/user-task/user-assignment/UserAssignmentProps.mjs +0 -5
  32. package/esm2020/camunda-bpmn-editor/custom/config/properties/user-task/user-assignment/UserAssignmentStaticOrDynamicProps.mjs +0 -32
  33. package/esm2020/camunda-bpmn-editor/custom/service-task/ServiceTaskContextPadProvider.mjs +0 -46
  34. package/esm2020/camunda-bpmn-editor/custom/service-task/ServiceTaskPaletteProvider.mjs +0 -27
  35. package/esm2020/camunda-bpmn-editor/custom/service-task/index.mjs +0 -8
@@ -3,13 +3,13 @@ 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, debounceTime, interval } from 'rxjs';
6
+ import { Subject, ReplaySubject, Subscription, map, shareReplay, 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 { TextAreaEntry, isTextAreaEntryEdited, SelectEntry, isSelectEntryEdited } from '@bpmn-io/properties-panel';
12
+ import { TextFieldEntry, isTextFieldEntryEdited } 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';
@@ -856,40 +856,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
856
856
  }] });
857
857
 
858
858
  const translations = {
859
- // 调色板
860
859
  'Activate the hand tool': '激活拖拽工具',
861
860
  'Activate the lasso tool': '激活框选工具',
862
861
  'Activate the create/remove space tool': '激活空间移动工具',
863
862
  'Activate the global connect tool': '激活全局连接工具',
864
863
  'Create StartEvent': '创建开始节点',
865
864
  'Create EndEvent': '创建结束节点',
866
- 'Create UserTask': '创建用户任务',
867
- 'Create ServiceTask': '创建服务任务',
868
865
  'Create Gateway': '创建网关节点',
869
- // 面板
870
- 'Append EndEvent': '追加结束节点',
871
- 'Append UserTask': '追加用户任务',
872
- 'Append ServiceTask': '追加服务任务',
873
- 'Append Gateway': '追加网关节点',
874
- 'Connect using Sequence/MessageFlow or Association': '使用序列/消息流或关联连接',
875
- 'Remove': '删除',
876
- 'Set Color': '设置颜色',
877
- 'Change type': '改变节点类型',
878
- 'Exclusive Gateway': '互斥网关',
879
- 'Parallel Gateway': '并行网关',
880
- 'Default Flow': '默认流向',
881
- 'Sequence Flow': '顺序流向',
866
+ 'Create UserTask': '创建用户任务',
882
867
  'Open minimap': '打开缩略图',
883
868
  'Close minimap': '关闭缩略图',
884
- // 配置
885
- 'General': '参数配置',
886
- 'Name': '名称',
887
- 'Task description': '任务描述',
888
- 'Set assignment rule': '设置用户规则',
889
- 'dynamic user': '动态用户',
890
- 'static user': '静态用户',
891
- 'dynamic role': '动态角色',
892
- 'static role': '静态角色',
893
869
  /*
894
870
  'Create {type}': '创建{type}',
895
871
  'Create Intermediate/Boundary Event': '创建中间/边界事件',
@@ -1260,85 +1236,6 @@ var customUserTaskModule = {
1260
1236
  userTaskContextPadProvider: ['type', UserTaskContextPadProvider],
1261
1237
  };
1262
1238
 
1263
- class ServiceTaskPaletteProvider {
1264
- constructor(palette, translate, elementFactory, create) {
1265
- this.translate = translate;
1266
- this.elementFactory = elementFactory;
1267
- this.create = create;
1268
- palette.registerProvider(this);
1269
- this.createServiceTask = this.createServiceTask.bind(this);
1270
- }
1271
- getPaletteEntries() {
1272
- return {
1273
- 'create.service-task': {
1274
- group: 'activity',
1275
- className: 'bpmn-icon-service-task',
1276
- title: this.translate('Create ServiceTask'),
1277
- action: {
1278
- dragstart: this.createServiceTask,
1279
- click: this.createServiceTask
1280
- }
1281
- }
1282
- };
1283
- }
1284
- createServiceTask(event) {
1285
- const shape = this.elementFactory.createShape({ type: 'bpmn:ServiceTask' });
1286
- this.create.start(event, shape);
1287
- }
1288
- }
1289
-
1290
- class ServiceTaskContextPadProvider {
1291
- constructor(contextPad, translate, appendPreview, elementFactory, autoPlace, create) {
1292
- this.translate = translate;
1293
- this.appendPreview = appendPreview;
1294
- this.elementFactory = elementFactory;
1295
- this.autoPlace = autoPlace;
1296
- this.create = create;
1297
- contextPad.registerProvider(this);
1298
- this.appendServiceTaskPreview = this.appendServiceTaskPreview.bind(this);
1299
- this.appendServiceTask = this.appendServiceTask.bind(this);
1300
- this.appendServiceTaskStart = this.appendServiceTaskStart.bind(this);
1301
- }
1302
- getContextPadEntries() {
1303
- return {
1304
- 'append.service-task': {
1305
- group: 'model',
1306
- className: 'bpmn-icon-service-task',
1307
- title: this.translate('Append ServiceTask'),
1308
- action: {
1309
- hover: this.appendServiceTaskPreview,
1310
- click: this.appendServiceTask,
1311
- dragstart: this.appendServiceTaskStart
1312
- }
1313
- }
1314
- };
1315
- }
1316
- appendServiceTaskPreview(event, source) {
1317
- this.appendPreview.create(source, 'bpmn:ServiceTask');
1318
- return () => {
1319
- this.appendPreview.cleanUp();
1320
- };
1321
- }
1322
- appendServiceTask(event, source) {
1323
- const shape = this.elementFactory.createShape({ type: 'bpmn:ServiceTask' });
1324
- this.autoPlace.append(source, shape);
1325
- this.appendPreview.cleanUp();
1326
- }
1327
- appendServiceTaskStart(event, source) {
1328
- const shape = this.elementFactory.createShape({ type: 'bpmn:ServiceTask' });
1329
- this.create.start(event, shape, {
1330
- source: source
1331
- });
1332
- this.appendPreview.cleanUp();
1333
- }
1334
- }
1335
-
1336
- var customServiceTaskModule = {
1337
- __init__: ['serviceTaskPaletteProvider', 'serviceTaskContextPadProvider'],
1338
- serviceTaskPaletteProvider: ['type', ServiceTaskPaletteProvider],
1339
- serviceTaskContextPadProvider: ['type', ServiceTaskContextPadProvider],
1340
- };
1341
-
1342
1239
  class HideOtherPaletteProvider {
1343
1240
  constructor(palette) {
1344
1241
  this.visibleEntryKeys = [
@@ -1350,7 +1247,6 @@ class HideOtherPaletteProvider {
1350
1247
  'create.start-event',
1351
1248
  'create.end-event',
1352
1249
  'create.user-task',
1353
- 'create.service-task',
1354
1250
  'create.exclusive-gateway',
1355
1251
  'xml'
1356
1252
  ];
@@ -1400,7 +1296,6 @@ class HideOtherContextPadProvider {
1400
1296
  else if (is(element, 'bpmn:Gateway')) {
1401
1297
  return {
1402
1298
  'append.user-task': entries['append.user-task'],
1403
- 'append.service-task': entries['append.service-task'],
1404
1299
  'append.gateway': entries['append.gateway'],
1405
1300
  'append.end-event': entries['append.end-event'],
1406
1301
  'connect': entries['connect'],
@@ -1411,7 +1306,6 @@ class HideOtherContextPadProvider {
1411
1306
  }
1412
1307
  return {
1413
1308
  'append.user-task': entries['append.user-task'],
1414
- 'append.service-task': entries['append.service-task'],
1415
1309
  'append.gateway': entries['append.gateway'],
1416
1310
  'append.end-event': entries['append.end-event'],
1417
1311
  'connect': entries['connect'],
@@ -1479,13 +1373,12 @@ var customHideOtherModule = {
1479
1373
  gatewayReplaceMenuProvider: ['type', GatewayReplaceMenuProvider]
1480
1374
  };
1481
1375
 
1482
- const util = {};
1483
- function addExtensionProperty(element, key, value) {
1376
+ function addExtensionProperty(element, key, value, bpmnFactory, modeling) {
1484
1377
  let extensionElements = element.businessObject.get('extensionElements');
1485
1378
  if (!extensionElements) {
1486
- extensionElements = util.bpmnFactory.create('bpmn:ExtensionElements', { values: [] });
1379
+ extensionElements = bpmnFactory.create('bpmn:ExtensionElements', { values: [] });
1487
1380
  extensionElements.$parent = element.businessObject;
1488
- util.modeling.updateModdleProperties(element, element.businessObject, { extensionElements });
1381
+ modeling.updateModdleProperties(element, element.businessObject, { extensionElements });
1489
1382
  }
1490
1383
  let properties = null;
1491
1384
  const extensionElementValues = extensionElements.get('values');
@@ -1494,125 +1387,73 @@ function addExtensionProperty(element, key, value) {
1494
1387
  properties = existPropertiesElements[0];
1495
1388
  }
1496
1389
  if (!properties) {
1497
- properties = util.bpmnFactory.create('camunda:Properties', { values: [] });
1390
+ properties = bpmnFactory.create('camunda:Properties', { values: [] });
1498
1391
  properties.$parent = extensionElements;
1499
- util.modeling.updateModdleProperties(element, extensionElements, { values: [...extensionElements.get('values'), properties] });
1392
+ modeling.updateModdleProperties(element, extensionElements, { values: [...extensionElements.get('values'), properties] });
1500
1393
  }
1501
1394
  const propertyValues = properties.get('values');
1502
1395
  const existPropertyIndex = propertyValues.findIndex((value) => value.name === key);
1503
1396
  if (existPropertyIndex > -1) {
1504
- util.modeling.updateModdleProperties(element, propertyValues[existPropertyIndex], { name: key, value });
1397
+ modeling.updateModdleProperties(element, propertyValues[existPropertyIndex], { name: key, value });
1505
1398
  }
1506
1399
  else {
1507
- const property = util.bpmnFactory.create('camunda:Property', { name: key, value });
1400
+ const property = bpmnFactory.create('camunda:Property', { name: key, value });
1508
1401
  property.$parent = properties;
1509
- util.modeling.updateModdleProperties(element, properties, { values: [...properties.get('values'), property] });
1510
- }
1511
- }
1512
- function getExtensionPropertyValue(element, key) {
1513
- let extensionElements = element.businessObject.get('extensionElements');
1514
- if (!extensionElements) {
1515
- return '';
1516
- }
1517
- let properties = null;
1518
- const extensionElementValues = extensionElements.get('values');
1519
- const existPropertiesElements = extensionElementValues.filter((value) => is(value, 'camunda:Properties'));
1520
- if (existPropertiesElements.length > 0) {
1521
- properties = existPropertiesElements[0];
1522
- }
1523
- if (!properties) {
1524
- return '';
1525
- }
1526
- const propertyValues = properties.get('values');
1527
- const existPropertyIndex = propertyValues.findIndex((value) => value.name === key);
1528
- if (existPropertyIndex > -1) {
1529
- return propertyValues[existPropertyIndex].value;
1402
+ modeling.updateModdleProperties(element, properties, { values: [...properties.get('values'), property] });
1530
1403
  }
1531
1404
  }
1532
1405
 
1533
1406
  // @ts-ignore
1534
- class TaskDescriptionProps {
1407
+ class DescriptionProps {
1535
1408
  constructor(props) {
1536
1409
  this.id = 'Coast_taskDescription';
1537
- const { element } = props;
1410
+ const { element, translate, bpmnFactory, modeling, debounce } = props;
1538
1411
  this.component = () => {
1539
- return TextAreaEntry({
1540
- element: element,
1412
+ return TextFieldEntry({
1541
1413
  id: this.id,
1542
- label: util.translate('Task description'),
1543
- getValue: () => {
1544
- return getExtensionPropertyValue(element, this.id);
1545
- },
1546
- setValue: (value) => {
1547
- addExtensionProperty(element, this.id, value);
1548
- },
1549
- debounce: util.debounce,
1550
- autoResize: true
1551
- });
1552
- };
1553
- this.isEdited = isTextAreaEntryEdited;
1554
- }
1555
- }
1556
-
1557
- // @ts-ignore
1558
- class UserAssignmentStaticOrDynamicProps {
1559
- constructor(props) {
1560
- this.id = 'Coast_userAssignment_staticOrDynamic';
1561
- const { element } = props;
1562
- this.component = () => {
1563
- return SelectEntry({
1564
1414
  element: element,
1565
- id: this.id,
1566
- label: util.translate('Set assignment rule'),
1415
+ label: translate('Task Description'),
1567
1416
  getValue: () => {
1568
- return getExtensionPropertyValue(element, this.id);
1417
+ return element.businessObject.get('taskDescription') || '';
1569
1418
  },
1570
1419
  setValue: (value) => {
1571
- addExtensionProperty(element, this.id, value);
1420
+ modeling.updateModdleProperties(element, element.businessObject, {
1421
+ 'taskDescription': value
1422
+ });
1423
+ addExtensionProperty(element, 'taskDescription', value, bpmnFactory, modeling);
1572
1424
  },
1573
- getOptions: () => {
1574
- return [
1575
- { value: '', label: util.translate('dynamic user') },
1576
- { value: 'static_user', label: util.translate('static user') },
1577
- { value: 'dynamic_role', label: util.translate('dynamic role') },
1578
- { value: 'static_role', label: util.translate('static role') }
1579
- ];
1580
- }
1425
+ debounce
1581
1426
  });
1582
1427
  };
1583
- this.isEdited = isSelectEntryEdited;
1428
+ this.isEdited = isTextFieldEntryEdited;
1584
1429
  }
1585
1430
  }
1586
1431
 
1587
- function getUserAssignmentProps(element) {
1588
- return [new UserAssignmentStaticOrDynamicProps(element)];
1589
- }
1590
-
1591
1432
  class CustomPropertiesProvider {
1592
1433
  constructor(propertiesPanel, translate, bpmnFactory, modeling, debounceInput) {
1593
1434
  this.translate = translate;
1594
- util.translate = translate;
1595
- util.bpmnFactory = bpmnFactory;
1596
- util.modeling = modeling;
1597
- util.debounce = debounceInput;
1435
+ this.bpmnFactory = bpmnFactory;
1436
+ this.modeling = modeling;
1437
+ this.debounceInput = debounceInput;
1598
1438
  propertiesPanel.registerProvider(0, this);
1599
1439
  }
1600
1440
  getGroups(element) {
1601
1441
  return ((groups) => {
1602
- const generalGroup = groups.find((group) => group.id === 'general');
1603
- generalGroup.shouldOpen = true;
1604
- console.log(generalGroup);
1605
- if (is(element, 'bpmn:Process')) {
1606
- generalGroup.entries.splice(1, 3);
1607
- }
1608
- else if (is(element, 'bpmn:UserTask')) {
1609
- generalGroup.entries.splice(1, 1);
1610
- generalGroup.entries.push(...[
1611
- new TaskDescriptionProps({ element }),
1612
- ...getUserAssignmentProps({ element })
1613
- ]);
1614
- }
1615
- return [generalGroup];
1442
+ if (is(element, 'bpmn:UserTask')) {
1443
+ console.log(groups);
1444
+ return [groups.find((group) => group.id === 'general'), {
1445
+ id: 'Coast_Implementation',
1446
+ label: this.translate('More config'),
1447
+ entries: [new DescriptionProps({
1448
+ element,
1449
+ translate: this.translate,
1450
+ bpmnFactory: this.bpmnFactory,
1451
+ modeling: this.modeling,
1452
+ debounce: this.debounceInput
1453
+ })]
1454
+ }];
1455
+ }
1456
+ return groups;
1616
1457
  });
1617
1458
  }
1618
1459
  }
@@ -1622,6 +1463,37 @@ var customPropertiesPanelModule = {
1622
1463
  customPropertiesProvider: ['type', CustomPropertiesProvider]
1623
1464
  };
1624
1465
 
1466
+ var name = "Coast Custom";
1467
+ var prefix = "coast";
1468
+ var uri = "https://c-standard.cn";
1469
+ var xml = {
1470
+ tagAlias: "lowerCase"
1471
+ };
1472
+ var associations = [];
1473
+ var types = [
1474
+ {
1475
+ name: "CoastUserTask",
1476
+ "extends": [
1477
+ "bpmn:UserTask"
1478
+ ],
1479
+ properties: [
1480
+ {
1481
+ name: "taskDescription",
1482
+ isAttr: true,
1483
+ type: "String"
1484
+ }
1485
+ ]
1486
+ }
1487
+ ];
1488
+ var coastModdleDescriptor = {
1489
+ name: name,
1490
+ prefix: prefix,
1491
+ uri: uri,
1492
+ xml: xml,
1493
+ associations: associations,
1494
+ types: types
1495
+ };
1496
+
1625
1497
  class CodeEditorComponent {
1626
1498
  set code(code) {
1627
1499
  var _a;
@@ -1698,24 +1570,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1698
1570
  class CamundaBpmnEditorComponent {
1699
1571
  constructor() {
1700
1572
  this.isShowXml = false;
1701
- this.initialDiagram = '<?xml version="1.0" encoding="UTF-8"?>' +
1702
- '<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
1703
- 'xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" ' +
1704
- 'xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" ' +
1705
- 'xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" ' +
1706
- 'targetNamespace="http://bpmn.io/schema/bpmn" ' +
1707
- 'id="Definitions_1">' +
1708
- '<bpmn:process id="Process_1" isExecutable="true">' +
1709
- '<bpmn:startEvent id="StartEvent_1"/>' +
1710
- '</bpmn:process>' +
1711
- '<bpmndi:BPMNDiagram id="BPMNDiagram_1">' +
1712
- '<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">' +
1713
- '<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">' +
1714
- '<dc:Bounds height="36.0" width="36.0" x="173.0" y="102.0"/>' +
1715
- '</bpmndi:BPMNShape>' +
1716
- '</bpmndi:BPMNPlane>' +
1717
- '</bpmndi:BPMNDiagram>' +
1718
- '</bpmn:definitions>';
1719
1573
  }
1720
1574
  ngAfterViewInit() {
1721
1575
  var _a, _b;
@@ -1730,17 +1584,19 @@ class CamundaBpmnEditorComponent {
1730
1584
  additionalModules: [
1731
1585
  customTranslateModule,
1732
1586
  customUserTaskModule,
1733
- customServiceTaskModule,
1734
1587
  customHideOtherModule,
1735
1588
  customPropertiesPanelModule
1736
- ]
1589
+ ],
1590
+ moddleExtensions: {
1591
+ coast: coastModdleDescriptor
1592
+ }
1737
1593
  });
1738
1594
  const logo = this.modeler._container.querySelector('.bjs-powered-by');
1739
1595
  if (logo) {
1740
1596
  this.modeler._container.removeChild(logo);
1741
1597
  }
1742
1598
  this.canvas = this.modeler.get('canvas');
1743
- this.modeler.importXML(this.initialDiagram).then(() => {
1599
+ this.modeler.createDiagram().then(() => {
1744
1600
  this.canvas.zoom('fit-viewport');
1745
1601
  });
1746
1602
  }
@@ -1947,32 +1803,30 @@ class DataGridService {
1947
1803
  }, undefined, onSuccess);
1948
1804
  }
1949
1805
  getUserInfo(uid) {
1950
- if (this.userInfoCache.hasOwnProperty(uid)) {
1951
- return of(this.userInfoCache[uid]);
1806
+ if (!this.userInfoCache.hasOwnProperty(uid)) {
1807
+ this.userInfoCache[uid] = this.http.get('api/data/custom', {
1808
+ params: {
1809
+ executor: 'com.cs.system.user.GetUserInfo',
1810
+ uid
1811
+ }
1812
+ }).pipe(shareReplay(1), map(response => {
1813
+ return response.data;
1814
+ }));
1952
1815
  }
1953
- return this.http.get('api/data/custom', {
1954
- params: {
1955
- executor: 'com.cs.system.user.GetUserInfo',
1956
- uid
1957
- }
1958
- }).pipe(map(response => {
1959
- this.userInfoCache[uid] = response.data;
1960
- return response.data;
1961
- }));
1816
+ return this.userInfoCache[uid];
1962
1817
  }
1963
1818
  getUnitInfo(uid) {
1964
- if (this.unitInfoCache.hasOwnProperty(uid)) {
1965
- return of(this.unitInfoCache[uid]);
1819
+ if (!this.unitInfoCache.hasOwnProperty(uid)) {
1820
+ this.unitInfoCache[uid] = this.http.get('api/data/custom', {
1821
+ params: {
1822
+ executor: 'com.cs.system.user.GetUnitInfo',
1823
+ uid
1824
+ }
1825
+ }).pipe(shareReplay(1), map(response => {
1826
+ return response.data;
1827
+ }));
1966
1828
  }
1967
- return this.http.get('api/data/custom', {
1968
- params: {
1969
- executor: 'com.cs.system.user.GetUnitInfo',
1970
- uid
1971
- }
1972
- }).pipe(map(response => {
1973
- this.unitInfoCache[uid] = response.data;
1974
- return response.data;
1975
- }));
1829
+ return this.unitInfoCache[uid];
1976
1830
  }
1977
1831
  }
1978
1832
  DataGridService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -3158,10 +3012,10 @@ class DrawerComponent {
3158
3012
  }
3159
3013
  }
3160
3014
  DrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DrawerComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
3161
- DrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DrawerComponent, selector: "rs-drawer", ngImport: i0, template: "<div #drawerBackdrop class=\"drawer-backdrop\" (click)=\"hide($event, drawerBackdrop)\">\n <div class=\"drawer\" [ngStyle]=\"{width: _width}\">\n <div *ngIf=\"headerTemplate\" class=\"drawer-header\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: headerTemplateContext}\"></ng-template>\n </div>\n <div class=\"drawer-content\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: contentTemplateContext}\"></ng-template>\n </div>\n <div class=\"drawer-close\">\n <dx-button height=\"40px\" icon=\"coast-icon coast-icon-arrow-right-filling\" (onClick)=\"hide($event)\"></dx-button>\n </div>\n </div>\n</div>\n", styles: [":host .drawer-backdrop{position:absolute;inset:0;z-index:calc(var(--coast-z-index-drawer, 1040) - 1)}:host .drawer-backdrop .drawer{position:absolute;right:0;height:100%;z-index:var(--coast-z-index-drawer, 1040);background-color:var(--coast-base-bg-color, #fff);box-shadow:0 10px 24px #252b3a3d;display:flex;flex-flow:column nowrap}:host .drawer-backdrop .drawer .drawer-header{flex:0 0 36px;padding:8px;border-bottom:1px solid var(--coast-border-color, #dddddd);display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-end}:host .drawer-backdrop .drawer .drawer-content{flex:1;overflow:auto;display:flex;flex-flow:column nowrap}:host .drawer-backdrop .drawer .drawer-close{position:absolute;height:100%;width:20px;top:0;left:-20px;display:flex;flex-flow:row nowrap;align-items:center}\n"], dependencies: [{ 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: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { 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"] }] });
3015
+ DrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DrawerComponent, selector: "rs-drawer", ngImport: i0, template: "<div #drawerBackdrop class=\"drawer-backdrop\" (click)=\"hide($event, drawerBackdrop)\">\n <div class=\"drawer\" [ngStyle]=\"{width: _width}\">\n <div *ngIf=\"headerTemplate\" class=\"drawer-header\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: headerTemplateContext}\"></ng-template>\n </div>\n <div class=\"drawer-content\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: contentTemplateContext}\"></ng-template>\n </div>\n <div class=\"drawer-close\">\n <dx-button height=\"40px\" icon=\"coast-icon coast-icon-arrow-right-filling\" (onClick)=\"hide($event)\"></dx-button>\n </div>\n </div>\n</div>\n", styles: [":host .drawer-backdrop{position:absolute;inset:0;z-index:calc(var(--coast-z-index-drawer, 1040) - 1)}:host .drawer-backdrop .drawer{position:absolute;right:0;height:100%;z-index:var(--coast-z-index-drawer, 1040);background-color:var(--coast-base-bg-color, #fff);display:flex;flex-flow:column nowrap}:host .drawer-backdrop .drawer .drawer-header{flex:0 0 36px;padding:8px;border-bottom:1px solid var(--coast-border-color, #dddddd);display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-end}:host .drawer-backdrop .drawer .drawer-content{flex:1;overflow:auto;display:flex;flex-flow:column nowrap}:host .drawer-backdrop .drawer .drawer-close{position:absolute;height:100%;width:20px;top:0;left:-20px;display:flex;flex-flow:row nowrap;align-items:center}\n"], dependencies: [{ 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: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { 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"] }] });
3162
3016
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DrawerComponent, decorators: [{
3163
3017
  type: Component,
3164
- args: [{ selector: 'rs-drawer', template: "<div #drawerBackdrop class=\"drawer-backdrop\" (click)=\"hide($event, drawerBackdrop)\">\n <div class=\"drawer\" [ngStyle]=\"{width: _width}\">\n <div *ngIf=\"headerTemplate\" class=\"drawer-header\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: headerTemplateContext}\"></ng-template>\n </div>\n <div class=\"drawer-content\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: contentTemplateContext}\"></ng-template>\n </div>\n <div class=\"drawer-close\">\n <dx-button height=\"40px\" icon=\"coast-icon coast-icon-arrow-right-filling\" (onClick)=\"hide($event)\"></dx-button>\n </div>\n </div>\n</div>\n", styles: [":host .drawer-backdrop{position:absolute;inset:0;z-index:calc(var(--coast-z-index-drawer, 1040) - 1)}:host .drawer-backdrop .drawer{position:absolute;right:0;height:100%;z-index:var(--coast-z-index-drawer, 1040);background-color:var(--coast-base-bg-color, #fff);box-shadow:0 10px 24px #252b3a3d;display:flex;flex-flow:column nowrap}:host .drawer-backdrop .drawer .drawer-header{flex:0 0 36px;padding:8px;border-bottom:1px solid var(--coast-border-color, #dddddd);display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-end}:host .drawer-backdrop .drawer .drawer-content{flex:1;overflow:auto;display:flex;flex-flow:column nowrap}:host .drawer-backdrop .drawer .drawer-close{position:absolute;height:100%;width:20px;top:0;left:-20px;display:flex;flex-flow:row nowrap;align-items:center}\n"] }]
3018
+ args: [{ selector: 'rs-drawer', template: "<div #drawerBackdrop class=\"drawer-backdrop\" (click)=\"hide($event, drawerBackdrop)\">\n <div class=\"drawer\" [ngStyle]=\"{width: _width}\">\n <div *ngIf=\"headerTemplate\" class=\"drawer-header\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: headerTemplateContext}\"></ng-template>\n </div>\n <div class=\"drawer-content\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: contentTemplateContext}\"></ng-template>\n </div>\n <div class=\"drawer-close\">\n <dx-button height=\"40px\" icon=\"coast-icon coast-icon-arrow-right-filling\" (onClick)=\"hide($event)\"></dx-button>\n </div>\n </div>\n</div>\n", styles: [":host .drawer-backdrop{position:absolute;inset:0;z-index:calc(var(--coast-z-index-drawer, 1040) - 1)}:host .drawer-backdrop .drawer{position:absolute;right:0;height:100%;z-index:var(--coast-z-index-drawer, 1040);background-color:var(--coast-base-bg-color, #fff);display:flex;flex-flow:column nowrap}:host .drawer-backdrop .drawer .drawer-header{flex:0 0 36px;padding:8px;border-bottom:1px solid var(--coast-border-color, #dddddd);display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-end}:host .drawer-backdrop .drawer .drawer-content{flex:1;overflow:auto;display:flex;flex-flow:column nowrap}:host .drawer-backdrop .drawer .drawer-close{position:absolute;height:100%;width:20px;top:0;left:-20px;display:flex;flex-flow:row nowrap;align-items:center}\n"] }]
3165
3019
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
3166
3020
 
3167
3021
  class DrawerModule {
@@ -3379,14 +3233,6 @@ class ModalComponent {
3379
3233
  nextModal.querySelector('.modal-backdrop').style.backgroundColor = 'rgba(37, 43, 58, 0.05)';
3380
3234
  }
3381
3235
  }
3382
- resolveModalBackdropPosition() {
3383
- return {
3384
- "width": this.elementRef.nativeElement.parentElement.offsetWidth + 'px',
3385
- "height": this.elementRef.nativeElement.parentElement.offsetHeight - 1 + 'px',
3386
- "top": this.elementRef.nativeElement.parentElement.offsetTop + 'px',
3387
- "left": this.elementRef.nativeElement.parentElement.offsetLeft + 'px',
3388
- };
3389
- }
3390
3236
  resolveModalPosition() {
3391
3237
  if (this.size === 'full') {
3392
3238
  return {};
@@ -3452,10 +3298,10 @@ class ModalComponent {
3452
3298
  }
3453
3299
  }
3454
3300
  ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ModalComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3455
- ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ModalComponent, selector: "rs-modal", host: { listeners: { "document:mouseup": "onMouseup($event)", "document:mousemove": "onMousemove($event)", "window:resize": "onWindowResize($event)" } }, viewQueries: [{ propertyName: "modalElementRef", first: true, predicate: ["modal"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"modal-backdrop\" [ngStyle]=\"resolveModalBackdropPosition()\">\r\n <div #modal class=\"modal\" [ngStyle]=\"resolveModalPosition()\">\r\n <div class=\"modal-header\" (mousedown)=\"onMousedown($event)\">\r\n <div class=\"modal-title\">{{title}}</div>\r\n <i class=\"icon-close\" (click)=\"hide()\"></i>\r\n </div>\r\n <div class=\"modal-content\">\r\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: contentTemplateContext}\"></ng-template>\r\n </div>\r\n <div *ngIf=\"footerTemplate\" class=\"modal-footer\">\r\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: footerTemplateContext}\"></ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host .modal-backdrop{position:absolute;inset:0;z-index:calc(var(--coast-z-index-modal, 1050) - 1)}:host .modal-backdrop .modal{position:absolute;z-index:var(--coast-z-index-modal, 1050);background-color:var(--coast-base-bg-color, #fff);border-radius:4px;box-shadow:0 10px 24px #252b3a3d;display:flex;flex-flow:column nowrap}:host .modal-backdrop .modal .modal-header{flex:0 0 36px;border-bottom:1px solid var(--coast-border-color, #dddddd)}:host .modal-backdrop .modal .modal-header .modal-title{padding:12px 24px;font-size:14px;font-weight:700}:host .modal-backdrop .modal .modal-header i{position:absolute;top:12px;right:12px;padding:4px;font-size:14px}:host .modal-backdrop .modal .modal-header i:hover{cursor:pointer;color:var(--coast-danger-color, #d9534f);background-color:var(--coast-global-bg-color, #f6f6f8)}:host .modal-backdrop .modal .modal-content{flex:1;overflow:auto;display:flex;flex-flow:column nowrap}:host .modal-backdrop .modal .modal-footer{flex:none;padding-top:12px;border-top:1px solid var(--coast-border-color, #dddddd)}\n"], dependencies: [{ 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: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
3301
+ ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ModalComponent, selector: "rs-modal", host: { listeners: { "document:mouseup": "onMouseup($event)", "document:mousemove": "onMousemove($event)", "window:resize": "onWindowResize($event)" } }, viewQueries: [{ propertyName: "modalElementRef", first: true, predicate: ["modal"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"modal-backdrop\">\r\n <div #modal class=\"modal\" [ngStyle]=\"resolveModalPosition()\">\r\n <div class=\"modal-header\" (mousedown)=\"onMousedown($event)\">\r\n <div class=\"modal-title\">{{title}}</div>\r\n <i class=\"icon-close\" (click)=\"hide()\"></i>\r\n </div>\r\n <div class=\"modal-content\">\r\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: contentTemplateContext}\"></ng-template>\r\n </div>\r\n <div *ngIf=\"footerTemplate\" class=\"modal-footer\">\r\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: footerTemplateContext}\"></ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host .modal-backdrop{position:absolute;inset:0;z-index:calc(var(--coast-z-index-modal, 1050) - 1)}:host .modal-backdrop .modal{position:absolute;z-index:var(--coast-z-index-modal, 1050);background-color:var(--coast-base-bg-color, #fff);border-radius:4px;box-shadow:0 10px 24px #252b3a3d;display:flex;flex-flow:column nowrap}:host .modal-backdrop .modal .modal-header{flex:0 0 36px;border-bottom:1px solid var(--coast-border-color, #dddddd)}:host .modal-backdrop .modal .modal-header .modal-title{padding:12px 24px;font-size:14px;font-weight:700}:host .modal-backdrop .modal .modal-header i{position:absolute;top:12px;right:12px;padding:4px;font-size:14px}:host .modal-backdrop .modal .modal-header i:hover{cursor:pointer;color:var(--coast-danger-color, #d9534f);background-color:var(--coast-global-bg-color, #f6f6f8)}:host .modal-backdrop .modal .modal-content{flex:1;overflow:auto;display:flex;flex-flow:column nowrap}:host .modal-backdrop .modal .modal-footer{flex:none;padding-top:12px;border-top:1px solid var(--coast-border-color, #dddddd)}\n"], dependencies: [{ 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: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
3456
3302
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ModalComponent, decorators: [{
3457
3303
  type: Component,
3458
- args: [{ selector: 'rs-modal', template: "<div class=\"modal-backdrop\" [ngStyle]=\"resolveModalBackdropPosition()\">\r\n <div #modal class=\"modal\" [ngStyle]=\"resolveModalPosition()\">\r\n <div class=\"modal-header\" (mousedown)=\"onMousedown($event)\">\r\n <div class=\"modal-title\">{{title}}</div>\r\n <i class=\"icon-close\" (click)=\"hide()\"></i>\r\n </div>\r\n <div class=\"modal-content\">\r\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: contentTemplateContext}\"></ng-template>\r\n </div>\r\n <div *ngIf=\"footerTemplate\" class=\"modal-footer\">\r\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: footerTemplateContext}\"></ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host .modal-backdrop{position:absolute;inset:0;z-index:calc(var(--coast-z-index-modal, 1050) - 1)}:host .modal-backdrop .modal{position:absolute;z-index:var(--coast-z-index-modal, 1050);background-color:var(--coast-base-bg-color, #fff);border-radius:4px;box-shadow:0 10px 24px #252b3a3d;display:flex;flex-flow:column nowrap}:host .modal-backdrop .modal .modal-header{flex:0 0 36px;border-bottom:1px solid var(--coast-border-color, #dddddd)}:host .modal-backdrop .modal .modal-header .modal-title{padding:12px 24px;font-size:14px;font-weight:700}:host .modal-backdrop .modal .modal-header i{position:absolute;top:12px;right:12px;padding:4px;font-size:14px}:host .modal-backdrop .modal .modal-header i:hover{cursor:pointer;color:var(--coast-danger-color, #d9534f);background-color:var(--coast-global-bg-color, #f6f6f8)}:host .modal-backdrop .modal .modal-content{flex:1;overflow:auto;display:flex;flex-flow:column nowrap}:host .modal-backdrop .modal .modal-footer{flex:none;padding-top:12px;border-top:1px solid var(--coast-border-color, #dddddd)}\n"] }]
3304
+ args: [{ selector: 'rs-modal', template: "<div class=\"modal-backdrop\">\r\n <div #modal class=\"modal\" [ngStyle]=\"resolveModalPosition()\">\r\n <div class=\"modal-header\" (mousedown)=\"onMousedown($event)\">\r\n <div class=\"modal-title\">{{title}}</div>\r\n <i class=\"icon-close\" (click)=\"hide()\"></i>\r\n </div>\r\n <div class=\"modal-content\">\r\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: contentTemplateContext}\"></ng-template>\r\n </div>\r\n <div *ngIf=\"footerTemplate\" class=\"modal-footer\">\r\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"\r\n [ngTemplateOutletContext]=\"{$implicit: footerTemplateContext}\"></ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host .modal-backdrop{position:absolute;inset:0;z-index:calc(var(--coast-z-index-modal, 1050) - 1)}:host .modal-backdrop .modal{position:absolute;z-index:var(--coast-z-index-modal, 1050);background-color:var(--coast-base-bg-color, #fff);border-radius:4px;box-shadow:0 10px 24px #252b3a3d;display:flex;flex-flow:column nowrap}:host .modal-backdrop .modal .modal-header{flex:0 0 36px;border-bottom:1px solid var(--coast-border-color, #dddddd)}:host .modal-backdrop .modal .modal-header .modal-title{padding:12px 24px;font-size:14px;font-weight:700}:host .modal-backdrop .modal .modal-header i{position:absolute;top:12px;right:12px;padding:4px;font-size:14px}:host .modal-backdrop .modal .modal-header i:hover{cursor:pointer;color:var(--coast-danger-color, #d9534f);background-color:var(--coast-global-bg-color, #f6f6f8)}:host .modal-backdrop .modal .modal-content{flex:1;overflow:auto;display:flex;flex-flow:column nowrap}:host .modal-backdrop .modal .modal-footer{flex:none;padding-top:12px;border-top:1px solid var(--coast-border-color, #dddddd)}\n"] }]
3459
3305
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { modalElementRef: [{
3460
3306
  type: ViewChild,
3461
3307
  args: ['modal', { static: true }]