@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.
@@ -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));
@@ -1 +1 @@
1
- {"version":3,"file":"Notebook.js","sourceRoot":"","sources":["../src/Notebook.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD;IAAuB,4BAAe;IASpC,kBAAY,KAAU;QAAtB,YACE,kBAAM,KAAK,CAAC,SAQb;QAPC,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;SACF;;IACH,CAAC;IAhBD,sBAAW,0BAAc;aAAzB;YACE,OAAO,QAAQ,CAAC,eAAe,CAAC;QAClC,CAAC;aACD,UAA0B,KAAa;YACrC,QAAQ,CAAC,eAAe,GAAG,KAAK,CAAC;QACnC,CAAC;;;OAHA;IAHM,wBAAe,GAAW,CAAC,CAAC;IAkBrC,eAAC;CAAA,AAnBD,CAAuB,eAAe,GAmBrC;AAED,eAAe,QAAQ,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;AAElD;IAmCE,cAAY,MAAc;QA1B1B,aAAQ,GAAe,EAAE,CAAC;QAK1B,YAAO,GAAkB,IAAI,CAAC;QAK9B;;WAEG;QACH,UAAK,GAAW,MAAM,CAAC;QAKvB;;WAEG;QACH,YAAO,GAAkB,IAAI,CAAC;QAM5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAhCD,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,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;IAC7D,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,AAtFD,IAsFC;AAED,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Tree.js","sourceRoot":"","sources":["../src/Tree.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.14.0",
3
+ "version": "0.16.0",
4
4
  "dependencies": {
5
5
  "moment": "^2.29.3"
6
6
  },
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) {
@@ -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
+ });
@@ -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
  });