croco-html 2.30.0 → 2.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/esm2022/lib/components/editor/custom-widget-editor/custom-widget-editor.component.mjs +41 -0
- package/esm2022/lib/components/editor/index.mjs +2 -1
- package/esm2022/lib/components/editor/main-editor-block/main-editor-block.component.mjs +6 -4
- package/esm2022/lib/components/editor/visual-editor/DefaultTags.mjs +3 -1
- package/esm2022/lib/components/editor/visual-editor/visual-editor.component.mjs +7 -1
- package/esm2022/lib/components/xml-tags/index.mjs +2 -1
- package/esm2022/lib/components/xml-tags/xml-tag-custom-widget/xml-tag-custom-widget.component.mjs +25 -0
- package/esm2022/lib/components/xml-tags/xml-tag-view/xml-tag-view.component.mjs +5 -3
- package/esm2022/lib/croco-html.module.mjs +18 -16
- package/esm2022/lib/extensions/BodyTagsExtensions.mjs +19 -2
- package/esm2022/lib/extensions/CustomWidgetMethods.mjs +33 -0
- package/esm2022/lib/extensions/HtmlExtractionMethods.mjs +3 -1
- package/esm2022/lib/extensions/Tags.mjs +3 -1
- package/esm2022/lib/extensions/index.mjs +2 -1
- package/esm2022/lib/index.mjs +5 -1
- package/fesm2022/croco-html.mjs +127 -11
- package/fesm2022/croco-html.mjs.map +1 -1
- package/lib/components/editor/custom-widget-editor/custom-widget-editor.component.d.ts +13 -0
- package/lib/components/editor/index.d.ts +1 -0
- package/lib/components/xml-tags/index.d.ts +1 -0
- package/lib/components/xml-tags/xml-tag-custom-widget/xml-tag-custom-widget.component.d.ts +10 -0
- package/lib/croco-html.module.d.ts +16 -14
- package/lib/extensions/CustomWidgetMethods.d.ts +20 -0
- package/lib/extensions/HtmlExtractionMethods.d.ts +1 -1
- package/lib/extensions/Tags.d.ts +1 -0
- package/lib/extensions/index.d.ts +1 -0
- package/lib/index.d.ts +6 -5
- package/package.json +1 -1
package/fesm2022/croco-html.mjs
CHANGED
|
@@ -18,6 +18,8 @@ import { BehaviorSubject, Subject, takeUntil } from 'rxjs';
|
|
|
18
18
|
import { NgStyle, CommonModule } from '@angular/common';
|
|
19
19
|
import * as i2$1 from '@angular/material/input';
|
|
20
20
|
import { MatInput, MatInputModule } from '@angular/material/input';
|
|
21
|
+
import * as i12 from '@angular/material/tooltip';
|
|
22
|
+
import { MatTooltip, MatTooltipModule } from '@angular/material/tooltip';
|
|
21
23
|
import { CdkTextareaAutosize } from '@angular/cdk/text-field';
|
|
22
24
|
import * as i2$2 from '@ng-select/ng-select';
|
|
23
25
|
import { NgSelectModule } from '@ng-select/ng-select';
|
|
@@ -38,8 +40,6 @@ import { MatTabsModule } from '@angular/material/tabs';
|
|
|
38
40
|
import * as i1$5 from 'ngx-clipboard';
|
|
39
41
|
import * as i2$3 from '@angular/material/snack-bar';
|
|
40
42
|
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
41
|
-
import * as i12 from '@angular/material/tooltip';
|
|
42
|
-
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
43
43
|
import * as i13 from '@angular/material/checkbox';
|
|
44
44
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
45
45
|
import * as i25 from '@angular/material/autocomplete';
|
|
@@ -595,6 +595,39 @@ class ButtonMethods {
|
|
|
595
595
|
}
|
|
596
596
|
}
|
|
597
597
|
|
|
598
|
+
class CustomWidgetTagDataConsts {
|
|
599
|
+
static { this.TagName = "custom-widget"; }
|
|
600
|
+
static { this.TypeAttrName = "type"; }
|
|
601
|
+
static { this.DataIdAttrName = "data-id"; }
|
|
602
|
+
static { this.WidgetIdAttrName = "widget-id"; }
|
|
603
|
+
}
|
|
604
|
+
class CustomWidgetMethods {
|
|
605
|
+
static ExtractCustomWidgetTagData(attributes) {
|
|
606
|
+
return {
|
|
607
|
+
type: attributes[CustomWidgetTagDataConsts.TypeAttrName],
|
|
608
|
+
dataId: attributes[CustomWidgetTagDataConsts.DataIdAttrName],
|
|
609
|
+
widgetId: attributes[CustomWidgetTagDataConsts.WidgetIdAttrName]
|
|
610
|
+
};
|
|
611
|
+
}
|
|
612
|
+
static ExtractCustomWidgetAttributes(customWidgetTagData) {
|
|
613
|
+
return {
|
|
614
|
+
[CustomWidgetTagDataConsts.TypeAttrName]: customWidgetTagData.type,
|
|
615
|
+
[CustomWidgetTagDataConsts.DataIdAttrName]: customWidgetTagData.dataId,
|
|
616
|
+
[CustomWidgetTagDataConsts.WidgetIdAttrName]: customWidgetTagData.widgetId
|
|
617
|
+
};
|
|
618
|
+
}
|
|
619
|
+
static ExtractCustomWidgetTag(elem) {
|
|
620
|
+
return {
|
|
621
|
+
type: CustomWidgetTagDataConsts.TagName,
|
|
622
|
+
data: {
|
|
623
|
+
type: elem.getAttribute(CustomWidgetTagDataConsts.TypeAttrName),
|
|
624
|
+
dataId: elem.getAttribute(CustomWidgetTagDataConsts.DataIdAttrName),
|
|
625
|
+
widgetId: elem.getAttribute(CustomWidgetTagDataConsts.WidgetIdAttrName)
|
|
626
|
+
}
|
|
627
|
+
};
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
|
|
598
631
|
class HtmlExtractionMethods {
|
|
599
632
|
static ExtractHeaderTag(elem, tagName) {
|
|
600
633
|
var data = TextSimpleMethods.ExtractTextTag(elem);
|
|
@@ -621,6 +654,7 @@ class HtmlExtractionMethods {
|
|
|
621
654
|
[ExternalVideoTagDataConsts.TagName.toUpperCase()]: (elem, options) => VideoMethods.ExtractExternalVideoTag(elem),
|
|
622
655
|
[DownloadButtonTagDataConsts.TagName.toUpperCase()]: (elem, options) => DownloadButtonMethods.ExtractDownloadButtonTag(elem),
|
|
623
656
|
[ButtonTagDataConsts.TagName.toUpperCase()]: (elem, options) => ButtonMethods.ExtractButtonTag(elem),
|
|
657
|
+
[CustomWidgetTagDataConsts.TagName.toUpperCase()]: (elem, options) => CustomWidgetMethods.ExtractCustomWidgetTag(elem),
|
|
624
658
|
}; }
|
|
625
659
|
static transformHtmlElementToBlocks(element, options) {
|
|
626
660
|
var data = [];
|
|
@@ -676,6 +710,7 @@ class Tags {
|
|
|
676
710
|
static { this.RichText = 'rich-text'; }
|
|
677
711
|
static { this.ExternalVideo = ExternalVideoTagDataConsts.TagName; }
|
|
678
712
|
static { this.UnsupportedTag = 'unsupported-tag'; }
|
|
713
|
+
static { this.CustomWidget = CustomWidgetTagDataConsts.TagName; }
|
|
679
714
|
}
|
|
680
715
|
|
|
681
716
|
class BodyTagsExtensions {
|
|
@@ -693,7 +728,8 @@ class BodyTagsExtensions {
|
|
|
693
728
|
[DownloadButtonTagDataConsts.TagName]: "Кнопка",
|
|
694
729
|
[HtmlRawTagDataConsts.TagName]: "Html разметка",
|
|
695
730
|
[DownloadButtonTagDataConsts.TagName]: "Кнопка для скачивания",
|
|
696
|
-
[ButtonTagDataConsts.TagName]: "Кнопка"
|
|
731
|
+
[ButtonTagDataConsts.TagName]: "Кнопка",
|
|
732
|
+
[CustomWidgetTagDataConsts.TagName]: "Кастомный виджет"
|
|
697
733
|
};
|
|
698
734
|
return descriptions[tagName];
|
|
699
735
|
}
|
|
@@ -714,6 +750,9 @@ class BodyTagsExtensions {
|
|
|
714
750
|
if (x.tagDescription.tag === ButtonTagDataConsts.TagName) {
|
|
715
751
|
return `<${x.tagDescription.tag} text="${x.attributes[ButtonTagDataConsts.TextAttrName]}" type="${x.attributes[ButtonTagDataConsts.TypeAttrName]}" click="${x.attributes[ButtonTagDataConsts.ClickAttrName]}"></${x.tagDescription.tag}>`;
|
|
716
752
|
}
|
|
753
|
+
if (x.tagDescription.tag === CustomWidgetTagDataConsts.TagName) {
|
|
754
|
+
return `<${x.tagDescription.tag} type="${x.attributes[CustomWidgetTagDataConsts.TypeAttrName]}" data-id="${x.attributes[CustomWidgetTagDataConsts.DataIdAttrName]}" widget-id="${x.attributes[CustomWidgetTagDataConsts.WidgetIdAttrName]}"></${x.tagDescription.tag}>`;
|
|
755
|
+
}
|
|
717
756
|
return BodyTagsExtensions.imageTagToHtml(x);
|
|
718
757
|
});
|
|
719
758
|
let result = "";
|
|
@@ -809,6 +848,18 @@ class BodyTagsExtensions {
|
|
|
809
848
|
innerHtml: ""
|
|
810
849
|
};
|
|
811
850
|
}
|
|
851
|
+
if (data.type === CustomWidgetTagDataConsts.TagName) {
|
|
852
|
+
let customWidgetTagData = data.data;
|
|
853
|
+
return {
|
|
854
|
+
presentOrEdit: true,
|
|
855
|
+
tagDescription: {
|
|
856
|
+
tag: data.type,
|
|
857
|
+
displayValue: BodyTagsExtensions.getDescription(data.type)
|
|
858
|
+
},
|
|
859
|
+
attributes: customWidgetTagData,
|
|
860
|
+
innerHtml: ""
|
|
861
|
+
};
|
|
862
|
+
}
|
|
812
863
|
if (data.type === HtmlRawTagDataConsts.TagName) {
|
|
813
864
|
return {
|
|
814
865
|
presentOrEdit: true,
|
|
@@ -1468,6 +1519,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
1468
1519
|
type: Output
|
|
1469
1520
|
}] } });
|
|
1470
1521
|
|
|
1522
|
+
class XmlTagCustomWidgetComponent {
|
|
1523
|
+
constructor() {
|
|
1524
|
+
this.tooltipData = "";
|
|
1525
|
+
}
|
|
1526
|
+
set tagData(value) {
|
|
1527
|
+
this._tagData = value;
|
|
1528
|
+
this.tooltipData = `data-id:${value.dataId}; widget-id: ${value.widgetId}`;
|
|
1529
|
+
}
|
|
1530
|
+
;
|
|
1531
|
+
get tagData() {
|
|
1532
|
+
return this._tagData;
|
|
1533
|
+
}
|
|
1534
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: XmlTagCustomWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1535
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: XmlTagCustomWidgetComponent, isStandalone: true, selector: "croco-html-xml-tag-custom-widget", inputs: { tagData: "tagData" }, ngImport: i0, template: "<div [matTooltip]=\"tooltipData\">\n \u0432\u0438\u0434\u0436\u0435\u0442 \u0442\u0438\u043F\u0430 {{ tagData.type }}\n</div>\n\n\n", styles: [":host div{background-color:#a3ded5;padding:5px 10px;display:inline-block;border-radius:10px}\n"], dependencies: [{ kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
1536
|
+
}
|
|
1537
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: XmlTagCustomWidgetComponent, decorators: [{
|
|
1538
|
+
type: Component,
|
|
1539
|
+
args: [{ selector: 'croco-html-xml-tag-custom-widget', imports: [MatTooltip], standalone: true, template: "<div [matTooltip]=\"tooltipData\">\n \u0432\u0438\u0434\u0436\u0435\u0442 \u0442\u0438\u043F\u0430 {{ tagData.type }}\n</div>\n\n\n", styles: [":host div{background-color:#a3ded5;padding:5px 10px;display:inline-block;border-radius:10px}\n"] }]
|
|
1540
|
+
}], propDecorators: { tagData: [{
|
|
1541
|
+
type: Input
|
|
1542
|
+
}] } });
|
|
1543
|
+
|
|
1471
1544
|
class XmlTagViewComponent {
|
|
1472
1545
|
constructor() {
|
|
1473
1546
|
this.data = [];
|
|
@@ -1476,7 +1549,7 @@ class XmlTagViewComponent {
|
|
|
1476
1549
|
return TextTags.headerTextTags.includes(item.type);
|
|
1477
1550
|
}
|
|
1478
1551
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: XmlTagViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1479
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: XmlTagViewComponent, isStandalone: true, selector: "croco-html-xml-tag-view", inputs: { data: "data" }, ngImport: i0, template: "<div>\n @for (item of data; track $index) {\n <div class=\"row\">\n\n @if (item.type === 'text') {\n <div>\n <croco-html-xml-tag-text-view [item]=\"item\"></croco-html-xml-tag-text-view>\n </div>\n }\n\n @if (item.type === 'html-raw') {\n <div>\n <croco-html-raw-view [rawHtml]=\"item.data.innerHTML\">\n </croco-html-raw-view>\n </div>\n }\n\n @if (isHeaderTextTag(item)) {\n <div>\n <croco-html-xml-tag-header-text-view [item]=\"item\"></croco-html-xml-tag-header-text-view>\n </div>\n }\n\n @if (item.type === 'file-image') {\n <div>\n <croco-html-file-image-tag-view [item]=\"item\"></croco-html-file-image-tag-view>\n </div>\n }\n\n @if (item.type === 'table' && item.validationResult) {\n\n @if (item.validationResult.isSucceeded){\n <croco-html-xml-tag-html-view [html]=\"item.bootstrapHtml\">\n </croco-html-xml-tag-html-view>\n }\n @else {\n <croco-html-error-banner [message]=\"item.validationResult.message\">\n </croco-html-error-banner>\n }\n }\n\n @if (item.type === 'rich-text') {\n <div>\n <croco-html-xml-tag-text-view></croco-html-xml-tag-text-view>\n </div>\n }\n\n @if (item.type === 'external-video') {\n <div>\n <croco-html-xml-tag-external-video [data]=\"item\"></croco-html-xml-tag-external-video>\n </div>\n }\n\n @if (item.type === 'download-file-button') {\n <div>\n <croco-html-xml-tag-download-file-button [data]=\"item\"></croco-html-xml-tag-download-file-button>\n </div>\n }\n\n @if (item.type === 'button') {\n <div>\n <croco-html-xml-tag-button [data]=\"item\"></croco-html-xml-tag-button>\n </div>\n }\n @if (item.type === 'unsupported-tag') {\n <div class=\"red\" style=\"margin-top: 10px;\">\n <h4>\u0414\u0430\u043D\u043D\u044B\u0439 \u0442\u0435\u0433 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F</h4>\n <span>\n {{item.data.tagString}}\n </span>\n </div>\n }\n </div>\n }\n</div
|
|
1552
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: XmlTagViewComponent, isStandalone: true, selector: "croco-html-xml-tag-view", inputs: { data: "data" }, ngImport: i0, template: "<div>\n @for (item of data; track $index) {\n <div class=\"row\">\n\n @if (item.type === 'text') {\n <div>\n <croco-html-xml-tag-text-view [item]=\"item\"></croco-html-xml-tag-text-view>\n </div>\n }\n\n @if (item.type === 'html-raw') {\n <div>\n <croco-html-raw-view [rawHtml]=\"item.data.innerHTML\">\n </croco-html-raw-view>\n </div>\n }\n\n @if (isHeaderTextTag(item)) {\n <div>\n <croco-html-xml-tag-header-text-view [item]=\"item\"></croco-html-xml-tag-header-text-view>\n </div>\n }\n\n @if (item.type === 'file-image') {\n <div>\n <croco-html-file-image-tag-view [item]=\"item\"></croco-html-file-image-tag-view>\n </div>\n }\n\n @if (item.type === 'custom-widget') {\n <div>\n <croco-html-xml-tag-custom-widget [tagData]=\"item.data\"></croco-html-xml-tag-custom-widget>\n </div>\n }\n\n @if (item.type === 'table' && item.validationResult) {\n\n @if (item.validationResult.isSucceeded){\n <croco-html-xml-tag-html-view [html]=\"item.bootstrapHtml\">\n </croco-html-xml-tag-html-view>\n }\n @else {\n <croco-html-error-banner [message]=\"item.validationResult.message\">\n </croco-html-error-banner>\n }\n }\n\n @if (item.type === 'rich-text') {\n <div>\n <croco-html-xml-tag-text-view></croco-html-xml-tag-text-view>\n </div>\n }\n\n @if (item.type === 'external-video') {\n <div>\n <croco-html-xml-tag-external-video [data]=\"item\"></croco-html-xml-tag-external-video>\n </div>\n }\n\n @if (item.type === 'download-file-button') {\n <div>\n <croco-html-xml-tag-download-file-button [data]=\"item\"></croco-html-xml-tag-download-file-button>\n </div>\n }\n\n @if (item.type === 'button') {\n <div>\n <croco-html-xml-tag-button [data]=\"item\"></croco-html-xml-tag-button>\n </div>\n }\n @if (item.type === 'unsupported-tag') {\n <div class=\"red\" style=\"margin-top: 10px;\">\n <h4>\u0414\u0430\u043D\u043D\u044B\u0439 \u0442\u0435\u0433 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F</h4>\n <span>\n {{item.data.tagString}}\n </span>\n </div>\n }\n </div>\n }\n</div>\n", styles: [".red{background-color:#c94444;color:#fff}\n"], dependencies: [{ kind: "component", type: XmlTagTextViewComponent, selector: "croco-html-xml-tag-text-view", inputs: ["item"] }, { kind: "component", type: HtmlRawViewComponent, selector: "croco-html-raw-view", inputs: ["rawHtml"] }, { kind: "component", type: XmlTagHeaderTextViewComponent, selector: "croco-html-xml-tag-header-text-view", inputs: ["item"] }, { kind: "component", type: FileImageTagViewComponent, selector: "croco-html-file-image-tag-view", inputs: ["item"] }, { kind: "component", type: XmlTagHtmlViewComponent, selector: "croco-html-xml-tag-html-view", inputs: ["html"] }, { kind: "component", type: ErrorBannerComponent, selector: "croco-html-error-banner", inputs: ["message"] }, { kind: "component", type: XmlTagExternalVideoComponent, selector: "croco-html-xml-tag-external-video", inputs: ["data", "tagData"] }, { kind: "component", type: XmlTagDownloadFileButtonComponent, selector: "croco-html-xml-tag-download-file-button", inputs: ["data", "tagData"] }, { kind: "component", type: XmlTagButtonComponent, selector: "croco-html-xml-tag-button", inputs: ["data", "tagData"] }, { kind: "component", type: XmlTagCustomWidgetComponent, selector: "croco-html-xml-tag-custom-widget", inputs: ["tagData"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1480
1553
|
}
|
|
1481
1554
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: XmlTagViewComponent, decorators: [{
|
|
1482
1555
|
type: Component,
|
|
@@ -1491,7 +1564,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
1491
1564
|
XmlTagDownloadFileButtonComponent,
|
|
1492
1565
|
ButtonEditorComponent,
|
|
1493
1566
|
XmlTagButtonComponent,
|
|
1494
|
-
|
|
1567
|
+
XmlTagCustomWidgetComponent,
|
|
1568
|
+
], template: "<div>\n @for (item of data; track $index) {\n <div class=\"row\">\n\n @if (item.type === 'text') {\n <div>\n <croco-html-xml-tag-text-view [item]=\"item\"></croco-html-xml-tag-text-view>\n </div>\n }\n\n @if (item.type === 'html-raw') {\n <div>\n <croco-html-raw-view [rawHtml]=\"item.data.innerHTML\">\n </croco-html-raw-view>\n </div>\n }\n\n @if (isHeaderTextTag(item)) {\n <div>\n <croco-html-xml-tag-header-text-view [item]=\"item\"></croco-html-xml-tag-header-text-view>\n </div>\n }\n\n @if (item.type === 'file-image') {\n <div>\n <croco-html-file-image-tag-view [item]=\"item\"></croco-html-file-image-tag-view>\n </div>\n }\n\n @if (item.type === 'custom-widget') {\n <div>\n <croco-html-xml-tag-custom-widget [tagData]=\"item.data\"></croco-html-xml-tag-custom-widget>\n </div>\n }\n\n @if (item.type === 'table' && item.validationResult) {\n\n @if (item.validationResult.isSucceeded){\n <croco-html-xml-tag-html-view [html]=\"item.bootstrapHtml\">\n </croco-html-xml-tag-html-view>\n }\n @else {\n <croco-html-error-banner [message]=\"item.validationResult.message\">\n </croco-html-error-banner>\n }\n }\n\n @if (item.type === 'rich-text') {\n <div>\n <croco-html-xml-tag-text-view></croco-html-xml-tag-text-view>\n </div>\n }\n\n @if (item.type === 'external-video') {\n <div>\n <croco-html-xml-tag-external-video [data]=\"item\"></croco-html-xml-tag-external-video>\n </div>\n }\n\n @if (item.type === 'download-file-button') {\n <div>\n <croco-html-xml-tag-download-file-button [data]=\"item\"></croco-html-xml-tag-download-file-button>\n </div>\n }\n\n @if (item.type === 'button') {\n <div>\n <croco-html-xml-tag-button [data]=\"item\"></croco-html-xml-tag-button>\n </div>\n }\n @if (item.type === 'unsupported-tag') {\n <div class=\"red\" style=\"margin-top: 10px;\">\n <h4>\u0414\u0430\u043D\u043D\u044B\u0439 \u0442\u0435\u0433 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F</h4>\n <span>\n {{item.data.tagString}}\n </span>\n </div>\n }\n </div>\n }\n</div>\n", styles: [".red{background-color:#c94444;color:#fff}\n"] }]
|
|
1495
1569
|
}], propDecorators: { data: [{
|
|
1496
1570
|
type: Input
|
|
1497
1571
|
}] } });
|
|
@@ -1757,6 +1831,7 @@ class DefaultTags {
|
|
|
1757
1831
|
{ tag: ExternalVideoTagDataConsts.TagName, displayValue: 'Внешнее видео' },
|
|
1758
1832
|
{ tag: DownloadButtonTagDataConsts.TagName, displayValue: 'Кнопка для скачивания' },
|
|
1759
1833
|
{ tag: ButtonTagDataConsts.TagName, displayValue: 'Кнопка' },
|
|
1834
|
+
{ tag: CustomWidgetTagDataConsts.TagName, displayValue: 'Кастомный виджет' },
|
|
1760
1835
|
...DefaultTags.textTags
|
|
1761
1836
|
]; }
|
|
1762
1837
|
static { this.htmlRawTag = {
|
|
@@ -1826,6 +1901,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
1826
1901
|
type: Output
|
|
1827
1902
|
}] } });
|
|
1828
1903
|
|
|
1904
|
+
class CustomWidgetEditorComponent {
|
|
1905
|
+
constructor() {
|
|
1906
|
+
this.onTagUpdated = new EventEmitter();
|
|
1907
|
+
this.tagData = {
|
|
1908
|
+
type: '',
|
|
1909
|
+
dataId: '',
|
|
1910
|
+
widgetId: ''
|
|
1911
|
+
};
|
|
1912
|
+
}
|
|
1913
|
+
ngOnInit() {
|
|
1914
|
+
this.tagData = CustomWidgetMethods.ExtractCustomWidgetTagData(this.tag.attributes);
|
|
1915
|
+
}
|
|
1916
|
+
dataChanged() {
|
|
1917
|
+
this.tag.attributes = CustomWidgetMethods.ExtractCustomWidgetAttributes(this.tagData);
|
|
1918
|
+
}
|
|
1919
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CustomWidgetEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1920
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: CustomWidgetEditorComponent, isStandalone: true, selector: "croco-html-custom-widget-editor", inputs: { tag: "tag" }, outputs: { onTagUpdated: "onTagUpdated" }, ngImport: i0, template: "@if (tag.presentOrEdit) {\n <div>\n <div>\n <b>type:</b> {{tagData.type}}\n </div>\n <div style=\"height: 10px;\"></div>\n <div>\n <b>data-id:</b> {{tagData.dataId}}\n </div>\n <div style=\"height: 10px;\"></div>\n <div>\n <b>widget-id:</b> {{tagData.widgetId}}\n </div>\n <div style=\"height: 10px;\"></div>\n <croco-html-xml-tag-custom-widget [tagData]=\"tagData\"></croco-html-xml-tag-custom-widget>\n </div>\n} @else {\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\n type\n </mat-label>\n <input matInput\n placeholder=\"type\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.type\"\n (ngModelChange)=\"dataChanged()\">\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>\n data-id\n </mat-label>\n <input matInput\n placeholder=\"data-id\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.dataId\"\n (ngModelChange)=\"dataChanged()\">\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>\n widget-id\n </mat-label>\n <input matInput\n placeholder=\"widget-id\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.widgetId\"\n (ngModelChange)=\"dataChanged()\">\n </mat-form-field>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: XmlTagCustomWidgetComponent, selector: "croco-html-xml-tag-custom-widget", inputs: ["tagData"] }] }); }
|
|
1921
|
+
}
|
|
1922
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CustomWidgetEditorComponent, decorators: [{
|
|
1923
|
+
type: Component,
|
|
1924
|
+
args: [{ selector: 'croco-html-custom-widget-editor', standalone: true, imports: [
|
|
1925
|
+
FormsModule,
|
|
1926
|
+
MatFormField,
|
|
1927
|
+
MatInput,
|
|
1928
|
+
MatLabel,
|
|
1929
|
+
XmlTagCustomWidgetComponent,
|
|
1930
|
+
], template: "@if (tag.presentOrEdit) {\n <div>\n <div>\n <b>type:</b> {{tagData.type}}\n </div>\n <div style=\"height: 10px;\"></div>\n <div>\n <b>data-id:</b> {{tagData.dataId}}\n </div>\n <div style=\"height: 10px;\"></div>\n <div>\n <b>widget-id:</b> {{tagData.widgetId}}\n </div>\n <div style=\"height: 10px;\"></div>\n <croco-html-xml-tag-custom-widget [tagData]=\"tagData\"></croco-html-xml-tag-custom-widget>\n </div>\n} @else {\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\n type\n </mat-label>\n <input matInput\n placeholder=\"type\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.type\"\n (ngModelChange)=\"dataChanged()\">\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>\n data-id\n </mat-label>\n <input matInput\n placeholder=\"data-id\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.dataId\"\n (ngModelChange)=\"dataChanged()\">\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>\n widget-id\n </mat-label>\n <input matInput\n placeholder=\"widget-id\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.widgetId\"\n (ngModelChange)=\"dataChanged()\">\n </mat-form-field>\n </div>\n}\n" }]
|
|
1931
|
+
}], propDecorators: { tag: [{
|
|
1932
|
+
type: Input
|
|
1933
|
+
}], onTagUpdated: [{
|
|
1934
|
+
type: Output
|
|
1935
|
+
}] } });
|
|
1936
|
+
|
|
1829
1937
|
class MainEditorBlockComponent {
|
|
1830
1938
|
constructor() {
|
|
1831
1939
|
this.textTags = TextTags.allTextTags;
|
|
@@ -1844,7 +1952,7 @@ class MainEditorBlockComponent {
|
|
|
1844
1952
|
ngOnInit() {
|
|
1845
1953
|
}
|
|
1846
1954
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: MainEditorBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1847
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: MainEditorBlockComponent, isStandalone: true, selector: "croco-html-main-editor-block", inputs: { tag: "tag" }, outputs: { onTagSaved: "onTagSaved", onTagRemoved: "onTagRemoved" }, ngImport: i0, template: "<div>\n <div>\n @if (textTags.includes(tag.tagDescription.tag)) {\n <div>\n <croco-html-text-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\n </croco-html-text-editor>\n </div>\n }\n\n @if (tag.tagDescription.tag === 'file-image') {\n <div>\n <croco-html-image-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\n </croco-html-image-editor>\n </div>\n }\n\n @if (tag.tagDescription.tag === 'external-video') {\n <div>\n <croco-html-external-video-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\n </croco-html-external-video-editor>\n </div>\n }\n\n @if (tag.tagDescription.tag === 'download-file-button') {\n <div>\n <croco-html-download-file-button-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\n </croco-html-download-file-button-editor>\n </div>\n }\n\n @if (tag.tagDescription.tag === 'button') {\n <div>\n <croco-html-button-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\n </croco-html-button-editor>\n </div>\n }\n\n @if (tag.tagDescription.tag === 'html-raw') {\n <div>\n <croco-html-html-raw-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\n </croco-html-html-raw-editor>\n </div>\n }\n\n </div>\n\n <div class=\"d-flex justify-content-between\">\n <div class=\"d-flex justify-content-end align-self-center\">\n <div>\n @if (tag.presentOrEdit) {\n <button (click)=\"tag.presentOrEdit = false\" mat-icon-button>\n <mat-icon>edit</mat-icon>\n </button>\n }\n @if (!tag.presentOrEdit) {\n <button (click)=\"save()\" mat-icon-button>\n <mat-icon>save</mat-icon>\n </button>\n }\n <button (click)=\"deleteItem()\" mat-icon-button color=\"warn\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: TextEditorComponent, selector: "croco-html-text-editor", inputs: ["tag"], outputs: ["onTagUpdated"] }, { kind: "component", type: ImageEditorComponent, selector: "croco-html-image-editor", inputs: ["tag"], outputs: ["onTagUpdated"] }, { kind: "component", type: DownloadFileButtonEditorComponent, selector: "croco-html-download-file-button-editor", inputs: ["tag"], outputs: ["onTagUpdated"] }, { kind: "component", type: HtmlRawEditorComponent, selector: "croco-html-html-raw-editor", inputs: ["tag"], outputs: ["onTagUpdated"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ExternalVideoEditorComponent, selector: "croco-html-external-video-editor", inputs: ["tag"], outputs: ["onTagUpdated"] }, { kind: "component", type: ButtonEditorComponent, selector: "croco-html-button-editor", inputs: ["tag"], outputs: ["onTagUpdated"] }] }); }
|
|
1955
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: MainEditorBlockComponent, isStandalone: true, selector: "croco-html-main-editor-block", inputs: { tag: "tag" }, outputs: { onTagSaved: "onTagSaved", onTagRemoved: "onTagRemoved" }, ngImport: i0, template: "<div>\n <div>\n @if (textTags.includes(tag.tagDescription.tag)) {\n <div>\n <croco-html-text-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\n </croco-html-text-editor>\n </div>\n }\n\n @if (tag.tagDescription.tag === 'file-image') {\n <div>\n <croco-html-image-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\n </croco-html-image-editor>\n </div>\n }\n\n @if (tag.tagDescription.tag === 'custom-widget') {\n <div>\n <croco-html-custom-widget-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\n </croco-html-custom-widget-editor>\n </div>\n }\n\n @if (tag.tagDescription.tag === 'external-video') {\n <div>\n <croco-html-external-video-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\n </croco-html-external-video-editor>\n </div>\n }\n\n @if (tag.tagDescription.tag === 'download-file-button') {\n <div>\n <croco-html-download-file-button-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\n </croco-html-download-file-button-editor>\n </div>\n }\n\n @if (tag.tagDescription.tag === 'button') {\n <div>\n <croco-html-button-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\n </croco-html-button-editor>\n </div>\n }\n\n @if (tag.tagDescription.tag === 'html-raw') {\n <div>\n <croco-html-html-raw-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\n </croco-html-html-raw-editor>\n </div>\n }\n\n </div>\n\n <div class=\"d-flex justify-content-between\">\n <div class=\"d-flex justify-content-end align-self-center\">\n <div>\n @if (tag.presentOrEdit) {\n <button (click)=\"tag.presentOrEdit = false\" mat-icon-button>\n <mat-icon>edit</mat-icon>\n </button>\n }\n @if (!tag.presentOrEdit) {\n <button (click)=\"save()\" mat-icon-button>\n <mat-icon>save</mat-icon>\n </button>\n }\n <button (click)=\"deleteItem()\" mat-icon-button color=\"warn\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: TextEditorComponent, selector: "croco-html-text-editor", inputs: ["tag"], outputs: ["onTagUpdated"] }, { kind: "component", type: ImageEditorComponent, selector: "croco-html-image-editor", inputs: ["tag"], outputs: ["onTagUpdated"] }, { kind: "component", type: DownloadFileButtonEditorComponent, selector: "croco-html-download-file-button-editor", inputs: ["tag"], outputs: ["onTagUpdated"] }, { kind: "component", type: HtmlRawEditorComponent, selector: "croco-html-html-raw-editor", inputs: ["tag"], outputs: ["onTagUpdated"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ExternalVideoEditorComponent, selector: "croco-html-external-video-editor", inputs: ["tag"], outputs: ["onTagUpdated"] }, { kind: "component", type: ButtonEditorComponent, selector: "croco-html-button-editor", inputs: ["tag"], outputs: ["onTagUpdated"] }, { kind: "component", type: CustomWidgetEditorComponent, selector: "croco-html-custom-widget-editor", inputs: ["tag"], outputs: ["onTagUpdated"] }] }); }
|
|
1848
1956
|
}
|
|
1849
1957
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: MainEditorBlockComponent, decorators: [{
|
|
1850
1958
|
type: Component,
|
|
@@ -1856,8 +1964,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
1856
1964
|
MatIconButton,
|
|
1857
1965
|
MatIcon,
|
|
1858
1966
|
ExternalVideoEditorComponent,
|
|
1859
|
-
ButtonEditorComponent
|
|
1860
|
-
|
|
1967
|
+
ButtonEditorComponent,
|
|
1968
|
+
CustomWidgetEditorComponent
|
|
1969
|
+
], template: "<div>\n <div>\n @if (textTags.includes(tag.tagDescription.tag)) {\n <div>\n <croco-html-text-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\n </croco-html-text-editor>\n </div>\n }\n\n @if (tag.tagDescription.tag === 'file-image') {\n <div>\n <croco-html-image-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\n </croco-html-image-editor>\n </div>\n }\n\n @if (tag.tagDescription.tag === 'custom-widget') {\n <div>\n <croco-html-custom-widget-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\n </croco-html-custom-widget-editor>\n </div>\n }\n\n @if (tag.tagDescription.tag === 'external-video') {\n <div>\n <croco-html-external-video-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\n </croco-html-external-video-editor>\n </div>\n }\n\n @if (tag.tagDescription.tag === 'download-file-button') {\n <div>\n <croco-html-download-file-button-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\n </croco-html-download-file-button-editor>\n </div>\n }\n\n @if (tag.tagDescription.tag === 'button') {\n <div>\n <croco-html-button-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\n </croco-html-button-editor>\n </div>\n }\n\n @if (tag.tagDescription.tag === 'html-raw') {\n <div>\n <croco-html-html-raw-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\n </croco-html-html-raw-editor>\n </div>\n }\n\n </div>\n\n <div class=\"d-flex justify-content-between\">\n <div class=\"d-flex justify-content-end align-self-center\">\n <div>\n @if (tag.presentOrEdit) {\n <button (click)=\"tag.presentOrEdit = false\" mat-icon-button>\n <mat-icon>edit</mat-icon>\n </button>\n }\n @if (!tag.presentOrEdit) {\n <button (click)=\"save()\" mat-icon-button>\n <mat-icon>save</mat-icon>\n </button>\n }\n <button (click)=\"deleteItem()\" mat-icon-button color=\"warn\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n </div>\n\n </div>\n</div>\n" }]
|
|
1861
1970
|
}], propDecorators: { tag: [{
|
|
1862
1971
|
type: Input
|
|
1863
1972
|
}], onTagSaved: [{
|
|
@@ -1934,6 +2043,11 @@ class VisualEditorComponent {
|
|
|
1934
2043
|
attrs[ButtonTagDataConsts.TypeAttrName] = 'button';
|
|
1935
2044
|
attrs[ButtonTagDataConsts.TextAttrName] = 'Кнопка';
|
|
1936
2045
|
}
|
|
2046
|
+
else if (tagDescription.tag == CustomWidgetTagDataConsts.TagName) {
|
|
2047
|
+
attrs[CustomWidgetTagDataConsts.TypeAttrName] = 'example-type';
|
|
2048
|
+
attrs[CustomWidgetTagDataConsts.DataIdAttrName] = 'example-data-id';
|
|
2049
|
+
attrs[CustomWidgetTagDataConsts.WidgetIdAttrName] = 'example-widget-id';
|
|
2050
|
+
}
|
|
1937
2051
|
else {
|
|
1938
2052
|
attrs[FileImageTagDataConsts.FileIdAttrName] = null;
|
|
1939
2053
|
}
|
|
@@ -2225,6 +2339,7 @@ const EditorComponents = [
|
|
|
2225
2339
|
VisualEditorComponent,
|
|
2226
2340
|
AddFilesBtnComponent,
|
|
2227
2341
|
HtmlRawEditorComponent,
|
|
2342
|
+
CustomWidgetEditorComponent,
|
|
2228
2343
|
];
|
|
2229
2344
|
const XmlComponents = [
|
|
2230
2345
|
XmlTagTableViewComponent,
|
|
@@ -2237,6 +2352,7 @@ const XmlComponents = [
|
|
|
2237
2352
|
XmlTagExternalVideoComponent,
|
|
2238
2353
|
HtmlRawViewComponent,
|
|
2239
2354
|
FileImageTagViewComponent,
|
|
2355
|
+
XmlTagCustomWidgetComponent,
|
|
2240
2356
|
HtmlViewComponent
|
|
2241
2357
|
];
|
|
2242
2358
|
const CrocoPipes = [
|
|
@@ -2294,13 +2410,13 @@ class CrocoHtmlModule {
|
|
|
2294
2410
|
VkVideoPlayerComponent,
|
|
2295
2411
|
YoutubeVideoPlayerComponent,
|
|
2296
2412
|
DownloadFileButtonEditorComponent,
|
|
2297
|
-
XmlTagDownloadFileButtonComponent, UploadFilesBtnComponent, HtmlViewComponent, XmlTagTableViewComponent, XmlTagViewComponent, XmlTagRichTextViewComponent, XmlTagHtmlViewComponent, XmlTagTextViewComponent, XmlTagHeaderTextViewComponent, XmlTagHeaderInnerTextViewComponent, XmlTagExternalVideoComponent, HtmlRawViewComponent, FileImageTagViewComponent, HtmlViewComponent, MainEditorComponent, FileIdSelectComponent, TextEditorComponent, ImageEditorComponent, MainEditorBlockComponent, VisualEditorComponent, AddFilesBtnComponent, HtmlRawEditorComponent, RichTextToHtmlPipe, TagToSpanPipe, ToPreviewPipe, ToHtmlBodyTagsPipe, ToPreviewHtmlPipe], exports: [UploadFilesBtnComponent, HtmlViewComponent, XmlTagTableViewComponent, XmlTagViewComponent, XmlTagRichTextViewComponent, XmlTagHtmlViewComponent, XmlTagTextViewComponent, XmlTagHeaderTextViewComponent, XmlTagHeaderInnerTextViewComponent, XmlTagExternalVideoComponent, HtmlRawViewComponent, FileImageTagViewComponent, HtmlViewComponent, MainEditorComponent, FileIdSelectComponent, TextEditorComponent, ImageEditorComponent, MainEditorBlockComponent, VisualEditorComponent, AddFilesBtnComponent, HtmlRawEditorComponent, RichTextToHtmlPipe, TagToSpanPipe, ToPreviewPipe, ToHtmlBodyTagsPipe, ToPreviewHtmlPipe] }); }
|
|
2413
|
+
XmlTagDownloadFileButtonComponent, UploadFilesBtnComponent, HtmlViewComponent, XmlTagTableViewComponent, XmlTagViewComponent, XmlTagRichTextViewComponent, XmlTagHtmlViewComponent, XmlTagTextViewComponent, XmlTagHeaderTextViewComponent, XmlTagHeaderInnerTextViewComponent, XmlTagExternalVideoComponent, HtmlRawViewComponent, FileImageTagViewComponent, XmlTagCustomWidgetComponent, HtmlViewComponent, MainEditorComponent, FileIdSelectComponent, TextEditorComponent, ImageEditorComponent, MainEditorBlockComponent, VisualEditorComponent, AddFilesBtnComponent, HtmlRawEditorComponent, CustomWidgetEditorComponent, RichTextToHtmlPipe, TagToSpanPipe, ToPreviewPipe, ToHtmlBodyTagsPipe, ToPreviewHtmlPipe], exports: [UploadFilesBtnComponent, HtmlViewComponent, XmlTagTableViewComponent, XmlTagViewComponent, XmlTagRichTextViewComponent, XmlTagHtmlViewComponent, XmlTagTextViewComponent, XmlTagHeaderTextViewComponent, XmlTagHeaderInnerTextViewComponent, XmlTagExternalVideoComponent, HtmlRawViewComponent, FileImageTagViewComponent, XmlTagCustomWidgetComponent, HtmlViewComponent, MainEditorComponent, FileIdSelectComponent, TextEditorComponent, ImageEditorComponent, MainEditorBlockComponent, VisualEditorComponent, AddFilesBtnComponent, HtmlRawEditorComponent, CustomWidgetEditorComponent, RichTextToHtmlPipe, TagToSpanPipe, ToPreviewPipe, ToHtmlBodyTagsPipe, ToPreviewHtmlPipe] }); }
|
|
2298
2414
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CrocoHtmlModule, imports: [CommonModule,
|
|
2299
2415
|
FormsModule,
|
|
2300
2416
|
ReactiveFormsModule,
|
|
2301
2417
|
NgSelectModule, MaterialModules, ErrorBannerComponent,
|
|
2302
2418
|
DownloadFileButtonEditorComponent,
|
|
2303
|
-
XmlTagDownloadFileButtonComponent, UploadFilesBtnComponent, HtmlViewComponent, XmlTagTableViewComponent, XmlTagViewComponent, HtmlViewComponent, MainEditorComponent, FileIdSelectComponent, TextEditorComponent, ImageEditorComponent, MainEditorBlockComponent, VisualEditorComponent, AddFilesBtnComponent, HtmlRawEditorComponent] }); }
|
|
2419
|
+
XmlTagDownloadFileButtonComponent, UploadFilesBtnComponent, HtmlViewComponent, XmlTagTableViewComponent, XmlTagViewComponent, HtmlViewComponent, MainEditorComponent, FileIdSelectComponent, TextEditorComponent, ImageEditorComponent, MainEditorBlockComponent, VisualEditorComponent, AddFilesBtnComponent, HtmlRawEditorComponent, CustomWidgetEditorComponent] }); }
|
|
2304
2420
|
}
|
|
2305
2421
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CrocoHtmlModule, decorators: [{
|
|
2306
2422
|
type: NgModule,
|
|
@@ -2332,5 +2448,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
2332
2448
|
* Generated bundle index. Do not edit.
|
|
2333
2449
|
*/
|
|
2334
2450
|
|
|
2335
|
-
export { AddFilesBtnComponent, AngularMaterialTableMethods, BodyTagsExtensions, BootstrapTableMethods, CrocoHtmlModule, CrocoHtmlOptionsToken, ExternalVideoEditorComponent, ExternalVideoPlayers, ExternalVideoSupportedTypes, ExternalVideoTagDataConsts, FileIdSelectComponent, FileImageTagDataConsts, FileImageTagViewComponent, HtmlRawEditorComponent, HtmlRawViewComponent, HtmlViewComponent, HtmlViewController, ImageEditorComponent, ImageMethods, MainEditorBlockComponent, MainEditorComponent, RichTextToHtmlPipe, TableBuilder, TableMethods, TableTypes, TagToSpanPipe, TextEditorComponent, TextMethods, TextSimpleMethods, TextTag, TextTagDataConsts, TextTags, ToHtmlBodyTagsPipe, ToPreviewHtmlPipe, ToPreviewPipe, UploadFilesBtnComponent, VideoMethods, VisualEditorComponent, XmlExtensions, XmlTagExternalVideoComponent, XmlTagHeaderInnerTextViewComponent, XmlTagHeaderTextViewComponent, XmlTagHtmlViewComponent, XmlTagRichTextViewComponent, XmlTagTableViewComponent, XmlTagTextViewComponent, XmlTagViewComponent, defaultLinkForDownload, defaultLinkVk, defaultLinkYouTube };
|
|
2451
|
+
export { AddFilesBtnComponent, AngularMaterialTableMethods, BodyTagsExtensions, BootstrapTableMethods, CrocoHtmlModule, CrocoHtmlOptionsToken, CustomWidgetEditorComponent, CustomWidgetMethods, CustomWidgetTagDataConsts, ExternalVideoEditorComponent, ExternalVideoPlayers, ExternalVideoSupportedTypes, ExternalVideoTagDataConsts, FileIdSelectComponent, FileImageTagDataConsts, FileImageTagViewComponent, HtmlRawEditorComponent, HtmlRawViewComponent, HtmlViewComponent, HtmlViewController, ImageEditorComponent, ImageMethods, MainEditorBlockComponent, MainEditorComponent, RichTextToHtmlPipe, TableBuilder, TableMethods, TableTypes, TagToSpanPipe, TextEditorComponent, TextMethods, TextSimpleMethods, TextTag, TextTagDataConsts, TextTags, ToHtmlBodyTagsPipe, ToPreviewHtmlPipe, ToPreviewPipe, UploadFilesBtnComponent, VideoMethods, VisualEditorComponent, XmlExtensions, XmlTagCustomWidgetComponent, XmlTagExternalVideoComponent, XmlTagHeaderInnerTextViewComponent, XmlTagHeaderTextViewComponent, XmlTagHtmlViewComponent, XmlTagRichTextViewComponent, XmlTagTableViewComponent, XmlTagTextViewComponent, XmlTagViewComponent, defaultLinkForDownload, defaultLinkVk, defaultLinkYouTube };
|
|
2336
2452
|
//# sourceMappingURL=croco-html.mjs.map
|