// Copyright 2016 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. (function() { 'use strict'; Polymer({ is: 'extensions-drop-overlay', properties: { /** @private {boolean} */ dragEnabled: { type: Boolean, observer: 'dragEnabledChanged_', } }, /** @override */ created: function() { this.hidden = true; const dragTarget = document.documentElement; this.dragWrapperHandler_ = new extensions.DragAndDropHandler(true, dragTarget); // TODO(devlin): All these dragTarget listeners leak (they aren't removed // when the element is). This only matters in tests at the moment, but would // be good to fix. dragTarget.addEventListener('extension-drag-started', () => { this.hidden = false; }); dragTarget.addEventListener('extension-drag-ended', () => { this.hidden = true; }); dragTarget.addEventListener('drag-and-drop-load-error', (e) => { this.fire('load-error', e.detail); }); this.dragWrapper_ = new cr.ui.DragWrapper(dragTarget, this.dragWrapperHandler_); }, /** * @param {boolean} dragEnabled * @private */ dragEnabledChanged_: function(dragEnabled) { this.dragWrapperHandler_.dragEnabled = dragEnabled; }, }); })();