tui-image-editor-angular3 14.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +155 -0
- package/esm2020/lib/consts.mjs +170 -0
- package/esm2020/lib/i18n/en.mjs +129 -0
- package/esm2020/lib/i18n/nl.mjs +128 -0
- package/esm2020/lib/i18n/translation.service.mjs +40 -0
- package/esm2020/lib/interfaces/command.mjs +2 -0
- package/esm2020/lib/interfaces/history-item.mjs +343 -0
- package/esm2020/lib/interfaces/image-size.mjs +2 -0
- package/esm2020/lib/interfaces/tools-config.mjs +2 -0
- package/esm2020/lib/menus/buttons/crop/crop.component.mjs +22 -0
- package/esm2020/lib/menus/buttons/delete/delete.component.mjs +40 -0
- package/esm2020/lib/menus/buttons/delete-all/delete-all.component.mjs +27 -0
- package/esm2020/lib/menus/buttons/download/download.component.mjs +40 -0
- package/esm2020/lib/menus/buttons/drag/drag.component.mjs +41 -0
- package/esm2020/lib/menus/buttons/draw/draw.component.mjs +22 -0
- package/esm2020/lib/menus/buttons/filter/filter.component.mjs +22 -0
- package/esm2020/lib/menus/buttons/flip/flip.component.mjs +22 -0
- package/esm2020/lib/menus/buttons/history/history.component.mjs +41 -0
- package/esm2020/lib/menus/buttons/icon/icon.component.mjs +22 -0
- package/esm2020/lib/menus/buttons/load/load.component.mjs +23 -0
- package/esm2020/lib/menus/buttons/mask/mask.component.mjs +22 -0
- package/esm2020/lib/menus/buttons/redo/redo.component.mjs +36 -0
- package/esm2020/lib/menus/buttons/reset/reset.component.mjs +28 -0
- package/esm2020/lib/menus/buttons/rotate/rotate.component.mjs +22 -0
- package/esm2020/lib/menus/buttons/shape/shape.component.mjs +22 -0
- package/esm2020/lib/menus/buttons/text/text.component.mjs +22 -0
- package/esm2020/lib/menus/buttons/undo/undo.component.mjs +36 -0
- package/esm2020/lib/menus/buttons/zoom-in/zoom-in.component.mjs +45 -0
- package/esm2020/lib/menus/buttons/zoom-out/zoom-out.component.mjs +20 -0
- package/esm2020/lib/services/history.service.mjs +86 -0
- package/esm2020/lib/services/tools.config-manager.service.mjs +45 -0
- package/esm2020/lib/submenus/crop/crop.component.mjs +76 -0
- package/esm2020/lib/submenus/draw/draw.component.mjs +149 -0
- package/esm2020/lib/submenus/filter/filter.component.mjs +345 -0
- package/esm2020/lib/submenus/flip/flip.component.mjs +39 -0
- package/esm2020/lib/submenus/icon/icon.component.mjs +119 -0
- package/esm2020/lib/submenus/mask/mask.component.mjs +69 -0
- package/esm2020/lib/submenus/rotate/rotate.component.mjs +57 -0
- package/esm2020/lib/submenus/shape/shape.component.mjs +163 -0
- package/esm2020/lib/submenus/text/text.component.mjs +175 -0
- package/esm2020/lib/svg-definitions/svg-definitions.component.mjs +12 -0
- package/esm2020/lib/tui-image-editor.component.mjs +294 -0
- package/esm2020/lib/tui-image-editor.module.mjs +136 -0
- package/esm2020/lib/utils.mjs +173 -0
- package/esm2020/public-api.mjs +8 -0
- package/esm2020/tui-image-editor-angular2.mjs +5 -0
- package/esm2020/tui-image-editor-angular3.mjs +5 -0
- package/fesm2015/tui-image-editor-angular2.mjs +3166 -0
- package/fesm2015/tui-image-editor-angular2.mjs.map +1 -0
- package/fesm2015/tui-image-editor-angular3.mjs +3166 -0
- package/fesm2015/tui-image-editor-angular3.mjs.map +1 -0
- package/fesm2020/tui-image-editor-angular2.mjs +3126 -0
- package/fesm2020/tui-image-editor-angular2.mjs.map +1 -0
- package/fesm2020/tui-image-editor-angular3.mjs +3126 -0
- package/fesm2020/tui-image-editor-angular3.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/consts.d.ts +144 -0
- package/lib/consts.d.ts.map +1 -0
- package/lib/i18n/en.d.ts +128 -0
- package/lib/i18n/en.d.ts.map +1 -0
- package/lib/i18n/nl.d.ts +127 -0
- package/lib/i18n/nl.d.ts.map +1 -0
- package/lib/i18n/translation.service.d.ts +14 -0
- package/lib/i18n/translation.service.d.ts.map +1 -0
- package/lib/interfaces/command.d.ts +4 -0
- package/lib/interfaces/command.d.ts.map +1 -0
- package/lib/interfaces/history-item.d.ts +26 -0
- package/lib/interfaces/history-item.d.ts.map +1 -0
- package/lib/interfaces/image-size.d.ts +6 -0
- package/lib/interfaces/image-size.d.ts.map +1 -0
- package/lib/interfaces/tools-config.d.ts +14 -0
- package/lib/interfaces/tools-config.d.ts.map +1 -0
- package/lib/menus/buttons/crop/crop.component.d.ts +10 -0
- package/lib/menus/buttons/crop/crop.component.d.ts.map +1 -0
- package/lib/menus/buttons/delete/delete.component.d.ts +13 -0
- package/lib/menus/buttons/delete/delete.component.d.ts.map +1 -0
- package/lib/menus/buttons/delete-all/delete-all.component.d.ts +11 -0
- package/lib/menus/buttons/delete-all/delete-all.component.d.ts.map +1 -0
- package/lib/menus/buttons/download/download.component.d.ts +9 -0
- package/lib/menus/buttons/download/download.component.d.ts.map +1 -0
- package/lib/menus/buttons/drag/drag.component.d.ts +11 -0
- package/lib/menus/buttons/drag/drag.component.d.ts.map +1 -0
- package/lib/menus/buttons/draw/draw.component.d.ts +10 -0
- package/lib/menus/buttons/draw/draw.component.d.ts.map +1 -0
- package/lib/menus/buttons/filter/filter.component.d.ts +10 -0
- package/lib/menus/buttons/filter/filter.component.d.ts.map +1 -0
- package/lib/menus/buttons/flip/flip.component.d.ts +10 -0
- package/lib/menus/buttons/flip/flip.component.d.ts.map +1 -0
- package/lib/menus/buttons/history/history.component.d.ts +13 -0
- package/lib/menus/buttons/history/history.component.d.ts.map +1 -0
- package/lib/menus/buttons/icon/icon.component.d.ts +10 -0
- package/lib/menus/buttons/icon/icon.component.d.ts.map +1 -0
- package/lib/menus/buttons/load/load.component.d.ts +9 -0
- package/lib/menus/buttons/load/load.component.d.ts.map +1 -0
- package/lib/menus/buttons/mask/mask.component.d.ts +10 -0
- package/lib/menus/buttons/mask/mask.component.d.ts.map +1 -0
- package/lib/menus/buttons/redo/redo.component.d.ts +12 -0
- package/lib/menus/buttons/redo/redo.component.d.ts.map +1 -0
- package/lib/menus/buttons/reset/reset.component.d.ts +12 -0
- package/lib/menus/buttons/reset/reset.component.d.ts.map +1 -0
- package/lib/menus/buttons/rotate/rotate.component.d.ts +10 -0
- package/lib/menus/buttons/rotate/rotate.component.d.ts.map +1 -0
- package/lib/menus/buttons/shape/shape.component.d.ts +10 -0
- package/lib/menus/buttons/shape/shape.component.d.ts.map +1 -0
- package/lib/menus/buttons/text/text.component.d.ts +10 -0
- package/lib/menus/buttons/text/text.component.d.ts.map +1 -0
- package/lib/menus/buttons/undo/undo.component.d.ts +12 -0
- package/lib/menus/buttons/undo/undo.component.d.ts.map +1 -0
- package/lib/menus/buttons/zoom-in/zoom-in.component.d.ts +12 -0
- package/lib/menus/buttons/zoom-in/zoom-in.component.d.ts.map +1 -0
- package/lib/menus/buttons/zoom-out/zoom-out.component.d.ts +9 -0
- package/lib/menus/buttons/zoom-out/zoom-out.component.d.ts.map +1 -0
- package/lib/services/history.service.d.ts +45 -0
- package/lib/services/history.service.d.ts.map +1 -0
- package/lib/services/tools.config-manager.service.d.ts +12 -0
- package/lib/services/tools.config-manager.service.d.ts.map +1 -0
- package/lib/submenus/crop/crop.component.d.ts +23 -0
- package/lib/submenus/crop/crop.component.d.ts.map +1 -0
- package/lib/submenus/draw/draw.component.d.ts +32 -0
- package/lib/submenus/draw/draw.component.d.ts.map +1 -0
- package/lib/submenus/filter/filter.component.d.ts +70 -0
- package/lib/submenus/filter/filter.component.d.ts.map +1 -0
- package/lib/submenus/flip/flip.component.d.ts +10 -0
- package/lib/submenus/flip/flip.component.d.ts.map +1 -0
- package/lib/submenus/icon/icon.component.d.ts +24 -0
- package/lib/submenus/icon/icon.component.d.ts.map +1 -0
- package/lib/submenus/mask/mask.component.d.ts +16 -0
- package/lib/submenus/mask/mask.component.d.ts.map +1 -0
- package/lib/submenus/rotate/rotate.component.d.ts +12 -0
- package/lib/submenus/rotate/rotate.component.d.ts.map +1 -0
- package/lib/submenus/shape/shape.component.d.ts +31 -0
- package/lib/submenus/shape/shape.component.d.ts.map +1 -0
- package/lib/submenus/text/text.component.d.ts +31 -0
- package/lib/submenus/text/text.component.d.ts.map +1 -0
- package/lib/svg-definitions/svg-definitions.component.d.ts +6 -0
- package/lib/svg-definitions/svg-definitions.component.d.ts.map +1 -0
- package/lib/tui-image-editor.component.d.ts +71 -0
- package/lib/tui-image-editor.component.d.ts.map +1 -0
- package/lib/tui-image-editor.module.d.ts +48 -0
- package/lib/tui-image-editor.module.d.ts.map +1 -0
- package/lib/utils.d.ts +45 -0
- package/lib/utils.d.ts.map +1 -0
- package/package.json +43 -0
- package/public-api.d.ts +4 -0
- package/public-api.d.ts.map +1 -0
- package/src/checkboxes.scss +95 -0
- package/src/theme.scss +936 -0
- package/tui-image-editor-angular2.d.ts.map +1 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@ngx-translate/core";
|
|
4
|
+
export class TextComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.selected = false;
|
|
7
|
+
this.clicked = new EventEmitter();
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
TextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: TextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11
|
+
TextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: TextComponent, selector: "tui-image-editor-menus-buttons-text", inputs: { imageChosen: "imageChosen", selected: "selected" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<div\r\n (click)=\"imageChosen ? clicked.emit('text') : null\"\r\n [title]=\"'tui-image-editor-angular-menus-buttons-text' | translate\"\r\n [class]=\"\r\n 'tie-btn-text tui-image-editor-item normal ' + (selected ? 'active' : '')\r\n \"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-text\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-text\" class=\"active use-default\"></use>\r\n <use xlink:href=\"#ic-text\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: TextComponent, decorators: [{
|
|
13
|
+
type: Component,
|
|
14
|
+
args: [{ selector: 'tui-image-editor-menus-buttons-text', template: "<div\r\n (click)=\"imageChosen ? clicked.emit('text') : null\"\r\n [title]=\"'tui-image-editor-angular-menus-buttons-text' | translate\"\r\n [class]=\"\r\n 'tie-btn-text tui-image-editor-item normal ' + (selected ? 'active' : '')\r\n \"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-text\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-text\" class=\"active use-default\"></use>\r\n <use xlink:href=\"#ic-text\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n" }]
|
|
15
|
+
}], ctorParameters: function () { return []; }, propDecorators: { imageChosen: [{
|
|
16
|
+
type: Input
|
|
17
|
+
}], selected: [{
|
|
18
|
+
type: Input
|
|
19
|
+
}], clicked: [{
|
|
20
|
+
type: Output
|
|
21
|
+
}] } });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWktaW1hZ2UtZWRpdG9yLWFuZ3VsYXIyL3NyYy9saWIvbWVudXMvYnV0dG9ucy90ZXh0L3RleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVpLWltYWdlLWVkaXRvci1hbmd1bGFyMi9zcmMvbGliL21lbnVzL2J1dHRvbnMvdGV4dC90ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU8vRSxNQUFNLE9BQU8sYUFBYTtJQUt4QjtRQUhTLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDekIsWUFBTyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0lBRXRELENBQUM7OzBHQUxMLGFBQWE7OEZBQWIsYUFBYSwwS0NQMUIsNGdCQWFBOzJGRE5hLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UscUNBQXFDOzBFQUt0QyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHVpLWltYWdlLWVkaXRvci1tZW51cy1idXR0b25zLXRleHQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90ZXh0LmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRleHRDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGltYWdlQ2hvc2VuOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIGNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxufVxyXG4iLCI8ZGl2XHJcbiAgKGNsaWNrKT1cImltYWdlQ2hvc2VuID8gY2xpY2tlZC5lbWl0KCd0ZXh0JykgOiBudWxsXCJcclxuICBbdGl0bGVdPVwiJ3R1aS1pbWFnZS1lZGl0b3ItYW5ndWxhci1tZW51cy1idXR0b25zLXRleHQnIHwgdHJhbnNsYXRlXCJcclxuICBbY2xhc3NdPVwiXHJcbiAgICAndGllLWJ0bi10ZXh0IHR1aS1pbWFnZS1lZGl0b3ItaXRlbSBub3JtYWwgJyArIChzZWxlY3RlZCA/ICdhY3RpdmUnIDogJycpXHJcbiAgXCJcclxuPlxyXG4gIDxzdmcgY2xhc3M9XCJzdmdfaWMtbWVudVwiPlxyXG4gICAgPHVzZSB4bGluazpocmVmPVwiI2ljLXRleHRcIiBjbGFzcz1cIm5vcm1hbCB1c2UtZGVmYXVsdFwiPjwvdXNlPlxyXG4gICAgPHVzZSB4bGluazpocmVmPVwiI2ljLXRleHRcIiBjbGFzcz1cImFjdGl2ZSB1c2UtZGVmYXVsdFwiPjwvdXNlPlxyXG4gICAgPHVzZSB4bGluazpocmVmPVwiI2ljLXRleHRcIiBjbGFzcz1cImhvdmVyIHVzZS1kZWZhdWx0XCI+PC91c2U+XHJcbiAgPC9zdmc+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import { eventNames } from '../../../consts';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@ngx-translate/core";
|
|
5
|
+
export class UndoComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.cancelCroppingRequested = new EventEmitter();
|
|
8
|
+
this.undoStackSize = 0;
|
|
9
|
+
}
|
|
10
|
+
ngOnChanges(changes) {
|
|
11
|
+
var that = this;
|
|
12
|
+
if (changes['imageEditor'] && changes['imageEditor'].currentValue != null) {
|
|
13
|
+
this.imageEditor.on(eventNames.UNDO_STACK_CHANGED, function (length) {
|
|
14
|
+
that.undoStackSize = length;
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
undo() {
|
|
19
|
+
if (this.imageEditor != null && !this.imageEditor.isEmptyUndoStack()) {
|
|
20
|
+
this.cancelCroppingRequested.emit();
|
|
21
|
+
this.imageEditor.deactivateAll();
|
|
22
|
+
this.imageEditor.undo();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
UndoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: UndoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
+
UndoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: UndoComponent, selector: "tui-image-editor-menus-buttons-undo", inputs: { imageEditor: "imageEditor" }, outputs: { cancelCroppingRequested: "cancelCroppingRequested" }, usesOnChanges: true, ngImport: i0, template: "<div\r\n [title]=\"'tui-image-editor-angular-menus-buttons-undo' | translate\"\r\n [class]=\"\r\n 'tie-btn-undo tui-image-editor-item help ' +\r\n (undoStackSize != 0 ? 'enabled' : 'disabled')\r\n \"\r\n (click)=\"undoStackSize != 0 ? undo() : null\"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-undo\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-undo\" class=\"disabled use-default\"></use>\r\n <use xlink:href=\"#ic-undo\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: UndoComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{ selector: 'tui-image-editor-menus-buttons-undo', template: "<div\r\n [title]=\"'tui-image-editor-angular-menus-buttons-undo' | translate\"\r\n [class]=\"\r\n 'tie-btn-undo tui-image-editor-item help ' +\r\n (undoStackSize != 0 ? 'enabled' : 'disabled')\r\n \"\r\n (click)=\"undoStackSize != 0 ? undo() : null\"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-undo\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-undo\" class=\"disabled use-default\"></use>\r\n <use xlink:href=\"#ic-undo\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n" }]
|
|
31
|
+
}], ctorParameters: function () { return []; }, propDecorators: { imageEditor: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], cancelCroppingRequested: [{
|
|
34
|
+
type: Output
|
|
35
|
+
}] } });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5kby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWktaW1hZ2UtZWRpdG9yLWFuZ3VsYXIyL3NyYy9saWIvbWVudXMvYnV0dG9ucy91bmRvL3VuZG8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVpLWltYWdlLWVkaXRvci1hbmd1bGFyMi9zcmMvbGliL21lbnVzL2J1dHRvbnMvdW5kby91bmRvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFPN0MsTUFBTSxPQUFPLGFBQWE7SUFLeEI7UUFIVSw0QkFBdUIsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN4RSxrQkFBYSxHQUFXLENBQUMsQ0FBQztJQUVsQixDQUFDO0lBRWhCLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7UUFDaEIsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUU7WUFDekUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQ2pCLFVBQVUsQ0FBQyxrQkFBa0IsRUFDN0IsVUFBVSxNQUFjO2dCQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztZQUM5QixDQUFDLENBQ0YsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLElBQUksQ0FBQyxXQUFXLElBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFO1lBQ2xFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDOzswR0F6QlUsYUFBYTs4RkFBYixhQUFhLHlNQ2hCMUIsK2hCQWNBOzJGREVhLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UscUNBQXFDOzBFQUt0QyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLHVCQUF1QjtzQkFBaEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBldmVudE5hbWVzIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHVpLWltYWdlLWVkaXRvci1tZW51cy1idXR0b25zLXVuZG8nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91bmRvLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91bmRvLmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVuZG9Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIGltYWdlRWRpdG9yOiBhbnk7XHJcbiAgQE91dHB1dCgpIGNhbmNlbENyb3BwaW5nUmVxdWVzdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIHB1YmxpYyB1bmRvU3RhY2tTaXplOiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHZhciB0aGF0ID0gdGhpcztcclxuICAgIGlmIChjaGFuZ2VzWydpbWFnZUVkaXRvciddICYmIGNoYW5nZXNbJ2ltYWdlRWRpdG9yJ10uY3VycmVudFZhbHVlICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5pbWFnZUVkaXRvci5vbihcclxuICAgICAgICBldmVudE5hbWVzLlVORE9fU1RBQ0tfQ0hBTkdFRCxcclxuICAgICAgICBmdW5jdGlvbiAobGVuZ3RoOiBudW1iZXIpIHtcclxuICAgICAgICAgIHRoYXQudW5kb1N0YWNrU2l6ZSA9IGxlbmd0aDtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1bmRvKCkge1xyXG4gICAgaWYgKHRoaXMuaW1hZ2VFZGl0b3IhPW51bGwgJiYgIXRoaXMuaW1hZ2VFZGl0b3IuaXNFbXB0eVVuZG9TdGFjaygpKSB7XHJcbiAgICAgIHRoaXMuY2FuY2VsQ3JvcHBpbmdSZXF1ZXN0ZWQuZW1pdCgpO1xyXG4gICAgICB0aGlzLmltYWdlRWRpdG9yLmRlYWN0aXZhdGVBbGwoKTtcclxuICAgICAgdGhpcy5pbWFnZUVkaXRvci51bmRvKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBbdGl0bGVdPVwiJ3R1aS1pbWFnZS1lZGl0b3ItYW5ndWxhci1tZW51cy1idXR0b25zLXVuZG8nIHwgdHJhbnNsYXRlXCJcclxuICBbY2xhc3NdPVwiXHJcbiAgICAndGllLWJ0bi11bmRvIHR1aS1pbWFnZS1lZGl0b3ItaXRlbSBoZWxwICcgK1xyXG4gICAgKHVuZG9TdGFja1NpemUgIT0gMCA/ICdlbmFibGVkJyA6ICdkaXNhYmxlZCcpXHJcbiAgXCJcclxuICAoY2xpY2spPVwidW5kb1N0YWNrU2l6ZSAhPSAwID8gdW5kbygpIDogbnVsbFwiXHJcbj5cclxuICA8c3ZnIGNsYXNzPVwic3ZnX2ljLW1lbnVcIj5cclxuICAgIDx1c2UgeGxpbms6aHJlZj1cIiNpYy11bmRvXCIgY2xhc3M9XCJub3JtYWwgdXNlLWRlZmF1bHRcIj48L3VzZT5cclxuICAgIDx1c2UgeGxpbms6aHJlZj1cIiNpYy11bmRvXCIgY2xhc3M9XCJkaXNhYmxlZCB1c2UtZGVmYXVsdFwiPjwvdXNlPlxyXG4gICAgPHVzZSB4bGluazpocmVmPVwiI2ljLXVuZG9cIiBjbGFzcz1cImhvdmVyIHVzZS1kZWZhdWx0XCI+PC91c2U+XHJcbiAgPC9zdmc+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { drawingModes, zoomModes } from '../../../consts';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@ngx-translate/core";
|
|
5
|
+
export class ZoomInComponent {
|
|
6
|
+
constructor() { }
|
|
7
|
+
get isSelected() {
|
|
8
|
+
if (this.imageEditor == null) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
const zoomMode = this.imageEditor?._graphics.getZoomMode();
|
|
12
|
+
return (this.imageEditor.getDrawingMode() == drawingModes.ZOOM &&
|
|
13
|
+
zoomMode !== zoomModes.HAND);
|
|
14
|
+
}
|
|
15
|
+
startZoom() {
|
|
16
|
+
this.imageEditor?.startDrawingMode(drawingModes.ZOOM);
|
|
17
|
+
this.zoomIn();
|
|
18
|
+
}
|
|
19
|
+
zoomIn() {
|
|
20
|
+
this.imageEditor?.deactivateAll();
|
|
21
|
+
this.toggleZoomMode();
|
|
22
|
+
}
|
|
23
|
+
toggleZoomMode() {
|
|
24
|
+
const zoomMode = this.imageEditor?._graphics.getZoomMode();
|
|
25
|
+
this.imageEditor?.stopDrawingMode();
|
|
26
|
+
if (zoomMode !== zoomModes.ZOOM) {
|
|
27
|
+
this.imageEditor?.startDrawingMode(drawingModes.ZOOM);
|
|
28
|
+
this.imageEditor?._graphics.startZoomInMode();
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
this.imageEditor?._graphics.endZoomInMode();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
ZoomInComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ZoomInComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
+
ZoomInComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: ZoomInComponent, selector: "tui-image-editor-menus-buttons-zoom-in", inputs: { imageChosen: "imageChosen", imageEditor: "imageEditor" }, ngImport: i0, template: "<div\r\n [title]=\"'tui-image-editor-angular-menus-buttons-zoomIn' | translate\"\r\n [class]=\"\r\n 'tie-btn-zoomIn tui-image-editor-item help ' +\r\n (imageChosen ? 'enabled ' : 'disabled ') +\r\n (isSelected ? 'active ' : '')\r\n \"\r\n (click)=\"imageChosen ? startZoom() : null\"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-zoom-in\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-zoom-in\" class=\"disabled use-default\"></use>\r\n <use xlink:href=\"#ic-zoom-in\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ZoomInComponent, decorators: [{
|
|
38
|
+
type: Component,
|
|
39
|
+
args: [{ selector: 'tui-image-editor-menus-buttons-zoom-in', template: "<div\r\n [title]=\"'tui-image-editor-angular-menus-buttons-zoomIn' | translate\"\r\n [class]=\"\r\n 'tie-btn-zoomIn tui-image-editor-item help ' +\r\n (imageChosen ? 'enabled ' : 'disabled ') +\r\n (isSelected ? 'active ' : '')\r\n \"\r\n (click)=\"imageChosen ? startZoom() : null\"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-zoom-in\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-zoom-in\" class=\"disabled use-default\"></use>\r\n <use xlink:href=\"#ic-zoom-in\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n" }]
|
|
40
|
+
}], ctorParameters: function () { return []; }, propDecorators: { imageChosen: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], imageEditor: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}] } });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS1pbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWktaW1hZ2UtZWRpdG9yLWFuZ3VsYXIyL3NyYy9saWIvbWVudXMvYnV0dG9ucy96b29tLWluL3pvb20taW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVpLWltYWdlLWVkaXRvci1hbmd1bGFyMi9zcmMvbGliL21lbnVzL2J1dHRvbnMvem9vbS1pbi96b29tLWluLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQU8xRCxNQUFNLE9BQU8sZUFBZTtJQUkxQixnQkFBZSxDQUFDO0lBRWhCLElBQUksVUFBVTtRQUNaLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLEVBQUU7WUFDNUIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzNELE9BQU8sQ0FDTCxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxJQUFJLFlBQVksQ0FBQyxJQUFJO1lBQ3RELFFBQVEsS0FBSyxTQUFTLENBQUMsSUFBSSxDQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVPLE1BQU07UUFDWixJQUFJLENBQUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU8sY0FBYztRQUNwQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUUzRCxJQUFJLENBQUMsV0FBVyxFQUFFLGVBQWUsRUFBRSxDQUFDO1FBQ3BDLElBQUksUUFBUSxLQUFLLFNBQVMsQ0FBQyxJQUFJLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDL0M7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzdDO0lBQ0gsQ0FBQzs7NEdBckNVLGVBQWU7Z0dBQWYsZUFBZSxrSkNSNUIsNGtCQWVBOzJGRFBhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0Usd0NBQXdDOzBFQUt6QyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZHJhd2luZ01vZGVzLCB6b29tTW9kZXMgfSBmcm9tICcuLi8uLi8uLi9jb25zdHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0dWktaW1hZ2UtZWRpdG9yLW1lbnVzLWJ1dHRvbnMtem9vbS1pbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3pvb20taW4uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3pvb20taW4uY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWm9vbUluQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBpbWFnZUNob3NlbjogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpbWFnZUVkaXRvcjogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIGdldCBpc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuaW1hZ2VFZGl0b3IgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zdCB6b29tTW9kZSA9IHRoaXMuaW1hZ2VFZGl0b3I/Ll9ncmFwaGljcy5nZXRab29tTW9kZSgpO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5pbWFnZUVkaXRvci5nZXREcmF3aW5nTW9kZSgpID09IGRyYXdpbmdNb2Rlcy5aT09NICYmXHJcbiAgICAgIHpvb21Nb2RlICE9PSB6b29tTW9kZXMuSEFORFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHN0YXJ0Wm9vbSgpIHtcclxuICAgIHRoaXMuaW1hZ2VFZGl0b3I/LnN0YXJ0RHJhd2luZ01vZGUoZHJhd2luZ01vZGVzLlpPT00pO1xyXG4gICAgdGhpcy56b29tSW4oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgem9vbUluKCkge1xyXG4gICAgdGhpcy5pbWFnZUVkaXRvcj8uZGVhY3RpdmF0ZUFsbCgpO1xyXG4gICAgdGhpcy50b2dnbGVab29tTW9kZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0b2dnbGVab29tTW9kZSgpIHtcclxuICAgIGNvbnN0IHpvb21Nb2RlID0gdGhpcy5pbWFnZUVkaXRvcj8uX2dyYXBoaWNzLmdldFpvb21Nb2RlKCk7XHJcblxyXG4gICAgdGhpcy5pbWFnZUVkaXRvcj8uc3RvcERyYXdpbmdNb2RlKCk7XHJcbiAgICBpZiAoem9vbU1vZGUgIT09IHpvb21Nb2Rlcy5aT09NKSB7XHJcbiAgICAgIHRoaXMuaW1hZ2VFZGl0b3I/LnN0YXJ0RHJhd2luZ01vZGUoZHJhd2luZ01vZGVzLlpPT00pO1xyXG4gICAgICB0aGlzLmltYWdlRWRpdG9yPy5fZ3JhcGhpY3Muc3RhcnRab29tSW5Nb2RlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmltYWdlRWRpdG9yPy5fZ3JhcGhpY3MuZW5kWm9vbUluTW9kZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgW3RpdGxlXT1cIid0dWktaW1hZ2UtZWRpdG9yLWFuZ3VsYXItbWVudXMtYnV0dG9ucy16b29tSW4nIHwgdHJhbnNsYXRlXCJcclxuICBbY2xhc3NdPVwiXHJcbiAgICAndGllLWJ0bi16b29tSW4gdHVpLWltYWdlLWVkaXRvci1pdGVtIGhlbHAgJyArXHJcbiAgICAoaW1hZ2VDaG9zZW4gPyAnZW5hYmxlZCAnIDogJ2Rpc2FibGVkICcpICtcclxuICAgIChpc1NlbGVjdGVkID8gJ2FjdGl2ZSAnIDogJycpXHJcbiAgXCJcclxuICAoY2xpY2spPVwiaW1hZ2VDaG9zZW4gPyBzdGFydFpvb20oKSA6IG51bGxcIlxyXG4+XHJcbiAgPHN2ZyBjbGFzcz1cInN2Z19pYy1tZW51XCI+XHJcbiAgICA8dXNlIHhsaW5rOmhyZWY9XCIjaWMtem9vbS1pblwiIGNsYXNzPVwibm9ybWFsIHVzZS1kZWZhdWx0XCI+PC91c2U+XHJcbiAgICA8dXNlIHhsaW5rOmhyZWY9XCIjaWMtem9vbS1pblwiIGNsYXNzPVwiZGlzYWJsZWQgdXNlLWRlZmF1bHRcIj48L3VzZT5cclxuICAgIDx1c2UgeGxpbms6aHJlZj1cIiNpYy16b29tLWluXCIgY2xhc3M9XCJob3ZlciB1c2UtZGVmYXVsdFwiPjwvdXNlPlxyXG4gIDwvc3ZnPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@ngx-translate/core";
|
|
4
|
+
export class ZoomOutComponent {
|
|
5
|
+
constructor() { }
|
|
6
|
+
zoomOut() {
|
|
7
|
+
this.imageEditor?._graphics.zoomOut();
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
ZoomOutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ZoomOutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11
|
+
ZoomOutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: ZoomOutComponent, selector: "tui-image-editor-menus-buttons-zoom-out", inputs: { imageChosen: "imageChosen", imageEditor: "imageEditor" }, ngImport: i0, template: "<div\r\n [title]=\"'tui-image-editor-angular-menus-buttons-zoomOut' | translate\"\r\n [class]=\"\r\n 'tie-btn-zoomOut tui-image-editor-item help ' +\r\n (imageChosen ? 'enabled ' : 'disabled ')\r\n \"\r\n (click)=\"imageChosen ? zoomOut() : null\"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-zoom-out\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-zoom-out\" class=\"disabled use-default\"></use>\r\n <use xlink:href=\"#ic-zoom-out\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ZoomOutComponent, decorators: [{
|
|
13
|
+
type: Component,
|
|
14
|
+
args: [{ selector: 'tui-image-editor-menus-buttons-zoom-out', template: "<div\r\n [title]=\"'tui-image-editor-angular-menus-buttons-zoomOut' | translate\"\r\n [class]=\"\r\n 'tie-btn-zoomOut tui-image-editor-item help ' +\r\n (imageChosen ? 'enabled ' : 'disabled ')\r\n \"\r\n (click)=\"imageChosen ? zoomOut() : null\"\r\n>\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-zoom-out\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-zoom-out\" class=\"disabled use-default\"></use>\r\n <use xlink:href=\"#ic-zoom-out\" class=\"hover use-default\"></use>\r\n </svg>\r\n</div>\r\n" }]
|
|
15
|
+
}], ctorParameters: function () { return []; }, propDecorators: { imageChosen: [{
|
|
16
|
+
type: Input
|
|
17
|
+
}], imageEditor: [{
|
|
18
|
+
type: Input
|
|
19
|
+
}] } });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS1vdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVpLWltYWdlLWVkaXRvci1hbmd1bGFyMi9zcmMvbGliL21lbnVzL2J1dHRvbnMvem9vbS1vdXQvem9vbS1vdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVpLWltYWdlLWVkaXRvci1hbmd1bGFyMi9zcmMvbGliL21lbnVzL2J1dHRvbnMvem9vbS1vdXQvem9vbS1vdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7OztBQU96RCxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLGdCQUFlLENBQUM7SUFFaEIsT0FBTztRQUNMLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hDLENBQUM7OzZHQVJVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLG1KQ1A3Qix3aUJBY0E7MkZEUGEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLHlDQUF5QzswRUFLMUMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3R1aS1pbWFnZS1lZGl0b3ItbWVudXMtYnV0dG9ucy16b29tLW91dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3pvb20tb3V0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi96b29tLW91dC5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBab29tT3V0Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSBpbWFnZUNob3NlbjogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpbWFnZUVkaXRvcjogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIHpvb21PdXQoKSB7XHJcbiAgICB0aGlzLmltYWdlRWRpdG9yPy5fZ3JhcGhpY3Muem9vbU91dCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgW3RpdGxlXT1cIid0dWktaW1hZ2UtZWRpdG9yLWFuZ3VsYXItbWVudXMtYnV0dG9ucy16b29tT3V0JyB8IHRyYW5zbGF0ZVwiXHJcbiAgW2NsYXNzXT1cIlxyXG4gICAgJ3RpZS1idG4tem9vbU91dCB0dWktaW1hZ2UtZWRpdG9yLWl0ZW0gaGVscCAnICtcclxuICAgIChpbWFnZUNob3NlbiA/ICdlbmFibGVkICcgOiAnZGlzYWJsZWQgJylcclxuICBcIlxyXG4gIChjbGljayk9XCJpbWFnZUNob3NlbiA/IHpvb21PdXQoKSA6IG51bGxcIlxyXG4+XHJcbiAgPHN2ZyBjbGFzcz1cInN2Z19pYy1tZW51XCI+XHJcbiAgICA8dXNlIHhsaW5rOmhyZWY9XCIjaWMtem9vbS1vdXRcIiBjbGFzcz1cIm5vcm1hbCB1c2UtZGVmYXVsdFwiPjwvdXNlPlxyXG4gICAgPHVzZSB4bGluazpocmVmPVwiI2ljLXpvb20tb3V0XCIgY2xhc3M9XCJkaXNhYmxlZCB1c2UtZGVmYXVsdFwiPjwvdXNlPlxyXG4gICAgPHVzZSB4bGluazpocmVmPVwiI2ljLXpvb20tb3V0XCIgY2xhc3M9XCJob3ZlciB1c2UtZGVmYXVsdFwiPjwvdXNlPlxyXG4gIDwvc3ZnPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import { historyNames } from '../consts';
|
|
4
|
+
import { HistoryItem } from '../interfaces/history-item';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../i18n/translation.service";
|
|
7
|
+
export class HistoryService {
|
|
8
|
+
constructor(translationService) {
|
|
9
|
+
this.translationService = translationService;
|
|
10
|
+
this.items = [];
|
|
11
|
+
this.historyIndex = -1;
|
|
12
|
+
this.onChangeEmitter = new BehaviorSubject([]);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Get list's length
|
|
16
|
+
*/
|
|
17
|
+
get listLength() {
|
|
18
|
+
return this.items.length;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Clear history
|
|
22
|
+
*/
|
|
23
|
+
clear() {
|
|
24
|
+
if (this.listLength > 0) {
|
|
25
|
+
this.deleteListItemElement(0, this.listLength);
|
|
26
|
+
this.historyIndex = -1;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Whether history menu has disabled item
|
|
31
|
+
*/
|
|
32
|
+
hasDisabledItem() {
|
|
33
|
+
return this.listLength - 1 > this.historyIndex;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Push list item element
|
|
37
|
+
*/
|
|
38
|
+
pushListItemElement(item) {
|
|
39
|
+
this.items.push(item);
|
|
40
|
+
}
|
|
41
|
+
add(command, imageEditor) {
|
|
42
|
+
console.debug(command);
|
|
43
|
+
if (typeof command === 'string' && command === historyNames.LOAD_IMAGE) {
|
|
44
|
+
this.deleteListItemElement(0, this.listLength);
|
|
45
|
+
}
|
|
46
|
+
if (this.hasDisabledItem()) {
|
|
47
|
+
this.deleteListItemElement(this.historyIndex + 1, this.listLength);
|
|
48
|
+
}
|
|
49
|
+
if (typeof command === 'string' &&
|
|
50
|
+
command === historyNames.ADD_MASK_IMAGE) {
|
|
51
|
+
imageEditor?.clearRedoStack();
|
|
52
|
+
imageEditor?.clearUndoStack();
|
|
53
|
+
this.deleteListItemElement(0, this.listLength);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
this.pushListItemElement(new HistoryItem(command, this.translationService, imageEditor));
|
|
57
|
+
this.historyIndex = this.listLength - 1;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Select previous history of current selected history
|
|
62
|
+
*/
|
|
63
|
+
prev() {
|
|
64
|
+
this.historyIndex -= 1;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Select next history of current selected history
|
|
68
|
+
*/
|
|
69
|
+
next() {
|
|
70
|
+
this.historyIndex += 1;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Delete list item element
|
|
74
|
+
* @param {number} start - start index to delete
|
|
75
|
+
* @param {number} end - end index to delete
|
|
76
|
+
*/
|
|
77
|
+
deleteListItemElement(start, end) {
|
|
78
|
+
this.items.splice(start, end - start + 1);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
HistoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: HistoryService, deps: [{ token: i1.TranslationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
82
|
+
HistoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: HistoryService });
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: HistoryService, decorators: [{
|
|
84
|
+
type: Injectable
|
|
85
|
+
}], ctorParameters: function () { return [{ type: i1.TranslationService }]; } });
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVpLWltYWdlLWVkaXRvci1hbmd1bGFyMi9zcmMvbGliL3NlcnZpY2VzL2hpc3Rvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUd6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUl6RCxNQUFNLE9BQU8sY0FBYztJQU96QixZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQU5uRCxVQUFLLEdBQWtCLEVBQUUsQ0FBQztRQUMxQixpQkFBWSxHQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzFCLG9CQUFlLEdBQW1DLElBQUksZUFBZSxDQUMxRSxFQUFFLENBQ0gsQ0FBQztJQUUyRCxDQUFDO0lBRTlEOztPQUVHO0lBQ0gsSUFBWSxVQUFVO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSztRQUNILElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUU7WUFDdkIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLGVBQWU7UUFDckIsT0FBTyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ2pELENBQUM7SUFFRDs7T0FFRztJQUNLLG1CQUFtQixDQUFDLElBQWlCO1FBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxHQUFHLENBQUMsT0FBeUIsRUFBRSxXQUFnQjtRQUNwRCxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXZCLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxZQUFZLENBQUMsVUFBVSxFQUFFO1lBQ3RFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ2hEO1FBRUQsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUU7WUFDMUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNwRTtRQUVELElBQ0UsT0FBTyxPQUFPLEtBQUssUUFBUTtZQUMzQixPQUFPLEtBQUssWUFBWSxDQUFDLGNBQWMsRUFDdkM7WUFDQSxXQUFXLEVBQUUsY0FBYyxFQUFFLENBQUM7WUFDOUIsV0FBVyxFQUFFLGNBQWMsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ2hEO2FBQU07WUFDTCxJQUFJLENBQUMsbUJBQW1CLENBQ3RCLElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLENBQy9ELENBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSTtRQUNGLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUk7UUFDRixJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLHFCQUFxQixDQUFDLEtBQWEsRUFBRSxHQUFXO1FBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7OzJHQXZGVSxjQUFjOytHQUFkLGNBQWM7MkZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGhpc3RvcnlOYW1lcyB9IGZyb20gJy4uL2NvbnN0cyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uL2kxOG4vdHJhbnNsYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbW1hbmQnO1xyXG5pbXBvcnQgeyBIaXN0b3J5SXRlbSB9IGZyb20gJy4uL2ludGVyZmFjZXMvaGlzdG9yeS1pdGVtJztcclxuaW1wb3J0IHsgZ2V0SGlzdG9yeVRpdGxlIH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSGlzdG9yeVNlcnZpY2Uge1xyXG4gIHB1YmxpYyBpdGVtczogSGlzdG9yeUl0ZW1bXSA9IFtdO1xyXG4gIHB1YmxpYyBoaXN0b3J5SW5kZXg6IG51bWJlciA9IC0xO1xyXG4gIHB1YmxpYyBvbkNoYW5nZUVtaXR0ZXI6IEJlaGF2aW9yU3ViamVjdDxIaXN0b3J5SXRlbVtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXHJcbiAgICBbXVxyXG4gICk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGlvblNlcnZpY2UpIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBsaXN0J3MgbGVuZ3RoXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXQgbGlzdExlbmd0aCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgaGlzdG9yeVxyXG4gICAqL1xyXG4gIGNsZWFyKCkge1xyXG4gICAgaWYgKHRoaXMubGlzdExlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5kZWxldGVMaXN0SXRlbUVsZW1lbnQoMCwgdGhpcy5saXN0TGVuZ3RoKTtcclxuICAgICAgdGhpcy5oaXN0b3J5SW5kZXggPSAtMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgaGlzdG9yeSBtZW51IGhhcyBkaXNhYmxlZCBpdGVtXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBoYXNEaXNhYmxlZEl0ZW0oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5saXN0TGVuZ3RoIC0gMSA+IHRoaXMuaGlzdG9yeUluZGV4O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHVzaCBsaXN0IGl0ZW0gZWxlbWVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgcHVzaExpc3RJdGVtRWxlbWVudChpdGVtOiBIaXN0b3J5SXRlbSkge1xyXG4gICAgdGhpcy5pdGVtcy5wdXNoKGl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZChjb21tYW5kOiBzdHJpbmcgfCBDb21tYW5kLCBpbWFnZUVkaXRvcjogYW55KSB7XHJcbiAgICBjb25zb2xlLmRlYnVnKGNvbW1hbmQpO1xyXG5cclxuICAgIGlmICh0eXBlb2YgY29tbWFuZCA9PT0gJ3N0cmluZycgJiYgY29tbWFuZCA9PT0gaGlzdG9yeU5hbWVzLkxPQURfSU1BR0UpIHtcclxuICAgICAgdGhpcy5kZWxldGVMaXN0SXRlbUVsZW1lbnQoMCwgdGhpcy5saXN0TGVuZ3RoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5oYXNEaXNhYmxlZEl0ZW0oKSkge1xyXG4gICAgICB0aGlzLmRlbGV0ZUxpc3RJdGVtRWxlbWVudCh0aGlzLmhpc3RvcnlJbmRleCArIDEsIHRoaXMubGlzdExlbmd0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0eXBlb2YgY29tbWFuZCA9PT0gJ3N0cmluZycgJiZcclxuICAgICAgY29tbWFuZCA9PT0gaGlzdG9yeU5hbWVzLkFERF9NQVNLX0lNQUdFXHJcbiAgICApIHtcclxuICAgICAgaW1hZ2VFZGl0b3I/LmNsZWFyUmVkb1N0YWNrKCk7XHJcbiAgICAgIGltYWdlRWRpdG9yPy5jbGVhclVuZG9TdGFjaygpO1xyXG4gICAgICB0aGlzLmRlbGV0ZUxpc3RJdGVtRWxlbWVudCgwLCB0aGlzLmxpc3RMZW5ndGgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wdXNoTGlzdEl0ZW1FbGVtZW50KFxyXG4gICAgICAgIG5ldyBIaXN0b3J5SXRlbShjb21tYW5kLCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZSwgaW1hZ2VFZGl0b3IpXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuaGlzdG9yeUluZGV4ID0gdGhpcy5saXN0TGVuZ3RoIC0gMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbGVjdCBwcmV2aW91cyBoaXN0b3J5IG9mIGN1cnJlbnQgc2VsZWN0ZWQgaGlzdG9yeVxyXG4gICAqL1xyXG4gIHByZXYoKSB7XHJcbiAgICB0aGlzLmhpc3RvcnlJbmRleCAtPSAxO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VsZWN0IG5leHQgaGlzdG9yeSBvZiBjdXJyZW50IHNlbGVjdGVkIGhpc3RvcnlcclxuICAgKi9cclxuICBuZXh0KCkge1xyXG4gICAgdGhpcy5oaXN0b3J5SW5kZXggKz0gMTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZSBsaXN0IGl0ZW0gZWxlbWVudFxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydCAtIHN0YXJ0IGluZGV4IHRvIGRlbGV0ZVxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBlbmQgLSBlbmQgaW5kZXggdG8gZGVsZXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkZWxldGVMaXN0SXRlbUVsZW1lbnQoc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpIHtcclxuICAgIHRoaXMuaXRlbXMuc3BsaWNlKHN0YXJ0LCBlbmQgLSBzdGFydCArIDEpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ToolsConfigService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.defaultConfig = {
|
|
7
|
+
pen: {
|
|
8
|
+
drawStrokeWidthValue: 5,
|
|
9
|
+
drawType: 'free',
|
|
10
|
+
drawStrokeColor: 'rgb(60, 60, 60)'
|
|
11
|
+
},
|
|
12
|
+
text: {
|
|
13
|
+
fontSize: 16,
|
|
14
|
+
fontFamily: 'Arial',
|
|
15
|
+
color: '#000000',
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
this.configSubject = new BehaviorSubject(this.defaultConfig);
|
|
19
|
+
this.config$ = this.configSubject.asObservable();
|
|
20
|
+
}
|
|
21
|
+
updateConfig(tool, newConfig) {
|
|
22
|
+
const currentConfig = this.configSubject.getValue();
|
|
23
|
+
const updatedToolConfig = { ...currentConfig[tool], ...newConfig };
|
|
24
|
+
this.configSubject.next({
|
|
25
|
+
...currentConfig,
|
|
26
|
+
[tool]: updatedToolConfig,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
changePenConfig(newConfig) {
|
|
30
|
+
const currentConf = this.configSubject.getValue();
|
|
31
|
+
this.updateConfig('pen', { ...currentConf.pen, ...newConfig });
|
|
32
|
+
}
|
|
33
|
+
changeTextConfig(newConfig) {
|
|
34
|
+
this.updateConfig('text', { ...this.defaultConfig.text, ...newConfig });
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
ToolsConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ToolsConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
38
|
+
ToolsConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ToolsConfigService, providedIn: 'root' });
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ToolsConfigService, decorators: [{
|
|
40
|
+
type: Injectable,
|
|
41
|
+
args: [{
|
|
42
|
+
providedIn: 'root'
|
|
43
|
+
}]
|
|
44
|
+
}] });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMuY29uZmlnLW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1aS1pbWFnZS1lZGl0b3ItYW5ndWxhcjIvc3JjL2xpYi9zZXJ2aWNlcy90b29scy5jb25maWctbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFNdkMsTUFBTSxPQUFPLGtCQUFrQjtJQUgvQjtRQUlVLGtCQUFhLEdBQWU7WUFDbEMsR0FBRyxFQUFFO2dCQUNILG9CQUFvQixFQUFDLENBQUM7Z0JBQ3RCLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixlQUFlLEVBQUMsaUJBQWlCO2FBQ2xDO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLFFBQVEsRUFBRSxFQUFFO2dCQUNaLFVBQVUsRUFBRSxPQUFPO2dCQUNuQixLQUFLLEVBQUUsU0FBUzthQUNqQjtTQUNGLENBQUM7UUFFTSxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFhLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1RSxZQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztLQW1CN0M7SUFqQkMsWUFBWSxDQUFDLElBQXNCLEVBQUUsU0FBMEM7UUFDN0UsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNwRCxNQUFNLGlCQUFpQixHQUFHLEVBQUUsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQztRQUNuRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztZQUN0QixHQUFHLGFBQWE7WUFDaEIsQ0FBQyxJQUFJLENBQUMsRUFBRSxpQkFBaUI7U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FBQyxTQUE2QjtRQUMzQyxNQUFNLFdBQVcsR0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEVBQUMsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFDLEdBQUcsU0FBUyxFQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsU0FBOEI7UUFDN0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFDLEdBQUcsU0FBUyxFQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDOzsrR0FqQ1Usa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVG9vbENvbmZpZywgUGVuQ29uZmlnLCBUZXh0Q29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90b29scy1jb25maWcnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9vbHNDb25maWdTZXJ2aWNlIHtcclxuICBwcml2YXRlIGRlZmF1bHRDb25maWc6IFRvb2xDb25maWcgPSB7XHJcbiAgICBwZW46IHtcclxuICAgICAgZHJhd1N0cm9rZVdpZHRoVmFsdWU6NSxcclxuICAgICAgZHJhd1R5cGU6ICdmcmVlJyxcclxuICAgICAgZHJhd1N0cm9rZUNvbG9yOidyZ2IoNjAsIDYwLCA2MCknXHJcbiAgICB9LFxyXG4gICAgdGV4dDoge1xyXG4gICAgICBmb250U2l6ZTogMTYsXHJcbiAgICAgIGZvbnRGYW1pbHk6ICdBcmlhbCcsXHJcbiAgICAgIGNvbG9yOiAnIzAwMDAwMCcsXHJcbiAgICB9LFxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgY29uZmlnU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VG9vbENvbmZpZz4odGhpcy5kZWZhdWx0Q29uZmlnKTtcclxuICBjb25maWckID0gdGhpcy5jb25maWdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICB1cGRhdGVDb25maWcodG9vbDoga2V5b2YgVG9vbENvbmZpZywgbmV3Q29uZmlnOiBQYXJ0aWFsPFBlbkNvbmZpZyB8IFRleHRDb25maWc+KSB7XHJcbiAgICBjb25zdCBjdXJyZW50Q29uZmlnID0gdGhpcy5jb25maWdTdWJqZWN0LmdldFZhbHVlKCk7XHJcbiAgICBjb25zdCB1cGRhdGVkVG9vbENvbmZpZyA9IHsgLi4uY3VycmVudENvbmZpZ1t0b29sXSwgLi4ubmV3Q29uZmlnIH07XHJcbiAgICB0aGlzLmNvbmZpZ1N1YmplY3QubmV4dCh7XHJcbiAgICAgIC4uLmN1cnJlbnRDb25maWcsXHJcbiAgICAgIFt0b29sXTogdXBkYXRlZFRvb2xDb25maWcsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVBlbkNvbmZpZyhuZXdDb25maWc6IFBhcnRpYWw8UGVuQ29uZmlnPikge1xyXG4gICAgY29uc3QgY3VycmVudENvbmY9dGhpcy5jb25maWdTdWJqZWN0LmdldFZhbHVlKCk7XHJcbiAgICB0aGlzLnVwZGF0ZUNvbmZpZygncGVuJywgey4uLmN1cnJlbnRDb25mLnBlbiwuLi5uZXdDb25maWd9KTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVRleHRDb25maWcobmV3Q29uZmlnOiBQYXJ0aWFsPFRleHRDb25maWc+KSB7XHJcbiAgICB0aGlzLnVwZGF0ZUNvbmZpZygndGV4dCcsIHsuLi50aGlzLmRlZmF1bHRDb25maWcudGV4dCwuLi5uZXdDb25maWd9KTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import { cropModes, eventNames, historyNames } from '../../consts';
|
|
3
|
+
import { isEmptyCropzone } from '../../utils';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@ngx-translate/core";
|
|
6
|
+
export class CropComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.activeCropMode = cropModes.PRESET_NONE;
|
|
9
|
+
this.CROPMODE_PRESET_NONE = cropModes.PRESET_NONE;
|
|
10
|
+
this.CROPMODE_PRESET_SQUARE = cropModes.PRESET_SQUARE;
|
|
11
|
+
this.CROPMODE_PRESET_16_9 = cropModes.PRESET_16_9;
|
|
12
|
+
this.CROPMODE_PRESET_3_2 = cropModes.PRESET_3_2;
|
|
13
|
+
this.CROPMODE_PRESET_4_3 = cropModes.PRESET_4_3;
|
|
14
|
+
this.CROPMODE_PRESET_5_4 = cropModes.PRESET_5_4;
|
|
15
|
+
this.CROPMODE_PRESET_7_5 = cropModes.PRESET_7_5;
|
|
16
|
+
this.cancelCroppingRequested = new EventEmitter();
|
|
17
|
+
}
|
|
18
|
+
ngOnChanges(changes) {
|
|
19
|
+
if (changes['imageEditor'] && changes['imageEditor'].currentValue != null) {
|
|
20
|
+
this.imageEditor.startDrawingMode('CROPPER');
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
setCropMode(cropMode) {
|
|
24
|
+
this.activeCropMode = cropMode;
|
|
25
|
+
switch (cropMode) {
|
|
26
|
+
case cropModes.PRESET_SQUARE:
|
|
27
|
+
this.setCropzoneRect(1 / 1);
|
|
28
|
+
break;
|
|
29
|
+
case cropModes.PRESET_3_2:
|
|
30
|
+
this.setCropzoneRect(3 / 2);
|
|
31
|
+
break;
|
|
32
|
+
case cropModes.PRESET_4_3:
|
|
33
|
+
this.setCropzoneRect(4 / 3);
|
|
34
|
+
break;
|
|
35
|
+
case cropModes.PRESET_5_4:
|
|
36
|
+
this.setCropzoneRect(5 / 4);
|
|
37
|
+
break;
|
|
38
|
+
case cropModes.PRESET_7_5:
|
|
39
|
+
this.setCropzoneRect(7 / 5);
|
|
40
|
+
break;
|
|
41
|
+
case cropModes.PRESET_16_9:
|
|
42
|
+
this.setCropzoneRect(16 / 9);
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
setCropzoneRect(mode) {
|
|
47
|
+
this.imageEditor.setCropzoneRect(mode);
|
|
48
|
+
}
|
|
49
|
+
applyCrop() {
|
|
50
|
+
if (this.imageEditor != null) {
|
|
51
|
+
const cropRect = this.imageEditor.getCropzoneRect();
|
|
52
|
+
if (cropRect && !isEmptyCropzone(cropRect)) {
|
|
53
|
+
this.imageEditor
|
|
54
|
+
.crop(cropRect)
|
|
55
|
+
.then(() => {
|
|
56
|
+
this.cancelCrop();
|
|
57
|
+
this.imageEditor._invoker.fire(eventNames.EXECUTE_COMMAND, historyNames.CROP);
|
|
58
|
+
})['catch']((message) => Promise.reject(message));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
cancelCrop() {
|
|
63
|
+
this.cancelCroppingRequested.emit();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
CropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: CropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
67
|
+
CropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: CropComponent, selector: "tui-image-editor-submenus-crop", inputs: { imageEditor: "imageEditor" }, outputs: { cancelCroppingRequested: "cancelCroppingRequested" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"tui-image-editor-menu-crop\">\r\n <div class=\"tui-image-editor-submenu-item\">\r\n <div\r\n class=\"tui-image-editor-d-flex tui-image-editor-justify-content-center\"\r\n >\r\n <div\r\n class=\"tie-crop-preset-button tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-flex-nowrap tui-image-editor-align-items-center tui-image-editor-overflowable-x tui-image-editor-py-3\"\r\n >\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-none ' +\r\n (activeCropMode == CROPMODE_PRESET_NONE ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_NONE)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-shape-rectangle\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-shape-rectangle\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-crop-custom\" | translate }}\r\n </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-square ' +\r\n (activeCropMode == CROPMODE_PRESET_SQUARE ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_SQUARE)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-crop\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-crop\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-crop-square\" | translate }}\r\n </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-3-2 ' +\r\n (activeCropMode == CROPMODE_PRESET_3_2 ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_3_2)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-crop\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-crop\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label> 3:2 </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-4-3 ' +\r\n (activeCropMode == CROPMODE_PRESET_4_3 ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_4_3)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-crop\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-crop\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label> 4:3 </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-5-4 ' +\r\n (activeCropMode == CROPMODE_PRESET_5_4 ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_5_4)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-crop\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-crop\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label> 5:4 </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-7-5 ' +\r\n (activeCropMode == CROPMODE_PRESET_7_5 ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_7_5)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-crop\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-crop\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label> 7:5 </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-16-9 ' +\r\n (activeCropMode == CROPMODE_PRESET_16_9 ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_16_9)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-crop\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-crop\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label> 16:9 </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"tie-crop-button action tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-flex-nowrap tui-image-editor-align-items-center tui-image-editor-justify-content-center tui-image-editor-mb-3\"\r\n >\r\n <div\r\n class=\"tui-image-editor-button apply tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center\"\r\n (click)=\"applyCrop()\"\r\n >\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-apply\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-apply\" class=\"active use-default\"></use>\r\n </svg>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-crop-apply\" | translate }}\r\n </label>\r\n </div>\r\n <div\r\n class=\"tui-image-editor-button cancel tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center\"\r\n (click)=\"cancelCrop()\"\r\n >\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-cancel\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-cancel\" class=\"active use-default\"></use>\r\n </svg>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-crop-cancel\" | translate }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: CropComponent, decorators: [{
|
|
69
|
+
type: Component,
|
|
70
|
+
args: [{ selector: 'tui-image-editor-submenus-crop', template: "<div class=\"tui-image-editor-menu-crop\">\r\n <div class=\"tui-image-editor-submenu-item\">\r\n <div\r\n class=\"tui-image-editor-d-flex tui-image-editor-justify-content-center\"\r\n >\r\n <div\r\n class=\"tie-crop-preset-button tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-flex-nowrap tui-image-editor-align-items-center tui-image-editor-overflowable-x tui-image-editor-py-3\"\r\n >\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-none ' +\r\n (activeCropMode == CROPMODE_PRESET_NONE ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_NONE)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use\r\n xlink:href=\"#ic-shape-rectangle\"\r\n class=\"normal use-default\"\r\n ></use>\r\n <use\r\n xlink:href=\"#ic-shape-rectangle\"\r\n class=\"active use-default\"\r\n ></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-crop-custom\" | translate }}\r\n </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-square ' +\r\n (activeCropMode == CROPMODE_PRESET_SQUARE ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_SQUARE)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-crop\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-crop\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-crop-square\" | translate }}\r\n </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-3-2 ' +\r\n (activeCropMode == CROPMODE_PRESET_3_2 ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_3_2)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-crop\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-crop\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label> 3:2 </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-4-3 ' +\r\n (activeCropMode == CROPMODE_PRESET_4_3 ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_4_3)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-crop\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-crop\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label> 4:3 </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-5-4 ' +\r\n (activeCropMode == CROPMODE_PRESET_5_4 ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_5_4)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-crop\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-crop\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label> 5:4 </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-7-5 ' +\r\n (activeCropMode == CROPMODE_PRESET_7_5 ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_7_5)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-crop\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-crop\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label> 7:5 </label>\r\n </div>\r\n <div\r\n [class]=\"\r\n 'tui-image-editor-button preset preset-16-9 ' +\r\n (activeCropMode == CROPMODE_PRESET_16_9 ? 'active' : '')\r\n \"\r\n (click)=\"setCropMode(CROPMODE_PRESET_16_9)\"\r\n >\r\n <div>\r\n <svg class=\"svg_ic-submenu\">\r\n <use xlink:href=\"#ic-crop\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-crop\" class=\"active use-default\"></use>\r\n </svg>\r\n </div>\r\n <label> 16:9 </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"tie-crop-button action tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-flex-nowrap tui-image-editor-align-items-center tui-image-editor-justify-content-center tui-image-editor-mb-3\"\r\n >\r\n <div\r\n class=\"tui-image-editor-button apply tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center\"\r\n (click)=\"applyCrop()\"\r\n >\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-apply\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-apply\" class=\"active use-default\"></use>\r\n </svg>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-crop-apply\" | translate }}\r\n </label>\r\n </div>\r\n <div\r\n class=\"tui-image-editor-button cancel tui-image-editor-d-flex tui-image-editor-flex-row tui-image-editor-align-items-center\"\r\n (click)=\"cancelCrop()\"\r\n >\r\n <svg class=\"svg_ic-menu\">\r\n <use xlink:href=\"#ic-cancel\" class=\"normal use-default\"></use>\r\n <use xlink:href=\"#ic-cancel\" class=\"active use-default\"></use>\r\n </svg>\r\n <label>\r\n {{ \"tui-image-editor-angular-submenus-crop-cancel\" | translate }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
|
|
71
|
+
}], ctorParameters: function () { return []; }, propDecorators: { imageEditor: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], cancelCroppingRequested: [{
|
|
74
|
+
type: Output
|
|
75
|
+
}] } });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JvcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWktaW1hZ2UtZWRpdG9yLWFuZ3VsYXIyL3NyYy9saWIvc3VibWVudXMvY3JvcC9jcm9wLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1aS1pbWFnZS1lZGl0b3ItYW5ndWxhcjIvc3JjL2xpYi9zdWJtZW51cy9jcm9wL2Nyb3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBTzlDLE1BQU0sT0FBTyxhQUFhO0lBYXhCO1FBWE8sbUJBQWMsR0FBYyxTQUFTLENBQUMsV0FBVyxDQUFDO1FBQ2xELHlCQUFvQixHQUFjLFNBQVMsQ0FBQyxXQUFXLENBQUM7UUFDeEQsMkJBQXNCLEdBQWMsU0FBUyxDQUFDLGFBQWEsQ0FBQztRQUM1RCx5QkFBb0IsR0FBYyxTQUFTLENBQUMsV0FBVyxDQUFDO1FBQ3hELHdCQUFtQixHQUFjLFNBQVMsQ0FBQyxVQUFVLENBQUM7UUFDdEQsd0JBQW1CLEdBQWMsU0FBUyxDQUFDLFVBQVUsQ0FBQztRQUN0RCx3QkFBbUIsR0FBYyxTQUFTLENBQUMsVUFBVSxDQUFDO1FBQ3RELHdCQUFtQixHQUFjLFNBQVMsQ0FBQyxVQUFVLENBQUM7UUFFN0QsNEJBQXVCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFFdEQsQ0FBQztJQUVoQixXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUU7WUFDekUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM5QztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsUUFBbUI7UUFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUM7UUFDL0IsUUFBUSxRQUFRLEVBQUU7WUFDaEIsS0FBSyxTQUFTLENBQUMsYUFBYTtnQkFDMUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLE1BQU07WUFDUixLQUFLLFNBQVMsQ0FBQyxVQUFVO2dCQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDNUIsTUFBTTtZQUNSLEtBQUssU0FBUyxDQUFDLFVBQVU7Z0JBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUM1QixNQUFNO1lBQ1IsS0FBSyxTQUFTLENBQUMsVUFBVTtnQkFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLE1BQU07WUFDUixLQUFLLFNBQVMsQ0FBQyxVQUFVO2dCQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDNUIsTUFBTTtZQUNSLEtBQUssU0FBUyxDQUFDLFdBQVc7Z0JBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUM3QixNQUFNO1NBQ1Q7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFFO1lBQzVCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDcEQsSUFBSSxRQUFRLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzFDLElBQUksQ0FBQyxXQUFXO3FCQUNiLElBQUksQ0FBQyxRQUFRLENBQUM7cUJBQ2QsSUFBSSxDQUFDLEdBQUcsRUFBRTtvQkFDVCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDNUIsVUFBVSxDQUFDLGVBQWUsRUFDMUIsWUFBWSxDQUFDLElBQUksQ0FDbEIsQ0FBQztnQkFDSixDQUFDLENBQUMsQ0FDRCxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ25EO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzswR0FyRVUsYUFBYTs4RkFBYixhQUFhLG9NQ2pCMUIscW5NQTJKQTsyRkQxSWEsYUFBYTtrQkFMekIsU0FBUzsrQkFDRSxnQ0FBZ0M7MEVBS2pDLFdBQVc7c0JBQW5CLEtBQUs7Z0JBVU4sdUJBQXVCO3NCQUR0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNyb3BNb2RlcywgZXZlbnROYW1lcywgaGlzdG9yeU5hbWVzIH0gZnJvbSAnLi4vLi4vY29uc3RzJztcclxuaW1wb3J0IHsgaXNFbXB0eUNyb3B6b25lIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0dWktaW1hZ2UtZWRpdG9yLXN1Ym1lbnVzLWNyb3AnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jcm9wLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jcm9wLmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENyb3BDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIGltYWdlRWRpdG9yOiBhbnk7XHJcbiAgcHVibGljIGFjdGl2ZUNyb3BNb2RlOiBjcm9wTW9kZXMgPSBjcm9wTW9kZXMuUFJFU0VUX05PTkU7XHJcbiAgcHVibGljIENST1BNT0RFX1BSRVNFVF9OT05FOiBjcm9wTW9kZXMgPSBjcm9wTW9kZXMuUFJFU0VUX05PTkU7XHJcbiAgcHVibGljIENST1BNT0RFX1BSRVNFVF9TUVVBUkU6IGNyb3BNb2RlcyA9IGNyb3BNb2Rlcy5QUkVTRVRfU1FVQVJFO1xyXG4gIHB1YmxpYyBDUk9QTU9ERV9QUkVTRVRfMTZfOTogY3JvcE1vZGVzID0gY3JvcE1vZGVzLlBSRVNFVF8xNl85O1xyXG4gIHB1YmxpYyBDUk9QTU9ERV9QUkVTRVRfM18yOiBjcm9wTW9kZXMgPSBjcm9wTW9kZXMuUFJFU0VUXzNfMjtcclxuICBwdWJsaWMgQ1JPUE1PREVfUFJFU0VUXzRfMzogY3JvcE1vZGVzID0gY3JvcE1vZGVzLlBSRVNFVF80XzM7XHJcbiAgcHVibGljIENST1BNT0RFX1BSRVNFVF81XzQ6IGNyb3BNb2RlcyA9IGNyb3BNb2Rlcy5QUkVTRVRfNV80O1xyXG4gIHB1YmxpYyBDUk9QTU9ERV9QUkVTRVRfN181OiBjcm9wTW9kZXMgPSBjcm9wTW9kZXMuUFJFU0VUXzdfNTtcclxuICBAT3V0cHV0KClcclxuICBjYW5jZWxDcm9wcGluZ1JlcXVlc3RlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snaW1hZ2VFZGl0b3InXSAmJiBjaGFuZ2VzWydpbWFnZUVkaXRvciddLmN1cnJlbnRWYWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuaW1hZ2VFZGl0b3Iuc3RhcnREcmF3aW5nTW9kZSgnQ1JPUFBFUicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q3JvcE1vZGUoY3JvcE1vZGU6IGNyb3BNb2Rlcykge1xyXG4gICAgdGhpcy5hY3RpdmVDcm9wTW9kZSA9IGNyb3BNb2RlO1xyXG4gICAgc3dpdGNoIChjcm9wTW9kZSkge1xyXG4gICAgICBjYXNlIGNyb3BNb2Rlcy5QUkVTRVRfU1FVQVJFOlxyXG4gICAgICAgIHRoaXMuc2V0Q3JvcHpvbmVSZWN0KDEgLyAxKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBjcm9wTW9kZXMuUFJFU0VUXzNfMjpcclxuICAgICAgICB0aGlzLnNldENyb3B6b25lUmVjdCgzIC8gMik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgY3JvcE1vZGVzLlBSRVNFVF80XzM6XHJcbiAgICAgICAgdGhpcy5zZXRDcm9wem9uZVJlY3QoNCAvIDMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIGNyb3BNb2Rlcy5QUkVTRVRfNV80OlxyXG4gICAgICAgIHRoaXMuc2V0Q3JvcHpvbmVSZWN0KDUgLyA0KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBjcm9wTW9kZXMuUFJFU0VUXzdfNTpcclxuICAgICAgICB0aGlzLnNldENyb3B6b25lUmVjdCg3IC8gNSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgY3JvcE1vZGVzLlBSRVNFVF8xNl85OlxyXG4gICAgICAgIHRoaXMuc2V0Q3JvcHpvbmVSZWN0KDE2IC8gOSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDcm9wem9uZVJlY3QobW9kZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmltYWdlRWRpdG9yLnNldENyb3B6b25lUmVjdChtb2RlKTtcclxuICB9XHJcblxyXG4gIGFwcGx5Q3JvcCgpIHtcclxuICAgIGlmICh0aGlzLmltYWdlRWRpdG9yICE9IG51bGwpIHtcclxuICAgICAgY29uc3QgY3JvcFJlY3QgPSB0aGlzLmltYWdlRWRpdG9yLmdldENyb3B6b25lUmVjdCgpO1xyXG4gICAgICBpZiAoY3JvcFJlY3QgJiYgIWlzRW1wdHlDcm9wem9uZShjcm9wUmVjdCkpIHtcclxuICAgICAgICB0aGlzLmltYWdlRWRpdG9yXHJcbiAgICAgICAgICAuY3JvcChjcm9wUmVjdClcclxuICAgICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jYW5jZWxDcm9wKCk7XHJcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VFZGl0b3IuX2ludm9rZXIuZmlyZShcclxuICAgICAgICAgICAgICBldmVudE5hbWVzLkVYRUNVVEVfQ09NTUFORCxcclxuICAgICAgICAgICAgICBoaXN0b3J5TmFtZXMuQ1JPUFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIFsnY2F0Y2gnXSgobWVzc2FnZSkgPT4gUHJvbWlzZS5yZWplY3QobWVzc2FnZSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYW5jZWxDcm9wKCkge1xyXG4gICAgdGhpcy5jYW5jZWxDcm9wcGluZ1JlcXVlc3RlZC5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0dWktaW1hZ2UtZWRpdG9yLW1lbnUtY3JvcFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0dWktaW1hZ2UtZWRpdG9yLXN1Ym1lbnUtaXRlbVwiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInR1aS1pbWFnZS1lZGl0b3ItZC1mbGV4IHR1aS1pbWFnZS1lZGl0b3ItanVzdGlmeS1jb250ZW50LWNlbnRlclwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInRpZS1jcm9wLXByZXNldC1idXR0b24gdHVpLWltYWdlLWVkaXRvci1kLWZsZXggdHVpLWltYWdlLWVkaXRvci1mbGV4LXJvdyB0dWktaW1hZ2UtZWRpdG9yLWZsZXgtbm93cmFwIHR1aS1pbWFnZS1lZGl0b3ItYWxpZ24taXRlbXMtY2VudGVyIHR1aS1pbWFnZS1lZGl0b3Itb3ZlcmZsb3dhYmxlLXggdHVpLWltYWdlLWVkaXRvci1weS0zXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIFtjbGFzc109XCJcclxuICAgICAgICAgICAgJ3R1aS1pbWFnZS1lZGl0b3ItYnV0dG9uIHByZXNldCBwcmVzZXQtbm9uZSAnICtcclxuICAgICAgICAgICAgKGFjdGl2ZUNyb3BNb2RlID09IENST1BNT0RFX1BSRVNFVF9OT05FID8gJ2FjdGl2ZScgOiAnJylcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic2V0Q3JvcE1vZGUoQ1JPUE1PREVfUFJFU0VUX05PTkUpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwic3ZnX2ljLXN1Ym1lbnVcIj5cclxuICAgICAgICAgICAgICA8dXNlXHJcbiAgICAgICAgICAgICAgICB4bGluazpocmVmPVwiI2ljLXNoYXBlLXJlY3RhbmdsZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5vcm1hbCB1c2UtZGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgPjwvdXNlPlxyXG4gICAgICAgICAgICAgIDx1c2VcclxuICAgICAgICAgICAgICAgIHhsaW5rOmhyZWY9XCIjaWMtc2hhcGUtcmVjdGFuZ2xlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aXZlIHVzZS1kZWZhdWx0XCJcclxuICAgICAgICAgICAgICA+PC91c2U+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8bGFiZWw+XHJcbiAgICAgICAgICAgIHt7IFwidHVpLWltYWdlLWVkaXRvci1hbmd1bGFyLXN1Ym1lbnVzLWNyb3AtY3VzdG9tXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgW2NsYXNzXT1cIlxyXG4gICAgICAgICAgICAndHVpLWltYWdlLWVkaXRvci1idXR0b24gcHJlc2V0IHByZXNldC1zcXVhcmUgJyArXHJcbiAgICAgICAgICAgIChhY3RpdmVDcm9wTW9kZSA9PSBDUk9QTU9ERV9QUkVTRVRfU1FVQVJFID8gJ2FjdGl2ZScgOiAnJylcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic2V0Q3JvcE1vZGUoQ1JPUE1PREVfUFJFU0VUX1NRVUFSRSlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJzdmdfaWMtc3VibWVudVwiPlxyXG4gICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj1cIiNpYy1jcm9wXCIgY2xhc3M9XCJub3JtYWwgdXNlLWRlZmF1bHRcIj48L3VzZT5cclxuICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9XCIjaWMtY3JvcFwiIGNsYXNzPVwiYWN0aXZlIHVzZS1kZWZhdWx0XCI+PC91c2U+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8bGFiZWw+XHJcbiAgICAgICAgICAgIHt7IFwidHVpLWltYWdlLWVkaXRvci1hbmd1bGFyLXN1Ym1lbnVzLWNyb3Atc3F1YXJlXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgW2NsYXNzXT1cIlxyXG4gICAgICAgICAgICAndHVpLWltYWdlLWVkaXRvci1idXR0b24gcHJlc2V0IHByZXNldC0zLTIgJyArXHJcbiAgICAgICAgICAgIChhY3RpdmVDcm9wTW9kZSA9PSBDUk9QTU9ERV9QUkVTRVRfM18yID8gJ2FjdGl2ZScgOiAnJylcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic2V0Q3JvcE1vZGUoQ1JPUE1PREVfUFJFU0VUXzNfMilcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJzdmdfaWMtc3VibWVudVwiPlxyXG4gICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj1cIiNpYy1jcm9wXCIgY2xhc3M9XCJub3JtYWwgdXNlLWRlZmF1bHRcIj48L3VzZT5cclxuICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9XCIjaWMtY3JvcFwiIGNsYXNzPVwiYWN0aXZlIHVzZS1kZWZhdWx0XCI+PC91c2U+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8bGFiZWw+IDM6MiA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIFtjbGFzc109XCJcclxuICAgICAgICAgICAgJ3R1aS1pbWFnZS1lZGl0b3ItYnV0dG9uIHByZXNldCBwcmVzZXQtNC0zICcgK1xyXG4gICAgICAgICAgICAoYWN0aXZlQ3JvcE1vZGUgPT0gQ1JPUE1PREVfUFJFU0VUXzRfMyA/ICdhY3RpdmUnIDogJycpXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInNldENyb3BNb2RlKENST1BNT0RFX1BSRVNFVF80XzMpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwic3ZnX2ljLXN1Ym1lbnVcIj5cclxuICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9XCIjaWMtY3JvcFwiIGNsYXNzPVwibm9ybWFsIHVzZS1kZWZhdWx0XCI+PC91c2U+XHJcbiAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPVwiI2ljLWNyb3BcIiBjbGFzcz1cImFjdGl2ZSB1c2UtZGVmYXVsdFwiPjwvdXNlPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGxhYmVsPiA0OjMgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBbY2xhc3NdPVwiXHJcbiAgICAgICAgICAgICd0dWktaW1hZ2UtZWRpdG9yLWJ1dHRvbiBwcmVzZXQgcHJlc2V0LTUtNCAnICtcclxuICAgICAgICAgICAgKGFjdGl2ZUNyb3BNb2RlID09IENST1BNT0RFX1BSRVNFVF81XzQgPyAnYWN0aXZlJyA6ICcnKVxyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIChjbGljayk9XCJzZXRDcm9wTW9kZShDUk9QTU9ERV9QUkVTRVRfNV80KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cInN2Z19pYy1zdWJtZW51XCI+XHJcbiAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPVwiI2ljLWNyb3BcIiBjbGFzcz1cIm5vcm1hbCB1c2UtZGVmYXVsdFwiPjwvdXNlPlxyXG4gICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj1cIiNpYy1jcm9wXCIgY2xhc3M9XCJhY3RpdmUgdXNlLWRlZmF1bHRcIj48L3VzZT5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxsYWJlbD4gNTo0IDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgW2NsYXNzXT1cIlxyXG4gICAgICAgICAgICAndHVpLWltYWdlLWVkaXRvci1idXR0b24gcHJlc2V0IHByZXNldC03LTUgJyArXHJcbiAgICAgICAgICAgIChhY3RpdmVDcm9wTW9kZSA9PSBDUk9QTU9ERV9QUkVTRVRfN181ID8gJ2FjdGl2ZScgOiAnJylcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic2V0Q3JvcE1vZGUoQ1JPUE1PREVfUFJFU0VUXzdfNSlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJzdmdfaWMtc3VibWVudVwiPlxyXG4gICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj1cIiNpYy1jcm9wXCIgY2xhc3M9XCJub3JtYWwgdXNlLWRlZmF1bHRcIj48L3VzZT5cclxuICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9XCIjaWMtY3JvcFwiIGNsYXNzPVwiYWN0aXZlIHVzZS1kZWZhdWx0XCI+PC91c2U+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8bGFiZWw+IDc6NSA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIFtjbGFzc109XCJcclxuICAgICAgICAgICAgJ3R1aS1pbWFnZS1lZGl0b3ItYnV0dG9uIHByZXNldCBwcmVzZXQtMTYtOSAnICtcclxuICAgICAgICAgICAgKGFjdGl2ZUNyb3BNb2RlID09IENST1BNT0RFX1BSRVNFVF8xNl85ID8gJ2FjdGl2ZScgOiAnJylcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic2V0Q3JvcE1vZGUoQ1JPUE1PREVfUFJFU0VUXzE2XzkpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwic3ZnX2ljLXN1Ym1lbnVcIj5cclxuICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9XCIjaWMtY3JvcFwiIGNsYXNzPVwibm9ybWFsIHVzZS1kZWZhdWx0XCI+PC91c2U+XHJcbiAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPVwiI2ljLWNyb3BcIiBjbGFzcz1cImFjdGl2ZSB1c2UtZGVmYXVsdFwiPjwvdXNlPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGxhYmVsPiAxNjo5IDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwidGllLWNyb3AtYnV0dG9uIGFjdGlvbiB0dWktaW1hZ2UtZWRpdG9yLWQtZmxleCB0dWktaW1hZ2UtZWRpdG9yLWZsZXgtcm93IHR1aS1pbWFnZS1lZGl0b3ItZmxleC1ub3dyYXAgdHVpLWltYWdlLWVkaXRvci1hbGlnbi1pdGVtcy1jZW50ZXIgdHVpLWltYWdlLWVkaXRvci1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHR1aS1pbWFnZS1lZGl0b3ItbWItM1wiXHJcbiAgICA+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cInR1aS1pbWFnZS1lZGl0b3ItYnV0dG9uIGFwcGx5IHR1aS1pbWFnZS1lZGl0b3ItZC1mbGV4IHR1aS1pbWFnZS1lZGl0b3ItZmxleC1yb3cgdHVpLWltYWdlLWVkaXRvci1hbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgIChjbGljayk9XCJhcHBseUNyb3AoKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3ZnIGNsYXNzPVwic3ZnX2ljLW1lbnVcIj5cclxuICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj1cIiNpYy1hcHBseVwiIGNsYXNzPVwibm9ybWFsIHVzZS1kZWZhdWx0XCI+PC91c2U+XHJcbiAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9XCIjaWMtYXBwbHlcIiBjbGFzcz1cImFjdGl2ZSB1c2UtZGVmYXVsdFwiPjwvdXNlPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgIHt7IFwidHVpLWltYWdlLWVkaXRvci1hbmd1bGFyLXN1Ym1lbnVzLWNyb3AtYXBwbHlcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ0dWktaW1hZ2UtZWRpdG9yLWJ1dHRvbiBjYW5jZWwgdHVpLWltYWdlLWVkaXRvci1kLWZsZXggdHVpLWltYWdlLWVkaXRvci1mbGV4LXJvdyB0dWktaW1hZ2UtZWRpdG9yLWFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAgICAgKGNsaWNrKT1cImNhbmNlbENyb3AoKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3ZnIGNsYXNzPVwic3ZnX2ljLW1lbnVcIj5cclxuICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj1cIiNpYy1jYW5jZWxcIiBjbGFzcz1cIm5vcm1hbCB1c2UtZGVmYXVsdFwiPjwvdXNlPlxyXG4gICAgICAgICAgPHVzZSB4bGluazpocmVmPVwiI2ljLWNhbmNlbFwiIGNsYXNzPVwiYWN0aXZlIHVzZS1kZWZhdWx0XCI+PC91c2U+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPGxhYmVsPlxyXG4gICAgICAgICAge3sgXCJ0dWktaW1hZ2UtZWRpdG9yLWFuZ3VsYXItc3VibWVudXMtY3JvcC1jYW5jZWxcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|