diff --git a/ts/editor/BUILD.bazel b/ts/editor/BUILD.bazel index 69289ea75..2db1cccf8 100644 --- a/ts/editor/BUILD.bazel +++ b/ts/editor/BUILD.bazel @@ -2,7 +2,7 @@ load("@npm//@bazel/typescript:index.bzl", "ts_library") load("//ts:prettier.bzl", "prettier_test") load("//ts:eslint.bzl", "eslint_test") load("//ts:esbuild.bzl", "esbuild") -load("//ts:vendor.bzl", "vendor_js_lib", "pkg_from_name") +load("//ts:vendor.bzl", "copy_bootstrap_icons") load("@io_bazel_rules_sass//:defs.bzl", "sass_binary") sass_binary( @@ -27,14 +27,9 @@ ts_library( ], ) -vendor_js_lib( +copy_bootstrap_icons( name = "bootstrap-icons", - pkg = pkg_from_name("bootstrap-icons"), - include = [ - "icons/pin-angle.svg", - ], - strip_prefix = "icons/", - visibility = ["//visibility:public"], + icons = ["pin-angle.svg"], ) esbuild( diff --git a/ts/vendor.bzl b/ts/vendor.bzl index 75bd21f0e..f88920c4c 100644 --- a/ts/vendor.bzl +++ b/ts/vendor.bzl @@ -26,7 +26,7 @@ vendor_js_lib = rule( }, ) -def pkg_from_name(name): +def _pkg_from_name(name): return "@npm//{0}:{0}__files".format(name) # @@ -37,7 +37,7 @@ def pkg_from_name(name): def copy_jquery(name = "jquery", visibility = ["//visibility:public"]): vendor_js_lib( name = name, - pkg = pkg_from_name(name), + pkg = _pkg_from_name(name), include = [ "dist/jquery.min.js", ], @@ -48,7 +48,7 @@ def copy_jquery(name = "jquery", visibility = ["//visibility:public"]): def copy_jquery_ui(name = "jquery-ui", visibility = ["//visibility:public"]): vendor_js_lib( name = name, - pkg = pkg_from_name("jquery-ui-dist"), + pkg = _pkg_from_name("jquery-ui-dist"), base = "external/npm/node_modules/jquery-ui-dist/", include = [ "jquery-ui.min.js", @@ -59,7 +59,7 @@ def copy_jquery_ui(name = "jquery-ui", visibility = ["//visibility:public"]): def copy_protobufjs(name = "protobufjs", visibility = ["//visibility:public"]): vendor_js_lib( name = name, - pkg = pkg_from_name(name), + pkg = _pkg_from_name(name), include = [ "dist/protobuf.min.js", ], @@ -70,7 +70,7 @@ def copy_protobufjs(name = "protobufjs", visibility = ["//visibility:public"]): def copy_mathjax(name = "mathjax", visibility = ["//visibility:public"]): vendor_js_lib( name = name, - pkg = pkg_from_name(name), + pkg = _pkg_from_name(name), include = [ "es5/tex-chtml.js", "es5/input/tex/extensions", @@ -88,7 +88,7 @@ def copy_mathjax(name = "mathjax", visibility = ["//visibility:public"]): def copy_css_browser_selector(name = "css-browser-selector", visibility = ["//visibility:public"]): vendor_js_lib( name = name, - pkg = pkg_from_name(name), + pkg = _pkg_from_name(name), include = [ "css_browser_selector.min.js", ], @@ -98,7 +98,7 @@ def copy_css_browser_selector(name = "css-browser-selector", visibility = ["//vi def copy_bootstrap_js(name = "bootstrap-js", visibility = ["//visibility:public"]): vendor_js_lib( name = name, - pkg = pkg_from_name(name), + pkg = _pkg_from_name(name), include = [ "dist/js/bootstrap.bundle.min.js", ], @@ -109,10 +109,19 @@ def copy_bootstrap_js(name = "bootstrap-js", visibility = ["//visibility:public" def copy_bootstrap_css(name = "bootstrap-css", visibility = ["//visibility:public"]): vendor_js_lib( name = name, - pkg = pkg_from_name(name), + pkg = _pkg_from_name(name), include = [ "dist/css/bootstrap.min.css", ], strip_prefix = "dist/css/", visibility = visibility, ) + +def copy_bootstrap_icons(name = "bootstrap-icons", icons = [], visibility = ["//visibility:public"]): + vendor_js_lib( + name = name, + pkg = _pkg_from_name(name), + include = ["icons/{}".format(icon) for icon in icons], + strip_prefix = "icons/", + visibility = visibility, + )