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.

140 lines (139 loc) 10.6 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { Directive, HostListener, EventEmitter, Output, Input } from '@angular/core'; import { MatDialog } from '@angular/material'; import { FeedbackDialogComponent } from './feedback-dialog/feedback-dialog.component'; import { FeedbackService } from './feedback.service'; import { Overlay } from '@angular/cdk/overlay'; var FeedbackDirective = /** @class */ (function () { function FeedbackDirective(dialogRef, feedbackService, overlay) { var _this = this; this.dialogRef = dialogRef; this.feedbackService = feedbackService; this.title = 'Send feedback'; this.placeholder = 'Describe your issue or share your ideas'; this.editTip = 'Click to highlight or hide info'; this.checkboxLabel = 'Include screenshot'; this.cancelLabel = 'CANCEL'; this.sendLabel = 'SEND'; this.moveToolbarTip = 'move toolbar'; this.drawRectTip = 'Draw using yellow to highlight issues or black to hide sensitive info'; this.highlightTip = 'highlight issues'; this.hideTip = 'hide sensitive info'; this.editDoneLabel = 'DONE'; this.send = new EventEmitter(); this.feedbackService.feedback$.subscribe(function (feedback) { _this.send.emit(feedback); }); this.overlay = overlay; } /** * @return {?} */ FeedbackDirective.prototype.onClick = /** * @return {?} */ function () { this.openFeedbackDialog(); }; /** * @return {?} */ FeedbackDirective.prototype.openFeedbackDialog = /** * @return {?} */ function () { this.feedbackService.initScreenshotCanvas(); /** @type {?} */ var dialogRef = this.dialogRef.open(FeedbackDialogComponent, { panelClass: 'feedbackDialog', backdropClass: 'dialogBackDrop', disableClose: true, height: 'auto', width: 'auto', scrollStrategy: this.overlay.scrollStrategies.reposition() }); }; /** * @return {?} */ FeedbackDirective.prototype.ngOnInit = /** * @return {?} */ function () { this.feedbackService.initialVariables = { title: this.title, placeholder: this.placeholder, editTip: this.editTip, checkboxLabel: this.checkboxLabel, cancelLabel: this.cancelLabel, sendLabel: this.sendLabel, moveToolbarTip: this.moveToolbarTip, drawRectTip: this.drawRectTip, highlightTip: this.highlightTip, hideTip: this.hideTip, editDoneLabel: this.editDoneLabel }; }; FeedbackDirective.decorators = [ { type: Directive, args: [{ selector: '[feedback]' },] } ]; /** @nocollapse */ FeedbackDirective.ctorParameters = function () { return [ { type: MatDialog }, { type: FeedbackService }, { type: Overlay } ]; }; FeedbackDirective.propDecorators = { title: [{ type: Input }], placeholder: [{ type: Input }], editTip: [{ type: Input }], checkboxLabel: [{ type: Input }], cancelLabel: [{ type: Input }], sendLabel: [{ type: Input }], moveToolbarTip: [{ type: Input }], drawRectTip: [{ type: Input }], highlightTip: [{ type: Input }], hideTip: [{ type: Input }], editDoneLabel: [{ type: Input }], send: [{ type: Output }], onClick: [{ type: HostListener, args: ['click',] }] }; return FeedbackDirective; }()); export { FeedbackDirective }; if (false) { /** @type {?} */ FeedbackDirective.prototype.overlay; /** @type {?} */ FeedbackDirective.prototype.title; /** @type {?} */ FeedbackDirective.prototype.placeholder; /** @type {?} */ FeedbackDirective.prototype.editTip; /** @type {?} */ FeedbackDirective.prototype.checkboxLabel; /** @type {?} */ FeedbackDirective.prototype.cancelLabel; /** @type {?} */ FeedbackDirective.prototype.sendLabel; /** @type {?} */ FeedbackDirective.prototype.moveToolbarTip; /** @type {?} */ FeedbackDirective.prototype.drawRectTip; /** @type {?} */ FeedbackDirective.prototype.highlightTip; /** @type {?} */ FeedbackDirective.prototype.hideTip; /** @type {?} */ FeedbackDirective.prototype.editDoneLabel; /** @type {?} */ FeedbackDirective.prototype.send; /** @type {?} */ FeedbackDirective.prototype.dialogRef; /** @type {?} */ FeedbackDirective.prototype.feedbackService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZGJhY2suZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZmVlZGJhY2svIiwic291cmNlcyI6WyJsaWIvZmVlZGJhY2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDcEYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7K0JBa0JoQixTQUFvQixFQUFVLGVBQWdDLEVBQUUsT0FBZ0I7O1FBQWhGLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFBVSxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7cUJBYmhFLGVBQWU7MkJBQ1QseUNBQXlDO3VCQUNyRCxpQ0FBaUM7NkJBQzNCLG9CQUFvQjsyQkFDdEIsUUFBUTt5QkFDVixNQUFNOzhCQUNELGNBQWM7MkJBQ2pCLHVFQUF1RTs0QkFDdEUsa0JBQWtCO3VCQUN2QixxQkFBcUI7NkJBQ2YsTUFBTTtvQkFDUCxJQUFJLFlBQVksRUFBVTtRQUdoRCxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQ3RDLFVBQUMsUUFBUTtZQUNQLEtBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzFCLENBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDOzs7OztJQUlsQixtQ0FBTzs7O0lBRGQ7UUFFRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztLQUMzQjs7OztJQUVNLDhDQUFrQjs7OztRQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLG9CQUFvQixFQUFFLENBQUM7O1FBQzVDLElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQzdELFVBQVUsRUFBRSxnQkFBZ0I7WUFDNUIsYUFBYSxFQUFFLGdCQUFnQjtZQUMvQixZQUFZLEVBQUUsSUFBSTtZQUNsQixNQUFNLEVBQUUsTUFBTTtZQUNkLEtBQUssRUFBRSxNQUFNO1lBQ2IsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFO1NBQzNELENBQUMsQ0FBQzs7Ozs7SUFHTCxvQ0FBUTs7O0lBQVI7UUFDRSxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixHQUFHO1lBQ3RDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7U0FDbEMsQ0FBQztLQUNIOztnQkF4REYsU0FBUyxTQUFDLEVBQUMsUUFBUSxFQUFFLFlBQVksRUFBQzs7OztnQkFMM0IsU0FBUztnQkFFVCxlQUFlO2dCQUNmLE9BQU87Ozt3QkFLWixLQUFLOzhCQUNMLEtBQUs7MEJBQ0wsS0FBSztnQ0FDTCxLQUFLOzhCQUNMLEtBQUs7NEJBQ0wsS0FBSztpQ0FDTCxLQUFLOzhCQUNMLEtBQUs7K0JBQ0wsS0FBSzswQkFDTCxLQUFLO2dDQUNMLEtBQUs7dUJBQ0wsTUFBTTswQkFXTixZQUFZLFNBQUMsT0FBTzs7NEJBL0J2Qjs7U0FPYSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XHJcbmltcG9ydCB7RmVlZGJhY2tEaWFsb2dDb21wb25lbnR9IGZyb20gJy4vZmVlZGJhY2stZGlhbG9nL2ZlZWRiYWNrLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQge0ZlZWRiYWNrU2VydmljZX0gZnJvbSAnLi9mZWVkYmFjay5zZXJ2aWNlJztcclxuaW1wb3J0IHtPdmVybGF5fSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcblxyXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ1tmZWVkYmFja10nfSlcclxuZXhwb3J0IGNsYXNzIEZlZWRiYWNrRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXk7XHJcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9ICdTZW5kIGZlZWRiYWNrJztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ0Rlc2NyaWJlIHlvdXIgaXNzdWUgb3Igc2hhcmUgeW91ciBpZGVhcyc7XHJcbiAgQElucHV0KCkgZWRpdFRpcCA9ICdDbGljayB0byBoaWdobGlnaHQgb3IgaGlkZSBpbmZvJztcclxuICBASW5wdXQoKSBjaGVja2JveExhYmVsID0gJ0luY2x1ZGUgc2NyZWVuc2hvdCc7XHJcbiAgQElucHV0KCkgY2FuY2VsTGFiZWwgPSAnQ0FOQ0VMJztcclxuICBASW5wdXQoKSBzZW5kTGFiZWwgPSAnU0VORCc7XHJcbiAgQElucHV0KCkgbW92ZVRvb2xiYXJUaXAgPSAnbW92ZSB0b29sYmFyJztcclxuICBASW5wdXQoKSBkcmF3UmVjdFRpcCA9ICdEcmF3IHVzaW5nIHllbGxvdyB0byBoaWdobGlnaHQgaXNzdWVzIG9yIGJsYWNrIHRvIGhpZGUgc2Vuc2l0aXZlIGluZm8nO1xyXG4gIEBJbnB1dCgpIGhpZ2hsaWdodFRpcCA9ICdoaWdobGlnaHQgaXNzdWVzJztcclxuICBASW5wdXQoKSBoaWRlVGlwID0gJ2hpZGUgc2Vuc2l0aXZlIGluZm8nO1xyXG4gIEBJbnB1dCgpIGVkaXREb25lTGFiZWwgPSAnRE9ORSc7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBzZW5kID0gbmV3IEV2ZW50RW1pdHRlcjxvYmplY3Q+KCk7XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nLCBwcml2YXRlIGZlZWRiYWNrU2VydmljZTogRmVlZGJhY2tTZXJ2aWNlLCBvdmVybGF5OiBPdmVybGF5KSB7XHJcbiAgICB0aGlzLmZlZWRiYWNrU2VydmljZS5mZWVkYmFjayQuc3Vic2NyaWJlKFxyXG4gICAgICAoZmVlZGJhY2spID0+IHtcclxuICAgICAgICB0aGlzLnNlbmQuZW1pdChmZWVkYmFjayk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLm92ZXJsYXkgPSBvdmVybGF5O1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxyXG4gIHB1YmxpYyBvbkNsaWNrKCkge1xyXG4gICAgdGhpcy5vcGVuRmVlZGJhY2tEaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuRmVlZGJhY2tEaWFsb2coKSB7XHJcbiAgICB0aGlzLmZlZWRiYWNrU2VydmljZS5pbml0U2NyZWVuc2hvdENhbnZhcygpO1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2dSZWYub3BlbihGZWVkYmFja0RpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBwYW5lbENsYXNzOiAnZmVlZGJhY2tEaWFsb2cnLFxyXG4gICAgICBiYWNrZHJvcENsYXNzOiAnZGlhbG9nQmFja0Ryb3AnLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgIGhlaWdodDogJ2F1dG8nLFxyXG4gICAgICB3aWR0aDogJ2F1dG8nLFxyXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mZWVkYmFja1NlcnZpY2UuaW5pdGlhbFZhcmlhYmxlcyA9IHtcclxuICAgICAgdGl0bGU6IHRoaXMudGl0bGUsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnBsYWNlaG9sZGVyLFxyXG4gICAgICBlZGl0VGlwOiB0aGlzLmVkaXRUaXAsXHJcbiAgICAgIGNoZWNrYm94TGFiZWw6IHRoaXMuY2hlY2tib3hMYWJlbCxcclxuICAgICAgY2FuY2VsTGFiZWw6IHRoaXMuY2FuY2VsTGFiZWwsXHJcbiAgICAgIHNlbmRMYWJlbDogdGhpcy5zZW5kTGFiZWwsXHJcbiAgICAgIG1vdmVUb29sYmFyVGlwOiB0aGlzLm1vdmVUb29sYmFyVGlwLFxyXG4gICAgICBkcmF3UmVjdFRpcDogdGhpcy5kcmF3UmVjdFRpcCxcclxuICAgICAgaGlnaGxpZ2h0VGlwOiB0aGlzLmhpZ2hsaWdodFRpcCxcclxuICAgICAgaGlkZVRpcDogdGhpcy5oaWRlVGlwLFxyXG4gICAgICBlZGl0RG9uZUxhYmVsOiB0aGlzLmVkaXREb25lTGFiZWxcclxuICAgIH07XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=