UNPKG

ng-feedback

Version:

An angular directive for sending feedback featuring Angular 6, Html2canvas, Angular Material, Rxjs, inspired by Google send feedback, based on angular-cli.

154 lines (153 loc) 11.2 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { Injectable } from '@angular/core'; import html2canvas from 'html2canvas'; import { Subject } from 'rxjs'; var FeedbackService = /** @class */ (function () { function FeedbackService() { this.initialVariables = {}; this.highlightedColor = 'yellow'; this.hiddenColor = 'black'; this.screenshotCanvasSource = new Subject(); this.screenshotCanvas$ = this.screenshotCanvasSource.asObservable(); this.feedbackSource = new Subject(); this.feedback$ = this.feedbackSource.asObservable(); this.isDraggingToolbarSource = new Subject(); this.isDraggingToolbar$ = this.isDraggingToolbarSource.asObservable(); } /** * @return {?} */ FeedbackService.prototype.initScreenshotCanvas = /** * @return {?} */ function () { var _this = this; /** @type {?} */ var that = this; /** @type {?} */ var body = document.body; html2canvas(body, { logging: false, width: document.documentElement.clientWidth, height: document.documentElement.clientHeight, x: document.documentElement.scrollLeft, y: document.documentElement.scrollTop, allowTaint: true }).then(function (bodyCanvas) { _this.screenshotCanvasSource.next(bodyCanvas); }); }; /** * @param {?} canvas * @return {?} */ FeedbackService.prototype.setCanvas = /** * @param {?} canvas * @return {?} */ function (canvas) { this.screenshotCanvasSource.next(canvas); }; /** * @param {?} feedback * @return {?} */ FeedbackService.prototype.setFeedback = /** * @param {?} feedback * @return {?} */ function (feedback) { this.feedbackSource.next(feedback); }; /** * @param {?} isDragging * @return {?} */ FeedbackService.prototype.setIsDraggingToolbar = /** * @param {?} isDragging * @return {?} */ function (isDragging) { this.isDraggingToolbarSource.next(isDragging); }; /** * @param {?} canvas * @return {?} */ FeedbackService.prototype.getImgEle = /** * @param {?} canvas * @return {?} */ function (canvas) { /** @type {?} */ var img = canvas.toDataURL('image/png'); /** @type {?} */ var imageEle = document.createElement('img'); imageEle.setAttribute('src', img); Object.assign(imageEle.style, { position: 'absolute', top: '50%', right: '0', left: '0', margin: '0 auto', maxHeight: '100%', maxWidth: '100%', transform: 'translateY(-50%)' }); return imageEle; }; /** * @return {?} */ FeedbackService.prototype.hideBackDrop = /** * @return {?} */ function () { /** @type {?} */ var dialogBackDrop = /** @type {?} */ (document.getElementsByClassName('dialogBackDrop')[0]); dialogBackDrop.style.backgroundColor = 'initial'; }; /** * @return {?} */ FeedbackService.prototype.showBackDrop = /** * @return {?} */ function () { /** @type {?} */ var dialogBackDrop = /** @type {?} */ (document.getElementsByClassName('dialogBackDrop')[0]); if (!dialogBackDrop.getAttribute('data-html2canvas-ignore')) { dialogBackDrop.setAttribute('data-html2canvas-ignore', 'true'); } dialogBackDrop.style.backgroundColor = 'rgba(0, 0, 0, .288)'; }; FeedbackService.decorators = [ { type: Injectable } ]; return FeedbackService; }()); export { FeedbackService }; if (false) { /** @type {?} */ FeedbackService.prototype.initialVariables; /** @type {?} */ FeedbackService.prototype.highlightedColor; /** @type {?} */ FeedbackService.prototype.hiddenColor; /** @type {?} */ FeedbackService.prototype.screenshotCanvasSource; /** @type {?} */ FeedbackService.prototype.screenshotCanvas$; /** @type {?} */ FeedbackService.prototype.feedbackSource; /** @type {?} */ FeedbackService.prototype.feedback$; /** @type {?} */ FeedbackService.prototype.isDraggingToolbarSource; /** @type {?} */ FeedbackService.prototype.isDraggingToolbar$; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZGJhY2suc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWZlZWRiYWNrLyIsInNvdXJjZXMiOlsibGliL2ZlZWRiYWNrLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxXQUFXLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sRUFBQyxPQUFPLEVBQWEsTUFBTSxNQUFNLENBQUM7OztnQ0FLTCxFQUFFO2dDQUNWLFFBQVE7MkJBQ2IsT0FBTztzQ0FDSyxJQUFJLE9BQU8sRUFBcUI7aUNBQ1AsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksRUFBRTs4QkFFM0UsSUFBSSxPQUFPLEVBQVk7eUJBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUU7dUNBRXpDLElBQUksT0FBTyxFQUFXO2tDQUNQLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLEVBQUU7Ozs7O0lBR3JGLDhDQUFvQjs7Ozs7O1FBQ3pCLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQzs7UUFDbEIsSUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMzQixXQUFXLENBQUMsSUFBSSxFQUFFO1lBQ2hCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsS0FBSyxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVztZQUMzQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxZQUFZO1lBQzdDLENBQUMsRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLFVBQVU7WUFDdEMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUztZQUNyQyxVQUFVLEVBQUcsSUFBSTtTQUNsQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUEsVUFBVTtZQUNoQixLQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzlDLENBQUMsQ0FBQzs7Ozs7O0lBR0UsbUNBQVM7Ozs7Y0FBQyxNQUF5QjtRQUN4QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDOzs7Ozs7SUFHcEMscUNBQVc7Ozs7Y0FBQyxRQUFrQjtRQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzs7Ozs7O0lBRzlCLDhDQUFvQjs7OztjQUFDLFVBQW1CO1FBQzdDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Ozs7OztJQUd6QyxtQ0FBUzs7OztjQUFDLE1BQU07O1FBQ3JCLElBQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQ007O1FBRC9DLElBQ00sUUFBUSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsUUFBUSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFO1lBQzVCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLEdBQUcsRUFBRSxLQUFLO1lBQ1YsS0FBSyxFQUFFLEdBQUc7WUFDVixJQUFJLEVBQUUsR0FBRztZQUNULE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLFNBQVMsRUFBRSxrQkFBa0I7U0FDOUIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxRQUFRLENBQUM7Ozs7O0lBR1gsc0NBQVk7Ozs7O1FBQ2pCLElBQU0sY0FBYyxxQkFBRyxRQUFRLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQWdCLEVBQUM7UUFDM0YsY0FBYyxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDOzs7OztJQUc1QyxzQ0FBWTs7Ozs7UUFDakIsSUFBTSxjQUFjLHFCQUFHLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBZ0IsRUFBQztRQUMzRixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFO1lBQzNELGNBQWMsQ0FBQyxZQUFZLENBQUMseUJBQXlCLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDaEU7UUFDRCxjQUFjLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxxQkFBcUIsQ0FBQzs7O2dCQXJFaEUsVUFBVTs7MEJBTFg7O1NBTWEsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBodG1sMmNhbnZhcyBmcm9tICdodG1sMmNhbnZhcyc7XHJcbmltcG9ydCB7U3ViamVjdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7RmVlZGJhY2t9IGZyb20gJy4vZW50aXR5L2ZlZWRiYWNrJzsgLy8gaW1wb3J0IE9ic2VydmFibGUgdG8gc29sdmUgYnVpbGQgaXNzdWVcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEZlZWRiYWNrU2VydmljZSB7XHJcbiAgcHVibGljIGluaXRpYWxWYXJpYWJsZXM6IG9iamVjdCA9IHt9O1xyXG4gIHB1YmxpYyBoaWdobGlnaHRlZENvbG9yID0gJ3llbGxvdyc7XHJcbiAgcHVibGljIGhpZGRlbkNvbG9yID0gJ2JsYWNrJztcclxuICBwcml2YXRlIHNjcmVlbnNob3RDYW52YXNTb3VyY2UgPSBuZXcgU3ViamVjdDxIVE1MQ2FudmFzRWxlbWVudD4oKTtcclxuICBwdWJsaWMgc2NyZWVuc2hvdENhbnZhcyQ6IE9ic2VydmFibGU8SFRNTENhbnZhc0VsZW1lbnQ+ID0gdGhpcy5zY3JlZW5zaG90Q2FudmFzU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBwcml2YXRlIGZlZWRiYWNrU291cmNlID0gbmV3IFN1YmplY3Q8RmVlZGJhY2s+KCk7XHJcbiAgcHVibGljIGZlZWRiYWNrJDogT2JzZXJ2YWJsZTxGZWVkYmFjaz4gPSB0aGlzLmZlZWRiYWNrU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBwcml2YXRlIGlzRHJhZ2dpbmdUb29sYmFyU291cmNlID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBwdWJsaWMgaXNEcmFnZ2luZ1Rvb2xiYXIkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5pc0RyYWdnaW5nVG9vbGJhclNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuXHJcblxyXG4gIHB1YmxpYyBpbml0U2NyZWVuc2hvdENhbnZhcygpIHtcclxuICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xyXG4gICAgY29uc3QgYm9keSA9IGRvY3VtZW50LmJvZHk7XHJcbiAgICBodG1sMmNhbnZhcyhib2R5LCB7XHJcbiAgICAgIGxvZ2dpbmc6IGZhbHNlLFxyXG4gICAgICB3aWR0aDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLFxyXG4gICAgICBoZWlnaHQ6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQsXHJcbiAgICAgIHg6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0LFxyXG4gICAgICB5OiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wLFxyXG4gICAgICBhbGxvd1RhaW50IDogdHJ1ZVxyXG4gICAgfSkudGhlbihib2R5Q2FudmFzID0+IHtcclxuICAgICAgdGhpcy5zY3JlZW5zaG90Q2FudmFzU291cmNlLm5leHQoYm9keUNhbnZhcyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRDYW52YXMoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5zY3JlZW5zaG90Q2FudmFzU291cmNlLm5leHQoY2FudmFzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRGZWVkYmFjayhmZWVkYmFjazogRmVlZGJhY2spOiB2b2lkIHtcclxuICAgIHRoaXMuZmVlZGJhY2tTb3VyY2UubmV4dChmZWVkYmFjayk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0SXNEcmFnZ2luZ1Rvb2xiYXIoaXNEcmFnZ2luZzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pc0RyYWdnaW5nVG9vbGJhclNvdXJjZS5uZXh0KGlzRHJhZ2dpbmcpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEltZ0VsZShjYW52YXMpOiBIVE1MRWxlbWVudCB7XHJcbiAgICBjb25zdCBpbWcgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9wbmcnKSxcclxuICAgICAgICAgIGltYWdlRWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7XHJcbiAgICBpbWFnZUVsZS5zZXRBdHRyaWJ1dGUoJ3NyYycsIGltZyk7XHJcbiAgICBPYmplY3QuYXNzaWduKGltYWdlRWxlLnN0eWxlLCB7XHJcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxyXG4gICAgICB0b3A6ICc1MCUnLFxyXG4gICAgICByaWdodDogJzAnLFxyXG4gICAgICBsZWZ0OiAnMCcsXHJcbiAgICAgIG1hcmdpbjogJzAgYXV0bycsXHJcbiAgICAgIG1heEhlaWdodDogJzEwMCUnLFxyXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxyXG4gICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC01MCUpJ1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gaW1hZ2VFbGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGlkZUJhY2tEcm9wKCkge1xyXG4gICAgY29uc3QgZGlhbG9nQmFja0Ryb3AgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdkaWFsb2dCYWNrRHJvcCcpWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgZGlhbG9nQmFja0Ryb3Auc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJ2luaXRpYWwnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dCYWNrRHJvcCgpIHtcclxuICAgIGNvbnN0IGRpYWxvZ0JhY2tEcm9wID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZGlhbG9nQmFja0Ryb3AnKVswXSBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmICghZGlhbG9nQmFja0Ryb3AuZ2V0QXR0cmlidXRlKCdkYXRhLWh0bWwyY2FudmFzLWlnbm9yZScpKSB7XHJcbiAgICAgIGRpYWxvZ0JhY2tEcm9wLnNldEF0dHJpYnV0ZSgnZGF0YS1odG1sMmNhbnZhcy1pZ25vcmUnLCAndHJ1ZScpO1xyXG4gICAgfVxyXG4gICAgZGlhbG9nQmFja0Ryb3Auc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJ3JnYmEoMCwgMCwgMCwgLjI4OCknO1xyXG4gIH1cclxufVxyXG4iXX0=