@seniorsistemas/angular-components 17.3.8 → 17.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/seniorsistemas-angular-components.umd.js +22 -43
- package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
- package/components/dynamic-form/configurations/fields/field.d.ts +42 -0
- package/components/dynamic-form/configurations/form-field.d.ts +24 -0
- package/components/image-cropper/image-cropper.component.d.ts +2 -2
- package/esm2015/components/dynamic-form/components/dynamic-field/dynamic-field.component.js +2 -2
- package/esm2015/components/dynamic-form/components/grid/row/row.component.js +25 -1
- package/esm2015/components/dynamic-form/configurations/fields/field.js +9 -1
- package/esm2015/components/dynamic-form/configurations/form-field.js +1 -1
- package/esm2015/components/image-cropper/image-cropper.component.js +15 -20
- package/esm5/components/dynamic-form/components/dynamic-field/dynamic-field.component.js +2 -2
- package/esm5/components/dynamic-form/components/grid/row/row.component.js +2 -2
- package/esm5/components/dynamic-form/configurations/fields/field.js +10 -1
- package/esm5/components/dynamic-form/configurations/form-field.js +1 -1
- package/esm5/components/image-cropper/image-cropper.component.js +15 -21
- package/fesm2015/seniorsistemas-angular-components.js +46 -42
- package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-angular-components.js +23 -44
- package/fesm5/seniorsistemas-angular-components.js.map +1 -1
- package/package.json +2 -2
- package/seniorsistemas-angular-components.metadata.json +1 -1
- package/components/utils/image-utils.d.ts +0 -4
- package/esm2015/components/utils/image-utils.js +0 -25
- package/esm5/components/utils/image-utils.js +0 -25
|
@@ -4232,6 +4232,13 @@
|
|
|
4232
4232
|
var Field = /** @class */ (function () {
|
|
4233
4233
|
function Field(config) {
|
|
4234
4234
|
var _this = this;
|
|
4235
|
+
var _a, _b, _c, _d;
|
|
4236
|
+
if ((_a = config.footer) === null || _a === void 0 ? void 0 : _a.help) {
|
|
4237
|
+
config.footer.help = __assign({ visible: function () { return true; } }, (_b = config.footer) === null || _b === void 0 ? void 0 : _b.help);
|
|
4238
|
+
}
|
|
4239
|
+
if ((_c = config.footer) === null || _c === void 0 ? void 0 : _c.link) {
|
|
4240
|
+
config.footer.link = __assign({ visible: function () { return true; } }, (_d = config.footer) === null || _d === void 0 ? void 0 : _d.link);
|
|
4241
|
+
}
|
|
4235
4242
|
this.required = config.required || (function () { return false; });
|
|
4236
4243
|
this.visible = config.visible || (function () { return true; });
|
|
4237
4244
|
this.id = config.id;
|
|
@@ -4245,6 +4252,7 @@
|
|
|
4245
4252
|
this.size = new FieldSize(config.size || {});
|
|
4246
4253
|
this.errorMessages = config.errorMessages;
|
|
4247
4254
|
this.bottomTemplate = config.bottomTemplate;
|
|
4255
|
+
this.footer = config.footer;
|
|
4248
4256
|
this.gridClass = Object.keys(this.size).map(function (key) { return "ui-" + key + "-" + _this.size[key]; });
|
|
4249
4257
|
this.defaultValue = config.defaultValue;
|
|
4250
4258
|
this.representedBy = config.representedBy;
|
|
@@ -9330,7 +9338,7 @@
|
|
|
9330
9338
|
], RowComponent.prototype, "errorMessages", void 0);
|
|
9331
9339
|
RowComponent = __decorate([
|
|
9332
9340
|
core.Component({
|
|
9333
|
-
template: "\n <div class=\"ui-fluid\" [formGroup]=\"group\">\n <div class=\"ui-g\">\n <ng-container *ngFor=\"let field of config.fields\">\n <div [ngClass]=\"field.gridClass\" *ngIf=\"field.visible()\">\n <label\n [for]=\"field.name\"\n [ngClass]=\"{ 'required': field.required() }\"\n *sInfoSign=\"field.infoSign\"\n >\n {{ field.label }}\n </label>\n <ng-container *sDynamicForm=\"{ id: id, config: field, group: group}\"></ng-container>\n <s-control-errors [form]=\"group\" [control]=\"group.controls[field.name]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"></s-control-errors>\n <ng-template *ngIf=\"field?.bottomTemplate\" [ngTemplateOutlet]=\"field.bottomTemplate\"></ng-template>\n </div>\n </ng-container>\n </div>\n "
|
|
9341
|
+
template: "\n <div class=\"ui-fluid\" [formGroup]=\"group\">\n <div class=\"ui-g\">\n <ng-container *ngFor=\"let field of config.fields\">\n <div [ngClass]=\"field.gridClass\" *ngIf=\"field.visible()\">\n <label\n [for]=\"field.name\"\n [ngClass]=\"{ 'required': field.required() }\"\n *sInfoSign=\"field.infoSign\"\n >\n {{ field.label }}\n </label>\n\n <ng-container *sDynamicForm=\"{ id: id, config: field, group: group}\"></ng-container>\n\n <s-control-errors [form]=\"group\" [control]=\"group.controls[field.name]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"></s-control-errors>\n\n <ng-container *ngIf=\"field.footer\">\n <ng-container *ngIf=\"field.footer.help\">\n <span *ngIf=\"field.footer.help.visible({ abstractControl: group.controls[field.name], formField: field })\" style=\"color: #888B99\">{{ field.footer.help.text }}</span>\n </ng-container>\n\n <ng-container *ngIf=\"field.footer.link\">\n <div\n *ngIf=\"field.footer.link.visible({ abstractControl: group.controls[field.name], formField: field })\"\n class=\"ui-g\"\n style=\"margin-left: -17px\"\n >\n <s-button\n [label]=\"field.footer.link.label\"\n priority=\"link\"\n (onClick)=\"field.footer.link.onClick({ abstractControl: group.controls[field.name], formField: field })\"\n [auxiliary]=\"true\"\n ></s-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template *ngIf=\"field?.bottomTemplate\" [ngTemplateOutlet]=\"field.bottomTemplate\"></ng-template>\n </div>\n </ng-container>\n </div>\n "
|
|
9334
9342
|
})
|
|
9335
9343
|
], RowComponent);
|
|
9336
9344
|
return RowComponent;
|
|
@@ -9366,7 +9374,7 @@
|
|
|
9366
9374
|
DynamicFieldComponent = __decorate([
|
|
9367
9375
|
core.Component({
|
|
9368
9376
|
selector: "s-dynamic-field",
|
|
9369
|
-
template: "<div class=\"ui-fluid\" [formGroup]=\"form\">\n <div class=\"ui-g\">\n <ng-container *ngFor=\"let field of fields\">\n <div\n *ngIf=\"!field.visible || field.visible()\"\n [ngClass]=\"field.gridClass\">\n <span *ngIf=\"field.label\">\n <label\n *sInfoSign=\"field.infoSign
|
|
9377
|
+
template: "<div class=\"ui-fluid\" [formGroup]=\"form\">\n <div class=\"ui-g\">\n <ng-container *ngFor=\"let field of fields\">\n <div\n *ngIf=\"!field.visible || field.visible()\"\n [ngClass]=\"field.gridClass\"\n >\n <span *ngIf=\"field.label\">\n <label\n *sInfoSign=\"\n field.infoSign;\n displayTime: displayTimeInfoSign\n \"\n [for]=\"field.name\"\n [ngClass]=\"{ required: field.required() }\"\n >\n {{ field.label }}\n </label>\n </span>\n\n <ng-container\n *sDynamicForm=\"{\n id: id,\n config: field,\n group: form\n }\"\n ></ng-container>\n\n <s-control-errors\n [form]=\"form\"\n [control]=\"form.controls[field.name]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"\n ></s-control-errors>\n\n <ng-container *ngIf=\"field.footer\">\n <ng-container *ngIf=\"field.footer.help\">\n <span\n *ngIf=\"\n field.footer.help.visible({\n abstractControl: form.controls[field.name],\n formField: field\n })\n \"\n style=\"color: #888b99\"\n >\n {{ field.footer.help.text }}\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"field.footer.link\">\n <div\n *ngIf=\"\n field.footer.link.visible({\n abstractControl: form.controls[field.name],\n formField: field\n })\n \"\n class=\"ui-g\"\n style=\"margin-left: -10px\"\n >\n <s-button\n [label]=\"field.footer.link.label\"\n priority=\"link\"\n (onClick)=\"\n field.footer.link.onClick({\n abstractControl:\n form.controls[field.name],\n formField: field\n })\n \"\n [auxiliary]=\"true\"\n ></s-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template\n *ngIf=\"field?.bottomTemplate\"\n [ngTemplateOutlet]=\"field.bottomTemplate\"\n ></ng-template>\n </div>\n </ng-container>\n </div>\n</div>\n"
|
|
9370
9378
|
})
|
|
9371
9379
|
], DynamicFieldComponent);
|
|
9372
9380
|
return DynamicFieldComponent;
|
|
@@ -12803,30 +12811,6 @@
|
|
|
12803
12811
|
return StructureModule;
|
|
12804
12812
|
}());
|
|
12805
12813
|
|
|
12806
|
-
var ImageUtils;
|
|
12807
|
-
(function (ImageUtils) {
|
|
12808
|
-
function adjustAspectRatio(imageBase64) {
|
|
12809
|
-
return new rxjs.Observable(function (observer) {
|
|
12810
|
-
var image = new Image();
|
|
12811
|
-
image.src = imageBase64;
|
|
12812
|
-
image.onload = function () {
|
|
12813
|
-
var canvas = document.createElement('canvas');
|
|
12814
|
-
var context = canvas.getContext('2d');
|
|
12815
|
-
var size = Math.max(image.naturalWidth, image.naturalHeight);
|
|
12816
|
-
canvas.width = size;
|
|
12817
|
-
canvas.height = size;
|
|
12818
|
-
context.fillStyle = 'rgba(0, 0, 0, 0)';
|
|
12819
|
-
context.fillRect(0, 0, size, size);
|
|
12820
|
-
context.drawImage(image, (size - image.naturalWidth) / 2, (size - image.naturalHeight) / 2);
|
|
12821
|
-
var adjustedImageBase64 = canvas.toDataURL();
|
|
12822
|
-
observer.next(adjustedImageBase64);
|
|
12823
|
-
observer.complete();
|
|
12824
|
-
};
|
|
12825
|
-
});
|
|
12826
|
-
}
|
|
12827
|
-
ImageUtils.adjustAspectRatio = adjustAspectRatio;
|
|
12828
|
-
})(ImageUtils || (ImageUtils = {}));
|
|
12829
|
-
|
|
12830
12814
|
var ImageCropperComponent = /** @class */ (function () {
|
|
12831
12815
|
function ImageCropperComponent() {
|
|
12832
12816
|
this.id = "s-image-cropper-" + ImageCropperComponent_1.nextId++;
|
|
@@ -12862,20 +12846,17 @@
|
|
|
12862
12846
|
}
|
|
12863
12847
|
};
|
|
12864
12848
|
ImageCropperComponent.prototype.initCropper = function () {
|
|
12865
|
-
|
|
12866
|
-
if (this.cropper)
|
|
12849
|
+
if (this.cropper) {
|
|
12867
12850
|
this.cropper.destroy();
|
|
12868
|
-
|
|
12869
|
-
|
|
12870
|
-
|
|
12871
|
-
|
|
12872
|
-
|
|
12873
|
-
|
|
12874
|
-
|
|
12875
|
-
|
|
12876
|
-
|
|
12877
|
-
toggleDragModeOnDblclick: false,
|
|
12878
|
-
});
|
|
12851
|
+
}
|
|
12852
|
+
this.image.nativeElement.src = this.imageSource;
|
|
12853
|
+
this.cropper = new Cropper(this.image.nativeElement, {
|
|
12854
|
+
aspectRatio: this.rounded ? 1 : this.aspectRatio,
|
|
12855
|
+
guides: false,
|
|
12856
|
+
dragMode: "move",
|
|
12857
|
+
minCropBoxHeight: 2,
|
|
12858
|
+
minCropBoxWidth: 2,
|
|
12859
|
+
toggleDragModeOnDblclick: false,
|
|
12879
12860
|
});
|
|
12880
12861
|
};
|
|
12881
12862
|
ImageCropperComponent.prototype.getRoundedCanvas = function (sourceCanvas) {
|
|
@@ -12899,9 +12880,7 @@
|
|
|
12899
12880
|
this.croppedCanvas.emit();
|
|
12900
12881
|
}
|
|
12901
12882
|
else {
|
|
12902
|
-
var _croppedCanvas = this.rounded
|
|
12903
|
-
? this.getRoundedCanvas(this.cropper.getCroppedCanvas())
|
|
12904
|
-
: this.cropper.getCroppedCanvas();
|
|
12883
|
+
var _croppedCanvas = this.rounded ? this.getRoundedCanvas(this.cropper.getCroppedCanvas()) : this.cropper.getCroppedCanvas();
|
|
12905
12884
|
this.croppedCanvas.emit(_croppedCanvas);
|
|
12906
12885
|
this.croppedImage.emit(_croppedCanvas.toDataURL());
|
|
12907
12886
|
}
|
|
@@ -13005,7 +12984,7 @@
|
|
|
13005
12984
|
selector: "s-image-cropper",
|
|
13006
12985
|
template: "<div [id]=\"id\">\n <p-dialog\n styleClass=\"s-image-cropper {{rounded ? 's-image-cropper--rounded' : ''}}\"\n [header]=\"headerSection ? '' : header\"\n [visible]=\"visible\"\n (visibleChange)=\"onModalVisibleChange($event)\"\n [modal]=\"true\"\n [blockScroll]=\"true\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [closeOnEscape]=\"allowCancel\"\n [closable]=\"allowCancel\"\n appendTo=\"body\">\n\n <p-header *ngIf=\"headerSection\">\n <ng-content select=\"s-header\"></ng-content>\n </p-header>\n\n <s-empty-state\n [id]=\"id + '-empty-state'\"\n *ngIf=\"!imageSource\"\n [title]=\"emptyStateTitle\"\n [iconClass]=\"emptyStateIconClass\"\n [primaryActionLabel]=\"emptyStateActionLabel\"\n (primaryAction)=\"onChangeImage()\">\n </s-empty-state>\n\n <div [attr.data-hidden]=\"!imageSource\" class=\"image-container\">\n <img\n [id]=\"id + '-cropper'\"\n #image\n [src]=\"imageSource || ''\"\n alt=\"cropped image\"/>\n </div>\n\n <p-footer>\n <div class=\"ui-fluid\" *ngIf=\"!footerSection\">\n <div class=\"ui-g button-container\">\n\n <div *ngIf=\"allowCancel\" class=\"ui-sm-12 ui-md-3 ui-lg-2 ui-xl-2\">\n <s-button\n [id]=\"id + '-cancel-button'\"\n type=\"button\"\n priority=\"link\"\n [label]=\"cancelLabel\"\n (onClick)=\"onCancel()\">\n </s-button>\n </div>\n\n <div *ngIf=\"imageSource && allowRemove\" class=\"ui-sm-12 ui-md-3 ui-lg-2 ui-xl-2\">\n <s-button\n [id]=\"id + '-remove-button'\"\n type=\"button\"\n priority=\"secondary\"\n [label]=\"removeLabel\"\n (onClick)=\"onRemoveImage()\">\n </s-button>\n </div>\n\n <div *ngIf=\"imageSource && allowSelectAnother\" class=\"ui-sm-12 ui-md-3 ui-lg-2 ui-xl-2\">\n <s-button\n [id]=\"id + '-select-another-button'\"\n type=\"button\"\n priority=\"secondary\"\n [label]=\"selectAnotherLabel\"\n (onClick)=\"onChangeImage()\">\n </s-button>\n </div>\n\n <div class=\"ui-sm-12 ui-md-3 ui-lg-2 ui-xl-2\">\n <s-button\n [id]=\"id + '-crop-button'\"\n type=\"button\"\n [label]=\"cropLabel\"\n (onClick)=\"onCropImage()\">\n </s-button>\n </div>\n </div>\n </div>\n\n <ng-content select=\"s-footer\" *ngIf=\"footerSection\"></ng-content>\n </p-footer>\n </p-dialog>\n</div>",
|
|
13007
12986
|
encapsulation: core.ViewEncapsulation.None,
|
|
13008
|
-
styles: ["/*!\n * Cropper.js v1.
|
|
12987
|
+
styles: ["/*!\n * Cropper.js v1.6.2\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2024-04-21T07:43:02.731Z\n */.cropper-container{-webkit-touch-callout:none;direction:ltr;font-size:0;line-height:0;position:relative;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.cropper-container img{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal,.cropper-wrap-box{bottom:0;left:0;position:absolute;right:0;top:0}.cropper-canvas,.cropper-wrap-box{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:rgba(51,153,255,.75) solid 1px;overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:33.33333%;left:0;top:33.33333%;width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:33.33333%;top:0;width:33.33333%}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:after,.cropper-center:before{background-color:#eee;content:\" \";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media (min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:\" \";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}", ".s-image-cropper{border-radius:0!important;height:80%!important;max-width:100%!important;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-direction:column;flex-direction:column}.s-image-cropper .ui-dialog-content{overflow:hidden;height:auto!important;-ms-flex:1;flex:1;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}.s-image-cropper .ui-dialog-footer,.s-image-cropper .ui-dialog-header{-ms-flex-negative:0;flex-shrink:0;direction:ltr}.s-image-cropper .image-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;height:100%}.s-image-cropper img{max-width:100%;max-height:100%}.s-image-cropper .button-container{-ms-flex-flow:wrap-reverse;flex-flow:wrap-reverse;-ms-flex-pack:end;justify-content:flex-end}.s-image-cropper .cropper-view-box{outline:#fff dashed 2px}.s-image-cropper .cropper-line{opacity:0}.s-image-cropper .cropper-point{background-color:#fff;opacity:1;height:15px;width:15px;border-radius:50%}.s-image-cropper .cropper-point.point-e{right:-8.5px;top:calc(50% - 4.5px)}.s-image-cropper .cropper-point.point-n{top:-8.5px;left:calc(50% - 4.5px)}.s-image-cropper .cropper-point.point-w{left:-8.5px;top:calc(50% - 4.5px)}.s-image-cropper .cropper-point.point-s{bottom:-8.5px;left:calc(50% - 4.5px)}.s-image-cropper .cropper-point.point-ne{right:-8.5px;top:-8.5px}.s-image-cropper .cropper-point.point-nw{left:-8.5px;top:-8.5px}.s-image-cropper .cropper-point.point-sw{left:-8.5px;bottom:-8.5px}.s-image-cropper .cropper-point.point-se{right:-8.5px;bottom:-8.5px}.s-image-cropper--rounded .cropper-face,.s-image-cropper--rounded .cropper-view-box{border-radius:50%}.s-image-cropper--rounded .cropper-view-box{outline:rgba(255,255,255,.3) dashed 1px}.s-image-cropper--rounded .cropper-view-box:after{border:2px dashed #fff;border-radius:50%;content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}@media (max-width:767px){.s-image-cropper{border:none!important;top:0!important;left:0!important;width:100%!important;height:100%!important}}@media (min-width:768px){.s-image-cropper{width:80%!important}}@media (min-width:1200px){.s-image-cropper{width:60%!important}}"]
|
|
13009
12988
|
})
|
|
13010
12989
|
], ImageCropperComponent);
|
|
13011
12990
|
return ImageCropperComponent;
|