@jaisocx/template-renderer 1.4.1 → 1.5.7
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 +7 -5
- package/package.json +19 -13
- package/transpiled/CommonJS/TemplateRenderer.d.ts +45 -0
- package/transpiled/CommonJS/TemplateRenderer.d.ts.map +1 -0
- package/transpiled/CommonJS/TemplateRenderer.js +303 -0
- package/transpiled/CommonJS/TemplateRenderer.js.map +1 -0
- package/transpiled/CommonJS/index.d.ts +2 -0
- package/{build → transpiled}/CommonJS/index.d.ts.map +1 -1
- package/{build → transpiled}/CommonJS/index.js.map +1 -1
- package/transpiled/ESNext/TemplateRenderer.d.ts +45 -0
- package/transpiled/ESNext/TemplateRenderer.d.ts.map +1 -0
- package/transpiled/ESNext/TemplateRenderer.js +291 -0
- package/transpiled/ESNext/TemplateRenderer.js.map +1 -0
- package/transpiled/ESNext/index.d.ts +2 -0
- package/{build → transpiled}/ESNext/index.d.ts.map +1 -1
- package/{build → transpiled}/ESNext/index.js.map +1 -1
- package/build/CommonJS/TemplateRenderer.d.ts +0 -13
- package/build/CommonJS/TemplateRenderer.d.ts.map +0 -1
- package/build/CommonJS/TemplateRenderer.js +0 -71
- package/build/CommonJS/TemplateRenderer.js.map +0 -1
- package/build/CommonJS/index.d.ts +0 -2
- package/build/ESNext/TemplateRenderer.d.ts +0 -13
- package/build/ESNext/TemplateRenderer.d.ts.map +0 -1
- package/build/ESNext/TemplateRenderer.js +0 -70
- package/build/ESNext/TemplateRenderer.js.map +0 -1
- package/build/ESNext/index.d.ts +0 -2
- /package/{build → transpiled}/CommonJS/index.js +0 -0
- /package/{build → transpiled}/ESNext/index.js +0 -0
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# JS PACKAGE jaisocx/template-renderer
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
[https://github.com/Jaisocx-Tools/Workspace](https://github.com/Jaisocx-Tools/Workspace)
|
|
5
|
+
|
|
4
6
|
## How to use in ts code
|
|
5
7
|
|
|
6
8
|
```
|
|
@@ -10,11 +12,11 @@ import { EventHandlerReturnValue } from "@jaisocx/event-emitter";
|
|
|
10
12
|
export class ExampleTemplateRenderer {
|
|
11
13
|
TemplateRenderer: TemplateRenderer;
|
|
12
14
|
|
|
13
|
-
holderHtmlNodeSelector:
|
|
15
|
+
holderHtmlNodeSelector: any|null;
|
|
14
16
|
|
|
15
17
|
data: object;
|
|
16
18
|
|
|
17
|
-
template:
|
|
19
|
+
template: any;
|
|
18
20
|
|
|
19
21
|
constructor() {
|
|
20
22
|
this.data = {
|
|
@@ -99,10 +101,10 @@ index.html
|
|
|
99
101
|
</head>
|
|
100
102
|
<body>
|
|
101
103
|
|
|
102
|
-
<script src="packages/EventEmitter/
|
|
103
|
-
<script src="packages/TemplateRenderer/
|
|
104
|
+
<script src="packages/EventEmitter/transpiled/Simple/EventEmitter.js"></script>
|
|
105
|
+
<script src="packages/TemplateRenderer/transpiled/Simple/TemplateRenderer.js"></script>
|
|
104
106
|
|
|
105
|
-
<script src="
|
|
107
|
+
<script src="webpack_builds/ExampleTemplateRenderer/transpiled/Simple/ExampleTemplateRenderer.js"></script>
|
|
106
108
|
<script>
|
|
107
109
|
document.addEventListener('DOMContentLoaded', () => {
|
|
108
110
|
const example = new ExampleTemplateRenderer();
|
package/package.json
CHANGED
|
@@ -1,29 +1,35 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jaisocx/template-renderer",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.7",
|
|
4
|
+
"author": "Jaisocx",
|
|
4
5
|
"private": false,
|
|
5
6
|
"description": "",
|
|
6
7
|
"type": "module",
|
|
7
|
-
"main": "./
|
|
8
|
-
"types": "./
|
|
9
|
-
"module": "./
|
|
8
|
+
"main": "./transpiled/CommonJS/index.js",
|
|
9
|
+
"types": "./transpiled/ESNext/index.d.ts",
|
|
10
|
+
"module": "./transpiled/ESNext/index.js",
|
|
10
11
|
"exports": {
|
|
11
|
-
"require": "./
|
|
12
|
-
"import": "./
|
|
12
|
+
"require": "./transpiled/CommonJS/index.js",
|
|
13
|
+
"import": "./transpiled/ESNext/index.js"
|
|
13
14
|
},
|
|
14
15
|
"files": [
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
16
|
+
"transpiled/CommonJS",
|
|
17
|
+
"transpiled/ESNext",
|
|
18
|
+
"MediaAndStyles/",
|
|
18
19
|
"README.md",
|
|
19
20
|
"LICENSE"
|
|
20
21
|
],
|
|
21
22
|
"optionalDependencies": {
|
|
22
|
-
"@jaisocx/event-emitter": "^1.4.
|
|
23
|
+
"@jaisocx/event-emitter": "^1.4.1",
|
|
24
|
+
"@jaisocx/tokens-parser": "^1.2.1"
|
|
23
25
|
},
|
|
24
|
-
"
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
"publishConfig": {
|
|
27
|
+
"access": "public"
|
|
28
|
+
},
|
|
29
|
+
"keywords": [
|
|
30
|
+
"template",
|
|
31
|
+
"render"
|
|
32
|
+
]
|
|
27
33
|
}
|
|
28
34
|
|
|
29
35
|
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { TextEncoder, TextDecoder } from "node:util";
|
|
2
|
+
import { EventEmitter } from "@jaisocx/event-emitter";
|
|
3
|
+
import { TokensParser } from "@jaisocx/tokens-parser";
|
|
4
|
+
export type TemplateRendererDataRecord = {
|
|
5
|
+
id: number;
|
|
6
|
+
isOptimized: boolean;
|
|
7
|
+
textTemplate: string;
|
|
8
|
+
dataForRendering: object;
|
|
9
|
+
bitsbufTemplate: Uint8Array;
|
|
10
|
+
optimizedBitsbufTemplate: Uint8Array[];
|
|
11
|
+
optimizedPlaceholdersEntries: any;
|
|
12
|
+
optimizedTemplate: OptimizedTemplateRecord[];
|
|
13
|
+
};
|
|
14
|
+
export type OptimizedTemplateRecord = {
|
|
15
|
+
placeholderName: string;
|
|
16
|
+
range: number[];
|
|
17
|
+
};
|
|
18
|
+
export declare class TemplateRenderer extends EventEmitter {
|
|
19
|
+
#private;
|
|
20
|
+
EVENT_NAME__AFTER_RENDER: any;
|
|
21
|
+
tokensParser: TokensParser;
|
|
22
|
+
dataRecords: TemplateRendererDataRecord[];
|
|
23
|
+
textEncoder: TextEncoder;
|
|
24
|
+
textDecoder: TextDecoder;
|
|
25
|
+
constructor();
|
|
26
|
+
initDataRecord(): TemplateRendererDataRecord;
|
|
27
|
+
addNewDataRecord(): TemplateRendererDataRecord;
|
|
28
|
+
getActiveDataRecord(): TemplateRendererDataRecord;
|
|
29
|
+
getActiveDataRecordId(): number;
|
|
30
|
+
getDataRecordById(id: number): TemplateRendererDataRecord;
|
|
31
|
+
setActiveRecordId(id: number): TemplateRendererDataRecord;
|
|
32
|
+
setActiveDataRecord(dataRecord: TemplateRendererDataRecord): number;
|
|
33
|
+
setDebug(debug: boolean): TemplateRenderer;
|
|
34
|
+
setTemplate(template: string): TemplateRenderer;
|
|
35
|
+
setData(dataForRendering: object): TemplateRenderer;
|
|
36
|
+
render(): any;
|
|
37
|
+
renderOptimizedDataBitsbufs(templateDataRecordId: number, dataForRendering: any): Uint8Array[];
|
|
38
|
+
renderOptimizedToStringDataText(templateDataRecordId: number, dataForRendering: any): string;
|
|
39
|
+
renderOptimizedToStringDataBitsbufs(templateDataRecordId: number, dataForRendering: any): string;
|
|
40
|
+
renderOptimizedTextBlocks(templateDataRecordId: number, dataForRendering: any): string[];
|
|
41
|
+
optimize(templateDataRecordId: number): number;
|
|
42
|
+
protected orderedRecords(inRecords: OptimizedTemplateRecord[]): OptimizedTemplateRecord[];
|
|
43
|
+
replaceTemplateRendererWithDataForRendering(): any;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=TemplateRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateRenderer.d.ts","sourceRoot":"","sources":["../../src/TemplateRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,EAAE,YAAY,EAAmB,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAItD,MAAM,MAAM,0BAA0B,GAAG;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IAEzB,eAAe,EAAE,UAAU,CAAC;IAC5B,wBAAwB,EAAE,UAAU,EAAE,CAAC;IACvC,4BAA4B,EAAE,GAAG,CAAC;IAClC,iBAAiB,EAAE,uBAAuB,EAAE,CAAC;CAC9C,CAAA;AAID,MAAM,MAAM,uBAAuB,GAAI;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAA;AAID,qBAAa,gBAAiB,SAAQ,YAAY;;IAChD,wBAAwB,EAAE,GAAG,CAAC;IAE9B,YAAY,EAAE,YAAY,CAAC;IAE3B,WAAW,EAAE,0BAA0B,EAAE,CAAC;IAG1C,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;;IAoBzB,cAAc,IAAI,0BAA0B;IAe5C,gBAAgB,IAAI,0BAA0B;IAS9C,mBAAmB,IAAI,0BAA0B;IAejD,qBAAqB,IAAI,MAAM;IAI/B,iBAAiB,CAAE,EAAE,EAAE,MAAM;IAI7B,iBAAiB,CAAE,EAAE,EAAE,MAAM,GAAI,0BAA0B;IAM3D,mBAAmB,CAAE,UAAU,EAAE,0BAA0B,GAAI,MAAM;IAwBrE,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB;IAK1C,WAAW,CAAE,QAAQ,EAAE,MAAM,GAAI,gBAAgB;IAOjD,OAAO,CAAE,gBAAgB,EAAE,MAAM,GAAI,gBAAgB;IAQrD,MAAM,IAAI,GAAG;IAiEb,2BAA2B,CACzB,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,GAAG,GACpB,UAAU,EAAE;IAqBf,+BAA+B,CAC7B,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,GAAG,GACpB,MAAM;IAgBT,mCAAmC,CACjC,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,GAAG,GACpB,MAAM;IAiCT,yBAAyB,CACvB,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,GAAG,GACpB,MAAM,EAAE;IA4BX,QAAQ,CAAG,oBAAoB,EAAE,MAAM,GAAI,MAAM;IAmGjD,SAAS,CAAC,cAAc,CAAE,SAAS,EAAE,uBAAuB,EAAE,GAAI,uBAAuB,EAAE;IAuB3F,2CAA2C,IAAI,GAAG;CA2BnD"}
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _TemplateRenderer_activeDataRecordId;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.TemplateRenderer = void 0;
|
|
16
|
+
const node_util_1 = require("node:util");
|
|
17
|
+
const event_emitter_1 = require("@jaisocx/event-emitter");
|
|
18
|
+
const tokens_parser_1 = require("@jaisocx/tokens-parser");
|
|
19
|
+
class TemplateRenderer extends event_emitter_1.EventEmitter {
|
|
20
|
+
constructor() {
|
|
21
|
+
super();
|
|
22
|
+
_TemplateRenderer_activeDataRecordId.set(this, void 0);
|
|
23
|
+
this.EVENT_NAME__AFTER_RENDER = "afterRender";
|
|
24
|
+
this.tokensParser = new tokens_parser_1.TokensParser();
|
|
25
|
+
this.dataRecords = new Array();
|
|
26
|
+
__classPrivateFieldSet(this, _TemplateRenderer_activeDataRecordId, 0, "f");
|
|
27
|
+
this.textEncoder = new node_util_1.TextEncoder();
|
|
28
|
+
this.textDecoder = new node_util_1.TextDecoder("utf8");
|
|
29
|
+
}
|
|
30
|
+
initDataRecord() {
|
|
31
|
+
let dataRecord = new Object();
|
|
32
|
+
dataRecord.isOptimized = false;
|
|
33
|
+
dataRecord.textTemplate = "";
|
|
34
|
+
dataRecord.dataForRendering = new Object();
|
|
35
|
+
dataRecord.bitsbufTemplate = new Uint8Array();
|
|
36
|
+
dataRecord.optimizedBitsbufTemplate = new Array();
|
|
37
|
+
dataRecord.optimizedPlaceholdersEntries = new Object();
|
|
38
|
+
dataRecord.optimizedTemplate = new Array();
|
|
39
|
+
return dataRecord;
|
|
40
|
+
}
|
|
41
|
+
addNewDataRecord() {
|
|
42
|
+
let dataRecord = this.initDataRecord();
|
|
43
|
+
this.dataRecords.push(dataRecord);
|
|
44
|
+
__classPrivateFieldSet(this, _TemplateRenderer_activeDataRecordId, (this.dataRecords.length - 1), "f");
|
|
45
|
+
this.dataRecords[__classPrivateFieldGet(this, _TemplateRenderer_activeDataRecordId, "f")].id = __classPrivateFieldGet(this, _TemplateRenderer_activeDataRecordId, "f");
|
|
46
|
+
return this.dataRecords[__classPrivateFieldGet(this, _TemplateRenderer_activeDataRecordId, "f")];
|
|
47
|
+
}
|
|
48
|
+
getActiveDataRecord() {
|
|
49
|
+
let dataRecord;
|
|
50
|
+
if (__classPrivateFieldGet(this, _TemplateRenderer_activeDataRecordId, "f") === 0) {
|
|
51
|
+
let obj = new Object();
|
|
52
|
+
this.dataRecords.push(obj);
|
|
53
|
+
dataRecord = this.addNewDataRecord();
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
dataRecord = this.dataRecords[__classPrivateFieldGet(this, _TemplateRenderer_activeDataRecordId, "f")];
|
|
57
|
+
}
|
|
58
|
+
return dataRecord;
|
|
59
|
+
}
|
|
60
|
+
getActiveDataRecordId() {
|
|
61
|
+
return __classPrivateFieldGet(this, _TemplateRenderer_activeDataRecordId, "f");
|
|
62
|
+
}
|
|
63
|
+
getDataRecordById(id) {
|
|
64
|
+
return this.dataRecords[id];
|
|
65
|
+
}
|
|
66
|
+
setActiveRecordId(id) {
|
|
67
|
+
__classPrivateFieldSet(this, _TemplateRenderer_activeDataRecordId, id, "f");
|
|
68
|
+
return this.dataRecords[id];
|
|
69
|
+
}
|
|
70
|
+
setActiveDataRecord(dataRecord) {
|
|
71
|
+
if (__classPrivateFieldGet(this, _TemplateRenderer_activeDataRecordId, "f") === 0) {
|
|
72
|
+
let obj = new Object();
|
|
73
|
+
this.dataRecords.push(obj);
|
|
74
|
+
}
|
|
75
|
+
let id = dataRecord.id;
|
|
76
|
+
if (id === 0) {
|
|
77
|
+
id = this.dataRecords.length;
|
|
78
|
+
dataRecord.id = id;
|
|
79
|
+
this.dataRecords.push(dataRecord);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
id = dataRecord.id;
|
|
83
|
+
this.dataRecords[id] = dataRecord;
|
|
84
|
+
}
|
|
85
|
+
__classPrivateFieldSet(this, _TemplateRenderer_activeDataRecordId, id, "f");
|
|
86
|
+
return id;
|
|
87
|
+
}
|
|
88
|
+
setDebug(debug) {
|
|
89
|
+
this.debug = debug;
|
|
90
|
+
return this;
|
|
91
|
+
}
|
|
92
|
+
setTemplate(template) {
|
|
93
|
+
let dataRecord = this.getActiveDataRecord();
|
|
94
|
+
dataRecord.textTemplate = template;
|
|
95
|
+
return this;
|
|
96
|
+
}
|
|
97
|
+
setData(dataForRendering) {
|
|
98
|
+
let dataRecord = this.getActiveDataRecord();
|
|
99
|
+
dataRecord.dataForRendering = dataForRendering;
|
|
100
|
+
return this;
|
|
101
|
+
}
|
|
102
|
+
render() {
|
|
103
|
+
if (__classPrivateFieldGet(this, _TemplateRenderer_activeDataRecordId, "f") === 0) {
|
|
104
|
+
throw new Error("No template neither data were set.");
|
|
105
|
+
}
|
|
106
|
+
let dataRecord = this.getActiveDataRecord();
|
|
107
|
+
if (dataRecord.isOptimized === false) {
|
|
108
|
+
this.optimize(dataRecord.id);
|
|
109
|
+
dataRecord = this.dataRecords[dataRecord.id];
|
|
110
|
+
}
|
|
111
|
+
let renderedHtml = this.renderOptimizedToStringDataText(dataRecord.id, dataRecord.dataForRendering);
|
|
112
|
+
if (this.debug) {
|
|
113
|
+
console.log("renderedHtml before afterRender event emitted", renderedHtml);
|
|
114
|
+
}
|
|
115
|
+
const eventResult = this.emitEvent(this.EVENT_NAME__AFTER_RENDER, {
|
|
116
|
+
html: renderedHtml,
|
|
117
|
+
data: dataRecord.dataForRendering
|
|
118
|
+
});
|
|
119
|
+
if (eventResult.length > 0) {
|
|
120
|
+
const last = eventResult.length - 1;
|
|
121
|
+
let payloadReturned = null;
|
|
122
|
+
for (let eventResultsStep = last; eventResultsStep > (-1); eventResultsStep--) {
|
|
123
|
+
try {
|
|
124
|
+
// @ts-ignore
|
|
125
|
+
payloadReturned = eventResult[eventResultsStep].result.payloadReturned;
|
|
126
|
+
}
|
|
127
|
+
catch (e) { }
|
|
128
|
+
if (!payloadReturned) {
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
renderedHtml = payloadReturned.html;
|
|
132
|
+
}
|
|
133
|
+
if (this.debug) {
|
|
134
|
+
console.log("renderedHtml before afterRender event emitted", eventResult, renderedHtml);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
else if (this.debug) {
|
|
138
|
+
console.log("afterRender event did not change html");
|
|
139
|
+
}
|
|
140
|
+
return renderedHtml;
|
|
141
|
+
}
|
|
142
|
+
// the faster method.
|
|
143
|
+
renderOptimizedDataBitsbufs(templateDataRecordId, dataForRendering) {
|
|
144
|
+
let dataRecord = this.getDataRecordById(templateDataRecordId);
|
|
145
|
+
dataRecord.dataForRendering = dataForRendering;
|
|
146
|
+
let bitsbufsArray = [...dataRecord.optimizedBitsbufTemplate];
|
|
147
|
+
for (let placeholderName in dataRecord.dataForRendering) {
|
|
148
|
+
let placeholderEntries = dataRecord.optimizedPlaceholdersEntries[placeholderName];
|
|
149
|
+
// @ts-ignore
|
|
150
|
+
let placehoder = dataRecord.dataForRendering[placeholderName];
|
|
151
|
+
for (let i of placeholderEntries) {
|
|
152
|
+
bitsbufsArray[i] = placehoder;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return bitsbufsArray;
|
|
156
|
+
}
|
|
157
|
+
renderOptimizedToStringDataText(templateDataRecordId, dataForRendering) {
|
|
158
|
+
let dataRecord = this.getDataRecordById(templateDataRecordId);
|
|
159
|
+
dataRecord.dataForRendering = dataForRendering;
|
|
160
|
+
let textBlocks = this.renderOptimizedTextBlocks(templateDataRecordId, dataRecord.dataForRendering);
|
|
161
|
+
let renderedText = textBlocks.join("");
|
|
162
|
+
return renderedText;
|
|
163
|
+
}
|
|
164
|
+
renderOptimizedToStringDataBitsbufs(templateDataRecordId, dataForRendering) {
|
|
165
|
+
let dataRecord = this.getDataRecordById(templateDataRecordId);
|
|
166
|
+
dataRecord.dataForRendering = dataForRendering;
|
|
167
|
+
let bitsbufsArray = this.renderOptimizedDataBitsbufs(templateDataRecordId, dataRecord.dataForRendering);
|
|
168
|
+
let bitsbufsArrayLen = bitsbufsArray.length;
|
|
169
|
+
let textBlocks = new Array(bitsbufsArrayLen);
|
|
170
|
+
let i = 0;
|
|
171
|
+
for (i = 0; i < bitsbufsArrayLen; i++) {
|
|
172
|
+
let bitsbufElem = bitsbufsArray[i];
|
|
173
|
+
if (typeof bitsbufElem === "string") {
|
|
174
|
+
textBlocks[i] = bitsbufElem;
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
textBlocks[i] = this.textDecoder.decode(bitsbufElem);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
let renderedText = textBlocks.join("");
|
|
181
|
+
return renderedText;
|
|
182
|
+
}
|
|
183
|
+
// the way to improve:
|
|
184
|
+
// after optimization, create once dataRecord.optimizedBitsbufTemplate of texts, so not to decode to strings.
|
|
185
|
+
renderOptimizedTextBlocks(templateDataRecordId, dataForRendering // { key: text }
|
|
186
|
+
) {
|
|
187
|
+
let dataRecord = this.getDataRecordById(templateDataRecordId);
|
|
188
|
+
dataRecord.dataForRendering = dataForRendering;
|
|
189
|
+
let bitsbufsArray = [...dataRecord.optimizedBitsbufTemplate];
|
|
190
|
+
let textBlocks = new Array();
|
|
191
|
+
let bitsbufElem = new Uint8Array();
|
|
192
|
+
for (let i = 0; i < bitsbufsArray.length; i++) {
|
|
193
|
+
bitsbufElem = bitsbufsArray[i];
|
|
194
|
+
textBlocks[i] = this.textDecoder.decode(bitsbufElem);
|
|
195
|
+
}
|
|
196
|
+
for (let placeholderName in dataRecord.dataForRendering) {
|
|
197
|
+
let placeholderEntries = dataRecord.optimizedPlaceholdersEntries[placeholderName];
|
|
198
|
+
// @ts-ignore
|
|
199
|
+
let placehoder = dataRecord.dataForRendering[placeholderName];
|
|
200
|
+
for (let i of placeholderEntries) {
|
|
201
|
+
textBlocks[i] = placehoder;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return textBlocks;
|
|
205
|
+
}
|
|
206
|
+
optimize(templateDataRecordId) {
|
|
207
|
+
let maxIterationsNumber = 1200;
|
|
208
|
+
let dataRecord = this.getDataRecordById(templateDataRecordId);
|
|
209
|
+
if (dataRecord.bitsbufTemplate.byteLength === 0) {
|
|
210
|
+
dataRecord.bitsbufTemplate = this.tokensParser.textEncoder.encode(dataRecord.textTemplate);
|
|
211
|
+
}
|
|
212
|
+
let end = dataRecord.bitsbufTemplate.length;
|
|
213
|
+
let templateLookupRange = [0, end];
|
|
214
|
+
let placeholdersNames = Object.keys(dataRecord.dataForRendering);
|
|
215
|
+
let severalTokensSets = placeholdersNames.map((placeholderName) => {
|
|
216
|
+
let placeholderMarkup = ["{{ ", placeholderName, " }}"].join("");
|
|
217
|
+
return [placeholderMarkup];
|
|
218
|
+
});
|
|
219
|
+
let bitsbufsRanges = new Array(1);
|
|
220
|
+
bitsbufsRanges[0] = templateLookupRange;
|
|
221
|
+
let inOutRanges_WithoutTokenizedAreas = new Array();
|
|
222
|
+
let inOutRanges_TokensSetsMatched = new Array(placeholdersNames.length);
|
|
223
|
+
let numberOfPlaceholdersMatched = this.tokensParser
|
|
224
|
+
.parseAroundSeveralTokensSets(dataRecord.bitsbufTemplate, bitsbufsRanges, // datatype explained: [ [startRef: number, endRef: number], [startRef: number, endRef: number], ... ];
|
|
225
|
+
severalTokensSets, // where one tokensSet is array of datatype string[]
|
|
226
|
+
inOutRanges_WithoutTokenizedAreas, inOutRanges_TokensSetsMatched, maxIterationsNumber);
|
|
227
|
+
for (let placeholderId = 0; placeholderId < placeholdersNames.length; placeholderId++) {
|
|
228
|
+
let placeholderName = placeholdersNames[placeholderId];
|
|
229
|
+
let tokensMatchedRanges = inOutRanges_TokensSetsMatched[placeholderId];
|
|
230
|
+
for (let tokenId = 0; tokenId < tokensMatchedRanges.length; tokenId++) {
|
|
231
|
+
let templateRecord = new Object();
|
|
232
|
+
templateRecord.range = [...tokensMatchedRanges[tokenId]];
|
|
233
|
+
templateRecord.placeholderName = placeholderName;
|
|
234
|
+
dataRecord.optimizedTemplate.push(templateRecord);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
let fixedTemplateRecord = new Object();
|
|
238
|
+
for (let templateRange of inOutRanges_WithoutTokenizedAreas) {
|
|
239
|
+
fixedTemplateRecord = new Object();
|
|
240
|
+
fixedTemplateRecord.range = templateRange;
|
|
241
|
+
fixedTemplateRecord.placeholderName = "_";
|
|
242
|
+
dataRecord.optimizedTemplate.push(fixedTemplateRecord);
|
|
243
|
+
}
|
|
244
|
+
dataRecord.optimizedPlaceholdersEntries = new Object();
|
|
245
|
+
for (let placeholderId = 0; placeholderId < placeholdersNames.length; placeholderId++) {
|
|
246
|
+
let placeholderName = placeholdersNames[placeholderId];
|
|
247
|
+
dataRecord.optimizedPlaceholdersEntries[placeholderName] = new Array();
|
|
248
|
+
}
|
|
249
|
+
let optimizedRecords = this.orderedRecords(dataRecord.optimizedTemplate);
|
|
250
|
+
dataRecord.optimizedBitsbufTemplate = new Array(optimizedRecords.length);
|
|
251
|
+
for (let i = 0; i < optimizedRecords.length; i++) {
|
|
252
|
+
let record = optimizedRecords[i];
|
|
253
|
+
let placeholderName = record.placeholderName;
|
|
254
|
+
let bitsbuf = new Uint8Array();
|
|
255
|
+
if (placeholderName === "_") {
|
|
256
|
+
bitsbuf = dataRecord.bitsbufTemplate.subarray(record.range[0], record.range[1]);
|
|
257
|
+
dataRecord.optimizedBitsbufTemplate[i] = bitsbuf;
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
dataRecord.optimizedPlaceholdersEntries[placeholderName].push(i);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
dataRecord.optimizedTemplate = [...optimizedRecords];
|
|
264
|
+
dataRecord.isOptimized = true;
|
|
265
|
+
return numberOfPlaceholdersMatched;
|
|
266
|
+
}
|
|
267
|
+
orderedRecords(inRecords) {
|
|
268
|
+
let records = inRecords.sort((recordA, recordB) => {
|
|
269
|
+
let startA = recordA.range[0];
|
|
270
|
+
let startB = recordB.range[0];
|
|
271
|
+
if (startA === startB) {
|
|
272
|
+
return (0);
|
|
273
|
+
}
|
|
274
|
+
else if (startA > startB) {
|
|
275
|
+
return (1);
|
|
276
|
+
}
|
|
277
|
+
else {
|
|
278
|
+
return (-1);
|
|
279
|
+
}
|
|
280
|
+
});
|
|
281
|
+
return [...records];
|
|
282
|
+
}
|
|
283
|
+
// old method String.replace() in loop over all charrs of the template every loop iterations.
|
|
284
|
+
replaceTemplateRendererWithDataForRendering() {
|
|
285
|
+
let dataRecord = this.getActiveDataRecord();
|
|
286
|
+
let renderedHtml_1 = "";
|
|
287
|
+
let renderedHtml_2 = dataRecord.textTemplate;
|
|
288
|
+
for (const placeholderName in dataRecord.dataForRendering) {
|
|
289
|
+
renderedHtml_1 = renderedHtml_2;
|
|
290
|
+
const stringToReplace = `{{ ${placeholderName} }}`;
|
|
291
|
+
// @ts-ignore
|
|
292
|
+
let valueToSet = dataRecord.dataForRendering[placeholderName];
|
|
293
|
+
if (!valueToSet) {
|
|
294
|
+
valueToSet = "";
|
|
295
|
+
}
|
|
296
|
+
renderedHtml_2 = renderedHtml_1.replace(stringToReplace, valueToSet);
|
|
297
|
+
}
|
|
298
|
+
return renderedHtml_2;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
exports.TemplateRenderer = TemplateRenderer;
|
|
302
|
+
_TemplateRenderer_activeDataRecordId = new WeakMap();
|
|
303
|
+
//# sourceMappingURL=TemplateRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateRenderer.js","sourceRoot":"","sources":["../../src/TemplateRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,gCAAgC;;;AAEhC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,gCAAgC;;;AAEhC,6DAA8G;AAArG,uHAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { TextEncoder, TextDecoder } from "node:util";
|
|
2
|
+
import { EventEmitter } from "@jaisocx/event-emitter";
|
|
3
|
+
import { TokensParser } from "@jaisocx/tokens-parser";
|
|
4
|
+
export type TemplateRendererDataRecord = {
|
|
5
|
+
id: number;
|
|
6
|
+
isOptimized: boolean;
|
|
7
|
+
textTemplate: string;
|
|
8
|
+
dataForRendering: object;
|
|
9
|
+
bitsbufTemplate: Uint8Array;
|
|
10
|
+
optimizedBitsbufTemplate: Uint8Array[];
|
|
11
|
+
optimizedPlaceholdersEntries: any;
|
|
12
|
+
optimizedTemplate: OptimizedTemplateRecord[];
|
|
13
|
+
};
|
|
14
|
+
export type OptimizedTemplateRecord = {
|
|
15
|
+
placeholderName: string;
|
|
16
|
+
range: number[];
|
|
17
|
+
};
|
|
18
|
+
export declare class TemplateRenderer extends EventEmitter {
|
|
19
|
+
#private;
|
|
20
|
+
EVENT_NAME__AFTER_RENDER: any;
|
|
21
|
+
tokensParser: TokensParser;
|
|
22
|
+
dataRecords: TemplateRendererDataRecord[];
|
|
23
|
+
textEncoder: TextEncoder;
|
|
24
|
+
textDecoder: TextDecoder;
|
|
25
|
+
constructor();
|
|
26
|
+
initDataRecord(): TemplateRendererDataRecord;
|
|
27
|
+
addNewDataRecord(): TemplateRendererDataRecord;
|
|
28
|
+
getActiveDataRecord(): TemplateRendererDataRecord;
|
|
29
|
+
getActiveDataRecordId(): number;
|
|
30
|
+
getDataRecordById(id: number): TemplateRendererDataRecord;
|
|
31
|
+
setActiveRecordId(id: number): TemplateRendererDataRecord;
|
|
32
|
+
setActiveDataRecord(dataRecord: TemplateRendererDataRecord): number;
|
|
33
|
+
setDebug(debug: boolean): TemplateRenderer;
|
|
34
|
+
setTemplate(template: string): TemplateRenderer;
|
|
35
|
+
setData(dataForRendering: object): TemplateRenderer;
|
|
36
|
+
render(): any;
|
|
37
|
+
renderOptimizedDataBitsbufs(templateDataRecordId: number, dataForRendering: any): Uint8Array[];
|
|
38
|
+
renderOptimizedToStringDataText(templateDataRecordId: number, dataForRendering: any): string;
|
|
39
|
+
renderOptimizedToStringDataBitsbufs(templateDataRecordId: number, dataForRendering: any): string;
|
|
40
|
+
renderOptimizedTextBlocks(templateDataRecordId: number, dataForRendering: any): string[];
|
|
41
|
+
optimize(templateDataRecordId: number): number;
|
|
42
|
+
protected orderedRecords(inRecords: OptimizedTemplateRecord[]): OptimizedTemplateRecord[];
|
|
43
|
+
replaceTemplateRendererWithDataForRendering(): any;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=TemplateRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateRenderer.d.ts","sourceRoot":"","sources":["../../src/TemplateRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,EAAE,YAAY,EAAmB,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAItD,MAAM,MAAM,0BAA0B,GAAG;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IAEzB,eAAe,EAAE,UAAU,CAAC;IAC5B,wBAAwB,EAAE,UAAU,EAAE,CAAC;IACvC,4BAA4B,EAAE,GAAG,CAAC;IAClC,iBAAiB,EAAE,uBAAuB,EAAE,CAAC;CAC9C,CAAA;AAID,MAAM,MAAM,uBAAuB,GAAI;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAA;AAID,qBAAa,gBAAiB,SAAQ,YAAY;;IAChD,wBAAwB,EAAE,GAAG,CAAC;IAE9B,YAAY,EAAE,YAAY,CAAC;IAE3B,WAAW,EAAE,0BAA0B,EAAE,CAAC;IAG1C,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;;IAoBzB,cAAc,IAAI,0BAA0B;IAe5C,gBAAgB,IAAI,0BAA0B;IAS9C,mBAAmB,IAAI,0BAA0B;IAejD,qBAAqB,IAAI,MAAM;IAI/B,iBAAiB,CAAE,EAAE,EAAE,MAAM;IAI7B,iBAAiB,CAAE,EAAE,EAAE,MAAM,GAAI,0BAA0B;IAM3D,mBAAmB,CAAE,UAAU,EAAE,0BAA0B,GAAI,MAAM;IAwBrE,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB;IAK1C,WAAW,CAAE,QAAQ,EAAE,MAAM,GAAI,gBAAgB;IAOjD,OAAO,CAAE,gBAAgB,EAAE,MAAM,GAAI,gBAAgB;IAQrD,MAAM,IAAI,GAAG;IAiEb,2BAA2B,CACzB,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,GAAG,GACpB,UAAU,EAAE;IAqBf,+BAA+B,CAC7B,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,GAAG,GACpB,MAAM;IAgBT,mCAAmC,CACjC,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,GAAG,GACpB,MAAM;IAiCT,yBAAyB,CACvB,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,GAAG,GACpB,MAAM,EAAE;IA4BX,QAAQ,CAAG,oBAAoB,EAAE,MAAM,GAAI,MAAM;IAmGjD,SAAS,CAAC,cAAc,CAAE,SAAS,EAAE,uBAAuB,EAAE,GAAI,uBAAuB,EAAE;IAuB3F,2CAA2C,IAAI,GAAG;CA2BnD"}
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
import { TextEncoder, TextDecoder } from "node:util";
|
|
2
|
+
import { EventEmitter } from "@jaisocx/event-emitter";
|
|
3
|
+
import { TokensParser } from "@jaisocx/tokens-parser";
|
|
4
|
+
export class TemplateRenderer extends EventEmitter {
|
|
5
|
+
EVENT_NAME__AFTER_RENDER;
|
|
6
|
+
tokensParser;
|
|
7
|
+
dataRecords;
|
|
8
|
+
#activeDataRecordId;
|
|
9
|
+
textEncoder;
|
|
10
|
+
textDecoder;
|
|
11
|
+
constructor() {
|
|
12
|
+
super();
|
|
13
|
+
this.EVENT_NAME__AFTER_RENDER = "afterRender";
|
|
14
|
+
this.tokensParser = new TokensParser();
|
|
15
|
+
this.dataRecords = new Array();
|
|
16
|
+
this.#activeDataRecordId = 0;
|
|
17
|
+
this.textEncoder = new TextEncoder();
|
|
18
|
+
this.textDecoder = new TextDecoder("utf8");
|
|
19
|
+
}
|
|
20
|
+
initDataRecord() {
|
|
21
|
+
let dataRecord = new Object();
|
|
22
|
+
dataRecord.isOptimized = false;
|
|
23
|
+
dataRecord.textTemplate = "";
|
|
24
|
+
dataRecord.dataForRendering = new Object();
|
|
25
|
+
dataRecord.bitsbufTemplate = new Uint8Array();
|
|
26
|
+
dataRecord.optimizedBitsbufTemplate = new Array();
|
|
27
|
+
dataRecord.optimizedPlaceholdersEntries = new Object();
|
|
28
|
+
dataRecord.optimizedTemplate = new Array();
|
|
29
|
+
return dataRecord;
|
|
30
|
+
}
|
|
31
|
+
addNewDataRecord() {
|
|
32
|
+
let dataRecord = this.initDataRecord();
|
|
33
|
+
this.dataRecords.push(dataRecord);
|
|
34
|
+
this.#activeDataRecordId = (this.dataRecords.length - 1);
|
|
35
|
+
this.dataRecords[this.#activeDataRecordId].id = this.#activeDataRecordId;
|
|
36
|
+
return this.dataRecords[this.#activeDataRecordId];
|
|
37
|
+
}
|
|
38
|
+
getActiveDataRecord() {
|
|
39
|
+
let dataRecord;
|
|
40
|
+
if (this.#activeDataRecordId === 0) {
|
|
41
|
+
let obj = new Object();
|
|
42
|
+
this.dataRecords.push(obj);
|
|
43
|
+
dataRecord = this.addNewDataRecord();
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
dataRecord = this.dataRecords[this.#activeDataRecordId];
|
|
47
|
+
}
|
|
48
|
+
return dataRecord;
|
|
49
|
+
}
|
|
50
|
+
getActiveDataRecordId() {
|
|
51
|
+
return this.#activeDataRecordId;
|
|
52
|
+
}
|
|
53
|
+
getDataRecordById(id) {
|
|
54
|
+
return this.dataRecords[id];
|
|
55
|
+
}
|
|
56
|
+
setActiveRecordId(id) {
|
|
57
|
+
this.#activeDataRecordId = id;
|
|
58
|
+
return this.dataRecords[id];
|
|
59
|
+
}
|
|
60
|
+
setActiveDataRecord(dataRecord) {
|
|
61
|
+
if (this.#activeDataRecordId === 0) {
|
|
62
|
+
let obj = new Object();
|
|
63
|
+
this.dataRecords.push(obj);
|
|
64
|
+
}
|
|
65
|
+
let id = dataRecord.id;
|
|
66
|
+
if (id === 0) {
|
|
67
|
+
id = this.dataRecords.length;
|
|
68
|
+
dataRecord.id = id;
|
|
69
|
+
this.dataRecords.push(dataRecord);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
id = dataRecord.id;
|
|
73
|
+
this.dataRecords[id] = dataRecord;
|
|
74
|
+
}
|
|
75
|
+
this.#activeDataRecordId = id;
|
|
76
|
+
return id;
|
|
77
|
+
}
|
|
78
|
+
setDebug(debug) {
|
|
79
|
+
this.debug = debug;
|
|
80
|
+
return this;
|
|
81
|
+
}
|
|
82
|
+
setTemplate(template) {
|
|
83
|
+
let dataRecord = this.getActiveDataRecord();
|
|
84
|
+
dataRecord.textTemplate = template;
|
|
85
|
+
return this;
|
|
86
|
+
}
|
|
87
|
+
setData(dataForRendering) {
|
|
88
|
+
let dataRecord = this.getActiveDataRecord();
|
|
89
|
+
dataRecord.dataForRendering = dataForRendering;
|
|
90
|
+
return this;
|
|
91
|
+
}
|
|
92
|
+
render() {
|
|
93
|
+
if (this.#activeDataRecordId === 0) {
|
|
94
|
+
throw new Error("No template neither data were set.");
|
|
95
|
+
}
|
|
96
|
+
let dataRecord = this.getActiveDataRecord();
|
|
97
|
+
if (dataRecord.isOptimized === false) {
|
|
98
|
+
this.optimize(dataRecord.id);
|
|
99
|
+
dataRecord = this.dataRecords[dataRecord.id];
|
|
100
|
+
}
|
|
101
|
+
let renderedHtml = this.renderOptimizedToStringDataText(dataRecord.id, dataRecord.dataForRendering);
|
|
102
|
+
if (this.debug) {
|
|
103
|
+
console.log("renderedHtml before afterRender event emitted", renderedHtml);
|
|
104
|
+
}
|
|
105
|
+
const eventResult = this.emitEvent(this.EVENT_NAME__AFTER_RENDER, {
|
|
106
|
+
html: renderedHtml,
|
|
107
|
+
data: dataRecord.dataForRendering
|
|
108
|
+
});
|
|
109
|
+
if (eventResult.length > 0) {
|
|
110
|
+
const last = eventResult.length - 1;
|
|
111
|
+
let payloadReturned = null;
|
|
112
|
+
for (let eventResultsStep = last; eventResultsStep > (-1); eventResultsStep--) {
|
|
113
|
+
try {
|
|
114
|
+
// @ts-ignore
|
|
115
|
+
payloadReturned = eventResult[eventResultsStep].result.payloadReturned;
|
|
116
|
+
}
|
|
117
|
+
catch (e) { }
|
|
118
|
+
if (!payloadReturned) {
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
renderedHtml = payloadReturned.html;
|
|
122
|
+
}
|
|
123
|
+
if (this.debug) {
|
|
124
|
+
console.log("renderedHtml before afterRender event emitted", eventResult, renderedHtml);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else if (this.debug) {
|
|
128
|
+
console.log("afterRender event did not change html");
|
|
129
|
+
}
|
|
130
|
+
return renderedHtml;
|
|
131
|
+
}
|
|
132
|
+
// the faster method.
|
|
133
|
+
renderOptimizedDataBitsbufs(templateDataRecordId, dataForRendering) {
|
|
134
|
+
let dataRecord = this.getDataRecordById(templateDataRecordId);
|
|
135
|
+
dataRecord.dataForRendering = dataForRendering;
|
|
136
|
+
let bitsbufsArray = [...dataRecord.optimizedBitsbufTemplate];
|
|
137
|
+
for (let placeholderName in dataRecord.dataForRendering) {
|
|
138
|
+
let placeholderEntries = dataRecord.optimizedPlaceholdersEntries[placeholderName];
|
|
139
|
+
// @ts-ignore
|
|
140
|
+
let placehoder = dataRecord.dataForRendering[placeholderName];
|
|
141
|
+
for (let i of placeholderEntries) {
|
|
142
|
+
bitsbufsArray[i] = placehoder;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return bitsbufsArray;
|
|
146
|
+
}
|
|
147
|
+
renderOptimizedToStringDataText(templateDataRecordId, dataForRendering) {
|
|
148
|
+
let dataRecord = this.getDataRecordById(templateDataRecordId);
|
|
149
|
+
dataRecord.dataForRendering = dataForRendering;
|
|
150
|
+
let textBlocks = this.renderOptimizedTextBlocks(templateDataRecordId, dataRecord.dataForRendering);
|
|
151
|
+
let renderedText = textBlocks.join("");
|
|
152
|
+
return renderedText;
|
|
153
|
+
}
|
|
154
|
+
renderOptimizedToStringDataBitsbufs(templateDataRecordId, dataForRendering) {
|
|
155
|
+
let dataRecord = this.getDataRecordById(templateDataRecordId);
|
|
156
|
+
dataRecord.dataForRendering = dataForRendering;
|
|
157
|
+
let bitsbufsArray = this.renderOptimizedDataBitsbufs(templateDataRecordId, dataRecord.dataForRendering);
|
|
158
|
+
let bitsbufsArrayLen = bitsbufsArray.length;
|
|
159
|
+
let textBlocks = new Array(bitsbufsArrayLen);
|
|
160
|
+
let i = 0;
|
|
161
|
+
for (i = 0; i < bitsbufsArrayLen; i++) {
|
|
162
|
+
let bitsbufElem = bitsbufsArray[i];
|
|
163
|
+
if (typeof bitsbufElem === "string") {
|
|
164
|
+
textBlocks[i] = bitsbufElem;
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
textBlocks[i] = this.textDecoder.decode(bitsbufElem);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
let renderedText = textBlocks.join("");
|
|
171
|
+
return renderedText;
|
|
172
|
+
}
|
|
173
|
+
// the way to improve:
|
|
174
|
+
// after optimization, create once dataRecord.optimizedBitsbufTemplate of texts, so not to decode to strings.
|
|
175
|
+
renderOptimizedTextBlocks(templateDataRecordId, dataForRendering // { key: text }
|
|
176
|
+
) {
|
|
177
|
+
let dataRecord = this.getDataRecordById(templateDataRecordId);
|
|
178
|
+
dataRecord.dataForRendering = dataForRendering;
|
|
179
|
+
let bitsbufsArray = [...dataRecord.optimizedBitsbufTemplate];
|
|
180
|
+
let textBlocks = new Array();
|
|
181
|
+
let bitsbufElem = new Uint8Array();
|
|
182
|
+
for (let i = 0; i < bitsbufsArray.length; i++) {
|
|
183
|
+
bitsbufElem = bitsbufsArray[i];
|
|
184
|
+
textBlocks[i] = this.textDecoder.decode(bitsbufElem);
|
|
185
|
+
}
|
|
186
|
+
for (let placeholderName in dataRecord.dataForRendering) {
|
|
187
|
+
let placeholderEntries = dataRecord.optimizedPlaceholdersEntries[placeholderName];
|
|
188
|
+
// @ts-ignore
|
|
189
|
+
let placehoder = dataRecord.dataForRendering[placeholderName];
|
|
190
|
+
for (let i of placeholderEntries) {
|
|
191
|
+
textBlocks[i] = placehoder;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return textBlocks;
|
|
195
|
+
}
|
|
196
|
+
optimize(templateDataRecordId) {
|
|
197
|
+
let maxIterationsNumber = 1200;
|
|
198
|
+
let dataRecord = this.getDataRecordById(templateDataRecordId);
|
|
199
|
+
if (dataRecord.bitsbufTemplate.byteLength === 0) {
|
|
200
|
+
dataRecord.bitsbufTemplate = this.tokensParser.textEncoder.encode(dataRecord.textTemplate);
|
|
201
|
+
}
|
|
202
|
+
let end = dataRecord.bitsbufTemplate.length;
|
|
203
|
+
let templateLookupRange = [0, end];
|
|
204
|
+
let placeholdersNames = Object.keys(dataRecord.dataForRendering);
|
|
205
|
+
let severalTokensSets = placeholdersNames.map((placeholderName) => {
|
|
206
|
+
let placeholderMarkup = ["{{ ", placeholderName, " }}"].join("");
|
|
207
|
+
return [placeholderMarkup];
|
|
208
|
+
});
|
|
209
|
+
let bitsbufsRanges = new Array(1);
|
|
210
|
+
bitsbufsRanges[0] = templateLookupRange;
|
|
211
|
+
let inOutRanges_WithoutTokenizedAreas = new Array();
|
|
212
|
+
let inOutRanges_TokensSetsMatched = new Array(placeholdersNames.length);
|
|
213
|
+
let numberOfPlaceholdersMatched = this.tokensParser
|
|
214
|
+
.parseAroundSeveralTokensSets(dataRecord.bitsbufTemplate, bitsbufsRanges, // datatype explained: [ [startRef: number, endRef: number], [startRef: number, endRef: number], ... ];
|
|
215
|
+
severalTokensSets, // where one tokensSet is array of datatype string[]
|
|
216
|
+
inOutRanges_WithoutTokenizedAreas, inOutRanges_TokensSetsMatched, maxIterationsNumber);
|
|
217
|
+
for (let placeholderId = 0; placeholderId < placeholdersNames.length; placeholderId++) {
|
|
218
|
+
let placeholderName = placeholdersNames[placeholderId];
|
|
219
|
+
let tokensMatchedRanges = inOutRanges_TokensSetsMatched[placeholderId];
|
|
220
|
+
for (let tokenId = 0; tokenId < tokensMatchedRanges.length; tokenId++) {
|
|
221
|
+
let templateRecord = new Object();
|
|
222
|
+
templateRecord.range = [...tokensMatchedRanges[tokenId]];
|
|
223
|
+
templateRecord.placeholderName = placeholderName;
|
|
224
|
+
dataRecord.optimizedTemplate.push(templateRecord);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
let fixedTemplateRecord = new Object();
|
|
228
|
+
for (let templateRange of inOutRanges_WithoutTokenizedAreas) {
|
|
229
|
+
fixedTemplateRecord = new Object();
|
|
230
|
+
fixedTemplateRecord.range = templateRange;
|
|
231
|
+
fixedTemplateRecord.placeholderName = "_";
|
|
232
|
+
dataRecord.optimizedTemplate.push(fixedTemplateRecord);
|
|
233
|
+
}
|
|
234
|
+
dataRecord.optimizedPlaceholdersEntries = new Object();
|
|
235
|
+
for (let placeholderId = 0; placeholderId < placeholdersNames.length; placeholderId++) {
|
|
236
|
+
let placeholderName = placeholdersNames[placeholderId];
|
|
237
|
+
dataRecord.optimizedPlaceholdersEntries[placeholderName] = new Array();
|
|
238
|
+
}
|
|
239
|
+
let optimizedRecords = this.orderedRecords(dataRecord.optimizedTemplate);
|
|
240
|
+
dataRecord.optimizedBitsbufTemplate = new Array(optimizedRecords.length);
|
|
241
|
+
for (let i = 0; i < optimizedRecords.length; i++) {
|
|
242
|
+
let record = optimizedRecords[i];
|
|
243
|
+
let placeholderName = record.placeholderName;
|
|
244
|
+
let bitsbuf = new Uint8Array();
|
|
245
|
+
if (placeholderName === "_") {
|
|
246
|
+
bitsbuf = dataRecord.bitsbufTemplate.subarray(record.range[0], record.range[1]);
|
|
247
|
+
dataRecord.optimizedBitsbufTemplate[i] = bitsbuf;
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
dataRecord.optimizedPlaceholdersEntries[placeholderName].push(i);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
dataRecord.optimizedTemplate = [...optimizedRecords];
|
|
254
|
+
dataRecord.isOptimized = true;
|
|
255
|
+
return numberOfPlaceholdersMatched;
|
|
256
|
+
}
|
|
257
|
+
orderedRecords(inRecords) {
|
|
258
|
+
let records = inRecords.sort((recordA, recordB) => {
|
|
259
|
+
let startA = recordA.range[0];
|
|
260
|
+
let startB = recordB.range[0];
|
|
261
|
+
if (startA === startB) {
|
|
262
|
+
return (0);
|
|
263
|
+
}
|
|
264
|
+
else if (startA > startB) {
|
|
265
|
+
return (1);
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
return (-1);
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
return [...records];
|
|
272
|
+
}
|
|
273
|
+
// old method String.replace() in loop over all charrs of the template every loop iterations.
|
|
274
|
+
replaceTemplateRendererWithDataForRendering() {
|
|
275
|
+
let dataRecord = this.getActiveDataRecord();
|
|
276
|
+
let renderedHtml_1 = "";
|
|
277
|
+
let renderedHtml_2 = dataRecord.textTemplate;
|
|
278
|
+
for (const placeholderName in dataRecord.dataForRendering) {
|
|
279
|
+
renderedHtml_1 = renderedHtml_2;
|
|
280
|
+
const stringToReplace = `{{ ${placeholderName} }}`;
|
|
281
|
+
// @ts-ignore
|
|
282
|
+
let valueToSet = dataRecord.dataForRendering[placeholderName];
|
|
283
|
+
if (!valueToSet) {
|
|
284
|
+
valueToSet = "";
|
|
285
|
+
}
|
|
286
|
+
renderedHtml_2 = renderedHtml_1.replace(stringToReplace, valueToSet);
|
|
287
|
+
}
|
|
288
|
+
return renderedHtml_2;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
//# sourceMappingURL=TemplateRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateRenderer.js","sourceRoot":"","sources":["../../src/TemplateRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,gBAAgB,EAAuD,MAAM,uBAAuB,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from "@jaisocx/event-emitter";
|
|
2
|
-
export declare class TemplateRenderer extends EventEmitter {
|
|
3
|
-
EVENT_NAME__AFTER_RENDER: string;
|
|
4
|
-
data: object;
|
|
5
|
-
template: string;
|
|
6
|
-
constructor();
|
|
7
|
-
setDebug(debug: boolean): TemplateRenderer;
|
|
8
|
-
setData(data: object): TemplateRenderer;
|
|
9
|
-
setTemplate(template: string): TemplateRenderer;
|
|
10
|
-
render(): string;
|
|
11
|
-
replaceTemplateRendererWithDataForRendering(template: string, dataForRendering: object): string;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=TemplateRenderer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateRenderer.d.ts","sourceRoot":"","sources":["../../src/TemplateRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA4C,MAAM,wBAAwB,CAAC;AAEhG,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,wBAAwB,EAAE,MAAM,CAAC;IAEjC,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,EAAE,MAAM,CAAC;;IAWjB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB;IAK1C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAKvC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB;IAK/C,MAAM,IAAI,MAAM;IAoDhB,2CAA2C,CACzC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GACvB,MAAM;CAoBV"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TemplateRenderer = void 0;
|
|
4
|
-
const event_emitter_1 = require("@jaisocx/event-emitter");
|
|
5
|
-
class TemplateRenderer extends event_emitter_1.EventEmitter {
|
|
6
|
-
constructor() {
|
|
7
|
-
super();
|
|
8
|
-
this.EVENT_NAME__AFTER_RENDER = "afterRender";
|
|
9
|
-
this.data = {};
|
|
10
|
-
this.template = "";
|
|
11
|
-
}
|
|
12
|
-
setDebug(debug) {
|
|
13
|
-
this.debug = debug;
|
|
14
|
-
return this;
|
|
15
|
-
}
|
|
16
|
-
setData(data) {
|
|
17
|
-
this.data = data;
|
|
18
|
-
return this;
|
|
19
|
-
}
|
|
20
|
-
setTemplate(template) {
|
|
21
|
-
this.template = template;
|
|
22
|
-
return this;
|
|
23
|
-
}
|
|
24
|
-
render() {
|
|
25
|
-
let renderedHtml = this.replaceTemplateRendererWithDataForRendering(this.template, this.data);
|
|
26
|
-
if (this.debug) {
|
|
27
|
-
console.log("renderedHtml before afterRender event emitted", renderedHtml);
|
|
28
|
-
}
|
|
29
|
-
const eventResult = this.emitEvent(this.EVENT_NAME__AFTER_RENDER, {
|
|
30
|
-
html: renderedHtml,
|
|
31
|
-
data: this.data,
|
|
32
|
-
});
|
|
33
|
-
if (eventResult.length > 0) {
|
|
34
|
-
const last = eventResult.length - 1;
|
|
35
|
-
let payloadReturned = null;
|
|
36
|
-
for (let eventResultsStep = last; eventResultsStep > (-1); eventResultsStep--) {
|
|
37
|
-
try {
|
|
38
|
-
// @ts-ignore
|
|
39
|
-
payloadReturned = eventResult[eventResultsStep].result.payloadReturned;
|
|
40
|
-
}
|
|
41
|
-
catch (e) { }
|
|
42
|
-
if (!payloadReturned) {
|
|
43
|
-
continue;
|
|
44
|
-
}
|
|
45
|
-
renderedHtml = payloadReturned.html;
|
|
46
|
-
}
|
|
47
|
-
if (this.debug) {
|
|
48
|
-
console.log("renderedHtml before afterRender event emitted", eventResult, renderedHtml);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
else if (this.debug) {
|
|
52
|
-
console.log("afterRender event did not change html");
|
|
53
|
-
}
|
|
54
|
-
return renderedHtml;
|
|
55
|
-
}
|
|
56
|
-
replaceTemplateRendererWithDataForRendering(template, dataForRendering) {
|
|
57
|
-
let renderedHtml = template;
|
|
58
|
-
for (const placeholderName in dataForRendering) {
|
|
59
|
-
const stringToReplace = `{{ ${placeholderName} }}`;
|
|
60
|
-
// @ts-ignore
|
|
61
|
-
let valueToSet = dataForRendering[placeholderName];
|
|
62
|
-
if (!valueToSet) {
|
|
63
|
-
valueToSet = "";
|
|
64
|
-
}
|
|
65
|
-
renderedHtml = renderedHtml.replace(stringToReplace, valueToSet);
|
|
66
|
-
}
|
|
67
|
-
return renderedHtml;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
exports.TemplateRenderer = TemplateRenderer;
|
|
71
|
-
//# sourceMappingURL=TemplateRenderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateRenderer.js","sourceRoot":"","sources":["../../src/TemplateRenderer.ts"],"names":[],"mappings":";;;AAAA,0DAAgG;AAEhG,MAAa,gBAAiB,SAAQ,4BAAY;IAOhD;QACE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,wBAAwB,GAAG,aAAa,CAAC;QAE9C,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,QAAQ,CAAC,KAAc;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;QACJ,IAAI,YAAY,GAAG,IAAI,CAAC,2CAA2C,CACjE,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,IAAI,CACV,CAAC;QAEF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CACT,+CAA+C,EAC/C,YAAY,CACb,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAsB,IAAI,CAAC,SAAS,CACnD,IAAI,CAAC,wBAAwB,EAC7B;YACE,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CACF,CAAC;QAEF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAW,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;YAE5C,IAAI,eAAe,GAAQ,IAAI,CAAC;YAChC,KAAM,IAAI,gBAAgB,GAAG,IAAI,EAAE,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAG,CAAC;gBAChF,IAAI,CAAC;oBACH,aAAa;oBACb,eAAe,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;gBACzE,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;gBAEd,IAAK,CAAC,eAAe,EAAG,CAAC;oBACvB,SAAS;gBACX,CAAC;gBAED,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC;YACtC,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CACT,+CAA+C,EAC/C,WAAW,EACX,YAAY,CACb,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,2CAA2C,CACzC,QAAgB,EAChB,gBAAwB;QAExB,IAAI,YAAY,GAAG,QAAQ,CAAC;QAE5B,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;YAC/C,MAAM,eAAe,GAAG,MAAM,eAAe,KAAK,CAAC;YAEnD,aAAa;YACb,IAAI,UAAU,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,UAAU,GAAG,EAAE,CAAC;YAClB,CAAC;YAED,YAAY,GAAG,YAAY,CAAC,OAAO,CACjC,eAAe,EACf,UAAU,CACX,CAAC;QACJ,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AA1GD,4CA0GC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from "@jaisocx/event-emitter";
|
|
2
|
-
export declare class TemplateRenderer extends EventEmitter {
|
|
3
|
-
EVENT_NAME__AFTER_RENDER: string;
|
|
4
|
-
data: object;
|
|
5
|
-
template: string;
|
|
6
|
-
constructor();
|
|
7
|
-
setDebug(debug: boolean): TemplateRenderer;
|
|
8
|
-
setData(data: object): TemplateRenderer;
|
|
9
|
-
setTemplate(template: string): TemplateRenderer;
|
|
10
|
-
render(): string;
|
|
11
|
-
replaceTemplateRendererWithDataForRendering(template: string, dataForRendering: object): string;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=TemplateRenderer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateRenderer.d.ts","sourceRoot":"","sources":["../../src/TemplateRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA4C,MAAM,wBAAwB,CAAC;AAEhG,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,wBAAwB,EAAE,MAAM,CAAC;IAEjC,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,EAAE,MAAM,CAAC;;IAWjB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB;IAK1C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAKvC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB;IAK/C,MAAM,IAAI,MAAM;IAoDhB,2CAA2C,CACzC,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GACvB,MAAM;CAoBV"}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from "@jaisocx/event-emitter";
|
|
2
|
-
export class TemplateRenderer extends EventEmitter {
|
|
3
|
-
EVENT_NAME__AFTER_RENDER;
|
|
4
|
-
data;
|
|
5
|
-
template;
|
|
6
|
-
constructor() {
|
|
7
|
-
super();
|
|
8
|
-
this.EVENT_NAME__AFTER_RENDER = "afterRender";
|
|
9
|
-
this.data = {};
|
|
10
|
-
this.template = "";
|
|
11
|
-
}
|
|
12
|
-
setDebug(debug) {
|
|
13
|
-
this.debug = debug;
|
|
14
|
-
return this;
|
|
15
|
-
}
|
|
16
|
-
setData(data) {
|
|
17
|
-
this.data = data;
|
|
18
|
-
return this;
|
|
19
|
-
}
|
|
20
|
-
setTemplate(template) {
|
|
21
|
-
this.template = template;
|
|
22
|
-
return this;
|
|
23
|
-
}
|
|
24
|
-
render() {
|
|
25
|
-
let renderedHtml = this.replaceTemplateRendererWithDataForRendering(this.template, this.data);
|
|
26
|
-
if (this.debug) {
|
|
27
|
-
console.log("renderedHtml before afterRender event emitted", renderedHtml);
|
|
28
|
-
}
|
|
29
|
-
const eventResult = this.emitEvent(this.EVENT_NAME__AFTER_RENDER, {
|
|
30
|
-
html: renderedHtml,
|
|
31
|
-
data: this.data,
|
|
32
|
-
});
|
|
33
|
-
if (eventResult.length > 0) {
|
|
34
|
-
const last = eventResult.length - 1;
|
|
35
|
-
let payloadReturned = null;
|
|
36
|
-
for (let eventResultsStep = last; eventResultsStep > (-1); eventResultsStep--) {
|
|
37
|
-
try {
|
|
38
|
-
// @ts-ignore
|
|
39
|
-
payloadReturned = eventResult[eventResultsStep].result.payloadReturned;
|
|
40
|
-
}
|
|
41
|
-
catch (e) { }
|
|
42
|
-
if (!payloadReturned) {
|
|
43
|
-
continue;
|
|
44
|
-
}
|
|
45
|
-
renderedHtml = payloadReturned.html;
|
|
46
|
-
}
|
|
47
|
-
if (this.debug) {
|
|
48
|
-
console.log("renderedHtml before afterRender event emitted", eventResult, renderedHtml);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
else if (this.debug) {
|
|
52
|
-
console.log("afterRender event did not change html");
|
|
53
|
-
}
|
|
54
|
-
return renderedHtml;
|
|
55
|
-
}
|
|
56
|
-
replaceTemplateRendererWithDataForRendering(template, dataForRendering) {
|
|
57
|
-
let renderedHtml = template;
|
|
58
|
-
for (const placeholderName in dataForRendering) {
|
|
59
|
-
const stringToReplace = `{{ ${placeholderName} }}`;
|
|
60
|
-
// @ts-ignore
|
|
61
|
-
let valueToSet = dataForRendering[placeholderName];
|
|
62
|
-
if (!valueToSet) {
|
|
63
|
-
valueToSet = "";
|
|
64
|
-
}
|
|
65
|
-
renderedHtml = renderedHtml.replace(stringToReplace, valueToSet);
|
|
66
|
-
}
|
|
67
|
-
return renderedHtml;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=TemplateRenderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateRenderer.js","sourceRoot":"","sources":["../../src/TemplateRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA4C,MAAM,wBAAwB,CAAC;AAEhG,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAChD,wBAAwB,CAAS;IAEjC,IAAI,CAAS;IAEb,QAAQ,CAAS;IAEjB;QACE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,wBAAwB,GAAG,aAAa,CAAC;QAE9C,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,QAAQ,CAAC,KAAc;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;QACJ,IAAI,YAAY,GAAG,IAAI,CAAC,2CAA2C,CACjE,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,IAAI,CACV,CAAC;QAEF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CACT,+CAA+C,EAC/C,YAAY,CACb,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAsB,IAAI,CAAC,SAAS,CACnD,IAAI,CAAC,wBAAwB,EAC7B;YACE,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CACF,CAAC;QAEF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAW,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;YAE5C,IAAI,eAAe,GAAQ,IAAI,CAAC;YAChC,KAAM,IAAI,gBAAgB,GAAG,IAAI,EAAE,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAG,CAAC;gBAChF,IAAI,CAAC;oBACH,aAAa;oBACb,eAAe,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;gBACzE,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;gBAEd,IAAK,CAAC,eAAe,EAAG,CAAC;oBACvB,SAAS;gBACX,CAAC;gBAED,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC;YACtC,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CACT,+CAA+C,EAC/C,WAAW,EACX,YAAY,CACb,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,2CAA2C,CACzC,QAAgB,EAChB,gBAAwB;QAExB,IAAI,YAAY,GAAG,QAAQ,CAAC;QAE5B,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;YAC/C,MAAM,eAAe,GAAG,MAAM,eAAe,KAAK,CAAC;YAEnD,aAAa;YACb,IAAI,UAAU,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,UAAU,GAAG,EAAE,CAAC;YAClB,CAAC;YAED,YAAY,GAAG,YAAY,CAAC,OAAO,CACjC,eAAe,EACf,UAAU,CACX,CAAC;QACJ,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;CACF"}
|
package/build/ESNext/index.d.ts
DELETED
|
File without changes
|
|
File without changes
|