@lbaz/tetr 0.0.26 → 0.0.27
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/dist/cdk/transpiler/block-data-processor.d.ts +6 -0
- package/dist/cdk/transpiler/block-data-processor.js +7 -0
- package/dist/cdk/transpiler/block-data-processor.js.map +1 -0
- package/dist/cdk/transpiler/chunks-processor.d.ts +17 -0
- package/dist/cdk/transpiler/chunks-processor.js +44 -0
- package/dist/cdk/transpiler/chunks-processor.js.map +1 -0
- package/dist/cdk/transpiler/common-editable-style-processor.d.ts +6 -0
- package/dist/cdk/transpiler/common-editable-style-processor.js +10 -0
- package/dist/cdk/transpiler/common-editable-style-processor.js.map +1 -0
- package/dist/cdk/transpiler/expression-processor.d.ts +8 -0
- package/dist/cdk/transpiler/expression-processor.js +27 -0
- package/dist/cdk/transpiler/expression-processor.js.map +1 -0
- package/dist/cdk/transpiler/index.d.ts +6 -0
- package/dist/cdk/transpiler/index.js +7 -0
- package/dist/cdk/transpiler/index.js.map +1 -0
- package/dist/cdk/transpiler/template-replacer.d.ts +7 -0
- package/dist/cdk/transpiler/template-replacer.js +27 -0
- package/dist/cdk/transpiler/template-replacer.js.map +1 -0
- package/dist/cdk/transpiler/types.d.ts +7 -0
- package/dist/cdk/transpiler/types.js +2 -0
- package/dist/cdk/transpiler/types.js.map +1 -0
- package/dist/constants/index.d.ts +31 -0
- package/dist/constants/index.js +32 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/core/common-wrap-styles-extractor.d.ts +25 -0
- package/dist/core/common-wrap-styles-extractor.js +56 -0
- package/dist/core/common-wrap-styles-extractor.js.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.js +4 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/object-seeder.d.ts +10 -0
- package/dist/core/object-seeder.js +41 -0
- package/dist/core/object-seeder.js.map +1 -0
- package/dist/core/transpiler.d.ts +32 -0
- package/dist/core/transpiler.js +109 -0
- package/dist/core/transpiler.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/tests/common-wrap-styles-extractor-mock/index.d.ts +6 -0
- package/dist/tests/common-wrap-styles-extractor-mock/index.js +46 -0
- package/dist/tests/common-wrap-styles-extractor-mock/index.js.map +1 -0
- package/dist/tests/common-wrap-styles-extractor.test.d.ts +1 -0
- package/dist/tests/common-wrap-styles-extractor.test.js +33 -0
- package/dist/tests/common-wrap-styles-extractor.test.js.map +1 -0
- package/dist/tests/object-seeder.test.d.ts +1 -0
- package/dist/tests/object-seeder.test.js +60 -0
- package/dist/tests/object-seeder.test.js.map +1 -0
- package/dist/tests/template-compiler.test.d.ts +1 -0
- package/dist/tests/template-compiler.test.js +143 -0
- package/dist/tests/template-compiler.test.js.map +1 -0
- package/dist/tests/templates-compiler-mocks/index.d.ts +36 -0
- package/dist/tests/templates-compiler-mocks/index.js +365 -0
- package/dist/tests/templates-compiler-mocks/index.js.map +1 -0
- package/dist/tests/tt-factory.test.d.ts +1 -0
- package/dist/tests/tt-factory.test.js +64 -0
- package/dist/tests/tt-factory.test.js.map +1 -0
- package/dist/types/block.d.ts +27 -0
- package/dist/types/block.js +2 -0
- package/dist/types/block.js.map +1 -0
- package/dist/types/chunk.d.ts +12 -0
- package/dist/types/chunk.js +2 -0
- package/dist/types/chunk.js.map +1 -0
- package/dist/types/data.d.ts +86 -0
- package/dist/types/data.js +3 -0
- package/dist/types/data.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/template.d.ts +3 -0
- package/dist/types/template.js +2 -0
- package/dist/types/template.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { TemplateReplacer } from "./template-replacer";
|
|
2
|
+
import { TemplateProcessor } from "./types";
|
|
3
|
+
import { PageBody } from "../../types";
|
|
4
|
+
export declare class BlockDataProcessor extends TemplateReplacer implements TemplateProcessor {
|
|
5
|
+
execute(template: string, data: PageBody): string;
|
|
6
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TemplateReplacer } from "./template-replacer";
|
|
2
|
+
export class BlockDataProcessor extends TemplateReplacer {
|
|
3
|
+
execute(template, data) {
|
|
4
|
+
return this.replace(template, data?.data || {}, ['{{', '}}']);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=block-data-processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-data-processor.js","sourceRoot":"","sources":["../../../src/cdk/transpiler/block-data-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AAIrD,MAAM,OAAO,kBAAoB,SAAQ,gBAAgB;IACvD,OAAO,CAAC,QAAgB,EAAE,IAAc;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAChE,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TemplateReplacer } from "./template-replacer";
|
|
2
|
+
import { BlockExisting, TemplateProcessor } from "./types";
|
|
3
|
+
import { Block, Chunk, Data, PageBody } from "../../types";
|
|
4
|
+
export declare class ChunkProcessor extends TemplateReplacer implements TemplateProcessor, BlockExisting {
|
|
5
|
+
readonly block: Block;
|
|
6
|
+
constructor(block: Block);
|
|
7
|
+
createChunkMarkup(template: string, data: Data): string;
|
|
8
|
+
generateChunkData(chunks: {
|
|
9
|
+
[key: string]: Chunk;
|
|
10
|
+
} | undefined | null, model: PageBody): {
|
|
11
|
+
chunks: Array<{
|
|
12
|
+
name: string;
|
|
13
|
+
markup: string;
|
|
14
|
+
}>;
|
|
15
|
+
};
|
|
16
|
+
execute(template: string, data: PageBody): string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { TemplateReplacer } from "./template-replacer";
|
|
2
|
+
import { DATA_TYPES } from "../../constants";
|
|
3
|
+
export class ChunkProcessor extends TemplateReplacer {
|
|
4
|
+
block;
|
|
5
|
+
constructor(block) {
|
|
6
|
+
super();
|
|
7
|
+
this.block = block;
|
|
8
|
+
}
|
|
9
|
+
createChunkMarkup(template, data) {
|
|
10
|
+
//@ts-ignore
|
|
11
|
+
return Array.isArray(data)
|
|
12
|
+
? data.map((item) => {
|
|
13
|
+
return this.replace(template, item, ['{{', '}}']);
|
|
14
|
+
}).join('')
|
|
15
|
+
: this.replace(template, data);
|
|
16
|
+
}
|
|
17
|
+
generateChunkData(chunks, model) {
|
|
18
|
+
if (!chunks) {
|
|
19
|
+
return { chunks: [] };
|
|
20
|
+
}
|
|
21
|
+
//@ts-ignore
|
|
22
|
+
const chunksMap = Object.entries(chunks);
|
|
23
|
+
return chunksMap.reduce((acc, [chunkName, payload]) => {
|
|
24
|
+
const dataType = payload?.data?.type;
|
|
25
|
+
const emptyData = dataType === DATA_TYPES.DICT ? {} : [];
|
|
26
|
+
const modelChunkData = model?.chunks?.[chunkName]?.data ?? emptyData;
|
|
27
|
+
const template = payload?.template?.markup || '';
|
|
28
|
+
const markup = this.createChunkMarkup(template, modelChunkData);
|
|
29
|
+
acc['chunks'].push({ name: chunkName, markup: markup });
|
|
30
|
+
return acc;
|
|
31
|
+
}, { chunks: [] });
|
|
32
|
+
}
|
|
33
|
+
execute(template, data) {
|
|
34
|
+
/// processing
|
|
35
|
+
const _chunks = this.generateChunkData(this.block?.chunks, data);
|
|
36
|
+
//@ts-ignore
|
|
37
|
+
const _processingChunks = _chunks.chunks.reduce((acc, { name, markup }) => {
|
|
38
|
+
acc[name] = markup;
|
|
39
|
+
return acc;
|
|
40
|
+
}, {});
|
|
41
|
+
return this.replace(template, _processingChunks, ['[[', ']]']);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=chunks-processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunks-processor.js","sourceRoot":"","sources":["../../../src/cdk/transpiler/chunks-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAE3C,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAC7B;IAArB,YAAqB,KAAY;QAC/B,KAAK,EAAE,CAAC;QADW,UAAK,GAAL,KAAK,CAAO;IAEjC,CAAC;IACD,iBAAiB,CAAC,QAAgB,EAAE,IAAU;QAC5C,YAAY;QACZ,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACxB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACX,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,iBAAiB,CAAC,MAAiD,EAAE,KAAe;QAElF,IAAG,CAAC,MAAM,EAAE,CAAC;YACX,OAAO,EAAC,MAAM,EAAE,EAAE,EAAC,CAAC;QACtB,CAAC;QACD,YAAY;QACZ,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE;YACpD,MAAM,QAAQ,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;YACrC,MAAM,SAAS,GAAG,QAAQ,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,MAAM,cAAc,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,IAAI,SAAS,CAAC;YACrE,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAChE,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC;YACtD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAC,MAAM,EAAE,EAA2C,EAAC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,CAAC,QAAgB,EAAE,IAAc;QACtC,cAAc;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACjE,YAAY;QACZ,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAC,IAAI,EAAE,MAAM,EAAC,EAAE,EAAE;YACtE,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;YACnB,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAU,CAAC,CAAC;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;CACF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { TemplateReplacer } from "./template-replacer";
|
|
2
|
+
import { TemplateProcessor } from "./types";
|
|
3
|
+
import { PageBody } from "../../types";
|
|
4
|
+
export declare class CommonEditableStyleProcessor extends TemplateReplacer implements TemplateProcessor {
|
|
5
|
+
execute(template: string, data: PageBody): string;
|
|
6
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TemplateReplacer } from "./template-replacer";
|
|
2
|
+
import { CommonWrapStylesExtractor } from "../../core";
|
|
3
|
+
import { commonStylesTemplateAlias } from "../../constants";
|
|
4
|
+
export class CommonEditableStyleProcessor extends TemplateReplacer {
|
|
5
|
+
execute(template, data) {
|
|
6
|
+
const _commonStyles = new CommonWrapStylesExtractor(data?.commonEditableBlockWrapStyles).extract();
|
|
7
|
+
return this.replace(template, { [commonStylesTemplateAlias]: _commonStyles || '' }, ['[{', '}]']);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=common-editable-style-processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common-editable-style-processor.js","sourceRoot":"","sources":["../../../src/cdk/transpiler/common-editable-style-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAC,yBAAyB,EAAC,MAAM,YAAY,CAAC;AACrD,OAAO,EAAC,yBAAyB,EAAC,MAAM,iBAAiB,CAAC;AAE1D,MAAM,OAAO,4BAA6B,SAAQ,gBAAgB;IAChE,OAAO,CAAC,QAAgB,EAAE,IAAc;QACtC,MAAM,aAAa,GAAG,IAAI,yBAAyB,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC,OAAO,EAAE,CAAC;QACnG,OAAO,IAAI,CAAC,OAAO,CACjB,QAAQ,EACR,EAAC,CAAC,yBAAyB,CAAC,EAAE,aAAa,IAAI,EAAE,EAAC,EAClD,CAAC,IAAI,EAAE,IAAI,CAAC,CACb,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { TemplateReplacer } from "./template-replacer";
|
|
2
|
+
import { TemplateProcessor } from "./types";
|
|
3
|
+
import { Data, PageBody } from "../../types";
|
|
4
|
+
export declare class ExpressionsProcessor extends TemplateReplacer implements TemplateProcessor {
|
|
5
|
+
expressionProcessing(expression: string, data: Data): string;
|
|
6
|
+
replace(template: string, data: Data, delimiters: Array<string>): string;
|
|
7
|
+
execute(template: string, data: PageBody): string;
|
|
8
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { TemplateReplacer } from "./template-replacer";
|
|
2
|
+
export class ExpressionsProcessor extends TemplateReplacer {
|
|
3
|
+
expressionProcessing(expression = '', data) {
|
|
4
|
+
const [prop, value, result, bypass] = expression.split(':');
|
|
5
|
+
return (data[prop] === value)
|
|
6
|
+
? result
|
|
7
|
+
: (bypass === 'EMPTY' ? '' : bypass);
|
|
8
|
+
}
|
|
9
|
+
replace(template, data, delimiters) {
|
|
10
|
+
//@ts-ignore
|
|
11
|
+
const reg = this.getRegExp(delimiters);
|
|
12
|
+
//@ts-ignore
|
|
13
|
+
return template?.replace(reg, (m) => {
|
|
14
|
+
//@ts-ignore
|
|
15
|
+
const expression = this.removeDelimiters(m);
|
|
16
|
+
if (!expression) {
|
|
17
|
+
return '';
|
|
18
|
+
}
|
|
19
|
+
//@ts-ignore
|
|
20
|
+
return this.expressionProcessing(expression, data || {});
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
execute(template, data) {
|
|
24
|
+
return this.replace(template, data?.data || {}, ['[(', ')]']);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=expression-processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expression-processor.js","sourceRoot":"","sources":["../../../src/cdk/transpiler/expression-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AAIrD,MAAM,OAAO,oBAAqB,SAAQ,gBAAgB;IAExD,oBAAoB,CAAC,aAAqB,EAAE,EAAE,IAAU;QACtD,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC;YAC3B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,CAAC,QAAgB,EAAE,IAAU,EAAG,UAAyB;QAC9D,YAAY;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACvC,YAAY;QACZ,OAAO,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;YAClC,YAAY;YACZ,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAE5C,IAAG,CAAC,UAAU,EAAE,CAAC;gBACf,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,YAAY;YACZ,OAAO,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,CAAC,QAAgB,EAAE,IAAc;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAChE,CAAC;CACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './block-data-processor';
|
|
2
|
+
export * from './chunks-processor';
|
|
3
|
+
export * from './expression-processor';
|
|
4
|
+
export * from './template-replacer';
|
|
5
|
+
export * from './common-editable-style-processor';
|
|
6
|
+
export * from './types';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cdk/transpiler/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Data } from "../../types";
|
|
2
|
+
export declare class TemplateReplacer {
|
|
3
|
+
escapeDelimiters(delimiters: Array<string>): string[];
|
|
4
|
+
getRegExp(delimiters?: string[]): RegExp;
|
|
5
|
+
removeDelimiters(value: string): string;
|
|
6
|
+
replace(template: string | null | undefined, data: Data, delimiters?: string[]): string;
|
|
7
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export class TemplateReplacer {
|
|
2
|
+
escapeDelimiters(delimiters) {
|
|
3
|
+
return delimiters.map(x => {
|
|
4
|
+
return x.split('').map(y => `\\${y}`).join('');
|
|
5
|
+
});
|
|
6
|
+
}
|
|
7
|
+
getRegExp(delimiters = ['{{', '}}']) {
|
|
8
|
+
const _delimiters = this.escapeDelimiters(delimiters);
|
|
9
|
+
//@ts-ignore
|
|
10
|
+
return new RegExp(`${_delimiters[0]}[\\s]*.*?[\\s]*${_delimiters[1]}`, 'gi');
|
|
11
|
+
}
|
|
12
|
+
removeDelimiters(value) {
|
|
13
|
+
return (value || '').trim().slice(2, -2);
|
|
14
|
+
}
|
|
15
|
+
replace(template, data, delimiters = ['{{', '}}']) {
|
|
16
|
+
//@ts-ignore
|
|
17
|
+
const reg = this.getRegExp(delimiters);
|
|
18
|
+
//@ts-ignore
|
|
19
|
+
return template?.replace(reg, (m) => {
|
|
20
|
+
//@ts-ignore
|
|
21
|
+
const key = this.removeDelimiters(m);
|
|
22
|
+
//@ts-ignore
|
|
23
|
+
return data[key] || "";
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=template-replacer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-replacer.js","sourceRoot":"","sources":["../../../src/cdk/transpiler/template-replacer.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,gBAAgB;IAC3B,gBAAgB,CAAC,UAAyB;QACxC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACxB,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,SAAS,CAAC,UAAU,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACtD,YAAY;QACZ,OAAO,IAAI,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,kBAAkB,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC;IACD,gBAAgB,CAAC,KAAa;QAC5B,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CACL,QAAmC,EACnC,IAAU,EACV,UAAU,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;QAEzB,YAAY;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACvC,YAAY;QACZ,OAAO,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;YAClC,YAAY;YACZ,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACrC,YAAY;YACZ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cdk/transpiler/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export declare const DEFINITION_TYPES: {
|
|
2
|
+
readonly String: "String";
|
|
3
|
+
readonly Color: "Color";
|
|
4
|
+
readonly Size: "Size";
|
|
5
|
+
readonly Email: "Email";
|
|
6
|
+
readonly Select: "Select";
|
|
7
|
+
readonly NavigationLink: "NavigationLink";
|
|
8
|
+
readonly ContentSrc: "ContentSrc";
|
|
9
|
+
readonly RedirectLink: "RedirectLink";
|
|
10
|
+
};
|
|
11
|
+
export declare const DATA_TYPES: {
|
|
12
|
+
DICT: string;
|
|
13
|
+
LIST: string;
|
|
14
|
+
};
|
|
15
|
+
export declare const FIELDS: {
|
|
16
|
+
readonly descriptionValue: "descriptionValue";
|
|
17
|
+
readonly imageAlt: "imageAlt";
|
|
18
|
+
readonly imageUrl: "imageUrl";
|
|
19
|
+
readonly imageWidth: "imageWidth";
|
|
20
|
+
readonly imageHeight: "imageHeight";
|
|
21
|
+
readonly nameValue: "nameValue";
|
|
22
|
+
readonly contentValue: "contentValue";
|
|
23
|
+
readonly navigationLink: "navigationLink";
|
|
24
|
+
readonly linkHref: "linkHref";
|
|
25
|
+
readonly linkTarget: "linkTarget";
|
|
26
|
+
readonly tagValue: "tagValue";
|
|
27
|
+
readonly backgroundUrl: "backgroundUrl";
|
|
28
|
+
readonly backgroundSize: "backgroundSize";
|
|
29
|
+
readonly backgroundColor: "backgroundColor";
|
|
30
|
+
};
|
|
31
|
+
export declare const commonStylesTemplateAlias = "c_s_t_a";
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export const DEFINITION_TYPES = {
|
|
2
|
+
'String': 'String',
|
|
3
|
+
"Color": "Color",
|
|
4
|
+
"Size": "Size",
|
|
5
|
+
"Email": "Email",
|
|
6
|
+
"Select": "Select",
|
|
7
|
+
"NavigationLink": "NavigationLink",
|
|
8
|
+
"ContentSrc": "ContentSrc",
|
|
9
|
+
"RedirectLink": "RedirectLink"
|
|
10
|
+
};
|
|
11
|
+
export const DATA_TYPES = {
|
|
12
|
+
DICT: "DICT",
|
|
13
|
+
LIST: "LIST"
|
|
14
|
+
};
|
|
15
|
+
export const FIELDS = {
|
|
16
|
+
'descriptionValue': 'descriptionValue',
|
|
17
|
+
'imageAlt': "imageAlt",
|
|
18
|
+
'imageUrl': "imageUrl",
|
|
19
|
+
'imageWidth': "imageWidth",
|
|
20
|
+
'imageHeight': "imageHeight",
|
|
21
|
+
'nameValue': "nameValue",
|
|
22
|
+
'contentValue': "contentValue",
|
|
23
|
+
'navigationLink': "navigationLink",
|
|
24
|
+
'linkHref': 'linkHref',
|
|
25
|
+
'linkTarget': "linkTarget",
|
|
26
|
+
'tagValue': "tagValue",
|
|
27
|
+
'backgroundUrl': "backgroundUrl",
|
|
28
|
+
'backgroundSize': "backgroundSize",
|
|
29
|
+
'backgroundColor': "backgroundColor"
|
|
30
|
+
};
|
|
31
|
+
export const commonStylesTemplateAlias = 'c_s_t_a';
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,QAAQ;IAClB,gBAAgB,EAAE,gBAAgB;IAClC,YAAY,EAAE,YAAY;IAC1B,cAAc,EAAE,cAAc;CACtB,CAAC;AAEX,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,kBAAkB,EAAE,kBAAkB;IACtC,UAAU,EAAE,UAAU;IACtB,UAAU,EAAE,UAAU;IACtB,YAAY,EAAE,YAAY;IAC1B,aAAa,EAAE,aAAa;IAC5B,WAAW,EAAE,WAAW;IAExB,cAAc,EAAE,cAAc;IAC9B,gBAAgB,EAAE,gBAAgB;IAClC,UAAU,EAAE,UAAU;IACtB,YAAY,EAAE,YAAY;IAE1B,UAAU,EAAE,UAAU;IAEtB,eAAe,EAAE,eAAe;IAChC,gBAAgB,EAAE,gBAAgB;IAClC,iBAAiB,EAAE,iBAAiB;CAC5B,CAAC;AAEX,MAAM,CAAC,MAAM,yBAAyB,GAAG,SAAS,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { CommonEditableBlockWrapStyles } from "../types";
|
|
2
|
+
export declare class CommonWrapStylesExtractor {
|
|
3
|
+
private readonly styles;
|
|
4
|
+
constructor(styles: CommonEditableBlockWrapStyles | null | undefined);
|
|
5
|
+
extract(): string;
|
|
6
|
+
transformFromCamelToKebab(value?: string): string;
|
|
7
|
+
transformValueRelativeProperty(key: string, value: string): string;
|
|
8
|
+
extractBackgroundImageStyles(): {
|
|
9
|
+
backgroundImage: string;
|
|
10
|
+
backgroundSize: string;
|
|
11
|
+
backgroundPosition: string;
|
|
12
|
+
backgroundRepeat: string;
|
|
13
|
+
backgroundAttachment: string;
|
|
14
|
+
};
|
|
15
|
+
extractBackgroundColorStyles(): {
|
|
16
|
+
backgroundColor: string;
|
|
17
|
+
} | {
|
|
18
|
+
backgroundColor?: undefined;
|
|
19
|
+
};
|
|
20
|
+
extractAlwaysUsedStyles(): {
|
|
21
|
+
textAlign: string;
|
|
22
|
+
} | {
|
|
23
|
+
textAlign?: undefined;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export class CommonWrapStylesExtractor {
|
|
2
|
+
styles;
|
|
3
|
+
constructor(styles) {
|
|
4
|
+
this.styles = styles;
|
|
5
|
+
}
|
|
6
|
+
extract() {
|
|
7
|
+
if (!this.styles) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
const { backgroundImage, backgroundColor } = this.styles;
|
|
11
|
+
const outputBackground = backgroundImage
|
|
12
|
+
? this.extractBackgroundImageStyles()
|
|
13
|
+
: backgroundColor
|
|
14
|
+
? this.extractBackgroundColorStyles()
|
|
15
|
+
: {};
|
|
16
|
+
const entries = Object.entries({ ...outputBackground, ...this.extractAlwaysUsedStyles() });
|
|
17
|
+
const tk = entries.map(([key, value]) => {
|
|
18
|
+
return [this.transformFromCamelToKebab(key), this.transformValueRelativeProperty(key, value)];
|
|
19
|
+
});
|
|
20
|
+
return tk.length
|
|
21
|
+
? tk.filter(([_, v]) => !!v)
|
|
22
|
+
.map(([k, v]) => `${k}:${v};`)
|
|
23
|
+
.join('')
|
|
24
|
+
: null;
|
|
25
|
+
}
|
|
26
|
+
transformFromCamelToKebab(value = '') {
|
|
27
|
+
return value
|
|
28
|
+
.split('')
|
|
29
|
+
.reduce((a, l) => a += (l.toUpperCase() === l) ? `-${l.toLowerCase()}` : l, '');
|
|
30
|
+
}
|
|
31
|
+
transformValueRelativeProperty(key, value) {
|
|
32
|
+
if (key === 'backgroundImage') {
|
|
33
|
+
return `url(${value})`;
|
|
34
|
+
}
|
|
35
|
+
return value;
|
|
36
|
+
}
|
|
37
|
+
extractBackgroundImageStyles() {
|
|
38
|
+
const { backgroundImage, backgroundSize, backgroundPosition, backgroundRepeat, backgroundAttachment } = this.styles;
|
|
39
|
+
return {
|
|
40
|
+
backgroundImage,
|
|
41
|
+
backgroundSize,
|
|
42
|
+
backgroundPosition,
|
|
43
|
+
backgroundRepeat,
|
|
44
|
+
backgroundAttachment
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
extractBackgroundColorStyles() {
|
|
48
|
+
const { backgroundColor } = this.styles;
|
|
49
|
+
return backgroundColor ? { backgroundColor } : {};
|
|
50
|
+
}
|
|
51
|
+
extractAlwaysUsedStyles() {
|
|
52
|
+
const { textAlign } = this.styles;
|
|
53
|
+
return textAlign ? { textAlign } : {};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=common-wrap-styles-extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common-wrap-styles-extractor.js","sourceRoot":"","sources":["../../src/core/common-wrap-styles-extractor.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,yBAAyB;IAEP;IAA7B,YAA6B,MAAwD;QAAxD,WAAM,GAAN,MAAM,CAAkD;IAAG,CAAC;IAEzF,OAAO;QACL,IAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,EAAC,eAAe,EAAE,eAAe,EAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACvD,MAAM,gBAAgB,GACpB,eAAe;YACb,CAAC,CAAC,IAAI,CAAC,4BAA4B,EAAE;YACrC,CAAC,CAAC,eAAe;gBACf,CAAC,CAAC,IAAI,CAAC,4BAA4B,EAAE;gBACrC,CAAC,CAAC,EAAE,CAAA;QACV,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,EAAC,GAAG,gBAAgB,EAAE,GAAG,IAAI,CAAC,uBAAuB,EAAE,EAAC,CAAC,CAAC;QACzF,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACtC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,EAAG,IAAI,CAAC,8BAA8B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;QAChG,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,CAAC,MAAM;YACd,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBACzB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;iBAC7B,IAAI,CAAC,EAAE,CAAC;YACX,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED,yBAAyB,CAAC,QAAgB,EAAE;QAC1C,OAAO,KAAK;aACT,KAAK,CAAC,EAAE,CAAC;aACT,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,8BAA8B,CAAC,GAAW,EAAE,KAAa;QACvD,IAAG,GAAG,KAAK,iBAAiB,EAAE,CAAC;YAC7B,OAAO,OAAO,KAAK,GAAG,CAAA;QACxB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4BAA4B;QAC1B,MAAM,EACJ,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACrB,GAAG,IAAI,CAAC,MAAM,CAAC;QAChB,OAAO;YACL,eAAe;YACf,cAAc;YACd,kBAAkB;YAClB,gBAAgB;YAChB,oBAAoB;SACrB,CAAA;IACH,CAAC;IAED,4BAA4B;QAC1B,MAAM,EAAC,eAAe,EAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACtC,OAAO,eAAe,CAAC,CAAC,CAAC,EAAC,eAAe,EAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACjD,CAAC;IAED,uBAAuB;QACrB,MAAM,EAAC,SAAS,EAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QAChC,OAAO,SAAS,CAAC,CAAC,CAAC,EAAC,SAAS,EAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACrC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export class ObjectSeeder {
|
|
2
|
+
target;
|
|
3
|
+
tree;
|
|
4
|
+
constructor(target, tree) {
|
|
5
|
+
this.target = target;
|
|
6
|
+
this.tree = tree;
|
|
7
|
+
}
|
|
8
|
+
copy() {
|
|
9
|
+
const s = JSON.stringify(this.target);
|
|
10
|
+
return JSON.parse(s);
|
|
11
|
+
}
|
|
12
|
+
seed() {
|
|
13
|
+
const copy = this.copy();
|
|
14
|
+
let parent = copy;
|
|
15
|
+
const { leafs, value } = this.tree;
|
|
16
|
+
const leafsLen = leafs.length;
|
|
17
|
+
leafs.forEach((leaf, i) => {
|
|
18
|
+
const isLast = leafsLen - 1 === i;
|
|
19
|
+
const link = typeof parent[leaf] === 'object';
|
|
20
|
+
if (!link) {
|
|
21
|
+
if (isLast) {
|
|
22
|
+
parent[leaf] = value;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
parent[leaf] = {};
|
|
26
|
+
parent = parent[leaf];
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
if (isLast) {
|
|
31
|
+
parent[leaf] = value;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
parent = parent[leaf];
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
return copy;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=object-seeder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-seeder.js","sourceRoot":"","sources":["../../src/core/object-seeder.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAY;IAEJ;IACA;IAFnB,YACmB,MAAW,EACX,IAA4C;QAD5C,WAAM,GAAN,MAAM,CAAK;QACX,SAAI,GAAJ,IAAI,CAAwC;IAE/D,CAAC;IAED,IAAI;QACF,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,IAAI;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,MAAM,EAAC,KAAK,EAAE,KAAK,EAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;QAC9B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACxB,MAAM,MAAM,GAAG,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC;YAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;gBACtB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;oBAClB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;gBACvB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;gBACtB,CAAC;qBAAK,CAAC;oBACL,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;gBACvB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Block, PossibleDataPayload, CreateBlockOutput, Data, BaseChunk, PageBody } from "../types";
|
|
2
|
+
import { Chunk } from "../types";
|
|
3
|
+
import { TemplateProcessor } from "../cdk/transpiler";
|
|
4
|
+
export declare class TT {
|
|
5
|
+
private readonly chain;
|
|
6
|
+
constructor(chain: Array<TemplateProcessor>);
|
|
7
|
+
execute(template: string, data: PageBody): string;
|
|
8
|
+
}
|
|
9
|
+
export declare class TTFactory {
|
|
10
|
+
private readonly block;
|
|
11
|
+
private readonly model;
|
|
12
|
+
constructor(block: Block, model: PageBody);
|
|
13
|
+
execute(): string | null;
|
|
14
|
+
}
|
|
15
|
+
export declare class TemplateTranspiler {
|
|
16
|
+
generate(block: Block | null, model: PageBody): CreateBlockOutput | null;
|
|
17
|
+
generateChunkData(chunks: {
|
|
18
|
+
[key: string]: Chunk;
|
|
19
|
+
} | undefined | null, model: PageBody): {
|
|
20
|
+
chunks: Array<{
|
|
21
|
+
name: string;
|
|
22
|
+
markup: string;
|
|
23
|
+
}>;
|
|
24
|
+
styles: string;
|
|
25
|
+
};
|
|
26
|
+
extractStyles(chunk: BaseChunk | undefined | null): string;
|
|
27
|
+
replaceData(template: string, data: Data, delimiters?: string[]): string;
|
|
28
|
+
replaceTemplateData(template: string, data: Data): string;
|
|
29
|
+
replaceChunksData(template: string, data: Data): string;
|
|
30
|
+
replaceCommonEditableBlockWrapStyles(template: string, data: Data): string;
|
|
31
|
+
createChunkMarkup(template: string, data: PossibleDataPayload): string;
|
|
32
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { commonStylesTemplateAlias, DATA_TYPES } from "../constants";
|
|
2
|
+
import { CommonWrapStylesExtractor } from "./common-wrap-styles-extractor";
|
|
3
|
+
import { BlockDataProcessor, ChunkProcessor, CommonEditableStyleProcessor, ExpressionsProcessor } from "../cdk/transpiler";
|
|
4
|
+
export class TT {
|
|
5
|
+
chain;
|
|
6
|
+
constructor(chain) {
|
|
7
|
+
this.chain = chain;
|
|
8
|
+
}
|
|
9
|
+
execute(template, data) {
|
|
10
|
+
return this.chain.reduce((_template, processor) => {
|
|
11
|
+
return processor.execute(_template, data);
|
|
12
|
+
}, template);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class TTFactory {
|
|
16
|
+
block;
|
|
17
|
+
model;
|
|
18
|
+
constructor(block, model) {
|
|
19
|
+
this.block = block;
|
|
20
|
+
this.model = model;
|
|
21
|
+
}
|
|
22
|
+
execute() {
|
|
23
|
+
if (!this.block || !this.block?.template?.markup) {
|
|
24
|
+
console.error(`Block template ${this.block?.id} not found`);
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
return new TT([
|
|
28
|
+
new ExpressionsProcessor(),
|
|
29
|
+
new BlockDataProcessor(),
|
|
30
|
+
new ChunkProcessor(this.block),
|
|
31
|
+
new CommonEditableStyleProcessor()
|
|
32
|
+
]).execute(this.block?.template?.markup || '', this.model);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export class TemplateTranspiler {
|
|
36
|
+
generate(block, model) {
|
|
37
|
+
if (!block || !block?.template?.markup) {
|
|
38
|
+
console.error(`Block template ${block?.id} not found`);
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
let styles = (block.styles || '');
|
|
42
|
+
const blockMarkup = (block.template?.markup || '');
|
|
43
|
+
const _commonStyles = new CommonWrapStylesExtractor(model?.commonEditableBlockWrapStyles).extract();
|
|
44
|
+
const afterCommonStylesSeed = this.replaceCommonEditableBlockWrapStyles(blockMarkup, { [commonStylesTemplateAlias]: _commonStyles || '' });
|
|
45
|
+
const _block = this.replaceTemplateData(afterCommonStylesSeed, model?.data || {});
|
|
46
|
+
const _chunks = this.generateChunkData(block?.chunks, model);
|
|
47
|
+
//@ts-ignore
|
|
48
|
+
const _processingChunks = _chunks.chunks.reduce((acc, { name, markup }) => {
|
|
49
|
+
acc[name] = markup;
|
|
50
|
+
return acc;
|
|
51
|
+
}, {});
|
|
52
|
+
//@ts-ignore
|
|
53
|
+
const _styles = `${styles} ${_chunks.styles}`.trim();
|
|
54
|
+
return {
|
|
55
|
+
markup: this.replaceChunksData(_block, _processingChunks),
|
|
56
|
+
styles: _styles
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
generateChunkData(chunks, model) {
|
|
60
|
+
if (!chunks) {
|
|
61
|
+
return { chunks: [], styles: '' };
|
|
62
|
+
}
|
|
63
|
+
//@ts-ignore
|
|
64
|
+
const chunksMap = Object.entries(chunks);
|
|
65
|
+
return chunksMap.reduce((acc, [chunkName, payload]) => {
|
|
66
|
+
const dataType = payload?.data?.type;
|
|
67
|
+
const emptyData = dataType === DATA_TYPES.DICT ? {} : [];
|
|
68
|
+
const modelChunkData = model?.chunks?.[chunkName]?.data ?? emptyData;
|
|
69
|
+
const template = payload?.template?.markup || '';
|
|
70
|
+
const styles = payload?.styles || '';
|
|
71
|
+
const markup = this.createChunkMarkup(template, modelChunkData);
|
|
72
|
+
const modelStyles = this.extractStyles(model?.chunks?.[chunkName]);
|
|
73
|
+
acc['styles'] += (styles + modelStyles);
|
|
74
|
+
acc['chunks'].push({ name: chunkName, markup: markup });
|
|
75
|
+
return acc;
|
|
76
|
+
}, { chunks: [], styles: '' });
|
|
77
|
+
}
|
|
78
|
+
extractStyles(chunk) {
|
|
79
|
+
return chunk?.styles || '';
|
|
80
|
+
}
|
|
81
|
+
replaceData(template, data, delimiters = ['{{', '}}']) {
|
|
82
|
+
//@ts-ignore
|
|
83
|
+
const reg = new RegExp(`${delimiters[0]}[\\s]*\\w+[\\s]*${delimiters[1]}`, 'gi');
|
|
84
|
+
//@ts-ignore
|
|
85
|
+
return template.replace(reg, (m) => {
|
|
86
|
+
//@ts-ignore
|
|
87
|
+
const key = (m || '').trim().slice(2, -2);
|
|
88
|
+
return data[key] || "";
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
replaceTemplateData(template, data) {
|
|
92
|
+
return this.replaceData(template, data);
|
|
93
|
+
}
|
|
94
|
+
replaceChunksData(template, data) {
|
|
95
|
+
return this.replaceData(template, data, ['[[', ']]']);
|
|
96
|
+
}
|
|
97
|
+
replaceCommonEditableBlockWrapStyles(template, data) {
|
|
98
|
+
return this.replaceData(template, data, ['[{', '}]']);
|
|
99
|
+
}
|
|
100
|
+
createChunkMarkup(template, data) {
|
|
101
|
+
//@ts-ignore
|
|
102
|
+
return Array.isArray(data)
|
|
103
|
+
? data.map((item) => {
|
|
104
|
+
return this.replaceTemplateData(template, item);
|
|
105
|
+
}).join('')
|
|
106
|
+
: this.replaceTemplateData(template, data);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=transpiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transpiler.js","sourceRoot":"","sources":["../../src/core/transpiler.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
|