@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.
- package/dist/ButtonGroup.d.ts +11 -0
- package/dist/ButtonGroup.js +58 -0
- package/dist/ButtonGroup.js.map +1 -0
- package/dist/CodeEditor.d.ts +11 -0
- package/dist/CodeEditor.js +43 -0
- package/dist/CodeEditor.js.map +1 -0
- package/dist/WidgetFactory.js +8 -0
- package/dist/WidgetFactory.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/ButtonGroup.ts +31 -0
- package/src/CodeEditor.ts +28 -0
- package/src/WidgetFactory.ts +8 -0
- package/src/index.ts +4 -0
- package/src/spec/ButtonGroup.spec.ts +43 -0
- package/src/spec/CodeEditor.spec.ts +37 -0
- package/src/spec/Form.spec.ts +23 -0
- package/src/spec/WidgetFactory.spec.ts +20 -1
|
@@ -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,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"}
|
package/dist/WidgetFactory.js
CHANGED
|
@@ -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":";;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,MAAM,SAAS,CAAC;
|
|
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":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -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;
|
package/src/WidgetFactory.ts
CHANGED
|
@@ -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
|
+
});
|
package/src/spec/Form.spec.ts
CHANGED
|
@@ -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 {
|
|
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
|
});
|