@gisce/ooui 0.12.0 → 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,11 @@
1
+ import Button from "./Button";
2
+ import ContainerWidget from "./ContainerWidget";
3
+ declare class ButtonGroup extends ContainerWidget {
4
+ _defaultName: string;
5
+ get defaultName(): string;
6
+ get defaultButton(): Button | undefined;
7
+ get secondaryButtons(): Button[];
8
+ get buttons(): Button[];
9
+ constructor(props: any);
10
+ }
11
+ export default ButtonGroup;
@@ -0,0 +1,58 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ extendStatics(d, b);
10
+ function __() { this.constructor = d; }
11
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12
+ };
13
+ })();
14
+ import ContainerWidget from "./ContainerWidget";
15
+ var ButtonGroup = /** @class */ (function (_super) {
16
+ __extends(ButtonGroup, _super);
17
+ function ButtonGroup(props) {
18
+ var _this = _super.call(this, props) || this;
19
+ _this._defaultName = "";
20
+ if (props.default) {
21
+ _this._defaultName = props.default;
22
+ }
23
+ return _this;
24
+ }
25
+ Object.defineProperty(ButtonGroup.prototype, "defaultName", {
26
+ get: function () {
27
+ return this._defaultName;
28
+ },
29
+ enumerable: false,
30
+ configurable: true
31
+ });
32
+ Object.defineProperty(ButtonGroup.prototype, "defaultButton", {
33
+ get: function () {
34
+ var _this = this;
35
+ return this.buttons.find(function (button) { return button.id === _this.defaultName; });
36
+ },
37
+ enumerable: false,
38
+ configurable: true
39
+ });
40
+ Object.defineProperty(ButtonGroup.prototype, "secondaryButtons", {
41
+ get: function () {
42
+ var _this = this;
43
+ return this.buttons.filter(function (button) { return button.id !== _this.defaultName; });
44
+ },
45
+ enumerable: false,
46
+ configurable: true
47
+ });
48
+ Object.defineProperty(ButtonGroup.prototype, "buttons", {
49
+ get: function () {
50
+ return this._container.rows[0];
51
+ },
52
+ enumerable: false,
53
+ configurable: true
54
+ });
55
+ return ButtonGroup;
56
+ }(ContainerWidget));
57
+ export default ButtonGroup;
58
+ //# sourceMappingURL=ButtonGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonGroup.js","sourceRoot":"","sources":["../src/ButtonGroup.ts"],"names":[],"mappings":";;;;;;;;;;;;;AACA,OAAO,eAAe,MAAO,mBAAmB,CAAC;AAEjD;IAA0B,+BAAe;IAmBvC,qBAAY,KAAU;QAAtB,YACE,kBAAM,KAAK,CAAC,SAIb;QAtBD,kBAAY,GAAW,EAAE,CAAC;QAmBxB,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;SACnC;;IACH,CAAC;IArBD,sBAAI,oCAAW;aAAf;YACE,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;;;OAAA;IAED,sBAAI,sCAAa;aAAjB;YAAA,iBAEC;YADC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,EAAE,KAAK,KAAI,CAAC,WAAW,EAA9B,CAA8B,CAAC,CAAC;QACrE,CAAC;;;OAAA;IAED,sBAAI,yCAAgB;aAApB;YAAA,iBAEC;YADC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,EAAE,KAAK,KAAI,CAAC,WAAW,EAA9B,CAA8B,CAAC,CAAC;QACvE,CAAC;;;OAAA;IAED,sBAAI,gCAAO;aAAX;YACE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAa,CAAC;QAC7C,CAAC;;;OAAA;IAQH,kBAAC;AAAD,CAAC,AAzBD,CAA0B,eAAe,GAyBxC;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,11 @@
1
+ import Text from "./Text";
2
+ /**
3
+ * A CodeEditor widget
4
+ */
5
+ declare class CodeEditor extends Text {
6
+ _lang: string | null;
7
+ get lang(): string | null;
8
+ set lang(value: string | null);
9
+ constructor(props: any);
10
+ }
11
+ export default CodeEditor;
@@ -0,0 +1,43 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ extendStatics(d, b);
10
+ function __() { this.constructor = d; }
11
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12
+ };
13
+ })();
14
+ import Text from "./Text";
15
+ /**
16
+ * A CodeEditor widget
17
+ */
18
+ var CodeEditor = /** @class */ (function (_super) {
19
+ __extends(CodeEditor, _super);
20
+ function CodeEditor(props) {
21
+ var _this = _super.call(this, props) || this;
22
+ _this._lang = null;
23
+ if (props) {
24
+ if (_this.parsedWidgetProps.lang) {
25
+ _this._lang = _this.parsedWidgetProps.lang;
26
+ }
27
+ }
28
+ return _this;
29
+ }
30
+ Object.defineProperty(CodeEditor.prototype, "lang", {
31
+ get: function () {
32
+ return this._lang;
33
+ },
34
+ set: function (value) {
35
+ this._lang = value;
36
+ },
37
+ enumerable: false,
38
+ configurable: true
39
+ });
40
+ return CodeEditor;
41
+ }(Text));
42
+ export default CodeEditor;
43
+ //# sourceMappingURL=CodeEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeEditor.js","sourceRoot":"","sources":["../src/CodeEditor.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B;;GAEG;AACH;IAAyB,8BAAI;IAU3B,oBAAY,KAAU;QAAtB,YACE,kBAAM,KAAK,CAAC,SAQb;QAjBD,WAAK,GAAkB,IAAI,CAAC;QAW1B,IAAI,KAAK,EAAE;YAET,IAAI,KAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;gBAC/B,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;aAC1C;SACF;;IACH,CAAC;IAhBD,sBAAI,4BAAI;aAAR;YACE,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;aACD,UAAS,KAAoB;YAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;;;OAHA;IAeH,iBAAC;AAAD,CAAC,AApBD,CAAyB,IAAI,GAoB5B;AAED,eAAe,UAAU,CAAC"}
@@ -13,6 +13,7 @@ import Notebook from "./Notebook";
13
13
  import Page from "./Page";
14
14
  import Group from "./Group";
15
15
  import Button from "./Button";
16
+ import ButtonGroup from "./ButtonGroup";
16
17
  import Label from "./Label";
17
18
  import Char from "./Char";
18
19
  import Text from "./Text";
@@ -41,6 +42,7 @@ import Radio from "./Radio";
41
42
  import MultiCheckbox from "./MultiCheckbox";
42
43
  import Switch from "./Switch";
43
44
  import Steps from "./Steps";
45
+ import CodeEditor from "./CodeEditor";
44
46
  var WidgetFactory = /** @class */ (function () {
45
47
  function WidgetFactory() {
46
48
  }
@@ -67,6 +69,9 @@ var WidgetFactory = /** @class */ (function () {
67
69
  case "button":
68
70
  this._widgetClass = Button;
69
71
  break;
72
+ case "buttonGroup":
73
+ this._widgetClass = ButtonGroup;
74
+ break;
70
75
  case "selection":
71
76
  this._widgetClass = Selection;
72
77
  break;
@@ -146,6 +151,9 @@ var WidgetFactory = /** @class */ (function () {
146
151
  case "steps":
147
152
  this._widgetClass = Steps;
148
153
  break;
154
+ case "codeeditor":
155
+ this._widgetClass = CodeEditor;
156
+ break;
149
157
  default:
150
158
  break;
151
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetFactory.js","sourceRoot":"","sources":["../src/WidgetFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WidgetFactory.js","sourceRoot":"","sources":["../src/WidgetFactory.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -25,6 +25,7 @@ import Group from "./Group";
25
25
  import Page from "./Page";
26
26
  import Separator from "./Separator";
27
27
  import Button from "./Button";
28
+ import ButtonGroup from "./ButtonGroup";
28
29
  import Reference from "./Reference";
29
30
  import Binary from "./Binary";
30
31
  import Image from "./Image";
@@ -39,7 +40,8 @@ import MultiCheckbox from "./MultiCheckbox";
39
40
  import Radio from "./Radio";
40
41
  import Switch from "./Switch";
41
42
  import Steps from "./Steps";
43
+ import CodeEditor from "./CodeEditor";
42
44
  import { Graph, GraphAxis, GraphIndicator, GraphIndicatorField, GraphChart, GraphType, parseGraph, Operator, GraphYAxis, GraphXAxis } from "./Graph";
43
45
  import * as graphProcessor from "./Graph/processor/graphProcessor";
44
46
  import * as graphFieldUtils from "./Graph/processor/fieldUtils";
45
- export { Char, Selection, Many2one, Field, Widget, Form, Tree, NewLine, Boolean, One2many, Integer, Float, FloatTime, Date, DateTime, Many2many, SearchFilter, Container, ContainerWidget, Text, ProgressBar, Notebook, Group, Page, Label, Separator, Button, Reference, Binary, Image, parseContext, transformDomainForChildWidget, Timeline, Indicator, Dashboard, DashboardItem, Graph, GraphAxis, GraphYAxis, GraphXAxis, GraphIndicator, GraphChart, GraphType, parseGraph, Operator, GraphIndicatorField, graphProcessor, graphFieldUtils, Tags, MultiCheckbox, Radio, Switch, Steps, };
47
+ export { Char, Selection, Many2one, Field, Widget, Form, Tree, NewLine, Boolean, One2many, Integer, Float, FloatTime, Date, DateTime, Many2many, SearchFilter, Container, ContainerWidget, Text, ProgressBar, Notebook, Group, Page, Label, Separator, Button, ButtonGroup, Reference, Binary, Image, parseContext, transformDomainForChildWidget, Timeline, Indicator, Dashboard, DashboardItem, Graph, GraphAxis, GraphYAxis, GraphXAxis, GraphIndicator, GraphChart, GraphType, parseGraph, Operator, GraphIndicatorField, graphProcessor, graphFieldUtils, Tags, MultiCheckbox, Radio, Switch, Steps, CodeEditor, };
package/dist/index.js CHANGED
@@ -25,6 +25,7 @@ import Group from "./Group";
25
25
  import Page from "./Page";
26
26
  import Separator from "./Separator";
27
27
  import Button from "./Button";
28
+ import ButtonGroup from "./ButtonGroup";
28
29
  import Reference from "./Reference";
29
30
  import Binary from "./Binary";
30
31
  import Image from "./Image";
@@ -39,8 +40,9 @@ import MultiCheckbox from "./MultiCheckbox";
39
40
  import Radio from "./Radio";
40
41
  import Switch from "./Switch";
41
42
  import Steps from "./Steps";
43
+ import CodeEditor from "./CodeEditor";
42
44
  import { Graph, GraphAxis, GraphIndicator, GraphIndicatorField, GraphChart, parseGraph, GraphYAxis, GraphXAxis, } from "./Graph";
43
45
  import * as graphProcessor from "./Graph/processor/graphProcessor";
44
46
  import * as graphFieldUtils from "./Graph/processor/fieldUtils";
45
- export { Char, Selection, Many2one, Field, Widget, Form, Tree, NewLine, Boolean, One2many, Integer, Float, FloatTime, Date, DateTime, Many2many, SearchFilter, Container, ContainerWidget, Text, ProgressBar, Notebook, Group, Page, Label, Separator, Button, Reference, Binary, Image, parseContext, transformDomainForChildWidget, Timeline, Indicator, Dashboard, DashboardItem, Graph, GraphAxis, GraphYAxis, GraphXAxis, GraphIndicator, GraphChart, parseGraph, GraphIndicatorField, graphProcessor, graphFieldUtils, Tags, MultiCheckbox, Radio, Switch, Steps, };
47
+ export { Char, Selection, Many2one, Field, Widget, Form, Tree, NewLine, Boolean, One2many, Integer, Float, FloatTime, Date, DateTime, Many2many, SearchFilter, Container, ContainerWidget, Text, ProgressBar, Notebook, Group, Page, Label, Separator, Button, ButtonGroup, Reference, Binary, Image, parseContext, transformDomainForChildWidget, Timeline, Indicator, Dashboard, DashboardItem, Graph, GraphAxis, GraphYAxis, GraphXAxis, GraphIndicator, GraphChart, parseGraph, GraphIndicatorField, graphProcessor, graphFieldUtils, Tags, MultiCheckbox, Radio, Switch, Steps, CodeEditor, };
46
48
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gisce/ooui",
3
- "version": "0.12.0",
3
+ "version": "0.14.1",
4
4
  "dependencies": {
5
5
  "moment": "^2.29.3"
6
6
  },
@@ -0,0 +1,31 @@
1
+ import Button from "./Button";
2
+ import ContainerWidget from "./ContainerWidget";
3
+
4
+ class ButtonGroup extends ContainerWidget {
5
+
6
+ _defaultName: string = "";
7
+ get defaultName(): string {
8
+ return this._defaultName;
9
+ }
10
+
11
+ get defaultButton(): Button | undefined {
12
+ return this.buttons.find(button => button.id === this.defaultName);
13
+ }
14
+
15
+ get secondaryButtons(): Button[] {
16
+ return this.buttons.filter(button => button.id !== this.defaultName);
17
+ }
18
+
19
+ get buttons(): Button[] {
20
+ return this._container.rows[0] as Button[];
21
+ }
22
+
23
+ constructor(props: any) {
24
+ super(props);
25
+ if (props.default) {
26
+ this._defaultName = props.default;
27
+ }
28
+ }
29
+ }
30
+
31
+ export default ButtonGroup;
@@ -0,0 +1,28 @@
1
+ import Text from "./Text";
2
+
3
+ /**
4
+ * A CodeEditor widget
5
+ */
6
+ class CodeEditor extends Text {
7
+
8
+ _lang: string | null = null;
9
+ get lang(): string | null {
10
+ return this._lang;
11
+ }
12
+ set lang(value: string | null) {
13
+ this._lang = value;
14
+ }
15
+
16
+ constructor(props: any) {
17
+ super(props);
18
+
19
+ if (props) {
20
+
21
+ if (this.parsedWidgetProps.lang) {
22
+ this._lang = this.parsedWidgetProps.lang;
23
+ }
24
+ }
25
+ }
26
+ }
27
+
28
+ export default CodeEditor;
@@ -2,6 +2,7 @@ import Notebook from "./Notebook";
2
2
  import Page from "./Page";
3
3
  import Group from "./Group";
4
4
  import Button from "./Button";
5
+ import ButtonGroup from "./ButtonGroup";
5
6
  import Label from "./Label";
6
7
  import Char from "./Char";
7
8
  import Text from "./Text";
@@ -30,6 +31,7 @@ import Radio from "./Radio";
30
31
  import MultiCheckbox from "./MultiCheckbox";
31
32
  import Switch from "./Switch";
32
33
  import Steps from "./Steps";
34
+ import CodeEditor from "./CodeEditor";
33
35
 
34
36
  class WidgetFactory {
35
37
  /**
@@ -60,6 +62,9 @@ class WidgetFactory {
60
62
  case "button":
61
63
  this._widgetClass = Button;
62
64
  break;
65
+ case "buttonGroup":
66
+ this._widgetClass = ButtonGroup;
67
+ break;
63
68
  case "selection":
64
69
  this._widgetClass = Selection;
65
70
  break;
@@ -139,6 +144,9 @@ class WidgetFactory {
139
144
  case "steps":
140
145
  this._widgetClass = Steps;
141
146
  break;
147
+ case "codeeditor":
148
+ this._widgetClass = CodeEditor;
149
+ break;
142
150
 
143
151
  default:
144
152
  break;
package/src/index.ts CHANGED
@@ -25,6 +25,7 @@ import Group from "./Group";
25
25
  import Page from "./Page";
26
26
  import Separator from "./Separator";
27
27
  import Button from "./Button";
28
+ import ButtonGroup from "./ButtonGroup";
28
29
  import Reference from "./Reference";
29
30
  import Binary from "./Binary";
30
31
  import Image from "./Image";
@@ -39,6 +40,7 @@ import MultiCheckbox from "./MultiCheckbox";
39
40
  import Radio from "./Radio";
40
41
  import Switch from "./Switch";
41
42
  import Steps from "./Steps";
43
+ import CodeEditor from "./CodeEditor";
42
44
 
43
45
  import {
44
46
  Graph,
@@ -84,6 +86,7 @@ export {
84
86
  Label,
85
87
  Separator,
86
88
  Button,
89
+ ButtonGroup,
87
90
  Reference,
88
91
  Binary,
89
92
  Image,
@@ -110,4 +113,5 @@ export {
110
113
  Radio,
111
114
  Switch,
112
115
  Steps,
116
+ CodeEditor,
113
117
  };
@@ -0,0 +1,43 @@
1
+ import ButtonGroup from "../ButtonGroup";
2
+ import WidgetFactory from "../WidgetFactory";
3
+ import Button from "../Button";
4
+
5
+ describe("A ButtonsGroup widget", () => {
6
+ it("should have an id corresponding to button name", () => {
7
+ const widgetFactory = new WidgetFactory();
8
+ const props = {
9
+ name: "defaultButtonGroup",
10
+ };
11
+
12
+ const widget = widgetFactory.createWidget("buttonGroup", props);
13
+ expect(widget.id).toBe("defaultButtonGroup");
14
+ });
15
+
16
+ describe("Getting child buttons", () => {
17
+
18
+ let buttonGroup: ButtonGroup;
19
+
20
+ beforeAll(() => {
21
+ const btn1 = new Button({name: "btn1", type: "object", icon: "gtk-execute", string: "Button 1"});
22
+ const btn2 = new Button({name: "btn2", type: "object", icon: "gtk-execute", string: "Button 2"});
23
+ const btn3 = new Button({name: "btn3", type: "object", icon: "gtk-execute", string: "Button 3"});
24
+ buttonGroup = new ButtonGroup({name: "btnGroup", default: "btn1"});
25
+ buttonGroup.container.rows[0].push(...[btn1, btn2, btn3]);
26
+ })
27
+
28
+ it("should have child buttons", () => {
29
+ expect(buttonGroup.buttons).toHaveLength(3);
30
+ });
31
+
32
+ it("should have this default button", () => {
33
+ expect(buttonGroup.defaultButton?.id).toBe("btn1");
34
+ });
35
+
36
+ it("should have this secondary buttons", () => {
37
+ expect(buttonGroup.secondaryButtons).toHaveLength(2);
38
+ expect(buttonGroup.secondaryButtons[0].id).toBe("btn2");
39
+ expect(buttonGroup.secondaryButtons[1].id).toBe("btn3");
40
+ });
41
+
42
+ });
43
+ });
@@ -0,0 +1,37 @@
1
+ import WidgetFactory from "../WidgetFactory";
2
+
3
+ describe("A CodeEditor widget", () => {
4
+ it("should have an id corresponding to field name", () => {
5
+ const widgetFactory = new WidgetFactory();
6
+ const props = {
7
+ name: "code",
8
+ };
9
+
10
+ const widget = widgetFactory.createWidget("codeeditor", props);
11
+
12
+ expect(widget.id).toBe("code");
13
+ });
14
+
15
+ it("should have default lang to null", () => {
16
+ const widgetFactory = new WidgetFactory();
17
+ const props = {
18
+ name: "code",
19
+ };
20
+ const widget = widgetFactory.createWidget("codeeditor", props);
21
+
22
+ expect(widget.lang).toBe(null);
23
+ });
24
+
25
+ it("should properly set lang", () => {
26
+ const widgetFactory = new WidgetFactory();
27
+ const props = {
28
+ name: "code",
29
+ widget_props: "{'lang': 'xml'}",
30
+ };
31
+ const widget = widgetFactory.createWidget("codeeditor", props);
32
+
33
+ expect(widget.lang).toBe("xml");
34
+ });
35
+
36
+
37
+ });
@@ -7,6 +7,7 @@ import Label from "../Label";
7
7
  import Field from "../Field";
8
8
  import Reference from "../Reference";
9
9
  import Button from "../Button";
10
+ import ButtonGroup from "../ButtonGroup";
10
11
 
11
12
  const XML_VIEW_FORM = `<?xml version="1.0"?>
12
13
  <form string="Partner Address">
@@ -756,6 +757,28 @@ describe("A Form", () => {
756
757
  expect(field.buttonType).toBe("object");
757
758
  });
758
759
 
760
+ describe("A ButtonGroup", () => {
761
+ it("should be able to parse a ButtonGroup", () => {
762
+ const fields = {};
763
+ const xmlViewForm = `<?xml version="1.0"?>
764
+ <form string="Form1">
765
+ <buttonGroup name="aButtonGroup" default="main">
766
+ <button name="main" type="object" string="Main action" />
767
+ <button name="secondary" type="object" string="Secondary action" />
768
+ </buttonGroup>
769
+ </form>`;
770
+ const form = new Form(fields);
771
+ form.parse(xmlViewForm);
772
+
773
+ const buttonGroup = form.container.rows[0][0] as ButtonGroup;
774
+ expect(buttonGroup).toBeInstanceOf(ButtonGroup);
775
+ expect(buttonGroup.buttons).toHaveLength(2);
776
+ buttonGroup.buttons.forEach((button) => {
777
+ expect(button).toBeInstanceOf(Button);
778
+ })
779
+ });
780
+ });
781
+
759
782
  it("should be able to parse a Button by default to type workflow", () => {
760
783
  const fields = {
761
784
  button: {
@@ -1,5 +1,8 @@
1
1
  import WidgetFactory from "../WidgetFactory";
2
- import { Char, Button, NewLine, Tags, MultiCheckbox, Radio, Switch, Steps } from "..";
2
+ import {
3
+ Char, Button, NewLine, Tags, MultiCheckbox,
4
+ Radio, Switch, Steps, CodeEditor, ButtonGroup
5
+ } from "..";
3
6
 
4
7
 
5
8
  describe('A WidgetFactory', () => {
@@ -75,4 +78,20 @@ describe('A WidgetFactory', () => {
75
78
  expect(widget).toBeInstanceOf(Steps);
76
79
  expect(widget.type).toBe("steps");
77
80
  });
81
+
82
+ it('should be able to retrieve CodeEditor type', () => {
83
+ const widgetFactory = new WidgetFactory();
84
+ const props = {};
85
+ const widget = widgetFactory.createWidget("codeeditor", props);
86
+ expect(widget).toBeInstanceOf(CodeEditor);
87
+ expect(widget.type).toBe("codeeditor");
88
+ });
89
+
90
+ it('should be able to retrieve ButtonGroup type', () => {
91
+ const widgetFactory = new WidgetFactory();
92
+ const props = {};
93
+ const widget = widgetFactory.createWidget("buttonGroup", props);
94
+ expect(widget).toBeInstanceOf(ButtonGroup);
95
+ expect(widget.type).toBe("buttonGroup");
96
+ });
78
97
  });