load("//ts:prettier.bzl", "prettier_test")
load("//ts:eslint.bzl", "eslint_test")
load("//ts/svelte:svelte.bzl", "compile_svelte", "svelte_check")
load("//ts:esbuild.bzl", "esbuild")
load("//ts:generate_page.bzl", "generate_page")
load("//ts:compile_sass.bzl", "compile_sass")
load("//ts:typescript.bzl", "typescript")

generate_page(page = "card-info")

compile_sass(
    group = "base_css",
    srcs = ["card-info-base.scss"],
    visibility = ["//visibility:public"],
    deps = [
        "//sass:base_lib",
        "//sass:scrollbar_lib",
        "//sass/bootstrap",
    ],
)

_ts_deps = [
    "//ts/lib",
    "//ts/components",
    "@npm//@fluent",
]

compile_svelte(deps = _ts_deps)

typescript(
    name = "index",
    deps = _ts_deps + [
        ":svelte",
    ],
)

esbuild(
    name = "card-info",
    args = {
        "globalName": "anki",
        "loader": {".svg": "text"},
    },
    entry_point = "index.ts",
    output_css = "card-info.css",
    visibility = ["//visibility:public"],
    deps = [
        ":base_css",
        ":index",
        ":svelte",
        "//ts/components",
        "//ts/lib",
        "@npm//protobufjs",
    ],
)

# Tests
################

prettier_test()

eslint_test()

svelte_check(
    name = "svelte_check",
    srcs = glob([
        "*.ts",
        "*.svelte",
    ]) + [
        "//sass:button_mixins_lib",
        "//sass/bootstrap",
        "//ts/components",
    ],
)
