@gisce/ooui 0.1.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.
- package/README.md +10 -0
- package/dist/Binary.d.ts +14 -0
- package/dist/Binary.js +46 -0
- package/dist/Binary.js.map +1 -0
- package/dist/Boolean.d.ts +8 -0
- package/dist/Boolean.js +26 -0
- package/dist/Boolean.js.map +1 -0
- package/dist/Button.d.ts +29 -0
- package/dist/Button.js +108 -0
- package/dist/Button.js.map +1 -0
- package/dist/Char.d.ts +26 -0
- package/dist/Char.js +89 -0
- package/dist/Char.js.map +1 -0
- package/dist/Container.d.ts +44 -0
- package/dist/Container.js +148 -0
- package/dist/Container.js.map +1 -0
- package/dist/ContainerWidget.d.ts +42 -0
- package/dist/ContainerWidget.js +125 -0
- package/dist/ContainerWidget.js.map +1 -0
- package/dist/Date.d.ts +8 -0
- package/dist/Date.js +26 -0
- package/dist/Date.js.map +1 -0
- package/dist/DateTime.d.ts +8 -0
- package/dist/DateTime.js +26 -0
- package/dist/DateTime.js.map +1 -0
- package/dist/FiberGrid.d.ts +5 -0
- package/dist/FiberGrid.js +23 -0
- package/dist/FiberGrid.js.map +1 -0
- package/dist/Field.d.ts +59 -0
- package/dist/Field.js +162 -0
- package/dist/Field.js.map +1 -0
- package/dist/Float.d.ts +24 -0
- package/dist/Float.js +64 -0
- package/dist/Float.js.map +1 -0
- package/dist/FloatTime.d.ts +7 -0
- package/dist/FloatTime.js +26 -0
- package/dist/FloatTime.js.map +1 -0
- package/dist/Form.d.ts +53 -0
- package/dist/Form.js +199 -0
- package/dist/Form.js.map +1 -0
- package/dist/Group.d.ts +5 -0
- package/dist/Group.js +23 -0
- package/dist/Group.js.map +1 -0
- package/dist/Image.d.ts +7 -0
- package/dist/Image.js +26 -0
- package/dist/Image.js.map +1 -0
- package/dist/Integer.d.ts +8 -0
- package/dist/Integer.js +26 -0
- package/dist/Integer.js.map +1 -0
- package/dist/Label.d.ts +23 -0
- package/dist/Label.js +80 -0
- package/dist/Label.js.map +1 -0
- package/dist/Many2many.d.ts +26 -0
- package/dist/Many2many.js +80 -0
- package/dist/Many2many.js.map +1 -0
- package/dist/Many2one.d.ts +20 -0
- package/dist/Many2one.js +63 -0
- package/dist/Many2one.js.map +1 -0
- package/dist/NewLine.d.ts +5 -0
- package/dist/NewLine.js +26 -0
- package/dist/NewLine.js.map +1 -0
- package/dist/Notebook.d.ts +8 -0
- package/dist/Notebook.js +41 -0
- package/dist/Notebook.js.map +1 -0
- package/dist/One2many.d.ts +44 -0
- package/dist/One2many.js +130 -0
- package/dist/One2many.js.map +1 -0
- package/dist/Page.d.ts +5 -0
- package/dist/Page.js +23 -0
- package/dist/Page.js.map +1 -0
- package/dist/ProgressBar.d.ts +7 -0
- package/dist/ProgressBar.js +26 -0
- package/dist/ProgressBar.js.map +1 -0
- package/dist/Reference.d.ts +7 -0
- package/dist/Reference.js +26 -0
- package/dist/Reference.js.map +1 -0
- package/dist/SearchFilter.d.ts +28 -0
- package/dist/SearchFilter.js +81 -0
- package/dist/SearchFilter.js.map +1 -0
- package/dist/Selection.d.ts +20 -0
- package/dist/Selection.js +63 -0
- package/dist/Selection.js.map +1 -0
- package/dist/Separator.d.ts +12 -0
- package/dist/Separator.js +46 -0
- package/dist/Separator.js.map +1 -0
- package/dist/Text.d.ts +29 -0
- package/dist/Text.js +96 -0
- package/dist/Text.js.map +1 -0
- package/dist/Timeline.d.ts +17 -0
- package/dist/Timeline.js +56 -0
- package/dist/Timeline.js.map +1 -0
- package/dist/Tree.d.ts +31 -0
- package/dist/Tree.js +96 -0
- package/dist/Tree.js.map +1 -0
- package/dist/Widget.d.ts +47 -0
- package/dist/Widget.js +116 -0
- package/dist/Widget.js.map +1 -0
- package/dist/WidgetFactory.d.ts +9 -0
- package/dist/WidgetFactory.js +157 -0
- package/dist/WidgetFactory.js.map +1 -0
- package/dist/helpers/attributeParser.d.ts +6 -0
- package/dist/helpers/attributeParser.js +83 -0
- package/dist/helpers/attributeParser.js.map +1 -0
- package/dist/helpers/contextParser.d.ts +5 -0
- package/dist/helpers/contextParser.js +52 -0
- package/dist/helpers/contextParser.js.map +1 -0
- package/dist/helpers/domainParser.d.ts +5 -0
- package/dist/helpers/domainParser.js +26 -0
- package/dist/helpers/domainParser.js.map +1 -0
- package/dist/helpers/fieldParser.d.ts +5 -0
- package/dist/helpers/fieldParser.js +20 -0
- package/dist/helpers/fieldParser.js.map +1 -0
- package/dist/helpers/nodeParser.d.ts +7 -0
- package/dist/helpers/nodeParser.js +50 -0
- package/dist/helpers/nodeParser.js.map +1 -0
- package/dist/helpers/onChangeParser.d.ts +5 -0
- package/dist/helpers/onChangeParser.js +16 -0
- package/dist/helpers/onChangeParser.js.map +1 -0
- package/dist/helpers/stateParser.d.ts +14 -0
- package/dist/helpers/stateParser.js +46 -0
- package/dist/helpers/stateParser.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/package.json +49 -0
- package/src/Binary.ts +29 -0
- package/src/Boolean.ts +12 -0
- package/src/Button.ts +78 -0
- package/src/Char.ts +65 -0
- package/src/Container.ts +171 -0
- package/src/ContainerWidget.ts +105 -0
- package/src/Date.ts +12 -0
- package/src/DateTime.ts +12 -0
- package/src/FiberGrid.ts +9 -0
- package/src/Field.ts +147 -0
- package/src/Float.ts +45 -0
- package/src/FloatTime.ts +8 -0
- package/src/Form.ts +212 -0
- package/src/Group.ts +9 -0
- package/src/Image.ts +8 -0
- package/src/Integer.ts +13 -0
- package/src/Label.ts +46 -0
- package/src/Many2many.ts +59 -0
- package/src/Many2one.ts +44 -0
- package/src/NewLine.ts +9 -0
- package/src/Notebook.ts +24 -0
- package/src/One2many.ts +106 -0
- package/src/Page.ts +9 -0
- package/src/ProgressBar.ts +8 -0
- package/src/Reference.ts +10 -0
- package/src/SearchFilter.ts +81 -0
- package/src/Selection.ts +44 -0
- package/src/Separator.ts +30 -0
- package/src/Text.ts +76 -0
- package/src/Timeline.ts +44 -0
- package/src/Tree.ts +93 -0
- package/src/Widget.ts +121 -0
- package/src/WidgetFactory.ts +158 -0
- package/src/helpers/attributeParser.ts +108 -0
- package/src/helpers/contextParser.ts +66 -0
- package/src/helpers/domainParser.ts +39 -0
- package/src/helpers/fieldParser.ts +27 -0
- package/src/helpers/nodeParser.ts +57 -0
- package/src/helpers/onChangeParser.ts +18 -0
- package/src/helpers/stateParser.ts +62 -0
- package/src/index.ts +67 -0
- package/src/spec/Boolean.spec.ts +36 -0
- package/src/spec/Button.spec.ts +58 -0
- package/src/spec/Char.spec.ts +80 -0
- package/src/spec/Container.spec.ts +47 -0
- package/src/spec/ContainerWidget.spec.ts +35 -0
- package/src/spec/Date.spec.ts +36 -0
- package/src/spec/DateTime.spec.ts +36 -0
- package/src/spec/Float.spec.ts +29 -0
- package/src/spec/Form.spec.ts +976 -0
- package/src/spec/Group.spec.ts +32 -0
- package/src/spec/Label.spec.ts +46 -0
- package/src/spec/Many2many.spec.ts +36 -0
- package/src/spec/Many2one.spec.ts +36 -0
- package/src/spec/One2many.spec.ts +354 -0
- package/src/spec/SearchFilter.spec.ts +955 -0
- package/src/spec/Selection.spec.ts +52 -0
- package/src/spec/Separator.spec.ts +14 -0
- package/src/spec/Tree.spec.ts +214 -0
- package/src/spec/Widget.spec.ts +45 -0
- package/src/spec/WidgetFactory.spec.ts +40 -0
- package/src/spec/attributeParser.spec.ts +173 -0
- package/src/spec/contextParser.spec.ts +57 -0
- package/src/spec/domainParser.spec.ts +40 -0
- package/src/spec/fixtures/WidgetImpl.ts +10 -0
- package/src/spec/stateParser.spec.ts +161 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { evaluateStates, evaluateButtonStates } from "../helpers/stateParser";
|
|
2
|
+
|
|
3
|
+
describe("An States Parser", () => {
|
|
4
|
+
describe("in evaluateStates method", () => {
|
|
5
|
+
it("should properly parse a simple state - readonly to be false", () => {
|
|
6
|
+
const fields = {
|
|
7
|
+
data_final: {
|
|
8
|
+
readonly: true,
|
|
9
|
+
states: {
|
|
10
|
+
draft: [["readonly", false]],
|
|
11
|
+
},
|
|
12
|
+
string: "Data final",
|
|
13
|
+
type: "date",
|
|
14
|
+
views: {},
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const values = {
|
|
19
|
+
state: "draft",
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const evaluatedStateAttrs = evaluateStates({
|
|
23
|
+
fieldName: "data_final",
|
|
24
|
+
values,
|
|
25
|
+
fields,
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
expect(evaluatedStateAttrs.readonly).toBeFalsy();
|
|
29
|
+
});
|
|
30
|
+
it("should properly parse a simple state - readonly to be true", () => {
|
|
31
|
+
const fields = {
|
|
32
|
+
data_final: {
|
|
33
|
+
readonly: false,
|
|
34
|
+
states: {
|
|
35
|
+
draft: [["readonly", true]],
|
|
36
|
+
},
|
|
37
|
+
string: "Data final",
|
|
38
|
+
type: "date",
|
|
39
|
+
views: {},
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
const values = {
|
|
44
|
+
state: "draft",
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const evaluatedStateAttrs = evaluateStates({
|
|
48
|
+
fieldName: "data_final",
|
|
49
|
+
values,
|
|
50
|
+
fields,
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
expect(evaluatedStateAttrs.readonly).toBeTruthy();
|
|
54
|
+
});
|
|
55
|
+
it("should properly parse a simple state - readonly to be unprocessed/undefined", () => {
|
|
56
|
+
const fields = {
|
|
57
|
+
data_final: {
|
|
58
|
+
readonly: true,
|
|
59
|
+
states: {
|
|
60
|
+
draft: [["readonly", false]],
|
|
61
|
+
},
|
|
62
|
+
string: "Data final",
|
|
63
|
+
type: "date",
|
|
64
|
+
views: {},
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
const values = {
|
|
69
|
+
state: "other_state",
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
const evaluatedStateAttrs = evaluateStates({
|
|
73
|
+
fieldName: "data_final",
|
|
74
|
+
values,
|
|
75
|
+
fields,
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
expect(evaluatedStateAttrs.readonly).toBeUndefined();
|
|
79
|
+
});
|
|
80
|
+
it("should properly parse a multiple state field - close", () => {
|
|
81
|
+
const fields = {
|
|
82
|
+
date_due: {
|
|
83
|
+
help:
|
|
84
|
+
"If you use payment terms, the due date will be computed automatically at the generation of accounting entries. If you keep the payment term and the due date empty, it means direct payment. The payment term may compute several due dates, for example 50% now, 50% in one month.",
|
|
85
|
+
states: {
|
|
86
|
+
close: [["readonly", true]],
|
|
87
|
+
open: [["readonly", true]],
|
|
88
|
+
},
|
|
89
|
+
string: "Due Date",
|
|
90
|
+
type: "date",
|
|
91
|
+
views: {},
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
const values = {
|
|
96
|
+
state: "close",
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
const evaluatedStateAttrs = evaluateStates({
|
|
100
|
+
fieldName: "date_due",
|
|
101
|
+
values,
|
|
102
|
+
fields,
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
expect(evaluatedStateAttrs.readonly).toBeTruthy();
|
|
106
|
+
});
|
|
107
|
+
it("should properly parse a multiple state field - no match", () => {
|
|
108
|
+
const fields = {
|
|
109
|
+
date_due: {
|
|
110
|
+
help:
|
|
111
|
+
"If you use payment terms, the due date will be computed automatically at the generation of accounting entries. If you keep the payment term and the due date empty, it means direct payment. The payment term may compute several due dates, for example 50% now, 50% in one month.",
|
|
112
|
+
states: {
|
|
113
|
+
close: [["readonly", true]],
|
|
114
|
+
open: [["readonly", true]],
|
|
115
|
+
},
|
|
116
|
+
string: "Due Date",
|
|
117
|
+
type: "date",
|
|
118
|
+
views: {},
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
const values = {
|
|
123
|
+
state: "no_state",
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
const evaluatedStateAttrs = evaluateStates({
|
|
127
|
+
fieldName: "date_due",
|
|
128
|
+
values,
|
|
129
|
+
fields,
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
expect(evaluatedStateAttrs.readonly).toBeUndefined();
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
describe("in evaluateButtonStates method", () => {
|
|
136
|
+
it("should properly parse an invisible button for state", () => {
|
|
137
|
+
const values = {
|
|
138
|
+
state: "draft",
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
const evaluatedStateAttrs = evaluateButtonStates({
|
|
142
|
+
states: "draft,pending",
|
|
143
|
+
values,
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
expect(evaluatedStateAttrs.invisible).toBeUndefined();
|
|
147
|
+
});
|
|
148
|
+
it("should properly parse an invisible button for unmatched state", () => {
|
|
149
|
+
const values = {
|
|
150
|
+
state: "other",
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
const evaluatedStateAttrs = evaluateButtonStates({
|
|
154
|
+
states: "draft,pending",
|
|
155
|
+
values,
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
expect(evaluatedStateAttrs.invisible).toBeTruthy();
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
});
|