{"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({\r\n  selector: 'ngx-super-croppie',\r\n  templateUrl: './ngx-super-croppie.component.html',\r\n  styleUrls: ['./ngx-super-croppie.component.css'],\r\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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"}