@gisce/ooui 0.13.0 → 0.14.0

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"}
@@ -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";
@@ -68,6 +69,9 @@ var WidgetFactory = /** @class */ (function () {
68
69
  case "button":
69
70
  this._widgetClass = Button;
70
71
  break;
72
+ case "buttonGroup":
73
+ this._widgetClass = ButtonGroup;
74
+ break;
71
75
  case "selection":
72
76
  this._widgetClass = Selection;
73
77
  break;
@@ -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";
@@ -43,4 +44,4 @@ import CodeEditor from "./CodeEditor";
43
44
  import { Graph, GraphAxis, GraphIndicator, GraphIndicatorField, GraphChart, GraphType, parseGraph, Operator, GraphYAxis, GraphXAxis } from "./Graph";
44
45
  import * as graphProcessor from "./Graph/processor/graphProcessor";
45
46
  import * as graphFieldUtils from "./Graph/processor/fieldUtils";
46
- 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, CodeEditor, };
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";
@@ -43,5 +44,5 @@ import CodeEditor from "./CodeEditor";
43
44
  import { Graph, GraphAxis, GraphIndicator, GraphIndicatorField, GraphChart, parseGraph, GraphYAxis, GraphXAxis, } from "./Graph";
44
45
  import * as graphProcessor from "./Graph/processor/graphProcessor";
45
46
  import * as graphFieldUtils from "./Graph/processor/fieldUtils";
46
- 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, CodeEditor, };
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, };
47
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.13.0",
3
+ "version": "0.14.0",
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;
@@ -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";
@@ -61,6 +62,9 @@ class WidgetFactory {
61
62
  case "button":
62
63
  this._widgetClass = Button;
63
64
  break;
65
+ case "buttonGroup":
66
+ this._widgetClass = ButtonGroup;
67
+ break;
64
68
  case "selection":
65
69
  this._widgetClass = Selection;
66
70
  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";
@@ -85,6 +86,7 @@ export {
85
86
  Label,
86
87
  Separator,
87
88
  Button,
89
+ ButtonGroup,
88
90
  Reference,
89
91
  Binary,
90
92
  Image,
@@ -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
+ });
@@ -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, CodeEditor } 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', () => {
@@ -83,4 +86,12 @@ describe('A WidgetFactory', () => {
83
86
  expect(widget).toBeInstanceOf(CodeEditor);
84
87
  expect(widget.type).toBe("codeeditor");
85
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
+ });
86
97
  });