/*! * @license * Copyright 2016 Alfresco Software, Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { Directive, Input, HostListener } from '@angular/core'; import { ClipboardService } from './clipboard.service'; @Directive({ selector: '[adf-clipboard]', exportAs: 'adfClipboard' }) export class ClipboardDirective { // tslint:disable-next-line:no-input-rename @Input('adf-clipboard') target: HTMLInputElement | HTMLTextAreaElement; // tslint:disable-next-line:no-input-rename @Input('clipboard-notification') message: string; @HostListener('click', ['$event']) handleClickEvent(event: MouseEvent) { event.preventDefault(); this.copyToClipboard(); } constructor(private clipboardService: ClipboardService) {} private copyToClipboard() { const isValidTarget = this.clipboardService.isTargetValid(this.target); if (isValidTarget) { this.clipboardService.copyToClipboard(this.target, this.message); } } }