blob: 2a34fdf569f0126b3b97a7444fc4029d07e6e0e7 [file] [log] [blame]
Philipp Schrader175a93c2023-02-19 13:13:40 -08001load("@aspect_bazel_lib//lib:copy_file.bzl", "copy_file")
Emily Markova7b786402024-01-24 20:05:24 -08002load("@aspect_rules_js//js:defs.bzl", "js_binary", "js_run_binary")
3load("@npm//:@angular/service-worker/package_json.bzl", angular_service_worker = "bin")
Philipp Schrader175a93c2023-02-19 13:13:40 -08004load("@npm//:defs.bzl", "npm_link_all_packages")
5load("//tools/build_rules:js.bzl", "ng_application")
Philipp Schraderc70fc622024-08-14 20:50:13 -07006load("//tools/build_rules/js:static.bzl", "assemble_static_files")
7load(":defs.bzl", "assemble_service_worker_files")
Alex Perryb3168082022-01-22 13:36:13 -08008
Philipp Schrader175a93c2023-02-19 13:13:40 -08009npm_link_all_packages(name = "node_modules")
10
Philipp Schraderad2a6fb2024-03-20 20:51:36 -070011exports_files([
12 "_static_files/authorize/index.html",
13])
14
Emily Markova7b786402024-01-24 20:05:24 -080015assemble_service_worker_files(
16 name = "service_worker_files",
17 outs = [
18 "ngsw-worker.js",
19 ],
20)
21
Philipp Schradere2e27ff2024-02-25 22:08:55 -080022OPENCV_VERSION = "4.9.0"
23
24copy_file(
25 name = "opencv.js",
26 src = "@opencv_wasm//file",
27 out = "assets/opencv_{}/opencv.js".format(OPENCV_VERSION),
28)
29
Philipp Schrader175a93c2023-02-19 13:13:40 -080030ng_application(
Alex Perryb3168082022-01-22 13:36:13 -080031 name = "app",
Philipp Schradere2e27ff2024-02-25 22:08:55 -080032 assets = [
Emily Markova7b786402024-01-24 20:05:24 -080033 "manifest.json",
Philipp Schradere2e27ff2024-02-25 22:08:55 -080034 ":opencv.js",
35 ],
Philipp Schrader175a93c2023-02-19 13:13:40 -080036 extra_srcs = [
37 "app/common.css",
38 ],
39 html_assets = [
40 "favicon.ico",
Emily Markova7b786402024-01-24 20:05:24 -080041 "assets/971_144.png",
Philipp Schrader175a93c2023-02-19 13:13:40 -080042 ],
Alex Perryb3168082022-01-22 13:36:13 -080043 deps = [
Philipp Schradere5d13942024-03-17 15:44:35 -070044 ":node_modules",
Alex Perryb3168082022-01-22 13:36:13 -080045 ],
46)
47
Philipp Schrader175a93c2023-02-19 13:13:40 -080048assemble_static_files(
Philipp Schrader577befe2022-03-15 00:00:49 -070049 name = "static_files",
Philipp Schraderffb651f2024-03-23 14:14:34 -070050 srcs = [
Philipp Schraderad2a6fb2024-03-20 20:51:36 -070051 "_static_files/authorize/index.html",
Emily Markova7b786402024-01-24 20:05:24 -080052 ":ngsw.json",
Philipp Schraderffb651f2024-03-23 14:14:34 -070053 ":ngsw-worker.js",
54 "//third_party/y2024/field:pictures",
Philipp Schrader577befe2022-03-15 00:00:49 -070055 ],
Philipp Schraderffb651f2024-03-23 14:14:34 -070056 app_files = ":app",
Philipp Schrader175a93c2023-02-19 13:13:40 -080057 replace_prefixes = {
Philipp Schraderad2a6fb2024-03-20 20:51:36 -070058 "_static_files": "",
Philipp Schrader175a93c2023-02-19 13:13:40 -080059 "prod": "",
60 "dev": "",
Emily Markovadcadcb62024-02-03 13:07:17 -080061 "third_party/y2024": "pictures",
Philipp Schrader175a93c2023-02-19 13:13:40 -080062 },
Austin Schuhf737d472023-07-29 17:35:59 -070063 tags = [
64 "no-remote-cache",
65 ],
Philipp Schrader684a8e82022-02-25 17:39:28 -080066 visibility = ["//visibility:public"],
Alex Perryb3168082022-01-22 13:36:13 -080067)
68
Philipp Schrader175a93c2023-02-19 13:13:40 -080069copy_file(
70 name = "app_common_css",
71 src = "common.css",
72 out = "app/common.css",
Philipp Schrader72beced2022-03-07 05:29:52 -080073 visibility = ["//scouting/www:__subpackages__"],
74)
Emily Markova7b786402024-01-24 20:05:24 -080075
76angular_service_worker.ngsw_config_binary(
77 name = "ngsw_config_binary",
78)
79
80js_binary(
81 name = "ngsw_config_wrapper",
82 data = [
83 ":ngsw_config_binary",
84 ],
85 entry_point = "ngsw_config_wrapper.js",
86)
87
88js_run_binary(
89 name = "ngsw_config",
90 srcs = [
91 "manifest.json",
92 "ngsw-config.json",
93 ":app",
94 ":ngsw_config_binary",
95 ],
96 outs = [
97 "ngsw.json",
98 ],
99 args = [
100 "$(rootpath :ngsw_config_binary)",
101 "$(rootpath :ngsw.json)",
102 "$(rootpath :prod)",
103 "$(rootpath ngsw-config.json)",
104 ],
105 tool = ":ngsw_config_wrapper",
106)