@gisce/ooui 0.14.0 → 0.16.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/dist/Notebook.d.ts +7 -0
- package/dist/Notebook.js +22 -0
- package/dist/Notebook.js.map +1 -1
- package/dist/Tree.d.ts +5 -0
- package/dist/Tree.js +12 -0
- package/dist/Tree.js.map +1 -1
- package/package.json +1 -1
- package/src/Notebook.ts +19 -0
- package/src/Tree.ts +13 -0
- package/src/spec/Form.spec.ts +5 -0
- package/src/spec/Notebook.spec.ts +25 -0
- package/src/spec/Tree.spec.ts +36 -0
package/dist/Notebook.d.ts
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import ContainerWidget from "./ContainerWidget";
|
|
2
|
+
import Page from "./Page";
|
|
3
|
+
export declare type TabPosition = "top" | "bottom" | "left" | "right";
|
|
2
4
|
declare class Notebook extends ContainerWidget {
|
|
3
5
|
static _defaultColspan: number;
|
|
4
6
|
static get defaultColspan(): number;
|
|
5
7
|
static set defaultColspan(value: number);
|
|
8
|
+
_tabPosition: TabPosition;
|
|
9
|
+
get tabPosition(): TabPosition;
|
|
10
|
+
set tabPosition(value: TabPosition);
|
|
11
|
+
_pages: Page[];
|
|
12
|
+
get pages(): Page[];
|
|
6
13
|
constructor(props: any);
|
|
7
14
|
}
|
|
8
15
|
export default Notebook;
|
package/dist/Notebook.js
CHANGED
|
@@ -16,11 +16,16 @@ var Notebook = /** @class */ (function (_super) {
|
|
|
16
16
|
__extends(Notebook, _super);
|
|
17
17
|
function Notebook(props) {
|
|
18
18
|
var _this = _super.call(this, props) || this;
|
|
19
|
+
_this._tabPosition = "top";
|
|
20
|
+
_this._pages = [];
|
|
19
21
|
_this.colspan = Notebook._defaultColspan;
|
|
20
22
|
if (props) {
|
|
21
23
|
if (props.colspan) {
|
|
22
24
|
_this.colspan = props.colspan;
|
|
23
25
|
}
|
|
26
|
+
if (props.tabpos) {
|
|
27
|
+
_this._tabPosition = props.tabpos;
|
|
28
|
+
}
|
|
24
29
|
}
|
|
25
30
|
return _this;
|
|
26
31
|
}
|
|
@@ -34,6 +39,23 @@ var Notebook = /** @class */ (function (_super) {
|
|
|
34
39
|
enumerable: false,
|
|
35
40
|
configurable: true
|
|
36
41
|
});
|
|
42
|
+
Object.defineProperty(Notebook.prototype, "tabPosition", {
|
|
43
|
+
get: function () {
|
|
44
|
+
return this._tabPosition;
|
|
45
|
+
},
|
|
46
|
+
set: function (value) {
|
|
47
|
+
this._tabPosition = value;
|
|
48
|
+
},
|
|
49
|
+
enumerable: false,
|
|
50
|
+
configurable: true
|
|
51
|
+
});
|
|
52
|
+
Object.defineProperty(Notebook.prototype, "pages", {
|
|
53
|
+
get: function () {
|
|
54
|
+
return this._container.rows.map(function (r) { return r[0]; });
|
|
55
|
+
},
|
|
56
|
+
enumerable: false,
|
|
57
|
+
configurable: true
|
|
58
|
+
});
|
|
37
59
|
Notebook._defaultColspan = 3;
|
|
38
60
|
return Notebook;
|
|
39
61
|
}(ContainerWidget));
|
package/dist/Notebook.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Notebook.js","sourceRoot":"","sources":["../src/Notebook.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"Notebook.js","sourceRoot":"","sources":["../src/Notebook.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAKhD;IAAuB,4BAAe;IAsBpC,kBAAY,KAAU;QAAtB,YACE,kBAAM,KAAK,CAAC,SAWb;QAzBD,kBAAY,GAAgB,KAAK,CAAC;QAQlC,YAAM,GAAW,EAAE,CAAC;QAOlB,KAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC;QAExC,IAAI,KAAK,EAAE;YACT,IAAI,KAAK,CAAC,OAAO,EAAE;gBACjB,KAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;aAC9B;YACD,IAAI,KAAK,CAAC,MAAM,EAAE;gBAChB,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;aAClC;SACF;;IACH,CAAC;IAhCD,sBAAW,0BAAc;aAAzB;YACE,OAAO,QAAQ,CAAC,eAAe,CAAC;QAClC,CAAC;aACD,UAA0B,KAAa;YACrC,QAAQ,CAAC,eAAe,GAAG,KAAK,CAAC;QACnC,CAAC;;;OAHA;IAMD,sBAAI,iCAAW;aAAf;YACE,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;aACD,UAAgB,KAAkB;YAChC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC;;;OAHA;IAMD,sBAAI,2BAAK;aAAT;YACE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,CAAC,EAAJ,CAAI,CAAW,CAAC;QACvD,CAAC;;;OAAA;IAnBM,wBAAe,GAAW,CAAC,CAAC;IAkCrC,eAAC;CAAA,AAnCD,CAAuB,eAAe,GAmCrC;AAED,eAAe,QAAQ,CAAC"}
|
package/dist/Tree.d.ts
CHANGED
|
@@ -19,6 +19,11 @@ declare class Tree {
|
|
|
19
19
|
*/
|
|
20
20
|
_colors: string | null;
|
|
21
21
|
get colors(): string | null;
|
|
22
|
+
/**
|
|
23
|
+
* Editable value
|
|
24
|
+
*/
|
|
25
|
+
_editable: "top" | " bottom" | null;
|
|
26
|
+
get editable(): "top" | " bottom" | null;
|
|
22
27
|
constructor(fields: Object);
|
|
23
28
|
parse(xml: string): void;
|
|
24
29
|
parseNode(node: Element): void;
|
package/dist/Tree.js
CHANGED
|
@@ -12,6 +12,10 @@ var Tree = /** @class */ (function () {
|
|
|
12
12
|
* Color expression value
|
|
13
13
|
*/
|
|
14
14
|
this._colors = null;
|
|
15
|
+
/**
|
|
16
|
+
* Editable value
|
|
17
|
+
*/
|
|
18
|
+
this._editable = null;
|
|
15
19
|
this._fields = fields;
|
|
16
20
|
}
|
|
17
21
|
Object.defineProperty(Tree.prototype, "fields", {
|
|
@@ -49,12 +53,20 @@ var Tree = /** @class */ (function () {
|
|
|
49
53
|
enumerable: false,
|
|
50
54
|
configurable: true
|
|
51
55
|
});
|
|
56
|
+
Object.defineProperty(Tree.prototype, "editable", {
|
|
57
|
+
get: function () {
|
|
58
|
+
return this._editable;
|
|
59
|
+
},
|
|
60
|
+
enumerable: false,
|
|
61
|
+
configurable: true
|
|
62
|
+
});
|
|
52
63
|
Tree.prototype.parse = function (xml) {
|
|
53
64
|
var parser = new DOMParser();
|
|
54
65
|
var view = parser.parseFromString(xml, "text/xml");
|
|
55
66
|
this.parseNode(view.documentElement);
|
|
56
67
|
this._string = view.documentElement.getAttribute("string");
|
|
57
68
|
this._colors = view.documentElement.getAttribute("colors");
|
|
69
|
+
this._editable = view.documentElement.getAttribute("editable");
|
|
58
70
|
};
|
|
59
71
|
Tree.prototype.parseNode = function (node) {
|
|
60
72
|
var _this = this;
|
package/dist/Tree.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tree.js","sourceRoot":"","sources":["../src/Tree.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"Tree.js","sourceRoot":"","sources":["../src/Tree.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIlD;IA2CE,cAAY,MAAc;QAlC1B,aAAQ,GAAe,EAAE,CAAC;QAK1B,YAAO,GAAkB,IAAI,CAAC;QAK9B;;WAEG;QACH,UAAK,GAAW,MAAM,CAAC;QAKvB;;WAEG;QACH,YAAO,GAAkB,IAAI,CAAC;QAK9B;;WAEG;QACH,cAAS,GAA6B,IAAI,CAAC;QAMzC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAxCD,sBAAI,wBAAM;aAAV;YACE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;;;OAAA;IAGD,sBAAI,yBAAO;aAAX;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;;;OAAA;IAGD,sBAAI,wBAAM;aAAV;YACE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;;;OAAA;IAMD,sBAAI,sBAAI;aAAR;YACE,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;;;OAAA;IAMD,sBAAI,wBAAM;aAAV;YACE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;;;OAAA;IAMD,sBAAI,0BAAQ;aAAZ;YACE,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;;;OAAA;IAMD,oBAAK,GAAL,UAAM,GAAW;QACf,IAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC/B,IAAM,IAAI,GAAa,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC/D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAChD,UAAU,CACY,CAAC;IAC3B,CAAC;IAED,wBAAS,GAAT,UAAU,IAAa;QAAvB,iBA0BC;QAzBC,IAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QAE1C,IAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE9D,WAAW,CAAC,OAAO,CAAC,UAAC,UAAU;;YACrB,IAAA,GAAG,GAAoB,UAAU,IAA9B,EAAE,aAAa,GAAK,UAAU,cAAf,CAAgB;YAC1C,IAAI,SAAS,GACX,aAAa,CAAC,SAAS,WAAI,KAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,0CAAE,SAAS,CAAA,CAAC;YAEzE,IACE,SAAS,KAAK,CAAC;gBACf,SAAS,KAAK,GAAG;gBACjB,SAAS,KAAK,IAAI;gBAClB,SAAS,KAAK,MAAM,EACpB;gBACA,SAAS,GAAG,IAAI,CAAC;aAClB;iBAAM;gBACL,SAAS,GAAG,KAAK,CAAC;aACnB;YAED,IAAI,CAAC,SAAS,EAAE;gBACd,IAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;gBAC9D,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC5B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,uBAAQ,GAAR,UAAS,EAAU;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,IAAI;YAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACH,WAAC;AAAD,CAAC,AAjGD,IAiGC;AAED,eAAe,IAAI,CAAC"}
|
package/package.json
CHANGED
package/src/Notebook.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import ContainerWidget from "./ContainerWidget";
|
|
2
|
+
import Page from "./Page";
|
|
3
|
+
|
|
4
|
+
export type TabPosition = "top" | "bottom" | "left" | "right";
|
|
2
5
|
|
|
3
6
|
class Notebook extends ContainerWidget {
|
|
4
7
|
static _defaultColspan: number = 3;
|
|
@@ -9,6 +12,19 @@ class Notebook extends ContainerWidget {
|
|
|
9
12
|
Notebook._defaultColspan = value;
|
|
10
13
|
}
|
|
11
14
|
|
|
15
|
+
_tabPosition: TabPosition = "top";
|
|
16
|
+
get tabPosition(): TabPosition {
|
|
17
|
+
return this._tabPosition;
|
|
18
|
+
}
|
|
19
|
+
set tabPosition(value: TabPosition) {
|
|
20
|
+
this._tabPosition = value;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
_pages: Page[] = [];
|
|
24
|
+
get pages(): Page[] {
|
|
25
|
+
return this._container.rows.map(r => r[0]) as Page[];
|
|
26
|
+
}
|
|
27
|
+
|
|
12
28
|
constructor(props: any) {
|
|
13
29
|
super(props);
|
|
14
30
|
this.colspan = Notebook._defaultColspan;
|
|
@@ -17,6 +33,9 @@ class Notebook extends ContainerWidget {
|
|
|
17
33
|
if (props.colspan) {
|
|
18
34
|
this.colspan = props.colspan;
|
|
19
35
|
}
|
|
36
|
+
if (props.tabpos) {
|
|
37
|
+
this._tabPosition = props.tabpos;
|
|
38
|
+
}
|
|
20
39
|
}
|
|
21
40
|
}
|
|
22
41
|
}
|
package/src/Tree.ts
CHANGED
|
@@ -2,6 +2,8 @@ import WidgetFactory from "./WidgetFactory";
|
|
|
2
2
|
import Widget from "./Widget";
|
|
3
3
|
import { parseNodes } from "./helpers/nodeParser";
|
|
4
4
|
|
|
5
|
+
type EditableTreeOptions = "top" | " bottom" | null;
|
|
6
|
+
|
|
5
7
|
class Tree {
|
|
6
8
|
/**
|
|
7
9
|
* Object containing fields specification of the form.
|
|
@@ -37,6 +39,14 @@ class Tree {
|
|
|
37
39
|
return this._colors;
|
|
38
40
|
}
|
|
39
41
|
|
|
42
|
+
/**
|
|
43
|
+
* Editable value
|
|
44
|
+
*/
|
|
45
|
+
_editable: "top" | " bottom" | null = null;
|
|
46
|
+
get editable(): "top" | " bottom" | null {
|
|
47
|
+
return this._editable;
|
|
48
|
+
}
|
|
49
|
+
|
|
40
50
|
constructor(fields: Object) {
|
|
41
51
|
this._fields = fields;
|
|
42
52
|
}
|
|
@@ -47,6 +57,9 @@ class Tree {
|
|
|
47
57
|
this.parseNode(view.documentElement);
|
|
48
58
|
this._string = view.documentElement.getAttribute("string");
|
|
49
59
|
this._colors = view.documentElement.getAttribute("colors");
|
|
60
|
+
this._editable = view.documentElement.getAttribute(
|
|
61
|
+
"editable"
|
|
62
|
+
) as EditableTreeOptions;
|
|
50
63
|
}
|
|
51
64
|
|
|
52
65
|
parseNode(node: Element) {
|
package/src/spec/Form.spec.ts
CHANGED
|
@@ -250,6 +250,10 @@ describe("A Form", () => {
|
|
|
250
250
|
<page string="Page1" col="8">
|
|
251
251
|
<field colspan="16" name="char1" />
|
|
252
252
|
</page>
|
|
253
|
+
<page string="Page2">
|
|
254
|
+
</page>
|
|
255
|
+
<page string="Page3">
|
|
256
|
+
</page>
|
|
253
257
|
</notebook>
|
|
254
258
|
</form>`;
|
|
255
259
|
const form = new Form(fields);
|
|
@@ -259,6 +263,7 @@ describe("A Form", () => {
|
|
|
259
263
|
expect(notebook).toBeInstanceOf(Notebook);
|
|
260
264
|
const page = notebook.container.rows[0][0] as Page;
|
|
261
265
|
expect(page).toBeInstanceOf(Page);
|
|
266
|
+
expect(notebook.pages).toHaveLength(3);
|
|
262
267
|
const labelField = page.container.rows[0][0];
|
|
263
268
|
expect(labelField).toBeInstanceOf(Label);
|
|
264
269
|
const charField = page.container.rows[0][1];
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import WidgetFactory from "../WidgetFactory";
|
|
2
|
+
|
|
3
|
+
describe("A Notebook", () => {
|
|
4
|
+
it("should have tabs position default to top", () => {
|
|
5
|
+
const widgetFactory = new WidgetFactory();
|
|
6
|
+
const props = {
|
|
7
|
+
string: "Page 1",
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const widget = widgetFactory.createWidget("notebook", props);
|
|
11
|
+
expect(widget.tabPosition).toBe("top")
|
|
12
|
+
});
|
|
13
|
+
it("should allow position to bottom, left, right", () => {
|
|
14
|
+
const widgetFactory = new WidgetFactory();
|
|
15
|
+
["bottom", "left", "rigth"].map(pos => {
|
|
16
|
+
const props = {
|
|
17
|
+
string: "Page 1",
|
|
18
|
+
tabpos: pos
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const widget = widgetFactory.createWidget("notebook", props);
|
|
22
|
+
expect(widget.tabPosition).toBe(pos)
|
|
23
|
+
})
|
|
24
|
+
});
|
|
25
|
+
});
|
package/src/spec/Tree.spec.ts
CHANGED
|
@@ -210,5 +210,41 @@ describe("A Tree", () => {
|
|
|
210
210
|
expect(nameWidget).toBeUndefined();
|
|
211
211
|
expect(surnamesWidget).toBeUndefined();
|
|
212
212
|
expect(cityWidget!.id).toBe("city");
|
|
213
|
+
expect(tree.editable).toBeNull();
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
it("Must parse an editable tree", () => {
|
|
217
|
+
const tree = new Tree({
|
|
218
|
+
name: {
|
|
219
|
+
required: true,
|
|
220
|
+
select: true,
|
|
221
|
+
size: 128,
|
|
222
|
+
string: "Name",
|
|
223
|
+
type: "char",
|
|
224
|
+
views: {},
|
|
225
|
+
},
|
|
226
|
+
surnames: {
|
|
227
|
+
required: true,
|
|
228
|
+
select: true,
|
|
229
|
+
size: 128,
|
|
230
|
+
string: "Surnames",
|
|
231
|
+
type: "char",
|
|
232
|
+
views: {},
|
|
233
|
+
invisible: true,
|
|
234
|
+
},
|
|
235
|
+
city: {
|
|
236
|
+
required: true,
|
|
237
|
+
select: true,
|
|
238
|
+
size: 128,
|
|
239
|
+
string: "City",
|
|
240
|
+
type: "char",
|
|
241
|
+
views: {},
|
|
242
|
+
},
|
|
243
|
+
});
|
|
244
|
+
tree.parse(
|
|
245
|
+
`<tree string="Partners" editable="top" colors="red:type=='updated'"><field name="name" sum="Name" invisible="1" /><field name="surnames" sum="Surnames" /><field name="city" sum="City" /></tree>`
|
|
246
|
+
);
|
|
247
|
+
|
|
248
|
+
expect(tree.editable).toBe("top");
|
|
213
249
|
});
|
|
214
250
|
});
|