croco-html 2.30.0 → 2.32.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 +50 -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/esm2022/lib/options/index.mjs +1 -1
- package/fesm2022/croco-html.mjs +152 -12
- 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 +19 -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/lib/options/index.d.ts +5 -0
- package/package.json +1 -1
package/fesm2022/croco-html.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, Inject, EventEmitter, Component, ViewChild, Input, Output, ChangeDetectionStrategy, Pipe, ViewEncapsulation, NgModule } from '@angular/core';
|
|
2
|
+
import { Injectable, Inject, EventEmitter, Component, ViewChild, Input, Output, ChangeDetectionStrategy, Pipe, ViewContainerRef, ViewEncapsulation, NgModule } from '@angular/core';
|
|
3
3
|
import * as i2 from '@angular/material/button';
|
|
4
4
|
import { MatButton, MatButtonModule, MatIconButton } from '@angular/material/button';
|
|
5
5
|
import * as i1 from '@angular/common/http';
|
|
@@ -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,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
1468
1519
|
type: Output
|
|
1469
1520
|
}] } });
|
|
1470
1521
|
|
|
1522
|
+
class XmlTagCustomWidgetComponent {
|
|
1523
|
+
set tagData(value) {
|
|
1524
|
+
if (value) {
|
|
1525
|
+
this._tagData = value;
|
|
1526
|
+
this.tooltipData = `data-id:${value.dataId}; widget-id: ${value.widgetId}`;
|
|
1527
|
+
if (this.dynamicContainerRef?.instance) {
|
|
1528
|
+
this.dynamicContainerRef.instance.tagData = value;
|
|
1529
|
+
}
|
|
1530
|
+
}
|
|
1531
|
+
}
|
|
1532
|
+
;
|
|
1533
|
+
get tagData() {
|
|
1534
|
+
return this._tagData;
|
|
1535
|
+
}
|
|
1536
|
+
constructor(_options) {
|
|
1537
|
+
this._options = _options;
|
|
1538
|
+
this.tooltipData = "";
|
|
1539
|
+
this.useDynamicComponent = false;
|
|
1540
|
+
}
|
|
1541
|
+
ngOnInit() {
|
|
1542
|
+
if (this._options.customWidgetRendererComponent) {
|
|
1543
|
+
this.useDynamicComponent = true;
|
|
1544
|
+
this.viewContainerRef.remove();
|
|
1545
|
+
this.dynamicContainerRef = this.viewContainerRef.createComponent(this._options.customWidgetRendererComponent);
|
|
1546
|
+
this.dynamicContainerRef.instance.tagData = this.tagData;
|
|
1547
|
+
}
|
|
1548
|
+
}
|
|
1549
|
+
ngOnDestroy() {
|
|
1550
|
+
this.dynamicContainerRef.destroy();
|
|
1551
|
+
}
|
|
1552
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: XmlTagCustomWidgetComponent, deps: [{ token: CrocoHtmlOptionsToken }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1553
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: XmlTagCustomWidgetComponent, isStandalone: true, selector: "croco-html-xml-tag-custom-widget", inputs: { tagData: "tagData" }, viewQueries: [{ propertyName: "viewContainerRef", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<ng-container #container>\n @if (!useDynamicComponent) {\n <div [matTooltip]=\"tooltipData\">\n \u041A\u0430\u0441\u0442\u043E\u043C\u043D\u044B\u0439 \u0432\u0438\u0434\u0436\u0435\u0442. \u0442\u0438\u043F \u0432\u0438\u0434\u0436\u0435\u0442\u0430: {{ tagData?.type }}\n </div>\n }\n</ng-container>\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"] }] }); }
|
|
1554
|
+
}
|
|
1555
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: XmlTagCustomWidgetComponent, decorators: [{
|
|
1556
|
+
type: Component,
|
|
1557
|
+
args: [{ selector: 'croco-html-xml-tag-custom-widget', imports: [MatTooltip], standalone: true, template: "<ng-container #container>\n @if (!useDynamicComponent) {\n <div [matTooltip]=\"tooltipData\">\n \u041A\u0430\u0441\u0442\u043E\u043C\u043D\u044B\u0439 \u0432\u0438\u0434\u0436\u0435\u0442. \u0442\u0438\u043F \u0432\u0438\u0434\u0436\u0435\u0442\u0430: {{ tagData?.type }}\n </div>\n }\n</ng-container>\n\n", styles: [":host div{background-color:#a3ded5;padding:5px 10px;display:inline-block;border-radius:10px}\n"] }]
|
|
1558
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
1559
|
+
type: Inject,
|
|
1560
|
+
args: [CrocoHtmlOptionsToken]
|
|
1561
|
+
}] }], propDecorators: { viewContainerRef: [{
|
|
1562
|
+
type: ViewChild,
|
|
1563
|
+
args: ['container', { read: ViewContainerRef, static: true }]
|
|
1564
|
+
}], tagData: [{
|
|
1565
|
+
type: Input
|
|
1566
|
+
}] } });
|
|
1567
|
+
|
|
1471
1568
|
class XmlTagViewComponent {
|
|
1472
1569
|
constructor() {
|
|
1473
1570
|
this.data = [];
|
|
@@ -1476,7 +1573,7 @@ class XmlTagViewComponent {
|
|
|
1476
1573
|
return TextTags.headerTextTags.includes(item.type);
|
|
1477
1574
|
}
|
|
1478
1575
|
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
|
|
1576
|
+
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
1577
|
}
|
|
1481
1578
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: XmlTagViewComponent, decorators: [{
|
|
1482
1579
|
type: Component,
|
|
@@ -1491,7 +1588,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
1491
1588
|
XmlTagDownloadFileButtonComponent,
|
|
1492
1589
|
ButtonEditorComponent,
|
|
1493
1590
|
XmlTagButtonComponent,
|
|
1494
|
-
|
|
1591
|
+
XmlTagCustomWidgetComponent,
|
|
1592
|
+
], 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
1593
|
}], propDecorators: { data: [{
|
|
1496
1594
|
type: Input
|
|
1497
1595
|
}] } });
|
|
@@ -1757,6 +1855,7 @@ class DefaultTags {
|
|
|
1757
1855
|
{ tag: ExternalVideoTagDataConsts.TagName, displayValue: 'Внешнее видео' },
|
|
1758
1856
|
{ tag: DownloadButtonTagDataConsts.TagName, displayValue: 'Кнопка для скачивания' },
|
|
1759
1857
|
{ tag: ButtonTagDataConsts.TagName, displayValue: 'Кнопка' },
|
|
1858
|
+
{ tag: CustomWidgetTagDataConsts.TagName, displayValue: 'Кастомный виджет' },
|
|
1760
1859
|
...DefaultTags.textTags
|
|
1761
1860
|
]; }
|
|
1762
1861
|
static { this.htmlRawTag = {
|
|
@@ -1826,6 +1925,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
1826
1925
|
type: Output
|
|
1827
1926
|
}] } });
|
|
1828
1927
|
|
|
1928
|
+
class CustomWidgetEditorComponent {
|
|
1929
|
+
constructor() {
|
|
1930
|
+
this.onTagUpdated = new EventEmitter();
|
|
1931
|
+
this.tagData = {
|
|
1932
|
+
type: '',
|
|
1933
|
+
dataId: '',
|
|
1934
|
+
widgetId: ''
|
|
1935
|
+
};
|
|
1936
|
+
}
|
|
1937
|
+
ngOnInit() {
|
|
1938
|
+
this.tagData = CustomWidgetMethods.ExtractCustomWidgetTagData(this.tag.attributes);
|
|
1939
|
+
}
|
|
1940
|
+
dataChanged() {
|
|
1941
|
+
this.tag.attributes = CustomWidgetMethods.ExtractCustomWidgetAttributes(this.tagData);
|
|
1942
|
+
}
|
|
1943
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CustomWidgetEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1944
|
+
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"] }] }); }
|
|
1945
|
+
}
|
|
1946
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CustomWidgetEditorComponent, decorators: [{
|
|
1947
|
+
type: Component,
|
|
1948
|
+
args: [{ selector: 'croco-html-custom-widget-editor', standalone: true, imports: [
|
|
1949
|
+
FormsModule,
|
|
1950
|
+
MatFormField,
|
|
1951
|
+
MatInput,
|
|
1952
|
+
MatLabel,
|
|
1953
|
+
XmlTagCustomWidgetComponent,
|
|
1954
|
+
], 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" }]
|
|
1955
|
+
}], propDecorators: { tag: [{
|
|
1956
|
+
type: Input
|
|
1957
|
+
}], onTagUpdated: [{
|
|
1958
|
+
type: Output
|
|
1959
|
+
}] } });
|
|
1960
|
+
|
|
1829
1961
|
class MainEditorBlockComponent {
|
|
1830
1962
|
constructor() {
|
|
1831
1963
|
this.textTags = TextTags.allTextTags;
|
|
@@ -1844,7 +1976,7 @@ class MainEditorBlockComponent {
|
|
|
1844
1976
|
ngOnInit() {
|
|
1845
1977
|
}
|
|
1846
1978
|
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"] }] }); }
|
|
1979
|
+
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
1980
|
}
|
|
1849
1981
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: MainEditorBlockComponent, decorators: [{
|
|
1850
1982
|
type: Component,
|
|
@@ -1856,8 +1988,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
1856
1988
|
MatIconButton,
|
|
1857
1989
|
MatIcon,
|
|
1858
1990
|
ExternalVideoEditorComponent,
|
|
1859
|
-
ButtonEditorComponent
|
|
1860
|
-
|
|
1991
|
+
ButtonEditorComponent,
|
|
1992
|
+
CustomWidgetEditorComponent
|
|
1993
|
+
], 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
1994
|
}], propDecorators: { tag: [{
|
|
1862
1995
|
type: Input
|
|
1863
1996
|
}], onTagSaved: [{
|
|
@@ -1934,6 +2067,11 @@ class VisualEditorComponent {
|
|
|
1934
2067
|
attrs[ButtonTagDataConsts.TypeAttrName] = 'button';
|
|
1935
2068
|
attrs[ButtonTagDataConsts.TextAttrName] = 'Кнопка';
|
|
1936
2069
|
}
|
|
2070
|
+
else if (tagDescription.tag == CustomWidgetTagDataConsts.TagName) {
|
|
2071
|
+
attrs[CustomWidgetTagDataConsts.TypeAttrName] = 'example-type';
|
|
2072
|
+
attrs[CustomWidgetTagDataConsts.DataIdAttrName] = 'example-data-id';
|
|
2073
|
+
attrs[CustomWidgetTagDataConsts.WidgetIdAttrName] = 'example-widget-id';
|
|
2074
|
+
}
|
|
1937
2075
|
else {
|
|
1938
2076
|
attrs[FileImageTagDataConsts.FileIdAttrName] = null;
|
|
1939
2077
|
}
|
|
@@ -2225,6 +2363,7 @@ const EditorComponents = [
|
|
|
2225
2363
|
VisualEditorComponent,
|
|
2226
2364
|
AddFilesBtnComponent,
|
|
2227
2365
|
HtmlRawEditorComponent,
|
|
2366
|
+
CustomWidgetEditorComponent,
|
|
2228
2367
|
];
|
|
2229
2368
|
const XmlComponents = [
|
|
2230
2369
|
XmlTagTableViewComponent,
|
|
@@ -2237,6 +2376,7 @@ const XmlComponents = [
|
|
|
2237
2376
|
XmlTagExternalVideoComponent,
|
|
2238
2377
|
HtmlRawViewComponent,
|
|
2239
2378
|
FileImageTagViewComponent,
|
|
2379
|
+
XmlTagCustomWidgetComponent,
|
|
2240
2380
|
HtmlViewComponent
|
|
2241
2381
|
];
|
|
2242
2382
|
const CrocoPipes = [
|
|
@@ -2294,13 +2434,13 @@ class CrocoHtmlModule {
|
|
|
2294
2434
|
VkVideoPlayerComponent,
|
|
2295
2435
|
YoutubeVideoPlayerComponent,
|
|
2296
2436
|
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] }); }
|
|
2437
|
+
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
2438
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CrocoHtmlModule, imports: [CommonModule,
|
|
2299
2439
|
FormsModule,
|
|
2300
2440
|
ReactiveFormsModule,
|
|
2301
2441
|
NgSelectModule, MaterialModules, ErrorBannerComponent,
|
|
2302
2442
|
DownloadFileButtonEditorComponent,
|
|
2303
|
-
XmlTagDownloadFileButtonComponent, UploadFilesBtnComponent, HtmlViewComponent, XmlTagTableViewComponent, XmlTagViewComponent, HtmlViewComponent, MainEditorComponent, FileIdSelectComponent, TextEditorComponent, ImageEditorComponent, MainEditorBlockComponent, VisualEditorComponent, AddFilesBtnComponent, HtmlRawEditorComponent] }); }
|
|
2443
|
+
XmlTagDownloadFileButtonComponent, UploadFilesBtnComponent, HtmlViewComponent, XmlTagTableViewComponent, XmlTagViewComponent, HtmlViewComponent, MainEditorComponent, FileIdSelectComponent, TextEditorComponent, ImageEditorComponent, MainEditorBlockComponent, VisualEditorComponent, AddFilesBtnComponent, HtmlRawEditorComponent, CustomWidgetEditorComponent] }); }
|
|
2304
2444
|
}
|
|
2305
2445
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CrocoHtmlModule, decorators: [{
|
|
2306
2446
|
type: NgModule,
|
|
@@ -2332,5 +2472,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
2332
2472
|
* Generated bundle index. Do not edit.
|
|
2333
2473
|
*/
|
|
2334
2474
|
|
|
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 };
|
|
2475
|
+
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
2476
|
//# sourceMappingURL=croco-html.mjs.map
|