ngx-rs-ant 1.6.2 → 1.6.4

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 (45) hide show
  1. package/box-container/box-container.module.d.ts +7 -6
  2. package/box-container/box-item/item-config/form-item-config-error/form-item-config-error.component.d.ts +5 -0
  3. package/camunda-bpmn-editor/camunda-bpmn-editor.component.d.ts +7 -2
  4. package/camunda-bpmn-editor/custom/hide-other/HideOtherContextPadProvider.d.ts +9 -5
  5. package/esm2020/box-container/PluginManager.mjs +11 -2
  6. package/esm2020/box-container/box-container.module.mjs +4 -1
  7. package/esm2020/box-container/box-item/item-config/form-item-config-error/form-item-config-error.component.mjs +11 -0
  8. package/esm2020/box-container/plugin-active/plugin-active.component.mjs +3 -3
  9. package/esm2020/box-container/plugin-hover/plugin-hover.component.mjs +3 -3
  10. package/esm2020/camunda-bpmn-editor/camunda-bpmn-editor.component.mjs +29 -7
  11. package/esm2020/camunda-bpmn-editor/custom/hide-other/HideOtherContextPadProvider.mjs +11 -12
  12. package/esm2020/camunda-bpmn-editor/custom/hide-other/HideOtherPaletteProvider.mjs +2 -3
  13. package/esm2020/camunda-bpmn-editor/custom/service-task/ServiceTaskContextPadProvider.mjs +2 -2
  14. package/esm2020/camunda-bpmn-editor/custom/service-task/ServiceTaskPaletteProvider.mjs +2 -2
  15. package/esm2020/camunda-bpmn-editor/custom/translate/translations.mjs +21 -293
  16. package/esm2020/camunda-bpmn-editor/custom/user-task/UserTaskContextPadProvider.mjs +2 -2
  17. package/esm2020/camunda-bpmn-editor/custom/user-task/UserTaskPaletteProvider.mjs +2 -2
  18. package/esm2020/code-editor/code-editor.component.mjs +3 -3
  19. package/esm2020/form/field-selector/field-selector.component.mjs +144 -0
  20. package/esm2020/form/form.module.mjs +10 -5
  21. package/esm2020/icon-selector/icon-selector.component.mjs +3 -3
  22. package/esm2020/modal/modal.component.mjs +3 -3
  23. package/esm2020/public-api.mjs +3 -1
  24. package/esm2020/util/form-item-config-base.mjs +7 -0
  25. package/fesm2015/ngx-rs-ant.mjs +242 -473
  26. package/fesm2015/ngx-rs-ant.mjs.map +1 -1
  27. package/fesm2020/ngx-rs-ant.mjs +242 -473
  28. package/fesm2020/ngx-rs-ant.mjs.map +1 -1
  29. package/form/field-selector/field-selector.component.d.ts +25 -0
  30. package/form/form.module.d.ts +5 -4
  31. package/package.json +2 -2
  32. package/public-api.d.ts +2 -0
  33. package/util/form-item-config-base.d.ts +6 -0
  34. package/camunda-bpmn-editor/custom/config/CustomPropertiesProvider.d.ts +0 -5
  35. package/camunda-bpmn-editor/custom/config/index.d.ts +0 -6
  36. package/camunda-bpmn-editor/custom/config/properties/user-task/TaskDescriptionProps.d.ts +0 -6
  37. package/camunda-bpmn-editor/custom/config/properties/user-task/user-assignment/UserAssignmentProps.d.ts +0 -2
  38. package/camunda-bpmn-editor/custom/config/properties/user-task/user-assignment/UserAssignmentStaticOrDynamicProps.d.ts +0 -6
  39. package/camunda-bpmn-editor/custom/config/util/ElementUtils.d.ts +0 -3
  40. package/esm2020/camunda-bpmn-editor/custom/config/CustomPropertiesProvider.mjs +0 -33
  41. package/esm2020/camunda-bpmn-editor/custom/config/index.mjs +0 -6
  42. package/esm2020/camunda-bpmn-editor/custom/config/properties/user-task/TaskDescriptionProps.mjs +0 -26
  43. package/esm2020/camunda-bpmn-editor/custom/config/properties/user-task/user-assignment/UserAssignmentProps.mjs +0 -5
  44. package/esm2020/camunda-bpmn-editor/custom/config/properties/user-task/user-assignment/UserAssignmentStaticOrDynamicProps.mjs +0 -32
  45. package/esm2020/camunda-bpmn-editor/custom/config/util/ElementUtils.mjs +0 -52
@@ -9,7 +9,7 @@ import * as i2$1 from 'devextreme-angular/ui/draggable';
9
9
  import { DevExtremeModule, DxLoadPanelModule, DxValidationGroupComponent, DxDataGridComponent } 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 { isLabel } from 'diagram-js/lib/util/ModelUtil';
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';
@@ -26,6 +26,9 @@ import * as i3$2 from 'devextreme-angular/ui/accordion';
26
26
  import * as i7 from 'devextreme-angular/ui/text-box';
27
27
  import * as i8 from 'devextreme-angular/ui/validation-group';
28
28
  import * as i9 from 'devextreme-angular/ui/validator';
29
+ import * as i5$2 from 'devextreme-angular/ui/drop-down-box';
30
+ import * as i6$2 from 'devextreme-angular/ui/tag-box';
31
+ import * as i8$1 from 'devextreme-angular/ui/tree-list';
29
32
  import * as i4 from 'devextreme-angular/ui/popover';
30
33
  import * as i2$3 from 'ng2-pdfjs-viewer';
31
34
  import { PdfJsViewerComponent, PdfJsViewerModule } from 'ng2-pdfjs-viewer';
@@ -150,10 +153,10 @@ class PluginActiveComponent {
150
153
  }
151
154
  }
152
155
  PluginActiveComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PluginActiveComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
153
- PluginActiveComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: PluginActiveComponent, selector: "rs-plugin-active", host: { properties: { "style": "this._style" } }, ngImport: i0, template: "<div class=\"active-item\">\r\n <div class=\"active-bar\">\r\n <i *ngIf=\"showClose && !showDivider\" class=\"icon-drag\"></i>\r\n <span>{{name}}</span>\r\n <i class=\"coast-icon-add-row\" title=\"\u6DFB\u52A0\u884C\" (click)=\"splitItem('column')\"></i>\r\n <i class=\"coast-icon-add-column\" title=\"\u6DFB\u52A0\u5217\" (click)=\"splitItem('row')\"></i>\r\n <i *ngIf=\"showClose\" class=\"icon-close\" (click)=\"onItemCloseIconClick($event)\"></i>\r\n </div>\r\n <rs-divider *ngIf=\"showDivider\" [targetElement]=\"targetElement\" direction=\"row\"\r\n (dividerClick)=\"splitItem('column')\"></rs-divider>\r\n <rs-divider *ngIf=\"showDivider\" [targetElement]=\"targetElement\" direction=\"column\"\r\n (dividerClick)=\"splitItem('row')\"></rs-divider>\r\n</div>\r\n", styles: [":host{display:none;position:absolute;border:1px solid var(--coast-default-color, #337ab7);pointer-events:none}:host .active-item{width:100%;height:100%}:host .active-item .active-bar{padding:2px 4px;color:#fff;background-color:var(--coast-default-color, #337ab7);position:absolute;top:-23px;right:-1px;display:flex;flex-flow:row nowrap;align-items:center;pointer-events:all;white-space:nowrap}:host .active-item .active-bar i{flex:none;cursor:pointer}:host .active-item .active-bar i:not(:last-child){margin-right:8px}:host .active-item .active-bar i.icon-drag{cursor:move}:host .active-item .active-bar i.icon-close:hover{color:var(--coast-danger-color, #d9534f)}:host .active-item .active-bar span{flex:1;margin-right:8px}.plugin-active>:host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DividerComponent, selector: "rs-divider", inputs: ["direction", "targetElement"], outputs: ["dividerClick"] }] });
156
+ PluginActiveComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: PluginActiveComponent, selector: "rs-plugin-active", host: { properties: { "style": "this._style" } }, ngImport: i0, template: "<div class=\"active-item\">\r\n <div class=\"active-bar\">\r\n <i *ngIf=\"showClose && !showDivider\" class=\"icon-drag\"></i>\r\n <span>{{ name }}</span>\r\n <i class=\"coast-icon-add-row\" title=\"\u6DFB\u52A0\u884C\" (click)=\"splitItem('column')\"></i>\r\n <i class=\"coast-icon-add-column\" title=\"\u6DFB\u52A0\u5217\" (click)=\"splitItem('row')\"></i>\r\n <i *ngIf=\"showClose\" class=\"icon-close\" (click)=\"onItemCloseIconClick($event)\"></i>\r\n </div>\r\n <rs-divider *ngIf=\"showDivider\" [targetElement]=\"targetElement\" direction=\"row\"\r\n (dividerClick)=\"splitItem('column')\"></rs-divider>\r\n <rs-divider *ngIf=\"showDivider\" [targetElement]=\"targetElement\" direction=\"column\"\r\n (dividerClick)=\"splitItem('row')\"></rs-divider>\r\n</div>\r\n", styles: [":host{display:none;position:absolute;border:1px solid var(--coast-default-color, #337ab7);pointer-events:none}:host .active-item{width:100%;height:100%}:host .active-item .active-bar{padding:2px 4px;color:#fff;background-color:var(--coast-default-color, #337ab7);position:absolute;top:-23px;right:-1px;display:flex;flex-flow:row nowrap;align-items:center;pointer-events:all;white-space:nowrap}:host .active-item .active-bar i{flex:none;cursor:pointer}:host .active-item .active-bar i:not(:last-child){margin-right:8px}:host .active-item .active-bar i.icon-drag{cursor:move}:host .active-item .active-bar i.icon-close:hover{color:var(--coast-danger-color, #d9534f)}:host .active-item .active-bar span{flex:1;margin-right:8px}.plugin-active>:host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DividerComponent, selector: "rs-divider", inputs: ["direction", "targetElement"], outputs: ["dividerClick"] }] });
154
157
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PluginActiveComponent, decorators: [{
155
158
  type: Component,
156
- args: [{ selector: 'rs-plugin-active', template: "<div class=\"active-item\">\r\n <div class=\"active-bar\">\r\n <i *ngIf=\"showClose && !showDivider\" class=\"icon-drag\"></i>\r\n <span>{{name}}</span>\r\n <i class=\"coast-icon-add-row\" title=\"\u6DFB\u52A0\u884C\" (click)=\"splitItem('column')\"></i>\r\n <i class=\"coast-icon-add-column\" title=\"\u6DFB\u52A0\u5217\" (click)=\"splitItem('row')\"></i>\r\n <i *ngIf=\"showClose\" class=\"icon-close\" (click)=\"onItemCloseIconClick($event)\"></i>\r\n </div>\r\n <rs-divider *ngIf=\"showDivider\" [targetElement]=\"targetElement\" direction=\"row\"\r\n (dividerClick)=\"splitItem('column')\"></rs-divider>\r\n <rs-divider *ngIf=\"showDivider\" [targetElement]=\"targetElement\" direction=\"column\"\r\n (dividerClick)=\"splitItem('row')\"></rs-divider>\r\n</div>\r\n", styles: [":host{display:none;position:absolute;border:1px solid var(--coast-default-color, #337ab7);pointer-events:none}:host .active-item{width:100%;height:100%}:host .active-item .active-bar{padding:2px 4px;color:#fff;background-color:var(--coast-default-color, #337ab7);position:absolute;top:-23px;right:-1px;display:flex;flex-flow:row nowrap;align-items:center;pointer-events:all;white-space:nowrap}:host .active-item .active-bar i{flex:none;cursor:pointer}:host .active-item .active-bar i:not(:last-child){margin-right:8px}:host .active-item .active-bar i.icon-drag{cursor:move}:host .active-item .active-bar i.icon-close:hover{color:var(--coast-danger-color, #d9534f)}:host .active-item .active-bar span{flex:1;margin-right:8px}.plugin-active>:host{display:block}\n"] }]
159
+ args: [{ selector: 'rs-plugin-active', template: "<div class=\"active-item\">\r\n <div class=\"active-bar\">\r\n <i *ngIf=\"showClose && !showDivider\" class=\"icon-drag\"></i>\r\n <span>{{ name }}</span>\r\n <i class=\"coast-icon-add-row\" title=\"\u6DFB\u52A0\u884C\" (click)=\"splitItem('column')\"></i>\r\n <i class=\"coast-icon-add-column\" title=\"\u6DFB\u52A0\u5217\" (click)=\"splitItem('row')\"></i>\r\n <i *ngIf=\"showClose\" class=\"icon-close\" (click)=\"onItemCloseIconClick($event)\"></i>\r\n </div>\r\n <rs-divider *ngIf=\"showDivider\" [targetElement]=\"targetElement\" direction=\"row\"\r\n (dividerClick)=\"splitItem('column')\"></rs-divider>\r\n <rs-divider *ngIf=\"showDivider\" [targetElement]=\"targetElement\" direction=\"column\"\r\n (dividerClick)=\"splitItem('row')\"></rs-divider>\r\n</div>\r\n", styles: [":host{display:none;position:absolute;border:1px solid var(--coast-default-color, #337ab7);pointer-events:none}:host .active-item{width:100%;height:100%}:host .active-item .active-bar{padding:2px 4px;color:#fff;background-color:var(--coast-default-color, #337ab7);position:absolute;top:-23px;right:-1px;display:flex;flex-flow:row nowrap;align-items:center;pointer-events:all;white-space:nowrap}:host .active-item .active-bar i{flex:none;cursor:pointer}:host .active-item .active-bar i:not(:last-child){margin-right:8px}:host .active-item .active-bar i.icon-drag{cursor:move}:host .active-item .active-bar i.icon-close:hover{color:var(--coast-danger-color, #d9534f)}:host .active-item .active-bar span{flex:1;margin-right:8px}.plugin-active>:host{display:block}\n"] }]
157
160
  }], propDecorators: { _style: [{
158
161
  type: HostBinding,
159
162
  args: ['style']
@@ -174,10 +177,10 @@ class PluginHoverComponent {
174
177
  }
175
178
  }
176
179
  PluginHoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PluginHoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
177
- PluginHoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: PluginHoverComponent, selector: "rs-plugin-hover", host: { properties: { "style": "this._style" } }, ngImport: i0, template: "<div class=\"hover-title\">{{name}}</div>\n", styles: [":host{display:none;position:absolute;border:1px dashed var(--coast-default-color, #337ab7);pointer-events:none}:host .hover-title{color:var(--coast-default-color, #337ab7);position:absolute;top:-18px;left:0}.plugin-active>:host{display:none!important}.plugin-hover>:host{display:block}\n"] });
180
+ PluginHoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: PluginHoverComponent, selector: "rs-plugin-hover", host: { properties: { "style": "this._style" } }, ngImport: i0, template: "<div class=\"hover-title\">{{ name }}</div>\n", styles: [":host{display:none;position:absolute;border:1px dashed var(--coast-default-color, #337ab7);pointer-events:none}:host .hover-title{color:var(--coast-default-color, #337ab7);position:absolute;top:-18px;left:0}.plugin-active>:host{display:none!important}.plugin-hover>:host{display:block}\n"] });
178
181
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PluginHoverComponent, decorators: [{
179
182
  type: Component,
180
- args: [{ selector: 'rs-plugin-hover', template: "<div class=\"hover-title\">{{name}}</div>\n", styles: [":host{display:none;position:absolute;border:1px dashed var(--coast-default-color, #337ab7);pointer-events:none}:host .hover-title{color:var(--coast-default-color, #337ab7);position:absolute;top:-18px;left:0}.plugin-active>:host{display:none!important}.plugin-hover>:host{display:block}\n"] }]
183
+ args: [{ selector: 'rs-plugin-hover', template: "<div class=\"hover-title\">{{ name }}</div>\n", styles: [":host{display:none;position:absolute;border:1px dashed var(--coast-default-color, #337ab7);pointer-events:none}:host .hover-title{color:var(--coast-default-color, #337ab7);position:absolute;top:-18px;left:0}.plugin-active>:host{display:none!important}.plugin-hover>:host{display:block}\n"] }]
181
184
  }], propDecorators: { _style: [{
182
185
  type: HostBinding,
183
186
  args: ['style']
@@ -254,6 +257,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
254
257
  args: [{ selector: 'rs-style-blank', template: "<div>\n <span>\u8BF7\u5728\u5DE6\u4FA7\u753B\u5E03\u9009\u4E2D\u8282\u70B9</span>\n</div>\n", styles: [":host{height:80px;margin:8px;display:flex;flex-flow:row nowrap;justify-content:center}:host div{flex:1;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div span{text-align:center;-webkit-user-select:none;user-select:none}\n"] }]
255
258
  }] });
256
259
 
260
+ class FormItemConfigBase {
261
+ constructor() {
262
+ this.configChange = new EventEmitter();
263
+ }
264
+ }
265
+
266
+ class FormItemConfigErrorComponent {
267
+ }
268
+ FormItemConfigErrorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormItemConfigErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
269
+ FormItemConfigErrorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: FormItemConfigErrorComponent, selector: "rs-form-item-config-error", ngImport: i0, template: "<div>\n <span>\u8868\u5355\u7EC4\u4EF6\u914D\u7F6E\u5FC5\u9700\u7EE7\u627F\u81EAFormItemConfigBase</span>\n</div>\n", styles: [":host{height:80px;margin:8px;display:flex;flex-flow:row nowrap;justify-content:center}:host div{flex:1;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div span{text-align:center;-webkit-user-select:none;user-select:none}\n"] });
270
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormItemConfigErrorComponent, decorators: [{
271
+ type: Component,
272
+ args: [{ selector: 'rs-form-item-config-error', template: "<div>\n <span>\u8868\u5355\u7EC4\u4EF6\u914D\u7F6E\u5FC5\u9700\u7EE7\u627F\u81EAFormItemConfigBase</span>\n</div>\n", styles: [":host{height:80px;margin:8px;display:flex;flex-flow:row nowrap;justify-content:center}:host div{flex:1;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div span{text-align:center;-webkit-user-select:none;user-select:none}\n"] }]
273
+ }] });
274
+
257
275
  class PluginManager {
258
276
  static createComponent(boxItem, index, style, config) {
259
277
  var _a;
@@ -401,6 +419,11 @@ class PluginManager {
401
419
  const instance = componentRef.instance;
402
420
  instance.config = item.config.pluginConfig;
403
421
  if (pluginType === 'form') {
422
+ if (!(instance instanceof FormItemConfigBase)) {
423
+ itemConfigContainerRef.clear();
424
+ itemConfigContainerRef.createComponent(FormItemConfigErrorComponent);
425
+ return;
426
+ }
404
427
  instance.fieldTree = fieldTree;
405
428
  }
406
429
  instance.configChange.subscribe((reload) => {
@@ -409,7 +432,9 @@ class PluginManager {
409
432
  componentRef.location.nativeElement.click();
410
433
  }
411
434
  else {
412
- Object.assign(item.componentRef.instance, item.config.pluginConfig);
435
+ setTimeout(() => {
436
+ Object.assign(item.componentRef.instance, item.config.pluginConfig);
437
+ });
413
438
  }
414
439
  });
415
440
  }
@@ -867,6 +892,7 @@ BoxContainerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", vers
867
892
  ItemStyleComponent,
868
893
  StyleBlankComponent,
869
894
  ItemBlankComponent,
895
+ FormItemConfigErrorComponent,
870
896
  StyleComponent,
871
897
  PluginNotFoundComponent,
872
898
  ConfigBlankComponent], imports: [CommonModule,
@@ -890,6 +916,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
890
916
  ItemStyleComponent,
891
917
  StyleBlankComponent,
892
918
  ItemBlankComponent,
919
+ FormItemConfigErrorComponent,
893
920
  StyleComponent,
894
921
  PluginNotFoundComponent,
895
922
  ConfigBlankComponent
@@ -908,302 +935,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
908
935
 
909
936
  const translations = {
910
937
  // 调色板
911
- 'Activate the hand tool': '激活拖拽工具',
912
- 'Activate the lasso tool': '激活框选工具',
913
- 'Activate the create/remove space tool': '激活空间移动工具',
914
- 'Activate the global connect tool': '激活全局连接工具',
915
- 'Create StartEvent': '创建开始节点',
916
- 'Create EndEvent': '创建结束节点',
917
- 'Create UserTask': '创建用户任务',
918
- 'Create ServiceTask': '创建服务任务',
919
- 'Create Gateway': '创建网关节点',
938
+ 'Activate hand tool': '激活拖拽工具',
939
+ 'Activate lasso tool': '激活框选工具',
940
+ 'Activate create/remove space tool': '激活空间移动工具',
941
+ 'Activate global connect tool': '激活全局连接工具',
942
+ 'Create start event': '创建开始节点',
943
+ 'Create end event': '创建结束节点',
944
+ 'Create user task': '创建用户任务',
945
+ 'Create service task': '创建服务任务',
946
+ 'Create gateway': '创建网关节点',
920
947
  // 面板
921
- 'Append EndEvent': '追加结束节点',
922
- 'Append UserTask': '追加用户任务',
923
- 'Append ServiceTask': '追加服务任务',
924
- 'Append Gateway': '追加网关节点',
925
- 'Connect using Sequence/MessageFlow or Association': '使用序列/消息流或关联连接',
926
- 'Remove': '删除',
927
- 'Set Color': '设置颜色',
948
+ 'Append user task': '追加用户任务',
949
+ 'Append service task': '追加服务任务',
950
+ 'Append gateway': '追加网关节点',
951
+ 'Append end event': '追加结束节点',
952
+ 'Connect to other element': '连接其它节点',
953
+ 'Delete': '删除',
928
954
  'Change type': '改变节点类型',
929
- 'Exclusive Gateway': '互斥网关',
930
- 'Parallel Gateway': '并行网关',
931
- 'Default Flow': '默认流向',
932
- 'Sequence Flow': '顺序流向',
955
+ 'Exclusive gateway': '互斥网关',
956
+ 'Parallel gateway': '并行网关',
957
+ 'Default flow': '默认流向',
958
+ 'Sequence flow': '顺序流向',
959
+ 'Conditional flow': '条件流向',
933
960
  'Open minimap': '打开缩略图',
934
961
  'Close minimap': '关闭缩略图',
935
- // 配置
936
- 'General': '参数配置',
937
- 'Name': '名称',
938
- 'Task description': '任务描述',
939
- 'Set assignment rule': '设置用户规则',
940
- 'dynamic user': '动态用户',
941
- 'static user': '静态用户',
942
- 'dynamic role': '动态角色',
943
- 'static role': '静态角色',
944
- /*
945
- 'Create {type}': '创建{type}',
946
- 'Create Intermediate/Boundary Event': '创建中间/边界事件',
947
- 'Append {type}': '追加{type}', //'追加{type}',
948
- 'Add Lane above': '添加上面泳道',
949
- 'Divide into two Lanes': '拆分两个泳道',
950
- 'Divide into three Lanes': '拆分三个泳道',
951
- 'Add Lane below': '添下面泳道',
952
- 'Append compensation activity': '追加补偿活动',
953
- 'Change type': '改变节点类型', // 改变事情类型
954
- 'Connect using Association': '使用关联连接',
955
- 'Connect using Sequence/MessageFlow or Association': '使用序列/消息流或关联连接',
956
- 'Connect using DataInputAssociation': '使用数据输入关联连接',
957
- 'Remove': '删除',
958
- 'Create expanded SubProcess': '创建扩展子流程',
959
- // 'Create Pool/Participant': '创建者或参与者',
960
- 'Create IntermediateThrowEvent/BoundaryEvent': '创建中间事件或边界事件',
961
- 'Parallel Multi Instance': '并行多实例',
962
- 'Sequential Multi Instance': '顺序多重实例',
963
- 'Loop': '循环',
964
- 'Ad-hoc': '特别指定',
965
- 'Task': '任务',
966
- 'Send Task': '发送任务', // 发送任务
967
- 'Receive Task': '接收任务',
968
- 'User Task': '用户任务',
969
- 'Manual Task': '手工任务',
970
- 'Business Rule Task': '作业规则任务',
971
- 'Service Task': '服务任务',
972
- 'Script Task': '脚本任务',
973
- 'Call Activity': '调用活动',
974
- 'Sub Process (collapsed)': '子过程(折叠)',
975
- 'Sub Process (expanded)': '子过程(展开)',
976
- 'Start Event': '开始事件',
977
- 'Intermediate Throw Event': '抛出事件',
978
- 'End Event': '结束事件',
979
- 'Message Start Event': '消息开始事件',
980
- 'Timer Start Event': '时间开始事件',
981
- 'Conditional Start Event': '条件开始事件',
982
- 'Signal Start Event': '信号开始事件',
983
- 'Error Start Event': '错误开始事件',
984
- 'Escalation Start Event': '升级开始事件',
985
- 'Compensation Start Event': '补偿开始事件',
986
- 'Message Start Event (non-interrupting)': '消息开始事件(不中断)',
987
- 'Timer Start Event (non-interrupting)': '定时开始事件(不中断)',
988
- 'Conditional Start Event (non-interrupting)': '条件开始事件(不中断)',
989
- 'Signal Start Event (non-interrupting)': '信号开始事件(不中断)',
990
- 'Escalation Start Event (non-interrupting)': '升级开始事件(不中断)',
991
- 'Message Intermediate Catch Event': '信息捕获事件',
992
- 'Message Intermediate Throw Event': '信息抛出事件',
993
- 'Timer Intermediate Catch Event': '定时器捕获事件',
994
- 'Escalation Intermediate Throw Event': '升级抛出事件',
995
- 'Conditional Intermediate Catch Event': '条件捕获事件',
996
- 'Link Intermediate Catch Event': '链接捕获事件',
997
- 'Link Intermediate Throw Event': '链接抛出事件',
998
- 'Compensation Intermediate Throw Event': '补偿抛出事件',
999
- 'Signal Intermediate Catch Event': '信号捕获事件',
1000
- 'Signal Intermediate Throw Event': '信号抛出事件',
1001
- 'Message End Event': '消息结束事件',
1002
- 'Escalation End Event': '升级结束事件',
1003
- 'Error End Event': '错误结束事件',
1004
- 'Cancel End Event': '取消结束事件',
1005
- 'Compensation End Event': '补偿结束事件',
1006
- 'Signal End Event': '信号结束事件',
1007
- 'Terminate End Event': '终止结束事件',
1008
- 'Message Boundary Event': '消息边界事件',
1009
- 'Message Boundary Event (non-interrupting)': '消息边界事件(非中断)',
1010
- 'Timer Boundary Event': '定时边界事件',
1011
- 'Timer Boundary Event (non-interrupting)': '定时边界事件(非中断)',
1012
- 'Escalation Boundary Event': '升级边界事件',
1013
- 'Escalation Boundary Event (non-interrupting)': '升级边界事件(非中断)',
1014
- 'Conditional Boundary Event': '有条件的边界事件',
1015
- 'Conditional Boundary Event (non-interrupting)': '条件边界事件(非中断)',
1016
- 'Error Boundary Event': '错误边界事件',
1017
- 'Cancel Boundary Event': '取消边界事件',
1018
- 'Signal Boundary Event': '信号边界事件',
1019
- 'Signal Boundary Event (non-interrupting)': '信号边界事件(非中断)',
1020
- 'Compensation Boundary Event': '补偿边界事件',
1021
- 'Exclusive': '排他',
1022
- 'Exclusive Gateway': '互斥网关',
1023
- 'Parallel Gateway': '并行网关',
1024
- 'Inclusive Gateway': '相容网关',
1025
- 'Complex Gateway': '复杂网关',
1026
- 'Event based Gateway': '事件网关',
1027
- 'Transaction': '交换',
1028
- 'Sub Process': '子流程',
1029
- 'Event Sub Process': '事件子流程',
1030
- 'Empty Pool (removes content)': '清空泳池(删除内容)',
1031
- 'Collapsed Pool': '合并泳池',
1032
- 'Expanded Pool': '扩展泳池',
1033
-
1034
- // flow
1035
- 'Default Flow': '默认流向',
1036
- 'Sequence Flow': '顺序流向',
1037
- 'Conditional Flow': '条件流向',
1038
-
1039
- // Errors
1040
- 'no parent for {element} in {parent}': '在{parent}中的{element}没有父元素',
1041
- 'no shape type specified': '没有指定的形状类型',
1042
- 'flow elements must be children of pools/participants': '流动元素必须是游泳池/参与者',
1043
- 'out of bounds release': '跨界界释放',
1044
- 'more than {count} child lanes': '超出{count}分支',
1045
- 'element required': '被请求元素',
1046
- 'diagram not part of bpmn': '图在bpmn中',
1047
- 'no diagram to display': '没有图表来显示',
1048
- 'no process or collaboration to display': '没有流程或协作显示',
1049
- 'element {element} referenced by {referenced}#{property} not yet drawn':
1050
- '元素{element}在{referenced}#{property}的引用还没有绘制',
1051
- 'already rendered {element}': '已经提供{element}',
1052
- 'failed to import {element}': '元素导入失败{element}',
1053
- 'ID must not be empty.': 'ID不能为空!',
1054
- 'ID must be a valid QName.': '无效的ID输入!',
1055
-
1056
- // message
1057
- 'This maps to the process definition key.': '映射流程定义的Key。',
1058
- 'This maps to the task definition key.': '映射任务定义的Key。',
1059
- 'Specify more than one group as a comma separated list.': '多于一个组时为逗号分隔的列表。',
1060
- 'Specify more than one user as a comma separated list.': '多于一个用户时为逗号分隔的列表。',
1061
- 'Must provide either loop cardinality or collection': '必须提供循环基数或集合',
1062
- 'Available process variables, identified in the diagram.': '可用的过程变量,如图中所示。',
1063
- 'No variables found.': '未找到变量。',
1064
-
1065
- 'General': '基本属性',
1066
- 'Documentation': '备注',
1067
- 'Element documentation': '元素备注',
1068
- 'Executable': '可执行',
1069
- 'Process Documentation': '过程说明',
1070
- '': '无',
1071
- 'Listeners': '监听器',
1072
- 'Execution Listener': '扩展监听器',
1073
- 'Extensions': '扩展',
1074
- 'Properties': '属性',
1075
- 'Add Property': '添加属性',
1076
- 'Process Id': '流程标识',
1077
- 'Process Name': '流程名称',
1078
- 'Participant Id': '参与者标识',
1079
- 'Participant Name': '参与者名称',
1080
- 'Name': '名称',
1081
- 'Id': '标识',
1082
- 'ID': '标识',
1083
- 'Value': '值',
1084
- 'Version Tag': '版本标记',
1085
- 'External Task Configuration': '外部任务配置',
1086
- 'Task Priority': '任务优先级',
1087
- 'Job Configuration': '作业配置',
1088
- 'Job Priority': '作业优先级',
1089
- 'History Configuration': '历史配置',
1090
- 'History Time To Live': '历史生存时间',
1091
- 'Details': '详情',
1092
- 'Initiator': '初始化',
1093
- 'Asynchronous Continuations': '异步连续',
1094
- 'Asynchronous Before': '异步之前',
1095
- 'Asynchronous After': '异步之后',
1096
- 'Forms': '表单',
1097
- 'Form Key': '表单名',
1098
- 'Form Fields': '表单字段',
1099
- 'Form Buttons': '表单按钮',
1100
- 'Form Field': '表单字段',
1101
- 'Form Button': '表单按钮',
1102
- 'Button Name': '按钮名称',
1103
- 'Business Key': '业务键',
1104
- 'Type': '类型',
1105
- 'Label': '标签',
1106
- 'Default Value': '默认值',
1107
- 'Validation': '校验',
1108
- 'Add Constraint': '添加约束',
1109
- 'Config': '配置',
1110
- 'Must provide a value': '必须提供一个值',
1111
- 'Event Type': '事件类型',
1112
- 'Listener Type': '监听器类型',
1113
- 'Java Class': 'Java 类',
1114
- 'Field Injection': '字段注入',
1115
- 'Fields': '字段',
1116
- 'Condition Type': '条件类型',
1117
- 'Script Format': '脚本格式',
1118
- 'Script Type': '脚本类型',
1119
- 'Inline Script': '内联脚本',
1120
- 'External Resource': '外部资源',
1121
- 'Expression': '表达式',
1122
- 'Delegate Expression': '委托表达式',
1123
- 'Script': '脚本',
1124
- 'Parameter must have a name': '参数必须有一个名称',
1125
- 'String': '字符串',
1126
- 'Implementation': '实现',
1127
- 'External': '外部',
1128
- 'Connector': '连接器',
1129
- 'Must configure Connector': '必须配置连接器',
1130
- 'Connector Id': '连接器ID',
1131
- 'Input/Output': '输入/输出',
1132
- 'Input Parameters': '输入参数',
1133
- 'Input Parameter': '输入参数',
1134
- 'Output Parameters': '输出参数',
1135
- 'Output Parameter': '输出参数',
1136
- 'Text': '文本',
1137
- 'List': '列表',
1138
- 'Add Entry': '增加条目',
1139
- 'Field Injections': '字段注入',
1140
- 'TextAnnotation': '文本注释',
1141
- 'Variables': '变量',
1142
- 'In Mapping': '输入映射',
1143
- 'Out Mapping': '输出映射',
1144
- 'Target': '目标',
1145
- 'Source': '来源',
1146
- 'Local': '本地',
1147
- 'Candidate Starter Configuration': '候选人起动器配置',
1148
- 'Candidate Starter Groups': '候选人起动器组',
1149
- 'Candidate Starter Users': '候选人起动器用户',
1150
- 'Configure Connector': '配置连接器',
1151
- 'Assignee Type': '受理人类型',
1152
- 'Assignee': '受理人',
1153
- 'Dynamic': '动态',
1154
- 'Static': '静态',
1155
- 'User': '用户',
1156
- 'Role': '角色',
1157
- 'Candidate Users': '候选用户',
1158
- 'Candidate Groups': '候选组',
1159
- 'Due Date': '到期',
1160
- 'Follow Up Date': '跟踪日期',
1161
- 'Priority': '优先级',
1162
- 'The due date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)':
1163
- '可以使用EL表达式,(例如:${someDate} 或者ISO日期(例如:2015-06-26T09:54:00))',
1164
- 'The follow up date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)':
1165
- '可以使用EL表达式,(例如:${someDate} 或者ISO日期(例如:2015-06-26T09:54:00))',
1166
-
1167
- 'Create Task': '创建任务',
1168
- 'Create DataObjectReference': '创建数据对象引用',
1169
- 'Create DataStoreReference': '创建数据存储引用',
1170
- 'Create Group': '创建分组',
1171
- 'Category Value': '类别值',
1172
-
1173
- //custom
1174
- 'Create CallActivity': '创建调用任务',
1175
- 'Append Gateway': '追加网关节点',
1176
- 'Append Intermediate/Boundary Event': '追加中间/边界事件',
1177
- 'StartEvent': '开始节点',
1178
- 'EndEvent': '结束节点',
1179
- 'DataObjectReference': '数据对象引用',
1180
- 'DataStoreReference': '数据存储引用',
1181
- 'Element must have an unique id.': '节点元素必须用于唯一编号',
1182
- 'Create ExclusiveGateway': '创建排他网关',
1183
- 'Create Pool/Participant': '创建泳道或参与者',
1184
- 'Append ExclusiveGateway': '追加排他网关',
1185
- 'Append Task': '追加任务',
1186
- 'Append UserTask': '追加用户任务',
1187
- 'Append Sequence': '追加连线',
1188
- 'Append EndEvent': '追加结束节点',
1189
- 'UserTask': '用户任务',
1190
- 'ExclusiveGateway': '条件', //排他网关
1191
- 'Element is not set findUserType': '员工节点未设置节点人员',
1192
- 'Token Simulation ': '流程模拟',
1193
- 'Tasklist Configuration': '任务列表配置',
1194
- 'Startable': '可启动',
1195
- 'Element Documentation': '元素描述',
1196
-
1197
- 'Multi Instance': '多实例',
1198
- 'Loop Cardinality': '循环基数',
1199
- 'Collection': '集合',
1200
- 'Element Variable': '元素变量',
1201
- 'Completion Condition': '完成条件',
1202
- 'Multi Instance Asynchronous Before': '多实例异步之前',
1203
- 'Multi Instance Asynchronous After': '多实例异步之后',
1204
- 'Multi Instance Exclusive': '多实例排他',
1205
- 'Multi Instance Retry Time Cycle': '多实例重试时间',
1206
- */
1207
962
  };
1208
963
 
1209
964
  function customTranslate(template, replacements) {
@@ -1234,7 +989,7 @@ class UserTaskPaletteProvider {
1234
989
  'create.user-task': {
1235
990
  group: 'activity',
1236
991
  className: 'bpmn-icon-user-task',
1237
- title: this.translate('Create UserTask'),
992
+ title: this.translate('Create user task'),
1238
993
  action: {
1239
994
  dragstart: this.createUserTask,
1240
995
  click: this.createUserTask
@@ -1270,7 +1025,7 @@ class UserTaskContextPadProvider {
1270
1025
  'append.user-task': {
1271
1026
  group: 'model',
1272
1027
  className: 'bpmn-icon-user-task',
1273
- title: this.translate('Append UserTask'),
1028
+ title: this.translate('Append user task'),
1274
1029
  action: {
1275
1030
  hover: this.appendUserTaskPreview,
1276
1031
  click: this.appendUserTask,
@@ -1324,7 +1079,7 @@ class ServiceTaskPaletteProvider {
1324
1079
  'create.service-task': {
1325
1080
  group: 'activity',
1326
1081
  className: 'bpmn-icon-service-task',
1327
- title: this.translate('Create ServiceTask'),
1082
+ title: this.translate('Create service task'),
1328
1083
  action: {
1329
1084
  dragstart: this.createServiceTask,
1330
1085
  click: this.createServiceTask
@@ -1355,7 +1110,7 @@ class ServiceTaskContextPadProvider {
1355
1110
  'append.service-task': {
1356
1111
  group: 'model',
1357
1112
  className: 'bpmn-icon-service-task',
1358
- title: this.translate('Append ServiceTask'),
1113
+ title: this.translate('Append service task'),
1359
1114
  action: {
1360
1115
  hover: this.appendServiceTaskPreview,
1361
1116
  click: this.appendServiceTask,
@@ -1402,8 +1157,7 @@ class HideOtherPaletteProvider {
1402
1157
  'create.end-event',
1403
1158
  'create.user-task',
1404
1159
  'create.service-task',
1405
- 'create.exclusive-gateway',
1406
- 'xml'
1160
+ // 'create.exclusive-gateway'
1407
1161
  ];
1408
1162
  palette.registerProvider(0, this);
1409
1163
  }
@@ -1429,23 +1183,23 @@ class HideOtherContextPadProvider {
1429
1183
  }
1430
1184
  getContextPadEntries(element) {
1431
1185
  return (entries) => {
1186
+ if (isLabel(element)) {
1187
+ return {};
1188
+ }
1432
1189
  if (is(element, 'bpmn:EndEvent')) {
1433
1190
  return {
1434
- 'delete': entries['delete'],
1435
- 'set-color': entries['set-color']
1191
+ 'delete': entries['delete']
1436
1192
  };
1437
1193
  }
1438
1194
  else if (is(element, 'bpmn:SequenceFlow')) {
1439
1195
  if (entries['replace']) {
1440
1196
  return {
1441
1197
  'replace': this.createReplaceAction(element),
1442
- 'delete': entries['delete'],
1443
- 'set-color': entries['set-color']
1198
+ 'delete': entries['delete']
1444
1199
  };
1445
1200
  }
1446
1201
  return {
1447
- 'delete': entries['delete'],
1448
- 'set-color': entries['set-color']
1202
+ 'delete': entries['delete']
1449
1203
  };
1450
1204
  }
1451
1205
  else if (is(element, 'bpmn:Gateway')) {
@@ -1456,18 +1210,16 @@ class HideOtherContextPadProvider {
1456
1210
  'append.end-event': entries['append.end-event'],
1457
1211
  'connect': entries['connect'],
1458
1212
  'replace': this.createReplaceAction(element),
1459
- 'delete': entries['delete'],
1460
- 'set-color': entries['set-color']
1213
+ 'delete': entries['delete']
1461
1214
  };
1462
1215
  }
1463
1216
  return {
1464
1217
  'append.user-task': entries['append.user-task'],
1465
1218
  'append.service-task': entries['append.service-task'],
1466
- 'append.gateway': entries['append.gateway'],
1219
+ // 'append.gateway': entries['append.gateway'],
1467
1220
  'append.end-event': entries['append.end-event'],
1468
1221
  'connect': entries['connect'],
1469
- 'delete': entries['delete'],
1470
- 'set-color': entries['set-color']
1222
+ 'delete': entries['delete']
1471
1223
  };
1472
1224
  };
1473
1225
  }
@@ -1530,149 +1282,6 @@ var customHideOtherModule = {
1530
1282
  gatewayReplaceMenuProvider: ['type', GatewayReplaceMenuProvider]
1531
1283
  };
1532
1284
 
1533
- const util = {};
1534
- function addExtensionProperty(element, key, value) {
1535
- let extensionElements = element.businessObject.get('extensionElements');
1536
- if (!extensionElements) {
1537
- extensionElements = util.bpmnFactory.create('bpmn:ExtensionElements', { values: [] });
1538
- extensionElements.$parent = element.businessObject;
1539
- util.modeling.updateModdleProperties(element, element.businessObject, { extensionElements });
1540
- }
1541
- let properties = null;
1542
- const extensionElementValues = extensionElements.get('values');
1543
- const existPropertiesElements = extensionElementValues.filter((value) => is(value, 'camunda:Properties'));
1544
- if (existPropertiesElements.length > 0) {
1545
- properties = existPropertiesElements[0];
1546
- }
1547
- if (!properties) {
1548
- properties = util.bpmnFactory.create('camunda:Properties', { values: [] });
1549
- properties.$parent = extensionElements;
1550
- util.modeling.updateModdleProperties(element, extensionElements, { values: [...extensionElements.get('values'), properties] });
1551
- }
1552
- const propertyValues = properties.get('values');
1553
- const existPropertyIndex = propertyValues.findIndex((value) => value.name === key);
1554
- if (existPropertyIndex > -1) {
1555
- util.modeling.updateModdleProperties(element, propertyValues[existPropertyIndex], { name: key, value });
1556
- }
1557
- else {
1558
- const property = util.bpmnFactory.create('camunda:Property', { name: key, value });
1559
- property.$parent = properties;
1560
- util.modeling.updateModdleProperties(element, properties, { values: [...properties.get('values'), property] });
1561
- }
1562
- }
1563
- function getExtensionPropertyValue(element, key) {
1564
- let extensionElements = element.businessObject.get('extensionElements');
1565
- if (!extensionElements) {
1566
- return '';
1567
- }
1568
- let properties = null;
1569
- const extensionElementValues = extensionElements.get('values');
1570
- const existPropertiesElements = extensionElementValues.filter((value) => is(value, 'camunda:Properties'));
1571
- if (existPropertiesElements.length > 0) {
1572
- properties = existPropertiesElements[0];
1573
- }
1574
- if (!properties) {
1575
- return '';
1576
- }
1577
- const propertyValues = properties.get('values');
1578
- const existPropertyIndex = propertyValues.findIndex((value) => value.name === key);
1579
- if (existPropertyIndex > -1) {
1580
- return propertyValues[existPropertyIndex].value;
1581
- }
1582
- }
1583
-
1584
- // @ts-ignore
1585
- class TaskDescriptionProps {
1586
- constructor(props) {
1587
- this.id = 'Coast_taskDescription';
1588
- const { element } = props;
1589
- this.component = () => {
1590
- return TextAreaEntry({
1591
- element: element,
1592
- id: this.id,
1593
- label: util.translate('Task description'),
1594
- getValue: () => {
1595
- return getExtensionPropertyValue(element, this.id);
1596
- },
1597
- setValue: (value) => {
1598
- addExtensionProperty(element, this.id, value);
1599
- },
1600
- debounce: util.debounce,
1601
- autoResize: true
1602
- });
1603
- };
1604
- this.isEdited = isTextAreaEntryEdited;
1605
- }
1606
- }
1607
-
1608
- // @ts-ignore
1609
- class UserAssignmentStaticOrDynamicProps {
1610
- constructor(props) {
1611
- this.id = 'Coast_userAssignment_staticOrDynamic';
1612
- const { element } = props;
1613
- this.component = () => {
1614
- return SelectEntry({
1615
- element: element,
1616
- id: this.id,
1617
- label: util.translate('Set assignment rule'),
1618
- getValue: () => {
1619
- return getExtensionPropertyValue(element, this.id);
1620
- },
1621
- setValue: (value) => {
1622
- addExtensionProperty(element, this.id, value);
1623
- },
1624
- getOptions: () => {
1625
- return [
1626
- { value: '', label: util.translate('dynamic user') },
1627
- { value: 'static_user', label: util.translate('static user') },
1628
- { value: 'dynamic_role', label: util.translate('dynamic role') },
1629
- { value: 'static_role', label: util.translate('static role') }
1630
- ];
1631
- }
1632
- });
1633
- };
1634
- this.isEdited = isSelectEntryEdited;
1635
- }
1636
- }
1637
-
1638
- function getUserAssignmentProps(element) {
1639
- return [new UserAssignmentStaticOrDynamicProps(element)];
1640
- }
1641
-
1642
- class CustomPropertiesProvider {
1643
- constructor(propertiesPanel, translate, bpmnFactory, modeling, debounceInput) {
1644
- this.translate = translate;
1645
- util.translate = translate;
1646
- util.bpmnFactory = bpmnFactory;
1647
- util.modeling = modeling;
1648
- util.debounce = debounceInput;
1649
- propertiesPanel.registerProvider(0, this);
1650
- }
1651
- getGroups(element) {
1652
- return ((groups) => {
1653
- const generalGroup = groups.find((group) => group.id === 'general');
1654
- generalGroup.shouldOpen = true;
1655
- console.log(generalGroup);
1656
- if (is(element, 'bpmn:Process')) {
1657
- generalGroup.entries.splice(1, 3);
1658
- }
1659
- else if (is(element, 'bpmn:UserTask')) {
1660
- generalGroup.entries.splice(1, 1);
1661
- generalGroup.entries.push(...[
1662
- new TaskDescriptionProps({ element }),
1663
- ...getUserAssignmentProps({ element })
1664
- ]);
1665
- }
1666
- return [generalGroup];
1667
- });
1668
- }
1669
- }
1670
-
1671
- var customPropertiesPanelModule = {
1672
- __init__: ['customPropertiesProvider'],
1673
- customPropertiesProvider: ['type', CustomPropertiesProvider]
1674
- };
1675
-
1676
1285
  class CodeEditorComponent {
1677
1286
  set code(code) {
1678
1287
  var _a;
@@ -1723,10 +1332,10 @@ class CodeEditorComponent {
1723
1332
  }
1724
1333
  }
1725
1334
  CodeEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CodeEditorComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
1726
- CodeEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: CodeEditorComponent, selector: "rs-code-editor", inputs: { code: "code", language: "language", readonly: "readonly", enableMinimap: "enableMinimap", consoleMessage: "consoleMessage" }, outputs: { codeChange: "codeChange", onContentReady: "onContentReady" }, viewQueries: [{ propertyName: "editorContainer", first: true, predicate: ["editorContainer"], descendants: true, static: true }], ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<div class=\"editor-container\" #editorContainer></div>\n<div *ngIf=\"consoleMessage\" class=\"editor-console\">{{consoleMessage}}</div>\n", styles: [":host{display:flex;flex-flow:column nowrap}:host .editor-container{flex:1}:host .editor-console{flex:0 0 30px;padding:4px;border:1px solid var(--coast-border-color, #dddddd);background-color:var(--coast-empty-color, #d4d4d4)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i6$1.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }] });
1335
+ CodeEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: CodeEditorComponent, selector: "rs-code-editor", inputs: { code: "code", language: "language", readonly: "readonly", enableMinimap: "enableMinimap", consoleMessage: "consoleMessage" }, outputs: { codeChange: "codeChange", onContentReady: "onContentReady" }, viewQueries: [{ propertyName: "editorContainer", first: true, predicate: ["editorContainer"], descendants: true, static: true }], ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<div class=\"editor-container\" #editorContainer></div>\n<div *ngIf=\"consoleMessage\" class=\"editor-console\">{{ consoleMessage }}</div>\n", styles: [":host{display:flex;flex-flow:column nowrap}:host .editor-container{flex:1}:host .editor-console{flex:0 0 30px;padding:4px;border:1px solid var(--coast-border-color, #dddddd);background-color:var(--coast-empty-color, #d4d4d4)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i6$1.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }] });
1727
1336
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CodeEditorComponent, decorators: [{
1728
1337
  type: Component,
1729
- args: [{ selector: 'rs-code-editor', template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<div class=\"editor-container\" #editorContainer></div>\n<div *ngIf=\"consoleMessage\" class=\"editor-console\">{{consoleMessage}}</div>\n", styles: [":host{display:flex;flex-flow:column nowrap}:host .editor-container{flex:1}:host .editor-console{flex:0 0 30px;padding:4px;border:1px solid var(--coast-border-color, #dddddd);background-color:var(--coast-empty-color, #d4d4d4)}\n"] }]
1338
+ args: [{ selector: 'rs-code-editor', template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<div class=\"editor-container\" #editorContainer></div>\n<div *ngIf=\"consoleMessage\" class=\"editor-console\">{{ consoleMessage }}</div>\n", styles: [":host{display:flex;flex-flow:column nowrap}:host .editor-container{flex:1}:host .editor-console{flex:0 0 30px;padding:4px;border:1px solid var(--coast-border-color, #dddddd);background-color:var(--coast-empty-color, #d4d4d4)}\n"] }]
1730
1339
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { code: [{
1731
1340
  type: Input
1732
1341
  }], codeChange: [{
@@ -1748,7 +1357,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1748
1357
 
1749
1358
  class CamundaBpmnEditorComponent {
1750
1359
  constructor() {
1360
+ this.selectedNodeChanged = new EventEmitter();
1751
1361
  this.isShowXml = false;
1362
+ this.isShowConfig = false;
1752
1363
  this.initialDiagram = '<?xml version="1.0" encoding="UTF-8"?>' +
1753
1364
  '<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
1754
1365
  'xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" ' +
@@ -1770,7 +1381,9 @@ class CamundaBpmnEditorComponent {
1770
1381
  }
1771
1382
  set xml(xml) {
1772
1383
  this._xml = xml;
1773
- this.loadXml();
1384
+ setTimeout(() => {
1385
+ this.loadXml();
1386
+ });
1774
1387
  }
1775
1388
  get xml() {
1776
1389
  return this._xml;
@@ -1795,14 +1408,31 @@ class CamundaBpmnEditorComponent {
1795
1408
  customUserTaskModule,
1796
1409
  customServiceTaskModule,
1797
1410
  customHideOtherModule,
1798
- customPropertiesPanelModule
1411
+ // customPropertiesPanelModule
1799
1412
  ]
1800
1413
  });
1801
1414
  const logo = this.modeler._container.querySelector('.bjs-powered-by');
1802
1415
  if (logo) {
1803
1416
  this.modeler._container.removeChild(logo);
1804
1417
  }
1418
+ this.modeler.get('palette')._toggleState({ twoColumn: false });
1805
1419
  this.canvas = this.modeler.get('canvas');
1420
+ const eventBus = this.modeler.get('eventBus');
1421
+ eventBus.on(['propertiesPanel.updated'], ($event) => {
1422
+ if (Array.isArray($event.element)) {
1423
+ this.selectedNodeChanged.emit();
1424
+ }
1425
+ else {
1426
+ this.selectedNodeChanged.emit({
1427
+ element: $event.element,
1428
+ util: {
1429
+ bpmnFactory: this.modeler.get('bpmnFactory'),
1430
+ modeling: this.modeler.get('modeling'),
1431
+ elementRegistry: this.modeler.get('elementRegistry')
1432
+ }
1433
+ });
1434
+ }
1435
+ });
1806
1436
  this.loadXml();
1807
1437
  }
1808
1438
  loadXml() {
@@ -1827,12 +1457,14 @@ class CamundaBpmnEditorComponent {
1827
1457
  }
1828
1458
  }
1829
1459
  CamundaBpmnEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CamundaBpmnEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1830
- CamundaBpmnEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: CamundaBpmnEditorComponent, selector: "rs-camunda-bpmn-editor", inputs: { xml: "xml" }, viewQueries: [{ propertyName: "bpmnContainer", first: true, predicate: ["bpmnContainer"], descendants: true }, { propertyName: "bpmnConfig", first: true, predicate: ["bpmnConfig"], descendants: true }], ngImport: i0, template: "<div class=\"main\">\n <div class=\"container\" #bpmnContainer></div>\n <div class=\"config\" #bpmnConfig></div>\n <div class=\"xml-viewer\" [ngStyle]=\"{display: isShowXml ? 'flex' : 'none'}\">\n <rs-code-editor language=\"xml\" [code]=\"xml\" [readonly]=\"true\" [enableMinimap]=\"true\"></rs-code-editor>\n </div>\n</div>\n<div class=\"footer\">\n <dx-button [type]=\"isShowXml ? 'default' : 'normal'\" text=\"XML\" [hoverStateEnabled]=\"false\"\n (onClick)=\"showXml()\"></dx-button>\n</div>\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap}:host .main{flex:1;display:flex;flex-flow:row nowrap;position:relative}:host .main .container{flex:1}:host .main .config{flex:0 0 360px;border:1px solid var(--coast-border-color, #dddddd)}:host .main .xml-viewer{position:absolute;width:100%;height:100%;display:flex;flex-flow:column nowrap;z-index:var(--coast-z-index-drawer, 2000)}:host .main .xml-viewer rs-code-editor{flex:1}:host .footer{flex:0 0 24px;border:1px solid var(--coast-border-color, #dddddd)}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CodeEditorComponent, selector: "rs-code-editor", inputs: ["code", "language", "readonly", "enableMinimap", "consoleMessage"], outputs: ["codeChange", "onContentReady"] }, { kind: "component", type: i3.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"] }] });
1460
+ CamundaBpmnEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: CamundaBpmnEditorComponent, selector: "rs-camunda-bpmn-editor", inputs: { xml: "xml" }, outputs: { selectedNodeChanged: "selectedNodeChanged" }, viewQueries: [{ propertyName: "bpmnContainer", first: true, predicate: ["bpmnContainer"], descendants: true }, { propertyName: "bpmnConfig", first: true, predicate: ["bpmnConfig"], descendants: true }], ngImport: i0, template: "<div class=\"main\">\n <div class=\"container\" #bpmnContainer></div>\n <div [hidden]=\"!isShowConfig\" class=\"config\" #bpmnConfig></div>\n <div class=\"xml-viewer\" [ngStyle]=\"{display: isShowXml ? 'flex' : 'none'}\">\n <rs-code-editor language=\"xml\" [code]=\"xml\" [readonly]=\"true\" [enableMinimap]=\"true\"></rs-code-editor>\n </div>\n</div>\n<div class=\"footer\">\n <dx-button [type]=\"isShowXml ? 'default' : 'normal'\" text=\"XML\" [hoverStateEnabled]=\"false\"\n (onClick)=\"showXml()\"></dx-button>\n <dx-button [type]=\"isShowConfig ? 'default' : 'normal'\" icon=\"coast-icon coast-icon-setting\"\n style=\"float: right;\"\n (onClick)=\"isShowConfig = !isShowConfig;\"></dx-button>\n</div>\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap}:host .main{flex:1;display:flex;flex-flow:row nowrap;position:relative}:host .main .container{flex:1}:host .main .config{flex:0 0 360px;border:1px solid var(--coast-border-color, #dddddd)}:host .main .xml-viewer{position:absolute;width:100%;height:100%;display:flex;flex-flow:column nowrap;z-index:var(--coast-z-index-drawer, 2000)}:host .main .xml-viewer rs-code-editor{flex:1}:host .footer{flex:0 0 24px;border:1px solid var(--coast-border-color, #dddddd)}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CodeEditorComponent, selector: "rs-code-editor", inputs: ["code", "language", "readonly", "enableMinimap", "consoleMessage"], outputs: ["codeChange", "onContentReady"] }, { kind: "component", type: i3.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"] }] });
1831
1461
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CamundaBpmnEditorComponent, decorators: [{
1832
1462
  type: Component,
1833
- args: [{ selector: 'rs-camunda-bpmn-editor', template: "<div class=\"main\">\n <div class=\"container\" #bpmnContainer></div>\n <div class=\"config\" #bpmnConfig></div>\n <div class=\"xml-viewer\" [ngStyle]=\"{display: isShowXml ? 'flex' : 'none'}\">\n <rs-code-editor language=\"xml\" [code]=\"xml\" [readonly]=\"true\" [enableMinimap]=\"true\"></rs-code-editor>\n </div>\n</div>\n<div class=\"footer\">\n <dx-button [type]=\"isShowXml ? 'default' : 'normal'\" text=\"XML\" [hoverStateEnabled]=\"false\"\n (onClick)=\"showXml()\"></dx-button>\n</div>\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap}:host .main{flex:1;display:flex;flex-flow:row nowrap;position:relative}:host .main .container{flex:1}:host .main .config{flex:0 0 360px;border:1px solid var(--coast-border-color, #dddddd)}:host .main .xml-viewer{position:absolute;width:100%;height:100%;display:flex;flex-flow:column nowrap;z-index:var(--coast-z-index-drawer, 2000)}:host .main .xml-viewer rs-code-editor{flex:1}:host .footer{flex:0 0 24px;border:1px solid var(--coast-border-color, #dddddd)}\n"] }]
1463
+ args: [{ selector: 'rs-camunda-bpmn-editor', template: "<div class=\"main\">\n <div class=\"container\" #bpmnContainer></div>\n <div [hidden]=\"!isShowConfig\" class=\"config\" #bpmnConfig></div>\n <div class=\"xml-viewer\" [ngStyle]=\"{display: isShowXml ? 'flex' : 'none'}\">\n <rs-code-editor language=\"xml\" [code]=\"xml\" [readonly]=\"true\" [enableMinimap]=\"true\"></rs-code-editor>\n </div>\n</div>\n<div class=\"footer\">\n <dx-button [type]=\"isShowXml ? 'default' : 'normal'\" text=\"XML\" [hoverStateEnabled]=\"false\"\n (onClick)=\"showXml()\"></dx-button>\n <dx-button [type]=\"isShowConfig ? 'default' : 'normal'\" icon=\"coast-icon coast-icon-setting\"\n style=\"float: right;\"\n (onClick)=\"isShowConfig = !isShowConfig;\"></dx-button>\n</div>\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap}:host .main{flex:1;display:flex;flex-flow:row nowrap;position:relative}:host .main .container{flex:1}:host .main .config{flex:0 0 360px;border:1px solid var(--coast-border-color, #dddddd)}:host .main .xml-viewer{position:absolute;width:100%;height:100%;display:flex;flex-flow:column nowrap;z-index:var(--coast-z-index-drawer, 2000)}:host .main .xml-viewer rs-code-editor{flex:1}:host .footer{flex:0 0 24px;border:1px solid var(--coast-border-color, #dddddd)}\n"] }]
1834
1464
  }], propDecorators: { xml: [{
1835
1465
  type: Input
1466
+ }], selectedNodeChanged: [{
1467
+ type: Output
1836
1468
  }], bpmnContainer: [{
1837
1469
  type: ViewChild,
1838
1470
  args: ['bpmnContainer']
@@ -3417,12 +3049,147 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
3417
3049
  args: [RowButtonsTemplateDirective]
3418
3050
  }] } });
3419
3051
 
3052
+ class FieldSelectorComponent {
3053
+ constructor() {
3054
+ this.fieldTree = [];
3055
+ this.required = false;
3056
+ this.label = '属性';
3057
+ this.readonly = false;
3058
+ this.multiple = false;
3059
+ this.fieldChanged = new EventEmitter();
3060
+ this.__fields = [];
3061
+ this.suspendSelectionChanged = false;
3062
+ }
3063
+ set _fields(__fields) {
3064
+ if (this.__fields !== __fields) {
3065
+ this.__fields = __fields;
3066
+ this.fieldChange(this.__fields);
3067
+ }
3068
+ }
3069
+ get _fields() {
3070
+ return this.__fields;
3071
+ }
3072
+ ngOnInit() {
3073
+ if (this.config.field) {
3074
+ if (Array.isArray(this.config.field)) {
3075
+ this._fields = this.config.field;
3076
+ }
3077
+ else {
3078
+ this._fields = [this.config.field];
3079
+ }
3080
+ }
3081
+ }
3082
+ fieldChange(value) {
3083
+ if (value && value.length > 0) {
3084
+ this.config.__formAttribute = value.join(';');
3085
+ if (this.multiple) {
3086
+ this.config.field = value;
3087
+ const fields = [];
3088
+ for (const fieldName of value) {
3089
+ fields.push(this.getField(this.fieldTree, fieldName));
3090
+ }
3091
+ this.fieldChanged.emit(fields);
3092
+ }
3093
+ else {
3094
+ this.config.field = value[0];
3095
+ this.fieldChanged.emit(this.getField(this.fieldTree, value[0]));
3096
+ }
3097
+ }
3098
+ else {
3099
+ this.config.field = '';
3100
+ this.config.__formAttribute = '';
3101
+ this.fieldChanged.emit();
3102
+ }
3103
+ }
3104
+ getField(tree, field) {
3105
+ for (const node of tree) {
3106
+ if (node.innerName === field) {
3107
+ return node;
3108
+ }
3109
+ if (node.children) {
3110
+ const result = this.getField(node.children, field);
3111
+ if (result) {
3112
+ return result;
3113
+ }
3114
+ }
3115
+ }
3116
+ return undefined;
3117
+ }
3118
+ onRowPrepared($event) {
3119
+ if ($event.rowType === 'header') {
3120
+ $event.rowElement.style.display = 'none';
3121
+ }
3122
+ }
3123
+ onCellPrepared($event) {
3124
+ if ($event.rowType === 'data') {
3125
+ if (!this.multiple) {
3126
+ $event.cellElement.style.cursor = 'pointer';
3127
+ }
3128
+ if (this.multiple && !$event.visible && $event.data.hasItems) {
3129
+ const checkbox = $event.cellElement.querySelector('.dx-select-checkbox');
3130
+ checkbox.style.display = 'none';
3131
+ }
3132
+ }
3133
+ }
3134
+ onSelectionChanged($event, dropDownBox) {
3135
+ if (this.multiple) {
3136
+ return;
3137
+ }
3138
+ if (this.suspendSelectionChanged) {
3139
+ this.suspendSelectionChanged = false;
3140
+ return;
3141
+ }
3142
+ if ($event.selectedRowsData.length === 0) {
3143
+ return;
3144
+ }
3145
+ if (!$event.selectedRowsData[0].visible && $event.selectedRowsData[0].hasItems) {
3146
+ if ($event.component.isRowExpanded($event.selectedRowKeys[0])) {
3147
+ $event.component.collapseRow($event.selectedRowKeys[0]);
3148
+ }
3149
+ else {
3150
+ $event.component.expandRow($event.selectedRowKeys[0]);
3151
+ }
3152
+ this.suspendSelectionChanged = true;
3153
+ $event.component.selectRows($event.currentDeselectedRowKeys[0]);
3154
+ return;
3155
+ }
3156
+ dropDownBox.instance.close();
3157
+ }
3158
+ removeItem($event, field) {
3159
+ $event.stopPropagation();
3160
+ const findIndex = this._fields.findIndex((innerName) => innerName === field.innerName);
3161
+ this._fields.splice(findIndex, 1);
3162
+ }
3163
+ }
3164
+ FieldSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FieldSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3165
+ FieldSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: FieldSelectorComponent, selector: "rs-field-selector", inputs: { fieldTree: "fieldTree", config: "config", required: "required", label: "label", readonly: "readonly", multiple: "multiple" }, outputs: { fieldChanged: "fieldChanged" }, ngImport: i0, template: "<div class=\"dx-field\">\n <div class=\"dx-field-label\">\n <span>\u5C5E\u6027</span>\n <span class=\"required-mark\" *ngIf=\"required\">&nbsp;*</span>\n </div>\n <div class=\"dx-field-value\">\n <dx-drop-down-box #fieldDropDownBox\n [dataSource]=\"fieldTree\"\n valueExpr=\"innerName\"\n fieldTemplate=\"fieldTemplate\"\n contentTemplate=\"contentTemplate\"\n [showClearButton]=\"true\"\n [dropDownOptions]=\"{maxHeight: 'none', deferRendering: false}\"\n [(value)]=\"_fields\"\n [readOnly]=\"readonly\">\n <div *dxTemplate=\"let info of 'fieldTemplate'\">\n <dx-text-box [visible]=\"false\"></dx-text-box>\n <dx-tag-box [dataSource]=\"fieldTree\"\n valueExpr=\"innerName\"\n width=\"100%\"\n [openOnFieldClick]=\"false\"\n [(value)]=\"_fields\"\n [class.coast-tag-selector]=\"true\"\n [readOnly]=\"readonly\">\n <div *dxTemplate=\"let field of 'tag'\">\n <dx-button [elementAttr]=\"{ class: 'item'}\">\n <span>{{ field.caption }}</span>\n <i *ngIf=\"multiple && !readonly\" class=\"coast-icon-close\" (click)=\"removeItem($event, field)\"></i>\n </dx-button>\n </div>\n </dx-tag-box>\n </div>\n <div *dxTemplate=\"let data of 'contentTemplate'\">\n <dx-text-box mode=\"search\" placeholder=\"\u641C\u7D22...\" valueChangeEvent=\"keyup\"\n (onValueChanged)=\"dxTreeList.instance.searchByText($event.value)\"></dx-text-box>\n <dx-tree-list #dxTreeList\n [dataSource]=\"fieldTree\"\n [filterValue]=\"['visible','=',true]\"\n keyExpr=\"innerName\"\n parentIdExpr=\"parentInnerName\"\n [(selectedRowKeys)]=\"_fields\"\n [height]=\"360\"\n [showRowLines]=\"true\"\n [showBorders]=\"true\"\n [hoverStateEnabled]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [columnAutoWidth]=\"true\"\n (onRowPrepared)=\"onRowPrepared($event)\"\n (onCellPrepared)=\"onCellPrepared($event)\"\n (onSelectionChanged)=\"onSelectionChanged($event, fieldDropDownBox)\">\n <dxi-column dataField=\"innerName\" dataType=\"string\" [visible]=\"false\"></dxi-column>\n <dxi-column dataField=\"caption\" dataType=\"string\" caption=\"\u540D\u79F0\"></dxi-column>\n <dxi-column dataField=\"visible\" dataType=\"boolean\" [visible]=\"false\"></dxi-column>\n <dxo-selection [mode]=\"multiple ? 'multiple' : 'single'\" [allowSelectAll]=\"false\"></dxo-selection>\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\n </dx-tree-list>\n </div>\n <dx-validator>\n <dxi-validation-rule *ngIf=\"required\" type=\"required\" message=\"\u503C\u4E0D\u80FD\u4E3A\u7A7A\"></dxi-validation-rule>\n </dx-validator>\n </dx-drop-down-box>\n </div>\n</div>\n", styles: [":host .dx-field{margin-bottom:8px;display:flex;flex-flow:row nowrap}:host .dx-field .dx-field-label{flex:0 0 80px}:host .dx-field .dx-field-value{flex:1}:host dx-tag-box{display:block}:host dx-tag-box .item{min-height:20px}:host dx-tag-box .item .coast-icon-close{padding-left:4px}:host dx-tag-box .item .coast-icon-close:hover{color:var(--coast-danger-color, #d9534f)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i3.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$1.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "recursive", "selectByClick", "deferred", "mode", "selectAllMode", "showCheckBoxesMode"] }, { kind: "component", type: i6$1.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i6$1.DxiValidationRuleComponent, selector: "dxi-validation-rule", inputs: ["message", "trim", "type", "ignoreEmptyValue", "max", "min", "reevaluate", "validationCallback", "comparisonTarget", "comparisonType", "pattern"] }, { kind: "component", type: i6$1.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i5$2.DxDropDownBoxComponent, selector: "dx-drop-down-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "contentTemplate", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValueFormatter", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "items", "label", "labelMode", "maxLength", "name", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showDropDownButton", "stylingMode", "tabIndex", "text", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width"], outputs: ["onChange", "onClosed", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "contentTemplateChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueFormatterChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "itemsChange", "labelChange", "labelModeChange", "maxLengthChange", "nameChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showDropDownButtonChange", "stylingModeChange", "tabIndexChange", "textChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i6$2.DxTagBoxComponent, selector: "dx-tag-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "applyValueMode", "buttons", "customItemCreateEvent", "dataSource", "deferRendering", "disabled", "displayExpr", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hideSelectedItems", "hint", "hoverStateEnabled", "inputAttr", "isValid", "items", "itemTemplate", "label", "labelMode", "maxDisplayedTags", "maxFilterQueryLength", "maxLength", "minSearchLength", "multiline", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectAllMode", "selectAllText", "selectedItems", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showMultiTagOnly", "showSelectionControls", "stylingMode", "tabIndex", "tagTemplate", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCustomItemCreating", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onMultiTagPreparing", "onOpened", "onOptionChanged", "onSelectAllValueChanged", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "applyValueModeChange", "buttonsChange", "customItemCreateEventChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hideSelectedItemsChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxDisplayedTagsChange", "maxFilterQueryLengthChange", "maxLengthChange", "minSearchLengthChange", "multilineChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectAllModeChange", "selectAllTextChange", "selectedItemsChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showMultiTagOnlyChange", "showSelectionControlsChange", "stylingModeChange", "tabIndexChange", "tagTemplateChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "component", type: i7.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: i8$1.DxTreeListComponent, selector: "dx-tree-list", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoExpandAll", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataSource", "dataStructure", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "expandedRowKeys", "expandNodesOnFiltering", "filterBuilder", "filterBuilderPopup", "filterMode", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "hasItemsExpr", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "itemsExpr", "keyboardNavigation", "keyExpr", "loadPanel", "noDataText", "pager", "paging", "parentIdExpr", "remoteOperations", "renderAsync", "repaintChangesOnly", "rootValue", "rowAlternationEnabled", "rowDragging", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sorting", "stateStoring", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onNodesInitialized", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoExpandAllChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataSourceChange", "dataStructureChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "expandedRowKeysChange", "expandNodesOnFilteringChange", "filterBuilderChange", "filterBuilderPopupChange", "filterModeChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "hasItemsExprChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "itemsExprChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "noDataTextChange", "pagerChange", "pagingChange", "parentIdExprChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rootValueChange", "rowAlternationEnabledChange", "rowDraggingChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortingChange", "stateStoringChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i9.DxValidatorComponent, selector: "dx-validator", inputs: ["adapter", "elementAttr", "height", "name", "validationGroup", "validationRules", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onValidated", "adapterChange", "elementAttrChange", "heightChange", "nameChange", "validationGroupChange", "validationRulesChange", "widthChange"] }] });
3166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FieldSelectorComponent, decorators: [{
3167
+ type: Component,
3168
+ args: [{ selector: 'rs-field-selector', template: "<div class=\"dx-field\">\n <div class=\"dx-field-label\">\n <span>\u5C5E\u6027</span>\n <span class=\"required-mark\" *ngIf=\"required\">&nbsp;*</span>\n </div>\n <div class=\"dx-field-value\">\n <dx-drop-down-box #fieldDropDownBox\n [dataSource]=\"fieldTree\"\n valueExpr=\"innerName\"\n fieldTemplate=\"fieldTemplate\"\n contentTemplate=\"contentTemplate\"\n [showClearButton]=\"true\"\n [dropDownOptions]=\"{maxHeight: 'none', deferRendering: false}\"\n [(value)]=\"_fields\"\n [readOnly]=\"readonly\">\n <div *dxTemplate=\"let info of 'fieldTemplate'\">\n <dx-text-box [visible]=\"false\"></dx-text-box>\n <dx-tag-box [dataSource]=\"fieldTree\"\n valueExpr=\"innerName\"\n width=\"100%\"\n [openOnFieldClick]=\"false\"\n [(value)]=\"_fields\"\n [class.coast-tag-selector]=\"true\"\n [readOnly]=\"readonly\">\n <div *dxTemplate=\"let field of 'tag'\">\n <dx-button [elementAttr]=\"{ class: 'item'}\">\n <span>{{ field.caption }}</span>\n <i *ngIf=\"multiple && !readonly\" class=\"coast-icon-close\" (click)=\"removeItem($event, field)\"></i>\n </dx-button>\n </div>\n </dx-tag-box>\n </div>\n <div *dxTemplate=\"let data of 'contentTemplate'\">\n <dx-text-box mode=\"search\" placeholder=\"\u641C\u7D22...\" valueChangeEvent=\"keyup\"\n (onValueChanged)=\"dxTreeList.instance.searchByText($event.value)\"></dx-text-box>\n <dx-tree-list #dxTreeList\n [dataSource]=\"fieldTree\"\n [filterValue]=\"['visible','=',true]\"\n keyExpr=\"innerName\"\n parentIdExpr=\"parentInnerName\"\n [(selectedRowKeys)]=\"_fields\"\n [height]=\"360\"\n [showRowLines]=\"true\"\n [showBorders]=\"true\"\n [hoverStateEnabled]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [columnAutoWidth]=\"true\"\n (onRowPrepared)=\"onRowPrepared($event)\"\n (onCellPrepared)=\"onCellPrepared($event)\"\n (onSelectionChanged)=\"onSelectionChanged($event, fieldDropDownBox)\">\n <dxi-column dataField=\"innerName\" dataType=\"string\" [visible]=\"false\"></dxi-column>\n <dxi-column dataField=\"caption\" dataType=\"string\" caption=\"\u540D\u79F0\"></dxi-column>\n <dxi-column dataField=\"visible\" dataType=\"boolean\" [visible]=\"false\"></dxi-column>\n <dxo-selection [mode]=\"multiple ? 'multiple' : 'single'\" [allowSelectAll]=\"false\"></dxo-selection>\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\n </dx-tree-list>\n </div>\n <dx-validator>\n <dxi-validation-rule *ngIf=\"required\" type=\"required\" message=\"\u503C\u4E0D\u80FD\u4E3A\u7A7A\"></dxi-validation-rule>\n </dx-validator>\n </dx-drop-down-box>\n </div>\n</div>\n", styles: [":host .dx-field{margin-bottom:8px;display:flex;flex-flow:row nowrap}:host .dx-field .dx-field-label{flex:0 0 80px}:host .dx-field .dx-field-value{flex:1}:host dx-tag-box{display:block}:host dx-tag-box .item{min-height:20px}:host dx-tag-box .item .coast-icon-close{padding-left:4px}:host dx-tag-box .item .coast-icon-close:hover{color:var(--coast-danger-color, #d9534f)}\n"] }]
3169
+ }], propDecorators: { fieldTree: [{
3170
+ type: Input
3171
+ }], config: [{
3172
+ type: Input
3173
+ }], required: [{
3174
+ type: Input
3175
+ }], label: [{
3176
+ type: Input
3177
+ }], readonly: [{
3178
+ type: Input
3179
+ }], multiple: [{
3180
+ type: Input
3181
+ }], fieldChanged: [{
3182
+ type: Output
3183
+ }] } });
3184
+
3420
3185
  class FormModule {
3421
3186
  }
3422
3187
  FormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3423
- FormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: FormModule, declarations: [FormComponent], imports: [CommonModule,
3188
+ FormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: FormModule, declarations: [FormComponent,
3189
+ FieldSelectorComponent], imports: [CommonModule,
3424
3190
  BoxContainerModule,
3425
- DevExtremeModule], exports: [FormComponent] });
3191
+ DevExtremeModule], exports: [FormComponent,
3192
+ FieldSelectorComponent] });
3426
3193
  FormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormModule, imports: [CommonModule,
3427
3194
  BoxContainerModule,
3428
3195
  DevExtremeModule] });
@@ -3430,7 +3197,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
3430
3197
  type: NgModule,
3431
3198
  args: [{
3432
3199
  declarations: [
3433
- FormComponent
3200
+ FormComponent,
3201
+ FieldSelectorComponent
3434
3202
  ],
3435
3203
  imports: [
3436
3204
  CommonModule,
@@ -3438,7 +3206,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
3438
3206
  DevExtremeModule
3439
3207
  ],
3440
3208
  exports: [
3441
- FormComponent
3209
+ FormComponent,
3210
+ FieldSelectorComponent
3442
3211
  ]
3443
3212
  }]
3444
3213
  }] });
@@ -3724,10 +3493,10 @@ class IconSelectorComponent {
3724
3493
  }
3725
3494
  }
3726
3495
  IconSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: IconSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3727
- 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$1.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i3.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.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"] }] });
3496
+ 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$1.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i3.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.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"] }] });
3728
3497
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: IconSelectorComponent, decorators: [{
3729
3498
  type: Component,
3730
- 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" }]
3499
+ 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" }]
3731
3500
  }], ctorParameters: function () { return []; }, propDecorators: { target: [{
3732
3501
  type: Input
3733
3502
  }], select: [{
@@ -3887,10 +3656,10 @@ class ModalComponent {
3887
3656
  }
3888
3657
  }
3889
3658
  ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ModalComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
3890
- 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"] }] });
3659
+ 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"] }] });
3891
3660
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ModalComponent, decorators: [{
3892
3661
  type: Component,
3893
- 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"] }]
3662
+ 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"] }]
3894
3663
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { modalElementRef: [{
3895
3664
  type: ViewChild,
3896
3665
  args: ['modal', { static: true }]
@@ -4146,5 +3915,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
4146
3915
  * Generated bundle index. Do not edit.
4147
3916
  */
4148
3917
 
4149
- export { BoxContainerComponent, BoxContainerModule, CamundaBpmnEditorComponent, CamundaBpmnEditorModule, ChangeFilter, CodeEditorComponent, CodeEditorModule, DataDetailComponent, DataDetailModule, DataGridComponent, DataGridFactory, DataGridModule, DataGridService, DrawerComponent, DrawerModule, DrawerService, DynamicParamsComponent, DynamicParamsModule, FormComponent, FormModule, FormService, FullscreenDirective, IconSelectorComponent, IconSelectorModule, ItemConfigComponent, ItemStyleComponent, ModalComponent, ModalModule, ModalService, PdfViewerComponent, PluginManager, RowButtonsTemplateDirective, TooltipContentTemplateDirective, WebsocketModule, WebsocketService, download_file, file_type_icon, filename_from_disposition, format_date, format_datetime, format_file_size, notify_error, notify_success, notify_warning, support_preview_ext, validate, validate_group };
3918
+ export { BoxContainerComponent, BoxContainerModule, CamundaBpmnEditorComponent, CamundaBpmnEditorModule, ChangeFilter, CodeEditorComponent, CodeEditorModule, DataDetailComponent, DataDetailModule, DataGridComponent, DataGridFactory, DataGridModule, DataGridService, DrawerComponent, DrawerModule, DrawerService, DynamicParamsComponent, DynamicParamsModule, FieldSelectorComponent, FormComponent, FormItemConfigBase, FormModule, FormService, FullscreenDirective, IconSelectorComponent, IconSelectorModule, ItemConfigComponent, ItemStyleComponent, ModalComponent, ModalModule, ModalService, PdfViewerComponent, PluginManager, RowButtonsTemplateDirective, TooltipContentTemplateDirective, WebsocketModule, WebsocketService, download_file, file_type_icon, filename_from_disposition, format_date, format_datetime, format_file_size, notify_error, notify_success, notify_warning, support_preview_ext, validate, validate_group };
4150
3919
  //# sourceMappingURL=ngx-rs-ant.mjs.map