@contrail/document-generation 2.0.50 → 2.0.51

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.
Files changed (45) hide show
  1. package/README.md +2 -2
  2. package/lib/board-document-generator.d.ts +23 -23
  3. package/lib/board-document-generator.js +241 -241
  4. package/lib/components/component-generator.d.ts +6 -6
  5. package/lib/components/component-generator.js +55 -55
  6. package/lib/components/component-grid-generator.d.ts +7 -7
  7. package/lib/components/component-grid-generator.js +84 -84
  8. package/lib/components/component-util.d.ts +5 -5
  9. package/lib/components/component-util.js +43 -43
  10. package/lib/document-generator.d.ts +6 -6
  11. package/lib/document-generator.js +11 -11
  12. package/lib/frames/frame-generator.d.ts +12 -12
  13. package/lib/frames/frame-generator.js +141 -141
  14. package/lib/frames/frame.d.ts +18 -16
  15. package/lib/frames/frame.js +71 -67
  16. package/lib/frames/index.d.ts +2 -2
  17. package/lib/frames/index.js +18 -18
  18. package/lib/index.d.ts +6 -6
  19. package/lib/index.js +22 -22
  20. package/lib/info-panel/info-panel-generator.d.ts +6 -6
  21. package/lib/info-panel/info-panel-generator.js +56 -56
  22. package/lib/interfaces.d.ts +72 -72
  23. package/lib/interfaces.js +8 -8
  24. package/lib/scripts/test-board.d.ts +1 -1
  25. package/lib/scripts/test-board.js +230 -230
  26. package/lib/scripts/test-showcase.d.ts +1 -1
  27. package/lib/scripts/test-showcase.js +257 -257
  28. package/lib/showcase-frame-generator.d.ts +8 -8
  29. package/lib/showcase-frame-generator.js +44 -44
  30. package/lib/test-data.d.ts +72 -72
  31. package/lib/test-data.js +187 -187
  32. package/lib/util/document-dynamic-text-element-util.d.ts +8 -8
  33. package/lib/util/document-dynamic-text-element-util.js +77 -77
  34. package/lib/util/document-property-util.d.ts +9 -9
  35. package/lib/util/document-property-util.js +102 -102
  36. package/lib/util/document-text-element-util.d.ts +12 -12
  37. package/lib/util/document-text-element-util.js +148 -148
  38. package/lib/util/document-util.d.ts +8 -8
  39. package/lib/util/document-util.js +22 -22
  40. package/lib/util/index.d.ts +2 -2
  41. package/lib/util/index.js +18 -18
  42. package/lib/util/text-util.d.ts +4 -4
  43. package/lib/util/text-util.js +28 -28
  44. package/package.json +1 -1
  45. package/testdocument.json +25972 -25972
@@ -1,148 +1,148 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DocumentTextElementUtil = void 0;
4
- const documents_1 = require("@contrail/documents");
5
- const util_1 = require("@contrail/util");
6
- const document_util_1 = require("./document-util");
7
- class DocumentTextElementUtil {
8
- static generateTextElement(textValue, options, applyInlineFormatting = true, sanitizeHTML = true) {
9
- var _a;
10
- const defaultStyle = {
11
- font: {
12
- size: 8,
13
- },
14
- color: 'rgba(0,0,0,.5)',
15
- };
16
- let style = util_1.ObjectUtil.mergeDeep(defaultStyle, options.style || {});
17
- if ((_a = options === null || options === void 0 ? void 0 : options.style) === null || _a === void 0 ? void 0 : _a.text) {
18
- style.text = options.style.text;
19
- }
20
- let position = options.position || { y: 0, x: 0 };
21
- position.x = position.x || 0;
22
- position.y = position.y || 0;
23
- let size = options.size || { height: 25, width: 125 };
24
- size.height = size.height || 25;
25
- size.width = size.width || 125;
26
- const defaultedOptions = util_1.ObjectUtil.mergeDeep(util_1.ObjectUtil.cloneDeep(options), { position, size, style });
27
- let textVal = sanitizeHTML ? document_util_1.DocumentUtil.sanitizeHTML(textValue) : textValue;
28
- if (textVal === undefined || textVal === null) {
29
- textVal = '';
30
- }
31
- let element = documents_1.DocumentElementFactory.createTextElement(textVal);
32
- element = Object.assign(element, defaultedOptions);
33
- if (applyInlineFormatting) {
34
- element.text = this.applyInLineStyling(element.text, element.style);
35
- }
36
- return element;
37
- }
38
- static applyInLineStyling(text, style) {
39
- var _a, _b, _c, _d, _e;
40
- let formattedText = text;
41
- if ((style === null || style === void 0 ? void 0 : style.font.weight) === 'bold') {
42
- formattedText = `<strong>${formattedText}</strong>`;
43
- }
44
- if (((_a = style === null || style === void 0 ? void 0 : style.text) === null || _a === void 0 ? void 0 : _a.decoration) === 'underline') {
45
- formattedText = `<span style="text-decoration: underline;">${formattedText}</span>`;
46
- }
47
- let fontStyles = '';
48
- if ((_b = style === null || style === void 0 ? void 0 : style.font) === null || _b === void 0 ? void 0 : _b.size) {
49
- fontStyles += `font-size: ${style.font.size}pt; `;
50
- }
51
- if (style === null || style === void 0 ? void 0 : style.color) {
52
- fontStyles += `color: ${style.color}; `;
53
- }
54
- if ((_c = style === null || style === void 0 ? void 0 : style.font) === null || _c === void 0 ? void 0 : _c.family) {
55
- fontStyles += `font-family: '${style.font.family}'; `;
56
- }
57
- if (fontStyles.length) {
58
- formattedText = `<span style="${fontStyles}">${formattedText}</span>`;
59
- }
60
- if ((_d = style === null || style === void 0 ? void 0 : style.font) === null || _d === void 0 ? void 0 : _d.strikethrough) {
61
- formattedText = `<s>${formattedText}</s>`;
62
- }
63
- if ((_e = style === null || style === void 0 ? void 0 : style.font) === null || _e === void 0 ? void 0 : _e.italic) {
64
- formattedText = `<em>${formattedText}</em>`;
65
- }
66
- formattedText = `<p>${formattedText}</p>`;
67
- return formattedText;
68
- }
69
- static extractStyleFromInline(text) {
70
- if (!text) {
71
- return null;
72
- }
73
- const style = { font: {}, text: {} };
74
- if (text.indexOf('<strong>') > -1 || text.indexOf('bold') > -1) {
75
- style.font.weight = 'bold';
76
- }
77
- const fontSize = this.extractFontSizeFromHTML(text);
78
- if (fontSize) {
79
- style.font.size = fontSize;
80
- }
81
- const color = this.extractColorFromHTML(text);
82
- if (color) {
83
- style.color = color;
84
- }
85
- const decoration = this.extractTextDecorationFromHTML(text);
86
- if (decoration) {
87
- style.text.decoration = decoration;
88
- }
89
- const italic = this.extractTextStyleItalicFromHTML(text);
90
- if (italic) {
91
- style.font.italic = true;
92
- }
93
- const strikethrough = this.extractTextStyleStrikethroughFromHTML(text);
94
- if (strikethrough) {
95
- style.font.strikethrough = true;
96
- }
97
- const font = this.extractFontFromHTML(text);
98
- if (font) {
99
- style.font.family = font;
100
- }
101
- return style;
102
- }
103
- static extractFontSizeFromHTML(text) {
104
- let regex = /font-size: (.*?)pt;/;
105
- let match = text.match(regex);
106
- if ((match === null || match === void 0 ? void 0 : match.length) && !isNaN(parseInt(match[1]))) {
107
- return parseInt(match[1]);
108
- }
109
- }
110
- static extractColorFromHTML(text) {
111
- let regex = /color: (.*?);/;
112
- let match = text.match(regex);
113
- if (match === null || match === void 0 ? void 0 : match.length) {
114
- let color = match[1];
115
- color = color.replace(/['"]+/g, '');
116
- return color;
117
- }
118
- }
119
- static extractTextDecorationFromHTML(text) {
120
- let regex = /text-decoration: (.*?);/;
121
- let match = text.match(regex);
122
- if (match === null || match === void 0 ? void 0 : match.length) {
123
- let decoration = match[1];
124
- decoration = decoration.replace(/['"]+/g, '');
125
- return decoration;
126
- }
127
- }
128
- static extractFontFromHTML(text) {
129
- let regex = /font-family: (.*?);/;
130
- let match = text.match(regex);
131
- if (match === null || match === void 0 ? void 0 : match.length) {
132
- let font = match[1];
133
- font = font.replace(/['"]+/g, '');
134
- return font;
135
- }
136
- }
137
- static extractTextStyleItalicFromHTML(text) {
138
- if (text.indexOf('<em>') > -1 || text.indexOf('<i>') > -1) {
139
- return 'italic';
140
- }
141
- }
142
- static extractTextStyleStrikethroughFromHTML(text) {
143
- if (text.indexOf('<s>') > -1 || text.indexOf('<strike>') > -1) {
144
- return 'strikethrough';
145
- }
146
- }
147
- }
148
- exports.DocumentTextElementUtil = DocumentTextElementUtil;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DocumentTextElementUtil = void 0;
4
+ const documents_1 = require("@contrail/documents");
5
+ const util_1 = require("@contrail/util");
6
+ const document_util_1 = require("./document-util");
7
+ class DocumentTextElementUtil {
8
+ static generateTextElement(textValue, options, applyInlineFormatting = true, sanitizeHTML = true) {
9
+ var _a;
10
+ const defaultStyle = {
11
+ font: {
12
+ size: 8,
13
+ },
14
+ color: 'rgba(0,0,0,.5)',
15
+ };
16
+ let style = util_1.ObjectUtil.mergeDeep(defaultStyle, options.style || {});
17
+ if ((_a = options === null || options === void 0 ? void 0 : options.style) === null || _a === void 0 ? void 0 : _a.text) {
18
+ style.text = options.style.text;
19
+ }
20
+ let position = options.position || { y: 0, x: 0 };
21
+ position.x = position.x || 0;
22
+ position.y = position.y || 0;
23
+ let size = options.size || { height: 25, width: 125 };
24
+ size.height = size.height || 25;
25
+ size.width = size.width || 125;
26
+ const defaultedOptions = util_1.ObjectUtil.mergeDeep(util_1.ObjectUtil.cloneDeep(options), { position, size, style });
27
+ let textVal = sanitizeHTML ? document_util_1.DocumentUtil.sanitizeHTML(textValue) : textValue;
28
+ if (textVal === undefined || textVal === null) {
29
+ textVal = '';
30
+ }
31
+ let element = documents_1.DocumentElementFactory.createTextElement(textVal);
32
+ element = Object.assign(element, defaultedOptions);
33
+ if (applyInlineFormatting) {
34
+ element.text = this.applyInLineStyling(element.text, element.style);
35
+ }
36
+ return element;
37
+ }
38
+ static applyInLineStyling(text, style) {
39
+ var _a, _b, _c, _d, _e;
40
+ let formattedText = text;
41
+ if ((style === null || style === void 0 ? void 0 : style.font.weight) === 'bold') {
42
+ formattedText = `<strong>${formattedText}</strong>`;
43
+ }
44
+ if (((_a = style === null || style === void 0 ? void 0 : style.text) === null || _a === void 0 ? void 0 : _a.decoration) === 'underline') {
45
+ formattedText = `<span style="text-decoration: underline;">${formattedText}</span>`;
46
+ }
47
+ let fontStyles = '';
48
+ if ((_b = style === null || style === void 0 ? void 0 : style.font) === null || _b === void 0 ? void 0 : _b.size) {
49
+ fontStyles += `font-size: ${style.font.size}pt; `;
50
+ }
51
+ if (style === null || style === void 0 ? void 0 : style.color) {
52
+ fontStyles += `color: ${style.color}; `;
53
+ }
54
+ if ((_c = style === null || style === void 0 ? void 0 : style.font) === null || _c === void 0 ? void 0 : _c.family) {
55
+ fontStyles += `font-family: '${style.font.family}'; `;
56
+ }
57
+ if (fontStyles.length) {
58
+ formattedText = `<span style="${fontStyles}">${formattedText}</span>`;
59
+ }
60
+ if ((_d = style === null || style === void 0 ? void 0 : style.font) === null || _d === void 0 ? void 0 : _d.strikethrough) {
61
+ formattedText = `<s>${formattedText}</s>`;
62
+ }
63
+ if ((_e = style === null || style === void 0 ? void 0 : style.font) === null || _e === void 0 ? void 0 : _e.italic) {
64
+ formattedText = `<em>${formattedText}</em>`;
65
+ }
66
+ formattedText = `<p>${formattedText}</p>`;
67
+ return formattedText;
68
+ }
69
+ static extractStyleFromInline(text) {
70
+ if (!text) {
71
+ return null;
72
+ }
73
+ const style = { font: {}, text: {} };
74
+ if (text.indexOf('<strong>') > -1 || text.indexOf('bold') > -1) {
75
+ style.font.weight = 'bold';
76
+ }
77
+ const fontSize = this.extractFontSizeFromHTML(text);
78
+ if (fontSize) {
79
+ style.font.size = fontSize;
80
+ }
81
+ const color = this.extractColorFromHTML(text);
82
+ if (color) {
83
+ style.color = color;
84
+ }
85
+ const decoration = this.extractTextDecorationFromHTML(text);
86
+ if (decoration) {
87
+ style.text.decoration = decoration;
88
+ }
89
+ const italic = this.extractTextStyleItalicFromHTML(text);
90
+ if (italic) {
91
+ style.font.italic = true;
92
+ }
93
+ const strikethrough = this.extractTextStyleStrikethroughFromHTML(text);
94
+ if (strikethrough) {
95
+ style.font.strikethrough = true;
96
+ }
97
+ const font = this.extractFontFromHTML(text);
98
+ if (font) {
99
+ style.font.family = font;
100
+ }
101
+ return style;
102
+ }
103
+ static extractFontSizeFromHTML(text) {
104
+ let regex = /font-size: (.*?)pt;/;
105
+ let match = text.match(regex);
106
+ if ((match === null || match === void 0 ? void 0 : match.length) && !isNaN(parseInt(match[1]))) {
107
+ return parseInt(match[1]);
108
+ }
109
+ }
110
+ static extractColorFromHTML(text) {
111
+ let regex = /color: (.*?);/;
112
+ let match = text.match(regex);
113
+ if (match === null || match === void 0 ? void 0 : match.length) {
114
+ let color = match[1];
115
+ color = color.replace(/['"]+/g, '');
116
+ return color;
117
+ }
118
+ }
119
+ static extractTextDecorationFromHTML(text) {
120
+ let regex = /text-decoration: (.*?);/;
121
+ let match = text.match(regex);
122
+ if (match === null || match === void 0 ? void 0 : match.length) {
123
+ let decoration = match[1];
124
+ decoration = decoration.replace(/['"]+/g, '');
125
+ return decoration;
126
+ }
127
+ }
128
+ static extractFontFromHTML(text) {
129
+ let regex = /font-family: (.*?);/;
130
+ let match = text.match(regex);
131
+ if (match === null || match === void 0 ? void 0 : match.length) {
132
+ let font = match[1];
133
+ font = font.replace(/['"]+/g, '');
134
+ return font;
135
+ }
136
+ }
137
+ static extractTextStyleItalicFromHTML(text) {
138
+ if (text.indexOf('<em>') > -1 || text.indexOf('<i>') > -1) {
139
+ return 'italic';
140
+ }
141
+ }
142
+ static extractTextStyleStrikethroughFromHTML(text) {
143
+ if (text.indexOf('<s>') > -1 || text.indexOf('<strike>') > -1) {
144
+ return 'strikethrough';
145
+ }
146
+ }
147
+ }
148
+ exports.DocumentTextElementUtil = DocumentTextElementUtil;
@@ -1,8 +1,8 @@
1
- import { PositionDefinition } from '@contrail/documents';
2
- export declare class DocumentUtil {
3
- static getRelativePosition(position1: PositionDefinition, position2: PositionDefinition): {
4
- x: number;
5
- y: number;
6
- };
7
- static sanitizeHTML(text: string): string;
8
- }
1
+ import { PositionDefinition } from '@contrail/documents';
2
+ export declare class DocumentUtil {
3
+ static getRelativePosition(position1: PositionDefinition, position2: PositionDefinition): {
4
+ x: number;
5
+ y: number;
6
+ };
7
+ static sanitizeHTML(text: string): string;
8
+ }
@@ -1,22 +1,22 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DocumentUtil = void 0;
4
- class DocumentUtil {
5
- static getRelativePosition(position1, position2) {
6
- const relativePosition = {
7
- x: position2.x - position1.x,
8
- y: position2.y - position1.y,
9
- };
10
- return relativePosition;
11
- }
12
- static sanitizeHTML(text) {
13
- if (text === undefined || text === null) {
14
- return '';
15
- }
16
- if (typeof text !== 'string') {
17
- return text;
18
- }
19
- return text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
20
- }
21
- }
22
- exports.DocumentUtil = DocumentUtil;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DocumentUtil = void 0;
4
+ class DocumentUtil {
5
+ static getRelativePosition(position1, position2) {
6
+ const relativePosition = {
7
+ x: position2.x - position1.x,
8
+ y: position2.y - position1.y,
9
+ };
10
+ return relativePosition;
11
+ }
12
+ static sanitizeHTML(text) {
13
+ if (text === undefined || text === null) {
14
+ return '';
15
+ }
16
+ if (typeof text !== 'string') {
17
+ return text;
18
+ }
19
+ return text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
20
+ }
21
+ }
22
+ exports.DocumentUtil = DocumentUtil;
@@ -1,2 +1,2 @@
1
- export * from './document-text-element-util';
2
- export * from './document-property-util';
1
+ export * from './document-text-element-util';
2
+ export * from './document-property-util';
package/lib/util/index.js CHANGED
@@ -1,18 +1,18 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./document-text-element-util"), exports);
18
- __exportStar(require("./document-property-util"), exports);
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./document-text-element-util"), exports);
18
+ __exportStar(require("./document-property-util"), exports);
@@ -1,4 +1,4 @@
1
- import { DocumentPropertyDefinition } from '../interfaces';
2
- export declare class TextUtil {
3
- static getHeightByTextWidth(text: string, property: DocumentPropertyDefinition, width: number): number;
4
- }
1
+ import { DocumentPropertyDefinition } from '../interfaces';
2
+ export declare class TextUtil {
3
+ static getHeightByTextWidth(text: string, property: DocumentPropertyDefinition, width: number): number;
4
+ }
@@ -1,28 +1,28 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TextUtil = void 0;
4
- class TextUtil {
5
- static getHeightByTextWidth(text, property, width) {
6
- var _a, _b, _c, _d, _e;
7
- let height = 0;
8
- let div = document.createElement('DIV');
9
- div.id = '__textMeasure';
10
- div.innerHTML = (property.includeLabel ? ((_a = property.propertyDefinition) === null || _a === void 0 ? void 0 : _a.label) + ': ' : '') + text;
11
- div.style.position = 'absolute';
12
- div.style.top = '-500px';
13
- div.style.left = '0';
14
- div.style.width = width + 'px';
15
- div.style.lineHeight = 'normal';
16
- div.style.overflowWrap = 'break-word';
17
- div.style.fontFamily = ((_c = (_b = property.style) === null || _b === void 0 ? void 0 : _b.font) === null || _c === void 0 ? void 0 : _c.family) || 'Roboto';
18
- div.style.fontWeight = property.style.font.weight ? 'bold' : 'normal';
19
- div.style.fontSize = (((_e = (_d = property.style) === null || _d === void 0 ? void 0 : _d.font) === null || _e === void 0 ? void 0 : _e.size) || 12) + 'pt';
20
- div.style.padding = '11px';
21
- document.body.appendChild(div);
22
- height = div.offsetHeight;
23
- document.body.removeChild(div);
24
- div = null;
25
- return height;
26
- }
27
- }
28
- exports.TextUtil = TextUtil;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TextUtil = void 0;
4
+ class TextUtil {
5
+ static getHeightByTextWidth(text, property, width) {
6
+ var _a, _b, _c, _d, _e;
7
+ let height = 0;
8
+ let div = document.createElement('DIV');
9
+ div.id = '__textMeasure';
10
+ div.innerHTML = (property.includeLabel ? ((_a = property.propertyDefinition) === null || _a === void 0 ? void 0 : _a.label) + ': ' : '') + text;
11
+ div.style.position = 'absolute';
12
+ div.style.top = '-500px';
13
+ div.style.left = '0';
14
+ div.style.width = width + 'px';
15
+ div.style.lineHeight = 'normal';
16
+ div.style.overflowWrap = 'break-word';
17
+ div.style.fontFamily = ((_c = (_b = property.style) === null || _b === void 0 ? void 0 : _b.font) === null || _c === void 0 ? void 0 : _c.family) || 'Roboto';
18
+ div.style.fontWeight = property.style.font.weight ? 'bold' : 'normal';
19
+ div.style.fontSize = (((_e = (_d = property.style) === null || _d === void 0 ? void 0 : _d.font) === null || _e === void 0 ? void 0 : _e.size) || 12) + 'pt';
20
+ div.style.padding = '11px';
21
+ document.body.appendChild(div);
22
+ height = div.offsetHeight;
23
+ document.body.removeChild(div);
24
+ div = null;
25
+ return height;
26
+ }
27
+ }
28
+ exports.TextUtil = TextUtil;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contrail/document-generation",
3
- "version": "2.0.50",
3
+ "version": "2.0.51",
4
4
  "description": "Utilities for automatic generation of documents.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",