croco-html 2.13.0 → 2.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/editor/external-video-block/external-video-block.component.mjs +7 -4
- package/esm2022/lib/components/upload-files-btn/upload-files-btn.component.mjs +2 -2
- package/esm2022/lib/croco-html.module.mjs +1 -1
- package/esm2022/lib/services/file-upload.service.mjs +4 -41
- package/fesm2022/croco-html.mjs +16 -52
- package/fesm2022/croco-html.mjs.map +1 -1
- package/lib/components/upload-files-btn/upload-files-btn.component.d.ts +1 -1
- package/lib/index.d.ts +6 -6
- package/lib/services/file-upload.service.d.ts +0 -4
- package/package.json +1 -1
package/esm2022/lib/components/editor/external-video-block/external-video-block.component.mjs
CHANGED
|
@@ -3,9 +3,11 @@ import { ExternalVideoSupportedTypes, } from '../../../extensions';
|
|
|
3
3
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
4
4
|
import { FormsModule } from '@angular/forms';
|
|
5
5
|
import { XmlTagExternalVideoComponent } from '../../xml-tags';
|
|
6
|
+
import { MatInputModule } from '@angular/material/input';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@angular/material/form-field";
|
|
8
|
-
import * as i2 from "@angular/
|
|
9
|
+
import * as i2 from "@angular/material/input";
|
|
10
|
+
import * as i3 from "@angular/forms";
|
|
9
11
|
export class ExternalVideoBlockComponent {
|
|
10
12
|
constructor() {
|
|
11
13
|
this.onTagUpdated = new EventEmitter();
|
|
@@ -35,18 +37,19 @@ export class ExternalVideoBlockComponent {
|
|
|
35
37
|
this.tagData.link = src;
|
|
36
38
|
}
|
|
37
39
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ExternalVideoBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: ExternalVideoBlockComponent, isStandalone: true, selector: "croco-html-external-video-block", inputs: { tag: "tag" }, outputs: { onTagUpdated: "onTagUpdated" }, ngImport: i0, template: "@if (tag.presentOrEdit) {\n <div>\n <div>\n @switch (tagData.type) {\n @case (ExternalVideoSupportedTypes.VkVideo) {\n {{linkText}}: {{tagData.link}}\n }\n @case (ExternalVideoSupportedTypes.Youtube) {\n {{linkText}}: {{tagData.link}}\n }\n }\n </div>\n <div style=\"height: 10px;\"></div>\n <croco-html-xml-tag-external-video [tagData]=\"tagData\"></croco-html-xml-tag-external-video>\n </div>\n}\n\n@if (!tag.presentOrEdit) {\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\n {{linkText}}\n </mat-label>\n <input matInput placeholder=\"{{linkText}}\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.link\"\n (ngModelChange)=\"linkChanged()\">\n </mat-form-field>\n </div>\n}\n", styles: [".video-player{margin:0 auto;max-width:640px;width:100%;height:360px}@media screen and (max-width: 760px){.video-player{height:300px}}@media screen and (max-width: 540px){.video-player{height:250px}}@media screen and (max-width: 450px){.video-player{height:200px}}@media screen and (max-width: 380px){.video-player{height:180px}}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type:
|
|
40
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: ExternalVideoBlockComponent, isStandalone: true, selector: "croco-html-external-video-block", inputs: { tag: "tag" }, outputs: { onTagUpdated: "onTagUpdated" }, ngImport: i0, template: "@if (tag.presentOrEdit) {\n <div>\n <div>\n @switch (tagData.type) {\n @case (ExternalVideoSupportedTypes.VkVideo) {\n {{linkText}}: {{tagData.link}}\n }\n @case (ExternalVideoSupportedTypes.Youtube) {\n {{linkText}}: {{tagData.link}}\n }\n }\n </div>\n <div style=\"height: 10px;\"></div>\n <croco-html-xml-tag-external-video [tagData]=\"tagData\"></croco-html-xml-tag-external-video>\n </div>\n}\n\n@if (!tag.presentOrEdit) {\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\n {{linkText}}\n </mat-label>\n <input matInput placeholder=\"{{linkText}}\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.link\"\n (ngModelChange)=\"linkChanged()\">\n </mat-form-field>\n </div>\n}\n", styles: [".video-player{margin:0 auto;max-width:640px;width:100%;height:360px}@media screen and (max-width: 760px){.video-player{height:300px}}@media screen and (max-width: 540px){.video-player{height:250px}}@media screen and (max-width: 450px){.video-player{height:200px}}@media screen and (max-width: 380px){.video-player{height:180px}}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XmlTagExternalVideoComponent, selector: "croco-html-xml-tag-external-video", inputs: ["data", "tagData"] }] }); }
|
|
39
41
|
}
|
|
40
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ExternalVideoBlockComponent, decorators: [{
|
|
41
43
|
type: Component,
|
|
42
44
|
args: [{ selector: 'croco-html-external-video-block', standalone: true, imports: [
|
|
43
45
|
MatFormFieldModule,
|
|
46
|
+
MatInputModule,
|
|
44
47
|
FormsModule,
|
|
45
|
-
XmlTagExternalVideoComponent
|
|
48
|
+
XmlTagExternalVideoComponent,
|
|
46
49
|
], template: "@if (tag.presentOrEdit) {\n <div>\n <div>\n @switch (tagData.type) {\n @case (ExternalVideoSupportedTypes.VkVideo) {\n {{linkText}}: {{tagData.link}}\n }\n @case (ExternalVideoSupportedTypes.Youtube) {\n {{linkText}}: {{tagData.link}}\n }\n }\n </div>\n <div style=\"height: 10px;\"></div>\n <croco-html-xml-tag-external-video [tagData]=\"tagData\"></croco-html-xml-tag-external-video>\n </div>\n}\n\n@if (!tag.presentOrEdit) {\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\n {{linkText}}\n </mat-label>\n <input matInput placeholder=\"{{linkText}}\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.link\"\n (ngModelChange)=\"linkChanged()\">\n </mat-form-field>\n </div>\n}\n", styles: [".video-player{margin:0 auto;max-width:640px;width:100%;height:360px}@media screen and (max-width: 760px){.video-player{height:300px}}@media screen and (max-width: 540px){.video-player{height:250px}}@media screen and (max-width: 450px){.video-player{height:200px}}@media screen and (max-width: 380px){.video-player{height:180px}}\n"] }]
|
|
47
50
|
}], propDecorators: { tag: [{
|
|
48
51
|
type: Input
|
|
49
52
|
}], onTagUpdated: [{
|
|
50
53
|
type: Output
|
|
51
54
|
}] } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtdmlkZW8tYmxvY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMvZWRpdG9yL2V4dGVybmFsLXZpZGVvLWJsb2NrL2V4dGVybmFsLXZpZGVvLWJsb2NrLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9leHRlcm5hbC12aWRlby1ibG9jay9leHRlcm5hbC12aWRlby1ibG9jay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFFTCwyQkFBMkIsR0FDNUIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7OztBQWN6RCxNQUFNLE9BQU8sMkJBQTJCO0lBWnhDO1FBa0JFLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztRQUU1QixnQ0FBMkIsR0FBRywyQkFBMkIsQ0FBQztRQUU3RSxZQUFPLEdBQXlCO1lBQzlCLElBQUksRUFBRSxFQUFFO1lBQ1IsSUFBSSxFQUFFLDJCQUEyQixDQUFDLE9BQU87U0FDMUMsQ0FBQztRQUVGLGFBQVEsR0FBRyxFQUFFLENBQUM7S0F1QmY7SUFyQkMsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBbUMsQ0FBQyxJQUFJLENBQUM7UUFDdkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFtQyxDQUFDLElBQUksQ0FBQztRQUV2RSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO0lBQzFILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtRQUMzQixDQUFDO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUNyQyxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sTUFBTSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7UUFDL0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN4RSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUMxQixDQUFDOzhHQXJDVSwyQkFBMkI7a0dBQTNCLDJCQUEyQiw4SkN2QnhDLDIwQkE4QkEsbVlEYkksa0JBQWtCLDBTQUNsQixjQUFjLDBXQUNkLFdBQVcsK21CQUNYLDRCQUE0Qjs7MkZBR25CLDJCQUEyQjtrQkFadkMsU0FBUzsrQkFDRSxpQ0FBaUMsY0FHL0IsSUFBSSxXQUNQO3dCQUNQLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLDRCQUE0QjtxQkFDN0I7OEJBS0QsR0FBRztzQkFERixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEV4dGVybmFsVmlkZW9UYWdEYXRhLFxuICBFeHRlcm5hbFZpZGVvU3VwcG9ydGVkVHlwZXMsXG59IGZyb20gJy4uLy4uLy4uL2V4dGVuc2lvbnMnO1xuaW1wb3J0IHsgSHRtbEJvZHlUYWcgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvbW9kZWxzJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBYbWxUYWdFeHRlcm5hbFZpZGVvQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4veG1sLXRhZ3MnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nyb2NvLWh0bWwtZXh0ZXJuYWwtdmlkZW8tYmxvY2snLFxuICB0ZW1wbGF0ZVVybDogJy4vZXh0ZXJuYWwtdmlkZW8tYmxvY2suY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9leHRlcm5hbC12aWRlby1ibG9jay5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFhtbFRhZ0V4dGVybmFsVmlkZW9Db21wb25lbnQsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRXh0ZXJuYWxWaWRlb0Jsb2NrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICB0YWc6IEh0bWxCb2R5VGFnO1xuXG4gIEBPdXRwdXQoKVxuICBvblRhZ1VwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEh0bWxCb2R5VGFnPigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBFeHRlcm5hbFZpZGVvU3VwcG9ydGVkVHlwZXMgPSBFeHRlcm5hbFZpZGVvU3VwcG9ydGVkVHlwZXM7XG5cbiAgdGFnRGF0YTogRXh0ZXJuYWxWaWRlb1RhZ0RhdGEgPSB7XG4gICAgbGluazogJycsXG4gICAgdHlwZTogRXh0ZXJuYWxWaWRlb1N1cHBvcnRlZFR5cGVzLllvdXR1YmVcbiAgfTtcblxuICBsaW5rVGV4dCA9ICcnO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudGFnRGF0YS5saW5rID0gKHRoaXMudGFnLmF0dHJpYnV0ZXMgYXMgRXh0ZXJuYWxWaWRlb1RhZ0RhdGEpLmxpbms7XG4gICAgdGhpcy50YWdEYXRhLnR5cGUgPSAodGhpcy50YWcuYXR0cmlidXRlcyBhcyBFeHRlcm5hbFZpZGVvVGFnRGF0YSkudHlwZTtcblxuICAgIHRoaXMubGlua1RleHQgPSB0aGlzLnRhZ0RhdGEudHlwZSA9PT0gRXh0ZXJuYWxWaWRlb1N1cHBvcnRlZFR5cGVzLlZrVmlkZW8gPyAn0KHRgdGL0LvQutCwINC90LAgVmsgVmlkZW8nIDogJyDQodGB0YvQu9C60LAg0L3QsCBZb3VUdWJlJztcbiAgfVxuXG4gIGxpbmtDaGFuZ2VkKCl7XG4gICAgaWYodGhpcy50YWdEYXRhLmxpbmsuaW5jbHVkZXMoJ2lmcmFtZScpKSB7XG4gICAgICB0aGlzLmNyZWF0ZUxpbmtCeUlGcmFtZSgpXG4gICAgfVxuICAgIHRoaXMudGFnLmF0dHJpYnV0ZXMgPSB0aGlzLnRhZ0RhdGE7XG4gIH1cblxuICBjcmVhdGVMaW5rQnlJRnJhbWUoKSB7XG4gICAgY29uc3QgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuICAgIGNvbnN0IGRvY3VtZW50ID0gcGFyc2VyLnBhcnNlRnJvbVN0cmluZyh0aGlzLnRhZ0RhdGEubGluaywgXCJ0ZXh0L2h0bWxcIik7XG4gICAgY29uc3QgZWxlbSA9IGRvY3VtZW50LmJvZHkuY2hpbGRyZW5bMF07XG4gICAgY29uc3Qgc3JjID0gZWxlbS5nZXRBdHRyaWJ1dGUoXCJzcmNcIik7XG4gICAgdGhpcy50YWdEYXRhLmxpbmsgPSBzcmM7XG4gIH1cbn1cbiIsIkBpZiAodGFnLnByZXNlbnRPckVkaXQpIHtcbiAgPGRpdj5cbiAgICA8ZGl2PlxuICAgICAgQHN3aXRjaCAodGFnRGF0YS50eXBlKSB7XG4gICAgICAgIEBjYXNlIChFeHRlcm5hbFZpZGVvU3VwcG9ydGVkVHlwZXMuVmtWaWRlbykge1xuICAgICAgICAgIHt7bGlua1RleHR9fToge3t0YWdEYXRhLmxpbmt9fVxuICAgICAgICB9XG4gICAgICAgIEBjYXNlIChFeHRlcm5hbFZpZGVvU3VwcG9ydGVkVHlwZXMuWW91dHViZSkge1xuICAgICAgICAgIHt7bGlua1RleHR9fToge3t0YWdEYXRhLmxpbmt9fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBzdHlsZT1cImhlaWdodDogMTBweDtcIj48L2Rpdj5cbiAgICA8Y3JvY28taHRtbC14bWwtdGFnLWV4dGVybmFsLXZpZGVvIFt0YWdEYXRhXT1cInRhZ0RhdGFcIj48L2Nyb2NvLWh0bWwteG1sLXRhZy1leHRlcm5hbC12aWRlbz5cbiAgPC9kaXY+XG59XG5cbkBpZiAoIXRhZy5wcmVzZW50T3JFZGl0KSB7XG4gICAgPGRpdj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAge3tsaW5rVGV4dH19XG4gICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJ7e2xpbmtUZXh0fX1cIlxuICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJ0YWdEYXRhLmxpbmtcIlxuICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwibGlua0NoYW5nZWQoKVwiPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG59XG4iXX0=
|
|
@@ -8,7 +8,7 @@ export class UploadFilesBtnComponent {
|
|
|
8
8
|
this.extAccepts = "*/*";
|
|
9
9
|
this.isMultiple = true;
|
|
10
10
|
this.btnText = "Загрузить файлы";
|
|
11
|
-
this.createLocalCopiesNow =
|
|
11
|
+
this.createLocalCopiesNow = true;
|
|
12
12
|
this.hidden = false;
|
|
13
13
|
this.postFilesStarted = new EventEmitter();
|
|
14
14
|
this.onFilesUploaded = new EventEmitter();
|
|
@@ -51,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
51
51
|
}], onFilesUploaded: [{
|
|
52
52
|
type: Output
|
|
53
53
|
}] } });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGVzLWJ0bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy91cGxvYWQtZmlsZXMtYnRuL3VwbG9hZC1maWxlcy1idG4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMvdXBsb2FkLWZpbGVzLWJ0bi91cGxvYWQtZmlsZXMtYnRuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBY3JELE1BQU0sT0FBTyx1QkFBdUI7SUEwQmxDLFlBQW9CLGtCQUFxQztRQUFyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBcEJ6RCxlQUFVLEdBQVcsS0FBSyxDQUFDO1FBRzNCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFHbEIsWUFBTyxHQUFXLGlCQUFpQixDQUFDO1FBR3BDLHlCQUFvQixHQUFHLElBQUksQ0FBQztRQUc1QixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBR2YscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFHMUQsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBK0IsQ0FBQztJQUVMLENBQUM7SUFFOUQsZUFBZSxDQUFDLEtBQWU7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztZQUN6QixVQUFVLEVBQUUsS0FBSyxDQUFDLE1BQU07WUFDeEIsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtTQUNoRCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs4R0E1Q1UsdUJBQXVCO2tHQUF2Qix1QkFBdUIsMGFDaEJwQyxnUkFDK0ksMEREYW5JLFNBQVM7OzJGQUVSLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDRSw0QkFBNEIsY0FHMUIsSUFBSSxXQUNQLENBQUMsU0FBUyxDQUFDO3NGQUtaLFNBQVM7c0JBRGhCLFNBQVM7dUJBQUMsWUFBWTtnQkFJdkIsVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sb0JBQW9CO3NCQURuQixLQUFLO2dCQUlOLE1BQU07c0JBREwsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsTUFBTTtnQkFJUCxlQUFlO3NCQURkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VBcGlSZXNwb25zZVdpdGhGaWxlc0lkcywgRmlsZVVwbG9hZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maWxlLXVwbG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdEJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVBvc3RpbmdTdGFydGVkIHtcbiAgZmlsZXNDb3VudDogbnVtYmVyO1xuICBjcmVhdGVMb2NhbENvcGllc05vdzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3JvY28tYXBwLXVwbG9hZC1maWxlcy1idG4nLFxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkLWZpbGVzLWJ0bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VwbG9hZC1maWxlcy1idG4uY29tcG9uZW50LmNzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTWF0QnV0dG9uXVxufSlcbmV4cG9ydCBjbGFzcyBVcGxvYWRGaWxlc0J0bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQFZpZXdDaGlsZCgnZmlsZXNJbnB1dCcpXG4gIHByaXZhdGUgZmlsZUlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBASW5wdXQoKVxuICBleHRBY2NlcHRzOiBzdHJpbmcgPSBcIiovKlwiO1xuXG4gIEBJbnB1dCgpXG4gIGlzTXVsdGlwbGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIGJ0blRleHQ6IHN0cmluZyA9IFwi0JfQsNCz0YDRg9C30LjRgtGMINGE0LDQudC70YtcIjtcblxuICBASW5wdXQoKVxuICBjcmVhdGVMb2NhbENvcGllc05vdyA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgaGlkZGVuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIHBvc3RGaWxlc1N0YXJ0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVQb3N0aW5nU3RhcnRlZD4oKTtcblxuICBAT3V0cHV0KClcbiAgb25GaWxlc1VwbG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxCYXNlQXBpUmVzcG9uc2VXaXRoRmlsZXNJZHM+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZmlsZVVwbG9hZFNlcnZpY2U6IEZpbGVVcGxvYWRTZXJ2aWNlKSB7IH1cblxuICBoYW5kbGVGaWxlSW5wdXQoZmlsZXM6IEZpbGVMaXN0KSB7XG4gICAgdGhpcy5wb3N0RmlsZXNTdGFydGVkLmVtaXQoe1xuICAgICAgZmlsZXNDb3VudDogZmlsZXMubGVuZ3RoLFxuICAgICAgY3JlYXRlTG9jYWxDb3BpZXNOb3c6IHRoaXMuY3JlYXRlTG9jYWxDb3BpZXNOb3dcbiAgICB9KTtcblxuICAgIHRoaXMuX2ZpbGVVcGxvYWRTZXJ2aWNlLnBvc3RGaWxlcyhmaWxlcywgdGhpcy5jcmVhdGVMb2NhbENvcGllc05vdykuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy5vbkZpbGVzVXBsb2FkZWQuZW1pdChkYXRhKTtcbiAgICB9KVxuICB9XG5cbiAgY2xpY2tGaWxlSW5wdXQoKSB7XG4gICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cbn1cbiIsIjxidXR0b24gW2hpZGRlbl09XCJoaWRkZW5cIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiZmlsZXNJbnB1dC5jbGljaygpXCI+e3tidG5UZXh0fX08L2J1dHRvbj5cbjxpbnB1dCBbaGlkZGVuXT1cInRydWVcIiBbYWNjZXB0XT1cImV4dEFjY2VwdHNcIiBbbXVsdGlwbGVdPVwiaXNNdWx0aXBsZVwiIHR5cGU9XCJmaWxlXCIgI2ZpbGVzSW5wdXQgKGNoYW5nZSk9XCJoYW5kbGVGaWxlSW5wdXQoJGV2ZW50LnRhcmdldC5maWxlcylcIiAvPiJdfQ==
|
|
@@ -101,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
101
101
|
]
|
|
102
102
|
}]
|
|
103
103
|
}] });
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JvY28taHRtbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY3JvY28taHRtbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLE1BQU0sR0FBRyxDQUFDO0FBQzNELE9BQU8sRUFDSCxzQkFBc0IsRUFDekIsTUFBTSxvRkFBb0YsQ0FBQztBQUM1RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQ0gsMkJBQTJCLEVBQzlCLE1BQU0sOEZBQThGLENBQUM7QUFDdEcsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0scUZBQXFGLENBQUM7QUFDdkksT0FBTyxFQUNILGlDQUFpQyxFQUNwQyxNQUFNLDJGQUEyRixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CbkcsTUFBTSxPQUFPLGVBQWU7OEdBQWYsZUFBZTsrR0FBZixlQUFlLFlBYnBCLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGNBQWMsaW9CQUVkLG9CQUFvQjtZQUNwQixzQkFBc0I7WUFDdEIsMkJBQTJCO1lBQzNCLGdDQUFnQztZQUNoQyxpQ0FBaUM7K0dBSTVCLGVBQWUsWUFicEIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsY0FBYyxFQUNYLGVBQWUsRUFDbEIsb0JBQW9CO1lBR3BCLGdDQUFnQztZQUNoQyxpQ0FBaUM7OzJGQUk1QixlQUFlO2tCQWxCM0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsR0FBRyxxQkFBcUI7cUJBQzNCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLEdBQUcsZUFBZTt3QkFDbEIsb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLDJCQUEyQjt3QkFDM0IsZ0NBQWdDO3dCQUNoQyxpQ0FBaUM7d0JBQ2pDLEdBQUcscUJBQXFCO3FCQUMzQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBOZ1NlbGVjdE1vZHVsZSB9IGZyb20gXCJAbmctc2VsZWN0L25nLXNlbGVjdFwiO1xuaW1wb3J0IHsgQ3JvY29IdG1sRGVjbGFyYXRpb25zLCBNYXRlcmlhbE1vZHVsZXMgfSBmcm9tIFwiLlwiO1xuaW1wb3J0IHtcbiAgICBWa1ZpZGVvUGxheWVyQ29tcG9uZW50XG59IGZyb20gXCIuL2NvbXBvbmVudHMvZWRpdG9yL2V4dGVybmFsLXZpZGVvLWJsb2NrL3ZrLXZpZGVvLXBsYXllci92ay12aWRlby1wbGF5ZXIuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBFcnJvckJhbm5lckNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZXJyb3ItYmFubmVyL2Vycm9yLWJhbm5lci5jb21wb25lbnRcIjtcbmltcG9ydCB7XG4gICAgWW91dHViZVZpZGVvUGxheWVyQ29tcG9uZW50XG59IGZyb20gXCIuL2NvbXBvbmVudHMvZWRpdG9yL2V4dGVybmFsLXZpZGVvLWJsb2NrL3lvdXR1YmUtdmlkZW8tcGxheWVyL3lvdXR1YmUtdmlkZW8tcGxheWVyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRG93bmxvYWRGaWxlQnV0dG9uQmxvY2tDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2VkaXRvci9kb3dubG9hZC1maWxlLWJ1dHRvbi1ibG9jay9kb3dubG9hZC1maWxlLWJ1dHRvbi1ibG9jay5jb21wb25lbnRcIjtcbmltcG9ydCB7XG4gICAgWG1sVGFnRG93bmxvYWRGaWxlQnV0dG9uQ29tcG9uZW50XG59IGZyb20gXCIuL2NvbXBvbmVudHMveG1sLXRhZ3MveG1sLXRhZy1kb3dubG9hZC1maWxlLWJ1dHRvbi94bWwtdGFnLWRvd25sb2FkLWZpbGUtYnV0dG9uLmNvbXBvbmVudFwiO1xuXG5ATmdNb2R1bGUoe1xuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgLi4uQ3JvY29IdG1sRGVjbGFyYXRpb25zLFxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBOZ1NlbGVjdE1vZHVsZSxcbiAgICAgICAgLi4uTWF0ZXJpYWxNb2R1bGVzLFxuICAgICAgICBFcnJvckJhbm5lckNvbXBvbmVudCxcbiAgICAgICAgVmtWaWRlb1BsYXllckNvbXBvbmVudCxcbiAgICAgICAgWW91dHViZVZpZGVvUGxheWVyQ29tcG9uZW50LFxuICAgICAgICBEb3dubG9hZEZpbGVCdXR0b25CbG9ja0NvbXBvbmVudCxcbiAgICAgICAgWG1sVGFnRG93bmxvYWRGaWxlQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICAuLi5Dcm9jb0h0bWxEZWNsYXJhdGlvbnNcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIENyb2NvSHRtbE1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import { HttpEventType, HttpResponse } from '@angular/common/http';
|
|
2
1
|
import { Inject, Injectable } from '@angular/core';
|
|
3
|
-
import { throwError } from 'rxjs';
|
|
4
|
-
import { filter, switchMap } from 'rxjs/operators';
|
|
5
2
|
import * as i0 from "@angular/core";
|
|
6
3
|
import * as i1 from "@angular/common/http";
|
|
7
4
|
export class FileUploadService {
|
|
@@ -9,11 +6,6 @@ export class FileUploadService {
|
|
|
9
6
|
this._httpClient = _httpClient;
|
|
10
7
|
this.baseUrl = baseUrl;
|
|
11
8
|
}
|
|
12
|
-
postFile(file, createLocalCopiesNow = false, withProgress = false) {
|
|
13
|
-
const formData = new FormData();
|
|
14
|
-
formData.append(`fileKey1`, file, file.name);
|
|
15
|
-
return this.postFilesInner(formData, createLocalCopiesNow, withProgress);
|
|
16
|
-
}
|
|
17
9
|
postFiles(files, createLocalCopiesNow = false) {
|
|
18
10
|
const formData = new FormData();
|
|
19
11
|
for (let i = 0; i < files.length; i++) {
|
|
@@ -23,40 +15,11 @@ export class FileUploadService {
|
|
|
23
15
|
return this.postFilesInner(formData, createLocalCopiesNow);
|
|
24
16
|
}
|
|
25
17
|
postFilesInner(formData, createLocalCopiesNow = false, withProgress = false) {
|
|
26
|
-
let endpoint =
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
18
|
+
let endpoint = createLocalCopiesNow
|
|
19
|
+
? this.baseUrl + 'api/files/upload/now/with-handlers'
|
|
20
|
+
: this.baseUrl + 'Api/Files/UploadFiles';
|
|
30
21
|
return this._httpClient.post(endpoint, formData, withProgress ? { reportProgress: true, observe: 'events' } : undefined);
|
|
31
22
|
}
|
|
32
|
-
uploadFileWithProgress(file, createLocalCopiesNow = false) {
|
|
33
|
-
let uploadingLoaded;
|
|
34
|
-
let uploadingTotal;
|
|
35
|
-
return this.postFile(file, createLocalCopiesNow, true).pipe(filter((event) => {
|
|
36
|
-
return event.type === HttpEventType.UploadProgress || event instanceof HttpResponse;
|
|
37
|
-
}), switchMap((event) => {
|
|
38
|
-
if (event.type === HttpEventType.UploadProgress) {
|
|
39
|
-
uploadingLoaded = event.loaded;
|
|
40
|
-
uploadingTotal = event.total;
|
|
41
|
-
return [{ loading: true, uploadingLoaded, uploadingTotal }];
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
if (event.body.responseObject?.[0]) {
|
|
45
|
-
return [
|
|
46
|
-
{
|
|
47
|
-
loading: false,
|
|
48
|
-
fileId: event.body.responseObject[0],
|
|
49
|
-
uploadingLoaded,
|
|
50
|
-
uploadingTotal,
|
|
51
|
-
},
|
|
52
|
-
];
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
return throwError(() => new Error(event.body.message));
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}));
|
|
59
|
-
}
|
|
60
23
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FileUploadService, deps: [{ token: i1.HttpClient }, { token: 'BASE_URL' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
61
24
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FileUploadService, providedIn: 'root' }); }
|
|
62
25
|
}
|
|
@@ -67,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
67
30
|
type: Inject,
|
|
68
31
|
args: ['BASE_URL']
|
|
69
32
|
}] }] });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9zZXJ2aWNlcy9maWxlLXVwbG9hZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUF3Qm5ELE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFDVSxXQUF1QixFQUNILE9BQWU7UUFEbkMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDSCxZQUFPLEdBQVAsT0FBTyxDQUFRO0lBQzFDLENBQUM7SUFFRyxTQUFTLENBQUMsS0FBZSxFQUFFLG9CQUFvQixHQUFHLEtBQUs7UUFDNUQsTUFBTSxRQUFRLEdBQWEsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUUxQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3RDLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLFlBQW9CLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNFLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFDN0QsQ0FBQztJQWtCTSxjQUFjLENBQ25CLFFBQWtCLEVBQ2xCLG9CQUFvQixHQUFHLEtBQUssRUFDNUIsWUFBWSxHQUFHLEtBQUs7UUFFcEIsSUFBSSxRQUFRLEdBQUcsb0JBQW9CO1lBQ2pDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLG9DQUFvQztZQUNyRCxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQztRQUUzQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUMxQixRQUFRLEVBQ1IsUUFBUSxFQUNSLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUN2RSxDQUFDO0lBQ0osQ0FBQzs4R0EvQ1UsaUJBQWlCLDRDQUdsQixVQUFVO2tIQUhULGlCQUFpQixjQURKLE1BQU07OzJGQUNuQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFJN0IsTUFBTTsyQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUFwaVJlc3BvbnNlIHtcbiAgaXNTdWNjZWVkZWQ6IGJvb2xlYW47XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmljQmFzZUFwaVJlc3BvbnNlPFQ+IGV4dGVuZHMgQmFzZUFwaVJlc3BvbnNlIHtcbiAgcmVzcG9uc2VPYmplY3Q6IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUFwaVJlc3BvbnNlV2l0aEZpbGVzSWRzIGV4dGVuZHMgQmFzZUFwaVJlc3BvbnNlIHtcbiAgcmVzcG9uc2VPYmplY3Q6IG51bWJlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZEZpbGVXaXRoUHJvZ3Jlc3NFdmVudCB7XG4gIGxvYWRpbmc6IGJvb2xlYW47XG4gIHJlc3BvbnNlPzogQmFzZUFwaVJlc3BvbnNlV2l0aEZpbGVzSWRzO1xuICB1cGxvYWRpbmdMb2FkZWQ6IG51bWJlcjtcbiAgdXBsb2FkaW5nVG90YWw6IG51bWJlcjtcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2h0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgQEluamVjdCgnQkFTRV9VUkwnKSBwcml2YXRlIGJhc2VVcmw6IHN0cmluZyxcbiAgKSB7fVxuXG4gIHB1YmxpYyBwb3N0RmlsZXMoZmlsZXM6IEZpbGVMaXN0LCBjcmVhdGVMb2NhbENvcGllc05vdyA9IGZhbHNlKTogT2JzZXJ2YWJsZTxCYXNlQXBpUmVzcG9uc2VXaXRoRmlsZXNJZHM+IHtcbiAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBmaWxlVG9VcGxvYWQgPSBmaWxlcy5pdGVtKGkpO1xuICAgICAgZm9ybURhdGEuYXBwZW5kKGBmaWxlS2V5JHtpfWAsIGZpbGVUb1VwbG9hZCBhcyBCbG9iLCBmaWxlVG9VcGxvYWQ/Lm5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnBvc3RGaWxlc0lubmVyKGZvcm1EYXRhLCBjcmVhdGVMb2NhbENvcGllc05vdyk7XG4gIH1cblxuICBwdWJsaWMgcG9zdEZpbGVzSW5uZXIoXG4gICAgZm9ybURhdGE6IEZvcm1EYXRhLFxuICAgIGNyZWF0ZUxvY2FsQ29waWVzTm93OiBib29sZWFuLFxuICAgIHdpdGhQcm9ncmVzczogdHJ1ZSxcbiAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8QmFzZUFwaVJlc3BvbnNlV2l0aEZpbGVzSWRzPj47XG5cbiAgcHVibGljIHBvc3RGaWxlc0lubmVyKFxuICAgIGZvcm1EYXRhOiBGb3JtRGF0YSxcbiAgICBjcmVhdGVMb2NhbENvcGllc05vdz86IGJvb2xlYW4sXG4gICAgd2l0aFByb2dyZXNzPzogZmFsc2UsXG4gICk6IE9ic2VydmFibGU8QmFzZUFwaVJlc3BvbnNlV2l0aEZpbGVzSWRzPjtcbiAgcHVibGljIHBvc3RGaWxlc0lubmVyKFxuICAgIGZvcm1EYXRhOiBGb3JtRGF0YSxcbiAgICBjcmVhdGVMb2NhbENvcGllc05vdzogYm9vbGVhbixcbiAgICB3aXRoUHJvZ3Jlc3M6IGJvb2xlYW4sXG4gICk6IE9ic2VydmFibGU8QmFzZUFwaVJlc3BvbnNlV2l0aEZpbGVzSWRzPiB8IE9ic2VydmFibGU8SHR0cEV2ZW50PEJhc2VBcGlSZXNwb25zZVdpdGhGaWxlc0lkcz4+O1xuICBwdWJsaWMgcG9zdEZpbGVzSW5uZXIoXG4gICAgZm9ybURhdGE6IEZvcm1EYXRhLFxuICAgIGNyZWF0ZUxvY2FsQ29waWVzTm93ID0gZmFsc2UsXG4gICAgd2l0aFByb2dyZXNzID0gZmFsc2UsXG4gICk6IE9ic2VydmFibGU8QmFzZUFwaVJlc3BvbnNlV2l0aEZpbGVzSWRzPiB8IE9ic2VydmFibGU8SHR0cEV2ZW50PEJhc2VBcGlSZXNwb25zZVdpdGhGaWxlc0lkcz4+IHtcbiAgICBsZXQgZW5kcG9pbnQgPSBjcmVhdGVMb2NhbENvcGllc05vd1xuICAgICAgPyB0aGlzLmJhc2VVcmwgKyAnYXBpL2ZpbGVzL3VwbG9hZC9ub3cvd2l0aC1oYW5kbGVycydcbiAgICAgIDogdGhpcy5iYXNlVXJsICsgJ0FwaS9GaWxlcy9VcGxvYWRGaWxlcyc7XG5cbiAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudC5wb3N0PEJhc2VBcGlSZXNwb25zZVdpdGhGaWxlc0lkcz4oXG4gICAgICBlbmRwb2ludCxcbiAgICAgIGZvcm1EYXRhLFxuICAgICAgd2l0aFByb2dyZXNzID8geyByZXBvcnRQcm9ncmVzczogdHJ1ZSwgb2JzZXJ2ZTogJ2V2ZW50cycgfSA6IHVuZGVmaW5lZCxcbiAgICApO1xuICB9XG59XG4iXX0=
|
package/fesm2022/croco-html.mjs
CHANGED
|
@@ -3,24 +3,21 @@ import { Injectable, Inject, EventEmitter, Component, ViewChild, Input, Output,
|
|
|
3
3
|
import * as i2 from '@angular/material/button';
|
|
4
4
|
import { MatButton, MatButtonModule, MatIconButton } from '@angular/material/button';
|
|
5
5
|
import * as i1 from '@angular/common/http';
|
|
6
|
-
import { HttpEventType, HttpResponse } from '@angular/common/http';
|
|
7
|
-
import { throwError } from 'rxjs';
|
|
8
|
-
import { filter, switchMap } from 'rxjs/operators';
|
|
9
6
|
import * as i1$3 from '@angular/material/form-field';
|
|
10
7
|
import { MatFormFieldModule, MatFormField, MatLabel } from '@angular/material/form-field';
|
|
11
8
|
import * as i1$4 from '@angular/forms';
|
|
12
9
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
13
10
|
import * as i1$1 from '@angular/platform-browser';
|
|
14
|
-
import * as i2$
|
|
11
|
+
import * as i2$4 from '@angular/material/table';
|
|
15
12
|
import { MatTable, MatColumnDef, MatHeaderCellDef, MatHeaderCell, MatCellDef, MatCell, MatHeaderRowDef, MatHeaderRow, MatRowDef, MatRow, MatTableModule } from '@angular/material/table';
|
|
16
13
|
import * as i27 from '@angular/material/icon';
|
|
17
14
|
import { MatIcon, MatIconModule } from '@angular/material/icon';
|
|
18
15
|
import * as i1$2 from '@angular/material/card';
|
|
19
16
|
import { MatCardModule, MatCard, MatCardContent } from '@angular/material/card';
|
|
17
|
+
import * as i2$1 from '@angular/material/input';
|
|
18
|
+
import { MatInputModule, MatInput } from '@angular/material/input';
|
|
20
19
|
import { CdkTextareaAutosize } from '@angular/cdk/text-field';
|
|
21
|
-
import * as
|
|
22
|
-
import { MatInput, MatInputModule } from '@angular/material/input';
|
|
23
|
-
import * as i2$1 from '@ng-select/ng-select';
|
|
20
|
+
import * as i2$2 from '@ng-select/ng-select';
|
|
24
21
|
import { NgSelectModule } from '@ng-select/ng-select';
|
|
25
22
|
import * as i29 from '@angular/material/button-toggle';
|
|
26
23
|
import { MatButtonToggleGroup, MatButtonToggle, MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
@@ -35,7 +32,7 @@ import { MatProgressSpinner, MatProgressSpinnerModule } from '@angular/material/
|
|
|
35
32
|
import * as i8 from '@angular/material/tabs';
|
|
36
33
|
import { MatTabGroup, MatTab, MatTabsModule } from '@angular/material/tabs';
|
|
37
34
|
import * as i1$5 from 'ngx-clipboard';
|
|
38
|
-
import * as i2$
|
|
35
|
+
import * as i2$3 from '@angular/material/snack-bar';
|
|
39
36
|
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
40
37
|
import { CommonModule } from '@angular/common';
|
|
41
38
|
import * as i12 from '@angular/material/tooltip';
|
|
@@ -108,11 +105,6 @@ class FileUploadService {
|
|
|
108
105
|
this._httpClient = _httpClient;
|
|
109
106
|
this.baseUrl = baseUrl;
|
|
110
107
|
}
|
|
111
|
-
postFile(file, createLocalCopiesNow = false, withProgress = false) {
|
|
112
|
-
const formData = new FormData();
|
|
113
|
-
formData.append(`fileKey1`, file, file.name);
|
|
114
|
-
return this.postFilesInner(formData, createLocalCopiesNow, withProgress);
|
|
115
|
-
}
|
|
116
108
|
postFiles(files, createLocalCopiesNow = false) {
|
|
117
109
|
const formData = new FormData();
|
|
118
110
|
for (let i = 0; i < files.length; i++) {
|
|
@@ -122,40 +114,11 @@ class FileUploadService {
|
|
|
122
114
|
return this.postFilesInner(formData, createLocalCopiesNow);
|
|
123
115
|
}
|
|
124
116
|
postFilesInner(formData, createLocalCopiesNow = false, withProgress = false) {
|
|
125
|
-
let endpoint =
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
}
|
|
117
|
+
let endpoint = createLocalCopiesNow
|
|
118
|
+
? this.baseUrl + 'api/files/upload/now/with-handlers'
|
|
119
|
+
: this.baseUrl + 'Api/Files/UploadFiles';
|
|
129
120
|
return this._httpClient.post(endpoint, formData, withProgress ? { reportProgress: true, observe: 'events' } : undefined);
|
|
130
121
|
}
|
|
131
|
-
uploadFileWithProgress(file, createLocalCopiesNow = false) {
|
|
132
|
-
let uploadingLoaded;
|
|
133
|
-
let uploadingTotal;
|
|
134
|
-
return this.postFile(file, createLocalCopiesNow, true).pipe(filter((event) => {
|
|
135
|
-
return event.type === HttpEventType.UploadProgress || event instanceof HttpResponse;
|
|
136
|
-
}), switchMap((event) => {
|
|
137
|
-
if (event.type === HttpEventType.UploadProgress) {
|
|
138
|
-
uploadingLoaded = event.loaded;
|
|
139
|
-
uploadingTotal = event.total;
|
|
140
|
-
return [{ loading: true, uploadingLoaded, uploadingTotal }];
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
if (event.body.responseObject?.[0]) {
|
|
144
|
-
return [
|
|
145
|
-
{
|
|
146
|
-
loading: false,
|
|
147
|
-
fileId: event.body.responseObject[0],
|
|
148
|
-
uploadingLoaded,
|
|
149
|
-
uploadingTotal,
|
|
150
|
-
},
|
|
151
|
-
];
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
return throwError(() => new Error(event.body.message));
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}));
|
|
158
|
-
}
|
|
159
122
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FileUploadService, deps: [{ token: i1.HttpClient }, { token: 'BASE_URL' }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
160
123
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FileUploadService, providedIn: 'root' }); }
|
|
161
124
|
}
|
|
@@ -173,7 +136,7 @@ class UploadFilesBtnComponent {
|
|
|
173
136
|
this.extAccepts = "*/*";
|
|
174
137
|
this.isMultiple = true;
|
|
175
138
|
this.btnText = "Загрузить файлы";
|
|
176
|
-
this.createLocalCopiesNow =
|
|
139
|
+
this.createLocalCopiesNow = true;
|
|
177
140
|
this.hidden = false;
|
|
178
141
|
this.postFilesStarted = new EventEmitter();
|
|
179
142
|
this.onFilesUploaded = new EventEmitter();
|
|
@@ -1283,14 +1246,15 @@ class ExternalVideoBlockComponent {
|
|
|
1283
1246
|
this.tagData.link = src;
|
|
1284
1247
|
}
|
|
1285
1248
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ExternalVideoBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1286
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: ExternalVideoBlockComponent, isStandalone: true, selector: "croco-html-external-video-block", inputs: { tag: "tag" }, outputs: { onTagUpdated: "onTagUpdated" }, ngImport: i0, template: "@if (tag.presentOrEdit) {\n <div>\n <div>\n @switch (tagData.type) {\n @case (ExternalVideoSupportedTypes.VkVideo) {\n {{linkText}}: {{tagData.link}}\n }\n @case (ExternalVideoSupportedTypes.Youtube) {\n {{linkText}}: {{tagData.link}}\n }\n }\n </div>\n <div style=\"height: 10px;\"></div>\n <croco-html-xml-tag-external-video [tagData]=\"tagData\"></croco-html-xml-tag-external-video>\n </div>\n}\n\n@if (!tag.presentOrEdit) {\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\n {{linkText}}\n </mat-label>\n <input matInput placeholder=\"{{linkText}}\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.link\"\n (ngModelChange)=\"linkChanged()\">\n </mat-form-field>\n </div>\n}\n", styles: [".video-player{margin:0 auto;max-width:640px;width:100%;height:360px}@media screen and (max-width: 760px){.video-player{height:300px}}@media screen and (max-width: 540px){.video-player{height:250px}}@media screen and (max-width: 450px){.video-player{height:200px}}@media screen and (max-width: 380px){.video-player{height:180px}}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$3.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XmlTagExternalVideoComponent, selector: "croco-html-xml-tag-external-video", inputs: ["data", "tagData"] }] }); }
|
|
1249
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: ExternalVideoBlockComponent, isStandalone: true, selector: "croco-html-external-video-block", inputs: { tag: "tag" }, outputs: { onTagUpdated: "onTagUpdated" }, ngImport: i0, template: "@if (tag.presentOrEdit) {\n <div>\n <div>\n @switch (tagData.type) {\n @case (ExternalVideoSupportedTypes.VkVideo) {\n {{linkText}}: {{tagData.link}}\n }\n @case (ExternalVideoSupportedTypes.Youtube) {\n {{linkText}}: {{tagData.link}}\n }\n }\n </div>\n <div style=\"height: 10px;\"></div>\n <croco-html-xml-tag-external-video [tagData]=\"tagData\"></croco-html-xml-tag-external-video>\n </div>\n}\n\n@if (!tag.presentOrEdit) {\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\n {{linkText}}\n </mat-label>\n <input matInput placeholder=\"{{linkText}}\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.link\"\n (ngModelChange)=\"linkChanged()\">\n </mat-form-field>\n </div>\n}\n", styles: [".video-player{margin:0 auto;max-width:640px;width:100%;height:360px}@media screen and (max-width: 760px){.video-player{height:300px}}@media screen and (max-width: 540px){.video-player{height:250px}}@media screen and (max-width: 450px){.video-player{height:200px}}@media screen and (max-width: 380px){.video-player{height:180px}}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$3.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XmlTagExternalVideoComponent, selector: "croco-html-xml-tag-external-video", inputs: ["data", "tagData"] }] }); }
|
|
1287
1250
|
}
|
|
1288
1251
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ExternalVideoBlockComponent, decorators: [{
|
|
1289
1252
|
type: Component,
|
|
1290
1253
|
args: [{ selector: 'croco-html-external-video-block', standalone: true, imports: [
|
|
1291
1254
|
MatFormFieldModule,
|
|
1255
|
+
MatInputModule,
|
|
1292
1256
|
FormsModule,
|
|
1293
|
-
XmlTagExternalVideoComponent
|
|
1257
|
+
XmlTagExternalVideoComponent,
|
|
1294
1258
|
], template: "@if (tag.presentOrEdit) {\n <div>\n <div>\n @switch (tagData.type) {\n @case (ExternalVideoSupportedTypes.VkVideo) {\n {{linkText}}: {{tagData.link}}\n }\n @case (ExternalVideoSupportedTypes.Youtube) {\n {{linkText}}: {{tagData.link}}\n }\n }\n </div>\n <div style=\"height: 10px;\"></div>\n <croco-html-xml-tag-external-video [tagData]=\"tagData\"></croco-html-xml-tag-external-video>\n </div>\n}\n\n@if (!tag.presentOrEdit) {\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\n {{linkText}}\n </mat-label>\n <input matInput placeholder=\"{{linkText}}\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.link\"\n (ngModelChange)=\"linkChanged()\">\n </mat-form-field>\n </div>\n}\n", styles: [".video-player{margin:0 auto;max-width:640px;width:100%;height:360px}@media screen and (max-width: 760px){.video-player{height:300px}}@media screen and (max-width: 540px){.video-player{height:250px}}@media screen and (max-width: 450px){.video-player{height:200px}}@media screen and (max-width: 380px){.video-player{height:180px}}\n"] }]
|
|
1295
1259
|
}], propDecorators: { tag: [{
|
|
1296
1260
|
type: Input
|
|
@@ -1392,7 +1356,7 @@ class FileIdSelectComponent {
|
|
|
1392
1356
|
this.loadFiles();
|
|
1393
1357
|
}
|
|
1394
1358
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FileIdSelectComponent, deps: [{ token: FilesQueryService }, { token: CrocoHtmlOptionsToken }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1395
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: FileIdSelectComponent, isStandalone: true, selector: "croco-html-file-id-select", inputs: { labelText: "labelText", fileId: "fileId" }, outputs: { fileId: "fileId", onFileIdChanged: "onFileIdChanged" }, usesOnChanges: true, ngImport: i0, template: "<div>\n <div class=\"form-group\">\n <label for=\"fileName\">{{labelText}}</label>\n <ng-select [(ngModel)]=\"fileId\" (ngModelChange)=\"onModelChanged($event)\"\n [items]=\"files\"\n #select\n bindLabel=\"fileName\"\n (search)=\"onSearchChanged($event)\"\n [loading]=\"loading\"\n [loadingText]=\"'\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u044E \u0444\u0430\u0439\u043B\u044B'\"\n dropdownPosition=\"auto\"\n bindValue=\"fileId\"\n labelForId=\"fileName\"\n placeholder=\"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B\"\n [virtualScroll]=\"true\">\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\n <div>\n <img class=\"mx-auto d-block img-fluid\" [src]=\"getSrc(item.fileId)\"/>\n </div>\n <div>\n <span class=\"h5\">\u0424\u0430\u0439\u043B: </span>\n <span class=\"h5\" [ngOptionHighlight]=\"search\"><b>{{item.fileName}}</b></span>\n </div>\n <div>\n <small>\n <span>\n \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430: <b>{{item.fileId}}</b>\n </span>\n </small>\n </div>\n </ng-template>\n </ng-select>\n </div>\n</div>\n\n<div>\n \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430: {{fileId}}\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i2$
|
|
1359
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: FileIdSelectComponent, isStandalone: true, selector: "croco-html-file-id-select", inputs: { labelText: "labelText", fileId: "fileId" }, outputs: { fileId: "fileId", onFileIdChanged: "onFileIdChanged" }, usesOnChanges: true, ngImport: i0, template: "<div>\n <div class=\"form-group\">\n <label for=\"fileName\">{{labelText}}</label>\n <ng-select [(ngModel)]=\"fileId\" (ngModelChange)=\"onModelChanged($event)\"\n [items]=\"files\"\n #select\n bindLabel=\"fileName\"\n (search)=\"onSearchChanged($event)\"\n [loading]=\"loading\"\n [loadingText]=\"'\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u044E \u0444\u0430\u0439\u043B\u044B'\"\n dropdownPosition=\"auto\"\n bindValue=\"fileId\"\n labelForId=\"fileName\"\n placeholder=\"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B\"\n [virtualScroll]=\"true\">\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\n <div>\n <img class=\"mx-auto d-block img-fluid\" [src]=\"getSrc(item.fileId)\"/>\n </div>\n <div>\n <span class=\"h5\">\u0424\u0430\u0439\u043B: </span>\n <span class=\"h5\" [ngOptionHighlight]=\"search\"><b>{{item.fileName}}</b></span>\n </div>\n <div>\n <small>\n <span>\n \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430: <b>{{item.fileId}}</b>\n </span>\n </small>\n </div>\n </ng-template>\n </ng-select>\n </div>\n</div>\n\n<div>\n \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430: {{fileId}}\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i2$2.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i2$2.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
1396
1360
|
}
|
|
1397
1361
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FileIdSelectComponent, decorators: [{
|
|
1398
1362
|
type: Component,
|
|
@@ -1809,13 +1773,13 @@ class MainEditorComponent {
|
|
|
1809
1773
|
ngOnInit() {
|
|
1810
1774
|
this.visualEditor.recalculateBodyTags();
|
|
1811
1775
|
}
|
|
1812
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: MainEditorComponent, deps: [{ token: i1$5.ClipboardService }, { token: i2$
|
|
1776
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: MainEditorComponent, deps: [{ token: i1$5.ClipboardService }, { token: i2$3.MatSnackBar }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1813
1777
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: MainEditorComponent, isStandalone: true, 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, static: true }], ngImport: i0, template: "<mat-tab-group>\n <mat-tab label=\"\u0412\u0438\u0437\u0443\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\">\n\n <div style=\"height: 20px;\"></div>\n\n <croco-visual-editor #visualEditor\n [useHtmlRaw]=\"useHtmlRaw\"\n [html]=\"html\"\n (onHtmlChanged)=\"onHtmlChangedHandler($event)\"\n (rendered)=\"visualEditorRenderedHandler()\">\n </croco-visual-editor>\n\n <div style=\"height: 20px;\"></div>\n\n </mat-tab>\n\n <mat-tab label=\"\u0420\u0430\u0437\u043C\u0435\u0442\u043A\u0430\">\n <div style=\"height: 10px;\"></div>\n @if (visualEditorRendered) {\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\u0418\u0441\u0445\u043E\u0434\u043D\u044B\u0439 \u043A\u043E\u0434</mat-label>\n <textarea matInput cdkTextareaAutosize #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n placeholder=\"\u0418\u0441\u0445\u043E\u0434\u043D\u044B\u0439 \u043A\u043E\u0434\" [(ngModel)]=\"html\"\n (ngModelChange)=\"textAreaModelChangedHandler()\"></textarea>\n </mat-form-field>\n </div>\n }\n\n <button (click)=\"copyMarkUp()\"\n mat-raised-button color=\"primary\">\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0443\n </button>\n </mat-tab>\n <mat-tab label=\"\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\">\n <mat-card style=\"padding: 2px;\" class=\"mat-card\">\n <mat-card-content>\n <croco-html-xml-tag-view [data]=\"html | topreview\">\n </croco-html-xml-tag-view>\n </mat-card-content>\n </mat-card>\n </mat-tab>\n</mat-tab-group>\n", styles: [".example-list{width:500px;max-width:100%;border:solid 1px #ccc;min-height:60px;display:block;background:#fff;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:#fff;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"], dependencies: [{ kind: "component", type: MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: VisualEditorComponent, selector: "croco-visual-editor", inputs: ["showMarkUp", "useHtmlRaw", "html"], outputs: ["html", "onHtmlChanged", "rendered"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: MatCardContent, selector: "mat-card-content" }, { kind: "component", type: XmlTagViewComponent, selector: "croco-html-xml-tag-view", inputs: ["data"] }, { kind: "pipe", type: ToPreviewPipe, name: "topreview" }] }); }
|
|
1814
1778
|
}
|
|
1815
1779
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: MainEditorComponent, decorators: [{
|
|
1816
1780
|
type: Component,
|
|
1817
1781
|
args: [{ selector: 'croco-html-main-editor', standalone: true, imports: [MatTabGroup, MatTab, VisualEditorComponent, MatFormField, MatLabel, MatInput, CdkTextareaAutosize, FormsModule, MatButton, MatCard, MatCardContent, XmlTagViewComponent, ToPreviewPipe], template: "<mat-tab-group>\n <mat-tab label=\"\u0412\u0438\u0437\u0443\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\">\n\n <div style=\"height: 20px;\"></div>\n\n <croco-visual-editor #visualEditor\n [useHtmlRaw]=\"useHtmlRaw\"\n [html]=\"html\"\n (onHtmlChanged)=\"onHtmlChangedHandler($event)\"\n (rendered)=\"visualEditorRenderedHandler()\">\n </croco-visual-editor>\n\n <div style=\"height: 20px;\"></div>\n\n </mat-tab>\n\n <mat-tab label=\"\u0420\u0430\u0437\u043C\u0435\u0442\u043A\u0430\">\n <div style=\"height: 10px;\"></div>\n @if (visualEditorRendered) {\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\u0418\u0441\u0445\u043E\u0434\u043D\u044B\u0439 \u043A\u043E\u0434</mat-label>\n <textarea matInput cdkTextareaAutosize #autosize=\"cdkTextareaAutosize\"\n cdkAutosizeMinRows=\"1\"\n placeholder=\"\u0418\u0441\u0445\u043E\u0434\u043D\u044B\u0439 \u043A\u043E\u0434\" [(ngModel)]=\"html\"\n (ngModelChange)=\"textAreaModelChangedHandler()\"></textarea>\n </mat-form-field>\n </div>\n }\n\n <button (click)=\"copyMarkUp()\"\n mat-raised-button color=\"primary\">\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0443\n </button>\n </mat-tab>\n <mat-tab label=\"\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\">\n <mat-card style=\"padding: 2px;\" class=\"mat-card\">\n <mat-card-content>\n <croco-html-xml-tag-view [data]=\"html | topreview\">\n </croco-html-xml-tag-view>\n </mat-card-content>\n </mat-card>\n </mat-tab>\n</mat-tab-group>\n", styles: [".example-list{width:500px;max-width:100%;border:solid 1px #ccc;min-height:60px;display:block;background:#fff;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:#fff;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"] }]
|
|
1818
|
-
}], ctorParameters: () => [{ type: i1$5.ClipboardService }, { type: i2$
|
|
1782
|
+
}], ctorParameters: () => [{ type: i1$5.ClipboardService }, { type: i2$3.MatSnackBar }, { type: i0.ChangeDetectorRef }], propDecorators: { visualEditor: [{
|
|
1819
1783
|
type: ViewChild,
|
|
1820
1784
|
args: ["visualEditor", { static: true }]
|
|
1821
1785
|
}], showMarkUp: [{
|
|
@@ -1975,7 +1939,7 @@ class CrocoHtmlModule {
|
|
|
1975
1939
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: CrocoHtmlModule, imports: [CommonModule,
|
|
1976
1940
|
FormsModule,
|
|
1977
1941
|
ReactiveFormsModule,
|
|
1978
|
-
NgSelectModule, i1$6.MatBadgeModule, i2$
|
|
1942
|
+
NgSelectModule, i1$6.MatBadgeModule, i2$4.MatTableModule, i3.MatExpansionModule, i1$3.MatFormFieldModule, i2$3.MatSnackBarModule, i6.MatProgressBarModule, i7.MatProgressSpinnerModule, i8.MatTabsModule, i9.MatMenuModule, i1$2.MatCardModule, i11.MatSelectModule, i12.MatTooltipModule, i13.MatCheckboxModule, i14.MatChipsModule, i15.MatListModule, i2.MatButtonModule, i2$1.MatInputModule, i18.MatDialogModule, i19.MatPaginatorModule, i20.MatDatepickerModule, i21.MatGridListModule, i22.MatSlideToggleModule, i23.MatTreeModule, i24.MatNativeDateModule, i25.MatAutocompleteModule, i26.MatSidenavModule, i27.MatIconModule, i28.DragDropModule, i29.MatButtonToggleModule, ErrorBannerComponent,
|
|
1979
1943
|
VkVideoPlayerComponent,
|
|
1980
1944
|
YoutubeVideoPlayerComponent,
|
|
1981
1945
|
DownloadFileButtonBlockComponent,
|