croco-html 2.0.5 → 2.0.6
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/lib/croco-html.module.mjs +3 -3
- package/esm2022/lib/index.mjs +3 -2
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/croco-html.mjs +4 -3
- package/fesm2022/croco-html.mjs.map +1 -1
- package/lib/croco-html.module.d.ts +1 -1
- package/lib/extensions/HtmlExtractionMethods.d.ts +2 -2
- package/lib/extensions/TableMethods.d.ts +1 -1
- package/lib/index.d.ts +6 -6
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -62,10 +62,10 @@ import * as i54 from "@angular/cdk/drag-drop";
|
|
|
62
62
|
import * as i55 from "@angular/material/button-toggle";
|
|
63
63
|
export class CrocoHtmlModule {
|
|
64
64
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CrocoHtmlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
65
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: CrocoHtmlModule, declarations: [i1.UploadFilesBtnComponent, i2.HtmlViewComponent, i3.XmlTagTableViewComponent, i4.XmlTagViewComponent, i5.XmlTagRichTextViewComponent, i6.XmlTagHtmlViewComponent, i7.XmlTagTextViewComponent, i8.XmlTagHeaderTextViewComponent, i9.XmlTagHeaderInnerTextViewComponent, i10.XmlTagExternalVideoComponent, i11.HtmlRawViewComponent, i12.FileImageTagViewComponent, i13.MainEditorComponent, i14.FileIdSelectComponent, i15.TextEditorComponent, i16.ExternalVideoBlockComponent, i17.ImageEditorComponent, i18.MainEditorBlockComponent, i19.VisualEditorComponent, i20.AddFilesBtnComponent, i21.HtmlRawEditorComponent, i22.RichTextToHtmlPipe, i23.TagToSpanPipe, i24.ToPreviewPipe, i25.ToHtmlBodyTagsPipe, i26.ToPreviewHtmlPipe], imports: [CommonModule,
|
|
65
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: CrocoHtmlModule, declarations: [i1.UploadFilesBtnComponent, i2.HtmlViewComponent, i3.XmlTagTableViewComponent, i4.XmlTagViewComponent, i5.XmlTagRichTextViewComponent, i6.XmlTagHtmlViewComponent, i7.XmlTagTextViewComponent, i8.XmlTagHeaderTextViewComponent, i9.XmlTagHeaderInnerTextViewComponent, i10.XmlTagExternalVideoComponent, i11.HtmlRawViewComponent, i12.FileImageTagViewComponent, i2.HtmlViewComponent, i13.MainEditorComponent, i14.FileIdSelectComponent, i15.TextEditorComponent, i16.ExternalVideoBlockComponent, i17.ImageEditorComponent, i18.MainEditorBlockComponent, i19.VisualEditorComponent, i20.AddFilesBtnComponent, i21.HtmlRawEditorComponent, i22.RichTextToHtmlPipe, i23.TagToSpanPipe, i24.ToPreviewPipe, i25.ToHtmlBodyTagsPipe, i26.ToPreviewHtmlPipe], imports: [CommonModule,
|
|
66
66
|
FormsModule,
|
|
67
67
|
ReactiveFormsModule,
|
|
68
|
-
NgSelectModule, i27.MatBadgeModule, i28.MatTableModule, i29.MatExpansionModule, i30.MatFormFieldModule, i31.MatSnackBarModule, i32.MatProgressBarModule, i33.MatProgressSpinnerModule, i34.MatTabsModule, i35.MatMenuModule, i36.MatCardModule, i37.MatSelectModule, i38.MatTooltipModule, i39.MatCheckboxModule, i40.MatChipsModule, i41.MatListModule, i42.MatButtonModule, i43.MatInputModule, i44.MatDialogModule, i45.MatPaginatorModule, i46.MatDatepickerModule, i47.MatGridListModule, i48.MatSlideToggleModule, i49.MatTreeModule, i50.MatNativeDateModule, i51.MatAutocompleteModule, i52.MatSidenavModule, i53.MatIconModule, i54.DragDropModule, i55.MatButtonToggleModule, YouTubePlayerModule], exports: [i1.UploadFilesBtnComponent, i2.HtmlViewComponent, i3.XmlTagTableViewComponent, i4.XmlTagViewComponent, i5.XmlTagRichTextViewComponent, i6.XmlTagHtmlViewComponent, i7.XmlTagTextViewComponent, i8.XmlTagHeaderTextViewComponent, i9.XmlTagHeaderInnerTextViewComponent, i10.XmlTagExternalVideoComponent, i11.HtmlRawViewComponent, i12.FileImageTagViewComponent, i13.MainEditorComponent, i14.FileIdSelectComponent, i15.TextEditorComponent, i16.ExternalVideoBlockComponent, i17.ImageEditorComponent, i18.MainEditorBlockComponent, i19.VisualEditorComponent, i20.AddFilesBtnComponent, i21.HtmlRawEditorComponent, i22.RichTextToHtmlPipe, i23.TagToSpanPipe, i24.ToPreviewPipe, i25.ToHtmlBodyTagsPipe, i26.ToPreviewHtmlPipe] }); }
|
|
68
|
+
NgSelectModule, i27.MatBadgeModule, i28.MatTableModule, i29.MatExpansionModule, i30.MatFormFieldModule, i31.MatSnackBarModule, i32.MatProgressBarModule, i33.MatProgressSpinnerModule, i34.MatTabsModule, i35.MatMenuModule, i36.MatCardModule, i37.MatSelectModule, i38.MatTooltipModule, i39.MatCheckboxModule, i40.MatChipsModule, i41.MatListModule, i42.MatButtonModule, i43.MatInputModule, i44.MatDialogModule, i45.MatPaginatorModule, i46.MatDatepickerModule, i47.MatGridListModule, i48.MatSlideToggleModule, i49.MatTreeModule, i50.MatNativeDateModule, i51.MatAutocompleteModule, i52.MatSidenavModule, i53.MatIconModule, i54.DragDropModule, i55.MatButtonToggleModule, YouTubePlayerModule], exports: [i1.UploadFilesBtnComponent, i2.HtmlViewComponent, i3.XmlTagTableViewComponent, i4.XmlTagViewComponent, i5.XmlTagRichTextViewComponent, i6.XmlTagHtmlViewComponent, i7.XmlTagTextViewComponent, i8.XmlTagHeaderTextViewComponent, i9.XmlTagHeaderInnerTextViewComponent, i10.XmlTagExternalVideoComponent, i11.HtmlRawViewComponent, i12.FileImageTagViewComponent, i2.HtmlViewComponent, i13.MainEditorComponent, i14.FileIdSelectComponent, i15.TextEditorComponent, i16.ExternalVideoBlockComponent, i17.ImageEditorComponent, i18.MainEditorBlockComponent, i19.VisualEditorComponent, i20.AddFilesBtnComponent, i21.HtmlRawEditorComponent, i22.RichTextToHtmlPipe, i23.TagToSpanPipe, i24.ToPreviewPipe, i25.ToHtmlBodyTagsPipe, i26.ToPreviewHtmlPipe] }); }
|
|
69
69
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CrocoHtmlModule, imports: [CommonModule,
|
|
70
70
|
FormsModule,
|
|
71
71
|
ReactiveFormsModule,
|
|
@@ -90,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
90
90
|
]
|
|
91
91
|
}]
|
|
92
92
|
}] });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JvY28taHRtbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY3JvY28taHRtbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLE1BQU0sR0FBRyxDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQjlELE1BQU0sT0FBTyxlQUFlOzhHQUFmLGVBQWU7K0dBQWYsZUFBZSx5dkJBUnhCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGNBQWMsMG9CQUVkLG1CQUFtQjsrR0FHVixlQUFlLFlBUnhCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGNBQWMsRUFDWCxlQUFlLEVBQ2xCLG1CQUFtQjs7MkZBR1YsZUFBZTtrQkFoQjNCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNaLEdBQUcscUJBQXFCO3FCQUN6QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsR0FBRyxxQkFBcUI7cUJBQ3pCO29CQUNILE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLEdBQUcsZUFBZTt3QkFDbEIsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBOZ1NlbGVjdE1vZHVsZSB9IGZyb20gXCJAbmctc2VsZWN0L25nLXNlbGVjdFwiO1xyXG5pbXBvcnQgeyBDcm9jb0h0bWxEZWNsYXJhdGlvbnMsIE1hdGVyaWFsTW9kdWxlcyB9IGZyb20gXCIuXCI7XHJcbmltcG9ydCB7IFlvdVR1YmVQbGF5ZXJNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIveW91dHViZS1wbGF5ZXJcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgLi4uQ3JvY29IdG1sRGVjbGFyYXRpb25zLFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgLi4uQ3JvY29IdG1sRGVjbGFyYXRpb25zLFxyXG4gICAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBOZ1NlbGVjdE1vZHVsZSxcclxuICAgIC4uLk1hdGVyaWFsTW9kdWxlcyxcclxuICAgIFlvdVR1YmVQbGF5ZXJNb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcm9jb0h0bWxNb2R1bGUgeyB9XHJcbiJdfQ==
|
package/esm2022/lib/index.mjs
CHANGED
|
@@ -69,7 +69,8 @@ export const XmlComponents = [
|
|
|
69
69
|
XmlTagHeaderInnerTextViewComponent,
|
|
70
70
|
XmlTagExternalVideoComponent,
|
|
71
71
|
HtmlRawViewComponent,
|
|
72
|
-
FileImageTagViewComponent
|
|
72
|
+
FileImageTagViewComponent,
|
|
73
|
+
HtmlViewComponent
|
|
73
74
|
];
|
|
74
75
|
export const CrocoPipes = [
|
|
75
76
|
RichTextToHtmlPipe,
|
|
@@ -116,4 +117,4 @@ export const MaterialModules = [
|
|
|
116
117
|
DragDropModule,
|
|
117
118
|
MatButtonToggleModule
|
|
118
119
|
];
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDL0YsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDN0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDNUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDN0YsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sK0ZBQStGLENBQUM7QUFDbkosT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUZBQW1GLENBQUM7QUFDbEksT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDOUcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0VBQStFLENBQUM7QUFDNUgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFDakgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDOUcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDaEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDbEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDMUYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFDdEgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0VBQStFLENBQUM7QUFDN0gsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFF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O0lBQzVCLG9CQUFvQjtJQUNwQix5QkFBeUI7Q0FDNUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLGFBQWE7SUFDYixrQkFBa0I7SUFDbEIsaUJBQWlCO0NBQ2xCLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNqQyx1QkFBdUI7SUFDdkIsaUJBQWlCO0lBQ2pCLEdBQUcsYUFBYTtJQUNoQixHQUFHLGdCQUFnQjtJQUNuQixHQUFHLFVBQVU7Q0FDaEIsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixjQUFjO0lBQ2QsY0FBYztJQUNkLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLG9CQUFvQjtJQUNwQix3QkFBd0I7SUFDeEIsYUFBYTtJQUNiLGFBQWE7SUFDYixhQUFhO0lBQ2IsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsY0FBYztJQUNkLGFBQWE7SUFDYixlQUFlO0lBQ2YsY0FBYztJQUNkLGVBQWU7SUFDZixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQixvQkFBb0I7SUFDcEIsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixxQkFBcUI7SUFDckIsZ0JBQWdCO0lBQ2hCLGFBQWE7SUFDYixjQUFjO0lBQ2QscUJBQXFCO0NBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbWFnZUVkaXRvckNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZWRpdG9yL2ltYWdlLWVkaXRvci9pbWFnZS1lZGl0b3IuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IE1haW5FZGl0b3JCbG9ja0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZWRpdG9yL21haW4tZWRpdG9yLWJsb2NrL21haW4tZWRpdG9yLWJsb2NrLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBNYWluRWRpdG9yQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9lZGl0b3IvbWFpbi1lZGl0b3IvbWFpbi1lZGl0b3IuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFRleHRFZGl0b3JDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2VkaXRvci90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRmlsZUlkU2VsZWN0Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maWxlLWlkLXNlbGVjdC9maWxlLWlkLXNlbGVjdC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWG1sVGFnSGVhZGVySW5uZXJUZXh0Vmlld0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMveG1sLXRhZ3MveG1sLXRhZy1oZWFkZXItaW5uZXItdGV4dC12aWV3L3htbC10YWctaGVhZGVyLWlubmVyLXRleHQtdmlldy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWG1sVGFnSGVhZGVyVGV4dFZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3htbC10YWdzL3htbC10YWctaGVhZGVyLXRleHQtdmlldy94bWwtdGFnLWhlYWRlci10ZXh0LXZpZXcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFhtbFRhZ0h0bWxWaWV3Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy94bWwtdGFncy94bWwtdGFnLWh0bWwtdmlldy94bWwtdGFnLWh0bWwtdmlldy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWG1sVGFnUmljaFRleHRWaWV3Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy94bWwtdGFncy94bWwtdGFnLXJpY2gtdGV4dC12aWV3L3htbC10YWctcmljaC10ZXh0LXZpZXcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFhtbFRhZ1RhYmxlVmlld0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMveG1sLXRhZ3MveG1sLXRhZy10YWJsZS12aWV3L3htbC10YWctdGFibGUtdmlldy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWG1sVGFnVGV4dFZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3htbC10YWdzL3htbC10YWctdGV4dC12aWV3L3htbC10YWctdGV4dC12aWV3LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBYbWxUYWdWaWV3Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy94bWwtdGFncy94bWwtdGFnLXZpZXcveG1sLXRhZy12aWV3LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBWaXN1YWxFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWRpdG9yL3Zpc3VhbC1lZGl0b3IvdmlzdWFsLWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZGRGaWxlc0J0bkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZGQtZmlsZXMtYnRuL2FkZC1maWxlcy1idG4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRXh0ZXJuYWxWaWRlb0Jsb2NrQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9lZGl0b3IvZXh0ZXJuYWwtdmlkZW8tYmxvY2svZXh0ZXJuYWwtdmlkZW8tYmxvY2suY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFhtbFRhZ0V4dGVybmFsVmlkZW9Db21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3htbC10YWdzL3htbC10YWctZXh0ZXJuYWwtdmlkZW8veG1sLXRhZy1leHRlcm5hbC12aWRlby5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgSHRtbFJhd0VkaXRvckNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZWRpdG9yL2h0bWwtcmF3LWVkaXRvci9odG1sLXJhdy1lZGl0b3IuY29tcG9uZW50XCI7XHJcblxyXG5pbXBvcnQgeyBNYXRTbmFja0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XHJcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHtNYXRDaGVja2JveE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XHJcbmltcG9ydCB7TWF0Q2hpcHNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcclxuaW1wb3J0IHsgTWF0TmF0aXZlRGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdEV4cGFuc2lvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRHcmlkTGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2dyaWQtbGlzdCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3JNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5pbXBvcnQgeyBNYXRTaWRlbmF2TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XHJcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcclxuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcclxuaW1wb3J0IHsgTWF0VHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xyXG5pbXBvcnQgeyBNYXRCYWRnZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JhZGdlJztcclxuaW1wb3J0IHtNYXRCdXR0b25Ub2dnbGVNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xyXG5pbXBvcnQgeyBSaWNoVGV4dFRvSHRtbFBpcGUsIFRhZ1RvU3BhblBpcGUsIFRvSHRtbEJvZHlUYWdzUGlwZSwgVG9QcmV2aWV3SHRtbFBpcGUsIFRvUHJldmlld1BpcGUgfSBmcm9tIFwiLi9waXBlc1wiO1xyXG5pbXBvcnQgeyBGaWxlSW1hZ2VUYWdWaWV3Q29tcG9uZW50LCBVcGxvYWRGaWxlc0J0bkNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHNcIjtcclxuaW1wb3J0IHsgSHRtbFJhd1ZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3htbC10YWdzL2h0bWwtcmF3LXZpZXcvaHRtbC1yYXctdmlldy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgSHRtbFZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2h0bWwtdmlldy9odG1sLXZpZXcuY29tcG9uZW50XCI7XHJcblxyXG5leHBvcnQgY29uc3QgRWRpdG9yQ29tcG9uZW50cyA9IFtcclxuICAgIE1haW5FZGl0b3JDb21wb25lbnQsXHJcbiAgICBGaWxlSWRTZWxlY3RDb21wb25lbnQsXHJcbiAgICBUZXh0RWRpdG9yQ29tcG9uZW50LFxyXG4gICAgRXh0ZXJuYWxWaWRlb0Jsb2NrQ29tcG9uZW50LFxyXG4gICAgSW1hZ2VFZGl0b3JDb21wb25lbnQsXHJcbiAgICBNYWluRWRpdG9yQmxvY2tDb21wb25lbnQsXHJcbiAgICBWaXN1YWxFZGl0b3JDb21wb25lbnQsXHJcbiAgICBBZGRGaWxlc0J0bkNvbXBvbmVudCxcclxuICAgIEh0bWxSYXdFZGl0b3JDb21wb25lbnQsXHJcbl07XHJcblxyXG5leHBvcnQgY29uc3QgWG1sQ29tcG9uZW50cyA9IFtcclxuICAgIFhtbFRhZ1RhYmxlVmlld0NvbXBvbmVudCxcclxuICAgIFhtbFRhZ1ZpZXdDb21wb25lbnQsXHJcbiAgICBYbWxUYWdSaWNoVGV4dFZpZXdDb21wb25lbnQsXHJcbiAgICBYbWxUYWdIdG1sVmlld0NvbXBvbmVudCxcclxuICAgIFhtbFRhZ1RleHRWaWV3Q29tcG9uZW50LFxyXG4gICAgWG1sVGFnSGVhZGVyVGV4dFZpZXdDb21wb25lbnQsXHJcbiAgICBYbWxUYWdIZWFkZXJJbm5lclRleHRWaWV3Q29tcG9uZW50LFxyXG4gICAgWG1sVGFnRXh0ZXJuYWxWaWRlb0NvbXBvbmVudCxcclxuICAgIEh0bWxSYXdWaWV3Q29tcG9uZW50LFxyXG4gICAgRmlsZUltYWdlVGFnVmlld0NvbXBvbmVudFxyXG5dO1xyXG5cclxuZXhwb3J0IGNvbnN0IENyb2NvUGlwZXMgPSBbXHJcbiAgUmljaFRleHRUb0h0bWxQaXBlLFxyXG4gIFRhZ1RvU3BhblBpcGUsXHJcbiAgVG9QcmV2aWV3UGlwZSxcclxuICBUb0h0bWxCb2R5VGFnc1BpcGUsXHJcbiAgVG9QcmV2aWV3SHRtbFBpcGVcclxuXVxyXG5cclxuZXhwb3J0IGNvbnN0IENyb2NvSHRtbERlY2xhcmF0aW9ucyA9IFtcclxuICAgIFVwbG9hZEZpbGVzQnRuQ29tcG9uZW50LFxyXG4gICAgSHRtbFZpZXdDb21wb25lbnQsXHJcbiAgICAuLi5YbWxDb21wb25lbnRzLFxyXG4gICAgLi4uRWRpdG9yQ29tcG9uZW50cyxcclxuICAgIC4uLkNyb2NvUGlwZXNcclxuXVxyXG5cclxuZXhwb3J0IGNvbnN0IE1hdGVyaWFsTW9kdWxlcyA9IFtcclxuICBNYXRCYWRnZU1vZHVsZSxcclxuICBNYXRUYWJsZU1vZHVsZSxcclxuICBNYXRFeHBhbnNpb25Nb2R1bGUsXHJcbiAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gIE1hdFNuYWNrQmFyTW9kdWxlLFxyXG4gIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxyXG4gIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcclxuICBNYXRUYWJzTW9kdWxlLFxyXG4gIE1hdE1lbnVNb2R1bGUsXHJcbiAgTWF0Q2FyZE1vZHVsZSxcclxuICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICBNYXRDaGVja2JveE1vZHVsZSxcclxuICBNYXRDaGlwc01vZHVsZSxcclxuICBNYXRMaXN0TW9kdWxlLFxyXG4gIE1hdEJ1dHRvbk1vZHVsZSxcclxuICBNYXRJbnB1dE1vZHVsZSxcclxuICBNYXREaWFsb2dNb2R1bGUsXHJcbiAgTWF0UGFnaW5hdG9yTW9kdWxlLFxyXG4gIE1hdERhdGVwaWNrZXJNb2R1bGUsXHJcbiAgTWF0R3JpZExpc3RNb2R1bGUsXHJcbiAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXHJcbiAgTWF0VHJlZU1vZHVsZSxcclxuICBNYXROYXRpdmVEYXRlTW9kdWxlLFxyXG4gIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcclxuICBNYXRTaWRlbmF2TW9kdWxlLFxyXG4gIE1hdEljb25Nb2R1bGUsXHJcbiAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlXHJcbl07XHJcbiJdfQ==
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDL0YsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDN0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDNUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDN0YsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sK0ZBQStGLENBQUM7QUFDbkosT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUZBQW1GLENBQUM7QUFDbEksT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDOUcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0VBQStFLENBQUM7QUFDNUgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFDakgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDOUcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDaEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDbEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDMUYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFDdEgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0VBQStFLENBQUM7QUFDN0gsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFF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O0lBQzVCLG9CQUFvQjtJQUNwQix5QkFBeUI7SUFDekIsaUJBQWlCO0NBQ3BCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixhQUFhO0lBQ2Isa0JBQWtCO0lBQ2xCLGlCQUFpQjtDQUNsQixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFDakMsdUJBQXVCO0lBQ3ZCLGlCQUFpQjtJQUNqQixHQUFHLGFBQWE7SUFDaEIsR0FBRyxnQkFBZ0I7SUFDbkIsR0FBRyxVQUFVO0NBQ2hCLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDN0IsY0FBYztJQUNkLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsa0JBQWtCO0lBQ2xCLGlCQUFpQjtJQUNqQixvQkFBb0I7SUFDcEIsd0JBQXdCO0lBQ3hCLGFBQWE7SUFDYixhQUFhO0lBQ2IsYUFBYTtJQUNiLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLGNBQWM7SUFDZCxhQUFhO0lBQ2IsZUFBZTtJQUNmLGNBQWM7SUFDZCxlQUFlO0lBQ2Ysa0JBQWtCO0lBQ2xCLG1CQUFtQjtJQUNuQixpQkFBaUI7SUFDakIsb0JBQW9CO0lBQ3BCLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIscUJBQXFCO0lBQ3JCLGdCQUFnQjtJQUNoQixhQUFhO0lBQ2IsY0FBYztJQUNkLHFCQUFxQjtDQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW1hZ2VFZGl0b3JDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2VkaXRvci9pbWFnZS1lZGl0b3IvaW1hZ2UtZWRpdG9yLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBNYWluRWRpdG9yQmxvY2tDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2VkaXRvci9tYWluLWVkaXRvci1ibG9jay9tYWluLWVkaXRvci1ibG9jay5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgTWFpbkVkaXRvckNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZWRpdG9yL21haW4tZWRpdG9yL21haW4tZWRpdG9yLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBUZXh0RWRpdG9yQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9lZGl0b3IvdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEZpbGVJZFNlbGVjdENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZmlsZS1pZC1zZWxlY3QvZmlsZS1pZC1zZWxlY3QuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFhtbFRhZ0hlYWRlcklubmVyVGV4dFZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3htbC10YWdzL3htbC10YWctaGVhZGVyLWlubmVyLXRleHQtdmlldy94bWwtdGFnLWhlYWRlci1pbm5lci10ZXh0LXZpZXcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFhtbFRhZ0hlYWRlclRleHRWaWV3Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy94bWwtdGFncy94bWwtdGFnLWhlYWRlci10ZXh0LXZpZXcveG1sLXRhZy1oZWFkZXItdGV4dC12aWV3LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBYbWxUYWdIdG1sVmlld0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMveG1sLXRhZ3MveG1sLXRhZy1odG1sLXZpZXcveG1sLXRhZy1odG1sLXZpZXcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFhtbFRhZ1JpY2hUZXh0Vmlld0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMveG1sLXRhZ3MveG1sLXRhZy1yaWNoLXRleHQtdmlldy94bWwtdGFnLXJpY2gtdGV4dC12aWV3LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBYbWxUYWdUYWJsZVZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3htbC10YWdzL3htbC10YWctdGFibGUtdmlldy94bWwtdGFnLXRhYmxlLXZpZXcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFhtbFRhZ1RleHRWaWV3Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy94bWwtdGFncy94bWwtdGFnLXRleHQtdmlldy94bWwtdGFnLXRleHQtdmlldy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWG1sVGFnVmlld0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMveG1sLXRhZ3MveG1sLXRhZy12aWV3L3htbC10YWctdmlldy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVmlzdWFsRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VkaXRvci92aXN1YWwtZWRpdG9yL3Zpc3VhbC1lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkRmlsZXNCdG5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRkLWZpbGVzLWJ0bi9hZGQtZmlsZXMtYnRuLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEV4dGVybmFsVmlkZW9CbG9ja0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZWRpdG9yL2V4dGVybmFsLXZpZGVvLWJsb2NrL2V4dGVybmFsLXZpZGVvLWJsb2NrLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBYbWxUYWdFeHRlcm5hbFZpZGVvQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy94bWwtdGFncy94bWwtdGFnLWV4dGVybmFsLXZpZGVvL3htbC10YWctZXh0ZXJuYWwtdmlkZW8uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEh0bWxSYXdFZGl0b3JDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2VkaXRvci9odG1sLXJhdy1lZGl0b3IvaHRtbC1yYXctZWRpdG9yLmNvbXBvbmVudFwiO1xyXG5cclxuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7TWF0Q2hlY2tib3hNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xyXG5pbXBvcnQge01hdENoaXBzTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XHJcbmltcG9ydCB7IE1hdE5hdGl2ZURhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRFeHBhbnNpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0R3JpZExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ncmlkLWxpc3QnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcclxuaW1wb3J0IHsgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XHJcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XHJcbmltcG9ydCB7IE1hdFRyZWVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcclxuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XHJcbmltcG9ydCB7TWF0QnV0dG9uVG9nZ2xlTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcclxuaW1wb3J0IHsgUmljaFRleHRUb0h0bWxQaXBlLCBUYWdUb1NwYW5QaXBlLCBUb0h0bWxCb2R5VGFnc1BpcGUsIFRvUHJldmlld0h0bWxQaXBlLCBUb1ByZXZpZXdQaXBlIH0gZnJvbSBcIi4vcGlwZXNcIjtcclxuaW1wb3J0IHsgRmlsZUltYWdlVGFnVmlld0NvbXBvbmVudCwgVXBsb2FkRmlsZXNCdG5Db21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7IEh0bWxSYXdWaWV3Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy94bWwtdGFncy9odG1sLXJhdy12aWV3L2h0bWwtcmF3LXZpZXcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEh0bWxWaWV3Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9odG1sLXZpZXcvaHRtbC12aWV3LmNvbXBvbmVudFwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IEVkaXRvckNvbXBvbmVudHMgPSBbXHJcbiAgICBNYWluRWRpdG9yQ29tcG9uZW50LFxyXG4gICAgRmlsZUlkU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgVGV4dEVkaXRvckNvbXBvbmVudCxcclxuICAgIEV4dGVybmFsVmlkZW9CbG9ja0NvbXBvbmVudCxcclxuICAgIEltYWdlRWRpdG9yQ29tcG9uZW50LFxyXG4gICAgTWFpbkVkaXRvckJsb2NrQ29tcG9uZW50LFxyXG4gICAgVmlzdWFsRWRpdG9yQ29tcG9uZW50LFxyXG4gICAgQWRkRmlsZXNCdG5Db21wb25lbnQsXHJcbiAgICBIdG1sUmF3RWRpdG9yQ29tcG9uZW50LFxyXG5dO1xyXG5cclxuZXhwb3J0IGNvbnN0IFhtbENvbXBvbmVudHMgPSBbXHJcbiAgICBYbWxUYWdUYWJsZVZpZXdDb21wb25lbnQsXHJcbiAgICBYbWxUYWdWaWV3Q29tcG9uZW50LFxyXG4gICAgWG1sVGFnUmljaFRleHRWaWV3Q29tcG9uZW50LFxyXG4gICAgWG1sVGFnSHRtbFZpZXdDb21wb25lbnQsXHJcbiAgICBYbWxUYWdUZXh0Vmlld0NvbXBvbmVudCxcclxuICAgIFhtbFRhZ0hlYWRlclRleHRWaWV3Q29tcG9uZW50LFxyXG4gICAgWG1sVGFnSGVhZGVySW5uZXJUZXh0Vmlld0NvbXBvbmVudCxcclxuICAgIFhtbFRhZ0V4dGVybmFsVmlkZW9Db21wb25lbnQsXHJcbiAgICBIdG1sUmF3Vmlld0NvbXBvbmVudCxcclxuICAgIEZpbGVJbWFnZVRhZ1ZpZXdDb21wb25lbnQsXHJcbiAgICBIdG1sVmlld0NvbXBvbmVudFxyXG5dO1xyXG5cclxuZXhwb3J0IGNvbnN0IENyb2NvUGlwZXMgPSBbXHJcbiAgUmljaFRleHRUb0h0bWxQaXBlLFxyXG4gIFRhZ1RvU3BhblBpcGUsXHJcbiAgVG9QcmV2aWV3UGlwZSxcclxuICBUb0h0bWxCb2R5VGFnc1BpcGUsXHJcbiAgVG9QcmV2aWV3SHRtbFBpcGVcclxuXVxyXG5cclxuZXhwb3J0IGNvbnN0IENyb2NvSHRtbERlY2xhcmF0aW9ucyA9IFtcclxuICAgIFVwbG9hZEZpbGVzQnRuQ29tcG9uZW50LFxyXG4gICAgSHRtbFZpZXdDb21wb25lbnQsXHJcbiAgICAuLi5YbWxDb21wb25lbnRzLFxyXG4gICAgLi4uRWRpdG9yQ29tcG9uZW50cyxcclxuICAgIC4uLkNyb2NvUGlwZXNcclxuXVxyXG5cclxuZXhwb3J0IGNvbnN0IE1hdGVyaWFsTW9kdWxlcyA9IFtcclxuICBNYXRCYWRnZU1vZHVsZSxcclxuICBNYXRUYWJsZU1vZHVsZSxcclxuICBNYXRFeHBhbnNpb25Nb2R1bGUsXHJcbiAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gIE1hdFNuYWNrQmFyTW9kdWxlLFxyXG4gIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxyXG4gIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcclxuICBNYXRUYWJzTW9kdWxlLFxyXG4gIE1hdE1lbnVNb2R1bGUsXHJcbiAgTWF0Q2FyZE1vZHVsZSxcclxuICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICBNYXRDaGVja2JveE1vZHVsZSxcclxuICBNYXRDaGlwc01vZHVsZSxcclxuICBNYXRMaXN0TW9kdWxlLFxyXG4gIE1hdEJ1dHRvbk1vZHVsZSxcclxuICBNYXRJbnB1dE1vZHVsZSxcclxuICBNYXREaWFsb2dNb2R1bGUsXHJcbiAgTWF0UGFnaW5hdG9yTW9kdWxlLFxyXG4gIE1hdERhdGVwaWNrZXJNb2R1bGUsXHJcbiAgTWF0R3JpZExpc3RNb2R1bGUsXHJcbiAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXHJcbiAgTWF0VHJlZU1vZHVsZSxcclxuICBNYXROYXRpdmVEYXRlTW9kdWxlLFxyXG4gIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcclxuICBNYXRTaWRlbmF2TW9kdWxlLFxyXG4gIE1hdEljb25Nb2R1bGUsXHJcbiAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlXHJcbl07XHJcbiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -5,4 +5,5 @@ export * from './lib/components';
|
|
|
5
5
|
export * from './lib/pipes';
|
|
6
6
|
export * from './lib/extensions';
|
|
7
7
|
export * from './lib/croco-html.module';
|
|
8
|
-
|
|
8
|
+
export * from './lib/models/models';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHFCQUFxQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGNyb2NvLWh0bWxcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9leHRlbnNpb25zJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY3JvY28taHRtbC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvbW9kZWxzJ1xyXG4iXX0=
|
package/fesm2022/croco-html.mjs
CHANGED
|
@@ -1606,7 +1606,8 @@ const XmlComponents = [
|
|
|
1606
1606
|
XmlTagHeaderInnerTextViewComponent,
|
|
1607
1607
|
XmlTagExternalVideoComponent,
|
|
1608
1608
|
HtmlRawViewComponent,
|
|
1609
|
-
FileImageTagViewComponent
|
|
1609
|
+
FileImageTagViewComponent,
|
|
1610
|
+
HtmlViewComponent
|
|
1610
1611
|
];
|
|
1611
1612
|
const CrocoPipes = [
|
|
1612
1613
|
RichTextToHtmlPipe,
|
|
@@ -1656,10 +1657,10 @@ const MaterialModules = [
|
|
|
1656
1657
|
|
|
1657
1658
|
class CrocoHtmlModule {
|
|
1658
1659
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CrocoHtmlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1659
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: CrocoHtmlModule, declarations: [UploadFilesBtnComponent, HtmlViewComponent, XmlTagTableViewComponent, XmlTagViewComponent, XmlTagRichTextViewComponent, XmlTagHtmlViewComponent, XmlTagTextViewComponent, XmlTagHeaderTextViewComponent, XmlTagHeaderInnerTextViewComponent, XmlTagExternalVideoComponent, HtmlRawViewComponent, FileImageTagViewComponent, MainEditorComponent, FileIdSelectComponent, TextEditorComponent, ExternalVideoBlockComponent, ImageEditorComponent, MainEditorBlockComponent, VisualEditorComponent, AddFilesBtnComponent, HtmlRawEditorComponent, RichTextToHtmlPipe, TagToSpanPipe, ToPreviewPipe, ToHtmlBodyTagsPipe, ToPreviewHtmlPipe], imports: [CommonModule,
|
|
1660
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: CrocoHtmlModule, declarations: [UploadFilesBtnComponent, HtmlViewComponent, XmlTagTableViewComponent, XmlTagViewComponent, XmlTagRichTextViewComponent, XmlTagHtmlViewComponent, XmlTagTextViewComponent, XmlTagHeaderTextViewComponent, XmlTagHeaderInnerTextViewComponent, XmlTagExternalVideoComponent, HtmlRawViewComponent, FileImageTagViewComponent, HtmlViewComponent, MainEditorComponent, FileIdSelectComponent, TextEditorComponent, ExternalVideoBlockComponent, ImageEditorComponent, MainEditorBlockComponent, VisualEditorComponent, AddFilesBtnComponent, HtmlRawEditorComponent, RichTextToHtmlPipe, TagToSpanPipe, ToPreviewPipe, ToHtmlBodyTagsPipe, ToPreviewHtmlPipe], imports: [CommonModule,
|
|
1660
1661
|
FormsModule,
|
|
1661
1662
|
ReactiveFormsModule,
|
|
1662
|
-
NgSelectModule, i27.MatBadgeModule, i2$3.MatTableModule, i29.MatExpansionModule, i3$1.MatFormFieldModule, i2$2.MatSnackBarModule, i32.MatProgressBarModule, i4$1.MatProgressSpinnerModule, i6$2.MatTabsModule, i35.MatMenuModule, i5$2.MatCardModule, i6$1.MatSelectModule, i38.MatTooltipModule, i39.MatCheckboxModule, i8.MatChipsModule, i41.MatListModule, i2.MatButtonModule, i4.MatInputModule, i44.MatDialogModule, i45.MatPaginatorModule, i46.MatDatepickerModule, i47.MatGridListModule, i48.MatSlideToggleModule, i49.MatTreeModule, i7.MatNativeDateModule, i51.MatAutocompleteModule, i52.MatSidenavModule, i5$1.MatIconModule, i10.DragDropModule, i6.MatButtonToggleModule, YouTubePlayerModule], exports: [UploadFilesBtnComponent, HtmlViewComponent, XmlTagTableViewComponent, XmlTagViewComponent, XmlTagRichTextViewComponent, XmlTagHtmlViewComponent, XmlTagTextViewComponent, XmlTagHeaderTextViewComponent, XmlTagHeaderInnerTextViewComponent, XmlTagExternalVideoComponent, HtmlRawViewComponent, FileImageTagViewComponent, MainEditorComponent, FileIdSelectComponent, TextEditorComponent, ExternalVideoBlockComponent, ImageEditorComponent, MainEditorBlockComponent, VisualEditorComponent, AddFilesBtnComponent, HtmlRawEditorComponent, RichTextToHtmlPipe, TagToSpanPipe, ToPreviewPipe, ToHtmlBodyTagsPipe, ToPreviewHtmlPipe] }); }
|
|
1663
|
+
NgSelectModule, i27.MatBadgeModule, i2$3.MatTableModule, i29.MatExpansionModule, i3$1.MatFormFieldModule, i2$2.MatSnackBarModule, i32.MatProgressBarModule, i4$1.MatProgressSpinnerModule, i6$2.MatTabsModule, i35.MatMenuModule, i5$2.MatCardModule, i6$1.MatSelectModule, i38.MatTooltipModule, i39.MatCheckboxModule, i8.MatChipsModule, i41.MatListModule, i2.MatButtonModule, i4.MatInputModule, i44.MatDialogModule, i45.MatPaginatorModule, i46.MatDatepickerModule, i47.MatGridListModule, i48.MatSlideToggleModule, i49.MatTreeModule, i7.MatNativeDateModule, i51.MatAutocompleteModule, i52.MatSidenavModule, i5$1.MatIconModule, i10.DragDropModule, i6.MatButtonToggleModule, YouTubePlayerModule], exports: [UploadFilesBtnComponent, HtmlViewComponent, XmlTagTableViewComponent, XmlTagViewComponent, XmlTagRichTextViewComponent, XmlTagHtmlViewComponent, XmlTagTextViewComponent, XmlTagHeaderTextViewComponent, XmlTagHeaderInnerTextViewComponent, XmlTagExternalVideoComponent, HtmlRawViewComponent, FileImageTagViewComponent, HtmlViewComponent, MainEditorComponent, FileIdSelectComponent, TextEditorComponent, ExternalVideoBlockComponent, ImageEditorComponent, MainEditorBlockComponent, VisualEditorComponent, AddFilesBtnComponent, HtmlRawEditorComponent, RichTextToHtmlPipe, TagToSpanPipe, ToPreviewPipe, ToHtmlBodyTagsPipe, ToPreviewHtmlPipe] }); }
|
|
1663
1664
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: CrocoHtmlModule, imports: [CommonModule,
|
|
1664
1665
|
FormsModule,
|
|
1665
1666
|
ReactiveFormsModule,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"croco-html.mjs","sources":["../../../projects/croco-html/src/lib/extensions/ImageMethods.ts","../../../projects/croco-html/src/lib/services/file-upload.service.ts","../../../projects/croco-html/src/lib/components/upload-files-btn/upload-files-btn.component.ts","../../../projects/croco-html/src/lib/components/upload-files-btn/upload-files-btn.component.html","../../../projects/croco-html/src/lib/components/add-files-btn/add-files-btn.component.ts","../../../projects/croco-html/src/lib/components/add-files-btn/add-files-btn.component.html","../../../projects/croco-html/src/lib/extensions/VideoMethods.ts","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-external-video/xml-tag-external-video.component.ts","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-external-video/xml-tag-external-video.component.html","../../../projects/croco-html/src/lib/components/editor/external-video-block/external-video-block.component.ts","../../../projects/croco-html/src/lib/components/editor/external-video-block/external-video-block.component.html","../../../projects/croco-html/src/lib/components/editor/html-raw-editor/html-raw-editor.component.ts","../../../projects/croco-html/src/lib/components/editor/html-raw-editor/html-raw-editor.component.html","../../../projects/croco-html/src/lib/services/files-query.service.ts","../../../projects/croco-html/src/lib/components/file-id-select/file-id-select.component.ts","../../../projects/croco-html/src/lib/components/file-id-select/file-id-select.component.html","../../../projects/croco-html/src/lib/components/editor/image-editor/image-editor.component.ts","../../../projects/croco-html/src/lib/components/editor/image-editor/image-editor.component.html","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-html-view/xml-tag-html-view.component.ts","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-html-view/xml-tag-html-view.component.html","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-text-view/xml-tag-text-view.component.ts","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-text-view/xml-tag-text-view.component.html","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-header-inner-text-view/xml-tag-header-inner-text-view.component.ts","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-header-inner-text-view/xml-tag-header-inner-text-view.component.html","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-header-text-view/xml-tag-header-text-view.component.ts","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-header-text-view/xml-tag-header-text-view.component.html","../../../projects/croco-html/src/lib/components/xml-tags/html-raw-view/html-raw-view.component.ts","../../../projects/croco-html/src/lib/components/xml-tags/html-raw-view/html-raw-view.component.html","../../../projects/croco-html/src/lib/components/xml-tags/file-image-tag-view/file-image-tag-view.component.ts","../../../projects/croco-html/src/lib/components/xml-tags/file-image-tag-view/file-image-tag-view.component.html","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-view/xml-tag-view.component.ts","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-view/xml-tag-view.component.html","../../../projects/croco-html/src/lib/extensions/AngularMaterialTableMethods.ts","../../../projects/croco-html/src/lib/extensions/TextSimpleMethods.ts","../../../projects/croco-html/src/lib/extensions/BootstrapTableMethods.ts","../../../projects/croco-html/src/lib/extensions/TableMethods.ts","../../../projects/croco-html/src/lib/extensions/TextMethods.ts","../../../projects/croco-html/src/lib/extensions/HtmlExtractionMethods.ts","../../../projects/croco-html/src/lib/extensions/HtmlRawTagDataConsts.ts","../../../projects/croco-html/src/lib/extensions/BodyTagsExtensions.ts","../../../projects/croco-html/src/lib/extensions/XmlExtensions.ts","../../../projects/croco-html/src/lib/components/editor/visual-editor/DefaultTags.ts","../../../projects/croco-html/src/lib/components/editor/text-editor/text-editor.component.ts","../../../projects/croco-html/src/lib/components/editor/text-editor/text-editor.component.html","../../../projects/croco-html/src/lib/components/editor/main-editor-block/main-editor-block.component.ts","../../../projects/croco-html/src/lib/components/editor/main-editor-block/main-editor-block.component.html","../../../projects/croco-html/src/lib/components/editor/visual-editor/visual-editor.component.ts","../../../projects/croco-html/src/lib/components/editor/visual-editor/visual-editor.component.html","../../../projects/croco-html/src/lib/pipes/to-preview.pipe.ts","../../../projects/croco-html/src/lib/components/editor/main-editor/main-editor.component.ts","../../../projects/croco-html/src/lib/components/editor/main-editor/main-editor.component.html","../../../projects/croco-html/src/lib/pipes/RichTextToHtmlPipe.ts","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-rich-text-view/xml-tag-rich-text-view.component.ts","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-rich-text-view/xml-tag-rich-text-view.component.html","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-table-view/xml-tag-table-view.component.ts","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-table-view/xml-tag-table-view.component.html","../../../projects/croco-html/src/lib/components/html-view/html-view.component.ts","../../../projects/croco-html/src/lib/components/html-view/html-view.component.html","../../../projects/croco-html/src/lib/pipes/TagToSpanPipe.ts","../../../projects/croco-html/src/lib/pipes/ToHtmlBodyTagsPipe.ts","../../../projects/croco-html/src/lib/pipes/ToPreviewHtmlPipe.ts","../../../projects/croco-html/src/lib/extensions/TableBuilder.ts","../../../projects/croco-html/src/lib/index.ts","../../../projects/croco-html/src/lib/croco-html.module.ts","../../../projects/croco-html/src/public-api.ts","../../../projects/croco-html/src/croco-html.ts"],"sourcesContent":["import { HtmlExtractionOptions } from \"./HtmlExtractionMethods\";\r\n\r\nexport class FileImageTagDataConsts {\r\n static TagName = \"file-image\";\r\n static FileIdAttrName = \"file-id\";\r\n}\r\n\r\nexport interface FileImageTag{\r\n type: string;\r\n data: FileImageTagData;\r\n}\r\n\r\nexport interface FileImageTagData{\r\n src: string;\r\n fileId: number;\r\n}\r\n\r\nexport class ImageMethods {\r\n\r\n public static buildUrl(fileId: number, options: HtmlExtractionOptions):string{\r\n \r\n var baseUrl = `/FileCopies/Images/Medium/${fileId}.jpg`;\r\n\r\n if (!options.useCustomDomain){\r\n return baseUrl;\r\n }\r\n \r\n return `${options.domain}${baseUrl}`;\r\n }\r\n\r\n public static buildSmallUrl(fileId: number, options: HtmlExtractionOptions):string{\r\n var baseUrl = `/FileCopies/Images/Small/${fileId}.jpg`;\r\n\r\n if (!options.useCustomDomain){\r\n return baseUrl;\r\n }\r\n \r\n return `${options.domain}${baseUrl}`;\r\n }\r\n\r\n public static ExtractImage(elem: HTMLElement, options: HtmlExtractionOptions): FileImageTag {\r\n let fileId = +elem.getAttribute(FileImageTagDataConsts.FileIdAttrName);\r\n let src = ImageMethods.buildUrl(fileId, options);\r\n return {\r\n type: FileImageTagDataConsts.TagName,\r\n data: {\r\n src,\r\n fileId: fileId,\r\n }\r\n };\r\n }\r\n}\r\n","import { HttpClient, HttpEvent, HttpEventType, HttpResponse, HttpUploadProgressEvent } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { filter, switchMap } from 'rxjs/operators';\r\n\r\nexport interface BaseApiResponse {\r\n isSucceeded: boolean;\r\n message: string;\r\n}\r\n\r\nexport interface GenericBaseApiResponse<T> extends BaseApiResponse {\r\n responseObject: T;\r\n}\r\n\r\nexport interface BaseApiResponseWithFilesIds extends BaseApiResponse {\r\n responseObject: number[];\r\n}\r\n\r\nexport interface UploadFileWithProgressEvent {\r\n loading: boolean;\r\n response?: BaseApiResponseWithFilesIds;\r\n uploadingLoaded: number;\r\n uploadingTotal: number;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class FileUploadService {\r\n constructor(\r\n private _httpClient: HttpClient,\r\n @Inject('BASE_URL') private baseUrl: string,\r\n ) {}\r\n\r\n public postFile(\r\n file: File,\r\n createLocalCopiesNow: boolean,\r\n withProgress: true,\r\n ): Observable<HttpEvent<BaseApiResponseWithFilesIds>>;\r\n\r\n public postFile(\r\n file: File,\r\n createLocalCopiesNow?: boolean,\r\n withProgress?: false,\r\n ): Observable<BaseApiResponseWithFilesIds>;\r\n\r\n public postFile(\r\n file: File,\r\n createLocalCopiesNow?: boolean,\r\n withProgress?: boolean,\r\n ): Observable<BaseApiResponseWithFilesIds> | Observable<HttpEvent<BaseApiResponseWithFilesIds>>;\r\n\r\n public postFile(\r\n file: File,\r\n createLocalCopiesNow = false,\r\n withProgress = false,\r\n ): Observable<BaseApiResponseWithFilesIds> | Observable<HttpEvent<BaseApiResponseWithFilesIds>> {\r\n const formData: FormData = new FormData();\r\n\r\n formData.append(`fileKey1`, file, file.name);\r\n\r\n return this.postFilesInner(formData, createLocalCopiesNow, withProgress);\r\n }\r\n\r\n public postFiles(files: FileList, createLocalCopiesNow = false): Observable<BaseApiResponseWithFilesIds> {\r\n const formData: FormData = new FormData();\r\n\r\n for (let i = 0; i < files.length; i++) {\r\n var fileToUpload = files.item(i);\r\n formData.append(`fileKey${i}`, fileToUpload as Blob, fileToUpload?.name);\r\n }\r\n\r\n return this.postFilesInner(formData, createLocalCopiesNow);\r\n }\r\n\r\n public postFilesInner(\r\n formData: FormData,\r\n createLocalCopiesNow: boolean,\r\n withProgress: true,\r\n ): Observable<HttpEvent<BaseApiResponseWithFilesIds>>;\r\n\r\n public postFilesInner(\r\n formData: FormData,\r\n createLocalCopiesNow?: boolean,\r\n withProgress?: false,\r\n ): Observable<BaseApiResponseWithFilesIds>;\r\n public postFilesInner(\r\n formData: FormData,\r\n createLocalCopiesNow: boolean,\r\n withProgress: boolean,\r\n ): Observable<BaseApiResponseWithFilesIds> | Observable<HttpEvent<BaseApiResponseWithFilesIds>>;\r\n public postFilesInner(\r\n formData: FormData,\r\n createLocalCopiesNow = false,\r\n withProgress = false,\r\n ): Observable<BaseApiResponseWithFilesIds> | Observable<HttpEvent<BaseApiResponseWithFilesIds>> {\r\n let endpoint = this.baseUrl + 'Api/Files/UploadFiles';\r\n\r\n if (createLocalCopiesNow) {\r\n endpoint += '/Now';\r\n }\r\n\r\n return this._httpClient.post<BaseApiResponseWithFilesIds>(\r\n endpoint,\r\n formData,\r\n withProgress ? { reportProgress: true, observe: 'events' } : undefined,\r\n );\r\n }\r\n\r\n public uploadFileWithProgress(file: File, createLocalCopiesNow = false): Observable<UploadFileWithProgressEvent> {\r\n let uploadingLoaded: number;\r\n let uploadingTotal: number;\r\n return this.postFile(file, createLocalCopiesNow, true).pipe(\r\n filter((event): event is HttpUploadProgressEvent | HttpResponse<BaseApiResponseWithFilesIds> => {\r\n return event.type === HttpEventType.UploadProgress || event instanceof HttpResponse;\r\n }),\r\n switchMap((event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n uploadingLoaded = event.loaded;\r\n uploadingTotal = event.total;\r\n return [{ loading: true, uploadingLoaded, uploadingTotal }];\r\n } else {\r\n if (event.body.responseObject?.[0]) {\r\n return [\r\n {\r\n loading: false,\r\n fileId: event.body.responseObject[0],\r\n uploadingLoaded,\r\n uploadingTotal,\r\n },\r\n ];\r\n } else {\r\n return throwError(() => new Error(event.body.message));\r\n }\r\n }\r\n }),\r\n );\r\n }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { BaseApiResponseWithFilesIds, FileUploadService } from '../../services/file-upload.service';\r\n\r\nexport interface FilePostingStarted {\r\n filesCount: number;\r\n createLocalCopiesNow:boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'croco-app-upload-files-btn',\r\n templateUrl: './upload-files-btn.component.html',\r\n styleUrls: ['./upload-files-btn.component.css']\r\n})\r\nexport class UploadFilesBtnComponent implements OnInit {\r\n\r\n constructor(private _fileUploadService: FileUploadService) { }\r\n @ViewChild('filesInput') private fileInput!: ElementRef<HTMLInputElement>;\r\n\r\n @Input()\r\n extAccepts: string = \"*/*\";\r\n\r\n @Input()\r\n isMultiple: boolean = true;\r\n\r\n @Input()\r\n btnText: string = \"Загрузить файлы\";\r\n\r\n @Input()\r\n createLocalCopiesNow = false;\r\n\r\n @Input()\r\n hidden: boolean = false;\r\n\r\n @Output()\r\n postFilesStarted = new EventEmitter<FilePostingStarted>();\r\n\r\n @Output()\r\n onFilesUploaded = new EventEmitter<BaseApiResponseWithFilesIds>();\r\n\r\n handleFileInput(files: FileList) {\r\n this.postFilesStarted.emit({\r\n filesCount:files.length,\r\n createLocalCopiesNow: this.createLocalCopiesNow\r\n });\r\n\r\n this._fileUploadService.postFiles(files, this.createLocalCopiesNow).subscribe(data => {\r\n this.onFilesUploaded.emit(data);\r\n })\r\n }\r\n\r\n clickFileInput(){\r\n this.fileInput.nativeElement.click();\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","<button [hidden]=\"hidden\" mat-raised-button color=\"primary\" (click)=\"filesInput.click()\">{{btnText}}</button>\r\n<input [hidden]=\"true\" [accept]=\"extAccepts\" [multiple]=\"isMultiple\" type=\"file\" #filesInput (change)=\"handleFileInput($event.target.files)\" />","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FileImageTagDataConsts } from '../../extensions/ImageMethods';\r\nimport { HtmlBodyTag } from '../../models/models';\r\nimport { BaseApiResponseWithFilesIds } from '../../services/file-upload.service';\r\nimport { FilePostingStarted, UploadFilesBtnComponent } from '../upload-files-btn/upload-files-btn.component';\r\n\r\n@Component({\r\n selector: 'croco-html-add-files-btn',\r\n templateUrl: './add-files-btn.component.html',\r\n styleUrls: ['./add-files-btn.component.css']\r\n})\r\nexport class AddFilesBtnComponent implements OnInit {\r\n\r\n @Output()\r\n postFilesStarted = new EventEmitter<FilePostingStarted>();\r\n\r\n @ViewChild(\"fakeBtn\")\r\n fakeBtn!: UploadFilesBtnComponent;\r\n\r\n fileIds:number[] = [];\r\n\r\n constructor() { }\r\n\r\n @Output()\r\n filesTagsReady = new EventEmitter<HtmlBodyTag[]>();\r\n\r\n postFilesStartedEventHandler(data: FilePostingStarted){\r\n this.postFilesStarted.emit(data);\r\n }\r\n\r\n filesUploadedHandler(data: BaseApiResponseWithFilesIds){\r\n this.fileIds = data.responseObject;\r\n\r\n let fileTags:HtmlBodyTag[] = [];\r\n\r\n for(let i= 0; i < this.fileIds.length; i++){\r\n let fileTag: HtmlBodyTag = {\r\n presentOrEdit: true,\r\n tagDescription: {\r\n tag: FileImageTagDataConsts.TagName,\r\n displayValue: \"Изображение\"\r\n },\r\n attributes: {\r\n [FileImageTagDataConsts.FileIdAttrName]: this.fileIds[i]\r\n },\r\n innerHtml: \"\"\r\n };\r\n\r\n fileTags.push(fileTag);\r\n }\r\n\r\n this.filesTagsReady.emit(fileTags);\r\n }\r\n\r\n handleClick(){\r\n this.fakeBtn.clickFileInput();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","<div [hidden]=\"true\">\r\n <croco-app-upload-files-btn #fakeBtn \r\n (onFilesUploaded)=\"filesUploadedHandler($event)\" \r\n [btnText]=\"'Добавить изображения'\"\r\n [createLocalCopiesNow]=\"true\"\r\n (postFilesStarted)=\"postFilesStartedEventHandler($event)\" \r\n [extAccepts]=\"'image/*'\"></croco-app-upload-files-btn>\r\n</div>\r\n\r\n<div>\r\n <button class=\"w-100\" \r\n (click)=\"handleClick()\"\r\n mat-stroked-button>Добавить изображения</button>\r\n</div>","export class ExternalVideoTagDataConsts {\r\n static TagName = \"external-video\";\r\n static VideoTypeAttrName = \"type\";\r\n static LinkAttrName = \"link\";\r\n}\r\n\r\nexport class ExternalVideoSupportedTypes{\r\n static Youtube = \"youtube\"\r\n}\r\n\r\nexport interface ExternalVideoTag{\r\n type: string;\r\n data: ExternalVideoTagData;\r\n}\r\n\r\nexport interface ExternalVideoTagData{\r\n type: string;\r\n link: string;\r\n}\r\n\r\nexport class VideoMethods {\r\n static ExtractExternalVideoTag(elem: HTMLElement): ExternalVideoTag{\r\n return {\r\n type: ExternalVideoTagDataConsts.TagName,\r\n data:{\r\n type: elem.getAttribute(ExternalVideoTagDataConsts.VideoTypeAttrName),\r\n link: elem.getAttribute(ExternalVideoTagDataConsts.LinkAttrName)\r\n }\r\n };\r\n }\r\n}\r\n","import {ChangeDetectionStrategy, Component, Input, OnInit} from '@angular/core';\r\nimport {DomSanitizer} from '@angular/platform-browser';\r\nimport {InterfaceBlock} from \"../../../extensions/InterfaceBlock\";\r\nimport {ExternalVideoTagData} from '../../../extensions';\r\n\r\n@Component({\r\n selector: 'croco-html-xml-tag-external-video',\r\n templateUrl: './xml-tag-external-video.component.html',\r\n styleUrls: ['./xml-tag-external-video.component.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class XmlTagExternalVideoComponent implements OnInit {\r\n @Input() public set data(value: InterfaceBlock) {\r\n this.tagData = value.data;\r\n };\r\n\r\n @Input() public set tagData(value: ExternalVideoTagData) {\r\n this.videoId = this.getYouTubeId(value.link);\r\n };\r\n\r\n public videoId?: string;\r\n\r\n constructor(private _domSanitizer: DomSanitizer) { }\r\n\r\n ngOnInit(): void {\r\n const youtubeIframeApiUrl = 'https://www.youtube.com/iframe_api';\r\n if (!document.querySelector(`script[src=\"${youtubeIframeApiUrl}\"]`)) {\r\n // This code loads the IFrame Player API code asynchronously, according to the instructions at\r\n // https://developers.google.com/youtube/iframe_api_reference#Getting_Started\r\n const tag = document.createElement('script');\r\n tag.setAttribute('src', youtubeIframeApiUrl);\r\n document.body.appendChild(tag);\r\n }\r\n }\r\n\r\n private getYouTubeId(youtubeLink:string): string {\r\n\r\n //https://www.youtube.com/watch?v=l3KfbfkxJOU\r\n if(youtubeLink.includes(\"watch?v=\")){\r\n const url = new URL(youtubeLink);\r\n return url.searchParams.get(\"v\");\r\n }\r\n\r\n //https://youtu.be/jzBneaWSswY\r\n const bits = youtubeLink.split('/')\r\n return bits[bits.length - 1];\r\n }\r\n}\r\n","<div class=\"d-flex justify-content-center\">\r\n <youtube-player height=\"100%\" width=\"100%\" class=\"y-video\" *ngIf=\"videoId\" [videoId]=\"videoId\"></youtube-player>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ExternalVideoTagData, ExternalVideoSupportedTypes } from '../../../extensions/VideoMethods';\r\nimport { HtmlBodyTag } from '../../../models/models';\r\n\r\n@Component({\r\n selector: 'croco-html-external-video-block',\r\n templateUrl: './external-video-block.component.html',\r\n styleUrls: ['./external-video-block.component.css']\r\n})\r\nexport class ExternalVideoBlockComponent implements OnInit {\r\n\r\n @Input()\r\n tag: HtmlBodyTag;\r\n\r\n @Output()\r\n onTagUpdated = new EventEmitter<HtmlBodyTag>();\r\n\r\n defaultLink = \"https://youtu.be/jzBneaWSswY\";\r\n\r\n data = {\r\n youtubeLink: this.defaultLink\r\n }\r\n\r\n tagData: ExternalVideoTagData = {\r\n link: this.defaultLink,\r\n type: ExternalVideoSupportedTypes.Youtube\r\n };\r\n\r\n linkChanged(){\r\n this.tagData.link = this.data.youtubeLink;\r\n this.tag.attributes = this.tagData;\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.tag?.attributes?.['link']) {\r\n this.linkChanged();\r\n }\r\n\r\n this.tagData = this.tag.attributes as ExternalVideoTagData;\r\n this.data.youtubeLink = this.tagData.link;\r\n }\r\n}\r\n","<div *ngIf=\"tag.presentOrEdit\">\r\n \r\n <div>\r\n Ссылка на YouTube: {{data.youtubeLink}}\r\n </div>\r\n\r\n <div style=\"height: 10px;\"></div>\r\n\r\n <croco-html-xml-tag-external-video [tagData]=\"tagData\">\r\n </croco-html-xml-tag-external-video>\r\n</div>\r\n\r\n<div *ngIf=\"!tag.presentOrEdit\">\r\n <div>\r\n <div>\r\n <mat-form-field class=\"w-100\">\r\n <input matInput placeholder=\"Ссылка на YouTube\"\r\n new-autocomplete=\"off\"\r\n autocomplete=\"off\"\r\n [(ngModel)]=\"data.youtubeLink\"\r\n (ngModelChange)=\"linkChanged()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { HtmlBodyTag } from '../../../models/models';\r\n\r\n@Component({\r\n selector: 'croco-html-html-raw-editor',\r\n templateUrl: './html-raw-editor.component.html',\r\n styleUrls: ['./html-raw-editor.component.css']\r\n})\r\nexport class HtmlRawEditorComponent implements OnInit {\r\n\r\n @Input()\r\n tag: HtmlBodyTag;\r\n\r\n @Output()\r\n onTagUpdated = new EventEmitter<HtmlBodyTag>();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div *ngIf=\"tag.presentOrEdit\">\r\n <div [innerHTML]=\"tag.innerHtml\"></div>\r\n</div>\r\n\r\n<div *ngIf=\"!tag.presentOrEdit\">\r\n <div style=\"height: 10px;\">\r\n </div>\r\n <div>\r\n <mat-form-field class=\"w-100\">\r\n <textarea matInput cdkTextareaAutosize #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n placeholder=\"Внутренняя разметка тега\"\r\n [(ngModel)]=\"tag.innerHtml\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n</div>\r\n\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Inject, Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nexport interface GetListResult<T>{\r\n\r\n /*\r\n Сколько всего записей\r\n */\r\n totalCount:number;\r\n\r\n /*\r\n Текущий список\r\n */\r\n list:Array<T>;\r\n}\r\n\r\nexport interface DbFileNoDataWithRelations {\r\n id: number;\r\n fileName: string;\r\n relations: Array<FileRelationModel>;\r\n}\r\n\r\nexport interface FileRelationModel {\r\n entityTypeFullName: string;\r\n entityKey: string;\r\n relationName: string;\r\n relationValue: string;\r\n relationCustomData: string;\r\n}\r\n\r\nexport interface SearchFiles {\r\n fileName: string;\r\n q: string;\r\n count: number | null;\r\n offSet: number;\r\n}\r\n\r\nexport interface GetListSearchModel {\r\n count: number | null;\r\n offSet: number;\r\n}\r\n\r\nexport interface FileNameAndIdModel {\r\n fileId: number;\r\n fileName: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FilesQueryService{\r\n\r\n _baseControllerUrl: string;\r\n\r\n constructor(private _httpClient: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string) {\r\n this._baseControllerUrl = baseUrl + 'Api/Files/';\r\n }\r\n\r\n public getFilesWithRelations(model: SearchFiles):Observable<GetListResult<DbFileNoDataWithRelations>>{\r\n return this._httpClient.post<GetListResult<DbFileNoDataWithRelations>>(\r\n this._baseControllerUrl + `GetFiles/WithRelations`, model\r\n );\r\n }\r\n\r\n public getFiles(model: SearchFiles):Observable<GetListResult<FileNameAndIdModel>>{\r\n return this._httpClient.post<GetListResult<FileNameAndIdModel>>(\r\n this._baseControllerUrl + `GetFiles`, model\r\n );\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { ImageMethods } from '../../extensions/ImageMethods';\r\nimport { FileNameAndIdModel, FilesQueryService } from '../../services/files-query.service';\r\n\r\nexport interface SearchQuestionsFormData{\r\n q: string;\r\n}\r\n\r\n@Component({\r\n selector: 'croco-html-file-id-select',\r\n templateUrl: './file-id-select.component.html',\r\n styleUrls: ['./file-id-select.component.css']\r\n})\r\nexport class FileIdSelectComponent implements OnInit, OnChanges {\r\n\r\n q: string;\r\n\r\n @Input()\r\n labelText = \"Поиск файлов\"\r\n\r\n @Input()\r\n @Output()\r\n fileId: number;\r\n\r\n loading = false;\r\n\r\n files: FileNameAndIdModel[] = [];\r\n\r\n @Output()\r\n onFileIdChanged = new EventEmitter<number>();\r\n\r\n constructor(\r\n private _fileService: FilesQueryService) {\r\n }\r\n\r\n onModelChanged(fileId: number){\r\n this.onFileIdChanged.emit(fileId);\r\n }\r\n\r\n getSrc(fileId: number){\r\n return ImageMethods.buildSmallUrl(fileId, { useCustomDomain: false, domain: \"\" });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadFiles();\r\n }\r\n\r\n public loadFiles() {\r\n this.loading = true;\r\n this._fileService.getFiles({\r\n count: 10,\r\n offSet: 0,\r\n fileName: null,\r\n q: this.q\r\n }).subscribe(data => {\r\n this.files = [...data.list];\r\n this.loading = false;\r\n });\r\n }\r\n\r\n onSearchChanged(q: {term: string, items:object[]}){\r\n this.q = q.term;\r\n this.loadFiles();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.loadFiles();\r\n }\r\n}\r\n","<div>\r\n <div class=\"form-group\">\r\n <label for=\"fileName\">{{labelText}}</label>\r\n <ng-select [(ngModel)]=\"fileId\" (ngModelChange)=\"onModelChanged($event)\"\r\n [items]=\"files\"\r\n #select\r\n bindLabel=\"fileName\"\r\n (search)=\"onSearchChanged($event)\"\r\n [loading]=\"loading\"\r\n [loadingText]=\"'Загружаю файлы'\"\r\n dropdownPosition=\"auto\"\r\n bindValue=\"fileId\"\r\n labelForId=\"fileName\"\r\n placeholder=\"Выбрать файл\"\r\n [virtualScroll]=\"true\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <div>\r\n <img class=\"mx-auto d-block img-fluid\" [src]=\"getSrc(item.fileId)\"/>\r\n </div>\r\n <div>\r\n <span class=\"h5\">Файл: </span>\r\n <span class=\"h5\" [ngOptionHighlight]=\"search\"><b>{{item.fileName}}</b></span>\r\n </div>\r\n <div>\r\n <small>\r\n <span>\r\n Идентификатор файла: <b>{{item.fileId}}</b>\r\n </span>\r\n </small>\r\n </div>\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n</div>\r\n\r\n<div>\r\n Идентификатор файла: {{fileId}}\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ImageMethods, FileImageTagDataConsts } from '../../../extensions/ImageMethods';\r\nimport { HtmlBodyTag } from '../../../models/models';\r\n\r\n@Component({\r\n selector: 'croco-html-image-editor',\r\n templateUrl: './image-editor.component.html',\r\n styleUrls: ['./image-editor.component.css']\r\n})\r\nexport class ImageEditorComponent implements OnInit {\r\n\r\n hasImageError = false;\r\n searchOrEdit = \"search\";\r\n\r\n @Input()\r\n tag: HtmlBodyTag;\r\n\r\n onErrorHandler(){\r\n this.hasImageError = true;\r\n }\r\n\r\n @Output()\r\n onTagUpdated = new EventEmitter<HtmlBodyTag>();\r\n\r\n constructor() { }\r\n\r\n getSrc(){\r\n return ImageMethods.buildUrl(this.tag.attributes[FileImageTagDataConsts.FileIdAttrName], { useCustomDomain: false, domain: \"\"});\r\n }\r\n\r\n hasFileId(){\r\n return this.tag.attributes.hasOwnProperty(FileImageTagDataConsts.FileIdAttrName) && !isNaN(this.tag.attributes[FileImageTagDataConsts.FileIdAttrName]);\r\n }\r\n\r\n onFileIdChanged(fileId:number){\r\n this.tag.attributes[FileImageTagDataConsts.FileIdAttrName] = fileId;\r\n this.removeImageError();\r\n }\r\n\r\n removeImageError(){\r\n this.hasImageError = false;\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div>\r\n <div style=\"height: 10px;\">\r\n </div>\r\n \r\n <div *ngIf=\"hasImageError\" class=\"error-block\">\r\n Изображение не найдено по указанному идентификатору, возможно файл не существует или отсутствует на сервере.\r\n </div>\r\n\r\n <div *ngIf=\"hasFileId() && !hasImageError\">\r\n <img class=\"mx-auto d-block img-fluid\" [src]=\"getSrc()\" (error)=\"onErrorHandler()\"/>\r\n </div>\r\n\r\n <div *ngIf=\"!hasFileId()\">\r\n <h5>[Изображение не выбрано]</h5>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"!tag.presentOrEdit\">\r\n <div style=\"height: 10px;\"></div>\r\n\r\n <div style=\"overflow-x:auto;\">\r\n <mat-button-toggle-group [(ngModel)]=\"searchOrEdit\">\r\n <mat-button-toggle value=\"search\">\r\n Искать файл <mat-icon>search</mat-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"edit\">\r\n Указать по идентификатору <mat-icon>settings</mat-icon>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n \r\n\r\n <div style=\"height: 10px;\"></div>\r\n\r\n <div [hidden]=\"searchOrEdit !== 'search'\">\r\n <croco-html-file-id-select\r\n [labelText]=\"'Выбрать файл'\"\r\n [(fileId)]=\"tag.attributes['file-id']\"\r\n (onFileIdChanged)=\"onFileIdChanged($event)\">\r\n </croco-html-file-id-select>\r\n </div>\r\n\r\n <div [hidden]=\"searchOrEdit !== 'edit'\">\r\n <div>\r\n <mat-form-field class=\"w-100\">\r\n <input matInput placeholder=\"Идентификатор файла\" new-autocomplete=\"off\" autocomplete=\"off\"\r\n type=\"number\"\r\n [(ngModel)]=\"tag.attributes['file-id']\"\r\n (ngModelChange)=\"removeImageError()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n</div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'croco-html-xml-tag-html-view',\r\n templateUrl: './xml-tag-html-view.component.html',\r\n styleUrls: ['./xml-tag-html-view.component.css']\r\n})\r\nexport class XmlTagHtmlViewComponent {\r\n\r\n constructor() { }\r\n\r\n @Input()\r\n html: string = \"\";\r\n}\r\n","<div class=\"col\" [innerHTML]=\"html\">\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { SimpleTextTag } from '../../../extensions/TextSimpleMethods';\r\n\r\n@Component({\r\n selector: 'croco-html-xml-tag-text-view',\r\n templateUrl: './xml-tag-text-view.component.html',\r\n styleUrls: ['./xml-tag-text-view.component.css']\r\n})\r\nexport class XmlTagTextViewComponent implements OnInit {\r\n\r\n @Input()\r\n item: SimpleTextTag;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n}","<div *ngIf=\"item.data.validationResult.isSucceeded && item.data.horizontalAlignment === 'left'\" style=\"text-align: left;\">\r\n <span *ngIf=\"item.data.html.length === 0 || !item.data.html\"> </span>\r\n <span *ngIf=\"item.data.html.length > 0\" [innerHtml]=\"item.data.html\"></span>\r\n</div>\r\n\r\n<div *ngIf=\"item.data.validationResult.isSucceeded && item.data.horizontalAlignment === 'right'\" style=\"text-align: right;\">\r\n <span *ngIf=\"item.data.html.length === 0 || !item.data.html\"> </span>\r\n <span *ngIf=\"item.data.html.length > 0\" [innerHtml]=\"item.data.html\"></span>\r\n</div>\r\n\r\n<div *ngIf=\"item.data.validationResult.isSucceeded && item.data.horizontalAlignment === 'center'\" style=\"text-align: center;\">\r\n <span *ngIf=\"item.data.html.length === 0 || !item.data.html\"> </span>\r\n <span *ngIf=\"item.data.html.length > 0\" [innerHtml]=\"item.data.html\"></span>\r\n</div>\r\n\r\n<div *ngIf=\"!item.data.validationResult.isSucceeded\" class=\"red\" style=\"margin-top: 10px;\" >\r\n <h4>Допущена ошибка в теге <text></h4>\r\n <span>\r\n {{item.data.validationResult.message}}\r\n </span>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { GenericTextTag } from '../../../extensions/TextSimpleMethods';\r\n\r\n@Component({\r\n selector: 'croco-html-xml-tag-header-inner-text-view',\r\n templateUrl: './xml-tag-header-inner-text-view.component.html',\r\n styleUrls: ['./xml-tag-header-inner-text-view.component.css']\r\n})\r\nexport class XmlTagHeaderInnerTextViewComponent implements OnInit {\r\n\r\n @Input()\r\n item: GenericTextTag;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<h1 *ngIf=\"item.type === 'h1'\" \r\n [innerHtml]=\"item.data.html\">\r\n</h1>\r\n<h2 *ngIf=\"item.type === 'h2'\" \r\n [innerHtml]=\"item.data.html\">\r\n</h2>\r\n<h3 *ngIf=\"item.type === 'h3'\" \r\n [innerHtml]=\"item.data.html\">\r\n</h3>\r\n<h4 *ngIf=\"item.type === 'h4'\" \r\n [innerHtml]=\"item.data.html\">\r\n</h4>\r\n<h5 *ngIf=\"item.type === 'h5'\" \r\n [innerHtml]=\"item.data.html\">\r\n</h5>\r\n<h6 *ngIf=\"item.type === 'h6'\" \r\n [innerHtml]=\"item.data.html\">\r\n</h6>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { GenericTextTag } from '../../../extensions/TextSimpleMethods';\r\n\r\n@Component({\r\n selector: 'croco-html-xml-tag-header-text-view',\r\n templateUrl: './xml-tag-header-text-view.component.html',\r\n styleUrls: ['./xml-tag-header-text-view.component.css']\r\n})\r\nexport class XmlTagHeaderTextViewComponent implements OnInit {\r\n\r\n @Input()\r\n item: GenericTextTag;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div *ngIf=\"item.data.validationResult.isSucceeded && item.data.horizontalAlignment === 'left'\" style=\"text-align: left;\">\r\n <span *ngIf=\"item.data.html.length === 0 || !item.data.html\"> </span>\r\n <croco-html-xml-tag-header-inner-text-view *ngIf=\"item.data.html.length > 0\" [item]=\"item\">\r\n </croco-html-xml-tag-header-inner-text-view>\r\n</div>\r\n\r\n<div *ngIf=\"item.data.validationResult.isSucceeded && item.data.horizontalAlignment === 'right'\" style=\"text-align: right;\">\r\n <span *ngIf=\"item.data.html.length === 0 || !item.data.html\"> </span>\r\n <croco-html-xml-tag-header-inner-text-view *ngIf=\"item.data.html.length > 0\" [item]=\"item\">\r\n </croco-html-xml-tag-header-inner-text-view>\r\n</div>\r\n\r\n<div *ngIf=\"item.data.validationResult.isSucceeded && item.data.horizontalAlignment === 'center'\" style=\"text-align: center;\">\r\n <span *ngIf=\"item.data.html.length === 0 || !item.data.html\"> </span>\r\n\r\n <croco-html-xml-tag-header-inner-text-view *ngIf=\"item.data.html.length > 0\" [item]=\"item\">\r\n </croco-html-xml-tag-header-inner-text-view>\r\n</div>\r\n\r\n<div *ngIf=\"!item.data.validationResult.isSucceeded\" class=\"red\" style=\"margin-top: 10px;\" >\r\n <h4>Допущена ошибка в теге <text></h4>\r\n <span>\r\n {{item.data.validationResult.message}}\r\n </span>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'croco-html-raw-view',\n templateUrl: './html-raw-view.component.html',\n styleUrls: ['./html-raw-view.component.css']\n})\nexport class HtmlRawViewComponent implements OnInit {\n \n @Input()\n rawHtml = \"\";\n\n safeHtml : SafeHtml;\n isInitialized = false; \n\n constructor(private readonly _sanitizer: DomSanitizer) {\n }\n\n ngOnInit(): void {\n this.safeHtml = this._sanitizer.bypassSecurityTrustHtml(this.rawHtml);\n }\n}\n","<div [innerHTML]=\"safeHtml\">\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { InterfaceBlock } from '../../../extensions/InterfaceBlock';\r\nimport { FileImageTagData } from '../../../extensions';\r\nimport { ITagViewOptions } from '../../../models/models';\r\n\r\n@Component({\r\n selector: 'croco-html-file-image-tag-view',\r\n templateUrl: './file-image-tag-view.component.html',\r\n styleUrl: './file-image-tag-view.component.css'\r\n})\r\nexport class FileImageTagViewComponent implements OnInit {\r\n \r\n @Input()\r\n item: InterfaceBlock;\r\n\r\n @Input()\r\n viewOptions: ITagViewOptions = {\r\n useCustomImageUrlRenderer: false,\r\n renderImageUrl(fileId, sizeType) {\r\n return \"\";\r\n },\r\n } \r\n\r\n imageSrc = \"\";\r\n\r\n ngOnInit(): void {\r\n let data = this.item.data as FileImageTagData;\r\n\r\n this.imageSrc = this.viewOptions.useCustomImageUrlRenderer \r\n ? this.viewOptions.renderImageUrl(data.fileId, 'Medium')\r\n : data.src;\r\n }\r\n}\r\n","\r\n<img class=\"mx-auto d-block img-fluid\" [src]=\"imageSrc\"/>","import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { InterfaceBlock } from \"../../../extensions/InterfaceBlock\";\r\nimport { ITagViewOptions } from '../../../models/models';\r\n\r\n@Component({\r\n selector: 'croco-html-xml-tag-view',\r\n templateUrl: './xml-tag-view.component.html',\r\n styleUrls: ['./xml-tag-view.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class XmlTagViewComponent {\r\n\r\n @Input()\r\n viewOptions: ITagViewOptions = {\r\n useCustomImageUrlRenderer: false,\r\n renderImageUrl(fileId, sizeType) {\r\n return \"\";\r\n },\r\n }\r\n\r\n @Input()\r\n data:InterfaceBlock[] = [];\r\n\r\n constructor() {\r\n }\r\n\r\n}","<div>\r\n <div class=\"row\" *ngFor=\"let item of data\">\r\n <div *ngIf=\"item.type === 'text'\">\r\n <croco-html-xml-tag-text-view [item]=\"item\"></croco-html-xml-tag-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'html-raw'\">\r\n <croco-html-raw-view [rawHtml]=\"item.data.innerHTML\">\r\n </croco-html-raw-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'h1' || item.type === 'h2' || item.type === 'h3' || item.type === 'h4' || item.type === 'h5' || item.type === 'h6'\">\r\n <croco-html-xml-tag-header-text-view [item]=\"item\"></croco-html-xml-tag-header-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'file-image'\">\r\n <croco-html-file-image-tag-view [item]=\"item\" [viewOptions]=\"viewOptions\"></croco-html-file-image-tag-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'table'\">\r\n \r\n <croco-html-xml-tag-html-view *ngIf=\"item.validationResult.isSucceeded\" [html]=\"item.bootstrapHtml\">\r\n </croco-html-xml-tag-html-view>\r\n \r\n <app-tutor-baseapiresponse-banner \r\n *ngIf=\"item.validationResult && !item.validationResult.isSucceeded\" \r\n [message]=\"item.validationResult.message\">\r\n </app-tutor-baseapiresponse-banner>\r\n </div>\r\n \r\n <div *ngIf=\"item.type === 'rich-text'\">\r\n <croco-html-xml-tag-text-view [richTextData]=\"item\"></croco-html-xml-tag-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'external-video'\">\r\n <croco-html-xml-tag-external-video [data]=\"item\"></croco-html-xml-tag-external-video>\r\n </div>\r\n <div *ngIf=\"item.type === 'unsupported-tag'\" class=\"red\" style=\"margin-top: 10px;\" >\r\n <h4>Данный тег не поддерживается</h4>\r\n <span>\r\n {{item.data.tagString}}\r\n </span>\r\n </div>\r\n </div>\r\n</div>","import { BaseApiResponse, TableData, TableRowData } from './TableMethods';\r\nimport {AngularMaterialTableData} from \"../models/models\";\r\n\r\n\r\nexport class AngularMaterialTableMethods {\r\n static getAngularMaterialTableData(columns: string[], rows: TableRowData[]): AngularMaterialTableData {\r\n\r\n let data: object[] = [];\r\n\r\n for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {\r\n const row = rows[rowIndex];\r\n\r\n var elem = {};\r\n\r\n for (let columnIndex = 0; columnIndex < columns.length; columnIndex++) {\r\n const column = columns[columnIndex];\r\n\r\n elem[column] = row.columns[columnIndex].data.text;\r\n }\r\n\r\n data.push(elem);\r\n }\r\n\r\n return {\r\n displayedColumns: columns,\r\n data: data,\r\n };\r\n }\r\n\r\n static checkHeaders(tableData: TableData): BaseApiResponse {\r\n if(tableData.header === null){\r\n return {\r\n isSucceeded: false,\r\n message: \"Необходимо указать заголовок таблицы\"\r\n };\r\n }\r\n\r\n let columns: string[] = tableData.header.columns;\r\n\r\n var uniqueDislayedColumns = columns.filter((v, i, a) => a.indexOf(v) === i);\r\n\r\n if (uniqueDislayedColumns.length !== columns.length) {\r\n return {\r\n isSucceeded: false,\r\n message: \"Ошибка при обработке разметки таблицы. Обнаружены дубликаты заголовков.\"\r\n };\r\n }\r\n\r\n return {\r\n isSucceeded: true,\r\n message: \"Ok\"\r\n };\r\n }\r\n static checkAngularMaterialTableData(tableData: TableData, checkHeaders: boolean = true): BaseApiResponse {\r\n\r\n if(checkHeaders){\r\n var checkHeadersResult = this.checkHeaders(tableData);\r\n\r\n if(!checkHeadersResult.isSucceeded){\r\n return checkHeadersResult;\r\n }\r\n }\r\n\r\n let rows: TableRowData[] = tableData.rows;\r\n let columns: string[] = tableData.header.columns;\r\n\r\n for (let i = 0; i < rows.length; i++) {\r\n const row = rows[i];\r\n\r\n if (row.columns.length !== columns.length) {\r\n return {\r\n isSucceeded: false,\r\n message: `Ошибка при обработке разметки таблицы. `\r\n + `Количество колонок в каждой строке таблицы должно соотвествовать количеству колонок указанных в заголовке. `\r\n + `В строке таблицы №${i + 1} количество колонок = ${row.columns.length}, а должно быть ${columns.length}.`\r\n };\r\n }\r\n }\r\n\r\n return {\r\n isSucceeded: true,\r\n message: \"Ok\"\r\n };\r\n }\r\n}\r\n","import { BaseApiResponse } from \"./TableMethods\";\r\n\r\nexport const TextTag = \"text\";\r\n\r\nexport interface SimpleTextTag {\r\n type: \"text\",\r\n data: SimpleTextTagData\r\n}\r\n\r\nexport interface GenericTextTag {\r\n type: string,\r\n data: SimpleTextTagData\r\n}\r\n\r\nexport interface SimpleTextTagData {\r\n textTagName: string;\r\n text: string,\r\n html: string,\r\n horizontalAlignment: \"left\" | \"right\" | \"center\",\r\n validationResult: BaseApiResponse\r\n}\r\n\r\nexport class TextSimpleMethods {\r\n\r\n static supportedTags = [\"sup\", \"sub\", \"strong\", \"b\", \"i\", \"u\"];\r\n\r\n static ExtractTextTag(elem: HTMLElement): SimpleTextTag {\r\n var hAlignValue = elem.getAttribute(\"h-align\") ?? \"left\" as any;\r\n\r\n var data: SimpleTextTagData = {\r\n textTagName: elem.tagName.toLowerCase(),\r\n text: elem.innerText.trim().replace('\\n\\t', ''),\r\n html: elem.innerHTML.trim().replace('\\n\\t', ''),\r\n horizontalAlignment: hAlignValue,\r\n validationResult: {\r\n isSucceeded: true,\r\n message: \"Ok\"\r\n }\r\n };\r\n\r\n let result: SimpleTextTag = {\r\n type: TextTag,\r\n data: data\r\n };\r\n\r\n if(result.data.text === '\\n'){\r\n result.data.text = '';\r\n }\r\n if(result.data.html === '\\n'){\r\n result.data.html = '';\r\n }\r\n\r\n var alignmentVals = [\"left\", \"right\", \"center\"];\r\n\r\n if (alignmentVals.indexOf(hAlignValue) < 0) {\r\n\r\n result.data.validationResult = {\r\n isSucceeded: false,\r\n message: `Недопустимое значение атрибута h-align. Допустимые значения: ${alignmentVals.join(', ')}. `\r\n + 'Данный тег можно не указывать, по-умолчанию будет применено выравнивание слева.'\r\n };\r\n }\r\n\r\n var html = result.data.html;\r\n var htmlValidation = this.ValidateTextHtml(html);\r\n\r\n if(!htmlValidation.isSucceeded){\r\n result.data.validationResult = htmlValidation;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n static ValidateTextHtml(html: string) : BaseApiResponse{\r\n\r\n var p = document.createElement(\"p\");\r\n p.innerHTML = html;\r\n\r\n for (let i = 0; i < p.children.length; i++) {\r\n const element = p.children.item(i);\r\n\r\n var validationResult = this.ValidateTag(element);\r\n\r\n if(!validationResult.isSucceeded){\r\n return validationResult;\r\n }\r\n }\r\n\r\n return {\r\n isSucceeded:true,\r\n message: `Ok`\r\n }\r\n }\r\n\r\n static ValidateTag(element : Element): BaseApiResponse{\r\n let lowerTag = element.tagName.toLowerCase();\r\n\r\n if(!this.supportedTags.includes(lowerTag)){\r\n return {\r\n isSucceeded: false,\r\n message: `Тег <${lowerTag}> не поддерживается внутри тега <text>`\r\n }\r\n }\r\n\r\n for (let i = 0; i < element.children.length; i++) {\r\n const nElement = element.children.item(i);\r\n\r\n var innerValidationResult = this.ValidateTag(nElement);\r\n\r\n if(!innerValidationResult.isSucceeded){\r\n return innerValidationResult;\r\n }\r\n }\r\n\r\n return {\r\n isSucceeded: true,\r\n message: \"Ok\"\r\n };\r\n }\r\n}\r\n","import { InterfaceBlock } from \"./InterfaceBlock\";\r\nimport { FileImageTag, FileImageTagDataConsts } from './ImageMethods';\r\nimport { TableData, TableHeaderData, TableRowData } from './TableMethods';\r\nimport { SimpleTextTag, TextTag } from './TextSimpleMethods';\r\n\r\nexport class BootstrapTableMethods {\r\n\r\n static BuildTable(data: TableData): string {\r\n let result = `<table class=\"table table-bordered\">`;\r\n result += this.BuildHeader(data.header);\r\n result += this.BuildBody(data.rows);\r\n result += \"</table>\";\r\n\r\n return result;\r\n }\r\n\r\n static BuildHeader(data: TableHeaderData) {\r\n if (data === null) {\r\n return \"\";\r\n }\r\n\r\n let result = \"<thead>\";\r\n result += \"<tr>\";\r\n for (let index = 0; index < data.columns.length; index++) {\r\n result += `<th>${data.columns[index]}</th>`;\r\n }\r\n result += \"</tr>\";\r\n\r\n result += \"</thead>\";\r\n\r\n return result;\r\n }\r\n\r\n static BuildBody(rows: TableRowData[]) {\r\n let result = \"<tbody>\";\r\n\r\n for (let i = 0; i < rows.length; i++) {\r\n const row = rows[i];\r\n\r\n result += \"<tr>\";\r\n for (let j = 0; j < row.columns.length; j++) {\r\n const col = row.columns[j];\r\n\r\n result += `<td class=\"align-middle\">${this.BuildInnerTags(col.data.children)}</td>`;\r\n }\r\n result += \"</tr>\";\r\n }\r\n\r\n result += \"</tbody>\";\r\n return result;\r\n }\r\n\r\n static BuildInnerTags(tags: InterfaceBlock[]) {\r\n let result = \"\";\r\n for (let i = 0; i < tags.length; i++) {\r\n result += this.BuildInnerTag(tags[i]);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n static BuildInnerTag(data: InterfaceBlock): string {\r\n if (data.type === FileImageTagDataConsts.TagName) {\r\n let fileImageTag = data as FileImageTag;\r\n return `<img src=${fileImageTag.data.src} class=\"mx-auto d-block img-fluid\" />`;\r\n }\r\n else if(data.type === TextTag){\r\n\r\n let simpleTextTag = data as SimpleTextTag;\r\n\r\n var map = {\r\n [\"left\"]: \"text-start\",\r\n [\"center\"]: \"text-center\",\r\n [\"right\"]: \"text-end\"\r\n };\r\n\r\n if(!simpleTextTag.data.validationResult.isSucceeded){\r\n return `<span>Ошибка в тексте ${simpleTextTag.data.validationResult.message}</span>`;\r\n }\r\n\r\n return `<div class=\"${map[simpleTextTag.data.horizontalAlignment]}\"><span>${simpleTextTag.data.html}</span></div>`;\r\n }\r\n else {\r\n return `<p>Тег ${data.type} не поддерживается</p>`;\r\n }\r\n }\r\n}\r\n","import { AngularMaterialTableMethods } from './AngularMaterialTableMethods';\r\nimport { BootstrapTableMethods } from './BootstrapTableMethods';\r\nimport { HtmlExtractionMethods, HtmlExtractionOptions } from './HtmlExtractionMethods';\r\nimport { InterfaceBlock } from \"./InterfaceBlock\";\r\nimport { TextSimpleMethods } from './TextSimpleMethods';\r\n\r\nexport interface BaseApiResponse {\r\n isSucceeded: boolean;\r\n message: string;\r\n}\r\n\r\nexport interface TableHeaderData{\r\n type: \"table-header\";\r\n columns: string[];\r\n}\r\n\r\nexport interface TableRowColumnData {\r\n type: \"table-row-column-data\";\r\n data: {\r\n text: string;\r\n children: InterfaceBlock[];\r\n }\r\n}\r\n\r\nexport interface TableRowData {\r\n type: \"table-row-column\";\r\n columns: TableRowColumnData[];\r\n}\r\n\r\nexport interface TableData{\r\n header: TableHeaderData,\r\n rows: TableRowData[]\r\n}\r\n\r\nexport interface TableTagData{\r\n type: \"table\";\r\n data: TableData;\r\n}\r\n\r\nexport class TableTypes{\r\n static readonly TableRowColumnData = \"table-row-column-data\";\r\n static readonly Table = \"table\";\r\n static readonly TableRowColumn = \"table-row-column\";\r\n}\r\n\r\nexport class TableMethods {\r\n\r\n static getTableFromHtmlTag(tableTag: HTMLTableElement, options: HtmlExtractionOptions) {\r\n let tableData : TableData = {\r\n header: TableMethods.getHeader(tableTag),\r\n rows: TableMethods.getTableRows(tableTag, options)\r\n };\r\n\r\n var result = {\r\n type: TableTypes.Table,\r\n data: tableData,\r\n validationResult: this.checkTable(tableData),\r\n bootstrapHtml: \"\"\r\n }\r\n\r\n if(!result.validationResult){\r\n return result;\r\n }\r\n result.bootstrapHtml = BootstrapTableMethods.BuildTable(result.data);\r\n\r\n var angularMaterialTableDataCheck = AngularMaterialTableMethods.checkAngularMaterialTableData(tableData);\r\n\r\n if (!angularMaterialTableDataCheck.isSucceeded) {\r\n return {\r\n ...result,\r\n angularMaterialTableDataCheck\r\n };\r\n }\r\n\r\n return {\r\n ...result,\r\n angularMaterialTableDataCheck,\r\n html: tableTag.outerHTML,\r\n angularMaterialTableData: AngularMaterialTableMethods.getAngularMaterialTableData(tableData.header.columns, tableData.rows),\r\n };\r\n }\r\n\r\n static checkTable(tableData: TableData) : BaseApiResponse{\r\n\r\n let rows = tableData.rows;\r\n\r\n let prevRowCount = -1;\r\n for (let i = 0; i < rows.length; i++) {\r\n const row = rows[i];\r\n\r\n if (row.columns.length !== prevRowCount && prevRowCount != -1) {\r\n return {\r\n isSucceeded: false,\r\n message: `Ошибка при обработке разметки таблицы. `\r\n + `Количество колонок в каждой строке таблицы должно соотвествовать друг другу. `\r\n + `В строке таблицы №${i + 1} количество колонок = ${row.columns.length}, а в строке выше ${prevRowCount}.`\r\n };\r\n }\r\n prevRowCount = row.columns.length;\r\n }\r\n\r\n return {\r\n isSucceeded: true,\r\n message: \"Ok\"\r\n }\r\n }\r\n\r\n\r\n static getHeader(tableTag: HTMLTableElement) : TableHeaderData {\r\n let header = tableTag.tHead;\r\n\r\n if(header === null){\r\n return null;\r\n }\r\n\r\n let tr = header.children.item(0);\r\n\r\n let headerColumns: string[] = [];\r\n\r\n for (let j = 0; j < tr.children.length; j++) {\r\n const jElement = tr.children.item(j) as HTMLElement;\r\n\r\n headerColumns.push(jElement.innerHTML);\r\n }\r\n\r\n return {\r\n type: \"table-header\",\r\n columns: headerColumns\r\n };\r\n }\r\n\r\n static getTableRows(tableTag: HTMLTableElement, options: HtmlExtractionOptions): Array<TableRowData> {\r\n let tBody = tableTag.tBodies.item(0);\r\n\r\n let rows: TableRowData[] = [];\r\n\r\n for (let i = 0; i < tBody.children.length; i++) {\r\n const iElement = tBody.children.item(i);\r\n\r\n let rowColumns: TableRowColumnData[] = [];\r\n\r\n for (let j = 0; j < iElement.children.length; j++) {\r\n const jElement = iElement.children.item(j) as HTMLElement;\r\n\r\n let children = HtmlExtractionMethods.transformHtmlElementToBlocks(jElement, options);\r\n\r\n if(children.length === 0){\r\n var textTag = document.createElement(\"p\");\r\n textTag.innerHTML = jElement.innerHTML;\r\n\r\n var textElem = TextSimpleMethods.ExtractTextTag(textTag);\r\n\r\n children.push(textElem);\r\n }\r\n\r\n var result:TableRowColumnData = {\r\n type: TableTypes.TableRowColumnData,\r\n data: {\r\n text: jElement.innerHTML,\r\n children\r\n }\r\n };\r\n\r\n rowColumns.push(result);\r\n }\r\n\r\n rows.push({\r\n type: TableTypes.TableRowColumn,\r\n columns: rowColumns\r\n });\r\n }\r\n\r\n return rows;\r\n }\r\n}\r\n","export interface TextBlock{\r\n type: \"text-block\" | \"text-sup-block\" | \"text-sub-block\";\r\n data: {\r\n text: string;\r\n }\r\n }\r\n \r\n export interface LineBreakBlock {\r\n type: \"line-break\";\r\n }\r\n \r\n export interface RichTextData{\r\n type: \"rich-text\"\r\n data: {\r\n children: Array<TextBlock | LineBreakBlock>;\r\n }\r\n }\r\n\r\nexport class TextMethods {\r\n\r\n static textTags = [\"text\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"];\r\n\r\n static ExtractRichTextData(elem: HTMLElement): RichTextData {\r\n\r\n let children: Array<TextBlock | LineBreakBlock> = [];\r\n for (let i = 0; i < elem.children.length; i++) {\r\n const child = elem.children.item(i);\r\n\r\n if (child.tagName === \"text-block\".toUpperCase()) {\r\n children.push({\r\n type: \"text-block\",\r\n data: {\r\n text: child.innerHTML\r\n }\r\n });\r\n }\r\n else if (child.tagName === \"line-break\".toUpperCase()) {\r\n children.push({\r\n type: \"line-break\"\r\n });\r\n }\r\n }\r\n\r\n return {\r\n type: \"rich-text\",\r\n data: {\r\n children\r\n }\r\n };\r\n }\r\n}\r\n","import { ImageMethods } from \"./ImageMethods\";\r\nimport { InterfaceBlock } from \"./InterfaceBlock\";\r\nimport { TableMethods } from \"./TableMethods\";\r\nimport { TextMethods } from \"./TextMethods\";\r\nimport { GenericTextTag, TextSimpleMethods } from \"./TextSimpleMethods\";\r\nimport { ExternalVideoTagDataConsts, VideoMethods } from \"./VideoMethods\";\r\n\r\nexport interface HtmlExtractionOptions{\r\n useCustomDomain: boolean;\r\n domain: string;\r\n}\r\n\r\nexport class HtmlExtractionMethods {\r\n\r\n static ExtractHeaderTag(elem: HTMLElement, tagName: string): GenericTextTag {\r\n\r\n var data: GenericTextTag = TextSimpleMethods.ExtractTextTag(elem);\r\n data.type = tagName;\r\n\r\n return data;\r\n }\r\n\r\n static Extractors = {\r\n [\"TEXT\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => TextSimpleMethods.ExtractTextTag(elem),\r\n [\"FILE-IMAGE\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => ImageMethods.ExtractImage(elem, options),\r\n [\"TABLE\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => TableMethods.getTableFromHtmlTag(elem as HTMLTableElement, options),\r\n [\"RICH-TEXT\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => TextMethods.ExtractRichTextData(elem),\r\n [\"HTML-RAW\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => ({\r\n type: \"html-raw\",\r\n data: {\r\n innerHTML: elem.innerHTML\r\n }\r\n }),\r\n [\"H1\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => HtmlExtractionMethods.ExtractHeaderTag(elem, \"h1\"),\r\n [\"H2\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => HtmlExtractionMethods.ExtractHeaderTag(elem, \"h2\"),\r\n [\"H3\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => HtmlExtractionMethods.ExtractHeaderTag(elem, \"h3\"),\r\n [\"H4\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => HtmlExtractionMethods.ExtractHeaderTag(elem, \"h4\"),\r\n [\"H5\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => HtmlExtractionMethods.ExtractHeaderTag(elem, \"h5\"),\r\n [\"H6\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => HtmlExtractionMethods.ExtractHeaderTag(elem, \"h6\"),\r\n [ExternalVideoTagDataConsts.TagName.toUpperCase()]: (elem: HTMLElement, options: HtmlExtractionOptions) => VideoMethods.ExtractExternalVideoTag(elem)\r\n };\r\n\r\n static transformHtmlElementToBlocks(element: HTMLElement, options: HtmlExtractionOptions): InterfaceBlock[] {\r\n var data: InterfaceBlock[] = [];\r\n\r\n for (let i = 0; i < element.children.length; i++) {\r\n var elem = element.children.item(i) as HTMLElement;\r\n\r\n if (!HtmlExtractionMethods.Extractors.hasOwnProperty(elem.tagName)) {\r\n data.push({\r\n type: \"unsupported-tag\",\r\n data: {\r\n tagString: elem.outerHTML\r\n }\r\n });\r\n }\r\n else {\r\n var extractor = HtmlExtractionMethods.Extractors[elem.tagName];\r\n var result = extractor(elem, options);\r\n data.push(result);\r\n }\r\n }\r\n\r\n return data;\r\n }\r\n\r\n static transformHtmlStringToBlocks(value: string, options: HtmlExtractionOptions): InterfaceBlock[] {\r\n\r\n if (value === undefined || value === null) {\r\n return [];\r\n }\r\n\r\n value = value\r\n .replace('\\n', '')\r\n .replace('\\t', '');\r\n\r\n var div = document.createElement(\"div\");\r\n div.innerHTML = value;\r\n\r\n return this.transformHtmlElementToBlocks(div, options);\r\n }\r\n}\r\n","export class HtmlRawTagDataConsts {\r\n static TagName = \"html-raw\";\r\n}\r\n","import { HtmlBodyTag } from \"../models/models\";\r\nimport { HtmlExtractionMethods, HtmlExtractionOptions } from \"./HtmlExtractionMethods\";\r\nimport { InterfaceBlock } from \"./InterfaceBlock\";\r\nimport { HtmlRawTagDataConsts } from \"./HtmlRawTagDataConsts\";\r\nimport { FileImageTagData, FileImageTagDataConsts } from \"./ImageMethods\";\r\nimport { TextMethods } from \"./TextMethods\";\r\nimport { SimpleTextTagData } from \"./TextSimpleMethods\";\r\nimport { ExternalVideoTagDataConsts } from \"./VideoMethods\";\r\n\r\nexport class BodyTagsExtensions {\r\n\r\n static getDescription(tagName: string){\r\n var descriptions = {\r\n \"text\": \"Текст\",\r\n \"h1\": \"Заголовок 1 уровня\",\r\n \"h2\": \"Заголовок 2 уровня\",\r\n \"h3\": \"Заголовок 3 уровня\",\r\n \"h4\": \"Заголовок 4 уровня\",\r\n \"h5\": \"Заголовок 5 уровня\",\r\n \"h6\": \"Заголовок 6 уровня\",\r\n [FileImageTagDataConsts.TagName]: \"Изображение\",\r\n [ExternalVideoTagDataConsts.TagName]: \"Внешнее видео YouTube\",\r\n [HtmlRawTagDataConsts.TagName]: \"Html разметка\"\r\n };\r\n\r\n return descriptions[tagName];\r\n }\r\n\r\n static toHtml(bodyTags: HtmlBodyTag[]): string{\r\n let htmls = bodyTags.map(x => {\r\n if(TextMethods.textTags.includes(x.tagDescription.tag)){\r\n return `<${x.tagDescription.tag} h-align=\"${x.attributes['h-align']}\">${x.innerHtml}</${x.tagDescription.tag}>`;\r\n }\r\n\r\n if(x.tagDescription.tag === ExternalVideoTagDataConsts.TagName){\r\n return `<${x.tagDescription.tag} type=\"${x.attributes['type']}\" link=\"${x.attributes['link']}\">${x.innerHtml}</${x.tagDescription.tag}>`\r\n }\r\n\r\n if(x.tagDescription.tag === \"html-raw\"){\r\n return `<${x.tagDescription.tag}>${x.innerHtml}</${x.tagDescription.tag}>`\r\n }\r\n\r\n return BodyTagsExtensions.imageTagToHtml(x);\r\n });\r\n\r\n let result = \"\";\r\n\r\n for (let index = 0; index < htmls.length; index++) {\r\n const element = htmls[index];\r\n\r\n result += element;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n static imageTagToHtml(imageTag: HtmlBodyTag){\r\n\r\n var attrStr = \"\";\r\n\r\n var attrValue = imageTag.attributes[FileImageTagDataConsts.FileIdAttrName];\r\n if(imageTag.attributes.hasOwnProperty(FileImageTagDataConsts.FileIdAttrName) && attrValue){\r\n attrStr = `${FileImageTagDataConsts.FileIdAttrName}=\"${attrValue}\"`;\r\n }\r\n\r\n return `<${FileImageTagDataConsts.TagName} ${attrStr}></${FileImageTagDataConsts.TagName}>`;\r\n }\r\n\r\n static getBodyTags(html:string, options: HtmlExtractionOptions){\r\n let result = HtmlExtractionMethods.transformHtmlStringToBlocks(html, options);\r\n return result.map(x => BodyTagsExtensions.toBodyTag(x));\r\n }\r\n\r\n static sanitizeInnerHtml(html:string):string{\r\n return html.trim().replace('\\n\\t', '');\r\n }\r\n\r\n static toBodyTag(data: InterfaceBlock): HtmlBodyTag {\r\n if (TextMethods.textTags.includes(data.type)) {\r\n let textTagData = data.data as SimpleTextTagData;\r\n\r\n return {\r\n presentOrEdit: true,\r\n tagDescription: {\r\n tag: textTagData.textTagName,\r\n displayValue: BodyTagsExtensions.getDescription(data.type)\r\n },\r\n attributes: { \"h-align\": textTagData.horizontalAlignment },\r\n innerHtml: BodyTagsExtensions.sanitizeInnerHtml(textTagData.html)\r\n };\r\n }\r\n\r\n if(data.type === FileImageTagDataConsts.TagName){\r\n\r\n let fileData = data.data as FileImageTagData;\r\n\r\n let attrs = {};\r\n\r\n if(fileData.fileId) {\r\n attrs[FileImageTagDataConsts.FileIdAttrName] = fileData.fileId;\r\n }\r\n\r\n return {\r\n presentOrEdit: true,\r\n tagDescription: {\r\n tag: FileImageTagDataConsts.TagName,\r\n displayValue: BodyTagsExtensions.getDescription(data.type)\r\n },\r\n attributes: attrs,\r\n innerHtml: \"\"\r\n };\r\n }\r\n\r\n if(data.type === ExternalVideoTagDataConsts.TagName){\r\n let fileData = data.data as ExternalVideoTagDataConsts;\r\n\r\n return {\r\n presentOrEdit: true,\r\n tagDescription: {\r\n tag: ExternalVideoTagDataConsts.TagName,\r\n displayValue: BodyTagsExtensions.getDescription(data.type)\r\n },\r\n attributes: fileData,\r\n innerHtml: \"\"\r\n };\r\n }\r\n\r\n if(data.type === HtmlRawTagDataConsts.TagName){\r\n\r\n return {\r\n presentOrEdit: true,\r\n tagDescription: {\r\n tag: HtmlRawTagDataConsts.TagName,\r\n displayValue: BodyTagsExtensions.getDescription(data.type)\r\n },\r\n attributes: {},\r\n innerHtml: BodyTagsExtensions.sanitizeInnerHtml(data.data[\"innerHTML\"])\r\n };\r\n }\r\n\r\n return {\r\n presentOrEdit: true,\r\n tagDescription: {\r\n tag: \"unsupported-tag\",\r\n displayValue: \"Неподдерживаемый тег\"\r\n },\r\n attributes: { },\r\n innerHtml: JSON.stringify(data)\r\n };\r\n }\r\n}\r\n","export class XmlExtensions{\r\n public static formatXml(xml:string, tab:string = '\\t'):string { // tab = optional indent value, default is tab (\\t)\r\n var formatted = '', indent= '';\r\n tab = tab || '\\t';\r\n xml.split(/>\\s*</).forEach(function(node) {\r\n if (node.match( /^\\/\\w/ )) indent = indent.substring(tab.length); // decrease indent by one 'tab'\r\n formatted += indent + '<' + node + '>\\r\\n';\r\n if (node.match( /^<?\\w[^>]*[^\\/]$/ )) indent += tab; // increase indent\r\n });\r\n return formatted.substring(1, formatted.length-3);\r\n }\r\n\r\n public static tagsToLower(xml: string): string{\r\n xml = this.replaceTagToLower(xml, \"Body\");\r\n xml = this.replaceTagToLower(xml, \"Image\");\r\n xml = this.replaceTagToLower(xml, \"Text\");\r\n\r\n return xml;\r\n }\r\n\r\n static replaceTagToLower(xml: string, tag: string) : string{\r\n return xml\r\n .replace(new RegExp(`<${tag}`, 'g'), `<${tag.toLowerCase()}`)\r\n .replace(new RegExp(`</${tag}>`, 'g'), `</${tag.toLowerCase()}>`);\r\n }\r\n}","import { HtmlRawTagDataConsts } from '../../../extensions/HtmlRawTagDataConsts';\r\nimport { FileImageTagDataConsts } from '../../../extensions/ImageMethods';\r\nimport { ExternalVideoTagDataConsts } from '../../../extensions/VideoMethods';\r\nimport { TagItem } from '../../../models/models';\r\n\r\nexport class DefaultTags {\r\n static tags: TagItem[] = [\r\n { tag: FileImageTagDataConsts.TagName, displayValue: 'Изображение' },\r\n { tag: ExternalVideoTagDataConsts.TagName, displayValue: 'Внешнее видео Youtube' },\r\n { tag: 'text', displayValue: 'Текст' },\r\n { tag: 'h1', displayValue: 'Заголовок 1 уровня' },\r\n { tag: 'h2', displayValue: 'Заголовок 2 уровня' },\r\n { tag: 'h3', displayValue: 'Заголовок 3 уровня' },\r\n { tag: 'h4', displayValue: 'Заголовок 4 уровня' },\r\n { tag: 'h5', displayValue: 'Заголовок 5 уровня' },\r\n { tag: 'h6', displayValue: 'Заголовок 6 уровня' },\r\n ];\r\n\r\n static htmlRawTag: TagItem = {\r\n tag: HtmlRawTagDataConsts.TagName, displayValue: 'Html разметка'\r\n };\r\n\r\n static getTags(useHtmlRaw: boolean): TagItem[] {\r\n var result = [...DefaultTags.tags];\r\n\r\n if (useHtmlRaw) {\r\n result.push(DefaultTags.htmlRawTag);\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { HtmlBodyTag } from '../../../models/models';\r\n\r\n@Component({\r\n selector: 'croco-html-text-editor',\r\n templateUrl: './text-editor.component.html',\r\n styleUrls: ['./text-editor.component.css']\r\n})\r\nexport class TextEditorComponent implements OnInit {\r\n\r\n\r\n @Input()\r\n tag: HtmlBodyTag;\r\n\r\n @Output()\r\n onTagUpdated = new EventEmitter<HtmlBodyTag>();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n getInnerHtml(){\r\n return `<${this.tag.tagDescription.tag}>${this.tag.innerHtml}<${this.tag.tagDescription.tag}/>`;\r\n }\r\n}\r\n","<div *ngIf=\"tag.presentOrEdit\">\r\n <div style=\"height: 10px;\">\r\n </div>\r\n\r\n <div style=\"text-align: left;\" *ngIf=\"tag.attributes['h-align'] === 'left'\" [innerHtml]=\"getInnerHtml()\">\r\n </div>\r\n <div style=\"text-align: right;\" *ngIf=\"tag.attributes['h-align'] === 'right'\" [innerHtml]=\"getInnerHtml()\">\r\n </div>\r\n <div style=\"text-align: center;\" *ngIf=\"tag.attributes['h-align'] === 'center'\" [innerHtml]=\"getInnerHtml()\">\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"!tag.presentOrEdit\">\r\n <div style=\"overflow-x: auto;\">\r\n <mat-button-toggle-group [(ngModel)]=\"tag.attributes['h-align']\">\r\n <mat-button-toggle value=\"center\">\r\n По центру <mat-icon>format_align_center</mat-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"left\">\r\n Слева <mat-icon>format_align_left</mat-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"right\">\r\n Справа <mat-icon> format_align_right</mat-icon>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n\r\n <div style=\"height: 10px;\">\r\n </div>\r\n <div>\r\n <mat-form-field class=\"w-100\">\r\n <textarea matInput cdkTextareaAutosize #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n placeholder=\"Внутренняя разметка текстового тега\"\r\n [(ngModel)]=\"tag.innerHtml\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { TextMethods } from '../../../extensions/TextMethods';\r\nimport { HtmlBodyTag } from '../../../models/models';\r\n\r\n@Component({\r\n selector: 'croco-html-main-editor-block',\r\n templateUrl: './main-editor-block.component.html',\r\n styleUrls: ['./main-editor-block.component.css']\r\n})\r\nexport class MainEditorBlockComponent implements OnInit {\r\n\r\n textTags = TextMethods.textTags;\r\n\r\n @Input()\r\n tag:HtmlBodyTag;\r\n\r\n @Output()\r\n onTagSaved = new EventEmitter<HtmlBodyTag>();\r\n\r\n @Output()\r\n onTagRemoved = new EventEmitter<HtmlBodyTag>();\r\n\r\n constructor() { }\r\n\r\n tagUpdatedHandler(tag:HtmlBodyTag):void{\r\n }\r\n\r\n save(){\r\n this.tag.presentOrEdit = true;\r\n this.onTagSaved.emit(this.tag);\r\n }\r\n\r\n deleteItem(){\r\n this.onTagRemoved.emit(this.tag);\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","<div>\r\n <div>\r\n <div *ngIf=\"textTags.includes(tag.tagDescription.tag)\">\r\n <croco-html-text-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\r\n </croco-html-text-editor>\r\n </div>\r\n\r\n <div *ngIf=\"tag.tagDescription.tag === 'file-image'\"> \r\n <croco-html-image-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\r\n </croco-html-image-editor>\r\n </div>\r\n\r\n <div *ngIf=\"tag.tagDescription.tag === 'external-video'\">\r\n <croco-html-external-video-block (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\r\n </croco-html-external-video-block>\r\n </div>\r\n\r\n <div *ngIf=\"tag.tagDescription.tag === 'html-raw'\">\r\n <croco-html-html-raw-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\r\n </croco-html-html-raw-editor>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"d-flex justify-content-end align-self-center\">\r\n <div>\r\n <button *ngIf=\"tag.presentOrEdit\" (click)=\"tag.presentOrEdit = false\" mat-icon-button>\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button *ngIf=\"!tag.presentOrEdit\" (click)=\"save()\" mat-icon-button>\r\n <mat-icon>save</mat-icon>\r\n </button>\r\n <button (click)=\"deleteItem()\" mat-icon-button color=\"warn\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { AfterViewInit, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { BodyTagsExtensions } from '../../../extensions/BodyTagsExtensions';\r\nimport { FileImageTagDataConsts } from '../../../extensions/ImageMethods';\r\nimport { TextMethods } from '../../../extensions/TextMethods';\r\nimport { ExternalVideoTagDataConsts, ExternalVideoSupportedTypes } from '../../../extensions/VideoMethods';\r\nimport { XmlExtensions } from '../../../extensions/XmlExtensions';\r\nimport { TagItem, HtmlBodyTag } from '../../../models/models';\r\nimport { FilePostingStarted } from '../../upload-files-btn/upload-files-btn.component';\r\nimport { DefaultTags } from './DefaultTags';\r\n\r\n@Component({\r\n selector: 'croco-visual-editor',\r\n templateUrl: './visual-editor.component.html',\r\n styleUrls: ['./visual-editor.component.css']\r\n})\r\nexport class VisualEditorComponent implements OnInit, AfterViewInit {\r\n\r\n isLoading = false;\r\n loadingText = \"Идёт загрузка\";\r\n\r\n @Input()\r\n showMarkUp = true;\r\n\r\n tags: TagItem[] = [];\r\n\r\n selectedValue: string;\r\n\r\n @Input()\r\n useHtmlRaw = false;\r\n\r\n @Input()\r\n @Output()\r\n html: string = \"\";\r\n\r\n isHtmlSet(){\r\n return this.html.startsWith(\"<body>\");\r\n }\r\n\r\n clearHtml(){\r\n this.html = \"\";\r\n this.recalculateBodyTags();\r\n }\r\n\r\n getHtml(){\r\n this.recalculateHtml();\r\n return this.html;\r\n }\r\n\r\n @Output()\r\n onHtmlChanged = new EventEmitter<string>();\r\n\r\n @Output()\r\n rendered = new EventEmitter<boolean>();\r\n\r\n bodyTags: HtmlBodyTag[] = [];\r\n\r\n constructor(\r\n private _cdref: ChangeDetectorRef) { }\r\n\r\n ngAfterViewInit(): void {\r\n this.rendered.emit(true);\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this._cdref.detectChanges();\r\n }\r\n\r\n addTag(): void {\r\n let tagDescription = this.tags\r\n .find(x => x.tag === this.selectedValue);\r\n\r\n let attrs = {};\r\n let innerHtml = \"\";\r\n\r\n if(TextMethods.textTags.includes(tagDescription.tag)){\r\n attrs[\"h-align\"] = \"left\";\r\n innerHtml = \"Введите ваш текст\";\r\n }\r\n else if(tagDescription.tag == ExternalVideoTagDataConsts.TagName){\r\n attrs[ExternalVideoTagDataConsts.VideoTypeAttrName] = ExternalVideoSupportedTypes.Youtube;\r\n attrs[ExternalVideoTagDataConsts.LinkAttrName] = null;\r\n }\r\n else{\r\n attrs[FileImageTagDataConsts.FileIdAttrName] = null;\r\n }\r\n\r\n this.bodyTags.push({\r\n tagDescription,\r\n innerHtml,\r\n attributes: attrs,\r\n presentOrEdit: true\r\n });\r\n\r\n this.recalculateHtml();\r\n }\r\n\r\n postFilesStartedEventHandler(model:FilePostingStarted){\r\n this.loadingText = \"Файлы загружаются на сервер\";\r\n this.isLoading = true;\r\n }\r\n\r\n addTagCustom(tag: HtmlBodyTag){\r\n this.bodyTags.push(tag);\r\n this.recalculateHtml();\r\n }\r\n\r\n filesTagsReadyHandler(tags: HtmlBodyTag[]){\r\n for(let i = 0; i < tags.length; i++){\r\n this.bodyTags.push(tags[i]);\r\n }\r\n this.recalculateHtml();\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n drop(event: CdkDragDrop<object[]>) {\r\n moveItemInArray(this.bodyTags, event.previousIndex, event.currentIndex);\r\n this.recalculateHtml();\r\n }\r\n\r\n onTagSavedHandler(tag: HtmlBodyTag){\r\n this.recalculateHtml();\r\n }\r\n\r\n onTagRemovedHandler(index: number){\r\n this.bodyTags.splice(index, 1);\r\n this.recalculateHtml();\r\n }\r\n\r\n recalculateHtml(){\r\n let result = BodyTagsExtensions.toHtml(this.bodyTags);\r\n this.html = XmlExtensions.formatXml(\"<body>\" + result + \"</body>\");\r\n this.onHtmlChanged.emit(this.html);\r\n }\r\n\r\n recalculateBodyTags(){\r\n this.bodyTags = BodyTagsExtensions.getBodyTags(this.html, {useCustomDomain: false, domain: \"\"});\r\n }\r\n\r\n ngOnInit(): void {\r\n this.recalculateBodyTags();\r\n\r\n this.tags = DefaultTags.getTags(this.useHtmlRaw);\r\n this.selectedValue = this.tags[0].tag;\r\n }\r\n}\r\n","<div *ngIf=\"isLoading\">\r\n <div>\r\n <mat-spinner style=\"margin:0 auto;\"></mat-spinner>\r\n <div style=\"text-align: center;\">{{loadingText}}</div>\r\n </div>\r\n <div style=\"height: 10px;\"></div>\r\n</div>\r\n\r\n<div [hidden]=\"isLoading\">\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div *ngFor=\"let tag of bodyTags; let i = index\" cdkDrag>\r\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\r\n <mat-card-content>\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"example-handle\" cdkDragHandle>\r\n <svg width=\"24px\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path\r\n d=\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\">\r\n </path>\r\n <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n </svg>\r\n </div>\r\n <div>\r\n <mat-chip-listbox aria-label=\"Tag display value\">\r\n <mat-chip-option color=\"primary\"\r\n selected>{{tag.tagDescription.displayValue}}</mat-chip-option>\r\n </mat-chip-listbox>\r\n </div>\r\n </div>\r\n\r\n <div style=\"height: 15px;\"></div>\r\n\r\n <croco-html-main-editor-block [tag]=\"tag\" (onTagSaved)=\"onTagSavedHandler($event)\"\r\n (onTagRemoved)=\"onTagRemovedHandler(i)\">\r\n </croco-html-main-editor-block>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div style=\"height: 10px;\">\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<div [hidden]=\"isLoading\">\r\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\r\n <mat-card-content>\r\n <div class=\"row d-flex align-items-center\">\r\n <div class=\"col-12\">\r\n <mat-form-field class=\"w-100\" appearance=\"outline\">\r\n <mat-label>Выберите тег</mat-label>\r\n <mat-select [(ngModel)]=\"selectedValue\">\r\n <mat-option *ngFor=\"let tag of tags\" [value]=\"tag.tag\">\r\n {{tag.displayValue}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-12\">\r\n <button (click)=\"addTag()\" class=\"w-100\" mat-stroked-button>\r\n Добавить тег\r\n </button>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div style=\"height: 10px;\">\r\n </div>\r\n</div>\r\n\r\n<div [hidden]=\"isLoading\">\r\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\r\n <mat-card-content>\r\n <div class=\"row d-flex align-items-center\">\r\n <div class=\"col-12\">\r\n <croco-html-add-files-btn (filesTagsReady)=\"filesTagsReadyHandler($event)\"\r\n (postFilesStarted)=\"postFilesStartedEventHandler($event)\" class=\"w-100\">\r\n </croco-html-add-files-btn>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div style=\"height: 10px;\">\r\n </div>\r\n</div>","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { HtmlExtractionMethods } from '../extensions/HtmlExtractionMethods';\r\nimport { InterfaceBlock } from \"../extensions/InterfaceBlock\";\r\n\r\n@Pipe({\r\n name: 'topreview'\r\n})\r\nexport class ToPreviewPipe implements PipeTransform {\r\n transform(value: string): InterfaceBlock[] {\r\n return HtmlExtractionMethods.transformHtmlStringToBlocks(value, {\r\n useCustomDomain: false,\r\n domain: \"\"\r\n });\r\n }\r\n}\r\n","import { AfterContentChecked, AfterViewInit, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ClipboardService } from 'ngx-clipboard';\r\nimport { VisualEditorComponent } from '../visual-editor/visual-editor.component';\r\n\r\n@Component({\r\n selector: 'croco-html-main-editor',\r\n templateUrl: './main-editor.component.html',\r\n styleUrls: ['./main-editor.component.css']\r\n})\r\nexport class MainEditorComponent implements OnInit, AfterContentChecked, AfterViewInit {\r\n\r\n visualEditorRendered = false;\r\n \r\n @ViewChild(\"visualEditor\", { static: true })\r\n visualEditor: VisualEditorComponent;\r\n\r\n @Input()\r\n showMarkUp = true;\r\n\r\n @Input()\r\n useHtmlRaw = false;\r\n\r\n @Input()\r\n @Output()\r\n html: string = \"\";\r\n\r\n @Output()\r\n onHtmlChanged = new EventEmitter<string>();\r\n\r\n constructor(private _clipboardService: ClipboardService,\r\n private _snackBar: MatSnackBar,\r\n private _cdref: ChangeDetectorRef) { }\r\n \r\n ngAfterViewInit(): void {\r\n this.recalculateBodyTags();\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this._cdref.detectChanges();\r\n }\r\n\r\n visualEditorRenderedHandler(){\r\n this.visualEditorRendered = true;\r\n this.recalculateBodyTags();\r\n }\r\n\r\n onHtmlChangedHandler(html: string) {\r\n this.html = html;\r\n this.onHtmlChanged.emit(html);\r\n }\r\n\r\n textAreaModelChangedHandler(){\r\n this.recalculateBodyTags();\r\n this.onHtmlChangedHandler(this.html);\r\n }\r\n\r\n recalculateBodyTags() {\r\n this.visualEditor.html = this.html;\r\n this.visualEditor.recalculateBodyTags();\r\n }\r\n\r\n copyMarkUp() {\r\n this._snackBar.open(\"Разметка скопирована в буфер обмена\", \"Закрыть\", { duration: 1500 });\r\n this._clipboardService.copy(this.html);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.visualEditor.recalculateBodyTags();\r\n }\r\n}\r\n","<mat-tab-group>\r\n <mat-tab label=\"Визуальный редактор\">\r\n\r\n <div style=\"height: 20px;\"></div>\r\n\r\n <croco-visual-editor #visualEditor\r\n [useHtmlRaw]=\"useHtmlRaw\"\r\n [html]=\"html\"\r\n (onHtmlChanged)=\"onHtmlChangedHandler($event)\"\r\n (rendered)=\"visualEditorRenderedHandler()\">\r\n </croco-visual-editor>\r\n\r\n <div style=\"height: 20px;\"></div>\r\n\r\n </mat-tab>\r\n\r\n <mat-tab label=\"Разметка\">\r\n <div style=\"height: 10px;\"></div>\r\n <div *ngIf=\"visualEditorRendered\">\r\n <mat-form-field class=\"w-100\">\r\n <textarea matInput cdkTextareaAutosize #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n placeholder=\"Исходный код\" [(ngModel)]=\"html\"\r\n (ngModelChange)=\"textAreaModelChangedHandler()\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n\r\n <button (click)=\"copyMarkUp()\"\r\n mat-raised-button color=\"primary\">\r\n Копировать разметку\r\n </button>\r\n </mat-tab>\r\n <mat-tab label=\"Результат\">\r\n <mat-card style=\"padding: 2px;\" class=\"mat-card\">\r\n <mat-card-content>\r\n <croco-html-xml-tag-view [data]=\"html | topreview\">\r\n </croco-html-xml-tag-view>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-tab>\r\n</mat-tab-group>\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { RichTextData } from \"../extensions/TextMethods\";\r\n\r\n@Pipe({\r\n name: 'richTextToHtml'\r\n})\r\nexport class RichTextToHtmlPipe implements PipeTransform {\r\n\r\n transform(value: RichTextData): string {\r\n let result = \"\";\r\n\r\n for (let i = 0; i < value.data.children.length; i++) {\r\n const child = value.data.children[i];\r\n\r\n if (child.type === \"text-block\") {\r\n result += `<span>${child.data.text}</span>`;\r\n }\r\n else if (child.type === \"line-break\") {\r\n result += \"</br>\";\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { RichTextData } from '../../../extensions/TextMethods';\r\n\r\n@Component({\r\n selector: 'croco-html-xml-tag-rich-text-view',\r\n templateUrl: './xml-tag-rich-text-view.component.html',\r\n styleUrls: ['./xml-tag-rich-text-view.component.css']\r\n})\r\nexport class XmlTagRichTextViewComponent implements OnInit {\r\n\r\n @Input()\r\n richTextData: RichTextData = null;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n \r\n}\r\n","<div *ngIf=\"richTextData\" [innerHtml]=\"richTextData | richTextToHtml\">\r\n</div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'croco-html-xml-tag-table-view',\r\n templateUrl: './xml-tag-table-view.component.html',\r\n styleUrls: ['./xml-tag-table-view.component.css']\r\n})\r\nexport class XmlTagTableViewComponent {\r\n\r\n @Input()\r\n displayedColumns: string[] = [];\r\n\r\n @Input()\r\n data: object;\r\n}\r\n","<table mat-table [dataSource]=\"data\" class=\"mat-elevation-z8 w-100 example-container\">\r\n <ng-container [matColumnDef]=\"column\" *ngFor=\"let column of displayedColumns\">\r\n <th mat-header-cell *matHeaderCellDef> {{column}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element[column]}} </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n</table>","import { Component, Input } from '@angular/core';\nimport { ITagViewOptions } from '../../models/models';\n\n@Component({\n selector: 'croco-html-view',\n templateUrl: './html-view.component.html',\n styleUrls: ['./html-view.component.css']\n})\nexport class HtmlViewComponent {\n @Input()\n html: string = \"<body></body>\";\n\n @Input()\n viewOptions: ITagViewOptions = {\n useCustomImageUrlRenderer: false,\n renderImageUrl(fileId, sizeType) {\n return \"\";\n },\n }\n}\n","<croco-html-xml-tag-view [data]=\"html | topreview\" [viewOptions]=\"viewOptions\"></croco-html-xml-tag-view>","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: 'tagToSpan'\r\n})\r\nexport class TagToSpanPipe implements PipeTransform {\r\n transform(value: string[]): string {\r\n return value.map(x => (`<b>${x}</b>`)).join(' | ')\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { BodyTagsExtensions } from '../extensions/BodyTagsExtensions';\r\nimport { HtmlBodyTag } from '../models/models';\r\n\r\n@Pipe({\r\n name: 'tohtmlbodytags'\r\n})\r\nexport class ToHtmlBodyTagsPipe implements PipeTransform {\r\n \r\n transform(value: string): HtmlBodyTag[] {\r\n return BodyTagsExtensions.getBodyTags(value, {useCustomDomain: false, domain: \"\"});\r\n } \r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { HtmlExtractionMethods, HtmlExtractionOptions } from '../extensions/HtmlExtractionMethods';\r\nimport { InterfaceBlock } from \"../extensions/InterfaceBlock\";\r\n\r\n@Pipe({\r\n name: 'topreviewhtml'\r\n})\r\nexport class ToPreviewHtmlPipe implements PipeTransform {\r\n transform(value: string, options: HtmlExtractionOptions): InterfaceBlock[] {\r\n return HtmlExtractionMethods.transformHtmlStringToBlocks(value, options);\r\n }\r\n}\r\n","import { XmlExtensions } from './XmlExtensions';\r\n\r\nexport class TableBuilder {\r\n static getTableMarkUp(rows: number, cols: number, generateHeaders: boolean): string {\r\n rows = +rows;\r\n cols = +cols;\r\n\r\n let result = \"<table>\";\r\n \r\n if(generateHeaders){\r\n result += TableBuilder.getTableHeaderMarkUp(cols);\r\n }\r\n \r\n result += TableBuilder.getTableBodyMarkUp(cols, rows);\r\n result += \"</table>\";\r\n\r\n return XmlExtensions.formatXml(result);\r\n }\r\n\r\n static getTableHeaderMarkUp(cols: number): string {\r\n\r\n let result = \"<thead><tr>\";\r\n\r\n for (let i = 0; i < cols; i++) {\r\n result += `<th>Колонка #${i + 1}</th>`;\r\n }\r\n\r\n result += \"</tr></thead>\";\r\n\r\n return result;\r\n }\r\n\r\n static getTableBodyMarkUp(cols: number, rows: number): string {\r\n\r\n let result = \"<tbody>\";\r\n\r\n for (let row = 0; row < rows; row++) {\r\n result += \"<tr>\";\r\n for (let i = 0; i < cols; i++) {\r\n\r\n result += `<td>Ряд№${row + 1} Колонка #${i + 1}</td>`;\r\n }\r\n result += \"</tr>\";\r\n }\r\n\r\n result += \"</tbody>\";\r\n\r\n return result;\r\n }\r\n}\r\n","import { ImageEditorComponent } from \"./components/editor/image-editor/image-editor.component\";\r\nimport { MainEditorBlockComponent } from \"./components/editor/main-editor-block/main-editor-block.component\";\r\nimport { MainEditorComponent } from \"./components/editor/main-editor/main-editor.component\";\r\nimport { TextEditorComponent } from \"./components/editor/text-editor/text-editor.component\";\r\nimport { FileIdSelectComponent } from \"./components/file-id-select/file-id-select.component\";\r\nimport { XmlTagHeaderInnerTextViewComponent } from \"./components/xml-tags/xml-tag-header-inner-text-view/xml-tag-header-inner-text-view.component\";\r\nimport { XmlTagHeaderTextViewComponent } from \"./components/xml-tags/xml-tag-header-text-view/xml-tag-header-text-view.component\";\r\nimport { XmlTagHtmlViewComponent } from \"./components/xml-tags/xml-tag-html-view/xml-tag-html-view.component\";\r\nimport { XmlTagRichTextViewComponent } from \"./components/xml-tags/xml-tag-rich-text-view/xml-tag-rich-text-view.component\";\r\nimport { XmlTagTableViewComponent } from \"./components/xml-tags/xml-tag-table-view/xml-tag-table-view.component\";\r\nimport { XmlTagTextViewComponent } from \"./components/xml-tags/xml-tag-text-view/xml-tag-text-view.component\";\r\nimport { XmlTagViewComponent } from \"./components/xml-tags/xml-tag-view/xml-tag-view.component\";\r\nimport { VisualEditorComponent } from './components/editor/visual-editor/visual-editor.component';\r\nimport { AddFilesBtnComponent } from './components/add-files-btn/add-files-btn.component';\r\nimport { ExternalVideoBlockComponent } from \"./components/editor/external-video-block/external-video-block.component\";\r\nimport { XmlTagExternalVideoComponent } from \"./components/xml-tags/xml-tag-external-video/xml-tag-external-video.component\";\r\nimport { HtmlRawEditorComponent } from \"./components/editor/html-raw-editor/html-raw-editor.component\";\r\n\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport {MatCheckboxModule} from '@angular/material/checkbox';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport {MatChipsModule} from '@angular/material/chips';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport {MatButtonToggleModule} from '@angular/material/button-toggle';\r\nimport { RichTextToHtmlPipe, TagToSpanPipe, ToHtmlBodyTagsPipe, ToPreviewHtmlPipe, ToPreviewPipe } from \"./pipes\";\r\nimport { FileImageTagViewComponent, UploadFilesBtnComponent } from \"./components\";\r\nimport { HtmlRawViewComponent } from \"./components/xml-tags/html-raw-view/html-raw-view.component\";\r\nimport { HtmlViewComponent } from \"./components/html-view/html-view.component\";\r\n\r\nexport const EditorComponents = [\r\n MainEditorComponent,\r\n FileIdSelectComponent,\r\n TextEditorComponent,\r\n ExternalVideoBlockComponent,\r\n ImageEditorComponent,\r\n MainEditorBlockComponent,\r\n VisualEditorComponent,\r\n AddFilesBtnComponent,\r\n HtmlRawEditorComponent,\r\n];\r\n\r\nexport const XmlComponents = [\r\n XmlTagTableViewComponent,\r\n XmlTagViewComponent,\r\n XmlTagRichTextViewComponent,\r\n XmlTagHtmlViewComponent,\r\n XmlTagTextViewComponent,\r\n XmlTagHeaderTextViewComponent,\r\n XmlTagHeaderInnerTextViewComponent,\r\n XmlTagExternalVideoComponent,\r\n HtmlRawViewComponent,\r\n FileImageTagViewComponent\r\n];\r\n\r\nexport const CrocoPipes = [\r\n RichTextToHtmlPipe,\r\n TagToSpanPipe,\r\n ToPreviewPipe,\r\n ToHtmlBodyTagsPipe,\r\n ToPreviewHtmlPipe\r\n]\r\n\r\nexport const CrocoHtmlDeclarations = [\r\n UploadFilesBtnComponent,\r\n HtmlViewComponent,\r\n ...XmlComponents,\r\n ...EditorComponents,\r\n ...CrocoPipes\r\n]\r\n\r\nexport const MaterialModules = [\r\n MatBadgeModule,\r\n MatTableModule,\r\n MatExpansionModule,\r\n MatFormFieldModule,\r\n MatSnackBarModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatTabsModule,\r\n MatMenuModule,\r\n MatCardModule,\r\n MatSelectModule,\r\n MatTooltipModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatListModule,\r\n MatButtonModule,\r\n MatInputModule,\r\n MatDialogModule,\r\n MatPaginatorModule,\r\n MatDatepickerModule,\r\n MatGridListModule,\r\n MatSlideToggleModule,\r\n MatTreeModule,\r\n MatNativeDateModule,\r\n MatAutocompleteModule,\r\n MatSidenavModule,\r\n MatIconModule,\r\n DragDropModule,\r\n MatButtonToggleModule\r\n];\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { NgSelectModule } from \"@ng-select/ng-select\";\r\nimport { CrocoHtmlDeclarations, MaterialModules } from \".\";\r\nimport { YouTubePlayerModule } from \"@angular/youtube-player\";\r\n\r\n@NgModule({\r\n declarations: [\r\n ...CrocoHtmlDeclarations,\r\n ],\r\n exports: [\r\n ...CrocoHtmlDeclarations,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgSelectModule,\r\n ...MaterialModules,\r\n YouTubePlayerModule\r\n ]\r\n})\r\nexport class CrocoHtmlModule { }\r\n","/*\r\n * Public API Surface of croco-html\r\n */\r\n\r\nexport * from './lib/components';\r\nexport * from './lib/pipes';\r\nexport * from './lib/extensions';\r\nexport * from './lib/croco-html.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.FileUploadService","i1","i2.UploadFilesBtnComponent","i2","i3","i5.XmlTagExternalVideoComponent","i1.FilesQueryService","i5","i7.FileIdSelectComponent","i2.XmlTagHeaderInnerTextViewComponent","i2.XmlTagHtmlViewComponent","i3.XmlTagTextViewComponent","i4.XmlTagHeaderTextViewComponent","i6.HtmlRawViewComponent","i7.FileImageTagViewComponent","i6","i7","i4.TextEditorComponent","i5.ExternalVideoBlockComponent","i6.ImageEditorComponent","i7.HtmlRawEditorComponent","i4","i9","i11.MainEditorBlockComponent","i12.AddFilesBtnComponent","i8","i10","i11.XmlTagViewComponent","i12.VisualEditorComponent","i13.ToPreviewPipe","i2.RichTextToHtmlPipe","i1.XmlTagViewComponent","i2.ToPreviewPipe","i1.UploadFilesBtnComponent","i2.HtmlViewComponent","i3.XmlTagTableViewComponent","i4.XmlTagViewComponent","i5.XmlTagRichTextViewComponent","i6.XmlTagHtmlViewComponent","i7.XmlTagTextViewComponent","i8.XmlTagHeaderTextViewComponent","i9.XmlTagHeaderInnerTextViewComponent","i10.XmlTagExternalVideoComponent","i11.HtmlRawViewComponent","i12.FileImageTagViewComponent","i13.MainEditorComponent","i14.FileIdSelectComponent","i15.TextEditorComponent","i16.ExternalVideoBlockComponent","i17.ImageEditorComponent","i18.MainEditorBlockComponent","i19.VisualEditorComponent","i20.AddFilesBtnComponent","i21.HtmlRawEditorComponent","i22.RichTextToHtmlPipe","i23.TagToSpanPipe","i24.ToPreviewPipe","i25.ToHtmlBodyTagsPipe","i26.ToPreviewHtmlPipe"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"croco-html.mjs","sources":["../../../projects/croco-html/src/lib/extensions/ImageMethods.ts","../../../projects/croco-html/src/lib/services/file-upload.service.ts","../../../projects/croco-html/src/lib/components/upload-files-btn/upload-files-btn.component.ts","../../../projects/croco-html/src/lib/components/upload-files-btn/upload-files-btn.component.html","../../../projects/croco-html/src/lib/components/add-files-btn/add-files-btn.component.ts","../../../projects/croco-html/src/lib/components/add-files-btn/add-files-btn.component.html","../../../projects/croco-html/src/lib/extensions/VideoMethods.ts","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-external-video/xml-tag-external-video.component.ts","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-external-video/xml-tag-external-video.component.html","../../../projects/croco-html/src/lib/components/editor/external-video-block/external-video-block.component.ts","../../../projects/croco-html/src/lib/components/editor/external-video-block/external-video-block.component.html","../../../projects/croco-html/src/lib/components/editor/html-raw-editor/html-raw-editor.component.ts","../../../projects/croco-html/src/lib/components/editor/html-raw-editor/html-raw-editor.component.html","../../../projects/croco-html/src/lib/services/files-query.service.ts","../../../projects/croco-html/src/lib/components/file-id-select/file-id-select.component.ts","../../../projects/croco-html/src/lib/components/file-id-select/file-id-select.component.html","../../../projects/croco-html/src/lib/components/editor/image-editor/image-editor.component.ts","../../../projects/croco-html/src/lib/components/editor/image-editor/image-editor.component.html","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-html-view/xml-tag-html-view.component.ts","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-html-view/xml-tag-html-view.component.html","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-text-view/xml-tag-text-view.component.ts","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-text-view/xml-tag-text-view.component.html","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-header-inner-text-view/xml-tag-header-inner-text-view.component.ts","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-header-inner-text-view/xml-tag-header-inner-text-view.component.html","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-header-text-view/xml-tag-header-text-view.component.ts","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-header-text-view/xml-tag-header-text-view.component.html","../../../projects/croco-html/src/lib/components/xml-tags/html-raw-view/html-raw-view.component.ts","../../../projects/croco-html/src/lib/components/xml-tags/html-raw-view/html-raw-view.component.html","../../../projects/croco-html/src/lib/components/xml-tags/file-image-tag-view/file-image-tag-view.component.ts","../../../projects/croco-html/src/lib/components/xml-tags/file-image-tag-view/file-image-tag-view.component.html","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-view/xml-tag-view.component.ts","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-view/xml-tag-view.component.html","../../../projects/croco-html/src/lib/extensions/AngularMaterialTableMethods.ts","../../../projects/croco-html/src/lib/extensions/TextSimpleMethods.ts","../../../projects/croco-html/src/lib/extensions/BootstrapTableMethods.ts","../../../projects/croco-html/src/lib/extensions/TableMethods.ts","../../../projects/croco-html/src/lib/extensions/TextMethods.ts","../../../projects/croco-html/src/lib/extensions/HtmlExtractionMethods.ts","../../../projects/croco-html/src/lib/extensions/HtmlRawTagDataConsts.ts","../../../projects/croco-html/src/lib/extensions/BodyTagsExtensions.ts","../../../projects/croco-html/src/lib/extensions/XmlExtensions.ts","../../../projects/croco-html/src/lib/components/editor/visual-editor/DefaultTags.ts","../../../projects/croco-html/src/lib/components/editor/text-editor/text-editor.component.ts","../../../projects/croco-html/src/lib/components/editor/text-editor/text-editor.component.html","../../../projects/croco-html/src/lib/components/editor/main-editor-block/main-editor-block.component.ts","../../../projects/croco-html/src/lib/components/editor/main-editor-block/main-editor-block.component.html","../../../projects/croco-html/src/lib/components/editor/visual-editor/visual-editor.component.ts","../../../projects/croco-html/src/lib/components/editor/visual-editor/visual-editor.component.html","../../../projects/croco-html/src/lib/pipes/to-preview.pipe.ts","../../../projects/croco-html/src/lib/components/editor/main-editor/main-editor.component.ts","../../../projects/croco-html/src/lib/components/editor/main-editor/main-editor.component.html","../../../projects/croco-html/src/lib/pipes/RichTextToHtmlPipe.ts","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-rich-text-view/xml-tag-rich-text-view.component.ts","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-rich-text-view/xml-tag-rich-text-view.component.html","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-table-view/xml-tag-table-view.component.ts","../../../projects/croco-html/src/lib/components/xml-tags/xml-tag-table-view/xml-tag-table-view.component.html","../../../projects/croco-html/src/lib/components/html-view/html-view.component.ts","../../../projects/croco-html/src/lib/components/html-view/html-view.component.html","../../../projects/croco-html/src/lib/pipes/TagToSpanPipe.ts","../../../projects/croco-html/src/lib/pipes/ToHtmlBodyTagsPipe.ts","../../../projects/croco-html/src/lib/pipes/ToPreviewHtmlPipe.ts","../../../projects/croco-html/src/lib/extensions/TableBuilder.ts","../../../projects/croco-html/src/lib/index.ts","../../../projects/croco-html/src/lib/croco-html.module.ts","../../../projects/croco-html/src/public-api.ts","../../../projects/croco-html/src/croco-html.ts"],"sourcesContent":["import { HtmlExtractionOptions } from \"./HtmlExtractionMethods\";\r\n\r\nexport class FileImageTagDataConsts {\r\n static TagName = \"file-image\";\r\n static FileIdAttrName = \"file-id\";\r\n}\r\n\r\nexport interface FileImageTag{\r\n type: string;\r\n data: FileImageTagData;\r\n}\r\n\r\nexport interface FileImageTagData{\r\n src: string;\r\n fileId: number;\r\n}\r\n\r\nexport class ImageMethods {\r\n\r\n public static buildUrl(fileId: number, options: HtmlExtractionOptions):string{\r\n \r\n var baseUrl = `/FileCopies/Images/Medium/${fileId}.jpg`;\r\n\r\n if (!options.useCustomDomain){\r\n return baseUrl;\r\n }\r\n \r\n return `${options.domain}${baseUrl}`;\r\n }\r\n\r\n public static buildSmallUrl(fileId: number, options: HtmlExtractionOptions):string{\r\n var baseUrl = `/FileCopies/Images/Small/${fileId}.jpg`;\r\n\r\n if (!options.useCustomDomain){\r\n return baseUrl;\r\n }\r\n \r\n return `${options.domain}${baseUrl}`;\r\n }\r\n\r\n public static ExtractImage(elem: HTMLElement, options: HtmlExtractionOptions): FileImageTag {\r\n let fileId = +elem.getAttribute(FileImageTagDataConsts.FileIdAttrName);\r\n let src = ImageMethods.buildUrl(fileId, options);\r\n return {\r\n type: FileImageTagDataConsts.TagName,\r\n data: {\r\n src,\r\n fileId: fileId,\r\n }\r\n };\r\n }\r\n}\r\n","import { HttpClient, HttpEvent, HttpEventType, HttpResponse, HttpUploadProgressEvent } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { filter, switchMap } from 'rxjs/operators';\r\n\r\nexport interface BaseApiResponse {\r\n isSucceeded: boolean;\r\n message: string;\r\n}\r\n\r\nexport interface GenericBaseApiResponse<T> extends BaseApiResponse {\r\n responseObject: T;\r\n}\r\n\r\nexport interface BaseApiResponseWithFilesIds extends BaseApiResponse {\r\n responseObject: number[];\r\n}\r\n\r\nexport interface UploadFileWithProgressEvent {\r\n loading: boolean;\r\n response?: BaseApiResponseWithFilesIds;\r\n uploadingLoaded: number;\r\n uploadingTotal: number;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class FileUploadService {\r\n constructor(\r\n private _httpClient: HttpClient,\r\n @Inject('BASE_URL') private baseUrl: string,\r\n ) {}\r\n\r\n public postFile(\r\n file: File,\r\n createLocalCopiesNow: boolean,\r\n withProgress: true,\r\n ): Observable<HttpEvent<BaseApiResponseWithFilesIds>>;\r\n\r\n public postFile(\r\n file: File,\r\n createLocalCopiesNow?: boolean,\r\n withProgress?: false,\r\n ): Observable<BaseApiResponseWithFilesIds>;\r\n\r\n public postFile(\r\n file: File,\r\n createLocalCopiesNow?: boolean,\r\n withProgress?: boolean,\r\n ): Observable<BaseApiResponseWithFilesIds> | Observable<HttpEvent<BaseApiResponseWithFilesIds>>;\r\n\r\n public postFile(\r\n file: File,\r\n createLocalCopiesNow = false,\r\n withProgress = false,\r\n ): Observable<BaseApiResponseWithFilesIds> | Observable<HttpEvent<BaseApiResponseWithFilesIds>> {\r\n const formData: FormData = new FormData();\r\n\r\n formData.append(`fileKey1`, file, file.name);\r\n\r\n return this.postFilesInner(formData, createLocalCopiesNow, withProgress);\r\n }\r\n\r\n public postFiles(files: FileList, createLocalCopiesNow = false): Observable<BaseApiResponseWithFilesIds> {\r\n const formData: FormData = new FormData();\r\n\r\n for (let i = 0; i < files.length; i++) {\r\n var fileToUpload = files.item(i);\r\n formData.append(`fileKey${i}`, fileToUpload as Blob, fileToUpload?.name);\r\n }\r\n\r\n return this.postFilesInner(formData, createLocalCopiesNow);\r\n }\r\n\r\n public postFilesInner(\r\n formData: FormData,\r\n createLocalCopiesNow: boolean,\r\n withProgress: true,\r\n ): Observable<HttpEvent<BaseApiResponseWithFilesIds>>;\r\n\r\n public postFilesInner(\r\n formData: FormData,\r\n createLocalCopiesNow?: boolean,\r\n withProgress?: false,\r\n ): Observable<BaseApiResponseWithFilesIds>;\r\n public postFilesInner(\r\n formData: FormData,\r\n createLocalCopiesNow: boolean,\r\n withProgress: boolean,\r\n ): Observable<BaseApiResponseWithFilesIds> | Observable<HttpEvent<BaseApiResponseWithFilesIds>>;\r\n public postFilesInner(\r\n formData: FormData,\r\n createLocalCopiesNow = false,\r\n withProgress = false,\r\n ): Observable<BaseApiResponseWithFilesIds> | Observable<HttpEvent<BaseApiResponseWithFilesIds>> {\r\n let endpoint = this.baseUrl + 'Api/Files/UploadFiles';\r\n\r\n if (createLocalCopiesNow) {\r\n endpoint += '/Now';\r\n }\r\n\r\n return this._httpClient.post<BaseApiResponseWithFilesIds>(\r\n endpoint,\r\n formData,\r\n withProgress ? { reportProgress: true, observe: 'events' } : undefined,\r\n );\r\n }\r\n\r\n public uploadFileWithProgress(file: File, createLocalCopiesNow = false): Observable<UploadFileWithProgressEvent> {\r\n let uploadingLoaded: number;\r\n let uploadingTotal: number;\r\n return this.postFile(file, createLocalCopiesNow, true).pipe(\r\n filter((event): event is HttpUploadProgressEvent | HttpResponse<BaseApiResponseWithFilesIds> => {\r\n return event.type === HttpEventType.UploadProgress || event instanceof HttpResponse;\r\n }),\r\n switchMap((event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n uploadingLoaded = event.loaded;\r\n uploadingTotal = event.total;\r\n return [{ loading: true, uploadingLoaded, uploadingTotal }];\r\n } else {\r\n if (event.body.responseObject?.[0]) {\r\n return [\r\n {\r\n loading: false,\r\n fileId: event.body.responseObject[0],\r\n uploadingLoaded,\r\n uploadingTotal,\r\n },\r\n ];\r\n } else {\r\n return throwError(() => new Error(event.body.message));\r\n }\r\n }\r\n }),\r\n );\r\n }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { BaseApiResponseWithFilesIds, FileUploadService } from '../../services/file-upload.service';\r\n\r\nexport interface FilePostingStarted {\r\n filesCount: number;\r\n createLocalCopiesNow:boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'croco-app-upload-files-btn',\r\n templateUrl: './upload-files-btn.component.html',\r\n styleUrls: ['./upload-files-btn.component.css']\r\n})\r\nexport class UploadFilesBtnComponent implements OnInit {\r\n\r\n constructor(private _fileUploadService: FileUploadService) { }\r\n @ViewChild('filesInput') private fileInput!: ElementRef<HTMLInputElement>;\r\n\r\n @Input()\r\n extAccepts: string = \"*/*\";\r\n\r\n @Input()\r\n isMultiple: boolean = true;\r\n\r\n @Input()\r\n btnText: string = \"Загрузить файлы\";\r\n\r\n @Input()\r\n createLocalCopiesNow = false;\r\n\r\n @Input()\r\n hidden: boolean = false;\r\n\r\n @Output()\r\n postFilesStarted = new EventEmitter<FilePostingStarted>();\r\n\r\n @Output()\r\n onFilesUploaded = new EventEmitter<BaseApiResponseWithFilesIds>();\r\n\r\n handleFileInput(files: FileList) {\r\n this.postFilesStarted.emit({\r\n filesCount:files.length,\r\n createLocalCopiesNow: this.createLocalCopiesNow\r\n });\r\n\r\n this._fileUploadService.postFiles(files, this.createLocalCopiesNow).subscribe(data => {\r\n this.onFilesUploaded.emit(data);\r\n })\r\n }\r\n\r\n clickFileInput(){\r\n this.fileInput.nativeElement.click();\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","<button [hidden]=\"hidden\" mat-raised-button color=\"primary\" (click)=\"filesInput.click()\">{{btnText}}</button>\r\n<input [hidden]=\"true\" [accept]=\"extAccepts\" [multiple]=\"isMultiple\" type=\"file\" #filesInput (change)=\"handleFileInput($event.target.files)\" />","import { Component, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FileImageTagDataConsts } from '../../extensions/ImageMethods';\r\nimport { HtmlBodyTag } from '../../models/models';\r\nimport { BaseApiResponseWithFilesIds } from '../../services/file-upload.service';\r\nimport { FilePostingStarted, UploadFilesBtnComponent } from '../upload-files-btn/upload-files-btn.component';\r\n\r\n@Component({\r\n selector: 'croco-html-add-files-btn',\r\n templateUrl: './add-files-btn.component.html',\r\n styleUrls: ['./add-files-btn.component.css']\r\n})\r\nexport class AddFilesBtnComponent implements OnInit {\r\n\r\n @Output()\r\n postFilesStarted = new EventEmitter<FilePostingStarted>();\r\n\r\n @ViewChild(\"fakeBtn\")\r\n fakeBtn!: UploadFilesBtnComponent;\r\n\r\n fileIds:number[] = [];\r\n\r\n constructor() { }\r\n\r\n @Output()\r\n filesTagsReady = new EventEmitter<HtmlBodyTag[]>();\r\n\r\n postFilesStartedEventHandler(data: FilePostingStarted){\r\n this.postFilesStarted.emit(data);\r\n }\r\n\r\n filesUploadedHandler(data: BaseApiResponseWithFilesIds){\r\n this.fileIds = data.responseObject;\r\n\r\n let fileTags:HtmlBodyTag[] = [];\r\n\r\n for(let i= 0; i < this.fileIds.length; i++){\r\n let fileTag: HtmlBodyTag = {\r\n presentOrEdit: true,\r\n tagDescription: {\r\n tag: FileImageTagDataConsts.TagName,\r\n displayValue: \"Изображение\"\r\n },\r\n attributes: {\r\n [FileImageTagDataConsts.FileIdAttrName]: this.fileIds[i]\r\n },\r\n innerHtml: \"\"\r\n };\r\n\r\n fileTags.push(fileTag);\r\n }\r\n\r\n this.filesTagsReady.emit(fileTags);\r\n }\r\n\r\n handleClick(){\r\n this.fakeBtn.clickFileInput();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","<div [hidden]=\"true\">\r\n <croco-app-upload-files-btn #fakeBtn \r\n (onFilesUploaded)=\"filesUploadedHandler($event)\" \r\n [btnText]=\"'Добавить изображения'\"\r\n [createLocalCopiesNow]=\"true\"\r\n (postFilesStarted)=\"postFilesStartedEventHandler($event)\" \r\n [extAccepts]=\"'image/*'\"></croco-app-upload-files-btn>\r\n</div>\r\n\r\n<div>\r\n <button class=\"w-100\" \r\n (click)=\"handleClick()\"\r\n mat-stroked-button>Добавить изображения</button>\r\n</div>","export class ExternalVideoTagDataConsts {\r\n static TagName = \"external-video\";\r\n static VideoTypeAttrName = \"type\";\r\n static LinkAttrName = \"link\";\r\n}\r\n\r\nexport class ExternalVideoSupportedTypes{\r\n static Youtube = \"youtube\"\r\n}\r\n\r\nexport interface ExternalVideoTag{\r\n type: string;\r\n data: ExternalVideoTagData;\r\n}\r\n\r\nexport interface ExternalVideoTagData{\r\n type: string;\r\n link: string;\r\n}\r\n\r\nexport class VideoMethods {\r\n static ExtractExternalVideoTag(elem: HTMLElement): ExternalVideoTag{\r\n return {\r\n type: ExternalVideoTagDataConsts.TagName,\r\n data:{\r\n type: elem.getAttribute(ExternalVideoTagDataConsts.VideoTypeAttrName),\r\n link: elem.getAttribute(ExternalVideoTagDataConsts.LinkAttrName)\r\n }\r\n };\r\n }\r\n}\r\n","import {ChangeDetectionStrategy, Component, Input, OnInit} from '@angular/core';\r\nimport {DomSanitizer} from '@angular/platform-browser';\r\nimport {InterfaceBlock} from \"../../../extensions/InterfaceBlock\";\r\nimport {ExternalVideoTagData} from '../../../extensions';\r\n\r\n@Component({\r\n selector: 'croco-html-xml-tag-external-video',\r\n templateUrl: './xml-tag-external-video.component.html',\r\n styleUrls: ['./xml-tag-external-video.component.css'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class XmlTagExternalVideoComponent implements OnInit {\r\n @Input() public set data(value: InterfaceBlock) {\r\n this.tagData = value.data;\r\n };\r\n\r\n @Input() public set tagData(value: ExternalVideoTagData) {\r\n this.videoId = this.getYouTubeId(value.link);\r\n };\r\n\r\n public videoId?: string;\r\n\r\n constructor(private _domSanitizer: DomSanitizer) { }\r\n\r\n ngOnInit(): void {\r\n const youtubeIframeApiUrl = 'https://www.youtube.com/iframe_api';\r\n if (!document.querySelector(`script[src=\"${youtubeIframeApiUrl}\"]`)) {\r\n // This code loads the IFrame Player API code asynchronously, according to the instructions at\r\n // https://developers.google.com/youtube/iframe_api_reference#Getting_Started\r\n const tag = document.createElement('script');\r\n tag.setAttribute('src', youtubeIframeApiUrl);\r\n document.body.appendChild(tag);\r\n }\r\n }\r\n\r\n private getYouTubeId(youtubeLink:string): string {\r\n\r\n //https://www.youtube.com/watch?v=l3KfbfkxJOU\r\n if(youtubeLink.includes(\"watch?v=\")){\r\n const url = new URL(youtubeLink);\r\n return url.searchParams.get(\"v\");\r\n }\r\n\r\n //https://youtu.be/jzBneaWSswY\r\n const bits = youtubeLink.split('/')\r\n return bits[bits.length - 1];\r\n }\r\n}\r\n","<div class=\"d-flex justify-content-center\">\r\n <youtube-player height=\"100%\" width=\"100%\" class=\"y-video\" *ngIf=\"videoId\" [videoId]=\"videoId\"></youtube-player>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ExternalVideoTagData, ExternalVideoSupportedTypes } from '../../../extensions/VideoMethods';\r\nimport { HtmlBodyTag } from '../../../models/models';\r\n\r\n@Component({\r\n selector: 'croco-html-external-video-block',\r\n templateUrl: './external-video-block.component.html',\r\n styleUrls: ['./external-video-block.component.css']\r\n})\r\nexport class ExternalVideoBlockComponent implements OnInit {\r\n\r\n @Input()\r\n tag: HtmlBodyTag;\r\n\r\n @Output()\r\n onTagUpdated = new EventEmitter<HtmlBodyTag>();\r\n\r\n defaultLink = \"https://youtu.be/jzBneaWSswY\";\r\n\r\n data = {\r\n youtubeLink: this.defaultLink\r\n }\r\n\r\n tagData: ExternalVideoTagData = {\r\n link: this.defaultLink,\r\n type: ExternalVideoSupportedTypes.Youtube\r\n };\r\n\r\n linkChanged(){\r\n this.tagData.link = this.data.youtubeLink;\r\n this.tag.attributes = this.tagData;\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.tag?.attributes?.['link']) {\r\n this.linkChanged();\r\n }\r\n\r\n this.tagData = this.tag.attributes as ExternalVideoTagData;\r\n this.data.youtubeLink = this.tagData.link;\r\n }\r\n}\r\n","<div *ngIf=\"tag.presentOrEdit\">\r\n \r\n <div>\r\n Ссылка на YouTube: {{data.youtubeLink}}\r\n </div>\r\n\r\n <div style=\"height: 10px;\"></div>\r\n\r\n <croco-html-xml-tag-external-video [tagData]=\"tagData\">\r\n </croco-html-xml-tag-external-video>\r\n</div>\r\n\r\n<div *ngIf=\"!tag.presentOrEdit\">\r\n <div>\r\n <div>\r\n <mat-form-field class=\"w-100\">\r\n <input matInput placeholder=\"Ссылка на YouTube\"\r\n new-autocomplete=\"off\"\r\n autocomplete=\"off\"\r\n [(ngModel)]=\"data.youtubeLink\"\r\n (ngModelChange)=\"linkChanged()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { HtmlBodyTag } from '../../../models/models';\r\n\r\n@Component({\r\n selector: 'croco-html-html-raw-editor',\r\n templateUrl: './html-raw-editor.component.html',\r\n styleUrls: ['./html-raw-editor.component.css']\r\n})\r\nexport class HtmlRawEditorComponent implements OnInit {\r\n\r\n @Input()\r\n tag: HtmlBodyTag;\r\n\r\n @Output()\r\n onTagUpdated = new EventEmitter<HtmlBodyTag>();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div *ngIf=\"tag.presentOrEdit\">\r\n <div [innerHTML]=\"tag.innerHtml\"></div>\r\n</div>\r\n\r\n<div *ngIf=\"!tag.presentOrEdit\">\r\n <div style=\"height: 10px;\">\r\n </div>\r\n <div>\r\n <mat-form-field class=\"w-100\">\r\n <textarea matInput cdkTextareaAutosize #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n placeholder=\"Внутренняя разметка тега\"\r\n [(ngModel)]=\"tag.innerHtml\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n</div>\r\n\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Inject, Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nexport interface GetListResult<T>{\r\n\r\n /*\r\n Сколько всего записей\r\n */\r\n totalCount:number;\r\n\r\n /*\r\n Текущий список\r\n */\r\n list:Array<T>;\r\n}\r\n\r\nexport interface DbFileNoDataWithRelations {\r\n id: number;\r\n fileName: string;\r\n relations: Array<FileRelationModel>;\r\n}\r\n\r\nexport interface FileRelationModel {\r\n entityTypeFullName: string;\r\n entityKey: string;\r\n relationName: string;\r\n relationValue: string;\r\n relationCustomData: string;\r\n}\r\n\r\nexport interface SearchFiles {\r\n fileName: string;\r\n q: string;\r\n count: number | null;\r\n offSet: number;\r\n}\r\n\r\nexport interface GetListSearchModel {\r\n count: number | null;\r\n offSet: number;\r\n}\r\n\r\nexport interface FileNameAndIdModel {\r\n fileId: number;\r\n fileName: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FilesQueryService{\r\n\r\n _baseControllerUrl: string;\r\n\r\n constructor(private _httpClient: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string) {\r\n this._baseControllerUrl = baseUrl + 'Api/Files/';\r\n }\r\n\r\n public getFilesWithRelations(model: SearchFiles):Observable<GetListResult<DbFileNoDataWithRelations>>{\r\n return this._httpClient.post<GetListResult<DbFileNoDataWithRelations>>(\r\n this._baseControllerUrl + `GetFiles/WithRelations`, model\r\n );\r\n }\r\n\r\n public getFiles(model: SearchFiles):Observable<GetListResult<FileNameAndIdModel>>{\r\n return this._httpClient.post<GetListResult<FileNameAndIdModel>>(\r\n this._baseControllerUrl + `GetFiles`, model\r\n );\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { ImageMethods } from '../../extensions/ImageMethods';\r\nimport { FileNameAndIdModel, FilesQueryService } from '../../services/files-query.service';\r\n\r\nexport interface SearchQuestionsFormData{\r\n q: string;\r\n}\r\n\r\n@Component({\r\n selector: 'croco-html-file-id-select',\r\n templateUrl: './file-id-select.component.html',\r\n styleUrls: ['./file-id-select.component.css']\r\n})\r\nexport class FileIdSelectComponent implements OnInit, OnChanges {\r\n\r\n q: string;\r\n\r\n @Input()\r\n labelText = \"Поиск файлов\"\r\n\r\n @Input()\r\n @Output()\r\n fileId: number;\r\n\r\n loading = false;\r\n\r\n files: FileNameAndIdModel[] = [];\r\n\r\n @Output()\r\n onFileIdChanged = new EventEmitter<number>();\r\n\r\n constructor(\r\n private _fileService: FilesQueryService) {\r\n }\r\n\r\n onModelChanged(fileId: number){\r\n this.onFileIdChanged.emit(fileId);\r\n }\r\n\r\n getSrc(fileId: number){\r\n return ImageMethods.buildSmallUrl(fileId, { useCustomDomain: false, domain: \"\" });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadFiles();\r\n }\r\n\r\n public loadFiles() {\r\n this.loading = true;\r\n this._fileService.getFiles({\r\n count: 10,\r\n offSet: 0,\r\n fileName: null,\r\n q: this.q\r\n }).subscribe(data => {\r\n this.files = [...data.list];\r\n this.loading = false;\r\n });\r\n }\r\n\r\n onSearchChanged(q: {term: string, items:object[]}){\r\n this.q = q.term;\r\n this.loadFiles();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.loadFiles();\r\n }\r\n}\r\n","<div>\r\n <div class=\"form-group\">\r\n <label for=\"fileName\">{{labelText}}</label>\r\n <ng-select [(ngModel)]=\"fileId\" (ngModelChange)=\"onModelChanged($event)\"\r\n [items]=\"files\"\r\n #select\r\n bindLabel=\"fileName\"\r\n (search)=\"onSearchChanged($event)\"\r\n [loading]=\"loading\"\r\n [loadingText]=\"'Загружаю файлы'\"\r\n dropdownPosition=\"auto\"\r\n bindValue=\"fileId\"\r\n labelForId=\"fileName\"\r\n placeholder=\"Выбрать файл\"\r\n [virtualScroll]=\"true\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <div>\r\n <img class=\"mx-auto d-block img-fluid\" [src]=\"getSrc(item.fileId)\"/>\r\n </div>\r\n <div>\r\n <span class=\"h5\">Файл: </span>\r\n <span class=\"h5\" [ngOptionHighlight]=\"search\"><b>{{item.fileName}}</b></span>\r\n </div>\r\n <div>\r\n <small>\r\n <span>\r\n Идентификатор файла: <b>{{item.fileId}}</b>\r\n </span>\r\n </small>\r\n </div>\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n</div>\r\n\r\n<div>\r\n Идентификатор файла: {{fileId}}\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ImageMethods, FileImageTagDataConsts } from '../../../extensions/ImageMethods';\r\nimport { HtmlBodyTag } from '../../../models/models';\r\n\r\n@Component({\r\n selector: 'croco-html-image-editor',\r\n templateUrl: './image-editor.component.html',\r\n styleUrls: ['./image-editor.component.css']\r\n})\r\nexport class ImageEditorComponent implements OnInit {\r\n\r\n hasImageError = false;\r\n searchOrEdit = \"search\";\r\n\r\n @Input()\r\n tag: HtmlBodyTag;\r\n\r\n onErrorHandler(){\r\n this.hasImageError = true;\r\n }\r\n\r\n @Output()\r\n onTagUpdated = new EventEmitter<HtmlBodyTag>();\r\n\r\n constructor() { }\r\n\r\n getSrc(){\r\n return ImageMethods.buildUrl(this.tag.attributes[FileImageTagDataConsts.FileIdAttrName], { useCustomDomain: false, domain: \"\"});\r\n }\r\n\r\n hasFileId(){\r\n return this.tag.attributes.hasOwnProperty(FileImageTagDataConsts.FileIdAttrName) && !isNaN(this.tag.attributes[FileImageTagDataConsts.FileIdAttrName]);\r\n }\r\n\r\n onFileIdChanged(fileId:number){\r\n this.tag.attributes[FileImageTagDataConsts.FileIdAttrName] = fileId;\r\n this.removeImageError();\r\n }\r\n\r\n removeImageError(){\r\n this.hasImageError = false;\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div>\r\n <div style=\"height: 10px;\">\r\n </div>\r\n \r\n <div *ngIf=\"hasImageError\" class=\"error-block\">\r\n Изображение не найдено по указанному идентификатору, возможно файл не существует или отсутствует на сервере.\r\n </div>\r\n\r\n <div *ngIf=\"hasFileId() && !hasImageError\">\r\n <img class=\"mx-auto d-block img-fluid\" [src]=\"getSrc()\" (error)=\"onErrorHandler()\"/>\r\n </div>\r\n\r\n <div *ngIf=\"!hasFileId()\">\r\n <h5>[Изображение не выбрано]</h5>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"!tag.presentOrEdit\">\r\n <div style=\"height: 10px;\"></div>\r\n\r\n <div style=\"overflow-x:auto;\">\r\n <mat-button-toggle-group [(ngModel)]=\"searchOrEdit\">\r\n <mat-button-toggle value=\"search\">\r\n Искать файл <mat-icon>search</mat-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"edit\">\r\n Указать по идентификатору <mat-icon>settings</mat-icon>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n \r\n\r\n <div style=\"height: 10px;\"></div>\r\n\r\n <div [hidden]=\"searchOrEdit !== 'search'\">\r\n <croco-html-file-id-select\r\n [labelText]=\"'Выбрать файл'\"\r\n [(fileId)]=\"tag.attributes['file-id']\"\r\n (onFileIdChanged)=\"onFileIdChanged($event)\">\r\n </croco-html-file-id-select>\r\n </div>\r\n\r\n <div [hidden]=\"searchOrEdit !== 'edit'\">\r\n <div>\r\n <mat-form-field class=\"w-100\">\r\n <input matInput placeholder=\"Идентификатор файла\" new-autocomplete=\"off\" autocomplete=\"off\"\r\n type=\"number\"\r\n [(ngModel)]=\"tag.attributes['file-id']\"\r\n (ngModelChange)=\"removeImageError()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n</div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'croco-html-xml-tag-html-view',\r\n templateUrl: './xml-tag-html-view.component.html',\r\n styleUrls: ['./xml-tag-html-view.component.css']\r\n})\r\nexport class XmlTagHtmlViewComponent {\r\n\r\n constructor() { }\r\n\r\n @Input()\r\n html: string = \"\";\r\n}\r\n","<div class=\"col\" [innerHTML]=\"html\">\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { SimpleTextTag } from '../../../extensions/TextSimpleMethods';\r\n\r\n@Component({\r\n selector: 'croco-html-xml-tag-text-view',\r\n templateUrl: './xml-tag-text-view.component.html',\r\n styleUrls: ['./xml-tag-text-view.component.css']\r\n})\r\nexport class XmlTagTextViewComponent implements OnInit {\r\n\r\n @Input()\r\n item: SimpleTextTag;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n}","<div *ngIf=\"item.data.validationResult.isSucceeded && item.data.horizontalAlignment === 'left'\" style=\"text-align: left;\">\r\n <span *ngIf=\"item.data.html.length === 0 || !item.data.html\"> </span>\r\n <span *ngIf=\"item.data.html.length > 0\" [innerHtml]=\"item.data.html\"></span>\r\n</div>\r\n\r\n<div *ngIf=\"item.data.validationResult.isSucceeded && item.data.horizontalAlignment === 'right'\" style=\"text-align: right;\">\r\n <span *ngIf=\"item.data.html.length === 0 || !item.data.html\"> </span>\r\n <span *ngIf=\"item.data.html.length > 0\" [innerHtml]=\"item.data.html\"></span>\r\n</div>\r\n\r\n<div *ngIf=\"item.data.validationResult.isSucceeded && item.data.horizontalAlignment === 'center'\" style=\"text-align: center;\">\r\n <span *ngIf=\"item.data.html.length === 0 || !item.data.html\"> </span>\r\n <span *ngIf=\"item.data.html.length > 0\" [innerHtml]=\"item.data.html\"></span>\r\n</div>\r\n\r\n<div *ngIf=\"!item.data.validationResult.isSucceeded\" class=\"red\" style=\"margin-top: 10px;\" >\r\n <h4>Допущена ошибка в теге <text></h4>\r\n <span>\r\n {{item.data.validationResult.message}}\r\n </span>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { GenericTextTag } from '../../../extensions/TextSimpleMethods';\r\n\r\n@Component({\r\n selector: 'croco-html-xml-tag-header-inner-text-view',\r\n templateUrl: './xml-tag-header-inner-text-view.component.html',\r\n styleUrls: ['./xml-tag-header-inner-text-view.component.css']\r\n})\r\nexport class XmlTagHeaderInnerTextViewComponent implements OnInit {\r\n\r\n @Input()\r\n item: GenericTextTag;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<h1 *ngIf=\"item.type === 'h1'\" \r\n [innerHtml]=\"item.data.html\">\r\n</h1>\r\n<h2 *ngIf=\"item.type === 'h2'\" \r\n [innerHtml]=\"item.data.html\">\r\n</h2>\r\n<h3 *ngIf=\"item.type === 'h3'\" \r\n [innerHtml]=\"item.data.html\">\r\n</h3>\r\n<h4 *ngIf=\"item.type === 'h4'\" \r\n [innerHtml]=\"item.data.html\">\r\n</h4>\r\n<h5 *ngIf=\"item.type === 'h5'\" \r\n [innerHtml]=\"item.data.html\">\r\n</h5>\r\n<h6 *ngIf=\"item.type === 'h6'\" \r\n [innerHtml]=\"item.data.html\">\r\n</h6>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { GenericTextTag } from '../../../extensions/TextSimpleMethods';\r\n\r\n@Component({\r\n selector: 'croco-html-xml-tag-header-text-view',\r\n templateUrl: './xml-tag-header-text-view.component.html',\r\n styleUrls: ['./xml-tag-header-text-view.component.css']\r\n})\r\nexport class XmlTagHeaderTextViewComponent implements OnInit {\r\n\r\n @Input()\r\n item: GenericTextTag;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div *ngIf=\"item.data.validationResult.isSucceeded && item.data.horizontalAlignment === 'left'\" style=\"text-align: left;\">\r\n <span *ngIf=\"item.data.html.length === 0 || !item.data.html\"> </span>\r\n <croco-html-xml-tag-header-inner-text-view *ngIf=\"item.data.html.length > 0\" [item]=\"item\">\r\n </croco-html-xml-tag-header-inner-text-view>\r\n</div>\r\n\r\n<div *ngIf=\"item.data.validationResult.isSucceeded && item.data.horizontalAlignment === 'right'\" style=\"text-align: right;\">\r\n <span *ngIf=\"item.data.html.length === 0 || !item.data.html\"> </span>\r\n <croco-html-xml-tag-header-inner-text-view *ngIf=\"item.data.html.length > 0\" [item]=\"item\">\r\n </croco-html-xml-tag-header-inner-text-view>\r\n</div>\r\n\r\n<div *ngIf=\"item.data.validationResult.isSucceeded && item.data.horizontalAlignment === 'center'\" style=\"text-align: center;\">\r\n <span *ngIf=\"item.data.html.length === 0 || !item.data.html\"> </span>\r\n\r\n <croco-html-xml-tag-header-inner-text-view *ngIf=\"item.data.html.length > 0\" [item]=\"item\">\r\n </croco-html-xml-tag-header-inner-text-view>\r\n</div>\r\n\r\n<div *ngIf=\"!item.data.validationResult.isSucceeded\" class=\"red\" style=\"margin-top: 10px;\" >\r\n <h4>Допущена ошибка в теге <text></h4>\r\n <span>\r\n {{item.data.validationResult.message}}\r\n </span>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'croco-html-raw-view',\n templateUrl: './html-raw-view.component.html',\n styleUrls: ['./html-raw-view.component.css']\n})\nexport class HtmlRawViewComponent implements OnInit {\n \n @Input()\n rawHtml = \"\";\n\n safeHtml : SafeHtml;\n isInitialized = false; \n\n constructor(private readonly _sanitizer: DomSanitizer) {\n }\n\n ngOnInit(): void {\n this.safeHtml = this._sanitizer.bypassSecurityTrustHtml(this.rawHtml);\n }\n}\n","<div [innerHTML]=\"safeHtml\">\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\nimport { InterfaceBlock } from '../../../extensions/InterfaceBlock';\r\nimport { FileImageTagData } from '../../../extensions';\r\nimport { ITagViewOptions } from '../../../models/models';\r\n\r\n@Component({\r\n selector: 'croco-html-file-image-tag-view',\r\n templateUrl: './file-image-tag-view.component.html',\r\n styleUrl: './file-image-tag-view.component.css'\r\n})\r\nexport class FileImageTagViewComponent implements OnInit {\r\n \r\n @Input()\r\n item: InterfaceBlock;\r\n\r\n @Input()\r\n viewOptions: ITagViewOptions = {\r\n useCustomImageUrlRenderer: false,\r\n renderImageUrl(fileId, sizeType) {\r\n return \"\";\r\n },\r\n } \r\n\r\n imageSrc = \"\";\r\n\r\n ngOnInit(): void {\r\n let data = this.item.data as FileImageTagData;\r\n\r\n this.imageSrc = this.viewOptions.useCustomImageUrlRenderer \r\n ? this.viewOptions.renderImageUrl(data.fileId, 'Medium')\r\n : data.src;\r\n }\r\n}\r\n","\r\n<img class=\"mx-auto d-block img-fluid\" [src]=\"imageSrc\"/>","import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { InterfaceBlock } from \"../../../extensions/InterfaceBlock\";\r\nimport { ITagViewOptions } from '../../../models/models';\r\n\r\n@Component({\r\n selector: 'croco-html-xml-tag-view',\r\n templateUrl: './xml-tag-view.component.html',\r\n styleUrls: ['./xml-tag-view.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class XmlTagViewComponent {\r\n\r\n @Input()\r\n viewOptions: ITagViewOptions = {\r\n useCustomImageUrlRenderer: false,\r\n renderImageUrl(fileId, sizeType) {\r\n return \"\";\r\n },\r\n }\r\n\r\n @Input()\r\n data:InterfaceBlock[] = [];\r\n\r\n constructor() {\r\n }\r\n\r\n}","<div>\r\n <div class=\"row\" *ngFor=\"let item of data\">\r\n <div *ngIf=\"item.type === 'text'\">\r\n <croco-html-xml-tag-text-view [item]=\"item\"></croco-html-xml-tag-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'html-raw'\">\r\n <croco-html-raw-view [rawHtml]=\"item.data.innerHTML\">\r\n </croco-html-raw-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'h1' || item.type === 'h2' || item.type === 'h3' || item.type === 'h4' || item.type === 'h5' || item.type === 'h6'\">\r\n <croco-html-xml-tag-header-text-view [item]=\"item\"></croco-html-xml-tag-header-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'file-image'\">\r\n <croco-html-file-image-tag-view [item]=\"item\" [viewOptions]=\"viewOptions\"></croco-html-file-image-tag-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'table'\">\r\n \r\n <croco-html-xml-tag-html-view *ngIf=\"item.validationResult.isSucceeded\" [html]=\"item.bootstrapHtml\">\r\n </croco-html-xml-tag-html-view>\r\n \r\n <app-tutor-baseapiresponse-banner \r\n *ngIf=\"item.validationResult && !item.validationResult.isSucceeded\" \r\n [message]=\"item.validationResult.message\">\r\n </app-tutor-baseapiresponse-banner>\r\n </div>\r\n \r\n <div *ngIf=\"item.type === 'rich-text'\">\r\n <croco-html-xml-tag-text-view [richTextData]=\"item\"></croco-html-xml-tag-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'external-video'\">\r\n <croco-html-xml-tag-external-video [data]=\"item\"></croco-html-xml-tag-external-video>\r\n </div>\r\n <div *ngIf=\"item.type === 'unsupported-tag'\" class=\"red\" style=\"margin-top: 10px;\" >\r\n <h4>Данный тег не поддерживается</h4>\r\n <span>\r\n {{item.data.tagString}}\r\n </span>\r\n </div>\r\n </div>\r\n</div>","import { BaseApiResponse, TableData, TableRowData } from './TableMethods';\r\nimport {AngularMaterialTableData} from \"../models/models\";\r\n\r\n\r\nexport class AngularMaterialTableMethods {\r\n static getAngularMaterialTableData(columns: string[], rows: TableRowData[]): AngularMaterialTableData {\r\n\r\n let data: object[] = [];\r\n\r\n for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {\r\n const row = rows[rowIndex];\r\n\r\n var elem = {};\r\n\r\n for (let columnIndex = 0; columnIndex < columns.length; columnIndex++) {\r\n const column = columns[columnIndex];\r\n\r\n elem[column] = row.columns[columnIndex].data.text;\r\n }\r\n\r\n data.push(elem);\r\n }\r\n\r\n return {\r\n displayedColumns: columns,\r\n data: data,\r\n };\r\n }\r\n\r\n static checkHeaders(tableData: TableData): BaseApiResponse {\r\n if(tableData.header === null){\r\n return {\r\n isSucceeded: false,\r\n message: \"Необходимо указать заголовок таблицы\"\r\n };\r\n }\r\n\r\n let columns: string[] = tableData.header.columns;\r\n\r\n var uniqueDislayedColumns = columns.filter((v, i, a) => a.indexOf(v) === i);\r\n\r\n if (uniqueDislayedColumns.length !== columns.length) {\r\n return {\r\n isSucceeded: false,\r\n message: \"Ошибка при обработке разметки таблицы. Обнаружены дубликаты заголовков.\"\r\n };\r\n }\r\n\r\n return {\r\n isSucceeded: true,\r\n message: \"Ok\"\r\n };\r\n }\r\n static checkAngularMaterialTableData(tableData: TableData, checkHeaders: boolean = true): BaseApiResponse {\r\n\r\n if(checkHeaders){\r\n var checkHeadersResult = this.checkHeaders(tableData);\r\n\r\n if(!checkHeadersResult.isSucceeded){\r\n return checkHeadersResult;\r\n }\r\n }\r\n\r\n let rows: TableRowData[] = tableData.rows;\r\n let columns: string[] = tableData.header.columns;\r\n\r\n for (let i = 0; i < rows.length; i++) {\r\n const row = rows[i];\r\n\r\n if (row.columns.length !== columns.length) {\r\n return {\r\n isSucceeded: false,\r\n message: `Ошибка при обработке разметки таблицы. `\r\n + `Количество колонок в каждой строке таблицы должно соотвествовать количеству колонок указанных в заголовке. `\r\n + `В строке таблицы №${i + 1} количество колонок = ${row.columns.length}, а должно быть ${columns.length}.`\r\n };\r\n }\r\n }\r\n\r\n return {\r\n isSucceeded: true,\r\n message: \"Ok\"\r\n };\r\n }\r\n}\r\n","import { BaseApiResponse } from \"./TableMethods\";\r\n\r\nexport const TextTag = \"text\";\r\n\r\nexport interface SimpleTextTag {\r\n type: \"text\",\r\n data: SimpleTextTagData\r\n}\r\n\r\nexport interface GenericTextTag {\r\n type: string,\r\n data: SimpleTextTagData\r\n}\r\n\r\nexport interface SimpleTextTagData {\r\n textTagName: string;\r\n text: string,\r\n html: string,\r\n horizontalAlignment: \"left\" | \"right\" | \"center\",\r\n validationResult: BaseApiResponse\r\n}\r\n\r\nexport class TextSimpleMethods {\r\n\r\n static supportedTags = [\"sup\", \"sub\", \"strong\", \"b\", \"i\", \"u\"];\r\n\r\n static ExtractTextTag(elem: HTMLElement): SimpleTextTag {\r\n var hAlignValue = elem.getAttribute(\"h-align\") ?? \"left\" as any;\r\n\r\n var data: SimpleTextTagData = {\r\n textTagName: elem.tagName.toLowerCase(),\r\n text: elem.innerText.trim().replace('\\n\\t', ''),\r\n html: elem.innerHTML.trim().replace('\\n\\t', ''),\r\n horizontalAlignment: hAlignValue,\r\n validationResult: {\r\n isSucceeded: true,\r\n message: \"Ok\"\r\n }\r\n };\r\n\r\n let result: SimpleTextTag = {\r\n type: TextTag,\r\n data: data\r\n };\r\n\r\n if(result.data.text === '\\n'){\r\n result.data.text = '';\r\n }\r\n if(result.data.html === '\\n'){\r\n result.data.html = '';\r\n }\r\n\r\n var alignmentVals = [\"left\", \"right\", \"center\"];\r\n\r\n if (alignmentVals.indexOf(hAlignValue) < 0) {\r\n\r\n result.data.validationResult = {\r\n isSucceeded: false,\r\n message: `Недопустимое значение атрибута h-align. Допустимые значения: ${alignmentVals.join(', ')}. `\r\n + 'Данный тег можно не указывать, по-умолчанию будет применено выравнивание слева.'\r\n };\r\n }\r\n\r\n var html = result.data.html;\r\n var htmlValidation = this.ValidateTextHtml(html);\r\n\r\n if(!htmlValidation.isSucceeded){\r\n result.data.validationResult = htmlValidation;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n static ValidateTextHtml(html: string) : BaseApiResponse{\r\n\r\n var p = document.createElement(\"p\");\r\n p.innerHTML = html;\r\n\r\n for (let i = 0; i < p.children.length; i++) {\r\n const element = p.children.item(i);\r\n\r\n var validationResult = this.ValidateTag(element);\r\n\r\n if(!validationResult.isSucceeded){\r\n return validationResult;\r\n }\r\n }\r\n\r\n return {\r\n isSucceeded:true,\r\n message: `Ok`\r\n }\r\n }\r\n\r\n static ValidateTag(element : Element): BaseApiResponse{\r\n let lowerTag = element.tagName.toLowerCase();\r\n\r\n if(!this.supportedTags.includes(lowerTag)){\r\n return {\r\n isSucceeded: false,\r\n message: `Тег <${lowerTag}> не поддерживается внутри тега <text>`\r\n }\r\n }\r\n\r\n for (let i = 0; i < element.children.length; i++) {\r\n const nElement = element.children.item(i);\r\n\r\n var innerValidationResult = this.ValidateTag(nElement);\r\n\r\n if(!innerValidationResult.isSucceeded){\r\n return innerValidationResult;\r\n }\r\n }\r\n\r\n return {\r\n isSucceeded: true,\r\n message: \"Ok\"\r\n };\r\n }\r\n}\r\n","import { InterfaceBlock } from \"./InterfaceBlock\";\r\nimport { FileImageTag, FileImageTagDataConsts } from './ImageMethods';\r\nimport { TableData, TableHeaderData, TableRowData } from './TableMethods';\r\nimport { SimpleTextTag, TextTag } from './TextSimpleMethods';\r\n\r\nexport class BootstrapTableMethods {\r\n\r\n static BuildTable(data: TableData): string {\r\n let result = `<table class=\"table table-bordered\">`;\r\n result += this.BuildHeader(data.header);\r\n result += this.BuildBody(data.rows);\r\n result += \"</table>\";\r\n\r\n return result;\r\n }\r\n\r\n static BuildHeader(data: TableHeaderData) {\r\n if (data === null) {\r\n return \"\";\r\n }\r\n\r\n let result = \"<thead>\";\r\n result += \"<tr>\";\r\n for (let index = 0; index < data.columns.length; index++) {\r\n result += `<th>${data.columns[index]}</th>`;\r\n }\r\n result += \"</tr>\";\r\n\r\n result += \"</thead>\";\r\n\r\n return result;\r\n }\r\n\r\n static BuildBody(rows: TableRowData[]) {\r\n let result = \"<tbody>\";\r\n\r\n for (let i = 0; i < rows.length; i++) {\r\n const row = rows[i];\r\n\r\n result += \"<tr>\";\r\n for (let j = 0; j < row.columns.length; j++) {\r\n const col = row.columns[j];\r\n\r\n result += `<td class=\"align-middle\">${this.BuildInnerTags(col.data.children)}</td>`;\r\n }\r\n result += \"</tr>\";\r\n }\r\n\r\n result += \"</tbody>\";\r\n return result;\r\n }\r\n\r\n static BuildInnerTags(tags: InterfaceBlock[]) {\r\n let result = \"\";\r\n for (let i = 0; i < tags.length; i++) {\r\n result += this.BuildInnerTag(tags[i]);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n static BuildInnerTag(data: InterfaceBlock): string {\r\n if (data.type === FileImageTagDataConsts.TagName) {\r\n let fileImageTag = data as FileImageTag;\r\n return `<img src=${fileImageTag.data.src} class=\"mx-auto d-block img-fluid\" />`;\r\n }\r\n else if(data.type === TextTag){\r\n\r\n let simpleTextTag = data as SimpleTextTag;\r\n\r\n var map = {\r\n [\"left\"]: \"text-start\",\r\n [\"center\"]: \"text-center\",\r\n [\"right\"]: \"text-end\"\r\n };\r\n\r\n if(!simpleTextTag.data.validationResult.isSucceeded){\r\n return `<span>Ошибка в тексте ${simpleTextTag.data.validationResult.message}</span>`;\r\n }\r\n\r\n return `<div class=\"${map[simpleTextTag.data.horizontalAlignment]}\"><span>${simpleTextTag.data.html}</span></div>`;\r\n }\r\n else {\r\n return `<p>Тег ${data.type} не поддерживается</p>`;\r\n }\r\n }\r\n}\r\n","import { AngularMaterialTableMethods } from './AngularMaterialTableMethods';\r\nimport { BootstrapTableMethods } from './BootstrapTableMethods';\r\nimport { HtmlExtractionMethods, HtmlExtractionOptions } from './HtmlExtractionMethods';\r\nimport { InterfaceBlock } from \"./InterfaceBlock\";\r\nimport { TextSimpleMethods } from './TextSimpleMethods';\r\n\r\nexport interface BaseApiResponse {\r\n isSucceeded: boolean;\r\n message: string;\r\n}\r\n\r\nexport interface TableHeaderData{\r\n type: \"table-header\";\r\n columns: string[];\r\n}\r\n\r\nexport interface TableRowColumnData {\r\n type: \"table-row-column-data\";\r\n data: {\r\n text: string;\r\n children: InterfaceBlock[];\r\n }\r\n}\r\n\r\nexport interface TableRowData {\r\n type: \"table-row-column\";\r\n columns: TableRowColumnData[];\r\n}\r\n\r\nexport interface TableData{\r\n header: TableHeaderData,\r\n rows: TableRowData[]\r\n}\r\n\r\nexport interface TableTagData{\r\n type: \"table\";\r\n data: TableData;\r\n}\r\n\r\nexport class TableTypes{\r\n static readonly TableRowColumnData = \"table-row-column-data\";\r\n static readonly Table = \"table\";\r\n static readonly TableRowColumn = \"table-row-column\";\r\n}\r\n\r\nexport class TableMethods {\r\n\r\n static getTableFromHtmlTag(tableTag: HTMLTableElement, options: HtmlExtractionOptions) {\r\n let tableData : TableData = {\r\n header: TableMethods.getHeader(tableTag),\r\n rows: TableMethods.getTableRows(tableTag, options)\r\n };\r\n\r\n var result = {\r\n type: TableTypes.Table,\r\n data: tableData,\r\n validationResult: this.checkTable(tableData),\r\n bootstrapHtml: \"\"\r\n }\r\n\r\n if(!result.validationResult){\r\n return result;\r\n }\r\n result.bootstrapHtml = BootstrapTableMethods.BuildTable(result.data);\r\n\r\n var angularMaterialTableDataCheck = AngularMaterialTableMethods.checkAngularMaterialTableData(tableData);\r\n\r\n if (!angularMaterialTableDataCheck.isSucceeded) {\r\n return {\r\n ...result,\r\n angularMaterialTableDataCheck\r\n };\r\n }\r\n\r\n return {\r\n ...result,\r\n angularMaterialTableDataCheck,\r\n html: tableTag.outerHTML,\r\n angularMaterialTableData: AngularMaterialTableMethods.getAngularMaterialTableData(tableData.header.columns, tableData.rows),\r\n };\r\n }\r\n\r\n static checkTable(tableData: TableData) : BaseApiResponse{\r\n\r\n let rows = tableData.rows;\r\n\r\n let prevRowCount = -1;\r\n for (let i = 0; i < rows.length; i++) {\r\n const row = rows[i];\r\n\r\n if (row.columns.length !== prevRowCount && prevRowCount != -1) {\r\n return {\r\n isSucceeded: false,\r\n message: `Ошибка при обработке разметки таблицы. `\r\n + `Количество колонок в каждой строке таблицы должно соотвествовать друг другу. `\r\n + `В строке таблицы №${i + 1} количество колонок = ${row.columns.length}, а в строке выше ${prevRowCount}.`\r\n };\r\n }\r\n prevRowCount = row.columns.length;\r\n }\r\n\r\n return {\r\n isSucceeded: true,\r\n message: \"Ok\"\r\n }\r\n }\r\n\r\n\r\n static getHeader(tableTag: HTMLTableElement) : TableHeaderData {\r\n let header = tableTag.tHead;\r\n\r\n if(header === null){\r\n return null;\r\n }\r\n\r\n let tr = header.children.item(0);\r\n\r\n let headerColumns: string[] = [];\r\n\r\n for (let j = 0; j < tr.children.length; j++) {\r\n const jElement = tr.children.item(j) as HTMLElement;\r\n\r\n headerColumns.push(jElement.innerHTML);\r\n }\r\n\r\n return {\r\n type: \"table-header\",\r\n columns: headerColumns\r\n };\r\n }\r\n\r\n static getTableRows(tableTag: HTMLTableElement, options: HtmlExtractionOptions): Array<TableRowData> {\r\n let tBody = tableTag.tBodies.item(0);\r\n\r\n let rows: TableRowData[] = [];\r\n\r\n for (let i = 0; i < tBody.children.length; i++) {\r\n const iElement = tBody.children.item(i);\r\n\r\n let rowColumns: TableRowColumnData[] = [];\r\n\r\n for (let j = 0; j < iElement.children.length; j++) {\r\n const jElement = iElement.children.item(j) as HTMLElement;\r\n\r\n let children = HtmlExtractionMethods.transformHtmlElementToBlocks(jElement, options);\r\n\r\n if(children.length === 0){\r\n var textTag = document.createElement(\"p\");\r\n textTag.innerHTML = jElement.innerHTML;\r\n\r\n var textElem = TextSimpleMethods.ExtractTextTag(textTag);\r\n\r\n children.push(textElem);\r\n }\r\n\r\n var result:TableRowColumnData = {\r\n type: TableTypes.TableRowColumnData,\r\n data: {\r\n text: jElement.innerHTML,\r\n children\r\n }\r\n };\r\n\r\n rowColumns.push(result);\r\n }\r\n\r\n rows.push({\r\n type: TableTypes.TableRowColumn,\r\n columns: rowColumns\r\n });\r\n }\r\n\r\n return rows;\r\n }\r\n}\r\n","export interface TextBlock{\r\n type: \"text-block\" | \"text-sup-block\" | \"text-sub-block\";\r\n data: {\r\n text: string;\r\n }\r\n }\r\n \r\n export interface LineBreakBlock {\r\n type: \"line-break\";\r\n }\r\n \r\n export interface RichTextData{\r\n type: \"rich-text\"\r\n data: {\r\n children: Array<TextBlock | LineBreakBlock>;\r\n }\r\n }\r\n\r\nexport class TextMethods {\r\n\r\n static textTags = [\"text\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"];\r\n\r\n static ExtractRichTextData(elem: HTMLElement): RichTextData {\r\n\r\n let children: Array<TextBlock | LineBreakBlock> = [];\r\n for (let i = 0; i < elem.children.length; i++) {\r\n const child = elem.children.item(i);\r\n\r\n if (child.tagName === \"text-block\".toUpperCase()) {\r\n children.push({\r\n type: \"text-block\",\r\n data: {\r\n text: child.innerHTML\r\n }\r\n });\r\n }\r\n else if (child.tagName === \"line-break\".toUpperCase()) {\r\n children.push({\r\n type: \"line-break\"\r\n });\r\n }\r\n }\r\n\r\n return {\r\n type: \"rich-text\",\r\n data: {\r\n children\r\n }\r\n };\r\n }\r\n}\r\n","import { ImageMethods } from \"./ImageMethods\";\r\nimport { InterfaceBlock } from \"./InterfaceBlock\";\r\nimport { TableMethods } from \"./TableMethods\";\r\nimport { TextMethods } from \"./TextMethods\";\r\nimport { GenericTextTag, TextSimpleMethods } from \"./TextSimpleMethods\";\r\nimport { ExternalVideoTagDataConsts, VideoMethods } from \"./VideoMethods\";\r\n\r\nexport interface HtmlExtractionOptions{\r\n useCustomDomain: boolean;\r\n domain: string;\r\n}\r\n\r\nexport class HtmlExtractionMethods {\r\n\r\n static ExtractHeaderTag(elem: HTMLElement, tagName: string): GenericTextTag {\r\n\r\n var data: GenericTextTag = TextSimpleMethods.ExtractTextTag(elem);\r\n data.type = tagName;\r\n\r\n return data;\r\n }\r\n\r\n static Extractors = {\r\n [\"TEXT\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => TextSimpleMethods.ExtractTextTag(elem),\r\n [\"FILE-IMAGE\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => ImageMethods.ExtractImage(elem, options),\r\n [\"TABLE\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => TableMethods.getTableFromHtmlTag(elem as HTMLTableElement, options),\r\n [\"RICH-TEXT\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => TextMethods.ExtractRichTextData(elem),\r\n [\"HTML-RAW\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => ({\r\n type: \"html-raw\",\r\n data: {\r\n innerHTML: elem.innerHTML\r\n }\r\n }),\r\n [\"H1\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => HtmlExtractionMethods.ExtractHeaderTag(elem, \"h1\"),\r\n [\"H2\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => HtmlExtractionMethods.ExtractHeaderTag(elem, \"h2\"),\r\n [\"H3\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => HtmlExtractionMethods.ExtractHeaderTag(elem, \"h3\"),\r\n [\"H4\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => HtmlExtractionMethods.ExtractHeaderTag(elem, \"h4\"),\r\n [\"H5\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => HtmlExtractionMethods.ExtractHeaderTag(elem, \"h5\"),\r\n [\"H6\"]: (elem: HTMLElement, options: HtmlExtractionOptions) => HtmlExtractionMethods.ExtractHeaderTag(elem, \"h6\"),\r\n [ExternalVideoTagDataConsts.TagName.toUpperCase()]: (elem: HTMLElement, options: HtmlExtractionOptions) => VideoMethods.ExtractExternalVideoTag(elem)\r\n };\r\n\r\n static transformHtmlElementToBlocks(element: HTMLElement, options: HtmlExtractionOptions): InterfaceBlock[] {\r\n var data: InterfaceBlock[] = [];\r\n\r\n for (let i = 0; i < element.children.length; i++) {\r\n var elem = element.children.item(i) as HTMLElement;\r\n\r\n if (!HtmlExtractionMethods.Extractors.hasOwnProperty(elem.tagName)) {\r\n data.push({\r\n type: \"unsupported-tag\",\r\n data: {\r\n tagString: elem.outerHTML\r\n }\r\n });\r\n }\r\n else {\r\n var extractor = HtmlExtractionMethods.Extractors[elem.tagName];\r\n var result = extractor(elem, options);\r\n data.push(result);\r\n }\r\n }\r\n\r\n return data;\r\n }\r\n\r\n static transformHtmlStringToBlocks(value: string, options: HtmlExtractionOptions): InterfaceBlock[] {\r\n\r\n if (value === undefined || value === null) {\r\n return [];\r\n }\r\n\r\n value = value\r\n .replace('\\n', '')\r\n .replace('\\t', '');\r\n\r\n var div = document.createElement(\"div\");\r\n div.innerHTML = value;\r\n\r\n return this.transformHtmlElementToBlocks(div, options);\r\n }\r\n}\r\n","export class HtmlRawTagDataConsts {\r\n static TagName = \"html-raw\";\r\n}\r\n","import { HtmlBodyTag } from \"../models/models\";\r\nimport { HtmlExtractionMethods, HtmlExtractionOptions } from \"./HtmlExtractionMethods\";\r\nimport { InterfaceBlock } from \"./InterfaceBlock\";\r\nimport { HtmlRawTagDataConsts } from \"./HtmlRawTagDataConsts\";\r\nimport { FileImageTagData, FileImageTagDataConsts } from \"./ImageMethods\";\r\nimport { TextMethods } from \"./TextMethods\";\r\nimport { SimpleTextTagData } from \"./TextSimpleMethods\";\r\nimport { ExternalVideoTagDataConsts } from \"./VideoMethods\";\r\n\r\nexport class BodyTagsExtensions {\r\n\r\n static getDescription(tagName: string){\r\n var descriptions = {\r\n \"text\": \"Текст\",\r\n \"h1\": \"Заголовок 1 уровня\",\r\n \"h2\": \"Заголовок 2 уровня\",\r\n \"h3\": \"Заголовок 3 уровня\",\r\n \"h4\": \"Заголовок 4 уровня\",\r\n \"h5\": \"Заголовок 5 уровня\",\r\n \"h6\": \"Заголовок 6 уровня\",\r\n [FileImageTagDataConsts.TagName]: \"Изображение\",\r\n [ExternalVideoTagDataConsts.TagName]: \"Внешнее видео YouTube\",\r\n [HtmlRawTagDataConsts.TagName]: \"Html разметка\"\r\n };\r\n\r\n return descriptions[tagName];\r\n }\r\n\r\n static toHtml(bodyTags: HtmlBodyTag[]): string{\r\n let htmls = bodyTags.map(x => {\r\n if(TextMethods.textTags.includes(x.tagDescription.tag)){\r\n return `<${x.tagDescription.tag} h-align=\"${x.attributes['h-align']}\">${x.innerHtml}</${x.tagDescription.tag}>`;\r\n }\r\n\r\n if(x.tagDescription.tag === ExternalVideoTagDataConsts.TagName){\r\n return `<${x.tagDescription.tag} type=\"${x.attributes['type']}\" link=\"${x.attributes['link']}\">${x.innerHtml}</${x.tagDescription.tag}>`\r\n }\r\n\r\n if(x.tagDescription.tag === \"html-raw\"){\r\n return `<${x.tagDescription.tag}>${x.innerHtml}</${x.tagDescription.tag}>`\r\n }\r\n\r\n return BodyTagsExtensions.imageTagToHtml(x);\r\n });\r\n\r\n let result = \"\";\r\n\r\n for (let index = 0; index < htmls.length; index++) {\r\n const element = htmls[index];\r\n\r\n result += element;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n static imageTagToHtml(imageTag: HtmlBodyTag){\r\n\r\n var attrStr = \"\";\r\n\r\n var attrValue = imageTag.attributes[FileImageTagDataConsts.FileIdAttrName];\r\n if(imageTag.attributes.hasOwnProperty(FileImageTagDataConsts.FileIdAttrName) && attrValue){\r\n attrStr = `${FileImageTagDataConsts.FileIdAttrName}=\"${attrValue}\"`;\r\n }\r\n\r\n return `<${FileImageTagDataConsts.TagName} ${attrStr}></${FileImageTagDataConsts.TagName}>`;\r\n }\r\n\r\n static getBodyTags(html:string, options: HtmlExtractionOptions){\r\n let result = HtmlExtractionMethods.transformHtmlStringToBlocks(html, options);\r\n return result.map(x => BodyTagsExtensions.toBodyTag(x));\r\n }\r\n\r\n static sanitizeInnerHtml(html:string):string{\r\n return html.trim().replace('\\n\\t', '');\r\n }\r\n\r\n static toBodyTag(data: InterfaceBlock): HtmlBodyTag {\r\n if (TextMethods.textTags.includes(data.type)) {\r\n let textTagData = data.data as SimpleTextTagData;\r\n\r\n return {\r\n presentOrEdit: true,\r\n tagDescription: {\r\n tag: textTagData.textTagName,\r\n displayValue: BodyTagsExtensions.getDescription(data.type)\r\n },\r\n attributes: { \"h-align\": textTagData.horizontalAlignment },\r\n innerHtml: BodyTagsExtensions.sanitizeInnerHtml(textTagData.html)\r\n };\r\n }\r\n\r\n if(data.type === FileImageTagDataConsts.TagName){\r\n\r\n let fileData = data.data as FileImageTagData;\r\n\r\n let attrs = {};\r\n\r\n if(fileData.fileId) {\r\n attrs[FileImageTagDataConsts.FileIdAttrName] = fileData.fileId;\r\n }\r\n\r\n return {\r\n presentOrEdit: true,\r\n tagDescription: {\r\n tag: FileImageTagDataConsts.TagName,\r\n displayValue: BodyTagsExtensions.getDescription(data.type)\r\n },\r\n attributes: attrs,\r\n innerHtml: \"\"\r\n };\r\n }\r\n\r\n if(data.type === ExternalVideoTagDataConsts.TagName){\r\n let fileData = data.data as ExternalVideoTagDataConsts;\r\n\r\n return {\r\n presentOrEdit: true,\r\n tagDescription: {\r\n tag: ExternalVideoTagDataConsts.TagName,\r\n displayValue: BodyTagsExtensions.getDescription(data.type)\r\n },\r\n attributes: fileData,\r\n innerHtml: \"\"\r\n };\r\n }\r\n\r\n if(data.type === HtmlRawTagDataConsts.TagName){\r\n\r\n return {\r\n presentOrEdit: true,\r\n tagDescription: {\r\n tag: HtmlRawTagDataConsts.TagName,\r\n displayValue: BodyTagsExtensions.getDescription(data.type)\r\n },\r\n attributes: {},\r\n innerHtml: BodyTagsExtensions.sanitizeInnerHtml(data.data[\"innerHTML\"])\r\n };\r\n }\r\n\r\n return {\r\n presentOrEdit: true,\r\n tagDescription: {\r\n tag: \"unsupported-tag\",\r\n displayValue: \"Неподдерживаемый тег\"\r\n },\r\n attributes: { },\r\n innerHtml: JSON.stringify(data)\r\n };\r\n }\r\n}\r\n","export class XmlExtensions{\r\n public static formatXml(xml:string, tab:string = '\\t'):string { // tab = optional indent value, default is tab (\\t)\r\n var formatted = '', indent= '';\r\n tab = tab || '\\t';\r\n xml.split(/>\\s*</).forEach(function(node) {\r\n if (node.match( /^\\/\\w/ )) indent = indent.substring(tab.length); // decrease indent by one 'tab'\r\n formatted += indent + '<' + node + '>\\r\\n';\r\n if (node.match( /^<?\\w[^>]*[^\\/]$/ )) indent += tab; // increase indent\r\n });\r\n return formatted.substring(1, formatted.length-3);\r\n }\r\n\r\n public static tagsToLower(xml: string): string{\r\n xml = this.replaceTagToLower(xml, \"Body\");\r\n xml = this.replaceTagToLower(xml, \"Image\");\r\n xml = this.replaceTagToLower(xml, \"Text\");\r\n\r\n return xml;\r\n }\r\n\r\n static replaceTagToLower(xml: string, tag: string) : string{\r\n return xml\r\n .replace(new RegExp(`<${tag}`, 'g'), `<${tag.toLowerCase()}`)\r\n .replace(new RegExp(`</${tag}>`, 'g'), `</${tag.toLowerCase()}>`);\r\n }\r\n}","import { HtmlRawTagDataConsts } from '../../../extensions/HtmlRawTagDataConsts';\r\nimport { FileImageTagDataConsts } from '../../../extensions/ImageMethods';\r\nimport { ExternalVideoTagDataConsts } from '../../../extensions/VideoMethods';\r\nimport { TagItem } from '../../../models/models';\r\n\r\nexport class DefaultTags {\r\n static tags: TagItem[] = [\r\n { tag: FileImageTagDataConsts.TagName, displayValue: 'Изображение' },\r\n { tag: ExternalVideoTagDataConsts.TagName, displayValue: 'Внешнее видео Youtube' },\r\n { tag: 'text', displayValue: 'Текст' },\r\n { tag: 'h1', displayValue: 'Заголовок 1 уровня' },\r\n { tag: 'h2', displayValue: 'Заголовок 2 уровня' },\r\n { tag: 'h3', displayValue: 'Заголовок 3 уровня' },\r\n { tag: 'h4', displayValue: 'Заголовок 4 уровня' },\r\n { tag: 'h5', displayValue: 'Заголовок 5 уровня' },\r\n { tag: 'h6', displayValue: 'Заголовок 6 уровня' },\r\n ];\r\n\r\n static htmlRawTag: TagItem = {\r\n tag: HtmlRawTagDataConsts.TagName, displayValue: 'Html разметка'\r\n };\r\n\r\n static getTags(useHtmlRaw: boolean): TagItem[] {\r\n var result = [...DefaultTags.tags];\r\n\r\n if (useHtmlRaw) {\r\n result.push(DefaultTags.htmlRawTag);\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { HtmlBodyTag } from '../../../models/models';\r\n\r\n@Component({\r\n selector: 'croco-html-text-editor',\r\n templateUrl: './text-editor.component.html',\r\n styleUrls: ['./text-editor.component.css']\r\n})\r\nexport class TextEditorComponent implements OnInit {\r\n\r\n\r\n @Input()\r\n tag: HtmlBodyTag;\r\n\r\n @Output()\r\n onTagUpdated = new EventEmitter<HtmlBodyTag>();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n getInnerHtml(){\r\n return `<${this.tag.tagDescription.tag}>${this.tag.innerHtml}<${this.tag.tagDescription.tag}/>`;\r\n }\r\n}\r\n","<div *ngIf=\"tag.presentOrEdit\">\r\n <div style=\"height: 10px;\">\r\n </div>\r\n\r\n <div style=\"text-align: left;\" *ngIf=\"tag.attributes['h-align'] === 'left'\" [innerHtml]=\"getInnerHtml()\">\r\n </div>\r\n <div style=\"text-align: right;\" *ngIf=\"tag.attributes['h-align'] === 'right'\" [innerHtml]=\"getInnerHtml()\">\r\n </div>\r\n <div style=\"text-align: center;\" *ngIf=\"tag.attributes['h-align'] === 'center'\" [innerHtml]=\"getInnerHtml()\">\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"!tag.presentOrEdit\">\r\n <div style=\"overflow-x: auto;\">\r\n <mat-button-toggle-group [(ngModel)]=\"tag.attributes['h-align']\">\r\n <mat-button-toggle value=\"center\">\r\n По центру <mat-icon>format_align_center</mat-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"left\">\r\n Слева <mat-icon>format_align_left</mat-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"right\">\r\n Справа <mat-icon> format_align_right</mat-icon>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n\r\n <div style=\"height: 10px;\">\r\n </div>\r\n <div>\r\n <mat-form-field class=\"w-100\">\r\n <textarea matInput cdkTextareaAutosize #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n placeholder=\"Внутренняя разметка текстового тега\"\r\n [(ngModel)]=\"tag.innerHtml\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { TextMethods } from '../../../extensions/TextMethods';\r\nimport { HtmlBodyTag } from '../../../models/models';\r\n\r\n@Component({\r\n selector: 'croco-html-main-editor-block',\r\n templateUrl: './main-editor-block.component.html',\r\n styleUrls: ['./main-editor-block.component.css']\r\n})\r\nexport class MainEditorBlockComponent implements OnInit {\r\n\r\n textTags = TextMethods.textTags;\r\n\r\n @Input()\r\n tag:HtmlBodyTag;\r\n\r\n @Output()\r\n onTagSaved = new EventEmitter<HtmlBodyTag>();\r\n\r\n @Output()\r\n onTagRemoved = new EventEmitter<HtmlBodyTag>();\r\n\r\n constructor() { }\r\n\r\n tagUpdatedHandler(tag:HtmlBodyTag):void{\r\n }\r\n\r\n save(){\r\n this.tag.presentOrEdit = true;\r\n this.onTagSaved.emit(this.tag);\r\n }\r\n\r\n deleteItem(){\r\n this.onTagRemoved.emit(this.tag);\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","<div>\r\n <div>\r\n <div *ngIf=\"textTags.includes(tag.tagDescription.tag)\">\r\n <croco-html-text-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\r\n </croco-html-text-editor>\r\n </div>\r\n\r\n <div *ngIf=\"tag.tagDescription.tag === 'file-image'\"> \r\n <croco-html-image-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\r\n </croco-html-image-editor>\r\n </div>\r\n\r\n <div *ngIf=\"tag.tagDescription.tag === 'external-video'\">\r\n <croco-html-external-video-block (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\r\n </croco-html-external-video-block>\r\n </div>\r\n\r\n <div *ngIf=\"tag.tagDescription.tag === 'html-raw'\">\r\n <croco-html-html-raw-editor (onTagUpdated)=\"tagUpdatedHandler($event)\" [tag]=\"tag\">\r\n </croco-html-html-raw-editor>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"d-flex justify-content-end align-self-center\">\r\n <div>\r\n <button *ngIf=\"tag.presentOrEdit\" (click)=\"tag.presentOrEdit = false\" mat-icon-button>\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button *ngIf=\"!tag.presentOrEdit\" (click)=\"save()\" mat-icon-button>\r\n <mat-icon>save</mat-icon>\r\n </button>\r\n <button (click)=\"deleteItem()\" mat-icon-button color=\"warn\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { AfterViewInit, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { BodyTagsExtensions } from '../../../extensions/BodyTagsExtensions';\r\nimport { FileImageTagDataConsts } from '../../../extensions/ImageMethods';\r\nimport { TextMethods } from '../../../extensions/TextMethods';\r\nimport { ExternalVideoTagDataConsts, ExternalVideoSupportedTypes } from '../../../extensions/VideoMethods';\r\nimport { XmlExtensions } from '../../../extensions/XmlExtensions';\r\nimport { TagItem, HtmlBodyTag } from '../../../models/models';\r\nimport { FilePostingStarted } from '../../upload-files-btn/upload-files-btn.component';\r\nimport { DefaultTags } from './DefaultTags';\r\n\r\n@Component({\r\n selector: 'croco-visual-editor',\r\n templateUrl: './visual-editor.component.html',\r\n styleUrls: ['./visual-editor.component.css']\r\n})\r\nexport class VisualEditorComponent implements OnInit, AfterViewInit {\r\n\r\n isLoading = false;\r\n loadingText = \"Идёт загрузка\";\r\n\r\n @Input()\r\n showMarkUp = true;\r\n\r\n tags: TagItem[] = [];\r\n\r\n selectedValue: string;\r\n\r\n @Input()\r\n useHtmlRaw = false;\r\n\r\n @Input()\r\n @Output()\r\n html: string = \"\";\r\n\r\n isHtmlSet(){\r\n return this.html.startsWith(\"<body>\");\r\n }\r\n\r\n clearHtml(){\r\n this.html = \"\";\r\n this.recalculateBodyTags();\r\n }\r\n\r\n getHtml(){\r\n this.recalculateHtml();\r\n return this.html;\r\n }\r\n\r\n @Output()\r\n onHtmlChanged = new EventEmitter<string>();\r\n\r\n @Output()\r\n rendered = new EventEmitter<boolean>();\r\n\r\n bodyTags: HtmlBodyTag[] = [];\r\n\r\n constructor(\r\n private _cdref: ChangeDetectorRef) { }\r\n\r\n ngAfterViewInit(): void {\r\n this.rendered.emit(true);\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this._cdref.detectChanges();\r\n }\r\n\r\n addTag(): void {\r\n let tagDescription = this.tags\r\n .find(x => x.tag === this.selectedValue);\r\n\r\n let attrs = {};\r\n let innerHtml = \"\";\r\n\r\n if(TextMethods.textTags.includes(tagDescription.tag)){\r\n attrs[\"h-align\"] = \"left\";\r\n innerHtml = \"Введите ваш текст\";\r\n }\r\n else if(tagDescription.tag == ExternalVideoTagDataConsts.TagName){\r\n attrs[ExternalVideoTagDataConsts.VideoTypeAttrName] = ExternalVideoSupportedTypes.Youtube;\r\n attrs[ExternalVideoTagDataConsts.LinkAttrName] = null;\r\n }\r\n else{\r\n attrs[FileImageTagDataConsts.FileIdAttrName] = null;\r\n }\r\n\r\n this.bodyTags.push({\r\n tagDescription,\r\n innerHtml,\r\n attributes: attrs,\r\n presentOrEdit: true\r\n });\r\n\r\n this.recalculateHtml();\r\n }\r\n\r\n postFilesStartedEventHandler(model:FilePostingStarted){\r\n this.loadingText = \"Файлы загружаются на сервер\";\r\n this.isLoading = true;\r\n }\r\n\r\n addTagCustom(tag: HtmlBodyTag){\r\n this.bodyTags.push(tag);\r\n this.recalculateHtml();\r\n }\r\n\r\n filesTagsReadyHandler(tags: HtmlBodyTag[]){\r\n for(let i = 0; i < tags.length; i++){\r\n this.bodyTags.push(tags[i]);\r\n }\r\n this.recalculateHtml();\r\n\r\n this.isLoading = false;\r\n }\r\n\r\n drop(event: CdkDragDrop<object[]>) {\r\n moveItemInArray(this.bodyTags, event.previousIndex, event.currentIndex);\r\n this.recalculateHtml();\r\n }\r\n\r\n onTagSavedHandler(tag: HtmlBodyTag){\r\n this.recalculateHtml();\r\n }\r\n\r\n onTagRemovedHandler(index: number){\r\n this.bodyTags.splice(index, 1);\r\n this.recalculateHtml();\r\n }\r\n\r\n recalculateHtml(){\r\n let result = BodyTagsExtensions.toHtml(this.bodyTags);\r\n this.html = XmlExtensions.formatXml(\"<body>\" + result + \"</body>\");\r\n this.onHtmlChanged.emit(this.html);\r\n }\r\n\r\n recalculateBodyTags(){\r\n this.bodyTags = BodyTagsExtensions.getBodyTags(this.html, {useCustomDomain: false, domain: \"\"});\r\n }\r\n\r\n ngOnInit(): void {\r\n this.recalculateBodyTags();\r\n\r\n this.tags = DefaultTags.getTags(this.useHtmlRaw);\r\n this.selectedValue = this.tags[0].tag;\r\n }\r\n}\r\n","<div *ngIf=\"isLoading\">\r\n <div>\r\n <mat-spinner style=\"margin:0 auto;\"></mat-spinner>\r\n <div style=\"text-align: center;\">{{loadingText}}</div>\r\n </div>\r\n <div style=\"height: 10px;\"></div>\r\n</div>\r\n\r\n<div [hidden]=\"isLoading\">\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div *ngFor=\"let tag of bodyTags; let i = index\" cdkDrag>\r\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\r\n <mat-card-content>\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"example-handle\" cdkDragHandle>\r\n <svg width=\"24px\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path\r\n d=\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\">\r\n </path>\r\n <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n </svg>\r\n </div>\r\n <div>\r\n <mat-chip-listbox aria-label=\"Tag display value\">\r\n <mat-chip-option color=\"primary\"\r\n selected>{{tag.tagDescription.displayValue}}</mat-chip-option>\r\n </mat-chip-listbox>\r\n </div>\r\n </div>\r\n\r\n <div style=\"height: 15px;\"></div>\r\n\r\n <croco-html-main-editor-block [tag]=\"tag\" (onTagSaved)=\"onTagSavedHandler($event)\"\r\n (onTagRemoved)=\"onTagRemovedHandler(i)\">\r\n </croco-html-main-editor-block>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div style=\"height: 10px;\">\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<div [hidden]=\"isLoading\">\r\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\r\n <mat-card-content>\r\n <div class=\"row d-flex align-items-center\">\r\n <div class=\"col-12\">\r\n <mat-form-field class=\"w-100\" appearance=\"outline\">\r\n <mat-label>Выберите тег</mat-label>\r\n <mat-select [(ngModel)]=\"selectedValue\">\r\n <mat-option *ngFor=\"let tag of tags\" [value]=\"tag.tag\">\r\n {{tag.displayValue}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-12\">\r\n <button (click)=\"addTag()\" class=\"w-100\" mat-stroked-button>\r\n Добавить тег\r\n </button>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div style=\"height: 10px;\">\r\n </div>\r\n</div>\r\n\r\n<div [hidden]=\"isLoading\">\r\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\r\n <mat-card-content>\r\n <div class=\"row d-flex align-items-center\">\r\n <div class=\"col-12\">\r\n <croco-html-add-files-btn (filesTagsReady)=\"filesTagsReadyHandler($event)\"\r\n (postFilesStarted)=\"postFilesStartedEventHandler($event)\" class=\"w-100\">\r\n </croco-html-add-files-btn>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div style=\"height: 10px;\">\r\n </div>\r\n</div>","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { HtmlExtractionMethods } from '../extensions/HtmlExtractionMethods';\r\nimport { InterfaceBlock } from \"../extensions/InterfaceBlock\";\r\n\r\n@Pipe({\r\n name: 'topreview'\r\n})\r\nexport class ToPreviewPipe implements PipeTransform {\r\n transform(value: string): InterfaceBlock[] {\r\n return HtmlExtractionMethods.transformHtmlStringToBlocks(value, {\r\n useCustomDomain: false,\r\n domain: \"\"\r\n });\r\n }\r\n}\r\n","import { AfterContentChecked, AfterViewInit, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ClipboardService } from 'ngx-clipboard';\r\nimport { VisualEditorComponent } from '../visual-editor/visual-editor.component';\r\n\r\n@Component({\r\n selector: 'croco-html-main-editor',\r\n templateUrl: './main-editor.component.html',\r\n styleUrls: ['./main-editor.component.css']\r\n})\r\nexport class MainEditorComponent implements OnInit, AfterContentChecked, AfterViewInit {\r\n\r\n visualEditorRendered = false;\r\n \r\n @ViewChild(\"visualEditor\", { static: true })\r\n visualEditor: VisualEditorComponent;\r\n\r\n @Input()\r\n showMarkUp = true;\r\n\r\n @Input()\r\n useHtmlRaw = false;\r\n\r\n @Input()\r\n @Output()\r\n html: string = \"\";\r\n\r\n @Output()\r\n onHtmlChanged = new EventEmitter<string>();\r\n\r\n constructor(private _clipboardService: ClipboardService,\r\n private _snackBar: MatSnackBar,\r\n private _cdref: ChangeDetectorRef) { }\r\n \r\n ngAfterViewInit(): void {\r\n this.recalculateBodyTags();\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this._cdref.detectChanges();\r\n }\r\n\r\n visualEditorRenderedHandler(){\r\n this.visualEditorRendered = true;\r\n this.recalculateBodyTags();\r\n }\r\n\r\n onHtmlChangedHandler(html: string) {\r\n this.html = html;\r\n this.onHtmlChanged.emit(html);\r\n }\r\n\r\n textAreaModelChangedHandler(){\r\n this.recalculateBodyTags();\r\n this.onHtmlChangedHandler(this.html);\r\n }\r\n\r\n recalculateBodyTags() {\r\n this.visualEditor.html = this.html;\r\n this.visualEditor.recalculateBodyTags();\r\n }\r\n\r\n copyMarkUp() {\r\n this._snackBar.open(\"Разметка скопирована в буфер обмена\", \"Закрыть\", { duration: 1500 });\r\n this._clipboardService.copy(this.html);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.visualEditor.recalculateBodyTags();\r\n }\r\n}\r\n","<mat-tab-group>\r\n <mat-tab label=\"Визуальный редактор\">\r\n\r\n <div style=\"height: 20px;\"></div>\r\n\r\n <croco-visual-editor #visualEditor\r\n [useHtmlRaw]=\"useHtmlRaw\"\r\n [html]=\"html\"\r\n (onHtmlChanged)=\"onHtmlChangedHandler($event)\"\r\n (rendered)=\"visualEditorRenderedHandler()\">\r\n </croco-visual-editor>\r\n\r\n <div style=\"height: 20px;\"></div>\r\n\r\n </mat-tab>\r\n\r\n <mat-tab label=\"Разметка\">\r\n <div style=\"height: 10px;\"></div>\r\n <div *ngIf=\"visualEditorRendered\">\r\n <mat-form-field class=\"w-100\">\r\n <textarea matInput cdkTextareaAutosize #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n placeholder=\"Исходный код\" [(ngModel)]=\"html\"\r\n (ngModelChange)=\"textAreaModelChangedHandler()\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n\r\n <button (click)=\"copyMarkUp()\"\r\n mat-raised-button color=\"primary\">\r\n Копировать разметку\r\n </button>\r\n </mat-tab>\r\n <mat-tab label=\"Результат\">\r\n <mat-card style=\"padding: 2px;\" class=\"mat-card\">\r\n <mat-card-content>\r\n <croco-html-xml-tag-view [data]=\"html | topreview\">\r\n </croco-html-xml-tag-view>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-tab>\r\n</mat-tab-group>\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { RichTextData } from \"../extensions/TextMethods\";\r\n\r\n@Pipe({\r\n name: 'richTextToHtml'\r\n})\r\nexport class RichTextToHtmlPipe implements PipeTransform {\r\n\r\n transform(value: RichTextData): string {\r\n let result = \"\";\r\n\r\n for (let i = 0; i < value.data.children.length; i++) {\r\n const child = value.data.children[i];\r\n\r\n if (child.type === \"text-block\") {\r\n result += `<span>${child.data.text}</span>`;\r\n }\r\n else if (child.type === \"line-break\") {\r\n result += \"</br>\";\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { RichTextData } from '../../../extensions/TextMethods';\r\n\r\n@Component({\r\n selector: 'croco-html-xml-tag-rich-text-view',\r\n templateUrl: './xml-tag-rich-text-view.component.html',\r\n styleUrls: ['./xml-tag-rich-text-view.component.css']\r\n})\r\nexport class XmlTagRichTextViewComponent implements OnInit {\r\n\r\n @Input()\r\n richTextData: RichTextData = null;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n \r\n}\r\n","<div *ngIf=\"richTextData\" [innerHtml]=\"richTextData | richTextToHtml\">\r\n</div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'croco-html-xml-tag-table-view',\r\n templateUrl: './xml-tag-table-view.component.html',\r\n styleUrls: ['./xml-tag-table-view.component.css']\r\n})\r\nexport class XmlTagTableViewComponent {\r\n\r\n @Input()\r\n displayedColumns: string[] = [];\r\n\r\n @Input()\r\n data: object;\r\n}\r\n","<table mat-table [dataSource]=\"data\" class=\"mat-elevation-z8 w-100 example-container\">\r\n <ng-container [matColumnDef]=\"column\" *ngFor=\"let column of displayedColumns\">\r\n <th mat-header-cell *matHeaderCellDef> {{column}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element[column]}} </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n</table>","import { Component, Input } from '@angular/core';\nimport { ITagViewOptions } from '../../models/models';\n\n@Component({\n selector: 'croco-html-view',\n templateUrl: './html-view.component.html',\n styleUrls: ['./html-view.component.css']\n})\nexport class HtmlViewComponent {\n @Input()\n html: string = \"<body></body>\";\n\n @Input()\n viewOptions: ITagViewOptions = {\n useCustomImageUrlRenderer: false,\n renderImageUrl(fileId, sizeType) {\n return \"\";\n },\n }\n}\n","<croco-html-xml-tag-view [data]=\"html | topreview\" [viewOptions]=\"viewOptions\"></croco-html-xml-tag-view>","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: 'tagToSpan'\r\n})\r\nexport class TagToSpanPipe implements PipeTransform {\r\n transform(value: string[]): string {\r\n return value.map(x => (`<b>${x}</b>`)).join(' | ')\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { BodyTagsExtensions } from '../extensions/BodyTagsExtensions';\r\nimport { HtmlBodyTag } from '../models/models';\r\n\r\n@Pipe({\r\n name: 'tohtmlbodytags'\r\n})\r\nexport class ToHtmlBodyTagsPipe implements PipeTransform {\r\n \r\n transform(value: string): HtmlBodyTag[] {\r\n return BodyTagsExtensions.getBodyTags(value, {useCustomDomain: false, domain: \"\"});\r\n } \r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { HtmlExtractionMethods, HtmlExtractionOptions } from '../extensions/HtmlExtractionMethods';\r\nimport { InterfaceBlock } from \"../extensions/InterfaceBlock\";\r\n\r\n@Pipe({\r\n name: 'topreviewhtml'\r\n})\r\nexport class ToPreviewHtmlPipe implements PipeTransform {\r\n transform(value: string, options: HtmlExtractionOptions): InterfaceBlock[] {\r\n return HtmlExtractionMethods.transformHtmlStringToBlocks(value, options);\r\n }\r\n}\r\n","import { XmlExtensions } from './XmlExtensions';\r\n\r\nexport class TableBuilder {\r\n static getTableMarkUp(rows: number, cols: number, generateHeaders: boolean): string {\r\n rows = +rows;\r\n cols = +cols;\r\n\r\n let result = \"<table>\";\r\n \r\n if(generateHeaders){\r\n result += TableBuilder.getTableHeaderMarkUp(cols);\r\n }\r\n \r\n result += TableBuilder.getTableBodyMarkUp(cols, rows);\r\n result += \"</table>\";\r\n\r\n return XmlExtensions.formatXml(result);\r\n }\r\n\r\n static getTableHeaderMarkUp(cols: number): string {\r\n\r\n let result = \"<thead><tr>\";\r\n\r\n for (let i = 0; i < cols; i++) {\r\n result += `<th>Колонка #${i + 1}</th>`;\r\n }\r\n\r\n result += \"</tr></thead>\";\r\n\r\n return result;\r\n }\r\n\r\n static getTableBodyMarkUp(cols: number, rows: number): string {\r\n\r\n let result = \"<tbody>\";\r\n\r\n for (let row = 0; row < rows; row++) {\r\n result += \"<tr>\";\r\n for (let i = 0; i < cols; i++) {\r\n\r\n result += `<td>Ряд№${row + 1} Колонка #${i + 1}</td>`;\r\n }\r\n result += \"</tr>\";\r\n }\r\n\r\n result += \"</tbody>\";\r\n\r\n return result;\r\n }\r\n}\r\n","import { ImageEditorComponent } from \"./components/editor/image-editor/image-editor.component\";\r\nimport { MainEditorBlockComponent } from \"./components/editor/main-editor-block/main-editor-block.component\";\r\nimport { MainEditorComponent } from \"./components/editor/main-editor/main-editor.component\";\r\nimport { TextEditorComponent } from \"./components/editor/text-editor/text-editor.component\";\r\nimport { FileIdSelectComponent } from \"./components/file-id-select/file-id-select.component\";\r\nimport { XmlTagHeaderInnerTextViewComponent } from \"./components/xml-tags/xml-tag-header-inner-text-view/xml-tag-header-inner-text-view.component\";\r\nimport { XmlTagHeaderTextViewComponent } from \"./components/xml-tags/xml-tag-header-text-view/xml-tag-header-text-view.component\";\r\nimport { XmlTagHtmlViewComponent } from \"./components/xml-tags/xml-tag-html-view/xml-tag-html-view.component\";\r\nimport { XmlTagRichTextViewComponent } from \"./components/xml-tags/xml-tag-rich-text-view/xml-tag-rich-text-view.component\";\r\nimport { XmlTagTableViewComponent } from \"./components/xml-tags/xml-tag-table-view/xml-tag-table-view.component\";\r\nimport { XmlTagTextViewComponent } from \"./components/xml-tags/xml-tag-text-view/xml-tag-text-view.component\";\r\nimport { XmlTagViewComponent } from \"./components/xml-tags/xml-tag-view/xml-tag-view.component\";\r\nimport { VisualEditorComponent } from './components/editor/visual-editor/visual-editor.component';\r\nimport { AddFilesBtnComponent } from './components/add-files-btn/add-files-btn.component';\r\nimport { ExternalVideoBlockComponent } from \"./components/editor/external-video-block/external-video-block.component\";\r\nimport { XmlTagExternalVideoComponent } from \"./components/xml-tags/xml-tag-external-video/xml-tag-external-video.component\";\r\nimport { HtmlRawEditorComponent } from \"./components/editor/html-raw-editor/html-raw-editor.component\";\r\n\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport {MatCheckboxModule} from '@angular/material/checkbox';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport {MatChipsModule} from '@angular/material/chips';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport {MatButtonToggleModule} from '@angular/material/button-toggle';\r\nimport { RichTextToHtmlPipe, TagToSpanPipe, ToHtmlBodyTagsPipe, ToPreviewHtmlPipe, ToPreviewPipe } from \"./pipes\";\r\nimport { FileImageTagViewComponent, UploadFilesBtnComponent } from \"./components\";\r\nimport { HtmlRawViewComponent } from \"./components/xml-tags/html-raw-view/html-raw-view.component\";\r\nimport { HtmlViewComponent } from \"./components/html-view/html-view.component\";\r\n\r\nexport const EditorComponents = [\r\n MainEditorComponent,\r\n FileIdSelectComponent,\r\n TextEditorComponent,\r\n ExternalVideoBlockComponent,\r\n ImageEditorComponent,\r\n MainEditorBlockComponent,\r\n VisualEditorComponent,\r\n AddFilesBtnComponent,\r\n HtmlRawEditorComponent,\r\n];\r\n\r\nexport const XmlComponents = [\r\n XmlTagTableViewComponent,\r\n XmlTagViewComponent,\r\n XmlTagRichTextViewComponent,\r\n XmlTagHtmlViewComponent,\r\n XmlTagTextViewComponent,\r\n XmlTagHeaderTextViewComponent,\r\n XmlTagHeaderInnerTextViewComponent,\r\n XmlTagExternalVideoComponent,\r\n HtmlRawViewComponent,\r\n FileImageTagViewComponent,\r\n HtmlViewComponent\r\n];\r\n\r\nexport const CrocoPipes = [\r\n RichTextToHtmlPipe,\r\n TagToSpanPipe,\r\n ToPreviewPipe,\r\n ToHtmlBodyTagsPipe,\r\n ToPreviewHtmlPipe\r\n]\r\n\r\nexport const CrocoHtmlDeclarations = [\r\n UploadFilesBtnComponent,\r\n HtmlViewComponent,\r\n ...XmlComponents,\r\n ...EditorComponents,\r\n ...CrocoPipes\r\n]\r\n\r\nexport const MaterialModules = [\r\n MatBadgeModule,\r\n MatTableModule,\r\n MatExpansionModule,\r\n MatFormFieldModule,\r\n MatSnackBarModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatTabsModule,\r\n MatMenuModule,\r\n MatCardModule,\r\n MatSelectModule,\r\n MatTooltipModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatListModule,\r\n MatButtonModule,\r\n MatInputModule,\r\n MatDialogModule,\r\n MatPaginatorModule,\r\n MatDatepickerModule,\r\n MatGridListModule,\r\n MatSlideToggleModule,\r\n MatTreeModule,\r\n MatNativeDateModule,\r\n MatAutocompleteModule,\r\n MatSidenavModule,\r\n MatIconModule,\r\n DragDropModule,\r\n MatButtonToggleModule\r\n];\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { NgSelectModule } from \"@ng-select/ng-select\";\r\nimport { CrocoHtmlDeclarations, MaterialModules } from \".\";\r\nimport { YouTubePlayerModule } from \"@angular/youtube-player\";\r\n\r\n@NgModule({\r\n declarations: [\r\n ...CrocoHtmlDeclarations,\r\n ],\r\n exports: [\r\n ...CrocoHtmlDeclarations,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgSelectModule,\r\n ...MaterialModules,\r\n YouTubePlayerModule\r\n ]\r\n})\r\nexport class CrocoHtmlModule { }\r\n","/*\r\n * Public API Surface of croco-html\r\n */\r\n\r\nexport * from './lib/components';\r\nexport * from './lib/pipes';\r\nexport * from './lib/extensions';\r\nexport * from './lib/croco-html.module';\r\nexport * from './lib/models/models'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.FileUploadService","i1","i2.UploadFilesBtnComponent","i2","i3","i5.XmlTagExternalVideoComponent","i1.FilesQueryService","i5","i7.FileIdSelectComponent","i2.XmlTagHeaderInnerTextViewComponent","i2.XmlTagHtmlViewComponent","i3.XmlTagTextViewComponent","i4.XmlTagHeaderTextViewComponent","i6.HtmlRawViewComponent","i7.FileImageTagViewComponent","i6","i7","i4.TextEditorComponent","i5.ExternalVideoBlockComponent","i6.ImageEditorComponent","i7.HtmlRawEditorComponent","i4","i9","i11.MainEditorBlockComponent","i12.AddFilesBtnComponent","i8","i10","i11.XmlTagViewComponent","i12.VisualEditorComponent","i13.ToPreviewPipe","i2.RichTextToHtmlPipe","i1.XmlTagViewComponent","i2.ToPreviewPipe","i1.UploadFilesBtnComponent","i2.HtmlViewComponent","i3.XmlTagTableViewComponent","i4.XmlTagViewComponent","i5.XmlTagRichTextViewComponent","i6.XmlTagHtmlViewComponent","i7.XmlTagTextViewComponent","i8.XmlTagHeaderTextViewComponent","i9.XmlTagHeaderInnerTextViewComponent","i10.XmlTagExternalVideoComponent","i11.HtmlRawViewComponent","i12.FileImageTagViewComponent","i13.MainEditorComponent","i14.FileIdSelectComponent","i15.TextEditorComponent","i16.ExternalVideoBlockComponent","i17.ImageEditorComponent","i18.MainEditorBlockComponent","i19.VisualEditorComponent","i20.AddFilesBtnComponent","i21.HtmlRawEditorComponent","i22.RichTextToHtmlPipe","i23.TagToSpanPipe","i24.ToPreviewPipe","i25.ToHtmlBodyTagsPipe","i26.ToPreviewHtmlPipe"],"mappings":"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"}
|
|
@@ -60,6 +60,6 @@ import * as i58 from "@angular/material/button-toggle";
|
|
|
60
60
|
import * as i59 from "@angular/youtube-player";
|
|
61
61
|
export declare class CrocoHtmlModule {
|
|
62
62
|
static ɵfac: i0.ɵɵFactoryDeclaration<CrocoHtmlModule, never>;
|
|
63
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<CrocoHtmlModule, [typeof i1.UploadFilesBtnComponent, typeof i2.HtmlViewComponent, typeof i3.XmlTagTableViewComponent, typeof i4.XmlTagViewComponent, typeof i5.XmlTagRichTextViewComponent, typeof i6.XmlTagHtmlViewComponent, typeof i7.XmlTagTextViewComponent, typeof i8.XmlTagHeaderTextViewComponent, typeof i9.XmlTagHeaderInnerTextViewComponent, typeof i10.XmlTagExternalVideoComponent, typeof i11.HtmlRawViewComponent, typeof i12.FileImageTagViewComponent, typeof i13.MainEditorComponent, typeof i14.FileIdSelectComponent, typeof i15.TextEditorComponent, typeof i16.ExternalVideoBlockComponent, typeof i17.ImageEditorComponent, typeof i18.MainEditorBlockComponent, typeof i19.VisualEditorComponent, typeof i20.AddFilesBtnComponent, typeof i21.HtmlRawEditorComponent, typeof i22.RichTextToHtmlPipe, typeof i23.TagToSpanPipe, typeof i24.ToPreviewPipe, typeof i25.ToHtmlBodyTagsPipe, typeof i26.ToPreviewHtmlPipe], [typeof i27.CommonModule, typeof i28.FormsModule, typeof i28.ReactiveFormsModule, typeof i29.NgSelectModule, typeof i30.MatBadgeModule, typeof i31.MatTableModule, typeof i32.MatExpansionModule, typeof i33.MatFormFieldModule, typeof i34.MatSnackBarModule, typeof i35.MatProgressBarModule, typeof i36.MatProgressSpinnerModule, typeof i37.MatTabsModule, typeof i38.MatMenuModule, typeof i39.MatCardModule, typeof i40.MatSelectModule, typeof i41.MatTooltipModule, typeof i42.MatCheckboxModule, typeof i43.MatChipsModule, typeof i44.MatListModule, typeof i45.MatButtonModule, typeof i46.MatInputModule, typeof i47.MatDialogModule, typeof i48.MatPaginatorModule, typeof i49.MatDatepickerModule, typeof i50.MatGridListModule, typeof i51.MatSlideToggleModule, typeof i52.MatTreeModule, typeof i53.MatNativeDateModule, typeof i54.MatAutocompleteModule, typeof i55.MatSidenavModule, typeof i56.MatIconModule, typeof i57.DragDropModule, typeof i58.MatButtonToggleModule, typeof i59.YouTubePlayerModule], [typeof i1.UploadFilesBtnComponent, typeof i2.HtmlViewComponent, typeof i3.XmlTagTableViewComponent, typeof i4.XmlTagViewComponent, typeof i5.XmlTagRichTextViewComponent, typeof i6.XmlTagHtmlViewComponent, typeof i7.XmlTagTextViewComponent, typeof i8.XmlTagHeaderTextViewComponent, typeof i9.XmlTagHeaderInnerTextViewComponent, typeof i10.XmlTagExternalVideoComponent, typeof i11.HtmlRawViewComponent, typeof i12.FileImageTagViewComponent, typeof i13.MainEditorComponent, typeof i14.FileIdSelectComponent, typeof i15.TextEditorComponent, typeof i16.ExternalVideoBlockComponent, typeof i17.ImageEditorComponent, typeof i18.MainEditorBlockComponent, typeof i19.VisualEditorComponent, typeof i20.AddFilesBtnComponent, typeof i21.HtmlRawEditorComponent, typeof i22.RichTextToHtmlPipe, typeof i23.TagToSpanPipe, typeof i24.ToPreviewPipe, typeof i25.ToHtmlBodyTagsPipe, typeof i26.ToPreviewHtmlPipe]>;
|
|
63
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<CrocoHtmlModule, [typeof i1.UploadFilesBtnComponent, typeof i2.HtmlViewComponent, typeof i3.XmlTagTableViewComponent, typeof i4.XmlTagViewComponent, typeof i5.XmlTagRichTextViewComponent, typeof i6.XmlTagHtmlViewComponent, typeof i7.XmlTagTextViewComponent, typeof i8.XmlTagHeaderTextViewComponent, typeof i9.XmlTagHeaderInnerTextViewComponent, typeof i10.XmlTagExternalVideoComponent, typeof i11.HtmlRawViewComponent, typeof i12.FileImageTagViewComponent, typeof i2.HtmlViewComponent, typeof i13.MainEditorComponent, typeof i14.FileIdSelectComponent, typeof i15.TextEditorComponent, typeof i16.ExternalVideoBlockComponent, typeof i17.ImageEditorComponent, typeof i18.MainEditorBlockComponent, typeof i19.VisualEditorComponent, typeof i20.AddFilesBtnComponent, typeof i21.HtmlRawEditorComponent, typeof i22.RichTextToHtmlPipe, typeof i23.TagToSpanPipe, typeof i24.ToPreviewPipe, typeof i25.ToHtmlBodyTagsPipe, typeof i26.ToPreviewHtmlPipe], [typeof i27.CommonModule, typeof i28.FormsModule, typeof i28.ReactiveFormsModule, typeof i29.NgSelectModule, typeof i30.MatBadgeModule, typeof i31.MatTableModule, typeof i32.MatExpansionModule, typeof i33.MatFormFieldModule, typeof i34.MatSnackBarModule, typeof i35.MatProgressBarModule, typeof i36.MatProgressSpinnerModule, typeof i37.MatTabsModule, typeof i38.MatMenuModule, typeof i39.MatCardModule, typeof i40.MatSelectModule, typeof i41.MatTooltipModule, typeof i42.MatCheckboxModule, typeof i43.MatChipsModule, typeof i44.MatListModule, typeof i45.MatButtonModule, typeof i46.MatInputModule, typeof i47.MatDialogModule, typeof i48.MatPaginatorModule, typeof i49.MatDatepickerModule, typeof i50.MatGridListModule, typeof i51.MatSlideToggleModule, typeof i52.MatTreeModule, typeof i53.MatNativeDateModule, typeof i54.MatAutocompleteModule, typeof i55.MatSidenavModule, typeof i56.MatIconModule, typeof i57.DragDropModule, typeof i58.MatButtonToggleModule, typeof i59.YouTubePlayerModule], [typeof i1.UploadFilesBtnComponent, typeof i2.HtmlViewComponent, typeof i3.XmlTagTableViewComponent, typeof i4.XmlTagViewComponent, typeof i5.XmlTagRichTextViewComponent, typeof i6.XmlTagHtmlViewComponent, typeof i7.XmlTagTextViewComponent, typeof i8.XmlTagHeaderTextViewComponent, typeof i9.XmlTagHeaderInnerTextViewComponent, typeof i10.XmlTagExternalVideoComponent, typeof i11.HtmlRawViewComponent, typeof i12.FileImageTagViewComponent, typeof i2.HtmlViewComponent, typeof i13.MainEditorComponent, typeof i14.FileIdSelectComponent, typeof i15.TextEditorComponent, typeof i16.ExternalVideoBlockComponent, typeof i17.ImageEditorComponent, typeof i18.MainEditorBlockComponent, typeof i19.VisualEditorComponent, typeof i20.AddFilesBtnComponent, typeof i21.HtmlRawEditorComponent, typeof i22.RichTextToHtmlPipe, typeof i23.TagToSpanPipe, typeof i24.ToPreviewPipe, typeof i25.ToHtmlBodyTagsPipe, typeof i26.ToPreviewHtmlPipe]>;
|
|
64
64
|
static ɵinj: i0.ɵɵInjectorDeclaration<CrocoHtmlModule>;
|
|
65
65
|
}
|
|
@@ -21,7 +21,7 @@ export declare class HtmlExtractionMethods {
|
|
|
21
21
|
} | {
|
|
22
22
|
angularMaterialTableDataCheck: import("./TableMethods").BaseApiResponse;
|
|
23
23
|
html: string;
|
|
24
|
-
angularMaterialTableData: import("
|
|
24
|
+
angularMaterialTableData: import("croco-html").AngularMaterialTableData;
|
|
25
25
|
type: string;
|
|
26
26
|
data: import("./TableMethods").TableData;
|
|
27
27
|
validationResult: import("./TableMethods").BaseApiResponse;
|
|
@@ -48,7 +48,7 @@ export declare class HtmlExtractionMethods {
|
|
|
48
48
|
} | {
|
|
49
49
|
angularMaterialTableDataCheck: import("./TableMethods").BaseApiResponse;
|
|
50
50
|
html: string;
|
|
51
|
-
angularMaterialTableData: import("
|
|
51
|
+
angularMaterialTableData: import("croco-html").AngularMaterialTableData;
|
|
52
52
|
type: string;
|
|
53
53
|
data: import("./TableMethods").TableData;
|
|
54
54
|
validationResult: import("./TableMethods").BaseApiResponse;
|
|
@@ -47,7 +47,7 @@ export declare class TableMethods {
|
|
|
47
47
|
} | {
|
|
48
48
|
angularMaterialTableDataCheck: BaseApiResponse;
|
|
49
49
|
html: string;
|
|
50
|
-
angularMaterialTableData: import("
|
|
50
|
+
angularMaterialTableData: import("croco-html").AngularMaterialTableData;
|
|
51
51
|
type: string;
|
|
52
52
|
data: TableData;
|
|
53
53
|
validationResult: BaseApiResponse;
|
package/lib/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MainEditorBlockComponent } from "./components/editor/main-editor-block/main-editor-block.component";
|
|
2
2
|
import { MainEditorComponent } from "./components/editor/main-editor/main-editor.component";
|
|
3
3
|
import { FileIdSelectComponent } from "./components/file-id-select/file-id-select.component";
|
|
4
|
-
import {
|
|
4
|
+
import { XmlTagHeaderTextViewComponent } from "./components/xml-tags/xml-tag-header-text-view/xml-tag-header-text-view.component";
|
|
5
5
|
import { XmlTagHtmlViewComponent } from "./components/xml-tags/xml-tag-html-view/xml-tag-html-view.component";
|
|
6
6
|
import { XmlTagRichTextViewComponent } from "./components/xml-tags/xml-tag-rich-text-view/xml-tag-rich-text-view.component";
|
|
7
7
|
import { XmlTagTableViewComponent } from "./components/xml-tags/xml-tag-table-view/xml-tag-table-view.component";
|
|
@@ -10,12 +10,12 @@ import { VisualEditorComponent } from './components/editor/visual-editor/visual-
|
|
|
10
10
|
import { AddFilesBtnComponent } from './components/add-files-btn/add-files-btn.component';
|
|
11
11
|
import { XmlTagExternalVideoComponent } from "./components/xml-tags/xml-tag-external-video/xml-tag-external-video.component";
|
|
12
12
|
import { HtmlRawEditorComponent } from "./components/editor/html-raw-editor/html-raw-editor.component";
|
|
13
|
-
import {
|
|
13
|
+
import { MatBadgeModule } from '@angular/material/badge';
|
|
14
14
|
import { RichTextToHtmlPipe, TagToSpanPipe, ToHtmlBodyTagsPipe, ToPreviewHtmlPipe } from "./pipes";
|
|
15
15
|
import { FileImageTagViewComponent, UploadFilesBtnComponent } from "./components";
|
|
16
16
|
import { HtmlRawViewComponent } from "./components/xml-tags/html-raw-view/html-raw-view.component";
|
|
17
|
-
export declare const EditorComponents: (typeof
|
|
18
|
-
export declare const XmlComponents: (typeof
|
|
17
|
+
export declare const EditorComponents: (typeof MainEditorComponent | typeof FileIdSelectComponent | typeof MainEditorBlockComponent | typeof VisualEditorComponent | typeof AddFilesBtnComponent | typeof HtmlRawEditorComponent)[];
|
|
18
|
+
export declare const XmlComponents: (typeof XmlTagTableViewComponent | typeof XmlTagViewComponent | typeof XmlTagRichTextViewComponent | typeof XmlTagHtmlViewComponent | typeof XmlTagHeaderTextViewComponent | typeof XmlTagExternalVideoComponent | typeof HtmlRawViewComponent | typeof FileImageTagViewComponent)[];
|
|
19
19
|
export declare const CrocoPipes: (typeof RichTextToHtmlPipe | typeof TagToSpanPipe | typeof ToHtmlBodyTagsPipe | typeof ToPreviewHtmlPipe)[];
|
|
20
|
-
export declare const CrocoHtmlDeclarations: (typeof
|
|
21
|
-
export declare const MaterialModules: (typeof
|
|
20
|
+
export declare const CrocoHtmlDeclarations: (typeof MainEditorComponent | typeof FileIdSelectComponent | typeof MainEditorBlockComponent | typeof VisualEditorComponent | typeof AddFilesBtnComponent | typeof HtmlRawEditorComponent | typeof XmlTagTableViewComponent | typeof XmlTagViewComponent | typeof XmlTagRichTextViewComponent | typeof XmlTagHtmlViewComponent | typeof XmlTagHeaderTextViewComponent | typeof XmlTagExternalVideoComponent | typeof HtmlRawViewComponent | typeof FileImageTagViewComponent | typeof RichTextToHtmlPipe | typeof TagToSpanPipe | typeof ToHtmlBodyTagsPipe | typeof ToPreviewHtmlPipe | typeof UploadFilesBtnComponent)[];
|
|
21
|
+
export declare const MaterialModules: (typeof MatBadgeModule)[];
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED