| // Copyright 2018 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. |
| |
| import 'dart:html'; |
| |
| /// Create anchor element with download attribute |
| AnchorElement createAnchorElement(String href, String? suggestedName) { |
| final AnchorElement element = AnchorElement(href: href); |
| |
| if (suggestedName == null) { |
| element.download = 'download'; |
| } else { |
| element.download = suggestedName; |
| } |
| |
| return element; |
| } |
| |
| /// Add an element to a container and click it |
| void addElementToContainerAndClick(Element container, Element element) { |
| // Add the element and click it |
| // All previous elements will be removed before adding the new one |
| container.children.add(element); |
| element.click(); |
| } |
| |
| /// Initializes a DOM container where we can host elements. |
| Element ensureInitialized(String id) { |
| Element? target = querySelector('#$id'); |
| if (target == null) { |
| final Element targetElement = Element.tag('flt-x-file')..id = id; |
| |
| querySelector('body')!.children.add(targetElement); |
| target = targetElement; |
| } |
| return target; |
| } |