croco-html 0.0.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/croco-html.d.ts +5 -5
- package/{esm2015/croco-html.js → esm2020/croco-html.mjs} +4 -4
- package/esm2020/lib/components/add-files-btn/add-files-btn.component.mjs +53 -0
- package/esm2020/lib/components/editor/external-video-block/external-video-block.component.mjs +45 -0
- package/esm2020/lib/components/editor/html-raw-editor/html-raw-editor.component.mjs +25 -0
- package/esm2020/lib/components/editor/image-editor/image-editor.component.mjs +50 -0
- package/{esm2015/lib/components/editor/index.js → esm2020/lib/components/editor/index.mjs} +8 -8
- package/esm2020/lib/components/editor/main-editor/main-editor.component.mjs +76 -0
- package/esm2020/lib/components/editor/main-editor-block/main-editor-block.component.mjs +41 -0
- package/esm2020/lib/components/editor/text-editor/text-editor.component.mjs +34 -0
- package/esm2020/lib/components/editor/visual-editor/visual-editor.component.mjs +161 -0
- package/esm2020/lib/components/file-id-select/file-id-select.component.mjs +62 -0
- package/{esm2015/lib/components/index.js → esm2020/lib/components/index.mjs} +6 -6
- package/esm2020/lib/components/upload-files-btn/upload-files-btn.component.mjs +54 -0
- package/{esm2015/lib/components/xml-tags/index.js → esm2020/lib/components/xml-tags/index.mjs} +9 -9
- package/esm2020/lib/components/xml-tags/xml-tag-external-video/xml-tag-external-video.component.mjs +43 -0
- package/esm2020/lib/components/xml-tags/xml-tag-header-inner-text-view/xml-tag-header-inner-text-view.component.mjs +17 -0
- package/esm2020/lib/components/xml-tags/xml-tag-header-text-view/xml-tag-header-text-view.component.mjs +18 -0
- package/esm2020/lib/components/xml-tags/xml-tag-html-view/xml-tag-html-view.component.mjs +16 -0
- package/esm2020/lib/components/xml-tags/xml-tag-rich-text-view/xml-tag-rich-text-view.component.mjs +20 -0
- package/esm2020/lib/components/xml-tags/xml-tag-table-view/xml-tag-table-view.component.mjs +20 -0
- package/esm2020/lib/components/xml-tags/xml-tag-text-view/xml-tag-text-view.component.mjs +17 -0
- package/esm2020/lib/components/xml-tags/xml-tag-view/xml-tag-view.component.mjs +21 -0
- package/{esm2015/lib/croco-html.module.js → esm2020/lib/croco-html.module.mjs} +90 -90
- package/{esm2015/lib/extensions/AngularMaterialTableMethods.js → esm2020/lib/extensions/AngularMaterialTableMethods.mjs} +64 -64
- package/{esm2015/lib/extensions/BodyTagsExtensions.js → esm2020/lib/extensions/BodyTagsExtensions.mjs} +120 -120
- package/{esm2015/lib/extensions/BootstrapTableMethods.js → esm2020/lib/extensions/BootstrapTableMethods.mjs} +67 -67
- package/{esm2015/lib/extensions/HtmlExtractionMethods.js → esm2020/lib/extensions/HtmlExtractionMethods.mjs} +63 -63
- package/{esm2015/lib/extensions/HtmlRawTagDataConsts.js → esm2020/lib/extensions/HtmlRawTagDataConsts.mjs} +4 -4
- package/{esm2015/lib/extensions/ImageMethods.js → esm2020/lib/extensions/ImageMethods.mjs} +24 -24
- package/{esm2015/lib/extensions/InterfaceBlock.js → esm2020/lib/extensions/InterfaceBlock.mjs} +2 -2
- package/{esm2015/lib/extensions/TableBuilder.js → esm2020/lib/extensions/TableBuilder.mjs} +35 -35
- package/esm2020/lib/extensions/TableMethods.mjs +108 -0
- package/{esm2015/lib/extensions/TextMethods.js → esm2020/lib/extensions/TextMethods.mjs} +29 -29
- package/esm2020/lib/extensions/TextSimpleMethods.mjs +77 -0
- package/{esm2015/lib/extensions/VideoMethods.js → esm2020/lib/extensions/VideoMethods.mjs} +20 -20
- package/{esm2015/lib/extensions/XmlExtensions.js → esm2020/lib/extensions/XmlExtensions.mjs} +26 -26
- package/{esm2015/lib/extensions/index.js → esm2020/lib/extensions/index.mjs} +13 -13
- package/{esm2015/lib/index.js → esm2020/lib/index.mjs} +113 -113
- package/esm2020/lib/models/models.mjs +2 -0
- package/{esm2015/lib/pipes/RichTextToHtmlPipe.js → esm2020/lib/pipes/RichTextToHtmlPipe.mjs} +26 -26
- package/{esm2015/lib/pipes/TagToSpanPipe.js → esm2020/lib/pipes/TagToSpanPipe.mjs} +16 -16
- package/{esm2015/lib/pipes/ToHtmlBodyTagsPipe.js → esm2020/lib/pipes/ToHtmlBodyTagsPipe.mjs} +17 -17
- package/{esm2015/lib/pipes/index.js → esm2020/lib/pipes/index.mjs} +5 -5
- package/{esm2015/lib/pipes/to-preview.pipe.js → esm2020/lib/pipes/to-preview.pipe.mjs} +17 -17
- package/esm2020/lib/services/file-upload.service.mjs +40 -0
- package/esm2020/lib/services/files-query.service.mjs +27 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +8 -8
- package/fesm2015/croco-html.mjs +1565 -0
- package/fesm2015/croco-html.mjs.map +1 -0
- package/fesm2020/croco-html.mjs +1568 -0
- package/fesm2020/croco-html.mjs.map +1 -0
- package/lib/components/add-files-btn/add-files-btn.component.d.ts +18 -18
- package/lib/components/editor/external-video-block/external-video-block.component.d.ts +19 -19
- package/lib/components/editor/html-raw-editor/html-raw-editor.component.d.ts +11 -11
- package/lib/components/editor/image-editor/image-editor.component.d.ts +20 -20
- package/lib/components/editor/index.d.ts +7 -7
- package/lib/components/editor/main-editor/main-editor.component.d.ts +28 -28
- package/lib/components/editor/main-editor-block/main-editor-block.component.d.ts +16 -16
- package/lib/components/editor/text-editor/text-editor.component.d.ts +14 -14
- package/lib/components/editor/visual-editor/visual-editor.component.d.ts +43 -43
- package/lib/components/file-id-select/file-id-select.component.d.ts +30 -30
- package/lib/components/index.d.ts +5 -5
- package/lib/components/upload-files-btn/upload-files-btn.component.d.ts +24 -24
- package/lib/components/xml-tags/index.d.ts +8 -8
- package/lib/components/xml-tags/xml-tag-external-video/xml-tag-external-video.component.d.ts +17 -17
- package/lib/components/xml-tags/xml-tag-header-inner-text-view/xml-tag-header-inner-text-view.component.d.ts +10 -10
- package/lib/components/xml-tags/xml-tag-header-text-view/xml-tag-header-text-view.component.d.ts +10 -10
- package/lib/components/xml-tags/xml-tag-html-view/xml-tag-html-view.component.d.ts +7 -7
- package/lib/components/xml-tags/xml-tag-rich-text-view/xml-tag-rich-text-view.component.d.ts +10 -10
- package/lib/components/xml-tags/xml-tag-table-view/xml-tag-table-view.component.d.ts +7 -7
- package/lib/components/xml-tags/xml-tag-text-view/xml-tag-text-view.component.d.ts +10 -10
- package/lib/components/xml-tags/xml-tag-view/xml-tag-view.component.d.ts +8 -8
- package/lib/croco-html.module.d.ts +60 -60
- package/lib/extensions/AngularMaterialTableMethods.d.ts +10 -10
- package/lib/extensions/BodyTagsExtensions.d.ts +10 -10
- package/lib/extensions/BootstrapTableMethods.d.ts +9 -9
- package/lib/extensions/HtmlExtractionMethods.d.ts +69 -69
- package/lib/extensions/HtmlRawTagDataConsts.d.ts +3 -3
- package/lib/extensions/ImageMethods.d.ts +17 -17
- package/lib/extensions/InterfaceBlock.d.ts +4 -4
- package/lib/extensions/TableBuilder.d.ts +5 -5
- package/lib/extensions/TableMethods.d.ts +58 -58
- package/lib/extensions/TextMethods.d.ts +19 -19
- package/lib/extensions/TextSimpleMethods.d.ts +23 -23
- package/lib/extensions/VideoMethods.d.ts +19 -19
- package/lib/extensions/XmlExtensions.d.ts +5 -5
- package/lib/extensions/index.d.ts +10 -10
- package/lib/index.d.ts +20 -20
- package/lib/models/models.d.ts +10 -10
- package/lib/pipes/RichTextToHtmlPipe.d.ts +8 -8
- package/lib/pipes/TagToSpanPipe.d.ts +7 -7
- package/lib/pipes/ToHtmlBodyTagsPipe.d.ts +8 -8
- package/lib/pipes/index.d.ts +4 -4
- package/lib/pipes/to-preview.pipe.d.ts +8 -8
- package/lib/services/file-upload.service.d.ts +23 -23
- package/lib/services/files-query.service.d.ts +42 -42
- package/package.json +26 -14
- package/public-api.d.ts +4 -4
- package/bundles/croco-html.umd.js +0 -2091
- package/bundles/croco-html.umd.js.map +0 -1
- package/esm2015/lib/components/add-files-btn/add-files-btn.component.js +0 -57
- package/esm2015/lib/components/editor/external-video-block/external-video-block.component.js +0 -49
- package/esm2015/lib/components/editor/html-raw-editor/html-raw-editor.component.js +0 -29
- package/esm2015/lib/components/editor/image-editor/image-editor.component.js +0 -54
- package/esm2015/lib/components/editor/main-editor/main-editor.component.js +0 -80
- package/esm2015/lib/components/editor/main-editor-block/main-editor-block.component.js +0 -45
- package/esm2015/lib/components/editor/text-editor/text-editor.component.js +0 -38
- package/esm2015/lib/components/editor/visual-editor/visual-editor.component.js +0 -165
- package/esm2015/lib/components/file-id-select/file-id-select.component.js +0 -66
- package/esm2015/lib/components/upload-files-btn/upload-files-btn.component.js +0 -58
- package/esm2015/lib/components/xml-tags/xml-tag-external-video/xml-tag-external-video.component.js +0 -47
- package/esm2015/lib/components/xml-tags/xml-tag-header-inner-text-view/xml-tag-header-inner-text-view.component.js +0 -21
- package/esm2015/lib/components/xml-tags/xml-tag-header-text-view/xml-tag-header-text-view.component.js +0 -22
- package/esm2015/lib/components/xml-tags/xml-tag-html-view/xml-tag-html-view.component.js +0 -20
- package/esm2015/lib/components/xml-tags/xml-tag-rich-text-view/xml-tag-rich-text-view.component.js +0 -24
- package/esm2015/lib/components/xml-tags/xml-tag-table-view/xml-tag-table-view.component.js +0 -24
- package/esm2015/lib/components/xml-tags/xml-tag-text-view/xml-tag-text-view.component.js +0 -21
- package/esm2015/lib/components/xml-tags/xml-tag-view/xml-tag-view.component.js +0 -26
- package/esm2015/lib/extensions/TableMethods.js +0 -100
- package/esm2015/lib/extensions/TextSimpleMethods.js +0 -78
- package/esm2015/lib/models/models.js +0 -2
- package/esm2015/lib/services/file-upload.service.js +0 -40
- package/esm2015/lib/services/files-query.service.js +0 -27
- package/fesm2015/croco-html.js +0 -1634
- package/fesm2015/croco-html.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
# CrocoHtml
|
|
2
|
-
|
|
3
|
-
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.1.0.
|
|
4
|
-
|
|
5
|
-
## Code scaffolding
|
|
6
|
-
|
|
7
|
-
Run `ng generate component component-name --project croco-html` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project croco-html`.
|
|
8
|
-
> Note: Don't forget to add `--project croco-html` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
-
|
|
10
|
-
## Build
|
|
11
|
-
|
|
12
|
-
Run `ng build croco-html` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
-
|
|
14
|
-
## Publishing
|
|
15
|
-
|
|
16
|
-
After building your library with `ng build croco-html`, go to the dist folder `cd dist/croco-html` and run `npm publish`.
|
|
17
|
-
|
|
18
|
-
## Running unit tests
|
|
19
|
-
|
|
20
|
-
Run `ng test croco-html` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
-
|
|
22
|
-
## Further help
|
|
23
|
-
|
|
24
|
-
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
1
|
+
# CrocoHtml
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.1.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project croco-html` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project croco-html`.
|
|
8
|
+
> Note: Don't forget to add `--project croco-html` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
+
|
|
10
|
+
## Build
|
|
11
|
+
|
|
12
|
+
Run `ng build croco-html` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
+
|
|
14
|
+
## Publishing
|
|
15
|
+
|
|
16
|
+
After building your library with `ng build croco-html`, go to the dist folder `cd dist/croco-html` and run `npm publish`.
|
|
17
|
+
|
|
18
|
+
## Running unit tests
|
|
19
|
+
|
|
20
|
+
Run `ng test croco-html` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
+
|
|
22
|
+
## Further help
|
|
23
|
+
|
|
24
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
package/croco-html.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
/// <amd-module name="croco-html" />
|
|
5
|
-
export * from './public-api';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
/// <amd-module name="croco-html" />
|
|
5
|
+
export * from './public-api';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JvY28taHRtbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2Nyb2NvLWh0bWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Component, EventEmitter, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { FileImageTagDataConsts } from '../../extensions/ImageMethods';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../upload-files-btn/upload-files-btn.component";
|
|
5
|
+
import * as i2 from "@angular/material/button";
|
|
6
|
+
export class AddFilesBtnComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.postFilesStarted = new EventEmitter();
|
|
9
|
+
this.fileIds = [];
|
|
10
|
+
this.filesTagsReady = new EventEmitter();
|
|
11
|
+
}
|
|
12
|
+
postFilesStartedEventHandler(data) {
|
|
13
|
+
this.postFilesStarted.emit(data);
|
|
14
|
+
}
|
|
15
|
+
filesUploadedHandler(data) {
|
|
16
|
+
this.fileIds = data.responseObject;
|
|
17
|
+
let fileTags = [];
|
|
18
|
+
for (let i = 0; i < this.fileIds.length; i++) {
|
|
19
|
+
let fileTag = {
|
|
20
|
+
presentOrEdit: true,
|
|
21
|
+
tagDescription: {
|
|
22
|
+
tag: FileImageTagDataConsts.TagName,
|
|
23
|
+
displayValue: "Изображение"
|
|
24
|
+
},
|
|
25
|
+
attributes: {
|
|
26
|
+
[FileImageTagDataConsts.FileIdAttrName]: this.fileIds[i]
|
|
27
|
+
},
|
|
28
|
+
innerHtml: ""
|
|
29
|
+
};
|
|
30
|
+
fileTags.push(fileTag);
|
|
31
|
+
}
|
|
32
|
+
this.filesTagsReady.emit(fileTags);
|
|
33
|
+
}
|
|
34
|
+
handleClick() {
|
|
35
|
+
this.fakeBtn.clickFileInput();
|
|
36
|
+
}
|
|
37
|
+
ngOnInit() {
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
AddFilesBtnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AddFilesBtnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
41
|
+
AddFilesBtnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AddFilesBtnComponent, selector: "croco-add-files-btn", outputs: { postFilesStarted: "postFilesStarted", filesTagsReady: "filesTagsReady" }, viewQueries: [{ propertyName: "fakeBtn", first: true, predicate: ["fakeBtn"], descendants: true }], ngImport: i0, template: "<div [hidden]=\"true\">\r\n <app-upload-files-btn #fakeBtn \r\n (onFilesUploaded)=\"filesUploadedHandler($event)\" \r\n [btnText]=\"'\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F'\"\r\n [createLocalCopiesNow]=\"true\"\r\n (postFilesStarted)=\"postFilesStartedEventHandler($event)\" \r\n [extAccepts]=\"'image/*'\"></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>\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F</button>\r\n</div>", styles: [""], components: [{ type: i1.UploadFilesBtnComponent, selector: "app-upload-files-btn", inputs: ["extAccepts", "isMultiple", "btnText", "createLocalCopiesNow", "hidden"], outputs: ["postFilesStarted", "onFilesUploaded"] }, { type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AddFilesBtnComponent, decorators: [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{ selector: 'croco-add-files-btn', template: "<div [hidden]=\"true\">\r\n <app-upload-files-btn #fakeBtn \r\n (onFilesUploaded)=\"filesUploadedHandler($event)\" \r\n [btnText]=\"'\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F'\"\r\n [createLocalCopiesNow]=\"true\"\r\n (postFilesStarted)=\"postFilesStartedEventHandler($event)\" \r\n [extAccepts]=\"'image/*'\"></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>\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F</button>\r\n</div>", styles: [""] }]
|
|
45
|
+
}], ctorParameters: function () { return []; }, propDecorators: { postFilesStarted: [{
|
|
46
|
+
type: Output
|
|
47
|
+
}], fakeBtn: [{
|
|
48
|
+
type: ViewChild,
|
|
49
|
+
args: ["fakeBtn"]
|
|
50
|
+
}], filesTagsReady: [{
|
|
51
|
+
type: Output
|
|
52
|
+
}] } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWZpbGVzLWJ0bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy9hZGQtZmlsZXMtYnRuL2FkZC1maWxlcy1idG4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMvYWRkLWZpbGVzLWJ0bi9hZGQtZmlsZXMtYnRuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7QUFVdkUsTUFBTSxPQUFPLG9CQUFvQjtJQVUvQjtRQVBBLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFzQixDQUFDO1FBSzFELFlBQU8sR0FBWSxFQUFFLENBQUM7UUFLdEIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztJQUhuQyxDQUFDO0lBS2pCLDRCQUE0QixDQUFDLElBQXdCO1FBQ25ELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQWlDO1FBQ3BELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUVuQyxJQUFJLFFBQVEsR0FBaUIsRUFBRSxDQUFDO1FBRWhDLEtBQUksSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBQztZQUN4QyxJQUFJLE9BQU8sR0FBZ0I7Z0JBQ3pCLGFBQWEsRUFBRSxJQUFJO2dCQUNuQixjQUFjLEVBQUU7b0JBQ2QsR0FBRyxFQUFFLHNCQUFzQixDQUFDLE9BQU87b0JBQ25DLFlBQVksRUFBRSxhQUFhO2lCQUM1QjtnQkFDRCxVQUFVLEVBQUU7b0JBQ1YsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztpQkFDekQ7Z0JBQ0QsU0FBUyxFQUFFLEVBQUU7YUFDZCxDQUFDO1lBRUYsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN4QjtRQUVELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7O2tIQWhEVSxvQkFBb0I7c0dBQXBCLG9CQUFvQixvUENYakMsZ3NCQWFNOzRGREZPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxxQkFBcUI7MEVBTy9CLGdCQUFnQjtzQkFEZixNQUFNO2dCQUlQLE9BQU87c0JBRE4sU0FBUzt1QkFBQyxTQUFTO2dCQVFwQixjQUFjO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzIH0gZnJvbSAnLi4vLi4vZXh0ZW5zaW9ucy9JbWFnZU1ldGhvZHMnO1xyXG5pbXBvcnQgeyBIdG1sQm9keVRhZyB9IGZyb20gJy4uLy4uL21vZGVscy9tb2RlbHMnO1xyXG5pbXBvcnQgeyBCYXNlQXBpUmVzcG9uc2VXaXRoRmlsZXNJZHMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maWxlLXVwbG9hZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsZVBvc3RpbmdTdGFydGVkLCBVcGxvYWRGaWxlc0J0bkNvbXBvbmVudCB9IGZyb20gJy4uL3VwbG9hZC1maWxlcy1idG4vdXBsb2FkLWZpbGVzLWJ0bi5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjcm9jby1hZGQtZmlsZXMtYnRuJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLWZpbGVzLWJ0bi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYWRkLWZpbGVzLWJ0bi5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZEZpbGVzQnRuQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcG9zdEZpbGVzU3RhcnRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVBvc3RpbmdTdGFydGVkPigpO1xyXG5cclxuICBAVmlld0NoaWxkKFwiZmFrZUJ0blwiKVxyXG4gIGZha2VCdG4hOiBVcGxvYWRGaWxlc0J0bkNvbXBvbmVudDtcclxuXHJcbiAgZmlsZUlkczpudW1iZXJbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBAT3V0cHV0KClcclxuICBmaWxlc1RhZ3NSZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8SHRtbEJvZHlUYWdbXT4oKTtcclxuXHJcbiAgcG9zdEZpbGVzU3RhcnRlZEV2ZW50SGFuZGxlcihkYXRhOiBGaWxlUG9zdGluZ1N0YXJ0ZWQpe1xyXG4gICAgdGhpcy5wb3N0RmlsZXNTdGFydGVkLmVtaXQoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBmaWxlc1VwbG9hZGVkSGFuZGxlcihkYXRhOiBCYXNlQXBpUmVzcG9uc2VXaXRoRmlsZXNJZHMpe1xyXG4gICAgdGhpcy5maWxlSWRzID0gZGF0YS5yZXNwb25zZU9iamVjdDtcclxuXHJcbiAgICBsZXQgZmlsZVRhZ3M6SHRtbEJvZHlUYWdbXSA9IFtdO1xyXG5cclxuICAgIGZvcihsZXQgaT0wOyBpIDwgdGhpcy5maWxlSWRzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgbGV0IGZpbGVUYWc6IEh0bWxCb2R5VGFnID0ge1xyXG4gICAgICAgIHByZXNlbnRPckVkaXQ6IHRydWUsXHJcbiAgICAgICAgdGFnRGVzY3JpcHRpb246IHtcclxuICAgICAgICAgIHRhZzogRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5UYWdOYW1lLFxyXG4gICAgICAgICAgZGlzcGxheVZhbHVlOiBcItCY0LfQvtCx0YDQsNC20LXQvdC40LVcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYXR0cmlidXRlczoge1xyXG4gICAgICAgICAgW0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWVdOiB0aGlzLmZpbGVJZHNbaV1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGlubmVySHRtbDogXCJcIlxyXG4gICAgICB9O1xyXG5cclxuICAgICAgZmlsZVRhZ3MucHVzaChmaWxlVGFnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZpbGVzVGFnc1JlYWR5LmVtaXQoZmlsZVRhZ3MpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2xpY2soKXtcclxuICAgIHRoaXMuZmFrZUJ0bi5jbGlja0ZpbGVJbnB1dCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgW2hpZGRlbl09XCJ0cnVlXCI+XHJcbiAgICA8YXBwLXVwbG9hZC1maWxlcy1idG4gI2Zha2VCdG4gXHJcbiAgICAgICAgKG9uRmlsZXNVcGxvYWRlZCk9XCJmaWxlc1VwbG9hZGVkSGFuZGxlcigkZXZlbnQpXCIgXHJcbiAgICAgICAgW2J0blRleHRdPVwiJ9CU0L7QsdCw0LLQuNGC0Ywg0LjQt9C+0LHRgNCw0LbQtdC90LjRjydcIlxyXG4gICAgICAgIFtjcmVhdGVMb2NhbENvcGllc05vd109XCJ0cnVlXCJcclxuICAgICAgICAocG9zdEZpbGVzU3RhcnRlZCk9XCJwb3N0RmlsZXNTdGFydGVkRXZlbnRIYW5kbGVyKCRldmVudClcIiBcclxuICAgICAgICBbZXh0QWNjZXB0c109XCInaW1hZ2UvKidcIj48L2FwcC11cGxvYWQtZmlsZXMtYnRuPlxyXG48L2Rpdj5cclxuXHJcbjxkaXY+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwidy0xMDBcIiBcclxuICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2soKVwiXHJcbiAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uPtCU0L7QsdCw0LLQuNGC0Ywg0LjQt9C+0LHRgNCw0LbQtdC90LjRjzwvYnV0dG9uPlxyXG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { FormControl, FormGroup } from '@angular/forms';
|
|
3
|
+
import { ExternalVideoSupportedTypes } from '../../../extensions/VideoMethods';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../xml-tags/xml-tag-external-video/xml-tag-external-video.component";
|
|
6
|
+
import * as i2 from "@angular/material/form-field";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "@angular/forms";
|
|
9
|
+
import * as i5 from "@angular/material/input";
|
|
10
|
+
export class ExternalVideoBlockComponent {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.onTagUpdated = new EventEmitter();
|
|
13
|
+
this.myForm = new FormGroup({
|
|
14
|
+
youtubeLink: new FormControl()
|
|
15
|
+
});
|
|
16
|
+
this.defaultLink = "https://youtu.be/jzBneaWSswY";
|
|
17
|
+
this.data = {
|
|
18
|
+
youtubeLink: this.defaultLink
|
|
19
|
+
};
|
|
20
|
+
this.tagData = {
|
|
21
|
+
link: this.defaultLink,
|
|
22
|
+
type: ExternalVideoSupportedTypes.Youtube
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
linkChanged() {
|
|
26
|
+
this.tagData.link = this.data.youtubeLink;
|
|
27
|
+
this.tag.attributes = this.tagData;
|
|
28
|
+
}
|
|
29
|
+
ngOnInit() {
|
|
30
|
+
this.linkChanged();
|
|
31
|
+
this.tagData = this.tag.attributes;
|
|
32
|
+
this.data.youtubeLink = this.tagData.link;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
ExternalVideoBlockComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ExternalVideoBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
+
ExternalVideoBlockComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ExternalVideoBlockComponent, selector: "croco-html-external-video-block", inputs: { tag: "tag" }, outputs: { onTagUpdated: "onTagUpdated" }, ngImport: i0, template: "<div *ngIf=\"tag.presentOrEdit\">\r\n \r\n <div>\r\n \u0421\u0441\u044B\u043B\u043A\u0430 \u043D\u0430 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 <form [formGroup]=\"myForm\">\r\n <mat-form-field class=\"w-100\">\r\n <input matInput placeholder=\"\u0421\u0441\u044B\u043B\u043A\u0430 \u043D\u0430 YouTube\"\r\n new-autocomplete=\"off\"\r\n autocomplete=\"off\"\r\n formControlName=\"youtubeLink\"\r\n [(ngModel)]=\"data.youtubeLink\"\r\n (ngModelChange)=\"linkChanged()\">\r\n </mat-form-field>\r\n </form>\r\n </div>\r\n</div>\r\n\r\n", styles: [""], components: [{ type: i1.XmlTagExternalVideoComponent, selector: "croco-html-xml-tag-external-video", inputs: ["data", "tagData"] }, { type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ExternalVideoBlockComponent, decorators: [{
|
|
38
|
+
type: Component,
|
|
39
|
+
args: [{ selector: 'croco-html-external-video-block', template: "<div *ngIf=\"tag.presentOrEdit\">\r\n \r\n <div>\r\n \u0421\u0441\u044B\u043B\u043A\u0430 \u043D\u0430 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 <form [formGroup]=\"myForm\">\r\n <mat-form-field class=\"w-100\">\r\n <input matInput placeholder=\"\u0421\u0441\u044B\u043B\u043A\u0430 \u043D\u0430 YouTube\"\r\n new-autocomplete=\"off\"\r\n autocomplete=\"off\"\r\n formControlName=\"youtubeLink\"\r\n [(ngModel)]=\"data.youtubeLink\"\r\n (ngModelChange)=\"linkChanged()\">\r\n </mat-form-field>\r\n </form>\r\n </div>\r\n</div>\r\n\r\n", styles: [""] }]
|
|
40
|
+
}], propDecorators: { tag: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], onTagUpdated: [{
|
|
43
|
+
type: Output
|
|
44
|
+
}] } });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtdmlkZW8tYmxvY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMvZWRpdG9yL2V4dGVybmFsLXZpZGVvLWJsb2NrL2V4dGVybmFsLXZpZGVvLWJsb2NrLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9leHRlcm5hbC12aWRlby1ibG9jay9leHRlcm5hbC12aWRlby1ibG9jay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUF3QiwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7O0FBUXJHLE1BQU0sT0FBTywyQkFBMkI7SUFMeEM7UUFXRSxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFFL0MsV0FBTSxHQUFHLElBQUksU0FBUyxDQUFDO1lBQ3JCLFdBQVcsRUFBRSxJQUFJLFdBQVcsRUFBRTtTQUMvQixDQUFDLENBQUM7UUFFSCxnQkFBVyxHQUFHLDhCQUE4QixDQUFDO1FBRTdDLFNBQUksR0FBRztZQUNMLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztTQUM5QixDQUFBO1FBRUQsWUFBTyxHQUF5QjtZQUM5QixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDdEIsSUFBSSxFQUFFLDJCQUEyQixDQUFDLE9BQU87U0FDMUMsQ0FBQztLQWFIO0lBWEMsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDckMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQWtDLENBQUM7UUFDM0QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDNUMsQ0FBQzs7eUhBakNVLDJCQUEyQjs2R0FBM0IsMkJBQTJCLDBJQ1Z4QyxpNkJBMkJBOzRGRGpCYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsaUNBQWlDOzhCQU8zQyxHQUFHO3NCQURGLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBFeHRlcm5hbFZpZGVvVGFnRGF0YSwgRXh0ZXJuYWxWaWRlb1N1cHBvcnRlZFR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vZXh0ZW5zaW9ucy9WaWRlb01ldGhvZHMnO1xyXG5pbXBvcnQgeyBIdG1sQm9keVRhZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjcm9jby1odG1sLWV4dGVybmFsLXZpZGVvLWJsb2NrJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZXh0ZXJuYWwtdmlkZW8tYmxvY2suY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2V4dGVybmFsLXZpZGVvLWJsb2NrLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXh0ZXJuYWxWaWRlb0Jsb2NrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KClcclxuICB0YWc6IEh0bWxCb2R5VGFnO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvblRhZ1VwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEh0bWxCb2R5VGFnPigpO1xyXG5cclxuICBteUZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcclxuICAgIHlvdXR1YmVMaW5rOiBuZXcgRm9ybUNvbnRyb2woKVxyXG4gIH0pO1xyXG5cclxuICBkZWZhdWx0TGluayA9IFwiaHR0cHM6Ly95b3V0dS5iZS9qekJuZWFXU3N3WVwiO1xyXG5cclxuICBkYXRhID0ge1xyXG4gICAgeW91dHViZUxpbms6IHRoaXMuZGVmYXVsdExpbmtcclxuICB9XHJcblxyXG4gIHRhZ0RhdGE6IEV4dGVybmFsVmlkZW9UYWdEYXRhID0ge1xyXG4gICAgbGluazogdGhpcy5kZWZhdWx0TGluayxcclxuICAgIHR5cGU6IEV4dGVybmFsVmlkZW9TdXBwb3J0ZWRUeXBlcy5Zb3V0dWJlXHJcbiAgfTtcclxuXHJcbiAgbGlua0NoYW5nZWQoKXtcclxuICAgIHRoaXMudGFnRGF0YS5saW5rID0gdGhpcy5kYXRhLnlvdXR1YmVMaW5rO1xyXG4gICAgdGhpcy50YWcuYXR0cmlidXRlcyA9IHRoaXMudGFnRGF0YTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5saW5rQ2hhbmdlZCgpO1xyXG5cclxuICAgIHRoaXMudGFnRGF0YSA9IHRoaXMudGFnLmF0dHJpYnV0ZXMgYXMgRXh0ZXJuYWxWaWRlb1RhZ0RhdGE7XHJcbiAgICB0aGlzLmRhdGEueW91dHViZUxpbmsgPSB0aGlzLnRhZ0RhdGEubGluaztcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cInRhZy5wcmVzZW50T3JFZGl0XCI+XHJcbiAgICBcclxuICAgIDxkaXY+XHJcbiAgICAgICAg0KHRgdGL0LvQutCwINC90LAgWW91VHViZToge3tkYXRhLnlvdXR1YmVMaW5rfX1cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+PC9kaXY+XHJcblxyXG4gICAgPGNyb2NvLWh0bWwteG1sLXRhZy1leHRlcm5hbC12aWRlbyBbdGFnRGF0YV09XCJ0YWdEYXRhXCI+XHJcbiAgICA8L2Nyb2NvLWh0bWwteG1sLXRhZy1leHRlcm5hbC12aWRlbz5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwiIXRhZy5wcmVzZW50T3JFZGl0XCI+XHJcbiAgICA8ZGl2PlxyXG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwibXlGb3JtXCI+XHJcbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCLQodGB0YvQu9C60LAg0L3QsCBZb3VUdWJlXCJcclxuICAgICAgICAgICAgICAgICAgICBuZXctYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInlvdXR1YmVMaW5rXCJcclxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRhdGEueW91dHViZUxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImxpbmtDaGFuZ2VkKClcIj5cclxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/material/form-field";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/material/input";
|
|
6
|
+
import * as i4 from "@angular/cdk/text-field";
|
|
7
|
+
import * as i5 from "@angular/forms";
|
|
8
|
+
export class HtmlRawEditorComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.onTagUpdated = new EventEmitter();
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
HtmlRawEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: HtmlRawEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
HtmlRawEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: HtmlRawEditorComponent, selector: "croco-html-html-raw-editor", inputs: { tag: "tag" }, outputs: { onTagUpdated: "onTagUpdated" }, ngImport: i0, template: "<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=\"\u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u044F\u044F \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u0442\u0435\u0433\u0430\"\r\n [(ngModel)]=\"tag.innerHtml\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n</div>\r\n\r\n", styles: [""], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i4.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: HtmlRawEditorComponent, decorators: [{
|
|
18
|
+
type: Component,
|
|
19
|
+
args: [{ selector: 'croco-html-html-raw-editor', template: "<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=\"\u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u044F\u044F \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u0442\u0435\u0433\u0430\"\r\n [(ngModel)]=\"tag.innerHtml\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n</div>\r\n\r\n", styles: [""] }]
|
|
20
|
+
}], ctorParameters: function () { return []; }, propDecorators: { tag: [{
|
|
21
|
+
type: Input
|
|
22
|
+
}], onTagUpdated: [{
|
|
23
|
+
type: Output
|
|
24
|
+
}] } });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC1yYXctZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9odG1sLXJhdy1lZGl0b3IvaHRtbC1yYXctZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9odG1sLXJhdy1lZGl0b3IvaHRtbC1yYXctZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFRL0UsTUFBTSxPQUFPLHNCQUFzQjtJQVFqQztRQUZBLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztJQUUvQixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDOztvSEFYVSxzQkFBc0I7d0dBQXRCLHNCQUFzQixxSUNSbkMsNHBCQWlCQTs0RkRUYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsNEJBQTRCOzBFQU90QyxHQUFHO3NCQURGLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdG1sQm9keVRhZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjcm9jby1odG1sLWh0bWwtcmF3LWVkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2h0bWwtcmF3LWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaHRtbC1yYXctZWRpdG9yLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSHRtbFJhd0VkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGFnOiBIdG1sQm9keVRhZztcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb25UYWdVcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxIdG1sQm9keVRhZz4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwidGFnLnByZXNlbnRPckVkaXRcIj5cclxuICAgIDxkaXYgW2lubmVySFRNTF09XCJ0YWcuaW5uZXJIdG1sXCI+PC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cIiF0YWcucHJlc2VudE9yRWRpdFwiPlxyXG4gICAgPGRpdiBzdHlsZT1cImhlaWdodDogMTBweDtcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxyXG4gICAgICAgICAgICA8dGV4dGFyZWEgbWF0SW5wdXQgY2RrVGV4dGFyZWFBdXRvc2l6ZSAjYXV0b3NpemU9XCJjZGtUZXh0YXJlYUF1dG9zaXplXCJcclxuICAgICAgICAgICAgICAgIGNka0F1dG9zaXplTWluUm93cz1cIjFcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLQktC90YPRgtGA0LXQvdC90Y/RjyDRgNCw0LfQvNC10YLQutCwINGC0LXQs9CwXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGFnLmlubmVySHRtbFwiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbiJdfQ==
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { FormControl, FormGroup } from '@angular/forms';
|
|
3
|
+
import { ImageMethods, FileImageTagDataConsts } from '../../../extensions/ImageMethods';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/material/button-toggle";
|
|
6
|
+
import * as i2 from "@angular/material/icon";
|
|
7
|
+
import * as i3 from "../../file-id-select/file-id-select.component";
|
|
8
|
+
import * as i4 from "@angular/material/form-field";
|
|
9
|
+
import * as i5 from "@angular/common";
|
|
10
|
+
import * as i6 from "@angular/forms";
|
|
11
|
+
import * as i7 from "@angular/material/input";
|
|
12
|
+
export class ImageEditorComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.hasImageError = false;
|
|
15
|
+
this.searchOrEdit = "search";
|
|
16
|
+
this.myForm = new FormGroup({
|
|
17
|
+
fileId: new FormControl()
|
|
18
|
+
});
|
|
19
|
+
this.onTagUpdated = new EventEmitter();
|
|
20
|
+
}
|
|
21
|
+
onErrorHandler() {
|
|
22
|
+
this.hasImageError = true;
|
|
23
|
+
}
|
|
24
|
+
getSrc() {
|
|
25
|
+
return ImageMethods.buildUrl(this.tag.attributes[FileImageTagDataConsts.FileIdAttrName]);
|
|
26
|
+
}
|
|
27
|
+
hasFileId() {
|
|
28
|
+
return this.tag.attributes.hasOwnProperty(FileImageTagDataConsts.FileIdAttrName) && !isNaN(this.tag.attributes[FileImageTagDataConsts.FileIdAttrName]);
|
|
29
|
+
}
|
|
30
|
+
onFileIdChanged(fileId) {
|
|
31
|
+
this.tag.attributes[FileImageTagDataConsts.FileIdAttrName] = fileId;
|
|
32
|
+
this.removeImageError();
|
|
33
|
+
}
|
|
34
|
+
removeImageError() {
|
|
35
|
+
this.hasImageError = false;
|
|
36
|
+
}
|
|
37
|
+
ngOnInit() {
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
ImageEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImageEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
41
|
+
ImageEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ImageEditorComponent, selector: "croco-html-image-editor", inputs: { tag: "tag" }, outputs: { onTagUpdated: "onTagUpdated" }, ngImport: i0, template: "<div>\r\n <div style=\"height: 10px;\">\r\n </div>\r\n \r\n <div *ngIf=\"hasImageError\" class=\"error-block\">\r\n \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u043F\u043E \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u043C\u0443 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0443, \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0444\u0430\u0439\u043B \u043D\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u043B\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.\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>[\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E]</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 \u0418\u0441\u043A\u0430\u0442\u044C \u0444\u0430\u0439\u043B <mat-icon>search</mat-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"edit\">\r\n \u0423\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u043E \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0443 <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]=\"'\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B'\"\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 <form [formGroup]=\"myForm\">\r\n <mat-form-field class=\"w-100\">\r\n <input matInput placeholder=\"\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430\" new-autocomplete=\"off\" autocomplete=\"off\"\r\n formControlName=\"fileId\" \r\n type=\"number\"\r\n [(ngModel)]=\"tag.attributes['file-id']\"\r\n (ngModelChange)=\"removeImageError()\">\r\n </mat-form-field>\r\n </form>\r\n </div>\r\n</div>", styles: [".error-block{background-color:#f32323;color:#fff;text-align:center;border-radius:10px;padding:10px}\n"], components: [{ type: i1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-labelledby", "tabIndex", "appearance", "checked", "disabled", "id", "name", "aria-label", "value"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.FileIdSelectComponent, selector: "croco-html-file-id-select", inputs: ["labelText", "fileId"], outputs: ["fileId", "onFileIdChanged"] }, { type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i6.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImageEditorComponent, decorators: [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{ selector: 'croco-html-image-editor', template: "<div>\r\n <div style=\"height: 10px;\">\r\n </div>\r\n \r\n <div *ngIf=\"hasImageError\" class=\"error-block\">\r\n \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u043F\u043E \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u043C\u0443 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0443, \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0444\u0430\u0439\u043B \u043D\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u043B\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.\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>[\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E]</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 \u0418\u0441\u043A\u0430\u0442\u044C \u0444\u0430\u0439\u043B <mat-icon>search</mat-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"edit\">\r\n \u0423\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u043E \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0443 <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]=\"'\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B'\"\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 <form [formGroup]=\"myForm\">\r\n <mat-form-field class=\"w-100\">\r\n <input matInput placeholder=\"\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430\" new-autocomplete=\"off\" autocomplete=\"off\"\r\n formControlName=\"fileId\" \r\n type=\"number\"\r\n [(ngModel)]=\"tag.attributes['file-id']\"\r\n (ngModelChange)=\"removeImageError()\">\r\n </mat-form-field>\r\n </form>\r\n </div>\r\n</div>", styles: [".error-block{background-color:#f32323;color:#fff;text-align:center;border-radius:10px;padding:10px}\n"] }]
|
|
45
|
+
}], ctorParameters: function () { return []; }, propDecorators: { tag: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], onTagUpdated: [{
|
|
48
|
+
type: Output
|
|
49
|
+
}] } });
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9pbWFnZS1lZGl0b3IvaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9pbWFnZS1lZGl0b3IvaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7OztBQVF4RixNQUFNLE9BQU8sb0JBQW9CO0lBbUIvQjtRQWpCQSxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixpQkFBWSxHQUFHLFFBQVEsQ0FBQztRQUt4QixXQUFNLEdBQUcsSUFBSSxTQUFTLENBQUM7WUFDckIsTUFBTSxFQUFDLElBQUksV0FBVyxFQUFFO1NBQ3pCLENBQUMsQ0FBQztRQU9ILGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztJQUUvQixDQUFDO0lBUGpCLGNBQWM7UUFDWixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBT0QsTUFBTTtRQUNKLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUN6SixDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQWE7UUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3BFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7O2tIQXZDVSxvQkFBb0I7c0dBQXBCLG9CQUFvQixrSUNWakMsbTBGQXFETTs0RkQzQ08sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLHlCQUF5QjswRUFVbkMsR0FBRztzQkFERixLQUFLO2dCQVlOLFlBQVk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSW1hZ2VNZXRob2RzLCBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzIH0gZnJvbSAnLi4vLi4vLi4vZXh0ZW5zaW9ucy9JbWFnZU1ldGhvZHMnO1xyXG5pbXBvcnQgeyBIdG1sQm9keVRhZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjcm9jby1odG1sLWltYWdlLWVkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW1hZ2VFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBoYXNJbWFnZUVycm9yID0gZmFsc2U7XHJcbiAgc2VhcmNoT3JFZGl0ID0gXCJzZWFyY2hcIjtcclxuXHJcbiAgQElucHV0KClcclxuICB0YWc6IEh0bWxCb2R5VGFnO1xyXG5cclxuICBteUZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcclxuICAgIGZpbGVJZDpuZXcgRm9ybUNvbnRyb2woKVxyXG4gIH0pO1xyXG5cclxuICBvbkVycm9ySGFuZGxlcigpe1xyXG4gICAgdGhpcy5oYXNJbWFnZUVycm9yID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uVGFnVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SHRtbEJvZHlUYWc+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIGdldFNyYygpe1xyXG4gICAgcmV0dXJuIEltYWdlTWV0aG9kcy5idWlsZFVybCh0aGlzLnRhZy5hdHRyaWJ1dGVzW0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWVdKTtcclxuICB9XHJcblxyXG4gIGhhc0ZpbGVJZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMudGFnLmF0dHJpYnV0ZXMuaGFzT3duUHJvcGVydHkoRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZSkgJiYgIWlzTmFOKHRoaXMudGFnLmF0dHJpYnV0ZXNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZV0pO1xyXG4gIH1cclxuXHJcbiAgb25GaWxlSWRDaGFuZ2VkKGZpbGVJZDpudW1iZXIpe1xyXG4gICAgdGhpcy50YWcuYXR0cmlidXRlc1tGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lXSA9IGZpbGVJZDtcclxuICAgIHRoaXMucmVtb3ZlSW1hZ2VFcnJvcigpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlSW1hZ2VFcnJvcigpe1xyXG4gICAgdGhpcy5oYXNJbWFnZUVycm9yID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXY+XHJcbiAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMHB4O1wiPlxyXG4gICAgPC9kaXY+XHJcbiAgICBcclxuICAgIDxkaXYgKm5nSWY9XCJoYXNJbWFnZUVycm9yXCIgY2xhc3M9XCJlcnJvci1ibG9ja1wiPlxyXG4gICAgICAgINCY0LfQvtCx0YDQsNC20LXQvdC40LUg0L3QtSDQvdCw0LnQtNC10L3QviDQv9C+INGD0LrQsNC30LDQvdC90L7QvNGDINC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YMsINCy0L7Qt9C80L7QttC90L4g0YTQsNC50Lsg0L3QtSDRgdGD0YnQtdGB0YLQstGD0LXRgiDQuNC70Lgg0L7RgtGB0YPRgtGB0YLQstGD0LXRgiDQvdCwINGB0LXRgNCy0LXRgNC1LlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cImhhc0ZpbGVJZCgpICYmICFoYXNJbWFnZUVycm9yXCI+XHJcbiAgICAgICAgPGltZyBjbGFzcz1cIm14LWF1dG8gZC1ibG9jayBpbWctZmx1aWRcIiBbc3JjXT1cImdldFNyYygpXCIgKGVycm9yKT1cIm9uRXJyb3JIYW5kbGVyKClcIi8+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwiIWhhc0ZpbGVJZCgpXCI+XHJcbiAgICAgICAgPGg1PlvQmNC30L7QsdGA0LDQttC10L3QuNC1INC90LUg0LLRi9Cx0YDQsNC90L5dPC9oNT5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCIhdGFnLnByZXNlbnRPckVkaXRcIj5cclxuICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+PC9kaXY+XHJcblxyXG4gICAgPGRpdiBzdHlsZT1cIm92ZXJmbG93LXg6YXV0bztcIj5cclxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgWyhuZ01vZGVsKV09XCJzZWFyY2hPckVkaXRcIj5cclxuICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwic2VhcmNoXCI+XHJcbiAgICAgICAgICAgICAgICDQmNGB0LrQsNGC0Ywg0YTQsNC50LsgPG1hdC1pY29uPnNlYXJjaDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XHJcbiAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cImVkaXRcIj5cclxuICAgICAgICAgICAgICAgINCj0LrQsNC30LDRgtGMINC/0L4g0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRgyA8bWF0LWljb24+c2V0dGluZ3M8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XHJcbiAgICA8L2Rpdj5cclxuICAgIFxyXG5cclxuICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+PC9kaXY+XHJcblxyXG4gICAgPGRpdiBbaGlkZGVuXT1cInNlYXJjaE9yRWRpdCAhPT0gJ3NlYXJjaCdcIj5cclxuICAgICAgICA8Y3JvY28taHRtbC1maWxlLWlkLXNlbGVjdFxyXG4gICAgICAgICBbbGFiZWxUZXh0XT1cIifQktGL0LHRgNCw0YLRjCDRhNCw0LnQuydcIlxyXG4gICAgICAgICBbKGZpbGVJZCldPVwidGFnLmF0dHJpYnV0ZXNbJ2ZpbGUtaWQnXVwiXHJcbiAgICAgICAgIChvbkZpbGVJZENoYW5nZWQpPVwib25GaWxlSWRDaGFuZ2VkKCRldmVudClcIj5cclxuICAgICAgICA8L2Nyb2NvLWh0bWwtZmlsZS1pZC1zZWxlY3Q+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IFtoaWRkZW5dPVwic2VhcmNoT3JFZGl0ICE9PSAnZWRpdCdcIj5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cIm15Rm9ybVwiPlxyXG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwi0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YTQsNC50LvQsFwiIG5ldy1hdXRvY29tcGxldGU9XCJvZmZcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImZpbGVJZFwiIFxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGFnLmF0dHJpYnV0ZXNbJ2ZpbGUtaWQnXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwicmVtb3ZlSW1hZ2VFcnJvcigpXCI+XHJcbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export * from './external-video-block/external-video-block.component';
|
|
2
|
-
export * from './html-raw-editor/html-raw-editor.component';
|
|
3
|
-
export * from './image-editor/image-editor.component';
|
|
4
|
-
export * from './main-editor/main-editor.component';
|
|
5
|
-
export * from './main-editor-block/main-editor-block.component';
|
|
6
|
-
export * from './text-editor/text-editor.component';
|
|
7
|
-
export * from './visual-editor/visual-editor.component';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export * from './external-video-block/external-video-block.component';
|
|
2
|
+
export * from './html-raw-editor/html-raw-editor.component';
|
|
3
|
+
export * from './image-editor/image-editor.component';
|
|
4
|
+
export * from './main-editor/main-editor.component';
|
|
5
|
+
export * from './main-editor-block/main-editor-block.component';
|
|
6
|
+
export * from './text-editor/text-editor.component';
|
|
7
|
+
export * from './visual-editor/visual-editor.component';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy9lZGl0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1REFBdUQsQ0FBQTtBQUNyRSxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMsdUNBQXVDLENBQUE7QUFDckQsY0FBYyxxQ0FBcUMsQ0FBQTtBQUNuRCxjQUFjLGlEQUFpRCxDQUFBO0FBQy9ELGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyx5Q0FBeUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXh0ZXJuYWwtdmlkZW8tYmxvY2svZXh0ZXJuYWwtdmlkZW8tYmxvY2suY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2h0bWwtcmF3LWVkaXRvci9odG1sLXJhdy1lZGl0b3IuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2ltYWdlLWVkaXRvci9pbWFnZS1lZGl0b3IuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL21haW4tZWRpdG9yL21haW4tZWRpdG9yLmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9tYWluLWVkaXRvci1ibG9jay9tYWluLWVkaXRvci1ibG9jay5jb21wb25lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vdGV4dC1lZGl0b3IvdGV4dC1lZGl0b3IuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL3Zpc3VhbC1lZGl0b3IvdmlzdWFsLWVkaXRvci5jb21wb25lbnQnXHJcbiJdfQ==
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { FormControl, FormGroup } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "ngx-clipboard";
|
|
5
|
+
import * as i2 from "@angular/material/snack-bar";
|
|
6
|
+
import * as i3 from "@angular/material/tabs";
|
|
7
|
+
import * as i4 from "../visual-editor/visual-editor.component";
|
|
8
|
+
import * as i5 from "@angular/material/form-field";
|
|
9
|
+
import * as i6 from "@angular/material/button";
|
|
10
|
+
import * as i7 from "@angular/material/card";
|
|
11
|
+
import * as i8 from "../../xml-tags/xml-tag-view/xml-tag-view.component";
|
|
12
|
+
import * as i9 from "@angular/common";
|
|
13
|
+
import * as i10 from "@angular/forms";
|
|
14
|
+
import * as i11 from "@angular/material/input";
|
|
15
|
+
import * as i12 from "@angular/cdk/text-field";
|
|
16
|
+
import * as i13 from "../../../pipes/to-preview.pipe";
|
|
17
|
+
export class MainEditorComponent {
|
|
18
|
+
constructor(_clipboardService, _snackBar, _cdref) {
|
|
19
|
+
this._clipboardService = _clipboardService;
|
|
20
|
+
this._snackBar = _snackBar;
|
|
21
|
+
this._cdref = _cdref;
|
|
22
|
+
this.visualEditorRendered = false;
|
|
23
|
+
this.showMarkUp = true;
|
|
24
|
+
this.useHtmlRaw = false;
|
|
25
|
+
this.myForm = new FormGroup({
|
|
26
|
+
"html": new FormControl(),
|
|
27
|
+
});
|
|
28
|
+
this.html = "";
|
|
29
|
+
this.onHtmlChanged = new EventEmitter();
|
|
30
|
+
}
|
|
31
|
+
ngAfterContentChecked() {
|
|
32
|
+
this._cdref.detectChanges();
|
|
33
|
+
}
|
|
34
|
+
visualEditorRenderedHandler() {
|
|
35
|
+
this.visualEditorRendered = true;
|
|
36
|
+
this.recalculateBodyTags();
|
|
37
|
+
}
|
|
38
|
+
onHtmlChangedHandler(html) {
|
|
39
|
+
this.html = html;
|
|
40
|
+
this.onHtmlChanged.emit(html);
|
|
41
|
+
}
|
|
42
|
+
textAreaModelChangedHandler() {
|
|
43
|
+
this.recalculateBodyTags();
|
|
44
|
+
this.onHtmlChangedHandler(this.html);
|
|
45
|
+
}
|
|
46
|
+
recalculateBodyTags() {
|
|
47
|
+
this.visualEditor.html = this.html;
|
|
48
|
+
this.visualEditor.recalculateBodyTags();
|
|
49
|
+
}
|
|
50
|
+
copyMarkUp() {
|
|
51
|
+
this._snackBar.open("Разметка таблицы скопирована в буфер обмена", "Закрыть", { duration: 1500 });
|
|
52
|
+
this._clipboardService.copy(this.html);
|
|
53
|
+
}
|
|
54
|
+
ngOnInit() {
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
MainEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MainEditorComponent, deps: [{ token: i1.ClipboardService }, { token: i2.MatSnackBar }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
58
|
+
MainEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: MainEditorComponent, selector: "croco-html-main-editor", inputs: { showMarkUp: "showMarkUp", useHtmlRaw: "useHtmlRaw", html: "html" }, outputs: { html: "html", onHtmlChanged: "onHtmlChanged" }, viewQueries: [{ propertyName: "visualEditor", first: true, predicate: ["visualEditor"], descendants: true }], ngImport: i0, template: "<mat-tab-group>\r\n <mat-tab label=\"\u0412\u0438\u0437\u0443\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\">\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=\"\u0420\u0430\u0437\u043C\u0435\u0442\u043A\u0430\">\r\n <div style=\"height: 10px;\"></div>\r\n <form *ngIf=\"visualEditorRendered\" [formGroup]=\"myForm\">\r\n <mat-form-field class=\"w-100\">\r\n <textarea matInput cdkTextareaAutosize #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n placeholder=\"\u0418\u0441\u0445\u043E\u0434\u043D\u044B\u0439 \u043A\u043E\u0434\" formControlName=\"html\" [(ngModel)]=\"html\"\r\n (ngModelChange)=\"textAreaModelChangedHandler()\"></textarea>\r\n </mat-form-field>\r\n </form>\r\n\r\n <button (click)=\"copyMarkUp()\" \r\n mat-raised-button color=\"primary\">\r\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0443\r\n </button>\r\n </mat-tab>\r\n <mat-tab label=\"\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\">\r\n <mat-card>\r\n <croco-html-xml-tag-view [data]=\"html | topreview\">\r\n </croco-html-xml-tag-view>\r\n </mat-card>\r\n </mat-tab>\r\n</mat-tab-group>", styles: [".example-list{width:500px;max-width:100%;border:solid 1px #ccc;min-height:60px;display:block;background:white;border-radius:4px;overflow:hidden}.example-box{padding:20px 10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:white;font-size:14px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], components: [{ type: i3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { type: i3.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby"], exportAs: ["matTab"] }, { type: i4.VisualEditorComponent, selector: "croco-visual-editor", inputs: ["showMarkUp", "useHtmlRaw", "html"], outputs: ["html", "onHtmlChanged", "rendered"] }, { type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i8.XmlTagViewComponent, selector: "croco-html-xml-tag-view", inputs: ["data"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i10.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i10.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i12.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { type: i10.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "topreview": i13.ToPreviewPipe } });
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MainEditorComponent, decorators: [{
|
|
60
|
+
type: Component,
|
|
61
|
+
args: [{ selector: 'croco-html-main-editor', template: "<mat-tab-group>\r\n <mat-tab label=\"\u0412\u0438\u0437\u0443\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\">\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=\"\u0420\u0430\u0437\u043C\u0435\u0442\u043A\u0430\">\r\n <div style=\"height: 10px;\"></div>\r\n <form *ngIf=\"visualEditorRendered\" [formGroup]=\"myForm\">\r\n <mat-form-field class=\"w-100\">\r\n <textarea matInput cdkTextareaAutosize #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n placeholder=\"\u0418\u0441\u0445\u043E\u0434\u043D\u044B\u0439 \u043A\u043E\u0434\" formControlName=\"html\" [(ngModel)]=\"html\"\r\n (ngModelChange)=\"textAreaModelChangedHandler()\"></textarea>\r\n </mat-form-field>\r\n </form>\r\n\r\n <button (click)=\"copyMarkUp()\" \r\n mat-raised-button color=\"primary\">\r\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0443\r\n </button>\r\n </mat-tab>\r\n <mat-tab label=\"\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\">\r\n <mat-card>\r\n <croco-html-xml-tag-view [data]=\"html | topreview\">\r\n </croco-html-xml-tag-view>\r\n </mat-card>\r\n </mat-tab>\r\n</mat-tab-group>", styles: [".example-list{width:500px;max-width:100%;border:solid 1px #ccc;min-height:60px;display:block;background:white;border-radius:4px;overflow:hidden}.example-box{padding:20px 10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:white;font-size:14px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
|
|
62
|
+
}], ctorParameters: function () { return [{ type: i1.ClipboardService }, { type: i2.MatSnackBar }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { visualEditor: [{
|
|
63
|
+
type: ViewChild,
|
|
64
|
+
args: ["visualEditor"]
|
|
65
|
+
}], showMarkUp: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], useHtmlRaw: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], html: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}, {
|
|
72
|
+
type: Output
|
|
73
|
+
}], onHtmlChanged: [{
|
|
74
|
+
type: Output
|
|
75
|
+
}] } });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMvZWRpdG9yL21haW4tZWRpdG9yL21haW4tZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9tYWluLWVkaXRvci9tYWluLWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBVXhELE1BQU0sT0FBTyxtQkFBbUI7SUF1QjlCLFlBQW9CLGlCQUFtQyxFQUM3QyxTQUFzQixFQUN0QixNQUF5QjtRQUZmLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDN0MsY0FBUyxHQUFULFNBQVMsQ0FBYTtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQXZCbkMseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBSzdCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFHbEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixXQUFNLEdBQUcsSUFBSSxTQUFTLENBQUM7WUFDckIsTUFBTSxFQUFFLElBQUksV0FBVyxFQUFFO1NBQzFCLENBQUMsQ0FBQztRQUlILFNBQUksR0FBVyxFQUFFLENBQUM7UUFHbEIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBSUosQ0FBQztJQUV4QyxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsMkJBQTJCO1FBQ3pCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDakMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQVk7UUFDL0IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELDJCQUEyQjtRQUN6QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyw2Q0FBNkMsRUFBRSxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7O2lIQXpEVSxtQkFBbUI7cUdBQW5CLG1CQUFtQixxVENYaEMseWxEQXNDZ0I7NEZEM0JILG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSx3QkFBd0I7aUtBUWxDLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxjQUFjO2dCQUl6QixVQUFVO3NCQURULEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQVNOLElBQUk7c0JBRkgsS0FBSzs7c0JBQ0wsTUFBTTtnQkFJUCxhQUFhO3NCQURaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRDaGVja2VkLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuaW1wb3J0IHsgQ2xpcGJvYXJkU2VydmljZSB9IGZyb20gJ25neC1jbGlwYm9hcmQnO1xyXG5pbXBvcnQgeyBWaXN1YWxFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi92aXN1YWwtZWRpdG9yL3Zpc3VhbC1lZGl0b3IuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3JvY28taHRtbC1tYWluLWVkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21haW4tZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tYWluLWVkaXRvci5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE1haW5FZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudENoZWNrZWQge1xyXG5cclxuICB2aXN1YWxFZGl0b3JSZW5kZXJlZCA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoXCJ2aXN1YWxFZGl0b3JcIilcclxuICB2aXN1YWxFZGl0b3IhOiBWaXN1YWxFZGl0b3JDb21wb25lbnQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd01hcmtVcCA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdXNlSHRtbFJhdyA9IGZhbHNlO1xyXG5cclxuICBteUZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcclxuICAgIFwiaHRtbFwiOiBuZXcgRm9ybUNvbnRyb2woKSxcclxuICB9KTtcclxuXHJcbiAgQElucHV0KClcclxuICBAT3V0cHV0KClcclxuICBodG1sOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkh0bWxDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NsaXBib2FyZFNlcnZpY2U6IENsaXBib2FyZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zbmFja0JhcjogTWF0U25hY2tCYXIsXHJcbiAgICBwcml2YXRlIF9jZHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jZHJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB2aXN1YWxFZGl0b3JSZW5kZXJlZEhhbmRsZXIoKXtcclxuICAgIHRoaXMudmlzdWFsRWRpdG9yUmVuZGVyZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5yZWNhbGN1bGF0ZUJvZHlUYWdzKCk7XHJcbiAgfVxyXG5cclxuICBvbkh0bWxDaGFuZ2VkSGFuZGxlcihodG1sOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuaHRtbCA9IGh0bWw7XHJcbiAgICB0aGlzLm9uSHRtbENoYW5nZWQuZW1pdChodG1sKTtcclxuICB9XHJcblxyXG4gIHRleHRBcmVhTW9kZWxDaGFuZ2VkSGFuZGxlcigpe1xyXG4gICAgdGhpcy5yZWNhbGN1bGF0ZUJvZHlUYWdzKCk7XHJcbiAgICB0aGlzLm9uSHRtbENoYW5nZWRIYW5kbGVyKHRoaXMuaHRtbCk7XHJcbiAgfVxyXG5cclxuICByZWNhbGN1bGF0ZUJvZHlUYWdzKCkge1xyXG4gICAgdGhpcy52aXN1YWxFZGl0b3IuaHRtbCA9IHRoaXMuaHRtbDtcclxuICAgIHRoaXMudmlzdWFsRWRpdG9yLnJlY2FsY3VsYXRlQm9keVRhZ3MoKTtcclxuICB9XHJcblxyXG4gIGNvcHlNYXJrVXAoKSB7XHJcbiAgICB0aGlzLl9zbmFja0Jhci5vcGVuKFwi0KDQsNC30LzQtdGC0LrQsCDRgtCw0LHQu9C40YbRiyDRgdC60L7Qv9C40YDQvtCy0LDQvdCwINCyINCx0YPRhNC10YAg0L7QsdC80LXQvdCwXCIsIFwi0JfQsNC60YDRi9GC0YxcIiwgeyBkdXJhdGlvbjogMTUwMCB9KTtcclxuICAgIHRoaXMuX2NsaXBib2FyZFNlcnZpY2UuY29weSh0aGlzLmh0bWwpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8bWF0LXRhYi1ncm91cD5cclxuICA8bWF0LXRhYiBsYWJlbD1cItCS0LjQt9GD0LDQu9GM0L3Ri9C5INGA0LXQtNCw0LrRgtC+0YBcIj5cclxuXHJcbiAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAyMHB4O1wiPjwvZGl2PlxyXG5cclxuICAgIDxjcm9jby12aXN1YWwtZWRpdG9yICN2aXN1YWxFZGl0b3JcclxuICAgICAgW3VzZUh0bWxSYXddPVwidXNlSHRtbFJhd1wiXHJcbiAgICAgIFtodG1sXT1cImh0bWxcIlxyXG4gICAgICAob25IdG1sQ2hhbmdlZCk9XCJvbkh0bWxDaGFuZ2VkSGFuZGxlcigkZXZlbnQpXCJcclxuICAgICAgKHJlbmRlcmVkKT1cInZpc3VhbEVkaXRvclJlbmRlcmVkSGFuZGxlcigpXCI+XHJcbiAgICA8L2Nyb2NvLXZpc3VhbC1lZGl0b3I+XHJcblxyXG4gICAgPGRpdiBzdHlsZT1cImhlaWdodDogMjBweDtcIj48L2Rpdj5cclxuXHJcbiAgPC9tYXQtdGFiPlxyXG5cclxuICA8bWF0LXRhYiBsYWJlbD1cItCg0LDQt9C80LXRgtC60LBcIj5cclxuICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+PC9kaXY+XHJcbiAgICA8Zm9ybSAqbmdJZj1cInZpc3VhbEVkaXRvclJlbmRlcmVkXCIgW2Zvcm1Hcm91cF09XCJteUZvcm1cIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cclxuICAgICAgICA8dGV4dGFyZWEgbWF0SW5wdXQgY2RrVGV4dGFyZWFBdXRvc2l6ZSAjYXV0b3NpemU9XCJjZGtUZXh0YXJlYUF1dG9zaXplXCJcclxuICAgICAgICAgIGNka0F1dG9zaXplTWluUm93cz1cIjFcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCLQmNGB0YXQvtC00L3Ri9C5INC60L7QtFwiIGZvcm1Db250cm9sTmFtZT1cImh0bWxcIiBbKG5nTW9kZWwpXT1cImh0bWxcIlxyXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidGV4dEFyZWFNb2RlbENoYW5nZWRIYW5kbGVyKClcIj48L3RleHRhcmVhPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9mb3JtPlxyXG5cclxuICAgIDxidXR0b24gKGNsaWNrKT1cImNvcHlNYXJrVXAoKVwiIFxyXG4gICAgICBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIj5cclxuICAgICAg0JrQvtC/0LjRgNC+0LLQsNGC0Ywg0YDQsNC30LzQtdGC0LrRg1xyXG4gICAgPC9idXR0b24+XHJcbiAgPC9tYXQtdGFiPlxyXG4gIDxtYXQtdGFiIGxhYmVsPVwi0KDQtdC30YPQu9GM0YLQsNGCXCI+XHJcbiAgICA8bWF0LWNhcmQ+XHJcbiAgICAgIDxjcm9jby1odG1sLXhtbC10YWctdmlldyBbZGF0YV09XCJodG1sIHwgdG9wcmV2aWV3XCI+XHJcbiAgICAgIDwvY3JvY28taHRtbC14bWwtdGFnLXZpZXc+XHJcbiAgICA8L21hdC1jYXJkPlxyXG4gIDwvbWF0LXRhYj5cclxuPC9tYXQtdGFiLWdyb3VwPiJdfQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { TextMethods } from '../../../extensions/TextMethods';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../text-editor/text-editor.component";
|
|
5
|
+
import * as i2 from "../image-editor/image-editor.component";
|
|
6
|
+
import * as i3 from "../external-video-block/external-video-block.component";
|
|
7
|
+
import * as i4 from "../html-raw-editor/html-raw-editor.component";
|
|
8
|
+
import * as i5 from "@angular/material/button";
|
|
9
|
+
import * as i6 from "@angular/material/icon";
|
|
10
|
+
import * as i7 from "@angular/common";
|
|
11
|
+
export class MainEditorBlockComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.textTags = TextMethods.textTags;
|
|
14
|
+
this.onTagSaved = new EventEmitter();
|
|
15
|
+
this.onTagRemoved = new EventEmitter();
|
|
16
|
+
}
|
|
17
|
+
tagUpdatedHandler(tag) {
|
|
18
|
+
}
|
|
19
|
+
save() {
|
|
20
|
+
this.tag.presentOrEdit = true;
|
|
21
|
+
this.onTagSaved.emit(this.tag);
|
|
22
|
+
}
|
|
23
|
+
deleteItem() {
|
|
24
|
+
this.onTagRemoved.emit(this.tag);
|
|
25
|
+
}
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
MainEditorBlockComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MainEditorBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
+
MainEditorBlockComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: MainEditorBlockComponent, selector: "croco-html-main-editor-block", inputs: { tag: "tag" }, outputs: { onTagSaved: "onTagSaved", onTagRemoved: "onTagRemoved" }, ngImport: i0, template: "<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>", styles: [""], components: [{ type: i1.TextEditorComponent, selector: "croco-html-text-editor", inputs: ["tag"], outputs: ["onTagUpdated"] }, { type: i2.ImageEditorComponent, selector: "croco-html-image-editor", inputs: ["tag"], outputs: ["onTagUpdated"] }, { type: i3.ExternalVideoBlockComponent, selector: "croco-html-external-video-block", inputs: ["tag"], outputs: ["onTagUpdated"] }, { type: i4.HtmlRawEditorComponent, selector: "croco-html-html-raw-editor", inputs: ["tag"], outputs: ["onTagUpdated"] }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MainEditorBlockComponent, decorators: [{
|
|
32
|
+
type: Component,
|
|
33
|
+
args: [{ selector: 'croco-html-main-editor-block', template: "<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>", styles: [""] }]
|
|
34
|
+
}], ctorParameters: function () { return []; }, propDecorators: { tag: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], onTagSaved: [{
|
|
37
|
+
type: Output
|
|
38
|
+
}], onTagRemoved: [{
|
|
39
|
+
type: Output
|
|
40
|
+
}] } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1lZGl0b3ItYmxvY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMvZWRpdG9yL21haW4tZWRpdG9yLWJsb2NrL21haW4tZWRpdG9yLWJsb2NrLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9tYWluLWVkaXRvci1ibG9jay9tYWluLWVkaXRvci1ibG9jay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7O0FBUTlELE1BQU0sT0FBTyx3QkFBd0I7SUFhbkM7UUFYQSxhQUFRLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQztRQU1oQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztRQUc3QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7SUFFL0IsQ0FBQztJQUVqQixpQkFBaUIsQ0FBQyxHQUFlO0lBQ2pDLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7O3NIQTVCVSx3QkFBd0I7MEdBQXhCLHdCQUF3QixpS0NUckMsa2dEQXdDTTs0RkQvQk8sd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLDhCQUE4QjswRUFTeEMsR0FBRztzQkFERixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsTUFBTTtnQkFJUCxZQUFZO3NCQURYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRleHRNZXRob2RzIH0gZnJvbSAnLi4vLi4vLi4vZXh0ZW5zaW9ucy9UZXh0TWV0aG9kcyc7XHJcbmltcG9ydCB7IEh0bWxCb2R5VGFnIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL21vZGVscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Nyb2NvLWh0bWwtbWFpbi1lZGl0b3ItYmxvY2snLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tYWluLWVkaXRvci1ibG9jay5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbWFpbi1lZGl0b3ItYmxvY2suY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYWluRWRpdG9yQmxvY2tDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICB0ZXh0VGFncyA9IFRleHRNZXRob2RzLnRleHRUYWdzO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHRhZzpIdG1sQm9keVRhZztcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb25UYWdTYXZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SHRtbEJvZHlUYWc+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uVGFnUmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SHRtbEJvZHlUYWc+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIHRhZ1VwZGF0ZWRIYW5kbGVyKHRhZzpIdG1sQm9keVRhZyk6dm9pZHtcclxuICB9XHJcblxyXG4gIHNhdmUoKXtcclxuICAgIHRoaXMudGFnLnByZXNlbnRPckVkaXQgPSB0cnVlO1xyXG4gICAgdGhpcy5vblRhZ1NhdmVkLmVtaXQodGhpcy50YWcpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlSXRlbSgpe1xyXG4gICAgdGhpcy5vblRhZ1JlbW92ZWQuZW1pdCh0aGlzLnRhZyk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcbn1cclxuIiwiPGRpdj5cclxuICA8ZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cInRleHRUYWdzLmluY2x1ZGVzKHRhZy50YWdEZXNjcmlwdGlvbi50YWcpXCI+XHJcbiAgICAgIDxjcm9jby1odG1sLXRleHQtZWRpdG9yIChvblRhZ1VwZGF0ZWQpPVwidGFnVXBkYXRlZEhhbmRsZXIoJGV2ZW50KVwiIFt0YWddPVwidGFnXCI+XHJcbiAgICAgIDwvY3JvY28taHRtbC10ZXh0LWVkaXRvcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJ0YWcudGFnRGVzY3JpcHRpb24udGFnID09PSAnZmlsZS1pbWFnZSdcIj4gXHJcbiAgICAgIDxjcm9jby1odG1sLWltYWdlLWVkaXRvciAob25UYWdVcGRhdGVkKT1cInRhZ1VwZGF0ZWRIYW5kbGVyKCRldmVudClcIiBbdGFnXT1cInRhZ1wiPlxyXG4gICAgICA8L2Nyb2NvLWh0bWwtaW1hZ2UtZWRpdG9yPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cInRhZy50YWdEZXNjcmlwdGlvbi50YWcgPT09ICdleHRlcm5hbC12aWRlbydcIj5cclxuICAgICAgPGNyb2NvLWh0bWwtZXh0ZXJuYWwtdmlkZW8tYmxvY2sgKG9uVGFnVXBkYXRlZCk9XCJ0YWdVcGRhdGVkSGFuZGxlcigkZXZlbnQpXCIgW3RhZ109XCJ0YWdcIj5cclxuICAgICAgPC9jcm9jby1odG1sLWV4dGVybmFsLXZpZGVvLWJsb2NrPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cInRhZy50YWdEZXNjcmlwdGlvbi50YWcgPT09ICdodG1sLXJhdydcIj5cclxuICAgICAgPGNyb2NvLWh0bWwtaHRtbC1yYXctZWRpdG9yIChvblRhZ1VwZGF0ZWQpPVwidGFnVXBkYXRlZEhhbmRsZXIoJGV2ZW50KVwiIFt0YWddPVwidGFnXCI+XHJcbiAgICAgIDwvY3JvY28taHRtbC1odG1sLXJhdy1lZGl0b3I+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1zZWxmLWNlbnRlclwiPlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJ0YWcucHJlc2VudE9yRWRpdFwiIChjbGljayk9XCJ0YWcucHJlc2VudE9yRWRpdCA9IGZhbHNlXCIgbWF0LWljb24tYnV0dG9uPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmVkaXQ8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gKm5nSWY9XCIhdGFnLnByZXNlbnRPckVkaXRcIiAoY2xpY2spPVwic2F2ZSgpXCIgbWF0LWljb24tYnV0dG9uPlxyXG4gICAgICAgICAgPG1hdC1pY29uPnNhdmU8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRlbGV0ZUl0ZW0oKVwiIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cIndhcm5cIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { FormControl, FormGroup } from '@angular/forms';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/material/button-toggle";
|
|
5
|
+
import * as i2 from "@angular/material/icon";
|
|
6
|
+
import * as i3 from "@angular/material/form-field";
|
|
7
|
+
import * as i4 from "@angular/common";
|
|
8
|
+
import * as i5 from "@angular/forms";
|
|
9
|
+
import * as i6 from "@angular/material/input";
|
|
10
|
+
import * as i7 from "@angular/cdk/text-field";
|
|
11
|
+
export class TextEditorComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.myForm = new FormGroup({
|
|
14
|
+
"innerHtml": new FormControl()
|
|
15
|
+
});
|
|
16
|
+
this.onTagUpdated = new EventEmitter();
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
}
|
|
20
|
+
getInnerHtml() {
|
|
21
|
+
return `<${this.tag.tagDescription.tag}>${this.tag.innerHtml}<${this.tag.tagDescription.tag}/>`;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
TextEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TextEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
+
TextEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: TextEditorComponent, selector: "croco-html-text-editor", inputs: { tag: "tag" }, outputs: { onTagUpdated: "onTagUpdated" }, ngImport: i0, template: "<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 \u041F\u043E \u0446\u0435\u043D\u0442\u0440\u0443 <mat-icon>format_align_center</mat-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"left\">\r\n \u0421\u043B\u0435\u0432\u0430 <mat-icon>format_align_left</mat-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"right\">\r\n \u0421\u043F\u0440\u0430\u0432\u0430 <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 <form [formGroup]=\"myForm\">\r\n <mat-form-field class=\"w-100\">\r\n <textarea matInput cdkTextareaAutosize #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n placeholder=\"\u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u044F\u044F \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0433\u043E \u0442\u0435\u0433\u0430\"\r\n formControlName=\"innerHtml\"\r\n [(ngModel)]=\"tag.innerHtml\"></textarea>\r\n </mat-form-field>\r\n </form>\r\n</div>", styles: [""], components: [{ type: i1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-labelledby", "tabIndex", "appearance", "checked", "disabled", "id", "name", "aria-label", "value"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i7.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TextEditorComponent, decorators: [{
|
|
27
|
+
type: Component,
|
|
28
|
+
args: [{ selector: 'croco-html-text-editor', template: "<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 \u041F\u043E \u0446\u0435\u043D\u0442\u0440\u0443 <mat-icon>format_align_center</mat-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"left\">\r\n \u0421\u043B\u0435\u0432\u0430 <mat-icon>format_align_left</mat-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"right\">\r\n \u0421\u043F\u0440\u0430\u0432\u0430 <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 <form [formGroup]=\"myForm\">\r\n <mat-form-field class=\"w-100\">\r\n <textarea matInput cdkTextareaAutosize #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n placeholder=\"\u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u044F\u044F \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0430 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0433\u043E \u0442\u0435\u0433\u0430\"\r\n formControlName=\"innerHtml\"\r\n [(ngModel)]=\"tag.innerHtml\"></textarea>\r\n </mat-form-field>\r\n </form>\r\n</div>", styles: [""] }]
|
|
29
|
+
}], ctorParameters: function () { return []; }, propDecorators: { tag: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], onTagUpdated: [{
|
|
32
|
+
type: Output
|
|
33
|
+
}] } });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMvZWRpdG9yL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQVF4RCxNQUFNLE9BQU8sbUJBQW1CO0lBWTlCO1FBVkEsV0FBTSxHQUFHLElBQUksU0FBUyxDQUFDO1lBQ3JCLFdBQVcsRUFBRSxJQUFJLFdBQVcsRUFBRTtTQUMvQixDQUFDLENBQUM7UUFNSCxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7SUFFL0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ2xHLENBQUM7O2lIQW5CVSxtQkFBbUI7cUdBQW5CLG1CQUFtQixpSUNUaEMsbTVEQXNDTTs0RkQ3Qk8sbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLHdCQUF3QjswRUFXbEMsR0FBRztzQkFERixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSHRtbEJvZHlUYWcgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3JvY28taHRtbC10ZXh0LWVkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90ZXh0LWVkaXRvci5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRleHRFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBteUZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcclxuICAgIFwiaW5uZXJIdG1sXCI6IG5ldyBGb3JtQ29udHJvbCgpXHJcbiAgfSk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGFnOiBIdG1sQm9keVRhZztcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb25UYWdVcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxIdG1sQm9keVRhZz4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBnZXRJbm5lckh0bWwoKXtcclxuICAgIHJldHVybiBgPCR7dGhpcy50YWcudGFnRGVzY3JpcHRpb24udGFnfT4ke3RoaXMudGFnLmlubmVySHRtbH08JHt0aGlzLnRhZy50YWdEZXNjcmlwdGlvbi50YWd9Lz5gO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwidGFnLnByZXNlbnRPckVkaXRcIj5cclxuICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIiAqbmdJZj1cInRhZy5hdHRyaWJ1dGVzWydoLWFsaWduJ10gPT09ICdsZWZ0J1wiIFtpbm5lckh0bWxdPVwiZ2V0SW5uZXJIdG1sKClcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBzdHlsZT1cInRleHQtYWxpZ246IHJpZ2h0O1wiICpuZ0lmPVwidGFnLmF0dHJpYnV0ZXNbJ2gtYWxpZ24nXSA9PT0gJ3JpZ2h0J1wiIFtpbm5lckh0bWxdPVwiZ2V0SW5uZXJIdG1sKClcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIiAqbmdJZj1cInRhZy5hdHRyaWJ1dGVzWydoLWFsaWduJ10gPT09ICdjZW50ZXInXCIgW2lubmVySHRtbF09XCJnZXRJbm5lckh0bWwoKVwiPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cIiF0YWcucHJlc2VudE9yRWRpdFwiPlxyXG4gICAgPGRpdiBzdHlsZT1cIm92ZXJmbG93LXg6IGF1dG87XCI+XHJcbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIFsobmdNb2RlbCldPVwidGFnLmF0dHJpYnV0ZXNbJ2gtYWxpZ24nXVwiPlxyXG4gICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgINCf0L4g0YbQtdC90YLRgNGDIDxtYXQtaWNvbj5mb3JtYXRfYWxpZ25fY2VudGVyPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAg0KHQu9C10LLQsCA8bWF0LWljb24+Zm9ybWF0X2FsaWduX2xlZnQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICAgICAg0KHQv9GA0LDQstCwIDxtYXQtaWNvbj4gZm9ybWF0X2FsaWduX3JpZ2h0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBzdHlsZT1cImhlaWdodDogMTBweDtcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJteUZvcm1cIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxyXG4gICAgICAgICAgICA8dGV4dGFyZWEgbWF0SW5wdXQgY2RrVGV4dGFyZWFBdXRvc2l6ZSAjYXV0b3NpemU9XCJjZGtUZXh0YXJlYUF1dG9zaXplXCJcclxuICAgICAgICAgICAgICAgIGNka0F1dG9zaXplTWluUm93cz1cIjFcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLQktC90YPRgtGA0LXQvdC90Y/RjyDRgNCw0LfQvNC10YLQutCwINGC0LXQutGB0YLQvtCy0L7Qs9C+INGC0LXQs9CwXCJcclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImlubmVySHRtbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRhZy5pbm5lckh0bWxcIj48L3RleHRhcmVhPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Zvcm0+XHJcbjwvZGl2PiJdfQ==
|