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';
@@ -25,6 +25,9 @@ import * as i3$2 from 'devextreme-angular/ui/accordion';
25
25
  import * as i7 from 'devextreme-angular/ui/text-box';
26
26
  import * as i8 from 'devextreme-angular/ui/validation-group';
27
27
  import * as i9 from 'devextreme-angular/ui/validator';
28
+ import * as i5$2 from 'devextreme-angular/ui/drop-down-box';
29
+ import * as i6$2 from 'devextreme-angular/ui/tag-box';
30
+ import * as i8$1 from 'devextreme-angular/ui/tree-list';
28
31
  import * as i4 from 'devextreme-angular/ui/popover';
29
32
  import * as i2$3 from 'ng2-pdfjs-viewer';
30
33
  import { PdfJsViewerComponent, PdfJsViewerModule } from 'ng2-pdfjs-viewer';
@@ -149,10 +152,10 @@ class PluginActiveComponent {
149
152
  }
150
153
  }
151
154
  PluginActiveComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PluginActiveComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
152
- 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"] }] });
155
+ 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"] }] });
153
156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PluginActiveComponent, decorators: [{
154
157
  type: Component,
155
- 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"] }]
158
+ 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"] }]
156
159
  }], propDecorators: { _style: [{
157
160
  type: HostBinding,
158
161
  args: ['style']
@@ -173,10 +176,10 @@ class PluginHoverComponent {
173
176
  }
174
177
  }
175
178
  PluginHoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PluginHoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
176
- 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"] });
179
+ 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"] });
177
180
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PluginHoverComponent, decorators: [{
178
181
  type: Component,
179
- 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"] }]
182
+ 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"] }]
180
183
  }], propDecorators: { _style: [{
181
184
  type: HostBinding,
182
185
  args: ['style']
@@ -253,6 +256,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
253
256
  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"] }]
254
257
  }] });
255
258
 
259
+ class FormItemConfigBase {
260
+ constructor() {
261
+ this.configChange = new EventEmitter();
262
+ }
263
+ }
264
+
265
+ class FormItemConfigErrorComponent {
266
+ }
267
+ FormItemConfigErrorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormItemConfigErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
268
+ 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"] });
269
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormItemConfigErrorComponent, decorators: [{
270
+ type: Component,
271
+ 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"] }]
272
+ }] });
273
+
256
274
  class PluginManager {
257
275
  static createComponent(boxItem, index, style, config) {
258
276
  let plugin = PluginFactory.get(config.name);
@@ -397,6 +415,11 @@ class PluginManager {
397
415
  const instance = componentRef.instance;
398
416
  instance.config = item.config.pluginConfig;
399
417
  if (pluginType === 'form') {
418
+ if (!(instance instanceof FormItemConfigBase)) {
419
+ itemConfigContainerRef.clear();
420
+ itemConfigContainerRef.createComponent(FormItemConfigErrorComponent);
421
+ return;
422
+ }
400
423
  instance.fieldTree = fieldTree;
401
424
  }
402
425
  instance.configChange.subscribe((reload) => {
@@ -405,7 +428,9 @@ class PluginManager {
405
428
  componentRef.location.nativeElement.click();
406
429
  }
407
430
  else {
408
- Object.assign(item.componentRef.instance, item.config.pluginConfig);
431
+ setTimeout(() => {
432
+ Object.assign(item.componentRef.instance, item.config.pluginConfig);
433
+ });
409
434
  }
410
435
  });
411
436
  }
@@ -860,6 +885,7 @@ BoxContainerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", vers
860
885
  ItemStyleComponent,
861
886
  StyleBlankComponent,
862
887
  ItemBlankComponent,
888
+ FormItemConfigErrorComponent,
863
889
  StyleComponent,
864
890
  PluginNotFoundComponent,
865
891
  ConfigBlankComponent], imports: [CommonModule,
@@ -883,6 +909,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
883
909
  ItemStyleComponent,
884
910
  StyleBlankComponent,
885
911
  ItemBlankComponent,
912
+ FormItemConfigErrorComponent,
886
913
  StyleComponent,
887
914
  PluginNotFoundComponent,
888
915
  ConfigBlankComponent
@@ -901,302 +928,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
901
928
 
902
929
  const translations = {
903
930
  // 调色板
904
- 'Activate the hand tool': '激活拖拽工具',
905
- 'Activate the lasso tool': '激活框选工具',
906
- 'Activate the create/remove space tool': '激活空间移动工具',
907
- 'Activate the global connect tool': '激活全局连接工具',
908
- 'Create StartEvent': '创建开始节点',
909
- 'Create EndEvent': '创建结束节点',
910
- 'Create UserTask': '创建用户任务',
911
- 'Create ServiceTask': '创建服务任务',
912
- 'Create Gateway': '创建网关节点',
931
+ 'Activate hand tool': '激活拖拽工具',
932
+ 'Activate lasso tool': '激活框选工具',
933
+ 'Activate create/remove space tool': '激活空间移动工具',
934
+ 'Activate global connect tool': '激活全局连接工具',
935
+ 'Create start event': '创建开始节点',
936
+ 'Create end event': '创建结束节点',
937
+ 'Create user task': '创建用户任务',
938
+ 'Create service task': '创建服务任务',
939
+ 'Create gateway': '创建网关节点',
913
940
  // 面板
914
- 'Append EndEvent': '追加结束节点',
915
- 'Append UserTask': '追加用户任务',
916
- 'Append ServiceTask': '追加服务任务',
917
- 'Append Gateway': '追加网关节点',
918
- 'Connect using Sequence/MessageFlow or Association': '使用序列/消息流或关联连接',
919
- 'Remove': '删除',
920
- 'Set Color': '设置颜色',
941
+ 'Append user task': '追加用户任务',
942
+ 'Append service task': '追加服务任务',
943
+ 'Append gateway': '追加网关节点',
944
+ 'Append end event': '追加结束节点',
945
+ 'Connect to other element': '连接其它节点',
946
+ 'Delete': '删除',
921
947
  'Change type': '改变节点类型',
922
- 'Exclusive Gateway': '互斥网关',
923
- 'Parallel Gateway': '并行网关',
924
- 'Default Flow': '默认流向',
925
- 'Sequence Flow': '顺序流向',
948
+ 'Exclusive gateway': '互斥网关',
949
+ 'Parallel gateway': '并行网关',
950
+ 'Default flow': '默认流向',
951
+ 'Sequence flow': '顺序流向',
952
+ 'Conditional flow': '条件流向',
926
953
  'Open minimap': '打开缩略图',
927
954
  'Close minimap': '关闭缩略图',
928
- // 配置
929
- 'General': '参数配置',
930
- 'Name': '名称',
931
- 'Task description': '任务描述',
932
- 'Set assignment rule': '设置用户规则',
933
- 'dynamic user': '动态用户',
934
- 'static user': '静态用户',
935
- 'dynamic role': '动态角色',
936
- 'static role': '静态角色',
937
- /*
938
- 'Create {type}': '创建{type}',
939
- 'Create Intermediate/Boundary Event': '创建中间/边界事件',
940
- 'Append {type}': '追加{type}', //'追加{type}',
941
- 'Add Lane above': '添加上面泳道',
942
- 'Divide into two Lanes': '拆分两个泳道',
943
- 'Divide into three Lanes': '拆分三个泳道',
944
- 'Add Lane below': '添下面泳道',
945
- 'Append compensation activity': '追加补偿活动',
946
- 'Change type': '改变节点类型', // 改变事情类型
947
- 'Connect using Association': '使用关联连接',
948
- 'Connect using Sequence/MessageFlow or Association': '使用序列/消息流或关联连接',
949
- 'Connect using DataInputAssociation': '使用数据输入关联连接',
950
- 'Remove': '删除',
951
- 'Create expanded SubProcess': '创建扩展子流程',
952
- // 'Create Pool/Participant': '创建者或参与者',
953
- 'Create IntermediateThrowEvent/BoundaryEvent': '创建中间事件或边界事件',
954
- 'Parallel Multi Instance': '并行多实例',
955
- 'Sequential Multi Instance': '顺序多重实例',
956
- 'Loop': '循环',
957
- 'Ad-hoc': '特别指定',
958
- 'Task': '任务',
959
- 'Send Task': '发送任务', // 发送任务
960
- 'Receive Task': '接收任务',
961
- 'User Task': '用户任务',
962
- 'Manual Task': '手工任务',
963
- 'Business Rule Task': '作业规则任务',
964
- 'Service Task': '服务任务',
965
- 'Script Task': '脚本任务',
966
- 'Call Activity': '调用活动',
967
- 'Sub Process (collapsed)': '子过程(折叠)',
968
- 'Sub Process (expanded)': '子过程(展开)',
969
- 'Start Event': '开始事件',
970
- 'Intermediate Throw Event': '抛出事件',
971
- 'End Event': '结束事件',
972
- 'Message Start Event': '消息开始事件',
973
- 'Timer Start Event': '时间开始事件',
974
- 'Conditional Start Event': '条件开始事件',
975
- 'Signal Start Event': '信号开始事件',
976
- 'Error Start Event': '错误开始事件',
977
- 'Escalation Start Event': '升级开始事件',
978
- 'Compensation Start Event': '补偿开始事件',
979
- 'Message Start Event (non-interrupting)': '消息开始事件(不中断)',
980
- 'Timer Start Event (non-interrupting)': '定时开始事件(不中断)',
981
- 'Conditional Start Event (non-interrupting)': '条件开始事件(不中断)',
982
- 'Signal Start Event (non-interrupting)': '信号开始事件(不中断)',
983
- 'Escalation Start Event (non-interrupting)': '升级开始事件(不中断)',
984
- 'Message Intermediate Catch Event': '信息捕获事件',
985
- 'Message Intermediate Throw Event': '信息抛出事件',
986
- 'Timer Intermediate Catch Event': '定时器捕获事件',
987
- 'Escalation Intermediate Throw Event': '升级抛出事件',
988
- 'Conditional Intermediate Catch Event': '条件捕获事件',
989
- 'Link Intermediate Catch Event': '链接捕获事件',
990
- 'Link Intermediate Throw Event': '链接抛出事件',
991
- 'Compensation Intermediate Throw Event': '补偿抛出事件',
992
- 'Signal Intermediate Catch Event': '信号捕获事件',
993
- 'Signal Intermediate Throw Event': '信号抛出事件',
994
- 'Message End Event': '消息结束事件',
995
- 'Escalation End Event': '升级结束事件',
996
- 'Error End Event': '错误结束事件',
997
- 'Cancel End Event': '取消结束事件',
998
- 'Compensation End Event': '补偿结束事件',
999
- 'Signal End Event': '信号结束事件',
1000
- 'Terminate End Event': '终止结束事件',
1001
- 'Message Boundary Event': '消息边界事件',
1002
- 'Message Boundary Event (non-interrupting)': '消息边界事件(非中断)',
1003
- 'Timer Boundary Event': '定时边界事件',
1004
- 'Timer Boundary Event (non-interrupting)': '定时边界事件(非中断)',
1005
- 'Escalation Boundary Event': '升级边界事件',
1006
- 'Escalation Boundary Event (non-interrupting)': '升级边界事件(非中断)',
1007
- 'Conditional Boundary Event': '有条件的边界事件',
1008
- 'Conditional Boundary Event (non-interrupting)': '条件边界事件(非中断)',
1009
- 'Error Boundary Event': '错误边界事件',
1010
- 'Cancel Boundary Event': '取消边界事件',
1011
- 'Signal Boundary Event': '信号边界事件',
1012
- 'Signal Boundary Event (non-interrupting)': '信号边界事件(非中断)',
1013
- 'Compensation Boundary Event': '补偿边界事件',
1014
- 'Exclusive': '排他',
1015
- 'Exclusive Gateway': '互斥网关',
1016
- 'Parallel Gateway': '并行网关',
1017
- 'Inclusive Gateway': '相容网关',
1018
- 'Complex Gateway': '复杂网关',
1019
- 'Event based Gateway': '事件网关',
1020
- 'Transaction': '交换',
1021
- 'Sub Process': '子流程',
1022
- 'Event Sub Process': '事件子流程',
1023
- 'Empty Pool (removes content)': '清空泳池(删除内容)',
1024
- 'Collapsed Pool': '合并泳池',
1025
- 'Expanded Pool': '扩展泳池',
1026
-
1027
- // flow
1028
- 'Default Flow': '默认流向',
1029
- 'Sequence Flow': '顺序流向',
1030
- 'Conditional Flow': '条件流向',
1031
-
1032
- // Errors
1033
- 'no parent for {element} in {parent}': '在{parent}中的{element}没有父元素',
1034
- 'no shape type specified': '没有指定的形状类型',
1035
- 'flow elements must be children of pools/participants': '流动元素必须是游泳池/参与者',
1036
- 'out of bounds release': '跨界界释放',
1037
- 'more than {count} child lanes': '超出{count}分支',
1038
- 'element required': '被请求元素',
1039
- 'diagram not part of bpmn': '图在bpmn中',
1040
- 'no diagram to display': '没有图表来显示',
1041
- 'no process or collaboration to display': '没有流程或协作显示',
1042
- 'element {element} referenced by {referenced}#{property} not yet drawn':
1043
- '元素{element}在{referenced}#{property}的引用还没有绘制',
1044
- 'already rendered {element}': '已经提供{element}',
1045
- 'failed to import {element}': '元素导入失败{element}',
1046
- 'ID must not be empty.': 'ID不能为空!',
1047
- 'ID must be a valid QName.': '无效的ID输入!',
1048
-
1049
- // message
1050
- 'This maps to the process definition key.': '映射流程定义的Key。',
1051
- 'This maps to the task definition key.': '映射任务定义的Key。',
1052
- 'Specify more than one group as a comma separated list.': '多于一个组时为逗号分隔的列表。',
1053
- 'Specify more than one user as a comma separated list.': '多于一个用户时为逗号分隔的列表。',
1054
- 'Must provide either loop cardinality or collection': '必须提供循环基数或集合',
1055
- 'Available process variables, identified in the diagram.': '可用的过程变量,如图中所示。',
1056
- 'No variables found.': '未找到变量。',
1057
-
1058
- 'General': '基本属性',
1059
- 'Documentation': '备注',
1060
- 'Element documentation': '元素备注',
1061
- 'Executable': '可执行',
1062
- 'Process Documentation': '过程说明',
1063
- '': '无',
1064
- 'Listeners': '监听器',
1065
- 'Execution Listener': '扩展监听器',
1066
- 'Extensions': '扩展',
1067
- 'Properties': '属性',
1068
- 'Add Property': '添加属性',
1069
- 'Process Id': '流程标识',
1070
- 'Process Name': '流程名称',
1071
- 'Participant Id': '参与者标识',
1072
- 'Participant Name': '参与者名称',
1073
- 'Name': '名称',
1074
- 'Id': '标识',
1075
- 'ID': '标识',
1076
- 'Value': '值',
1077
- 'Version Tag': '版本标记',
1078
- 'External Task Configuration': '外部任务配置',
1079
- 'Task Priority': '任务优先级',
1080
- 'Job Configuration': '作业配置',
1081
- 'Job Priority': '作业优先级',
1082
- 'History Configuration': '历史配置',
1083
- 'History Time To Live': '历史生存时间',
1084
- 'Details': '详情',
1085
- 'Initiator': '初始化',
1086
- 'Asynchronous Continuations': '异步连续',
1087
- 'Asynchronous Before': '异步之前',
1088
- 'Asynchronous After': '异步之后',
1089
- 'Forms': '表单',
1090
- 'Form Key': '表单名',
1091
- 'Form Fields': '表单字段',
1092
- 'Form Buttons': '表单按钮',
1093
- 'Form Field': '表单字段',
1094
- 'Form Button': '表单按钮',
1095
- 'Button Name': '按钮名称',
1096
- 'Business Key': '业务键',
1097
- 'Type': '类型',
1098
- 'Label': '标签',
1099
- 'Default Value': '默认值',
1100
- 'Validation': '校验',
1101
- 'Add Constraint': '添加约束',
1102
- 'Config': '配置',
1103
- 'Must provide a value': '必须提供一个值',
1104
- 'Event Type': '事件类型',
1105
- 'Listener Type': '监听器类型',
1106
- 'Java Class': 'Java 类',
1107
- 'Field Injection': '字段注入',
1108
- 'Fields': '字段',
1109
- 'Condition Type': '条件类型',
1110
- 'Script Format': '脚本格式',
1111
- 'Script Type': '脚本类型',
1112
- 'Inline Script': '内联脚本',
1113
- 'External Resource': '外部资源',
1114
- 'Expression': '表达式',
1115
- 'Delegate Expression': '委托表达式',
1116
- 'Script': '脚本',
1117
- 'Parameter must have a name': '参数必须有一个名称',
1118
- 'String': '字符串',
1119
- 'Implementation': '实现',
1120
- 'External': '外部',
1121
- 'Connector': '连接器',
1122
- 'Must configure Connector': '必须配置连接器',
1123
- 'Connector Id': '连接器ID',
1124
- 'Input/Output': '输入/输出',
1125
- 'Input Parameters': '输入参数',
1126
- 'Input Parameter': '输入参数',
1127
- 'Output Parameters': '输出参数',
1128
- 'Output Parameter': '输出参数',
1129
- 'Text': '文本',
1130
- 'List': '列表',
1131
- 'Add Entry': '增加条目',
1132
- 'Field Injections': '字段注入',
1133
- 'TextAnnotation': '文本注释',
1134
- 'Variables': '变量',
1135
- 'In Mapping': '输入映射',
1136
- 'Out Mapping': '输出映射',
1137
- 'Target': '目标',
1138
- 'Source': '来源',
1139
- 'Local': '本地',
1140
- 'Candidate Starter Configuration': '候选人起动器配置',
1141
- 'Candidate Starter Groups': '候选人起动器组',
1142
- 'Candidate Starter Users': '候选人起动器用户',
1143
- 'Configure Connector': '配置连接器',
1144
- 'Assignee Type': '受理人类型',
1145
- 'Assignee': '受理人',
1146
- 'Dynamic': '动态',
1147
- 'Static': '静态',
1148
- 'User': '用户',
1149
- 'Role': '角色',
1150
- 'Candidate Users': '候选用户',
1151
- 'Candidate Groups': '候选组',
1152
- 'Due Date': '到期',
1153
- 'Follow Up Date': '跟踪日期',
1154
- 'Priority': '优先级',
1155
- 'The due date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)':
1156
- '可以使用EL表达式,(例如:${someDate} 或者ISO日期(例如:2015-06-26T09:54:00))',
1157
- 'The follow up date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)':
1158
- '可以使用EL表达式,(例如:${someDate} 或者ISO日期(例如:2015-06-26T09:54:00))',
1159
-
1160
- 'Create Task': '创建任务',
1161
- 'Create DataObjectReference': '创建数据对象引用',
1162
- 'Create DataStoreReference': '创建数据存储引用',
1163
- 'Create Group': '创建分组',
1164
- 'Category Value': '类别值',
1165
-
1166
- //custom
1167
- 'Create CallActivity': '创建调用任务',
1168
- 'Append Gateway': '追加网关节点',
1169
- 'Append Intermediate/Boundary Event': '追加中间/边界事件',
1170
- 'StartEvent': '开始节点',
1171
- 'EndEvent': '结束节点',
1172
- 'DataObjectReference': '数据对象引用',
1173
- 'DataStoreReference': '数据存储引用',
1174
- 'Element must have an unique id.': '节点元素必须用于唯一编号',
1175
- 'Create ExclusiveGateway': '创建排他网关',
1176
- 'Create Pool/Participant': '创建泳道或参与者',
1177
- 'Append ExclusiveGateway': '追加排他网关',
1178
- 'Append Task': '追加任务',
1179
- 'Append UserTask': '追加用户任务',
1180
- 'Append Sequence': '追加连线',
1181
- 'Append EndEvent': '追加结束节点',
1182
- 'UserTask': '用户任务',
1183
- 'ExclusiveGateway': '条件', //排他网关
1184
- 'Element is not set findUserType': '员工节点未设置节点人员',
1185
- 'Token Simulation ': '流程模拟',
1186
- 'Tasklist Configuration': '任务列表配置',
1187
- 'Startable': '可启动',
1188
- 'Element Documentation': '元素描述',
1189
-
1190
- 'Multi Instance': '多实例',
1191
- 'Loop Cardinality': '循环基数',
1192
- 'Collection': '集合',
1193
- 'Element Variable': '元素变量',
1194
- 'Completion Condition': '完成条件',
1195
- 'Multi Instance Asynchronous Before': '多实例异步之前',
1196
- 'Multi Instance Asynchronous After': '多实例异步之后',
1197
- 'Multi Instance Exclusive': '多实例排他',
1198
- 'Multi Instance Retry Time Cycle': '多实例重试时间',
1199
- */
1200
955
  };
1201
956
 
1202
957
  function customTranslate(template, replacements) {
@@ -1227,7 +982,7 @@ class UserTaskPaletteProvider {
1227
982
  'create.user-task': {
1228
983
  group: 'activity',
1229
984
  className: 'bpmn-icon-user-task',
1230
- title: this.translate('Create UserTask'),
985
+ title: this.translate('Create user task'),
1231
986
  action: {
1232
987
  dragstart: this.createUserTask,
1233
988
  click: this.createUserTask
@@ -1263,7 +1018,7 @@ class UserTaskContextPadProvider {
1263
1018
  'append.user-task': {
1264
1019
  group: 'model',
1265
1020
  className: 'bpmn-icon-user-task',
1266
- title: this.translate('Append UserTask'),
1021
+ title: this.translate('Append user task'),
1267
1022
  action: {
1268
1023
  hover: this.appendUserTaskPreview,
1269
1024
  click: this.appendUserTask,
@@ -1317,7 +1072,7 @@ class ServiceTaskPaletteProvider {
1317
1072
  'create.service-task': {
1318
1073
  group: 'activity',
1319
1074
  className: 'bpmn-icon-service-task',
1320
- title: this.translate('Create ServiceTask'),
1075
+ title: this.translate('Create service task'),
1321
1076
  action: {
1322
1077
  dragstart: this.createServiceTask,
1323
1078
  click: this.createServiceTask
@@ -1348,7 +1103,7 @@ class ServiceTaskContextPadProvider {
1348
1103
  'append.service-task': {
1349
1104
  group: 'model',
1350
1105
  className: 'bpmn-icon-service-task',
1351
- title: this.translate('Append ServiceTask'),
1106
+ title: this.translate('Append service task'),
1352
1107
  action: {
1353
1108
  hover: this.appendServiceTaskPreview,
1354
1109
  click: this.appendServiceTask,
@@ -1395,8 +1150,7 @@ class HideOtherPaletteProvider {
1395
1150
  'create.end-event',
1396
1151
  'create.user-task',
1397
1152
  'create.service-task',
1398
- 'create.exclusive-gateway',
1399
- 'xml'
1153
+ // 'create.exclusive-gateway'
1400
1154
  ];
1401
1155
  palette.registerProvider(0, this);
1402
1156
  }
@@ -1422,23 +1176,23 @@ class HideOtherContextPadProvider {
1422
1176
  }
1423
1177
  getContextPadEntries(element) {
1424
1178
  return (entries) => {
1179
+ if (isLabel(element)) {
1180
+ return {};
1181
+ }
1425
1182
  if (is(element, 'bpmn:EndEvent')) {
1426
1183
  return {
1427
- 'delete': entries['delete'],
1428
- 'set-color': entries['set-color']
1184
+ 'delete': entries['delete']
1429
1185
  };
1430
1186
  }
1431
1187
  else if (is(element, 'bpmn:SequenceFlow')) {
1432
1188
  if (entries['replace']) {
1433
1189
  return {
1434
1190
  'replace': this.createReplaceAction(element),
1435
- 'delete': entries['delete'],
1436
- 'set-color': entries['set-color']
1191
+ 'delete': entries['delete']
1437
1192
  };
1438
1193
  }
1439
1194
  return {
1440
- 'delete': entries['delete'],
1441
- 'set-color': entries['set-color']
1195
+ 'delete': entries['delete']
1442
1196
  };
1443
1197
  }
1444
1198
  else if (is(element, 'bpmn:Gateway')) {
@@ -1449,18 +1203,16 @@ class HideOtherContextPadProvider {
1449
1203
  'append.end-event': entries['append.end-event'],
1450
1204
  'connect': entries['connect'],
1451
1205
  'replace': this.createReplaceAction(element),
1452
- 'delete': entries['delete'],
1453
- 'set-color': entries['set-color']
1206
+ 'delete': entries['delete']
1454
1207
  };
1455
1208
  }
1456
1209
  return {
1457
1210
  'append.user-task': entries['append.user-task'],
1458
1211
  'append.service-task': entries['append.service-task'],
1459
- 'append.gateway': entries['append.gateway'],
1212
+ // 'append.gateway': entries['append.gateway'],
1460
1213
  'append.end-event': entries['append.end-event'],
1461
1214
  'connect': entries['connect'],
1462
- 'delete': entries['delete'],
1463
- 'set-color': entries['set-color']
1215
+ 'delete': entries['delete']
1464
1216
  };
1465
1217
  };
1466
1218
  }
@@ -1523,149 +1275,6 @@ var customHideOtherModule = {
1523
1275
  gatewayReplaceMenuProvider: ['type', GatewayReplaceMenuProvider]
1524
1276
  };
1525
1277
 
1526
- const util = {};
1527
- function addExtensionProperty(element, key, value) {
1528
- let extensionElements = element.businessObject.get('extensionElements');
1529
- if (!extensionElements) {
1530
- extensionElements = util.bpmnFactory.create('bpmn:ExtensionElements', { values: [] });
1531
- extensionElements.$parent = element.businessObject;
1532
- util.modeling.updateModdleProperties(element, element.businessObject, { extensionElements });
1533
- }
1534
- let properties = null;
1535
- const extensionElementValues = extensionElements.get('values');
1536
- const existPropertiesElements = extensionElementValues.filter((value) => is(value, 'camunda:Properties'));
1537
- if (existPropertiesElements.length > 0) {
1538
- properties = existPropertiesElements[0];
1539
- }
1540
- if (!properties) {
1541
- properties = util.bpmnFactory.create('camunda:Properties', { values: [] });
1542
- properties.$parent = extensionElements;
1543
- util.modeling.updateModdleProperties(element, extensionElements, { values: [...extensionElements.get('values'), properties] });
1544
- }
1545
- const propertyValues = properties.get('values');
1546
- const existPropertyIndex = propertyValues.findIndex((value) => value.name === key);
1547
- if (existPropertyIndex > -1) {
1548
- util.modeling.updateModdleProperties(element, propertyValues[existPropertyIndex], { name: key, value });
1549
- }
1550
- else {
1551
- const property = util.bpmnFactory.create('camunda:Property', { name: key, value });
1552
- property.$parent = properties;
1553
- util.modeling.updateModdleProperties(element, properties, { values: [...properties.get('values'), property] });
1554
- }
1555
- }
1556
- function getExtensionPropertyValue(element, key) {
1557
- let extensionElements = element.businessObject.get('extensionElements');
1558
- if (!extensionElements) {
1559
- return '';
1560
- }
1561
- let properties = null;
1562
- const extensionElementValues = extensionElements.get('values');
1563
- const existPropertiesElements = extensionElementValues.filter((value) => is(value, 'camunda:Properties'));
1564
- if (existPropertiesElements.length > 0) {
1565
- properties = existPropertiesElements[0];
1566
- }
1567
- if (!properties) {
1568
- return '';
1569
- }
1570
- const propertyValues = properties.get('values');
1571
- const existPropertyIndex = propertyValues.findIndex((value) => value.name === key);
1572
- if (existPropertyIndex > -1) {
1573
- return propertyValues[existPropertyIndex].value;
1574
- }
1575
- }
1576
-
1577
- // @ts-ignore
1578
- class TaskDescriptionProps {
1579
- constructor(props) {
1580
- this.id = 'Coast_taskDescription';
1581
- const { element } = props;
1582
- this.component = () => {
1583
- return TextAreaEntry({
1584
- element: element,
1585
- id: this.id,
1586
- label: util.translate('Task description'),
1587
- getValue: () => {
1588
- return getExtensionPropertyValue(element, this.id);
1589
- },
1590
- setValue: (value) => {
1591
- addExtensionProperty(element, this.id, value);
1592
- },
1593
- debounce: util.debounce,
1594
- autoResize: true
1595
- });
1596
- };
1597
- this.isEdited = isTextAreaEntryEdited;
1598
- }
1599
- }
1600
-
1601
- // @ts-ignore
1602
- class UserAssignmentStaticOrDynamicProps {
1603
- constructor(props) {
1604
- this.id = 'Coast_userAssignment_staticOrDynamic';
1605
- const { element } = props;
1606
- this.component = () => {
1607
- return SelectEntry({
1608
- element: element,
1609
- id: this.id,
1610
- label: util.translate('Set assignment rule'),
1611
- getValue: () => {
1612
- return getExtensionPropertyValue(element, this.id);
1613
- },
1614
- setValue: (value) => {
1615
- addExtensionProperty(element, this.id, value);
1616
- },
1617
- getOptions: () => {
1618
- return [
1619
- { value: '', label: util.translate('dynamic user') },
1620
- { value: 'static_user', label: util.translate('static user') },
1621
- { value: 'dynamic_role', label: util.translate('dynamic role') },
1622
- { value: 'static_role', label: util.translate('static role') }
1623
- ];
1624
- }
1625
- });
1626
- };
1627
- this.isEdited = isSelectEntryEdited;
1628
- }
1629
- }
1630
-
1631
- function getUserAssignmentProps(element) {
1632
- return [new UserAssignmentStaticOrDynamicProps(element)];
1633
- }
1634
-
1635
- class CustomPropertiesProvider {
1636
- constructor(propertiesPanel, translate, bpmnFactory, modeling, debounceInput) {
1637
- this.translate = translate;
1638
- util.translate = translate;
1639
- util.bpmnFactory = bpmnFactory;
1640
- util.modeling = modeling;
1641
- util.debounce = debounceInput;
1642
- propertiesPanel.registerProvider(0, this);
1643
- }
1644
- getGroups(element) {
1645
- return ((groups) => {
1646
- const generalGroup = groups.find((group) => group.id === 'general');
1647
- generalGroup.shouldOpen = true;
1648
- console.log(generalGroup);
1649
- if (is(element, 'bpmn:Process')) {
1650
- generalGroup.entries.splice(1, 3);
1651
- }
1652
- else if (is(element, 'bpmn:UserTask')) {
1653
- generalGroup.entries.splice(1, 1);
1654
- generalGroup.entries.push(...[
1655
- new TaskDescriptionProps({ element }),
1656
- ...getUserAssignmentProps({ element })
1657
- ]);
1658
- }
1659
- return [generalGroup];
1660
- });
1661
- }
1662
- }
1663
-
1664
- var customPropertiesPanelModule = {
1665
- __init__: ['customPropertiesProvider'],
1666
- customPropertiesProvider: ['type', CustomPropertiesProvider]
1667
- };
1668
-
1669
1278
  class CodeEditorComponent {
1670
1279
  set code(code) {
1671
1280
  this._code = code || '';
@@ -1715,10 +1324,10 @@ class CodeEditorComponent {
1715
1324
  }
1716
1325
  }
1717
1326
  CodeEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CodeEditorComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
1718
- 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"] }] });
1327
+ 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"] }] });
1719
1328
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CodeEditorComponent, decorators: [{
1720
1329
  type: Component,
1721
- 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"] }]
1330
+ 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"] }]
1722
1331
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { code: [{
1723
1332
  type: Input
1724
1333
  }], codeChange: [{
@@ -1740,7 +1349,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1740
1349
 
1741
1350
  class CamundaBpmnEditorComponent {
1742
1351
  constructor() {
1352
+ this.selectedNodeChanged = new EventEmitter();
1743
1353
  this.isShowXml = false;
1354
+ this.isShowConfig = false;
1744
1355
  this.initialDiagram = '<?xml version="1.0" encoding="UTF-8"?>' +
1745
1356
  '<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
1746
1357
  'xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" ' +
@@ -1762,7 +1373,9 @@ class CamundaBpmnEditorComponent {
1762
1373
  }
1763
1374
  set xml(xml) {
1764
1375
  this._xml = xml;
1765
- this.loadXml();
1376
+ setTimeout(() => {
1377
+ this.loadXml();
1378
+ });
1766
1379
  }
1767
1380
  get xml() {
1768
1381
  return this._xml;
@@ -1786,14 +1399,31 @@ class CamundaBpmnEditorComponent {
1786
1399
  customUserTaskModule,
1787
1400
  customServiceTaskModule,
1788
1401
  customHideOtherModule,
1789
- customPropertiesPanelModule
1402
+ // customPropertiesPanelModule
1790
1403
  ]
1791
1404
  });
1792
1405
  const logo = this.modeler._container.querySelector('.bjs-powered-by');
1793
1406
  if (logo) {
1794
1407
  this.modeler._container.removeChild(logo);
1795
1408
  }
1409
+ this.modeler.get('palette')._toggleState({ twoColumn: false });
1796
1410
  this.canvas = this.modeler.get('canvas');
1411
+ const eventBus = this.modeler.get('eventBus');
1412
+ eventBus.on(['propertiesPanel.updated'], ($event) => {
1413
+ if (Array.isArray($event.element)) {
1414
+ this.selectedNodeChanged.emit();
1415
+ }
1416
+ else {
1417
+ this.selectedNodeChanged.emit({
1418
+ element: $event.element,
1419
+ util: {
1420
+ bpmnFactory: this.modeler.get('bpmnFactory'),
1421
+ modeling: this.modeler.get('modeling'),
1422
+ elementRegistry: this.modeler.get('elementRegistry')
1423
+ }
1424
+ });
1425
+ }
1426
+ });
1797
1427
  this.loadXml();
1798
1428
  }
1799
1429
  loadXml() {
@@ -1818,12 +1448,14 @@ class CamundaBpmnEditorComponent {
1818
1448
  }
1819
1449
  }
1820
1450
  CamundaBpmnEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CamundaBpmnEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1821
- 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"] }] });
1451
+ 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"] }] });
1822
1452
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CamundaBpmnEditorComponent, decorators: [{
1823
1453
  type: Component,
1824
- 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"] }]
1454
+ 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"] }]
1825
1455
  }], propDecorators: { xml: [{
1826
1456
  type: Input
1457
+ }], selectedNodeChanged: [{
1458
+ type: Output
1827
1459
  }], bpmnContainer: [{
1828
1460
  type: ViewChild,
1829
1461
  args: ['bpmnContainer']
@@ -3404,12 +3036,147 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
3404
3036
  args: [RowButtonsTemplateDirective]
3405
3037
  }] } });
3406
3038
 
3039
+ class FieldSelectorComponent {
3040
+ constructor() {
3041
+ this.fieldTree = [];
3042
+ this.required = false;
3043
+ this.label = '属性';
3044
+ this.readonly = false;
3045
+ this.multiple = false;
3046
+ this.fieldChanged = new EventEmitter();
3047
+ this.__fields = [];
3048
+ this.suspendSelectionChanged = false;
3049
+ }
3050
+ set _fields(__fields) {
3051
+ if (this.__fields !== __fields) {
3052
+ this.__fields = __fields;
3053
+ this.fieldChange(this.__fields);
3054
+ }
3055
+ }
3056
+ get _fields() {
3057
+ return this.__fields;
3058
+ }
3059
+ ngOnInit() {
3060
+ if (this.config.field) {
3061
+ if (Array.isArray(this.config.field)) {
3062
+ this._fields = this.config.field;
3063
+ }
3064
+ else {
3065
+ this._fields = [this.config.field];
3066
+ }
3067
+ }
3068
+ }
3069
+ fieldChange(value) {
3070
+ if (value && value.length > 0) {
3071
+ this.config.__formAttribute = value.join(';');
3072
+ if (this.multiple) {
3073
+ this.config.field = value;
3074
+ const fields = [];
3075
+ for (const fieldName of value) {
3076
+ fields.push(this.getField(this.fieldTree, fieldName));
3077
+ }
3078
+ this.fieldChanged.emit(fields);
3079
+ }
3080
+ else {
3081
+ this.config.field = value[0];
3082
+ this.fieldChanged.emit(this.getField(this.fieldTree, value[0]));
3083
+ }
3084
+ }
3085
+ else {
3086
+ this.config.field = '';
3087
+ this.config.__formAttribute = '';
3088
+ this.fieldChanged.emit();
3089
+ }
3090
+ }
3091
+ getField(tree, field) {
3092
+ for (const node of tree) {
3093
+ if (node.innerName === field) {
3094
+ return node;
3095
+ }
3096
+ if (node.children) {
3097
+ const result = this.getField(node.children, field);
3098
+ if (result) {
3099
+ return result;
3100
+ }
3101
+ }
3102
+ }
3103
+ return undefined;
3104
+ }
3105
+ onRowPrepared($event) {
3106
+ if ($event.rowType === 'header') {
3107
+ $event.rowElement.style.display = 'none';
3108
+ }
3109
+ }
3110
+ onCellPrepared($event) {
3111
+ if ($event.rowType === 'data') {
3112
+ if (!this.multiple) {
3113
+ $event.cellElement.style.cursor = 'pointer';
3114
+ }
3115
+ if (this.multiple && !$event.visible && $event.data.hasItems) {
3116
+ const checkbox = $event.cellElement.querySelector('.dx-select-checkbox');
3117
+ checkbox.style.display = 'none';
3118
+ }
3119
+ }
3120
+ }
3121
+ onSelectionChanged($event, dropDownBox) {
3122
+ if (this.multiple) {
3123
+ return;
3124
+ }
3125
+ if (this.suspendSelectionChanged) {
3126
+ this.suspendSelectionChanged = false;
3127
+ return;
3128
+ }
3129
+ if ($event.selectedRowsData.length === 0) {
3130
+ return;
3131
+ }
3132
+ if (!$event.selectedRowsData[0].visible && $event.selectedRowsData[0].hasItems) {
3133
+ if ($event.component.isRowExpanded($event.selectedRowKeys[0])) {
3134
+ $event.component.collapseRow($event.selectedRowKeys[0]);
3135
+ }
3136
+ else {
3137
+ $event.component.expandRow($event.selectedRowKeys[0]);
3138
+ }
3139
+ this.suspendSelectionChanged = true;
3140
+ $event.component.selectRows($event.currentDeselectedRowKeys[0]);
3141
+ return;
3142
+ }
3143
+ dropDownBox.instance.close();
3144
+ }
3145
+ removeItem($event, field) {
3146
+ $event.stopPropagation();
3147
+ const findIndex = this._fields.findIndex((innerName) => innerName === field.innerName);
3148
+ this._fields.splice(findIndex, 1);
3149
+ }
3150
+ }
3151
+ FieldSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FieldSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3152
+ 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"] }] });
3153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FieldSelectorComponent, decorators: [{
3154
+ type: Component,
3155
+ 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"] }]
3156
+ }], propDecorators: { fieldTree: [{
3157
+ type: Input
3158
+ }], config: [{
3159
+ type: Input
3160
+ }], required: [{
3161
+ type: Input
3162
+ }], label: [{
3163
+ type: Input
3164
+ }], readonly: [{
3165
+ type: Input
3166
+ }], multiple: [{
3167
+ type: Input
3168
+ }], fieldChanged: [{
3169
+ type: Output
3170
+ }] } });
3171
+
3407
3172
  class FormModule {
3408
3173
  }
3409
3174
  FormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3410
- FormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: FormModule, declarations: [FormComponent], imports: [CommonModule,
3175
+ FormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: FormModule, declarations: [FormComponent,
3176
+ FieldSelectorComponent], imports: [CommonModule,
3411
3177
  BoxContainerModule,
3412
- DevExtremeModule], exports: [FormComponent] });
3178
+ DevExtremeModule], exports: [FormComponent,
3179
+ FieldSelectorComponent] });
3413
3180
  FormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormModule, imports: [CommonModule,
3414
3181
  BoxContainerModule,
3415
3182
  DevExtremeModule] });
@@ -3417,7 +3184,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
3417
3184
  type: NgModule,
3418
3185
  args: [{
3419
3186
  declarations: [
3420
- FormComponent
3187
+ FormComponent,
3188
+ FieldSelectorComponent
3421
3189
  ],
3422
3190
  imports: [
3423
3191
  CommonModule,
@@ -3425,7 +3193,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
3425
3193
  DevExtremeModule
3426
3194
  ],
3427
3195
  exports: [
3428
- FormComponent
3196
+ FormComponent,
3197
+ FieldSelectorComponent
3429
3198
  ]
3430
3199
  }]
3431
3200
  }] });
@@ -3707,10 +3476,10 @@ class IconSelectorComponent {
3707
3476
  }
3708
3477
  }
3709
3478
  IconSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: IconSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3710
- 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"] }] });
3479
+ 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"] }] });
3711
3480
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: IconSelectorComponent, decorators: [{
3712
3481
  type: Component,
3713
- 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" }]
3482
+ 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" }]
3714
3483
  }], ctorParameters: function () { return []; }, propDecorators: { target: [{
3715
3484
  type: Input
3716
3485
  }], select: [{
@@ -3870,10 +3639,10 @@ class ModalComponent {
3870
3639
  }
3871
3640
  }
3872
3641
  ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ModalComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
3873
- 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"] }] });
3642
+ 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"] }] });
3874
3643
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ModalComponent, decorators: [{
3875
3644
  type: Component,
3876
- 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"] }]
3645
+ 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"] }]
3877
3646
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { modalElementRef: [{
3878
3647
  type: ViewChild,
3879
3648
  args: ['modal', { static: true }]
@@ -4129,5 +3898,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
4129
3898
  * Generated bundle index. Do not edit.
4130
3899
  */
4131
3900
 
4132
- 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 };
3901
+ 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 };
4133
3902
  //# sourceMappingURL=ngx-rs-ant.mjs.map