{"version":3,"file":"ngx-super-croppie.mjs","sources":["../../../projects/ngx-super-croppie/src/lib/ngx-super-croppie.service.ts","../../../projects/ngx-super-croppie/src/lib/ngx-super-croppie.component.ts","../../../projects/ngx-super-croppie/src/lib/ngx-super-croppie.component.html","../../../projects/ngx-super-croppie/src/lib/ngx-super-croppie.module.ts","../../../projects/ngx-super-croppie/src/public-api.ts","../../../projects/ngx-super-croppie/src/ngx-super-croppie.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class NgxSuperCroppieService {\r\n\r\n  constructor() { }\r\n}\r\n","/**\r\n * wrapper for croppie\r\n * @packageDocumentation\r\n */\r\n\r\nimport {\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Input,\r\n  OnInit,\r\n  Output,\r\n  ViewChild,\r\n} from '@angular/core';\r\n\r\nimport Croppie, { CroppieOptions, ResultOptions, CropData } from 'croppie';\r\n\r\n@Component({\n    selector: 'ngx-super-croppie',\n    templateUrl: './ngx-super-croppie.component.html',\n    styleUrls: ['./ngx-super-croppie.component.css'],\n    standalone: false\n})\r\nexport class NgxSuperCroppieComponent implements OnInit {\r\n  /**\r\n   * reference to croppie div\r\n   */\r\n  @ViewChild('croppie', { static: true }) croppie: ElementRef;\r\n\r\n  /**\r\n   * croppie options. See:\r\n   * https://foliotek.github.io/Croppie/\r\n   */\r\n  @Input() croppieOptions: CroppieOptions;\r\n\r\n  /**\r\n   * URL to image\r\n   */\r\n  private _url: string;\r\n  get url(): string {\r\n    return this._url;\r\n  }\r\n\r\n  @Input() set url(url: string) {\r\n    if (this._url === url) {\r\n      return;\r\n    }\r\n\r\n    this._url = url;\r\n\r\n    if (this._croppie) {\r\n      this.bind();\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Array of points that translate into [topLeftX, topLeftY, bottomRightX, bottomRightY]\r\n   */\r\n  @Input() points: number[] = null;\r\n\r\n  /**\r\n   * Custom orientation, applied after exif orientation (if enabled).\r\n   * Only works with enableOrientation option enabled (see 'Options').\r\n   *\r\n   * Valid options are:\r\n   * 1 unchanged\r\n   * 2 flipped horizontally\r\n   * 3 rotated 180 degrees\r\n   * 4 flipped vertically\r\n   * 5 flipped horizontally, then rotated left by 90 degrees\r\n   * 6 rotated clockwise by 90 degrees\r\n   * 7 flipped horizontally, then rotated right by 90 degrees\r\n   * 8 rotated counter-clockwise by 90 degrees\r\n   */\r\n  @Input() orientation: number = null;\r\n\r\n  /**\r\n   * Apply zoom after image has been bound\r\n   */\r\n  @Input() zoom = 0;\r\n\r\n  /**\r\n   * Options for result. See:\r\n   * https://foliotek.github.io/Croppie/\r\n   */\r\n  @Input() resultOptions: ResultOptions;\r\n\r\n  /**\r\n   * event emitted to parent\r\n   */\r\n  @Output() result: EventEmitter<\r\n    string | HTMLElement | Blob | HTMLCanvasElement\r\n  > = new EventEmitter<string | HTMLElement | Blob | HTMLCanvasElement>();\r\n\r\n  /**\r\n   * croppie object\r\n   */\r\n  _croppie: Croppie;\r\n\r\n  /**\r\n   * init cropper\r\n   */\r\n  ngOnInit(): void {\r\n    this._croppie = new Croppie(\r\n      this.croppie.nativeElement,\r\n      this.croppieOptions,\r\n    );\r\n\r\n    this.bind();\r\n  }\r\n\r\n  /**\r\n   * get crop data\r\n   * @returns crop points, and the zoom of the image.\r\n   */\r\n  public get(): CropData {\r\n    return this._croppie.get();\r\n  }\r\n\r\n  /**\r\n   * Bind an image to the croppie.\r\n   * Returns a promise to be resolved when the image has been loaded\r\n   * and the croppie has been initialized.\r\n   */\r\n  private async bind(): Promise<void> {\r\n    await this._croppie.bind({\r\n      url: this.url,\r\n      points: this.points,\r\n      orientation: this.orientation,\r\n      zoom: this.zoom,\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Destroy a croppie instance and remove it from the DOM\r\n   */\r\n  public destroy(): void {\r\n    this._croppie.destroy();\r\n  }\r\n\r\n  /**\r\n   * emits croppie result to parent\r\n   */\r\n  public async croppieResult(): Promise<void> {\r\n    const result = await this._croppie.result(this.resultOptions);\r\n    this.result.emit(result);\r\n  }\r\n\r\n  /**\r\n   * Rotate the image by a specified degree amount.\r\n   * Only works with enableOrientation option enabled (see 'Options')\r\n   * @param degrees degrees of rotation\r\n   */\r\n  public rotate(degrees: 90 | 180 | 270 | -90 | -180 | -270): void {\r\n    this._croppie.rotate(degrees);\r\n  }\r\n\r\n  /**\r\n   * Set the zoom of a Croppie instance. The value passed in is\r\n   * still restricted to the min/max set by Croppie.\r\n   * @param zoom zoom value\r\n   */\r\n  public setZoom(zoom: number): void {\r\n    this._croppie.setZoom(zoom);\r\n  }\r\n}\r\n","<div #croppie (update)=\"croppieResult()\"></div>\r\n","import { NgModule } from '@angular/core';\r\nimport { NgxSuperCroppieComponent } from './ngx-super-croppie.component';\r\n\r\n@NgModule({\r\n  declarations: [NgxSuperCroppieComponent],\r\n  imports: [],\r\n  exports: [NgxSuperCroppieComponent],\r\n})\r\nexport class NgxSuperCroppieModule {}\r\n","/*\r\n * Public API Surface of ngx-super-croppie\r\n */\r\n\r\nexport * from './lib/ngx-super-croppie.service';\r\nexport * from './lib/ngx-super-croppie.component';\r\nexport * from './lib/ngx-super-croppie.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}