croco-html 2.0.0 → 2.0.2
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/esm2022/croco-html.mjs +4 -4
- package/esm2022/lib/components/add-files-btn/add-files-btn.component.mjs +53 -53
- package/esm2022/lib/components/editor/external-video-block/external-video-block.component.mjs +43 -43
- package/esm2022/lib/components/editor/html-raw-editor/html-raw-editor.component.mjs +25 -25
- package/esm2022/lib/components/editor/image-editor/image-editor.component.mjs +46 -46
- package/esm2022/lib/components/editor/index.mjs +7 -7
- package/esm2022/lib/components/editor/main-editor/main-editor.component.mjs +76 -76
- package/esm2022/lib/components/editor/main-editor-block/main-editor-block.component.mjs +41 -41
- package/esm2022/lib/components/editor/text-editor/text-editor.component.mjs +30 -30
- package/esm2022/lib/components/editor/visual-editor/DefaultTags.mjs +27 -27
- package/esm2022/lib/components/editor/visual-editor/visual-editor.component.mjs +134 -134
- package/esm2022/lib/components/file-id-select/file-id-select.component.mjs +58 -58
- package/esm2022/lib/components/html-view/html-view.component.mjs +18 -18
- package/esm2022/lib/components/index.mjs +6 -6
- package/esm2022/lib/components/upload-files-btn/upload-files-btn.component.mjs +54 -54
- package/esm2022/lib/components/xml-tags/file-image-tag-view/file-image-tag-view.component.mjs +30 -0
- package/esm2022/lib/components/xml-tags/html-raw-view/html-raw-view.component.mjs +22 -22
- package/esm2022/lib/components/xml-tags/index.mjs +11 -10
- package/esm2022/lib/components/xml-tags/xml-tag-external-video/xml-tag-external-video.component.mjs +49 -49
- package/esm2022/lib/components/xml-tags/xml-tag-header-inner-text-view/xml-tag-header-inner-text-view.component.mjs +17 -17
- package/esm2022/lib/components/xml-tags/xml-tag-header-text-view/xml-tag-header-text-view.component.mjs +18 -18
- package/esm2022/lib/components/xml-tags/xml-tag-html-view/xml-tag-html-view.component.mjs +16 -16
- package/esm2022/lib/components/xml-tags/xml-tag-rich-text-view/xml-tag-rich-text-view.component.mjs +20 -20
- package/esm2022/lib/components/xml-tags/xml-tag-table-view/xml-tag-table-view.component.mjs +20 -20
- package/esm2022/lib/components/xml-tags/xml-tag-text-view/xml-tag-text-view.component.mjs +17 -17
- package/esm2022/lib/components/xml-tags/xml-tag-view/xml-tag-view.component.mjs +30 -22
- package/esm2022/lib/croco-html.module.mjs +92 -92
- package/esm2022/lib/extensions/AngularMaterialTableMethods.mjs +64 -64
- package/esm2022/lib/extensions/BodyTagsExtensions.mjs +120 -120
- package/esm2022/lib/extensions/BootstrapTableMethods.mjs +67 -67
- package/esm2022/lib/extensions/HtmlExtractionMethods.mjs +63 -63
- package/esm2022/lib/extensions/HtmlRawTagDataConsts.mjs +3 -3
- package/esm2022/lib/extensions/ImageMethods.mjs +32 -32
- package/esm2022/lib/extensions/InterfaceBlock.mjs +1 -1
- package/esm2022/lib/extensions/TableBuilder.mjs +35 -35
- package/esm2022/lib/extensions/TableMethods.mjs +108 -108
- package/esm2022/lib/extensions/TextMethods.mjs +29 -29
- package/esm2022/lib/extensions/TextSimpleMethods.mjs +77 -77
- package/esm2022/lib/extensions/VideoMethods.mjs +19 -19
- package/esm2022/lib/extensions/XmlExtensions.mjs +25 -25
- package/esm2022/lib/extensions/index.mjs +12 -12
- package/esm2022/lib/index.mjs +117 -117
- package/esm2022/lib/models/models.mjs +1 -1
- package/esm2022/lib/pipes/RichTextToHtmlPipe.mjs +26 -26
- package/esm2022/lib/pipes/TagToSpanPipe.mjs +16 -16
- package/esm2022/lib/pipes/ToHtmlBodyTagsPipe.mjs +17 -17
- package/esm2022/lib/pipes/ToPreviewHtmlPipe.mjs +17 -17
- package/esm2022/lib/pipes/index.mjs +5 -5
- package/esm2022/lib/pipes/to-preview.pipe.mjs +20 -20
- package/esm2022/lib/services/file-upload.service.mjs +70 -70
- package/esm2022/lib/services/files-query.service.mjs +27 -27
- package/esm2022/public-api.mjs +7 -7
- package/fesm2022/croco-html.mjs +1525 -1489
- package/fesm2022/croco-html.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/components/add-files-btn/add-files-btn.component.d.ts +18 -18
- package/lib/components/editor/external-video-block/external-video-block.component.d.ts +17 -17
- package/lib/components/editor/html-raw-editor/html-raw-editor.component.d.ts +11 -11
- package/lib/components/editor/image-editor/image-editor.component.d.ts +18 -18
- package/lib/components/editor/index.d.ts +7 -7
- package/lib/components/editor/main-editor/main-editor.component.d.ts +27 -27
- package/lib/components/editor/main-editor-block/main-editor-block.component.d.ts +16 -16
- package/lib/components/editor/text-editor/text-editor.component.d.ts +12 -12
- package/lib/components/editor/visual-editor/DefaultTags.d.ts +6 -6
- package/lib/components/editor/visual-editor/visual-editor.component.d.ts +36 -36
- package/lib/components/file-id-select/file-id-select.component.d.ts +27 -27
- package/lib/components/html-view/html-view.component.d.ts +6 -6
- package/lib/components/index.d.ts +6 -6
- package/lib/components/upload-files-btn/upload-files-btn.component.d.ts +24 -24
- package/lib/components/xml-tags/file-image-tag-view/file-image-tag-view.component.d.ts +12 -0
- package/lib/components/xml-tags/html-raw-view/html-raw-view.component.d.ts +13 -13
- package/lib/components/xml-tags/index.d.ts +10 -9
- package/lib/components/xml-tags/xml-tag-external-video/xml-tag-external-video.component.d.ts +16 -16
- package/lib/components/xml-tags/xml-tag-header-inner-text-view/xml-tag-header-inner-text-view.component.d.ts +10 -10
- package/lib/components/xml-tags/xml-tag-header-text-view/xml-tag-header-text-view.component.d.ts +10 -10
- package/lib/components/xml-tags/xml-tag-html-view/xml-tag-html-view.component.d.ts +7 -7
- package/lib/components/xml-tags/xml-tag-rich-text-view/xml-tag-rich-text-view.component.d.ts +10 -10
- package/lib/components/xml-tags/xml-tag-table-view/xml-tag-table-view.component.d.ts +7 -7
- package/lib/components/xml-tags/xml-tag-text-view/xml-tag-text-view.component.d.ts +10 -10
- package/lib/components/xml-tags/xml-tag-view/xml-tag-view.component.d.ts +13 -8
- package/lib/croco-html.module.d.ts +64 -64
- package/lib/extensions/AngularMaterialTableMethods.d.ts +7 -7
- package/lib/extensions/BodyTagsExtensions.d.ts +11 -11
- package/lib/extensions/BootstrapTableMethods.d.ts +9 -9
- package/lib/extensions/HtmlExtractionMethods.d.ts +73 -73
- package/lib/extensions/HtmlRawTagDataConsts.d.ts +3 -3
- package/lib/extensions/ImageMethods.d.ts +18 -18
- package/lib/extensions/InterfaceBlock.d.ts +4 -4
- package/lib/extensions/TableBuilder.d.ts +5 -5
- package/lib/extensions/TableMethods.d.ts +59 -59
- package/lib/extensions/TextMethods.d.ts +19 -19
- package/lib/extensions/TextSimpleMethods.d.ts +23 -23
- package/lib/extensions/VideoMethods.d.ts +19 -19
- package/lib/extensions/XmlExtensions.d.ts +5 -5
- package/lib/extensions/index.d.ts +10 -10
- package/lib/index.d.ts +21 -22
- package/lib/models/models.d.ts +14 -14
- package/lib/pipes/RichTextToHtmlPipe.d.ts +8 -8
- package/lib/pipes/TagToSpanPipe.d.ts +7 -7
- package/lib/pipes/ToHtmlBodyTagsPipe.d.ts +8 -8
- package/lib/pipes/ToPreviewHtmlPipe.d.ts +9 -9
- package/lib/pipes/index.d.ts +5 -5
- package/lib/pipes/to-preview.pipe.d.ts +8 -8
- package/lib/services/file-upload.service.d.ts +34 -34
- package/lib/services/files-query.service.d.ts +42 -42
- package/package.json +2 -2
- package/public-api.d.ts +4 -4
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
export class AngularMaterialTableMethods {
|
|
2
|
-
static getAngularMaterialTableData(columns, rows) {
|
|
3
|
-
let data = [];
|
|
4
|
-
for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {
|
|
5
|
-
const row = rows[rowIndex];
|
|
6
|
-
var elem = {};
|
|
7
|
-
for (let columnIndex = 0; columnIndex < columns.length; columnIndex++) {
|
|
8
|
-
const column = columns[columnIndex];
|
|
9
|
-
elem[column] = row.columns[columnIndex].data.text;
|
|
10
|
-
}
|
|
11
|
-
data.push(elem);
|
|
12
|
-
}
|
|
13
|
-
return {
|
|
14
|
-
displayedColumns: columns,
|
|
15
|
-
data: data,
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
static checkHeaders(tableData) {
|
|
19
|
-
if (tableData.header === null) {
|
|
20
|
-
return {
|
|
21
|
-
isSucceeded: false,
|
|
22
|
-
message: "Необходимо указать заголовок таблицы"
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
let columns = tableData.header.columns;
|
|
26
|
-
var uniqueDislayedColumns = columns.filter((v, i, a) => a.indexOf(v) === i);
|
|
27
|
-
if (uniqueDislayedColumns.length !== columns.length) {
|
|
28
|
-
return {
|
|
29
|
-
isSucceeded: false,
|
|
30
|
-
message: "Ошибка при обработке разметки таблицы. Обнаружены дубликаты заголовков."
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
return {
|
|
34
|
-
isSucceeded: true,
|
|
35
|
-
message: "Ok"
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
static checkAngularMaterialTableData(tableData, checkHeaders = true) {
|
|
39
|
-
if (checkHeaders) {
|
|
40
|
-
var checkHeadersResult = this.checkHeaders(tableData);
|
|
41
|
-
if (!checkHeadersResult.isSucceeded) {
|
|
42
|
-
return checkHeadersResult;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
let rows = tableData.rows;
|
|
46
|
-
let columns = tableData.header.columns;
|
|
47
|
-
for (let i = 0; i < rows.length; i++) {
|
|
48
|
-
const row = rows[i];
|
|
49
|
-
if (row.columns.length !== columns.length) {
|
|
50
|
-
return {
|
|
51
|
-
isSucceeded: false,
|
|
52
|
-
message: `Ошибка при обработке разметки таблицы. `
|
|
53
|
-
+ `Количество колонок в каждой строке таблицы должно соотвествовать количеству колонок указанных в заголовке. `
|
|
54
|
-
+ `В строке таблицы №${i + 1} количество колонок = ${row.columns.length}, а должно быть ${columns.length}.`
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return {
|
|
59
|
-
isSucceeded: true,
|
|
60
|
-
message: "Ok"
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export class AngularMaterialTableMethods {
|
|
2
|
+
static getAngularMaterialTableData(columns, rows) {
|
|
3
|
+
let data = [];
|
|
4
|
+
for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {
|
|
5
|
+
const row = rows[rowIndex];
|
|
6
|
+
var elem = {};
|
|
7
|
+
for (let columnIndex = 0; columnIndex < columns.length; columnIndex++) {
|
|
8
|
+
const column = columns[columnIndex];
|
|
9
|
+
elem[column] = row.columns[columnIndex].data.text;
|
|
10
|
+
}
|
|
11
|
+
data.push(elem);
|
|
12
|
+
}
|
|
13
|
+
return {
|
|
14
|
+
displayedColumns: columns,
|
|
15
|
+
data: data,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
static checkHeaders(tableData) {
|
|
19
|
+
if (tableData.header === null) {
|
|
20
|
+
return {
|
|
21
|
+
isSucceeded: false,
|
|
22
|
+
message: "Необходимо указать заголовок таблицы"
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
let columns = tableData.header.columns;
|
|
26
|
+
var uniqueDislayedColumns = columns.filter((v, i, a) => a.indexOf(v) === i);
|
|
27
|
+
if (uniqueDislayedColumns.length !== columns.length) {
|
|
28
|
+
return {
|
|
29
|
+
isSucceeded: false,
|
|
30
|
+
message: "Ошибка при обработке разметки таблицы. Обнаружены дубликаты заголовков."
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
isSucceeded: true,
|
|
35
|
+
message: "Ok"
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
static checkAngularMaterialTableData(tableData, checkHeaders = true) {
|
|
39
|
+
if (checkHeaders) {
|
|
40
|
+
var checkHeadersResult = this.checkHeaders(tableData);
|
|
41
|
+
if (!checkHeadersResult.isSucceeded) {
|
|
42
|
+
return checkHeadersResult;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
let rows = tableData.rows;
|
|
46
|
+
let columns = tableData.header.columns;
|
|
47
|
+
for (let i = 0; i < rows.length; i++) {
|
|
48
|
+
const row = rows[i];
|
|
49
|
+
if (row.columns.length !== columns.length) {
|
|
50
|
+
return {
|
|
51
|
+
isSucceeded: false,
|
|
52
|
+
message: `Ошибка при обработке разметки таблицы. `
|
|
53
|
+
+ `Количество колонок в каждой строке таблицы должно соотвествовать количеству колонок указанных в заголовке. `
|
|
54
|
+
+ `В строке таблицы №${i + 1} количество колонок = ${row.columns.length}, а должно быть ${columns.length}.`
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
isSucceeded: true,
|
|
60
|
+
message: "Ok"
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW5ndWxhck1hdGVyaWFsVGFibGVNZXRob2RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2V4dGVuc2lvbnMvQW5ndWxhck1hdGVyaWFsVGFibGVNZXRob2RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTywyQkFBMkI7SUFDcEMsTUFBTSxDQUFDLDJCQUEyQixDQUFDLE9BQWlCLEVBQUUsSUFBb0I7UUFFdEUsSUFBSSxJQUFJLEdBQWEsRUFBRSxDQUFDO1FBRXhCLEtBQUssSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDeEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRTNCLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUVkLEtBQUssSUFBSSxXQUFXLEdBQUcsQ0FBQyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUM7Z0JBQ3BFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFFcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN0RCxDQUFDO1lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixDQUFDO1FBRUQsT0FBTztZQUNILGdCQUFnQixFQUFFLE9BQU87WUFDekIsSUFBSSxFQUFFLElBQUk7U0FDYixDQUFDO0lBQ04sQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsU0FBb0I7UUFDcEMsSUFBRyxTQUFTLENBQUMsTUFBTSxLQUFLLElBQUksRUFBQyxDQUFDO1lBQzFCLE9BQU87Z0JBQ0gsV0FBVyxFQUFFLEtBQUs7Z0JBQ2xCLE9BQU8sRUFBRSxzQ0FBc0M7YUFDbEQsQ0FBQztRQUNOLENBQUM7UUFFRCxJQUFJLE9BQU8sR0FBYSxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUVqRCxJQUFJLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUU1RSxJQUFJLHFCQUFxQixDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEQsT0FBTztnQkFDSCxXQUFXLEVBQUUsS0FBSztnQkFDbEIsT0FBTyxFQUFFLHlFQUF5RTthQUNyRixDQUFDO1FBQ04sQ0FBQztRQUVELE9BQU87WUFDSCxXQUFXLEVBQUUsSUFBSTtZQUNqQixPQUFPLEVBQUUsSUFBSTtTQUNoQixDQUFDO0lBQ04sQ0FBQztJQUNELE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxTQUFvQixFQUFFLGVBQXdCLElBQUk7UUFFbkYsSUFBRyxZQUFZLEVBQUMsQ0FBQztZQUNiLElBQUksa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUV0RCxJQUFHLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFDLENBQUM7Z0JBQ2hDLE9BQU8sa0JBQWtCLENBQUM7WUFDOUIsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLElBQUksR0FBbUIsU0FBUyxDQUFDLElBQUksQ0FBQztRQUMxQyxJQUFJLE9BQU8sR0FBYSxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUVqRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ25DLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVwQixJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDeEMsT0FBTztvQkFDSCxXQUFXLEVBQUUsS0FBSztvQkFDbEIsT0FBTyxFQUFFLHlDQUF5QzswQkFDNUMsNkdBQTZHOzBCQUM3RyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMseUJBQXlCLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxtQkFBbUIsT0FBTyxDQUFDLE1BQU0sR0FBRztpQkFDbEgsQ0FBQztZQUNOLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTztZQUNILFdBQVcsRUFBRSxJQUFJO1lBQ2pCLE9BQU8sRUFBRSxJQUFJO1NBQ2hCLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQXBpUmVzcG9uc2UsIFRhYmxlRGF0YSwgVGFibGVSb3dEYXRhIH0gZnJvbSAnLi9UYWJsZU1ldGhvZHMnO1xyXG5pbXBvcnQge0FuZ3VsYXJNYXRlcmlhbFRhYmxlRGF0YX0gZnJvbSBcIi4uL21vZGVscy9tb2RlbHNcIjtcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQW5ndWxhck1hdGVyaWFsVGFibGVNZXRob2RzIHtcclxuICAgIHN0YXRpYyBnZXRBbmd1bGFyTWF0ZXJpYWxUYWJsZURhdGEoY29sdW1uczogc3RyaW5nW10sIHJvd3M6IFRhYmxlUm93RGF0YVtdKTogQW5ndWxhck1hdGVyaWFsVGFibGVEYXRhIHtcclxuXHJcbiAgICAgICAgbGV0IGRhdGE6IG9iamVjdFtdID0gW107XHJcblxyXG4gICAgICAgIGZvciAobGV0IHJvd0luZGV4ID0gMDsgcm93SW5kZXggPCByb3dzLmxlbmd0aDsgcm93SW5kZXgrKykge1xyXG4gICAgICAgICAgICBjb25zdCByb3cgPSByb3dzW3Jvd0luZGV4XTtcclxuXHJcbiAgICAgICAgICAgIHZhciBlbGVtID0ge307XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBjb2x1bW5JbmRleCA9IDA7IGNvbHVtbkluZGV4IDwgY29sdW1ucy5sZW5ndGg7IGNvbHVtbkluZGV4KyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnNbY29sdW1uSW5kZXhdO1xyXG5cclxuICAgICAgICAgICAgICAgIGVsZW1bY29sdW1uXSA9IHJvdy5jb2x1bW5zW2NvbHVtbkluZGV4XS5kYXRhLnRleHQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGRhdGEucHVzaChlbGVtKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGRpc3BsYXllZENvbHVtbnM6IGNvbHVtbnMsXHJcbiAgICAgICAgICAgIGRhdGE6IGRhdGEsXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgY2hlY2tIZWFkZXJzKHRhYmxlRGF0YTogVGFibGVEYXRhKTogQmFzZUFwaVJlc3BvbnNlIHtcclxuICAgICAgICBpZih0YWJsZURhdGEuaGVhZGVyID09PSBudWxsKXtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIGlzU3VjY2VlZGVkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwi0J3QtdC+0LHRhdC+0LTQuNC80L4g0YPQutCw0LfQsNGC0Ywg0LfQsNCz0L7Qu9C+0LLQvtC6INGC0LDQsdC70LjRhtGLXCJcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBjb2x1bW5zOiBzdHJpbmdbXSA9IHRhYmxlRGF0YS5oZWFkZXIuY29sdW1ucztcclxuXHJcbiAgICAgICAgdmFyIHVuaXF1ZURpc2xheWVkQ29sdW1ucyA9IGNvbHVtbnMuZmlsdGVyKCh2LCBpLCBhKSA9PiBhLmluZGV4T2YodikgPT09IGkpO1xyXG5cclxuICAgICAgICBpZiAodW5pcXVlRGlzbGF5ZWRDb2x1bW5zLmxlbmd0aCAhPT0gY29sdW1ucy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIGlzU3VjY2VlZGVkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwi0J7RiNC40LHQutCwINC/0YDQuCDQvtCx0YDQsNCx0L7RgtC60LUg0YDQsNC30LzQtdGC0LrQuCDRgtCw0LHQu9C40YbRiy4g0J7QsdC90LDRgNGD0LbQtdC90Ysg0LTRg9Cx0LvQuNC60LDRgtGLINC30LDQs9C+0LvQvtCy0LrQvtCyLlwiXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpc1N1Y2NlZWRlZDogdHJ1ZSxcclxuICAgICAgICAgICAgbWVzc2FnZTogXCJPa1wiXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuICAgIHN0YXRpYyBjaGVja0FuZ3VsYXJNYXRlcmlhbFRhYmxlRGF0YSh0YWJsZURhdGE6IFRhYmxlRGF0YSwgY2hlY2tIZWFkZXJzOiBib29sZWFuID0gdHJ1ZSk6IEJhc2VBcGlSZXNwb25zZSB7XHJcblxyXG4gICAgICAgIGlmKGNoZWNrSGVhZGVycyl7XHJcbiAgICAgICAgICAgIHZhciBjaGVja0hlYWRlcnNSZXN1bHQgPSB0aGlzLmNoZWNrSGVhZGVycyh0YWJsZURhdGEpO1xyXG5cclxuICAgICAgICAgICAgaWYoIWNoZWNrSGVhZGVyc1Jlc3VsdC5pc1N1Y2NlZWRlZCl7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2hlY2tIZWFkZXJzUmVzdWx0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgcm93czogVGFibGVSb3dEYXRhW10gPSB0YWJsZURhdGEucm93cztcclxuICAgICAgICBsZXQgY29sdW1uczogc3RyaW5nW10gPSB0YWJsZURhdGEuaGVhZGVyLmNvbHVtbnM7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcm93cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCByb3cgPSByb3dzW2ldO1xyXG5cclxuICAgICAgICAgICAgaWYgKHJvdy5jb2x1bW5zLmxlbmd0aCAhPT0gY29sdW1ucy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaXNTdWNjZWVkZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGDQntGI0LjQsdC60LAg0L/RgNC4INC+0LHRgNCw0LHQvtGC0LrQtSDRgNCw0LfQvNC10YLQutC4INGC0LDQsdC70LjRhtGLLiBgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICsgYNCa0L7Qu9C40YfQtdGB0YLQstC+INC60L7Qu9C+0L3QvtC6INCyINC60LDQttC00L7QuSDRgdGC0YDQvtC60LUg0YLQsNCx0LvQuNGG0Ysg0LTQvtC70LbQvdC+INGB0L7QvtGC0LLQtdGB0YLQstC+0LLQsNGC0Ywg0LrQvtC70LjRh9C10YHRgtCy0YMg0LrQvtC70L7QvdC+0Log0YPQutCw0LfQsNC90L3Ri9GFINCyINC30LDQs9C+0LvQvtCy0LrQtS4gYFxyXG4gICAgICAgICAgICAgICAgICAgICAgICArIGDQkiDRgdGC0YDQvtC60LUg0YLQsNCx0LvQuNGG0Ysg4oSWJHtpICsgMX0g0LrQvtC70LjRh9C10YHRgtCy0L4g0LrQvtC70L7QvdC+0LogPSAke3Jvdy5jb2x1bW5zLmxlbmd0aH0sINCwINC00L7Qu9C20L3QviDQsdGL0YLRjCAke2NvbHVtbnMubGVuZ3RofS5gXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpc1N1Y2NlZWRlZDogdHJ1ZSxcclxuICAgICAgICAgICAgbWVzc2FnZTogXCJPa1wiXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,120 +1,120 @@
|
|
|
1
|
-
import { HtmlExtractionMethods } from "./HtmlExtractionMethods";
|
|
2
|
-
import { HtmlRawTagDataConsts } from "./HtmlRawTagDataConsts";
|
|
3
|
-
import { FileImageTagDataConsts } from "./ImageMethods";
|
|
4
|
-
import { TextMethods } from "./TextMethods";
|
|
5
|
-
import { ExternalVideoTagDataConsts } from "./VideoMethods";
|
|
6
|
-
export class BodyTagsExtensions {
|
|
7
|
-
static getDescription(tagName) {
|
|
8
|
-
var descriptions = {
|
|
9
|
-
"text": "Текст",
|
|
10
|
-
"h1": "Заголовок 1 уровня",
|
|
11
|
-
"h2": "Заголовок 2 уровня",
|
|
12
|
-
"h3": "Заголовок 3 уровня",
|
|
13
|
-
"h4": "Заголовок 4 уровня",
|
|
14
|
-
"h5": "Заголовок 5 уровня",
|
|
15
|
-
"h6": "Заголовок 6 уровня",
|
|
16
|
-
[FileImageTagDataConsts.TagName]: "Изображение",
|
|
17
|
-
[ExternalVideoTagDataConsts.TagName]: "Внешнее видео YouTube",
|
|
18
|
-
[HtmlRawTagDataConsts.TagName]: "Html разметка"
|
|
19
|
-
};
|
|
20
|
-
return descriptions[tagName];
|
|
21
|
-
}
|
|
22
|
-
static toHtml(bodyTags) {
|
|
23
|
-
let htmls = bodyTags.map(x => {
|
|
24
|
-
if (TextMethods.textTags.includes(x.tagDescription.tag)) {
|
|
25
|
-
return `<${x.tagDescription.tag} h-align="${x.attributes['h-align']}">${x.innerHtml}</${x.tagDescription.tag}>`;
|
|
26
|
-
}
|
|
27
|
-
if (x.tagDescription.tag === ExternalVideoTagDataConsts.TagName) {
|
|
28
|
-
return `<${x.tagDescription.tag} type="${x.attributes['type']}" link="${x.attributes['link']}">${x.innerHtml}</${x.tagDescription.tag}>`;
|
|
29
|
-
}
|
|
30
|
-
if (x.tagDescription.tag === "html-raw") {
|
|
31
|
-
return `<${x.tagDescription.tag}>${x.innerHtml}</${x.tagDescription.tag}>`;
|
|
32
|
-
}
|
|
33
|
-
return BodyTagsExtensions.imageTagToHtml(x);
|
|
34
|
-
});
|
|
35
|
-
let result = "";
|
|
36
|
-
for (let index = 0; index < htmls.length; index++) {
|
|
37
|
-
const element = htmls[index];
|
|
38
|
-
result += element;
|
|
39
|
-
}
|
|
40
|
-
return result;
|
|
41
|
-
}
|
|
42
|
-
static imageTagToHtml(imageTag) {
|
|
43
|
-
var attrStr = "";
|
|
44
|
-
var attrValue = imageTag.attributes[FileImageTagDataConsts.FileIdAttrName];
|
|
45
|
-
if (imageTag.attributes.hasOwnProperty(FileImageTagDataConsts.FileIdAttrName) && attrValue) {
|
|
46
|
-
attrStr = `${FileImageTagDataConsts.FileIdAttrName}="${attrValue}"`;
|
|
47
|
-
}
|
|
48
|
-
return `<${FileImageTagDataConsts.TagName} ${attrStr}></${FileImageTagDataConsts.TagName}>`;
|
|
49
|
-
}
|
|
50
|
-
static getBodyTags(html, options) {
|
|
51
|
-
let result = HtmlExtractionMethods.transformHtmlStringToBlocks(html, options);
|
|
52
|
-
return result.map(x => BodyTagsExtensions.toBodyTag(x));
|
|
53
|
-
}
|
|
54
|
-
static sanitizeInnerHtml(html) {
|
|
55
|
-
return html.trim().replace('\n\t', '');
|
|
56
|
-
}
|
|
57
|
-
static toBodyTag(data) {
|
|
58
|
-
if (TextMethods.textTags.includes(data.type)) {
|
|
59
|
-
let textTagData = data.data;
|
|
60
|
-
return {
|
|
61
|
-
presentOrEdit: true,
|
|
62
|
-
tagDescription: {
|
|
63
|
-
tag: textTagData.textTagName,
|
|
64
|
-
displayValue: BodyTagsExtensions.getDescription(data.type)
|
|
65
|
-
},
|
|
66
|
-
attributes: { "h-align": textTagData.horizontalAlignment },
|
|
67
|
-
innerHtml: BodyTagsExtensions.sanitizeInnerHtml(textTagData.html)
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
if (data.type === FileImageTagDataConsts.TagName) {
|
|
71
|
-
let fileData = data.data;
|
|
72
|
-
let
|
|
73
|
-
if (fileData.fileId) {
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
return {
|
|
77
|
-
presentOrEdit: true,
|
|
78
|
-
tagDescription: {
|
|
79
|
-
tag: FileImageTagDataConsts.TagName,
|
|
80
|
-
displayValue: BodyTagsExtensions.getDescription(data.type)
|
|
81
|
-
},
|
|
82
|
-
attributes:
|
|
83
|
-
innerHtml: ""
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
if (data.type === ExternalVideoTagDataConsts.TagName) {
|
|
87
|
-
let fileData = data.data;
|
|
88
|
-
return {
|
|
89
|
-
presentOrEdit: true,
|
|
90
|
-
tagDescription: {
|
|
91
|
-
tag: ExternalVideoTagDataConsts.TagName,
|
|
92
|
-
displayValue: BodyTagsExtensions.getDescription(data.type)
|
|
93
|
-
},
|
|
94
|
-
attributes: fileData,
|
|
95
|
-
innerHtml: ""
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
if (data.type === HtmlRawTagDataConsts.TagName) {
|
|
99
|
-
return {
|
|
100
|
-
presentOrEdit: true,
|
|
101
|
-
tagDescription: {
|
|
102
|
-
tag: HtmlRawTagDataConsts.TagName,
|
|
103
|
-
displayValue: BodyTagsExtensions.getDescription(data.type)
|
|
104
|
-
},
|
|
105
|
-
attributes: {},
|
|
106
|
-
innerHtml: BodyTagsExtensions.sanitizeInnerHtml(data.data["innerHTML"])
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
return {
|
|
110
|
-
presentOrEdit: true,
|
|
111
|
-
tagDescription: {
|
|
112
|
-
tag: "unsupported-tag",
|
|
113
|
-
displayValue: "Неподдерживаемый тег"
|
|
114
|
-
},
|
|
115
|
-
attributes: {},
|
|
116
|
-
innerHtml: JSON.stringify(data)
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9keVRhZ3NFeHRlbnNpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2V4dGVuc2lvbnMvQm9keVRhZ3NFeHRlbnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBeUIsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQW9CLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RCxNQUFNLE9BQU8sa0JBQWtCO0lBRTNCLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBZTtRQUNqQyxJQUFJLFlBQVksR0FBRztZQUNmLE1BQU0sRUFBRSxPQUFPO1lBQ2YsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxhQUFhO1lBQy9DLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLEVBQUUsdUJBQXVCO1lBQzdELENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsZUFBZTtTQUNsRCxDQUFDO1FBRUYsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBdUI7UUFDakMsSUFBSSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFB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O2dCQUNwQixTQUFTLEVBQUUsRUFBRTthQUNoQixDQUFDO1NBQ0w7UUFFRCxJQUFHLElBQUksQ0FBQyxJQUFJLEtBQUssb0JBQW9CLENBQUMsT0FBTyxFQUFDO1lBRTFDLE9BQU87Z0JBQ0gsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLGNBQWMsRUFBRTtvQkFDWixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTztvQkFDakMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUM3RDtnQkFDRCxVQUFVLEVBQUUsRUFBRTtnQkFDZCxTQUFTLEVBQUUsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMxRSxDQUFDO1NBQ0w7UUFFRCxPQUFPO1lBQ0gsYUFBYSxFQUFFLElBQUk7WUFDbkIsY0FBYyxFQUFFO2dCQUNaLEdBQUcsRUFBRSxpQkFBaUI7Z0JBQ3RCLFlBQVksRUFBRSxzQkFBc0I7YUFDdkM7WUFDRCxVQUFVLEVBQUUsRUFBRztZQUNmLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztTQUNsQyxDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHRtbEJvZHlUYWcgfSBmcm9tIFwiLi4vbW9kZWxzL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBIdG1sRXh0cmFjdGlvbk1ldGhvZHMsIEh0bWxFeHRyYWN0aW9uT3B0aW9ucyB9IGZyb20gXCIuL0h0bWxFeHRyYWN0aW9uTWV0aG9kc1wiO1xyXG5pbXBvcnQgeyBJbnRlcmZhY2VCbG9jayB9IGZyb20gXCIuL0ludGVyZmFjZUJsb2NrXCI7XHJcbmltcG9ydCB7IEh0bWxSYXdUYWdEYXRhQ29uc3RzIH0gZnJvbSBcIi4vSHRtbFJhd1RhZ0RhdGFDb25zdHNcIjtcclxuaW1wb3J0IHsgRmlsZUltYWdlVGFnRGF0YSwgRmlsZUltYWdlVGFnRGF0YUNvbnN0cyB9IGZyb20gXCIuL0ltYWdlTWV0aG9kc1wiO1xyXG5pbXBvcnQgeyBUZXh0TWV0aG9kcyB9IGZyb20gXCIuL1RleHRNZXRob2RzXCI7XHJcbmltcG9ydCB7IFNpbXBsZVRleHRUYWdEYXRhIH0gZnJvbSBcIi4vVGV4dFNpbXBsZU1ldGhvZHNcIjtcclxuaW1wb3J0IHsgRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMgfSBmcm9tIFwiLi9WaWRlb01ldGhvZHNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBCb2R5VGFnc0V4dGVuc2lvbnMge1xyXG5cclxuICAgIHN0YXRpYyBnZXREZXNjcmlwdGlvbih0YWdOYW1lOiBzdHJpbmcpe1xyXG4gICAgICAgIHZhciBkZXNjcmlwdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIFwidGV4dFwiOiBcItCi0LXQutGB0YJcIixcclxuICAgICAgICAgICAgXCJoMVwiOiBcItCX0LDQs9C+0LvQvtCy0L7QuiAxINGD0YDQvtCy0L3Rj1wiLFxyXG4gICAgICAgICAgICBcImgyXCI6IFwi0JfQsNCz0L7Qu9C+0LLQvtC6IDIg0YPRgNC+0LLQvdGPXCIsXHJcbiAgICAgICAgICAgIFwiaDNcIjogXCLQl9Cw0LPQvtC70L7QstC+0LogMyDRg9GA0L7QstC90Y9cIixcclxuICAgICAgICAgICAgXCJoNFwiOiBcItCX0LDQs9C+0LvQvtCy0L7QuiA0INGD0YDQvtCy0L3Rj1wiLFxyXG4gICAgICAgICAgICBcImg1XCI6IFwi0JfQsNCz0L7Qu9C+0LLQvtC6IDUg0YPRgNC+0LLQvdGPXCIsXHJcbiAgICAgICAgICAgIFwiaDZcIjogXCLQl9Cw0LPQvtC70L7QstC+0LogNiDRg9GA0L7QstC90Y9cIixcclxuICAgICAgICAgICAgW0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuVGFnTmFtZV06IFwi0JjQt9C+0LHRgNCw0LbQtdC90LjQtVwiLFxyXG4gICAgICAgICAgICBbRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMuVGFnTmFtZV06IFwi0JLQvdC10YjQvdC10LUg0LLQuNC00LXQviBZb3VUdWJlXCIsXHJcbiAgICAgICAgICAgIFtIdG1sUmF3VGFnRGF0YUNvbnN0cy5UYWdOYW1lXTogXCJIdG1sINGA0LDQt9C80LXRgtC60LBcIlxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiBkZXNjcmlwdGlvbnNbdGFnTmFtZV07XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHRvSHRtbChib2R5VGFnczogSHRtbEJvZHlUYWdbXSk6IHN0cmluZ3tcclxuICAgICAgICBsZXQgaHRtbHMgPSBib2R5VGFncy5tYXAoeCA9PiB7XHJcbiAgICAgICAgICAgIGlmKFRleHRNZXRob2RzLnRleHRUYWdzLmluY2x1ZGVzKHgudGFnRGVzY3JpcHRpb24udGFnKSl7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGA8JHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30gaC1hbGlnbj1cIiR7eC5hdHRyaWJ1dGVzWydoLWFsaWduJ119XCI+JHt4LmlubmVySHRtbH08LyR7eC50YWdEZXNjcmlwdGlvbi50YWd9PmA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmKHgudGFnRGVzY3JpcHRpb24udGFnID09PSBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cy5UYWdOYW1lKXtcclxuICAgICAgICAgICAgICAgIHJldHVybiBgPCR7eC50YWdEZXNjcmlwdGlvbi50YWd9IHR5cGU9XCIke3guYXR0cmlidXRlc1sndHlwZSddfVwiIGxpbms9XCIke3guYXR0cmlidXRlc1snbGluayddfVwiPiR7eC5pbm5lckh0bWx9PC8ke3gudGFnRGVzY3JpcHRpb24udGFnfT5gXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmKHgudGFnRGVzY3JpcHRpb24udGFnID09PSBcImh0bWwtcmF3XCIpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGA8JHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30+JHt4LmlubmVySHRtbH08LyR7eC50YWdEZXNjcmlwdGlvbi50YWd9PmBcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIEJvZHlUYWdzRXh0ZW5zaW9ucy5pbWFnZVRhZ1RvSHRtbCh4KTtcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIGxldCByZXN1bHQgPSBcIlwiO1xyXG5cclxuICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBodG1scy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGh0bWxzW2luZGV4XTtcclxuXHJcbiAgICAgICAgICAgIHJlc3VsdCArPSBlbGVtZW50O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGltYWdlVGFnVG9IdG1sKGltYWdlVGFnOiBIdG1sQm9keVRhZyl7XHJcblxyXG4gICAgICAgIHZhciBhdHRyU3RyID0gXCJcIjtcclxuXHJcbiAgICAgICAgdmFyIGF0dHJWYWx1ZSA9IGltYWdlVGFnLmF0dHJpYnV0ZXNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZV07XHJcbiAgICAgICAgaWYoaW1hZ2VUYWcuYXR0cmlidXRlcy5oYXNPd25Qcm9wZXJ0eShGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lKSAmJiBhdHRyVmFsdWUpe1xyXG4gICAgICAgICAgICBhdHRyU3RyID0gYCR7RmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZX09XCIke2F0dHJWYWx1ZX1cImA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gYDwke0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuVGFnTmFtZX0gJHthdHRyU3RyfT48LyR7RmlsZUltYWdlVGFnRGF0YUNvbnN0cy5UYWdOYW1lfT5gO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRCb2R5VGFncyhodG1sOnN0cmluZywgb3B0aW9uczogSHRtbEV4dHJhY3Rpb25PcHRpb25zKXtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gSHRtbEV4dHJhY3Rpb25NZXRob2RzLnRyYW5zZm9ybUh0bWxTdHJpbmdUb0Jsb2NrcyhodG1sLCBvcHRpb25zKTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0Lm1hcCh4ID0+IEJvZHlUYWdzRXh0ZW5zaW9ucy50b0JvZHlUYWcoeCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBzYW5pdGl6ZUlubmVySHRtbChodG1sOnN0cmluZyk6c3RyaW5ne1xyXG4gICAgICAgIHJldHVybiBodG1sLnRyaW0oKS5yZXBsYWNlKCdcXG5cXHQnLCAnJyk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHRvQm9keVRhZyhkYXRhOiBJbnRlcmZhY2VCbG9jayk6IEh0bWxCb2R5VGFnIHtcclxuICAgICAgICBpZiAoVGV4dE1ldGhvZHMudGV4dFRhZ3MuaW5jbHVkZXMoZGF0YS50eXBlKSkge1xyXG4gICAgICAgICAgICBsZXQgdGV4dFRhZ0RhdGEgPSBkYXRhLmRhdGEgYXMgU2ltcGxlVGV4dFRhZ0RhdGE7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgcHJlc2VudE9yRWRpdDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHRhZ0Rlc2NyaXB0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGFnOiB0ZXh0VGFnRGF0YS50ZXh0VGFnTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWU6IEJvZHlUYWdzRXh0ZW5zaW9ucy5nZXREZXNjcmlwdGlvbihkYXRhLnR5cGUpXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogeyBcImgtYWxpZ25cIjogdGV4dFRhZ0RhdGEuaG9yaXpvbnRhbEFsaWdubWVudCB9LFxyXG4gICAgICAgICAgICAgICAgaW5uZXJIdG1sOiBCb2R5VGFnc0V4dGVuc2lvbnMuc2FuaXRpemVJbm5lckh0bWwodGV4dFRhZ0RhdGEuaHRtbClcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKGRhdGEudHlwZSA9PT0gRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5UYWdOYW1lKXtcclxuXHJcbiAgICAgICAgICAgIGxldCBmaWxlRGF0YSA9IGRhdGEuZGF0YSBhcyBGaWxlSW1hZ2VUYWdEYXRhO1xyXG5cclxuICAgICAgICAgICAgbGV0IGF0dHMgPSB7fTtcclxuXHJcbiAgICAgICAgICAgIGlmKGZpbGVEYXRhLmZpbGVJZCl7XHJcbiAgICAgICAgICAgICAgICBhdHRzW0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWVdID0gZmlsZURhdGEuZmlsZUlkO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgcHJlc2VudE9yRWRpdDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHRhZ0Rlc2NyaXB0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGFnOiBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlRhZ05hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlOiBCb2R5VGFnc0V4dGVuc2lvbnMuZ2V0RGVzY3JpcHRpb24oZGF0YS50eXBlKVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IGF0dHMsXHJcbiAgICAgICAgICAgICAgICBpbm5lckh0bWw6IFwiXCJcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKGRhdGEudHlwZSA9PT0gRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMuVGFnTmFtZSl7XHJcbiAgICAgICAgICAgIGxldCBmaWxlRGF0YSA9IGRhdGEuZGF0YSBhcyBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cztcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgdGFnRGVzY3JpcHRpb246IHtcclxuICAgICAgICAgICAgICAgICAgICB0YWc6IEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlRhZ05hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlOiBCb2R5VGFnc0V4dGVuc2lvbnMuZ2V0RGVzY3JpcHRpb24oZGF0YS50eXBlKVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IGZpbGVEYXRhLFxyXG4gICAgICAgICAgICAgICAgaW5uZXJIdG1sOiBcIlwiXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZihkYXRhLnR5cGUgPT09IEh0bWxSYXdUYWdEYXRhQ29uc3RzLlRhZ05hbWUpe1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIHByZXNlbnRPckVkaXQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICB0YWdEZXNjcmlwdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgIHRhZzogSHRtbFJhd1RhZ0RhdGFDb25zdHMuVGFnTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWU6IEJvZHlUYWdzRXh0ZW5zaW9ucy5nZXREZXNjcmlwdGlvbihkYXRhLnR5cGUpXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczoge30sXHJcbiAgICAgICAgICAgICAgICBpbm5lckh0bWw6IEJvZHlUYWdzRXh0ZW5zaW9ucy5zYW5pdGl6ZUlubmVySHRtbChkYXRhLmRhdGFbXCJpbm5lckhUTUxcIl0pXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxyXG4gICAgICAgICAgICB0YWdEZXNjcmlwdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgdGFnOiBcInVuc3VwcG9ydGVkLXRhZ1wiLFxyXG4gICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlOiBcItCd0LXQv9C+0LTQtNC10YDQttC40LLQsNC10LzRi9C5INGC0LXQs1wiXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHsgfSxcclxuICAgICAgICAgICAgaW5uZXJIdG1sOiBKU09OLnN0cmluZ2lmeShkYXRhKVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
1
|
+
import { HtmlExtractionMethods } from "./HtmlExtractionMethods";
|
|
2
|
+
import { HtmlRawTagDataConsts } from "./HtmlRawTagDataConsts";
|
|
3
|
+
import { FileImageTagDataConsts } from "./ImageMethods";
|
|
4
|
+
import { TextMethods } from "./TextMethods";
|
|
5
|
+
import { ExternalVideoTagDataConsts } from "./VideoMethods";
|
|
6
|
+
export class BodyTagsExtensions {
|
|
7
|
+
static getDescription(tagName) {
|
|
8
|
+
var descriptions = {
|
|
9
|
+
"text": "Текст",
|
|
10
|
+
"h1": "Заголовок 1 уровня",
|
|
11
|
+
"h2": "Заголовок 2 уровня",
|
|
12
|
+
"h3": "Заголовок 3 уровня",
|
|
13
|
+
"h4": "Заголовок 4 уровня",
|
|
14
|
+
"h5": "Заголовок 5 уровня",
|
|
15
|
+
"h6": "Заголовок 6 уровня",
|
|
16
|
+
[FileImageTagDataConsts.TagName]: "Изображение",
|
|
17
|
+
[ExternalVideoTagDataConsts.TagName]: "Внешнее видео YouTube",
|
|
18
|
+
[HtmlRawTagDataConsts.TagName]: "Html разметка"
|
|
19
|
+
};
|
|
20
|
+
return descriptions[tagName];
|
|
21
|
+
}
|
|
22
|
+
static toHtml(bodyTags) {
|
|
23
|
+
let htmls = bodyTags.map(x => {
|
|
24
|
+
if (TextMethods.textTags.includes(x.tagDescription.tag)) {
|
|
25
|
+
return `<${x.tagDescription.tag} h-align="${x.attributes['h-align']}">${x.innerHtml}</${x.tagDescription.tag}>`;
|
|
26
|
+
}
|
|
27
|
+
if (x.tagDescription.tag === ExternalVideoTagDataConsts.TagName) {
|
|
28
|
+
return `<${x.tagDescription.tag} type="${x.attributes['type']}" link="${x.attributes['link']}">${x.innerHtml}</${x.tagDescription.tag}>`;
|
|
29
|
+
}
|
|
30
|
+
if (x.tagDescription.tag === "html-raw") {
|
|
31
|
+
return `<${x.tagDescription.tag}>${x.innerHtml}</${x.tagDescription.tag}>`;
|
|
32
|
+
}
|
|
33
|
+
return BodyTagsExtensions.imageTagToHtml(x);
|
|
34
|
+
});
|
|
35
|
+
let result = "";
|
|
36
|
+
for (let index = 0; index < htmls.length; index++) {
|
|
37
|
+
const element = htmls[index];
|
|
38
|
+
result += element;
|
|
39
|
+
}
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
static imageTagToHtml(imageTag) {
|
|
43
|
+
var attrStr = "";
|
|
44
|
+
var attrValue = imageTag.attributes[FileImageTagDataConsts.FileIdAttrName];
|
|
45
|
+
if (imageTag.attributes.hasOwnProperty(FileImageTagDataConsts.FileIdAttrName) && attrValue) {
|
|
46
|
+
attrStr = `${FileImageTagDataConsts.FileIdAttrName}="${attrValue}"`;
|
|
47
|
+
}
|
|
48
|
+
return `<${FileImageTagDataConsts.TagName} ${attrStr}></${FileImageTagDataConsts.TagName}>`;
|
|
49
|
+
}
|
|
50
|
+
static getBodyTags(html, options) {
|
|
51
|
+
let result = HtmlExtractionMethods.transformHtmlStringToBlocks(html, options);
|
|
52
|
+
return result.map(x => BodyTagsExtensions.toBodyTag(x));
|
|
53
|
+
}
|
|
54
|
+
static sanitizeInnerHtml(html) {
|
|
55
|
+
return html.trim().replace('\n\t', '');
|
|
56
|
+
}
|
|
57
|
+
static toBodyTag(data) {
|
|
58
|
+
if (TextMethods.textTags.includes(data.type)) {
|
|
59
|
+
let textTagData = data.data;
|
|
60
|
+
return {
|
|
61
|
+
presentOrEdit: true,
|
|
62
|
+
tagDescription: {
|
|
63
|
+
tag: textTagData.textTagName,
|
|
64
|
+
displayValue: BodyTagsExtensions.getDescription(data.type)
|
|
65
|
+
},
|
|
66
|
+
attributes: { "h-align": textTagData.horizontalAlignment },
|
|
67
|
+
innerHtml: BodyTagsExtensions.sanitizeInnerHtml(textTagData.html)
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
if (data.type === FileImageTagDataConsts.TagName) {
|
|
71
|
+
let fileData = data.data;
|
|
72
|
+
let attrs = {};
|
|
73
|
+
if (fileData.fileId) {
|
|
74
|
+
attrs[FileImageTagDataConsts.FileIdAttrName] = fileData.fileId;
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
presentOrEdit: true,
|
|
78
|
+
tagDescription: {
|
|
79
|
+
tag: FileImageTagDataConsts.TagName,
|
|
80
|
+
displayValue: BodyTagsExtensions.getDescription(data.type)
|
|
81
|
+
},
|
|
82
|
+
attributes: attrs,
|
|
83
|
+
innerHtml: ""
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
if (data.type === ExternalVideoTagDataConsts.TagName) {
|
|
87
|
+
let fileData = data.data;
|
|
88
|
+
return {
|
|
89
|
+
presentOrEdit: true,
|
|
90
|
+
tagDescription: {
|
|
91
|
+
tag: ExternalVideoTagDataConsts.TagName,
|
|
92
|
+
displayValue: BodyTagsExtensions.getDescription(data.type)
|
|
93
|
+
},
|
|
94
|
+
attributes: fileData,
|
|
95
|
+
innerHtml: ""
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
if (data.type === HtmlRawTagDataConsts.TagName) {
|
|
99
|
+
return {
|
|
100
|
+
presentOrEdit: true,
|
|
101
|
+
tagDescription: {
|
|
102
|
+
tag: HtmlRawTagDataConsts.TagName,
|
|
103
|
+
displayValue: BodyTagsExtensions.getDescription(data.type)
|
|
104
|
+
},
|
|
105
|
+
attributes: {},
|
|
106
|
+
innerHtml: BodyTagsExtensions.sanitizeInnerHtml(data.data["innerHTML"])
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
return {
|
|
110
|
+
presentOrEdit: true,
|
|
111
|
+
tagDescription: {
|
|
112
|
+
tag: "unsupported-tag",
|
|
113
|
+
displayValue: "Неподдерживаемый тег"
|
|
114
|
+
},
|
|
115
|
+
attributes: {},
|
|
116
|
+
innerHtml: JSON.stringify(data)
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9keVRhZ3NFeHRlbnNpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2V4dGVuc2lvbnMvQm9keVRhZ3NFeHRlbnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBeUIsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQW9CLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RCxNQUFNLE9BQU8sa0JBQWtCO0lBRTNCLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBZTtRQUNqQyxJQUFJLFlBQVksR0FBRztZQUNmLE1BQU0sRUFBRSxPQUFPO1lBQ2YsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxhQUFhO1lBQy9DLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLEVBQUUsdUJBQXVCO1lBQzdELENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsZUFBZTtTQUNsRCxDQUFDO1FBRUYsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBdUI7UUFDakMsSUFBSSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFB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b0JBQ3ZDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDN0Q7Z0JBQ0QsVUFBVSxFQUFFLFFBQVE7Z0JBQ3BCLFNBQVMsRUFBRSxFQUFFO2FBQ2hCLENBQUM7UUFDTixDQUFDO1FBRUQsSUFBRyxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFDLE9BQU8sRUFBQyxDQUFDO1lBRTNDLE9BQU87Z0JBQ0gsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLGNBQWMsRUFBRTtvQkFDWixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTztvQkFDakMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUM3RDtnQkFDRCxVQUFVLEVBQUUsRUFBRTtnQkFDZCxTQUFTLEVBQUUsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMxRSxDQUFDO1FBQ04sQ0FBQztRQUVELE9BQU87WUFDSCxhQUFhLEVBQUUsSUFBSTtZQUNuQixjQUFjLEVBQUU7Z0JBQ1osR0FBRyxFQUFFLGlCQUFpQjtnQkFDdEIsWUFBWSxFQUFFLHNCQUFzQjthQUN2QztZQUNELFVBQVUsRUFBRSxFQUFHO1lBQ2YsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1NBQ2xDLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdG1sQm9keVRhZyB9IGZyb20gXCIuLi9tb2RlbHMvbW9kZWxzXCI7XHJcbmltcG9ydCB7IEh0bWxFeHRyYWN0aW9uTWV0aG9kcywgSHRtbEV4dHJhY3Rpb25PcHRpb25zIH0gZnJvbSBcIi4vSHRtbEV4dHJhY3Rpb25NZXRob2RzXCI7XHJcbmltcG9ydCB7IEludGVyZmFjZUJsb2NrIH0gZnJvbSBcIi4vSW50ZXJmYWNlQmxvY2tcIjtcclxuaW1wb3J0IHsgSHRtbFJhd1RhZ0RhdGFDb25zdHMgfSBmcm9tIFwiLi9IdG1sUmF3VGFnRGF0YUNvbnN0c1wiO1xyXG5pbXBvcnQgeyBGaWxlSW1hZ2VUYWdEYXRhLCBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzIH0gZnJvbSBcIi4vSW1hZ2VNZXRob2RzXCI7XHJcbmltcG9ydCB7IFRleHRNZXRob2RzIH0gZnJvbSBcIi4vVGV4dE1ldGhvZHNcIjtcclxuaW1wb3J0IHsgU2ltcGxlVGV4dFRhZ0RhdGEgfSBmcm9tIFwiLi9UZXh0U2ltcGxlTWV0aG9kc1wiO1xyXG5pbXBvcnQgeyBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cyB9IGZyb20gXCIuL1ZpZGVvTWV0aG9kc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEJvZHlUYWdzRXh0ZW5zaW9ucyB7XHJcblxyXG4gICAgc3RhdGljIGdldERlc2NyaXB0aW9uKHRhZ05hbWU6IHN0cmluZyl7XHJcbiAgICAgICAgdmFyIGRlc2NyaXB0aW9ucyA9IHtcclxuICAgICAgICAgICAgXCJ0ZXh0XCI6IFwi0KLQtdC60YHRglwiLFxyXG4gICAgICAgICAgICBcImgxXCI6IFwi0JfQsNCz0L7Qu9C+0LLQvtC6IDEg0YPRgNC+0LLQvdGPXCIsXHJcbiAgICAgICAgICAgIFwiaDJcIjogXCLQl9Cw0LPQvtC70L7QstC+0LogMiDRg9GA0L7QstC90Y9cIixcclxuICAgICAgICAgICAgXCJoM1wiOiBcItCX0LDQs9C+0LvQvtCy0L7QuiAzINGD0YDQvtCy0L3Rj1wiLFxyXG4gICAgICAgICAgICBcImg0XCI6IFwi0JfQsNCz0L7Qu9C+0LLQvtC6IDQg0YPRgNC+0LLQvdGPXCIsXHJcbiAgICAgICAgICAgIFwiaDVcIjogXCLQl9Cw0LPQvtC70L7QstC+0LogNSDRg9GA0L7QstC90Y9cIixcclxuICAgICAgICAgICAgXCJoNlwiOiBcItCX0LDQs9C+0LvQvtCy0L7QuiA2INGD0YDQvtCy0L3Rj1wiLFxyXG4gICAgICAgICAgICBbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5UYWdOYW1lXTogXCLQmNC30L7QsdGA0LDQttC10L3QuNC1XCIsXHJcbiAgICAgICAgICAgIFtFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cy5UYWdOYW1lXTogXCLQktC90LXRiNC90LXQtSDQstC40LTQtdC+IFlvdVR1YmVcIixcclxuICAgICAgICAgICAgW0h0bWxSYXdUYWdEYXRhQ29uc3RzLlRhZ05hbWVdOiBcIkh0bWwg0YDQsNC30LzQtdGC0LrQsFwiXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uc1t0YWdOYW1lXTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgdG9IdG1sKGJvZHlUYWdzOiBIdG1sQm9keVRhZ1tdKTogc3RyaW5ne1xyXG4gICAgICAgIGxldCBodG1scyA9IGJvZHlUYWdzLm1hcCh4ID0+IHtcclxuICAgICAgICAgICAgaWYoVGV4dE1ldGhvZHMudGV4dFRhZ3MuaW5jbHVkZXMoeC50YWdEZXNjcmlwdGlvbi50YWcpKXtcclxuICAgICAgICAgICAgICByZXR1cm4gYDwke3gudGFnRGVzY3JpcHRpb24udGFnfSBoLWFsaWduPVwiJHt4LmF0dHJpYnV0ZXNbJ2gtYWxpZ24nXX1cIj4ke3guaW5uZXJIdG1sfTwvJHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30+YDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYoeC50YWdEZXNjcmlwdGlvbi50YWcgPT09IEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlRhZ05hbWUpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGA8JHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30gdHlwZT1cIiR7eC5hdHRyaWJ1dGVzWyd0eXBlJ119XCIgbGluaz1cIiR7eC5hdHRyaWJ1dGVzWydsaW5rJ119XCI+JHt4LmlubmVySHRtbH08LyR7eC50YWdEZXNjcmlwdGlvbi50YWd9PmBcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYoeC50YWdEZXNjcmlwdGlvbi50YWcgPT09IFwiaHRtbC1yYXdcIil7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYDwke3gudGFnRGVzY3JpcHRpb24udGFnfT4ke3guaW5uZXJIdG1sfTwvJHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30+YFxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gQm9keVRhZ3NFeHRlbnNpb25zLmltYWdlVGFnVG9IdG1sKHgpO1xyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgbGV0IHJlc3VsdCA9IFwiXCI7XHJcblxyXG4gICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGh0bWxzLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gaHRtbHNbaW5kZXhdO1xyXG5cclxuICAgICAgICAgICAgcmVzdWx0ICs9IGVsZW1lbnQ7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaW1hZ2VUYWdUb0h0bWwoaW1hZ2VUYWc6IEh0bWxCb2R5VGFnKXtcclxuXHJcbiAgICAgICAgdmFyIGF0dHJTdHIgPSBcIlwiO1xyXG5cclxuICAgICAgICB2YXIgYXR0clZhbHVlID0gaW1hZ2VUYWcuYXR0cmlidXRlc1tGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lXTtcclxuICAgICAgICBpZihpbWFnZVRhZy5hdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWUpICYmIGF0dHJWYWx1ZSl7XHJcbiAgICAgICAgICAgIGF0dHJTdHIgPSBgJHtGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lfT1cIiR7YXR0clZhbHVlfVwiYDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBgPCR7RmlsZUltYWdlVGFnRGF0YUNvbnN0cy5UYWdOYW1lfSAke2F0dHJTdHJ9PjwvJHtGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlRhZ05hbWV9PmA7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldEJvZHlUYWdzKGh0bWw6c3RyaW5nLCBvcHRpb25zOiBIdG1sRXh0cmFjdGlvbk9wdGlvbnMpe1xyXG4gICAgICAgIGxldCByZXN1bHQgPSBIdG1sRXh0cmFjdGlvbk1ldGhvZHMudHJhbnNmb3JtSHRtbFN0cmluZ1RvQmxvY2tzKGh0bWwsIG9wdGlvbnMpO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQubWFwKHggPT4gQm9keVRhZ3NFeHRlbnNpb25zLnRvQm9keVRhZyh4KSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHNhbml0aXplSW5uZXJIdG1sKGh0bWw6c3RyaW5nKTpzdHJpbmd7XHJcbiAgICAgICAgcmV0dXJuIGh0bWwudHJpbSgpLnJlcGxhY2UoJ1xcblxcdCcsICcnKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgdG9Cb2R5VGFnKGRhdGE6IEludGVyZmFjZUJsb2NrKTogSHRtbEJvZHlUYWcge1xyXG4gICAgICAgIGlmIChUZXh0TWV0aG9kcy50ZXh0VGFncy5pbmNsdWRlcyhkYXRhLnR5cGUpKSB7XHJcbiAgICAgICAgICAgIGxldCB0ZXh0VGFnRGF0YSA9IGRhdGEuZGF0YSBhcyBTaW1wbGVUZXh0VGFnRGF0YTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgdGFnRGVzY3JpcHRpb246IHtcclxuICAgICAgICAgICAgICAgICAgICB0YWc6IHRleHRUYWdEYXRhLnRleHRUYWdOYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZTogQm9keVRhZ3NFeHRlbnNpb25zLmdldERlc2NyaXB0aW9uKGRhdGEudHlwZSlcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7IFwiaC1hbGlnblwiOiB0ZXh0VGFnRGF0YS5ob3Jpem9udGFsQWxpZ25tZW50IH0sXHJcbiAgICAgICAgICAgICAgICBpbm5lckh0bWw6IEJvZHlUYWdzRXh0ZW5zaW9ucy5zYW5pdGl6ZUlubmVySHRtbCh0ZXh0VGFnRGF0YS5odG1sKVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoZGF0YS50eXBlID09PSBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlRhZ05hbWUpe1xyXG5cclxuICAgICAgICAgICAgbGV0IGZpbGVEYXRhID0gZGF0YS5kYXRhIGFzIEZpbGVJbWFnZVRhZ0RhdGE7XHJcblxyXG4gICAgICAgICAgICBsZXQgYXR0cnMgPSB7fTtcclxuXHJcbiAgICAgICAgICAgIGlmKGZpbGVEYXRhLmZpbGVJZCkge1xyXG4gICAgICAgICAgICAgICAgYXR0cnNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZV0gPSBmaWxlRGF0YS5maWxlSWQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgdGFnRGVzY3JpcHRpb246IHtcclxuICAgICAgICAgICAgICAgICAgICB0YWc6IEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuVGFnTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWU6IEJvZHlUYWdzRXh0ZW5zaW9ucy5nZXREZXNjcmlwdGlvbihkYXRhLnR5cGUpXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogYXR0cnMsXHJcbiAgICAgICAgICAgICAgICBpbm5lckh0bWw6IFwiXCJcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKGRhdGEudHlwZSA9PT0gRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMuVGFnTmFtZSl7XHJcbiAgICAgICAgICAgIGxldCBmaWxlRGF0YSA9IGRhdGEuZGF0YSBhcyBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cztcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgdGFnRGVzY3JpcHRpb246IHtcclxuICAgICAgICAgICAgICAgICAgICB0YWc6IEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlRhZ05hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlOiBCb2R5VGFnc0V4dGVuc2lvbnMuZ2V0RGVzY3JpcHRpb24oZGF0YS50eXBlKVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IGZpbGVEYXRhLFxyXG4gICAgICAgICAgICAgICAgaW5uZXJIdG1sOiBcIlwiXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZihkYXRhLnR5cGUgPT09IEh0bWxSYXdUYWdEYXRhQ29uc3RzLlRhZ05hbWUpe1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIHByZXNlbnRPckVkaXQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICB0YWdEZXNjcmlwdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgIHRhZzogSHRtbFJhd1RhZ0RhdGFDb25zdHMuVGFnTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWU6IEJvZHlUYWdzRXh0ZW5zaW9ucy5nZXREZXNjcmlwdGlvbihkYXRhLnR5cGUpXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczoge30sXHJcbiAgICAgICAgICAgICAgICBpbm5lckh0bWw6IEJvZHlUYWdzRXh0ZW5zaW9ucy5zYW5pdGl6ZUlubmVySHRtbChkYXRhLmRhdGFbXCJpbm5lckhUTUxcIl0pXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxyXG4gICAgICAgICAgICB0YWdEZXNjcmlwdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgdGFnOiBcInVuc3VwcG9ydGVkLXRhZ1wiLFxyXG4gICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlOiBcItCd0LXQv9C+0LTQtNC10YDQttC40LLQsNC10LzRi9C5INGC0LXQs1wiXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHsgfSxcclxuICAgICAgICAgICAgaW5uZXJIdG1sOiBKU09OLnN0cmluZ2lmeShkYXRhKVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
import { FileImageTagDataConsts } from './ImageMethods';
|
|
2
|
-
import { TextTag } from './TextSimpleMethods';
|
|
3
|
-
export class BootstrapTableMethods {
|
|
4
|
-
static BuildTable(data) {
|
|
5
|
-
let result = `<table class="table table-bordered">`;
|
|
6
|
-
result += this.BuildHeader(data.header);
|
|
7
|
-
result += this.BuildBody(data.rows);
|
|
8
|
-
result += "</table>";
|
|
9
|
-
return result;
|
|
10
|
-
}
|
|
11
|
-
static BuildHeader(data) {
|
|
12
|
-
if (data === null) {
|
|
13
|
-
return "";
|
|
14
|
-
}
|
|
15
|
-
let result = "<thead>";
|
|
16
|
-
result += "<tr>";
|
|
17
|
-
for (let index = 0; index < data.columns.length; index++) {
|
|
18
|
-
result += `<th>${data.columns[index]}</th>`;
|
|
19
|
-
}
|
|
20
|
-
result += "</tr>";
|
|
21
|
-
result += "</thead>";
|
|
22
|
-
return result;
|
|
23
|
-
}
|
|
24
|
-
static BuildBody(rows) {
|
|
25
|
-
let result = "<tbody>";
|
|
26
|
-
for (let i = 0; i < rows.length; i++) {
|
|
27
|
-
const row = rows[i];
|
|
28
|
-
result += "<tr>";
|
|
29
|
-
for (let j = 0; j < row.columns.length; j++) {
|
|
30
|
-
const col = row.columns[j];
|
|
31
|
-
result += `<td class="align-middle">${this.BuildInnerTags(col.data.children)}</td>`;
|
|
32
|
-
}
|
|
33
|
-
result += "</tr>";
|
|
34
|
-
}
|
|
35
|
-
result += "</tbody>";
|
|
36
|
-
return result;
|
|
37
|
-
}
|
|
38
|
-
static BuildInnerTags(tags) {
|
|
39
|
-
let result = "";
|
|
40
|
-
for (let i = 0; i < tags.length; i++) {
|
|
41
|
-
result += this.BuildInnerTag(tags[i]);
|
|
42
|
-
}
|
|
43
|
-
return result;
|
|
44
|
-
}
|
|
45
|
-
static BuildInnerTag(data) {
|
|
46
|
-
if (data.type === FileImageTagDataConsts.TagName) {
|
|
47
|
-
let fileImageTag = data;
|
|
48
|
-
return `<img src=${fileImageTag.data.src} class="mx-auto d-block img-fluid" />`;
|
|
49
|
-
}
|
|
50
|
-
else if (data.type === TextTag) {
|
|
51
|
-
let simpleTextTag = data;
|
|
52
|
-
var map = {
|
|
53
|
-
["left"]: "text-start",
|
|
54
|
-
["center"]: "text-center",
|
|
55
|
-
["right"]: "text-end"
|
|
56
|
-
};
|
|
57
|
-
if (!simpleTextTag.data.validationResult.isSucceeded) {
|
|
58
|
-
return `<span>Ошибка в тексте ${simpleTextTag.data.validationResult.message}</span>`;
|
|
59
|
-
}
|
|
60
|
-
return `<div class="${map[simpleTextTag.data.horizontalAlignment]}"><span>${simpleTextTag.data.html}</span></div>`;
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
return `<p>Тег ${data.type} не поддерживается</p>`;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { FileImageTagDataConsts } from './ImageMethods';
|
|
2
|
+
import { TextTag } from './TextSimpleMethods';
|
|
3
|
+
export class BootstrapTableMethods {
|
|
4
|
+
static BuildTable(data) {
|
|
5
|
+
let result = `<table class="table table-bordered">`;
|
|
6
|
+
result += this.BuildHeader(data.header);
|
|
7
|
+
result += this.BuildBody(data.rows);
|
|
8
|
+
result += "</table>";
|
|
9
|
+
return result;
|
|
10
|
+
}
|
|
11
|
+
static BuildHeader(data) {
|
|
12
|
+
if (data === null) {
|
|
13
|
+
return "";
|
|
14
|
+
}
|
|
15
|
+
let result = "<thead>";
|
|
16
|
+
result += "<tr>";
|
|
17
|
+
for (let index = 0; index < data.columns.length; index++) {
|
|
18
|
+
result += `<th>${data.columns[index]}</th>`;
|
|
19
|
+
}
|
|
20
|
+
result += "</tr>";
|
|
21
|
+
result += "</thead>";
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
static BuildBody(rows) {
|
|
25
|
+
let result = "<tbody>";
|
|
26
|
+
for (let i = 0; i < rows.length; i++) {
|
|
27
|
+
const row = rows[i];
|
|
28
|
+
result += "<tr>";
|
|
29
|
+
for (let j = 0; j < row.columns.length; j++) {
|
|
30
|
+
const col = row.columns[j];
|
|
31
|
+
result += `<td class="align-middle">${this.BuildInnerTags(col.data.children)}</td>`;
|
|
32
|
+
}
|
|
33
|
+
result += "</tr>";
|
|
34
|
+
}
|
|
35
|
+
result += "</tbody>";
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
static BuildInnerTags(tags) {
|
|
39
|
+
let result = "";
|
|
40
|
+
for (let i = 0; i < tags.length; i++) {
|
|
41
|
+
result += this.BuildInnerTag(tags[i]);
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
static BuildInnerTag(data) {
|
|
46
|
+
if (data.type === FileImageTagDataConsts.TagName) {
|
|
47
|
+
let fileImageTag = data;
|
|
48
|
+
return `<img src=${fileImageTag.data.src} class="mx-auto d-block img-fluid" />`;
|
|
49
|
+
}
|
|
50
|
+
else if (data.type === TextTag) {
|
|
51
|
+
let simpleTextTag = data;
|
|
52
|
+
var map = {
|
|
53
|
+
["left"]: "text-start",
|
|
54
|
+
["center"]: "text-center",
|
|
55
|
+
["right"]: "text-end"
|
|
56
|
+
};
|
|
57
|
+
if (!simpleTextTag.data.validationResult.isSucceeded) {
|
|
58
|
+
return `<span>Ошибка в тексте ${simpleTextTag.data.validationResult.message}</span>`;
|
|
59
|
+
}
|
|
60
|
+
return `<div class="${map[simpleTextTag.data.horizontalAlignment]}"><span>${simpleTextTag.data.html}</span></div>`;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
return `<p>Тег ${data.type} не поддерживается</p>`;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vdHN0cmFwVGFibGVNZXRob2RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2V4dGVuc2lvbnMvQm9vdHN0cmFwVGFibGVNZXRob2RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBZ0Isc0JBQXNCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RSxPQUFPLEVBQWlCLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTdELE1BQU0sT0FBTyxxQkFBcUI7SUFFOUIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFlO1FBQzdCLElBQUksTUFBTSxHQUFHLHNDQUFzQyxDQUFDO1FBQ3BELE1BQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsTUFBTSxJQUFJLFVBQVUsQ0FBQztRQUVyQixPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFxQjtRQUNwQyxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNoQixPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDdkIsTUFBTSxJQUFJLE1BQU0sQ0FBQztRQUNqQixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN2RCxNQUFNLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDaEQsQ0FBQztRQUNELE1BQU0sSUFBSSxPQUFPLENBQUM7UUFFbEIsTUFBTSxJQUFJLFVBQVUsQ0FBQztRQUVyQixPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFvQjtRQUNqQyxJQUFJLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFFdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNuQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFcEIsTUFBTSxJQUFJLE1BQU0sQ0FBQztZQUNqQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDMUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFM0IsTUFBTSxJQUFJLDRCQUE0QixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUN4RixDQUFDO1lBQ0QsTUFBTSxJQUFJLE9BQU8sQ0FBQztRQUN0QixDQUFDO1FBRUQsTUFBTSxJQUFJLFVBQVUsQ0FBQztRQUNyQixPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFzQjtRQUN4QyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBb0I7UUFDckMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQy9DLElBQUksWUFBWSxHQUFHLElBQW9CLENBQUM7WUFDeEMsT0FBTyxZQUFZLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyx1Q0FBdUMsQ0FBQztRQUNwRixDQUFDO2FBQ0ksSUFBRyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBQyxDQUFDO1lBRTNCLElBQUksYUFBYSxHQUFHLElBQXFCLENBQUM7WUFFMUMsSUFBSSxHQUFHLEdBQUc7Z0JBQ04sQ0FBQyxNQUFNLENBQUMsRUFBRSxZQUFZO2dCQUN0QixDQUFDLFFBQVEsQ0FBQyxFQUFFLGFBQWE7Z0JBQ3pCLENBQUMsT0FBTyxDQUFDLEVBQUUsVUFBVTthQUN4QixDQUFDO1lBRUYsSUFBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFDLENBQUM7Z0JBQ2pELE9BQU8seUJBQXlCLGFBQWEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxTQUFTLENBQUM7WUFDekYsQ0FBQztZQUVELE9BQU8sZUFBZSxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxlQUFlLENBQUM7UUFDdkgsQ0FBQzthQUNJLENBQUM7WUFDRixPQUFPLFVBQVUsSUFBSSxDQUFDLElBQUksd0JBQXdCLENBQUM7UUFDdkQsQ0FBQztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludGVyZmFjZUJsb2NrIH0gZnJvbSBcIi4vSW50ZXJmYWNlQmxvY2tcIjtcclxuaW1wb3J0IHsgRmlsZUltYWdlVGFnLCBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzIH0gZnJvbSAnLi9JbWFnZU1ldGhvZHMnO1xyXG5pbXBvcnQgeyBUYWJsZURhdGEsIFRhYmxlSGVhZGVyRGF0YSwgVGFibGVSb3dEYXRhIH0gZnJvbSAnLi9UYWJsZU1ldGhvZHMnO1xyXG5pbXBvcnQgeyBTaW1wbGVUZXh0VGFnLCBUZXh0VGFnIH0gZnJvbSAnLi9UZXh0U2ltcGxlTWV0aG9kcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgQm9vdHN0cmFwVGFibGVNZXRob2RzIHtcclxuXHJcbiAgICBzdGF0aWMgQnVpbGRUYWJsZShkYXRhOiBUYWJsZURhdGEpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCByZXN1bHQgPSBgPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtYm9yZGVyZWRcIj5gO1xyXG4gICAgICAgIHJlc3VsdCArPSB0aGlzLkJ1aWxkSGVhZGVyKGRhdGEuaGVhZGVyKTtcclxuICAgICAgICByZXN1bHQgKz0gdGhpcy5CdWlsZEJvZHkoZGF0YS5yb3dzKTtcclxuICAgICAgICByZXN1bHQgKz0gXCI8L3RhYmxlPlwiO1xyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBCdWlsZEhlYWRlcihkYXRhOiBUYWJsZUhlYWRlckRhdGEpIHtcclxuICAgICAgICBpZiAoZGF0YSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCByZXN1bHQgPSBcIjx0aGVhZD5cIjtcclxuICAgICAgICByZXN1bHQgKz0gXCI8dHI+XCI7XHJcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGRhdGEuY29sdW1ucy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgcmVzdWx0ICs9IGA8dGg+JHtkYXRhLmNvbHVtbnNbaW5kZXhdfTwvdGg+YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzdWx0ICs9IFwiPC90cj5cIjtcclxuXHJcbiAgICAgICAgcmVzdWx0ICs9IFwiPC90aGVhZD5cIjtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgQnVpbGRCb2R5KHJvd3M6IFRhYmxlUm93RGF0YVtdKSB7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IFwiPHRib2R5PlwiO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvd3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3Qgcm93ID0gcm93c1tpXTtcclxuXHJcbiAgICAgICAgICAgIHJlc3VsdCArPSBcIjx0cj5cIjtcclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCByb3cuY29sdW1ucy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29sID0gcm93LmNvbHVtbnNbal07XHJcblxyXG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9IGA8dGQgY2xhc3M9XCJhbGlnbi1taWRkbGVcIj4ke3RoaXMuQnVpbGRJbm5lclRhZ3MoY29sLmRhdGEuY2hpbGRyZW4pfTwvdGQ+YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXN1bHQgKz0gXCI8L3RyPlwiO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmVzdWx0ICs9IFwiPC90Ym9keT5cIjtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBCdWlsZElubmVyVGFncyh0YWdzOiBJbnRlcmZhY2VCbG9ja1tdKSB7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IFwiXCI7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0YWdzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdCArPSB0aGlzLkJ1aWxkSW5uZXJUYWcodGFnc1tpXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBCdWlsZElubmVyVGFnKGRhdGE6IEludGVyZmFjZUJsb2NrKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoZGF0YS50eXBlID09PSBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlRhZ05hbWUpIHtcclxuICAgICAgICAgICAgbGV0IGZpbGVJbWFnZVRhZyA9IGRhdGEgYXMgRmlsZUltYWdlVGFnO1xyXG4gICAgICAgICAgICByZXR1cm4gYDxpbWcgc3JjPSR7ZmlsZUltYWdlVGFnLmRhdGEuc3JjfSBjbGFzcz1cIm14LWF1dG8gZC1ibG9jayBpbWctZmx1aWRcIiAvPmA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoZGF0YS50eXBlID09PSBUZXh0VGFnKXtcclxuXHJcbiAgICAgICAgICAgIGxldCBzaW1wbGVUZXh0VGFnID0gZGF0YSBhcyBTaW1wbGVUZXh0VGFnO1xyXG5cclxuICAgICAgICAgICAgdmFyIG1hcCA9IHtcclxuICAgICAgICAgICAgICAgIFtcImxlZnRcIl06IFwidGV4dC1zdGFydFwiLFxyXG4gICAgICAgICAgICAgICAgW1wiY2VudGVyXCJdOiBcInRleHQtY2VudGVyXCIsXHJcbiAgICAgICAgICAgICAgICBbXCJyaWdodFwiXTogXCJ0ZXh0LWVuZFwiXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBpZighc2ltcGxlVGV4dFRhZy5kYXRhLnZhbGlkYXRpb25SZXN1bHQuaXNTdWNjZWVkZWQpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGA8c3Bhbj7QntGI0LjQsdC60LAg0LIg0YLQtdC60YHRgtC1ICR7c2ltcGxlVGV4dFRhZy5kYXRhLnZhbGlkYXRpb25SZXN1bHQubWVzc2FnZX08L3NwYW4+YDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiJHttYXBbc2ltcGxlVGV4dFRhZy5kYXRhLmhvcml6b250YWxBbGlnbm1lbnRdfVwiPjxzcGFuPiR7c2ltcGxlVGV4dFRhZy5kYXRhLmh0bWx9PC9zcGFuPjwvZGl2PmA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gYDxwPtCi0LXQsyAke2RhdGEudHlwZX0g0L3QtSDQv9C+0LTQtNC10YDQttC40LLQsNC10YLRgdGPPC9wPmA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|