{"version":3,"file":"191.b6b103f8b2bb1eb9.js","mappings":"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","names":["_c0","rf","ctx","_r3","ɵngcc0","$event","ctx_r2","startMove","ctx_r4","ctx_r5","ctx_r6","ctx_r7","ctx_r8","ctx_r9","ctx_r10","ctx_r11","ctx_r12","ctx_r13","ctx_r14","ctx_r15","ctx_r16","ctx_r17","ctx_r18","ctx_r19","ctx_r20","ctx_r1","cropper","y1","x1","x2","y2","alignImage","marginLeft","imageVisible","roundCropper","srcBase64","exifRotation","Promise","resolve","reject","img","Image","onload","width","height","canvas","document","createElement","getContext","orientation","transform","transformCanvas","drawImage","toDataURL","Error","src","ImageCropperComponent","constructor","sanitizer","cd","zone","this","setImageMaxSizeRetries","cropperScaledMinWidth","cropperScaledMinHeight","format","outputType","maintainAspectRatio","aspectRatio","resizeToWidth","resizeToHeight","cropperMinWidth","cropperMinHeight","onlyScaleDown","imageQuality","autoCrop","containWithinAspectRatio","startCropImage","EventEmitter","imageCropped","imageCroppedBase64","imageCroppedFile","imageLoaded","cropperReady","loadImageFailed","initCropper","imageFileChanged","file","loadImageFile","imageChangedEvent","event","target","files","length","imageBase64","checkExifAndLoadBase64Image","ngOnChanges","changes","setMaxSize","setCropperScaledMinSize","checkCropperPosition","doAutoCrop","markForCheck","resetCropperPosition","originalImage","safeImgDataUrl","moveStart","active","type","position","clientX","clientY","maxSize","originalSize","fileReader","FileReader","isValidImageType","result","emit","readAsDataURL","test","view","DataView","replace","binaryString","atob","len","bytes","Uint8Array","i","charCodeAt","buffer","base64ToArrayBuffer","getUint16","byteLength","offset","marker","getUint32","little","tags","getExifRotation","transformBase64BasedOnExifRotation","ex","resetExifOrientation","then","resultBase64","fitImageToAspectRatio","loadBase64Image","catch","minHeightToContain","Math","max","originalBase64","bypassSecurityTrustResourceUrl","imageLoadedInView","setTimeout","checkImageMaxSizeRecursively","sourceImage","nativeElement","offsetWidth","onResize","resizeCropperPosition","rotateLeft","transformBase64","rotateRight","flipHorizontal","flipVertical","exifOrientation","rotatedBase64","sourceImageElement","offsetHeight","cropperHeight","cropperWidth","moveType","preventDefault","Object","assign","getClientX","getClientY","moveImg","stopPropagation","move","resize","detectChanges","bypassSecurityTrustStyle","setCropperScaledMinWidth","setCropperScaledMinHeight","maintainSize","moveStop","diffX","diffY","min","checkAspectRatio","overflowX","overflowY","crop","imagePosition","getImagePosition","cropCanvas","backgroundColor","fillStyle","fillRect","output","cropperPosition","resizeRatio","getResizeRatio","round","resizeCanvas","width_source","height_source","ratio_w","ratio_h","ratio_w_half","ceil","ratio_h_half","getImageData","img2","createImageData","data","data2","j","center_y","weight","weights","weights_alpha","gx_r","gx_g","gx_b","gx_a","xx_start","floor","yy_start","xx_stop","yy_stop","yy","dy","abs","center_x","w0","xx","dx","w","sqrt","pos_x","clearRect","putImageData","cropToOutputType","ratio","cropToFile","base64","cropToBase64","getQuality","getCanvasBlob","toBlob","run","touches","ɵfac","t","ɵngcc1","ɵcmp","selectors","viewQuery","_t","first","hostVars","hostBindings","inputs","outputs","features","decls","vars","consts","template","ImageCropperComponent_div_3_Template","directives","ɵngcc2","styles","changeDetection","ImageCropperModule","ɵmod","ɵinj","imports","CommonModule","i0","MyLiveEventsComponent","userService","modalService","superUserService","toaster","nav","auth","CourseEventStatus","Enums","pageTitle","ngOnInit","getEventsListedByUser","subscribe","events","initialized","export","submitComplete2","resetButton","exportPresenterData","id","a","objectUrl","URL","createObjectURL","href","download","title","click","revokeObjectURL","error","messageDialog","editCEUAssessment","model","modalRef","open","AddEditAssessmentModalComponent","size","windowClass","ariaLabelledBy","backdrop","componentInstance","courseEventId","reason","SharedAccountConferenceModule","ApplicationPipesModule","EditorModule","DateInputsModule","CKEditorModule","RouterModule","InputsModule"],"sourceRoot":"webpack:///","sources":["./node_modules/ngx-image-cropper/__ivy_ngcc__/fesm2015/ngx-image-cropper.js","./src/app/my-account/my-live-events/my-live-events.component.html","./src/app/my-account/my-live-events/my-live-events.component.ts","./src/app/shared-account-conference.module.ts"],"sourcesContent":["import { Component, EventEmitter, HostBinding, HostListener, Input, Output, ChangeDetectorRef, ChangeDetectionStrategy, NgZone, ViewChild, NgModule } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { CommonModule } from '@angular/common';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * @param {?} srcBase64\n * @return {?}\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/platform-browser';\nimport * as ɵngcc2 from '@angular/common';\n\nconst _c0 = [\"sourceImage\"];\nfunction ImageCropperComponent_div_3_Template(rf, ctx) { if (rf & 1) {\n const _r3 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 3)(1, \"div\", 4);\n ɵngcc0.ɵɵlistener(\"mousedown\", function ImageCropperComponent_div_3_Template_div_mousedown_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r2 = ɵngcc0.ɵɵnextContext(); return ctx_r2.startMove($event, \"move\"); })(\"touchstart\", function ImageCropperComponent_div_3_Template_div_touchstart_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r4 = ɵngcc0.ɵɵnextContext(); return ctx_r4.startMove($event, \"move\"); });\n ɵngcc0.ɵɵtext(2, \"\\u00A0\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"span\", 5);\n ɵngcc0.ɵɵlistener(\"mousedown\", function ImageCropperComponent_div_3_Template_span_mousedown_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ctx_r5.startMove($event, \"resize\", \"topleft\"); })(\"touchstart\", function ImageCropperComponent_div_3_Template_span_touchstart_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r6 = ɵngcc0.ɵɵnextContext(); return ctx_r6.startMove($event, \"resize\", \"topleft\"); });\n ɵngcc0.ɵɵelement(4, \"span\", 6);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(5, \"span\", 7);\n ɵngcc0.ɵɵelement(6, \"span\", 6);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(7, \"span\", 8);\n ɵngcc0.ɵɵlistener(\"mousedown\", function ImageCropperComponent_div_3_Template_span_mousedown_7_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ctx_r7.startMove($event, \"resize\", \"topright\"); })(\"touchstart\", function ImageCropperComponent_div_3_Template_span_touchstart_7_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ctx_r8.startMove($event, \"resize\", \"topright\"); });\n ɵngcc0.ɵɵelement(8, \"span\", 6);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(9, \"span\", 9);\n ɵngcc0.ɵɵelement(10, \"span\", 6);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(11, \"span\", 10);\n ɵngcc0.ɵɵlistener(\"mousedown\", function ImageCropperComponent_div_3_Template_span_mousedown_11_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.startMove($event, \"resize\", \"bottomright\"); })(\"touchstart\", function ImageCropperComponent_div_3_Template_span_touchstart_11_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r10 = ɵngcc0.ɵɵnextContext(); return ctx_r10.startMove($event, \"resize\", \"bottomright\"); });\n ɵngcc0.ɵɵelement(12, \"span\", 6);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(13, \"span\", 11);\n ɵngcc0.ɵɵelement(14, \"span\", 6);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(15, \"span\", 12);\n ɵngcc0.ɵɵlistener(\"mousedown\", function ImageCropperComponent_div_3_Template_span_mousedown_15_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r11 = ɵngcc0.ɵɵnextContext(); return ctx_r11.startMove($event, \"resize\", \"bottomleft\"); })(\"touchstart\", function ImageCropperComponent_div_3_Template_span_touchstart_15_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r12 = ɵngcc0.ɵɵnextContext(); return ctx_r12.startMove($event, \"resize\", \"bottomleft\"); });\n ɵngcc0.ɵɵelement(16, \"span\", 6);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(17, \"span\", 13);\n ɵngcc0.ɵɵelement(18, \"span\", 6);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(19, \"span\", 14);\n ɵngcc0.ɵɵlistener(\"mousedown\", function ImageCropperComponent_div_3_Template_span_mousedown_19_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r13 = ɵngcc0.ɵɵnextContext(); return ctx_r13.startMove($event, \"resize\", \"top\"); })(\"touchstart\", function ImageCropperComponent_div_3_Template_span_touchstart_19_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r14 = ɵngcc0.ɵɵnextContext(); return ctx_r14.startMove($event, \"resize\", \"top\"); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(20, \"span\", 15);\n ɵngcc0.ɵɵlistener(\"mousedown\", function ImageCropperComponent_div_3_Template_span_mousedown_20_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r15 = ɵngcc0.ɵɵnextContext(); return ctx_r15.startMove($event, \"resize\", \"right\"); })(\"touchstart\", function ImageCropperComponent_div_3_Template_span_touchstart_20_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r16 = ɵngcc0.ɵɵnextContext(); return ctx_r16.startMove($event, \"resize\", \"right\"); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(21, \"span\", 16);\n ɵngcc0.ɵɵlistener(\"mousedown\", function ImageCropperComponent_div_3_Template_span_mousedown_21_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r17 = ɵngcc0.ɵɵnextContext(); return ctx_r17.startMove($event, \"resize\", \"bottom\"); })(\"touchstart\", function ImageCropperComponent_div_3_Template_span_touchstart_21_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r18 = ɵngcc0.ɵɵnextContext(); return ctx_r18.startMove($event, \"resize\", \"bottom\"); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(22, \"span\", 17);\n ɵngcc0.ɵɵlistener(\"mousedown\", function ImageCropperComponent_div_3_Template_span_mousedown_22_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r19 = ɵngcc0.ɵɵnextContext(); return ctx_r19.startMove($event, \"resize\", \"left\"); })(\"touchstart\", function ImageCropperComponent_div_3_Template_span_touchstart_22_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r20 = ɵngcc0.ɵɵnextContext(); return ctx_r20.startMove($event, \"resize\", \"left\"); });\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵstyleProp(\"top\", ctx_r1.cropper.y1, \"px\")(\"left\", ctx_r1.cropper.x1, \"px\")(\"width\", ctx_r1.cropper.x2 - ctx_r1.cropper.x1, \"px\")(\"height\", ctx_r1.cropper.y2 - ctx_r1.cropper.y1, \"px\")(\"margin-left\", ctx_r1.alignImage === \"center\" ? ctx_r1.marginLeft : null)(\"visibility\", ctx_r1.imageVisible ? \"visible\" : \"hidden\");\n ɵngcc0.ɵɵclassProp(\"rounded\", ctx_r1.roundCropper);\n} }\nfunction resetExifOrientation(srcBase64) {\n try {\n /** @type {?} */\n const exifRotation = getExifRotation(srcBase64);\n if (exifRotation > 1) {\n return transformBase64BasedOnExifRotation(srcBase64, exifRotation);\n }\n else {\n return Promise.resolve(srcBase64);\n }\n }\n catch (ex) {\n return Promise.reject(ex);\n }\n}\n/**\n * @param {?} srcBase64\n * @param {?} exifRotation\n * @return {?}\n */\nfunction transformBase64BasedOnExifRotation(srcBase64, exifRotation) {\n return new Promise((resolve, reject) => {\n /** @type {?} */\n const img = new Image();\n img.onload = function () {\n /** @type {?} */\n const width = img.width;\n /** @type {?} */\n const height = img.height;\n /** @type {?} */\n const canvas = document.createElement('canvas');\n /** @type {?} */\n const ctx = canvas.getContext('2d');\n if (ctx) {\n if (4 < exifRotation && exifRotation < 9) {\n canvas.width = height;\n canvas.height = width;\n }\n else {\n canvas.width = width;\n canvas.height = height;\n }\n transformCanvas(ctx, exifRotation, width, height);\n ctx.drawImage(img, 0, 0);\n resolve(canvas.toDataURL());\n }\n else {\n reject(new Error('No context'));\n }\n };\n img.src = srcBase64;\n });\n}\n/**\n * @param {?} imageBase64\n * @return {?}\n */\nfunction getExifRotation(imageBase64) {\n /** @type {?} */\n const view = new DataView(base64ToArrayBuffer(imageBase64));\n if (view.getUint16(0, false) != 0xFFD8) {\n return -2;\n }\n /** @type {?} */\n const length = view.byteLength;\n /** @type {?} */\n let offset = 2;\n while (offset < length) {\n if (view.getUint16(offset + 2, false) <= 8)\n return -1;\n /** @type {?} */\n const marker = view.getUint16(offset, false);\n offset += 2;\n if (marker == 0xFFE1) {\n if (view.getUint32(offset += 2, false) != 0x45786966) {\n return -1;\n }\n /** @type {?} */\n const little = view.getUint16(offset += 6, false) == 0x4949;\n offset += view.getUint32(offset + 4, little);\n /** @type {?} */\n const tags = view.getUint16(offset, little);\n offset += 2;\n for (let i = 0; i < tags; i++) {\n if (view.getUint16(offset + (i * 12), little) == 0x0112) {\n return view.getUint16(offset + (i * 12) + 8, little);\n }\n }\n }\n else if ((marker & 0xFF00) != 0xFF00) {\n break;\n }\n else {\n offset += view.getUint16(offset, false);\n }\n }\n return -1;\n}\n/**\n * @param {?} imageBase64\n * @return {?}\n */\nfunction base64ToArrayBuffer(imageBase64) {\n imageBase64 = imageBase64.replace(/^data\\:([^\\;]+)\\;base64,/gmi, '');\n /** @type {?} */\n const binaryString = atob(imageBase64);\n /** @type {?} */\n const len = binaryString.length;\n /** @type {?} */\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes.buffer;\n}\n/**\n * @param {?} ctx\n * @param {?} orientation\n * @param {?} width\n * @param {?} height\n * @return {?}\n */\nfunction transformCanvas(ctx, orientation, width, height) {\n switch (orientation) {\n case 2:\n ctx.transform(-1, 0, 0, 1, width, 0);\n break;\n case 3:\n ctx.transform(-1, 0, 0, -1, width, height);\n break;\n case 4:\n ctx.transform(1, 0, 0, -1, 0, height);\n break;\n case 5:\n ctx.transform(0, 1, 1, 0, 0, 0);\n break;\n case 6:\n ctx.transform(0, 1, -1, 0, height, 0);\n break;\n case 7:\n ctx.transform(0, -1, -1, 0, height, width);\n break;\n case 8:\n ctx.transform(0, -1, 1, 0, 0, width);\n break;\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/*\n * Hermite resize - fast image resize/resample using Hermite filter.\n * https://github.com/viliusle/Hermite-resize\n */\n/**\n * @param {?} canvas\n * @param {?} width\n * @param {?} height\n * @param {?=} resizeCanvas\n * @return {?}\n */\nfunction resizeCanvas(canvas, width, height, resizeCanvas = true) {\n /** @type {?} */\n const width_source = canvas.width;\n /** @type {?} */\n const height_source = canvas.height;\n width = Math.round(width);\n height = Math.round(height);\n /** @type {?} */\n const ratio_w = width_source / width;\n /** @type {?} */\n const ratio_h = height_source / height;\n /** @type {?} */\n const ratio_w_half = Math.ceil(ratio_w / 2);\n /** @type {?} */\n const ratio_h_half = Math.ceil(ratio_h / 2);\n /** @type {?} */\n const ctx = canvas.getContext('2d');\n if (ctx) {\n /** @type {?} */\n const img = ctx.getImageData(0, 0, width_source, height_source);\n /** @type {?} */\n const img2 = ctx.createImageData(width, height);\n /** @type {?} */\n const data = img.data;\n /** @type {?} */\n const data2 = img2.data;\n for (let j = 0; j < height; j++) {\n for (let i = 0; i < width; i++) {\n /** @type {?} */\n const x2 = (i + j * width) * 4;\n /** @type {?} */\n const center_y = j * ratio_h;\n /** @type {?} */\n let weight = 0;\n /** @type {?} */\n let weights = 0;\n /** @type {?} */\n let weights_alpha = 0;\n /** @type {?} */\n let gx_r = 0;\n /** @type {?} */\n let gx_g = 0;\n /** @type {?} */\n let gx_b = 0;\n /** @type {?} */\n let gx_a = 0;\n /** @type {?} */\n const xx_start = Math.floor(i * ratio_w);\n /** @type {?} */\n const yy_start = Math.floor(j * ratio_h);\n /** @type {?} */\n let xx_stop = Math.ceil((i + 1) * ratio_w);\n /** @type {?} */\n let yy_stop = Math.ceil((j + 1) * ratio_h);\n xx_stop = Math.min(xx_stop, width_source);\n yy_stop = Math.min(yy_stop, height_source);\n for (let yy = yy_start; yy < yy_stop; yy++) {\n /** @type {?} */\n const dy = Math.abs(center_y - yy) / ratio_h_half;\n /** @type {?} */\n const center_x = i * ratio_w;\n /** @type {?} */\n const w0 = dy * dy; //pre-calc part of w\n for (let xx = xx_start; xx < xx_stop; xx++) {\n /** @type {?} */\n const dx = Math.abs(center_x - xx) / ratio_w_half;\n /** @type {?} */\n const w = Math.sqrt(w0 + dx * dx);\n if (w >= 1) {\n //pixel too far\n continue;\n }\n //hermite filter\n weight = 2 * w * w * w - 3 * w * w + 1;\n /** @type {?} */\n const pos_x = 4 * (xx + yy * width_source);\n //alpha\n gx_a += weight * data[pos_x + 3];\n weights_alpha += weight;\n //colors\n if (data[pos_x + 3] < 255)\n weight = weight * data[pos_x + 3] / 250;\n gx_r += weight * data[pos_x];\n gx_g += weight * data[pos_x + 1];\n gx_b += weight * data[pos_x + 2];\n weights += weight;\n }\n }\n data2[x2] = gx_r / weights;\n data2[x2 + 1] = gx_g / weights;\n data2[x2 + 2] = gx_b / weights;\n data2[x2 + 3] = gx_a / weights_alpha;\n }\n }\n //clear and resize canvas\n if (resizeCanvas) {\n canvas.width = width;\n canvas.height = height;\n }\n else {\n ctx.clearRect(0, 0, width_source, height_source);\n }\n //draw\n ctx.putImageData(img2, 0, 0);\n }\n}\n/**\n * @param {?} srcBase64\n * @param {?} aspectRatio\n * @return {?}\n */\nfunction fitImageToAspectRatio(srcBase64, aspectRatio) {\n return new Promise((resolve, reject) => {\n /** @type {?} */\n const img = new Image();\n img.onload = function () {\n /** @type {?} */\n const canvas = document.createElement('canvas');\n /** @type {?} */\n const ctx = canvas.getContext('2d');\n if (ctx) {\n /** @type {?} */\n const minWidthToContain = img.height * aspectRatio;\n /** @type {?} */\n const minHeightToContain = img.width / aspectRatio;\n canvas.width = Math.max(img.width, minWidthToContain);\n canvas.height = Math.max(img.height, minHeightToContain);\n /** @type {?} */\n const dx = (canvas.width - img.width) / 2;\n /** @type {?} */\n const dy = (canvas.height - img.height) / 2;\n ctx.drawImage(img, dx, dy);\n resolve(canvas.toDataURL());\n }\n else {\n reject(new Error('No context'));\n }\n };\n img.src = srcBase64;\n });\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass ImageCropperComponent {\n /**\n * @param {?} sanitizer\n * @param {?} cd\n * @param {?} zone\n */\n constructor(sanitizer, cd, zone) {\n this.sanitizer = sanitizer;\n this.cd = cd;\n this.zone = zone;\n this.setImageMaxSizeRetries = 0;\n this.cropperScaledMinWidth = 20;\n this.cropperScaledMinHeight = 20;\n this.marginLeft = '0px';\n this.imageVisible = false;\n this.format = 'png';\n this.outputType = 'both';\n this.maintainAspectRatio = true;\n this.aspectRatio = 1;\n this.resizeToWidth = 0;\n this.resizeToHeight = 0;\n this.cropperMinWidth = 0;\n this.cropperMinHeight = 0;\n this.roundCropper = false;\n this.onlyScaleDown = false;\n this.imageQuality = 92;\n this.autoCrop = true;\n this.containWithinAspectRatio = false;\n this.cropper = {\n x1: -100,\n y1: -100,\n x2: 10000,\n y2: 10000\n };\n this.alignImage = 'center';\n this.startCropImage = new EventEmitter();\n this.imageCropped = new EventEmitter();\n this.imageCroppedBase64 = new EventEmitter();\n this.imageCroppedFile = new EventEmitter();\n this.imageLoaded = new EventEmitter();\n this.cropperReady = new EventEmitter();\n this.loadImageFailed = new EventEmitter();\n this.initCropper();\n }\n /**\n * @param {?} file\n * @return {?}\n */\n set imageFileChanged(file) {\n this.initCropper();\n if (file) {\n this.loadImageFile(file);\n }\n }\n /**\n * @param {?} event\n * @return {?}\n */\n set imageChangedEvent(event) {\n this.initCropper();\n if (event && event.target && event.target.files && event.target.files.length > 0) {\n this.loadImageFile(event.target.files[0]);\n }\n }\n /**\n * @param {?} imageBase64\n * @return {?}\n */\n set imageBase64(imageBase64) {\n this.initCropper();\n this.checkExifAndLoadBase64Image(imageBase64);\n }\n /**\n * @param {?} changes\n * @return {?}\n */\n ngOnChanges(changes) {\n if (changes[\"cropper\"]) {\n this.setMaxSize();\n this.setCropperScaledMinSize();\n this.checkCropperPosition(false);\n this.doAutoCrop();\n this.cd.markForCheck();\n }\n if (changes[\"aspectRatio\"] && this.imageVisible) {\n this.resetCropperPosition();\n }\n }\n /**\n * @return {?}\n */\n initCropper() {\n this.imageVisible = false;\n this.originalImage = null;\n this.safeImgDataUrl = 'data:image/png;base64,iVBORw0KGg'\n + 'oAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAU'\n + 'AAarVyFEAAAAASUVORK5CYII=';\n this.moveStart = {\n active: false,\n type: null,\n position: null,\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 0,\n clientX: 0,\n clientY: 0\n };\n this.maxSize = {\n width: 0,\n height: 0\n };\n this.originalSize = {\n width: 0,\n height: 0\n };\n this.cropper.x1 = -100;\n this.cropper.y1 = -100;\n this.cropper.x2 = 10000;\n this.cropper.y2 = 10000;\n }\n /**\n * @param {?} file\n * @return {?}\n */\n loadImageFile(file) {\n /** @type {?} */\n const fileReader = new FileReader();\n fileReader.onload = (event) => {\n /** @type {?} */\n const imageType = file.type;\n if (this.isValidImageType(imageType)) {\n this.checkExifAndLoadBase64Image(event.target.result);\n }\n else {\n this.loadImageFailed.emit();\n }\n };\n fileReader.readAsDataURL(file);\n }\n /**\n * @param {?} type\n * @return {?}\n */\n isValidImageType(type) {\n return /image\\/(png|jpg|jpeg|bmp|gif|tiff)/.test(type);\n }\n /**\n * @param {?} imageBase64\n * @return {?}\n */\n checkExifAndLoadBase64Image(imageBase64) {\n resetExifOrientation(imageBase64)\n .then((resultBase64) => this.fitImageToAspectRatio(resultBase64))\n .then((resultBase64) => this.loadBase64Image(resultBase64))\n .catch(() => this.loadImageFailed.emit());\n }\n /**\n * @param {?} imageBase64\n * @return {?}\n */\n fitImageToAspectRatio(imageBase64) {\n return this.containWithinAspectRatio\n ? fitImageToAspectRatio(imageBase64, this.aspectRatio)\n : Promise.resolve(imageBase64);\n }\n /**\n * @param {?} imageBase64\n * @return {?}\n */\n loadBase64Image(imageBase64) {\n this.originalBase64 = imageBase64;\n this.safeImgDataUrl = this.sanitizer.bypassSecurityTrustResourceUrl(imageBase64);\n this.originalImage = new Image();\n this.originalImage.onload = () => {\n this.originalSize.width = this.originalImage.width;\n this.originalSize.height = this.originalImage.height;\n this.cd.markForCheck();\n };\n this.originalImage.src = imageBase64;\n }\n /**\n * @return {?}\n */\n imageLoadedInView() {\n if (this.originalImage != null) {\n this.imageLoaded.emit();\n this.setImageMaxSizeRetries = 0;\n setTimeout(() => this.checkImageMaxSizeRecursively());\n }\n }\n /**\n * @return {?}\n */\n checkImageMaxSizeRecursively() {\n if (this.setImageMaxSizeRetries > 40) {\n this.loadImageFailed.emit();\n }\n else if (this.sourceImage && this.sourceImage.nativeElement && this.sourceImage.nativeElement.offsetWidth > 0) {\n this.setMaxSize();\n this.setCropperScaledMinSize();\n this.resetCropperPosition();\n this.cropperReady.emit();\n this.cd.markForCheck();\n }\n else {\n this.setImageMaxSizeRetries++;\n setTimeout(() => {\n this.checkImageMaxSizeRecursively();\n }, 50);\n }\n }\n /**\n * @return {?}\n */\n onResize() {\n this.resizeCropperPosition();\n this.setMaxSize();\n this.setCropperScaledMinSize();\n }\n /**\n * @return {?}\n */\n rotateLeft() {\n this.transformBase64(8);\n }\n /**\n * @return {?}\n */\n rotateRight() {\n this.transformBase64(6);\n }\n /**\n * @return {?}\n */\n flipHorizontal() {\n this.transformBase64(2);\n }\n /**\n * @return {?}\n */\n flipVertical() {\n this.transformBase64(4);\n }\n /**\n * @param {?} exifOrientation\n * @return {?}\n */\n transformBase64(exifOrientation) {\n if (this.originalBase64) {\n transformBase64BasedOnExifRotation(this.originalBase64, exifOrientation)\n .then((resultBase64) => this.fitImageToAspectRatio(resultBase64))\n .then((rotatedBase64) => this.loadBase64Image(rotatedBase64));\n }\n }\n /**\n * @return {?}\n */\n resizeCropperPosition() {\n /** @type {?} */\n const sourceImageElement = this.sourceImage.nativeElement;\n if (this.maxSize.width !== sourceImageElement.offsetWidth || this.maxSize.height !== sourceImageElement.offsetHeight) {\n this.cropper.x1 = this.cropper.x1 * sourceImageElement.offsetWidth / this.maxSize.width;\n this.cropper.x2 = this.cropper.x2 * sourceImageElement.offsetWidth / this.maxSize.width;\n this.cropper.y1 = this.cropper.y1 * sourceImageElement.offsetHeight / this.maxSize.height;\n this.cropper.y2 = this.cropper.y2 * sourceImageElement.offsetHeight / this.maxSize.height;\n }\n }\n /**\n * @return {?}\n */\n resetCropperPosition() {\n /** @type {?} */\n const sourceImageElement = this.sourceImage.nativeElement;\n if (!this.maintainAspectRatio) {\n this.cropper.x1 = 0;\n this.cropper.x2 = sourceImageElement.offsetWidth;\n this.cropper.y1 = 0;\n this.cropper.y2 = sourceImageElement.offsetHeight;\n }\n else if (sourceImageElement.offsetWidth / this.aspectRatio < sourceImageElement.offsetHeight) {\n this.cropper.x1 = 0;\n this.cropper.x2 = sourceImageElement.offsetWidth;\n /** @type {?} */\n const cropperHeight = sourceImageElement.offsetWidth / this.aspectRatio;\n this.cropper.y1 = (sourceImageElement.offsetHeight - cropperHeight) / 2;\n this.cropper.y2 = this.cropper.y1 + cropperHeight;\n }\n else {\n this.cropper.y1 = 0;\n this.cropper.y2 = sourceImageElement.offsetHeight;\n /** @type {?} */\n const cropperWidth = sourceImageElement.offsetHeight * this.aspectRatio;\n this.cropper.x1 = (sourceImageElement.offsetWidth - cropperWidth) / 2;\n this.cropper.x2 = this.cropper.x1 + cropperWidth;\n }\n this.doAutoCrop();\n this.imageVisible = true;\n }\n /**\n * @param {?} event\n * @param {?} moveType\n * @param {?=} position\n * @return {?}\n */\n startMove(event, moveType, position = null) {\n event.preventDefault();\n this.moveStart = Object.assign({ active: true, type: moveType, position, clientX: this.getClientX(event), clientY: this.getClientY(event) }, this.cropper);\n }\n /**\n * @param {?} event\n * @return {?}\n */\n moveImg(event) {\n if (this.moveStart.active) {\n event.stopPropagation();\n event.preventDefault();\n if (this.moveStart.type === 'move') {\n this.move(event);\n this.checkCropperPosition(true);\n }\n else if (this.moveStart.type === 'resize') {\n this.resize(event);\n this.checkCropperPosition(false);\n }\n this.cd.detectChanges();\n }\n }\n /**\n * @return {?}\n */\n setMaxSize() {\n /** @type {?} */\n const sourceImageElement = this.sourceImage.nativeElement;\n this.maxSize.width = sourceImageElement.offsetWidth;\n this.maxSize.height = sourceImageElement.offsetHeight;\n this.marginLeft = this.sanitizer.bypassSecurityTrustStyle('calc(50% - ' + this.maxSize.width / 2 + 'px)');\n }\n /**\n * @return {?}\n */\n setCropperScaledMinSize() {\n if (this.originalImage) {\n this.setCropperScaledMinWidth();\n this.setCropperScaledMinHeight();\n }\n else {\n this.cropperScaledMinWidth = 20;\n this.cropperScaledMinHeight = 20;\n }\n }\n /**\n * @return {?}\n */\n setCropperScaledMinWidth() {\n this.cropperScaledMinWidth = this.cropperMinWidth > 0\n ? Math.max(20, this.cropperMinWidth / this.originalImage.width * this.maxSize.width)\n : 20;\n }\n /**\n * @return {?}\n */\n setCropperScaledMinHeight() {\n if (this.maintainAspectRatio) {\n this.cropperScaledMinHeight = Math.max(20, this.cropperScaledMinWidth / this.aspectRatio);\n }\n else if (this.cropperMinHeight > 0) {\n this.cropperScaledMinHeight = Math.max(20, this.cropperMinHeight / this.originalImage.height * this.maxSize.height);\n }\n else {\n this.cropperScaledMinHeight = 20;\n }\n }\n /**\n * @param {?=} maintainSize\n * @return {?}\n */\n checkCropperPosition(maintainSize = false) {\n if (this.cropper.x1 < 0) {\n this.cropper.x2 -= maintainSize ? this.cropper.x1 : 0;\n this.cropper.x1 = 0;\n }\n if (this.cropper.y1 < 0) {\n this.cropper.y2 -= maintainSize ? this.cropper.y1 : 0;\n this.cropper.y1 = 0;\n }\n if (this.cropper.x2 > this.maxSize.width) {\n this.cropper.x1 -= maintainSize ? (this.cropper.x2 - this.maxSize.width) : 0;\n this.cropper.x2 = this.maxSize.width;\n }\n if (this.cropper.y2 > this.maxSize.height) {\n this.cropper.y1 -= maintainSize ? (this.cropper.y2 - this.maxSize.height) : 0;\n this.cropper.y2 = this.maxSize.height;\n }\n }\n /**\n * @return {?}\n */\n moveStop() {\n if (this.moveStart.active) {\n this.moveStart.active = false;\n this.doAutoCrop();\n }\n }\n /**\n * @param {?} event\n * @return {?}\n */\n move(event) {\n /** @type {?} */\n const diffX = this.getClientX(event) - this.moveStart.clientX;\n /** @type {?} */\n const diffY = this.getClientY(event) - this.moveStart.clientY;\n this.cropper.x1 = this.moveStart.x1 + diffX;\n this.cropper.y1 = this.moveStart.y1 + diffY;\n this.cropper.x2 = this.moveStart.x2 + diffX;\n this.cropper.y2 = this.moveStart.y2 + diffY;\n }\n /**\n * @param {?} event\n * @return {?}\n */\n resize(event) {\n /** @type {?} */\n const diffX = this.getClientX(event) - this.moveStart.clientX;\n /** @type {?} */\n const diffY = this.getClientY(event) - this.moveStart.clientY;\n switch (this.moveStart.position) {\n case 'left':\n this.cropper.x1 = Math.min(this.moveStart.x1 + diffX, this.cropper.x2 - this.cropperScaledMinWidth);\n break;\n case 'topleft':\n this.cropper.x1 = Math.min(this.moveStart.x1 + diffX, this.cropper.x2 - this.cropperScaledMinWidth);\n this.cropper.y1 = Math.min(this.moveStart.y1 + diffY, this.cropper.y2 - this.cropperScaledMinHeight);\n break;\n case 'top':\n this.cropper.y1 = Math.min(this.moveStart.y1 + diffY, this.cropper.y2 - this.cropperScaledMinHeight);\n break;\n case 'topright':\n this.cropper.x2 = Math.max(this.moveStart.x2 + diffX, this.cropper.x1 + this.cropperScaledMinWidth);\n this.cropper.y1 = Math.min(this.moveStart.y1 + diffY, this.cropper.y2 - this.cropperScaledMinHeight);\n break;\n case 'right':\n this.cropper.x2 = Math.max(this.moveStart.x2 + diffX, this.cropper.x1 + this.cropperScaledMinWidth);\n break;\n case 'bottomright':\n this.cropper.x2 = Math.max(this.moveStart.x2 + diffX, this.cropper.x1 + this.cropperScaledMinWidth);\n this.cropper.y2 = Math.max(this.moveStart.y2 + diffY, this.cropper.y1 + this.cropperScaledMinHeight);\n break;\n case 'bottom':\n this.cropper.y2 = Math.max(this.moveStart.y2 + diffY, this.cropper.y1 + this.cropperScaledMinHeight);\n break;\n case 'bottomleft':\n this.cropper.x1 = Math.min(this.moveStart.x1 + diffX, this.cropper.x2 - this.cropperScaledMinWidth);\n this.cropper.y2 = Math.max(this.moveStart.y2 + diffY, this.cropper.y1 + this.cropperScaledMinHeight);\n break;\n }\n if (this.maintainAspectRatio) {\n this.checkAspectRatio();\n }\n }\n /**\n * @return {?}\n */\n checkAspectRatio() {\n /** @type {?} */\n let overflowX = 0;\n /** @type {?} */\n let overflowY = 0;\n switch (this.moveStart.position) {\n case 'top':\n this.cropper.x2 = this.cropper.x1 + (this.cropper.y2 - this.cropper.y1) * this.aspectRatio;\n overflowX = Math.max(this.cropper.x2 - this.maxSize.width, 0);\n overflowY = Math.max(0 - this.cropper.y1, 0);\n if (overflowX > 0 || overflowY > 0) {\n this.cropper.x2 -= (overflowY * this.aspectRatio) > overflowX ? (overflowY * this.aspectRatio) : overflowX;\n this.cropper.y1 += (overflowY * this.aspectRatio) > overflowX ? overflowY : overflowX / this.aspectRatio;\n }\n break;\n case 'bottom':\n this.cropper.x2 = this.cropper.x1 + (this.cropper.y2 - this.cropper.y1) * this.aspectRatio;\n overflowX = Math.max(this.cropper.x2 - this.maxSize.width, 0);\n overflowY = Math.max(this.cropper.y2 - this.maxSize.height, 0);\n if (overflowX > 0 || overflowY > 0) {\n this.cropper.x2 -= (overflowY * this.aspectRatio) > overflowX ? (overflowY * this.aspectRatio) : overflowX;\n this.cropper.y2 -= (overflowY * this.aspectRatio) > overflowX ? overflowY : (overflowX / this.aspectRatio);\n }\n break;\n case 'topleft':\n this.cropper.y1 = this.cropper.y2 - (this.cropper.x2 - this.cropper.x1) / this.aspectRatio;\n overflowX = Math.max(0 - this.cropper.x1, 0);\n overflowY = Math.max(0 - this.cropper.y1, 0);\n if (overflowX > 0 || overflowY > 0) {\n this.cropper.x1 += (overflowY * this.aspectRatio) > overflowX ? (overflowY * this.aspectRatio) : overflowX;\n this.cropper.y1 += (overflowY * this.aspectRatio) > overflowX ? overflowY : overflowX / this.aspectRatio;\n }\n break;\n case 'topright':\n this.cropper.y1 = this.cropper.y2 - (this.cropper.x2 - this.cropper.x1) / this.aspectRatio;\n overflowX = Math.max(this.cropper.x2 - this.maxSize.width, 0);\n overflowY = Math.max(0 - this.cropper.y1, 0);\n if (overflowX > 0 || overflowY > 0) {\n this.cropper.x2 -= (overflowY * this.aspectRatio) > overflowX ? (overflowY * this.aspectRatio) : overflowX;\n this.cropper.y1 += (overflowY * this.aspectRatio) > overflowX ? overflowY : overflowX / this.aspectRatio;\n }\n break;\n case 'right':\n case 'bottomright':\n this.cropper.y2 = this.cropper.y1 + (this.cropper.x2 - this.cropper.x1) / this.aspectRatio;\n overflowX = Math.max(this.cropper.x2 - this.maxSize.width, 0);\n overflowY = Math.max(this.cropper.y2 - this.maxSize.height, 0);\n if (overflowX > 0 || overflowY > 0) {\n this.cropper.x2 -= (overflowY * this.aspectRatio) > overflowX ? (overflowY * this.aspectRatio) : overflowX;\n this.cropper.y2 -= (overflowY * this.aspectRatio) > overflowX ? overflowY : overflowX / this.aspectRatio;\n }\n break;\n case 'left':\n case 'bottomleft':\n this.cropper.y2 = this.cropper.y1 + (this.cropper.x2 - this.cropper.x1) / this.aspectRatio;\n overflowX = Math.max(0 - this.cropper.x1, 0);\n overflowY = Math.max(this.cropper.y2 - this.maxSize.height, 0);\n if (overflowX > 0 || overflowY > 0) {\n this.cropper.x1 += (overflowY * this.aspectRatio) > overflowX ? (overflowY * this.aspectRatio) : overflowX;\n this.cropper.y2 -= (overflowY * this.aspectRatio) > overflowX ? overflowY : overflowX / this.aspectRatio;\n }\n break;\n }\n }\n /**\n * @return {?}\n */\n doAutoCrop() {\n if (this.autoCrop) {\n this.crop();\n }\n }\n /**\n * @param {?=} outputType\n * @return {?}\n */\n crop(outputType = this.outputType) {\n if (this.sourceImage.nativeElement && this.originalImage != null) {\n this.startCropImage.emit();\n /** @type {?} */\n const imagePosition = this.getImagePosition();\n /** @type {?} */\n const width = imagePosition.x2 - imagePosition.x1;\n /** @type {?} */\n const height = imagePosition.y2 - imagePosition.y1;\n /** @type {?} */\n const cropCanvas = /** @type {?} */ (document.createElement('canvas'));\n cropCanvas.width = width;\n cropCanvas.height = height;\n /** @type {?} */\n const ctx = cropCanvas.getContext('2d');\n if (ctx) {\n if (this.backgroundColor != null) {\n ctx.fillStyle = this.backgroundColor;\n ctx.fillRect(0, 0, width, height);\n }\n ctx.drawImage(this.originalImage, imagePosition.x1, imagePosition.y1, width, height, 0, 0, width, height);\n /** @type {?} */\n const output = { width, height, imagePosition, cropperPosition: Object.assign({}, this.cropper) };\n /** @type {?} */\n const resizeRatio = this.getResizeRatio(width, height);\n if (resizeRatio !== 1) {\n output.width = Math.round(width * resizeRatio);\n output.height = this.maintainAspectRatio\n ? Math.round(output.width / this.aspectRatio)\n : Math.round(height * resizeRatio);\n resizeCanvas(cropCanvas, output.width, output.height);\n }\n return this.cropToOutputType(outputType, cropCanvas, output);\n }\n }\n return null;\n }\n /**\n * @return {?}\n */\n getImagePosition() {\n /** @type {?} */\n const sourceImageElement = this.sourceImage.nativeElement;\n /** @type {?} */\n const ratio = this.originalSize.width / sourceImageElement.offsetWidth;\n return {\n x1: Math.round(this.cropper.x1 * ratio),\n y1: Math.round(this.cropper.y1 * ratio),\n x2: Math.min(Math.round(this.cropper.x2 * ratio), this.originalSize.width),\n y2: Math.min(Math.round(this.cropper.y2 * ratio), this.originalSize.height)\n };\n }\n /**\n * @param {?} outputType\n * @param {?} cropCanvas\n * @param {?} output\n * @return {?}\n */\n cropToOutputType(outputType, cropCanvas, output) {\n switch (outputType) {\n case 'file':\n return this.cropToFile(cropCanvas)\n .then((result) => {\n output.file = result;\n this.imageCropped.emit(output);\n return output;\n });\n case 'both':\n output.base64 = this.cropToBase64(cropCanvas);\n return this.cropToFile(cropCanvas)\n .then((result) => {\n output.file = result;\n this.imageCropped.emit(output);\n return output;\n });\n default:\n output.base64 = this.cropToBase64(cropCanvas);\n this.imageCropped.emit(output);\n return output;\n }\n }\n /**\n * @param {?} cropCanvas\n * @return {?}\n */\n cropToBase64(cropCanvas) {\n /** @type {?} */\n const imageBase64 = cropCanvas.toDataURL('image/' + this.format, this.getQuality());\n this.imageCroppedBase64.emit(imageBase64);\n return imageBase64;\n }\n /**\n * @param {?} cropCanvas\n * @return {?}\n */\n cropToFile(cropCanvas) {\n return this.getCanvasBlob(cropCanvas)\n .then((result) => {\n if (result) {\n this.imageCroppedFile.emit(result);\n }\n return result;\n });\n }\n /**\n * @param {?} cropCanvas\n * @return {?}\n */\n getCanvasBlob(cropCanvas) {\n return new Promise((resolve) => {\n cropCanvas.toBlob((result) => this.zone.run(() => resolve(result)), 'image/' + this.format, this.getQuality());\n });\n }\n /**\n * @return {?}\n */\n getQuality() {\n return Math.min(1, Math.max(0, this.imageQuality / 100));\n }\n /**\n * @param {?} width\n * @param {?} height\n * @return {?}\n */\n getResizeRatio(width, height) {\n if (this.resizeToWidth > 0) {\n if (!this.onlyScaleDown || width > this.resizeToWidth) {\n return this.resizeToWidth / width;\n }\n }\n else if (this.resizeToHeight > 0) {\n if (!this.onlyScaleDown || height > this.resizeToHeight) {\n return this.resizeToHeight / height;\n }\n }\n return 1;\n }\n /**\n * @param {?} event\n * @return {?}\n */\n getClientX(event) {\n return event.clientX || event.touches && event.touches[0] && event.touches[0].clientX;\n }\n /**\n * @param {?} event\n * @return {?}\n */\n getClientY(event) {\n return event.clientY || event.touches && event.touches[0] && event.touches[0].clientY;\n }\n}\nImageCropperComponent.ɵfac = function ImageCropperComponent_Factory(t) { return new (t || ImageCropperComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.DomSanitizer), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nImageCropperComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ImageCropperComponent, selectors: [[\"image-cropper\"]], viewQuery: function ImageCropperComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.sourceImage = _t.first);\n } }, hostVars: 2, hostBindings: function ImageCropperComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"resize\", function ImageCropperComponent_resize_HostBindingHandler() { return ctx.onResize(); }, false, ɵngcc0.ɵɵresolveWindow)(\"mousemove\", function ImageCropperComponent_mousemove_HostBindingHandler($event) { return ctx.moveImg($event); }, false, ɵngcc0.ɵɵresolveDocument)(\"touchmove\", function ImageCropperComponent_touchmove_HostBindingHandler($event) { return ctx.moveImg($event); }, false, ɵngcc0.ɵɵresolveDocument)(\"mouseup\", function ImageCropperComponent_mouseup_HostBindingHandler() { return ctx.moveStop(); }, false, ɵngcc0.ɵɵresolveDocument)(\"touchend\", function ImageCropperComponent_touchend_HostBindingHandler() { return ctx.moveStop(); }, false, ɵngcc0.ɵɵresolveDocument);\n } if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"text-align\", ctx.alignImage);\n } }, inputs: { format: \"format\", outputType: \"outputType\", maintainAspectRatio: \"maintainAspectRatio\", aspectRatio: \"aspectRatio\", resizeToWidth: \"resizeToWidth\", resizeToHeight: \"resizeToHeight\", cropperMinWidth: \"cropperMinWidth\", cropperMinHeight: \"cropperMinHeight\", roundCropper: \"roundCropper\", onlyScaleDown: \"onlyScaleDown\", imageQuality: \"imageQuality\", autoCrop: \"autoCrop\", containWithinAspectRatio: \"containWithinAspectRatio\", cropper: \"cropper\", alignImage: \"alignImage\", imageFileChanged: \"imageFileChanged\", imageChangedEvent: \"imageChangedEvent\", imageBase64: \"imageBase64\", backgroundColor: \"backgroundColor\" }, outputs: { startCropImage: \"startCropImage\", imageCropped: \"imageCropped\", imageCroppedBase64: \"imageCroppedBase64\", imageCroppedFile: \"imageCroppedFile\", imageLoaded: \"imageLoaded\", cropperReady: \"cropperReady\", loadImageFailed: \"loadImageFailed\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 4, vars: 6, consts: [[1, \"source-image\", 3, \"src\", \"load\"], [\"sourceImage\", \"\"], [\"class\", \"cropper\", 3, \"rounded\", \"top\", \"left\", \"width\", \"height\", \"margin-left\", \"visibility\", 4, \"ngIf\"], [1, \"cropper\"], [1, \"move\", 3, \"mousedown\", \"touchstart\"], [1, \"resize\", \"topleft\", 3, \"mousedown\", \"touchstart\"], [1, \"square\"], [1, \"resize\", \"top\"], [1, \"resize\", \"topright\", 3, \"mousedown\", \"touchstart\"], [1, \"resize\", \"right\"], [1, \"resize\", \"bottomright\", 3, \"mousedown\", \"touchstart\"], [1, \"resize\", \"bottom\"], [1, \"resize\", \"bottomleft\", 3, \"mousedown\", \"touchstart\"], [1, \"resize\", \"left\"], [1, \"resize-bar\", \"top\", 3, \"mousedown\", \"touchstart\"], [1, \"resize-bar\", \"right\", 3, \"mousedown\", \"touchstart\"], [1, \"resize-bar\", \"bottom\", 3, \"mousedown\", \"touchstart\"], [1, \"resize-bar\", \"left\", 3, \"mousedown\", \"touchstart\"]], template: function ImageCropperComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\")(1, \"img\", 0, 1);\n ɵngcc0.ɵɵlistener(\"load\", function ImageCropperComponent_Template_img_load_1_listener() { return ctx.imageLoadedInView(); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, ImageCropperComponent_div_3_Template, 23, 14, \"div\", 2);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"background\", ctx.imageVisible && ctx.backgroundColor);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"visibility\", ctx.imageVisible ? \"visible\" : \"hidden\");\n ɵngcc0.ɵɵproperty(\"src\", ctx.safeImgDataUrl, ɵngcc0.ɵɵsanitizeUrl);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.imageVisible);\n } }, directives: [ɵngcc2.NgIf], styles: [\"[_nghost-%COMP%]{display:flex;position:relative;width:100%;max-width:100%;max-height:100%;overflow:hidden;padding:5px;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[_nghost-%COMP%] > div[_ngcontent-%COMP%]{position:relative;width:100%}[_nghost-%COMP%] > div[_ngcontent-%COMP%] img.source-image[_ngcontent-%COMP%]{max-width:100%;max-height:100%}[_nghost-%COMP%] .cropper[_ngcontent-%COMP%]{position:absolute;display:flex;color:#53535c;background:0 0;touch-action:none;outline:rgba(255,255,255,.3) solid 100vw}[_nghost-%COMP%] .cropper[_ngcontent-%COMP%]:after{position:absolute;content:'';top:0;bottom:0;left:0;right:0;pointer-events:none;border:1px dashed;opacity:.75;color:inherit;z-index:1}[_nghost-%COMP%] .cropper[_ngcontent-%COMP%] .move[_ngcontent-%COMP%]{width:100%;cursor:move;border:1px solid rgba(255,255,255,.5)}[_nghost-%COMP%] .cropper[_ngcontent-%COMP%] .resize[_ngcontent-%COMP%]{position:absolute;display:inline-block;line-height:6px;padding:8px;opacity:.85;z-index:1}[_nghost-%COMP%] .cropper[_ngcontent-%COMP%] .resize[_ngcontent-%COMP%] .square[_ngcontent-%COMP%]{display:inline-block;background:#53535c;width:6px;height:6px;border:1px solid rgba(255,255,255,.5);box-sizing:content-box}[_nghost-%COMP%] .cropper[_ngcontent-%COMP%] .resize.topleft[_ngcontent-%COMP%]{top:-12px;left:-12px;cursor:nwse-resize}[_nghost-%COMP%] .cropper[_ngcontent-%COMP%] .resize.top[_ngcontent-%COMP%]{top:-12px;left:calc(50% - 12px);cursor:ns-resize}[_nghost-%COMP%] .cropper[_ngcontent-%COMP%] .resize.topright[_ngcontent-%COMP%]{top:-12px;right:-12px;cursor:nesw-resize}[_nghost-%COMP%] .cropper[_ngcontent-%COMP%] .resize.right[_ngcontent-%COMP%]{top:calc(50% - 12px);right:-12px;cursor:ew-resize}[_nghost-%COMP%] .cropper[_ngcontent-%COMP%] .resize.bottomright[_ngcontent-%COMP%]{bottom:-12px;right:-12px;cursor:nwse-resize}[_nghost-%COMP%] .cropper[_ngcontent-%COMP%] .resize.bottom[_ngcontent-%COMP%]{bottom:-12px;left:calc(50% - 12px);cursor:ns-resize}[_nghost-%COMP%] .cropper[_ngcontent-%COMP%] .resize.bottomleft[_ngcontent-%COMP%]{bottom:-12px;left:-12px;cursor:nesw-resize}[_nghost-%COMP%] .cropper[_ngcontent-%COMP%] .resize.left[_ngcontent-%COMP%]{top:calc(50% - 12px);left:-12px;cursor:ew-resize}[_nghost-%COMP%] .cropper[_ngcontent-%COMP%] .resize-bar[_ngcontent-%COMP%]{position:absolute;z-index:1}[_nghost-%COMP%] .cropper[_ngcontent-%COMP%] .resize-bar.top[_ngcontent-%COMP%]{top:-11px;left:11px;width:calc(100% - 22px);height:22px;cursor:ns-resize}[_nghost-%COMP%] .cropper[_ngcontent-%COMP%] .resize-bar.right[_ngcontent-%COMP%]{top:11px;right:-11px;height:calc(100% - 22px);width:22px;cursor:ew-resize}[_nghost-%COMP%] .cropper[_ngcontent-%COMP%] .resize-bar.bottom[_ngcontent-%COMP%]{bottom:-11px;left:11px;width:calc(100% - 22px);height:22px;cursor:ns-resize}[_nghost-%COMP%] .cropper[_ngcontent-%COMP%] .resize-bar.left[_ngcontent-%COMP%]{top:11px;left:-11px;height:calc(100% - 22px);width:22px;cursor:ew-resize}[_nghost-%COMP%] .cropper.rounded[_ngcontent-%COMP%]{outline-color:transparent}[_nghost-%COMP%] .cropper.rounded[_ngcontent-%COMP%]:after{border-radius:100%;box-shadow:0 0 0 100vw rgba(255,255,255,.3)}@media (orientation:portrait){[_nghost-%COMP%] .cropper[_ngcontent-%COMP%]{outline-width:100vh}[_nghost-%COMP%] .cropper.rounded[_ngcontent-%COMP%]:after{box-shadow:0 0 0 100vh rgba(255,255,255,.3)}}[_nghost-%COMP%] .cropper.rounded[_ngcontent-%COMP%] .move[_ngcontent-%COMP%]{border-radius:100%}\"], changeDetection: 0 });\n/** @nocollapse */\nImageCropperComponent.ctorParameters = () => [\n { type: DomSanitizer },\n { type: ChangeDetectorRef },\n { type: NgZone }\n];\nImageCropperComponent.propDecorators = {\n sourceImage: [{ type: ViewChild, args: ['sourceImage',] }],\n imageFileChanged: [{ type: Input }],\n imageChangedEvent: [{ type: Input }],\n imageBase64: [{ type: Input }],\n format: [{ type: Input }],\n outputType: [{ type: Input }],\n maintainAspectRatio: [{ type: Input }],\n aspectRatio: [{ type: Input }],\n resizeToWidth: [{ type: Input }],\n resizeToHeight: [{ type: Input }],\n cropperMinWidth: [{ type: Input }],\n cropperMinHeight: [{ type: Input }],\n roundCropper: [{ type: Input }],\n onlyScaleDown: [{ type: Input }],\n imageQuality: [{ type: Input }],\n autoCrop: [{ type: Input }],\n backgroundColor: [{ type: Input }],\n containWithinAspectRatio: [{ type: Input }],\n cropper: [{ type: Input }],\n alignImage: [{ type: HostBinding, args: ['style.text-align',] }, { type: Input }],\n startCropImage: [{ type: Output }],\n imageCropped: [{ type: Output }],\n imageCroppedBase64: [{ type: Output }],\n imageCroppedFile: [{ type: Output }],\n imageLoaded: [{ type: Output }],\n cropperReady: [{ type: Output }],\n loadImageFailed: [{ type: Output }],\n onResize: [{ type: HostListener, args: ['window:resize',] }],\n moveImg: [{ type: HostListener, args: ['document:mousemove', ['$event'],] }, { type: HostListener, args: ['document:touchmove', ['$event'],] }],\n moveStop: [{ type: HostListener, args: ['document:mouseup',] }, { type: HostListener, args: ['document:touchend',] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ImageCropperComponent, [{\n type: Component,\n args: [{\n selector: 'image-cropper',\n template: \"
\\n \\n
\\n  
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n\\n\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [\":host{display:flex;position:relative;width:100%;max-width:100%;max-height:100%;overflow:hidden;padding:5px;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host>div{position:relative;width:100%}:host>div img.source-image{max-width:100%;max-height:100%}:host .cropper{position:absolute;display:flex;color:#53535c;background:0 0;touch-action:none;outline:rgba(255,255,255,.3) solid 100vw}:host .cropper:after{position:absolute;content:'';top:0;bottom:0;left:0;right:0;pointer-events:none;border:1px dashed;opacity:.75;color:inherit;z-index:1}:host .cropper .move{width:100%;cursor:move;border:1px solid rgba(255,255,255,.5)}:host .cropper .resize{position:absolute;display:inline-block;line-height:6px;padding:8px;opacity:.85;z-index:1}:host .cropper .resize .square{display:inline-block;background:#53535c;width:6px;height:6px;border:1px solid rgba(255,255,255,.5);box-sizing:content-box}:host .cropper .resize.topleft{top:-12px;left:-12px;cursor:nwse-resize}:host .cropper .resize.top{top:-12px;left:calc(50% - 12px);cursor:ns-resize}:host .cropper .resize.topright{top:-12px;right:-12px;cursor:nesw-resize}:host .cropper .resize.right{top:calc(50% - 12px);right:-12px;cursor:ew-resize}:host .cropper .resize.bottomright{bottom:-12px;right:-12px;cursor:nwse-resize}:host .cropper .resize.bottom{bottom:-12px;left:calc(50% - 12px);cursor:ns-resize}:host .cropper .resize.bottomleft{bottom:-12px;left:-12px;cursor:nesw-resize}:host .cropper .resize.left{top:calc(50% - 12px);left:-12px;cursor:ew-resize}:host .cropper .resize-bar{position:absolute;z-index:1}:host .cropper .resize-bar.top{top:-11px;left:11px;width:calc(100% - 22px);height:22px;cursor:ns-resize}:host .cropper .resize-bar.right{top:11px;right:-11px;height:calc(100% - 22px);width:22px;cursor:ew-resize}:host .cropper .resize-bar.bottom{bottom:-11px;left:11px;width:calc(100% - 22px);height:22px;cursor:ns-resize}:host .cropper .resize-bar.left{top:11px;left:-11px;height:calc(100% - 22px);width:22px;cursor:ew-resize}:host .cropper.rounded{outline-color:transparent}:host .cropper.rounded:after{border-radius:100%;box-shadow:0 0 0 100vw rgba(255,255,255,.3)}@media (orientation:portrait){:host .cropper{outline-width:100vh}:host .cropper.rounded:after{box-shadow:0 0 0 100vh rgba(255,255,255,.3)}}:host .cropper.rounded .move{border-radius:100%}\"]\n }]\n }], function () { return [{ type: ɵngcc1.DomSanitizer }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.NgZone }]; }, { format: [{\n type: Input\n }], outputType: [{\n type: Input\n }], maintainAspectRatio: [{\n type: Input\n }], aspectRatio: [{\n type: Input\n }], resizeToWidth: [{\n type: Input\n }], resizeToHeight: [{\n type: Input\n }], cropperMinWidth: [{\n type: Input\n }], cropperMinHeight: [{\n type: Input\n }], roundCropper: [{\n type: Input\n }], onlyScaleDown: [{\n type: Input\n }], imageQuality: [{\n type: Input\n }], autoCrop: [{\n type: Input\n }], containWithinAspectRatio: [{\n type: Input\n }], cropper: [{\n type: Input\n }], alignImage: [{\n type: HostBinding,\n args: ['style.text-align']\n }, {\n type: Input\n }], startCropImage: [{\n type: Output\n }], imageCropped: [{\n type: Output\n }], imageCroppedBase64: [{\n type: Output\n }], imageCroppedFile: [{\n type: Output\n }], imageLoaded: [{\n type: Output\n }], cropperReady: [{\n type: Output\n }], loadImageFailed: [{\n type: Output\n }], imageFileChanged: [{\n type: Input\n }], imageChangedEvent: [{\n type: Input\n }], imageBase64: [{\n type: Input\n }], \n /**\n * @return {?}\n */\n onResize: [{\n type: HostListener,\n args: ['window:resize']\n }], \n /**\n * @param {?} event\n * @return {?}\n */\n moveImg: [{\n type: HostListener,\n args: ['document:mousemove', ['$event']]\n }, {\n type: HostListener,\n args: ['document:touchmove', ['$event']]\n }], \n /**\n * @return {?}\n */\n moveStop: [{\n type: HostListener,\n args: ['document:mouseup']\n }, {\n type: HostListener,\n args: ['document:touchend']\n }], sourceImage: [{\n type: ViewChild,\n args: ['sourceImage']\n }], backgroundColor: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass ImageCropperModule {\n}\nImageCropperModule.ɵfac = function ImageCropperModule_Factory(t) { return new (t || ImageCropperModule)(); };\nImageCropperModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ImageCropperModule });\nImageCropperModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[\n CommonModule\n ]] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ImageCropperModule, [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule\n ],\n declarations: [\n ImageCropperComponent\n ],\n exports: [\n ImageCropperComponent\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ImageCropperModule, { declarations: function () { return [ImageCropperComponent]; }, imports: function () { return [CommonModule]; }, exports: function () { return [ImageCropperComponent]; } }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n\nexport { ImageCropperModule, ImageCropperComponent };\n\n","\r\n\r\n
\r\n
\r\n

My Live Events

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n

No Events listed yet.

\r\n

Let's add one!

\r\n Schedule an Event\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{ evnt.title }}\r\n

\r\n\r\n
\r\n
\r\n

Date

\r\n \r\n {{ evnt.startTime | date: 'short' }} \r\n
\r\n
\r\n

Status

\r\n \r\n {{ evnt.courseEventStatus | enumValue: CourseEventStatus:CourseEventStatusEnum }}\r\n \r\n
\r\n
\r\n

Room

\r\n {{ evnt.roomName }}\r\n N/A\r\n
\r\n
\r\n

Registrants

\r\n {{ evnt.purchaseCount }}\r\n
\r\n
\r\n

Reservations

\r\n {{ evnt.reservationCount }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport {\r\n SuperUserService,\r\n UserService\r\n} from 'src/app/_services/generatedServices';\r\nimport { EventViewModel, UsersAuthoredEventsViewModel, CourseEventStatus } from 'src/app/_models/generatedModels';\r\nimport 'moment-timezone';\r\nimport { Enums } from 'src/app/_models/generatedEnums';\r\nimport { NavigationService } from 'src/app/_services/navigation-service';\r\nimport { AuthenticationService } from 'src/app/_services/authentication.service';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { AddEditAssessmentModalComponent } from 'src/app/superUser/courses/assessments/add-edit-assessment-modal.component';\r\nimport {\r\n ToasterService\r\n} from \"../../_services/toaster.service\";\r\n\r\n@Component({\r\n selector: 'bxl-my-live-events',\r\n templateUrl: 'my-live-events.component.html',\r\n})\r\nexport class MyLiveEventsComponent implements OnInit {\r\n initialized = false;\r\n events: UsersAuthoredEventsViewModel[];\r\n CourseEventStatus = CourseEventStatus;\r\n CourseEventStatusEnum = Enums.CourseEventStatusEnum;\r\n timezone: string;\r\n submitComplete2: Promise<{}> | undefined;\r\n\r\n\r\n constructor(private userService: UserService, private modalService: NgbModal, private superUserService:SuperUserService, private toaster:ToasterService, private nav: NavigationService, public auth: AuthenticationService) {\r\n this.nav.pageTitle = 'My Live Events';\r\n }\r\n\r\n ngOnInit(): void {\r\n this.userService.getEventsListedByUser().subscribe((events) => {\r\n this.events = events;\r\n this.initialized = true;\r\n });\r\n }\r\n\r\n export(event:UsersAuthoredEventsViewModel) {\r\n this.submitComplete2 = new Promise((resetButton: any, reject) => {\r\n this.superUserService.exportPresenterData(event.id).subscribe(\r\n (result) => {\r\n const a = document.createElement('a');\r\n const objectUrl = URL.createObjectURL(result);\r\n a.href = objectUrl;\r\n a.download = event.title + ' Presenter Data.xlsx';\r\n a.click();\r\n URL.revokeObjectURL(objectUrl);\r\n resetButton();\r\n },\r\n (error) => {\r\n resetButton();\r\n this.toaster.messageDialog(error.error, 'Error Exporting').subscribe();\r\n }\r\n );\r\n });\r\n }\r\n\r\n editCEUAssessment(model: UsersAuthoredEventsViewModel) {\r\n const modalRef = this.modalService.open(AddEditAssessmentModalComponent, { size: 'lg', windowClass: 'modal-full', ariaLabelledBy: 'modal-basic-title', backdrop: 'static' });\r\n modalRef.componentInstance.courseEventId = model.id;\r\n modalRef.result.then(\r\n (result) => {\r\n\r\n },\r\n (reason) => {\r\n\r\n }\r\n );\r\n return;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CKEditorModule } from '@ckeditor/ckeditor5-angular';\r\nimport { DateInputsModule } from '@progress/kendo-angular-dateinputs';\r\nimport { EditorModule } from '@progress/kendo-angular-editor';\r\nimport { InputsModule } from '@progress/kendo-angular-inputs';\r\nimport { ImageCropperModule } from 'ngx-image-cropper';\r\nimport { ExhibitDesignerComponent } from './exhibits/exhibit-designer/exhibit-designer.component';\r\nimport { MyLiveEventsComponent } from './my-account/my-live-events/my-live-events.component';\r\nimport { ScheduleEventComponent } from './my-account/my-live-events/schedule-event/schedule-event.component';\r\nimport { MyPostersComponent } from './my-account/posters/my-posters.component';\r\nimport { CallForPostersComponent } from './posters/call-for-posters/call-for-posters.component';\r\nimport { ApplicationPipesModule } from './_shared/modules/application-pipes.module';\r\n\r\n@NgModule({\r\n declarations:[\r\n ExhibitDesignerComponent,\r\n MyPostersComponent,\r\n CallForPostersComponent,\r\n MyLiveEventsComponent,\r\n ScheduleEventComponent\r\n ],\r\n entryComponents:[],\r\n imports:[\r\n ApplicationPipesModule,\r\n ImageCropperModule,\r\n EditorModule,\r\n DateInputsModule,\r\n CKEditorModule,\r\n RouterModule,\r\n InputsModule,\r\n ],\r\n exports:[\r\n ExhibitDesignerComponent,\r\n MyPostersComponent,\r\n CallForPostersComponent,\r\n MyLiveEventsComponent,\r\n ScheduleEventComponent\r\n\r\n ]\r\n})\r\nexport class SharedAccountConferenceModule{}\r\n"]}