ngx-rs-ant 1.2.4 → 1.2.6

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 (47) hide show
  1. package/box-container/box-container.component.d.ts +1 -1
  2. package/camunda-bpmn-editor/camunda-bpmn-editor.component.d.ts +15 -0
  3. package/camunda-bpmn-editor/camunda-bpmn-editor.module.d.ts +10 -0
  4. package/camunda-bpmn-editor/custom/config/CustomPropertiesProvider.d.ts +8 -0
  5. package/camunda-bpmn-editor/custom/config/index.d.ts +6 -0
  6. package/camunda-bpmn-editor/custom/config/properties/DescriptionProps.d.ts +6 -0
  7. package/camunda-bpmn-editor/custom/config/util/ElementUtils.d.ts +1 -0
  8. package/camunda-bpmn-editor/custom/hide-other/GatewayReplaceMenuProvider.d.ts +4 -0
  9. package/camunda-bpmn-editor/custom/hide-other/HideOtherContextPadProvider.d.ts +55 -0
  10. package/camunda-bpmn-editor/custom/hide-other/HideOtherPaletteProvider.d.ts +5 -0
  11. package/camunda-bpmn-editor/custom/hide-other/index.d.ts +10 -0
  12. package/camunda-bpmn-editor/custom/translate/index.d.ts +7 -0
  13. package/camunda-bpmn-editor/custom/translate/translations.d.ts +3 -0
  14. package/camunda-bpmn-editor/custom/user-task/UserTaskContextPadProvider.d.ts +25 -0
  15. package/camunda-bpmn-editor/custom/user-task/UserTaskPaletteProvider.d.ts +20 -0
  16. package/camunda-bpmn-editor/custom/user-task/index.d.ts +8 -0
  17. package/data-detail/data-detail.component.d.ts +2 -1
  18. package/dynamic-params/dynamic-params.component.d.ts +2 -1
  19. package/esm2020/box-container/PluginManager.mjs +2 -2
  20. package/esm2020/box-container/box-container.component.mjs +4 -2
  21. package/esm2020/camunda-bpmn-editor/camunda-bpmn-editor.component.mjs +65 -0
  22. package/esm2020/camunda-bpmn-editor/camunda-bpmn-editor.module.mjs +32 -0
  23. package/esm2020/camunda-bpmn-editor/custom/config/CustomPropertiesProvider.mjs +31 -0
  24. package/esm2020/camunda-bpmn-editor/custom/config/descriptors/coast.json +24 -0
  25. package/esm2020/camunda-bpmn-editor/custom/config/index.mjs +6 -0
  26. package/esm2020/camunda-bpmn-editor/custom/config/properties/DescriptionProps.mjs +28 -0
  27. package/esm2020/camunda-bpmn-editor/custom/config/util/ElementUtils.mjs +31 -0
  28. package/esm2020/camunda-bpmn-editor/custom/hide-other/GatewayReplaceMenuProvider.mjs +22 -0
  29. package/esm2020/camunda-bpmn-editor/custom/hide-other/HideOtherContextPadProvider.mjs +81 -0
  30. package/esm2020/camunda-bpmn-editor/custom/hide-other/HideOtherPaletteProvider.mjs +29 -0
  31. package/esm2020/camunda-bpmn-editor/custom/hide-other/index.mjs +10 -0
  32. package/esm2020/camunda-bpmn-editor/custom/translate/index.mjs +14 -0
  33. package/esm2020/camunda-bpmn-editor/custom/translate/translations.mjs +276 -0
  34. package/esm2020/camunda-bpmn-editor/custom/user-task/UserTaskContextPadProvider.mjs +54 -0
  35. package/esm2020/camunda-bpmn-editor/custom/user-task/UserTaskPaletteProvider.mjs +32 -0
  36. package/esm2020/camunda-bpmn-editor/custom/user-task/index.mjs +8 -0
  37. package/esm2020/data-detail/data-detail.component.mjs +4 -2
  38. package/esm2020/dynamic-params/dynamic-params.component.mjs +8 -3
  39. package/esm2020/form/form.component.mjs +5 -3
  40. package/esm2020/public-api.mjs +3 -1
  41. package/fesm2015/ngx-rs-ant.mjs +743 -9
  42. package/fesm2015/ngx-rs-ant.mjs.map +1 -1
  43. package/fesm2020/ngx-rs-ant.mjs +743 -9
  44. package/fesm2020/ngx-rs-ant.mjs.map +1 -1
  45. package/form/form.component.d.ts +2 -1
  46. package/package.json +2 -1
  47. package/public-api.d.ts +2 -0
@@ -14,5 +14,5 @@ export declare class BoxContainerComponent implements OnInit, OnChanges, OnDestr
14
14
  ngOnDestroy(): void;
15
15
  load(): void;
16
16
  static ɵfac: i0.ɵɵFactoryDeclaration<BoxContainerComponent, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<BoxContainerComponent, "rs-box-container", never, { "config": "config"; "model": "model"; "readonly": "readonly"; }, {}, never, never, false, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<BoxContainerComponent, "rs-box-container", never, { "config": "config"; "model": "model"; "params": "params"; "readonly": "readonly"; }, {}, never, never, false, never>;
18
18
  }
@@ -0,0 +1,15 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class CamundaBpmnEditorComponent {
4
+ container?: ElementRef;
5
+ config?: ElementRef;
6
+ modeler: any;
7
+ minimap: any;
8
+ canvas: any;
9
+ xml: any;
10
+ isShowXml: boolean;
11
+ ngAfterViewInit(): void;
12
+ showXml(): void;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<CamundaBpmnEditorComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<CamundaBpmnEditorComponent, "rs-camunda-bpmn-editor", never, {}, {}, never, never, false, never>;
15
+ }
@@ -0,0 +1,10 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./camunda-bpmn-editor.component";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "../code-editor/code-editor.module";
5
+ import * as i4 from "devextreme-angular";
6
+ export declare class CamundaBpmnEditorModule {
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<CamundaBpmnEditorModule, never>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CamundaBpmnEditorModule, [typeof i1.CamundaBpmnEditorComponent], [typeof i2.CommonModule, typeof i3.CodeEditorModule, typeof i4.DevExtremeModule], [typeof i1.CamundaBpmnEditorComponent]>;
9
+ static ɵinj: i0.ɵɵInjectorDeclaration<CamundaBpmnEditorModule>;
10
+ }
@@ -0,0 +1,8 @@
1
+ export default class CustomPropertiesProvider {
2
+ private readonly translate;
3
+ private readonly bpmnFactory;
4
+ private readonly modeling;
5
+ private readonly debounceInput;
6
+ constructor(propertiesPanel: any, translate: any, bpmnFactory: any, modeling: any, debounceInput: any);
7
+ getGroups(element: any): (groups: any) => any;
8
+ }
@@ -0,0 +1,6 @@
1
+ import CustomPropertiesProvider from "./CustomPropertiesProvider";
2
+ declare const _default: {
3
+ __init__: string[];
4
+ customPropertiesProvider: (string | typeof CustomPropertiesProvider)[];
5
+ };
6
+ export default _default;
@@ -0,0 +1,6 @@
1
+ export default class DescriptionProps {
2
+ id: string;
3
+ component: any;
4
+ isEdited: any;
5
+ constructor(props: any);
6
+ }
@@ -0,0 +1 @@
1
+ export declare function addExtensionProperty(element: any, key: string, value: string, bpmnFactory: any, modeling: any): void;
@@ -0,0 +1,4 @@
1
+ export default class GatewayReplaceMenuProvider {
2
+ constructor(popupMenu: any);
3
+ getPopupMenuEntries(element: any): (entries: any) => any;
4
+ }
@@ -0,0 +1,55 @@
1
+ export default class HideOtherContextPadProvider {
2
+ private readonly contextPad;
3
+ private readonly translate;
4
+ private readonly popupMenu;
5
+ constructor(contextPad: any, translate: any, popupMenu: any);
6
+ getContextPadEntries(element: any): (entries: any) => {
7
+ delete: any;
8
+ 'set-color': any;
9
+ replace?: undefined;
10
+ 'append.user-task'?: undefined;
11
+ 'append.gateway'?: undefined;
12
+ 'append.end-event'?: undefined;
13
+ connect?: undefined;
14
+ } | {
15
+ replace: {
16
+ group: string;
17
+ className: string;
18
+ title: any;
19
+ action: {
20
+ click: (event: any, element: any) => void;
21
+ };
22
+ };
23
+ delete: any;
24
+ 'set-color': any;
25
+ 'append.user-task'?: undefined;
26
+ 'append.gateway'?: undefined;
27
+ 'append.end-event'?: undefined;
28
+ connect?: undefined;
29
+ } | {
30
+ 'append.user-task': any;
31
+ 'append.gateway': any;
32
+ 'append.end-event': any;
33
+ connect: any;
34
+ replace: {
35
+ group: string;
36
+ className: string;
37
+ title: any;
38
+ action: {
39
+ click: (event: any, element: any) => void;
40
+ };
41
+ };
42
+ delete: any;
43
+ 'set-color': any;
44
+ } | {
45
+ 'append.user-task': any;
46
+ 'append.gateway': any;
47
+ 'append.end-event': any;
48
+ connect: any;
49
+ delete: any;
50
+ 'set-color': any;
51
+ replace?: undefined;
52
+ };
53
+ private getReplaceMenuPosition;
54
+ private createReplaceAction;
55
+ }
@@ -0,0 +1,5 @@
1
+ export default class HideOtherPaletteProvider {
2
+ private visibleEntryKeys;
3
+ constructor(palette: any);
4
+ getPaletteEntries(): (entries: any) => any;
5
+ }
@@ -0,0 +1,10 @@
1
+ import HideOtherPaletteProvider from './HideOtherPaletteProvider';
2
+ import HideOtherContextPadProvider from "./HideOtherContextPadProvider";
3
+ import GatewayReplaceMenuProvider from "./GatewayReplaceMenuProvider";
4
+ declare const _default: {
5
+ __init__: string[];
6
+ hideOtherPaletteProvider: (string | typeof HideOtherPaletteProvider)[];
7
+ hideOtherContextPadProvider: (string | typeof HideOtherContextPadProvider)[];
8
+ gatewayReplaceMenuProvider: (string | typeof GatewayReplaceMenuProvider)[];
9
+ };
10
+ export default _default;
@@ -0,0 +1,7 @@
1
+ export declare function customTranslate(template: string, replacements: {
2
+ [key: string]: string;
3
+ }): string;
4
+ declare const _default: {
5
+ translate: (string | typeof customTranslate)[];
6
+ };
7
+ export default _default;
@@ -0,0 +1,3 @@
1
+ export declare const translations: {
2
+ [key: string]: string;
3
+ };
@@ -0,0 +1,25 @@
1
+ export default class UserTaskContextPadProvider {
2
+ private readonly translate;
3
+ private readonly appendPreview;
4
+ private readonly elementFactory;
5
+ private readonly autoPlace;
6
+ private readonly moddle;
7
+ private readonly modeling;
8
+ private readonly create;
9
+ constructor(contextPad: any, translate: any, appendPreview: any, elementFactory: any, autoPlace: any, moddle: any, modeling: any, create: any);
10
+ getContextPadEntries(): {
11
+ 'append.user-task': {
12
+ group: string;
13
+ className: string;
14
+ title: any;
15
+ action: {
16
+ hover: (event: any, source: any) => () => void;
17
+ click: (event: any, source: any) => void;
18
+ dragstart: (event: any, source: any) => void;
19
+ };
20
+ };
21
+ };
22
+ appendUserTaskPreview(event: any, source: any): () => void;
23
+ appendUserTask(event: any, source: any): void;
24
+ appendUserTaskStart(event: any, source: any): void;
25
+ }
@@ -0,0 +1,20 @@
1
+ export default class UserTaskPaletteProvider {
2
+ private readonly translate;
3
+ private readonly elementFactory;
4
+ private readonly moddle;
5
+ private readonly modeling;
6
+ private readonly create;
7
+ constructor(palette: any, translate: any, elementFactory: any, moddle: any, modeling: any, create: any);
8
+ getPaletteEntries(): {
9
+ 'create.user-task': {
10
+ group: string;
11
+ className: string;
12
+ title: any;
13
+ action: {
14
+ dragstart: (event: any) => void;
15
+ click: (event: any) => void;
16
+ };
17
+ };
18
+ };
19
+ createUserTask(event: any): void;
20
+ }
@@ -0,0 +1,8 @@
1
+ import UserTaskPaletteProvider from './UserTaskPaletteProvider';
2
+ import UserTaskContextPadProvider from "./UserTaskContextPadProvider";
3
+ declare const _default: {
4
+ __init__: string[];
5
+ userTaskPaletteProvider: (string | typeof UserTaskPaletteProvider)[];
6
+ userTaskContextPadProvider: (string | typeof UserTaskContextPadProvider)[];
7
+ };
8
+ export default _default;
@@ -7,10 +7,11 @@ export declare class DataDetailComponent {
7
7
  tenant: any;
8
8
  className: any;
9
9
  oid: any;
10
+ params?: any;
10
11
  sections: any[];
11
12
  loading: boolean;
12
13
  constructor(viewContainerRef: ViewContainerRef, service: DataDetailService);
13
14
  ngOnInit(): void;
14
15
  static ɵfac: i0.ɵɵFactoryDeclaration<DataDetailComponent, never>;
15
- static ɵcmp: i0.ɵɵComponentDeclaration<DataDetailComponent, "coast-data-detail", never, { "tenant": "tenant"; "className": "className"; "oid": "oid"; }, {}, never, never, false, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<DataDetailComponent, "coast-data-detail", never, { "tenant": "tenant"; "className": "className"; "oid": "oid"; "params": "params"; }, {}, never, never, false, never>;
16
17
  }
@@ -5,8 +5,9 @@ export declare class DynamicParamsComponent {
5
5
  name: string;
6
6
  value: string;
7
7
  }[];
8
+ readonly: boolean;
8
9
  add(): void;
9
10
  delete(index: number): void;
10
11
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicParamsComponent, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<DynamicParamsComponent, "rs-dynamic-params", never, { "label": "label"; "params": "params"; }, {}, never, never, false, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicParamsComponent, "rs-dynamic-params", never, { "label": "label"; "params": "params"; "readonly": "readonly"; }, {}, never, never, false, never>;
12
13
  }
@@ -28,7 +28,7 @@ export class PluginManager {
28
28
  if (boxItem.boxContainer.readonly) {
29
29
  instance.readonly = true;
30
30
  }
31
- instance.pageParams = boxItem.boxContainer.params;
31
+ instance.params = boxItem.boxContainer.params;
32
32
  instance.tabViewContainerRef = boxItem.boxContainer.tabViewContainerRef;
33
33
  if (boxItem.boxContainer.editMode) {
34
34
  instance.onRemove = () => {
@@ -166,4 +166,4 @@ export class PluginManager {
166
166
  PluginManager.hoverItems = [];
167
167
  PluginManager.activeItem = new Subject();
168
168
  PluginManager.activeItems = [];
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGx1Z2luTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL2JveC1jb250YWluZXIvUGx1Z2luTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN0RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUNoRyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDM0UsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFFNUYsTUFBTSxPQUFPLGFBQWE7SUFLeEIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUF5QixFQUFFLEtBQWEsRUFBRSxLQUFVLEVBQUUsTUFBVztRQUN0RixJQUFJLE1BQU0sR0FBUSxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEQsTUFBTSxHQUFHO2dCQUNQLFNBQVMsRUFBRSx1QkFBdUI7Z0JBQ2xDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDakIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJO2FBQ3JCLENBQUE7U0FDRjtRQUNELE1BQU0sZ0JBQWdCLEdBQVEsT0FBTyxDQUFDLFNB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b250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1BsdWdpbkZhY3Rvcnl9IGZyb20gJ2NvYXN0LXBsdWdpbi1yZWdpc3Rlcic7XHJcbmltcG9ydCB7UGx1Z2luQWN0aXZlQ29tcG9uZW50fSBmcm9tICcuL3BsdWdpbi1hY3RpdmUvcGx1Z2luLWFjdGl2ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1BsdWdpbkhvdmVyQ29tcG9uZW50fSBmcm9tICcuL3BsdWdpbi1ob3Zlci9wbHVnaW4taG92ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtCb3hJdGVtQ29tcG9uZW50fSBmcm9tICcuL2JveC1pdGVtL2JveC1pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UGx1Z2luTm90Rm91bmRDb21wb25lbnR9IGZyb20gXCIuL3BsdWdpbi1ub3QtZm91bmQvcGx1Z2luLW5vdC1mb3VuZC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtDb25maWdCbGFua0NvbXBvbmVudH0gZnJvbSBcIi4vYm94LWl0ZW0vaXRlbS1jb25maWcvY29uZmlnLWJsYW5rL2NvbmZpZy1ibGFuay5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtTdHlsZUNvbXBvbmVudH0gZnJvbSBcIi4vYm94LWl0ZW0vaXRlbS1zdHlsZS9zdHlsZS9zdHlsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtTdHlsZUJsYW5rQ29tcG9uZW50fSBmcm9tIFwiLi9ib3gtaXRlbS9pdGVtLXN0eWxlL3N0eWxlLWJsYW5rL3N0eWxlLWJsYW5rLmNvbXBvbmVudFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFBsdWdpbk1hbmFnZXIge1xyXG4gIHN0YXRpYyBob3Zlckl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIHN0YXRpYyBhY3RpdmVJdGVtID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHN0YXRpYyBhY3RpdmVJdGVtczogYW55W10gPSBbXTtcclxuXHJcbiAgc3RhdGljIGNyZWF0ZUNvbXBvbmVudChib3hJdGVtOiBCb3hJdGVtQ29tcG9uZW50LCBpbmRleDogbnVtYmVyLCBzdHlsZTogYW55LCBjb25maWc6IGFueSk6IGFueSB7XHJcbiAgICBsZXQgcGx1Z2luOiBhbnkgPSBQbHVnaW5GYWN0b3J5LmdldChjb25maWcubmFtZSk7XHJcbiAgICBpZiAoIXBsdWdpbikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCd1bmRlZmluZWQgcGx1Z2luOiAnICsgY29uZmlnLm5hbWUpO1xyXG4gICAgICBwbHVnaW4gPSB7XHJcbiAgICAgICAgY29tcG9uZW50OiBQbHVnaW5Ob3RGb3VuZENvbXBvbmVudCxcclxuICAgICAgICBuYW1lOiBjb25maWcubmFtZSxcclxuICAgICAgICBjYXB0aW9uOiBjb25maWcubmFtZVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmOiBhbnkgPSBib3hJdGVtLml0ZW1Ib3N0cy5nZXQoaW5kZXgpPy52aWV3Q29udGFpbmVyUmVmO1xyXG4gICAgdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQocGx1Z2luLmNvbXBvbmVudCk7XHJcbiAgICBjb25zdCBpbnN0YW5jZTogYW55ID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG4gICAgT2JqZWN0LmFzc2lnbihpbnN0YW5jZSwgY29uZmlnLnBsdWdpbkNvbmZpZyk7XHJcbiAgICBpZiAocGx1Z2luLnR5cGUgPT09ICdmb3JtJykge1xyXG4gICAgICBpbnN0YW5jZS5tb2RlbCA9IGJveEl0ZW0uYm94Q29udGFpbmVyLm1vZGVsO1xyXG4gICAgfVxyXG4gICAgaWYgKGJveEl0ZW0uYm94Q29udGFpbmVyLnJlYWRvbmx5KSB7XHJcbiAgICAgIGluc3RhbmNlLnJlYWRvbmx5ID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGluc3RhbmNlLnBhZ2VQYXJhbXMgPSBib3hJdGVtLmJveENvbnRhaW5lci5wYXJhbXM7XHJcbiAgICBpbnN0YW5jZS50YWJWaWV3Q29udGFpbmVyUmVmID0gYm94SXRlbS5ib3hDb250YWluZXIudGFiVmlld0NvbnRhaW5lclJlZjtcclxuICAgIGlmIChib3hJdGVtLmJveENvbnRhaW5lci5lZGl0TW9kZSkge1xyXG4gICAgICBpbnN0YW5jZS5vblJlbW92ZSA9ICgpID0+IHtcclxuICAgICAgICBib3hJdGVtLmNvbmZpZy5saXN0LnNwbGljZShpbmRleCwgMSwge3R5cGU6ICdibGFuaycsIHN0eWxlOiBib3hJdGVtLmNvbmZpZy5saXN0W2luZGV4XS5zdHlsZX0pO1xyXG4gICAgICAgIGJveEl0ZW0ubG9hZCgpO1xyXG4gICAgICB9O1xyXG4gICAgICBjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5zdHlsZS5tYXJnaW4gPSAnOHB4JztcclxuICAgICAgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdhbGwnO1xyXG4gICAgICBmb3IgKGxldCBjaGlsZCBvZiBjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5jaGlsZHJlbikge1xyXG4gICAgICAgIGNoaWxkLnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSc7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jcmVhdGVIb3ZlckNvbXBvbmVudCh2aWV3Q29udGFpbmVyUmVmLCBjb21wb25lbnRSZWYsIHBsdWdpbi5jYXB0aW9uKTtcclxuICAgICAgdGhpcy5jcmVhdGVBY3RpdmVDb21wb25lbnQoYm94SXRlbSwgaW5kZXgsIGNvbXBvbmVudFJlZiwgc3R5bGUsIHtcclxuICAgICAgICBjYXB0aW9uOiBwbHVnaW4uY2FwdGlvbixcclxuICAgICAgICBjb25maWdcclxuICAgICAgfSwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29tcG9uZW50UmVmO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNyZWF0ZUhvdmVyQ29tcG9uZW50KHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT4sIGNhcHRpb246IHN0cmluZyk6IGFueSB7XHJcbiAgICBjb25zdCBob3ZlckNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFBsdWdpbkhvdmVyQ29tcG9uZW50KTtcclxuICAgIGhvdmVyQ29tcG9uZW50UmVmLmluc3RhbmNlLm5hbWUgPSBjYXB0aW9uO1xyXG4gICAgaG92ZXJDb21wb25lbnRSZWYuaW5zdGFuY2UudGFyZ2V0RWxlbWVudCA9IGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xyXG4gICAgY29uc3QgaG92ZXJFbGVtZW50ID0gaG92ZXJDb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKGhvdmVyRWxlbWVudCk7XHJcbiAgICB0aGlzLmhvdmVySXRlbXMucHVzaChjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XHJcbiAgICBjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCRldmVudDogYW55KSA9PiB7XHJcbiAgICAgIGZvciAobGV0IGhvdmVySXRlbSBvZiB0aGlzLmhvdmVySXRlbXMpIHtcclxuICAgICAgICBob3Zlckl0ZW0uY2xhc3NMaXN0LnJlbW92ZSgncGx1Z2luLWhvdmVyJyk7XHJcbiAgICAgIH1cclxuICAgICAgJGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuYWRkKCdwbHVnaW4taG92ZXInKTtcclxuICAgIH0pO1xyXG4gICAgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgkZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAkZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5yZW1vdmUoJ3BsdWdpbi1ob3ZlcicpO1xyXG4gICAgICAkZXZlbnQudGFyZ2V0LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdwbHVnaW4taG92ZXInKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGhvdmVyQ29tcG9uZW50UmVmO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNyZWF0ZUFjdGl2ZUNvbXBvbmVudChib3hJdGVtOiBCb3hJdGVtQ29tcG9uZW50LCBpbmRleDogbnVtYmVyLCBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IGFueSwgY29uZmlnOiBhbnksIHNob3dDbG9zZTogYm9vbGVhbik6IGFueSB7XHJcbiAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmOiBhbnkgPSBib3hJdGVtLml0ZW1Ib3N0cy5nZXQoaW5kZXgpPy52aWV3Q29udGFpbmVyUmVmO1xyXG4gICAgY29uc3QgYWN0aXZlQ29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoUGx1Z2luQWN0aXZlQ29tcG9uZW50KTtcclxuICAgIGFjdGl2ZUNvbXBvbmVudFJlZi5pbnN0YW5jZS5uYW1lID0gY29uZmlnLmNhcHRpb247XHJcbiAgICBhY3RpdmVDb21wb25lbnRSZWYuaW5zdGFuY2Uuc2hvd0Nsb3NlID0gc2hvd0Nsb3NlO1xyXG4gICAgYWN0aXZlQ29tcG9uZW50UmVmLmluc3RhbmNlLnRhcmdldEVsZW1lbnQgPSBjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSBhY3RpdmVDb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKGFjdGl2ZUVsZW1lbnQpO1xyXG4gICAgdGhpcy5hY3RpdmVJdGVtcy5wdXNoKGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KTtcclxuICAgIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCRldmVudDogYW55KSA9PiB7XHJcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgZm9yIChsZXQgYWN0aXZlSXRlbSBvZiB0aGlzLmFjdGl2ZUl0ZW1zKSB7XHJcbiAgICAgICAgYWN0aXZlSXRlbS5jbGFzc0xpc3QucmVtb3ZlKCdwbHVnaW4tYWN0aXZlJyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuYWN0aXZlSXRlbXMuaW5kZXhPZigkZXZlbnQudGFyZ2V0KSA8IDApIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hY3RpdmVJdGVtLm5leHQoe2JveEl0ZW0sIGluZGV4LCBzdHlsZSwgY29uZmlnOiBjb25maWcuY29uZmlnLCBjb21wb25lbnRSZWZ9KTtcclxuICAgICAgJGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuYWRkKCdwbHVnaW4tYWN0aXZlJyk7XHJcbiAgICB9KTtcclxuICAgIGFjdGl2ZUNvbXBvbmVudFJlZi5pbnN0YW5jZS5zcGxpdEl0ZW0gPSAoZGlyZWN0aW9uOiAncm93JyB8ICdjb2x1bW4nKSA9PiB7XHJcbiAgICAgIGlmIChib3hJdGVtLmNvbmZpZy5kaXJlY3Rpb24gPT09IGRpcmVjdGlvbikge1xyXG4gICAgICAgIGJveEl0ZW0uY29uZmlnLmxpc3Quc3BsaWNlKGluZGV4ICsgMSwgMCwge3R5cGU6ICdibGFuaycsIHN0eWxlOiB7fX0pO1xyXG4gICAgICAgIGJveEl0ZW0ubG9hZCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChib3hJdGVtLmNvbmZpZy5saXN0Lmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgYm94SXRlbS5jb25maWcuZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xyXG4gICAgICAgICAgYm94SXRlbS5jb25maWcubGlzdC5wdXNoKHt0eXBlOiAnYmxhbmsnLCBzdHlsZToge319KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGJveEl0ZW0uY29uZmlnLmxpc3RbaW5kZXhdLnR5cGUgPT09ICdpdGVtJyAmJiBib3hJdGVtLmNvbmZpZy5saXN0W2luZGV4XS5jb25maWcuZGlyZWN0aW9uID09PSBkaXJlY3Rpb24pIHtcclxuICAgICAgICAgICAgYm94SXRlbS5jb25maWcubGlzdFtpbmRleF0uY29uZmlnLmxpc3QucHVzaCh7dHlwZTogJ2JsYW5rJywgc3R5bGU6IHt9fSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBib3hJdGVtLmNvbmZpZy5saXN0LnNwbGljZShpbmRleCwgMSwge1xyXG4gICAgICAgICAgICAgIHR5cGU6ICdpdGVtJyxcclxuICAgICAgICAgICAgICBzdHlsZTogYm94SXRlbS5jb25maWcubGlzdFtpbmRleF0uc3R5bGUsXHJcbiAgICAgICAgICAgICAgY29uZmlnOiB7XHJcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb24sXHJcbiAgICAgICAgICAgICAgICBsaXN0OiBbYm94SXRlbS5jb25maWcubGlzdFtpbmRleF0sIHt0eXBlOiAnYmxhbmsnLCBzdHlsZToge319XVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJveEl0ZW0ubG9hZCgpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgYWN0aXZlQ29tcG9uZW50UmVmLmluc3RhbmNlLml0ZW1SZW1vdmUuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5hY3RpdmVJdGVtLm5leHQoJycpO1xyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XHJcbiAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5vblJlbW92ZSgpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYWN0aXZlQ29tcG9uZW50UmVmO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHJlc2V0SXRlbUNvbmZpZyhpdGVtQ29uZmlnQ29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBpdGVtOiBhbnksIGZpZWxkVHJlZT86IGFueSkge1xyXG4gICAgaWYgKCFpdGVtKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGl0ZW1Db25maWdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgIGNvbnN0IHBsdWdpbiA9IFBsdWdpbkZhY3RvcnkuZ2V0KGl0ZW0uY29uZmlnPy5uYW1lKTtcclxuICAgIGNvbnN0IHBsdWdpblR5cGUgPSBwbHVnaW4/LnR5cGU7XHJcbiAgICBjb25zdCBwbHVnaW5Db25maWcgPSBQbHVnaW5GYWN0b3J5LmdldENvbmZpZyhpdGVtLmNvbmZpZz8ubmFtZSk7XHJcbiAgICBpZiAocGx1Z2luQ29uZmlnKSB7XHJcbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGl0ZW1Db25maWdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KHBsdWdpbkNvbmZpZy5jb21wb25lbnQpO1xyXG4gICAgICBjb25zdCBpbnN0YW5jZTogYW55ID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG4gICAgICBpbnN0YW5jZS5jb25maWcgPSBpdGVtLmNvbmZpZy5wbHVnaW5Db25maWc7XHJcbiAgICAgIGlmIChwbHVnaW5UeXBlID09PSAnZm9ybScpIHtcclxuICAgICAgICBpbnN0YW5jZS5maWVsZFRyZWUgPSBmaWVsZFRyZWU7XHJcbiAgICAgIH1cclxuICAgICAgaW5zdGFuY2UuY29uZmlnQ2hhbmdlLnN1YnNjcmliZSgocmVsb2FkPzogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChyZWxvYWQpIHtcclxuICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IFBsdWdpbk1hbmFnZXIuY3JlYXRlQ29tcG9uZW50KGl0ZW0uYm94SXRlbSwgaXRlbS5pbmRleCwgaXRlbS5zdHlsZSwgaXRlbS5jb25maWcpO1xyXG4gICAgICAgICAgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihpdGVtLmNvbXBvbmVudFJlZi5pbnN0YW5jZSwgaXRlbS5jb25maWcucGx1Z2luQ29uZmlnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbUNvbmZpZ0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoQ29uZmlnQmxhbmtDb21wb25lbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIHJlc2V0SXRlbVN0eWxlKGl0ZW1TdHlsZUNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgaXRlbTogYW55KSB7XHJcbiAgICBpdGVtU3R5bGVDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgIGlmIChpdGVtKSB7XHJcbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGl0ZW1TdHlsZUNvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoU3R5bGVDb21wb25lbnQpO1xyXG4gICAgICBjb25zdCBpbnN0YW5jZTogYW55ID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG4gICAgICBpbnN0YW5jZS5zdHlsZSA9IGl0ZW0uc3R5bGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpdGVtU3R5bGVDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFN0eWxlQmxhbmtDb21wb25lbnQpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGx1Z2luTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL2JveC1jb250YWluZXIvUGx1Z2luTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN0RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUNoRyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDM0UsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFFNUYsTUFBTSxPQUFPLGFBQWE7SUFLeEIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUF5QixFQUFFLEtBQWEsRUFBRSxLQUFVLEVBQUUsTUFBVztRQUN0RixJQUFJLE1BQU0sR0FBUSxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEQsTUFBTSxHQUFHO2dCQUNQLFNBQVMsRUFBRSx1QkFBdUI7Z0JBQ2xDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDakIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJO2FBQ3JCLENBQUE7U0FDRjtRQUNELE1BQU0sZ0JBQWdCLEdBQVEsT0FBTyxDQUFDLFNB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b250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1BsdWdpbkZhY3Rvcnl9IGZyb20gJ2NvYXN0LXBsdWdpbi1yZWdpc3Rlcic7XHJcbmltcG9ydCB7UGx1Z2luQWN0aXZlQ29tcG9uZW50fSBmcm9tICcuL3BsdWdpbi1hY3RpdmUvcGx1Z2luLWFjdGl2ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1BsdWdpbkhvdmVyQ29tcG9uZW50fSBmcm9tICcuL3BsdWdpbi1ob3Zlci9wbHVnaW4taG92ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtCb3hJdGVtQ29tcG9uZW50fSBmcm9tICcuL2JveC1pdGVtL2JveC1pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UGx1Z2luTm90Rm91bmRDb21wb25lbnR9IGZyb20gXCIuL3BsdWdpbi1ub3QtZm91bmQvcGx1Z2luLW5vdC1mb3VuZC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtDb25maWdCbGFua0NvbXBvbmVudH0gZnJvbSBcIi4vYm94LWl0ZW0vaXRlbS1jb25maWcvY29uZmlnLWJsYW5rL2NvbmZpZy1ibGFuay5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtTdHlsZUNvbXBvbmVudH0gZnJvbSBcIi4vYm94LWl0ZW0vaXRlbS1zdHlsZS9zdHlsZS9zdHlsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtTdHlsZUJsYW5rQ29tcG9uZW50fSBmcm9tIFwiLi9ib3gtaXRlbS9pdGVtLXN0eWxlL3N0eWxlLWJsYW5rL3N0eWxlLWJsYW5rLmNvbXBvbmVudFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFBsdWdpbk1hbmFnZXIge1xyXG4gIHN0YXRpYyBob3Zlckl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIHN0YXRpYyBhY3RpdmVJdGVtID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHN0YXRpYyBhY3RpdmVJdGVtczogYW55W10gPSBbXTtcclxuXHJcbiAgc3RhdGljIGNyZWF0ZUNvbXBvbmVudChib3hJdGVtOiBCb3hJdGVtQ29tcG9uZW50LCBpbmRleDogbnVtYmVyLCBzdHlsZTogYW55LCBjb25maWc6IGFueSk6IGFueSB7XHJcbiAgICBsZXQgcGx1Z2luOiBhbnkgPSBQbHVnaW5GYWN0b3J5LmdldChjb25maWcubmFtZSk7XHJcbiAgICBpZiAoIXBsdWdpbikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCd1bmRlZmluZWQgcGx1Z2luOiAnICsgY29uZmlnLm5hbWUpO1xyXG4gICAgICBwbHVnaW4gPSB7XHJcbiAgICAgICAgY29tcG9uZW50OiBQbHVnaW5Ob3RGb3VuZENvbXBvbmVudCxcclxuICAgICAgICBuYW1lOiBjb25maWcubmFtZSxcclxuICAgICAgICBjYXB0aW9uOiBjb25maWcubmFtZVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmOiBhbnkgPSBib3hJdGVtLml0ZW1Ib3N0cy5nZXQoaW5kZXgpPy52aWV3Q29udGFpbmVyUmVmO1xyXG4gICAgdmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQocGx1Z2luLmNvbXBvbmVudCk7XHJcbiAgICBjb25zdCBpbnN0YW5jZTogYW55ID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xyXG4gICAgT2JqZWN0LmFzc2lnbihpbnN0YW5jZSwgY29uZmlnLnBsdWdpbkNvbmZpZyk7XHJcbiAgICBpZiAocGx1Z2luLnR5cGUgPT09ICdmb3JtJykge1xyXG4gICAgICBpbnN0YW5jZS5tb2RlbCA9IGJveEl0ZW0uYm94Q29udGFpbmVyLm1vZGVsO1xyXG4gICAgfVxyXG4gICAgaWYgKGJveEl0ZW0uYm94Q29udGFpbmVyLnJlYWRvbmx5KSB7XHJcbiAgICAgIGluc3RhbmNlLnJlYWRvbmx5ID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGluc3RhbmNlLnBhcmFtcyA9IGJveEl0ZW0uYm94Q29udGFpbmVyLnBhcmFtcztcclxuICAgIGluc3RhbmNlLnRhYlZpZXdDb250YWluZXJSZWYgPSBib3hJdGVtLmJveENvbnRhaW5lci50YWJWaWV3Q29udGFpbmVyUmVmO1xyXG4gICAgaWYgKGJveEl0ZW0uYm94Q29udGFpbmVyLmVkaXRNb2RlKSB7XHJcbiAgICAgIGluc3RhbmNlLm9uUmVtb3ZlID0gKCkgPT4ge1xyXG4gICAgICAgIGJveEl0ZW0uY29uZmlnLmxpc3Quc3BsaWNlKGluZGV4LCAxLCB7dHlwZTogJ2JsYW5rJywgc3R5bGU6IGJveEl0ZW0uY29uZmlnLmxpc3RbaW5kZXhdLnN0eWxlfSk7XHJcbiAgICAgICAgYm94SXRlbS5sb2FkKCk7XHJcbiAgICAgIH07XHJcbiAgICAgIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LnN0eWxlLm1hcmdpbiA9ICc4cHgnO1xyXG4gICAgICBjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ2FsbCc7XHJcbiAgICAgIGZvciAobGV0IGNoaWxkIG9mIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuKSB7XHJcbiAgICAgICAgY2hpbGQuc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNyZWF0ZUhvdmVyQ29tcG9uZW50KHZpZXdDb250YWluZXJSZWYsIGNvbXBvbmVudFJlZiwgcGx1Z2luLmNhcHRpb24pO1xyXG4gICAgICB0aGlzLmNyZWF0ZUFjdGl2ZUNvbXBvbmVudChib3hJdGVtLCBpbmRleCwgY29tcG9uZW50UmVmLCBzdHlsZSwge1xyXG4gICAgICAgIGNhcHRpb246IHBsdWdpbi5jYXB0aW9uLFxyXG4gICAgICAgIGNvbmZpZ1xyXG4gICAgICB9LCB0cnVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBjb21wb25lbnRSZWY7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY3JlYXRlSG92ZXJDb21wb25lbnQodmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PiwgY2FwdGlvbjogc3RyaW5nKTogYW55IHtcclxuICAgIGNvbnN0IGhvdmVyQ29tcG9uZW50UmVmID0gdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoUGx1Z2luSG92ZXJDb21wb25lbnQpO1xyXG4gICAgaG92ZXJDb21wb25lbnRSZWYuaW5zdGFuY2UubmFtZSA9IGNhcHRpb247XHJcbiAgICBob3ZlckNvbXBvbmVudFJlZi5pbnN0YW5jZS50YXJnZXRFbGVtZW50ID0gY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBjb25zdCBob3ZlckVsZW1lbnQgPSBob3ZlckNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xyXG4gICAgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoaG92ZXJFbGVtZW50KTtcclxuICAgIHRoaXMuaG92ZXJJdGVtcy5wdXNoKGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KTtcclxuICAgIGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoJGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgZm9yIChsZXQgaG92ZXJJdGVtIG9mIHRoaXMuaG92ZXJJdGVtcykge1xyXG4gICAgICAgIGhvdmVySXRlbS5jbGFzc0xpc3QucmVtb3ZlKCdwbHVnaW4taG92ZXInKTtcclxuICAgICAgfVxyXG4gICAgICAkZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ3BsdWdpbi1ob3ZlcicpO1xyXG4gICAgfSk7XHJcbiAgICBjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgKCRldmVudDogYW55KSA9PiB7XHJcbiAgICAgICRldmVudC50YXJnZXQuY2xhc3NMaXN0LnJlbW92ZSgncGx1Z2luLWhvdmVyJyk7XHJcbiAgICAgICRldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3BsdWdpbi1ob3ZlcicpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gaG92ZXJDb21wb25lbnRSZWY7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY3JlYXRlQWN0aXZlQ29tcG9uZW50KGJveEl0ZW06IEJveEl0ZW1Db21wb25lbnQsIGluZGV4OiBudW1iZXIsIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogYW55LCBjb25maWc6IGFueSwgc2hvd0Nsb3NlOiBib29sZWFuKTogYW55IHtcclxuICAgIGNvbnN0IHZpZXdDb250YWluZXJSZWY6IGFueSA9IGJveEl0ZW0uaXRlbUhvc3RzLmdldChpbmRleCk/LnZpZXdDb250YWluZXJSZWY7XHJcbiAgICBjb25zdCBhY3RpdmVDb21wb25lbnRSZWYgPSB2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChQbHVnaW5BY3RpdmVDb21wb25lbnQpO1xyXG4gICAgYWN0aXZlQ29tcG9uZW50UmVmLmluc3RhbmNlLm5hbWUgPSBjb25maWcuY2FwdGlvbjtcclxuICAgIGFjdGl2ZUNvbXBvbmVudFJlZi5pbnN0YW5jZS5zaG93Q2xvc2UgPSBzaG93Q2xvc2U7XHJcbiAgICBhY3RpdmVDb21wb25lbnRSZWYuaW5zdGFuY2UudGFyZ2V0RWxlbWVudCA9IGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xyXG4gICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IGFjdGl2ZUNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xyXG4gICAgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoYWN0aXZlRWxlbWVudCk7XHJcbiAgICB0aGlzLmFjdGl2ZUl0ZW1zLnB1c2goY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoJGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICBmb3IgKGxldCBhY3RpdmVJdGVtIG9mIHRoaXMuYWN0aXZlSXRlbXMpIHtcclxuICAgICAgICBhY3RpdmVJdGVtLmNsYXNzTGlzdC5yZW1vdmUoJ3BsdWdpbi1hY3RpdmUnKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5hY3RpdmVJdGVtcy5pbmRleE9mKCRldmVudC50YXJnZXQpIDwgMCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFjdGl2ZUl0ZW0ubmV4dCh7Ym94SXRlbSwgaW5kZXgsIHN0eWxlLCBjb25maWc6IGNvbmZpZy5jb25maWcsIGNvbXBvbmVudFJlZn0pO1xyXG4gICAgICAkZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ3BsdWdpbi1hY3RpdmUnKTtcclxuICAgIH0pO1xyXG4gICAgYWN0aXZlQ29tcG9uZW50UmVmLmluc3RhbmNlLnNwbGl0SXRlbSA9IChkaXJlY3Rpb246ICdyb3cnIHwgJ2NvbHVtbicpID0+IHtcclxuICAgICAgaWYgKGJveEl0ZW0uY29uZmlnLmRpcmVjdGlvbiA9PT0gZGlyZWN0aW9uKSB7XHJcbiAgICAgICAgYm94SXRlbS5jb25maWcubGlzdC5zcGxpY2UoaW5kZXggKyAxLCAwLCB7dHlwZTogJ2JsYW5rJywgc3R5bGU6IHt9fSk7XHJcbiAgICAgICAgYm94SXRlbS5sb2FkKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGJveEl0ZW0uY29uZmlnLmxpc3QubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICBib3hJdGVtLmNvbmZpZy5kaXJlY3Rpb24gPSBkaXJlY3Rpb247XHJcbiAgICAgICAgICBib3hJdGVtLmNvbmZpZy5saXN0LnB1c2goe3R5cGU6ICdibGFuaycsIHN0eWxlOiB7fX0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoYm94SXRlbS5jb25maWcubGlzdFtpbmRleF0udHlwZSA9PT0gJ2l0ZW0nICYmIGJveEl0ZW0uY29uZmlnLmxpc3RbaW5kZXhdLmNvbmZpZy5kaXJlY3Rpb24gPT09IGRpcmVjdGlvbikge1xyXG4gICAgICAgICAgICBib3hJdGVtLmNvbmZpZy5saXN0W2luZGV4XS5jb25maWcubGlzdC5wdXNoKHt0eXBlOiAnYmxhbmsnLCBzdHlsZToge319KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGJveEl0ZW0uY29uZmlnLmxpc3Quc3BsaWNlKGluZGV4LCAxLCB7XHJcbiAgICAgICAgICAgICAgdHlwZTogJ2l0ZW0nLFxyXG4gICAgICAgICAgICAgIHN0eWxlOiBib3hJdGVtLmNvbmZpZy5saXN0W2luZGV4XS5zdHlsZSxcclxuICAgICAgICAgICAgICBjb25maWc6IHtcclxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbixcclxuICAgICAgICAgICAgICAgIGxpc3Q6IFtib3hJdGVtLmNvbmZpZy5saXN0W2luZGV4XSwge3R5cGU6ICdibGFuaycsIHN0eWxlOiB7fX1dXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgYm94SXRlbS5sb2FkKCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICBhY3RpdmVDb21wb25lbnRSZWYuaW5zdGFuY2UuaXRlbVJlbW92ZS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFjdGl2ZUl0ZW0ubmV4dCgnJyk7XHJcbiAgICAgIHZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLm9uUmVtb3ZlKCk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBhY3RpdmVDb21wb25lbnRSZWY7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcmVzZXRJdGVtQ29uZmlnKGl0ZW1Db25maWdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIGl0ZW06IGFueSwgZmllbGRUcmVlPzogYW55KSB7XHJcbiAgICBpZiAoIWl0ZW0pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaXRlbUNvbmZpZ0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgY29uc3QgcGx1Z2luID0gUGx1Z2luRmFjdG9yeS5nZXQoaXRlbS5jb25maWc/Lm5hbWUpO1xyXG4gICAgY29uc3QgcGx1Z2luVHlwZSA9IHBsdWdpbj8udHlwZTtcclxuICAgIGNvbnN0IHBsdWdpbkNvbmZpZyA9IFBsdWdpbkZhY3RvcnkuZ2V0Q29uZmlnKGl0ZW0uY29uZmlnPy5uYW1lKTtcclxuICAgIGlmIChwbHVnaW5Db25maWcpIHtcclxuICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gaXRlbUNvbmZpZ0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQocGx1Z2luQ29uZmlnLmNvbXBvbmVudCk7XHJcbiAgICAgIGNvbnN0IGluc3RhbmNlOiBhbnkgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICAgIGluc3RhbmNlLmNvbmZpZyA9IGl0ZW0uY29uZmlnLnBsdWdpbkNvbmZpZztcclxuICAgICAgaWYgKHBsdWdpblR5cGUgPT09ICdmb3JtJykge1xyXG4gICAgICAgIGluc3RhbmNlLmZpZWxkVHJlZSA9IGZpZWxkVHJlZTtcclxuICAgICAgfVxyXG4gICAgICBpbnN0YW5jZS5jb25maWdDaGFuZ2Uuc3Vic2NyaWJlKChyZWxvYWQ/OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlbG9hZCkge1xyXG4gICAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gUGx1Z2luTWFuYWdlci5jcmVhdGVDb21wb25lbnQoaXRlbS5ib3hJdGVtLCBpdGVtLmluZGV4LCBpdGVtLnN0eWxlLCBpdGVtLmNvbmZpZyk7XHJcbiAgICAgICAgICBjb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5jbGljaygpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBPYmplY3QuYXNzaWduKGl0ZW0uY29tcG9uZW50UmVmLmluc3RhbmNlLCBpdGVtLmNvbmZpZy5wbHVnaW5Db25maWcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpdGVtQ29uZmlnQ29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChDb25maWdCbGFua0NvbXBvbmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcmVzZXRJdGVtU3R5bGUoaXRlbVN0eWxlQ29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBpdGVtOiBhbnkpIHtcclxuICAgIGl0ZW1TdHlsZUNvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgaWYgKGl0ZW0pIHtcclxuICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gaXRlbVN0eWxlQ29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChTdHlsZUNvbXBvbmVudCk7XHJcbiAgICAgIGNvbnN0IGluc3RhbmNlOiBhbnkgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICAgIGluc3RhbmNlLnN0eWxlID0gaXRlbS5zdHlsZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGl0ZW1TdHlsZUNvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoU3R5bGVCbGFua0NvbXBvbmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -45,7 +45,7 @@ export class BoxContainerComponent {
45
45
  }
46
46
  }
47
47
  BoxContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BoxContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
48
- BoxContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: BoxContainerComponent, selector: "rs-box-container", inputs: { config: "config", model: "model", readonly: "readonly" }, viewQueries: [{ propertyName: "boxContainerContent", first: true, predicate: ["boxContainerContent"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container #boxContainerContent></ng-container>\n", styles: [":host{flex:1;position:relative;display:flex;flex-flow:row nowrap}\n"] });
48
+ BoxContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: BoxContainerComponent, selector: "rs-box-container", inputs: { config: "config", model: "model", params: "params", readonly: "readonly" }, viewQueries: [{ propertyName: "boxContainerContent", first: true, predicate: ["boxContainerContent"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container #boxContainerContent></ng-container>\n", styles: [":host{flex:1;position:relative;display:flex;flex-flow:row nowrap}\n"] });
49
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BoxContainerComponent, decorators: [{
50
50
  type: Component,
51
51
  args: [{ selector: 'rs-box-container', template: "<ng-container #boxContainerContent></ng-container>\n", styles: [":host{flex:1;position:relative;display:flex;flex-flow:row nowrap}\n"] }]
@@ -53,10 +53,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
53
53
  type: Input
54
54
  }], model: [{
55
55
  type: Input
56
+ }], params: [{
57
+ type: Input
56
58
  }], readonly: [{
57
59
  type: Input
58
60
  }], boxContainerContent: [{
59
61
  type: ViewChild,
60
62
  args: ['boxContainerContent', { static: true, read: ViewContainerRef }]
61
63
  }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9ib3gtY29udGFpbmVyL2JveC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvYm94LWNvbnRhaW5lci9ib3gtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUtMLFNBQVMsRUFDVCxnQkFBZ0IsRUFDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHVCQUF1QixDQUFDOztBQU9uRCxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBTUUsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixXQUFNLEdBQVE7WUFDWixTQUFTLEVBQUUsS0FBSztZQUNoQixJQUFJLEVBQUUsQ0FBQyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO1NBQ25DLENBQUM7UUFLRixhQUFRLEdBQVksS0FBSyxDQUFDO1FBR2xCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQW1DM0M7SUFqQ0MsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBRSxHQUFHLEVBQUU7WUFDbEUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQyxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN2RixNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLENBQUM7UUFDOUMsUUFBUSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDN0IsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixtQkFBbUIsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1NBQ2pFO1FBQ0QsUUFBUSxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUM3QyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDdEM7aUJBQU07Z0JBQ0wsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2FBQ25DO1lBQ0QsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7a0hBaERVLHFCQUFxQjtzR0FBckIscUJBQXFCLG1PQWF1QixnQkFBZ0IsZ0VDL0J6RSxzREFDQTsyRkRpQmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQjs4QkFPNUIsTUFBTTtzQkFETCxLQUFLO2dCQU1OLEtBQUs7c0JBREosS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBR29FLG1CQUFtQjtzQkFBNUYsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCb3hJdGVtQ29tcG9uZW50fSBmcm9tICcuL2JveC1pdGVtL2JveC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQge0NoYW5nZUZpbHRlcn0gZnJvbSBcIi4uL3V0aWwvY2hhbmdlLWZpbHRlclwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdycy1ib3gtY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JveC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ib3gtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQm94Q29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIGVkaXRNb2RlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpXG4gIGNvbmZpZzogYW55ID0ge1xuICAgIGRpcmVjdGlvbjogJ3JvdycsXG4gICAgbGlzdDogW3t0eXBlOiAnYmxhbmsnLCBzdHlsZToge319XVxuICB9O1xuICBASW5wdXQoKVxuICBtb2RlbD86IGFueTtcbiAgcGFyYW1zPzogYW55O1xuICBASW5wdXQoKVxuICByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuICB0YWJWaWV3Q29udGFpbmVyUmVmPzogVmlld0NvbnRhaW5lclJlZjtcbiAgQFZpZXdDaGlsZCgnYm94Q29udGFpbmVyQ29udGVudCcsIHtzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWZ9KSBib3hDb250YWluZXJDb250ZW50ITogVmlld0NvbnRhaW5lclJlZjtcbiAgcHJpdmF0ZSBjaGFuZ2VGaWx0ZXIgPSBuZXcgQ2hhbmdlRmlsdGVyKCk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5sb2FkKCk7XG4gICAgdGhpcy5jaGFuZ2VGaWx0ZXIuYW55Tm90Rmlyc3QoWydjb25maWcnLCAnbW9kZWwnLCAncmVhZG9ubHknXSwgKCkgPT4ge1xuICAgICAgdGhpcy5sb2FkKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VGaWx0ZXIuZG9GaWx0ZXIoY2hhbmdlcyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmNoYW5nZUZpbHRlci5kaXNwb3NlKCk7XG4gIH1cblxuICBsb2FkKCkge1xuICAgIHRoaXMuYm94Q29udGFpbmVyQ29udGVudC5jbGVhcigpO1xuICAgIGNvbnN0IGJveEl0ZW1Db21wb25lbnRSZWYgPSB0aGlzLmJveENvbnRhaW5lckNvbnRlbnQuY3JlYXRlQ29tcG9uZW50KEJveEl0ZW1Db21wb25lbnQpO1xuICAgIGNvbnN0IGluc3RhbmNlID0gYm94SXRlbUNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICBpbnN0YW5jZS5ib3hDb250YWluZXIgPSB0aGlzO1xuICAgIGluc3RhbmNlLmNvbmZpZyA9IHRoaXMuY29uZmlnO1xuICAgIGlmICh0aGlzLmVkaXRNb2RlKSB7XG4gICAgICBib3hJdGVtQ29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc3R5bGUubWFyZ2luID0gJzhweCc7XG4gICAgfVxuICAgIGluc3RhbmNlLmxlYXZlT25lSXRlbT8uc3Vic2NyaWJlKChpdGVtOiBhbnkpID0+IHtcbiAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdpdGVtJykge1xuICAgICAgICBPYmplY3QuYXNzaWduKGluc3RhbmNlLmNvbmZpZywgaXRlbSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbnN0YW5jZS5jb25maWcuZGlyZWN0aW9uID0gJ3Jvdyc7XG4gICAgICB9XG4gICAgICBpbnN0YW5jZS5sb2FkKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgI2JveENvbnRhaW5lckNvbnRlbnQ+PC9uZy1jb250YWluZXI+XG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm94LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9ib3gtY29udGFpbmVyL2JveC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvYm94LWNvbnRhaW5lci9ib3gtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUtMLFNBQVMsRUFDVCxnQkFBZ0IsRUFDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHVCQUF1QixDQUFDOztBQU9uRCxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBTUUsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixXQUFNLEdBQVE7WUFDWixTQUFTLEVBQUUsS0FBSztZQUNoQixJQUFJLEVBQUUsQ0FBQyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO1NBQ25DLENBQUM7UUFNRixhQUFRLEdBQVksS0FBSyxDQUFDO1FBR2xCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQW1DM0M7SUFqQ0MsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBRSxHQUFHLEVBQUU7WUFDbEUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQyxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN2RixNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLENBQUM7UUFDOUMsUUFBUSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDN0IsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixtQkFBbUIsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1NBQ2pFO1FBQ0QsUUFBUSxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUM3QyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDdEM7aUJBQU07Z0JBQ0wsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2FBQ25DO1lBQ0QsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7a0hBakRVLHFCQUFxQjtzR0FBckIscUJBQXFCLHFQQWN1QixnQkFBZ0IsZ0VDaEN6RSxzREFDQTsyRkRpQmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQjs4QkFPNUIsTUFBTTtzQkFETCxLQUFLO2dCQU1OLEtBQUs7c0JBREosS0FBSztnQkFHTixNQUFNO3NCQURMLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdvRSxtQkFBbUI7c0JBQTVGLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Qm94SXRlbUNvbXBvbmVudH0gZnJvbSAnLi9ib3gtaXRlbS9ib3gtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHtDaGFuZ2VGaWx0ZXJ9IGZyb20gXCIuLi91dGlsL2NoYW5nZS1maWx0ZXJcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnMtYm94LWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ib3gtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYm94LWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJveENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBlZGl0TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBjb25maWc6IGFueSA9IHtcbiAgICBkaXJlY3Rpb246ICdyb3cnLFxuICAgIGxpc3Q6IFt7dHlwZTogJ2JsYW5rJywgc3R5bGU6IHt9fV1cbiAgfTtcbiAgQElucHV0KClcbiAgbW9kZWw/OiBhbnk7XG4gIEBJbnB1dCgpXG4gIHBhcmFtcz86IGFueTtcbiAgQElucHV0KClcbiAgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdGFiVmlld0NvbnRhaW5lclJlZj86IFZpZXdDb250YWluZXJSZWY7XG4gIEBWaWV3Q2hpbGQoJ2JveENvbnRhaW5lckNvbnRlbnQnLCB7c3RhdGljOiB0cnVlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmfSkgYm94Q29udGFpbmVyQ29udGVudCE6IFZpZXdDb250YWluZXJSZWY7XG4gIHByaXZhdGUgY2hhbmdlRmlsdGVyID0gbmV3IENoYW5nZUZpbHRlcigpO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubG9hZCgpO1xuICAgIHRoaXMuY2hhbmdlRmlsdGVyLmFueU5vdEZpcnN0KFsnY29uZmlnJywgJ21vZGVsJywgJ3JlYWRvbmx5J10sICgpID0+IHtcbiAgICAgIHRoaXMubG9hZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlRmlsdGVyLmRvRmlsdGVyKGNoYW5nZXMpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5jaGFuZ2VGaWx0ZXIuZGlzcG9zZSgpO1xuICB9XG5cbiAgbG9hZCgpIHtcbiAgICB0aGlzLmJveENvbnRhaW5lckNvbnRlbnQuY2xlYXIoKTtcbiAgICBjb25zdCBib3hJdGVtQ29tcG9uZW50UmVmID0gdGhpcy5ib3hDb250YWluZXJDb250ZW50LmNyZWF0ZUNvbXBvbmVudChCb3hJdGVtQ29tcG9uZW50KTtcbiAgICBjb25zdCBpbnN0YW5jZSA9IGJveEl0ZW1Db21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgaW5zdGFuY2UuYm94Q29udGFpbmVyID0gdGhpcztcbiAgICBpbnN0YW5jZS5jb25maWcgPSB0aGlzLmNvbmZpZztcbiAgICBpZiAodGhpcy5lZGl0TW9kZSkge1xuICAgICAgYm94SXRlbUNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LnN0eWxlLm1hcmdpbiA9ICc4cHgnO1xuICAgIH1cbiAgICBpbnN0YW5jZS5sZWF2ZU9uZUl0ZW0/LnN1YnNjcmliZSgoaXRlbTogYW55KSA9PiB7XG4gICAgICBpZiAoaXRlbS50eXBlID09PSAnaXRlbScpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihpbnN0YW5jZS5jb25maWcsIGl0ZW0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5zdGFuY2UuY29uZmlnLmRpcmVjdGlvbiA9ICdyb3cnO1xuICAgICAgfVxuICAgICAgaW5zdGFuY2UubG9hZCgpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICNib3hDb250YWluZXJDb250ZW50PjwvbmctY29udGFpbmVyPlxuIl19
@@ -0,0 +1,65 @@
1
+ import { Component, ViewChild } from '@angular/core';
2
+ import BpmnModeler from 'camunda-bpmn-js/lib/camunda-platform/Modeler';
3
+ import customTranslateModule from './custom/translate';
4
+ import customUserTaskModule from './custom/user-task';
5
+ import customHideOtherModule from './custom/hide-other';
6
+ import customPropertiesPanelModule from './custom/config';
7
+ import coastModdleDescriptor from './custom/config/descriptors/coast.json';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/common";
10
+ import * as i2 from "../code-editor/code-editor.component";
11
+ import * as i3 from "devextreme-angular/ui/button";
12
+ export class CamundaBpmnEditorComponent {
13
+ constructor() {
14
+ this.isShowXml = false;
15
+ }
16
+ ngAfterViewInit() {
17
+ this.modeler = new BpmnModeler({
18
+ container: this.container?.nativeElement,
19
+ propertiesPanel: {
20
+ parent: this.config?.nativeElement,
21
+ },
22
+ keyboard: {
23
+ bindTo: document,
24
+ },
25
+ additionalModules: [
26
+ customTranslateModule,
27
+ customUserTaskModule,
28
+ customHideOtherModule,
29
+ customPropertiesPanelModule
30
+ ],
31
+ moddleExtensions: {
32
+ coast: coastModdleDescriptor
33
+ }
34
+ });
35
+ const logo = this.modeler._container.querySelector('.bjs-powered-by');
36
+ if (logo) {
37
+ this.modeler._container.removeChild(logo);
38
+ }
39
+ this.canvas = this.modeler.get('canvas');
40
+ this.modeler.createDiagram().then(() => {
41
+ this.canvas.zoom('fit-viewport');
42
+ });
43
+ }
44
+ showXml() {
45
+ if (!this.isShowXml) {
46
+ this.modeler.saveXML({ format: true }).then((response) => {
47
+ this.xml = response.xml;
48
+ });
49
+ }
50
+ this.isShowXml = !this.isShowXml;
51
+ }
52
+ }
53
+ CamundaBpmnEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CamundaBpmnEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
54
+ CamundaBpmnEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: CamundaBpmnEditorComponent, selector: "rs-camunda-bpmn-editor", viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "config", first: true, predicate: ["config"], descendants: true }], ngImport: i0, template: "<div class=\"main\">\n <div class=\"container\" #container></div>\n <div class=\"config\" #config></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, 1040)}: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: i2.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"] }] });
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CamundaBpmnEditorComponent, decorators: [{
56
+ type: Component,
57
+ args: [{ selector: 'rs-camunda-bpmn-editor', template: "<div class=\"main\">\n <div class=\"container\" #container></div>\n <div class=\"config\" #config></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, 1040)}:host .main .xml-viewer rs-code-editor{flex:1}:host .footer{flex:0 0 24px;border:1px solid var(--coast-border-color, #dddddd)}\n"] }]
58
+ }], propDecorators: { container: [{
59
+ type: ViewChild,
60
+ args: ['container']
61
+ }], config: [{
62
+ type: ViewChild,
63
+ args: ['config']
64
+ }] } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtdW5kYS1icG1uLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9jYW11bmRhLWJwbW4tZWRpdG9yL2NhbXVuZGEtYnBtbi1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvY2FtdW5kYS1icG1uLWVkaXRvci9jYW11bmRhLWJwbW4tZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sV0FBVyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3ZFLE9BQU8scUJBQXFCLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxvQkFBb0IsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLHFCQUFxQixNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sMkJBQTJCLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxxQkFBcUIsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7QUFPM0UsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQVlFLGNBQVMsR0FBRyxLQUFLLENBQUM7S0F1Q25CO0lBckNDLGVBQWU7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDO1lBQzdCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWE7WUFDeEMsZUFBZSxFQUFFO2dCQUNmLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWE7YUFDbkM7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLFFBQVE7YUFDakI7WUFDRCxpQkFBaUIsRUFBRTtnQkFDakIscUJBQXFCO2dCQUNyQixvQkFBb0I7Z0JBQ3BCLHFCQUFxQjtnQkFDckIsMkJBQTJCO2FBQzVCO1lBQ0QsZ0JBQWdCLEVBQUU7Z0JBQ2hCLEtBQUssRUFBRSxxQkFBcUI7YUFDN0I7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN0RSxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtTQUMxQztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUMxRCxJQUFJLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ25DLENBQUM7O3VIQTdDVSwwQkFBMEI7MkdBQTFCLDBCQUEwQix5UENidkMsK2ZBV0E7MkZERWEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHdCQUF3Qjs4QkFLVixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ0QsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgQnBtbk1vZGVsZXIgZnJvbSAnY2FtdW5kYS1icG1uLWpzL2xpYi9jYW11bmRhLXBsYXRmb3JtL01vZGVsZXInO1xuaW1wb3J0IGN1c3RvbVRyYW5zbGF0ZU1vZHVsZSBmcm9tICcuL2N1c3RvbS90cmFuc2xhdGUnO1xuaW1wb3J0IGN1c3RvbVVzZXJUYXNrTW9kdWxlIGZyb20gJy4vY3VzdG9tL3VzZXItdGFzayc7XG5pbXBvcnQgY3VzdG9tSGlkZU90aGVyTW9kdWxlIGZyb20gJy4vY3VzdG9tL2hpZGUtb3RoZXInO1xuaW1wb3J0IGN1c3RvbVByb3BlcnRpZXNQYW5lbE1vZHVsZSBmcm9tICcuL2N1c3RvbS9jb25maWcnO1xuaW1wb3J0IGNvYXN0TW9kZGxlRGVzY3JpcHRvciBmcm9tICcuL2N1c3RvbS9jb25maWcvZGVzY3JpcHRvcnMvY29hc3QuanNvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JzLWNhbXVuZGEtYnBtbi1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FtdW5kYS1icG1uLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhbXVuZGEtYnBtbi1lZGl0b3IuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDYW11bmRhQnBtbkVkaXRvckNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lcj86IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2NvbmZpZycpIGNvbmZpZz86IEVsZW1lbnRSZWY7XG4gIG1vZGVsZXI6IGFueTtcbiAgbWluaW1hcDogYW55O1xuICBjYW52YXM6IGFueTtcbiAgeG1sOiBhbnk7XG4gIGlzU2hvd1htbCA9IGZhbHNlO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLm1vZGVsZXIgPSBuZXcgQnBtbk1vZGVsZXIoe1xuICAgICAgY29udGFpbmVyOiB0aGlzLmNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCxcbiAgICAgIHByb3BlcnRpZXNQYW5lbDoge1xuICAgICAgICBwYXJlbnQ6IHRoaXMuY29uZmlnPy5uYXRpdmVFbGVtZW50LFxuICAgICAgfSxcbiAgICAgIGtleWJvYXJkOiB7XG4gICAgICAgIGJpbmRUbzogZG9jdW1lbnQsXG4gICAgICB9LFxuICAgICAgYWRkaXRpb25hbE1vZHVsZXM6IFtcbiAgICAgICAgY3VzdG9tVHJhbnNsYXRlTW9kdWxlLFxuICAgICAgICBjdXN0b21Vc2VyVGFza01vZHVsZSxcbiAgICAgICAgY3VzdG9tSGlkZU90aGVyTW9kdWxlLFxuICAgICAgICBjdXN0b21Qcm9wZXJ0aWVzUGFuZWxNb2R1bGVcbiAgICAgIF0sXG4gICAgICBtb2RkbGVFeHRlbnNpb25zOiB7XG4gICAgICAgIGNvYXN0OiBjb2FzdE1vZGRsZURlc2NyaXB0b3JcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBsb2dvID0gdGhpcy5tb2RlbGVyLl9jb250YWluZXIucXVlcnlTZWxlY3RvcignLmJqcy1wb3dlcmVkLWJ5Jyk7XG4gICAgaWYgKGxvZ28pIHtcbiAgICAgIHRoaXMubW9kZWxlci5fY29udGFpbmVyLnJlbW92ZUNoaWxkKGxvZ28pXG4gICAgfVxuICAgIHRoaXMuY2FudmFzID0gdGhpcy5tb2RlbGVyLmdldCgnY2FudmFzJyk7XG4gICAgdGhpcy5tb2RlbGVyLmNyZWF0ZURpYWdyYW0oKS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMuY2FudmFzLnpvb20oJ2ZpdC12aWV3cG9ydCcpO1xuICAgIH0pO1xuICB9XG5cbiAgc2hvd1htbCgpIHtcbiAgICBpZiAoIXRoaXMuaXNTaG93WG1sKSB7XG4gICAgICB0aGlzLm1vZGVsZXIuc2F2ZVhNTCh7Zm9ybWF0OiB0cnVlfSkudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnhtbCA9IHJlc3BvbnNlLnhtbDtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmlzU2hvd1htbCA9ICF0aGlzLmlzU2hvd1htbDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1haW5cIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiICNjb250YWluZXI+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb25maWdcIiAjY29uZmlnPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwieG1sLXZpZXdlclwiIFtuZ1N0eWxlXT1cIntkaXNwbGF5OiBpc1Nob3dYbWwgPyAnZmxleCcgOiAnbm9uZSd9XCI+XG4gICAgPHJzLWNvZGUtZWRpdG9yIGxhbmd1YWdlPVwieG1sXCIgW2NvZGVdPVwieG1sXCIgW3JlYWRvbmx5XT1cInRydWVcIiBbZW5hYmxlTWluaW1hcF09XCJ0cnVlXCI+PC9ycy1jb2RlLWVkaXRvcj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJmb290ZXJcIj5cbiAgPGR4LWJ1dHRvbiBbdHlwZV09XCJpc1Nob3dYbWwgPyAnZGVmYXVsdCcgOiAnbm9ybWFsJ1wiIHRleHQ9XCJYTUxcIiBbaG92ZXJTdGF0ZUVuYWJsZWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgIChvbkNsaWNrKT1cInNob3dYbWwoKVwiPjwvZHgtYnV0dG9uPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,32 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { CamundaBpmnEditorComponent } from './camunda-bpmn-editor.component';
4
+ import { CodeEditorModule } from "../code-editor/code-editor.module";
5
+ import { DevExtremeModule } from "devextreme-angular";
6
+ import * as i0 from "@angular/core";
7
+ export class CamundaBpmnEditorModule {
8
+ }
9
+ CamundaBpmnEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CamundaBpmnEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ CamundaBpmnEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: CamundaBpmnEditorModule, declarations: [CamundaBpmnEditorComponent], imports: [CommonModule,
11
+ CodeEditorModule,
12
+ DevExtremeModule], exports: [CamundaBpmnEditorComponent] });
13
+ CamundaBpmnEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CamundaBpmnEditorModule, imports: [CommonModule,
14
+ CodeEditorModule,
15
+ DevExtremeModule] });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CamundaBpmnEditorModule, decorators: [{
17
+ type: NgModule,
18
+ args: [{
19
+ declarations: [
20
+ CamundaBpmnEditorComponent
21
+ ],
22
+ imports: [
23
+ CommonModule,
24
+ CodeEditorModule,
25
+ DevExtremeModule
26
+ ],
27
+ exports: [
28
+ CamundaBpmnEditorComponent
29
+ ]
30
+ }]
31
+ }] });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtdW5kYS1icG1uLWVkaXRvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9jYW11bmRhLWJwbW4tZWRpdG9yL2NhbXVuZGEtYnBtbi1lZGl0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDOztBQWVwRCxNQUFNLE9BQU8sdUJBQXVCOztvSEFBdkIsdUJBQXVCO3FIQUF2Qix1QkFBdUIsaUJBWGhDLDBCQUEwQixhQUcxQixZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLGdCQUFnQixhQUdoQiwwQkFBMEI7cUhBR2pCLHVCQUF1QixZQVJoQyxZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLGdCQUFnQjsyRkFNUCx1QkFBdUI7a0JBYm5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLDBCQUEwQjtxQkFDM0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixnQkFBZ0I7cUJBQ2pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCwwQkFBMEI7cUJBQzNCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2FtdW5kYUJwbW5FZGl0b3JDb21wb25lbnR9IGZyb20gJy4vY2FtdW5kYS1icG1uLWVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHtDb2RlRWRpdG9yTW9kdWxlfSBmcm9tIFwiLi4vY29kZS1lZGl0b3IvY29kZS1lZGl0b3IubW9kdWxlXCI7XG5pbXBvcnQge0RldkV4dHJlbWVNb2R1bGV9IGZyb20gXCJkZXZleHRyZW1lLWFuZ3VsYXJcIjtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQ2FtdW5kYUJwbW5FZGl0b3JDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDb2RlRWRpdG9yTW9kdWxlLFxuICAgIERldkV4dHJlbWVNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIENhbXVuZGFCcG1uRWRpdG9yQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ2FtdW5kYUJwbW5FZGl0b3JNb2R1bGUge1xufVxuIl19
@@ -0,0 +1,31 @@
1
+ import { is } from 'bpmn-js/lib/util/ModelUtil';
2
+ import DescriptionProps from "./properties/DescriptionProps";
3
+ export default class CustomPropertiesProvider {
4
+ constructor(propertiesPanel, translate, bpmnFactory, modeling, debounceInput) {
5
+ this.translate = translate;
6
+ this.bpmnFactory = bpmnFactory;
7
+ this.modeling = modeling;
8
+ this.debounceInput = debounceInput;
9
+ propertiesPanel.registerProvider(0, this);
10
+ }
11
+ getGroups(element) {
12
+ return ((groups) => {
13
+ if (is(element, 'bpmn:UserTask')) {
14
+ console.log(groups);
15
+ return [groups.find((group) => group.id === 'general'), {
16
+ id: 'Coast_Implementation',
17
+ label: this.translate('More config'),
18
+ entries: [new DescriptionProps({
19
+ element,
20
+ translate: this.translate,
21
+ bpmnFactory: this.bpmnFactory,
22
+ modeling: this.modeling,
23
+ debounce: this.debounceInput
24
+ })]
25
+ }];
26
+ }
27
+ return groups;
28
+ });
29
+ }
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3VzdG9tUHJvcGVydGllc1Byb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvY2FtdW5kYS1icG1uLWVkaXRvci9jdXN0b20vY29uZmlnL0N1c3RvbVByb3BlcnRpZXNQcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsRUFBRSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUMsT0FBTyxnQkFBZ0IsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RCxNQUFNLENBQUMsT0FBTyxPQUFPLHdCQUF3QjtJQU0zQyxZQUFZLGVBQW9CLEVBQUUsU0FBYyxFQUFFLFdBQWdCLEVBQUUsUUFBYSxFQUFFLGFBQWtCO1FBQ25HLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFZO1FBQ3BCLE9BQU8sQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3RCLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsRUFBRTtnQkFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtnQkFDbkIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDLEVBQUU7d0JBQzNELEVBQUUsRUFBRSxzQkFBc0I7d0JBQzFCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQzt3QkFDcEMsT0FBTyxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQztnQ0FDN0IsT0FBTztnQ0FDUCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0NBQ3pCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztnQ0FDN0IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2dDQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWE7NkJBQzdCLENBQUMsQ0FBQztxQkFDSixDQUFDLENBQUM7YUFDSjtZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpc30gZnJvbSAnYnBtbi1qcy9saWIvdXRpbC9Nb2RlbFV0aWwnO1xyXG5pbXBvcnQgRGVzY3JpcHRpb25Qcm9wcyBmcm9tIFwiLi9wcm9wZXJ0aWVzL0Rlc2NyaXB0aW9uUHJvcHNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEN1c3RvbVByb3BlcnRpZXNQcm92aWRlciB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBicG1uRmFjdG9yeTtcclxuICBwcml2YXRlIHJlYWRvbmx5IG1vZGVsaW5nO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVib3VuY2VJbnB1dDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvcGVydGllc1BhbmVsOiBhbnksIHRyYW5zbGF0ZTogYW55LCBicG1uRmFjdG9yeTogYW55LCBtb2RlbGluZzogYW55LCBkZWJvdW5jZUlucHV0OiBhbnkpIHtcclxuICAgIHRoaXMudHJhbnNsYXRlID0gdHJhbnNsYXRlO1xyXG4gICAgdGhpcy5icG1uRmFjdG9yeSA9IGJwbW5GYWN0b3J5O1xyXG4gICAgdGhpcy5tb2RlbGluZyA9IG1vZGVsaW5nO1xyXG4gICAgdGhpcy5kZWJvdW5jZUlucHV0ID0gZGVib3VuY2VJbnB1dDtcclxuICAgIHByb3BlcnRpZXNQYW5lbC5yZWdpc3RlclByb3ZpZGVyKDAsIHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0R3JvdXBzKGVsZW1lbnQ6IGFueSkge1xyXG4gICAgcmV0dXJuICgoZ3JvdXBzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGlzKGVsZW1lbnQsICdicG1uOlVzZXJUYXNrJykpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhncm91cHMpXHJcbiAgICAgICAgcmV0dXJuIFtncm91cHMuZmluZCgoZ3JvdXA6IGFueSkgPT4gZ3JvdXAuaWQgPT09ICdnZW5lcmFsJyksIHtcclxuICAgICAgICAgIGlkOiAnQ29hc3RfSW1wbGVtZW50YXRpb24nLFxyXG4gICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlKCdNb3JlIGNvbmZpZycpLFxyXG4gICAgICAgICAgZW50cmllczogW25ldyBEZXNjcmlwdGlvblByb3BzKHtcclxuICAgICAgICAgICAgZWxlbWVudCxcclxuICAgICAgICAgICAgdHJhbnNsYXRlOiB0aGlzLnRyYW5zbGF0ZSxcclxuICAgICAgICAgICAgYnBtbkZhY3Rvcnk6IHRoaXMuYnBtbkZhY3RvcnksXHJcbiAgICAgICAgICAgIG1vZGVsaW5nOiB0aGlzLm1vZGVsaW5nLFxyXG4gICAgICAgICAgICBkZWJvdW5jZTogdGhpcy5kZWJvdW5jZUlucHV0XHJcbiAgICAgICAgICB9KV1cclxuICAgICAgICB9XTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZ3JvdXBzO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "Coast Custom",
3
+ "prefix": "coast",
4
+ "uri": "https://c-standard.cn",
5
+ "xml": {
6
+ "tagAlias": "lowerCase"
7
+ },
8
+ "associations": [],
9
+ "types": [
10
+ {
11
+ "name": "CoastUserTask",
12
+ "extends": [
13
+ "bpmn:UserTask"
14
+ ],
15
+ "properties": [
16
+ {
17
+ "name": "taskDescription",
18
+ "isAttr": true,
19
+ "type": "String"
20
+ }
21
+ ]
22
+ }
23
+ ]
24
+ }
@@ -0,0 +1,6 @@
1
+ import CustomPropertiesProvider from "./CustomPropertiesProvider";
2
+ export default {
3
+ __init__: ['customPropertiesProvider'],
4
+ customPropertiesProvider: ['type', CustomPropertiesProvider]
5
+ };
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9jYW11bmRhLWJwbW4tZWRpdG9yL2N1c3RvbS9jb25maWcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyx3QkFBd0IsTUFBTSw0QkFBNEIsQ0FBQztBQUVsRSxlQUFlO0lBQ2IsUUFBUSxFQUFFLENBQUMsMEJBQTBCLENBQUM7SUFDdEMsd0JBQXdCLEVBQUUsQ0FBQyxNQUFNLEVBQUUsd0JBQXdCLENBQUM7Q0FDN0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDdXN0b21Qcm9wZXJ0aWVzUHJvdmlkZXIgZnJvbSBcIi4vQ3VzdG9tUHJvcGVydGllc1Byb3ZpZGVyXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgX19pbml0X186IFsnY3VzdG9tUHJvcGVydGllc1Byb3ZpZGVyJ10sXHJcbiAgY3VzdG9tUHJvcGVydGllc1Byb3ZpZGVyOiBbJ3R5cGUnLCBDdXN0b21Qcm9wZXJ0aWVzUHJvdmlkZXJdXHJcbn07XHJcbiJdfQ==