# 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("//third_party/closure_compiler/compile_js.gni")

js_type_check("closure_compile") {
  deps = [
    ":bluetooth_internals",
  ]
}

js_library("bluetooth_internals") {
  sources = [
    "adapter_broker.js",
    "adapter_page.js",
    "bluetooth_internals.js",
    "characteristic_list.js",
    "descriptor_list.js",
    "device_broker.js",
    "device_collection.js",
    "device_details_page.js",
    "device_table.js",
    "devices_page.js",
    "expandable_list.js",
    "object_fieldset.js",
    "service_list.js",
    "sidebar.js",
    "snackbar.js",
    "value_control.js",
  ]

  deps = [
    "//chrome/browser/ui/webui/bluetooth_internals:mojo_bindings_js_externs",
    "//ui/webui/resources/js:cr",
    "//ui/webui/resources/js:util",
    "//ui/webui/resources/js/cr/ui:array_data_model",
    "//ui/webui/resources/js/cr/ui:list",
    "//ui/webui/resources/js/cr/ui:list_item",
    "//ui/webui/resources/js/cr/ui/page_manager:page",
    "//ui/webui/resources/js/cr/ui/page_manager:page_manager",
  ]
}
