@jaisocx/template-renderer 1.4.1 → 1.5.8

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 (29) hide show
  1. package/README.md +7 -5
  2. package/package.json +20 -15
  3. package/transpiled/CommonJS/TemplateRenderer.d.ts +45 -0
  4. package/transpiled/CommonJS/TemplateRenderer.d.ts.map +1 -0
  5. package/transpiled/CommonJS/TemplateRenderer.js +306 -0
  6. package/transpiled/CommonJS/TemplateRenderer.js.map +1 -0
  7. package/transpiled/CommonJS/index.d.ts +2 -0
  8. package/{build → transpiled}/CommonJS/index.d.ts.map +1 -1
  9. package/{build → transpiled}/CommonJS/index.js.map +1 -1
  10. package/transpiled/ESNext/TemplateRenderer.d.ts +45 -0
  11. package/transpiled/ESNext/TemplateRenderer.d.ts.map +1 -0
  12. package/transpiled/ESNext/TemplateRenderer.js +294 -0
  13. package/transpiled/ESNext/TemplateRenderer.js.map +1 -0
  14. package/transpiled/ESNext/index.d.ts +2 -0
  15. package/{build → transpiled}/ESNext/index.d.ts.map +1 -1
  16. package/{build → transpiled}/ESNext/index.js.map +1 -1
  17. package/transpiled/Simple/TemplateRenderer.js +428 -0
  18. package/build/CommonJS/TemplateRenderer.d.ts +0 -13
  19. package/build/CommonJS/TemplateRenderer.d.ts.map +0 -1
  20. package/build/CommonJS/TemplateRenderer.js +0 -71
  21. package/build/CommonJS/TemplateRenderer.js.map +0 -1
  22. package/build/CommonJS/index.d.ts +0 -2
  23. package/build/ESNext/TemplateRenderer.d.ts +0 -13
  24. package/build/ESNext/TemplateRenderer.d.ts.map +0 -1
  25. package/build/ESNext/TemplateRenderer.js +0 -70
  26. package/build/ESNext/TemplateRenderer.js.map +0 -1
  27. package/build/ESNext/index.d.ts +0 -2
  28. /package/{build → transpiled}/CommonJS/index.js +0 -0
  29. /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: string|null;
15
+ holderHtmlNodeSelector: any|null;
14
16
 
15
17
  data: object;
16
18
 
17
- template: string;
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/build/Simple/EventEmitter.js"></script>
103
- <script src="packages/TemplateRenderer/build/Simple/TemplateRenderer.js"></script>
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="examples/ExampleTemplateRenderer/build/Simple/ExampleTemplateRenderer.js"></script>
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,34 @@
1
1
  {
2
2
  "name": "@jaisocx/template-renderer",
3
- "version": "1.4.1",
3
+ "version": "1.5.8",
4
+ "author": "Jaisocx",
4
5
  "private": false,
5
6
  "description": "",
6
7
  "type": "module",
7
- "main": "./build/CommonJS/index.js",
8
- "types": "./build/ESNext/index.d.ts",
9
- "module": "./build/ESNext/index.js",
8
+ "main": "./transpiled/CommonJS/index.js",
9
+ "types": "./transpiled/ESNext/index.d.ts",
10
+ "module": "./transpiled/ESNext/index.js",
10
11
  "exports": {
11
- "require": "./build/ComonJS/index.js",
12
- "import": "./build/ESNext/index.js"
12
+ "require": "./transpiled/CommonJS/index.js",
13
+ "import": "./transpiled/ESNext/index.js"
13
14
  },
14
15
  "files": [
15
- "build/CommonJS",
16
- "build/ESNext",
17
- "assets/",
18
- "README.md",
19
- "LICENSE"
16
+ "transpiled/CommonJS",
17
+ "transpiled/ESNext",
18
+ "transpiled/Simple",
19
+ "README.md"
20
20
  ],
21
21
  "optionalDependencies": {
22
- "@jaisocx/event-emitter": "^1.4.x"
22
+ "@jaisocx/event-emitter": "^1.4.2",
23
+ "@jaisocx/tokens-parser": "^1.2.2"
23
24
  },
24
- "keywords": [],
25
- "author": "",
26
- "license": "ISC"
25
+ "publishConfig": {
26
+ "access": "public"
27
+ },
28
+ "keywords": [
29
+ "template",
30
+ "render"
31
+ ]
27
32
  }
28
33
 
29
34
 
@@ -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;;IAkBzB,cAAc,IAAI,0BAA0B;IAgB5C,gBAAgB,IAAI,0BAA0B;IAU9C,mBAAmB,IAAI,0BAA0B;IAgBjD,qBAAqB,IAAI,MAAM;IAK/B,iBAAiB,CAAE,EAAE,EAAE,MAAM;IAK7B,iBAAiB,CAAE,EAAE,EAAE,MAAM,GAAI,0BAA0B;IAO3D,mBAAmB,CAAE,UAAU,EAAE,0BAA0B,GAAI,MAAM;IA0BrE,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB;IAO1C,WAAW,CAAE,QAAQ,EAAE,MAAM,GAAI,gBAAgB;IAQjD,OAAO,CAAE,gBAAgB,EAAE,MAAM,GAAI,gBAAgB;IAQrD,MAAM,IAAI,GAAG;IAmEb,2BAA2B,CACzB,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,GAAG,GACpB,UAAU,EAAE;IAsBf,+BAA+B,CAC7B,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,GAAG,GACpB,MAAM;IAeT,mCAAmC,CACjC,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,GAAG,GACpB,MAAM;IA+BT,yBAAyB,CACvB,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,GAAG,GAIpB,MAAM,EAAE;IA8BX,QAAQ,CAAG,oBAAoB,EAAE,MAAM,GAAI,MAAM;IAsGjD,SAAS,CAAC,cAAc,CAAE,SAAS,EAAE,uBAAuB,EAAE,GAAI,uBAAuB,EAAE;IAqB3F,2CAA2C,IAAI,GAAG;CA4BnD"}
@@ -0,0 +1,306 @@
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
186
+ // { key: text }
187
+ ) {
188
+ let dataRecord = this.getDataRecordById(templateDataRecordId);
189
+ dataRecord.dataForRendering = dataForRendering;
190
+ let bitsbufsArray = [...dataRecord.optimizedBitsbufTemplate];
191
+ let textBlocks = new Array();
192
+ let bitsbufElem = new Uint8Array();
193
+ for (let i = 0; i < bitsbufsArray.length; i++) {
194
+ bitsbufElem = bitsbufsArray[i];
195
+ textBlocks[i] = this.textDecoder.decode(bitsbufElem);
196
+ }
197
+ for (let placeholderName in dataRecord.dataForRendering) {
198
+ let placeholderEntries = dataRecord.optimizedPlaceholdersEntries[placeholderName];
199
+ // @ts-ignore
200
+ let placehoder = dataRecord.dataForRendering[placeholderName];
201
+ for (let i of placeholderEntries) {
202
+ textBlocks[i] = placehoder;
203
+ }
204
+ }
205
+ return textBlocks;
206
+ }
207
+ optimize(templateDataRecordId) {
208
+ let maxIterationsNumber = 1200;
209
+ let dataRecord = this.getDataRecordById(templateDataRecordId);
210
+ if (dataRecord.bitsbufTemplate.byteLength === 0) {
211
+ dataRecord.bitsbufTemplate = this.tokensParser.textEncoder.encode(dataRecord.textTemplate);
212
+ }
213
+ let end = dataRecord.bitsbufTemplate.length;
214
+ let templateLookupRange = [0, end];
215
+ let placeholdersNames = Object.keys(dataRecord.dataForRendering);
216
+ let severalTokensSets = placeholdersNames.map((placeholderName) => {
217
+ let placeholderMarkup = ["{{ ", placeholderName, " }}"].join("");
218
+ return [placeholderMarkup];
219
+ });
220
+ let bitsbufsRanges = new Array(1);
221
+ bitsbufsRanges[0] = templateLookupRange;
222
+ let inOutRanges_WithoutTokenizedAreas = new Array();
223
+ let inOutRanges_TokensSetsMatched = new Array(placeholdersNames.length);
224
+ let numberOfPlaceholdersMatched = this.tokensParser
225
+ .parseAroundSeveralTokensSets(dataRecord.bitsbufTemplate, bitsbufsRanges,
226
+ // datatype explained: [ [startRef: number, endRef: number], [startRef: number, endRef: number], ... ];
227
+ severalTokensSets,
228
+ // where one tokensSet is array of datatype string[]
229
+ inOutRanges_WithoutTokenizedAreas, inOutRanges_TokensSetsMatched, maxIterationsNumber);
230
+ for (let placeholderId = 0; placeholderId < placeholdersNames.length; placeholderId++) {
231
+ let placeholderName = placeholdersNames[placeholderId];
232
+ let tokensMatchedRanges = inOutRanges_TokensSetsMatched[placeholderId];
233
+ for (let tokenId = 0; tokenId < tokensMatchedRanges.length; tokenId++) {
234
+ let templateRecord = new Object();
235
+ templateRecord.range = [...tokensMatchedRanges[tokenId]];
236
+ templateRecord.placeholderName = placeholderName;
237
+ dataRecord.optimizedTemplate.push(templateRecord);
238
+ }
239
+ }
240
+ let fixedTemplateRecord = new Object();
241
+ for (let templateRange of inOutRanges_WithoutTokenizedAreas) {
242
+ fixedTemplateRecord = new Object();
243
+ fixedTemplateRecord.range = templateRange;
244
+ fixedTemplateRecord.placeholderName = "_";
245
+ dataRecord.optimizedTemplate.push(fixedTemplateRecord);
246
+ }
247
+ dataRecord.optimizedPlaceholdersEntries = new Object();
248
+ for (let placeholderId = 0; placeholderId < placeholdersNames.length; placeholderId++) {
249
+ let placeholderName = placeholdersNames[placeholderId];
250
+ dataRecord.optimizedPlaceholdersEntries[placeholderName] = new Array();
251
+ }
252
+ let optimizedRecords = this.orderedRecords(dataRecord.optimizedTemplate);
253
+ dataRecord.optimizedBitsbufTemplate = new Array(optimizedRecords.length);
254
+ for (let i = 0; i < optimizedRecords.length; i++) {
255
+ let record = optimizedRecords[i];
256
+ let placeholderName = record.placeholderName;
257
+ let bitsbuf = new Uint8Array();
258
+ if (placeholderName === "_") {
259
+ bitsbuf = dataRecord.bitsbufTemplate.subarray(record.range[0], record.range[1]);
260
+ dataRecord.optimizedBitsbufTemplate[i] = bitsbuf;
261
+ }
262
+ else {
263
+ dataRecord.optimizedPlaceholdersEntries[placeholderName].push(i);
264
+ }
265
+ }
266
+ dataRecord.optimizedTemplate = [...optimizedRecords];
267
+ dataRecord.isOptimized = true;
268
+ return numberOfPlaceholdersMatched;
269
+ }
270
+ orderedRecords(inRecords) {
271
+ let records = inRecords.sort((recordA, recordB) => {
272
+ let startA = recordA.range[0];
273
+ let startB = recordB.range[0];
274
+ if (startA === startB) {
275
+ return (0);
276
+ }
277
+ else if (startA > startB) {
278
+ return (1);
279
+ }
280
+ else {
281
+ return (-1);
282
+ }
283
+ });
284
+ return [...records];
285
+ }
286
+ // old method String.replace() in loop over all charrs of the template every loop iterations.
287
+ replaceTemplateRendererWithDataForRendering() {
288
+ let dataRecord = this.getActiveDataRecord();
289
+ let renderedHtml_1 = "";
290
+ let renderedHtml_2 = dataRecord.textTemplate;
291
+ for (const placeholderName in dataRecord.dataForRendering) {
292
+ renderedHtml_1 = renderedHtml_2;
293
+ const stringToReplace = `{{ ${placeholderName} }}`;
294
+ // @ts-ignore
295
+ let valueToSet = dataRecord.dataForRendering[placeholderName];
296
+ if (!valueToSet) {
297
+ valueToSet = "";
298
+ }
299
+ renderedHtml_2 = renderedHtml_1.replace(stringToReplace, valueToSet);
300
+ }
301
+ return renderedHtml_2;
302
+ }
303
+ }
304
+ exports.TemplateRenderer = TemplateRenderer;
305
+ _TemplateRenderer_activeDataRecordId = new WeakMap();
306
+ //# sourceMappingURL=TemplateRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateRenderer.js","sourceRoot":"","sources":["../../src/TemplateRenderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { TemplateRenderer, TemplateRendererDataRecord, OptimizedTemplateRecord } from "./TemplateRenderer.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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,6DAAyD;AAAhD,uHAAA,gBAAgB,OAAA"}
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;;IAkBzB,cAAc,IAAI,0BAA0B;IAgB5C,gBAAgB,IAAI,0BAA0B;IAU9C,mBAAmB,IAAI,0BAA0B;IAgBjD,qBAAqB,IAAI,MAAM;IAK/B,iBAAiB,CAAE,EAAE,EAAE,MAAM;IAK7B,iBAAiB,CAAE,EAAE,EAAE,MAAM,GAAI,0BAA0B;IAO3D,mBAAmB,CAAE,UAAU,EAAE,0BAA0B,GAAI,MAAM;IA0BrE,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB;IAO1C,WAAW,CAAE,QAAQ,EAAE,MAAM,GAAI,gBAAgB;IAQjD,OAAO,CAAE,gBAAgB,EAAE,MAAM,GAAI,gBAAgB;IAQrD,MAAM,IAAI,GAAG;IAmEb,2BAA2B,CACzB,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,GAAG,GACpB,UAAU,EAAE;IAsBf,+BAA+B,CAC7B,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,GAAG,GACpB,MAAM;IAeT,mCAAmC,CACjC,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,GAAG,GACpB,MAAM;IA+BT,yBAAyB,CACvB,oBAAoB,EAAE,MAAM,EAC5B,gBAAgB,EAAE,GAAG,GAIpB,MAAM,EAAE;IA8BX,QAAQ,CAAG,oBAAoB,EAAE,MAAM,GAAI,MAAM;IAsGjD,SAAS,CAAC,cAAc,CAAE,SAAS,EAAE,uBAAuB,EAAE,GAAI,uBAAuB,EAAE;IAqB3F,2CAA2C,IAAI,GAAG;CA4BnD"}