@candy-kingdom/bonnie-cms 0.12.0 → 0.14.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.
@@ -68,21 +68,22 @@ export class FileUploaderComponent {
68
68
  getEventMessage(event) {
69
69
  switch (event.type) {
70
70
  case HttpEventType.Sent:
71
- return;
71
+ break;
72
72
  case HttpEventType.UploadProgress:
73
73
  this.progress = event.total === undefined ? 0.5 : event.loaded / event.total;
74
74
  this.updateClip();
75
- return;
75
+ break;
76
76
  case HttpEventType.Response:
77
77
  if (event.body === null || event.body === undefined) {
78
78
  console.warn(`empty body from uploader`);
79
- return;
79
+ break;
80
80
  }
81
81
  this.srcChange.emit(event.body);
82
- return;
82
+ break;
83
83
  default:
84
- return;
84
+ break;
85
85
  }
86
+ this.cd.detectChanges();
86
87
  }
87
88
  updateClip() {
88
89
  this.clipStyle = this.sanitizer.bypassSecurityTrustStyle(`inset(0px 100% 0px 0%)`);
@@ -115,4 +116,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
115
116
  }], uploadTypes: [{
116
117
  type: Input
117
118
  }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Jvbm5pZS1jbXMvc3JjL2xpYi9maWxlLXVwbG9hZGVyL2ZpbGUtdXBsb2FkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvZmlsZS11cGxvYWRlci9maWxlLXVwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsWUFBWSxFQUFhLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBYSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekYsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFTekQsTUFBTSxPQUFPLHFCQUFxQjtJQXFCaEMsWUFBb0IsU0FBdUIsRUFBVSxJQUFnQixFQUFtQixFQUFxQjtRQUF6RixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFtQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQWhCdEcsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO1FBS2xELGFBQVEsR0FBRyxDQUFDLENBQUM7UUFDYixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBR2hCLGlCQUFZLEdBQVksU0FBUyxDQUFDO1FBRWpDLGlCQUFZLEdBQWEsRUFBRSxDQUFDO0lBSXBDLENBQUM7SUFFRCxJQUNXLEdBQUcsQ0FBQyxN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QUFPLElBQUksQ0FBQztJQUNkLENBQUM7OEdBeElVLHFCQUFxQjtrR0FBckIscUJBQXFCLHVTQ1psQyxzc0JBZ0JBOzsyRkRKYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0Usb0JBQW9COzBJQU12QixTQUFTO3NCQURmLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJakMsU0FBUztzQkFEZixNQUFNO2dCQUlBLFlBQVk7c0JBRGxCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQWtCZCxHQUFHO3NCQURiLEtBQUs7Z0JBYUssV0FBVztzQkFEckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVN0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudCwgSHR0cEV2ZW50VHlwZSwgSHR0cFJlcXVlc3QgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGxhc3QsIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgRmlsZU1ldGEsIEZpbGVTcmMgfSBmcm9tICdAY2FuZHkta2luZ2RvbS9ib25uaWUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdib25jLWZpbGUtdXBsb2FkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9maWxlLXVwbG9hZGVyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRlckNvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JywgeyBzdGF0aWM6IHRydWUgfSlcclxuICBwdWJsaWMgZmlsZUlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNyY0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVNyYzxGaWxlTWV0YT4+KCk7XHJcblxyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgcHVibGljIHVwbG9hZFVybE1hcCE6IFJlYWRvbmx5TWFwPHN0cmluZywgc3RyaW5nPjtcclxuXHJcbiAgcHVibGljIHByb2dyZXNzID0gMDtcclxuICBwdWJsaWMgaXNVcGxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIGF1dG9wbGF5ID0gdHJ1ZTtcclxuICBwdWJsaWMgY2xpcFN0eWxlPzogU2FmZVN0eWxlO1xyXG5cclxuICBwdWJsaWMgZmlsZVR5cGVNYXNrPzogc3RyaW5nID0gdW5kZWZpbmVkO1xyXG5cclxuICBwcml2YXRlIF91cGxvYWRUeXBlczogc3RyaW5nW10gPSBbXTtcclxuICBwcml2YXRlIF9zcmM/OiBGaWxlU3JjPEZpbGVNZXRhPjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplciwgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIHJlYWRvbmx5IGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHNyYyhuZXdTcmM6IEZpbGVTcmM8RmlsZU1ldGE+IHwgdW5kZWZpbmVkKSB7XHJcbiAgICBpZiAodGhpcy5fc3JjID09PSBuZXdTcmMpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLl9zcmMgPSBuZXdTcmM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNyYygpOiBGaWxlU3JjPEZpbGVNZXRhPiB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3JjO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHVwbG9hZFR5cGVzKG5ld1VwbG9hZFR5cGU6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLl91cGxvYWRUeXBlcy5zcGxpY2UoMCwgdGhpcy5fdXBsb2FkVHlwZXMubGVuZ3RoKTtcclxuXHJcbiAgICB0aGlzLl91cGxvYWRUeXBlcy5wdXNoKC4uLm5ld1VwbG9hZFR5cGUpO1xyXG5cclxuICAgIHRoaXMuZmlsZVR5cGVNYXNrID0gdGhpcy5fdXBsb2FkVHlwZXMubGVuZ3RoID09PSAwID8gdW5kZWZpbmVkIDogdGhpcy5fdXBsb2FkVHlwZXMuam9pbignLCcpO1xyXG5cclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB1cGxvYWRUeXBlcygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdXBsb2FkVHlwZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25GaWxlU2VsZWN0KGZpbGVJbnB1dDogSFRNTElucHV0RWxlbWVudCkge1xyXG4gICAgaWYgKGZpbGVJbnB1dC5maWxlcyA9PT0gdW5kZWZpbmVkIHx8IGZpbGVJbnB1dC5maWxlcyA9PT0gbnVsbCB8fCBmaWxlSW5wdXQuZmlsZXMubGVuZ3RoICE9PSAxKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgY29uc3QgZmlsZSA9IGZpbGVJbnB1dC5maWxlc1swXTtcclxuXHJcbiAgICBjb25zdCB1cGxvYWRVcmwgPSB0aGlzLnVwbG9hZFVybE1hcC5nZXQoZmlsZS50eXBlKSA/PyB0aGlzLnVwbG9hZFVybE1hcC5nZXQoXCJcIik7XHJcblxyXG4gICAgaWYgKHVwbG9hZFVybCA9PT0gdW5kZWZpbmVkIHx8IHVwbG9hZFVybCA9PT0gbnVsbCkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGB1cGxvYWQgbWFwIGRvZXNuJ3QgaGF2ZSB1cmwgZm9yIHR5cGUgJyR7ZmlsZS50eXBlfSdgKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG5cclxuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xyXG5cclxuICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xyXG4gICAgdGhpcy5pc1VwbG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgdGhpcy51cGRhdGVDbGlwKCk7XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBIdHRwUmVxdWVzdCgnUE9TVCcsIHVwbG9hZFVybCwgZm9ybURhdGEsIHtcclxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWVcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuaHR0cFxyXG4gICAgICAucmVxdWVzdDxGaWxlU3JjPEZpbGVNZXRhPj4ocmVxdWVzdClcclxuICAgICAgLnBpcGVcclxuICAgICAgKFxyXG4gICAgICAgIG1hcChldmVudCA9PiB0aGlzLmdldEV2ZW50TWVzc2FnZShldmVudCkpLFxyXG4gICAgICAgIC8vIHRhcChtZXNzYWdlID0+IHRoaXMuc2hvd1Byb2dyZXNzKG1lc3NhZ2UpKSxcclxuICAgICAgICBsYXN0KCksIC8vIHJldHVybiBsYXN0IChjb21wbGV0ZWQpIG1lc3NhZ2UgdG8gY2FsbGVyXHJcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKGZpbGUpKVxyXG4gICAgICApLnN1YnNjcmliZVxyXG4gICAgICAoXHJcbiAgICAgICAgKCkgPT4geyB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7IH1cclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RGaWxlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgLy8gaWdub3JlIGJ1YmxlIGNsaWNrIG9uIGZpbGUgcGlja2VyXHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0ID09PSB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50KVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFdmVudE1lc3NhZ2UoZXZlbnQ6IEh0dHBFdmVudDxGaWxlU3JjPEZpbGVNZXRhPj4pOiB2b2lkIHtcclxuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xyXG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuU2VudDpcclxuICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3M6XHJcbiAgICAgICAgdGhpcy5wcm9ncmVzcyA9IGV2ZW50LnRvdGFsID09PSB1bmRlZmluZWQgPyAwLjUgOiBldmVudC5sb2FkZWQgLyBldmVudC50b3RhbDtcclxuICAgICAgICB0aGlzLnVwZGF0ZUNsaXAoKTtcclxuICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuUmVzcG9uc2U6XHJcbiAgICAgICAgaWYgKGV2ZW50LmJvZHkgPT09IG51bGwgfHwgZXZlbnQuYm9keSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBjb25zb2xlLndhcm4oYGVtcHR5IGJvZHkgZnJvbSB1cGxvYWRlcmApO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zcmNDaGFuZ2UuZW1pdChldmVudC5ib2R5KTtcclxuICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQ2xpcCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xpcFN0eWxlID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKGBpbnNldCgwcHggMTAwJSAwcHggMCUpYCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUVycm9yKGZpbGU6IEZpbGUpOiAocDE6IHVua25vd24sIHAyOiBPYnNlcnZhYmxlPHVua25vd24+KSA9PiBPYnNlcnZhYmxlPHVua25vd24+IHtcclxuICAgIGNvbnN0IGZ1bmMgPSAoZXJyb3I6IHVua25vd24sIHAyOiBPYnNlcnZhYmxlPHVua25vd24+KTogT2JzZXJ2YWJsZTx1bmtub3duPiA9PiB7XHJcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgZXJyb3IgdXBsb2FkaW5nRmlsZSAke2ZpbGUubmFtZX0uYDtcclxuICAgICAgY29uc29sZS5lcnJvcihtZXNzYWdlLCBlcnJvciwgcDIpO1xyXG4gICAgICBhbGVydChtZXNzYWdlKTtcclxuICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHVua25vd24+KCk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBmdW5jO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwic3JjID09PSB1bmRlZmluZWQgfHwgc3JjLnVybCA9PT0gdW5kZWZpbmVkIHx8IHNyYz8udXJsPy5sZW5ndGggPT09IDBcIj5VcGxvYWQgZmlsZTwvZGl2PlxyXG5cclxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG5cclxuPGRpdiAoY2xpY2spPVwic2VsZWN0RmlsZSgkZXZlbnQpXCIgY2xhc3M9XCJtZWRpYS1jb250YWluZXJcIj5cclxuICA8aW5wdXQgI2ZpbGVJbnB1dCBbYWNjZXB0XT1cImZpbGVUeXBlTWFza1wiIChjaGFuZ2UpPVwib25GaWxlU2VsZWN0KGZpbGVJbnB1dClcIiBuYW1lPVwibWVkaWFcIiB0eXBlPVwiZmlsZVwiIC8+XHJcbiAgPHNwYW4gKm5nSWY9XCJpc1VwbG9hZGluZ1wiXHJcbiAgICAgICAgW3N0eWxlLmNsaXAtcGF0aF09XCJjbGlwU3R5bGVcIlxyXG4gICAgICAgIFtzdHlsZS4td2Via2l0LWNsaXAtcGF0aF09XCJjbGlwU3R5bGVcIlxyXG4gICAgICAgIGNsYXNzPVwibG9hZGVyXCI+PC9zcGFuPlxyXG5cclxuICA8c3BhbiAqbmdJZj1cImlzVXBsb2FkaW5nXCIgY2xhc3M9XCJsb2FkZXItdGV4dFwiPlxyXG4gICAgPHNwYW4gKm5nSWY9XCJwcm9ncmVzcyA8IDFcIj57ezEwMCAqIHByb2dyZXNzIHwgbnVtYmVyOiAnMS4wLTAnfX0lPC9zcGFuPlxyXG4gICAgPHNwYW4gKm5nSWY9XCJwcm9ncmVzcyA+PSAxXCI+Y29udmVydGluZzwvc3Bhbj5cclxuICA8L3NwYW4+XHJcbjwvZGl2PlxyXG4iXX0=
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Jvbm5pZS1jbXMvc3JjL2xpYi9maWxlLXVwbG9hZGVyL2ZpbGUtdXBsb2FkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvZmlsZS11cGxvYWRlci9maWxlLXVwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsWUFBWSxFQUFhLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBYSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekYsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFTekQsTUFBTSxPQUFPLHFCQUFxQjtJQXFCaEMsWUFBb0IsU0FBdUIsRUFBVSxJQUFnQixFQUFtQixFQUFxQjtRQUF6RixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFtQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQWhCdEcsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO1FBS2xELGFBQVEsR0FBRyxDQUFDLENBQUM7UUFDYixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBR2hCLGlCQUFZLEdBQVksU0FBUyxDQUFDO1FBRWpDLGlCQUFZLEdBQWEsRUFBRSxDQUFDO0lBSXBDLENBQUM7SUFFRCxJQUNXLEdBQUcsQ0FBQyxN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QUFJLFVBQVUsRUFBVyxDQUFDO1FBQ25DLENBQUMsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs4R0ExSVUscUJBQXFCO2tHQUFyQixxQkFBcUIsdVNDWmxDLHNzQkFnQkE7OzJGREphLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxvQkFBb0I7MElBTXZCLFNBQVM7c0JBRGYsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlqQyxTQUFTO3NCQURmLE1BQU07Z0JBSUEsWUFBWTtzQkFEbEIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBa0JkLEdBQUc7c0JBRGIsS0FBSztnQkFhSyxXQUFXO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlU3R5bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEV2ZW50LCBIdHRwRXZlbnRUeXBlLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbGFzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBGaWxlTWV0YSwgRmlsZVNyYyB9IGZyb20gJ0BjYW5keS1raW5nZG9tL2Jvbm5pZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JvbmMtZmlsZS11cGxvYWRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtdXBsb2FkZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZGVyQ29tcG9uZW50IHtcclxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHB1YmxpYyBmaWxlSW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgc3JjQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlU3JjPEZpbGVNZXRhPj4oKTtcclxuXHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcclxuICBwdWJsaWMgdXBsb2FkVXJsTWFwITogUmVhZG9ubHlNYXA8c3RyaW5nLCBzdHJpbmc+O1xyXG5cclxuICBwdWJsaWMgcHJvZ3Jlc3MgPSAwO1xyXG4gIHB1YmxpYyBpc1VwbG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgYXV0b3BsYXkgPSB0cnVlO1xyXG4gIHB1YmxpYyBjbGlwU3R5bGU/OiBTYWZlU3R5bGU7XHJcblxyXG4gIHB1YmxpYyBmaWxlVHlwZU1hc2s/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XHJcblxyXG4gIHByaXZhdGUgX3VwbG9hZFR5cGVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHByaXZhdGUgX3NyYz86IEZpbGVTcmM8RmlsZU1ldGE+O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLCBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgcmVhZG9ubHkgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgc3JjKG5ld1NyYzogRmlsZVNyYzxGaWxlTWV0YT4gfCB1bmRlZmluZWQpIHtcclxuICAgIGlmICh0aGlzLl9zcmMgPT09IG5ld1NyYylcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuX3NyYyA9IG5ld1NyYztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc3JjKCk6IEZpbGVTcmM8RmlsZU1ldGE+IHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9zcmM7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdXBsb2FkVHlwZXMobmV3VXBsb2FkVHlwZTogc3RyaW5nW10pIHtcclxuICAgIHRoaXMuX3VwbG9hZFR5cGVzLnNwbGljZSgwLCB0aGlzLl91cGxvYWRUeXBlcy5sZW5ndGgpO1xyXG5cclxuICAgIHRoaXMuX3VwbG9hZFR5cGVzLnB1c2goLi4ubmV3VXBsb2FkVHlwZSk7XHJcblxyXG4gICAgdGhpcy5maWxlVHlwZU1hc2sgPSB0aGlzLl91cGxvYWRUeXBlcy5sZW5ndGggPT09IDAgPyB1bmRlZmluZWQgOiB0aGlzLl91cGxvYWRUeXBlcy5qb2luKCcsJyk7XHJcblxyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHVwbG9hZFR5cGVzKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB0aGlzLl91cGxvYWRUeXBlcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkZpbGVTZWxlY3QoZmlsZUlucHV0OiBIVE1MSW5wdXRFbGVtZW50KSB7XHJcbiAgICBpZiAoZmlsZUlucHV0LmZpbGVzID09PSB1bmRlZmluZWQgfHwgZmlsZUlucHV0LmZpbGVzID09PSBudWxsIHx8IGZpbGVJbnB1dC5maWxlcy5sZW5ndGggIT09IDEpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBmaWxlID0gZmlsZUlucHV0LmZpbGVzWzBdO1xyXG5cclxuICAgIGNvbnN0IHVwbG9hZFVybCA9IHRoaXMudXBsb2FkVXJsTWFwLmdldChmaWxlLnR5cGUpID8/IHRoaXMudXBsb2FkVXJsTWFwLmdldChcIlwiKTtcclxuXHJcbiAgICBpZiAodXBsb2FkVXJsID09PSB1bmRlZmluZWQgfHwgdXBsb2FkVXJsID09PSBudWxsKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoYHVwbG9hZCBtYXAgZG9lc24ndCBoYXZlIHVybCBmb3IgdHlwZSAnJHtmaWxlLnR5cGV9J2ApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcblxyXG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XHJcblxyXG4gICAgdGhpcy5wcm9ncmVzcyA9IDA7XHJcbiAgICB0aGlzLmlzVXBsb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZUNsaXAoKTtcclxuXHJcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEh0dHBSZXF1ZXN0KCdQT1NUJywgdXBsb2FkVXJsLCBmb3JtRGF0YSwge1xyXG4gICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5odHRwXHJcbiAgICAgIC5yZXF1ZXN0PEZpbGVTcmM8RmlsZU1ldGE+PihyZXF1ZXN0KVxyXG4gICAgICAucGlwZVxyXG4gICAgICAoXHJcbiAgICAgICAgbWFwKGV2ZW50ID0+IHRoaXMuZ2V0RXZlbnRNZXNzYWdlKGV2ZW50KSksXHJcbiAgICAgICAgLy8gdGFwKG1lc3NhZ2UgPT4gdGhpcy5zaG93UHJvZ3Jlc3MobWVzc2FnZSkpLFxyXG4gICAgICAgIGxhc3QoKSwgLy8gcmV0dXJuIGxhc3QgKGNvbXBsZXRlZCkgbWVzc2FnZSB0byBjYWxsZXJcclxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoZmlsZSkpXHJcbiAgICAgICkuc3Vic2NyaWJlXHJcbiAgICAgIChcclxuICAgICAgICAoKSA9PiB7IHRoaXMuaXNVcGxvYWRpbmcgPSBmYWxzZTsgfVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdEZpbGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICAvLyBpZ25vcmUgYnVibGUgY2xpY2sgb24gZmlsZSBwaWNrZXJcclxuICAgIGlmIChldmVudC50YXJnZXQgPT09IHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEV2ZW50TWVzc2FnZShldmVudDogSHR0cEV2ZW50PEZpbGVTcmM8RmlsZU1ldGE+Pik6IHZvaWQge1xyXG4gICAgc3dpdGNoIChldmVudC50eXBlKSB7XHJcbiAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5TZW50OlxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzOlxyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3MgPSBldmVudC50b3RhbCA9PT0gdW5kZWZpbmVkID8gMC41IDogZXZlbnQubG9hZGVkIC8gZXZlbnQudG90YWw7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDbGlwKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuUmVzcG9uc2U6XHJcbiAgICAgICAgaWYgKGV2ZW50LmJvZHkgPT09IG51bGwgfHwgZXZlbnQuYm9keSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBjb25zb2xlLndhcm4oYGVtcHR5IGJvZHkgZnJvbSB1cGxvYWRlcmApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNyY0NoYW5nZS5lbWl0KGV2ZW50LmJvZHkpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVDbGlwKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGlwU3R5bGUgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUoYGluc2V0KDBweCAxMDAlIDBweCAwJSlgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoZmlsZTogRmlsZSk6IChwMTogdW5rbm93biwgcDI6IE9ic2VydmFibGU8dW5rbm93bj4pID0+IE9ic2VydmFibGU8dW5rbm93bj4ge1xyXG4gICAgY29uc3QgZnVuYyA9IChlcnJvcjogdW5rbm93biwgcDI6IE9ic2VydmFibGU8dW5rbm93bj4pOiBPYnNlcnZhYmxlPHVua25vd24+ID0+IHtcclxuICAgICAgY29uc3QgbWVzc2FnZSA9IGBlcnJvciB1cGxvYWRpbmdGaWxlICR7ZmlsZS5uYW1lfS5gO1xyXG4gICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UsIGVycm9yLCBwMik7XHJcbiAgICAgIGFsZXJ0KG1lc3NhZ2UpO1xyXG4gICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8dW5rbm93bj4oKTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGZ1bmM7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJzcmMgPT09IHVuZGVmaW5lZCB8fCBzcmMudXJsID09PSB1bmRlZmluZWQgfHwgc3JjPy51cmw/Lmxlbmd0aCA9PT0gMFwiPlVwbG9hZCBmaWxlPC9kaXY+XHJcblxyXG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcblxyXG48ZGl2IChjbGljayk9XCJzZWxlY3RGaWxlKCRldmVudClcIiBjbGFzcz1cIm1lZGlhLWNvbnRhaW5lclwiPlxyXG4gIDxpbnB1dCAjZmlsZUlucHV0IFthY2NlcHRdPVwiZmlsZVR5cGVNYXNrXCIgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3QoZmlsZUlucHV0KVwiIG5hbWU9XCJtZWRpYVwiIHR5cGU9XCJmaWxlXCIgLz5cclxuICA8c3BhbiAqbmdJZj1cImlzVXBsb2FkaW5nXCJcclxuICAgICAgICBbc3R5bGUuY2xpcC1wYXRoXT1cImNsaXBTdHlsZVwiXHJcbiAgICAgICAgW3N0eWxlLi13ZWJraXQtY2xpcC1wYXRoXT1cImNsaXBTdHlsZVwiXHJcbiAgICAgICAgY2xhc3M9XCJsb2FkZXJcIj48L3NwYW4+XHJcblxyXG4gIDxzcGFuICpuZ0lmPVwiaXNVcGxvYWRpbmdcIiBjbGFzcz1cImxvYWRlci10ZXh0XCI+XHJcbiAgICA8c3BhbiAqbmdJZj1cInByb2dyZXNzIDwgMVwiPnt7MTAwICogcHJvZ3Jlc3MgfCBudW1iZXI6ICcxLjAtMCd9fSU8L3NwYW4+XHJcbiAgICA8c3BhbiAqbmdJZj1cInByb2dyZXNzID49IDFcIj5jb252ZXJ0aW5nPC9zcGFuPlxyXG4gIDwvc3Bhbj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -3,16 +3,16 @@ import { EditableDirective, FormBaseComponent } from '../../core-components';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../../core-components/editable.directive";
5
5
  import * as i2 from "@angular/common";
6
- import * as i3 from "@angular/forms";
7
- import * as i4 from "../one-image-form/one-image-form.component";
8
- import * as i5 from "../../translation-input/translation-input.component";
9
- import * as i6 from "../../translation-textarea/translation-textarea.component";
10
- import * as i7 from "../../form-controls/form-controls.component";
6
+ import * as i3 from "../../translation-input/translation-input.component";
7
+ import * as i4 from "../../translation-textarea/translation-textarea.component";
8
+ import * as i5 from "../../form-controls/form-controls.component";
9
+ import * as i6 from "../../file-uploader/file-uploader.component";
10
+ const uploadMap = new Map();
11
+ uploadMap.set('', `/api/admin/upload/image?width=${1200}&height=${630}&format=image/jpeg`);
11
12
  export class SeoFormComponent extends FormBaseComponent {
12
13
  constructor() {
13
14
  super(...arguments);
14
- this.imageWidth = 1200;
15
- this.imageHeight = 630;
15
+ this.uploadMap = uploadMap;
16
16
  this._pageId = '';
17
17
  this.ogImageUploadUrl = '';
18
18
  this.label = '';
@@ -32,15 +32,22 @@ export class SeoFormComponent extends FormBaseComponent {
32
32
  ResToSrc(res) {
33
33
  return res.url;
34
34
  }
35
+ replaceImage($event) {
36
+ this.editable.startEditing();
37
+ if (this.editable.value !== undefined) {
38
+ this.editable.value.image[this.locale] = $event;
39
+ }
40
+ this.editable.updateDirty();
41
+ }
35
42
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: SeoFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: SeoFormComponent, selector: "bonc-seo-form", inputs: { label: "label", pageId: "pageId" }, usesInheritance: true, hostDirectives: [{ directive: i1.EditableDirective }], ngImport: i0, template: "<bonc-form-controls *ngIf=\"editable.value\" [editable]=\"editable\">\r\n <h2 *ngIf=\"label\">{{label}}</h2>\r\n\r\n <div class=\"form-group\">\r\n <label>Title</label>\r\n <bonc-translation-input [text]=\"editable.value.title\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"editable.startEditing()\"\r\n (changed)=\"editable.updateDirty()\"\r\n (blurred)=\"editable.updateDirty()\">\r\n </bonc-translation-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Description</label>\r\n <bonc-translation-textarea [text]=\"editable.value.description\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"editable.startEditing()\"\r\n (changed)=\"editable.updateDirty()\"\r\n (blurred)=\"editable.updateDirty()\">\r\n </bonc-translation-textarea>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Share image | 1200x630</label>\r\n\r\n <bonc-one-image-form [(ngModel)]=\"editable.value.image\"\r\n [uploadUrl]=\"'/api/admin/upload/image?width=' + imageWidth + '&height='+imageHeight + '&format=image/jpeg'\"\r\n [locale]=\"locale\">\r\n </bonc-one-image-form>\r\n\r\n </div>\r\n\r\n</bonc-form-controls>\r\n\r\n<div *ngIf=\"!editable.value\">Editable Value canot be null or undefined</div>\r\n", styles: [":host{display:block}bonc-one-image-form{max-width:600px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: i4.OneImageFormComponent, selector: "bonc-one-image-form", inputs: ["label", "uploadUrl", "mimeTypes"] }, { kind: "component", type: i5.TranslationInputComponent, selector: "bonc-translation-input", inputs: ["text", "locale", "device"], outputs: ["startEditing", "changed", "blurred"] }, { kind: "component", type: i6.TranslationTextareaComponent, selector: "bonc-translation-textarea", inputs: ["minRows", "maxRows", "text", "locale", "device"], outputs: ["startEditing", "changed", "blurred"] }, { kind: "component", type: i7.FormControlsComponent, selector: "bonc-form-controls", inputs: ["editable"] }] }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: SeoFormComponent, selector: "bonc-seo-form", inputs: { label: "label", pageId: "pageId" }, usesInheritance: true, hostDirectives: [{ directive: i1.EditableDirective }], ngImport: i0, template: "<bonc-form-controls *ngIf=\"editable.value\" [editable]=\"editable\">\r\n <h2 *ngIf=\"label\">{{label}}</h2>\r\n\r\n <div class=\"form-group\">\r\n <label>Title</label>\r\n <bonc-translation-input [text]=\"editable.value.title\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"editable.startEditing()\"\r\n (changed)=\"editable.updateDirty()\"\r\n (blurred)=\"editable.updateDirty()\">\r\n </bonc-translation-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Description</label>\r\n <bonc-translation-textarea [text]=\"editable.value.description\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"editable.startEditing()\"\r\n (changed)=\"editable.updateDirty()\"\r\n (blurred)=\"editable.updateDirty()\">\r\n </bonc-translation-textarea>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Share image | 1200x630</label>\r\n\r\n <bonc-file-uploader [src]=\"editable.value.image[locale]\"\r\n [uploadTypes]=\"['image/png', 'image/jpeg']\"\r\n [uploadUrlMap]=\"uploadMap\"\r\n (srcChange)=\"replaceImage($event)\">\r\n <img *ngIf=\"editable.value.image[locale]?.url?.length ?? 0 > 0\" [src]=\"editable.value.image[locale].url\" />\r\n </bonc-file-uploader>\r\n\r\n <a *ngIf=\"editable.value.image[locale]?.url?.length ?? 0 > 0\" [href]=\"editable.value.image[locale].url\" download target=\"_blank\">Download</a>\r\n </div>\r\n\r\n</bonc-form-controls>\r\n\r\n<div *ngIf=\"!editable.value\">Editable Value canot be null or undefined</div>\r\n", styles: [":host{display:block}bonc-one-image-form{max-width:600px}img{display:block;width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TranslationInputComponent, selector: "bonc-translation-input", inputs: ["text", "locale", "device"], outputs: ["startEditing", "changed", "blurred"] }, { kind: "component", type: i4.TranslationTextareaComponent, selector: "bonc-translation-textarea", inputs: ["minRows", "maxRows", "text", "locale", "device"], outputs: ["startEditing", "changed", "blurred"] }, { kind: "component", type: i5.FormControlsComponent, selector: "bonc-form-controls", inputs: ["editable"] }, { kind: "component", type: i6.FileUploaderComponent, selector: "bonc-file-uploader", inputs: ["uploadUrlMap", "src", "uploadTypes"], outputs: ["srcChange"] }] }); }
37
44
  }
38
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: SeoFormComponent, decorators: [{
39
46
  type: Component,
40
- args: [{ selector: 'bonc-seo-form', hostDirectives: [EditableDirective], template: "<bonc-form-controls *ngIf=\"editable.value\" [editable]=\"editable\">\r\n <h2 *ngIf=\"label\">{{label}}</h2>\r\n\r\n <div class=\"form-group\">\r\n <label>Title</label>\r\n <bonc-translation-input [text]=\"editable.value.title\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"editable.startEditing()\"\r\n (changed)=\"editable.updateDirty()\"\r\n (blurred)=\"editable.updateDirty()\">\r\n </bonc-translation-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Description</label>\r\n <bonc-translation-textarea [text]=\"editable.value.description\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"editable.startEditing()\"\r\n (changed)=\"editable.updateDirty()\"\r\n (blurred)=\"editable.updateDirty()\">\r\n </bonc-translation-textarea>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Share image | 1200x630</label>\r\n\r\n <bonc-one-image-form [(ngModel)]=\"editable.value.image\"\r\n [uploadUrl]=\"'/api/admin/upload/image?width=' + imageWidth + '&height='+imageHeight + '&format=image/jpeg'\"\r\n [locale]=\"locale\">\r\n </bonc-one-image-form>\r\n\r\n </div>\r\n\r\n</bonc-form-controls>\r\n\r\n<div *ngIf=\"!editable.value\">Editable Value canot be null or undefined</div>\r\n", styles: [":host{display:block}bonc-one-image-form{max-width:600px}\n"] }]
47
+ args: [{ selector: 'bonc-seo-form', hostDirectives: [EditableDirective], template: "<bonc-form-controls *ngIf=\"editable.value\" [editable]=\"editable\">\r\n <h2 *ngIf=\"label\">{{label}}</h2>\r\n\r\n <div class=\"form-group\">\r\n <label>Title</label>\r\n <bonc-translation-input [text]=\"editable.value.title\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"editable.startEditing()\"\r\n (changed)=\"editable.updateDirty()\"\r\n (blurred)=\"editable.updateDirty()\">\r\n </bonc-translation-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Description</label>\r\n <bonc-translation-textarea [text]=\"editable.value.description\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"editable.startEditing()\"\r\n (changed)=\"editable.updateDirty()\"\r\n (blurred)=\"editable.updateDirty()\">\r\n </bonc-translation-textarea>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Share image | 1200x630</label>\r\n\r\n <bonc-file-uploader [src]=\"editable.value.image[locale]\"\r\n [uploadTypes]=\"['image/png', 'image/jpeg']\"\r\n [uploadUrlMap]=\"uploadMap\"\r\n (srcChange)=\"replaceImage($event)\">\r\n <img *ngIf=\"editable.value.image[locale]?.url?.length ?? 0 > 0\" [src]=\"editable.value.image[locale].url\" />\r\n </bonc-file-uploader>\r\n\r\n <a *ngIf=\"editable.value.image[locale]?.url?.length ?? 0 > 0\" [href]=\"editable.value.image[locale].url\" download target=\"_blank\">Download</a>\r\n </div>\r\n\r\n</bonc-form-controls>\r\n\r\n<div *ngIf=\"!editable.value\">Editable Value canot be null or undefined</div>\r\n", styles: [":host{display:block}bonc-one-image-form{max-width:600px}img{display:block;width:100%}\n"] }]
41
48
  }], propDecorators: { label: [{
42
49
  type: Input
43
50
  }], pageId: [{
44
51
  type: Input
45
52
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvZm9ybXMvc2VvLWZvcm0vc2VvLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvZm9ybXMvc2VvLWZvcm0vc2VvLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQVE3RSxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsaUJBQWdDO0lBTnRFOztRQU9rQixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGdCQUFXLEdBQUcsR0FBRyxDQUFDO1FBRTFCLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDZCxxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFHdEIsVUFBSyxHQUFHLEVBQUUsQ0FBQztLQXFCbkI7SUFuQlEsUUFBUTtRQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQ1csTUFBTSxDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLG1DQUFtQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyw4Q0FBOEM7SUFDMUgsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRU0sUUFBUSxDQUFDLEdBQW9CO1FBQ2xDLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQztJQUNqQixDQUFDOzhHQTVCVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixpTENYN0IsdStDQW9DQTs7MkZEekJhLGdCQUFnQjtrQkFONUIsU0FBUzsrQkFDRSxlQUFlLGtCQUdULENBQUMsaUJBQWlCLENBQUM7OEJBVTVCLEtBQUs7c0JBRFgsS0FBSztnQkFVSyxNQUFNO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9wZW5HcmFwaERhdGEgfSBmcm9tICdAY2FuZHkta2luZ2RvbS9ib25uaWUnO1xyXG5cclxuaW1wb3J0IHsgRWRpdGFibGVEaXJlY3RpdmUsIEZvcm1CYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1jb21wb25lbnRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYm9uYy1zZW8tZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Nlby1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZW8tZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGhvc3REaXJlY3RpdmVzOiBbRWRpdGFibGVEaXJlY3RpdmVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZW9Gb3JtQ29tcG9uZW50IGV4dGVuZHMgRm9ybUJhc2VDb21wb25lbnQ8T3BlbkdyYXBoRGF0YT4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpbWFnZVdpZHRoID0gMTIwMDtcclxuICBwdWJsaWMgcmVhZG9ubHkgaW1hZ2VIZWlnaHQgPSA2MzA7XHJcblxyXG4gIHByaXZhdGUgX3BhZ2VJZCA9ICcnO1xyXG4gIHB1YmxpYyBvZ0ltYWdlVXBsb2FkVXJsID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGxhYmVsID0gJyc7XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZWRpdGFibGUuZXh0ZXJuYWxTYXZlQ2FsbC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmVkaXRhYmxlLnNhdmUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHBhZ2VJZCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9wYWdlSWQgPSB2YWx1ZTtcclxuICAgIHRoaXMub2dJbWFnZVVwbG9hZFVybCA9IGAvYXBpL2FkbWluL3BhZ2UvT2ctSW1hZ2U/cGFnZUlkPSR7dGhpcy5wYWdlSWR9YDsgLy8gdG9kbzogcmVwbGFjZSB3aXRoIGxpbmsgdG8gc2luZ2xlIGltYWdlIGFwaVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBwYWdlSWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9wYWdlSWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVzVG9TcmMocmVzOiB7IHVybDogc3RyaW5nIH0pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHJlcy51cmw7XHJcbiAgfVxyXG59XHJcbiIsIjxib25jLWZvcm0tY29udHJvbHMgKm5nSWY9XCJlZGl0YWJsZS52YWx1ZVwiIFtlZGl0YWJsZV09XCJlZGl0YWJsZVwiPlxyXG4gIDxoMiAqbmdJZj1cImxhYmVsXCI+e3tsYWJlbH19PC9oMj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgIDxsYWJlbD5UaXRsZTwvbGFiZWw+XHJcbiAgICA8Ym9uYy10cmFuc2xhdGlvbi1pbnB1dCBbdGV4dF09XCJlZGl0YWJsZS52YWx1ZS50aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RhcnRFZGl0aW5nKT1cImVkaXRhYmxlLnN0YXJ0RWRpdGluZygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2VkKT1cImVkaXRhYmxlLnVwZGF0ZURpcnR5KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXJyZWQpPVwiZWRpdGFibGUudXBkYXRlRGlydHkoKVwiPlxyXG4gICAgPC9ib25jLXRyYW5zbGF0aW9uLWlucHV0PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgPGxhYmVsPkRlc2NyaXB0aW9uPC9sYWJlbD5cclxuICAgIDxib25jLXRyYW5zbGF0aW9uLXRleHRhcmVhIFt0ZXh0XT1cImVkaXRhYmxlLnZhbHVlLmRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwibG9jYWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdGFydEVkaXRpbmcpPVwiZWRpdGFibGUuc3RhcnRFZGl0aW5nKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZWQpPVwiZWRpdGFibGUudXBkYXRlRGlydHkoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmx1cnJlZCk9XCJlZGl0YWJsZS51cGRhdGVEaXJ0eSgpXCI+XHJcbiAgICA8L2JvbmMtdHJhbnNsYXRpb24tdGV4dGFyZWE+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICA8bGFiZWw+U2hhcmUgaW1hZ2UgfCAxMjAweDYzMDwvbGFiZWw+XHJcblxyXG4gICAgPGJvbmMtb25lLWltYWdlLWZvcm0gWyhuZ01vZGVsKV09XCJlZGl0YWJsZS52YWx1ZS5pbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbdXBsb2FkVXJsXT1cIicvYXBpL2FkbWluL3VwbG9hZC9pbWFnZT93aWR0aD0nICsgaW1hZ2VXaWR0aCArICcmaGVpZ2h0PScraW1hZ2VIZWlnaHQgKyAnJmZvcm1hdD1pbWFnZS9qcGVnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiPlxyXG4gICAgPC9ib25jLW9uZS1pbWFnZS1mb3JtPlxyXG5cclxuICA8L2Rpdj5cclxuXHJcbjwvYm9uYy1mb3JtLWNvbnRyb2xzPlxyXG5cclxuPGRpdiAqbmdJZj1cIiFlZGl0YWJsZS52YWx1ZVwiPkVkaXRhYmxlIFZhbHVlIGNhbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkPC9kaXY+XHJcbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvZm9ybXMvc2VvLWZvcm0vc2VvLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvZm9ybXMvc2VvLWZvcm0vc2VvLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7O0FBRTdFLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO0FBQzVDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLGlDQUFpQyxJQUFJLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDO0FBUTNGLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxpQkFBZ0M7SUFOdEU7O1FBT2tCLGNBQVMsR0FBRyxTQUFTLENBQUM7UUFFOUIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNkLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUd0QixVQUFLLEdBQUcsRUFBRSxDQUFDO0tBK0JuQjtJQTdCUSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFDVyxNQUFNLENBQUMsS0FBYTtRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsbUNBQW1DLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLDhDQUE4QztJQUMxSCxDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxRQUFRLENBQUMsR0FBb0I7UUFDbEMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxZQUFZLENBQUMsTUFBeUI7UUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUU3QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQTRCLENBQUM7U0FDdkU7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7OEdBckNVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLGlMQ2Q3Qixrd0RBdUNBOzsyRkR6QmEsZ0JBQWdCO2tCQU41QixTQUFTOytCQUNFLGVBQWUsa0JBR1QsQ0FBQyxpQkFBaUIsQ0FBQzs4QkFTNUIsS0FBSztzQkFEWCxLQUFLO2dCQVVLLE1BQU07c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmlsZU1ldGEsIEZpbGVTcmMsIEltYWdlTWV0YSwgT3BlbkdyYXBoRGF0YSB9IGZyb20gJ0BjYW5keS1raW5nZG9tL2Jvbm5pZSc7XHJcblxyXG5pbXBvcnQgeyBFZGl0YWJsZURpcmVjdGl2ZSwgRm9ybUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWNvbXBvbmVudHMnO1xyXG5cclxuY29uc3QgdXBsb2FkTWFwID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcclxudXBsb2FkTWFwLnNldCgnJywgYC9hcGkvYWRtaW4vdXBsb2FkL2ltYWdlP3dpZHRoPSR7MTIwMH0maGVpZ2h0PSR7NjMwfSZmb3JtYXQ9aW1hZ2UvanBlZ2ApO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdib25jLXNlby1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VvLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Nlby1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgaG9zdERpcmVjdGl2ZXM6IFtFZGl0YWJsZURpcmVjdGl2ZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNlb0Zvcm1Db21wb25lbnQgZXh0ZW5kcyBGb3JtQmFzZUNvbXBvbmVudDxPcGVuR3JhcGhEYXRhPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IHVwbG9hZE1hcCA9IHVwbG9hZE1hcDtcclxuXHJcbiAgcHJpdmF0ZSBfcGFnZUlkID0gJyc7XHJcbiAgcHVibGljIG9nSW1hZ2VVcGxvYWRVcmwgPSAnJztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbGFiZWwgPSAnJztcclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5lZGl0YWJsZS5leHRlcm5hbFNhdmVDYWxsLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZWRpdGFibGUuc2F2ZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgcGFnZUlkKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3BhZ2VJZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5vZ0ltYWdlVXBsb2FkVXJsID0gYC9hcGkvYWRtaW4vcGFnZS9PZy1JbWFnZT9wYWdlSWQ9JHt0aGlzLnBhZ2VJZH1gOyAvLyB0b2RvOiByZXBsYWNlIHdpdGggbGluayB0byBzaW5nbGUgaW1hZ2UgYXBpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHBhZ2VJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBSZXNUb1NyYyhyZXM6IHsgdXJsOiBzdHJpbmcgfSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gcmVzLnVybDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXBsYWNlSW1hZ2UoJGV2ZW50OiBGaWxlU3JjPEZpbGVNZXRhPik6IHZvaWQge1xyXG4gICAgdGhpcy5lZGl0YWJsZS5zdGFydEVkaXRpbmcoKTtcclxuXHJcbiAgICBpZiAodGhpcy5lZGl0YWJsZS52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuZWRpdGFibGUudmFsdWUuaW1hZ2VbdGhpcy5sb2NhbGVdID0gJGV2ZW50IGFzIEZpbGVTcmM8SW1hZ2VNZXRhPjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmVkaXRhYmxlLnVwZGF0ZURpcnR5KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxib25jLWZvcm0tY29udHJvbHMgKm5nSWY9XCJlZGl0YWJsZS52YWx1ZVwiIFtlZGl0YWJsZV09XCJlZGl0YWJsZVwiPlxyXG4gIDxoMiAqbmdJZj1cImxhYmVsXCI+e3tsYWJlbH19PC9oMj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgIDxsYWJlbD5UaXRsZTwvbGFiZWw+XHJcbiAgICA8Ym9uYy10cmFuc2xhdGlvbi1pbnB1dCBbdGV4dF09XCJlZGl0YWJsZS52YWx1ZS50aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RhcnRFZGl0aW5nKT1cImVkaXRhYmxlLnN0YXJ0RWRpdGluZygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2VkKT1cImVkaXRhYmxlLnVwZGF0ZURpcnR5KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXJyZWQpPVwiZWRpdGFibGUudXBkYXRlRGlydHkoKVwiPlxyXG4gICAgPC9ib25jLXRyYW5zbGF0aW9uLWlucHV0PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgPGxhYmVsPkRlc2NyaXB0aW9uPC9sYWJlbD5cclxuICAgIDxib25jLXRyYW5zbGF0aW9uLXRleHRhcmVhIFt0ZXh0XT1cImVkaXRhYmxlLnZhbHVlLmRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwibG9jYWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdGFydEVkaXRpbmcpPVwiZWRpdGFibGUuc3RhcnRFZGl0aW5nKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZWQpPVwiZWRpdGFibGUudXBkYXRlRGlydHkoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmx1cnJlZCk9XCJlZGl0YWJsZS51cGRhdGVEaXJ0eSgpXCI+XHJcbiAgICA8L2JvbmMtdHJhbnNsYXRpb24tdGV4dGFyZWE+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICA8bGFiZWw+U2hhcmUgaW1hZ2UgfCAxMjAweDYzMDwvbGFiZWw+XHJcblxyXG4gICAgPGJvbmMtZmlsZS11cGxvYWRlciBbc3JjXT1cImVkaXRhYmxlLnZhbHVlLmltYWdlW2xvY2FsZV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdXBsb2FkVHlwZXNdPVwiWydpbWFnZS9wbmcnLCAnaW1hZ2UvanBlZyddXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3VwbG9hZFVybE1hcF09XCJ1cGxvYWRNYXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoc3JjQ2hhbmdlKT1cInJlcGxhY2VJbWFnZSgkZXZlbnQpXCI+XHJcbiAgICAgIDxpbWcgKm5nSWY9XCJlZGl0YWJsZS52YWx1ZS5pbWFnZVtsb2NhbGVdPy51cmw/Lmxlbmd0aCA/PyAwID4gMFwiIFtzcmNdPVwiZWRpdGFibGUudmFsdWUuaW1hZ2VbbG9jYWxlXS51cmxcIiAvPlxyXG4gICAgPC9ib25jLWZpbGUtdXBsb2FkZXI+XHJcblxyXG4gICAgPGEgKm5nSWY9XCJlZGl0YWJsZS52YWx1ZS5pbWFnZVtsb2NhbGVdPy51cmw/Lmxlbmd0aCA/PyAwID4gMFwiIFtocmVmXT1cImVkaXRhYmxlLnZhbHVlLmltYWdlW2xvY2FsZV0udXJsXCIgZG93bmxvYWQgdGFyZ2V0PVwiX2JsYW5rXCI+RG93bmxvYWQ8L2E+XHJcbiAgPC9kaXY+XHJcblxyXG48L2JvbmMtZm9ybS1jb250cm9scz5cclxuXHJcbjxkaXYgKm5nSWY9XCIhZWRpdGFibGUudmFsdWVcIj5FZGl0YWJsZSBWYWx1ZSBjYW5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZDwvZGl2PlxyXG4iXX0=
@@ -1,4 +1,4 @@
1
- import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
1
+ import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
2
  import { DomSanitizer } from '@angular/platform-browser';
3
3
  import { HttpClient, HttpEventType, HttpRequest } from '@angular/common/http';
4
4
  import { catchError, last, map, Observable } from 'rxjs';
@@ -14,9 +14,10 @@ const imageFileTypes = imageMimeTypes.join(',');
14
14
  const videoFileTypes = videoMimeTypes.join(',');
15
15
  const allMediaFileTypes = `${imageFileTypes},${videoFileTypes}`;
16
16
  export class MediaUploaderComponent {
17
- constructor(sanitizer, http) {
17
+ constructor(sanitizer, http, cd) {
18
18
  this.sanitizer = sanitizer;
19
19
  this.http = http;
20
+ this.cd = cd;
20
21
  this.MediaObjectFit = MediaObjectFit;
21
22
  this.srcChange = new EventEmitter();
22
23
  this.progress = 0;
@@ -100,11 +101,11 @@ export class MediaUploaderComponent {
100
101
  getEventMessage(event) {
101
102
  switch (event.type) {
102
103
  case HttpEventType.Sent:
103
- return;
104
+ break;
104
105
  case HttpEventType.UploadProgress:
105
106
  this.progress = event.total === undefined ? 0.5 : event.loaded / event.total;
106
107
  this.updateClip();
107
- return;
108
+ break;
108
109
  case HttpEventType.Response:
109
110
  if (event.body === undefined || event.body === null) {
110
111
  console.error('media deserialization error. Response body in undefined');
@@ -118,10 +119,11 @@ export class MediaUploaderComponent {
118
119
  };
119
120
  this.srcChange.emit(pixmedia);
120
121
  }
121
- return;
122
+ break;
122
123
  default:
123
- return;
124
+ break;
124
125
  }
126
+ this.cd.detectChanges();
125
127
  }
126
128
  updateClip() {
127
129
  this.clipStyle = this.sanitizer.bypassSecurityTrustStyle(`inset(0px 100% 0px 0%)`);
@@ -135,13 +137,13 @@ export class MediaUploaderComponent {
135
137
  };
136
138
  return func;
137
139
  }
138
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: MediaUploaderComponent, deps: [{ token: i1.DomSanitizer }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
140
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: MediaUploaderComponent, deps: [{ token: i1.DomSanitizer }, { token: i2.HttpClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
139
141
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: MediaUploaderComponent, selector: "bonc-media-uploader", inputs: { uploadUrlMap: "uploadUrlMap", forceRatio: "forceRatio", src: "src", uploadType: "uploadType" }, outputs: { srcChange: "srcChange" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, static: true }], ngImport: i0, template: "<bon-media [src]=\"src\" [objectFit]=\"MediaObjectFit.Cover\"></bon-media>\r\n\r\n<div *ngIf=\"src?.sources?.length===0\">Upload media</div>\r\n\r\n<div (click)=\"selectFile($event)\" class=\"media-container\">\r\n <input #fileInput [accept]=\"fileTypeMask\" (change)=\"onFileSelect(fileInput)\" name=\"media\" type=\"file\" />\r\n <span *ngIf=\"isUploading\"\r\n [style.clip-path]=\"clipStyle\"\r\n [style.-webkit-clip-path]=\"clipStyle\"\r\n class=\"loader\"></span>\r\n\r\n <span *ngIf=\"isUploading\" class=\"loader-text\">\r\n <span *ngIf=\"progress < 1\">{{100 * progress | number: '1.0-0'}}%</span>\r\n <span *ngIf=\"progress >= 1\">converting</span>\r\n </span>\r\n</div>\r\n", styles: [":host{display:block;background-color:#000;position:relative}.media-container{display:block;position:absolute;inset:0;cursor:pointer}.media-container:hover:hover:after{display:flex;justify-content:center;align-items:center;content:\"\";position:absolute;color:silver;inset:0;font-weight:700;font-size:50pt;pointer-events:none;background-color:#ccff00b3}.media-container img,.media-container video{display:block;position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}input[type=file]{display:none}.loader{position:absolute;inset:0;background-color:#cf0}.loader-text{background-color:#000;position:absolute;top:50%;left:0;right:0;text-align:center;font-size:20pt;margin-top:-10pt;color:#fff}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MarcyMediaComponent, selector: "bon-media", inputs: ["src", "objectFit"], outputs: ["isLoaded"] }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }] }); }
140
142
  }
141
143
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: MediaUploaderComponent, decorators: [{
142
144
  type: Component,
143
145
  args: [{ selector: 'bonc-media-uploader', template: "<bon-media [src]=\"src\" [objectFit]=\"MediaObjectFit.Cover\"></bon-media>\r\n\r\n<div *ngIf=\"src?.sources?.length===0\">Upload media</div>\r\n\r\n<div (click)=\"selectFile($event)\" class=\"media-container\">\r\n <input #fileInput [accept]=\"fileTypeMask\" (change)=\"onFileSelect(fileInput)\" name=\"media\" type=\"file\" />\r\n <span *ngIf=\"isUploading\"\r\n [style.clip-path]=\"clipStyle\"\r\n [style.-webkit-clip-path]=\"clipStyle\"\r\n class=\"loader\"></span>\r\n\r\n <span *ngIf=\"isUploading\" class=\"loader-text\">\r\n <span *ngIf=\"progress < 1\">{{100 * progress | number: '1.0-0'}}%</span>\r\n <span *ngIf=\"progress >= 1\">converting</span>\r\n </span>\r\n</div>\r\n", styles: [":host{display:block;background-color:#000;position:relative}.media-container{display:block;position:absolute;inset:0;cursor:pointer}.media-container:hover:hover:after{display:flex;justify-content:center;align-items:center;content:\"\";position:absolute;color:silver;inset:0;font-weight:700;font-size:50pt;pointer-events:none;background-color:#ccff00b3}.media-container img,.media-container video{display:block;position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}input[type=file]{display:none}.loader{position:absolute;inset:0;background-color:#cf0}.loader-text{background-color:#000;position:absolute;top:50%;left:0;right:0;text-align:center;font-size:20pt;margin-top:-10pt;color:#fff}\n"] }]
144
- }], ctorParameters: () => [{ type: i1.DomSanitizer }, { type: i2.HttpClient }], propDecorators: { fileInput: [{
146
+ }], ctorParameters: () => [{ type: i1.DomSanitizer }, { type: i2.HttpClient }, { type: i0.ChangeDetectorRef }], propDecorators: { fileInput: [{
145
147
  type: ViewChild,
146
148
  args: ['fileInput', { static: true }]
147
149
  }], srcChange: [{
@@ -156,4 +158,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
156
158
  }], uploadType: [{
157
159
  type: Input
158
160
  }] } });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtdXBsb2FkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvbWVkaWEtdXBsb2FkZXIvbWVkaWEtdXBsb2FkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvbWVkaWEtdXBsb2FkZXIvbWVkaWEtdXBsb2FkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxZQUFZLEVBQWEsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFhLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXpELE9BQU8sRUFBRSxjQUFjLEVBQWlCLE1BQU0sdUJBQXVCLENBQUM7Ozs7OztBQUd0RSxNQUFNLGNBQWMsR0FBRyxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUNuRCxNQUFNLGNBQWMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBRXJDLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDaEQsTUFBTSxjQUFjLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUVoRCxNQUFNLGlCQUFpQixHQUFHLEdBQUcsY0FBYyxJQUFJLGNBQWMsRUFBRSxDQUFDO0FBT2hFLE1BQU0sT0FBTyxzQkFBc0I7SUF5QmpDLFlBQW9CLFNBQXVCLEVBQVUsSUFB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OzJGREthLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxxQkFBcUI7MEdBUXhCLFNBQVM7c0JBRGYsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlqQyxTQUFTO3NCQURmLE1BQU07Z0JBSUEsWUFBWTtzQkFEbEIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBSWxCLFVBQVU7c0JBRGhCLEtBQUs7Z0JBaUJLLEdBQUc7c0JBRGIsS0FBSztnQkFhSyxVQUFVO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnQsIEh0dHBFdmVudFR5cGUsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBsYXN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IE1lZGlhT2JqZWN0Rml0LCBQaXhNZWRpYVVuaW9uIH0gZnJvbSAnQGNhbmR5LWtpbmdkb20vYm9ubmllJztcclxuaW1wb3J0IHsgTWVkaWFUeXBlIH0gZnJvbSAnLi4vY29yZSc7XHJcblxyXG5jb25zdCBpbWFnZU1pbWVUeXBlcyA9IFsnaW1hZ2UvcG5nJywgJ2ltYWdlL2pwZWcnXTtcclxuY29uc3QgdmlkZW9NaW1lVHlwZXMgPSBbJ3ZpZGVvL21wNCddO1xyXG5cclxuY29uc3QgaW1hZ2VGaWxlVHlwZXMgPSBpbWFnZU1pbWVUeXBlcy5qb2luKCcsJyk7XHJcbmNvbnN0IHZpZGVvRmlsZVR5cGVzID0gdmlkZW9NaW1lVHlwZXMuam9pbignLCcpO1xyXG5cclxuY29uc3QgYWxsTWVkaWFGaWxlVHlwZXMgPSBgJHtpbWFnZUZpbGVUeXBlc30sJHt2aWRlb0ZpbGVUeXBlc31gO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdib25jLW1lZGlhLXVwbG9hZGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbWVkaWEtdXBsb2FkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21lZGlhLXVwbG9hZGVyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE1lZGlhVXBsb2FkZXJDb21wb25lbnQge1xyXG4gIHB1YmxpYyByZWFkb25seSBNZWRpYU9iamVjdEZpdCA9IE1lZGlhT2JqZWN0Rml0O1xyXG5cclxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHB1YmxpYyBmaWxlSW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgc3JjQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxQaXhNZWRpYVVuaW9uPigpO1xyXG5cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxyXG4gIHB1YmxpYyB1cGxvYWRVcmxNYXAhOiBSZWFkb25seU1hcDxNZWRpYVR5cGUsIHN0cmluZz47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGZvcmNlUmF0aW8/OiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBwcm9ncmVzcyA9IDA7XHJcbiAgcHVibGljIGlzVXBsb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBhdXRvcGxheSA9IHRydWU7XHJcbiAgcHVibGljIGNsaXBTdHlsZT86IFNhZmVTdHlsZTtcclxuICBwdWJsaWMgZmlsZVR5cGVNYXNrID0gYWxsTWVkaWFGaWxlVHlwZXM7XHJcblxyXG4gIHByaXZhdGUgX3VwbG9hZFR5cGU/OiBNZWRpYVR5cGU7XHJcbiAgcHJpdmF0ZSBfc3JjPzogUGl4TWVkaWFVbmlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplciwgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgc3JjKG5ld1NyYzogUGl4TWVkaWFVbmlvbiB8IHVuZGVmaW5lZCkge1xyXG4gICAgaWYgKHRoaXMuX3NyYyA9PT0gbmV3U3JjKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5fc3JjID0gbmV3U3JjO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzcmMoKTogUGl4TWVkaWFVbmlvbiB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3JjO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHVwbG9hZFR5cGUobmV3VXBsb2FkVHlwZTogTWVkaWFUeXBlIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBzd2l0Y2ggKG5ld1VwbG9hZFR5cGUpIHtcclxuICAgICAgY2FzZSBcImltYWdlXCI6XHJcbiAgICAgICAgdGhpcy5fdXBsb2FkVHlwZSA9IG5ld1VwbG9hZFR5cGU7XHJcbiAgICAgICAgdGhpcy5maWxlVHlwZU1hc2sgPSBpbWFnZUZpbGVUeXBlcztcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgXCJ2aWRlb1wiOlxyXG4gICAgICAgIHRoaXMuX3VwbG9hZFR5cGUgPSBuZXdVcGxvYWRUeXBlO1xyXG4gICAgICAgIHRoaXMuZmlsZVR5cGVNYXNrID0gdmlkZW9GaWxlVHlwZXM7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIHVuZGVmaW5lZDpcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLl91cGxvYWRUeXBlID0gbmV3VXBsb2FkVHlwZTtcclxuICAgICAgICB0aGlzLmZpbGVUeXBlTWFzayA9IGFsbE1lZGlhRmlsZVR5cGVzO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB1cGxvYWRUeXBlKCk6IE1lZGlhVHlwZSB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fdXBsb2FkVHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkZpbGVTZWxlY3QoZmlsZUlucHV0OiBIVE1MSW5wdXRFbGVtZW50KSB7XHJcbiAgICBpZiAoZmlsZUlucHV0LmZpbGVzID09PSB1bmRlZmluZWQgfHwgZmlsZUlucHV0LmZpbGVzID09PSBudWxsIHx8IGZpbGVJbnB1dC5maWxlcy5sZW5ndGggIT09IDEpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBmaWxlID0gZmlsZUlucHV0LmZpbGVzWzBdO1xyXG5cclxuICAgIGxldCB1cGxvYWRpbmdNZWRpYVR5cGU6IE1lZGlhVHlwZTtcclxuXHJcbiAgICBpZiAodGhpcy5fdXBsb2FkVHlwZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuX3VwbG9hZFR5cGUgIT09IG51bGwpIHtcclxuICAgICAgdXBsb2FkaW5nTWVkaWFUeXBlID0gdGhpcy5fdXBsb2FkVHlwZTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGltYWdlTWltZVR5cGVzLmluY2x1ZGVzKGZpbGUudHlwZSkpIHtcclxuICAgICAgdXBsb2FkaW5nTWVkaWFUeXBlID0gJ2ltYWdlJztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHZpZGVvTWltZVR5cGVzLmluY2x1ZGVzKGZpbGUudHlwZSkpIHtcclxuICAgICAgdXBsb2FkaW5nTWVkaWFUeXBlID0gJ3ZpZGVvJztcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGB1bmtub3duIG1lZGlhIHR5cGUgJHtmaWxlLnR5cGV9ICgke2ZpbGUubmFtZX0pYCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB1cGxvYWRVcmwgPSB0aGlzLnVwbG9hZFVybE1hcC5nZXQodXBsb2FkaW5nTWVkaWFUeXBlKTtcclxuXHJcbiAgICBpZiAodXBsb2FkVXJsID09PSB1bmRlZmluZWQgfHwgdXBsb2FkVXJsID09PSBudWxsKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoYHVwbG9hZCBtYXAgZG9lc24ndCBoYXZlIHVybCBmb3IgdHlwZSAke3VwbG9hZGluZ01lZGlhVHlwZX1gKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG5cclxuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKCdyYXRpbycsIGAke3RoaXMuZm9yY2VSYXRpbyA/PyAwfWApO1xyXG5cclxuICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xyXG4gICAgdGhpcy5pc1VwbG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgdGhpcy51cGRhdGVDbGlwKCk7XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBIdHRwUmVxdWVzdCgnUE9TVCcsIHVwbG9hZFVybCwgZm9ybURhdGEsIHtcclxuICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWVcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuaHR0cFxyXG4gICAgICAucmVxdWVzdDxQaXhNZWRpYVVuaW9uPihyZXF1ZXN0KVxyXG4gICAgICAucGlwZVxyXG4gICAgICAoXHJcbiAgICAgICAgbWFwKGV2ZW50ID0+IHRoaXMuZ2V0RXZlbnRNZXNzYWdlKGV2ZW50KSksXHJcbiAgICAgICAgLy8gdGFwKG1lc3NhZ2UgPT4gdGhpcy5zaG93UHJvZ3Jlc3MobWVzc2FnZSkpLFxyXG4gICAgICAgIGxhc3QoKSwgLy8gcmV0dXJuIGxhc3QgKGNvbXBsZXRlZCkgbWVzc2FnZSB0byBjYWxsZXJcclxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoZmlsZSkpXHJcbiAgICAgICkuc3Vic2NyaWJlXHJcbiAgICAgIChcclxuICAgICAgICAoKSA9PiB7IHRoaXMuaXNVcGxvYWRpbmcgPSBmYWxzZTsgfVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdEZpbGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICAvLyBpZ25vcmUgYnVibGUgY2xpY2sgb24gZmlsZSBwaWNrZXJcclxuICAgIGlmIChldmVudC50YXJnZXQgPT09IHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEV2ZW50TWVzc2FnZShldmVudDogSHR0cEV2ZW50PFBpeE1lZGlhVW5pb24+KTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcclxuICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlNlbnQ6XHJcbiAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzOlxyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3MgPSBldmVudC50b3RhbCA9PT0gdW5kZWZpbmVkID8gMC41IDogZXZlbnQubG9hZGVkIC8gZXZlbnQudG90YWw7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDbGlwKCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlOlxyXG4gICAgICAgIGlmIChldmVudC5ib2R5ID09PSB1bmRlZmluZWQgfHwgZXZlbnQuYm9keSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcignbWVkaWEgZGVzZXJpYWxpemF0aW9uIGVycm9yLiBSZXNwb25zZSBib2R5IGluIHVuZGVmaW5lZCcpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyByZW1vdmUgdGhpc1xyXG4gICAgICAgICAgLy8gbmVlZGVkIGZvciBDIyBkZXNlcmlhbGl6YXRpb25cclxuICAgICAgICAgIGNvbnN0IHBpeG1lZGlhID0ge1xyXG4gICAgICAgICAgICAkdHlwZTogZXZlbnQuYm9keS50eXBlLFxyXG4gICAgICAgICAgICAuLi5ldmVudC5ib2R5IGFzIGFueSxcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgdGhpcy5zcmNDaGFuZ2UuZW1pdChwaXhtZWRpYSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVDbGlwKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGlwU3R5bGUgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUoYGluc2V0KDBweCAxMDAlIDBweCAwJSlgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoZmlsZTogRmlsZSk6IChwMTogdW5rbm93biwgcDI6IE9ic2VydmFibGU8dW5rbm93bj4pID0+IE9ic2VydmFibGU8dW5rbm93bj4ge1xyXG4gICAgY29uc3QgZnVuYyA9IChlcnJvcjogdW5rbm93biwgcDI6IE9ic2VydmFibGU8dW5rbm93bj4pOiBPYnNlcnZhYmxlPHVua25vd24+ID0+IHtcclxuICAgICAgY29uc3QgbWVzc2FnZSA9IGBlcnJvciB1cGxvYWRpbmdGaWxlICR7ZmlsZS5uYW1lfS5gO1xyXG4gICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UsIGVycm9yLCBwMik7XHJcbiAgICAgIGFsZXJ0KG1lc3NhZ2UpO1xyXG4gICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8dW5rbm93bj4oKTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGZ1bmM7XHJcbiAgfVxyXG59XHJcbiIsIjxib24tbWVkaWEgW3NyY109XCJzcmNcIiBbb2JqZWN0Rml0XT1cIk1lZGlhT2JqZWN0Rml0LkNvdmVyXCI+PC9ib24tbWVkaWE+XHJcblxyXG48ZGl2ICpuZ0lmPVwic3JjPy5zb3VyY2VzPy5sZW5ndGg9PT0wXCI+VXBsb2FkIG1lZGlhPC9kaXY+XHJcblxyXG48ZGl2IChjbGljayk9XCJzZWxlY3RGaWxlKCRldmVudClcIiBjbGFzcz1cIm1lZGlhLWNvbnRhaW5lclwiPlxyXG4gIDxpbnB1dCAjZmlsZUlucHV0IFthY2NlcHRdPVwiZmlsZVR5cGVNYXNrXCIgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3QoZmlsZUlucHV0KVwiIG5hbWU9XCJtZWRpYVwiIHR5cGU9XCJmaWxlXCIgLz5cclxuICA8c3BhbiAqbmdJZj1cImlzVXBsb2FkaW5nXCJcclxuICAgICAgICBbc3R5bGUuY2xpcC1wYXRoXT1cImNsaXBTdHlsZVwiXHJcbiAgICAgICAgW3N0eWxlLi13ZWJraXQtY2xpcC1wYXRoXT1cImNsaXBTdHlsZVwiXHJcbiAgICAgICAgY2xhc3M9XCJsb2FkZXJcIj48L3NwYW4+XHJcblxyXG4gIDxzcGFuICpuZ0lmPVwiaXNVcGxvYWRpbmdcIiBjbGFzcz1cImxvYWRlci10ZXh0XCI+XHJcbiAgICA8c3BhbiAqbmdJZj1cInByb2dyZXNzIDwgMVwiPnt7MTAwICogcHJvZ3Jlc3MgfCBudW1iZXI6ICcxLjAtMCd9fSU8L3NwYW4+XHJcbiAgICA8c3BhbiAqbmdJZj1cInByb2dyZXNzID49IDFcIj5jb252ZXJ0aW5nPC9zcGFuPlxyXG4gIDwvc3Bhbj5cclxuPC9kaXY+XHJcbiJdfQ==
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtdXBsb2FkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvbWVkaWEtdXBsb2FkZXIvbWVkaWEtdXBsb2FkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ib25uaWUtY21zL3NyYy9saWIvbWVkaWEtdXBsb2FkZXIvbWVkaWEtdXBsb2FkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxZQUFZLEVBQWEsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFhLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXpELE9BQU8sRUFBRSxjQUFjLEVBQWlCLE1BQU0sdUJBQXVCLENBQUM7Ozs7OztBQUd0RSxNQUFNLGNBQWMsR0FBRyxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUNuRCxNQUFNLGNBQWMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBRXJDLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDaEQsTUFBTSxjQUFjLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUVoRCxNQUFNLGlCQUFpQixHQUFHLEdBQUcsY0FBYyxJQUFJLGNBQWMsRUFBRSxDQUFDO0FBT2hFLE1BQU0sT0FBTyxzQkFBc0I7SUF5QmpDLFlBQW9CLFNB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UUFDbkMsQ0FBQyxDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzhHQS9LVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixnVUNyQm5DLDRzQkFnQkE7OzJGREthLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxxQkFBcUI7MElBUXhCLFNBQVM7c0JBRGYsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlqQyxTQUFTO3NCQURmLE1BQU07Z0JBSUEsWUFBWTtzQkFEbEIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBSWxCLFVBQVU7c0JBRGhCLEtBQUs7Z0JBaUJLLEdBQUc7c0JBRGIsS0FBSztnQkFhSyxVQUFVO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlU3R5bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEV2ZW50LCBIdHRwRXZlbnRUeXBlLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbGFzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBNZWRpYU9iamVjdEZpdCwgUGl4TWVkaWFVbmlvbiB9IGZyb20gJ0BjYW5keS1raW5nZG9tL2Jvbm5pZSc7XHJcbmltcG9ydCB7IE1lZGlhVHlwZSB9IGZyb20gJy4uL2NvcmUnO1xyXG5cclxuY29uc3QgaW1hZ2VNaW1lVHlwZXMgPSBbJ2ltYWdlL3BuZycsICdpbWFnZS9qcGVnJ107XHJcbmNvbnN0IHZpZGVvTWltZVR5cGVzID0gWyd2aWRlby9tcDQnXTtcclxuXHJcbmNvbnN0IGltYWdlRmlsZVR5cGVzID0gaW1hZ2VNaW1lVHlwZXMuam9pbignLCcpO1xyXG5jb25zdCB2aWRlb0ZpbGVUeXBlcyA9IHZpZGVvTWltZVR5cGVzLmpvaW4oJywnKTtcclxuXHJcbmNvbnN0IGFsbE1lZGlhRmlsZVR5cGVzID0gYCR7aW1hZ2VGaWxlVHlwZXN9LCR7dmlkZW9GaWxlVHlwZXN9YDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYm9uYy1tZWRpYS11cGxvYWRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21lZGlhLXVwbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tZWRpYS11cGxvYWRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZWRpYVVwbG9hZGVyQ29tcG9uZW50IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgTWVkaWFPYmplY3RGaXQgPSBNZWRpYU9iamVjdEZpdDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JywgeyBzdGF0aWM6IHRydWUgfSlcclxuICBwdWJsaWMgZmlsZUlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNyY0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGl4TWVkaWFVbmlvbj4oKTtcclxuXHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcclxuICBwdWJsaWMgdXBsb2FkVXJsTWFwITogUmVhZG9ubHlNYXA8TWVkaWFUeXBlLCBzdHJpbmc+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBmb3JjZVJhdGlvPzogbnVtYmVyO1xyXG5cclxuICBwdWJsaWMgcHJvZ3Jlc3MgPSAwO1xyXG4gIHB1YmxpYyBpc1VwbG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgYXV0b3BsYXkgPSB0cnVlO1xyXG4gIHB1YmxpYyBjbGlwU3R5bGU/OiBTYWZlU3R5bGU7XHJcbiAgcHVibGljIGZpbGVUeXBlTWFzayA9IGFsbE1lZGlhRmlsZVR5cGVzO1xyXG5cclxuICBwcml2YXRlIF91cGxvYWRUeXBlPzogTWVkaWFUeXBlO1xyXG4gIHByaXZhdGUgX3NyYz86IFBpeE1lZGlhVW5pb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBzcmMobmV3U3JjOiBQaXhNZWRpYVVuaW9uIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBpZiAodGhpcy5fc3JjID09PSBuZXdTcmMpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICB0aGlzLl9zcmMgPSBuZXdTcmM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNyYygpOiBQaXhNZWRpYVVuaW9uIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9zcmM7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdXBsb2FkVHlwZShuZXdVcGxvYWRUeXBlOiBNZWRpYVR5cGUgfCB1bmRlZmluZWQpIHtcclxuICAgIHN3aXRjaCAobmV3VXBsb2FkVHlwZSkge1xyXG4gICAgICBjYXNlIFwiaW1hZ2VcIjpcclxuICAgICAgICB0aGlzLl91cGxvYWRUeXBlID0gbmV3VXBsb2FkVHlwZTtcclxuICAgICAgICB0aGlzLmZpbGVUeXBlTWFzayA9IGltYWdlRmlsZVR5cGVzO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBcInZpZGVvXCI6XHJcbiAgICAgICAgdGhpcy5fdXBsb2FkVHlwZSA9IG5ld1VwbG9hZFR5cGU7XHJcbiAgICAgICAgdGhpcy5maWxlVHlwZU1hc2sgPSB2aWRlb0ZpbGVUeXBlcztcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgdW5kZWZpbmVkOlxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMuX3VwbG9hZFR5cGUgPSBuZXdVcGxvYWRUeXBlO1xyXG4gICAgICAgIHRoaXMuZmlsZVR5cGVNYXNrID0gYWxsTWVkaWFGaWxlVHlwZXM7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHVwbG9hZFR5cGUoKTogTWVkaWFUeXBlIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl91cGxvYWRUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRmlsZVNlbGVjdChmaWxlSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQpIHtcclxuICAgIGlmIChmaWxlSW5wdXQuZmlsZXMgPT09IHVuZGVmaW5lZCB8fCBmaWxlSW5wdXQuZmlsZXMgPT09IG51bGwgfHwgZmlsZUlucHV0LmZpbGVzLmxlbmd0aCAhPT0gMSlcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGZpbGUgPSBmaWxlSW5wdXQuZmlsZXNbMF07XHJcblxyXG4gICAgbGV0IHVwbG9hZGluZ01lZGlhVHlwZTogTWVkaWFUeXBlO1xyXG5cclxuICAgIGlmICh0aGlzLl91cGxvYWRUeXBlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5fdXBsb2FkVHlwZSAhPT0gbnVsbCkge1xyXG4gICAgICB1cGxvYWRpbmdNZWRpYVR5cGUgPSB0aGlzLl91cGxvYWRUeXBlO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoaW1hZ2VNaW1lVHlwZXMuaW5jbHVkZXMoZmlsZS50eXBlKSkge1xyXG4gICAgICB1cGxvYWRpbmdNZWRpYVR5cGUgPSAnaW1hZ2UnO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodmlkZW9NaW1lVHlwZXMuaW5jbHVkZXMoZmlsZS50eXBlKSkge1xyXG4gICAgICB1cGxvYWRpbmdNZWRpYVR5cGUgPSAndmlkZW8nO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoYHVua25vd24gbWVkaWEgdHlwZSAke2ZpbGUudHlwZX0gKCR7ZmlsZS5uYW1lfSlgKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHVwbG9hZFVybCA9IHRoaXMudXBsb2FkVXJsTWFwLmdldCh1cGxvYWRpbmdNZWRpYVR5cGUpO1xyXG5cclxuICAgIGlmICh1cGxvYWRVcmwgPT09IHVuZGVmaW5lZCB8fCB1cGxvYWRVcmwgPT09IG51bGwpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihgdXBsb2FkIG1hcCBkb2Vzbid0IGhhdmUgdXJsIGZvciB0eXBlICR7dXBsb2FkaW5nTWVkaWFUeXBlfWApO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcblxyXG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ3JhdGlvJywgYCR7dGhpcy5mb3JjZVJhdGlvID8/IDB9YCk7XHJcblxyXG4gICAgdGhpcy5wcm9ncmVzcyA9IDA7XHJcbiAgICB0aGlzLmlzVXBsb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZUNsaXAoKTtcclxuXHJcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IEh0dHBSZXF1ZXN0KCdQT1NUJywgdXBsb2FkVXJsLCBmb3JtRGF0YSwge1xyXG4gICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5odHRwXHJcbiAgICAgIC5yZXF1ZXN0PFBpeE1lZGlhVW5pb24+KHJlcXVlc3QpXHJcbiAgICAgIC5waXBlXHJcbiAgICAgIChcclxuICAgICAgICBtYXAoZXZlbnQgPT4gdGhpcy5nZXRFdmVudE1lc3NhZ2UoZXZlbnQpKSxcclxuICAgICAgICAvLyB0YXAobWVzc2FnZSA9PiB0aGlzLnNob3dQcm9ncmVzcyhtZXNzYWdlKSksXHJcbiAgICAgICAgbGFzdCgpLCAvLyByZXR1cm4gbGFzdCAoY29tcGxldGVkKSBtZXNzYWdlIHRvIGNhbGxlclxyXG4gICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihmaWxlKSlcclxuICAgICAgKS5zdWJzY3JpYmVcclxuICAgICAgKFxyXG4gICAgICAgICgpID0+IHsgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlOyB9XHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0RmlsZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIC8vIGlnbm9yZSBidWJsZSBjbGljayBvbiBmaWxlIHBpY2tlclxyXG4gICAgaWYgKGV2ZW50LnRhcmdldCA9PT0gdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudClcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RXZlbnRNZXNzYWdlKGV2ZW50OiBIdHRwRXZlbnQ8UGl4TWVkaWFVbmlvbj4pOiB2b2lkIHtcclxuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xyXG4gICAgICBjYXNlIEh0dHBFdmVudFR5cGUuU2VudDpcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzczpcclxuICAgICAgICB0aGlzLnByb2dyZXNzID0gZXZlbnQudG90YWwgPT09IHVuZGVmaW5lZCA/IDAuNSA6IGV2ZW50LmxvYWRlZCAvIGV2ZW50LnRvdGFsO1xyXG4gICAgICAgIHRoaXMudXBkYXRlQ2xpcCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlOlxyXG4gICAgICAgIGlmIChldmVudC5ib2R5ID09PSB1bmRlZmluZWQgfHwgZXZlbnQuYm9keSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcignbWVkaWEgZGVzZXJpYWxpemF0aW9uIGVycm9yLiBSZXNwb25zZSBib2R5IGluIHVuZGVmaW5lZCcpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyByZW1vdmUgdGhpc1xyXG4gICAgICAgICAgLy8gbmVlZGVkIGZvciBDIyBkZXNlcmlhbGl6YXRpb25cclxuICAgICAgICAgIGNvbnN0IHBpeG1lZGlhID0ge1xyXG4gICAgICAgICAgICAkdHlwZTogZXZlbnQuYm9keS50eXBlLFxyXG4gICAgICAgICAgICAuLi5ldmVudC5ib2R5IGFzIGFueSxcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgdGhpcy5zcmNDaGFuZ2UuZW1pdChwaXhtZWRpYSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQ2xpcCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xpcFN0eWxlID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKGBpbnNldCgwcHggMTAwJSAwcHggMCUpYCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUVycm9yKGZpbGU6IEZpbGUpOiAocDE6IHVua25vd24sIHAyOiBPYnNlcnZhYmxlPHVua25vd24+KSA9PiBPYnNlcnZhYmxlPHVua25vd24+IHtcclxuICAgIGNvbnN0IGZ1bmMgPSAoZXJyb3I6IHVua25vd24sIHAyOiBPYnNlcnZhYmxlPHVua25vd24+KTogT2JzZXJ2YWJsZTx1bmtub3duPiA9PiB7XHJcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgZXJyb3IgdXBsb2FkaW5nRmlsZSAke2ZpbGUubmFtZX0uYDtcclxuICAgICAgY29uc29sZS5lcnJvcihtZXNzYWdlLCBlcnJvciwgcDIpO1xyXG4gICAgICBhbGVydChtZXNzYWdlKTtcclxuICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHVua25vd24+KCk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBmdW5jO1xyXG4gIH1cclxufVxyXG4iLCI8Ym9uLW1lZGlhIFtzcmNdPVwic3JjXCIgW29iamVjdEZpdF09XCJNZWRpYU9iamVjdEZpdC5Db3ZlclwiPjwvYm9uLW1lZGlhPlxyXG5cclxuPGRpdiAqbmdJZj1cInNyYz8uc291cmNlcz8ubGVuZ3RoPT09MFwiPlVwbG9hZCBtZWRpYTwvZGl2PlxyXG5cclxuPGRpdiAoY2xpY2spPVwic2VsZWN0RmlsZSgkZXZlbnQpXCIgY2xhc3M9XCJtZWRpYS1jb250YWluZXJcIj5cclxuICA8aW5wdXQgI2ZpbGVJbnB1dCBbYWNjZXB0XT1cImZpbGVUeXBlTWFza1wiIChjaGFuZ2UpPVwib25GaWxlU2VsZWN0KGZpbGVJbnB1dClcIiBuYW1lPVwibWVkaWFcIiB0eXBlPVwiZmlsZVwiIC8+XHJcbiAgPHNwYW4gKm5nSWY9XCJpc1VwbG9hZGluZ1wiXHJcbiAgICAgICAgW3N0eWxlLmNsaXAtcGF0aF09XCJjbGlwU3R5bGVcIlxyXG4gICAgICAgIFtzdHlsZS4td2Via2l0LWNsaXAtcGF0aF09XCJjbGlwU3R5bGVcIlxyXG4gICAgICAgIGNsYXNzPVwibG9hZGVyXCI+PC9zcGFuPlxyXG5cclxuICA8c3BhbiAqbmdJZj1cImlzVXBsb2FkaW5nXCIgY2xhc3M9XCJsb2FkZXItdGV4dFwiPlxyXG4gICAgPHNwYW4gKm5nSWY9XCJwcm9ncmVzcyA8IDFcIj57ezEwMCAqIHByb2dyZXNzIHwgbnVtYmVyOiAnMS4wLTAnfX0lPC9zcGFuPlxyXG4gICAgPHNwYW4gKm5nSWY9XCJwcm9ncmVzcyA+PSAxXCI+Y29udmVydGluZzwvc3Bhbj5cclxuICA8L3NwYW4+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -647,21 +647,22 @@ class FileUploaderComponent {
647
647
  getEventMessage(event) {
648
648
  switch (event.type) {
649
649
  case HttpEventType.Sent:
650
- return;
650
+ break;
651
651
  case HttpEventType.UploadProgress:
652
652
  this.progress = event.total === undefined ? 0.5 : event.loaded / event.total;
653
653
  this.updateClip();
654
- return;
654
+ break;
655
655
  case HttpEventType.Response:
656
656
  if (event.body === null || event.body === undefined) {
657
657
  console.warn(`empty body from uploader`);
658
- return;
658
+ break;
659
659
  }
660
660
  this.srcChange.emit(event.body);
661
- return;
661
+ break;
662
662
  default:
663
- return;
663
+ break;
664
664
  }
665
+ this.cd.detectChanges();
665
666
  }
666
667
  updateClip() {
667
668
  this.clipStyle = this.sanitizer.bypassSecurityTrustStyle(`inset(0px 100% 0px 0%)`);
@@ -695,67 +696,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
695
696
  type: Input
696
697
  }] } });
697
698
 
698
- const DefaultImageMimeTypes = ['image/png', 'image/jpeg'];
699
- class OneImageFormComponent extends FormBaseComponent {
700
- constructor(editable) {
701
- super(editable);
702
- this.cd = inject(ChangeDetectorRef);
703
- this.uploadMap = new Map();
704
- this._mimeTypes = DefaultImageMimeTypes;
705
- this._uploadUrl = '/api/admin/upload/image';
706
- this._label = '';
707
- this.uploadMap.set('', this._uploadUrl);
708
- }
709
- ngOnInit() {
710
- this.editable.externalSaveCall.subscribe(() => {
711
- this.editable.save();
712
- });
713
- }
714
- set label(newValue) {
715
- this._label = newValue;
716
- }
717
- get label() {
718
- return this._label;
719
- }
720
- set uploadUrl(newValue) {
721
- this._uploadUrl = newValue;
722
- this.uploadMap.set('', this._uploadUrl);
723
- this.cd.detectChanges();
724
- }
725
- set mimeTypes(newValue) {
726
- this._mimeTypes = newValue.length === 0 ? DefaultImageMimeTypes : newValue;
727
- this.cd.detectChanges();
728
- }
729
- get mimeTypes() {
730
- return this._mimeTypes;
731
- }
732
- onFileUploaded(fileSrc) {
733
- this.editable.startEditing();
734
- const svgSrc = fileSrc;
735
- this.editable.value = svgSrc;
736
- this.editable.updateDirty();
737
- }
738
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: OneImageFormComponent, deps: [{ token: EditableDirective, host: true }], target: i0.ɵɵFactoryTarget.Component }); }
739
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: OneImageFormComponent, selector: "bonc-one-image-form", inputs: { label: "label", uploadUrl: "uploadUrl", mimeTypes: "mimeTypes" }, usesInheritance: true, hostDirectives: [{ directive: EditableDirective }], ngImport: i0, template: "<bonc-form-controls [editable]=\"editable\">\r\n <label *ngIf=\"label\">{{label}}</label>\r\n <bonc-file-uploader [src]=\"editable.value\"\r\n [uploadTypes]=\"mimeTypes\"\r\n [uploadUrlMap]=\"uploadMap\"\r\n (srcChange)=\"onFileUploaded($event)\">\r\n <img *ngIf=\"editable.value?.url?.length ?? 0 > 0\" [src]=\"editable.value?.url\" />\r\n </bonc-file-uploader>\r\n\r\n <a *ngIf=\"editable.value?.url?.length ?? 0 > 0\" [href]=\"editable.value!.url\" download target=\"_blank\">Download</a>\r\n\r\n</bonc-form-controls>\r\n", styles: [":host{display:block}img{background-image:linear-gradient(45deg,#808080 25%,transparent 25%),linear-gradient(-45deg,#808080 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#808080 75%),linear-gradient(-45deg,transparent 75%,#808080 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0px;display:block;width:100%}a{color:silver}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormControlsComponent, selector: "bonc-form-controls", inputs: ["editable"] }, { kind: "component", type: FileUploaderComponent, selector: "bonc-file-uploader", inputs: ["uploadUrlMap", "src", "uploadTypes"], outputs: ["srcChange"] }] }); }
740
- }
741
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: OneImageFormComponent, decorators: [{
742
- type: Component,
743
- args: [{ selector: 'bonc-one-image-form', hostDirectives: [EditableDirective], template: "<bonc-form-controls [editable]=\"editable\">\r\n <label *ngIf=\"label\">{{label}}</label>\r\n <bonc-file-uploader [src]=\"editable.value\"\r\n [uploadTypes]=\"mimeTypes\"\r\n [uploadUrlMap]=\"uploadMap\"\r\n (srcChange)=\"onFileUploaded($event)\">\r\n <img *ngIf=\"editable.value?.url?.length ?? 0 > 0\" [src]=\"editable.value?.url\" />\r\n </bonc-file-uploader>\r\n\r\n <a *ngIf=\"editable.value?.url?.length ?? 0 > 0\" [href]=\"editable.value!.url\" download target=\"_blank\">Download</a>\r\n\r\n</bonc-form-controls>\r\n", styles: [":host{display:block}img{background-image:linear-gradient(45deg,#808080 25%,transparent 25%),linear-gradient(-45deg,#808080 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#808080 75%),linear-gradient(-45deg,transparent 75%,#808080 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0px;display:block;width:100%}a{color:silver}\n"] }]
744
- }], ctorParameters: () => [{ type: EditableDirective, decorators: [{
745
- type: Host
746
- }] }], propDecorators: { label: [{
747
- type: Input
748
- }], uploadUrl: [{
749
- type: Input
750
- }], mimeTypes: [{
751
- type: Input
752
- }] } });
753
-
699
+ const uploadMap = new Map();
700
+ uploadMap.set('', `/api/admin/upload/image?width=${1200}&height=${630}&format=image/jpeg`);
754
701
  class SeoFormComponent extends FormBaseComponent {
755
702
  constructor() {
756
703
  super(...arguments);
757
- this.imageWidth = 1200;
758
- this.imageHeight = 630;
704
+ this.uploadMap = uploadMap;
759
705
  this._pageId = '';
760
706
  this.ogImageUploadUrl = '';
761
707
  this.label = '';
@@ -775,12 +721,19 @@ class SeoFormComponent extends FormBaseComponent {
775
721
  ResToSrc(res) {
776
722
  return res.url;
777
723
  }
724
+ replaceImage($event) {
725
+ this.editable.startEditing();
726
+ if (this.editable.value !== undefined) {
727
+ this.editable.value.image[this.locale] = $event;
728
+ }
729
+ this.editable.updateDirty();
730
+ }
778
731
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: SeoFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
779
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: SeoFormComponent, selector: "bonc-seo-form", inputs: { label: "label", pageId: "pageId" }, usesInheritance: true, hostDirectives: [{ directive: EditableDirective }], ngImport: i0, template: "<bonc-form-controls *ngIf=\"editable.value\" [editable]=\"editable\">\r\n <h2 *ngIf=\"label\">{{label}}</h2>\r\n\r\n <div class=\"form-group\">\r\n <label>Title</label>\r\n <bonc-translation-input [text]=\"editable.value.title\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"editable.startEditing()\"\r\n (changed)=\"editable.updateDirty()\"\r\n (blurred)=\"editable.updateDirty()\">\r\n </bonc-translation-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Description</label>\r\n <bonc-translation-textarea [text]=\"editable.value.description\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"editable.startEditing()\"\r\n (changed)=\"editable.updateDirty()\"\r\n (blurred)=\"editable.updateDirty()\">\r\n </bonc-translation-textarea>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Share image | 1200x630</label>\r\n\r\n <bonc-one-image-form [(ngModel)]=\"editable.value.image\"\r\n [uploadUrl]=\"'/api/admin/upload/image?width=' + imageWidth + '&height='+imageHeight + '&format=image/jpeg'\"\r\n [locale]=\"locale\">\r\n </bonc-one-image-form>\r\n\r\n </div>\r\n\r\n</bonc-form-controls>\r\n\r\n<div *ngIf=\"!editable.value\">Editable Value canot be null or undefined</div>\r\n", styles: [":host{display:block}bonc-one-image-form{max-width:600px}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: OneImageFormComponent, selector: "bonc-one-image-form", inputs: ["label", "uploadUrl", "mimeTypes"] }, { kind: "component", type: TranslationInputComponent, selector: "bonc-translation-input", inputs: ["text", "locale", "device"], outputs: ["startEditing", "changed", "blurred"] }, { kind: "component", type: TranslationTextareaComponent, selector: "bonc-translation-textarea", inputs: ["minRows", "maxRows", "text", "locale", "device"], outputs: ["startEditing", "changed", "blurred"] }, { kind: "component", type: FormControlsComponent, selector: "bonc-form-controls", inputs: ["editable"] }] }); }
732
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: SeoFormComponent, selector: "bonc-seo-form", inputs: { label: "label", pageId: "pageId" }, usesInheritance: true, hostDirectives: [{ directive: EditableDirective }], ngImport: i0, template: "<bonc-form-controls *ngIf=\"editable.value\" [editable]=\"editable\">\r\n <h2 *ngIf=\"label\">{{label}}</h2>\r\n\r\n <div class=\"form-group\">\r\n <label>Title</label>\r\n <bonc-translation-input [text]=\"editable.value.title\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"editable.startEditing()\"\r\n (changed)=\"editable.updateDirty()\"\r\n (blurred)=\"editable.updateDirty()\">\r\n </bonc-translation-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Description</label>\r\n <bonc-translation-textarea [text]=\"editable.value.description\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"editable.startEditing()\"\r\n (changed)=\"editable.updateDirty()\"\r\n (blurred)=\"editable.updateDirty()\">\r\n </bonc-translation-textarea>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Share image | 1200x630</label>\r\n\r\n <bonc-file-uploader [src]=\"editable.value.image[locale]\"\r\n [uploadTypes]=\"['image/png', 'image/jpeg']\"\r\n [uploadUrlMap]=\"uploadMap\"\r\n (srcChange)=\"replaceImage($event)\">\r\n <img *ngIf=\"editable.value.image[locale]?.url?.length ?? 0 > 0\" [src]=\"editable.value.image[locale].url\" />\r\n </bonc-file-uploader>\r\n\r\n <a *ngIf=\"editable.value.image[locale]?.url?.length ?? 0 > 0\" [href]=\"editable.value.image[locale].url\" download target=\"_blank\">Download</a>\r\n </div>\r\n\r\n</bonc-form-controls>\r\n\r\n<div *ngIf=\"!editable.value\">Editable Value canot be null or undefined</div>\r\n", styles: [":host{display:block}bonc-one-image-form{max-width:600px}img{display:block;width:100%}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TranslationInputComponent, selector: "bonc-translation-input", inputs: ["text", "locale", "device"], outputs: ["startEditing", "changed", "blurred"] }, { kind: "component", type: TranslationTextareaComponent, selector: "bonc-translation-textarea", inputs: ["minRows", "maxRows", "text", "locale", "device"], outputs: ["startEditing", "changed", "blurred"] }, { kind: "component", type: FormControlsComponent, selector: "bonc-form-controls", inputs: ["editable"] }, { kind: "component", type: FileUploaderComponent, selector: "bonc-file-uploader", inputs: ["uploadUrlMap", "src", "uploadTypes"], outputs: ["srcChange"] }] }); }
780
733
  }
781
734
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: SeoFormComponent, decorators: [{
782
735
  type: Component,
783
- args: [{ selector: 'bonc-seo-form', hostDirectives: [EditableDirective], template: "<bonc-form-controls *ngIf=\"editable.value\" [editable]=\"editable\">\r\n <h2 *ngIf=\"label\">{{label}}</h2>\r\n\r\n <div class=\"form-group\">\r\n <label>Title</label>\r\n <bonc-translation-input [text]=\"editable.value.title\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"editable.startEditing()\"\r\n (changed)=\"editable.updateDirty()\"\r\n (blurred)=\"editable.updateDirty()\">\r\n </bonc-translation-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Description</label>\r\n <bonc-translation-textarea [text]=\"editable.value.description\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"editable.startEditing()\"\r\n (changed)=\"editable.updateDirty()\"\r\n (blurred)=\"editable.updateDirty()\">\r\n </bonc-translation-textarea>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Share image | 1200x630</label>\r\n\r\n <bonc-one-image-form [(ngModel)]=\"editable.value.image\"\r\n [uploadUrl]=\"'/api/admin/upload/image?width=' + imageWidth + '&height='+imageHeight + '&format=image/jpeg'\"\r\n [locale]=\"locale\">\r\n </bonc-one-image-form>\r\n\r\n </div>\r\n\r\n</bonc-form-controls>\r\n\r\n<div *ngIf=\"!editable.value\">Editable Value canot be null or undefined</div>\r\n", styles: [":host{display:block}bonc-one-image-form{max-width:600px}\n"] }]
736
+ args: [{ selector: 'bonc-seo-form', hostDirectives: [EditableDirective], template: "<bonc-form-controls *ngIf=\"editable.value\" [editable]=\"editable\">\r\n <h2 *ngIf=\"label\">{{label}}</h2>\r\n\r\n <div class=\"form-group\">\r\n <label>Title</label>\r\n <bonc-translation-input [text]=\"editable.value.title\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"editable.startEditing()\"\r\n (changed)=\"editable.updateDirty()\"\r\n (blurred)=\"editable.updateDirty()\">\r\n </bonc-translation-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Description</label>\r\n <bonc-translation-textarea [text]=\"editable.value.description\"\r\n [locale]=\"locale\"\r\n (startEditing)=\"editable.startEditing()\"\r\n (changed)=\"editable.updateDirty()\"\r\n (blurred)=\"editable.updateDirty()\">\r\n </bonc-translation-textarea>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Share image | 1200x630</label>\r\n\r\n <bonc-file-uploader [src]=\"editable.value.image[locale]\"\r\n [uploadTypes]=\"['image/png', 'image/jpeg']\"\r\n [uploadUrlMap]=\"uploadMap\"\r\n (srcChange)=\"replaceImage($event)\">\r\n <img *ngIf=\"editable.value.image[locale]?.url?.length ?? 0 > 0\" [src]=\"editable.value.image[locale].url\" />\r\n </bonc-file-uploader>\r\n\r\n <a *ngIf=\"editable.value.image[locale]?.url?.length ?? 0 > 0\" [href]=\"editable.value.image[locale].url\" download target=\"_blank\">Download</a>\r\n </div>\r\n\r\n</bonc-form-controls>\r\n\r\n<div *ngIf=\"!editable.value\">Editable Value canot be null or undefined</div>\r\n", styles: [":host{display:block}bonc-one-image-form{max-width:600px}img{display:block;width:100%}\n"] }]
784
737
  }], propDecorators: { label: [{
785
738
  type: Input
786
739
  }], pageId: [{
@@ -827,6 +780,62 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
827
780
  type: Input
828
781
  }] } });
829
782
 
783
+ const DefaultImageMimeTypes = ['image/png', 'image/jpeg'];
784
+ class OneImageFormComponent extends FormBaseComponent {
785
+ constructor(editable) {
786
+ super(editable);
787
+ this.cd = inject(ChangeDetectorRef);
788
+ this.uploadMap = new Map();
789
+ this._mimeTypes = DefaultImageMimeTypes;
790
+ this._uploadUrl = '/api/admin/upload/image';
791
+ this._label = '';
792
+ this.uploadMap.set('', this._uploadUrl);
793
+ }
794
+ ngOnInit() {
795
+ this.editable.externalSaveCall.subscribe(() => {
796
+ this.editable.save();
797
+ });
798
+ }
799
+ set label(newValue) {
800
+ this._label = newValue;
801
+ }
802
+ get label() {
803
+ return this._label;
804
+ }
805
+ set uploadUrl(newValue) {
806
+ this._uploadUrl = newValue;
807
+ this.uploadMap.set('', this._uploadUrl);
808
+ this.cd.detectChanges();
809
+ }
810
+ set mimeTypes(newValue) {
811
+ this._mimeTypes = newValue.length === 0 ? DefaultImageMimeTypes : newValue;
812
+ this.cd.detectChanges();
813
+ }
814
+ get mimeTypes() {
815
+ return this._mimeTypes;
816
+ }
817
+ onFileUploaded(fileSrc) {
818
+ this.editable.startEditing();
819
+ const svgSrc = fileSrc;
820
+ this.editable.value = svgSrc;
821
+ this.editable.updateDirty();
822
+ }
823
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: OneImageFormComponent, deps: [{ token: EditableDirective, host: true }], target: i0.ɵɵFactoryTarget.Component }); }
824
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: OneImageFormComponent, selector: "bonc-one-image-form", inputs: { label: "label", uploadUrl: "uploadUrl", mimeTypes: "mimeTypes" }, usesInheritance: true, hostDirectives: [{ directive: EditableDirective }], ngImport: i0, template: "<bonc-form-controls [editable]=\"editable\">\r\n <label *ngIf=\"label\">{{label}}</label>\r\n <bonc-file-uploader [src]=\"editable.value\"\r\n [uploadTypes]=\"mimeTypes\"\r\n [uploadUrlMap]=\"uploadMap\"\r\n (srcChange)=\"onFileUploaded($event)\">\r\n <img *ngIf=\"editable.value?.url?.length ?? 0 > 0\" [src]=\"editable.value?.url\" />\r\n </bonc-file-uploader>\r\n\r\n <a *ngIf=\"editable.value?.url?.length ?? 0 > 0\" [href]=\"editable.value!.url\" download target=\"_blank\">Download</a>\r\n\r\n</bonc-form-controls>\r\n", styles: [":host{display:block}img{background-image:linear-gradient(45deg,#808080 25%,transparent 25%),linear-gradient(-45deg,#808080 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#808080 75%),linear-gradient(-45deg,transparent 75%,#808080 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0px;display:block;width:100%}a{color:silver}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormControlsComponent, selector: "bonc-form-controls", inputs: ["editable"] }, { kind: "component", type: FileUploaderComponent, selector: "bonc-file-uploader", inputs: ["uploadUrlMap", "src", "uploadTypes"], outputs: ["srcChange"] }] }); }
825
+ }
826
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: OneImageFormComponent, decorators: [{
827
+ type: Component,
828
+ args: [{ selector: 'bonc-one-image-form', hostDirectives: [EditableDirective], template: "<bonc-form-controls [editable]=\"editable\">\r\n <label *ngIf=\"label\">{{label}}</label>\r\n <bonc-file-uploader [src]=\"editable.value\"\r\n [uploadTypes]=\"mimeTypes\"\r\n [uploadUrlMap]=\"uploadMap\"\r\n (srcChange)=\"onFileUploaded($event)\">\r\n <img *ngIf=\"editable.value?.url?.length ?? 0 > 0\" [src]=\"editable.value?.url\" />\r\n </bonc-file-uploader>\r\n\r\n <a *ngIf=\"editable.value?.url?.length ?? 0 > 0\" [href]=\"editable.value!.url\" download target=\"_blank\">Download</a>\r\n\r\n</bonc-form-controls>\r\n", styles: [":host{display:block}img{background-image:linear-gradient(45deg,#808080 25%,transparent 25%),linear-gradient(-45deg,#808080 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#808080 75%),linear-gradient(-45deg,transparent 75%,#808080 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0px;display:block;width:100%}a{color:silver}\n"] }]
829
+ }], ctorParameters: () => [{ type: EditableDirective, decorators: [{
830
+ type: Host
831
+ }] }], propDecorators: { label: [{
832
+ type: Input
833
+ }], uploadUrl: [{
834
+ type: Input
835
+ }], mimeTypes: [{
836
+ type: Input
837
+ }] } });
838
+
830
839
  class FileFormComponent extends FormBaseComponent {
831
840
  constructor() {
832
841
  super(...arguments);
@@ -1120,9 +1129,10 @@ const imageFileTypes = imageMimeTypes.join(',');
1120
1129
  const videoFileTypes = videoMimeTypes.join(',');
1121
1130
  const allMediaFileTypes = `${imageFileTypes},${videoFileTypes}`;
1122
1131
  class MediaUploaderComponent {
1123
- constructor(sanitizer, http) {
1132
+ constructor(sanitizer, http, cd) {
1124
1133
  this.sanitizer = sanitizer;
1125
1134
  this.http = http;
1135
+ this.cd = cd;
1126
1136
  this.MediaObjectFit = MediaObjectFit;
1127
1137
  this.srcChange = new EventEmitter();
1128
1138
  this.progress = 0;
@@ -1206,11 +1216,11 @@ class MediaUploaderComponent {
1206
1216
  getEventMessage(event) {
1207
1217
  switch (event.type) {
1208
1218
  case HttpEventType.Sent:
1209
- return;
1219
+ break;
1210
1220
  case HttpEventType.UploadProgress:
1211
1221
  this.progress = event.total === undefined ? 0.5 : event.loaded / event.total;
1212
1222
  this.updateClip();
1213
- return;
1223
+ break;
1214
1224
  case HttpEventType.Response:
1215
1225
  if (event.body === undefined || event.body === null) {
1216
1226
  console.error('media deserialization error. Response body in undefined');
@@ -1224,10 +1234,11 @@ class MediaUploaderComponent {
1224
1234
  };
1225
1235
  this.srcChange.emit(pixmedia);
1226
1236
  }
1227
- return;
1237
+ break;
1228
1238
  default:
1229
- return;
1239
+ break;
1230
1240
  }
1241
+ this.cd.detectChanges();
1231
1242
  }
1232
1243
  updateClip() {
1233
1244
  this.clipStyle = this.sanitizer.bypassSecurityTrustStyle(`inset(0px 100% 0px 0%)`);
@@ -1241,13 +1252,13 @@ class MediaUploaderComponent {
1241
1252
  };
1242
1253
  return func;
1243
1254
  }
1244
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: MediaUploaderComponent, deps: [{ token: i1$1.DomSanitizer }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
1255
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: MediaUploaderComponent, deps: [{ token: i1$1.DomSanitizer }, { token: i1$2.HttpClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1245
1256
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: MediaUploaderComponent, selector: "bonc-media-uploader", inputs: { uploadUrlMap: "uploadUrlMap", forceRatio: "forceRatio", src: "src", uploadType: "uploadType" }, outputs: { srcChange: "srcChange" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, static: true }], ngImport: i0, template: "<bon-media [src]=\"src\" [objectFit]=\"MediaObjectFit.Cover\"></bon-media>\r\n\r\n<div *ngIf=\"src?.sources?.length===0\">Upload media</div>\r\n\r\n<div (click)=\"selectFile($event)\" class=\"media-container\">\r\n <input #fileInput [accept]=\"fileTypeMask\" (change)=\"onFileSelect(fileInput)\" name=\"media\" type=\"file\" />\r\n <span *ngIf=\"isUploading\"\r\n [style.clip-path]=\"clipStyle\"\r\n [style.-webkit-clip-path]=\"clipStyle\"\r\n class=\"loader\"></span>\r\n\r\n <span *ngIf=\"isUploading\" class=\"loader-text\">\r\n <span *ngIf=\"progress < 1\">{{100 * progress | number: '1.0-0'}}%</span>\r\n <span *ngIf=\"progress >= 1\">converting</span>\r\n </span>\r\n</div>\r\n", styles: [":host{display:block;background-color:#000;position:relative}.media-container{display:block;position:absolute;inset:0;cursor:pointer}.media-container:hover:hover:after{display:flex;justify-content:center;align-items:center;content:\"\";position:absolute;color:silver;inset:0;font-weight:700;font-size:50pt;pointer-events:none;background-color:#ccff00b3}.media-container img,.media-container video{display:block;position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}input[type=file]{display:none}.loader{position:absolute;inset:0;background-color:#cf0}.loader-text{background-color:#000;position:absolute;top:50%;left:0;right:0;text-align:center;font-size:20pt;margin-top:-10pt;color:#fff}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MarcyMediaComponent, selector: "bon-media", inputs: ["src", "objectFit"], outputs: ["isLoaded"] }, { kind: "pipe", type: i2$1.DecimalPipe, name: "number" }] }); }
1246
1257
  }
1247
1258
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: MediaUploaderComponent, decorators: [{
1248
1259
  type: Component,
1249
1260
  args: [{ selector: 'bonc-media-uploader', template: "<bon-media [src]=\"src\" [objectFit]=\"MediaObjectFit.Cover\"></bon-media>\r\n\r\n<div *ngIf=\"src?.sources?.length===0\">Upload media</div>\r\n\r\n<div (click)=\"selectFile($event)\" class=\"media-container\">\r\n <input #fileInput [accept]=\"fileTypeMask\" (change)=\"onFileSelect(fileInput)\" name=\"media\" type=\"file\" />\r\n <span *ngIf=\"isUploading\"\r\n [style.clip-path]=\"clipStyle\"\r\n [style.-webkit-clip-path]=\"clipStyle\"\r\n class=\"loader\"></span>\r\n\r\n <span *ngIf=\"isUploading\" class=\"loader-text\">\r\n <span *ngIf=\"progress < 1\">{{100 * progress | number: '1.0-0'}}%</span>\r\n <span *ngIf=\"progress >= 1\">converting</span>\r\n </span>\r\n</div>\r\n", styles: [":host{display:block;background-color:#000;position:relative}.media-container{display:block;position:absolute;inset:0;cursor:pointer}.media-container:hover:hover:after{display:flex;justify-content:center;align-items:center;content:\"\";position:absolute;color:silver;inset:0;font-weight:700;font-size:50pt;pointer-events:none;background-color:#ccff00b3}.media-container img,.media-container video{display:block;position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}input[type=file]{display:none}.loader{position:absolute;inset:0;background-color:#cf0}.loader-text{background-color:#000;position:absolute;top:50%;left:0;right:0;text-align:center;font-size:20pt;margin-top:-10pt;color:#fff}\n"] }]
1250
- }], ctorParameters: () => [{ type: i1$1.DomSanitizer }, { type: i1$2.HttpClient }], propDecorators: { fileInput: [{
1261
+ }], ctorParameters: () => [{ type: i1$1.DomSanitizer }, { type: i1$2.HttpClient }, { type: i0.ChangeDetectorRef }], propDecorators: { fileInput: [{
1251
1262
  type: ViewChild,
1252
1263
  args: ['fileInput', { static: true }]
1253
1264
  }], srcChange: [{