@contrail/document-generation 1.0.34 → 2.0.3

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,20 @@
1
+ import { DocumentElement, PositionDefinition } from "@contrail/documents";
2
+ import { DocumentGenerationOptions, DocumentTemplate } from "./interfaces";
3
+ import { DataGroup } from "@contrail/data-grouping";
4
+ export declare class BoardDocumentGenerator {
5
+ constructor();
6
+ static generateDocumentElements(options: DocumentGenerationOptions): Array<DocumentElement>;
7
+ static adjustPositionBasedGroupHeaderSpan(currentPosition: PositionDefinition, template: DocumentTemplate, subGroup: DataGroup, totalDepth: number, currentDepth: number): {
8
+ x: number;
9
+ y: number;
10
+ };
11
+ static adjustPositionBasedOnGroupHeaderSize(currentPosition: PositionDefinition, template: DocumentTemplate): {
12
+ x: number;
13
+ y: number;
14
+ };
15
+ static generateBoardGroupHeaders(group: DataGroup, template: DocumentTemplate, startingPosition: PositionDefinition, totalDepth: number, currentDepth: number): any[];
16
+ static generateBoardFrames(group: DataGroup, template: DocumentTemplate, startingPosition: PositionDefinition, totalDepth: number, currentDepth: number): any[];
17
+ static getGroupSpan(group: DataGroup, totalDepth: any, currentDepth: any): number;
18
+ static generateFrameGroup(dataGroup: DataGroup, template: DocumentTemplate, position: PositionDefinition): Array<DocumentElement>;
19
+ static generateBoardGroupHeader(dataGroup: DataGroup, template: DocumentTemplate, position: PositionDefinition, span: any): any[];
20
+ }
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BoardDocumentGenerator = void 0;
4
+ const documents_1 = require("@contrail/documents");
5
+ const interfaces_1 = require("./interfaces");
6
+ const util_1 = require("@contrail/util");
7
+ const frame_generator_1 = require("./frames/frame-generator");
8
+ const document_util_1 = require("./util/document-util");
9
+ class BoardDocumentGenerator {
10
+ constructor() {
11
+ }
12
+ static generateDocumentElements(options) {
13
+ const elements = [];
14
+ const structure = options.data.dataGroup;
15
+ const template = options.documentTemplateDefinition;
16
+ console.log("generateDocumentElements: ", structure.depth, structure.groupingProperties.length);
17
+ let position = options.startingCoordinates || { x: 0, y: 0 };
18
+ const group = structure.rootGroup;
19
+ elements.push(...this.generateBoardGroupHeaders(group, template, position, structure.depth, 0));
20
+ elements.push(...this.generateBoardFrames(group, template, position, structure.depth, 0));
21
+ return elements;
22
+ }
23
+ static adjustPositionBasedGroupHeaderSpan(currentPosition, template, subGroup, totalDepth, currentDepth) {
24
+ let frameSetMultiple = this.getGroupSpan(subGroup, totalDepth, currentDepth + 1);
25
+ let paddingMultiple = 1;
26
+ if (currentDepth < totalDepth) {
27
+ paddingMultiple = frameSetMultiple;
28
+ }
29
+ if (template.frameOrientation === interfaces_1.Orientation.HORIZONTAL) {
30
+ return { x: currentPosition.x, y: currentPosition.y + (template.frameSize.height * frameSetMultiple) + (template.framePadding * paddingMultiple) };
31
+ }
32
+ else {
33
+ return { x: currentPosition.x + (template.frameSize.width * frameSetMultiple) + (template.framePadding * paddingMultiple), y: currentPosition.y };
34
+ }
35
+ }
36
+ static adjustPositionBasedOnGroupHeaderSize(currentPosition, template) {
37
+ let groupHeaderDimensions = { width: template.frameSize.width, height: template.frameGroupHeaderTemplate.size.height };
38
+ if (template.frameOrientation === interfaces_1.Orientation.HORIZONTAL) {
39
+ return { x: currentPosition.x + groupHeaderDimensions.height + template.framePadding, y: currentPosition.y };
40
+ }
41
+ else {
42
+ return { x: currentPosition.x, y: currentPosition.y + groupHeaderDimensions.height + template.framePadding };
43
+ }
44
+ }
45
+ static generateBoardGroupHeaders(group, template, startingPosition, totalDepth, currentDepth) {
46
+ const elements = [];
47
+ let position = util_1.ObjectUtil.cloneDeep(startingPosition);
48
+ if (currentDepth > 0) {
49
+ let groupHeaderPosition = { x: position.x + template.framePadding, y: position.y + template.framePadding };
50
+ let span = this.getGroupSpan(group, totalDepth, currentDepth);
51
+ elements.push(...this.generateBoardGroupHeader(group, template, groupHeaderPosition, span));
52
+ position = this.adjustPositionBasedOnGroupHeaderSize(position, template);
53
+ }
54
+ if (currentDepth < totalDepth) {
55
+ for (let subGroup of group.subGroups) {
56
+ elements.push(...this.generateBoardGroupHeaders(subGroup, template, position, totalDepth, currentDepth + 1));
57
+ position = util_1.ObjectUtil.cloneDeep(this.adjustPositionBasedGroupHeaderSpan(position, template, subGroup, totalDepth, currentDepth));
58
+ }
59
+ }
60
+ return elements;
61
+ }
62
+ static generateBoardFrames(group, template, startingPosition, totalDepth, currentDepth) {
63
+ const elements = [];
64
+ let position = util_1.ObjectUtil.cloneDeep(startingPosition);
65
+ if (currentDepth > 0) {
66
+ position = this.adjustPositionBasedOnGroupHeaderSize(position, template);
67
+ }
68
+ if (currentDepth === totalDepth) {
69
+ elements.push(...this.generateFrameGroup(group, template, position));
70
+ }
71
+ if (currentDepth < totalDepth) {
72
+ for (let subGroup of group.subGroups) {
73
+ elements.push(...this.generateBoardFrames(subGroup, template, position, totalDepth, currentDepth + 1));
74
+ position = util_1.ObjectUtil.cloneDeep(this.adjustPositionBasedGroupHeaderSpan(position, template, subGroup, totalDepth, currentDepth));
75
+ }
76
+ }
77
+ return elements;
78
+ }
79
+ static getGroupSpan(group, totalDepth, currentDepth) {
80
+ let span = 1;
81
+ if (currentDepth !== totalDepth) {
82
+ span = group.subGroups.length;
83
+ }
84
+ return span;
85
+ }
86
+ static generateFrameGroup(dataGroup, template, position) {
87
+ const elements = [];
88
+ let framePosition = { x: position.x + template.framePadding, y: position.y + template.framePadding };
89
+ for (let group of dataGroup.subGroups) {
90
+ let frame = frame_generator_1.FrameGenerator.generateBoardFrameForDataGroup(group, framePosition, template);
91
+ elements.push(...frame.toDocumentElements());
92
+ if (template.frameOrientation === interfaces_1.Orientation.HORIZONTAL) {
93
+ framePosition.x = framePosition.x + template.frameSize.width + template.framePadding || 10;
94
+ }
95
+ else {
96
+ framePosition.y = framePosition.y + template.frameSize.height + template.framePadding || 10;
97
+ }
98
+ }
99
+ return elements;
100
+ }
101
+ static generateBoardGroupHeader(dataGroup, template, position, span) {
102
+ const elements = [];
103
+ const heading = documents_1.DocumentElementFactory.createTextElement("Placeholder", {});
104
+ heading.style = { border: { width: 1, color: "rgba(0,0,0,0)" }, color: "#000000", backgroundColor: template.frameGroupHeaderTemplate.style.backgroundColor || 'black' };
105
+ heading.text = `<p><span style=\"font-size: ${template.frameGroupHeaderTemplate.style.font.size}pt;\"><strong><span style=\"color: ${template.frameGroupHeaderTemplate.style.color};\">${document_util_1.DocumentUtil.sanitizeHTML(dataGroup.name)}</span></strong></span></p>`;
106
+ heading.position = position;
107
+ if (template.frameOrientation === interfaces_1.Orientation.HORIZONTAL) {
108
+ let sizeDim = template.frameSize.height * span;
109
+ if (span > 1) {
110
+ sizeDim += (span - 1) * template.framePadding;
111
+ }
112
+ heading.size = { width: sizeDim, height: template.frameGroupHeaderTemplate.size.height };
113
+ heading.rotate = { angle: 270 };
114
+ heading.position.x = heading.position.x - (heading.size.width / 2) + (heading.size.height / 2);
115
+ heading.position.y = heading.position.y + (heading.size.width / 2) - (heading.size.height / 2);
116
+ }
117
+ else {
118
+ let sizeDim = template.frameSize.width * span;
119
+ if (span > 1) {
120
+ sizeDim += (span - 1) * template.framePadding;
121
+ }
122
+ heading.rotate = { angle: 0 };
123
+ heading.size = { width: sizeDim, height: template.frameGroupHeaderTemplate.size.height };
124
+ }
125
+ elements.push(heading);
126
+ return elements;
127
+ }
128
+ }
129
+ exports.BoardDocumentGenerator = BoardDocumentGenerator;
@@ -20,7 +20,6 @@ class ComponentGridGenerator {
20
20
  }
21
21
  const elements = [];
22
22
  let dataIndex = 0;
23
- console.log("generateComponentGrid: idealSize: ", idealSize);
24
23
  let gridTemplate = template;
25
24
  const optimizeTemplate = true;
26
25
  if (optimizeTemplate) {
@@ -1,11 +1,6 @@
1
- import { DocumentElement, PositionDefinition } from "@contrail/documents";
2
- import { DocumentGenerationOptions, DocumentTemplate } from "./interfaces";
3
- import { DataGroup } from "@contrail/data-grouping";
1
+ import { DocumentElement } from "@contrail/documents";
2
+ import { DocumentGenerationOptions } from "./interfaces";
4
3
  export declare class DocumentGenerator {
5
4
  constructor();
6
5
  static generateDocumentElements(options: DocumentGenerationOptions): Array<DocumentElement>;
7
- static generateGroup(group: DataGroup, template: any, startingPosition: any, totalDepth: any, currentDepth: any): any[];
8
- static getGroupSpan(group: DataGroup, totalDepth: any, currentDepth: any): number;
9
- static generateFrameGroup(dataGroup: DataGroup, template: DocumentTemplate, position: PositionDefinition): Array<DocumentElement>;
10
- static generateGroupHeading(dataGroup: DataGroup, template: DocumentTemplate, position: PositionDefinition, span: any): any[];
11
6
  }
@@ -1,107 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DocumentGenerator = void 0;
4
- const documents_1 = require("@contrail/documents");
5
- const interfaces_1 = require("./interfaces");
6
- const util_1 = require("@contrail/util");
7
- const frame_generator_1 = require("./frame-generator");
8
- const document_util_1 = require("./util/document-util");
4
+ const board_document_generator_1 = require("./board-document-generator");
9
5
  class DocumentGenerator {
10
6
  constructor() {
11
7
  }
12
8
  static generateDocumentElements(options) {
13
- const elements = [];
14
- const structure = options.data.dataGroup;
15
- const template = options.documentTemplateDefinition;
16
- console.log("generateDocumentElements: ", structure.depth, structure.groupingProperties.length);
17
- let position = options.startingCoordinates || { x: 0, y: 0 };
18
- const group = structure.rootGroup;
19
- elements.push(...this.generateGroup(group, template, position, structure.depth, 0));
20
- return elements;
21
- }
22
- static generateGroup(group, template, startingPosition, totalDepth, currentDepth) {
23
- const elements = [];
24
- let position = util_1.ObjectUtil.cloneDeep(startingPosition);
25
- if (currentDepth > 0) {
26
- let groupHeaderPosition = { x: position.x + template.framePadding, y: position.y + template.framePadding };
27
- let span = this.getGroupSpan(group, totalDepth, currentDepth);
28
- elements.push(...this.generateGroupHeading(group, template, groupHeaderPosition, span));
29
- let groupHeaderDimensions = { width: template.frameSize.width, height: template.frameGroupHeaderTemplate.size.height };
30
- if (template.frameOrientation === interfaces_1.Orientation.HORIZONTAL) {
31
- position = { x: position.x + groupHeaderDimensions.height + template.framePadding, y: position.y };
32
- }
33
- else {
34
- position = { x: position.x, y: position.y + groupHeaderDimensions.height + template.framePadding };
35
- }
36
- }
37
- if (currentDepth === totalDepth) {
38
- elements.push(...this.generateFrameGroup(group, template, position));
39
- }
40
- if (currentDepth < totalDepth) {
41
- for (let subGroup of group.subGroups) {
42
- elements.push(...this.generateGroup(subGroup, template, position, totalDepth, currentDepth + 1));
43
- let frameSetMultiple = this.getGroupSpan(subGroup, totalDepth, currentDepth + 1);
44
- let paddingMultiple = 1;
45
- if (currentDepth < totalDepth) {
46
- paddingMultiple = frameSetMultiple;
47
- }
48
- if (template.frameOrientation === interfaces_1.Orientation.HORIZONTAL) {
49
- position = { x: position.x, y: position.y + (template.frameSize.height * frameSetMultiple) + (template.framePadding * paddingMultiple) };
50
- }
51
- else {
52
- position = { x: position.x + (template.frameSize.width * frameSetMultiple) + (template.framePadding * paddingMultiple), y: position.y };
53
- }
54
- }
55
- }
56
- return elements;
57
- }
58
- static getGroupSpan(group, totalDepth, currentDepth) {
59
- let span = 1;
60
- if (currentDepth !== totalDepth) {
61
- span = group.subGroups.length;
62
- }
63
- return span;
64
- }
65
- static generateFrameGroup(dataGroup, template, position) {
66
- const elements = [];
67
- let framePosition = { x: position.x + template.framePadding, y: position.y + template.framePadding };
68
- for (let group of dataGroup.subGroups) {
69
- elements.push(...frame_generator_1.FrameGenerator.generateFrameForDataGroup(group, framePosition, template));
70
- if (template.frameOrientation === interfaces_1.Orientation.HORIZONTAL) {
71
- framePosition.x = framePosition.x + template.frameSize.width + template.framePadding || 10;
72
- }
73
- else {
74
- framePosition.y = framePosition.y + template.frameSize.height + template.framePadding || 10;
75
- }
76
- }
77
- return elements;
78
- }
79
- static generateGroupHeading(dataGroup, template, position, span) {
80
- const elements = [];
81
- const heading = documents_1.DocumentElementFactory.createTextElement("Placeholder", {});
82
- heading.style = { border: { width: 1, color: "rgba(0,0,0,0)" }, color: "#000000", backgroundColor: template.frameGroupHeaderTemplate.style.backgroundColor || 'black' };
83
- heading.text = `<p><span style=\"font-size: ${template.frameGroupHeaderTemplate.style.font.size}pt;\"><strong><span style=\"color: ${template.frameGroupHeaderTemplate.style.color};\">${document_util_1.DocumentUtil.sanitizeHTML(dataGroup.name)}</span></strong></span></p>`;
84
- heading.position = position;
85
- if (template.frameOrientation === interfaces_1.Orientation.HORIZONTAL) {
86
- let sizeDim = template.frameSize.height * span;
87
- if (span > 1) {
88
- sizeDim += (span - 1) * template.framePadding;
89
- }
90
- heading.size = { width: sizeDim, height: template.frameGroupHeaderTemplate.size.height };
91
- heading.rotate = { angle: 270 };
92
- heading.position.x = heading.position.x - (heading.size.width / 2) + (heading.size.height / 2);
93
- heading.position.y = heading.position.y + (heading.size.width / 2) - (heading.size.height / 2);
94
- }
95
- else {
96
- let sizeDim = template.frameSize.width * span;
97
- if (span > 1) {
98
- sizeDim += (span - 1) * template.framePadding;
99
- }
100
- heading.rotate = { angle: 0 };
101
- heading.size = { width: sizeDim, height: template.frameGroupHeaderTemplate.size.height };
102
- }
103
- elements.push(heading);
104
- return elements;
9
+ return board_document_generator_1.BoardDocumentGenerator.generateDocumentElements(options);
105
10
  }
106
11
  }
107
12
  exports.DocumentGenerator = DocumentGenerator;
@@ -1,8 +1,10 @@
1
1
  import { DocumentElement, PositionDefinition, SizeDefinition } from "@contrail/documents";
2
2
  import { DataGroup } from "@contrail/data-grouping";
3
- import { DocumentTemplate } from "./interfaces";
3
+ import { DocumentTemplate } from "../interfaces";
4
+ import { DocumentFrame } from "./frame";
4
5
  export declare class FrameGenerator {
5
- static generateFrameForDataGroup(dataGroup: DataGroup, framePosition: PositionDefinition, template: DocumentTemplate): any[];
6
+ static generateBoardFrameForDataGroup(dataGroup: DataGroup, framePosition: PositionDefinition, template: DocumentTemplate): DocumentFrame;
7
+ static generateFrameContentForGroup(frame: DocumentFrame, dataGroup: DataGroup, template: DocumentTemplate): DocumentFrame;
6
8
  static generateFrameHeaderForDataGroup(dataGroup: DataGroup, position: PositionDefinition, template: DocumentTemplate, headerSize: SizeDefinition): DocumentElement[];
7
9
  static generateFrameInfoPanelForDataGroup(dataGroup: DataGroup, position: PositionDefinition, template: DocumentTemplate, panelSize: SizeDefinition): DocumentElement[];
8
10
  static generateFrame(options: DocumentElement): DocumentElement;
@@ -2,45 +2,48 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FrameGenerator = void 0;
4
4
  const documents_1 = require("@contrail/documents");
5
- const component_grid_generator_1 = require("./components/component-grid-generator");
5
+ const component_grid_generator_1 = require("../components/component-grid-generator");
6
6
  const util_1 = require("@contrail/util");
7
- const document_util_1 = require("./util/document-util");
8
- const info_panel_generator_1 = require("./info-panel/info-panel-generator");
7
+ const document_util_1 = require("../util/document-util");
8
+ const info_panel_generator_1 = require("../info-panel/info-panel-generator");
9
+ const frame_1 = require("./frame");
9
10
  class FrameGenerator {
10
- static generateFrameForDataGroup(dataGroup, framePosition, template) {
11
+ static generateBoardFrameForDataGroup(dataGroup, framePosition, template) {
12
+ const style = { backgroundColor: "#fff", border: { width: 1, color: "#616161" } };
13
+ let frame = new frame_1.BoardFrame(dataGroup.name, util_1.ObjectUtil.cloneDeep(framePosition), template.frameSize, style);
14
+ frame = this.generateFrameContentForGroup(frame, dataGroup, template);
15
+ return frame;
16
+ }
17
+ static generateFrameContentForGroup(frame, dataGroup, template) {
11
18
  var _a, _b;
12
- const elements = [];
13
- const frame = this.generateFrame({
14
- position: util_1.ObjectUtil.cloneDeep(framePosition),
15
- size: template.frameSize,
16
- style: { backgroundColor: "#fff", border: { width: 1, color: "#616161" } }
17
- });
18
- frame.name = dataGroup.name;
19
19
  const FRAME_PADDING = 20;
20
- const headerPosition = util_1.ObjectUtil.cloneDeep(framePosition);
21
- headerPosition.y = headerPosition.y + FRAME_PADDING;
22
- headerPosition.x = headerPosition.x + FRAME_PADDING;
23
- const panelPosition = util_1.ObjectUtil.cloneDeep(framePosition);
24
- panelPosition.y = panelPosition.y + FRAME_PADDING;
25
- panelPosition.x = panelPosition.x + FRAME_PADDING;
20
+ const headerPosition = {
21
+ x: FRAME_PADDING,
22
+ y: FRAME_PADDING
23
+ };
24
+ const panelPosition = {
25
+ x: FRAME_PADDING,
26
+ y: FRAME_PADDING
27
+ };
26
28
  let frameHeaderDimensions = { height: 0, width: 0 };
27
29
  let framePanelDimensions = { height: 0, width: 0 };
28
30
  let hasPanel = false;
29
31
  let hasHeader = false;
30
- elements.push(util_1.ObjectUtil.cloneDeep(frame));
31
32
  if (template.frameHeaderTemplate) {
32
33
  hasHeader = true;
33
34
  frameHeaderDimensions = { height: 50, width: template.frameSize.width - 50 };
34
- elements.push(...this.generateFrameHeaderForDataGroup(dataGroup, headerPosition, template, frameHeaderDimensions));
35
+ const headerElements = this.generateFrameHeaderForDataGroup(dataGroup, headerPosition, template, frameHeaderDimensions);
36
+ frame.addDocumentElements(headerElements);
35
37
  }
36
38
  if (template.frameInfoPanelTemplate) {
37
39
  hasPanel = true;
38
40
  framePanelDimensions = { width: ((_b = (_a = template.frameInfoPanelTemplate.panelDocumentTemplate) === null || _a === void 0 ? void 0 : _a.size) === null || _b === void 0 ? void 0 : _b.width) || 300 };
39
41
  framePanelDimensions.height = template.frameSize.height - (2 * FRAME_PADDING);
40
- elements.push(...this.generateFrameInfoPanelForDataGroup(dataGroup, panelPosition, template, framePanelDimensions));
42
+ const panelElements = this.generateFrameInfoPanelForDataGroup(dataGroup, panelPosition, template, framePanelDimensions);
43
+ frame.addDocumentElements(panelElements);
41
44
  }
42
45
  const GRID_MARGIN = 20;
43
- let gridPosition = util_1.ObjectUtil.cloneDeep(framePosition);
46
+ let gridPosition = { x: 0, y: 0 };
44
47
  if (hasHeader) {
45
48
  gridPosition = util_1.ObjectUtil.cloneDeep(headerPosition);
46
49
  gridPosition.y = gridPosition.y + frameHeaderDimensions.height + GRID_MARGIN;
@@ -49,14 +52,14 @@ class FrameGenerator {
49
52
  gridPosition = util_1.ObjectUtil.cloneDeep(panelPosition);
50
53
  gridPosition.x = gridPosition.x + framePanelDimensions.width + GRID_MARGIN;
51
54
  }
52
- const relativeGridPosition = document_util_1.DocumentUtil.getRelativePosition(framePosition, gridPosition);
53
55
  const frameSize = template.frameSize;
54
56
  const idealGridSize = {
55
- width: frameSize.width - relativeGridPosition.x - FRAME_PADDING,
56
- height: frameSize.height - relativeGridPosition.y - FRAME_PADDING
57
+ width: frameSize.width - gridPosition.x - FRAME_PADDING,
58
+ height: frameSize.height - gridPosition.y - FRAME_PADDING
57
59
  };
58
- elements.push(...component_grid_generator_1.ComponentGridGenerator.generateComponentGrid(dataGroup.data, gridPosition, template.componentGridTemplate, idealGridSize));
59
- return elements;
60
+ const gridElements = component_grid_generator_1.ComponentGridGenerator.generateComponentGrid(dataGroup.data, gridPosition, template.componentGridTemplate, idealGridSize);
61
+ frame.addDocumentElements(gridElements);
62
+ return frame;
60
63
  }
61
64
  static generateFrameHeaderForDataGroup(dataGroup, position, template, headerSize) {
62
65
  const heading = documents_1.DocumentElementFactory.createTextElement(dataGroup.name, template.frameHeaderTemplate);
@@ -0,0 +1,15 @@
1
+ import { DocumentElement, PositionDefinition, SizeDefinition, StyleDefinition } from "@contrail/documents";
2
+ export declare abstract class DocumentFrame {
3
+ frameContentElements: Array<DocumentElement>;
4
+ constructor();
5
+ addDocumentElements(elements: Array<DocumentElement>): void;
6
+ toDocumentElements(): Array<DocumentElement>;
7
+ }
8
+ export declare class ShowcaseFrame extends DocumentFrame {
9
+ }
10
+ export declare class BoardFrame extends DocumentFrame {
11
+ private frameElement;
12
+ name: string;
13
+ constructor(name: string, position: PositionDefinition, size: SizeDefinition, style: StyleDefinition);
14
+ toDocumentElements(): Array<DocumentElement>;
15
+ }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BoardFrame = exports.ShowcaseFrame = exports.DocumentFrame = void 0;
4
+ const documents_1 = require("@contrail/documents");
5
+ const util_1 = require("@contrail/util");
6
+ class DocumentFrame {
7
+ constructor() {
8
+ this.frameContentElements = [];
9
+ }
10
+ addDocumentElements(elements) {
11
+ this.frameContentElements.push(...elements);
12
+ }
13
+ toDocumentElements() {
14
+ const elements = [];
15
+ elements.push(...this.frameContentElements);
16
+ return elements;
17
+ }
18
+ }
19
+ exports.DocumentFrame = DocumentFrame;
20
+ class ShowcaseFrame extends DocumentFrame {
21
+ }
22
+ exports.ShowcaseFrame = ShowcaseFrame;
23
+ class BoardFrame extends DocumentFrame {
24
+ constructor(name, position, size, style) {
25
+ super();
26
+ if (!position) {
27
+ position = { x: 0, y: 0 };
28
+ }
29
+ if (!size) {
30
+ size = { width: 1200, height: 675 };
31
+ }
32
+ if (!style) {
33
+ style = {};
34
+ }
35
+ this.frameElement = documents_1.DocumentElementFactory.createFrameElement({ size, position, style });
36
+ this.frameElement.name = name;
37
+ }
38
+ toDocumentElements() {
39
+ const elements = [];
40
+ elements.push(this.frameElement);
41
+ const repositionedElements = [];
42
+ for (let element of util_1.ObjectUtil.cloneDeep(this.frameContentElements)) {
43
+ if (this.frameElement.position.x !== 0) {
44
+ element.position.x += this.frameElement.position.x;
45
+ }
46
+ if (this.frameElement.position.y !== 0) {
47
+ element.position.y += this.frameElement.position.y;
48
+ }
49
+ repositionedElements.push(element);
50
+ }
51
+ elements.push(...repositionedElements);
52
+ return elements;
53
+ }
54
+ }
55
+ exports.BoardFrame = BoardFrame;
package/lib/index.d.ts CHANGED
@@ -1,2 +1,4 @@
1
1
  export * from './document-generator';
2
+ export * from './board-document-generator';
3
+ export * from './showcase-frame-generator';
2
4
  export * from './interfaces';
package/lib/index.js CHANGED
@@ -15,4 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./document-generator"), exports);
18
+ __exportStar(require("./board-document-generator"), exports);
19
+ __exportStar(require("./showcase-frame-generator"), exports);
18
20
  __exportStar(require("./interfaces"), exports);
@@ -129,7 +129,7 @@ function run() {
129
129
  }]
130
130
  };
131
131
  const documentTemplateDefinition = {
132
- frameOrientation: interfaces_1.Orientation.VERTICAL,
132
+ frameOrientation: interfaces_1.Orientation.HORIZONTAL,
133
133
  frameSize: { width: 1200, height: 675 },
134
134
  framePadding: 30,
135
135
  frameGroupHeaderTemplate: {
@@ -164,7 +164,7 @@ function run() {
164
164
  propertyTemplate: PANEL_PROPERTY_TEMPLATE
165
165
  },
166
166
  componentGridTemplate: {
167
- gridDimensions: { cols: 4, rows: 2 },
167
+ gridDimensions: { cols: 3, rows: 1 },
168
168
  componentPadding: 5,
169
169
  componentTemplate: {
170
170
  propertyTemplate: PROPERTY_COMPONENT_TEMPLATE
@@ -0,0 +1 @@
1
+ export {};