diff --git a/.flake8 b/.flake8 new file mode 100644 index 0000000..85aa773 --- /dev/null +++ b/.flake8 @@ -0,0 +1,7 @@ +[flake8] +ignore = D203, W504 +exclude = + __*, + .*, + build, + dist, diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..2d3af86 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,8 @@ +# Include the README +include README.md + +# Include the license file +include LICENSE + +# Include all package data +graft src/blrec/data diff --git a/README.md b/README.md new file mode 100644 index 0000000..c3915df --- /dev/null +++ b/README.md @@ -0,0 +1,195 @@ +# Bilibili Live Streaming Recorder (blrec) + +这是一个前后端分离的 B 站直播录制工具。前端使用了响应式设计,可适应不同的屏幕尺寸;后端是用 Python 写的,可以跨平台运行。 + +这个工具是自动化的,会自动完成直播的录制, 在出现未处理异常时会发送通知,空间不足能够自动回收空间,还有详细日志记录,因此可以长期无人值守运行在服务器上。 + +## 屏幕截图 + + + + + +## 功能 + +- 自动完成直播录制 +- 同步保存弹幕 +- 自动修复时间戳问题:跳变、反跳等。 +- 直播流参数改变自动分割文件,避免出现花屏等问题。 +- 流中断自动拼接且支持 **无缝** 拼接,不会因网络中断而使录播文件片段化。 +- `flv` 文件注入关键帧等元数据,定位播放和拖进度条不会卡顿。 +- 可选录制的画质 +- 可自定义文件保存路径和文件名 +- 支持按文件大小或时长分割文件 +- 支持转换 `flv` 为 `mp4` 格式(需要安装 `ffmpeg`) +- 硬盘空间检测并支持空间不足自动删除旧录播文件。 +- 事件通知(支持邮箱、`ServerChan`、`pushplus`) +- `Webhook`(可配合 `REST API` 实现录制控制,录制完成后压制、上传等自定义需求) + +## 先决条件 + + Python 3.8+ + ffmpeg (如果需要转换 flv 为 mp4) + +## 安装 + + pip install blrec + +用到的一些库需要 C 编译器,Windows 没 C 编译器会安装出错,使用以下方法安装已编译好的库。 + + pip install -r windows-requirements.txt + +## 使用方法 + +### 使用默认设置文件和保存位置 + +在命令行终端里敲入 `blrec` 并回车运行,然后在浏览器访问 `http://localhost:2233`。 + +设置文件为 `toml` 文件,默认位置在 `~/.blrec/settings.toml`。默认录播文件保存位置为当前工作目录 `.`。 + +### 指定设置文件和保存位置 + +`blrec -c path/to/settings.toml -o dirpath/to/save/files` + +如果指定的设置文件不存在会自动创建。通过命令行参数指定保存位置会覆盖掉设置文件的设置。 + +### 绑定主机和端口 + +`blrec --host 0.0.0.0 --port 8000` + +默认主机 `127.0.0.1`,默认端口 `2233`. + +### 安全保障 + +`blrec --key-file path/to/key-file --cert-file path/to/cert-file --api-key ********` + +可以使用 `api key` 防止被恶意访问和泄漏设置里的敏感信息 + +## 作为 ASGI 应用运行 + + uvicorn blrec.web:app + +或者 + + hypercorn blrec.web:app + +作为 ASGI 应用运行,参数通过环境变量指定。 + +- `config` 指定设置文件 +- `out_dir` 指定保存位置 +- `api_key` 指定 `api key` + +### bash + + config=path/to/settings.toml out_dir=path/to/dir api_key=******** uvicorn blrec.web:app --host 0.0.0.0 --port 8000 + +### cmd + + set config=D:\\path\\to\\config.toml & set out_dir=D:\\path\\to\\dir & set api_key=******** uvicorn blrec.web:app --host 0.0.0.0 --port 8000 + +## Webhook + +程序在运行过程中会触发一些事件,如果是支持 `webhook` 的事件,就会给所设置的 `webhook` 网络地址发送 POST 请求。 + +关于支持的事件和 `POST` 请求所发送的数据,详见 wiki。 + +## REST API + +后端 `web` 框架用的是 `FastApi` , 要查看自动生成的交互式 `API` 文档,访问 `http://localhost:2233/docs` (默认主机和端口绑定)。 + +## Progressive Web App(PWA) + +前端其实是一个渐进式网络应用,可以通过地址栏右侧的图标安装,然后像原生应用一样从桌面启动运行。 + +**注意:PWA 要在本地访问或者在 `https` 下才支持。** + +--- + +## 常见问题 + +### 如何终止程序? + +`ctrl + c` + +### 如何更新程序? + +`pip install blrec --upgrade` + +### 设置修改后什么时候生效? + +设置修改后基本上是即时生效的,但是对于正在录制的任务有些例外。 + +对保存位置或路径模板的修改,不影响当前正在录制的文件,要下一次创建文件才会生效。 + +对画质的修改,要下一次获取直播流 `url` 才会生效。如果想立即生效,停止录制再重新开始录制就可以。 + +### 什么是流拼接和无缝拼接? + +流拼接就是在录制的过程中出现网络中断时从中断的位置接续上去,以避免录播文件片段化。 +而无缝拼接就是把中断处前后重复的数据丢掉然后再接续上,就好像没中断过一样,不会丢失数据。 + +**注意:只有网络中断后在短时间内重新连接上,中断处前后有重复数据才有可能进行无缝拼接。** + +### 怎么知道是否出现了流中断? + +如果流出现了中断,不但日志里有记录,程序还会把流中断的详细信息写入到视频文件的元数据里。 + +可以用 `ffprob` 查看视频文件元数据的 `Comment` 字段。 + +有些播放器也可以查看。`VLC` 可以按 `ctrl + i` 后查看注释;`PotPlayer` 可以按两次 tab 键查看评论(mp4 没问题,但是 flv 会因为内容过长而不显示~)。 + +mp4 还在非无缝拼接的位置添加了章节标记,支持章节标记的播放器应该可以看到。 + +### 如何避免流中断、漏录? + +cpu 使用率过高、网络带宽不足或不稳定、硬盘读写慢都会导致流中断,如果不能及时恢复就无法进行无缝拼接进而导致漏录了。所以,只要运行程序的机器配置足够高且网络带宽充足稳定就可以有效避免录制端导致的流中断、漏录。 + +主播网络或 B 站服务器问题导致的流中断、漏录是无法避免的~ + +### 为什么录播文件的时长小于直播持续时间? + +- 开播后推流有延迟 +- 录制过程出现流中断并且未能无缝拼接,漏录了~ +- 主播网络不稳定,流中出现了时间戳跳变、反跳,经过修正后时长可能会变短。 + +### 为什么录制的画质和所设置的画质不符合? + +所设置的画质在开播后不一定存在,如果不存在就会以原画代替。 + +### 为什么按文件大小或时长分割的文件比设置的值小或短? + +分割位置必须在关键帧处才不会丢帧。为了确保文件不会超过指定的限制,会在关键帧将超过所设置的值的前一个关键帧处进行分割,所以文件的大小或时长要比所设置的值小一些。 + +### 为什么没有设置分割文件还是出现了多个录播文件? + +为了避免录播文件出现花屏等问题,在直播流参数改变(主播修改分辨率、码率等)时就会自动分割文件。 + +有时则是主播网络很不稳定造成多次下播上播导致的。 + +### 为什么设置了转换为 `mp4` 格式,但却没有进行转换? + +请确保正确安装了 `ffmpeg`,可以在终端里正常使用 `ffmpeg`。 + +### 怎样才算是旧录播文件? + +创建时间超过 24 小时才会被当成旧录播文件在空间不足时被删除。 + +### 空间不足时是怎样删除旧录播文件的? + +删除文件是按创建时间的先后进行的,最早创建的最先被删除,直到可用空间不少于所设置的阈值为止。 + +### 支持录制付费直播吗? + +没试过~ 可以尝试在网络请求设置里填写已付费账号登录后的 Cookie + +### 为什么要重复造轮子? + +因为现有工具大多都是直接下载流或调用 ffmpeg 进行录制,不能很好地解决漏录、数据损坏、录播文件片段化等录播问题。尤其录制的直播很不稳定,结果很不尽如人意。 + +--- + +## 赞助 & 支持 + +如果觉得这个工具好用,对你有所帮助,可以投喂支持亿下哦~ + +投喂赞助 ☞ <https://afdian.net/@acgnhiki> diff --git a/mypy.ini b/mypy.ini new file mode 100644 index 0000000..197beda --- /dev/null +++ b/mypy.ini @@ -0,0 +1,19 @@ +[mypy] +plugins = pydantic.mypy + +follow_imports = silent +show_column_numbers = True +ignore_missing_imports = True +warn_unused_ignores = True +warn_redundant_casts = True +check_untyped_defs = True +disallow_any_generics = True + +# for strict mypy: (this is the tricky one :-)) +disallow_untyped_defs = True + +[pydantic-mypy] +init_forbid_extra = True +init_typed = True +warn_required_dynamic_aliases = True +warn_untyped_fields = True \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..478c630 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,6 @@ +[build-system] +requires = [ + "setuptools >= 57.0.0, < 58.0.0", + "wheel >= 0.37, < 0.38.0", +] +build-backend = "setuptools.build_meta" \ No newline at end of file diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..1620b62 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,79 @@ +[metadata] +name = blrec +version = attr: blrec.__version__ +description = Bilibili Live Streaming Recorder +long_description = file: README.md +long_description_content_type = text/markdown +keywords = bilibili, live, danmaku, recorder +license = GPLv3 +license_file = LICENSE +author = acgnhiki +author_email = acgnhiki@outlook.com +url = https://github.com/acgnhiki/blrec +classifiers = + Development Status :: 5 - Production/Stable + Environment :: Console + Environment :: Web Environment + Intended Audience :: Developers + Intended Audience :: End Users/Desktop + License :: OSI Approved :: GNU General Public License v3 (GPLv3) + Topic :: Internet + Topic :: Multimedia :: Video + Operating System :: OS Independent + Programming Language :: Python :: 3 :: Only + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 + Programming Language :: Python :: 3.10 + Programming Language :: Python :: Implementation :: CPython + Typing :: Typed + +[options] +packages = find: +package_dir = + =src +include_package_data = True +python_requires = >= 3.8 +install_requires = + typing-extensions >= 3.10.0.0 + fastapi >= 0.65.2, < 0.66.0 + email_validator >=1.1.2, < 2.0.0 + typer >= 0.3.2, < 0.4.0 + aiohttp >= 3.6.2, < 3.7.0 + requests >= 2.24.0, < 2.25.0 + aiofiles >= 0.5.0, < 0.6.0 + tenacity >= 6.2.0, < 6.3.0 + colorama >= 0.4.3, < 0.5.0 + humanize >= 3.2.0, < 3.3.0 + tqdm >= 4.56.2, < 4.57.0 + attrs >= 21.2.0, < 21.3.0 + lxml >= 4.6.2, < 4.7.0 + toml >= 0.10.2, < 0.11.0 + psutil >= 5.8.0, < 5.9.0 + rx >= 3.1.1, < 3.2.0 + bitarray >= 2.2.5, < 2.3.0 + uvicorn[standard] >=0.12.0, < 0.15.0 + +[options.extras_require] + dev = + flake8 >= 3.9.2, < 4.0.0 + mypy >= 0.910, < 1.000 + + setuptools >= 57.0.0, < 58.0.0 + wheel >= 0.37, < 0.38.0 + build >= 0.5.1, < 0.6.0 + + # missing stub packages + types-requests >= 2.25.1, < 2.26.0 + types-aiofiles >= 0.1.7, < 0.2.0 + types-toml >= 0.1.3, < 0.2.0 + types-setuptools >= 57.0.0, < 58.0.0 + + speedups = aiohttp[speedups] >= 3.6.2, < 3.7.0 + +[options.packages.find] +where = src + +[options.entry_points] +console_scripts = + blrec = blrec.cli.main:main diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..77b352a --- /dev/null +++ b/setup.py @@ -0,0 +1,2 @@ +import setuptools +setuptools.setup() diff --git a/src/blrec/__init__.py b/src/blrec/__init__.py new file mode 100644 index 0000000..0f45c2b --- /dev/null +++ b/src/blrec/__init__.py @@ -0,0 +1,3 @@ + +__version__ = '1.0.0' +__prog__ = 'blrec' diff --git a/src/blrec/__main__.py b/src/blrec/__main__.py new file mode 100644 index 0000000..fd0dad0 --- /dev/null +++ b/src/blrec/__main__.py @@ -0,0 +1,5 @@ +import sys + +from .cli.main import main + +sys.exit(main()) diff --git a/src/blrec/application.py b/src/blrec/application.py new file mode 100644 index 0000000..d0f2325 --- /dev/null +++ b/src/blrec/application.py @@ -0,0 +1,298 @@ +import os +import logging +import asyncio +from typing import Iterator, List, Optional + +import attr +import psutil + +from . import __prog__, __version__ +from .disk_space import SpaceMonitor, SpaceReclaimer +from .bili.helpers import ensure_room_id +from .task import ( + RecordTaskManager, + TaskParam, + TaskData, + FileDetail, +) +from .exception import ExistsError, ExceptionHandler +from .event.event_submitters import SpaceEventSubmitter +from .setting import ( + SettingsManager, + Settings, + SettingsIn, + SettingsOut, + KeySetOfSettings, + TaskOptions, +) +from .notification import ( + EmailNotifier, + ServerchanNotifier, + PushplusNotifier, +) +from .webhook import WebHookEmitter + + +logger = logging.getLogger(__name__) + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class AppInfo: + name: str + version: str + pid: int + ppid: int + create_time: float + cwd: str + exe: str + cmdline: List[str] + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class AppStatus: + cpu_percent: float + memory_percent: float + num_threads: int + + +class Application: + def __init__(self, settings: Settings) -> None: + self._out_dir = settings.output.out_dir + self._settings_manager = SettingsManager(self, settings) + self._task_manager = RecordTaskManager(self._settings_manager) + + @property + def info(self) -> AppInfo: + p = psutil.Process(os.getpid()) + with p.oneshot(): + return AppInfo( + name=__prog__, + version=__version__, + pid=p.pid, + ppid=p.ppid(), + create_time=p.create_time(), + cwd=p.cwd(), + exe=p.exe(), + cmdline=p.cmdline(), + ) + + @property + def status(self) -> AppStatus: + p = psutil.Process(os.getpid()) + with p.oneshot(): + return AppStatus( + cpu_percent=p.cpu_percent(), + memory_percent=p.memory_percent(), + num_threads=p.num_threads(), + ) + + def run(self) -> None: + asyncio.run(self._run()) + + async def _run(self) -> None: + self._loop = asyncio.get_running_loop() + + await self.launch() + try: + self._interrupt_event = asyncio.Event() + await self._interrupt_event.wait() + finally: + await self.exit() + + async def launch(self) -> None: + self._setup() + await self._task_manager.load_all_tasks() + logger.info('Launched Application') + + async def exit(self) -> None: + await self._exit() + logger.info('Exited Application') + + async def abort(self) -> None: + await self._exit(force=True) + logger.info('Aborted Application') + + async def _exit(self, force: bool = False) -> None: + await self._task_manager.stop_all_tasks(force=force) + await self._task_manager.destroy_all_tasks() + self._destroy() + + async def restart(self) -> None: + logger.info('Restarting Application...') + await self.exit() + await self.launch() + + def has_task(self, room_id: int) -> bool: + return self._task_manager.has_task(room_id) + + async def add_task(self, room_id: int) -> int: + room_id = await ensure_room_id(room_id) + + if self._settings_manager.has_task_settings(room_id): + raise ExistsError( + f"a task for the room {room_id} is already existed" + ) + + settings = await self._settings_manager.add_task_settings(room_id) + await self._task_manager.add_task(settings) + + return room_id + + async def remove_task(self, room_id: int) -> None: + await self._task_manager.remove_task(room_id) + await self._settings_manager.remove_task_settings(room_id) + + async def remove_all_tasks(self) -> None: + await self._task_manager.remove_all_tasks() + await self._settings_manager.remove_all_task_settings() + + async def start_task(self, room_id: int) -> None: + await self._task_manager.start_task(room_id) + await self._settings_manager.mark_task_enabled(room_id) + + async def stop_task(self, room_id: int, force: bool = False) -> None: + await self._task_manager.stop_task(room_id, force) + await self._settings_manager.mark_task_disabled(room_id) + + async def start_all_tasks(self) -> None: + await self._task_manager.start_all_tasks() + await self._settings_manager.mark_all_tasks_enabled() + + async def stop_all_tasks(self, force: bool = False) -> None: + await self._task_manager.stop_all_tasks(force) + await self._settings_manager.mark_all_tasks_disabled() + + async def enable_task_recorder(self, room_id: int) -> None: + await self._task_manager.enable_task_recorder(room_id) + await self._settings_manager.mark_task_recorder_enabled(room_id) + + async def disable_task_recorder( + self, room_id: int, force: bool = False + ) -> None: + await self._task_manager.disable_task_recorder(room_id, force) + await self._settings_manager.mark_task_recorder_disabled(room_id) + + async def enable_all_task_recorders(self) -> None: + await self._task_manager.enable_all_task_recorders() + await self._settings_manager.mark_all_task_recorders_enabled() + + async def disable_all_task_recorders(self, force: bool = False) -> None: + await self._task_manager.disable_all_task_recorders(force) + await self._settings_manager.mark_all_task_recorders_disabled() + + def get_task_data(self, room_id: int) -> TaskData: + return self._task_manager.get_task_data(room_id) + + def get_all_task_data(self) -> Iterator[TaskData]: + yield from self._task_manager.get_all_task_data() + + def get_task_param(self, room_id: int) -> TaskParam: + return self._task_manager.get_task_param(room_id) + + def get_task_file_details(self, room_id: int) -> Iterator[FileDetail]: + yield from self._task_manager.get_task_file_details(room_id) + + async def update_task_info(self, room_id: int) -> None: + await self._task_manager.update_task_info(room_id) + + async def update_all_task_infos(self) -> None: + await self._task_manager.update_all_task_infos() + + def get_settings( + self, + include: Optional[KeySetOfSettings] = None, + exclude: Optional[KeySetOfSettings] = None, + ) -> SettingsOut: + return self._settings_manager.get_settings(include, exclude) + + async def change_settings(self, settings: SettingsIn) -> SettingsOut: + return await self._settings_manager.change_settings(settings) + + def get_task_options(self, room_id: int) -> TaskOptions: + return self._settings_manager.get_task_options(room_id) + + async def change_task_options( + self, room_id: int, options: TaskOptions + ) -> TaskOptions: + return await self._settings_manager.change_task_options( + room_id, options + ) + + def _setup(self) -> None: + self._setup_logger() + self._setup_exception_handler() + self._setup_space_monitor() + self._setup_space_event_submitter() + self._setup_space_reclaimer() + self._setup_notifiers() + self._setup_webhooks() + + def _setup_logger(self) -> None: + self._settings_manager.apply_logging_settings() + + def _setup_exception_handler(self) -> None: + self._exception_handler = ExceptionHandler() + self._exception_handler.enable() + + def _setup_space_monitor(self) -> None: + self._space_monitor = SpaceMonitor(self._out_dir) + self._settings_manager.apply_space_monitor_settings() + self._space_monitor.enable() + + def _setup_space_event_submitter(self) -> None: + self._space_event_submitter = SpaceEventSubmitter(self._space_monitor) + + def _setup_space_reclaimer(self) -> None: + self._space_reclaimer = SpaceReclaimer( + self._space_monitor, self._out_dir, + ) + self._settings_manager.apply_space_reclaimer_settings() + self._space_reclaimer.enable() + + def _setup_notifiers(self) -> None: + self._email_notifier = EmailNotifier() + self._serverchan_notifier = ServerchanNotifier() + self._pushplus_notifier = PushplusNotifier() + self._settings_manager.apply_email_notification_settings() + self._settings_manager.apply_serverchan_notification_settings() + self._settings_manager.apply_pushplus_notification_settings() + + def _setup_webhooks(self) -> None: + self._webhook_emitter = WebHookEmitter() + self._settings_manager.apply_webhooks_settings() + self._webhook_emitter.enable() + + def _destroy(self) -> None: + self._destroy_space_reclaimer() + self._destroy_space_event_submitter() + self._destroy_space_monitor() + self._destroy_notifiers() + self._destroy_webhooks() + self._destroy_exception_handler() + + def _destroy_space_monitor(self) -> None: + self._space_monitor.disable() + del self._space_monitor + + def _destroy_space_event_submitter(self) -> None: + del self._space_event_submitter + + def _destroy_space_reclaimer(self) -> None: + self._space_reclaimer.disable() + del self._space_reclaimer + + def _destroy_notifiers(self) -> None: + self._email_notifier.disable() + self._serverchan_notifier.disable() + self._pushplus_notifier.disable() + del self._email_notifier + del self._serverchan_notifier + del self._pushplus_notifier + + def _destroy_webhooks(self) -> None: + self._webhook_emitter.disable() + del self._webhook_emitter + + def _destroy_exception_handler(self) -> None: + self._exception_handler.disable() + del self._exception_handler diff --git a/src/blrec/bili/__init__.py b/src/blrec/bili/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/blrec/bili/api.py b/src/blrec/bili/api.py new file mode 100644 index 0000000..a13da2a --- /dev/null +++ b/src/blrec/bili/api.py @@ -0,0 +1,101 @@ +from typing import Any, Final + +import aiohttp +from tenacity import ( + retry, + wait_exponential, + stop_after_delay, +) + +from .typing import QualityNumber, JsonResponse, ResponseData +from .exceptions import ApiRequestError + + +__all__ = 'WebApi', + + +class WebApi: + BASE_API_URL: Final[str] = 'https://api.bilibili.com' + BASE_LIVE_API_URL: Final[str] = 'https://api.live.bilibili.com' + + GET_USER_INFO_URL: Final[str] = BASE_API_URL + '/x/space/acc/info' + + ROOM_INIT_URL: Final[str] = BASE_LIVE_API_URL + '/room/v1/Room/room_init' + GET_INFO_URL: Final[str] = BASE_LIVE_API_URL + '/room/v1/Room/get_info' + GET_INFO_BY_ROOM_URL: Final[str] = BASE_LIVE_API_URL + \ + '/xlive/web-room/v1/index/getInfoByRoom' + GET_ROOM_PLAY_INFO_URL: Final[str] = BASE_LIVE_API_URL + \ + '/xlive/web-room/v2/index/getRoomPlayInfo' + GET_TIMESTAMP_URL: Final[str] = BASE_LIVE_API_URL + \ + '/av/v1/Time/getTimestamp?platform=pc' + + def __init__(self, session: aiohttp.ClientSession): + self._session = session + self.timeout = 10 + + @staticmethod + def _check_response(json_res: JsonResponse) -> None: + if json_res['code'] != 0: + raise ApiRequestError( + json_res['code'], + json_res.get('message') or json_res.get('msg') or '', + ) + + @retry( + reraise=True, + stop=stop_after_delay(5), + wait=wait_exponential(0.1), + ) + async def _get(self, *args: Any, **kwds: Any) -> JsonResponse: + async with self._session.get( + *args, + **kwds, + timeout=self.timeout, + ) as res: + json_res = await res.json() + self._check_response(json_res) + return json_res + + async def room_init(self, room_id: int) -> ResponseData: + r = await self._get(self.ROOM_INIT_URL, params={'id': room_id}) + return r['data'] + + async def get_room_play_info( + self, room_id: int, qn: QualityNumber = 10000 + ) -> ResponseData: + params = { + 'room_id': room_id, + 'protocol': '0,1', + 'format': '0,2', + 'codec': '0,1', + 'qn': qn, + 'platform': 'web', + 'ptype': 16, + } + r = await self._get(self.GET_ROOM_PLAY_INFO_URL, params=params) + return r['data'] + + async def get_info_by_room(self, room_id: int) -> ResponseData: + params = { + 'room_id': room_id, + } + r = await self._get(self.GET_INFO_BY_ROOM_URL, params=params) + return r['data'] + + async def get_info(self, room_id: int) -> ResponseData: + params = { + 'room_id': room_id, + } + r = await self._get(self.GET_INFO_URL, params=params) + return r['data'] + + async def get_timestamp(self) -> int: + r = await self._get(self.GET_TIMESTAMP_URL) + return r['data']['timestamp'] + + async def get_user_info(self, uid: int) -> ResponseData: + params = { + 'mid': uid, + } + r = await self._get(self.GET_USER_INFO_URL, params=params) + return r['data'] diff --git a/src/blrec/bili/danmaku_client.py b/src/blrec/bili/danmaku_client.py new file mode 100644 index 0000000..9619895 --- /dev/null +++ b/src/blrec/bili/danmaku_client.py @@ -0,0 +1,543 @@ +#!/usr/bin/env python3 +import json +import struct +import zlib +import asyncio +import logging +from enum import IntEnum, Enum +from contextlib import suppress +from typing import Any, Dict, Final, Tuple, List, Union, cast, Optional + +import aiohttp +from aiohttp import ClientSession +from tenacity import ( + retry, + wait_exponential, + retry_if_exception_type, +) + +from .typing import Danmaku +from ..event.event_emitter import EventListener, EventEmitter +from ..exception import exception_callback +from ..utils.mixins import AsyncStoppableMixin +from ..logging.room_id import aio_task_with_room_id + + +__all__ = 'DanmakuClient', 'DanmakuListener', 'Danmaku', 'DanmakuCommand' + + +logger = logging.getLogger(__name__) + + +class DanmakuListener(EventListener): + async def on_client_connected(self) -> None: + ... + + async def on_client_disconnected(self) -> None: + ... + + async def on_client_reconnected(self) -> None: + ... + + async def on_danmaku_received(self, danmu: Danmaku) -> None: + ... + + async def on_error_occurred(self, error: Exception) -> None: + ... + + +class DanmakuClient(EventEmitter[DanmakuListener], AsyncStoppableMixin): + _URL: Final[str] = 'wss://broadcastlv.chat.bilibili.com:443/sub' + _HEARTBEAT_INTERVAL: Final[int] = 30 + + def __init__( + self, + session: ClientSession, + room_id: int, + *, + max_retries: int = 10, + ) -> None: + super().__init__() + self.session = session + self._room_id = room_id + + self._retry_delay: int = 0 + self._MAX_RETRIES: Final[int] = max_retries + + async def _do_start(self) -> None: + await self._connect() + await self._create_message_loop() + logger.debug('Started danmaku client') + + async def _do_stop(self) -> None: + await self._terminate_message_loop() + await self._disconnect() + logger.debug('Stopped danmaku client') + + async def reconnect(self) -> None: + if self.stopped: + return + + logger.debug('Reconnecting...') + await self._disconnect() + await self._connect() + await self._emit('client_reconnected') + + @retry( + wait=wait_exponential(multiplier=0.1, max=60), + retry=retry_if_exception_type(( + asyncio.TimeoutError, aiohttp.ClientError, + )), + ) + async def _connect(self) -> None: + logger.debug('Connecting to server...') + await self._connect_websocket() + await self._send_auth() + reply = await self._recieve_auth_reply() + self._handle_auth_reply(reply) + logger.debug('Connected to server') + await self._emit('client_connected') + + async def _connect_websocket(self) -> None: + self._ws = await self.session.ws_connect(self._URL, timeout=5) + logger.debug('Established WebSocket connection') + + async def _send_auth(self) -> None: + auth_msg = json.dumps({ + 'uid': 0, + 'roomid': self._room_id, # must not be the short id! + # 'protover': WS.BODY_PROTOCOL_VERSION_NORMAL, + 'protover': WS.BODY_PROTOCOL_VERSION_DEFLATE, + 'platform': 'web', + 'clientver': '1.1.031', + 'type': 2 + }) + data = Frame.encode(WS.OP_USER_AUTHENTICATION, auth_msg) + await self._ws.send_bytes(data) + logger.debug('Sent user authentication') + + async def _recieve_auth_reply(self) -> aiohttp.WSMessage: + msg = await self._ws.receive(timeout=5) + if msg.type != aiohttp.WSMsgType.BINARY: + raise aiohttp.ClientError(msg) + logger.debug('Recieved reply') + return msg + + def _handle_auth_reply(self, reply: aiohttp.WSMessage) -> None: + op, msg = Frame.decode(reply.data) + assert op == WS.OP_CONNECT_SUCCESS + msg = cast(str, msg) + code = cast(int, json.loads(msg)['code']) + + if code == WS.AUTH_OK: + logger.debug('Auth OK') + self._create_heartbeat_task() + elif code == WS.AUTH_TOKEN_ERROR: + logger.debug('Auth Token Error') + raise ValueError(f'Auth Token Error: {code}') + else: + raise ValueError(f'Unexpected code: {code}') + + async def _disconnect(self) -> None: + await self._cancel_heartbeat_task() + await self._close_websocket() + logger.debug('Disconnected from server') + await self._emit('client_disconnected') + + async def _close_websocket(self) -> None: + with suppress(BaseException): + await self._ws.close() + + def _create_heartbeat_task(self) -> None: + self._heartbeat_task = asyncio.create_task(self._send_heartbeat()) + self._heartbeat_task.add_done_callback(exception_callback) + + async def _cancel_heartbeat_task(self) -> None: + self._heartbeat_task.cancel() + with suppress(asyncio.CancelledError): + await self._heartbeat_task + + @aio_task_with_room_id + async def _send_heartbeat(self) -> None: + data = Frame.encode(WS.OP_HEARTBEAT, '') + while True: + await self._ws.send_bytes(data) + await asyncio.sleep(self._HEARTBEAT_INTERVAL) + + async def _create_message_loop(self) -> None: + self._message_loop_task = asyncio.create_task(self._message_loop()) + self._message_loop_task.add_done_callback(exception_callback) + logger.debug('Created message loop') + + async def _terminate_message_loop(self) -> None: + self._message_loop_task.cancel() + with suppress(asyncio.CancelledError): + await self._message_loop_task + logger.debug('Terminated message loop') + + @aio_task_with_room_id + async def _message_loop(self) -> None: + while True: + for msg in await self._receive(): + await self._dispatch_message(msg) + + async def _dispatch_message(self, msg: Dict[str, Any]) -> None: + await self._emit('danmaku_received', msg) + + @retry(retry=retry_if_exception_type((asyncio.TimeoutError,))) + async def _receive(self) -> List[Dict[str, Any]]: + self._retry_count = 0 + self._retry_delay = 0 + + while True: + wsmsg = await self._ws.receive(timeout=self._HEARTBEAT_INTERVAL) + + if wsmsg.type == aiohttp.WSMsgType.BINARY: + if (result := await self._handle_data(wsmsg.data)): + return result + elif wsmsg.type == aiohttp.WSMsgType.ERROR: + await self._handle_error(cast(Exception, wsmsg.data)) + elif wsmsg.type == aiohttp.WSMsgType.CLOSED: + msg = 'WebSocket Closed' + exc = aiohttp.WebSocketError(self._ws.close_code or 1006, msg) + await self._handle_error(exc) + else: + raise ValueError(wsmsg) + + @staticmethod + async def _handle_data(data: bytes) -> Optional[List[Dict[str, Any]]]: + loop = asyncio.get_running_loop() + op, msg = await loop.run_in_executor(None, Frame.decode, data) + + if op == WS.OP_MESSAGE: + msg = cast(List[str], msg) + return [json.loads(m) for m in msg] + elif op == WS.OP_HEARTBEAT_REPLY: + return None + else: + return None + + async def _handle_error(self, exc: Exception) -> None: + logger.debug(f'Failed to receive message due to: {repr(exc)}') + await self._emit('error_occurred', exc) + await self._retry() + + async def _retry(self) -> None: + if self._retry_count < self._MAX_RETRIES: + if self._retry_delay > 0: + logger.debug('Retry after {} second{}'.format( + self._retry_delay, + 's' if self._retry_delay > 1 else '', + )) + await asyncio.sleep(self._retry_delay) + await self.reconnect() + self._retry_count += 1 + self._retry_delay += 1 + else: + raise aiohttp.WebSocketError(1006, 'Over the maximum of retries') + + +class Frame: + HEADER_FORMAT = '>IHHII' + + @staticmethod + def encode(op: int, msg: str) -> bytes: + body = msg.encode() + header_length = WS.PACKAGE_HEADER_TOTAL_LENGTH + packet_length = header_length + len(body) + ver = WS.HEADER_DEFAULT_VERSION + seq = WS.HEADER_DEFAULT_SEQUENCE + + header = struct.pack( + Frame.HEADER_FORMAT, + packet_length, + header_length, + ver, # protocal version + op, # operation + seq, # sequence id + ) + + return header + body + + @staticmethod + def decode(data: bytes) -> Tuple[int, Union[int, str, List[str]]]: + plen, hlen, ver, op, _ = struct.unpack_from( + Frame.HEADER_FORMAT, data, 0 + ) + body = data[hlen:] + + if op == WS.OP_MESSAGE: + if ver == WS.BODY_PROTOCOL_VERSION_DEFLATE: + data = zlib.decompress(body) + + msg_list = [] + offset = 0 + while offset < len(data): + plen, hlen, ver, op, _ = struct.unpack_from( + Frame.HEADER_FORMAT, data, offset + ) + body = data[hlen + offset:plen + offset] + msg = body.decode('utf8') + msg_list.append(msg) + offset += plen + + return op, msg_list + elif op == WS.OP_HEARTBEAT_REPLY: + online_count = cast(int, struct.unpack('>I', body)[0]) + return op, online_count + elif op == WS.OP_CONNECT_SUCCESS: + auth_result = body.decode() + return op, auth_result + else: + raise ValueError(f'Unexpected Operation: {op}') + + +class WS(IntEnum): + AUTH_OK = 0 + AUTH_TOKEN_ERROR = -101 + BODY_PROTOCOL_VERSION_DEFLATE = 2 + BODY_PROTOCOL_VERSION_NORMAL = 0 + HEADER_DEFAULT_OPERATION = 1 + HEADER_DEFAULT_SEQUENCE = 1 + HEADER_DEFAULT_VERSION = 1 + HEADER_OFFSET = 4 + OP_CONNECT_SUCCESS = 8 + OP_HEARTBEAT = 2 + OP_HEARTBEAT_REPLY = 3 + OP_MESSAGE = 5 + OP_USER_AUTHENTICATION = 7 + OPERATION_OFFSET = 8 + PACKAGE_HEADER_TOTAL_LENGTH = 16 + PACKAGE_OFFSET = 0 + SEQUENCE_OFFSET = 12 + VERSION_OFFSET = 6 + + +class DanmakuCommand(Enum): + ACTIVITY_MATCH_GIFT = 'ACTIVITY_MATCH_GIFT' + ANCHOR_LOT_AWARD = 'ANCHOR_LOT_AWARD' + ANCHOR_LOT_CHECKSTATUS = 'ANCHOR_LOT_CHECKSTATUS' + ANCHOR_LOT_END = 'ANCHOR_LOT_END' + ANCHOR_LOT_START = 'ANCHOR_LOT_START' + ANIMATION = 'ANIMATION' + BOX_ACTIVITY_START = 'BOX_ACTIVITY_START' + CHANGE_ROOM_INFO = 'CHANGE_ROOM_INFO' + CHASE_FRAME_SWITCH = 'CHASE_FRAME_SWITCH' + COMBO_SEND = 'COMBO_SEND' + CUT_OFF = 'CUT_OFF' + DANMU_GIFT_LOTTERY_AWARD = 'DANMU_GIFT_LOTTERY_AWARD' + DANMU_GIFT_LOTTERY_END = 'DANMU_GIFT_LOTTERY_END' + DANMU_GIFT_LOTTERY_START = 'DANMU_GIFT_LOTTERY_START' + DANMU_MSG = 'DANMU_MSG' + ENTRY_EFFECT = 'ENTRY_EFFECT' + GUARD_ACHIEVEMENT_ROOM = 'GUARD_ACHIEVEMENT_ROOM' + GUARD_LOTTERY_START = 'GUARD_LOTTERY_START' + HOUR_RANK_AWARDS = 'HOUR_RANK_AWARDS' + LITTLE_TIPS = 'LITTLE_TIPS' + LIVE = 'LIVE' + LOL_ACTIVITY = 'LOL_ACTIVITY' + LUCK_GIFT_AWARD_USER = 'LUCK_GIFT_AWARD_USER' + MATCH_TEAM_GIFT_RANK = 'MATCH_TEAM_GIFT_RANK' + MESSAGEBOX_USER_GAIN_MEDAL = 'MESSAGEBOX_USER_GAIN_MEDAL' + NOTICE_MSG = 'NOTICE_MSG' + PK_AGAIN = 'PK_AGAIN' + PK_BATTLE_CRIT = 'PK_BATTLE_CRIT' + PK_BATTLE_END = 'PK_BATTLE_END' + PK_BATTLE_GIFT = 'PK_BATTLE_GIFT' + PK_BATTLE_PRE = 'PK_BATTLE_PRE' + PK_BATTLE_PRO_TYPE = 'PK_BATTLE_PRO_TYPE' + PK_BATTLE_PROCESS = 'PK_BATTLE_PROCESS' + PK_BATTLE_RANK_CHANGE = 'PK_BATTLE_RANK_CHANGE' + PK_BATTLE_SETTLE_USER = 'PK_BATTLE_SETTLE_USER' + PK_BATTLE_SPECIAL_GIFT = 'PK_BATTLE_SPECIAL_GIFT' + PK_BATTLE_START = 'PK_BATTLE_START' + PK_BATTLE_VOTES_ADD = 'PK_BATTLE_VOTES_ADD' + PK_END = 'PK_END' + PK_LOTTERY_START = 'PK_LOTTERY_START' + PK_MATCH = 'PK_MATCH' + PK_MIC_END = 'PK_MIC_END' + PK_PRE = 'PK_PRE' + PK_PROCESS = 'PK_PROCESS' + PK_SETTLE = 'PK_SETTLE' + PK_START = 'PK_START' + PREPARING = 'PREPARING' + RAFFLE_END = 'RAFFLE_END' + RAFFLE_START = 'RAFFLE_START' + ROOM_BLOCK_INTO = 'ROOM_BLOCK_INTO' + ROOM_BLOCK_MSG = 'ROOM_BLOCK_MSG' + ROOM_BOX_USER = 'ROOM_BOX_USER' + ROOM_CHANGE = 'ROOM_CHANGE' + ROOM_KICKOUT = 'ROOM_KICKOUT' + ROOM_LIMIT = 'ROOM_LIMIT' + ROOM_LOCK = 'ROOM_LOCK' + ROOM_RANK = 'ROOM_RANK' + ROOM_REAL_TIME_MESSAGE_UPDATE = 'ROOM_REAL_TIME_MESSAGE_UPDATE' + ROOM_REFRESH = 'ROOM_REFRESH' + ROOM_SILENT_OFF = 'ROOM_SILENT_OFF' + ROOM_SILENT_ON = 'ROOM_SILENT_ON' + ROOM_SKIN_MSG = 'ROOM_SKIN_MSG' + SCORE_CARD = 'SCORE_CARD' + SEND_GIFT = 'SEND_GIFT' + SEND_TOP = 'SEND_TOP' + SPECIAL_GIFT = 'SPECIAL_GIFT' + SUPER_CHAT_ENTRANCE = 'SUPER_CHAT_ENTRANCE' + SUPER_CHAT_MESSAGE = 'SUPER_CHAT_MESSAGE' + SUPER_CHAT_MESSAGE_DELETE = 'SUPER_CHAT_MESSAGE_DELETE' + TV_END = 'TV_END' + TV_START = 'TV_START' + USER_TOAST_MSG = 'USER_TOAST_MSG' + VOICE_JOIN_STATUS = 'VOICE_JOIN_STATUS' + WARNING = 'WARNING' + WATCH_LPL_EXPIRED = 'WATCH_LPL_EXPIRED' + WEEK_STAR_CLOCK = 'WEEK_STAR_CLOCK' + WELCOME = 'WELCOME' + WELCOME_GUARD = 'WELCOME_GUARD' + WIN_ACTIVITY = 'WIN_ACTIVITY' + WIN_ACTIVITY_USER = 'WIN_ACTIVITY_USER' + WISH_BOTTLE = 'WISH_BOTTLE' + # ... + + +if __name__ == '__main__': + def add_task_name(record: logging.LogRecord) -> bool: + try: + task = asyncio.current_task() + assert task is not None + except Exception: + name = '' + else: + name = task.get_name() + + if '::' in name: + record.roomid = '[' + name.split('::')[-1] + '] ' # type: ignore + else: + record.roomid = '' # type: ignore + + return True + + def configure_logger() -> None: + # config root logger + logger = logging.getLogger() + logger.setLevel(logging.DEBUG) + + # config formatter + fmt = '[%(asctime)s] [%(levelname)s] %(roomid)s%(message)s' + formatter = logging.Formatter(fmt) + + # logging to console + console_handler = logging.StreamHandler() + console_handler.setLevel(logging.DEBUG) + console_handler.setFormatter(formatter) + console_handler.addFilter(add_task_name) + logger.addHandler(console_handler) + + async def get_room_list( + session: ClientSession, count: int = 99 + ) -> List[Dict[str, Any]]: + url = 'https://api.live.bilibili.com/room/v3/area/getRoomList' + params = { + 'platform': 'web', + 'parent_area_id': 1, + 'cate_id': 0, + 'area_id': 0, + 'sort_type': 'online', + 'page': 1, + 'page_size': count, + 'tag_version': 1, + } + async with session.get(url, params=params) as response: + j = await response.json() + return j['data']['list'] + + class DanmakuPrinter(DanmakuListener): + def __init__( + self, danmaku_client: DanmakuClient, room_id: int + ) -> None: + self._danmaku_client = danmaku_client + self._room_id = room_id + + async def enable(self) -> None: + self._danmaku_client.add_listener(self) + + async def disable(self) -> None: + self._danmaku_client.remove_listener(self) + + async def on_danmaku_received(self, danmu: Danmaku) -> None: + json_string = json.dumps(danmu, ensure_ascii=False) + logger.info(f'{json_string}') + + class DanmakuDumper(DanmakuListener): + def __init__( + self, danmaku_client: DanmakuClient, room_id: int + ) -> None: + self._danmaku_client = danmaku_client + from datetime import datetime + data_time_string = datetime.now().strftime("%Y-%m-%d_%H%M%S") + self._filename = f'blive_cmd_{room_id}_{data_time_string}.jsonl' + + async def start(self) -> None: + import aiofiles + self._file = await aiofiles.open( + self._filename, mode='wt', encoding='utf8' + ) + logger.debug(f'Opened file: {self._filename}') + self._danmaku_client.add_listener(self) + + async def stop(self) -> None: + self._danmaku_client.remove_listener(self) + await self._file.close() + logger.debug(f'Closed file: {self._filename}') + + async def on_danmaku_received(self, danmu: Danmaku) -> None: + json_string = json.dumps(danmu, ensure_ascii=False) + await self._file.write(json_string + '\n') + + async def test_room(session: ClientSession, room_id: int) -> None: + client = DanmakuClient(session, room_id) + printer = DanmakuPrinter(client, room_id) + dumper = DanmakuDumper(client, room_id) + + await printer.enable() + await dumper.start() + await client.start() + + keyboard_interrupt_event = asyncio.Event() + try: + await keyboard_interrupt_event.wait() + finally: + await client.stop() + await dumper.stop() + await printer.disable() + + async def test() -> None: + import sys + try: + # the room id must not be the short id! + room_ids = list(map(int, sys.argv[1:])) + except ValueError: + print('Usage: room_id, ...') + sys.exit(0) + + configure_logger() + + async with ClientSession() as session: + tasks = [] + + if not room_ids: + room_list = await get_room_list(session) + room_ids = [room['roomid'] for room in room_list] + + logger.debug(f'room count: {len(room_ids)}') + + for room_id in room_ids: + task = asyncio.create_task( + test_room(session, room_id), name=f'test_room::{room_id}', + ) + tasks.append(task) + + await asyncio.wait(tasks) + + try: + asyncio.run(test()) + except KeyboardInterrupt: + pass diff --git a/src/blrec/bili/exceptions.py b/src/blrec/bili/exceptions.py new file mode 100644 index 0000000..55da075 --- /dev/null +++ b/src/blrec/bili/exceptions.py @@ -0,0 +1,24 @@ + +import attr + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class ApiRequestError(Exception): + code: int + message: str + + +class LiveRoomHidden(Exception): + pass + + +class LiveRoomLocked(Exception): + pass + + +class LiveRoomEncrypted(Exception): + pass + + +class NoStreamUrlAvailable(Exception): + pass diff --git a/src/blrec/bili/helpers.py b/src/blrec/bili/helpers.py new file mode 100644 index 0000000..5c18e59 --- /dev/null +++ b/src/blrec/bili/helpers.py @@ -0,0 +1,29 @@ + +import aiohttp + +from .api import WebApi +from .typing import ResponseData +from .exceptions import ApiRequestError +from ..exception import NotFoundError + + +__all__ = 'room_init', 'ensure_room_id' + + +async def room_init(room_id: int) -> ResponseData: + async with aiohttp.ClientSession(raise_for_status=True) as session: + api = WebApi(session) + return await api.room_init(room_id) + + +async def ensure_room_id(room_id: int) -> int: + """Ensure room id is valid and is the real room id""" + try: + result = await room_init(room_id) + except ApiRequestError as e: + if e.code == 60004: + raise NotFoundError(f'the room {room_id} not existed') + else: + raise + else: + return result['room_id'] diff --git a/src/blrec/bili/live.py b/src/blrec/bili/live.py new file mode 100644 index 0000000..da8043c --- /dev/null +++ b/src/blrec/bili/live.py @@ -0,0 +1,221 @@ + +import asyncio +import re +import json +from typing import Dict, List, Optional, cast + +import aiohttp + +from .api import WebApi +from .models import LiveStatus, RoomInfo, UserInfo +from .typing import QualityNumber, StreamFormat, ResponseData +from .exceptions import ( + LiveRoomHidden, LiveRoomLocked, LiveRoomEncrypted, NoStreamUrlAvailable +) + + +__all__ = 'Live', + + +_INFO_PATTERN = re.compile( + rb'<script>\s*window\.__NEPTUNE_IS_MY_WAIFU__\s*=\s*(\{.*?\})\s*</script>' +) +_LIVE_STATUS_PATTERN = re.compile(rb'"live_status"\s*:\s*(\d)') + + +class Live: + def __init__( + self, room_id: int, user_agent: str = '', cookie: str = '' + ) -> None: + self._room_id = room_id + self._user_agent = user_agent + self._cookie = cookie + self._html_page_url = f'https://live.bilibili.com/{room_id}' + + @property + def user_agent(self) -> str: + return self._user_agent + + @user_agent.setter + def user_agent(self, value: str) -> None: + self._user_agent = value + + @property + def cookie(self) -> str: + return self._cookie + + @cookie.setter + def cookie(self, value: str) -> None: + self._cookie = value + + @property + def headers(self) -> Dict[str, str]: + return { + 'Referer': 'https://live.bilibili.com/', + 'Connection': 'Keep-Alive', + 'User-Agent': self._user_agent, + 'cookie': self._cookie, + } + + @property + def session(self) -> aiohttp.ClientSession: + return self._session + + @property + def room_id(self) -> int: + return self._room_id + + @property + def room_info(self) -> RoomInfo: + return self._room_info + + @property + def user_info(self) -> UserInfo: + return self._user_info + + async def init(self) -> None: + self._session = aiohttp.ClientSession( + headers=self.headers, + raise_for_status=True, + trust_env=True, + ) + self._api = WebApi(self._session) + + self._room_info = await self.get_room_info() + self._user_info = await self.get_user_info(self._room_info.uid) + + async def deinit(self) -> None: + await self._session.close() + + async def get_live_status(self) -> LiveStatus: + try: + # frequent requests will be intercepted by the server's firewall! + live_status = await self._get_live_status_via_api() + except Exception: + # more cpu consumption + live_status = await self._get_live_status_via_html_page() + + return LiveStatus(live_status) + + def is_living(self) -> bool: + return self._room_info.live_status == LiveStatus.LIVE + + async def update_info(self) -> None: + await asyncio.wait([self.update_user_info(), self.update_room_info()]) + + async def update_user_info(self) -> None: + self._user_info = await self.get_user_info(self._room_info.uid) + + async def update_room_info(self) -> None: + self._room_info = await self.get_room_info() + + async def get_room_info(self) -> RoomInfo: + try: + # frequent requests will be intercepted by the server's firewall! + room_info_data = await self._get_room_info_via_api() + except Exception: + # more cpu consumption + room_info_data = await self._get_room_info_via_html_page() + + return RoomInfo.from_data(room_info_data) + + async def get_user_info(self, uid: int) -> UserInfo: + user_info_data = await self._api.get_user_info(uid) + return UserInfo.from_data(user_info_data) + + async def get_server_timestamp(self) -> int: + # the timestamp on the server at the moment in seconds + return await self._api.get_timestamp() + + async def get_live_stream_url( + self, qn: QualityNumber = 10000, format: StreamFormat = 'flv' + ) -> Optional[str]: + try: + data = await self._api.get_room_play_info(self._room_id, qn) + except Exception: + # fallback to the html page global info + data = await self._get_room_play_info_via_html_page() + self._check_room_play_info(data) + stream = data['playurl_info']['playurl']['stream'] + if stream[0]['format'][0]['codec'][0]['current_qn'] != qn: + raise + else: + self._check_room_play_info(data) + + streams = list(filter( + lambda s: s['format'][0]['format_name'] == format, + data['playurl_info']['playurl']['stream'] + )) + codec = streams[0]['format'][0]['codec'][0] + accept_qn = cast(List[QualityNumber], codec['accept_qn']) + + if qn not in accept_qn: + return None + + assert codec['current_qn'] == qn + url_info = codec['url_info'][0] + + return url_info['host'] + codec['base_url'] + url_info['extra'] + + def _check_room_play_info(self, data: ResponseData) -> None: + if data['is_hidden']: + raise LiveRoomHidden() + if data['is_locked']: + raise LiveRoomLocked() + if data['encrypted'] and not data['pwd_verified']: + raise LiveRoomEncrypted() + try: + data['playurl_info']['playurl']['stream'][0] + except Exception: + raise NoStreamUrlAvailable() + + async def _get_live_status_via_api(self) -> int: + room_info_data = await self._get_room_info_via_api() + return int(room_info_data['live_status']) + + async def _get_room_info_via_api(self) -> ResponseData: + try: + room_info_data = await self._api.get_info(self._room_id) + except Exception: + info_data = await self._api.get_info_by_room(self._room_id) + room_info_data = info_data['room_info'] + + return room_info_data + + async def _get_live_status_via_html_page(self) -> int: + async with self._session.get(self._html_page_url) as response: + data = await response.read() + + m = _LIVE_STATUS_PATTERN.search(data) + assert m is not None, data + + return int(m.group(1)) + + async def _get_room_info_via_html_page(self) -> ResponseData: + info_res = await self._get_room_info_res_via_html_page() + return info_res['room_info'] + + async def _get_room_play_info_via_html_page(self) -> ResponseData: + return await self._get_room_init_res_via_html_page() + + async def _get_room_info_res_via_html_page(self) -> ResponseData: + info = await self._get_info_via_html_page() + if info['roomInfoRes']['code'] != 0: + raise ValueError(f"Invaild roomInfoRes: {info['roomInfoRes']}") + return info['roomInfoRes']['data'] + + async def _get_room_init_res_via_html_page(self) -> ResponseData: + info = await self._get_info_via_html_page() + if info['roomInitRes']['code'] != 0: + raise ValueError(f"Invaild roomInitRes: {info['roomInitRes']}") + return info['roomInitRes']['data'] + + async def _get_info_via_html_page(self) -> ResponseData: + async with self._session.get(self._html_page_url) as response: + data = await response.read() + + m = _INFO_PATTERN.search(data) + assert m is not None, data + + string = m.group(1).decode(encoding='utf8') + return json.loads(string) diff --git a/src/blrec/bili/live_monitor.py b/src/blrec/bili/live_monitor.py new file mode 100644 index 0000000..ab07be7 --- /dev/null +++ b/src/blrec/bili/live_monitor.py @@ -0,0 +1,134 @@ +import logging + + +from .danmaku_client import DanmakuClient, DanmakuListener, DanmakuCommand +from .live import Live +from .typing import Danmaku +from .models import LiveStatus, RoomInfo +from ..event.event_emitter import EventListener, EventEmitter +from ..utils.mixins import SwitchableMixin + + +__all__ = 'LiveMonitor', 'LiveEventListener' + + +logger = logging.getLogger(__name__) + + +class LiveEventListener(EventListener): + async def on_live_status_changed( + self, current_status: LiveStatus, previous_status: LiveStatus + ) -> None: + ... + + async def on_live_began(self, live: Live) -> None: + ... + + async def on_live_ended(self, live: Live) -> None: + ... + + async def on_live_stream_available(self, live: Live) -> None: + ... + + async def on_live_stream_reset(self, live: Live) -> None: + ... + + async def on_room_changed(self, room_info: RoomInfo) -> None: + ... + + +class LiveMonitor( + EventEmitter[LiveEventListener], DanmakuListener, SwitchableMixin +): + def __init__(self, danmaku_client: DanmakuClient, live: Live) -> None: + super().__init__() + self._danmaku_client = danmaku_client + self._live = live + + def _init_status(self) -> None: + self._previous_status = self._live.room_info.live_status + if self._live.is_living(): + self._status_count = 2 + else: + self._status_count = 0 + + def _do_enable(self) -> None: + self._init_status() + self._danmaku_client.add_listener(self) + logger.debug('Enabled live monitor') + + def _do_disable(self) -> None: + self._danmaku_client.remove_listener(self) + logger.debug('Disabled live monitor') + + async def on_client_reconnected(self) -> None: + # check the live status after the client reconnected and simulate + # events if necessary. + # make sure the recorder works well continuously after interruptions + # such as an operating system hibernation. + logger.warning('The Danmaku Client Reconnected') + + await self._live.update_info() + current_status = self._live.room_info.live_status + + if current_status == self._previous_status: + return + + if current_status == LiveStatus.LIVE: + logger.debug('Simulating live began event') + await self._handle_status_change(current_status) + logger.debug('Simulating live stream available event') + await self._handle_status_change(current_status) + else: + logger.debug('Simulating live ended event') + await self._handle_status_change(current_status) + + async def on_danmaku_received(self, danmu: Danmaku) -> None: + danmu_cmd = danmu['cmd'] + + if danmu_cmd == DanmakuCommand.LIVE.value: + await self._handle_status_change(LiveStatus.LIVE) + elif danmu_cmd == DanmakuCommand.PREPARING.value: + if danmu.get('round', None) == 1: + await self._handle_status_change(LiveStatus.ROUND) + else: + await self._handle_status_change(LiveStatus.PREPARING) + elif danmu_cmd == DanmakuCommand.ROOM_CHANGE.value: + await self._live.update_room_info() + await self._emit('room_changed', self._live.room_info) + + async def _handle_status_change(self, current_status: LiveStatus) -> None: + logger.debug('Live status changed from {} to {}'.format( + self._previous_status.name, current_status.name + )) + + await self._live.update_info() + assert self._live.room_info.live_status == current_status + + await self._emit( + 'live_status_changed', current_status, self._previous_status + ) + + if current_status != LiveStatus.LIVE: + self._status_count = 0 + await self._emit('live_ended', self._live) + else: + self._status_count += 1 + + if self._status_count == 1: + assert self._previous_status != LiveStatus.LIVE + await self._emit('live_began', self._live) + elif self._status_count == 2: + assert self._previous_status == LiveStatus.LIVE + await self._emit('live_stream_available', self._live) + elif self._status_count > 2: + assert self._previous_status == LiveStatus.LIVE + await self._emit('live_stream_reset', self._live) + else: + pass + + logger.debug('Number of sequential LIVE status: {}'.format( + self._status_count + )) + + self._previous_status = current_status diff --git a/src/blrec/bili/models.py b/src/blrec/bili/models.py new file mode 100644 index 0000000..958a702 --- /dev/null +++ b/src/blrec/bili/models.py @@ -0,0 +1,85 @@ +from enum import IntEnum +from datetime import datetime +from typing import cast + +import attr + +from .typing import ResponseData + + +__all__ = 'LiveStatus', 'RoomInfo', 'UserInfo' + + +class LiveStatus(IntEnum): + PREPARING = 0 + LIVE = 1 + ROUND = 2 + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class RoomInfo: + uid: int + room_id: int + short_room_id: int + area_id: int + area_name: str + parent_area_id: int + parent_area_name: str + live_status: LiveStatus + live_start_time: int # a integer in seconds + online: int + title: str + cover: str + tags: str + description: str + + @staticmethod + def from_data(data: ResponseData) -> 'RoomInfo': + if (timestamp := data.get('live_start_time', None)) is not None: + live_start_time = cast(int, timestamp) + elif (time_string := data.get('live_time', None)) is not None: + if time_string == '0000-00-00 00:00:00': + live_start_time = 0 + else: + dt = datetime.fromisoformat(time_string) + live_start_time = int(dt.timestamp()) + else: + raise ValueError(f'Failed to init live_start_time: {data}') + + return RoomInfo( + uid=data['uid'], + room_id=int(data['room_id']), + short_room_id=int(data['short_id']), + area_id=data['area_id'], + area_name=data['area_name'], + parent_area_id=data['parent_area_id'], + parent_area_name=data['parent_area_name'], + live_status=LiveStatus(data['live_status']), + live_start_time=live_start_time, + online=int(data['online']), + title=data['title'], + cover=data.get('cover', None) or data.get('user_cover', None), + tags=data['tags'], + description=data['description'], + ) + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class UserInfo: + name: str + gender: str + face: str + uid: int + level: int + sign: str + + @staticmethod + def from_data(data: ResponseData) -> 'UserInfo': + return UserInfo( + name=data['name'], + gender=data['sex'], + face=data['face'], + uid=data['mid'], + level=data['level'], + sign=data['sign'], + ) diff --git a/src/blrec/bili/typing.py b/src/blrec/bili/typing.py new file mode 100644 index 0000000..b10c054 --- /dev/null +++ b/src/blrec/bili/typing.py @@ -0,0 +1,22 @@ +from typing import Any, Dict, Literal, Mapping + + +Danmaku = Mapping[str, Any] + +QualityNumber = Literal[ + 20000, # 4K + 10000, # 原画 + 401, # 蓝光(杜比) + 400, # 蓝光 + 250, # 超清 + 150, # 高清 + 80, # 流畅 +] + +StreamFormat = Literal[ + 'flv', + 'fmp4', +] + +JsonResponse = Dict[str, Any] +ResponseData = Dict[str, Any] diff --git a/src/blrec/cli/__init__.py b/src/blrec/cli/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/blrec/cli/main.py b/src/blrec/cli/main.py new file mode 100644 index 0000000..58135db --- /dev/null +++ b/src/blrec/cli/main.py @@ -0,0 +1,98 @@ +import os +import logging +from copy import deepcopy +from typing import Optional + +import uvicorn +from uvicorn.config import LOGGING_CONFIG +import typer + +from .. import __prog__, __version__ +from ..logging import TqdmOutputStream +from ..setting import DEFAULT_SETTINGS_PATH + + +logger = logging.getLogger(__name__) + +cli = typer.Typer() + + +def version_callback(value: bool) -> None: + if value: + typer.echo(f'Bilibili live streaming recorder {__version__}') + raise typer.Exit() + + +@cli.command() +def cli_main( + version: Optional[bool] = typer.Option( + None, + '--version', + callback=version_callback, + is_eager=True, + help=f"show {__prog__}'s version and exit", + ), + config: str = typer.Option( + '~/.blrec/settings.toml', + '--config', + '-c', + help='path of setting file', + ), + out_dir: Optional[str] = typer.Option( + None, + '--out-dir', + '-o', + help='path of directory to save files (overwrite setting)' + ), + host: str = typer.Option('127.0.0.1', help='webapp host bind'), + port: int = typer.Option(2233, help='webapp port bind'), + open: bool = typer.Option(False, help='open webapp in default browser'), + key_file: Optional[str] = typer.Option(None, help='SSL key file'), + cert_file: Optional[str] = typer.Option(None, help='SSL certificate file'), + api_key: Optional[str] = typer.Option(None, help='web api key'), +) -> None: + """Bilibili live streaming recorder""" + if config != DEFAULT_SETTINGS_PATH: + os.environ['config'] = config + if api_key is not None: + os.environ['api_key'] = api_key + if out_dir is not None: + os.environ['out_dir'] = out_dir + + if open: + typer.launch(f'http://{host}:{port}') + + logging_config = deepcopy(LOGGING_CONFIG) + logging_config['handlers']['default']['stream'] = TqdmOutputStream + logging_config['handlers']['access']['stream'] = TqdmOutputStream + + uvicorn.run( + 'blrec.web:app', + host=host, + port=port, + ssl_keyfile=key_file, + ssl_certfile=cert_file, + log_config=logging_config, + log_level='info', + access_log=False, + ) + + +def main() -> int: + try: + cli() + except KeyboardInterrupt: + return 1 + except SystemExit: + return 1 + except BaseException as e: + logger.exception(e) + return 2 + else: + return 0 + finally: + logger.info('Exit') + + +if __name__ == '__main__': + main() diff --git a/src/blrec/core/__init__.py b/src/blrec/core/__init__.py new file mode 100644 index 0000000..d143f75 --- /dev/null +++ b/src/blrec/core/__init__.py @@ -0,0 +1,7 @@ +from .recorder import Recorder, RecorderEventListener + + +__all__ = ( + 'Recorder', + 'RecorderEventListener', +) diff --git a/src/blrec/core/danmaku_dumper.py b/src/blrec/core/danmaku_dumper.py new file mode 100644 index 0000000..fbd2f99 --- /dev/null +++ b/src/blrec/core/danmaku_dumper.py @@ -0,0 +1,156 @@ +import html +import asyncio +import logging +from contextlib import suppress +from typing import Iterator, List + + +from .. import __version__, __prog__ +from .danmaku_receiver import DanmakuReceiver, DanmuMsg +from .stream_recorder import StreamRecorder, StreamRecorderEventListener +from .statistics import StatisticsCalculator +from ..bili.live import Live +from ..exception import exception_callback +from ..path import danmaku_path +from ..danmaku.models import Metadata, Danmu +from ..danmaku.io import DanmakuWriter +from ..utils.mixins import SwitchableMixin +from ..logging.room_id import aio_task_with_room_id + + +__all__ = 'DanmakuDumper', + + +logger = logging.getLogger(__name__) + + +class DanmakuDumper(StreamRecorderEventListener, SwitchableMixin): + def __init__( + self, + live: Live, + stream_recorder: StreamRecorder, + danmaku_receiver: DanmakuReceiver, + *, + danmu_uname: bool = False, + ) -> None: + super().__init__() + + self._live = live + self._stream_recorder = stream_recorder + self._receiver = danmaku_receiver + + self.danmu_uname = danmu_uname + + self._files: List[str] = [] + self._calculator = StatisticsCalculator(interval=60) + + @property + def danmu_count(self) -> int: + return self._calculator.count + + @property + def danmu_rate(self) -> float: + return self._calculator.rate + + @property + def elapsed(self) -> float: + return self._calculator.elapsed + + def _do_enable(self) -> None: + self._stream_recorder.add_listener(self) + logger.debug('Enabled danmaku dumper') + + def _do_disable(self) -> None: + self._stream_recorder.remove_listener(self) + logger.debug('Disabled danmaku dumper') + + def set_live_start_time(self, time: int) -> None: + self._live_start_time = time + + def has_file(self) -> bool: + return bool(self._files) + + def get_files(self) -> Iterator[str]: + for file in self._files: + yield file + + def clear_files(self) -> None: + self._files.clear() + + async def on_video_file_created( + self, video_path: str, record_start_time: int + ) -> None: + self._path = danmaku_path(video_path) + self._record_start_time = record_start_time + self._files.append(self._path) + self._start_dumping() + + async def on_video_file_completed(self, video_path: str) -> None: + await self._stop_dumping() + + def _start_dumping(self) -> None: + self._create_dump_task() + + async def _stop_dumping(self) -> None: + await self._cancel_dump_task() + + def _create_dump_task(self) -> None: + self._dump_task = asyncio.create_task(self._dump()) + self._dump_task.add_done_callback(exception_callback) + + async def _cancel_dump_task(self) -> None: + self._dump_task.cancel() + with suppress(asyncio.CancelledError): + await self._dump_task + + @aio_task_with_room_id + async def _dump(self) -> None: + logger.debug('Started dumping danmaku') + self._calculator.reset() + + try: + async with DanmakuWriter(self._path) as writer: + logger.info(f"Danmaku file created: '{self._path}'") + await writer.write_metadata(self._make_metadata()) + + while True: + msg = await self._receiver.get_message() + await writer.write_danmu(self._make_danmu(msg)) + self._calculator.submit(1) + finally: + logger.info(f"Danmaku file completed: '{self._path}'") + logger.debug('Stopped dumping danmaku') + self._calculator.freeze() + + def _make_metadata(self) -> Metadata: + return Metadata( + user_name=self._live.user_info.name, + room_id=self._live.room_info.room_id, + room_title=self._live.room_info.title, + area=self._live.room_info.area_name, + parent_area=self._live.room_info.parent_area_name, + live_start_time=self._live.room_info.live_start_time, + record_start_time=self._record_start_time, + recorder=f'{__prog__} {__version__}', + ) + + def _make_danmu(self, msg: DanmuMsg) -> Danmu: + stime = max((msg.date - self._record_start_time * 1000), 0) / 1000 + + if self.danmu_uname: + text = f'{msg.uname}: {msg.text}' + else: + text = msg.text + text = html.escape(text) + + return Danmu( + stime=stime, + mode=msg.mode, + size=msg.size, + color=msg.color, + date=msg.date, + pool=msg.pool, + uid=msg.uid, + dmid=msg.dmid, + text=text, + ) diff --git a/src/blrec/core/danmaku_receiver.py b/src/blrec/core/danmaku_receiver.py new file mode 100644 index 0000000..548becd --- /dev/null +++ b/src/blrec/core/danmaku_receiver.py @@ -0,0 +1,52 @@ +import logging +from asyncio import Queue, QueueFull +from typing import Final + + +from .models import DanmuMsg +from ..bili.danmaku_client import ( + DanmakuClient, DanmakuListener, DanmakuCommand +) +from ..bili.typing import Danmaku +from ..utils.mixins import StoppableMixin + + +__all__ = 'DanmakuReceiver', + + +logger = logging.getLogger(__name__) + + +class DanmakuReceiver(DanmakuListener, StoppableMixin): + _MAX_QUEUE_SIZE: Final[int] = 2000 + + def __init__(self, danmaku_client: DanmakuClient) -> None: + super().__init__() + self._danmaku_client = danmaku_client + self._queue: Queue[DanmuMsg] = Queue(maxsize=self._MAX_QUEUE_SIZE) + + def _do_start(self) -> None: + self._danmaku_client.add_listener(self) + logger.debug('Started danmaku receiver') + + def _do_stop(self) -> None: + self._danmaku_client.remove_listener(self) + self._clear_queue() + logger.debug('Stopped danmaku receiver') + + async def get_message(self) -> DanmuMsg: + return await self._queue.get() + + async def on_danmaku_received(self, danmu: Danmaku) -> None: + if danmu['cmd'] != DanmakuCommand.DANMU_MSG.value: + return + + danmu_msg = DanmuMsg.from_cmd(danmu) + try: + self._queue.put_nowait(danmu_msg) + except QueueFull: + self._queue.get_nowait() # discard the first item + self._queue.put_nowait(danmu_msg) + + def _clear_queue(self) -> None: + self._queue = Queue(maxsize=self._MAX_QUEUE_SIZE) diff --git a/src/blrec/core/models.py b/src/blrec/core/models.py new file mode 100644 index 0000000..2ffc2c3 --- /dev/null +++ b/src/blrec/core/models.py @@ -0,0 +1,36 @@ +import logging + +import attr + +from ..bili.typing import Danmaku + + +logger = logging.getLogger(__name__) + + +@attr.s(auto_attribs=True, frozen=True, slots=True) +class DanmuMsg: + mode: int + size: int # font size + color: int + date: int # a timestamp in miliseconds + dmid: int + pool: int + uid: str # midHash + text: str + uname: str # sender name + + @staticmethod + def from_cmd(danmu: Danmaku) -> 'DanmuMsg': + info = danmu['info'] + return DanmuMsg( + mode=int(info[0][1]), + size=int(info[0][2]), + color=int(info[0][3]), + date=int(info[0][4]), + dmid=int(info[0][5]), + pool=int(info[0][6]), + uid=info[0][7], + text=info[1], + uname=info[2][1], + ) diff --git a/src/blrec/core/recorder.py b/src/blrec/core/recorder.py new file mode 100644 index 0000000..def8299 --- /dev/null +++ b/src/blrec/core/recorder.py @@ -0,0 +1,307 @@ +from __future__ import annotations +import re +import html +import logging +from datetime import datetime +from typing import Iterator, Optional + +import humanize + +from .danmaku_receiver import DanmakuReceiver +from .danmaku_dumper import DanmakuDumper +from .stream_recorder import StreamRecorder +from ..event.event_emitter import EventListener, EventEmitter +from ..bili.live import Live +from ..bili.models import RoomInfo +from ..bili.danmaku_client import DanmakuClient +from ..bili.live_monitor import LiveMonitor, LiveEventListener +from ..bili.typing import QualityNumber +from ..utils.mixins import AsyncStoppableMixin + + +__all__ = 'RecorderEventListener', 'Recorder' + + +logger = logging.getLogger(__name__) + + +class RecorderEventListener(EventListener): + async def on_recording_started(self, recorder: Recorder) -> None: + ... + + async def on_recording_finished(self, recorder: Recorder) -> None: + ... + + async def on_recording_cancelled(self, recorder: Recorder) -> None: + ... + + +class Recorder( + EventEmitter[RecorderEventListener], LiveEventListener, AsyncStoppableMixin +): + def __init__( + self, + live: Live, + danmaku_client: DanmakuClient, + live_monitor: LiveMonitor, + out_dir: str, + path_template: str, + *, + buffer_size: Optional[int] = None, + read_timeout: Optional[int] = None, + danmu_uname: bool = False, + filesize_limit: int = 0, + duration_limit: int = 0, + ) -> None: + super().__init__() + + self._live = live + self._danmaku_client = danmaku_client + self._live_monitor = live_monitor + + self._recording: bool = False + + self._stream_recorder = StreamRecorder( + self._live, + out_dir=out_dir, + path_template=path_template, + buffer_size=buffer_size, + read_timeout=read_timeout, + filesize_limit=filesize_limit, + duration_limit=duration_limit, + ) + self._danmaku_receiver = DanmakuReceiver(danmaku_client) + self._danmaku_dumper = DanmakuDumper( + self._live, + self._stream_recorder, + self._danmaku_receiver, + danmu_uname=danmu_uname, + ) + + @property + def recording(self) -> bool: + return self._recording + + @property + def quality_number(self) -> QualityNumber: + return self._stream_recorder.quality_number + + @quality_number.setter + def quality_number(self, value: QualityNumber) -> None: + self._stream_recorder.quality_number = value + + @property + def real_quality_number(self) -> QualityNumber: + return self._stream_recorder.real_quality_number + + @property + def buffer_size(self) -> int: + return self._stream_recorder.buffer_size + + @buffer_size.setter + def buffer_size(self, value: int) -> None: + self._stream_recorder.buffer_size = value + + @property + def read_timeout(self) -> int: + return self._stream_recorder.read_timeout + + @read_timeout.setter + def read_timeout(self, value: int) -> None: + self._stream_recorder.read_timeout = value + + @property + def danmu_uname(self) -> bool: + return self._danmaku_dumper.danmu_uname + + @danmu_uname.setter + def danmu_uname(self, value: bool) -> None: + self._danmaku_dumper.danmu_uname = value + + @property + def elapsed(self) -> float: + return self._stream_recorder.elapsed + + @property + def data_count(self) -> int: + return self._stream_recorder.data_count + + @property + def data_rate(self) -> float: + return self._stream_recorder.data_rate + + @property + def danmu_count(self) -> int: + return self._danmaku_dumper.danmu_count + + @property + def danmu_rate(self) -> float: + return self._danmaku_dumper.danmu_rate + + @property + def out_dir(self) -> str: + return self._stream_recorder.out_dir + + @out_dir.setter + def out_dir(self, value: str) -> None: + self._stream_recorder.out_dir = value + + @property + def path_template(self) -> str: + return self._stream_recorder.path_template + + @path_template.setter + def path_template(self, value: str) -> None: + self._stream_recorder.path_template = value + + @property + def filesize_limit(self) -> int: + return self._stream_recorder.filesize_limit + + @filesize_limit.setter + def filesize_limit(self, value: int) -> None: + self._stream_recorder.filesize_limit = value + + @property + def duration_limit(self) -> int: + return self._stream_recorder.duration_limit + + @duration_limit.setter + def duration_limit(self, value: int) -> None: + self._stream_recorder.duration_limit = value + + async def _do_start(self) -> None: + self._live_monitor.add_listener(self) + logger.debug('Started recorder') + + self._print_live_info() + if self._live.is_living(): + await self._start_recording(stream_available=True) + else: + self._print_waiting_message() + + async def _do_stop(self) -> None: + await self._stop_recording() + self._live_monitor.remove_listener(self) + logger.debug('Stopped recorder') + + def get_video_files(self) -> Iterator[str]: + yield from self._stream_recorder.get_files() + + def get_danmaku_files(self) -> Iterator[str]: + yield from self._danmaku_dumper.get_files() + + async def on_live_began(self, live: Live) -> None: + logger.info('The live has began') + self._print_live_info() + await self._start_recording() + + async def on_live_ended(self, live: Live) -> None: + logger.info('The live has ended') + await self._stop_recording() + self._print_waiting_message() + + async def on_live_stream_available(self, live: Live) -> None: + logger.debug('The live stream becomes available') + await self._stream_recorder.start() + + async def on_live_stream_reset(self, live: Live) -> None: + logger.warning('The live stream has been reset') + + async def on_room_changed(self, room_info: RoomInfo) -> None: + self._print_changed_room_info(room_info) + self._stream_recorder.update_progress_bar_info() + + async def _start_recording(self, stream_available: bool = False) -> None: + if self._recording: + return + self._recording = True + + self._danmaku_dumper.enable() + self._danmaku_receiver.start() + await self._prepare() + if stream_available: + await self._stream_recorder.start() + + logger.info('Started recording') + await self._emit('recording_started', self) + + async def _stop_recording(self) -> None: + if not self._recording: + return + self._recording = False + + await self._stream_recorder.stop() + self._danmaku_dumper.disable() + self._danmaku_receiver.stop() + + if self._stopped: + logger.info('Recording Cancelled') + await self._emit('recording_cancelled', self) + else: + logger.info('Recording Finished') + await self._emit('recording_finished', self) + + async def _prepare(self) -> None: + live_start_time = self._live.room_info.live_start_time + self._danmaku_dumper.set_live_start_time(live_start_time) + self._danmaku_dumper.clear_files() + self._stream_recorder.clear_files() + + def _print_waiting_message(self) -> None: + logger.info('Waiting... until the live starts') + + def _print_live_info(self) -> None: + room_info = self._live.room_info + user_info = self._live.user_info + + if room_info.live_start_time > 0: + live_start_time = str( + datetime.fromtimestamp(room_info.live_start_time) + ) + else: + live_start_time = 'NULL' + + desc = re.sub( + r'</?[a-zA-Z][a-zA-Z\d]*[^<>]*>', + '', + re.sub(r'<br\s*/?>', '\n', html.unescape(room_info.description)) + ).strip() + + msg = f""" +================================== User Info ================================== +user name : {user_info.name} +gender : {user_info.gender} +sign : {user_info.sign} +uid : {user_info.uid} +level : {user_info.level} +---------------------------------- Room Info ---------------------------------- +title : {room_info.title} +cover : {room_info.cover} +online : {humanize.intcomma(room_info.online)} +live status : {room_info.live_status.name} +live start time : {live_start_time} +room id : {room_info.room_id} +short room id : {room_info.short_room_id or 'NULL'} +area id : {room_info.area_id} +area name : {room_info.area_name} +parent area id : {room_info.parent_area_id} +parent area name : {room_info.parent_area_name} +tags : {room_info.tags} +description : +{desc} +=============================================================================== +""" + logger.info(msg) + + def _print_changed_room_info(self, room_info: RoomInfo) -> None: + msg = f""" +================================= Room Change ================================= +title : {room_info.title} +area id :{room_info.area_id} +area name : {room_info.area_name} +parent area id : {room_info.parent_area_id} +parent area name : {room_info.parent_area_name} +=============================================================================== +""" + logger.info(msg) diff --git a/src/blrec/core/retry.py b/src/blrec/core/retry.py new file mode 100644 index 0000000..da2c893 --- /dev/null +++ b/src/blrec/core/retry.py @@ -0,0 +1,62 @@ +import logging +from typing import Any, Callable, Optional, Type, cast + +from tenacity import wait_exponential, RetryCallState +from tenacity import _utils +from tenacity import compat as _compat + + +class wait_exponential_for_same_exceptions(wait_exponential): + """Wait strategy that applies exponential backoff only for same + continuing exceptions. + """ + + def __init__( + self, + multiplier: float = 1, + max: float = _utils.MAX_WAIT, + exp_base: int = 2, + min: float = 0, + continuing_criteria: float = 5.0, + ) -> None: + super().__init__(multiplier, max, exp_base, min) + self._continuing_criteria = continuing_criteria + self._prev_exc_type: Optional[Type[BaseException]] = None + self._prev_exc_ts: Optional[float] = None + self._last_wait_time: float = 0 + + @_compat.wait_dunder_call_accept_old_params + def __call__(self, retry_state: RetryCallState) -> float: + if ( + retry_state.outcome is not None and + (exc := retry_state.outcome.exception()) + ): + curr_exc_type = type(exc) + curr_exc_ts = cast(float, retry_state.outcome_timestamp) + if ( + curr_exc_type is not self._prev_exc_type or + not self._is_continuing(curr_exc_ts) + ): + retry_state.attempt_number = 1 + self._prev_exc_type = curr_exc_type + self._prev_exc_ts = curr_exc_ts + + self._last_wait_time = wait_time = super().__call__(retry_state) + return wait_time + + def _is_continuing(self, curr_exc_ts: float) -> bool: + assert self._prev_exc_ts is not None + return ( + curr_exc_ts - (self._prev_exc_ts + self._last_wait_time) < + self._continuing_criteria + ) + + +def before_sleep_log( + logger: logging.Logger, log_level: int, name: str = '' +) -> Callable[[RetryCallState], Any]: + def log_it(retry_state: RetryCallState) -> None: + seconds = cast(float, getattr(retry_state.next_action, 'sleep')) + logger.log(log_level, 'Retry %s after %s seconds', name, seconds) + + return log_it diff --git a/src/blrec/core/statistics.py b/src/blrec/core/statistics.py new file mode 100644 index 0000000..e3f9c41 --- /dev/null +++ b/src/blrec/core/statistics.py @@ -0,0 +1,59 @@ +import time + + +__all__ = 'StatisticsCalculator', + + +class StatisticsCalculator: + def __init__(self, interval: float = 1.0) -> None: + self._interval = interval + self._frozen = True + + self._count: int = 0 + self._rate: float = 0.0 + self._start_time: float = 0.0 + self._last_time: float = 0.0 + self._last_count: int = 0 + self._elapsed: float = 0.0 + + @property + def count(self) -> int: + return self._count + + @property + def rate(self) -> float: + if self._frozen: + return self._rate + + curr_time = time.monotonic() + time_delta = curr_time - self._last_time + + if time_delta >= self._interval: + count_delta = self._count - self._last_count + self._rate = count_delta / time_delta + + self._last_time = curr_time + self._last_count = self._count + + return self._rate + + @property + def elapsed(self) -> float: + if not self._frozen: + self._elapsed = time.monotonic() - self._start_time + return self._elapsed + + def freeze(self) -> None: + self._frozen = True + + def reset(self) -> None: + self._count = self._last_count = 0 + self._start_time = self._last_time = time.monotonic() + self._rate = 0.0 + self._elapsed = 0.0 + + self._frozen = False + + def submit(self, count: int) -> None: + if not self._frozen: + self._count += count diff --git a/src/blrec/core/stream_recorder.py b/src/blrec/core/stream_recorder.py new file mode 100644 index 0000000..045701b --- /dev/null +++ b/src/blrec/core/stream_recorder.py @@ -0,0 +1,506 @@ +import io +import os +import time +import errno +import asyncio +import logging +from threading import Thread +from datetime import datetime, timezone, timedelta +from collections import OrderedDict + +from typing import Any, BinaryIO, Dict, Iterator, Optional, Tuple + +import aiohttp +import requests +import urllib3 +from tqdm import tqdm +from rx.subject import Subject +from rx.core import Observable +from tenacity import ( + retry, + wait_none, + wait_fixed, + wait_chain, + wait_exponential, + stop_after_delay, + stop_after_attempt, + retry_if_result, + retry_if_exception, + retry_if_exception_type, + Retrying, + TryAgain, +) + +from .. import __version__, __prog__ +from .retry import wait_exponential_for_same_exceptions, before_sleep_log +from .statistics import StatisticsCalculator +from ..event.event_emitter import EventListener, EventEmitter +from ..bili.live import Live +from ..bili.typing import QualityNumber +from ..flv.stream_processor import StreamProcessor, BaseOutputFileManager +from ..utils.mixins import AsyncCooperationMix, AsyncStoppableMixin +from ..flv.exceptions import FlvStreamCorruptedError +from ..bili.exceptions import ( + LiveRoomHidden, LiveRoomLocked, LiveRoomEncrypted, NoStreamUrlAvailable +) + + +__all__ = 'StreamRecorderEventListener', 'StreamRecorder' + + +logger = logging.getLogger(__name__) +logging.getLogger(urllib3.__name__).setLevel(logging.WARNING) + + +class StreamRecorderEventListener(EventListener): + async def on_video_file_created( + self, path: str, record_start_time: int + ) -> None: + ... + + async def on_video_file_completed(self, path: str) -> None: + ... + + +class StreamRecorder( + EventEmitter[StreamRecorderEventListener], + AsyncCooperationMix, + AsyncStoppableMixin, +): + def __init__( + self, + live: Live, + out_dir: str, + path_template: str, + *, + quality_number: QualityNumber = 10000, + buffer_size: Optional[int] = None, + read_timeout: Optional[int] = None, + filesize_limit: int = 0, + duration_limit: int = 0, + ) -> None: + super().__init__() + + self._live = live + self._progress_bar: Optional[tqdm] = None + self._stream_processor: Optional[StreamProcessor] = None + self._calculator = StatisticsCalculator() + self._file_manager = OutputFileManager( + live, out_dir, path_template, buffer_size + ) + + self._quality_number = quality_number + self._real_quality_number: Optional[QualityNumber] = None + self.buffer_size = buffer_size or io.DEFAULT_BUFFER_SIZE # bytes + self.read_timeout = read_timeout or 3 # seconds + + self._filesize_limit = filesize_limit or 0 + self._duration_limit = duration_limit or 0 + + def on_file_created(args: Tuple[str, int]) -> None: + logger.info(f"Video file created: '{args[0]}'") + self._emit_event('video_file_created', *args) + + def on_file_closed(path: str) -> None: + logger.info(f"Video file completed: '{path}'") + self._emit_event('video_file_completed', path) + + self._file_manager.file_creates.subscribe(on_file_created) + self._file_manager.file_closes.subscribe(on_file_closed) + + @property + def data_count(self) -> int: + return self._calculator.count + + @property + def data_rate(self) -> float: + return self._calculator.rate + + @property + def elapsed(self) -> float: + return self._calculator.elapsed + + @property + def out_dir(self) -> str: + return self._file_manager.out_dir + + @out_dir.setter + def out_dir(self, value: str) -> None: + self._file_manager.out_dir = value + + @property + def path_template(self) -> str: + return self._file_manager.path_template + + @path_template.setter + def path_template(self, value: str) -> None: + self._file_manager.path_template = value + + @property + def quality_number(self) -> QualityNumber: + return self._quality_number + + @quality_number.setter + def quality_number(self, value: QualityNumber) -> None: + self._quality_number = value + self._real_quality_number = None + + @property + def real_quality_number(self) -> QualityNumber: + return self._real_quality_number or 10000 + + @property + def filesize_limit(self) -> int: + if self._stream_processor is not None: + return self._stream_processor.filesize_limit + else: + return self._filesize_limit + + @filesize_limit.setter + def filesize_limit(self, value: int) -> None: + self._filesize_limit = value + if self._stream_processor is not None: + self._stream_processor.filesize_limit = value + + @property + def duration_limit(self) -> int: + if self._stream_processor is not None: + return self._stream_processor.duration_limit + else: + return self._duration_limit + + @duration_limit.setter + def duration_limit(self, value: int) -> None: + self._duration_limit = value + if self._stream_processor is not None: + self._stream_processor.duration_limit = value + + def has_file(self) -> bool: + return self._file_manager.has_file() + + def get_files(self) -> Iterator[str]: + yield from self._file_manager.get_files() + + def clear_files(self) -> None: + self._file_manager.clear_files() + + def update_progress_bar_info(self) -> None: + if self._progress_bar is not None: + self._progress_bar.set_postfix_str(self._make_pbar_postfix()) + + async def _do_start(self) -> None: + self._thread = Thread( + target=self._run, name=f'StreamRecorder::{self._live.room_id}' + ) + self._thread.start() + logger.debug('Started stream recorder') + + async def _do_stop(self) -> None: + logger.debug('Stopping stream recorder...') + if self._stream_processor is not None: + self._stream_processor.cancel() + await self._loop.run_in_executor(None, self._thread.join) + logger.debug('Stopped stream recorder') + + def _run(self) -> None: + self._calculator.reset() + try: + with tqdm( + desc='Recording', + unit='B', + unit_scale=True, + unit_divisor=1024, + postfix=self._make_pbar_postfix(), + ) as progress_bar: + self._progress_bar = progress_bar + + def update_size(size: int) -> None: + progress_bar.update(size) + self._calculator.submit(size) + + self._stream_processor = StreamProcessor( + self._file_manager, + filesize_limit=self._filesize_limit, + duration_limit=self._duration_limit, + metadata=self._make_metadata(), + analyse_data=True, + dedup_join=True, + save_extra_metadata=True, + ) + self._stream_processor.size_updates.subscribe(update_size) + + with requests.Session() as self._session: + self._main_loop() + except Exception as e: + self._handle_exception(e) + finally: + if self._stream_processor is not None: + self._stream_processor.finalize() + self._stream_processor = None + self._progress_bar = None + self._calculator.freeze() + + def _main_loop(self) -> None: + for attempt in Retrying( + reraise=True, + retry=( + retry_if_result(lambda r: not self._stopped) | + retry_if_exception(lambda e: not isinstance(e, OSError)) + ), + wait=wait_exponential_for_same_exceptions(max=60), + stop=stop_after_delay(1800), + before_sleep=before_sleep_log(logger, logging.DEBUG, 'main_loop'), + ): + with attempt: + try: + self._streaming_loop() + except NoStreamUrlAvailable: + logger.debug('No stream url available') + if not self._stopped: + raise TryAgain + except OSError as e: + if e.errno == errno.ENOSPC: + # OSError(28, 'No space left on device') + raise + logger.critical(repr(e), exc_info=e) + raise TryAgain + except LiveRoomHidden: + logger.error('The live room has been hidden!') + self._stopped = True + except LiveRoomLocked: + logger.error('The live room has been locked!') + self._stopped = True + except LiveRoomEncrypted: + logger.error('The live room has been encrypted!') + self._stopped = True + except Exception as e: + logger.exception(e) + raise + + def _streaming_loop(self) -> None: + url = self._get_live_stream_url() + + while not self._stopped: + try: + self._streaming(url) + except requests.exceptions.HTTPError as e: + # frequently occurred when the live just started or ended. + logger.debug(repr(e)) + self._defer_retry(1, 'streaming_loop') + # the url may has been forbidden or expired + # when the status code is 404 or 403 + if e.response.status_code in (403, 404): + url = self._get_live_stream_url() + except requests.exceptions.Timeout as e: + logger.warning(repr(e)) + except urllib3.exceptions.TimeoutError as e: + logger.warning(repr(e)) + except urllib3.exceptions.ProtocolError as e: + # ProtocolError('Connection broken: IncompleteRead( + logger.warning(repr(e)) + except requests.exceptions.ConnectionError as e: + logger.warning(repr(e)) + except FlvStreamCorruptedError as e: + logger.warning(repr(e)) + + def _streaming(self, url: str) -> None: + logger.debug('Getting the live stream...') + with self._session.get( + url, + headers=self._live.headers, + stream=True, + timeout=self.read_timeout, + ) as response: + logger.debug('Response received') + response.raise_for_status() + + assert self._stream_processor is not None + self._stream_processor.process_stream( + io.BufferedReader( + ResponseProxy(response.raw), buffer_size=8192 + ) + ) + + @retry( + reraise=True, + retry=retry_if_exception_type(( + asyncio.TimeoutError, aiohttp.ClientError, + )), + wait=wait_chain(wait_none(), wait_fixed(1)), + stop=stop_after_attempt(300), + ) + def _get_live_stream_url(self) -> str: + qn = self._real_quality_number or self.quality_number + url = self._run_coroutine(self._live.get_live_stream_url(qn, 'flv')) + + if self._real_quality_number is None: + if url is None: + logger.info( + f'The specified video quality ({qn}) is not available, ' + 'using the original video quality (10000) instead.' + ) + self._real_quality_number = 10000 + raise TryAgain + else: + logger.info(f'The specified video quality ({qn}) is available') + self._real_quality_number = self.quality_number + + assert url is not None + logger.debug(f"Got live stream url: '{url}'") + + return url + + def _defer_retry(self, seconds: float, name: str = '') -> None: + if seconds <= 0: + return + logger.debug(f'Retry {name} after {seconds} seconds') + time.sleep(seconds) + + def _make_pbar_postfix(self) -> str: + return '{room_id} - {user_name}: {room_title}'.format( + room_id=self._live.room_info.room_id, + user_name=self._live.user_info.name, + room_title=self._live.room_info.title, + ) + + def _make_metadata(self) -> Dict[str, Any]: + github_url = 'https://github.com/acgnhiki/blrec' + live_start_time = datetime.fromtimestamp( + self._live.room_info.live_start_time, timezone(timedelta(hours=8)) + ) + + return { + 'Title': self._live.room_info.title, + 'Artist': self._live.user_info.name, + 'Date': str(live_start_time), + 'Comment': f'''\ +B站直播录像 +主播:{self._live.user_info.name} +标题:{self._live.room_info.title} +分区:{self._live.room_info.parent_area_name} - {self._live.room_info.area_name} +房间号:{self._live.room_info.room_id} +开播时间:{live_start_time} +录制程序:{__prog__} v{__version__} {github_url}''', + 'description': OrderedDict({ + 'UserId': str(self._live.user_info.uid), + 'UserName': self._live.user_info.name, + 'RoomId': str(self._live.room_info.room_id), + 'RoomTitle': self._live.room_info.title, + 'Area': self._live.room_info.area_name, + 'ParentArea': self._live.room_info.parent_area_name, + 'LiveStartTime': str(live_start_time), + 'Recorder': f'{__prog__} v{__version__} {github_url}', + }) + } + + def _emit_event(self, name: str, *args: Any, **kwds: Any) -> None: + self._run_coroutine(super()._emit(name, *args, **kwds)) + + +class ResponseProxy(io.RawIOBase): + def __init__(self, response: urllib3.HTTPResponse) -> None: + self._response = response + + @property + def closed(self) -> bool: + # always return False to avoid that `ValueError: read of closed file`, + # raised from `CHECK_CLOSED(self, "read of closed file")`, + # result in losing data those remaining in the buffer. + # ref: `https://gihub.com/python/cpython/blob/63298930fb531ba2bb4f23bc3b915dbf1e17e9e1/Modules/_io/bufferedio.c#L882` # noqa + return False + + def readable(self) -> bool: + return True + + def read(self, size: int = -1) -> bytes: + return self._response.read(size) + + def tell(self) -> int: + return self._response.tell() + + def readinto(self, b: Any) -> int: + return self._response.readinto(b) + + def close(self) -> None: + self._response.close() + + +class OutputFileManager(BaseOutputFileManager, AsyncCooperationMix): + def __init__( + self, + live: Live, + out_dir: str, + path_template: str, + buffer_size: Optional[int] = None, + ) -> None: + super().__init__(buffer_size) + self._live = live + + self.out_dir = out_dir + self.path_template = path_template + + self._file_creates = Subject() + self._file_closes = Subject() + + @property + def file_creates(self) -> Observable: + return self._file_creates + + @property + def file_closes(self) -> Observable: + return self._file_closes + + def create_file(self) -> BinaryIO: + self._start_time = self._get_timestamp() + file = super().create_file() + self._file_creates.on_next((self._curr_path, self._start_time)) + return file + + def close_file(self) -> None: + path = self._curr_path + super().close_file() + self._file_closes.on_next(path) + + def _get_timestamp(self) -> int: + try: + return self._get_server_timestamp() + except Exception as e: + logger.warning(f'Failed to get server timestamp: {repr(e)}') + return self._get_local_timestamp() + + def _get_local_timestamp(self) -> int: + return int(time.time()) + + @retry( + reraise=True, + retry=retry_if_exception_type(( + asyncio.TimeoutError, aiohttp.ClientError, + )), + wait=wait_exponential(multiplier=0.1, max=1), + stop=stop_after_delay(3), + ) + def _get_server_timestamp(self) -> int: + return self._run_coroutine(self._live.get_server_timestamp()) + + def _make_path(self) -> str: + date_time = datetime.fromtimestamp(self._start_time) + relpath = self.path_template.format( + roomid=self._live.room_id, + uname=self._live.user_info.name, + title=self._live.room_info.title, + area=self._live.room_info.area_name, + parent_area=self._live.room_info.parent_area_name, + year=date_time.year, + month=str(date_time.month).rjust(2, '0'), + day=str(date_time.day).rjust(2, '0'), + hour=str(date_time.hour).rjust(2, '0'), + minute=str(date_time.minute).rjust(2, '0'), + second=str(date_time.second).rjust(2, '0'), + ) + + full_pathname = os.path.abspath( + os.path.expanduser(os.path.join(self.out_dir, relpath) + '.flv') + ) + os.makedirs(os.path.dirname(full_pathname), exist_ok=True) + + return full_pathname diff --git a/src/blrec/danmaku/__init__.py b/src/blrec/danmaku/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/blrec/danmaku/combination.py b/src/blrec/danmaku/combination.py new file mode 100644 index 0000000..2409297 --- /dev/null +++ b/src/blrec/danmaku/combination.py @@ -0,0 +1,44 @@ +import logging +from typing import Iterable + + +from .io import DanmakuReader, DanmakuWriter +from .common import copy_damus +from .typing import TimebaseType + + +__all__ = 'TimebaseType', 'DanmakuCombinator' + + +logger = logging.getLogger(__name__) + + +class DanmakuCombinator: + def __init__( + self, + in_paths: Iterable[str], + out_path: str, + timebase_type: TimebaseType = TimebaseType.RECORD, + ) -> None: + self._in_paths = list(in_paths) + self._out_path = out_path + self._timebase_type = timebase_type + + async def combine(self) -> None: + async with DanmakuWriter(self._out_path) as writer: + writer = writer + + async with DanmakuReader(self._in_paths[0]) as reader: + metadata = await reader.read_metadata() + await writer.write_metadata(metadata) + + if self._timebase_type == TimebaseType.LIVE: + timebase = metadata.live_start_time * 1000 + else: + timebase = metadata.record_start_time * 1000 + + await copy_damus(reader, writer, timebase=timebase) + + for path in self._in_paths[1:]: + async with DanmakuReader(path) as reader: + await copy_damus(reader, writer, timebase=timebase) diff --git a/src/blrec/danmaku/common.py b/src/blrec/danmaku/common.py new file mode 100644 index 0000000..2f4cedd --- /dev/null +++ b/src/blrec/danmaku/common.py @@ -0,0 +1,22 @@ + +from typing import Optional + +import attr + +from .io import DanmakuReader, DanmakuWriter + + +async def copy_damus( + reader: DanmakuReader, + writer: DanmakuWriter, + *, + timebase: Optional[int] = None, # milliseconds + delta: int = 0, # milliseconds +) -> None: + async for danmu in reader.read_danmus(): + if timebase is None: + stime = max(0, danmu.stime * 1000 + delta) / 1000 + else: + stime = max(0, danmu.date - timebase + delta) / 1000 + new_danmu = attr.evolve(danmu, stime=stime) + await writer.write_danmu(new_danmu) diff --git a/src/blrec/danmaku/concatenation.py b/src/blrec/danmaku/concatenation.py new file mode 100644 index 0000000..dad69ac --- /dev/null +++ b/src/blrec/danmaku/concatenation.py @@ -0,0 +1,33 @@ +import logging +from typing import Iterable + + +from .io import DanmakuReader, DanmakuWriter +from .common import copy_damus + + +logger = logging.getLogger(__name__) + + +__all__ = 'DanmakuConcatenator' + + +class DanmakuConcatenator: + def __init__( + self, in_paths: Iterable[str], deltas: Iterable[int], out_path: str + ) -> None: + self._in_paths = list(in_paths) + self._deltas = list(deltas) + self._out_path = out_path + assert len(self._in_paths) == len(self._deltas) + + async def concat(self) -> None: + async with DanmakuWriter(self._out_path) as writer: + async with DanmakuReader(self._in_paths[0]) as reader: + metadata = await reader.read_metadata() + await writer.write_metadata(metadata) + await copy_damus(reader, writer, delta=self._deltas[0]) + + for path, delta in zip(self._in_paths[1:], self._deltas[1:]): + async with DanmakuReader(path) as reader: + await copy_damus(reader, writer, delta=delta) diff --git a/src/blrec/danmaku/helpers.py b/src/blrec/danmaku/helpers.py new file mode 100644 index 0000000..c6e2697 --- /dev/null +++ b/src/blrec/danmaku/helpers.py @@ -0,0 +1,51 @@ +import os +from typing import Iterable + + +from .io import DanmakuReader, DanmakuWriter +from .combination import DanmakuCombinator, TimebaseType +from .concatenation import DanmakuConcatenator + + +async def has_danmu(path: str) -> bool: + async with DanmakuReader(path) as reader: + async for _ in reader.read_danmus(): + return True + return False + + +async def clear_danmu(path: str) -> None: + async with DanmakuReader(path) as reader: + async with DanmakuWriter(path) as writer: + metadata = await reader.read_metadata() + await writer.write_metadata(metadata) + + +async def concat_danmaku( + in_paths: Iterable[str], deltas: Iterable[int], out_path: str +) -> None: + concatenator = DanmakuConcatenator(in_paths, deltas, out_path) + await concatenator.concat() + + +async def combine_danmaku( + in_paths: Iterable[str], + out_path: str, + timebase_type: TimebaseType = TimebaseType.RECORD, +) -> None: + combiator = DanmakuCombinator(in_paths, out_path, timebase_type) + await combiator.combine() + + +async def merge_danmaku(src: str, dst: str, insert: bool = False) -> None: + """Merge all danmus in the src into the dst. + + insert: if true, src insert before dst otherwise src append after dst + """ + out = dst + '.tmp' + if insert: + await combine_danmaku([src, dst], out) + else: + await combine_danmaku([dst, src], out) + await clear_danmu(src) + os.replace(out, dst) diff --git a/src/blrec/danmaku/io.py b/src/blrec/danmaku/io.py new file mode 100644 index 0000000..dcb5792 --- /dev/null +++ b/src/blrec/danmaku/io.py @@ -0,0 +1,130 @@ +from __future__ import annotations +import html +import asyncio +from typing import AsyncIterator, Final, List + +from lxml import etree +import aiofiles + +from .models import Metadata, Danmu +from .typing import Element + + +__all__ = 'DanmakuReader', 'DanmakuWriter' + + +class DanmakuReader: + def __init__(self, path: str) -> None: + self._path = path + + async def __aenter__(self) -> DanmakuReader: + await self.init() + return self + + async def __aexit__(self, exc_type, exc, tb): # type: ignore + pass + + async def init(self) -> None: + loop = asyncio.get_running_loop() + self._tree = await loop.run_in_executor(None, etree.parse, self._path) + + async def read_metadata(self) -> Metadata: + loop = asyncio.get_running_loop() + return await loop.run_in_executor(None, self._read_metadata) + + async def read_danmus(self) -> AsyncIterator[Danmu]: + for elem in await self._get_danmu_elems(): + yield self._make_danmu(elem) + + def _read_metadata(self) -> Metadata: + return Metadata( + user_name=self._tree.xpath('/i/metadata/user_name')[0].text, + room_id=int(self._tree.xpath('/i/metadata/room_id')[0].text), + room_title=self._tree.xpath('/i/metadata/room_title')[0].text, + area=self._tree.xpath('/i/metadata/area')[0].text, + parent_area=self._tree.xpath('/i/metadata/parent_area')[0].text, + live_start_time=int( + self._tree.xpath('/i/metadata/live_start_time')[0].text + ), + record_start_time=int( + self._tree.xpath('/i/metadata/record_start_time')[0].text + ), + recorder=self._tree.xpath('/i/metadata/recorder')[0].text, + ) + + async def _get_danmu_elems(self) -> List[Element]: + loop = asyncio.get_running_loop() + return await loop.run_in_executor(None, self._tree.xpath, '/i/d') + + def _make_danmu(self, elem: Element) -> Danmu: + params = elem.get('p').split(',') + return Danmu( + stime=float(params[0]), + mode=int(params[1]), + size=int(params[2]), + color=int(params[3]), + date=int(params[4]), + pool=int(params[5]), + uid=params[6], + dmid=int(params[7]), + text=elem.text, + ) + + +class DanmakuWriter: + _XML_HEAD: Final[str] = """\ +<?xml version="1.0" encoding="UTF-8"?> +<i> + <chatserver>chat.bilibili.com</chatserver> + <chatid>0</chatid> + <mission>0</mission> + <maxlimit>0</maxlimit> + <state>0</state> + <real_name>0</real_name> + <source>e-r</source> +""" + + def __init__(self, path: str): + self._path = path + + async def __aenter__(self) -> DanmakuWriter: + await self.init() + return self + + async def __aexit__(self, exc_type, exc, tb): # type: ignore + await self.complete() + + async def init(self) -> None: + self._file = await aiofiles.open(self._path, 'wt', encoding='utf8') + await self._file.write(self._XML_HEAD) + + async def write_metadata(self, metadata: Metadata) -> None: + await self._file.write(self._serialize_metadata(metadata)) + + async def write_danmu(self, danmu: Danmu) -> None: + await self._file.write(self._serialize_danmu(danmu)) + + async def complete(self) -> None: + await self._file.write('</i>') + await self._file.close() + + def _serialize_metadata(self, metadata: Metadata) -> str: + return f"""\ + <metadata> + <user_name>{html.escape(metadata.user_name)}</user_name> + <room_id>{metadata.room_id}</room_id> + <room_title>{html.escape(metadata.room_title)}</room_title> + <area>{html.escape(metadata.area)}</area> + <parent_area>{html.escape(metadata.parent_area)}</parent_area> + <live_start_time>{metadata.live_start_time}</live_start_time> + <record_start_time>{metadata.record_start_time}</record_start_time> + <recorder>{metadata.recorder}</recorder> + </metadata> +""" + + def _serialize_danmu(self, dm: Danmu) -> str: + return ( + f' <d p="{dm.stime:.5f},{dm.mode},{dm.size},{dm.color},' + f'{dm.date},{dm.pool},{dm.uid},{dm.dmid}">' + f'{html.escape(dm.text)}</d>\n' + ) diff --git a/src/blrec/danmaku/models.py b/src/blrec/danmaku/models.py new file mode 100644 index 0000000..a35623d --- /dev/null +++ b/src/blrec/danmaku/models.py @@ -0,0 +1,28 @@ + + +import attr + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class Metadata: + user_name: str + room_id: int + room_title: str + area: str + parent_area: str + live_start_time: int # seconds + record_start_time: int # seconds + recorder: str + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class Danmu: + stime: float + mode: int + size: int + color: int + date: int # milliseconds + pool: int + uid: str # uid hash + dmid: int + text: str diff --git a/src/blrec/danmaku/typing.py b/src/blrec/danmaku/typing.py new file mode 100644 index 0000000..e3ac7f7 --- /dev/null +++ b/src/blrec/danmaku/typing.py @@ -0,0 +1,10 @@ +from enum import Enum +from typing import Any + + +class TimebaseType(Enum): + LIVE = 'live' + RECORD = 'record' + + +Element = Any diff --git a/src/blrec/data/webapp/198.20d927ba29c55516dd2e.js b/src/blrec/data/webapp/198.20d927ba29c55516dd2e.js new file mode 100644 index 0000000..7e008d1 --- /dev/null +++ b/src/blrec/data/webapp/198.20d927ba29c55516dd2e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkblrec=self.webpackChunkblrec||[]).push([[198],{1703:(ot,M,n)=>{n.d(M,{Z:()=>I});var s=n(9890);const p=function(g,C){for(var u=g.length;u--;)if((0,s.Z)(g[u][0],C))return u;return-1};var T=Array.prototype.splice;function B(g){var C=-1,u=null==g?0:g.length;for(this.clear();++C<u;){var a=g[C];this.set(a[0],a[1])}}B.prototype.clear=function(){this.__data__=[],this.size=0},B.prototype.delete=function(g){var C=this.__data__,u=p(C,g);return!(u<0||(u==C.length-1?C.pop():T.call(C,u,1),--this.size,0))},B.prototype.get=function(g){var C=this.__data__,u=p(C,g);return u<0?void 0:C[u][1]},B.prototype.has=function(g){return p(this.__data__,g)>-1},B.prototype.set=function(g,C){var u=this.__data__,a=p(u,g);return a<0?(++this.size,u.push([g,C])):u[a][1]=C,this};const I=B},7320:(ot,M,n)=>{n.d(M,{Z:()=>t});var e=n(4284),o=n(1886);const t=(0,e.Z)(o.Z,"Map")},2740:(ot,M,n)=>{n.d(M,{Z:()=>pt});const s=(0,n(4284).Z)(Object,"create");var w=Object.prototype.hasOwnProperty;var U=Object.prototype.hasOwnProperty;function u(et){var ct=-1,S=null==et?0:et.length;for(this.clear();++ct<S;){var K=et[ct];this.set(K[0],K[1])}}u.prototype.clear=function(){this.__data__=s?s(null):{},this.size=0},u.prototype.delete=function(et){var ct=this.has(et)&&delete this.__data__[et];return this.size-=ct?1:0,ct},u.prototype.get=function(et){var ct=this.__data__;if(s){var S=ct[et];return"__lodash_hash_undefined__"===S?void 0:S}return w.call(ct,et)?ct[et]:void 0},u.prototype.has=function(et){var ct=this.__data__;return s?void 0!==ct[et]:U.call(ct,et)},u.prototype.set=function(et,ct){var S=this.__data__;return this.size+=this.has(et)?0:1,S[et]=s&&void 0===ct?"__lodash_hash_undefined__":ct,this};const a=u;var E=n(1703),b=n(7320);const rt=function(et,ct){var S=et.__data__;return function(et){var ct=typeof et;return"string"==ct||"number"==ct||"symbol"==ct||"boolean"==ct?"__proto__"!==et:null===et}(ct)?S["string"==typeof ct?"string":"hash"]:S.map};function q(et){var ct=-1,S=null==et?0:et.length;for(this.clear();++ct<S;){var K=et[ct];this.set(K[0],K[1])}}q.prototype.clear=function(){this.size=0,this.__data__={hash:new a,map:new(b.Z||E.Z),string:new a}},q.prototype.delete=function(et){var ct=rt(this,et).delete(et);return this.size-=ct?1:0,ct},q.prototype.get=function(et){return rt(this,et).get(et)},q.prototype.has=function(et){return rt(this,et).has(et)},q.prototype.set=function(et,ct){var S=rt(this,et),K=S.size;return S.set(et,ct),this.size+=S.size==K?0:1,this};const pt=q},5504:(ot,M,n)=>{n.d(M,{Z:()=>B});var e=n(1703);var w=n(7320),R=n(2740);function j(I){var g=this.__data__=new e.Z(I);this.size=g.size}j.prototype.clear=function(){this.__data__=new e.Z,this.size=0},j.prototype.delete=function(I){var g=this.__data__,C=g.delete(I);return this.size=g.size,C},j.prototype.get=function(I){return this.__data__.get(I)},j.prototype.has=function(I){return this.__data__.has(I)},j.prototype.set=function(I,g){var C=this.__data__;if(C instanceof e.Z){var u=C.__data__;if(!w.Z||u.length<199)return u.push([I,g]),this.size=++C.size,this;C=this.__data__=new R.Z(u)}return C.set(I,g),this.size=C.size,this};const B=j},1908:(ot,M,n)=>{n.d(M,{Z:()=>s});const s=n(1886).Z.Symbol},6053:(ot,M,n)=>{n.d(M,{Z:()=>s});const s=n(1886).Z.Uint8Array},2654:(ot,M,n)=>{n.d(M,{Z:()=>o});const o=function(s,t){for(var p=-1,d=null==s?0:s.length;++p<d&&!1!==t(s[p],p,s););return s}},7127:(ot,M,n)=>{n.d(M,{Z:()=>R});var s=n(7895),t=n(4663),p=n(6565),d=n(6641),T=n(384),A=Object.prototype.hasOwnProperty;const R=function(O,P){var U=(0,t.Z)(O),j=!U&&(0,s.Z)(O),B=!U&&!j&&(0,p.Z)(O),I=!U&&!j&&!B&&(0,T.Z)(O),g=U||j||B||I,C=g?function(O,P){for(var U=-1,j=Array(O);++U<O;)j[U]=P(U);return j}(O.length,String):[],u=C.length;for(var a in O)(P||A.call(O,a))&&(!g||!("length"==a||B&&("offset"==a||"parent"==a)||I&&("buffer"==a||"byteLength"==a||"byteOffset"==a)||(0,d.Z)(a,u)))&&C.push(a);return C}},2981:(ot,M,n)=>{n.d(M,{Z:()=>o});const o=function(s,t){for(var p=-1,d=t.length,T=s.length;++p<d;)s[T+p]=t[p];return s}},2892:(ot,M,n)=>{n.d(M,{Z:()=>d});var e=n(5026),o=n(9890),t=Object.prototype.hasOwnProperty;const d=function(T,y,A){var w=T[y];(!t.call(T,y)||!(0,o.Z)(w,A)||void 0===A&&!(y in T))&&(0,e.Z)(T,y,A)}},5026:(ot,M,n)=>{n.d(M,{Z:()=>s});var e=n(9129);const s=function(t,p,d){"__proto__"==p&&e.Z?(0,e.Z)(t,p,{configurable:!0,enumerable:!0,value:d,writable:!0}):t[p]=d}},5637:(ot,M,n)=>{n.d(M,{Z:()=>t});var e=n(692),o=Object.create;const t=function(){function p(){}return function(d){if(!(0,e.Z)(d))return{};if(o)return o(d);p.prototype=d;var T=new p;return p.prototype=void 0,T}}()},1016:(ot,M,n)=>{n.d(M,{Z:()=>T});const t=function(A,w,R){for(var O=-1,P=Object(A),U=R(A),j=U.length;j--;){var B=U[++O];if(!1===w(P[B],B,P))break}return A};var p=n(9096);const T=function(y,A){return y&&t(y,A,p.Z)}},3283:(ot,M,n)=>{n.d(M,{Z:()=>t});var e=n(8598),o=n(1968);const t=function(p,d){for(var T=0,y=(d=(0,e.Z)(d,p)).length;null!=p&&T<y;)p=p[(0,o.Z)(d[T++])];return T&&T==y?p:void 0}},5186:(ot,M,n)=>{n.d(M,{Z:()=>t});var e=n(2981),o=n(4663);const t=function(p,d,T){var y=d(p);return(0,o.Z)(p)?y:(0,e.Z)(y,T(p))}},2733:(ot,M,n)=>{n.d(M,{Z:()=>B});var e=n(1908),o=Object.prototype,s=o.hasOwnProperty,t=o.toString,p=e.Z?e.Z.toStringTag:void 0;var A=Object.prototype.toString;var U=e.Z?e.Z.toStringTag:void 0;const B=function(I){return null==I?void 0===I?"[object Undefined]":"[object Null]":U&&U in Object(I)?function(I){var g=s.call(I,p),C=I[p];try{I[p]=void 0;var u=!0}catch(E){}var a=t.call(I);return u&&(g?I[p]=C:delete I[p]),a}(I):function(I){return A.call(I)}(I)}},5585:(ot,M,n)=>{n.d(M,{Z:()=>oe});var e=n(5504),o=n(2740);function y(J){var it=-1,mt=null==J?0:J.length;for(this.__data__=new o.Z;++it<mt;)this.add(J[it])}y.prototype.add=y.prototype.push=function(J){return this.__data__.set(J,"__lodash_hash_undefined__"),this},y.prototype.has=function(J){return this.__data__.has(J)};const A=y,R=function(J,it){for(var mt=-1,gt=null==J?0:J.length;++mt<gt;)if(it(J[mt],mt,J))return!0;return!1},P=function(J,it){return J.has(it)},I=function(J,it,mt,gt,Dt,ft){var Et=1&mt,Rt=J.length,St=it.length;if(Rt!=St&&!(Et&&St>Rt))return!1;var At=ft.get(J),Ft=ft.get(it);if(At&&Ft)return At==it&&Ft==J;var Bt=-1,bt=!0,Kt=2&mt?new A:void 0;for(ft.set(J,it),ft.set(it,J);++Bt<Rt;){var kt=J[Bt],Ut=it[Bt];if(gt)var Wt=Et?gt(Ut,kt,Bt,it,J,ft):gt(kt,Ut,Bt,J,it,ft);if(void 0!==Wt){if(Wt)continue;bt=!1;break}if(Kt){if(!R(it,function(Ht,jt){if(!P(Kt,jt)&&(kt===Ht||Dt(kt,Ht,mt,gt,ft)))return Kt.push(jt)})){bt=!1;break}}else if(kt!==Ut&&!Dt(kt,Ut,mt,gt,ft)){bt=!1;break}}return ft.delete(J),ft.delete(it),bt};var g=n(1908),C=n(6053),u=n(9890);const E=function(J){var it=-1,mt=Array(J.size);return J.forEach(function(gt,Dt){mt[++it]=[Dt,gt]}),mt},x=function(J){var it=-1,mt=Array(J.size);return J.forEach(function(gt){mt[++it]=gt}),mt};var q=g.Z?g.Z.prototype:void 0,pt=q?q.valueOf:void 0;var S=n(6758),D=Object.prototype.hasOwnProperty;var nt=n(8290),z=n(4663),N=n(6565),lt=n(384),Mt="[object Arguments]",yt="[object Array]",Pt="[object Object]",xt=Object.prototype.hasOwnProperty;const $t=function(J,it,mt,gt,Dt,ft){var Et=(0,z.Z)(J),Rt=(0,z.Z)(it),St=Et?yt:(0,nt.Z)(J),At=Rt?yt:(0,nt.Z)(it),Ft=(St=St==Mt?Pt:St)==Pt,Bt=(At=At==Mt?Pt:At)==Pt,bt=St==At;if(bt&&(0,N.Z)(J)){if(!(0,N.Z)(it))return!1;Et=!0,Ft=!1}if(bt&&!Ft)return ft||(ft=new e.Z),Et||(0,lt.Z)(J)?I(J,it,mt,gt,Dt,ft):function(J,it,mt,gt,Dt,ft,Et){switch(mt){case"[object DataView]":if(J.byteLength!=it.byteLength||J.byteOffset!=it.byteOffset)return!1;J=J.buffer,it=it.buffer;case"[object ArrayBuffer]":return!(J.byteLength!=it.byteLength||!ft(new C.Z(J),new C.Z(it)));case"[object Boolean]":case"[object Date]":case"[object Number]":return(0,u.Z)(+J,+it);case"[object Error]":return J.name==it.name&&J.message==it.message;case"[object RegExp]":case"[object String]":return J==it+"";case"[object Map]":var Rt=E;case"[object Set]":if(Rt||(Rt=x),J.size!=it.size&&!(1>))return!1;var At=Et.get(J);if(At)return At==it;gt|=2,Et.set(J,it);var Ft=I(Rt(J),Rt(it),gt,Dt,ft,Et);return Et.delete(J),Ft;case"[object Symbol]":if(pt)return pt.call(J)==pt.call(it)}return!1}(J,it,St,mt,gt,Dt,ft);if(!(1&mt)){var Kt=Ft&&xt.call(J,"__wrapped__"),kt=Bt&&xt.call(it,"__wrapped__");if(Kt||kt){var Ut=Kt?J.value():J,Wt=kt?it.value():it;return ft||(ft=new e.Z),Dt(Ut,Wt,mt,gt,ft)}}return!!bt&&(ft||(ft=new e.Z),function(J,it,mt,gt,Dt,ft){var Et=1&mt,Rt=(0,S.Z)(J),St=Rt.length;if(St!=(0,S.Z)(it).length&&!Et)return!1;for(var Bt=St;Bt--;){var bt=Rt[Bt];if(!(Et?bt in it:D.call(it,bt)))return!1}var Kt=ft.get(J),kt=ft.get(it);if(Kt&&kt)return Kt==it&&kt==J;var Ut=!0;ft.set(J,it),ft.set(it,J);for(var Wt=Et;++Bt<St;){var Ht=J[bt=Rt[Bt]],jt=it[bt];if(gt)var ie=Et?gt(jt,Ht,bt,it,J,ft):gt(Ht,jt,bt,J,it,ft);if(!(void 0===ie?Ht===jt||Dt(Ht,jt,mt,gt,ft):ie)){Ut=!1;break}Wt||(Wt="constructor"==bt)}if(Ut&&!Wt){var qt=J.constructor,te=it.constructor;qt!=te&&"constructor"in J&&"constructor"in it&&!("function"==typeof qt&&qt instanceof qt&&"function"==typeof te&&te instanceof te)&&(Ut=!1)}return ft.delete(J),ft.delete(it),Ut}(J,it,mt,gt,Dt,ft))};var Gt=n(6165);const oe=function Vt(J,it,mt,gt,Dt){return J===it||(null==J||null==it||!(0,Gt.Z)(J)&&!(0,Gt.Z)(it)?J!=J&&it!=it:$t(J,it,mt,gt,Vt,Dt))}},9198:(ot,M,n)=>{n.d(M,{Z:()=>st});var e=n(5504),o=n(5585);var T=n(692);const A=function(F){return F==F&&!(0,T.Z)(F)};var w=n(9096);const U=function(F,q){return function(pt){return null!=pt&&pt[F]===q&&(void 0!==q||F in Object(pt))}},B=function(F){var q=function(F){for(var q=(0,w.Z)(F),pt=q.length;pt--;){var et=q[pt],ct=F[et];q[pt]=[et,ct,A(ct)]}return q}(F);return 1==q.length&&q[0][2]?U(q[0][0],q[0][1]):function(pt){return pt===F||function(F,q,pt,et){var ct=pt.length,S=ct,K=!et;if(null==F)return!S;for(F=Object(F);ct--;){var h=pt[ct];if(K&&h[2]?h[1]!==F[h[0]]:!(h[0]in F))return!1}for(;++ct<S;){var D=(h=pt[ct])[0],v=F[D],m=h[1];if(K&&h[2]){if(void 0===v&&!(D in F))return!1}else{var nt=new e.Z;if(et)var z=et(v,m,D,F,q,nt);if(!(void 0===z?(0,o.Z)(m,v,3,et,nt):z))return!1}}return!0}(pt,F,q)}};var I=n(3283);var u=n(4085),a=n(4300),E=n(1968);const V=function(F,q){return(0,a.Z)(F)&&A(q)?U((0,E.Z)(F),q):function(pt){var et=function(F,q,pt){var et=null==F?void 0:(0,I.Z)(F,q);return void 0===et?pt:et}(pt,F);return void 0===et&&et===q?(0,u.Z)(pt,F):(0,o.Z)(q,et,3)}};var $=n(5042),X=n(4663);const dt=function(F){return(0,a.Z)(F)?function(F){return function(q){return null==q?void 0:q[F]}}((0,E.Z)(F)):function(F){return function(q){return(0,I.Z)(q,F)}}(F)},st=function(F){return"function"==typeof F?F:null==F?$.Z:"object"==typeof F?(0,X.Z)(F)?V(F[0],F[1]):B(F):dt(F)}},2980:(ot,M,n)=>{n.d(M,{Z:()=>y});var e=n(506);const t=(0,n(3596).Z)(Object.keys,Object);var d=Object.prototype.hasOwnProperty;const y=function(A){if(!(0,e.Z)(A))return t(A);var w=[];for(var R in Object(A))d.call(A,R)&&"constructor"!=R&&w.push(R);return w}},2156:(ot,M,n)=>{n.d(M,{Z:()=>o});const o=function(s){return function(t){return s(t)}}},8598:(ot,M,n)=>{n.d(M,{Z:()=>V});var e=n(4663),o=n(4300),s=n(2740);function p($,X){if("function"!=typeof $||null!=X&&"function"!=typeof X)throw new TypeError("Expected a function");var rt=function(){var ut=arguments,Ct=X?X.apply(this,ut):ut[0],vt=rt.cache;if(vt.has(Ct))return vt.get(Ct);var tt=$.apply(this,ut);return rt.cache=vt.set(Ct,tt)||vt,tt};return rt.cache=new(p.Cache||s.Z),rt}p.Cache=s.Z;var w=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,R=/\\(\\)?/g;const P=(X=p(function($){var X=[];return 46===$.charCodeAt(0)&&X.push(""),$.replace(w,function(rt,ut,Ct,vt){X.push(Ct?vt.replace(R,"$1"):ut||rt)}),X},function(ut){return 500===rt.size&&rt.clear(),ut}),rt=X.cache,X);var X,rt,U=n(1908);var I=n(6657),C=U.Z?U.Z.prototype:void 0,u=C?C.toString:void 0;const E=function a($){if("string"==typeof $)return $;if((0,e.Z)($))return function($,X){for(var rt=-1,ut=null==$?0:$.length,Ct=Array(ut);++rt<ut;)Ct[rt]=X($[rt],rt,$);return Ct}($,a)+"";if((0,I.Z)($))return u?u.call($):"";var X=$+"";return"0"==X&&1/$==-1/0?"-0":X},V=function($,X){return(0,e.Z)($)?$:(0,o.Z)($,X)?[$]:P(function($){return null==$?"":E($)}($))}},9129:(ot,M,n)=>{n.d(M,{Z:()=>s});var e=n(4284);const s=function(){try{var t=(0,e.Z)(Object,"defineProperty");return t({},"",{}),t}catch(p){}}()},8492:(ot,M,n)=>{n.d(M,{Z:()=>o});const o="object"==typeof global&&global&&global.Object===Object&&global},6758:(ot,M,n)=>{n.d(M,{Z:()=>p});var e=n(5186),o=n(4239),s=n(9096);const p=function(d){return(0,e.Z)(d,s.Z,o.Z)}},4284:(ot,M,n)=>{n.d(M,{Z:()=>E});var b,e=n(6872),s=n(1886).Z["__core-js_shared__"],p=(b=/[^.]+$/.exec(s&&s.keys&&s.keys.IE_PROTO||""))?"Symbol(src)_1."+b:"";var y=n(692),A=n(6340),R=/^\[object .+?Constructor\]$/,B=RegExp("^"+Function.prototype.toString.call(Object.prototype.hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");const g=function(b){return!(!(0,y.Z)(b)||function(b){return!!p&&p in b}(b))&&((0,e.Z)(b)?B:R).test((0,A.Z)(b))},E=function(b,x){var G=function(b,x){return null==b?void 0:b[x]}(b,x);return g(G)?G:void 0}},1907:(ot,M,n)=>{n.d(M,{Z:()=>s});const s=(0,n(3596).Z)(Object.getPrototypeOf,Object)},4239:(ot,M,n)=>{n.d(M,{Z:()=>y});var s=n(782),p=Object.prototype.propertyIsEnumerable,d=Object.getOwnPropertySymbols;const y=d?function(A){return null==A?[]:(A=Object(A),function(A,w){for(var R=-1,O=null==A?0:A.length,P=0,U=[];++R<O;){var j=A[R];w(j,R,A)&&(U[P++]=j)}return U}(d(A),function(w){return p.call(A,w)}))}:s.Z},8290:(ot,M,n)=>{n.d(M,{Z:()=>V});var e=n(4284),o=n(1886);const t=(0,e.Z)(o.Z,"DataView");var p=n(7320);const T=(0,e.Z)(o.Z,"Promise"),A=(0,e.Z)(o.Z,"Set"),R=(0,e.Z)(o.Z,"WeakMap");var O=n(2733),P=n(6340),U="[object Map]",B="[object Promise]",I="[object Set]",g="[object WeakMap]",C="[object DataView]",u=(0,P.Z)(t),a=(0,P.Z)(p.Z),E=(0,P.Z)(T),b=(0,P.Z)(A),x=(0,P.Z)(R),G=O.Z;(t&&G(new t(new ArrayBuffer(1)))!=C||p.Z&&G(new p.Z)!=U||T&&G(T.resolve())!=B||A&&G(new A)!=I||R&&G(new R)!=g)&&(G=function($){var X=(0,O.Z)($),rt="[object Object]"==X?$.constructor:void 0,ut=rt?(0,P.Z)(rt):"";if(ut)switch(ut){case u:return C;case a:return U;case E:return B;case b:return I;case x:return g}return X});const V=G},6641:(ot,M,n)=>{n.d(M,{Z:()=>t});var o=/^(?:0|[1-9]\d*)$/;const t=function(p,d){var T=typeof p;return!!(d=null==d?9007199254740991:d)&&("number"==T||"symbol"!=T&&o.test(p))&&p>-1&&p%1==0&&p<d}},4300:(ot,M,n)=>{n.d(M,{Z:()=>d});var e=n(4663),o=n(6657),s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,t=/^\w*$/;const d=function(T,y){if((0,e.Z)(T))return!1;var A=typeof T;return!("number"!=A&&"symbol"!=A&&"boolean"!=A&&null!=T&&!(0,o.Z)(T))||t.test(T)||!s.test(T)||null!=y&&T in Object(y)}},506:(ot,M,n)=>{n.d(M,{Z:()=>s});var e=Object.prototype;const s=function(t){var p=t&&t.constructor;return t===("function"==typeof p&&p.prototype||e)}},4434:(ot,M,n)=>{n.d(M,{Z:()=>T});var e=n(8492),o="object"==typeof exports&&exports&&!exports.nodeType&&exports,s=o&&"object"==typeof module&&module&&!module.nodeType&&module,p=s&&s.exports===o&&e.Z.process;const T=function(){try{return s&&s.require&&s.require("util").types||p&&p.binding&&p.binding("util")}catch(A){}}()},3596:(ot,M,n)=>{n.d(M,{Z:()=>o});const o=function(s,t){return function(p){return s(t(p))}}},1886:(ot,M,n)=>{n.d(M,{Z:()=>t});var e=n(8492),o="object"==typeof self&&self&&self.Object===Object&&self;const t=e.Z||o||Function("return this")()},1968:(ot,M,n)=>{n.d(M,{Z:()=>t});var e=n(6657);const t=function(p){if("string"==typeof p||(0,e.Z)(p))return p;var d=p+"";return"0"==d&&1/p==-1/0?"-0":d}},6340:(ot,M,n)=>{n.d(M,{Z:()=>t});var o=Function.prototype.toString;const t=function(p){if(null!=p){try{return o.call(p)}catch(d){}try{return p+""}catch(d){}}return""}},2502:(ot,M,n)=>{n.d(M,{Z:()=>en});var e=n(5504),o=n(2654),s=n(2892),t=n(5026);const d=function(W,_t,zt,Lt){var re=!zt;zt||(zt={});for(var Jt=-1,Yt=_t.length;++Jt<Yt;){var Xt=_t[Jt],ne=Lt?Lt(zt[Xt],W[Xt],Xt,zt,W):void 0;void 0===ne&&(ne=W[Xt]),re?(0,t.Z)(zt,Xt,ne):(0,s.Z)(zt,Xt,ne)}return zt};var T=n(9096);var w=n(7127),R=n(692),O=n(506);var B=Object.prototype.hasOwnProperty;const g=function(W){if(!(0,R.Z)(W))return function(W){var _t=[];if(null!=W)for(var zt in Object(W))_t.push(zt);return _t}(W);var _t=(0,O.Z)(W),zt=[];for(var Lt in W)"constructor"==Lt&&(_t||!B.call(W,Lt))||zt.push(Lt);return zt};var C=n(4969);const a=function(W){return(0,C.Z)(W)?(0,w.Z)(W,!0):g(W)};var x=n(1886),G="object"==typeof exports&&exports&&!exports.nodeType&&exports,V=G&&"object"==typeof module&&module&&!module.nodeType&&module,X=V&&V.exports===G?x.Z.Buffer:void 0,rt=X?X.allocUnsafe:void 0;var dt=n(4239);var F=n(2981),q=n(1907),pt=n(782);const S=Object.getOwnPropertySymbols?function(W){for(var _t=[];W;)(0,F.Z)(_t,(0,dt.Z)(W)),W=(0,q.Z)(W);return _t}:pt.Z;var D=n(6758),v=n(5186);const nt=function(W){return(0,v.Z)(W,a,S)};var z=n(8290),lt=Object.prototype.hasOwnProperty;var yt=n(6053);const wt=function(W){var _t=new W.constructor(W.byteLength);return new yt.Z(_t).set(new yt.Z(W)),_t};var $t=/\w*$/;var oe=n(1908),J=oe.Z?oe.Z.prototype:void 0,it=J?J.valueOf:void 0;const k=function(W,_t,zt){var Lt=W.constructor;switch(_t){case"[object ArrayBuffer]":return wt(W);case"[object Boolean]":case"[object Date]":return new Lt(+W);case"[object DataView]":return function(W,_t){var zt=_t?wt(W.buffer):W.buffer;return new W.constructor(zt,W.byteOffset,W.byteLength)}(W,zt);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return function(W,_t){var zt=_t?wt(W.buffer):W.buffer;return new W.constructor(zt,W.byteOffset,W.length)}(W,zt);case"[object Map]":return new Lt;case"[object Number]":case"[object String]":return new Lt(W);case"[object RegExp]":return function(W){var _t=new W.constructor(W.source,$t.exec(W));return _t.lastIndex=W.lastIndex,_t}(W);case"[object Set]":return new Lt;case"[object Symbol]":return function(W){return it?Object(it.call(W)):{}}(W)}};var H=n(5637);var i=n(4663),_=n(6565),Y=n(6165);var Nt=n(2156),Zt=n(4434),ee=Zt.Z&&Zt.Z.isMap;const fe=ee?(0,Nt.Z)(ee):function(W){return(0,Y.Z)(W)&&"[object Map]"==(0,z.Z)(W)};var de=Zt.Z&&Zt.Z.isSet;const ve=de?(0,Nt.Z)(de):function(W){return(0,Y.Z)(W)&&"[object Set]"==(0,z.Z)(W)};var ue="[object Arguments]",_e="[object Function]",pe="[object Object]",It={};It[ue]=It["[object Array]"]=It["[object ArrayBuffer]"]=It["[object DataView]"]=It["[object Boolean]"]=It["[object Date]"]=It["[object Float32Array]"]=It["[object Float64Array]"]=It["[object Int8Array]"]=It["[object Int16Array]"]=It["[object Int32Array]"]=It["[object Map]"]=It["[object Number]"]=It[pe]=It["[object RegExp]"]=It["[object Set]"]=It["[object String]"]=It["[object Symbol]"]=It["[object Uint8Array]"]=It["[object Uint8ClampedArray]"]=It["[object Uint16Array]"]=It["[object Uint32Array]"]=!0,It["[object Error]"]=It[_e]=It["[object WeakMap]"]=!1;const Je=function he(W,_t,zt,Lt,re,Jt){var Yt,Xt=1&_t,ne=2&_t,nn=4&_t;if(zt&&(Yt=re?zt(W,Lt,re,Jt):zt(W)),void 0!==Yt)return Yt;if(!(0,R.Z)(W))return W;var Re=(0,i.Z)(W);if(Re){if(Yt=function(W){var _t=W.length,zt=new W.constructor(_t);return _t&&"string"==typeof W[0]&<.call(W,"index")&&(zt.index=W.index,zt.input=W.input),zt}(W),!Xt)return function(W,_t){var zt=-1,Lt=W.length;for(_t||(_t=Array(Lt));++zt<Lt;)_t[zt]=W[zt];return _t}(W,Yt)}else{var le=(0,z.Z)(W),Be=le==_e||"[object GeneratorFunction]"==le;if((0,_.Z)(W))return function(W,_t){if(_t)return W.slice();var zt=W.length,Lt=rt?rt(zt):new W.constructor(zt);return W.copy(Lt),Lt}(W,Xt);if(le==pe||le==ue||Be&&!re){if(Yt=ne||Be?{}:function(W){return"function"!=typeof W.constructor||(0,O.Z)(W)?{}:(0,H.Z)((0,q.Z)(W))}(W),!Xt)return ne?function(W,_t){return d(W,S(W),_t)}(W,function(W,_t){return W&&d(_t,a(_t),W)}(Yt,W)):function(W,_t){return d(W,(0,dt.Z)(W),_t)}(W,function(W,_t){return W&&d(_t,(0,T.Z)(_t),W)}(Yt,W))}else{if(!It[le])return re?W:{};Yt=k(W,le,Xt)}}Jt||(Jt=new e.Z);var Le=Jt.get(W);if(Le)return Le;Jt.set(W,Yt),ve(W)?W.forEach(function(se){Yt.add(he(se,_t,zt,se,W,Jt))}):fe(W)&&W.forEach(function(se,ae){Yt.set(ae,he(se,_t,zt,ae,W,Jt))});var we=Re?void 0:(nn?ne?nt:D.Z:ne?a:T.Z)(W);return(0,o.Z)(we||W,function(se,ae){we&&(se=W[ae=se]),(0,s.Z)(Yt,ae,he(se,_t,zt,ae,W,Jt))}),Yt},en=function(W){return Je(W,5)}},9890:(ot,M,n)=>{n.d(M,{Z:()=>o});const o=function(s,t){return s===t||s!=s&&t!=t}},4085:(ot,M,n)=>{n.d(M,{Z:()=>O});const o=function(P,U){return null!=P&&U in Object(P)};var s=n(8598),t=n(7895),p=n(4663),d=n(6641),T=n(6997),y=n(1968);const O=function(P,U){return null!=P&&function(P,U,j){for(var B=-1,I=(U=(0,s.Z)(U,P)).length,g=!1;++B<I;){var C=(0,y.Z)(U[B]);if(!(g=null!=P&&j(P,C)))break;P=P[C]}return g||++B!=I?g:!!(I=null==P?0:P.length)&&(0,T.Z)(I)&&(0,d.Z)(C,I)&&((0,p.Z)(P)||(0,t.Z)(P))}(P,U,o)}},5042:(ot,M,n)=>{n.d(M,{Z:()=>o});const o=function(s){return s}},7895:(ot,M,n)=>{n.d(M,{Z:()=>w});var e=n(2733),o=n(6165);const p=function(R){return(0,o.Z)(R)&&"[object Arguments]"==(0,e.Z)(R)};var d=Object.prototype,T=d.hasOwnProperty,y=d.propertyIsEnumerable;const w=p(function(){return arguments}())?p:function(R){return(0,o.Z)(R)&&T.call(R,"callee")&&!y.call(R,"callee")}},4663:(ot,M,n)=>{n.d(M,{Z:()=>o});const o=Array.isArray},4969:(ot,M,n)=>{n.d(M,{Z:()=>t});var e=n(6872),o=n(6997);const t=function(p){return null!=p&&(0,o.Z)(p.length)&&!(0,e.Z)(p)}},6565:(ot,M,n)=>{n.d(M,{Z:()=>w});var e=n(1886),t="object"==typeof exports&&exports&&!exports.nodeType&&exports,p=t&&"object"==typeof module&&module&&!module.nodeType&&module,T=p&&p.exports===t?e.Z.Buffer:void 0;const w=(T?T.isBuffer:void 0)||function(){return!1}},6015:(ot,M,n)=>{n.d(M,{Z:()=>s});var e=n(5585);const s=function(t,p){return(0,e.Z)(t,p)}},6872:(ot,M,n)=>{n.d(M,{Z:()=>y});var e=n(2733),o=n(692);const y=function(A){if(!(0,o.Z)(A))return!1;var w=(0,e.Z)(A);return"[object Function]"==w||"[object GeneratorFunction]"==w||"[object AsyncFunction]"==w||"[object Proxy]"==w}},6997:(ot,M,n)=>{n.d(M,{Z:()=>s});const s=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},692:(ot,M,n)=>{n.d(M,{Z:()=>o});const o=function(s){var t=typeof s;return null!=s&&("object"==t||"function"==t)}},6165:(ot,M,n)=>{n.d(M,{Z:()=>o});const o=function(s){return null!=s&&"object"==typeof s}},6657:(ot,M,n)=>{n.d(M,{Z:()=>p});var e=n(2733),o=n(6165);const p=function(d){return"symbol"==typeof d||(0,o.Z)(d)&&"[object Symbol]"==(0,e.Z)(d)}},384:(ot,M,n)=>{n.d(M,{Z:()=>Z});var e=n(2733),o=n(6997),s=n(6165),X={};X["[object Float32Array]"]=X["[object Float64Array]"]=X["[object Int8Array]"]=X["[object Int16Array]"]=X["[object Int32Array]"]=X["[object Uint8Array]"]=X["[object Uint8ClampedArray]"]=X["[object Uint16Array]"]=X["[object Uint32Array]"]=!0,X["[object Arguments]"]=X["[object Array]"]=X["[object ArrayBuffer]"]=X["[object Boolean]"]=X["[object DataView]"]=X["[object Date]"]=X["[object Error]"]=X["[object Function]"]=X["[object Map]"]=X["[object Number]"]=X["[object Object]"]=X["[object RegExp]"]=X["[object Set]"]=X["[object String]"]=X["[object WeakMap]"]=!1;var Ct=n(2156),vt=n(4434),tt=vt.Z&&vt.Z.isTypedArray;const Z=tt?(0,Ct.Z)(tt):function(st){return(0,s.Z)(st)&&(0,o.Z)(st.length)&&!!X[(0,e.Z)(st)]}},9096:(ot,M,n)=>{n.d(M,{Z:()=>p});var e=n(7127),o=n(2980),s=n(4969);const p=function(d){return(0,s.Z)(d)?(0,e.Z)(d):(0,o.Z)(d)}},1801:(ot,M,n)=>{n.d(M,{Z:()=>vt});var e=Math.ceil,o=Math.max;var p=n(9890),d=n(4969),T=n(6641),y=n(692);var R=/\s/;var U=/^\s+/;const B=function(tt){return tt&&tt.slice(0,function(tt){for(var dt=tt.length;dt--&&R.test(tt.charAt(dt)););return dt}(tt)+1).replace(U,"")};var I=n(6657),C=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,a=/^0o[0-7]+$/i,E=parseInt;var G=1/0;const X=function(tt){return tt?(tt=function(tt){if("number"==typeof tt)return tt;if((0,I.Z)(tt))return NaN;if((0,y.Z)(tt)){var dt="function"==typeof tt.valueOf?tt.valueOf():tt;tt=(0,y.Z)(dt)?dt+"":dt}if("string"!=typeof tt)return 0===tt?tt:+tt;tt=B(tt);var Z=u.test(tt);return Z||a.test(tt)?E(tt.slice(2),Z?2:8):C.test(tt)?NaN:+tt}(tt))===G||tt===-G?17976931348623157e292*(tt<0?-1:1):tt==tt?tt:0:0===tt?tt:0};const vt=function(dt,Z,st){return st&&"number"!=typeof st&&function(tt,dt,Z){if(!(0,y.Z)(Z))return!1;var st=typeof dt;return!!("number"==st?(0,d.Z)(Z)&&(0,T.Z)(dt,Z.length):"string"==st&&dt in Z)&&(0,p.Z)(Z[dt],tt)}(dt,Z,st)&&(Z=st=void 0),dt=X(dt),void 0===Z?(Z=dt,dt=0):Z=X(Z),function(tt,dt,Z,st){for(var F=-1,q=o(e((dt-tt)/(Z||1)),0),pt=Array(q);q--;)pt[st?q:++F]=tt,tt+=Z;return pt}(dt,Z,st=void 0===st?dt<Z?1:-1:X(st),undefined)}},782:(ot,M,n)=>{n.d(M,{Z:()=>o});const o=function(){return[]}},9459:(ot,M,n)=>{n.d(M,{Z:()=>O});var e=n(2654),o=n(5637),s=n(1016),t=n(9198),p=n(1907),d=n(4663),T=n(6565),y=n(6872),A=n(692),w=n(384);const O=function(P,U,j){var B=(0,d.Z)(P),I=B||(0,T.Z)(P)||(0,w.Z)(P);if(U=(0,t.Z)(U,4),null==j){var g=P&&P.constructor;j=I?B?new g:[]:(0,A.Z)(P)&&(0,y.Z)(g)?(0,o.Z)((0,p.Z)(P)):{}}return(I?e.Z:s.Z)(P,function(C,u,a){return U(j,C,u,a)}),j}},5329:(ot,M,n)=>{n.d(M,{Dz:()=>j,Rt:()=>I});var e=n(4762),o=n(521),s=n(7716),t=n(2729),p=n(6182),d=n(946),T=n(8583),y=n(464);const A=["textEl"];function w(g,C){if(1&g&&s._UZ(0,"i",3),2&g){const u=s.oxw();s.Q6J("nzType",u.nzIcon)}}function R(g,C){if(1&g){const u=s.EpF();s.TgZ(0,"img",4),s.NdJ("error",function(E){return s.CHM(u),s.oxw().imgError(E)}),s.qZA()}if(2&g){const u=s.oxw();s.Q6J("src",u.nzSrc,s.LSH),s.uIk("srcset",u.nzSrcSet,s.LSH)("alt",u.nzAlt)}}function O(g,C){if(1&g&&(s.TgZ(0,"span",5,6),s._uU(2),s.qZA()),2&g){const u=s.oxw();s.Q6J("ngStyle",u.textStyles),s.xp6(2),s.Oqu(u.nzText)}}let j=(()=>{class g{constructor(u,a,E,b){this.nzConfigService=u,this.elementRef=a,this.cdr=E,this.platform=b,this._nzModuleName="avatar",this.nzShape="circle",this.nzSize="default",this.nzGap=4,this.nzError=new s.vpe,this.hasText=!1,this.hasSrc=!0,this.hasIcon=!1,this.textStyles={},this.classMap={},this.customSize=null,this.el=this.elementRef.nativeElement,this.elementRef.nativeElement.classList.add("ant-avatar")}imgError(u){this.nzError.emit(u),u.defaultPrevented||(this.hasSrc=!1,this.hasIcon=!1,this.hasText=!1,this.nzIcon?this.hasIcon=!0:this.nzText&&(this.hasText=!0),this.cdr.detectChanges(),this.setSizeStyle(),this.notifyCalc())}ngOnChanges(){this.hasText=!this.nzSrc&&!!this.nzText,this.hasIcon=!this.nzSrc&&!!this.nzIcon,this.hasSrc=!!this.nzSrc,this.setSizeStyle(),this.notifyCalc()}calcStringSize(){if(!this.hasText)return;const u=this.textEl.nativeElement.offsetWidth,a=this.el.getBoundingClientRect().width,E=2*this.nzGap<a?2*this.nzGap:8;this.textStyles={transform:`scale(${a-E<u?(a-E)/u:1}) translateX(-50%)`},this.customSize&&Object.assign(this.textStyles,{lineHeight:this.customSize}),this.cdr.detectChanges()}notifyCalc(){this.platform.isBrowser&&setTimeout(()=>{this.calcStringSize()})}setSizeStyle(){this.customSize="number"==typeof this.nzSize?`${this.nzSize}px`:null,this.cdr.markForCheck()}}return g.\u0275fac=function(u){return new(u||g)(s.Y36(t.jY),s.Y36(s.SBq),s.Y36(s.sBO),s.Y36(o.t4))},g.\u0275cmp=s.Xpm({type:g,selectors:[["nz-avatar"]],viewQuery:function(u,a){if(1&u&&s.Gf(A,5),2&u){let E;s.iGM(E=s.CRH())&&(a.textEl=E.first)}},hostVars:20,hostBindings:function(u,a){2&u&&(s.Udp("width",a.customSize)("height",a.customSize)("line-height",a.customSize)("font-size",a.hasIcon&&a.customSize?a.nzSize/2:null,"px"),s.ekj("ant-avatar-lg","large"===a.nzSize)("ant-avatar-sm","small"===a.nzSize)("ant-avatar-square","square"===a.nzShape)("ant-avatar-circle","circle"===a.nzShape)("ant-avatar-icon",a.nzIcon)("ant-avatar-image",a.hasSrc))},inputs:{nzShape:"nzShape",nzSize:"nzSize",nzGap:"nzGap",nzText:"nzText",nzSrc:"nzSrc",nzSrcSet:"nzSrcSet",nzAlt:"nzAlt",nzIcon:"nzIcon"},outputs:{nzError:"nzError"},exportAs:["nzAvatar"],features:[s.TTD],decls:3,vars:3,consts:[["nz-icon","",3,"nzType",4,"ngIf"],[3,"src","error",4,"ngIf"],["class","ant-avatar-string",3,"ngStyle",4,"ngIf"],["nz-icon","",3,"nzType"],[3,"src","error"],[1,"ant-avatar-string",3,"ngStyle"],["textEl",""]],template:function(u,a){1&u&&(s.YNc(0,w,1,1,"i",0),s.YNc(1,R,1,3,"img",1),s.YNc(2,O,3,2,"span",2)),2&u&&(s.Q6J("ngIf",a.nzIcon&&a.hasIcon),s.xp6(1),s.Q6J("ngIf",a.nzSrc&&a.hasSrc),s.xp6(1),s.Q6J("ngIf",a.nzText&&a.hasText))},directives:[T.O5,y.Ls,T.PC],encapsulation:2,changeDetection:0}),(0,e.gn)([(0,t.oS)()],g.prototype,"nzShape",void 0),(0,e.gn)([(0,t.oS)()],g.prototype,"nzSize",void 0),(0,e.gn)([(0,t.oS)(),(0,p.Rn)()],g.prototype,"nzGap",void 0),g})(),I=(()=>{class g{}return g.\u0275fac=function(u){return new(u||g)},g.\u0275mod=s.oAB({type:g}),g.\u0275inj=s.cJS({imports:[[d.vT,T.ez,y.PV,o.ud]]}),g})()},4453:(ot,M,n)=>{n.d(M,{ix:()=>g,fY:()=>C,sL:()=>u});var e=n(4762),o=n(946),s=n(7716),t=n(9765),p=n(6782),d=n(9761),T=n(5435),y=n(2729),A=n(6182),w=n(464),R=n(8583),O=n(4514),P=n(9374);const U=["nz-button",""];function j(a,E){1&a&&s._UZ(0,"i",1)}const B=["*"],I="button";let g=(()=>{class a{constructor(b,x,G,V,$){this.elementRef=b,this.cdr=x,this.renderer=G,this.nzConfigService=V,this.directionality=$,this._nzModuleName=I,this.nzBlock=!1,this.nzGhost=!1,this.nzSearch=!1,this.nzLoading=!1,this.nzDanger=!1,this.disabled=!1,this.tabIndex=null,this.nzType=null,this.nzShape=null,this.nzSize="default",this.dir="ltr",this.destroy$=new t.xQ,this.loading$=new t.xQ,this.elementRef.nativeElement.classList.add("ant-btn"),this.nzConfigService.getConfigChangeEventForComponent(I).pipe((0,p.R)(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()})}haltDisabledEvents(b){var x;this.disabled&&"A"===(null===(x=b.target)||void 0===x?void 0:x.tagName)&&(b.preventDefault(),b.stopImmediatePropagation())}insertSpan(b,x){b.forEach(G=>{if("#text"===G.nodeName){const V=x.createElement("span"),$=x.parentNode(G);x.insertBefore($,V,G),x.appendChild(V,G)}})}assertIconOnly(b,x){const G=Array.from(b.childNodes),V=G.filter(ut=>"I"===ut.nodeName).length,$=G.every(ut=>"#text"!==ut.nodeName);G.every(ut=>"SPAN"!==ut.nodeName)&&$&&V>=1&&x.addClass(b,"ant-btn-icon-only")}ngOnInit(){var b;null===(b=this.directionality.change)||void 0===b||b.pipe((0,p.R)(this.destroy$)).subscribe(x=>{this.dir=x,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnChanges(b){const{nzLoading:x}=b;x&&this.loading$.next(this.nzLoading)}ngAfterViewInit(){this.assertIconOnly(this.elementRef.nativeElement,this.renderer),this.insertSpan(this.elementRef.nativeElement.childNodes,this.renderer)}ngAfterContentInit(){this.loading$.pipe((0,d.O)(this.nzLoading),(0,T.h)(()=>!!this.nzIconDirectiveElement),(0,p.R)(this.destroy$)).subscribe(b=>{const x=this.nzIconDirectiveElement.nativeElement;b?this.renderer.setStyle(x,"display","none"):this.renderer.removeStyle(x,"display")})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return a.\u0275fac=function(b){return new(b||a)(s.Y36(s.SBq),s.Y36(s.sBO),s.Y36(s.Qsj),s.Y36(y.jY),s.Y36(o.Is,8))},a.\u0275cmp=s.Xpm({type:a,selectors:[["button","nz-button",""],["a","nz-button",""]],contentQueries:function(b,x,G){if(1&b&&s.Suo(G,w.Ls,5,s.SBq),2&b){let V;s.iGM(V=s.CRH())&&(x.nzIconDirectiveElement=V.first)}},hostVars:30,hostBindings:function(b,x){1&b&&s.NdJ("click",function(V){return x.haltDisabledEvents(V)}),2&b&&(s.uIk("tabindex",x.disabled?-1:null===x.tabIndex?null:x.tabIndex)("disabled",x.disabled||null),s.ekj("ant-btn-primary","primary"===x.nzType)("ant-btn-dashed","dashed"===x.nzType)("ant-btn-link","link"===x.nzType)("ant-btn-text","text"===x.nzType)("ant-btn-circle","circle"===x.nzShape)("ant-btn-round","round"===x.nzShape)("ant-btn-lg","large"===x.nzSize)("ant-btn-sm","small"===x.nzSize)("ant-btn-dangerous",x.nzDanger)("ant-btn-loading",x.nzLoading)("ant-btn-background-ghost",x.nzGhost)("ant-btn-block",x.nzBlock)("ant-input-search-button",x.nzSearch)("ant-btn-rtl","rtl"===x.dir))},inputs:{nzBlock:"nzBlock",nzGhost:"nzGhost",nzSearch:"nzSearch",nzLoading:"nzLoading",nzDanger:"nzDanger",disabled:"disabled",tabIndex:"tabIndex",nzType:"nzType",nzShape:"nzShape",nzSize:"nzSize"},exportAs:["nzButton"],features:[s.TTD],attrs:U,ngContentSelectors:B,decls:2,vars:1,consts:[["nz-icon","","nzType","loading",4,"ngIf"],["nz-icon","","nzType","loading"]],template:function(b,x){1&b&&(s.F$t(),s.YNc(0,j,1,0,"i",0),s.Hsn(1)),2&b&&s.Q6J("ngIf",x.nzLoading)},directives:[R.O5,w.Ls,O.w],encapsulation:2,changeDetection:0}),(0,e.gn)([(0,A.yF)()],a.prototype,"nzBlock",void 0),(0,e.gn)([(0,A.yF)()],a.prototype,"nzGhost",void 0),(0,e.gn)([(0,A.yF)()],a.prototype,"nzSearch",void 0),(0,e.gn)([(0,A.yF)()],a.prototype,"nzLoading",void 0),(0,e.gn)([(0,A.yF)()],a.prototype,"nzDanger",void 0),(0,e.gn)([(0,A.yF)()],a.prototype,"disabled",void 0),(0,e.gn)([(0,y.oS)()],a.prototype,"nzSize",void 0),a})(),C=(()=>{class a{constructor(b,x){this.elementRef=b,this.directionality=x,this.nzSize="default",this.dir="ltr",this.destroy$=new t.xQ,this.elementRef.nativeElement.classList.add("ant-btn-group")}ngOnInit(){var b;this.dir=this.directionality.value,null===(b=this.directionality.change)||void 0===b||b.pipe((0,p.R)(this.destroy$)).subscribe(x=>{this.dir=x})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return a.\u0275fac=function(b){return new(b||a)(s.Y36(s.SBq),s.Y36(o.Is,8))},a.\u0275cmp=s.Xpm({type:a,selectors:[["nz-button-group"]],hostVars:6,hostBindings:function(b,x){2&b&&s.ekj("ant-btn-group-lg","large"===x.nzSize)("ant-btn-group-sm","small"===x.nzSize)("ant-btn-group-rtl","rtl"===x.dir)},inputs:{nzSize:"nzSize"},exportAs:["nzButtonGroup"],ngContentSelectors:B,decls:1,vars:0,template:function(b,x){1&b&&(s.F$t(),s.Hsn(0))},encapsulation:2,changeDetection:0}),a})(),u=(()=>{class a{}return a.\u0275fac=function(b){return new(b||a)},a.\u0275mod=s.oAB({type:a}),a.\u0275inj=s.cJS({imports:[[o.vT,R.ez,P.vG,w.PV,O.a],O.a,P.vG]}),a})()},7018:(ot,M,n)=>{n.d(M,{bd:()=>q,l7:()=>et,vh:()=>ct});var e=n(4762),o=n(7716),s=n(6182),t=n(946),p=n(9765),d=n(6782),T=n(2729),y=n(8583),A=n(8178);function w(S,K){1&S&&o.Hsn(0)}const R=["*"];function O(S,K){if(1&S&&(o.ynx(0),o._uU(1),o.BQk()),2&S){const h=o.oxw(3);o.xp6(1),o.Oqu(h.nzTitle)}}function P(S,K){if(1&S&&(o.TgZ(0,"div",11),o.YNc(1,O,2,1,"ng-container",12),o.qZA()),2&S){const h=o.oxw(2);o.xp6(1),o.Q6J("nzStringTemplateOutlet",h.nzTitle)}}function U(S,K){if(1&S&&(o.ynx(0),o._uU(1),o.BQk()),2&S){const h=o.oxw(3);o.xp6(1),o.Oqu(h.nzExtra)}}function j(S,K){if(1&S&&(o.TgZ(0,"div",13),o.YNc(1,U,2,1,"ng-container",12),o.qZA()),2&S){const h=o.oxw(2);o.xp6(1),o.Q6J("nzStringTemplateOutlet",h.nzExtra)}}function B(S,K){}function I(S,K){if(1&S&&(o.ynx(0),o.YNc(1,B,0,0,"ng-template",14),o.BQk()),2&S){const h=o.oxw(2);o.xp6(1),o.Q6J("ngTemplateOutlet",h.listOfNzCardTabComponent.template)}}function g(S,K){if(1&S&&(o.TgZ(0,"div",6),o.TgZ(1,"div",7),o.YNc(2,P,2,1,"div",8),o.YNc(3,j,2,1,"div",9),o.qZA(),o.YNc(4,I,2,1,"ng-container",10),o.qZA()),2&S){const h=o.oxw();o.xp6(2),o.Q6J("ngIf",h.nzTitle),o.xp6(1),o.Q6J("ngIf",h.nzExtra),o.xp6(1),o.Q6J("ngIf",h.listOfNzCardTabComponent)}}function C(S,K){}function u(S,K){if(1&S&&(o.TgZ(0,"div",15),o.YNc(1,C,0,0,"ng-template",14),o.qZA()),2&S){const h=o.oxw();o.xp6(1),o.Q6J("ngTemplateOutlet",h.nzCover)}}function a(S,K){1&S&&(o.ynx(0),o.Hsn(1),o.BQk())}function E(S,K){1&S&&o._UZ(0,"nz-card-loading")}function b(S,K){}function x(S,K){if(1&S&&(o.TgZ(0,"li"),o.TgZ(1,"span"),o.YNc(2,b,0,0,"ng-template",14),o.qZA(),o.qZA()),2&S){const h=K.$implicit,D=o.oxw(2);o.Udp("width",100/D.nzActions.length,"%"),o.xp6(2),o.Q6J("ngTemplateOutlet",h)}}function G(S,K){if(1&S&&(o.TgZ(0,"ul",16),o.YNc(1,x,3,3,"li",17),o.qZA()),2&S){const h=o.oxw();o.xp6(1),o.Q6J("ngForOf",h.nzActions)}}function V(S,K){1&S&&(o.TgZ(0,"div",4),o._UZ(1,"div",5),o.qZA()),2&S&&o.Q6J("ngClass",K.$implicit)}function $(S,K){if(1&S&&(o.TgZ(0,"div",2),o.YNc(1,V,2,1,"div",3),o.qZA()),2&S){const h=K.$implicit;o.xp6(1),o.Q6J("ngForOf",h)}}function X(S,K){}function rt(S,K){if(1&S&&(o.TgZ(0,"div",2),o.YNc(1,X,0,0,"ng-template",3),o.qZA()),2&S){const h=o.oxw();o.xp6(1),o.Q6J("ngTemplateOutlet",h.nzAvatar)}}function ut(S,K){if(1&S&&(o.ynx(0),o._uU(1),o.BQk()),2&S){const h=o.oxw(3);o.xp6(1),o.Oqu(h.nzTitle)}}function Ct(S,K){if(1&S&&(o.TgZ(0,"div",7),o.YNc(1,ut,2,1,"ng-container",8),o.qZA()),2&S){const h=o.oxw(2);o.xp6(1),o.Q6J("nzStringTemplateOutlet",h.nzTitle)}}function vt(S,K){if(1&S&&(o.ynx(0),o._uU(1),o.BQk()),2&S){const h=o.oxw(3);o.xp6(1),o.Oqu(h.nzDescription)}}function tt(S,K){if(1&S&&(o.TgZ(0,"div",9),o.YNc(1,vt,2,1,"ng-container",8),o.qZA()),2&S){const h=o.oxw(2);o.xp6(1),o.Q6J("nzStringTemplateOutlet",h.nzDescription)}}function dt(S,K){if(1&S&&(o.TgZ(0,"div",4),o.YNc(1,Ct,2,1,"div",5),o.YNc(2,tt,2,1,"div",6),o.qZA()),2&S){const h=o.oxw();o.xp6(1),o.Q6J("ngIf",h.nzTitle),o.xp6(1),o.Q6J("ngIf",h.nzDescription)}}let Z=(()=>{class S{constructor(h){this.elementRef=h,this.nzHoverable=!0,this.elementRef.nativeElement.classList.add("ant-card-grid")}}return S.\u0275fac=function(h){return new(h||S)(o.Y36(o.SBq))},S.\u0275dir=o.lG2({type:S,selectors:[["","nz-card-grid",""]],hostVars:2,hostBindings:function(h,D){2&h&&o.ekj("ant-card-hoverable",D.nzHoverable)},inputs:{nzHoverable:"nzHoverable"},exportAs:["nzCardGrid"]}),(0,e.gn)([(0,s.yF)()],S.prototype,"nzHoverable",void 0),S})(),st=(()=>{class S{}return S.\u0275fac=function(h){return new(h||S)},S.\u0275cmp=o.Xpm({type:S,selectors:[["nz-card-tab"]],viewQuery:function(h,D){if(1&h&&o.Gf(o.Rgc,7),2&h){let v;o.iGM(v=o.CRH())&&(D.template=v.first)}},exportAs:["nzCardTab"],ngContentSelectors:R,decls:1,vars:0,template:function(h,D){1&h&&(o.F$t(),o.YNc(0,w,1,0,"ng-template"))},encapsulation:2,changeDetection:0}),S})();const F="card";let q=(()=>{class S{constructor(h,D,v,m){this.nzConfigService=h,this.cdr=D,this.elementRef=v,this.directionality=m,this._nzModuleName=F,this.nzBordered=!0,this.nzBorderless=!1,this.nzLoading=!1,this.nzHoverable=!1,this.nzBodyStyle=null,this.nzActions=[],this.nzType=null,this.nzSize="default",this.dir="ltr",this.destroy$=new p.xQ,this.elementRef.nativeElement.classList.add("ant-card"),this.nzConfigService.getConfigChangeEventForComponent(F).pipe((0,d.R)(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()})}ngOnInit(){var h;null===(h=this.directionality.change)||void 0===h||h.pipe((0,d.R)(this.destroy$)).subscribe(D=>{this.dir=D,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return S.\u0275fac=function(h){return new(h||S)(o.Y36(T.jY),o.Y36(o.sBO),o.Y36(o.SBq),o.Y36(t.Is,8))},S.\u0275cmp=o.Xpm({type:S,selectors:[["nz-card"]],contentQueries:function(h,D,v){if(1&h&&(o.Suo(v,st,5),o.Suo(v,Z,4)),2&h){let m;o.iGM(m=o.CRH())&&(D.listOfNzCardTabComponent=m.first),o.iGM(m=o.CRH())&&(D.listOfNzCardGridDirective=m)}},hostVars:16,hostBindings:function(h,D){2&h&&o.ekj("ant-card-loading",D.nzLoading)("ant-card-bordered",!1===D.nzBorderless&&D.nzBordered)("ant-card-hoverable",D.nzHoverable)("ant-card-small","small"===D.nzSize)("ant-card-contain-grid",D.listOfNzCardGridDirective&&D.listOfNzCardGridDirective.length)("ant-card-type-inner","inner"===D.nzType)("ant-card-contain-tabs",!!D.listOfNzCardTabComponent)("ant-card-rtl","rtl"===D.dir)},inputs:{nzBordered:"nzBordered",nzBorderless:"nzBorderless",nzLoading:"nzLoading",nzHoverable:"nzHoverable",nzBodyStyle:"nzBodyStyle",nzActions:"nzActions",nzType:"nzType",nzSize:"nzSize",nzCover:"nzCover",nzTitle:"nzTitle",nzExtra:"nzExtra"},exportAs:["nzCard"],ngContentSelectors:R,decls:7,vars:6,consts:[["class","ant-card-head",4,"ngIf"],["class","ant-card-cover",4,"ngIf"],[1,"ant-card-body",3,"ngStyle"],[4,"ngIf","ngIfElse"],["loadingTemplate",""],["class","ant-card-actions",4,"ngIf"],[1,"ant-card-head"],[1,"ant-card-head-wrapper"],["class","ant-card-head-title",4,"ngIf"],["class","ant-card-extra",4,"ngIf"],[4,"ngIf"],[1,"ant-card-head-title"],[4,"nzStringTemplateOutlet"],[1,"ant-card-extra"],[3,"ngTemplateOutlet"],[1,"ant-card-cover"],[1,"ant-card-actions"],[3,"width",4,"ngFor","ngForOf"]],template:function(h,D){if(1&h&&(o.F$t(),o.YNc(0,g,5,3,"div",0),o.YNc(1,u,2,1,"div",1),o.TgZ(2,"div",2),o.YNc(3,a,2,0,"ng-container",3),o.YNc(4,E,1,0,"ng-template",null,4,o.W1O),o.qZA(),o.YNc(6,G,2,1,"ul",5)),2&h){const v=o.MAs(5);o.Q6J("ngIf",D.nzTitle||D.nzExtra||D.listOfNzCardTabComponent),o.xp6(1),o.Q6J("ngIf",D.nzCover),o.xp6(1),o.Q6J("ngStyle",D.nzBodyStyle),o.xp6(1),o.Q6J("ngIf",!D.nzLoading)("ngIfElse",v),o.xp6(3),o.Q6J("ngIf",D.nzActions.length)}},directives:function(){return[y.O5,y.PC,A.f,y.tP,pt,y.sg]},encapsulation:2,changeDetection:0}),(0,e.gn)([(0,T.oS)(),(0,s.yF)()],S.prototype,"nzBordered",void 0),(0,e.gn)([(0,T.oS)(),(0,s.yF)()],S.prototype,"nzBorderless",void 0),(0,e.gn)([(0,s.yF)()],S.prototype,"nzLoading",void 0),(0,e.gn)([(0,T.oS)(),(0,s.yF)()],S.prototype,"nzHoverable",void 0),(0,e.gn)([(0,T.oS)()],S.prototype,"nzSize",void 0),S})(),pt=(()=>{class S{constructor(h){this.elementRef=h,this.listOfLoading=[["ant-col-22"],["ant-col-8","ant-col-15"],["ant-col-6","ant-col-18"],["ant-col-13","ant-col-9"],["ant-col-4","ant-col-3","ant-col-16"],["ant-col-8","ant-col-6","ant-col-8"]],this.elementRef.nativeElement.classList.add("ant-card-loading-content")}}return S.\u0275fac=function(h){return new(h||S)(o.Y36(o.SBq))},S.\u0275cmp=o.Xpm({type:S,selectors:[["nz-card-loading"]],exportAs:["nzCardLoading"],decls:2,vars:1,consts:[[1,"ant-card-loading-content"],["class","ant-row","style","margin-left: -4px; margin-right: -4px;",4,"ngFor","ngForOf"],[1,"ant-row",2,"margin-left","-4px","margin-right","-4px"],["style","padding-left: 4px; padding-right: 4px;",3,"ngClass",4,"ngFor","ngForOf"],[2,"padding-left","4px","padding-right","4px",3,"ngClass"],[1,"ant-card-loading-block"]],template:function(h,D){1&h&&(o.TgZ(0,"div",0),o.YNc(1,$,2,1,"div",1),o.qZA()),2&h&&(o.xp6(1),o.Q6J("ngForOf",D.listOfLoading))},directives:[y.sg,y.mk],encapsulation:2,changeDetection:0}),S})(),et=(()=>{class S{constructor(h){this.elementRef=h,this.nzTitle=null,this.nzDescription=null,this.nzAvatar=null,this.elementRef.nativeElement.classList.add("ant-card-meta")}}return S.\u0275fac=function(h){return new(h||S)(o.Y36(o.SBq))},S.\u0275cmp=o.Xpm({type:S,selectors:[["nz-card-meta"]],inputs:{nzTitle:"nzTitle",nzDescription:"nzDescription",nzAvatar:"nzAvatar"},exportAs:["nzCardMeta"],decls:2,vars:2,consts:[["class","ant-card-meta-avatar",4,"ngIf"],["class","ant-card-meta-detail",4,"ngIf"],[1,"ant-card-meta-avatar"],[3,"ngTemplateOutlet"],[1,"ant-card-meta-detail"],["class","ant-card-meta-title",4,"ngIf"],["class","ant-card-meta-description",4,"ngIf"],[1,"ant-card-meta-title"],[4,"nzStringTemplateOutlet"],[1,"ant-card-meta-description"]],template:function(h,D){1&h&&(o.YNc(0,rt,2,1,"div",0),o.YNc(1,dt,3,2,"div",1)),2&h&&(o.Q6J("ngIf",D.nzAvatar),o.xp6(1),o.Q6J("ngIf",D.nzTitle||D.nzDescription))},directives:[y.O5,y.tP,A.f],encapsulation:2,changeDetection:0}),S})(),ct=(()=>{class S{}return S.\u0275fac=function(h){return new(h||S)},S.\u0275mod=o.oAB({type:S}),S.\u0275inj=o.cJS({imports:[[y.ez,A.T],t.vT]}),S})()},2079:(ot,M,n)=>{n.d(M,{Ie:()=>j,Wr:()=>I});var e=n(4762),o=n(9238),s=n(946),t=n(7716),p=n(665),d=n(9765),T=n(6782),y=n(6182),A=n(8583);const w=["*"],R=["inputElement"],O=["nz-checkbox",""];let U=(()=>{class g{constructor(u,a){this.nzOnChange=new t.vpe,this.checkboxList=[],u.addClass(a.nativeElement,"ant-checkbox-group")}addCheckbox(u){this.checkboxList.push(u)}removeCheckbox(u){this.checkboxList.splice(this.checkboxList.indexOf(u),1)}onChange(){const u=this.checkboxList.filter(a=>a.nzChecked).map(a=>a.nzValue);this.nzOnChange.emit(u)}}return g.\u0275fac=function(u){return new(u||g)(t.Y36(t.Qsj),t.Y36(t.SBq))},g.\u0275cmp=t.Xpm({type:g,selectors:[["nz-checkbox-wrapper"]],outputs:{nzOnChange:"nzOnChange"},exportAs:["nzCheckboxWrapper"],ngContentSelectors:w,decls:1,vars:0,template:function(u,a){1&u&&(t.F$t(),t.Hsn(0))},encapsulation:2,changeDetection:0}),g})(),j=(()=>{class g{constructor(u,a,E,b,x){this.elementRef=u,this.nzCheckboxWrapperComponent=a,this.cdr=E,this.focusMonitor=b,this.directionality=x,this.dir="ltr",this.destroy$=new d.xQ,this.onChange=()=>{},this.onTouched=()=>{},this.nzCheckedChange=new t.vpe,this.nzValue=null,this.nzAutoFocus=!1,this.nzDisabled=!1,this.nzIndeterminate=!1,this.nzChecked=!1,this.nzId=null,this.elementRef.nativeElement.classList.add("ant-checkbox-wrapper")}hostClick(u){u.preventDefault(),this.focus(),this.innerCheckedChange(!this.nzChecked)}innerCheckedChange(u){this.nzDisabled||(this.nzChecked=u,this.onChange(this.nzChecked),this.nzCheckedChange.emit(this.nzChecked),this.nzCheckboxWrapperComponent&&this.nzCheckboxWrapperComponent.onChange())}writeValue(u){this.nzChecked=u,this.cdr.markForCheck()}registerOnChange(u){this.onChange=u}registerOnTouched(u){this.onTouched=u}setDisabledState(u){this.nzDisabled=u,this.cdr.markForCheck()}focus(){this.focusMonitor.focusVia(this.inputElement,"keyboard")}blur(){this.inputElement.nativeElement.blur()}ngOnInit(){var u;this.focusMonitor.monitor(this.elementRef,!0).pipe((0,T.R)(this.destroy$)).subscribe(a=>{a||Promise.resolve().then(()=>this.onTouched())}),this.nzCheckboxWrapperComponent&&this.nzCheckboxWrapperComponent.addCheckbox(this),null===(u=this.directionality.change)||void 0===u||u.pipe((0,T.R)(this.destroy$)).subscribe(a=>{this.dir=a,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngAfterViewInit(){this.nzAutoFocus&&this.focus()}ngOnDestroy(){this.focusMonitor.stopMonitoring(this.elementRef),this.nzCheckboxWrapperComponent&&this.nzCheckboxWrapperComponent.removeCheckbox(this),this.destroy$.next(),this.destroy$.complete()}}return g.\u0275fac=function(u){return new(u||g)(t.Y36(t.SBq),t.Y36(U,8),t.Y36(t.sBO),t.Y36(o.tE),t.Y36(s.Is,8))},g.\u0275cmp=t.Xpm({type:g,selectors:[["","nz-checkbox",""]],viewQuery:function(u,a){if(1&u&&t.Gf(R,7),2&u){let E;t.iGM(E=t.CRH())&&(a.inputElement=E.first)}},hostVars:4,hostBindings:function(u,a){1&u&&t.NdJ("click",function(b){return a.hostClick(b)}),2&u&&t.ekj("ant-checkbox-wrapper-checked",a.nzChecked)("ant-checkbox-rtl","rtl"===a.dir)},inputs:{nzValue:"nzValue",nzAutoFocus:"nzAutoFocus",nzDisabled:"nzDisabled",nzIndeterminate:"nzIndeterminate",nzChecked:"nzChecked",nzId:"nzId"},outputs:{nzCheckedChange:"nzCheckedChange"},exportAs:["nzCheckbox"],features:[t._Bn([{provide:p.JU,useExisting:(0,t.Gpc)(()=>g),multi:!0}])],attrs:O,ngContentSelectors:w,decls:6,vars:11,consts:[[1,"ant-checkbox"],["type","checkbox",1,"ant-checkbox-input",3,"checked","ngModel","disabled","ngModelChange","click"],["inputElement",""],[1,"ant-checkbox-inner"]],template:function(u,a){1&u&&(t.F$t(),t.TgZ(0,"span",0),t.TgZ(1,"input",1,2),t.NdJ("ngModelChange",function(b){return a.innerCheckedChange(b)})("click",function(b){return b.stopPropagation()}),t.qZA(),t._UZ(3,"span",3),t.qZA(),t.TgZ(4,"span"),t.Hsn(5),t.qZA()),2&u&&(t.ekj("ant-checkbox-checked",a.nzChecked&&!a.nzIndeterminate)("ant-checkbox-disabled",a.nzDisabled)("ant-checkbox-indeterminate",a.nzIndeterminate),t.xp6(1),t.Q6J("checked",a.nzChecked)("ngModel",a.nzChecked)("disabled",a.nzDisabled),t.uIk("autofocus",a.nzAutoFocus?"autofocus":null)("id",a.nzId))},directives:[p.Wl,p.JJ,p.On],encapsulation:2,changeDetection:0}),(0,e.gn)([(0,y.yF)()],g.prototype,"nzAutoFocus",void 0),(0,e.gn)([(0,y.yF)()],g.prototype,"nzDisabled",void 0),(0,e.gn)([(0,y.yF)()],g.prototype,"nzIndeterminate",void 0),(0,e.gn)([(0,y.yF)()],g.prototype,"nzChecked",void 0),g})(),I=(()=>{class g{}return g.\u0275fac=function(u){return new(u||g)},g.\u0275mod=t.oAB({type:g}),g.\u0275inj=t.cJS({imports:[[s.vT,A.ez,p.u5,o.rt]]}),g})()},4514:(ot,M,n)=>{n.d(M,{w:()=>s,a:()=>t});var e=n(521),o=n(7716);let s=(()=>{class p{constructor(T,y){this.elementRef=T,this.renderer=y,this.hidden=null,this.renderer.setAttribute(this.elementRef.nativeElement,"hidden","")}setHiddenAttribute(){!0===this.hidden?this.renderer.setAttribute(this.elementRef.nativeElement,"hidden",""):!1===this.hidden||null===this.hidden?this.renderer.removeAttribute(this.elementRef.nativeElement,"hidden"):"string"==typeof this.hidden&&this.renderer.setAttribute(this.elementRef.nativeElement,"hidden",this.hidden)}ngOnChanges(){this.setHiddenAttribute()}ngAfterViewInit(){this.setHiddenAttribute()}}return p.\u0275fac=function(T){return new(T||p)(o.Y36(o.SBq),o.Y36(o.Qsj))},p.\u0275dir=o.lG2({type:p,selectors:[["","nz-button",""],["nz-button-group"],["","nz-icon",""],["","nz-menu-item",""],["","nz-submenu",""],["nz-select-top-control"],["nz-select-placeholder"],["nz-input-group"]],inputs:{hidden:"hidden"},features:[o.TTD]}),p})(),t=(()=>{class p{}return p.\u0275fac=function(T){return new(T||p)},p.\u0275mod=o.oAB({type:p}),p.\u0275inj=o.cJS({imports:[[e.ud]]}),p})()},9374:(ot,M,n)=>{n.d(M,{dQ:()=>y,vG:()=>A});var e=n(521),o=n(7716),s=n(6237);class t{constructor(R,O,P,U){this.triggerElement=R,this.ngZone=O,this.insertExtraNode=P,this.platformId=U,this.waveTransitionDuration=400,this.styleForPseudo=null,this.extraNode=null,this.lastTime=0,this.onClick=j=>{!this.triggerElement||!this.triggerElement.getAttribute||this.triggerElement.getAttribute("disabled")||"INPUT"===j.target.tagName||this.triggerElement.className.indexOf("disabled")>=0||this.fadeOutWave()},this.platform=new e.t4(this.platformId),this.clickHandler=this.onClick.bind(this),this.bindTriggerEvent()}get waveAttributeName(){return this.insertExtraNode?"ant-click-animating":"ant-click-animating-without-extra-node"}bindTriggerEvent(){this.platform.isBrowser&&this.ngZone.runOutsideAngular(()=>{this.removeTriggerEvent(),this.triggerElement&&this.triggerElement.addEventListener("click",this.clickHandler,!0)})}removeTriggerEvent(){this.triggerElement&&this.triggerElement.removeEventListener("click",this.clickHandler,!0)}removeStyleAndExtraNode(){this.styleForPseudo&&document.body.contains(this.styleForPseudo)&&(document.body.removeChild(this.styleForPseudo),this.styleForPseudo=null),this.insertExtraNode&&this.triggerElement.contains(this.extraNode)&&this.triggerElement.removeChild(this.extraNode)}destroy(){this.removeTriggerEvent(),this.removeStyleAndExtraNode()}fadeOutWave(){const R=this.triggerElement,O=this.getWaveColor(R);R.setAttribute(this.waveAttributeName,"true"),!(Date.now()<this.lastTime+this.waveTransitionDuration)&&(this.isValidColor(O)&&(this.styleForPseudo||(this.styleForPseudo=document.createElement("style")),this.styleForPseudo.innerHTML=`\n [ant-click-animating-without-extra-node='true']::after, .ant-click-animating-node {\n --antd-wave-shadow-color: ${O};\n }`,document.body.appendChild(this.styleForPseudo)),this.insertExtraNode&&(this.extraNode||(this.extraNode=document.createElement("div")),this.extraNode.className="ant-click-animating-node",R.appendChild(this.extraNode)),this.lastTime=Date.now(),this.runTimeoutOutsideZone(()=>{R.removeAttribute(this.waveAttributeName),this.removeStyleAndExtraNode()},this.waveTransitionDuration))}isValidColor(R){return!!R&&"#ffffff"!==R&&"rgb(255, 255, 255)"!==R&&this.isNotGrey(R)&&!/rgba\(\d*, \d*, \d*, 0\)/.test(R)&&"transparent"!==R}isNotGrey(R){const O=R.match(/rgba?\((\d*), (\d*), (\d*)(, [\.\d]*)?\)/);return!(O&&O[1]&&O[2]&&O[3]&&O[1]===O[2]&&O[2]===O[3])}getWaveColor(R){const O=getComputedStyle(R);return O.getPropertyValue("border-top-color")||O.getPropertyValue("border-color")||O.getPropertyValue("background-color")}runTimeoutOutsideZone(R,O){this.ngZone.runOutsideAngular(()=>setTimeout(R,O))}}const p={disabled:!1},d=new o.OlP("nz-wave-global-options",{providedIn:"root",factory:function(){return p}});let y=(()=>{class w{constructor(O,P,U,j,B){this.ngZone=O,this.elementRef=P,this.config=U,this.animationType=j,this.platformId=B,this.nzWaveExtraNode=!1,this.waveDisabled=!1,this.waveDisabled=this.isConfigDisabled()}get disabled(){return this.waveDisabled}get rendererRef(){return this.waveRenderer}isConfigDisabled(){let O=!1;return this.config&&"boolean"==typeof this.config.disabled&&(O=this.config.disabled),"NoopAnimations"===this.animationType&&(O=!0),O}ngOnDestroy(){this.waveRenderer&&this.waveRenderer.destroy()}ngOnInit(){this.renderWaveIfEnabled()}renderWaveIfEnabled(){!this.waveDisabled&&this.elementRef.nativeElement&&(this.waveRenderer=new t(this.elementRef.nativeElement,this.ngZone,this.nzWaveExtraNode,this.platformId))}disable(){this.waveDisabled=!0,this.waveRenderer&&(this.waveRenderer.removeTriggerEvent(),this.waveRenderer.removeStyleAndExtraNode())}enable(){this.waveDisabled=this.isConfigDisabled()||!1,this.waveRenderer&&this.waveRenderer.bindTriggerEvent()}}return w.\u0275fac=function(O){return new(O||w)(o.Y36(o.R0b),o.Y36(o.SBq),o.Y36(d,8),o.Y36(s.Qb,8),o.Y36(o.Lbi))},w.\u0275dir=o.lG2({type:w,selectors:[["","nz-wave",""],["button","nz-button","",3,"nzType","link",3,"nzType","text"]],inputs:{nzWaveExtraNode:"nzWaveExtraNode"},exportAs:["nzWave"]}),w})(),A=(()=>{class w{}return w.\u0275fac=function(O){return new(O||w)},w.\u0275mod=o.oAB({type:w}),w.\u0275inj=o.cJS({imports:[[e.ud]]}),w})()},3385:(ot,M,n)=>{n.d(M,{g:()=>A,S:()=>w});var e=n(4762),o=n(6182),s=n(946),t=n(8583),p=n(8178),d=n(7716);function T(R,O){if(1&R&&(d.ynx(0),d._uU(1),d.BQk()),2&R){const P=d.oxw(2);d.xp6(1),d.Oqu(P.nzText)}}function y(R,O){if(1&R&&(d.TgZ(0,"span",1),d.YNc(1,T,2,1,"ng-container",2),d.qZA()),2&R){const P=d.oxw();d.xp6(1),d.Q6J("nzStringTemplateOutlet",P.nzText)}}let A=(()=>{class R{constructor(P){this.elementRef=P,this.nzType="horizontal",this.nzOrientation="center",this.nzDashed=!1,this.nzPlain=!1,this.elementRef.nativeElement.classList.add("ant-divider")}}return R.\u0275fac=function(P){return new(P||R)(d.Y36(d.SBq))},R.\u0275cmp=d.Xpm({type:R,selectors:[["nz-divider"]],hostVars:16,hostBindings:function(P,U){2&P&&d.ekj("ant-divider-horizontal","horizontal"===U.nzType)("ant-divider-vertical","vertical"===U.nzType)("ant-divider-with-text",U.nzText)("ant-divider-plain",U.nzPlain)("ant-divider-with-text-left",U.nzText&&"left"===U.nzOrientation)("ant-divider-with-text-right",U.nzText&&"right"===U.nzOrientation)("ant-divider-with-text-center",U.nzText&&"center"===U.nzOrientation)("ant-divider-dashed",U.nzDashed)},inputs:{nzType:"nzType",nzOrientation:"nzOrientation",nzDashed:"nzDashed",nzPlain:"nzPlain",nzText:"nzText"},exportAs:["nzDivider"],decls:1,vars:1,consts:[["class","ant-divider-inner-text",4,"ngIf"],[1,"ant-divider-inner-text"],[4,"nzStringTemplateOutlet"]],template:function(P,U){1&P&&d.YNc(0,y,2,1,"span",0),2&P&&d.Q6J("ngIf",U.nzText)},directives:[t.O5,p.f],encapsulation:2,changeDetection:0}),(0,e.gn)([(0,o.yF)()],R.prototype,"nzDashed",void 0),(0,e.gn)([(0,o.yF)()],R.prototype,"nzPlain",void 0),R})(),w=(()=>{class R{}return R.\u0275fac=function(P){return new(P||R)},R.\u0275mod=d.oAB({type:R}),R.\u0275inj=d.cJS({imports:[[s.vT,t.ez,p.T]]}),R})()},4401:(ot,M,n)=>{n.d(M,{cm:()=>Z,b1:()=>et,wA:()=>q,RR:()=>pt});var e=n(4762),o=n(6461),s=n(625),t=n(521),p=n(7636),d=n(7716),T=n(9765),y=n(6215),A=n(6682),w=n(2759),R=n(9193),O=n(9112),P=n(6736),U=n(8002),j=n(3190),B=n(5435),I=n(13),g=n(7519),C=n(6782),u=n(6956),a=n(6911),E=n(6182),b=n(946),x=n(8583),G=n(665),V=n(4453),$=n(641),X=n(8178),rt=n(464),ut=n(3730),Ct=n(7070);function vt(K,h){if(1&K){const D=d.EpF();d.TgZ(0,"div",0),d.NdJ("@slideMotion.done",function(m){return d.CHM(D),d.oxw().onAnimationEvent(m)})("mouseenter",function(){return d.CHM(D),d.oxw().setMouseState(!0)})("mouseleave",function(){return d.CHM(D),d.oxw().setMouseState(!1)}),d.Hsn(1),d.qZA()}if(2&K){const D=d.oxw();d.ekj("ant-dropdown-rtl","rtl"===D.dir),d.Q6J("ngClass",D.nzOverlayClassName)("ngStyle",D.nzOverlayStyle)("@slideMotion",void 0)("@.disabled",null==D.noAnimation?null:D.noAnimation.nzNoAnimation)("nzNoAnimation",null==D.noAnimation?null:D.noAnimation.nzNoAnimation)}}const tt=["*"],dt=[a.yW.bottomLeft,a.yW.bottomRight,a.yW.topRight,a.yW.topLeft];let Z=(()=>{class K{constructor(D,v,m,nt,z){this.elementRef=D,this.overlay=v,this.renderer=m,this.viewContainerRef=nt,this.platform=z,this.overlayRef=null,this.destroy$=new T.xQ,this.positionStrategy=this.overlay.position().flexibleConnectedTo(this.elementRef.nativeElement).withLockedPosition().withTransformOriginOn(".ant-dropdown"),this.inputVisible$=new y.X(!1),this.nzTrigger$=new y.X("hover"),this.overlayClose$=new T.xQ,this.nzDropdownMenu=null,this.nzTrigger="hover",this.nzMatchWidthElement=null,this.nzHasBackdrop=!1,this.nzBackdrop=!1,this.nzClickHide=!0,this.nzDisabled=!1,this.nzVisible=!1,this.nzOverlayClassName="",this.nzOverlayStyle={},this.nzPlacement="bottomLeft",this.nzVisibleChange=new d.vpe,this.elementRef.nativeElement.classList.add("ant-dropdown-trigger")}setDropdownMenuValue(D,v){this.nzDropdownMenu&&this.nzDropdownMenu.setValue(D,v)}ngAfterViewInit(){if(this.nzDropdownMenu){const D=this.elementRef.nativeElement,v=(0,A.T)((0,w.R)(D,"mouseenter").pipe((0,P.h)(!0)),(0,w.R)(D,"mouseleave").pipe((0,P.h)(!1))),nt=(0,A.T)(this.nzDropdownMenu.mouseState$,v),z=(0,w.R)(D,"click").pipe((0,U.U)(()=>!this.nzVisible)),N=this.nzTrigger$.pipe((0,j.w)(yt=>"hover"===yt?nt:"click"===yt?z:R.E)),lt=this.nzDropdownMenu.descendantMenuItemClick$.pipe((0,B.h)(()=>this.nzClickHide),(0,P.h)(!1)),ht=(0,A.T)(N,lt,this.overlayClose$).pipe((0,B.h)(()=>!this.nzDisabled)),Mt=(0,A.T)(this.inputVisible$,ht);(0,O.aj)([Mt,this.nzDropdownMenu.isChildSubMenuOpen$]).pipe((0,U.U)(([yt,Pt])=>yt||Pt),(0,I.e)(150),(0,g.x)(),(0,B.h)(()=>this.platform.isBrowser),(0,C.R)(this.destroy$)).subscribe(yt=>{const wt=(this.nzMatchWidthElement?this.nzMatchWidthElement.nativeElement:D).getBoundingClientRect().width;this.nzVisible!==yt&&this.nzVisibleChange.emit(yt),this.nzVisible=yt,yt?(this.overlayRef?this.overlayRef.getConfig().minWidth=wt:(this.overlayRef=this.overlay.create({positionStrategy:this.positionStrategy,minWidth:wt,disposeOnNavigation:!0,hasBackdrop:(this.nzHasBackdrop||this.nzBackdrop)&&"click"===this.nzTrigger,scrollStrategy:this.overlay.scrollStrategies.reposition()}),(0,A.T)(this.overlayRef.backdropClick(),this.overlayRef.detachments(),this.overlayRef.outsidePointerEvents().pipe((0,B.h)(xt=>!this.elementRef.nativeElement.contains(xt.target))),this.overlayRef.keydownEvents().pipe((0,B.h)(xt=>xt.keyCode===o.hY&&!(0,o.Vb)(xt)))).pipe((0,C.R)(this.destroy$)).subscribe(()=>{this.overlayClose$.next(!1)})),this.positionStrategy.withPositions([a.yW[this.nzPlacement],...dt]),(!this.portal||this.portal.templateRef!==this.nzDropdownMenu.templateRef)&&(this.portal=new p.UE(this.nzDropdownMenu.templateRef,this.viewContainerRef)),this.overlayRef.attach(this.portal)):this.overlayRef&&this.overlayRef.detach()}),this.nzDropdownMenu.animationStateChange$.pipe((0,C.R)(this.destroy$)).subscribe(yt=>{"void"===yt.toState&&(this.overlayRef&&this.overlayRef.dispose(),this.overlayRef=null)})}}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete(),this.overlayRef&&(this.overlayRef.dispose(),this.overlayRef=null)}ngOnChanges(D){const{nzVisible:v,nzDisabled:m,nzOverlayClassName:nt,nzOverlayStyle:z,nzTrigger:N,nzHasBackdrop:lt}=D;if(N&&this.nzTrigger$.next(this.nzTrigger),v&&this.inputVisible$.next(this.nzVisible),m){const ht=this.elementRef.nativeElement;this.nzDisabled?(this.renderer.setAttribute(ht,"disabled",""),this.inputVisible$.next(!1)):this.renderer.removeAttribute(ht,"disabled")}nt&&this.setDropdownMenuValue("nzOverlayClassName",this.nzOverlayClassName),z&&this.setDropdownMenuValue("nzOverlayStyle",this.nzOverlayStyle),lt&&(0,u.iX)("`nzHasBackdrop` in dropdown component will be removed in 13.0.0, please use `nzBackdrop` instead.")}}return K.\u0275fac=function(D){return new(D||K)(d.Y36(d.SBq),d.Y36(s.aV),d.Y36(d.Qsj),d.Y36(d.s_b),d.Y36(t.t4))},K.\u0275dir=d.lG2({type:K,selectors:[["","nz-dropdown",""]],inputs:{nzDropdownMenu:"nzDropdownMenu",nzTrigger:"nzTrigger",nzMatchWidthElement:"nzMatchWidthElement",nzHasBackdrop:"nzHasBackdrop",nzBackdrop:"nzBackdrop",nzClickHide:"nzClickHide",nzDisabled:"nzDisabled",nzVisible:"nzVisible",nzOverlayClassName:"nzOverlayClassName",nzOverlayStyle:"nzOverlayStyle",nzPlacement:"nzPlacement"},outputs:{nzVisibleChange:"nzVisibleChange"},exportAs:["nzDropdown"],features:[d.TTD]}),(0,e.gn)([(0,E.yF)()],K.prototype,"nzHasBackdrop",void 0),(0,e.gn)([(0,E.yF)()],K.prototype,"nzBackdrop",void 0),(0,e.gn)([(0,E.yF)()],K.prototype,"nzClickHide",void 0),(0,e.gn)([(0,E.yF)()],K.prototype,"nzDisabled",void 0),(0,e.gn)([(0,E.yF)()],K.prototype,"nzVisible",void 0),K})(),st=(()=>{class K{}return K.\u0275fac=function(D){return new(D||K)},K.\u0275mod=d.oAB({type:K}),K.\u0275inj=d.cJS({}),K})(),q=(()=>{class K{constructor(D,v,m){this.renderer=D,this.nzButtonGroupComponent=v,this.elementRef=m}ngAfterViewInit(){const D=this.renderer.parentNode(this.elementRef.nativeElement);this.nzButtonGroupComponent&&D&&this.renderer.addClass(D,"ant-dropdown-button")}}return K.\u0275fac=function(D){return new(D||K)(d.Y36(d.Qsj),d.Y36(V.fY,9),d.Y36(d.SBq))},K.\u0275dir=d.lG2({type:K,selectors:[["","nz-button","","nz-dropdown",""]]}),K})(),pt=(()=>{class K{constructor(D,v,m,nt,z,N,lt){this.cdr=D,this.elementRef=v,this.renderer=m,this.viewContainerRef=nt,this.nzMenuService=z,this.directionality=N,this.noAnimation=lt,this.mouseState$=new y.X(!1),this.isChildSubMenuOpen$=this.nzMenuService.isChildSubMenuOpen$,this.descendantMenuItemClick$=this.nzMenuService.descendantMenuItemClick$,this.animationStateChange$=new d.vpe,this.nzOverlayClassName="",this.nzOverlayStyle={},this.dir="ltr",this.destroy$=new T.xQ}onAnimationEvent(D){this.animationStateChange$.emit(D)}setMouseState(D){this.mouseState$.next(D)}setValue(D,v){this[D]=v,this.cdr.markForCheck()}ngOnInit(){var D;null===(D=this.directionality.change)||void 0===D||D.pipe((0,C.R)(this.destroy$)).subscribe(v=>{this.dir=v,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngAfterContentInit(){this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement),this.elementRef.nativeElement)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return K.\u0275fac=function(D){return new(D||K)(d.Y36(d.sBO),d.Y36(d.SBq),d.Y36(d.Qsj),d.Y36(d.s_b),d.Y36(ut.hl),d.Y36(b.Is,8),d.Y36($.P,9))},K.\u0275cmp=d.Xpm({type:K,selectors:[["nz-dropdown-menu"]],viewQuery:function(D,v){if(1&D&&d.Gf(d.Rgc,7),2&D){let m;d.iGM(m=d.CRH())&&(v.templateRef=m.first)}},exportAs:["nzDropdownMenu"],features:[d._Bn([ut.hl,{provide:ut.Cc,useValue:!0}])],ngContentSelectors:tt,decls:1,vars:0,consts:[[1,"ant-dropdown",3,"ngClass","ngStyle","nzNoAnimation","mouseenter","mouseleave"]],template:function(D,v){1&D&&(d.F$t(),d.YNc(0,vt,2,7,"ng-template"))},directives:[x.mk,x.PC,$.P],encapsulation:2,data:{animation:[Ct.mF]},changeDetection:0}),K})(),et=(()=>{class K{}return K.\u0275fac=function(D){return new(D||K)},K.\u0275mod=d.oAB({type:K}),K.\u0275inj=d.cJS({imports:[[b.vT,x.ez,s.U8,G.u5,V.sL,ut.ip,rt.PV,$.g,t.ud,a.e4,st,X.T],ut.ip]}),K})();new s.tR({originX:"start",originY:"top"},{overlayX:"start",overlayY:"top"}),new s.tR({originX:"start",originY:"top"},{overlayX:"start",overlayY:"bottom"}),new s.tR({originX:"start",originY:"top"},{overlayX:"end",overlayY:"bottom"}),new s.tR({originX:"start",originY:"top"},{overlayX:"end",overlayY:"top"})},2482:(ot,M,n)=>{n.d(M,{gB:()=>rt,p9:()=>Ct,Xo:()=>dt});var e=n(7636),o=n(7716),s=n(9765),t=n(9761),p=n(6782),d=n(6756),T=n(946),y=n(8583),A=n(8178),w=n(2729);function R(Z,st){1&Z&&o._UZ(0,"nz-empty",6),2&Z&&o.Q6J("nzNotFoundImage","simple")}function O(Z,st){1&Z&&o._UZ(0,"nz-empty",7),2&Z&&o.Q6J("nzNotFoundImage","simple")}function P(Z,st){1&Z&&o._UZ(0,"nz-empty")}function U(Z,st){if(1&Z&&(o.ynx(0,2),o.YNc(1,R,1,1,"nz-empty",3),o.YNc(2,O,1,1,"nz-empty",4),o.YNc(3,P,1,0,"nz-empty",5),o.BQk()),2&Z){const F=o.oxw();o.Q6J("ngSwitch",F.size),o.xp6(1),o.Q6J("ngSwitchCase","normal"),o.xp6(1),o.Q6J("ngSwitchCase","small")}}function j(Z,st){}function B(Z,st){if(1&Z&&o.YNc(0,j,0,0,"ng-template",8),2&Z){const F=o.oxw(2);o.Q6J("cdkPortalOutlet",F.contentPortal)}}function I(Z,st){if(1&Z&&(o.ynx(0),o._uU(1),o.BQk()),2&Z){const F=o.oxw(2);o.xp6(1),o.hij(" ",F.content," ")}}function g(Z,st){if(1&Z&&(o.ynx(0),o.YNc(1,B,1,1,void 0,1),o.YNc(2,I,2,1,"ng-container",1),o.BQk()),2&Z){const F=o.oxw();o.xp6(1),o.Q6J("ngIf","string"!==F.contentType),o.xp6(1),o.Q6J("ngIf","string"===F.contentType)}}function C(Z,st){if(1&Z&&(o.ynx(0),o._UZ(1,"img",5),o.BQk()),2&Z){const F=o.oxw(2);o.xp6(1),o.Q6J("src",F.nzNotFoundImage,o.LSH)("alt",F.isContentString?F.nzNotFoundContent:"empty")}}function u(Z,st){if(1&Z&&(o.ynx(0),o.YNc(1,C,2,2,"ng-container",4),o.BQk()),2&Z){const F=o.oxw();o.xp6(1),o.Q6J("nzStringTemplateOutlet",F.nzNotFoundImage)}}function a(Z,st){1&Z&&o._UZ(0,"nz-empty-default")}function E(Z,st){1&Z&&o._UZ(0,"nz-empty-simple")}function b(Z,st){if(1&Z&&(o.ynx(0),o._uU(1),o.BQk()),2&Z){const F=o.oxw(2);o.xp6(1),o.hij(" ",F.isContentString?F.nzNotFoundContent:F.locale.description," ")}}function x(Z,st){if(1&Z&&(o.TgZ(0,"p",6),o.YNc(1,b,2,1,"ng-container",4),o.qZA()),2&Z){const F=o.oxw();o.xp6(1),o.Q6J("nzStringTemplateOutlet",F.nzNotFoundContent)}}function G(Z,st){if(1&Z&&(o.ynx(0),o._uU(1),o.BQk()),2&Z){const F=o.oxw(2);o.xp6(1),o.hij(" ",F.nzNotFoundFooter," ")}}function V(Z,st){if(1&Z&&(o.TgZ(0,"div",7),o.YNc(1,G,2,1,"ng-container",4),o.qZA()),2&Z){const F=o.oxw();o.xp6(1),o.Q6J("nzStringTemplateOutlet",F.nzNotFoundFooter)}}const $=new o.OlP("nz-empty-component-name");let rt=(()=>{class Z{constructor(F,q,pt,et){this.configService=F,this.viewContainerRef=q,this.cdr=pt,this.injector=et,this.contentType="string",this.size="",this.destroy$=new s.xQ}ngOnChanges(F){F.nzComponentName&&(this.size=function(Z){switch(Z){case"table":case"list":return"normal";case"select":case"tree-select":case"cascader":case"transfer":return"small";default:return""}}(F.nzComponentName.currentValue)),F.specificContent&&!F.specificContent.isFirstChange()&&(this.content=F.specificContent.currentValue,this.renderEmpty())}ngOnInit(){this.subscribeDefaultEmptyContentChange()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}renderEmpty(){const F=this.content;if("string"==typeof F)this.contentType="string";else if(F instanceof o.Rgc){const q={$implicit:this.nzComponentName};this.contentType="template",this.contentPortal=new e.UE(F,this.viewContainerRef,q)}else if(F instanceof o.DyG){const q=o.zs3.create({parent:this.injector,providers:[{provide:$,useValue:this.nzComponentName}]});this.contentType="component",this.contentPortal=new e.C5(F,this.viewContainerRef,q)}else this.contentType="string",this.contentPortal=void 0;this.cdr.detectChanges()}subscribeDefaultEmptyContentChange(){this.configService.getConfigChangeEventForComponent("empty").pipe((0,t.O)(!0),(0,p.R)(this.destroy$)).subscribe(()=>{this.content=this.specificContent||this.getUserDefaultEmptyContent(),this.renderEmpty()})}getUserDefaultEmptyContent(){return(this.configService.getConfigForComponent("empty")||{}).nzDefaultEmptyContent}}return Z.\u0275fac=function(F){return new(F||Z)(o.Y36(w.jY),o.Y36(o.s_b),o.Y36(o.sBO),o.Y36(o.zs3))},Z.\u0275cmp=o.Xpm({type:Z,selectors:[["nz-embed-empty"]],inputs:{nzComponentName:"nzComponentName",specificContent:"specificContent"},exportAs:["nzEmbedEmpty"],features:[o.TTD],decls:2,vars:2,consts:[[3,"ngSwitch",4,"ngIf"],[4,"ngIf"],[3,"ngSwitch"],["class","ant-empty-normal",3,"nzNotFoundImage",4,"ngSwitchCase"],["class","ant-empty-small",3,"nzNotFoundImage",4,"ngSwitchCase"],[4,"ngSwitchDefault"],[1,"ant-empty-normal",3,"nzNotFoundImage"],[1,"ant-empty-small",3,"nzNotFoundImage"],[3,"cdkPortalOutlet"]],template:function(F,q){1&F&&(o.YNc(0,U,4,3,"ng-container",0),o.YNc(1,g,3,2,"ng-container",1)),2&F&&(o.Q6J("ngIf",!q.content&&null!==q.specificContent),o.xp6(1),o.Q6J("ngIf",q.content))},directives:function(){return[y.O5,y.RF,y.n9,y.ED,Ct,e.Pl]},encapsulation:2,changeDetection:0}),Z})();const ut=["default","simple"];let Ct=(()=>{class Z{constructor(F,q){this.i18n=F,this.cdr=q,this.nzNotFoundImage="default",this.isContentString=!1,this.isImageBuildIn=!0,this.destroy$=new s.xQ}ngOnChanges(F){const{nzNotFoundContent:q,nzNotFoundImage:pt}=F;if(q&&(this.isContentString="string"==typeof q.currentValue),pt){const et=pt.currentValue||"default";this.isImageBuildIn=ut.findIndex(ct=>ct===et)>-1}}ngOnInit(){this.i18n.localeChange.pipe((0,p.R)(this.destroy$)).subscribe(()=>{this.locale=this.i18n.getLocaleData("Empty"),this.cdr.markForCheck()})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return Z.\u0275fac=function(F){return new(F||Z)(o.Y36(d.wi),o.Y36(o.sBO))},Z.\u0275cmp=o.Xpm({type:Z,selectors:[["nz-empty"]],hostAttrs:[1,"ant-empty"],inputs:{nzNotFoundImage:"nzNotFoundImage",nzNotFoundContent:"nzNotFoundContent",nzNotFoundFooter:"nzNotFoundFooter"},exportAs:["nzEmpty"],features:[o.TTD],decls:6,vars:5,consts:[[1,"ant-empty-image"],[4,"ngIf"],["class","ant-empty-description",4,"ngIf"],["class","ant-empty-footer",4,"ngIf"],[4,"nzStringTemplateOutlet"],[3,"src","alt"],[1,"ant-empty-description"],[1,"ant-empty-footer"]],template:function(F,q){1&F&&(o.TgZ(0,"div",0),o.YNc(1,u,2,1,"ng-container",1),o.YNc(2,a,1,0,"nz-empty-default",1),o.YNc(3,E,1,0,"nz-empty-simple",1),o.qZA(),o.YNc(4,x,2,1,"p",2),o.YNc(5,V,2,1,"div",3)),2&F&&(o.xp6(1),o.Q6J("ngIf",!q.isImageBuildIn),o.xp6(1),o.Q6J("ngIf",q.isImageBuildIn&&"simple"!==q.nzNotFoundImage),o.xp6(1),o.Q6J("ngIf",q.isImageBuildIn&&"simple"===q.nzNotFoundImage),o.xp6(1),o.Q6J("ngIf",null!==q.nzNotFoundContent),o.xp6(1),o.Q6J("ngIf",q.nzNotFoundFooter))},directives:function(){return[y.O5,A.f,vt,tt]},encapsulation:2,changeDetection:0}),Z})(),vt=(()=>{class Z{}return Z.\u0275fac=function(F){return new(F||Z)},Z.\u0275cmp=o.Xpm({type:Z,selectors:[["nz-empty-default"]],exportAs:["nzEmptyDefault"],decls:12,vars:0,consts:[["width","184","height","152","viewBox","0 0 184 152","xmlns","http://www.w3.org/2000/svg",1,"ant-empty-img-default"],["fill","none","fill-rule","evenodd"],["transform","translate(24 31.67)"],["cx","67.797","cy","106.89","rx","67.797","ry","12.668",1,"ant-empty-img-default-ellipse"],["d","M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z",1,"ant-empty-img-default-path-1"],["d","M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z","transform","translate(13.56)",1,"ant-empty-img-default-path-2"],["d","M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z",1,"ant-empty-img-default-path-3"],["d","M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z",1,"ant-empty-img-default-path-4"],["d","M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z",1,"ant-empty-img-default-path-5"],["transform","translate(149.65 15.383)",1,"ant-empty-img-default-g"],["cx","20.654","cy","3.167","rx","2.849","ry","2.815"],["d","M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"]],template:function(F,q){1&F&&(o.O4$(),o.TgZ(0,"svg",0),o.TgZ(1,"g",1),o.TgZ(2,"g",2),o._UZ(3,"ellipse",3),o._UZ(4,"path",4),o._UZ(5,"path",5),o._UZ(6,"path",6),o._UZ(7,"path",7),o.qZA(),o._UZ(8,"path",8),o.TgZ(9,"g",9),o._UZ(10,"ellipse",10),o._UZ(11,"path",11),o.qZA(),o.qZA(),o.qZA())},encapsulation:2,changeDetection:0}),Z})(),tt=(()=>{class Z{}return Z.\u0275fac=function(F){return new(F||Z)},Z.\u0275cmp=o.Xpm({type:Z,selectors:[["nz-empty-simple"]],exportAs:["nzEmptySimple"],decls:6,vars:0,consts:[["width","64","height","41","viewBox","0 0 64 41","xmlns","http://www.w3.org/2000/svg",1,"ant-empty-img-simple"],["transform","translate(0 1)","fill","none","fill-rule","evenodd"],["cx","32","cy","33","rx","32","ry","7",1,"ant-empty-img-simple-ellipse"],["fill-rule","nonzero",1,"ant-empty-img-simple-g"],["d","M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"],["d","M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",1,"ant-empty-img-simple-path"]],template:function(F,q){1&F&&(o.O4$(),o.TgZ(0,"svg",0),o.TgZ(1,"g",1),o._UZ(2,"ellipse",2),o.TgZ(3,"g",3),o._UZ(4,"path",4),o._UZ(5,"path",5),o.qZA(),o.qZA(),o.qZA())},encapsulation:2,changeDetection:0}),Z})(),dt=(()=>{class Z{}return Z.\u0275fac=function(F){return new(F||Z)},Z.\u0275mod=o.oAB({type:Z}),Z.\u0275inj=o.cJS({imports:[[T.vT,y.ez,e.eL,A.T,d.YI]]}),Z})()},5887:(ot,M,n)=>{n.d(M,{Fd:()=>q,Lr:()=>st,Nx:()=>tt,iK:()=>et,U5:()=>K,EF:()=>S});var e=n(946),o=n(5072),s=n(521),t=n(8583),p=n(8178),d=n(6704),T=n(464),y=n(7420),A=n(665),w=n(9765),R=n(5319),O=n(6782),P=n(5435),U=n(8002),j=n(8307),B=n(9761),I=n(7070),g=n(6182),C=n(4762),u=n(2729),a=n(7716),E=n(6756);const b=["*"];function x(h,D){if(1&h&&a._UZ(0,"i",6),2&h){const v=a.oxw();a.Q6J("nzType",v.iconType)}}function G(h,D){if(1&h&&(a.ynx(0),a._uU(1),a.BQk()),2&h){const v=a.oxw(2);a.xp6(1),a.Oqu(v.innerTip)}}const V=function(h){return["ant-form-item-explain",h]},$=function(h){return{$implicit:h}};function X(h,D){if(1&h&&(a.TgZ(0,"div",7),a.TgZ(1,"div"),a.YNc(2,G,2,1,"ng-container",8),a.qZA(),a.qZA()),2&h){const v=a.oxw();a.Q6J("ngClass",a.VKq(4,V,"ant-form-item-explain-"+v.status)),a.xp6(1),a.Q6J("@helpMotion",void 0),a.xp6(1),a.Q6J("nzStringTemplateOutlet",v.innerTip)("nzStringTemplateOutletContext",a.VKq(6,$,v.validateControl))}}function rt(h,D){if(1&h&&(a.ynx(0),a._uU(1),a.BQk()),2&h){const v=a.oxw(2);a.xp6(1),a.Oqu(v.nzExtra)}}function ut(h,D){if(1&h&&(a.TgZ(0,"div",9),a.YNc(1,rt,2,1,"ng-container",10),a.qZA()),2&h){const v=a.oxw();a.xp6(1),a.Q6J("nzStringTemplateOutlet",v.nzExtra)}}function Ct(h,D){if(1&h&&(a.ynx(0),a._UZ(1,"i",3),a.BQk()),2&h){const v=D.$implicit,m=a.oxw(2);a.xp6(1),a.Q6J("nzType",v)("nzTheme",m.tooltipIcon.theme)}}function vt(h,D){if(1&h&&(a.TgZ(0,"span",1),a.YNc(1,Ct,2,2,"ng-container",2),a.qZA()),2&h){const v=a.oxw();a.Q6J("nzTooltipTitle",v.nzTooltipTitle),a.xp6(1),a.Q6J("nzStringTemplateOutlet",v.tooltipIcon.type)}}let tt=(()=>{class h{constructor(v,m,nt){this.cdr=nt,this.status=null,this.hasFeedback=!1,this.withHelpClass=!1,this.destroy$=new w.xQ,m.addClass(v.nativeElement,"ant-form-item")}setWithHelpViaTips(v){this.withHelpClass=v,this.cdr.markForCheck()}setStatus(v){this.status=v,this.cdr.markForCheck()}setHasFeedback(v){this.hasFeedback=v,this.cdr.markForCheck()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return h.\u0275fac=function(v){return new(v||h)(a.Y36(a.SBq),a.Y36(a.Qsj),a.Y36(a.sBO))},h.\u0275cmp=a.Xpm({type:h,selectors:[["nz-form-item"]],hostVars:12,hostBindings:function(v,m){2&v&&a.ekj("ant-form-item-has-success","success"===m.status)("ant-form-item-has-warning","warning"===m.status)("ant-form-item-has-error","error"===m.status)("ant-form-item-is-validating","validating"===m.status)("ant-form-item-has-feedback",m.hasFeedback&&m.status)("ant-form-item-with-help",m.withHelpClass)},exportAs:["nzFormItem"],ngContentSelectors:b,decls:1,vars:0,template:function(v,m){1&v&&(a.F$t(),a.Hsn(0))},encapsulation:2,changeDetection:0}),h})();const Z={type:"question-circle",theme:"outline"};let st=(()=>{class h{constructor(v,m,nt,z){var N;this.nzConfigService=v,this.renderer=nt,this.directionality=z,this._nzModuleName="form",this.nzLayout="horizontal",this.nzNoColon=!1,this.nzAutoTips={},this.nzDisableAutoTips=!1,this.nzTooltipIcon=Z,this.dir="ltr",this.destroy$=new w.xQ,this.inputChanges$=new w.xQ,this.renderer.addClass(m.nativeElement,"ant-form"),this.dir=this.directionality.value,null===(N=this.directionality.change)||void 0===N||N.pipe((0,O.R)(this.destroy$)).subscribe(lt=>{this.dir=lt})}getInputObservable(v){return this.inputChanges$.pipe((0,P.h)(m=>v in m),(0,U.U)(m=>m[v]))}ngOnChanges(v){this.inputChanges$.next(v)}ngOnDestroy(){this.inputChanges$.complete(),this.destroy$.next(),this.destroy$.complete()}}return h.\u0275fac=function(v){return new(v||h)(a.Y36(u.jY),a.Y36(a.SBq),a.Y36(a.Qsj),a.Y36(e.Is,8))},h.\u0275dir=a.lG2({type:h,selectors:[["","nz-form",""]],hostVars:8,hostBindings:function(v,m){2&v&&a.ekj("ant-form-horizontal","horizontal"===m.nzLayout)("ant-form-vertical","vertical"===m.nzLayout)("ant-form-inline","inline"===m.nzLayout)("ant-form-rtl","rtl"===m.dir)},inputs:{nzLayout:"nzLayout",nzNoColon:"nzNoColon",nzAutoTips:"nzAutoTips",nzDisableAutoTips:"nzDisableAutoTips",nzTooltipIcon:"nzTooltipIcon"},exportAs:["nzForm"],features:[a.TTD]}),(0,C.gn)([(0,u.oS)(),(0,g.yF)()],h.prototype,"nzNoColon",void 0),(0,C.gn)([(0,u.oS)()],h.prototype,"nzAutoTips",void 0),(0,C.gn)([(0,g.yF)()],h.prototype,"nzDisableAutoTips",void 0),(0,C.gn)([(0,u.oS)()],h.prototype,"nzTooltipIcon",void 0),h})();const F={error:"close-circle-fill",validating:"loading",success:"check-circle-fill",warning:"exclamation-circle-fill"};let q=(()=>{class h{constructor(v,m,nt,z,N,lt){var ht,Mt;this.nzFormItemComponent=m,this.cdr=nt,this.nzFormDirective=lt,this._hasFeedback=!1,this.validateChanges=R.w.EMPTY,this.validateString=null,this.destroyed$=new w.xQ,this.status=null,this.validateControl=null,this.iconType=null,this.innerTip=null,this.nzAutoTips={},this.nzDisableAutoTips="default",z.addClass(v.nativeElement,"ant-form-item-control"),this.subscribeAutoTips(N.localeChange.pipe((0,j.b)(yt=>this.localeId=yt.locale))),this.subscribeAutoTips(null===(ht=this.nzFormDirective)||void 0===ht?void 0:ht.getInputObservable("nzAutoTips")),this.subscribeAutoTips(null===(Mt=this.nzFormDirective)||void 0===Mt?void 0:Mt.getInputObservable("nzDisableAutoTips").pipe((0,P.h)(()=>"default"===this.nzDisableAutoTips)))}get disableAutoTips(){var v;return"default"!==this.nzDisableAutoTips?(0,g.sw)(this.nzDisableAutoTips):null===(v=this.nzFormDirective)||void 0===v?void 0:v.nzDisableAutoTips}set nzHasFeedback(v){this._hasFeedback=(0,g.sw)(v),this.nzFormItemComponent&&this.nzFormItemComponent.setHasFeedback(this._hasFeedback)}get nzHasFeedback(){return this._hasFeedback}set nzValidateStatus(v){v instanceof A.TO||v instanceof A.On?(this.validateControl=v,this.validateString=null,this.watchControl()):v instanceof A.u?(this.validateControl=v.control,this.validateString=null,this.watchControl()):(this.validateString=v,this.validateControl=null,this.setStatus())}watchControl(){this.validateChanges.unsubscribe(),this.validateControl&&this.validateControl.statusChanges&&(this.validateChanges=this.validateControl.statusChanges.pipe((0,B.O)(null),(0,O.R)(this.destroyed$)).subscribe(v=>{this.disableAutoTips||this.updateAutoErrorTip(),this.setStatus(),this.cdr.markForCheck()}))}setStatus(){this.status=this.getControlStatus(this.validateString),this.iconType=this.status?F[this.status]:null,this.innerTip=this.getInnerTip(this.status),this.nzFormItemComponent&&(this.nzFormItemComponent.setWithHelpViaTips(!!this.innerTip),this.nzFormItemComponent.setStatus(this.status))}getControlStatus(v){let m;return m="warning"===v||this.validateControlStatus("INVALID","warning")?"warning":"error"===v||this.validateControlStatus("INVALID")?"error":"validating"===v||"pending"===v||this.validateControlStatus("PENDING")?"validating":"success"===v||this.validateControlStatus("VALID")?"success":null,m}validateControlStatus(v,m){if(this.validateControl){const{dirty:nt,touched:z,status:N}=this.validateControl;return(!!nt||!!z)&&(m?this.validateControl.hasError(m):N===v)}return!1}getInnerTip(v){switch(v){case"error":return!this.disableAutoTips&&this.autoErrorTip||this.nzErrorTip||null;case"validating":return this.nzValidatingTip||null;case"success":return this.nzSuccessTip||null;case"warning":return this.nzWarningTip||null;default:return null}}updateAutoErrorTip(){var v,m,nt,z,N,lt,ht,Mt,yt,Pt,wt,xt,Qt;if(this.validateControl){const $t=this.validateControl.errors||{};let Gt="";for(const Vt in $t)if($t.hasOwnProperty(Vt)&&(Gt=null!==(wt=null!==(ht=null!==(N=null!==(m=null===(v=$t[Vt])||void 0===v?void 0:v[this.localeId])&&void 0!==m?m:null===(z=null===(nt=this.nzAutoTips)||void 0===nt?void 0:nt[this.localeId])||void 0===z?void 0:z[Vt])&&void 0!==N?N:null===(lt=this.nzAutoTips.default)||void 0===lt?void 0:lt[Vt])&&void 0!==ht?ht:null===(Pt=null===(yt=null===(Mt=this.nzFormDirective)||void 0===Mt?void 0:Mt.nzAutoTips)||void 0===yt?void 0:yt[this.localeId])||void 0===Pt?void 0:Pt[Vt])&&void 0!==wt?wt:null===(Qt=null===(xt=this.nzFormDirective)||void 0===xt?void 0:xt.nzAutoTips.default)||void 0===Qt?void 0:Qt[Vt]),Gt)break;this.autoErrorTip=Gt}}subscribeAutoTips(v){null==v||v.pipe((0,O.R)(this.destroyed$)).subscribe(()=>{this.disableAutoTips||(this.updateAutoErrorTip(),this.setStatus(),this.cdr.markForCheck())})}ngOnChanges(v){const{nzDisableAutoTips:m,nzAutoTips:nt,nzSuccessTip:z,nzWarningTip:N,nzErrorTip:lt,nzValidatingTip:ht}=v;m||nt?(this.updateAutoErrorTip(),this.setStatus()):(z||N||lt||ht)&&this.setStatus()}ngOnInit(){this.setStatus()}ngOnDestroy(){this.destroyed$.next(),this.destroyed$.complete()}ngAfterContentInit(){!this.validateControl&&!this.validateString&&(this.nzValidateStatus=this.defaultValidateControl instanceof A.oH?this.defaultValidateControl.control:this.defaultValidateControl)}}return h.\u0275fac=function(v){return new(v||h)(a.Y36(a.SBq),a.Y36(tt,9),a.Y36(a.sBO),a.Y36(a.Qsj),a.Y36(E.wi),a.Y36(st,8))},h.\u0275cmp=a.Xpm({type:h,selectors:[["nz-form-control"]],contentQueries:function(v,m,nt){if(1&v&&a.Suo(nt,A.a5,5),2&v){let z;a.iGM(z=a.CRH())&&(m.defaultValidateControl=z.first)}},inputs:{nzAutoTips:"nzAutoTips",nzDisableAutoTips:"nzDisableAutoTips",nzHasFeedback:"nzHasFeedback",nzValidateStatus:"nzValidateStatus",nzSuccessTip:"nzSuccessTip",nzWarningTip:"nzWarningTip",nzErrorTip:"nzErrorTip",nzValidatingTip:"nzValidatingTip",nzExtra:"nzExtra"},exportAs:["nzFormControl"],features:[a.TTD],ngContentSelectors:b,decls:7,vars:3,consts:[[1,"ant-form-item-control-input"],[1,"ant-form-item-control-input-content"],[1,"ant-form-item-children-icon"],["nz-icon","",3,"nzType",4,"ngIf"],[3,"ngClass",4,"ngIf"],["class","ant-form-item-extra",4,"ngIf"],["nz-icon","",3,"nzType"],[3,"ngClass"],[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"],[1,"ant-form-item-extra"],[4,"nzStringTemplateOutlet"]],template:function(v,m){1&v&&(a.F$t(),a.TgZ(0,"div",0),a.TgZ(1,"div",1),a.Hsn(2),a.qZA(),a.TgZ(3,"span",2),a.YNc(4,x,1,1,"i",3),a.qZA(),a.qZA(),a.YNc(5,X,3,8,"div",4),a.YNc(6,ut,2,1,"div",5)),2&v&&(a.xp6(4),a.Q6J("ngIf",m.nzHasFeedback&&m.iconType),a.xp6(1),a.Q6J("ngIf",m.innerTip),a.xp6(1),a.Q6J("ngIf",m.nzExtra))},directives:[t.O5,T.Ls,t.mk,p.f],encapsulation:2,data:{animation:[I.c8]},changeDetection:0}),h})();function pt(h){const D="string"==typeof h?{type:h}:h;return Object.assign(Object.assign({},Z),D)}let et=(()=>{class h{constructor(v,m,nt,z){this.cdr=nt,this.nzFormDirective=z,this.nzRequired=!1,this.noColon="default",this._tooltipIcon="default",this.destroy$=new w.xQ,m.addClass(v.nativeElement,"ant-form-item-label"),this.nzFormDirective&&(this.nzFormDirective.getInputObservable("nzNoColon").pipe((0,P.h)(()=>"default"===this.noColon),(0,O.R)(this.destroy$)).subscribe(()=>this.cdr.markForCheck()),this.nzFormDirective.getInputObservable("nzTooltipIcon").pipe((0,P.h)(()=>"default"===this._tooltipIcon),(0,O.R)(this.destroy$)).subscribe(()=>this.cdr.markForCheck()))}set nzNoColon(v){this.noColon=(0,g.sw)(v)}get nzNoColon(){var v;return"default"!==this.noColon?this.noColon:null===(v=this.nzFormDirective)||void 0===v?void 0:v.nzNoColon}set nzTooltipIcon(v){this._tooltipIcon=pt(v)}get tooltipIcon(){var v;return"default"!==this._tooltipIcon?this._tooltipIcon:pt((null===(v=this.nzFormDirective)||void 0===v?void 0:v.nzTooltipIcon)||Z)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return h.\u0275fac=function(v){return new(v||h)(a.Y36(a.SBq),a.Y36(a.Qsj),a.Y36(a.sBO),a.Y36(st,12))},h.\u0275cmp=a.Xpm({type:h,selectors:[["nz-form-label"]],inputs:{nzRequired:"nzRequired",nzNoColon:"nzNoColon",nzTooltipIcon:"nzTooltipIcon",nzFor:"nzFor",nzTooltipTitle:"nzTooltipTitle"},exportAs:["nzFormLabel"],ngContentSelectors:b,decls:3,vars:6,consts:[["class","ant-form-item-tooltip","nz-tooltip","",3,"nzTooltipTitle",4,"ngIf"],["nz-tooltip","",1,"ant-form-item-tooltip",3,"nzTooltipTitle"],[4,"nzStringTemplateOutlet"],["nz-icon","",3,"nzType","nzTheme"]],template:function(v,m){1&v&&(a.F$t(),a.TgZ(0,"label"),a.Hsn(1),a.YNc(2,vt,2,2,"span",0),a.qZA()),2&v&&(a.ekj("ant-form-item-no-colon",m.nzNoColon)("ant-form-item-required",m.nzRequired),a.uIk("for",m.nzFor),a.xp6(2),a.Q6J("ngIf",m.nzTooltipTitle))},directives:[t.O5,y.SY,p.f,T.Ls],encapsulation:2,changeDetection:0}),(0,C.gn)([(0,g.yF)()],h.prototype,"nzRequired",void 0),h})(),S=(()=>{class h{constructor(v,m){this.elementRef=v,this.renderer=m,this.renderer.addClass(this.elementRef.nativeElement,"ant-form-text")}}return h.\u0275fac=function(v){return new(v||h)(a.Y36(a.SBq),a.Y36(a.Qsj))},h.\u0275cmp=a.Xpm({type:h,selectors:[["nz-form-text"]],exportAs:["nzFormText"],ngContentSelectors:b,decls:1,vars:0,template:function(v,m){1&v&&(a.F$t(),a.Hsn(0))},encapsulation:2,changeDetection:0}),h})(),K=(()=>{class h{}return h.\u0275fac=function(v){return new(v||h)},h.\u0275mod=a.oAB({type:h}),h.\u0275inj=a.cJS({imports:[[e.vT,t.ez,d.Jb,T.PV,y.cg,o.xu,s.ud,p.T],d.Jb]}),h})()},6704:(ot,M,n)=>{n.d(M,{t3:()=>O,Jb:()=>P,SK:()=>R});var e=n(946),o=n(5072),s=n(521),t=n(226),p=n(9765),d=n(6782),T=n(4226),y=n(6182),A=n(8583),w=n(7716);let R=(()=>{class U{constructor(B,I,g,C,u,a,E){this.elementRef=B,this.renderer=I,this.mediaMatcher=g,this.ngZone=C,this.platform=u,this.breakpointService=a,this.directionality=E,this.nzAlign=null,this.nzJustify=null,this.nzGutter=null,this.actualGutter$=new t.t(1),this.dir="ltr",this.destroy$=new p.xQ,this.elementRef.nativeElement.classList.add("ant-row")}getGutter(){const B=[null,null],I=this.nzGutter||0;return(Array.isArray(I)?I:[I,null]).forEach((C,u)=>{"object"==typeof C&&null!==C?(B[u]=null,Object.keys(T.WV).map(a=>{const E=a;this.mediaMatcher.matchMedia(T.WV[E]).matches&&C[E]&&(B[u]=C[E])})):B[u]=Number(C)||null}),B}setGutterStyle(){const[B,I]=this.getGutter();this.actualGutter$.next([B,I]);const g=(C,u)=>{null!==u&&this.renderer.setStyle(this.elementRef.nativeElement,C,`-${u/2}px`)};g("margin-left",B),g("margin-right",B),g("margin-top",I),g("margin-bottom",I)}ngOnInit(){var B;this.dir=this.directionality.value,null===(B=this.directionality.change)||void 0===B||B.pipe((0,d.R)(this.destroy$)).subscribe(I=>{this.dir=I}),this.setGutterStyle()}ngOnChanges(B){B.nzGutter&&this.setGutterStyle()}ngAfterViewInit(){this.platform.isBrowser&&this.breakpointService.subscribe(T.WV).pipe((0,d.R)(this.destroy$)).subscribe(()=>{this.setGutterStyle()})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return U.\u0275fac=function(B){return new(B||U)(w.Y36(w.SBq),w.Y36(w.Qsj),w.Y36(o.vx),w.Y36(w.R0b),w.Y36(s.t4),w.Y36(T.r3),w.Y36(e.Is,8))},U.\u0275dir=w.lG2({type:U,selectors:[["","nz-row",""],["nz-row"],["nz-form-item"]],hostVars:18,hostBindings:function(B,I){2&B&&w.ekj("ant-row-top","top"===I.nzAlign)("ant-row-middle","middle"===I.nzAlign)("ant-row-bottom","bottom"===I.nzAlign)("ant-row-start","start"===I.nzJustify)("ant-row-end","end"===I.nzJustify)("ant-row-center","center"===I.nzJustify)("ant-row-space-around","space-around"===I.nzJustify)("ant-row-space-between","space-between"===I.nzJustify)("ant-row-rtl","rtl"===I.dir)},inputs:{nzAlign:"nzAlign",nzJustify:"nzJustify",nzGutter:"nzGutter"},exportAs:["nzRow"],features:[w.TTD]}),U})(),O=(()=>{class U{constructor(B,I,g,C){this.elementRef=B,this.nzRowDirective=I,this.renderer=g,this.directionality=C,this.classMap={},this.destroy$=new p.xQ,this.hostFlexStyle=null,this.dir="ltr",this.nzFlex=null,this.nzSpan=null,this.nzOrder=null,this.nzOffset=null,this.nzPush=null,this.nzPull=null,this.nzXs=null,this.nzSm=null,this.nzMd=null,this.nzLg=null,this.nzXl=null,this.nzXXl=null}setHostClassMap(){const B=Object.assign({"ant-col":!0,[`ant-col-${this.nzSpan}`]:(0,y.DX)(this.nzSpan),[`ant-col-order-${this.nzOrder}`]:(0,y.DX)(this.nzOrder),[`ant-col-offset-${this.nzOffset}`]:(0,y.DX)(this.nzOffset),[`ant-col-pull-${this.nzPull}`]:(0,y.DX)(this.nzPull),[`ant-col-push-${this.nzPush}`]:(0,y.DX)(this.nzPush),"ant-col-rtl":"rtl"===this.dir},this.generateClass());for(const I in this.classMap)this.classMap.hasOwnProperty(I)&&this.renderer.removeClass(this.elementRef.nativeElement,I);this.classMap=Object.assign({},B);for(const I in this.classMap)this.classMap.hasOwnProperty(I)&&this.classMap[I]&&this.renderer.addClass(this.elementRef.nativeElement,I)}setHostFlexStyle(){this.hostFlexStyle=this.parseFlex(this.nzFlex)}parseFlex(B){return"number"==typeof B?`${B} ${B} auto`:"string"==typeof B&&/^\d+(\.\d+)?(px|em|rem|%)$/.test(B)?`0 0 ${B}`:B}generateClass(){const I={};return["nzXs","nzSm","nzMd","nzLg","nzXl","nzXXl"].forEach(g=>{const C=g.replace("nz","").toLowerCase();if((0,y.DX)(this[g]))if("number"==typeof this[g]||"string"==typeof this[g])I[`ant-col-${C}-${this[g]}`]=!0;else{const u=this[g];["span","pull","push","offset","order"].forEach(E=>{I[`ant-col-${C}${"span"===E?"-":`-${E}-`}${u[E]}`]=u&&(0,y.DX)(u[E])})}}),I}ngOnInit(){this.dir=this.directionality.value,this.directionality.change.pipe((0,d.R)(this.destroy$)).subscribe(B=>{this.dir=B,this.setHostClassMap()}),this.setHostClassMap(),this.setHostFlexStyle()}ngOnChanges(B){this.setHostClassMap();const{nzFlex:I}=B;I&&this.setHostFlexStyle()}ngAfterViewInit(){this.nzRowDirective&&this.nzRowDirective.actualGutter$.pipe((0,d.R)(this.destroy$)).subscribe(([B,I])=>{const g=(C,u)=>{null!==u&&this.renderer.setStyle(this.elementRef.nativeElement,C,u/2+"px")};g("padding-left",B),g("padding-right",B),g("padding-top",I),g("padding-bottom",I)})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return U.\u0275fac=function(B){return new(B||U)(w.Y36(w.SBq),w.Y36(R,9),w.Y36(w.Qsj),w.Y36(e.Is,8))},U.\u0275dir=w.lG2({type:U,selectors:[["","nz-col",""],["nz-col"],["nz-form-control"],["nz-form-label"]],hostVars:2,hostBindings:function(B,I){2&B&&w.Udp("flex",I.hostFlexStyle)},inputs:{nzFlex:"nzFlex",nzSpan:"nzSpan",nzOrder:"nzOrder",nzOffset:"nzOffset",nzPush:"nzPush",nzPull:"nzPull",nzXs:"nzXs",nzSm:"nzSm",nzMd:"nzMd",nzLg:"nzLg",nzXl:"nzXl",nzXXl:"nzXXl"},exportAs:["nzCol"],features:[w.TTD]}),U})(),P=(()=>{class U{}return U.\u0275fac=function(B){return new(B||U)},U.\u0275mod=w.oAB({type:U}),U.\u0275inj=w.cJS({imports:[[e.vT,A.ez,o.xu,s.ud]]}),U})()},7674:(ot,M,n)=>{n.d(M,{Zp:()=>et,gB:()=>S,ke:()=>ct,o7:()=>v});var e=n(4762),o=n(946),s=n(7716),t=n(9765),p=n(6682),T=(n(9193),n(5435)),y=n(6782),A=n(9761),w=n(3190),R=n(9773),O=n(8002),P=n(6182),U=n(521),j=n(8583),B=n(8178),I=n(464),g=n(665),C=n(9238);function a(m,nt){if(1&m&&s._UZ(0,"span",7),2&m){const z=s.oxw(2);s.Q6J("icon",z.nzAddOnBeforeIcon)("template",z.nzAddOnBefore)}}function E(m,nt){}function b(m,nt){if(1&m&&(s.TgZ(0,"span",8),s.YNc(1,E,0,0,"ng-template",9),s.qZA()),2&m){const z=s.oxw(2),N=s.MAs(4);s.ekj("ant-input-affix-wrapper-sm",z.isSmall)("ant-input-affix-wrapper-lg",z.isLarge),s.xp6(1),s.Q6J("ngTemplateOutlet",N)}}function x(m,nt){if(1&m&&s._UZ(0,"span",7),2&m){const z=s.oxw(2);s.Q6J("icon",z.nzAddOnAfterIcon)("template",z.nzAddOnAfter)}}function G(m,nt){if(1&m&&(s.TgZ(0,"span",4),s.YNc(1,a,1,2,"span",5),s.YNc(2,b,2,5,"span",6),s.YNc(3,x,1,2,"span",5),s.qZA()),2&m){const z=s.oxw(),N=s.MAs(6);s.xp6(1),s.Q6J("ngIf",z.nzAddOnBefore||z.nzAddOnBeforeIcon),s.xp6(1),s.Q6J("ngIf",z.isAffix)("ngIfElse",N),s.xp6(1),s.Q6J("ngIf",z.nzAddOnAfter||z.nzAddOnAfterIcon)}}function V(m,nt){}function $(m,nt){if(1&m&&s.YNc(0,V,0,0,"ng-template",9),2&m){s.oxw(2);const z=s.MAs(4);s.Q6J("ngTemplateOutlet",z)}}function X(m,nt){if(1&m&&s.YNc(0,$,1,1,"ng-template",10),2&m){const z=s.oxw(),N=s.MAs(6);s.Q6J("ngIf",z.isAffix)("ngIfElse",N)}}function rt(m,nt){if(1&m&&s._UZ(0,"span",13),2&m){const z=s.oxw(2);s.Q6J("icon",z.nzPrefixIcon)("template",z.nzPrefix)}}function ut(m,nt){}function Ct(m,nt){if(1&m&&s._UZ(0,"span",14),2&m){const z=s.oxw(2);s.Q6J("icon",z.nzSuffixIcon)("template",z.nzSuffix)}}function vt(m,nt){if(1&m&&(s.YNc(0,rt,1,2,"span",11),s.YNc(1,ut,0,0,"ng-template",9),s.YNc(2,Ct,1,2,"span",12)),2&m){const z=s.oxw(),N=s.MAs(6);s.Q6J("ngIf",z.nzPrefix||z.nzPrefixIcon),s.xp6(1),s.Q6J("ngTemplateOutlet",N),s.xp6(1),s.Q6J("ngIf",z.nzSuffix||z.nzSuffixIcon)}}function tt(m,nt){1&m&&s.Hsn(0)}n(4226);const dt=["*"],Z=["nz-input-group-slot",""];function st(m,nt){if(1&m&&s._UZ(0,"i",2),2&m){const z=s.oxw();s.Q6J("nzType",z.icon)}}function F(m,nt){if(1&m&&(s.ynx(0),s._uU(1),s.BQk()),2&m){const z=s.oxw();s.xp6(1),s.Oqu(z.template)}}let et=(()=>{class m{constructor(z,N,lt,ht){this.ngControl=z,this.directionality=ht,this.nzBorderless=!1,this.nzSize="default",this._disabled=!1,this.disabled$=new t.xQ,this.dir="ltr",this.destroy$=new t.xQ,N.addClass(lt.nativeElement,"ant-input")}get disabled(){return this.ngControl&&null!==this.ngControl.disabled?this.ngControl.disabled:this._disabled}set disabled(z){this._disabled=null!=z&&"false"!=`${z}`}ngOnInit(){var z,N;this.ngControl&&(null===(z=this.ngControl.statusChanges)||void 0===z||z.pipe((0,T.h)(()=>null!==this.ngControl.disabled),(0,y.R)(this.destroy$)).subscribe(()=>{this.disabled$.next(this.ngControl.disabled)})),this.dir=this.directionality.value,null===(N=this.directionality.change)||void 0===N||N.pipe((0,y.R)(this.destroy$)).subscribe(lt=>{this.dir=lt})}ngOnChanges(z){const{disabled:N}=z;N&&this.disabled$.next(this.disabled)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return m.\u0275fac=function(z){return new(z||m)(s.Y36(g.a5,10),s.Y36(s.Qsj),s.Y36(s.SBq),s.Y36(o.Is,8))},m.\u0275dir=s.lG2({type:m,selectors:[["input","nz-input",""],["textarea","nz-input",""]],hostVars:11,hostBindings:function(z,N){2&z&&(s.uIk("disabled",N.disabled||null),s.ekj("ant-input-disabled",N.disabled)("ant-input-borderless",N.nzBorderless)("ant-input-lg","large"===N.nzSize)("ant-input-sm","small"===N.nzSize)("ant-input-rtl","rtl"===N.dir))},inputs:{nzBorderless:"nzBorderless",nzSize:"nzSize",disabled:"disabled"},exportAs:["nzInput"],features:[s.TTD]}),(0,e.gn)([(0,P.yF)()],m.prototype,"nzBorderless",void 0),m})(),ct=(()=>{class m{constructor(z){this.elementRef=z}}return m.\u0275fac=function(z){return new(z||m)(s.Y36(s.SBq))},m.\u0275dir=s.lG2({type:m,selectors:[["nz-input-group","nzSuffix",""],["nz-input-group","nzPrefix",""]]}),m})(),S=(()=>{class m{constructor(z,N,lt,ht){this.focusMonitor=z,this.elementRef=N,this.cdr=lt,this.directionality=ht,this.nzAddOnBeforeIcon=null,this.nzAddOnAfterIcon=null,this.nzPrefixIcon=null,this.nzSuffixIcon=null,this.nzSize="default",this.nzSearch=!1,this.nzCompact=!1,this.isLarge=!1,this.isSmall=!1,this.isAffix=!1,this.isAddOn=!1,this.focused=!1,this.disabled=!1,this.dir="ltr",this.destroy$=new t.xQ}updateChildrenInputSize(){this.listOfNzInputDirective&&this.listOfNzInputDirective.forEach(z=>z.nzSize=this.nzSize)}ngOnInit(){var z;this.focusMonitor.monitor(this.elementRef,!0).pipe((0,y.R)(this.destroy$)).subscribe(N=>{this.focused=!!N,this.cdr.markForCheck()}),this.dir=this.directionality.value,null===(z=this.directionality.change)||void 0===z||z.pipe((0,y.R)(this.destroy$)).subscribe(N=>{this.dir=N})}ngAfterContentInit(){this.updateChildrenInputSize();const z=this.listOfNzInputDirective.changes.pipe((0,A.O)(this.listOfNzInputDirective));z.pipe((0,w.w)(N=>(0,p.T)(z,...N.map(lt=>lt.disabled$))),(0,R.zg)(()=>z),(0,O.U)(N=>N.some(lt=>lt.disabled)),(0,y.R)(this.destroy$)).subscribe(N=>{this.disabled=N,this.cdr.markForCheck()})}ngOnChanges(z){const{nzSize:N,nzSuffix:lt,nzPrefix:ht,nzPrefixIcon:Mt,nzSuffixIcon:yt,nzAddOnAfter:Pt,nzAddOnBefore:wt,nzAddOnAfterIcon:xt,nzAddOnBeforeIcon:Qt}=z;N&&(this.updateChildrenInputSize(),this.isLarge="large"===this.nzSize,this.isSmall="small"===this.nzSize),(lt||ht||Mt||yt)&&(this.isAffix=!!(this.nzSuffix||this.nzPrefix||this.nzPrefixIcon||this.nzSuffixIcon)),(Pt||wt||xt||Qt)&&(this.isAddOn=!!(this.nzAddOnAfter||this.nzAddOnBefore||this.nzAddOnAfterIcon||this.nzAddOnBeforeIcon))}ngOnDestroy(){this.focusMonitor.stopMonitoring(this.elementRef),this.destroy$.next(),this.destroy$.complete()}}return m.\u0275fac=function(z){return new(z||m)(s.Y36(C.tE),s.Y36(s.SBq),s.Y36(s.sBO),s.Y36(o.Is,8))},m.\u0275cmp=s.Xpm({type:m,selectors:[["nz-input-group"]],contentQueries:function(z,N,lt){if(1&z&&s.Suo(lt,et,4),2&z){let ht;s.iGM(ht=s.CRH())&&(N.listOfNzInputDirective=ht)}},hostVars:40,hostBindings:function(z,N){2&z&&s.ekj("ant-input-group-compact",N.nzCompact)("ant-input-search-enter-button",N.nzSearch)("ant-input-search",N.nzSearch)("ant-input-search-rtl","rtl"===N.dir)("ant-input-search-sm",N.nzSearch&&N.isSmall)("ant-input-search-large",N.nzSearch&&N.isLarge)("ant-input-group-wrapper",N.isAddOn)("ant-input-group-wrapper-rtl","rtl"===N.dir)("ant-input-group-wrapper-lg",N.isAddOn&&N.isLarge)("ant-input-group-wrapper-sm",N.isAddOn&&N.isSmall)("ant-input-affix-wrapper",N.isAffix&&!N.isAddOn)("ant-input-affix-wrapper-rtl","rtl"===N.dir)("ant-input-affix-wrapper-focused",N.isAffix&&N.focused)("ant-input-affix-wrapper-disabled",N.isAffix&&N.disabled)("ant-input-affix-wrapper-lg",N.isAffix&&!N.isAddOn&&N.isLarge)("ant-input-affix-wrapper-sm",N.isAffix&&!N.isAddOn&&N.isSmall)("ant-input-group",!N.isAffix&&!N.isAddOn)("ant-input-group-rtl","rtl"===N.dir)("ant-input-group-lg",!N.isAffix&&!N.isAddOn&&N.isLarge)("ant-input-group-sm",!N.isAffix&&!N.isAddOn&&N.isSmall)},inputs:{nzAddOnBeforeIcon:"nzAddOnBeforeIcon",nzAddOnAfterIcon:"nzAddOnAfterIcon",nzPrefixIcon:"nzPrefixIcon",nzSuffixIcon:"nzSuffixIcon",nzSize:"nzSize",nzSearch:"nzSearch",nzCompact:"nzCompact",nzAddOnBefore:"nzAddOnBefore",nzAddOnAfter:"nzAddOnAfter",nzPrefix:"nzPrefix",nzSuffix:"nzSuffix"},exportAs:["nzInputGroup"],features:[s.TTD],ngContentSelectors:dt,decls:7,vars:2,consts:[["class","ant-input-wrapper ant-input-group",4,"ngIf","ngIfElse"],["noAddOnTemplate",""],["affixTemplate",""],["contentTemplate",""],[1,"ant-input-wrapper","ant-input-group"],["nz-input-group-slot","","type","addon",3,"icon","template",4,"ngIf"],["class","ant-input-affix-wrapper",3,"ant-input-affix-wrapper-sm","ant-input-affix-wrapper-lg",4,"ngIf","ngIfElse"],["nz-input-group-slot","","type","addon",3,"icon","template"],[1,"ant-input-affix-wrapper"],[3,"ngTemplateOutlet"],[3,"ngIf","ngIfElse"],["nz-input-group-slot","","type","prefix",3,"icon","template",4,"ngIf"],["nz-input-group-slot","","type","suffix",3,"icon","template",4,"ngIf"],["nz-input-group-slot","","type","prefix",3,"icon","template"],["nz-input-group-slot","","type","suffix",3,"icon","template"]],template:function(z,N){if(1&z&&(s.F$t(),s.YNc(0,G,4,4,"span",0),s.YNc(1,X,1,2,"ng-template",null,1,s.W1O),s.YNc(3,vt,3,3,"ng-template",null,2,s.W1O),s.YNc(5,tt,1,0,"ng-template",null,3,s.W1O)),2&z){const lt=s.MAs(2);s.Q6J("ngIf",N.isAddOn)("ngIfElse",lt)}},directives:function(){return[j.O5,h,j.tP]},encapsulation:2,changeDetection:0}),(0,e.gn)([(0,P.yF)()],m.prototype,"nzSearch",void 0),(0,e.gn)([(0,P.yF)()],m.prototype,"nzCompact",void 0),m})(),h=(()=>{class m{constructor(){this.icon=null,this.type=null,this.template=null}}return m.\u0275fac=function(z){return new(z||m)},m.\u0275cmp=s.Xpm({type:m,selectors:[["","nz-input-group-slot",""]],hostVars:6,hostBindings:function(z,N){2&z&&s.ekj("ant-input-group-addon","addon"===N.type)("ant-input-prefix","prefix"===N.type)("ant-input-suffix","suffix"===N.type)},inputs:{icon:"icon",type:"type",template:"template"},attrs:Z,decls:2,vars:2,consts:[["nz-icon","",3,"nzType",4,"ngIf"],[4,"nzStringTemplateOutlet"],["nz-icon","",3,"nzType"]],template:function(z,N){1&z&&(s.YNc(0,st,1,1,"i",0),s.YNc(1,F,2,1,"ng-container",1)),2&z&&(s.Q6J("ngIf",N.icon),s.xp6(1),s.Q6J("nzStringTemplateOutlet",N.template))},directives:[j.O5,B.f,I.Ls],encapsulation:2,changeDetection:0}),m})(),v=(()=>{class m{}return m.\u0275fac=function(z){return new(z||m)},m.\u0275mod=s.oAB({type:m}),m.\u0275inj=s.cJS({imports:[[o.vT,j.ez,I.PV,U.ud,B.T]]}),m})()},8542:(ot,M,n)=>{n.d(M,{du:()=>te,Hf:()=>jt,Qp:()=>k,Sf:()=>Ht});var e=n(946),o=n(625),s=n(7636),t=n(7716),p=n(9765),d=n(1439),T=n(6782),y=n(5435),A=n(5257),w=n(9761),R=n(6956),O=n(6182),P=n(8583),U=n(6237),j=n(6756),B=n(7238),I=n(4762),g=n(6461),C=n(4453),u=n(641),a=n(8178),E=n(464);n(9075);class G{transform(L,i=0,_="B",Y){if(!((0,O.ui)(L)&&(0,O.ui)(i)&&i%1==0&&i>=0))return L;let at=L,Tt=_;for(;"B"!==Tt;)at*=1024,Tt=G.formats[Tt].prev;if(Y){const Nt=(0,O.YM)(G.calculateResult(G.formats[Y],at),i);return G.formatResult(Nt,Y)}for(const Ot in G.formats)if(G.formats.hasOwnProperty(Ot)){const Nt=G.formats[Ot];if(at<Nt.max){const Zt=(0,O.YM)(G.calculateResult(Nt,at),i);return G.formatResult(Zt,Ot)}}}static formatResult(L,i){return`${L} ${i}`}static calculateResult(L,i){const _=L.prev?G.formats[L.prev]:void 0;return _?i/_.max:i}}G.\u0275fac=function(L){return new(L||G)},G.\u0275pipe=t.Yjl({name:"nzBytes",type:G,pure:!0}),G.formats={B:{max:1024},kB:{max:Math.pow(1024,2),prev:"B"},KB:{max:Math.pow(1024,2),prev:"B"},MB:{max:Math.pow(1024,3),prev:"kB"},GB:{max:Math.pow(1024,4),prev:"MB"},TB:{max:Number.MAX_SAFE_INTEGER,prev:"GB"}};let V=(()=>{class l{transform(i,_="px"){let Nt="px";return["cm","mm","Q","in","pc","pt","px","em","ex","ch","rem","1h","vw","vh","vmin","vmax","%"].some(Zt=>Zt===_)&&(Nt=_),"number"==typeof i?`${i}${Nt}`:`${i}`}}return l.\u0275fac=function(i){return new(i||l)},l.\u0275pipe=t.Yjl({name:"nzToCssUnit",type:l,pure:!0}),l})(),vt=(()=>{class l{}return l.\u0275fac=function(i){return new(i||l)},l.\u0275mod=t.oAB({type:l}),l.\u0275inj=t.cJS({imports:[[P.ez]]}),l})();var tt=n(9238),dt=n(2729),Z=n(4514),st=n(9374);const F=["modalElement"];function q(l,L){if(1&l){const i=t.EpF();t.TgZ(0,"button",16),t.NdJ("click",function(){return t.CHM(i),t.oxw().onCloseClick()}),t.qZA()}}function pt(l,L){if(1&l&&(t.ynx(0),t._UZ(1,"span",17),t.BQk()),2&l){const i=t.oxw();t.xp6(1),t.Q6J("innerHTML",i.config.nzTitle,t.oJD)}}function et(l,L){}function ct(l,L){if(1&l&&t._UZ(0,"div",17),2&l){const i=t.oxw();t.Q6J("innerHTML",i.config.nzContent,t.oJD)}}function S(l,L){if(1&l){const i=t.EpF();t.TgZ(0,"button",18),t.NdJ("click",function(){return t.CHM(i),t.oxw().onCancel()}),t._uU(1),t.qZA()}if(2&l){const i=t.oxw();t.Q6J("nzLoading",!!i.config.nzCancelLoading)("disabled",i.config.nzCancelDisabled),t.uIk("cdkFocusInitial","cancel"===i.config.nzAutofocus||null),t.xp6(1),t.hij(" ",i.config.nzCancelText||i.locale.cancelText," ")}}function K(l,L){if(1&l){const i=t.EpF();t.TgZ(0,"button",19),t.NdJ("click",function(){return t.CHM(i),t.oxw().onOk()}),t._uU(1),t.qZA()}if(2&l){const i=t.oxw();t.Q6J("nzType",i.config.nzOkType)("nzLoading",!!i.config.nzOkLoading)("disabled",i.config.nzOkDisabled)("nzDanger",i.config.nzOkDanger),t.uIk("cdkFocusInitial","ok"===i.config.nzAutofocus||null),t.xp6(1),t.hij(" ",i.config.nzOkText||i.locale.okText," ")}}function h(l,L){if(1&l){const i=t.EpF();t.TgZ(0,"button",9),t.NdJ("click",function(){return t.CHM(i),t.oxw().onCloseClick()}),t.qZA()}}function D(l,L){1&l&&t._UZ(0,"div",10)}function v(l,L){}function m(l,L){if(1&l&&t._UZ(0,"div",11),2&l){const i=t.oxw();t.Q6J("innerHTML",i.config.nzContent,t.oJD)}}function nt(l,L){if(1&l){const i=t.EpF();t.TgZ(0,"div",12),t.NdJ("cancelTriggered",function(){return t.CHM(i),t.oxw().onCloseClick()})("okTriggered",function(){return t.CHM(i),t.oxw().onOkClick()}),t.qZA()}if(2&l){const i=t.oxw();t.Q6J("modalRef",i.modalRef)}}const z=["nz-modal-close",""];function N(l,L){if(1&l&&(t.ynx(0),t._UZ(1,"i",2),t.BQk()),2&l){const i=L.$implicit;t.xp6(1),t.Q6J("nzType",i)}}const lt=["nz-modal-footer",""];function ht(l,L){if(1&l&&t._UZ(0,"div",5),2&l){const i=t.oxw(3);t.Q6J("innerHTML",i.config.nzFooter,t.oJD)}}function Mt(l,L){if(1&l){const i=t.EpF();t.TgZ(0,"button",7),t.NdJ("click",function(){const at=t.CHM(i).$implicit;return t.oxw(4).onButtonClick(at)}),t._uU(1),t.qZA()}if(2&l){const i=L.$implicit,_=t.oxw(4);t.Q6J("hidden",!_.getButtonCallableProp(i,"show"))("nzLoading",_.getButtonCallableProp(i,"loading"))("disabled",_.getButtonCallableProp(i,"disabled"))("nzType",i.type)("nzDanger",i.danger)("nzShape",i.shape)("nzSize",i.size)("nzGhost",i.ghost),t.xp6(1),t.hij(" ",i.label," ")}}function yt(l,L){if(1&l&&(t.ynx(0),t.YNc(1,Mt,2,9,"button",6),t.BQk()),2&l){const i=t.oxw(3);t.xp6(1),t.Q6J("ngForOf",i.buttons)}}function Pt(l,L){if(1&l&&(t.ynx(0),t.YNc(1,ht,1,1,"div",3),t.YNc(2,yt,2,1,"ng-container",4),t.BQk()),2&l){const i=t.oxw(2);t.xp6(1),t.Q6J("ngIf",!i.buttonsFooter),t.xp6(1),t.Q6J("ngIf",i.buttonsFooter)}}const wt=function(l,L){return{$implicit:l,modalRef:L}};function xt(l,L){if(1&l&&(t.ynx(0),t.YNc(1,Pt,3,2,"ng-container",2),t.BQk()),2&l){const i=t.oxw();t.xp6(1),t.Q6J("nzStringTemplateOutlet",i.config.nzFooter)("nzStringTemplateOutletContext",t.WLB(2,wt,i.config.nzComponentParams,i.modalRef))}}function Qt(l,L){if(1&l){const i=t.EpF();t.TgZ(0,"button",10),t.NdJ("click",function(){return t.CHM(i),t.oxw(2).onCancel()}),t._uU(1),t.qZA()}if(2&l){const i=t.oxw(2);t.Q6J("nzLoading",!!i.config.nzCancelLoading)("disabled",i.config.nzCancelDisabled),t.uIk("cdkFocusInitial","cancel"===i.config.nzAutofocus||null),t.xp6(1),t.hij(" ",i.config.nzCancelText||i.locale.cancelText," ")}}function $t(l,L){if(1&l){const i=t.EpF();t.TgZ(0,"button",11),t.NdJ("click",function(){return t.CHM(i),t.oxw(2).onOk()}),t._uU(1),t.qZA()}if(2&l){const i=t.oxw(2);t.Q6J("nzType",i.config.nzOkType)("nzDanger",i.config.nzOkDanger)("nzLoading",!!i.config.nzOkLoading)("disabled",i.config.nzOkDisabled),t.uIk("cdkFocusInitial","ok"===i.config.nzAutofocus||null),t.xp6(1),t.hij(" ",i.config.nzOkText||i.locale.okText," ")}}function Gt(l,L){if(1&l&&(t.YNc(0,Qt,2,4,"button",8),t.YNc(1,$t,2,6,"button",9)),2&l){const i=t.oxw();t.Q6J("ngIf",null!==i.config.nzCancelText),t.xp6(1),t.Q6J("ngIf",null!==i.config.nzOkText)}}const Vt=["nz-modal-title",""];function oe(l,L){if(1&l&&(t.ynx(0),t._UZ(1,"div",2),t.BQk()),2&l){const i=t.oxw();t.xp6(1),t.Q6J("innerHTML",i.config.nzTitle,t.oJD)}}const J=()=>{};class mt{constructor(){this.nzCentered=!1,this.nzClosable=!0,this.nzOkLoading=!1,this.nzOkDisabled=!1,this.nzCancelDisabled=!1,this.nzCancelLoading=!1,this.nzNoAnimation=!1,this.nzAutofocus="auto",this.nzKeyboard=!0,this.nzZIndex=1e3,this.nzWidth=520,this.nzCloseIcon="close",this.nzOkType="primary",this.nzOkDanger=!1,this.nzModalType="default",this.nzOnCancel=J,this.nzOnOk=J,this.nzIconType="question-circle"}}const ft="ant-modal-mask",Et="modal",Rt={modalContainer:(0,B.X$)("modalContainer",[(0,B.SB)("void, exit",(0,B.oB)({})),(0,B.SB)("enter",(0,B.oB)({})),(0,B.eR)("* => enter",(0,B.jt)(".24s",(0,B.oB)({}))),(0,B.eR)("* => void, * => exit",(0,B.jt)(".2s",(0,B.oB)({})))])};function At(l,L,i){return void 0===l?void 0===L?i:L:l}function Bt(l){const{nzCentered:L,nzMask:i,nzMaskClosable:_,nzClosable:Y,nzOkLoading:at,nzOkDisabled:Tt,nzCancelDisabled:Ot,nzCancelLoading:Nt,nzKeyboard:Zt,nzNoAnimation:ee,nzContent:ce,nzComponentParams:fe,nzFooter:me,nzZIndex:ge,nzWidth:ze,nzWrapClassName:de,nzClassName:Ce,nzStyle:ve,nzTitle:Te,nzCloseIcon:ye,nzMaskStyle:Oe,nzBodyStyle:ue,nzOkText:Ee,nzCancelText:Me,nzOkType:De,nzOkDanger:Ie,nzIconType:_e,nzModalType:Ae,nzOnOk:Ne,nzOnCancel:be,nzAfterOpen:pe,nzAfterClose:Se,nzCloseOnNavigation:Pe,nzAutofocus:xe}=l;return{nzCentered:L,nzMask:i,nzMaskClosable:_,nzClosable:Y,nzOkLoading:at,nzOkDisabled:Tt,nzCancelDisabled:Ot,nzCancelLoading:Nt,nzKeyboard:Zt,nzNoAnimation:ee,nzContent:ce,nzComponentParams:fe,nzFooter:me,nzZIndex:ge,nzWidth:ze,nzWrapClassName:de,nzClassName:Ce,nzStyle:ve,nzTitle:Te,nzCloseIcon:ye,nzMaskStyle:Oe,nzBodyStyle:ue,nzOkText:Ee,nzCancelText:Me,nzOkType:De,nzOkDanger:Ie,nzIconType:_e,nzModalType:Ae,nzOnOk:Ne,nzOnCancel:be,nzAfterOpen:pe,nzAfterClose:Se,nzCloseOnNavigation:Pe,nzAutofocus:xe}}function bt(){throw Error("Attempting to attach modal content after content is already attached")}let Kt=(()=>{class l extends s.en{constructor(i,_,Y,at,Tt,Ot,Nt,Zt,ee){super(),this.elementRef=i,this.focusTrapFactory=_,this.cdr=Y,this.render=at,this.overlayRef=Tt,this.nzConfigService=Ot,this.config=Nt,this.animationType=ee,this.animationStateChanged=new t.vpe,this.containerClick=new t.vpe,this.cancelTriggered=new t.vpe,this.okTriggered=new t.vpe,this.state="enter",this.isStringContent=!1,this.dir="ltr",this.elementFocusedBeforeModalWasOpened=null,this.mouseDown=!1,this.oldMaskStyle=null,this.destroy$=new p.xQ,this.document=Zt,this.dir=Tt.getDirection(),this.isStringContent="string"==typeof Nt.nzContent,this.nzConfigService.getConfigChangeEventForComponent(Et).pipe((0,T.R)(this.destroy$)).subscribe(()=>{this.updateMaskClassname()})}get showMask(){const i=this.nzConfigService.getConfigForComponent(Et)||{};return!!At(this.config.nzMask,i.nzMask,!0)}get maskClosable(){const i=this.nzConfigService.getConfigForComponent(Et)||{};return!!At(this.config.nzMaskClosable,i.nzMaskClosable,!0)}onContainerClick(i){i.target===i.currentTarget&&!this.mouseDown&&this.showMask&&this.maskClosable&&this.containerClick.emit()}onMousedown(){this.mouseDown=!0}onMouseup(){this.mouseDown&&setTimeout(()=>{this.mouseDown=!1})}onCloseClick(){this.cancelTriggered.emit()}onOkClick(){this.okTriggered.emit()}attachComponentPortal(i){return this.portalOutlet.hasAttached()&&bt(),this.savePreviouslyFocusedElement(),this.setZIndexForBackdrop(),this.portalOutlet.attachComponentPortal(i)}attachTemplatePortal(i){return this.portalOutlet.hasAttached()&&bt(),this.savePreviouslyFocusedElement(),this.setZIndexForBackdrop(),this.portalOutlet.attachTemplatePortal(i)}attachStringContent(){this.savePreviouslyFocusedElement(),this.setZIndexForBackdrop()}getNativeElement(){return this.elementRef.nativeElement}animationDisabled(){return this.config.nzNoAnimation||"NoopAnimations"===this.animationType}setModalTransformOrigin(){const i=this.modalElementRef.nativeElement;if(this.elementFocusedBeforeModalWasOpened){const _=this.elementFocusedBeforeModalWasOpened.getBoundingClientRect(),Y=(0,O.pW)(this.elementFocusedBeforeModalWasOpened);this.render.setStyle(i,"transform-origin",`${Y.left+_.width/2-i.offsetLeft}px ${Y.top+_.height/2-i.offsetTop}px 0px`)}}savePreviouslyFocusedElement(){this.focusTrap||(this.focusTrap=this.focusTrapFactory.create(this.elementRef.nativeElement)),this.document&&(this.elementFocusedBeforeModalWasOpened=this.document.activeElement,this.elementRef.nativeElement.focus&&Promise.resolve().then(()=>this.elementRef.nativeElement.focus()))}trapFocus(){const i=this.elementRef.nativeElement;if(this.config.nzAutofocus)this.focusTrap.focusInitialElementWhenReady().then();else{const _=this.document.activeElement;_!==i&&!i.contains(_)&&i.focus()}}restoreFocus(){const i=this.elementFocusedBeforeModalWasOpened;if(i&&"function"==typeof i.focus){const _=this.document.activeElement,Y=this.elementRef.nativeElement;(!_||_===this.document.body||_===Y||Y.contains(_))&&i.focus()}this.focusTrap&&this.focusTrap.destroy()}setEnterAnimationClass(){if(this.animationDisabled())return;this.setModalTransformOrigin();const i=this.modalElementRef.nativeElement,_=this.overlayRef.backdropElement;i.classList.add("ant-zoom-enter"),i.classList.add("ant-zoom-enter-active"),_&&(_.classList.add("ant-fade-enter"),_.classList.add("ant-fade-enter-active"))}setExitAnimationClass(){const i=this.modalElementRef.nativeElement;i.classList.add("ant-zoom-leave"),i.classList.add("ant-zoom-leave-active"),this.setMaskExitAnimationClass()}setMaskExitAnimationClass(i=!1){const _=this.overlayRef.backdropElement;if(_){if(this.animationDisabled()||i)return void _.classList.remove(ft);_.classList.add("ant-fade-leave"),_.classList.add("ant-fade-leave-active")}}cleanAnimationClass(){if(this.animationDisabled())return;const i=this.overlayRef.backdropElement,_=this.modalElementRef.nativeElement;i&&(i.classList.remove("ant-fade-enter"),i.classList.remove("ant-fade-enter-active")),_.classList.remove("ant-zoom-enter"),_.classList.remove("ant-zoom-enter-active"),_.classList.remove("ant-zoom-leave"),_.classList.remove("ant-zoom-leave-active")}setZIndexForBackdrop(){const i=this.overlayRef.backdropElement;i&&(0,O.DX)(this.config.nzZIndex)&&this.render.setStyle(i,"z-index",this.config.nzZIndex)}bindBackdropStyle(){const i=this.overlayRef.backdropElement;if(i&&(this.oldMaskStyle&&(Object.keys(this.oldMaskStyle).forEach(Y=>{this.render.removeStyle(i,Y)}),this.oldMaskStyle=null),this.setZIndexForBackdrop(),"object"==typeof this.config.nzMaskStyle&&Object.keys(this.config.nzMaskStyle).length)){const _=Object.assign({},this.config.nzMaskStyle);Object.keys(_).forEach(Y=>{this.render.setStyle(i,Y,_[Y])}),this.oldMaskStyle=_}}updateMaskClassname(){const i=this.overlayRef.backdropElement;i&&(this.showMask?i.classList.add(ft):i.classList.remove(ft))}onAnimationDone(i){"enter"===i.toState?this.trapFocus():"exit"===i.toState&&this.restoreFocus(),this.cleanAnimationClass(),this.animationStateChanged.emit(i)}onAnimationStart(i){"enter"===i.toState?(this.setEnterAnimationClass(),this.bindBackdropStyle()):"exit"===i.toState&&this.setExitAnimationClass(),this.animationStateChanged.emit(i)}startExitAnimation(){this.state="exit",this.cdr.markForCheck()}ngOnDestroy(){this.setMaskExitAnimationClass(!0),this.destroy$.next(),this.destroy$.complete()}}return l.\u0275fac=function(i){return new(i||l)(t.Y36(t.SBq),t.Y36(tt.qV),t.Y36(t.sBO),t.Y36(t.Qsj),t.Y36(o.Iu),t.Y36(dt.jY),t.Y36(mt),t.Y36(void 0),t.Y36(String))},l.\u0275dir=t.lG2({type:l,features:[t.qOj]}),l})(),kt=(()=>{class l extends Kt{constructor(i,_,Y,at,Tt,Ot,Nt,Zt,ee,ce){super(_,Y,at,Tt,Ot,Nt,Zt,ee,ce),this.i18n=i,this.config=Zt,this.cancelTriggered=new t.vpe,this.okTriggered=new t.vpe,this.i18n.localeChange.pipe((0,T.R)(this.destroy$)).subscribe(()=>{this.locale=this.i18n.getLocaleData("Modal")})}onCancel(){this.cancelTriggered.emit()}onOk(){this.okTriggered.emit()}}return l.\u0275fac=function(i){return new(i||l)(t.Y36(j.wi),t.Y36(t.SBq),t.Y36(tt.qV),t.Y36(t.sBO),t.Y36(t.Qsj),t.Y36(o.Iu),t.Y36(dt.jY),t.Y36(mt),t.Y36(P.K0,8),t.Y36(U.Qb,8))},l.\u0275cmp=t.Xpm({type:l,selectors:[["nz-modal-confirm-container"]],viewQuery:function(i,_){if(1&i&&(t.Gf(s.Pl,7),t.Gf(F,7)),2&i){let Y;t.iGM(Y=t.CRH())&&(_.portalOutlet=Y.first),t.iGM(Y=t.CRH())&&(_.modalElementRef=Y.first)}},hostAttrs:["tabindex","-1","role","dialog"],hostVars:10,hostBindings:function(i,_){1&i&&(t.WFA("@modalContainer.start",function(at){return _.onAnimationStart(at)})("@modalContainer.done",function(at){return _.onAnimationDone(at)}),t.NdJ("click",function(at){return _.onContainerClick(at)})("mouseup",function(){return _.onMouseup()})),2&i&&(t.d8E("@.disabled",_.config.nzNoAnimation)("@modalContainer",_.state),t.Tol(_.config.nzWrapClassName?"ant-modal-wrap "+_.config.nzWrapClassName:"ant-modal-wrap"),t.Udp("z-index",_.config.nzZIndex),t.ekj("ant-modal-wrap-rtl","rtl"===_.dir)("ant-modal-centered",_.config.nzCentered))},outputs:{cancelTriggered:"cancelTriggered",okTriggered:"okTriggered"},exportAs:["nzModalConfirmContainer"],features:[t.qOj],decls:17,vars:13,consts:[["role","document",1,"ant-modal",3,"ngClass","ngStyle","mousedown"],["modalElement",""],[1,"ant-modal-content"],["nz-modal-close","",3,"click",4,"ngIf"],[1,"ant-modal-body",3,"ngStyle"],[1,"ant-modal-confirm-body-wrapper"],[1,"ant-modal-confirm-body"],["nz-icon","",3,"nzType"],[1,"ant-modal-confirm-title"],[4,"nzStringTemplateOutlet"],[1,"ant-modal-confirm-content"],["cdkPortalOutlet",""],[3,"innerHTML",4,"ngIf"],[1,"ant-modal-confirm-btns"],["nz-button","",3,"nzLoading","disabled","click",4,"ngIf"],["nz-button","",3,"nzType","nzLoading","disabled","nzDanger","click",4,"ngIf"],["nz-modal-close","",3,"click"],[3,"innerHTML"],["nz-button","",3,"nzLoading","disabled","click"],["nz-button","",3,"nzType","nzLoading","disabled","nzDanger","click"]],template:function(i,_){1&i&&(t.TgZ(0,"div",0,1),t.NdJ("mousedown",function(){return _.onMousedown()}),t.ALo(2,"nzToCssUnit"),t.TgZ(3,"div",2),t.YNc(4,q,1,0,"button",3),t.TgZ(5,"div",4),t.TgZ(6,"div",5),t.TgZ(7,"div",6),t._UZ(8,"i",7),t.TgZ(9,"span",8),t.YNc(10,pt,2,1,"ng-container",9),t.qZA(),t.TgZ(11,"div",10),t.YNc(12,et,0,0,"ng-template",11),t.YNc(13,ct,1,1,"div",12),t.qZA(),t.qZA(),t.TgZ(14,"div",13),t.YNc(15,S,2,4,"button",14),t.YNc(16,K,2,6,"button",15),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&i&&(t.Udp("width",t.lcZ(2,11,null==_.config?null:_.config.nzWidth)),t.Q6J("ngClass",_.config.nzClassName)("ngStyle",_.config.nzStyle),t.xp6(4),t.Q6J("ngIf",_.config.nzClosable),t.xp6(1),t.Q6J("ngStyle",_.config.nzBodyStyle),t.xp6(3),t.Q6J("nzType",_.config.nzIconType),t.xp6(2),t.Q6J("nzStringTemplateOutlet",_.config.nzTitle),t.xp6(3),t.Q6J("ngIf",_.isStringContent),t.xp6(2),t.Q6J("ngIf",null!==_.config.nzCancelText),t.xp6(1),t.Q6J("ngIf",null!==_.config.nzOkText))},directives:function(){return[P.mk,P.PC,P.O5,Z.w,E.Ls,a.f,s.Pl,f,C.ix,st.dQ]},pipes:function(){return[V]},encapsulation:2,data:{animation:[Rt.modalContainer]}}),l})(),Ut=(()=>{class l extends Kt{constructor(i,_,Y,at,Tt,Ot,Nt,Zt,ee){super(i,_,Y,at,Tt,Ot,Nt,Zt,ee),this.config=Nt}}return l.\u0275fac=function(i){return new(i||l)(t.Y36(t.SBq),t.Y36(tt.qV),t.Y36(t.sBO),t.Y36(t.Qsj),t.Y36(o.Iu),t.Y36(dt.jY),t.Y36(mt),t.Y36(P.K0,8),t.Y36(U.Qb,8))},l.\u0275cmp=t.Xpm({type:l,selectors:[["nz-modal-container"]],viewQuery:function(i,_){if(1&i&&(t.Gf(s.Pl,7),t.Gf(F,7)),2&i){let Y;t.iGM(Y=t.CRH())&&(_.portalOutlet=Y.first),t.iGM(Y=t.CRH())&&(_.modalElementRef=Y.first)}},hostAttrs:["tabindex","-1","role","dialog"],hostVars:10,hostBindings:function(i,_){1&i&&(t.WFA("@modalContainer.start",function(at){return _.onAnimationStart(at)})("@modalContainer.done",function(at){return _.onAnimationDone(at)}),t.NdJ("click",function(at){return _.onContainerClick(at)})("mouseup",function(){return _.onMouseup()})),2&i&&(t.d8E("@.disabled",_.config.nzNoAnimation)("@modalContainer",_.state),t.Tol(_.config.nzWrapClassName?"ant-modal-wrap "+_.config.nzWrapClassName:"ant-modal-wrap"),t.Udp("z-index",_.config.nzZIndex),t.ekj("ant-modal-wrap-rtl","rtl"===_.dir)("ant-modal-centered",_.config.nzCentered))},exportAs:["nzModalContainer"],features:[t.qOj],decls:10,vars:11,consts:[["role","document",1,"ant-modal",3,"ngClass","ngStyle","mousedown"],["modalElement",""],[1,"ant-modal-content"],["nz-modal-close","",3,"click",4,"ngIf"],["nz-modal-title","",4,"ngIf"],[1,"ant-modal-body",3,"ngStyle"],["cdkPortalOutlet",""],[3,"innerHTML",4,"ngIf"],["nz-modal-footer","",3,"modalRef","cancelTriggered","okTriggered",4,"ngIf"],["nz-modal-close","",3,"click"],["nz-modal-title",""],[3,"innerHTML"],["nz-modal-footer","",3,"modalRef","cancelTriggered","okTriggered"]],template:function(i,_){1&i&&(t.TgZ(0,"div",0,1),t.NdJ("mousedown",function(){return _.onMousedown()}),t.ALo(2,"nzToCssUnit"),t.TgZ(3,"div",2),t.YNc(4,h,1,0,"button",3),t.YNc(5,D,1,0,"div",4),t.TgZ(6,"div",5),t.YNc(7,v,0,0,"ng-template",6),t.YNc(8,m,1,1,"div",7),t.qZA(),t.YNc(9,nt,1,1,"div",8),t.qZA(),t.qZA()),2&i&&(t.Udp("width",t.lcZ(2,9,null==_.config?null:_.config.nzWidth)),t.Q6J("ngClass",_.config.nzClassName)("ngStyle",_.config.nzStyle),t.xp6(4),t.Q6J("ngIf",_.config.nzClosable),t.xp6(1),t.Q6J("ngIf",_.config.nzTitle),t.xp6(1),t.Q6J("ngStyle",_.config.nzBodyStyle),t.xp6(2),t.Q6J("ngIf",_.isStringContent),t.xp6(1),t.Q6J("ngIf",null!==_.config.nzFooter))},directives:function(){return[P.mk,P.PC,P.O5,s.Pl,f,c,Q]},pipes:function(){return[V]},encapsulation:2,data:{animation:[Rt.modalContainer]}}),l})();class Wt{constructor(L,i,_){this.overlayRef=L,this.config=i,this.containerInstance=_,this.componentInstance=null,this.state=0,this.afterClose=new p.xQ,this.afterOpen=new p.xQ,_.animationStateChanged.pipe((0,y.h)(Y=>"done"===Y.phaseName&&"enter"===Y.toState),(0,A.q)(1)).subscribe(()=>{this.afterOpen.next(),this.afterOpen.complete(),i.nzAfterOpen instanceof t.vpe&&i.nzAfterOpen.emit()}),_.animationStateChanged.pipe((0,y.h)(Y=>"done"===Y.phaseName&&"exit"===Y.toState),(0,A.q)(1)).subscribe(()=>{clearTimeout(this.closeTimeout),this._finishDialogClose()}),_.containerClick.pipe((0,A.q)(1)).subscribe(()=>{!this.config.nzCancelLoading&&!this.config.nzOkLoading&&this.trigger("cancel")}),L.keydownEvents().pipe((0,y.h)(Y=>this.config.nzKeyboard&&!this.config.nzCancelLoading&&!this.config.nzOkLoading&&Y.keyCode===g.hY&&!(0,g.Vb)(Y))).subscribe(Y=>{Y.preventDefault(),this.trigger("cancel")}),_.cancelTriggered.subscribe(()=>this.trigger("cancel")),_.okTriggered.subscribe(()=>this.trigger("ok")),L.detachments().subscribe(()=>{this.afterClose.next(this.result),this.afterClose.complete(),i.nzAfterClose instanceof t.vpe&&i.nzAfterClose.emit(this.result),this.componentInstance=null,this.overlayRef.dispose()})}getContentComponent(){return this.componentInstance}getElement(){return this.containerInstance.getNativeElement()}destroy(L){this.close(L)}triggerOk(){return this.trigger("ok")}triggerCancel(){return this.trigger("cancel")}close(L){0===this.state&&(this.result=L,this.containerInstance.animationStateChanged.pipe((0,y.h)(i=>"start"===i.phaseName),(0,A.q)(1)).subscribe(i=>{this.overlayRef.detachBackdrop(),this.closeTimeout=setTimeout(()=>{this._finishDialogClose()},i.totalTime+100)}),this.containerInstance.startExitAnimation(),this.state=1)}updateConfig(L){Object.assign(this.config,L),this.containerInstance.bindBackdropStyle(),this.containerInstance.cdr.markForCheck()}getState(){return this.state}getConfig(){return this.config}getBackdropElement(){return this.overlayRef.backdropElement}trigger(L){return(0,I.mG)(this,void 0,void 0,function*(){const i={ok:this.config.nzOnOk,cancel:this.config.nzOnCancel}[L],_={ok:"nzOkLoading",cancel:"nzCancelLoading"}[L];if(!this.config[_])if(i instanceof t.vpe)i.emit(this.getContentComponent());else if("function"==typeof i){const at=i(this.getContentComponent());if((0,O.tI)(at)){this.config[_]=!0;let Tt=!1;try{Tt=yield at}finally{this.config[_]=!1,this.closeWhitResult(Tt)}}else this.closeWhitResult(at)}})}closeWhitResult(L){!1!==L&&this.close(L)}_finishDialogClose(){this.state=2,this.overlayRef.dispose()}}let Ht=(()=>{class l{constructor(i,_,Y,at,Tt){this.overlay=i,this.injector=_,this.nzConfigService=Y,this.parentModal=at,this.directionality=Tt,this.openModalsAtThisLevel=[],this.afterAllClosedAtThisLevel=new p.xQ,this.afterAllClose=(0,d.P)(()=>this.openModals.length?this._afterAllClosed:this._afterAllClosed.pipe((0,w.O)(void 0)))}get openModals(){return this.parentModal?this.parentModal.openModals:this.openModalsAtThisLevel}get _afterAllClosed(){const i=this.parentModal;return i?i._afterAllClosed:this.afterAllClosedAtThisLevel}create(i){return this.open(i.nzContent,i)}closeAll(){this.closeModals(this.openModals)}confirm(i={},_="confirm"){return"nzFooter"in i&&(0,R.ZK)('The Confirm-Modal doesn\'t support "nzFooter", this property will be ignored.'),"nzWidth"in i||(i.nzWidth=416),"nzMaskClosable"in i||(i.nzMaskClosable=!1),i.nzModalType="confirm",i.nzClassName=`ant-modal-confirm ant-modal-confirm-${_} ${i.nzClassName||""}`,this.create(i)}info(i={}){return this.confirmFactory(i,"info")}success(i={}){return this.confirmFactory(i,"success")}error(i={}){return this.confirmFactory(i,"error")}warning(i={}){return this.confirmFactory(i,"warning")}open(i,_){const Y=function(l,L){return Object.assign(Object.assign({},L),l)}(_||{},new mt),at=this.createOverlay(Y),Tt=this.attachModalContainer(at,Y),Ot=this.attachModalContent(i,Tt,at,Y);return Tt.modalRef=Ot,this.openModals.push(Ot),Ot.afterClose.subscribe(()=>this.removeOpenModal(Ot)),Ot}removeOpenModal(i){const _=this.openModals.indexOf(i);_>-1&&(this.openModals.splice(_,1),this.openModals.length||this._afterAllClosed.next())}closeModals(i){let _=i.length;for(;_--;)i[_].close(),this.openModals.length||this._afterAllClosed.next()}createOverlay(i){const _=this.nzConfigService.getConfigForComponent(Et)||{},Y=new o.X_({hasBackdrop:!0,scrollStrategy:this.overlay.scrollStrategies.block(),positionStrategy:this.overlay.position().global(),disposeOnNavigation:At(i.nzCloseOnNavigation,_.nzCloseOnNavigation,!0),direction:At(i.nzDirection,_.nzDirection,this.directionality.value)});return At(i.nzMask,_.nzMask,!0)&&(Y.backdropClass=ft),this.overlay.create(Y)}attachModalContainer(i,_){const at=t.zs3.create({parent:_&&_.nzViewContainerRef&&_.nzViewContainerRef.injector||this.injector,providers:[{provide:o.Iu,useValue:i},{provide:mt,useValue:_}]}),Ot=new s.C5("confirm"===_.nzModalType?kt:Ut,_.nzViewContainerRef,at);return i.attach(Ot).instance}attachModalContent(i,_,Y,at){const Tt=new Wt(Y,at,_);if(i instanceof t.Rgc)_.attachTemplatePortal(new s.UE(i,null,{$implicit:at.nzComponentParams,modalRef:Tt}));else if((0,O.DX)(i)&&"string"!=typeof i){const Ot=this.createInjector(Tt,at),Nt=_.attachComponentPortal(new s.C5(i,at.nzViewContainerRef,Ot));(function(l,L){Object.assign(l,L)})(Nt.instance,at.nzComponentParams),Tt.componentInstance=Nt.instance}else _.attachStringContent();return Tt}createInjector(i,_){return t.zs3.create({parent:_&&_.nzViewContainerRef&&_.nzViewContainerRef.injector||this.injector,providers:[{provide:Wt,useValue:i}]})}confirmFactory(i={},_){return"nzIconType"in i||(i.nzIconType={info:"info-circle",success:"check-circle",error:"close-circle",warning:"exclamation-circle"}[_]),"nzCancelText"in i||(i.nzCancelText=null),this.confirm(i,_)}ngOnDestroy(){this.closeModals(this.openModalsAtThisLevel),this.afterAllClosedAtThisLevel.complete()}}return l.\u0275fac=function(i){return new(i||l)(t.LFG(o.aV),t.LFG(t.zs3),t.LFG(dt.jY),t.LFG(l,12),t.LFG(e.Is,8))},l.\u0275prov=t.Yz7({token:l,factory:l.\u0275fac}),l})(),jt=(()=>{class l{constructor(i){this.templateRef=i}}return l.\u0275fac=function(i){return new(i||l)(t.Y36(t.Rgc))},l.\u0275dir=t.lG2({type:l,selectors:[["","nzModalContent",""]],exportAs:["nzModalContent"]}),l})(),ie=(()=>{class l{constructor(i,_){this.nzModalRef=i,this.templateRef=_,this.nzModalRef&&this.nzModalRef.updateConfig({nzFooter:this.templateRef})}}return l.\u0275fac=function(i){return new(i||l)(t.Y36(Wt,8),t.Y36(t.Rgc))},l.\u0275dir=t.lG2({type:l,selectors:[["","nzModalFooter",""]],exportAs:["nzModalFooter"]}),l})(),qt=(()=>{class l{constructor(i,_){this.nzModalRef=i,this.templateRef=_,this.nzModalRef&&this.nzModalRef.updateConfig({nzTitle:this.templateRef})}}return l.\u0275fac=function(i){return new(i||l)(t.Y36(Wt,8),t.Y36(t.Rgc))},l.\u0275dir=t.lG2({type:l,selectors:[["","nzModalTitle",""]],exportAs:["nzModalTitle"]}),l})(),te=(()=>{class l{constructor(i,_,Y){this.cdr=i,this.modal=_,this.viewContainerRef=Y,this.nzVisible=!1,this.nzClosable=!0,this.nzOkLoading=!1,this.nzOkDisabled=!1,this.nzCancelDisabled=!1,this.nzCancelLoading=!1,this.nzKeyboard=!0,this.nzNoAnimation=!1,this.nzCentered=!1,this.nzZIndex=1e3,this.nzWidth=520,this.nzCloseIcon="close",this.nzOkType="primary",this.nzOkDanger=!1,this.nzIconType="question-circle",this.nzModalType="default",this.nzAutofocus="auto",this.nzOnOk=new t.vpe,this.nzOnCancel=new t.vpe,this.nzAfterOpen=new t.vpe,this.nzAfterClose=new t.vpe,this.nzVisibleChange=new t.vpe,this.modalRef=null,this.destroy$=new p.xQ}set modalTitle(i){i&&this.setTitleWithTemplate(i)}set modalFooter(i){i&&this.setFooterWithTemplate(i)}get afterOpen(){return this.nzAfterOpen.asObservable()}get afterClose(){return this.nzAfterClose.asObservable()}open(){if(this.nzVisible||(this.nzVisible=!0,this.nzVisibleChange.emit(!0)),!this.modalRef){const i=this.getConfig();this.modalRef=this.modal.create(i),this.modalRef.afterClose.asObservable().pipe((0,T.R)(this.destroy$)).subscribe(()=>{this.close()})}}close(i){this.nzVisible&&(this.nzVisible=!1,this.nzVisibleChange.emit(!1)),this.modalRef&&(this.modalRef.close(i),this.modalRef=null)}destroy(i){this.close(i)}triggerOk(){var i;null===(i=this.modalRef)||void 0===i||i.triggerOk()}triggerCancel(){var i;null===(i=this.modalRef)||void 0===i||i.triggerCancel()}getContentComponent(){var i;return null===(i=this.modalRef)||void 0===i?void 0:i.getContentComponent()}getElement(){var i;return null===(i=this.modalRef)||void 0===i?void 0:i.getElement()}getModalRef(){return this.modalRef}setTitleWithTemplate(i){this.nzTitle=i,this.modalRef&&Promise.resolve().then(()=>{this.modalRef.updateConfig({nzTitle:this.nzTitle})})}setFooterWithTemplate(i){this.nzFooter=i,this.modalRef&&Promise.resolve().then(()=>{this.modalRef.updateConfig({nzFooter:this.nzFooter})}),this.cdr.markForCheck()}getConfig(){const i=Bt(this);return i.nzViewContainerRef=this.viewContainerRef,i.nzContent=this.nzContent||this.contentFromContentChild,i}ngOnChanges(i){const{nzVisible:_}=i,Y=(0,I._T)(i,["nzVisible"]);Object.keys(Y).length&&this.modalRef&&this.modalRef.updateConfig(Bt(this)),_&&(this.nzVisible?this.open():this.close())}ngOnDestroy(){var i;null===(i=this.modalRef)||void 0===i||i._finishDialogClose(),this.destroy$.next(),this.destroy$.complete()}}return l.\u0275fac=function(i){return new(i||l)(t.Y36(t.sBO),t.Y36(Ht),t.Y36(t.s_b))},l.\u0275cmp=t.Xpm({type:l,selectors:[["nz-modal"]],contentQueries:function(i,_,Y){if(1&i&&(t.Suo(Y,qt,7,t.Rgc),t.Suo(Y,ie,7,t.Rgc),t.Suo(Y,jt,7,t.Rgc)),2&i){let at;t.iGM(at=t.CRH())&&(_.modalTitle=at.first),t.iGM(at=t.CRH())&&(_.modalFooter=at.first),t.iGM(at=t.CRH())&&(_.contentFromContentChild=at.first)}},inputs:{nzVisible:"nzVisible",nzClosable:"nzClosable",nzOkLoading:"nzOkLoading",nzOkDisabled:"nzOkDisabled",nzCancelDisabled:"nzCancelDisabled",nzCancelLoading:"nzCancelLoading",nzKeyboard:"nzKeyboard",nzNoAnimation:"nzNoAnimation",nzCentered:"nzCentered",nzZIndex:"nzZIndex",nzWidth:"nzWidth",nzCloseIcon:"nzCloseIcon",nzOkType:"nzOkType",nzOkDanger:"nzOkDanger",nzIconType:"nzIconType",nzModalType:"nzModalType",nzAutofocus:"nzAutofocus",nzOnOk:"nzOnOk",nzOnCancel:"nzOnCancel",nzTitle:"nzTitle",nzFooter:"nzFooter",nzMask:"nzMask",nzMaskClosable:"nzMaskClosable",nzCloseOnNavigation:"nzCloseOnNavigation",nzContent:"nzContent",nzComponentParams:"nzComponentParams",nzWrapClassName:"nzWrapClassName",nzClassName:"nzClassName",nzStyle:"nzStyle",nzMaskStyle:"nzMaskStyle",nzBodyStyle:"nzBodyStyle",nzOkText:"nzOkText",nzCancelText:"nzCancelText"},outputs:{nzOnOk:"nzOnOk",nzOnCancel:"nzOnCancel",nzAfterOpen:"nzAfterOpen",nzAfterClose:"nzAfterClose",nzVisibleChange:"nzVisibleChange"},exportAs:["nzModal"],features:[t.TTD],decls:0,vars:0,template:function(i,_){},encapsulation:2,changeDetection:0}),(0,I.gn)([(0,O.yF)()],l.prototype,"nzMask",void 0),(0,I.gn)([(0,O.yF)()],l.prototype,"nzMaskClosable",void 0),(0,I.gn)([(0,O.yF)()],l.prototype,"nzCloseOnNavigation",void 0),(0,I.gn)([(0,O.yF)()],l.prototype,"nzVisible",void 0),(0,I.gn)([(0,O.yF)()],l.prototype,"nzClosable",void 0),(0,I.gn)([(0,O.yF)()],l.prototype,"nzOkLoading",void 0),(0,I.gn)([(0,O.yF)()],l.prototype,"nzOkDisabled",void 0),(0,I.gn)([(0,O.yF)()],l.prototype,"nzCancelDisabled",void 0),(0,I.gn)([(0,O.yF)()],l.prototype,"nzCancelLoading",void 0),(0,I.gn)([(0,O.yF)()],l.prototype,"nzKeyboard",void 0),(0,I.gn)([(0,O.yF)()],l.prototype,"nzNoAnimation",void 0),(0,I.gn)([(0,O.yF)()],l.prototype,"nzCentered",void 0),(0,I.gn)([(0,O.yF)()],l.prototype,"nzOkDanger",void 0),l})(),f=(()=>{class l{constructor(i){this.config=i}}return l.\u0275fac=function(i){return new(i||l)(t.Y36(mt))},l.\u0275cmp=t.Xpm({type:l,selectors:[["button","nz-modal-close",""]],hostAttrs:["aria-label","Close",1,"ant-modal-close"],exportAs:["NzModalCloseBuiltin"],attrs:z,decls:2,vars:1,consts:[[1,"ant-modal-close-x"],[4,"nzStringTemplateOutlet"],["nz-icon","",1,"ant-modal-close-icon",3,"nzType"]],template:function(i,_){1&i&&(t.TgZ(0,"span",0),t.YNc(1,N,2,1,"ng-container",1),t.qZA()),2&i&&(t.xp6(1),t.Q6J("nzStringTemplateOutlet",_.config.nzCloseIcon))},directives:[a.f,Z.w,E.Ls],encapsulation:2,changeDetection:0}),l})(),Q=(()=>{class l{constructor(i,_){this.i18n=i,this.config=_,this.buttonsFooter=!1,this.buttons=[],this.cancelTriggered=new t.vpe,this.okTriggered=new t.vpe,this.destroy$=new p.xQ,Array.isArray(_.nzFooter)&&(this.buttonsFooter=!0,this.buttons=_.nzFooter.map(r)),this.i18n.localeChange.pipe((0,T.R)(this.destroy$)).subscribe(()=>{this.locale=this.i18n.getLocaleData("Modal")})}onCancel(){this.cancelTriggered.emit()}onOk(){this.okTriggered.emit()}getButtonCallableProp(i,_){const Y=i[_],at=this.modalRef.getContentComponent();return"function"==typeof Y?Y.apply(i,at&&[at]):Y}onButtonClick(i){if(!this.getButtonCallableProp(i,"loading")){const Y=this.getButtonCallableProp(i,"onClick");i.autoLoading&&(0,O.tI)(Y)&&(i.loading=!0,Y.then(()=>i.loading=!1).catch(()=>i.loading=!1))}}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return l.\u0275fac=function(i){return new(i||l)(t.Y36(j.wi),t.Y36(mt))},l.\u0275cmp=t.Xpm({type:l,selectors:[["div","nz-modal-footer",""]],hostAttrs:[1,"ant-modal-footer"],inputs:{modalRef:"modalRef"},outputs:{cancelTriggered:"cancelTriggered",okTriggered:"okTriggered"},exportAs:["NzModalFooterBuiltin"],attrs:lt,decls:3,vars:2,consts:[[4,"ngIf","ngIfElse"],["defaultFooterButtons",""],[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"],[3,"innerHTML",4,"ngIf"],[4,"ngIf"],[3,"innerHTML"],["nz-button","",3,"hidden","nzLoading","disabled","nzType","nzDanger","nzShape","nzSize","nzGhost","click",4,"ngFor","ngForOf"],["nz-button","",3,"hidden","nzLoading","disabled","nzType","nzDanger","nzShape","nzSize","nzGhost","click"],["nz-button","",3,"nzLoading","disabled","click",4,"ngIf"],["nz-button","",3,"nzType","nzDanger","nzLoading","disabled","click",4,"ngIf"],["nz-button","",3,"nzLoading","disabled","click"],["nz-button","",3,"nzType","nzDanger","nzLoading","disabled","click"]],template:function(i,_){if(1&i&&(t.YNc(0,xt,2,5,"ng-container",0),t.YNc(1,Gt,2,2,"ng-template",null,1,t.W1O)),2&i){const Y=t.MAs(2);t.Q6J("ngIf",_.config.nzFooter)("ngIfElse",Y)}},directives:[P.O5,a.f,P.sg,C.ix,st.dQ,Z.w],encapsulation:2}),l})();function r(l){return Object.assign({type:null,size:"default",autoLoading:!0,show:!0,loading:!1,disabled:!1},l)}let c=(()=>{class l{constructor(i){this.config=i}}return l.\u0275fac=function(i){return new(i||l)(t.Y36(mt))},l.\u0275cmp=t.Xpm({type:l,selectors:[["div","nz-modal-title",""]],hostAttrs:[1,"ant-modal-header"],exportAs:["NzModalTitleBuiltin"],attrs:Vt,decls:2,vars:1,consts:[[1,"ant-modal-title"],[4,"nzStringTemplateOutlet"],[3,"innerHTML"]],template:function(i,_){1&i&&(t.TgZ(0,"div",0),t.YNc(1,oe,2,1,"ng-container",1),t.qZA()),2&i&&(t.xp6(1),t.Q6J("nzStringTemplateOutlet",_.config.nzTitle))},directives:[a.f],encapsulation:2,changeDetection:0}),l})(),k=(()=>{class l{}return l.\u0275fac=function(i){return new(i||l)},l.\u0275mod=t.oAB({type:l}),l.\u0275inj=t.cJS({providers:[Ht],imports:[[P.ez,e.vT,o.U8,a.T,s.eL,j.YI,C.sL,E.PV,vt,u.g,vt]]}),l})()},1398:(ot,M,n)=>{n.d(M,{Bq:()=>U,Of:()=>I,Dg:()=>B,aF:()=>g});var e=n(7716),o=n(4762),s=n(946),t=n(665),p=n(226),d=n(9765),T=n(6782),y=n(6182),A=n(8583),w=n(9238);const R=["*"],O=["inputElement"],P=["nz-radio",""];let U=(()=>{class C{}return C.\u0275fac=function(a){return new(a||C)},C.\u0275dir=e.lG2({type:C,selectors:[["","nz-radio-button",""]]}),C})(),j=(()=>{class C{constructor(){this.selected$=new p.t(1),this.touched$=new d.xQ,this.disabled$=new p.t(1),this.name$=new p.t(1)}touch(){this.touched$.next()}select(a){this.selected$.next(a)}setDisabled(a){this.disabled$.next(a)}setName(a){this.name$.next(a)}}return C.\u0275fac=function(a){return new(a||C)},C.\u0275prov=e.Yz7({token:C,factory:C.\u0275fac}),C})(),B=(()=>{class C{constructor(a,E,b,x){this.cdr=a,this.nzRadioService=E,this.elementRef=b,this.directionality=x,this.value=null,this.destroy$=new d.xQ,this.onChange=()=>{},this.onTouched=()=>{},this.nzDisabled=!1,this.nzButtonStyle="outline",this.nzSize="default",this.nzName=null,this.dir="ltr",this.elementRef.nativeElement.classList.add("ant-radio-group")}ngOnInit(){var a;this.nzRadioService.selected$.pipe((0,T.R)(this.destroy$)).subscribe(E=>{this.value!==E&&(this.value=E,this.onChange(this.value))}),this.nzRadioService.touched$.pipe((0,T.R)(this.destroy$)).subscribe(()=>{Promise.resolve().then(()=>this.onTouched())}),null===(a=this.directionality.change)||void 0===a||a.pipe((0,T.R)(this.destroy$)).subscribe(E=>{this.dir=E,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnChanges(a){const{nzDisabled:E,nzName:b}=a;E&&this.nzRadioService.setDisabled(this.nzDisabled),b&&this.nzRadioService.setName(this.nzName)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}writeValue(a){this.value=a,this.nzRadioService.select(a),this.cdr.markForCheck()}registerOnChange(a){this.onChange=a}registerOnTouched(a){this.onTouched=a}setDisabledState(a){this.nzDisabled=a,this.nzRadioService.setDisabled(a),this.cdr.markForCheck()}}return C.\u0275fac=function(a){return new(a||C)(e.Y36(e.sBO),e.Y36(j),e.Y36(e.SBq),e.Y36(s.Is,8))},C.\u0275cmp=e.Xpm({type:C,selectors:[["nz-radio-group"]],hostVars:8,hostBindings:function(a,E){2&a&&e.ekj("ant-radio-group-large","large"===E.nzSize)("ant-radio-group-small","small"===E.nzSize)("ant-radio-group-solid","solid"===E.nzButtonStyle)("ant-radio-group-rtl","rtl"===E.dir)},inputs:{nzDisabled:"nzDisabled",nzButtonStyle:"nzButtonStyle",nzSize:"nzSize",nzName:"nzName"},exportAs:["nzRadioGroup"],features:[e._Bn([j,{provide:t.JU,useExisting:(0,e.Gpc)(()=>C),multi:!0}]),e.TTD],ngContentSelectors:R,decls:1,vars:0,template:function(a,E){1&a&&(e.F$t(),e.Hsn(0))},encapsulation:2,changeDetection:0}),(0,o.gn)([(0,y.yF)()],C.prototype,"nzDisabled",void 0),C})(),I=(()=>{class C{constructor(a,E,b,x,G,V){this.elementRef=a,this.cdr=E,this.focusMonitor=b,this.directionality=x,this.nzRadioService=G,this.nzRadioButtonDirective=V,this.isNgModel=!1,this.destroy$=new d.xQ,this.isChecked=!1,this.name=null,this.isRadioButton=!!this.nzRadioButtonDirective,this.onChange=()=>{},this.onTouched=()=>{},this.nzValue=null,this.nzDisabled=!1,this.nzAutoFocus=!1,this.dir="ltr"}onHostClick(a){a.stopPropagation(),a.preventDefault(),!this.nzDisabled&&!this.isChecked&&(this.nzRadioService&&this.nzRadioService.select(this.nzValue),this.isNgModel&&(this.isChecked=!0,this.onChange(!0)))}focus(){this.focusMonitor.focusVia(this.inputElement,"keyboard")}blur(){this.inputElement.nativeElement.blur()}setDisabledState(a){this.nzDisabled=a,this.cdr.markForCheck()}writeValue(a){this.isChecked=a,this.cdr.markForCheck()}registerOnChange(a){this.isNgModel=!0,this.onChange=a}registerOnTouched(a){this.onTouched=a}ngOnInit(){var a;this.nzRadioService&&(this.nzRadioService.name$.pipe((0,T.R)(this.destroy$)).subscribe(E=>{this.name=E,this.cdr.markForCheck()}),this.nzRadioService.disabled$.pipe((0,T.R)(this.destroy$)).subscribe(E=>{this.nzDisabled=E,this.cdr.markForCheck()}),this.nzRadioService.selected$.pipe((0,T.R)(this.destroy$)).subscribe(E=>{this.isChecked=this.nzValue===E,this.cdr.markForCheck()})),this.focusMonitor.monitor(this.elementRef,!0).pipe((0,T.R)(this.destroy$)).subscribe(E=>{E||(Promise.resolve().then(()=>this.onTouched()),this.nzRadioService&&this.nzRadioService.touch())}),null===(a=this.directionality.change)||void 0===a||a.pipe((0,T.R)(this.destroy$)).subscribe(E=>{this.dir=E,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngAfterViewInit(){this.nzAutoFocus&&this.focus()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete(),this.focusMonitor.stopMonitoring(this.elementRef)}}return C.\u0275fac=function(a){return new(a||C)(e.Y36(e.SBq),e.Y36(e.sBO),e.Y36(w.tE),e.Y36(s.Is,8),e.Y36(j,8),e.Y36(U,8))},C.\u0275cmp=e.Xpm({type:C,selectors:[["","nz-radio",""],["","nz-radio-button",""]],viewQuery:function(a,E){if(1&a&&e.Gf(O,5),2&a){let b;e.iGM(b=e.CRH())&&(E.inputElement=b.first)}},hostVars:16,hostBindings:function(a,E){1&a&&e.NdJ("click",function(x){return E.onHostClick(x)}),2&a&&e.ekj("ant-radio-wrapper",!E.isRadioButton)("ant-radio-button-wrapper",E.isRadioButton)("ant-radio-wrapper-checked",E.isChecked&&!E.isRadioButton)("ant-radio-button-wrapper-checked",E.isChecked&&E.isRadioButton)("ant-radio-wrapper-disabled",E.nzDisabled&&!E.isRadioButton)("ant-radio-button-wrapper-disabled",E.nzDisabled&&E.isRadioButton)("ant-radio-wrapper-rtl",!E.isRadioButton&&"rtl"===E.dir)("ant-radio-button-wrapper-rtl",E.isRadioButton&&"rtl"===E.dir)},inputs:{nzValue:"nzValue",nzDisabled:"nzDisabled",nzAutoFocus:"nzAutoFocus"},exportAs:["nzRadio"],features:[e._Bn([{provide:t.JU,useExisting:(0,e.Gpc)(()=>C),multi:!0}])],attrs:P,ngContentSelectors:R,decls:6,vars:24,consts:[["type","radio",3,"disabled","checked"],["inputElement",""]],template:function(a,E){1&a&&(e.F$t(),e.TgZ(0,"span"),e._UZ(1,"input",0,1),e._UZ(3,"span"),e.qZA(),e.TgZ(4,"span"),e.Hsn(5),e.qZA()),2&a&&(e.ekj("ant-radio",!E.isRadioButton)("ant-radio-checked",E.isChecked&&!E.isRadioButton)("ant-radio-disabled",E.nzDisabled&&!E.isRadioButton)("ant-radio-button",E.isRadioButton)("ant-radio-button-checked",E.isChecked&&E.isRadioButton)("ant-radio-button-disabled",E.nzDisabled&&E.isRadioButton),e.xp6(1),e.ekj("ant-radio-input",!E.isRadioButton)("ant-radio-button-input",E.isRadioButton),e.Q6J("disabled",E.nzDisabled)("checked",E.isChecked),e.uIk("autofocus",E.nzAutoFocus?"autofocus":null)("name",E.name),e.xp6(2),e.ekj("ant-radio-inner",!E.isRadioButton)("ant-radio-button-inner",E.isRadioButton))},encapsulation:2,changeDetection:0}),(0,o.gn)([(0,y.yF)()],C.prototype,"nzDisabled",void 0),(0,o.gn)([(0,y.yF)()],C.prototype,"nzAutoFocus",void 0),C})(),g=(()=>{class C{}return C.\u0275fac=function(a){return new(a||C)},C.\u0275mod=e.oAB({type:C}),C.\u0275inj=e.cJS({imports:[[s.vT,A.ez,t.u5]]}),C})()},269:(ot,M,n)=>{n.d(M,{Ip:()=>St,Vq:()=>kt,LV:()=>te});var e=n(7716),o=n(9765),s=n(6215),t=n(9112),p=n(6682),d=n(1776),T=n(4762),y=n(9761),A=n(6782),w=n(3190),R=n(4226),O=n(6182),P=n(9238),U=n(946),j=n(6461),B=n(625),I=n(521),g=n(665),C=n(7070),u=n(2729),a=n(641),E=n(6169),b=n(8583),x=n(8178),G=n(6911),V=n(4514),$=n(2482),X=n(6756),rt=n(464);const ut=["*"];function Ct(f,Q){if(1&f&&(e.TgZ(0,"div",4),e._UZ(1,"nz-embed-empty",5),e.qZA()),2&f){const r=e.oxw();e.xp6(1),e.Q6J("specificContent",r.notFoundContent)}}function vt(f,Q){if(1&f&&e._UZ(0,"nz-option-item-group",9),2&f){const r=e.oxw().$implicit;e.Q6J("nzLabel",r.groupLabel)}}function tt(f,Q){if(1&f){const r=e.EpF();e.TgZ(0,"nz-option-item",10),e.NdJ("itemHover",function(k){return e.CHM(r),e.oxw(2).onItemHover(k)})("itemClick",function(k){return e.CHM(r),e.oxw(2).onItemClick(k)}),e.qZA()}if(2&f){const r=e.oxw().$implicit,c=e.oxw();e.Q6J("icon",c.menuItemSelectedIcon)("customContent",r.nzCustomContent)("template",r.template)("grouped",!!r.groupLabel)("disabled",r.nzDisabled)("showState","tags"===c.mode||"multiple"===c.mode)("label",r.nzLabel)("compareWith",c.compareWith)("activatedValue",c.activatedValue)("listOfSelectedValue",c.listOfSelectedValue)("value",r.nzValue)}}function dt(f,Q){1&f&&(e.ynx(0,6),e.YNc(1,vt,1,1,"nz-option-item-group",7),e.YNc(2,tt,1,11,"nz-option-item",8),e.BQk()),2&f&&(e.Q6J("ngSwitch",Q.$implicit.type),e.xp6(1),e.Q6J("ngSwitchCase","group"),e.xp6(1),e.Q6J("ngSwitchCase","item"))}function Z(f,Q){}function st(f,Q){1&f&&e.Hsn(0)}const F=["inputElement"],q=["mirrorElement"];function pt(f,Q){1&f&&e._UZ(0,"span",3,4)}function et(f,Q){if(1&f&&e._UZ(0,"nz-select-item",6),2&f){const r=e.oxw(2);e.Q6J("deletable",!1)("disabled",!1)("removeIcon",r.removeIcon)("label",r.listOfTopItem[0].nzLabel)("contentTemplateOutlet",r.customTemplate)("contentTemplateOutletContext",r.listOfTopItem[0])}}function ct(f,Q){if(1&f){const r=e.EpF();e.ynx(0),e.TgZ(1,"nz-select-search",4),e.NdJ("isComposingChange",function(k){return e.CHM(r),e.oxw().isComposingChange(k)})("valueChange",function(k){return e.CHM(r),e.oxw().onInputValueChange(k)}),e.qZA(),e.YNc(2,et,1,6,"nz-select-item",5),e.BQk()}if(2&f){const r=e.oxw();e.xp6(1),e.Q6J("nzId",r.nzId)("disabled",r.disabled)("value",r.inputValue)("showInput",r.showSearch)("mirrorSync",!1)("autofocus",r.autofocus)("focusTrigger",r.open),e.xp6(1),e.Q6J("ngIf",r.isShowSingleLabel)}}function S(f,Q){if(1&f){const r=e.EpF();e.TgZ(0,"nz-select-item",9),e.NdJ("delete",function(){const H=e.CHM(r).$implicit;return e.oxw(2).onDeleteItem(H.contentTemplateOutletContext)}),e.qZA()}if(2&f){const r=Q.$implicit,c=e.oxw(2);e.Q6J("removeIcon",c.removeIcon)("label",r.nzLabel)("disabled",r.nzDisabled||c.disabled)("contentTemplateOutlet",r.contentTemplateOutlet)("deletable",!0)("contentTemplateOutletContext",r.contentTemplateOutletContext)}}function K(f,Q){if(1&f){const r=e.EpF();e.ynx(0),e.YNc(1,S,1,6,"nz-select-item",7),e.TgZ(2,"nz-select-search",8),e.NdJ("isComposingChange",function(k){return e.CHM(r),e.oxw().isComposingChange(k)})("valueChange",function(k){return e.CHM(r),e.oxw().onInputValueChange(k)}),e.qZA(),e.BQk()}if(2&f){const r=e.oxw();e.xp6(1),e.Q6J("ngForOf",r.listOfSlicedItem)("ngForTrackBy",r.trackValue),e.xp6(1),e.Q6J("nzId",r.nzId)("disabled",r.disabled)("value",r.inputValue)("autofocus",r.autofocus)("showInput",!0)("mirrorSync",!0)("focusTrigger",r.open)}}function h(f,Q){if(1&f&&e._UZ(0,"nz-select-placeholder",10),2&f){const r=e.oxw();e.Q6J("placeholder",r.placeHolder)}}function D(f,Q){if(1&f&&e._UZ(0,"nz-select-arrow",5),2&f){const r=e.oxw();e.Q6J("loading",r.nzLoading)("search",r.nzOpen&&r.nzShowSearch)("suffixIcon",r.nzSuffixIcon)}}function v(f,Q){if(1&f){const r=e.EpF();e.TgZ(0,"nz-select-clear",6),e.NdJ("clear",function(){return e.CHM(r),e.oxw().onClearSelection()}),e.qZA()}if(2&f){const r=e.oxw();e.Q6J("clearIcon",r.nzClearIcon)}}function m(f,Q){if(1&f){const r=e.EpF();e.TgZ(0,"nz-option-container",7),e.NdJ("keydown",function(k){return e.CHM(r),e.oxw().onKeyDown(k)})("itemClick",function(k){return e.CHM(r),e.oxw().onItemClick(k)})("scrollToBottom",function(){return e.CHM(r),e.oxw().nzScrollToBottom.emit()}),e.qZA()}if(2&f){const r=e.oxw();e.ekj("ant-select-dropdown-placement-bottomLeft","bottom"===r.dropDownPosition)("ant-select-dropdown-placement-topLeft","top"===r.dropDownPosition),e.Q6J("ngStyle",r.nzDropdownStyle)("itemSize",r.nzOptionHeightPx)("maxItemLength",r.nzOptionOverflowSize)("matchWidth",r.nzDropdownMatchSelectWidth)("@slideMotion","enter")("@.disabled",null==r.noAnimation?null:r.noAnimation.nzNoAnimation)("nzNoAnimation",null==r.noAnimation?null:r.noAnimation.nzNoAnimation)("listOfContainerItem",r.listOfContainerItem)("menuItemSelectedIcon",r.nzMenuItemSelectedIcon)("notFoundContent",r.nzNotFoundContent)("activatedValue",r.activatedValue)("listOfSelectedValue",r.listOfValue)("dropdownRender",r.nzDropdownRender)("compareWith",r.compareWith)("mode",r.nzMode)}}function nt(f,Q){if(1&f&&(e.ynx(0),e._uU(1),e.BQk()),2&f){const r=e.oxw();e.xp6(1),e.Oqu(r.nzLabel)}}function z(f,Q){if(1&f&&(e.ynx(0),e._uU(1),e.BQk()),2&f){const r=e.oxw();e.xp6(1),e.Oqu(r.label)}}function N(f,Q){}function lt(f,Q){if(1&f&&(e.ynx(0),e.YNc(1,N,0,0,"ng-template",3),e.BQk()),2&f){const r=e.oxw();e.xp6(1),e.Q6J("ngTemplateOutlet",r.template)}}function ht(f,Q){1&f&&e._UZ(0,"i",6)}function Mt(f,Q){if(1&f&&(e.TgZ(0,"div",4),e.YNc(1,ht,1,0,"i",5),e.qZA()),2&f){const r=e.oxw();e.xp6(1),e.Q6J("ngIf",!r.icon)("ngIfElse",r.icon)}}function yt(f,Q){1&f&&e._UZ(0,"i",2)}function Pt(f,Q){1&f&&e._UZ(0,"i",7)}function wt(f,Q){1&f&&e._UZ(0,"i",8)}function xt(f,Q){if(1&f&&(e.ynx(0),e.YNc(1,Pt,1,0,"i",5),e.YNc(2,wt,1,0,"i",6),e.BQk()),2&f){const r=e.oxw(2);e.xp6(1),e.Q6J("ngIf",!r.search),e.xp6(1),e.Q6J("ngIf",r.search)}}function Qt(f,Q){if(1&f&&(e.ynx(0),e._UZ(1,"i",10),e.BQk()),2&f){const r=Q.$implicit;e.xp6(1),e.Q6J("nzType",r)}}function $t(f,Q){if(1&f&&e.YNc(0,Qt,2,1,"ng-container",9),2&f){const r=e.oxw(2);e.Q6J("nzStringTemplateOutlet",r.suffixIcon)}}function Gt(f,Q){if(1&f&&(e.YNc(0,xt,3,2,"ng-container",3),e.YNc(1,$t,1,1,"ng-template",null,4,e.W1O)),2&f){const r=e.MAs(2),c=e.oxw();e.Q6J("ngIf",!c.suffixIcon)("ngIfElse",r)}}function Vt(f,Q){1&f&&e._UZ(0,"i",1)}function oe(f,Q){if(1&f&&(e.TgZ(0,"div",4),e._uU(1),e.qZA()),2&f){const r=e.oxw(2);e.xp6(1),e.Oqu(r.label)}}function J(f,Q){if(1&f&&e._uU(0),2&f){const r=e.oxw(2);e.Oqu(r.label)}}function it(f,Q){if(1&f&&(e.ynx(0),e.YNc(1,oe,2,1,"div",2),e.YNc(2,J,1,1,"ng-template",null,3,e.W1O),e.BQk()),2&f){const r=e.MAs(3),c=e.oxw();e.xp6(1),e.Q6J("ngIf",c.deletable)("ngIfElse",r)}}function mt(f,Q){1&f&&e._UZ(0,"i",7)}function gt(f,Q){if(1&f){const r=e.EpF();e.TgZ(0,"span",5),e.NdJ("click",function(k){return e.CHM(r),e.oxw().onDelete(k)}),e.YNc(1,mt,1,0,"i",6),e.qZA()}if(2&f){const r=e.oxw();e.xp6(1),e.Q6J("ngIf",!r.removeIcon)("ngIfElse",r.removeIcon)}}const Dt=function(f){return{$implicit:f}};function ft(f,Q){if(1&f&&(e.ynx(0),e._uU(1),e.BQk()),2&f){const r=e.oxw();e.xp6(1),e.hij(" ",r.placeholder," ")}}let Et=(()=>{class f{constructor(){this.nzLabel=null,this.changes=new o.xQ}ngOnChanges(){this.changes.next()}}return f.\u0275fac=function(r){return new(r||f)},f.\u0275cmp=e.Xpm({type:f,selectors:[["nz-option-group"]],inputs:{nzLabel:"nzLabel"},exportAs:["nzOptionGroup"],features:[e.TTD],ngContentSelectors:ut,decls:1,vars:0,template:function(r,c){1&r&&(e.F$t(),e.Hsn(0))},encapsulation:2,changeDetection:0}),f})(),Rt=(()=>{class f{constructor(r){this.elementRef=r,this.notFoundContent=void 0,this.menuItemSelectedIcon=null,this.dropdownRender=null,this.activatedValue=null,this.listOfSelectedValue=[],this.mode="default",this.matchWidth=!0,this.itemSize=32,this.maxItemLength=8,this.listOfContainerItem=[],this.itemClick=new e.vpe,this.scrollToBottom=new e.vpe,this.scrolledIndex=0,this.elementRef.nativeElement.classList.add("ant-select-dropdown")}onItemClick(r){this.itemClick.emit(r)}onItemHover(r){this.activatedValue=r}trackValue(r,c){return c.key}onScrolledIndexChange(r){this.scrolledIndex=r,r===this.listOfContainerItem.length-this.maxItemLength&&this.scrollToBottom.emit()}scrollToActivatedValue(){const r=this.listOfContainerItem.findIndex(c=>this.compareWith(c.key,this.activatedValue));(r<this.scrolledIndex||r>=this.scrolledIndex+this.maxItemLength)&&this.cdkVirtualScrollViewport.scrollToIndex(r||0)}ngOnChanges(r){const{listOfContainerItem:c,activatedValue:k}=r;(c||k)&&this.scrollToActivatedValue()}ngAfterViewInit(){setTimeout(()=>this.scrollToActivatedValue())}}return f.\u0275fac=function(r){return new(r||f)(e.Y36(e.SBq))},f.\u0275cmp=e.Xpm({type:f,selectors:[["nz-option-container"]],viewQuery:function(r,c){if(1&r&&e.Gf(d.N7,7),2&r){let k;e.iGM(k=e.CRH())&&(c.cdkVirtualScrollViewport=k.first)}},inputs:{notFoundContent:"notFoundContent",menuItemSelectedIcon:"menuItemSelectedIcon",dropdownRender:"dropdownRender",activatedValue:"activatedValue",listOfSelectedValue:"listOfSelectedValue",mode:"mode",matchWidth:"matchWidth",itemSize:"itemSize",maxItemLength:"maxItemLength",listOfContainerItem:"listOfContainerItem",compareWith:"compareWith"},outputs:{itemClick:"itemClick",scrollToBottom:"scrollToBottom"},exportAs:["nzOptionContainer"],features:[e.TTD],decls:5,vars:14,consts:[["class","ant-select-item-empty",4,"ngIf"],[3,"itemSize","maxBufferPx","minBufferPx","scrolledIndexChange"],["cdkVirtualFor","",3,"cdkVirtualForOf","cdkVirtualForTrackBy","cdkVirtualForTemplateCacheSize"],[3,"ngTemplateOutlet"],[1,"ant-select-item-empty"],["nzComponentName","select",3,"specificContent"],[3,"ngSwitch"],[3,"nzLabel",4,"ngSwitchCase"],[3,"icon","customContent","template","grouped","disabled","showState","label","compareWith","activatedValue","listOfSelectedValue","value","itemHover","itemClick",4,"ngSwitchCase"],[3,"nzLabel"],[3,"icon","customContent","template","grouped","disabled","showState","label","compareWith","activatedValue","listOfSelectedValue","value","itemHover","itemClick"]],template:function(r,c){1&r&&(e.TgZ(0,"div"),e.YNc(1,Ct,2,1,"div",0),e.TgZ(2,"cdk-virtual-scroll-viewport",1),e.NdJ("scrolledIndexChange",function(H){return c.onScrolledIndexChange(H)}),e.YNc(3,dt,3,3,"ng-template",2),e.qZA(),e.YNc(4,Z,0,0,"ng-template",3),e.qZA()),2&r&&(e.xp6(1),e.Q6J("ngIf",0===c.listOfContainerItem.length),e.xp6(1),e.Udp("height",c.listOfContainerItem.length*c.itemSize,"px")("max-height",c.itemSize*c.maxItemLength,"px"),e.ekj("full-width",!c.matchWidth),e.Q6J("itemSize",c.itemSize)("maxBufferPx",c.itemSize*c.maxItemLength)("minBufferPx",c.itemSize*c.maxItemLength),e.xp6(1),e.Q6J("cdkVirtualForOf",c.listOfContainerItem)("cdkVirtualForTrackBy",c.trackValue)("cdkVirtualForTemplateCacheSize",0),e.xp6(1),e.Q6J("ngTemplateOutlet",c.dropdownRender))},directives:function(){return[b.O5,d.N7,d.xd,d.x0,b.tP,$.gB,b.RF,b.n9,Ut,Wt]},encapsulation:2,changeDetection:0}),f})(),St=(()=>{class f{constructor(r,c){this.nzOptionGroupComponent=r,this.destroy$=c,this.changes=new o.xQ,this.groupLabel=null,this.nzLabel=null,this.nzValue=null,this.nzDisabled=!1,this.nzHide=!1,this.nzCustomContent=!1}ngOnInit(){this.nzOptionGroupComponent&&this.nzOptionGroupComponent.changes.pipe((0,y.O)(!0),(0,A.R)(this.destroy$)).subscribe(()=>{this.groupLabel=this.nzOptionGroupComponent.nzLabel})}ngOnChanges(){this.changes.next()}}return f.\u0275fac=function(r){return new(r||f)(e.Y36(Et,8),e.Y36(R.kn))},f.\u0275cmp=e.Xpm({type:f,selectors:[["nz-option"]],viewQuery:function(r,c){if(1&r&&e.Gf(e.Rgc,7),2&r){let k;e.iGM(k=e.CRH())&&(c.template=k.first)}},inputs:{nzLabel:"nzLabel",nzValue:"nzValue",nzDisabled:"nzDisabled",nzHide:"nzHide",nzCustomContent:"nzCustomContent"},exportAs:["nzOption"],features:[e._Bn([R.kn]),e.TTD],ngContentSelectors:ut,decls:1,vars:0,template:function(r,c){1&r&&(e.F$t(),e.YNc(0,st,1,0,"ng-template"))},encapsulation:2,changeDetection:0}),(0,T.gn)([(0,O.yF)()],f.prototype,"nzDisabled",void 0),(0,T.gn)([(0,O.yF)()],f.prototype,"nzHide",void 0),(0,T.gn)([(0,O.yF)()],f.prototype,"nzCustomContent",void 0),f})(),At=(()=>{class f{constructor(r,c,k){this.elementRef=r,this.renderer=c,this.focusMonitor=k,this.nzId=null,this.disabled=!1,this.mirrorSync=!1,this.showInput=!0,this.focusTrigger=!1,this.value="",this.autofocus=!1,this.valueChange=new e.vpe,this.isComposingChange=new e.vpe,this.elementRef.nativeElement.classList.add("ant-select-selection-search")}setCompositionState(r){this.isComposingChange.next(r)}onValueChange(r){this.value=r,this.valueChange.next(r),this.mirrorSync&&this.syncMirrorWidth()}clearInputValue(){this.inputElement.nativeElement.value="",this.onValueChange("")}syncMirrorWidth(){const r=this.mirrorElement.nativeElement,c=this.elementRef.nativeElement,k=this.inputElement.nativeElement;this.renderer.removeStyle(c,"width"),r.innerHTML=this.renderer.createText(`${k.value} `),this.renderer.setStyle(c,"width",`${r.scrollWidth}px`)}focus(){this.focusMonitor.focusVia(this.inputElement,"keyboard")}blur(){this.inputElement.nativeElement.blur()}ngOnChanges(r){const c=this.inputElement.nativeElement,{focusTrigger:k,showInput:H}=r;H&&(this.showInput?this.renderer.removeAttribute(c,"readonly"):this.renderer.setAttribute(c,"readonly","readonly")),k&&!0===k.currentValue&&!1===k.previousValue&&c.focus()}ngAfterViewInit(){this.mirrorSync&&this.syncMirrorWidth(),this.autofocus&&this.focus()}}return f.\u0275fac=function(r){return new(r||f)(e.Y36(e.SBq),e.Y36(e.Qsj),e.Y36(P.tE))},f.\u0275cmp=e.Xpm({type:f,selectors:[["nz-select-search"]],viewQuery:function(r,c){if(1&r&&(e.Gf(F,7),e.Gf(q,5)),2&r){let k;e.iGM(k=e.CRH())&&(c.inputElement=k.first),e.iGM(k=e.CRH())&&(c.mirrorElement=k.first)}},inputs:{nzId:"nzId",disabled:"disabled",mirrorSync:"mirrorSync",showInput:"showInput",focusTrigger:"focusTrigger",value:"value",autofocus:"autofocus"},outputs:{valueChange:"valueChange",isComposingChange:"isComposingChange"},features:[e._Bn([{provide:g.ve,useValue:!1}]),e.TTD],decls:3,vars:7,consts:[["autocomplete","off",1,"ant-select-selection-search-input",3,"ngModel","disabled","ngModelChange","compositionstart","compositionend"],["inputElement",""],["class","ant-select-selection-search-mirror",4,"ngIf"],[1,"ant-select-selection-search-mirror"],["mirrorElement",""]],template:function(r,c){1&r&&(e.TgZ(0,"input",0,1),e.NdJ("ngModelChange",function(H){return c.onValueChange(H)})("compositionstart",function(){return c.setCompositionState(!0)})("compositionend",function(){return c.setCompositionState(!1)}),e.qZA(),e.YNc(2,pt,2,0,"span",2)),2&r&&(e.Udp("opacity",c.showInput?null:0),e.Q6J("ngModel",c.value)("disabled",c.disabled),e.uIk("id",c.nzId)("autofocus",c.autofocus?"autofocus":null),e.xp6(2),e.Q6J("ngIf",c.mirrorSync))},directives:[g.Fj,g.JJ,g.On,b.O5],encapsulation:2,changeDetection:0}),f})(),Ft=(()=>{class f{constructor(r,c){this.elementRef=r,this.noAnimation=c,this.nzId=null,this.showSearch=!1,this.placeHolder=null,this.open=!1,this.maxTagCount=1/0,this.autofocus=!1,this.disabled=!1,this.mode="default",this.customTemplate=null,this.maxTagPlaceholder=null,this.removeIcon=null,this.listOfTopItem=[],this.tokenSeparators=[],this.tokenize=new e.vpe,this.inputValueChange=new e.vpe,this.deleteItem=new e.vpe,this.listOfSlicedItem=[],this.isShowPlaceholder=!0,this.isShowSingleLabel=!1,this.isComposing=!1,this.inputValue=null,this.elementRef.nativeElement.classList.add("ant-select-selector")}onHostKeydown(r){r.keyCode===j.ZH&&"default"!==this.mode&&!r.target.value&&this.listOfTopItem.length>0&&(r.preventDefault(),this.onDeleteItem(this.listOfTopItem[this.listOfTopItem.length-1]))}onHostClick(r){r.target!==this.nzSelectSearchComponent.inputElement.nativeElement&&this.nzSelectSearchComponent.focus()}updateTemplateVariable(){const r=0===this.listOfTopItem.length;this.isShowPlaceholder=r&&!this.isComposing&&!this.inputValue,this.isShowSingleLabel=!r&&!this.isComposing&&!this.inputValue}isComposingChange(r){this.isComposing=r,this.updateTemplateVariable()}onInputValueChange(r){r!==this.inputValue&&(this.inputValue=r,this.updateTemplateVariable(),this.inputValueChange.emit(r),this.tokenSeparate(r,this.tokenSeparators))}tokenSeparate(r,c){if(r&&r.length&&c.length&&"default"!==this.mode&&((l,L)=>{for(let i=0;i<L.length;++i)if(l.lastIndexOf(L[i])>0)return!0;return!1})(r,c)){const l=((l,L)=>{const i=new RegExp(`[${L.join()}]`),_=l.split(i).filter(Y=>Y);return[...new Set(_)]})(r,c);this.tokenize.next(l)}}clearInputValue(){this.nzSelectSearchComponent&&this.nzSelectSearchComponent.clearInputValue()}focus(){this.nzSelectSearchComponent&&this.nzSelectSearchComponent.focus()}blur(){this.nzSelectSearchComponent&&this.nzSelectSearchComponent.blur()}trackValue(r,c){return c.nzValue}onDeleteItem(r){!this.disabled&&!r.nzDisabled&&this.deleteItem.next(r)}ngOnChanges(r){const{listOfTopItem:c,maxTagCount:k,customTemplate:H,maxTagPlaceholder:l}=r;if(c&&this.updateTemplateVariable(),c||k||H||l){const L=this.listOfTopItem.slice(0,this.maxTagCount).map(i=>({nzLabel:i.nzLabel,nzValue:i.nzValue,nzDisabled:i.nzDisabled,contentTemplateOutlet:this.customTemplate,contentTemplateOutletContext:i}));if(this.listOfTopItem.length>this.maxTagCount){const i=`+ ${this.listOfTopItem.length-this.maxTagCount} ...`,_=this.listOfTopItem.map(at=>at.nzValue),Y={nzLabel:i,nzValue:"$$__nz_exceeded_item",nzDisabled:!0,contentTemplateOutlet:this.maxTagPlaceholder,contentTemplateOutletContext:_.slice(this.maxTagCount)};L.push(Y)}this.listOfSlicedItem=L}}}return f.\u0275fac=function(r){return new(r||f)(e.Y36(e.SBq),e.Y36(a.P,9))},f.\u0275cmp=e.Xpm({type:f,selectors:[["nz-select-top-control"]],viewQuery:function(r,c){if(1&r&&e.Gf(At,5),2&r){let k;e.iGM(k=e.CRH())&&(c.nzSelectSearchComponent=k.first)}},hostBindings:function(r,c){1&r&&e.NdJ("keydown",function(H){return c.onHostKeydown(H)})("click",function(H){return c.onHostClick(H)})},inputs:{nzId:"nzId",showSearch:"showSearch",placeHolder:"placeHolder",open:"open",maxTagCount:"maxTagCount",autofocus:"autofocus",disabled:"disabled",mode:"mode",customTemplate:"customTemplate",maxTagPlaceholder:"maxTagPlaceholder",removeIcon:"removeIcon",listOfTopItem:"listOfTopItem",tokenSeparators:"tokenSeparators"},outputs:{tokenize:"tokenize",inputValueChange:"inputValueChange",deleteItem:"deleteItem"},exportAs:["nzSelectTopControl"],features:[e.TTD],decls:4,vars:3,consts:[[3,"ngSwitch"],[4,"ngSwitchCase"],[4,"ngSwitchDefault"],[3,"placeholder",4,"ngIf"],[3,"nzId","disabled","value","showInput","mirrorSync","autofocus","focusTrigger","isComposingChange","valueChange"],[3,"deletable","disabled","removeIcon","label","contentTemplateOutlet","contentTemplateOutletContext",4,"ngIf"],[3,"deletable","disabled","removeIcon","label","contentTemplateOutlet","contentTemplateOutletContext"],[3,"removeIcon","label","disabled","contentTemplateOutlet","deletable","contentTemplateOutletContext","delete",4,"ngFor","ngForOf","ngForTrackBy"],[3,"nzId","disabled","value","autofocus","showInput","mirrorSync","focusTrigger","isComposingChange","valueChange"],[3,"removeIcon","label","disabled","contentTemplateOutlet","deletable","contentTemplateOutletContext","delete"],[3,"placeholder"]],template:function(r,c){1&r&&(e.ynx(0,0),e.YNc(1,ct,3,8,"ng-container",1),e.YNc(2,K,3,9,"ng-container",2),e.BQk(),e.YNc(3,h,1,1,"nz-select-placeholder",3)),2&r&&(e.Q6J("ngSwitch",c.mode),e.xp6(1),e.Q6J("ngSwitchCase","default"),e.xp6(2),e.Q6J("ngIf",c.isShowPlaceholder))},directives:function(){return[b.RF,b.n9,b.ED,b.O5,At,ie,b.sg,V.w,qt]},encapsulation:2,changeDetection:0}),f})();const Bt=(f,Q)=>!(!Q||!Q.nzLabel)&&Q.nzLabel.toString().toLowerCase().indexOf(f.toLowerCase())>-1;let kt=(()=>{class f{constructor(r,c,k,H,l,L,i,_){this.destroy$=r,this.nzConfigService=c,this.cdr=k,this.elementRef=H,this.platform=l,this.focusMonitor=L,this.directionality=i,this.noAnimation=_,this._nzModuleName="select",this.nzId=null,this.nzSize="default",this.nzOptionHeightPx=32,this.nzOptionOverflowSize=8,this.nzDropdownClassName=null,this.nzDropdownMatchSelectWidth=!0,this.nzDropdownStyle=null,this.nzNotFoundContent=void 0,this.nzPlaceHolder=null,this.nzMaxTagCount=1/0,this.nzDropdownRender=null,this.nzCustomTemplate=null,this.nzSuffixIcon=null,this.nzClearIcon=null,this.nzRemoveIcon=null,this.nzMenuItemSelectedIcon=null,this.nzTokenSeparators=[],this.nzMaxTagPlaceholder=null,this.nzMaxMultipleCount=1/0,this.nzMode="default",this.nzFilterOption=Bt,this.compareWith=(Y,at)=>Y===at,this.nzAllowClear=!1,this.nzBorderless=!1,this.nzShowSearch=!1,this.nzLoading=!1,this.nzAutoFocus=!1,this.nzAutoClearSearchValue=!0,this.nzServerSearch=!1,this.nzDisabled=!1,this.nzOpen=!1,this.nzBackdrop=!1,this.nzOptions=[],this.nzOnSearch=new e.vpe,this.nzScrollToBottom=new e.vpe,this.nzOpenChange=new e.vpe,this.nzBlur=new e.vpe,this.nzFocus=new e.vpe,this.listOfValue$=new s.X([]),this.listOfTemplateItem$=new s.X([]),this.listOfTagAndTemplateItem=[],this.searchValue="",this.isReactiveDriven=!1,this.onChange=()=>{},this.onTouched=()=>{},this.dropDownPosition="bottom",this.triggerWidth=null,this.listOfContainerItem=[],this.listOfTopItem=[],this.activatedValue=null,this.listOfValue=[],this.focused=!1,this.dir="ltr",this.elementRef.nativeElement.classList.add("ant-select")}set nzShowArrow(r){this._nzShowArrow=r}get nzShowArrow(){return void 0===this._nzShowArrow?"default"===this.nzMode:this._nzShowArrow}generateTagItem(r){return{nzValue:r,nzLabel:r,type:"item"}}onItemClick(r){if(this.activatedValue=r,"default"===this.nzMode)(0===this.listOfValue.length||!this.compareWith(this.listOfValue[0],r))&&this.updateListOfValue([r]),this.setOpenState(!1);else{const c=this.listOfValue.findIndex(k=>this.compareWith(k,r));if(-1!==c){const k=this.listOfValue.filter((H,l)=>l!==c);this.updateListOfValue(k)}else if(this.listOfValue.length<this.nzMaxMultipleCount){const k=[...this.listOfValue,r];this.updateListOfValue(k)}this.focus(),this.nzAutoClearSearchValue&&this.clearInput()}}onItemDelete(r){const c=this.listOfValue.filter(k=>!this.compareWith(k,r.nzValue));this.updateListOfValue(c),this.clearInput()}onHostClick(){this.nzOpen&&this.nzShowSearch||this.nzDisabled||this.setOpenState(!this.nzOpen)}updateListOfContainerItem(){let r=this.listOfTagAndTemplateItem.filter(H=>!H.nzHide).filter(H=>!(!this.nzServerSearch&&this.searchValue)||this.nzFilterOption(this.searchValue,H));if("tags"===this.nzMode&&this.searchValue){const H=this.listOfTagAndTemplateItem.find(l=>l.nzLabel===this.searchValue);if(H)this.activatedValue=H.nzValue;else{const l=this.generateTagItem(this.searchValue);r=[l,...r],this.activatedValue=l.nzValue}}const c=r.find(H=>this.compareWith(H.nzValue,this.listOfValue[0]))||r[0];this.activatedValue=c&&c.nzValue||null;let k=[];this.isReactiveDriven?k=[...new Set(this.nzOptions.filter(H=>H.groupLabel).map(H=>H.groupLabel))]:this.listOfNzOptionGroupComponent&&(k=this.listOfNzOptionGroupComponent.map(H=>H.nzLabel)),k.forEach(H=>{const l=r.findIndex(L=>H===L.groupLabel);l>-1&&r.splice(l,0,{groupLabel:H,type:"group",key:H})}),this.listOfContainerItem=[...r],this.updateCdkConnectedOverlayPositions()}clearInput(){this.nzSelectTopControlComponent.clearInputValue()}updateListOfValue(r){const k=((H,l)=>"default"===this.nzMode?H.length>0?H[0]:null:H)(r);this.value!==k&&(this.listOfValue=r,this.listOfValue$.next(r),this.value=k,this.onChange(this.value))}onTokenSeparate(r){const c=this.listOfTagAndTemplateItem.filter(k=>-1!==r.findIndex(H=>H===k.nzLabel)).map(k=>k.nzValue).filter(k=>-1===this.listOfValue.findIndex(H=>this.compareWith(H,k)));if("multiple"===this.nzMode)this.updateListOfValue([...this.listOfValue,...c]);else if("tags"===this.nzMode){const k=r.filter(H=>-1===this.listOfTagAndTemplateItem.findIndex(l=>l.nzLabel===H));this.updateListOfValue([...this.listOfValue,...c,...k])}this.clearInput()}onOverlayKeyDown(r){r.keyCode===j.hY&&this.setOpenState(!1)}onKeyDown(r){if(this.nzDisabled)return;const c=this.listOfContainerItem.filter(H=>"item"===H.type).filter(H=>!H.nzDisabled),k=c.findIndex(H=>this.compareWith(H.nzValue,this.activatedValue));switch(r.keyCode){case j.LH:r.preventDefault(),this.nzOpen&&(this.activatedValue=c[k>0?k-1:c.length-1].nzValue);break;case j.JH:r.preventDefault(),this.nzOpen?this.activatedValue=c[k<c.length-1?k+1:0].nzValue:this.setOpenState(!0);break;case j.K5:r.preventDefault(),this.nzOpen?(0,O.DX)(this.activatedValue)&&this.onItemClick(this.activatedValue):this.setOpenState(!0);break;case j.L_:this.nzOpen||(this.setOpenState(!0),r.preventDefault());break;case j.Mf:this.setOpenState(!1);break;case j.hY:break;default:this.nzOpen||this.setOpenState(!0)}}setOpenState(r){this.nzOpen!==r&&(this.nzOpen=r,this.nzOpenChange.emit(r),this.onOpenChange(),this.cdr.markForCheck())}onOpenChange(){this.updateCdkConnectedOverlayStatus(),this.clearInput()}onInputValueChange(r){this.searchValue=r,this.updateListOfContainerItem(),this.nzOnSearch.emit(r),this.updateCdkConnectedOverlayPositions()}onClearSelection(){this.updateListOfValue([])}onClickOutside(r){this.elementRef.nativeElement.contains(r.target)||this.setOpenState(!1)}focus(){this.nzSelectTopControlComponent.focus()}blur(){this.nzSelectTopControlComponent.blur()}onPositionChange(r){this.dropDownPosition=r.connectionPair.originY}updateCdkConnectedOverlayStatus(){this.platform.isBrowser&&this.originElement.nativeElement&&(0,E.e)(()=>{this.triggerWidth=this.originElement.nativeElement.getBoundingClientRect().width,this.cdr.markForCheck()})}updateCdkConnectedOverlayPositions(){(0,E.e)(()=>{var r,c;null===(c=null===(r=this.cdkConnectedOverlay)||void 0===r?void 0:r.overlayRef)||void 0===c||c.updatePosition()})}writeValue(r){if(this.value!==r){this.value=r;const k=((H,l)=>null==H?[]:"default"===this.nzMode?[H]:H)(r);this.listOfValue=k,this.listOfValue$.next(k),this.cdr.markForCheck()}}registerOnChange(r){this.onChange=r}registerOnTouched(r){this.onTouched=r}setDisabledState(r){this.nzDisabled=r,r&&this.setOpenState(!1),this.cdr.markForCheck()}ngOnChanges(r){const{nzOpen:c,nzDisabled:k,nzOptions:H}=r;if(c&&this.onOpenChange(),k&&this.nzDisabled&&this.setOpenState(!1),H){this.isReactiveDriven=!0;const L=(this.nzOptions||[]).map(i=>({template:i.label instanceof e.Rgc?i.label:null,nzLabel:"string"==typeof i.label||"number"==typeof i.label?i.label:null,nzValue:i.value,nzDisabled:i.disabled||!1,nzHide:i.hide||!1,nzCustomContent:i.label instanceof e.Rgc,groupLabel:i.groupLabel||null,type:"item",key:i.value}));this.listOfTemplateItem$.next(L)}}ngOnInit(){var r;this.focusMonitor.monitor(this.elementRef,!0).pipe((0,A.R)(this.destroy$)).subscribe(c=>{c?(this.focused=!0,this.cdr.markForCheck(),this.nzFocus.emit()):(this.focused=!1,this.cdr.markForCheck(),this.nzBlur.emit(),Promise.resolve().then(()=>{this.onTouched()}))}),(0,t.aj)([this.listOfValue$,this.listOfTemplateItem$]).pipe((0,A.R)(this.destroy$)).subscribe(([c,k])=>{const H=c.filter(()=>"tags"===this.nzMode).filter(l=>-1===k.findIndex(L=>this.compareWith(L.nzValue,l))).map(l=>this.listOfTopItem.find(L=>this.compareWith(L.nzValue,l))||this.generateTagItem(l));this.listOfTagAndTemplateItem=[...k,...H],this.listOfTopItem=this.listOfValue.map(l=>[...this.listOfTagAndTemplateItem,...this.listOfTopItem].find(L=>this.compareWith(l,L.nzValue))).filter(l=>!!l),this.updateListOfContainerItem()}),null===(r=this.directionality.change)||void 0===r||r.pipe((0,A.R)(this.destroy$)).subscribe(c=>{this.dir=c,this.cdr.detectChanges()}),this.nzConfigService.getConfigChangeEventForComponent("select").pipe((0,A.R)(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()}),this.dir=this.directionality.value}ngAfterContentInit(){this.isReactiveDriven||(0,p.T)(this.listOfNzOptionGroupComponent.changes,this.listOfNzOptionComponent.changes).pipe((0,y.O)(!0),(0,w.w)(()=>(0,p.T)(this.listOfNzOptionComponent.changes,this.listOfNzOptionGroupComponent.changes,...this.listOfNzOptionComponent.map(r=>r.changes),...this.listOfNzOptionGroupComponent.map(r=>r.changes)).pipe((0,y.O)(!0))),(0,A.R)(this.destroy$)).subscribe(()=>{const r=this.listOfNzOptionComponent.toArray().map(c=>{const{template:k,nzLabel:H,nzValue:l,nzDisabled:L,nzHide:i,nzCustomContent:_,groupLabel:Y}=c;return{template:k,nzLabel:H,nzValue:l,nzDisabled:L,nzHide:i,nzCustomContent:_,groupLabel:Y,type:"item",key:l}});this.listOfTemplateItem$.next(r),this.cdr.markForCheck()})}ngOnDestroy(){this.focusMonitor.stopMonitoring(this.elementRef)}}return f.\u0275fac=function(r){return new(r||f)(e.Y36(R.kn),e.Y36(u.jY),e.Y36(e.sBO),e.Y36(e.SBq),e.Y36(I.t4),e.Y36(P.tE),e.Y36(U.Is,8),e.Y36(a.P,9))},f.\u0275cmp=e.Xpm({type:f,selectors:[["nz-select"]],contentQueries:function(r,c,k){if(1&r&&(e.Suo(k,St,5),e.Suo(k,Et,5)),2&r){let H;e.iGM(H=e.CRH())&&(c.listOfNzOptionComponent=H),e.iGM(H=e.CRH())&&(c.listOfNzOptionGroupComponent=H)}},viewQuery:function(r,c){if(1&r&&(e.Gf(B.xu,7,e.SBq),e.Gf(B.pI,7),e.Gf(Ft,7),e.Gf(Et,7,e.SBq),e.Gf(Ft,7,e.SBq)),2&r){let k;e.iGM(k=e.CRH())&&(c.originElement=k.first),e.iGM(k=e.CRH())&&(c.cdkConnectedOverlay=k.first),e.iGM(k=e.CRH())&&(c.nzSelectTopControlComponent=k.first),e.iGM(k=e.CRH())&&(c.nzOptionGroupComponentElement=k.first),e.iGM(k=e.CRH())&&(c.nzSelectTopControlComponentElement=k.first)}},hostVars:24,hostBindings:function(r,c){1&r&&e.NdJ("click",function(){return c.onHostClick()}),2&r&&e.ekj("ant-select-lg","large"===c.nzSize)("ant-select-sm","small"===c.nzSize)("ant-select-show-arrow",c.nzShowArrow)("ant-select-disabled",c.nzDisabled)("ant-select-show-search",(c.nzShowSearch||"default"!==c.nzMode)&&!c.nzDisabled)("ant-select-allow-clear",c.nzAllowClear)("ant-select-borderless",c.nzBorderless)("ant-select-open",c.nzOpen)("ant-select-focused",c.nzOpen||c.focused)("ant-select-single","default"===c.nzMode)("ant-select-multiple","default"!==c.nzMode)("ant-select-rtl","rtl"===c.dir)},inputs:{nzId:"nzId",nzSize:"nzSize",nzOptionHeightPx:"nzOptionHeightPx",nzOptionOverflowSize:"nzOptionOverflowSize",nzDropdownClassName:"nzDropdownClassName",nzDropdownMatchSelectWidth:"nzDropdownMatchSelectWidth",nzDropdownStyle:"nzDropdownStyle",nzNotFoundContent:"nzNotFoundContent",nzPlaceHolder:"nzPlaceHolder",nzMaxTagCount:"nzMaxTagCount",nzDropdownRender:"nzDropdownRender",nzCustomTemplate:"nzCustomTemplate",nzSuffixIcon:"nzSuffixIcon",nzClearIcon:"nzClearIcon",nzRemoveIcon:"nzRemoveIcon",nzMenuItemSelectedIcon:"nzMenuItemSelectedIcon",nzTokenSeparators:"nzTokenSeparators",nzMaxTagPlaceholder:"nzMaxTagPlaceholder",nzMaxMultipleCount:"nzMaxMultipleCount",nzMode:"nzMode",nzFilterOption:"nzFilterOption",compareWith:"compareWith",nzAllowClear:"nzAllowClear",nzBorderless:"nzBorderless",nzShowSearch:"nzShowSearch",nzLoading:"nzLoading",nzAutoFocus:"nzAutoFocus",nzAutoClearSearchValue:"nzAutoClearSearchValue",nzServerSearch:"nzServerSearch",nzDisabled:"nzDisabled",nzOpen:"nzOpen",nzBackdrop:"nzBackdrop",nzOptions:"nzOptions",nzShowArrow:"nzShowArrow"},outputs:{nzOnSearch:"nzOnSearch",nzScrollToBottom:"nzScrollToBottom",nzOpenChange:"nzOpenChange",nzBlur:"nzBlur",nzFocus:"nzFocus"},exportAs:["nzSelect"],features:[e._Bn([R.kn,{provide:g.JU,useExisting:(0,e.Gpc)(()=>f),multi:!0}]),e.TTD],decls:5,vars:24,consts:[["cdkOverlayOrigin","",3,"nzId","open","disabled","mode","nzNoAnimation","maxTagPlaceholder","removeIcon","placeHolder","maxTagCount","customTemplate","tokenSeparators","showSearch","autofocus","listOfTopItem","inputValueChange","tokenize","deleteItem","keydown"],["origin","cdkOverlayOrigin"],[3,"loading","search","suffixIcon",4,"ngIf"],[3,"clearIcon","clear",4,"ngIf"],["cdkConnectedOverlay","","nzConnectedOverlay","",3,"cdkConnectedOverlayHasBackdrop","cdkConnectedOverlayMinWidth","cdkConnectedOverlayWidth","cdkConnectedOverlayOrigin","cdkConnectedOverlayTransformOriginOn","cdkConnectedOverlayPanelClass","cdkConnectedOverlayOpen","overlayKeydown","overlayOutsideClick","detach","positionChange"],[3,"loading","search","suffixIcon"],[3,"clearIcon","clear"],[3,"ngStyle","itemSize","maxItemLength","matchWidth","nzNoAnimation","listOfContainerItem","menuItemSelectedIcon","notFoundContent","activatedValue","listOfSelectedValue","dropdownRender","compareWith","mode","keydown","itemClick","scrollToBottom"]],template:function(r,c){if(1&r&&(e.TgZ(0,"nz-select-top-control",0,1),e.NdJ("inputValueChange",function(H){return c.onInputValueChange(H)})("tokenize",function(H){return c.onTokenSeparate(H)})("deleteItem",function(H){return c.onItemDelete(H)})("keydown",function(H){return c.onKeyDown(H)}),e.qZA(),e.YNc(2,D,1,3,"nz-select-arrow",2),e.YNc(3,v,1,1,"nz-select-clear",3),e.YNc(4,m,1,19,"ng-template",4),e.NdJ("overlayKeydown",function(H){return c.onOverlayKeyDown(H)})("overlayOutsideClick",function(H){return c.onClickOutside(H)})("detach",function(){return c.setOpenState(!1)})("positionChange",function(H){return c.onPositionChange(H)})),2&r){const k=e.MAs(1);e.Q6J("nzId",c.nzId)("open",c.nzOpen)("disabled",c.nzDisabled)("mode",c.nzMode)("@.disabled",null==c.noAnimation?null:c.noAnimation.nzNoAnimation)("nzNoAnimation",null==c.noAnimation?null:c.noAnimation.nzNoAnimation)("maxTagPlaceholder",c.nzMaxTagPlaceholder)("removeIcon",c.nzRemoveIcon)("placeHolder",c.nzPlaceHolder)("maxTagCount",c.nzMaxTagCount)("customTemplate",c.nzCustomTemplate)("tokenSeparators",c.nzTokenSeparators)("showSearch",c.nzShowSearch)("autofocus",c.nzAutoFocus)("listOfTopItem",c.listOfTopItem),e.xp6(2),e.Q6J("ngIf",c.nzShowArrow),e.xp6(1),e.Q6J("ngIf",c.nzAllowClear&&!c.nzDisabled&&c.listOfValue.length),e.xp6(1),e.Q6J("cdkConnectedOverlayHasBackdrop",c.nzBackdrop)("cdkConnectedOverlayMinWidth",c.nzDropdownMatchSelectWidth?null:c.triggerWidth)("cdkConnectedOverlayWidth",c.nzDropdownMatchSelectWidth?c.triggerWidth:null)("cdkConnectedOverlayOrigin",k)("cdkConnectedOverlayTransformOriginOn",".ant-select-dropdown")("cdkConnectedOverlayPanelClass",c.nzDropdownClassName)("cdkConnectedOverlayOpen",c.nzOpen)}},directives:function(){return[V.w,Ft,B.xu,a.P,b.O5,B.pI,G.hQ,Ht,jt,Rt,b.PC]},encapsulation:2,data:{animation:[C.mF]},changeDetection:0}),(0,T.gn)([(0,u.oS)()],f.prototype,"nzSuffixIcon",void 0),(0,T.gn)([(0,O.yF)()],f.prototype,"nzAllowClear",void 0),(0,T.gn)([(0,u.oS)(),(0,O.yF)()],f.prototype,"nzBorderless",void 0),(0,T.gn)([(0,O.yF)()],f.prototype,"nzShowSearch",void 0),(0,T.gn)([(0,O.yF)()],f.prototype,"nzLoading",void 0),(0,T.gn)([(0,O.yF)()],f.prototype,"nzAutoFocus",void 0),(0,T.gn)([(0,O.yF)()],f.prototype,"nzAutoClearSearchValue",void 0),(0,T.gn)([(0,O.yF)()],f.prototype,"nzServerSearch",void 0),(0,T.gn)([(0,O.yF)()],f.prototype,"nzDisabled",void 0),(0,T.gn)([(0,O.yF)()],f.prototype,"nzOpen",void 0),(0,T.gn)([(0,u.oS)(),(0,O.yF)()],f.prototype,"nzBackdrop",void 0),f})(),Ut=(()=>{class f{constructor(r){this.elementRef=r,this.nzLabel=null,this.elementRef.nativeElement.classList.add("ant-select-item","ant-select-item-group")}}return f.\u0275fac=function(r){return new(r||f)(e.Y36(e.SBq))},f.\u0275cmp=e.Xpm({type:f,selectors:[["nz-option-item-group"]],inputs:{nzLabel:"nzLabel"},decls:1,vars:1,consts:[[4,"nzStringTemplateOutlet"]],template:function(r,c){1&r&&e.YNc(0,nt,2,1,"ng-container",0),2&r&&e.Q6J("nzStringTemplateOutlet",c.nzLabel)},directives:[x.f],encapsulation:2,changeDetection:0}),f})(),Wt=(()=>{class f{constructor(r){this.elementRef=r,this.selected=!1,this.activated=!1,this.grouped=!1,this.customContent=!1,this.template=null,this.disabled=!1,this.showState=!1,this.label=null,this.value=null,this.activatedValue=null,this.listOfSelectedValue=[],this.icon=null,this.itemClick=new e.vpe,this.itemHover=new e.vpe,this.elementRef.nativeElement.classList.add("ant-select-item","ant-select-item-option")}onHostMouseEnter(){this.disabled||this.itemHover.next(this.value)}onHostClick(){this.disabled||this.itemClick.next(this.value)}ngOnChanges(r){const{value:c,activatedValue:k,listOfSelectedValue:H}=r;(c||H)&&(this.selected=this.listOfSelectedValue.some(l=>this.compareWith(l,this.value))),(c||k)&&(this.activated=this.compareWith(this.activatedValue,this.value))}}return f.\u0275fac=function(r){return new(r||f)(e.Y36(e.SBq))},f.\u0275cmp=e.Xpm({type:f,selectors:[["nz-option-item"]],hostVars:9,hostBindings:function(r,c){1&r&&e.NdJ("mouseenter",function(){return c.onHostMouseEnter()})("click",function(){return c.onHostClick()}),2&r&&(e.uIk("title",c.label),e.ekj("ant-select-item-option-grouped",c.grouped)("ant-select-item-option-selected",c.selected&&!c.disabled)("ant-select-item-option-disabled",c.disabled)("ant-select-item-option-active",c.activated&&!c.disabled))},inputs:{grouped:"grouped",customContent:"customContent",template:"template",disabled:"disabled",showState:"showState",label:"label",value:"value",activatedValue:"activatedValue",listOfSelectedValue:"listOfSelectedValue",icon:"icon",compareWith:"compareWith"},outputs:{itemClick:"itemClick",itemHover:"itemHover"},features:[e.TTD],decls:4,vars:3,consts:[[1,"ant-select-item-option-content"],[4,"ngIf"],["class","ant-select-item-option-state","style","user-select: none","unselectable","on",4,"ngIf"],[3,"ngTemplateOutlet"],["unselectable","on",1,"ant-select-item-option-state",2,"user-select","none"],["nz-icon","","nzType","check","class","ant-select-selected-icon",4,"ngIf","ngIfElse"],["nz-icon","","nzType","check",1,"ant-select-selected-icon"]],template:function(r,c){1&r&&(e.TgZ(0,"div",0),e.YNc(1,z,2,1,"ng-container",1),e.YNc(2,lt,2,1,"ng-container",1),e.qZA(),e.YNc(3,Mt,2,2,"div",2)),2&r&&(e.xp6(1),e.Q6J("ngIf",!c.customContent),e.xp6(1),e.Q6J("ngIf",c.customContent),e.xp6(1),e.Q6J("ngIf",c.showState&&c.selected))},directives:[b.O5,b.tP,rt.Ls,V.w],encapsulation:2,changeDetection:0}),f})(),Ht=(()=>{class f{constructor(r){this.elementRef=r,this.loading=!1,this.search=!1,this.suffixIcon=null,this.elementRef.nativeElement.classList.add("ant-select-arrow")}}return f.\u0275fac=function(r){return new(r||f)(e.Y36(e.SBq))},f.\u0275cmp=e.Xpm({type:f,selectors:[["nz-select-arrow"]],hostVars:2,hostBindings:function(r,c){2&r&&e.ekj("ant-select-arrow-loading",c.loading)},inputs:{loading:"loading",search:"search",suffixIcon:"suffixIcon"},decls:3,vars:2,consts:[["nz-icon","","nzType","loading",4,"ngIf","ngIfElse"],["defaultArrow",""],["nz-icon","","nzType","loading"],[4,"ngIf","ngIfElse"],["suffixTemplate",""],["nz-icon","","nzType","down",4,"ngIf"],["nz-icon","","nzType","search",4,"ngIf"],["nz-icon","","nzType","down"],["nz-icon","","nzType","search"],[4,"nzStringTemplateOutlet"],["nz-icon","",3,"nzType"]],template:function(r,c){if(1&r&&(e.YNc(0,yt,1,0,"i",0),e.YNc(1,Gt,3,2,"ng-template",null,1,e.W1O)),2&r){const k=e.MAs(2);e.Q6J("ngIf",c.loading)("ngIfElse",k)}},directives:[b.O5,rt.Ls,V.w,x.f],encapsulation:2,changeDetection:0}),f})(),jt=(()=>{class f{constructor(r){this.elementRef=r,this.clearIcon=null,this.clear=new e.vpe,this.elementRef.nativeElement.classList.add("ant-select-clear")}onClick(r){r.preventDefault(),r.stopPropagation(),this.clear.emit(r)}}return f.\u0275fac=function(r){return new(r||f)(e.Y36(e.SBq))},f.\u0275cmp=e.Xpm({type:f,selectors:[["nz-select-clear"]],hostBindings:function(r,c){1&r&&e.NdJ("click",function(H){return c.onClick(H)})},inputs:{clearIcon:"clearIcon"},outputs:{clear:"clear"},decls:1,vars:2,consts:[["nz-icon","","nzType","close-circle","nzTheme","fill","class","ant-select-close-icon",4,"ngIf","ngIfElse"],["nz-icon","","nzType","close-circle","nzTheme","fill",1,"ant-select-close-icon"]],template:function(r,c){1&r&&e.YNc(0,Vt,1,0,"i",0),2&r&&e.Q6J("ngIf",!c.clearIcon)("ngIfElse",c.clearIcon)},directives:[b.O5,rt.Ls,V.w],encapsulation:2,changeDetection:0}),f})(),ie=(()=>{class f{constructor(r){this.elementRef=r,this.disabled=!1,this.label=null,this.deletable=!1,this.removeIcon=null,this.contentTemplateOutletContext=null,this.contentTemplateOutlet=null,this.delete=new e.vpe,this.elementRef.nativeElement.classList.add("ant-select-selection-item")}onDelete(r){r.preventDefault(),r.stopPropagation(),this.disabled||this.delete.next(r)}}return f.\u0275fac=function(r){return new(r||f)(e.Y36(e.SBq))},f.\u0275cmp=e.Xpm({type:f,selectors:[["nz-select-item"]],hostVars:3,hostBindings:function(r,c){2&r&&(e.uIk("title",c.label),e.ekj("ant-select-selection-item-disabled",c.disabled))},inputs:{disabled:"disabled",label:"label",deletable:"deletable",removeIcon:"removeIcon",contentTemplateOutletContext:"contentTemplateOutletContext",contentTemplateOutlet:"contentTemplateOutlet"},outputs:{delete:"delete"},decls:2,vars:5,consts:[[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"],["class","ant-select-selection-item-remove",3,"click",4,"ngIf"],["class","ant-select-selection-item-content",4,"ngIf","ngIfElse"],["labelTemplate",""],[1,"ant-select-selection-item-content"],[1,"ant-select-selection-item-remove",3,"click"],["nz-icon","","nzType","close",4,"ngIf","ngIfElse"],["nz-icon","","nzType","close"]],template:function(r,c){1&r&&(e.YNc(0,it,4,2,"ng-container",0),e.YNc(1,gt,2,2,"span",1)),2&r&&(e.Q6J("nzStringTemplateOutlet",c.contentTemplateOutlet)("nzStringTemplateOutletContext",e.VKq(3,Dt,c.contentTemplateOutletContext)),e.xp6(1),e.Q6J("ngIf",c.deletable&&!c.disabled))},directives:[x.f,b.O5,rt.Ls,V.w],encapsulation:2,changeDetection:0}),f})(),qt=(()=>{class f{constructor(r){this.elementRef=r,this.placeholder=null,this.elementRef.nativeElement.classList.add("ant-select-selection-placeholder")}}return f.\u0275fac=function(r){return new(r||f)(e.Y36(e.SBq))},f.\u0275cmp=e.Xpm({type:f,selectors:[["nz-select-placeholder"]],inputs:{placeholder:"placeholder"},decls:1,vars:1,consts:[[4,"nzStringTemplateOutlet"]],template:function(r,c){1&r&&e.YNc(0,ft,2,1,"ng-container",0),2&r&&e.Q6J("nzStringTemplateOutlet",c.placeholder)},directives:[x.f],encapsulation:2,changeDetection:0}),f})(),te=(()=>{class f{}return f.\u0275fac=function(r){return new(r||f)},f.\u0275mod=e.oAB({type:f}),f.\u0275inj=e.cJS({imports:[[U.vT,b.ez,X.YI,g.u5,I.ud,B.U8,rt.PV,x.T,$.Xo,G.e4,a.g,V.a,d.Cl,P.rt]]}),f})()},8453:(ot,M,n)=>{n.d(M,{i:()=>E,m:()=>b});var e=n(4762),o=n(946),s=n(6461),t=n(7716),p=n(665),d=n(9765),T=n(6782),y=n(2729),A=n(6182),w=n(8583),R=n(8178),O=n(9374),P=n(464),U=n(9238);const j=["switchElement"];function B(x,G){1&x&&t._UZ(0,"i",8)}function I(x,G){if(1&x&&(t.ynx(0),t._uU(1),t.BQk()),2&x){const V=t.oxw(2);t.xp6(1),t.Oqu(V.nzCheckedChildren)}}function g(x,G){if(1&x&&(t.ynx(0),t.YNc(1,I,2,1,"ng-container",9),t.BQk()),2&x){const V=t.oxw();t.xp6(1),t.Q6J("nzStringTemplateOutlet",V.nzCheckedChildren)}}function C(x,G){if(1&x&&(t.ynx(0),t._uU(1),t.BQk()),2&x){const V=t.oxw(2);t.xp6(1),t.Oqu(V.nzUnCheckedChildren)}}function u(x,G){if(1&x&&t.YNc(0,C,2,1,"ng-container",9),2&x){const V=t.oxw();t.Q6J("nzStringTemplateOutlet",V.nzUnCheckedChildren)}}let E=(()=>{class x{constructor(V,$,X,rt){this.nzConfigService=V,this.cdr=$,this.focusMonitor=X,this.directionality=rt,this._nzModuleName="switch",this.isChecked=!1,this.onChange=()=>{},this.onTouched=()=>{},this.nzLoading=!1,this.nzDisabled=!1,this.nzControl=!1,this.nzCheckedChildren=null,this.nzUnCheckedChildren=null,this.nzSize="default",this.dir="ltr",this.destroy$=new d.xQ}onHostClick(V){V.preventDefault(),!this.nzDisabled&&!this.nzLoading&&!this.nzControl&&this.updateValue(!this.isChecked)}updateValue(V){this.isChecked!==V&&(this.isChecked=V,this.onChange(this.isChecked))}onKeyDown(V){!this.nzControl&&!this.nzDisabled&&!this.nzLoading&&(V.keyCode===s.oh?(this.updateValue(!1),V.preventDefault()):V.keyCode===s.SV?(this.updateValue(!0),V.preventDefault()):(V.keyCode===s.L_||V.keyCode===s.K5)&&(this.updateValue(!this.isChecked),V.preventDefault()))}focus(){var V;this.focusMonitor.focusVia(null===(V=this.switchElement)||void 0===V?void 0:V.nativeElement,"keyboard")}blur(){var V;null===(V=this.switchElement)||void 0===V||V.nativeElement.blur()}ngOnInit(){var V;null===(V=this.directionality.change)||void 0===V||V.pipe((0,T.R)(this.destroy$)).subscribe($=>{this.dir=$,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngAfterViewInit(){this.focusMonitor.monitor(this.switchElement.nativeElement,!0).pipe((0,T.R)(this.destroy$)).subscribe(V=>{V||Promise.resolve().then(()=>this.onTouched())})}ngOnDestroy(){this.focusMonitor.stopMonitoring(this.switchElement.nativeElement),this.destroy$.next(),this.destroy$.complete()}writeValue(V){this.isChecked=V,this.cdr.markForCheck()}registerOnChange(V){this.onChange=V}registerOnTouched(V){this.onTouched=V}setDisabledState(V){this.nzDisabled=V,this.cdr.markForCheck()}}return x.\u0275fac=function(V){return new(V||x)(t.Y36(y.jY),t.Y36(t.sBO),t.Y36(U.tE),t.Y36(o.Is,8))},x.\u0275cmp=t.Xpm({type:x,selectors:[["nz-switch"]],viewQuery:function(V,$){if(1&V&&t.Gf(j,7),2&V){let X;t.iGM(X=t.CRH())&&($.switchElement=X.first)}},hostBindings:function(V,$){1&V&&t.NdJ("click",function(rt){return $.onHostClick(rt)})},inputs:{nzLoading:"nzLoading",nzDisabled:"nzDisabled",nzControl:"nzControl",nzCheckedChildren:"nzCheckedChildren",nzUnCheckedChildren:"nzUnCheckedChildren",nzSize:"nzSize"},exportAs:["nzSwitch"],features:[t._Bn([{provide:p.JU,useExisting:(0,t.Gpc)(()=>x),multi:!0}])],decls:9,vars:15,consts:[["nz-wave","","type","button",1,"ant-switch",3,"disabled","nzWaveExtraNode","keydown"],["switchElement",""],[1,"ant-switch-handle"],["nz-icon","","nzType","loading","class","ant-switch-loading-icon",4,"ngIf"],[1,"ant-switch-inner"],[4,"ngIf","ngIfElse"],["uncheckTemplate",""],[1,"ant-click-animating-node"],["nz-icon","","nzType","loading",1,"ant-switch-loading-icon"],[4,"nzStringTemplateOutlet"]],template:function(V,$){if(1&V&&(t.TgZ(0,"button",0,1),t.NdJ("keydown",function(rt){return $.onKeyDown(rt)}),t.TgZ(2,"span",2),t.YNc(3,B,1,0,"i",3),t.qZA(),t.TgZ(4,"span",4),t.YNc(5,g,2,1,"ng-container",5),t.YNc(6,u,1,1,"ng-template",null,6,t.W1O),t.qZA(),t._UZ(8,"div",7),t.qZA()),2&V){const X=t.MAs(7);t.ekj("ant-switch-checked",$.isChecked)("ant-switch-loading",$.nzLoading)("ant-switch-disabled",$.nzDisabled)("ant-switch-small","small"===$.nzSize)("ant-switch-rtl","rtl"===$.dir),t.Q6J("disabled",$.nzDisabled)("nzWaveExtraNode",!0),t.xp6(3),t.Q6J("ngIf",$.nzLoading),t.xp6(2),t.Q6J("ngIf",$.isChecked)("ngIfElse",X)}},directives:[O.dQ,w.O5,P.Ls,R.f],encapsulation:2,changeDetection:0}),(0,e.gn)([(0,A.yF)()],x.prototype,"nzLoading",void 0),(0,e.gn)([(0,A.yF)()],x.prototype,"nzDisabled",void 0),(0,e.gn)([(0,A.yF)()],x.prototype,"nzControl",void 0),(0,e.gn)([(0,y.oS)()],x.prototype,"nzSize",void 0),x})(),b=(()=>{class x{}return x.\u0275fac=function(V){return new(V||x)},x.\u0275mod=t.oAB({type:x}),x.\u0275inj=t.cJS({imports:[[o.vT,w.ez,O.vG,P.PV,R.T]]}),x})()},8737:(ot,M,n)=>{n.d(M,{Uk:()=>s,yT:()=>t,_m:()=>p,ip:()=>d,Dr:()=>T,Pu:()=>y,Fg:()=>A,rc:()=>w,O6:()=>R,D4:()=>O,Rc:()=>P});var e=n(8760),o=n(1801);const s="\u4f1a\u6309\u7167\u6b64\u9650\u5236\u81ea\u52a8\u5206\u5272\u6587\u4ef6",t="\u8bbe\u7f6e\u540c\u6b65\u5931\u8d25\uff01",p=/^(?:[^\\\/:*?"<>|\t\n\r\f\v\{\}]*?\{(?:roomid|uname|title|area|parent_area|year|month|day|hour|minute|second)\}[^\\\/:*?"<>|\t\n\r\f\v\{\}]*?)+?(?:\/(?:[^\\\/:*?"<>|\t\n\r\f\v\{\}]*?\{(?:roomid|uname|title|area|parent_area|year|month|day|hour|minute|second)\}[^\\\/:*?"<>|\t\n\r\f\v\{\}]*?)+?)*$/,d="{roomid} - {uname}/blive_{roomid}_{year}-{month}-{day}-{hour}{minute}{second}",T=[{name:"roomid",desc:"\u623f\u95f4\u53f7"},{name:"uname",desc:"\u4e3b\u64ad\u7528\u6237\u540d"},{name:"title",desc:"\u623f\u95f4\u6807\u9898"},{name:"area",desc:"\u76f4\u64ad\u5b50\u5206\u533a\u540d\u79f0"},{name:"parent_area",desc:"\u76f4\u64ad\u4e3b\u5206\u533a\u540d\u79f0"},{name:"year",desc:"\u6587\u4ef6\u521b\u5efa\u65e5\u671f\u65f6\u95f4\u4e4b\u5e74\u4efd"},{name:"month",desc:"\u6587\u4ef6\u521b\u5efa\u65e5\u671f\u65f6\u95f4\u4e4b\u6708\u4efd"},{name:"day",desc:"\u6587\u4ef6\u521b\u5efa\u65e5\u671f\u65f6\u95f4\u4e4b\u5929\u6570"},{name:"hour",desc:"\u6587\u4ef6\u521b\u5efa\u65e5\u671f\u65f6\u95f4\u4e4b\u5c0f\u65f6"},{name:"minute",desc:"\u6587\u4ef6\u521b\u5efa\u65e5\u671f\u65f6\u95f4\u4e4b\u5206\u949f"},{name:"second",desc:"\u6587\u4ef6\u521b\u5efa\u65e5\u671f\u65f6\u95f4\u4e4b\u79d2\u6570"}],y=[{label:"\u4e0d\u9650",value:0},...(0,o.Z)(1,21).map(U=>({label:`${U} GB`,value:1024**3*U}))],A=[{label:"\u4e0d\u9650",value:0},...(0,o.Z)(1,25).map(U=>({label:`${U} \u5c0f\u65f6`,value:3600*U}))],w=[{label:"\u81ea\u52a8",value:e.zu.AUTO},{label:"\u4ece\u4e0d",value:e.zu.NEVER}],R=[{label:"4K",value:2e4},{label:"\u539f\u753b",value:1e4},{label:"\u84dd\u5149(\u675c\u6bd4)",value:401},{label:"\u84dd\u5149",value:400},{label:"\u8d85\u6e05",value:250},{label:"\u9ad8\u6e05",value:150},{label:"\u6d41\u7545",value:80}],O=[{label:"3 \u79d2",value:3},{label:"5 \u79d2",value:5},{label:"10 \u79d2",value:10},{label:"30 \u79d2",value:30},{label:"1 \u5206\u949f",value:60},{label:"3 \u5206\u949f",value:180},{label:"5 \u5206\u949f",value:300},{label:"10 \u5206\u949f",value:600}],P=[{label:"4 KB",value:4096},{label:"8 KB",value:8192},{label:"16 KB",value:16384},{label:"32 KB",value:32768},{label:"64 KB",value:65536},{label:"128 KB",value:131072},{label:"256 KB",value:262144},{label:"512 KB",value:524288},{label:"1 MB",value:1048576},{label:"2 MB",value:2097152},{label:"4 MB",value:4194304},{label:"8 MB",value:8388608},{label:"16 MB",value:16777216},{label:"32 MB",value:33554432},{label:"64 MB",value:67108864},{label:"128 MB",value:134217728},{label:"256 MB",value:268435456},{label:"512 MB",value:536870912}]},5136:(ot,M,n)=>{n.d(M,{R:()=>p});var e=n(2340),o=n(7716),s=n(1841);const t=e.N.apiUrl;let p=(()=>{class d{constructor(y){this.http=y}getSettings(y=null,A=null){return this.http.get(t+"/api/v1/settings",{params:{include:null!=y?y:[],exclude:null!=A?A:[]}})}changeSettings(y){return this.http.patch(t+"/api/v1/settings",y)}getTaskOptions(y){return this.http.get(t+`/api/v1/settings/tasks/${y}`)}changeTaskOptions(y,A){return this.http.patch(t+`/api/v1/settings/tasks/${y}`,A)}}return d.\u0275fac=function(y){return new(y||d)(o.LFG(s.eN))},d.\u0275prov=o.Yz7({token:d,factory:d.\u0275fac,providedIn:"root"}),d})()},8760:(ot,M,n)=>{n.d(M,{zu:()=>e,gP:()=>o,gq:()=>s,q1:()=>t,_1:()=>p,X:()=>d});var e=(()=>{return(T=e||(e={})).AUTO="auto",T.NEVER="never",e;var T})();const o=["srcAddr","dstAddr","authCode","smtpHost","smtpPort"],s=["sendkey"],t=["token","topic"],p=["enabled"],d=["notifyBegan","notifyEnded","notifyError","notifySpace"]},2134:(ot,M,n)=>{n.d(M,{e:()=>t});var e=n(9459),o=n(6015),s=n(692);function t(p,d){return function T(y,A){return(0,e.Z)(y,(w,R,O)=>{const P=Reflect.get(A,O);(0,o.Z)(R,P)||Reflect.set(w,O,(0,s.Z)(R)&&(0,s.Z)(P)?T(R,P):R)})}(p,d)}}}]); \ No newline at end of file diff --git a/src/blrec/data/webapp/3rdpartylicenses.txt b/src/blrec/data/webapp/3rdpartylicenses.txt new file mode 100644 index 0000000..0feb0a4 --- /dev/null +++ b/src/blrec/data/webapp/3rdpartylicenses.txt @@ -0,0 +1,478 @@ +@angular/animations +MIT + +@angular/cdk +MIT +The MIT License + +Copyright (c) 2021 Google LLC. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +@angular/common +MIT + +@angular/core +MIT + +@angular/forms +MIT + +@angular/platform-browser +MIT + +@angular/router +MIT + +@angular/service-worker +MIT + +@ant-design/colors +MIT +MIT LICENSE + +Copyright (c) 2018-present Ant UED, https://xtech.antfin.com/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +@ant-design/icons-angular +MIT + +@babel/runtime +MIT +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +@ctrl/tinycolor +MIT +Copyright (c) Scott Cooper <scttcper@gmail.com> + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +filesize +BSD-3-Clause +Copyright (c) 2021, Jason Mulligan +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of filesize nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + + +lodash-es +MIT +Copyright OpenJS Foundation and other contributors <https://openjsf.org/> + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/> + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. + + +ng-zorro-antd +MIT + +ngx-logger +MIT +The MIT License + +Copyright (c) 2018 David Fannin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +rxjs +Apache-2.0 + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + +tslib +0BSD +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + +vlq +MIT +Copyright (c) 2017 [these people](https://github.com/Rich-Harris/vlq/graphs/contributors) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +zone.js +MIT +The MIT License + +Copyright (c) 2010-2020 Google LLC. https://angular.io/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/src/blrec/data/webapp/51.560338ef5c3689b822f9.js b/src/blrec/data/webapp/51.560338ef5c3689b822f9.js new file mode 100644 index 0000000..47e7228 --- /dev/null +++ b/src/blrec/data/webapp/51.560338ef5c3689b822f9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkblrec=self.webpackChunkblrec||[]).push([[51],{2051:(ml,Ut,g)=>{g.r(Ut),g.d(Ut,{SettingsModule:()=>ul});var d=g(8583),l=g(665),st=g(1729),Ht=g(6271),Ve=g(7018),m=g(5887),J=g(7674),W=g(8453),rt=g(2079),lt=g(1398),h=g(4762),k=g(946),bt=(g(6461),g(521)),t=g(7716),x=g(9765),Tt=g(2759),L=g(6682),_=g(6782),R=g(5435),dt=g(8307),b=g(8002),ct=g(7519),u=g(6182),ut=g(7420);let rn=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[[k.vT,d.ez,bt.ud,ut.cg]]}),n})();var U=g(269),I=g(8542),mt=g(4453),E=g(464),ln=g(1439),Ot=g(5917),P=g(6215),cn=g(5257),N=g(3190),te=g(5329),H=g(8178),St=g(2482),v=g(6704);const G=["*"];function xn(n,o){1&n&&t.Hsn(0)}const bn=["nz-list-item-actions",""];function Tn(n,o){}function On(n,o){1&n&&t._UZ(0,"em",3)}function Sn(n,o){if(1&n&&(t.TgZ(0,"li"),t.YNc(1,Tn,0,0,"ng-template",1),t.YNc(2,On,1,0,"em",2),t.qZA()),2&n){const e=o.$implicit,i=o.last;t.xp6(1),t.Q6J("ngTemplateOutlet",e),t.xp6(1),t.Q6J("ngIf",!i)}}function wn(n,o){}const ee=function(n,o){return{$implicit:n,index:o}};function Mn(n,o){if(1&n&&(t.ynx(0),t.YNc(1,wn,0,0,"ng-template",9),t.BQk()),2&n){const e=o.$implicit,i=o.index,a=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",a.nzRenderItem)("ngTemplateOutletContext",t.WLB(2,ee,e,i))}}function yn(n,o){if(1&n&&(t.TgZ(0,"div",7),t.YNc(1,Mn,2,5,"ng-container",8),t.Hsn(2,4),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngForOf",e.nzDataSource)}}function Pn(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=t.oxw(2);t.xp6(1),t.Oqu(e.nzHeader)}}function Fn(n,o){if(1&n&&(t.TgZ(0,"nz-list-header"),t.YNc(1,Pn,2,1,"ng-container",10),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzHeader)}}function Nn(n,o){1&n&&t._UZ(0,"div"),2&n&&t.Udp("min-height",53,"px")}function kn(n,o){}function Dn(n,o){if(1&n&&(t.TgZ(0,"div",13),t.YNc(1,kn,0,0,"ng-template",9),t.qZA()),2&n){const e=o.$implicit,i=o.index,a=t.oxw(2);t.Q6J("nzSpan",a.nzGrid.span||null)("nzXs",a.nzGrid.xs||null)("nzSm",a.nzGrid.sm||null)("nzMd",a.nzGrid.md||null)("nzLg",a.nzGrid.lg||null)("nzXl",a.nzGrid.xl||null)("nzXXl",a.nzGrid.xxl||null),t.xp6(1),t.Q6J("ngTemplateOutlet",a.nzRenderItem)("ngTemplateOutletContext",t.WLB(9,ee,e,i))}}function An(n,o){if(1&n&&(t.TgZ(0,"div",11),t.YNc(1,Dn,2,12,"div",12),t.qZA()),2&n){const e=t.oxw();t.Q6J("nzGutter",e.nzGrid.gutter||null),t.xp6(1),t.Q6J("ngForOf",e.nzDataSource)}}function Zn(n,o){if(1&n&&t._UZ(0,"nz-list-empty",14),2&n){const e=t.oxw();t.Q6J("nzNoResult",e.nzNoResult)}}function In(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=t.oxw(2);t.xp6(1),t.Oqu(e.nzFooter)}}function En(n,o){if(1&n&&(t.TgZ(0,"nz-list-footer"),t.YNc(1,In,2,1,"ng-container",10),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzFooter)}}function Bn(n,o){}function Qn(n,o){}function Ln(n,o){if(1&n&&(t.TgZ(0,"nz-list-pagination"),t.YNc(1,Qn,0,0,"ng-template",6),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngTemplateOutlet",e.nzPagination)}}const Jn=[[["nz-list-header"]],[["nz-list-footer"],["","nz-list-footer",""]],[["nz-list-load-more"],["","nz-list-load-more",""]],[["nz-list-pagination"],["","nz-list-pagination",""]],"*"],Rn=["nz-list-header","nz-list-footer, [nz-list-footer]","nz-list-load-more, [nz-list-load-more]","nz-list-pagination, [nz-list-pagination]","*"];function $n(n,o){if(1&n&&t._UZ(0,"ul",6),2&n){const e=t.oxw(2);t.Q6J("nzActions",e.nzActions)}}function Vn(n,o){if(1&n&&(t.YNc(0,$n,1,1,"ul",5),t.Hsn(1)),2&n){const e=t.oxw();t.Q6J("ngIf",e.nzActions&&e.nzActions.length>0)}}function Yn(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=t.oxw(3);t.xp6(1),t.Oqu(e.nzContent)}}function qn(n,o){if(1&n&&(t.ynx(0),t.YNc(1,Yn,2,1,"ng-container",8),t.BQk()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzContent)}}function Wn(n,o){if(1&n&&(t.Hsn(0,1),t.Hsn(1,2),t.YNc(2,qn,2,1,"ng-container",7)),2&n){const e=t.oxw();t.xp6(2),t.Q6J("ngIf",e.nzContent)}}function Un(n,o){1&n&&t.Hsn(0,3)}function Hn(n,o){}function Gn(n,o){}function Xn(n,o){}function jn(n,o){}function Kn(n,o){if(1&n&&(t.YNc(0,Hn,0,0,"ng-template",9),t.YNc(1,Gn,0,0,"ng-template",9),t.YNc(2,Xn,0,0,"ng-template",9),t.YNc(3,jn,0,0,"ng-template",9)),2&n){const e=t.oxw(),i=t.MAs(3),a=t.MAs(5),s=t.MAs(1);t.Q6J("ngTemplateOutlet",i),t.xp6(1),t.Q6J("ngTemplateOutlet",e.nzExtra),t.xp6(1),t.Q6J("ngTemplateOutlet",a),t.xp6(1),t.Q6J("ngTemplateOutlet",s)}}function ti(n,o){}function ei(n,o){}function ni(n,o){}function ii(n,o){if(1&n&&(t.TgZ(0,"nz-list-item-extra"),t.YNc(1,ni,0,0,"ng-template",9),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",e.nzExtra)}}function oi(n,o){}function ai(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"div",10),t.YNc(2,ti,0,0,"ng-template",9),t.YNc(3,ei,0,0,"ng-template",9),t.qZA(),t.YNc(4,ii,2,1,"nz-list-item-extra",7),t.YNc(5,oi,0,0,"ng-template",9),t.BQk()),2&n){const e=t.oxw(),i=t.MAs(3),a=t.MAs(1),s=t.MAs(5);t.xp6(2),t.Q6J("ngTemplateOutlet",i),t.xp6(1),t.Q6J("ngTemplateOutlet",a),t.xp6(1),t.Q6J("ngIf",e.nzExtra),t.xp6(1),t.Q6J("ngTemplateOutlet",s)}}const si=[[["nz-list-item-actions"],["","nz-list-item-actions",""]],[["nz-list-item-meta"],["","nz-list-item-meta",""]],"*",[["nz-list-item-extra"],["","nz-list-item-extra",""]]],ri=["nz-list-item-actions, [nz-list-item-actions]","nz-list-item-meta, [nz-list-item-meta]","*","nz-list-item-extra, [nz-list-item-extra]"];let kt=(()=>{class n{constructor(){}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-list-item-extra"],["","nz-list-item-extra",""]],hostAttrs:[1,"ant-list-item-extra"],exportAs:["nzListItemExtra"],ngContentSelectors:G,decls:1,vars:0,template:function(e,i){1&e&&(t.F$t(),t.Hsn(0))},encapsulation:2,changeDetection:0}),n})(),ie=(()=>{class n{constructor(){}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-list-item-action"]],viewQuery:function(e,i){if(1&e&&t.Gf(t.Rgc,5),2&e){let a;t.iGM(a=t.CRH())&&(i.templateRef=a.first)}},exportAs:["nzListItemAction"],ngContentSelectors:G,decls:1,vars:0,template:function(e,i){1&e&&(t.F$t(),t.YNc(0,xn,1,0,"ng-template"))},encapsulation:2,changeDetection:0}),n})(),oe=(()=>{class n{constructor(e,i){this.ngZone=e,this.cdr=i,this.nzActions=[],this.actions=[],this.destroy$=new x.xQ,this.inputActionChanges$=new x.xQ,this.contentChildrenChanges$=(0,ln.P)(()=>this.nzListItemActions?(0,Ot.of)(null):this.ngZone.onStable.asObservable().pipe((0,cn.q)(1),(0,N.w)(()=>this.contentChildrenChanges$))),(0,L.T)(this.contentChildrenChanges$,this.inputActionChanges$).pipe((0,_.R)(this.destroy$)).subscribe(()=>{this.actions=this.nzActions.length?this.nzActions:this.nzListItemActions.map(a=>a.templateRef),this.cdr.detectChanges()})}ngOnChanges(){this.inputActionChanges$.next(null)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.R0b),t.Y36(t.sBO))},n.\u0275cmp=t.Xpm({type:n,selectors:[["ul","nz-list-item-actions",""]],contentQueries:function(e,i,a){if(1&e&&t.Suo(a,ie,4),2&e){let s;t.iGM(s=t.CRH())&&(i.nzListItemActions=s)}},hostAttrs:[1,"ant-list-item-action"],inputs:{nzActions:"nzActions"},exportAs:["nzListItemActions"],features:[t.TTD],attrs:bn,decls:1,vars:1,consts:[[4,"ngFor","ngForOf"],[3,"ngTemplateOutlet"],["class","ant-list-item-action-split",4,"ngIf"],[1,"ant-list-item-action-split"]],template:function(e,i){1&e&&t.YNc(0,Sn,3,2,"li",0),2&e&&t.Q6J("ngForOf",i.actions)},directives:[d.sg,d.tP,d.O5],encapsulation:2,changeDetection:0}),n})(),Dt=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-list-empty"]],hostAttrs:[1,"ant-list-empty-text"],inputs:{nzNoResult:"nzNoResult"},exportAs:["nzListHeader"],decls:1,vars:2,consts:[[3,"nzComponentName","specificContent"]],template:function(e,i){1&e&&t._UZ(0,"nz-embed-empty",0),2&e&&t.Q6J("nzComponentName","list")("specificContent",i.nzNoResult)},directives:[St.gB],encapsulation:2,changeDetection:0}),n})(),At=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-list-header"]],hostAttrs:[1,"ant-list-header"],exportAs:["nzListHeader"],ngContentSelectors:G,decls:1,vars:0,template:function(e,i){1&e&&(t.F$t(),t.Hsn(0))},encapsulation:2,changeDetection:0}),n})(),Zt=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-list-footer"]],hostAttrs:[1,"ant-list-footer"],exportAs:["nzListFooter"],ngContentSelectors:G,decls:1,vars:0,template:function(e,i){1&e&&(t.F$t(),t.Hsn(0))},encapsulation:2,changeDetection:0}),n})(),It=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-list-pagination"]],hostAttrs:[1,"ant-list-pagination"],exportAs:["nzListPagination"],ngContentSelectors:G,decls:1,vars:0,template:function(e,i){1&e&&(t.F$t(),t.Hsn(0))},encapsulation:2,changeDetection:0}),n})(),ae=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=t.lG2({type:n,selectors:[["nz-list-load-more"]],exportAs:["nzListLoadMoreDirective"]}),n})(),Et=(()=>{class n{constructor(e,i){this.elementRef=e,this.directionality=i,this.nzBordered=!1,this.nzGrid="",this.nzItemLayout="horizontal",this.nzRenderItem=null,this.nzLoading=!1,this.nzLoadMore=null,this.nzSize="default",this.nzSplit=!0,this.hasSomethingAfterLastItem=!1,this.dir="ltr",this.itemLayoutNotifySource=new P.X(this.nzItemLayout),this.destroy$=new x.xQ,this.elementRef.nativeElement.classList.add("ant-list")}get itemLayoutNotify$(){return this.itemLayoutNotifySource.asObservable()}ngOnInit(){var e;this.dir=this.directionality.value,null===(e=this.directionality.change)||void 0===e||e.pipe((0,_.R)(this.destroy$)).subscribe(i=>{this.dir=i})}getSomethingAfterLastItem(){return!!(this.nzLoadMore||this.nzPagination||this.nzFooter||this.nzListFooterComponent||this.nzListPaginationComponent||this.nzListLoadMoreDirective)}ngOnChanges(e){e.nzItemLayout&&this.itemLayoutNotifySource.next(this.nzItemLayout)}ngOnDestroy(){this.itemLayoutNotifySource.unsubscribe(),this.destroy$.next(),this.destroy$.complete()}ngAfterContentInit(){this.hasSomethingAfterLastItem=this.getSomethingAfterLastItem()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.SBq),t.Y36(k.Is,8))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-list"],["","nz-list",""]],contentQueries:function(e,i,a){if(1&e&&(t.Suo(a,Zt,5),t.Suo(a,It,5),t.Suo(a,ae,5)),2&e){let s;t.iGM(s=t.CRH())&&(i.nzListFooterComponent=s.first),t.iGM(s=t.CRH())&&(i.nzListPaginationComponent=s.first),t.iGM(s=t.CRH())&&(i.nzListLoadMoreDirective=s.first)}},hostVars:16,hostBindings:function(e,i){2&e&&t.ekj("ant-list-rtl","rtl"===i.dir)("ant-list-vertical","vertical"===i.nzItemLayout)("ant-list-lg","large"===i.nzSize)("ant-list-sm","small"===i.nzSize)("ant-list-split",i.nzSplit)("ant-list-bordered",i.nzBordered)("ant-list-loading",i.nzLoading)("ant-list-something-after-last-item",i.hasSomethingAfterLastItem)},inputs:{nzBordered:"nzBordered",nzGrid:"nzGrid",nzItemLayout:"nzItemLayout",nzRenderItem:"nzRenderItem",nzLoading:"nzLoading",nzLoadMore:"nzLoadMore",nzSize:"nzSize",nzSplit:"nzSplit",nzDataSource:"nzDataSource",nzHeader:"nzHeader",nzFooter:"nzFooter",nzPagination:"nzPagination",nzNoResult:"nzNoResult"},exportAs:["nzList"],features:[t.TTD],ngContentSelectors:Rn,decls:15,vars:9,consts:[["itemsTpl",""],[4,"ngIf"],[3,"nzSpinning"],[3,"min-height",4,"ngIf"],["nz-row","",3,"nzGutter",4,"ngIf","ngIfElse"],[3,"nzNoResult",4,"ngIf"],[3,"ngTemplateOutlet"],[1,"ant-list-items"],[4,"ngFor","ngForOf"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[4,"nzStringTemplateOutlet"],["nz-row","",3,"nzGutter"],["nz-col","",3,"nzSpan","nzXs","nzSm","nzMd","nzLg","nzXl","nzXXl",4,"ngFor","ngForOf"],["nz-col","",3,"nzSpan","nzXs","nzSm","nzMd","nzLg","nzXl","nzXXl"],[3,"nzNoResult"]],template:function(e,i){if(1&e&&(t.F$t(Jn),t.YNc(0,yn,3,1,"ng-template",null,0,t.W1O),t.YNc(2,Fn,2,1,"nz-list-header",1),t.Hsn(3),t.TgZ(4,"nz-spin",2),t.ynx(5),t.YNc(6,Nn,1,2,"div",3),t.YNc(7,An,2,2,"div",4),t.YNc(8,Zn,1,1,"nz-list-empty",5),t.BQk(),t.qZA(),t.YNc(9,En,2,1,"nz-list-footer",1),t.Hsn(10,1),t.YNc(11,Bn,0,0,"ng-template",6),t.Hsn(12,2),t.YNc(13,Ln,2,1,"nz-list-pagination",1),t.Hsn(14,3)),2&e){const a=t.MAs(1);t.xp6(2),t.Q6J("ngIf",i.nzHeader),t.xp6(2),t.Q6J("nzSpinning",i.nzLoading),t.xp6(2),t.Q6J("ngIf",i.nzLoading&&i.nzDataSource&&0===i.nzDataSource.length),t.xp6(1),t.Q6J("ngIf",i.nzGrid&&i.nzDataSource)("ngIfElse",a),t.xp6(1),t.Q6J("ngIf",!i.nzLoading&&i.nzDataSource&&0===i.nzDataSource.length),t.xp6(1),t.Q6J("ngIf",i.nzFooter),t.xp6(2),t.Q6J("ngTemplateOutlet",i.nzLoadMore),t.xp6(2),t.Q6J("ngIf",i.nzPagination)}},directives:[d.O5,st.W,d.tP,d.sg,At,H.f,v.SK,v.t3,Dt,Zt,It],encapsulation:2,changeDetection:0}),(0,h.gn)([(0,u.yF)()],n.prototype,"nzBordered",void 0),(0,h.gn)([(0,u.yF)()],n.prototype,"nzLoading",void 0),(0,h.gn)([(0,u.yF)()],n.prototype,"nzSplit",void 0),n})(),se=(()=>{class n{constructor(e,i,a,s){this.parentComp=a,this.cdr=s,this.nzActions=[],this.nzExtra=null,this.nzNoFlex=!1,i.addClass(e.nativeElement,"ant-list-item")}get isVerticalAndExtra(){return!("vertical"!==this.itemLayout||!this.listItemExtraDirective&&!this.nzExtra)}ngAfterViewInit(){this.itemLayout$=this.parentComp.itemLayoutNotify$.subscribe(e=>{this.itemLayout=e,this.cdr.detectChanges()})}ngOnDestroy(){this.itemLayout$&&this.itemLayout$.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.SBq),t.Y36(t.Qsj),t.Y36(Et),t.Y36(t.sBO))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-list-item"],["","nz-list-item",""]],contentQueries:function(e,i,a){if(1&e&&t.Suo(a,kt,5),2&e){let s;t.iGM(s=t.CRH())&&(i.listItemExtraDirective=s.first)}},hostVars:2,hostBindings:function(e,i){2&e&&t.ekj("ant-list-item-no-flex",i.nzNoFlex)},inputs:{nzActions:"nzActions",nzExtra:"nzExtra",nzNoFlex:"nzNoFlex",nzContent:"nzContent"},exportAs:["nzListItem"],ngContentSelectors:ri,decls:9,vars:2,consts:[["actionsTpl",""],["contentTpl",""],["extraTpl",""],["simpleTpl",""],[4,"ngIf","ngIfElse"],["nz-list-item-actions","",3,"nzActions",4,"ngIf"],["nz-list-item-actions","",3,"nzActions"],[4,"ngIf"],[4,"nzStringTemplateOutlet"],[3,"ngTemplateOutlet"],[1,"ant-list-item-main"]],template:function(e,i){if(1&e&&(t.F$t(si),t.YNc(0,Vn,2,1,"ng-template",null,0,t.W1O),t.YNc(2,Wn,3,1,"ng-template",null,1,t.W1O),t.YNc(4,Un,1,0,"ng-template",null,2,t.W1O),t.YNc(6,Kn,4,4,"ng-template",null,3,t.W1O),t.YNc(8,ai,6,4,"ng-container",4)),2&e){const a=t.MAs(7);t.xp6(8),t.Q6J("ngIf",i.isVerticalAndExtra)("ngIfElse",a)}},directives:[d.O5,oe,H.f,d.tP,kt],encapsulation:2,changeDetection:0}),(0,h.gn)([(0,u.yF)()],n.prototype,"nzNoFlex",void 0),n})(),gi=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[[k.vT,d.ez,st.j,v.Jb,te.Rt,H.T,St.Xo]]}),n})();var $=g(4401),pi=g(3385),gt=g(1776),Bt=g(7618),wt=g(6756),K=g(3730),D=g(226),S=g(2729),Mt=g(4226);function di(n,o){}function ui(n,o){if(1&n&&(t.ynx(0),t.YNc(1,di,0,0,"ng-template",6),t.BQk()),2&n){t.oxw(2);const e=t.MAs(2);t.xp6(1),t.Q6J("ngTemplateOutlet",e.template)}}function mi(n,o){if(1&n&&(t.ynx(0),t.YNc(1,ui,2,1,"ng-container",5),t.BQk()),2&n){const e=t.oxw(),i=t.MAs(4);t.xp6(1),t.Q6J("ngIf",e.nzSimple)("ngIfElse",i.template)}}const re=["containerTemplate"];function hi(n,o){}const fi=function(n,o){return{$implicit:n,range:o}};function _i(n,o){if(1&n&&(t.TgZ(0,"li",4),t.YNc(1,hi,0,0,"ng-template",5),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",e.showTotal)("ngTemplateOutletContext",t.WLB(2,fi,e.total,e.ranges))}}function zi(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"li",6),t.NdJ("gotoIndex",function(a){return t.CHM(e),t.oxw(2).jumpPage(a)})("diffIndex",function(a){return t.CHM(e),t.oxw(2).jumpDiff(a)}),t.qZA()}if(2&n){const e=o.$implicit,i=t.oxw(2);t.Q6J("locale",i.locale)("type",e.type)("index",e.index)("disabled",!!e.disabled)("itemRender",i.itemRender)("active",i.pageIndex===e.index)("direction",i.dir)}}function Ci(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"div",7),t.NdJ("pageIndexChange",function(a){return t.CHM(e),t.oxw(2).onPageIndexChange(a)})("pageSizeChange",function(a){return t.CHM(e),t.oxw(2).onPageSizeChange(a)}),t.qZA()}if(2&n){const e=t.oxw(2);t.Q6J("total",e.total)("locale",e.locale)("disabled",e.disabled)("nzSize",e.nzSize)("showSizeChanger",e.showSizeChanger)("showQuickJumper",e.showQuickJumper)("pageIndex",e.pageIndex)("pageSize",e.pageSize)("pageSizeOptions",e.pageSizeOptions)}}function vi(n,o){if(1&n&&(t.YNc(0,_i,2,5,"li",1),t.YNc(1,zi,1,7,"li",2),t.YNc(2,Ci,1,9,"div",3)),2&n){const e=t.oxw();t.Q6J("ngIf",e.showTotal),t.xp6(1),t.Q6J("ngForOf",e.listOfPageItem)("ngForTrackBy",e.trackByPageItem),t.xp6(1),t.Q6J("ngIf",e.showQuickJumper||e.showSizeChanger)}}const xi=["nz-pagination-item",""];function bi(n,o){if(1&n&&(t.TgZ(0,"a"),t._uU(1),t.qZA()),2&n){const e=t.oxw().page;t.xp6(1),t.Oqu(e)}}function Ti(n,o){1&n&&t._UZ(0,"i",9)}function Oi(n,o){1&n&&t._UZ(0,"i",10)}function Si(n,o){if(1&n&&(t.TgZ(0,"button",6),t.ynx(1,2),t.YNc(2,Ti,1,0,"i",7),t.YNc(3,Oi,1,0,"i",8),t.BQk(),t.qZA()),2&n){const e=t.oxw(2);t.Q6J("disabled",e.disabled),t.xp6(1),t.Q6J("ngSwitch",e.direction),t.xp6(1),t.Q6J("ngSwitchCase","rtl")}}function wi(n,o){1&n&&t._UZ(0,"i",10)}function Mi(n,o){1&n&&t._UZ(0,"i",9)}function yi(n,o){if(1&n&&(t.TgZ(0,"button",6),t.ynx(1,2),t.YNc(2,wi,1,0,"i",11),t.YNc(3,Mi,1,0,"i",12),t.BQk(),t.qZA()),2&n){const e=t.oxw(2);t.Q6J("disabled",e.disabled),t.xp6(1),t.Q6J("ngSwitch",e.direction),t.xp6(1),t.Q6J("ngSwitchCase","rtl")}}function Pi(n,o){1&n&&t._UZ(0,"i",20)}function Fi(n,o){1&n&&t._UZ(0,"i",21)}function Ni(n,o){if(1&n&&(t.ynx(0,2),t.YNc(1,Pi,1,0,"i",18),t.YNc(2,Fi,1,0,"i",19),t.BQk()),2&n){const e=t.oxw(4);t.Q6J("ngSwitch",e.direction),t.xp6(1),t.Q6J("ngSwitchCase","rtl")}}function ki(n,o){1&n&&t._UZ(0,"i",21)}function Di(n,o){1&n&&t._UZ(0,"i",20)}function Ai(n,o){if(1&n&&(t.ynx(0,2),t.YNc(1,ki,1,0,"i",22),t.YNc(2,Di,1,0,"i",23),t.BQk()),2&n){const e=t.oxw(4);t.Q6J("ngSwitch",e.direction),t.xp6(1),t.Q6J("ngSwitchCase","rtl")}}function Zi(n,o){if(1&n&&(t.TgZ(0,"div",15),t.ynx(1,2),t.YNc(2,Ni,3,2,"ng-container",16),t.YNc(3,Ai,3,2,"ng-container",16),t.BQk(),t.TgZ(4,"span",17),t._uU(5,"\u2022\u2022\u2022"),t.qZA(),t.qZA()),2&n){const e=t.oxw(2).$implicit;t.xp6(1),t.Q6J("ngSwitch",e),t.xp6(1),t.Q6J("ngSwitchCase","prev_5"),t.xp6(1),t.Q6J("ngSwitchCase","next_5")}}function Ii(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"a",13),t.YNc(2,Zi,6,3,"div",14),t.qZA(),t.BQk()),2&n){const e=t.oxw().$implicit;t.xp6(1),t.Q6J("ngSwitch",e)}}function Ei(n,o){1&n&&(t.ynx(0,2),t.YNc(1,bi,2,1,"a",3),t.YNc(2,Si,4,3,"button",4),t.YNc(3,yi,4,3,"button",4),t.YNc(4,Ii,3,1,"ng-container",5),t.BQk()),2&n&&(t.Q6J("ngSwitch",o.$implicit),t.xp6(1),t.Q6J("ngSwitchCase","page"),t.xp6(1),t.Q6J("ngSwitchCase","prev"),t.xp6(1),t.Q6J("ngSwitchCase","next"))}function Bi(n,o){}const Qi=function(n,o){return{$implicit:n,page:o}},Li=["nz-pagination-options",""];function Ji(n,o){if(1&n&&t._UZ(0,"nz-option",4),2&n){const e=o.$implicit;t.Q6J("nzLabel",e.label)("nzValue",e.value)}}function Ri(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-select",2),t.NdJ("ngModelChange",function(a){return t.CHM(e),t.oxw().onPageSizeChange(a)}),t.YNc(1,Ji,1,2,"nz-option",3),t.qZA()}if(2&n){const e=t.oxw();t.Q6J("nzDisabled",e.disabled)("nzSize",e.nzSize)("ngModel",e.pageSize),t.xp6(1),t.Q6J("ngForOf",e.listOfPageSizeOption)("ngForTrackBy",e.trackByOption)}}function $i(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"div",5),t._uU(1),t.TgZ(2,"input",6),t.NdJ("keydown.enter",function(a){return t.CHM(e),t.oxw().jumpToPageViaInput(a)}),t.qZA(),t._uU(3),t.qZA()}if(2&n){const e=t.oxw();t.xp6(1),t.hij(" ",e.locale.jump_to," "),t.xp6(1),t.Q6J("disabled",e.disabled),t.xp6(1),t.hij(" ",e.locale.page," ")}}function Vi(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"li",1),t.NdJ("click",function(){return t.CHM(e),t.oxw().prePage()}),t.qZA(),t.TgZ(1,"li",2),t.TgZ(2,"input",3),t.NdJ("keydown.enter",function(a){return t.CHM(e),t.oxw().jumpToPageViaInput(a)}),t.qZA(),t.TgZ(3,"span",4),t._uU(4,"/"),t.qZA(),t._uU(5),t.qZA(),t.TgZ(6,"li",5),t.NdJ("click",function(){return t.CHM(e),t.oxw().nextPage()}),t.qZA()}if(2&n){const e=t.oxw();t.Q6J("disabled",e.isFirstIndex)("direction",e.dir)("itemRender",e.itemRender),t.uIk("title",e.locale.prev_page),t.xp6(1),t.uIk("title",e.pageIndex+"/"+e.lastIndex),t.xp6(1),t.Q6J("disabled",e.disabled)("value",e.pageIndex),t.xp6(3),t.hij(" ",e.lastIndex," "),t.xp6(1),t.Q6J("disabled",e.isLastIndex)("direction",e.dir)("itemRender",e.itemRender),t.uIk("title",null==e.locale?null:e.locale.next_page)}}let qi=(()=>{class n{constructor(e,i,a,s,r,c){this.i18n=e,this.cdr=i,this.breakpointService=a,this.nzConfigService=s,this.directionality=r,this.elementRef=c,this._nzModuleName="pagination",this.nzPageSizeChange=new t.vpe,this.nzPageIndexChange=new t.vpe,this.nzShowTotal=null,this.nzItemRender=null,this.nzSize="default",this.nzPageSizeOptions=[10,20,30,40],this.nzShowSizeChanger=!1,this.nzShowQuickJumper=!1,this.nzSimple=!1,this.nzDisabled=!1,this.nzResponsive=!1,this.nzHideOnSinglePage=!1,this.nzTotal=0,this.nzPageIndex=1,this.nzPageSize=10,this.showPagination=!0,this.size="default",this.dir="ltr",this.destroy$=new x.xQ,this.total$=new D.t(1),this.elementRef.nativeElement.classList.add("ant-pagination")}validatePageIndex(e,i){return e>i?i:e<1?1:e}onPageIndexChange(e){const i=this.getLastIndex(this.nzTotal,this.nzPageSize),a=this.validatePageIndex(e,i);a!==this.nzPageIndex&&!this.nzDisabled&&(this.nzPageIndex=a,this.nzPageIndexChange.emit(this.nzPageIndex))}onPageSizeChange(e){this.nzPageSize=e,this.nzPageSizeChange.emit(e);const i=this.getLastIndex(this.nzTotal,this.nzPageSize);this.nzPageIndex>i&&this.onPageIndexChange(i)}onTotalChange(e){const i=this.getLastIndex(e,this.nzPageSize);this.nzPageIndex>i&&Promise.resolve().then(()=>{this.onPageIndexChange(i),this.cdr.markForCheck()})}getLastIndex(e,i){return Math.ceil(e/i)}ngOnInit(){var e;this.i18n.localeChange.pipe((0,_.R)(this.destroy$)).subscribe(()=>{this.locale=this.i18n.getLocaleData("Pagination"),this.cdr.markForCheck()}),this.total$.pipe((0,_.R)(this.destroy$)).subscribe(i=>{this.onTotalChange(i)}),this.breakpointService.subscribe(Mt.WV).pipe((0,_.R)(this.destroy$)).subscribe(i=>{this.nzResponsive&&(this.size=i===Mt.G_.xs?"small":"default",this.cdr.markForCheck())}),null===(e=this.directionality.change)||void 0===e||e.pipe((0,_.R)(this.destroy$)).subscribe(i=>{this.dir=i,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}ngOnChanges(e){const{nzHideOnSinglePage:i,nzTotal:a,nzPageSize:s,nzSize:r}=e;a&&this.total$.next(this.nzTotal),(i||a||s)&&(this.showPagination=this.nzHideOnSinglePage&&this.nzTotal>this.nzPageSize||this.nzTotal>0&&!this.nzHideOnSinglePage),r&&(this.size=r.currentValue)}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(wt.wi),t.Y36(t.sBO),t.Y36(Mt.r3),t.Y36(S.jY),t.Y36(k.Is,8),t.Y36(t.SBq))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-pagination"]],hostVars:8,hostBindings:function(e,i){2&e&&t.ekj("ant-pagination-simple",i.nzSimple)("ant-pagination-disabled",i.nzDisabled)("mini",!i.nzSimple&&"small"===i.size)("ant-pagination-rtl","rtl"===i.dir)},inputs:{nzShowTotal:"nzShowTotal",nzItemRender:"nzItemRender",nzSize:"nzSize",nzPageSizeOptions:"nzPageSizeOptions",nzShowSizeChanger:"nzShowSizeChanger",nzShowQuickJumper:"nzShowQuickJumper",nzSimple:"nzSimple",nzDisabled:"nzDisabled",nzResponsive:"nzResponsive",nzHideOnSinglePage:"nzHideOnSinglePage",nzTotal:"nzTotal",nzPageIndex:"nzPageIndex",nzPageSize:"nzPageSize"},outputs:{nzPageSizeChange:"nzPageSizeChange",nzPageIndexChange:"nzPageIndexChange"},exportAs:["nzPagination"],features:[t.TTD],decls:5,vars:18,consts:[[4,"ngIf"],[3,"disabled","itemRender","locale","pageSize","total","pageIndex","pageIndexChange"],["simplePagination",""],[3,"nzSize","itemRender","showTotal","disabled","locale","showSizeChanger","showQuickJumper","total","pageIndex","pageSize","pageSizeOptions","pageIndexChange","pageSizeChange"],["defaultPagination",""],[4,"ngIf","ngIfElse"],[3,"ngTemplateOutlet"]],template:function(e,i){1&e&&(t.YNc(0,mi,2,2,"ng-container",0),t.TgZ(1,"nz-pagination-simple",1,2),t.NdJ("pageIndexChange",function(s){return i.onPageIndexChange(s)}),t.qZA(),t.TgZ(3,"nz-pagination-default",3,4),t.NdJ("pageIndexChange",function(s){return i.onPageIndexChange(s)})("pageSizeChange",function(s){return i.onPageSizeChange(s)}),t.qZA()),2&e&&(t.Q6J("ngIf",i.showPagination),t.xp6(1),t.Q6J("disabled",i.nzDisabled)("itemRender",i.nzItemRender)("locale",i.locale)("pageSize",i.nzPageSize)("total",i.nzTotal)("pageIndex",i.nzPageIndex),t.xp6(2),t.Q6J("nzSize",i.size)("itemRender",i.nzItemRender)("showTotal",i.nzShowTotal)("disabled",i.nzDisabled)("locale",i.locale)("showSizeChanger",i.nzShowSizeChanger)("showQuickJumper",i.nzShowQuickJumper)("total",i.nzTotal)("pageIndex",i.nzPageIndex)("pageSize",i.nzPageSize)("pageSizeOptions",i.nzPageSizeOptions))},directives:function(){return[d.O5,Hi,Wi,d.tP]},encapsulation:2,changeDetection:0}),(0,h.gn)([(0,S.oS)()],n.prototype,"nzSize",void 0),(0,h.gn)([(0,S.oS)()],n.prototype,"nzPageSizeOptions",void 0),(0,h.gn)([(0,S.oS)(),(0,u.yF)()],n.prototype,"nzShowSizeChanger",void 0),(0,h.gn)([(0,S.oS)(),(0,u.yF)()],n.prototype,"nzShowQuickJumper",void 0),(0,h.gn)([(0,S.oS)(),(0,u.yF)()],n.prototype,"nzSimple",void 0),(0,h.gn)([(0,u.yF)()],n.prototype,"nzDisabled",void 0),(0,h.gn)([(0,u.yF)()],n.prototype,"nzResponsive",void 0),(0,h.gn)([(0,u.yF)()],n.prototype,"nzHideOnSinglePage",void 0),(0,h.gn)([(0,u.Rn)()],n.prototype,"nzTotal",void 0),(0,h.gn)([(0,u.Rn)()],n.prototype,"nzPageIndex",void 0),(0,h.gn)([(0,u.Rn)()],n.prototype,"nzPageSize",void 0),n})(),Wi=(()=>{class n{constructor(e,i,a,s){this.cdr=e,this.renderer=i,this.elementRef=a,this.directionality=s,this.nzSize="default",this.itemRender=null,this.showTotal=null,this.disabled=!1,this.showSizeChanger=!1,this.showQuickJumper=!1,this.total=0,this.pageIndex=1,this.pageSize=10,this.pageSizeOptions=[10,20,30,40],this.pageIndexChange=new t.vpe,this.pageSizeChange=new t.vpe,this.ranges=[0,0],this.listOfPageItem=[],this.dir="ltr",this.destroy$=new x.xQ,i.removeChild(i.parentNode(a.nativeElement),a.nativeElement)}ngOnInit(){var e;null===(e=this.directionality.change)||void 0===e||e.pipe((0,_.R)(this.destroy$)).subscribe(i=>{this.dir=i,this.updateRtlStyle(),this.cdr.detectChanges()}),this.dir=this.directionality.value,this.updateRtlStyle()}updateRtlStyle(){"rtl"===this.dir?this.renderer.addClass(this.elementRef.nativeElement,"ant-pagination-rtl"):this.renderer.removeClass(this.elementRef.nativeElement,"ant-pagination-rtl")}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}jumpPage(e){this.onPageIndexChange(e)}jumpDiff(e){this.jumpPage(this.pageIndex+e)}trackByPageItem(e,i){return`${i.type}-${i.index}`}onPageIndexChange(e){this.pageIndexChange.next(e)}onPageSizeChange(e){this.pageSizeChange.next(e)}getLastIndex(e,i){return Math.ceil(e/i)}buildIndexes(){const e=this.getLastIndex(this.total,this.pageSize);this.listOfPageItem=this.getListOfPageItem(this.pageIndex,e)}getListOfPageItem(e,i){const s=(r,c)=>{const p=[];for(let z=r;z<=c;z++)p.push({index:z,type:"page"});return p};return r=i<=9?s(1,i):((c,p)=>{let z=[];const C={type:"prev_5"},f={type:"next_5"},T=s(1,1),Z=s(i,i);return z=c<4?[...s(2,5),f]:c<p-3?[C,...s(c-2,c+2),f]:[C,...s(p-4,p-1)],[...T,...z,...Z]})(e,i),[{type:"prev",disabled:1===e},...r,{type:"next",disabled:e===i}];var r}ngOnChanges(e){const{pageIndex:i,pageSize:a,total:s}=e;(i||a||s)&&(this.ranges=[(this.pageIndex-1)*this.pageSize+1,Math.min(this.pageIndex*this.pageSize,this.total)],this.buildIndexes())}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.sBO),t.Y36(t.Qsj),t.Y36(t.SBq),t.Y36(k.Is,8))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-pagination-default"]],viewQuery:function(e,i){if(1&e&&t.Gf(re,7),2&e){let a;t.iGM(a=t.CRH())&&(i.template=a.first)}},inputs:{nzSize:"nzSize",itemRender:"itemRender",showTotal:"showTotal",disabled:"disabled",showSizeChanger:"showSizeChanger",showQuickJumper:"showQuickJumper",total:"total",pageIndex:"pageIndex",pageSize:"pageSize",pageSizeOptions:"pageSizeOptions",locale:"locale"},outputs:{pageIndexChange:"pageIndexChange",pageSizeChange:"pageSizeChange"},features:[t.TTD],decls:2,vars:0,consts:[["containerTemplate",""],["class","ant-pagination-total-text",4,"ngIf"],["nz-pagination-item","",3,"locale","type","index","disabled","itemRender","active","direction","gotoIndex","diffIndex",4,"ngFor","ngForOf","ngForTrackBy"],["nz-pagination-options","",3,"total","locale","disabled","nzSize","showSizeChanger","showQuickJumper","pageIndex","pageSize","pageSizeOptions","pageIndexChange","pageSizeChange",4,"ngIf"],[1,"ant-pagination-total-text"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["nz-pagination-item","",3,"locale","type","index","disabled","itemRender","active","direction","gotoIndex","diffIndex"],["nz-pagination-options","",3,"total","locale","disabled","nzSize","showSizeChanger","showQuickJumper","pageIndex","pageSize","pageSizeOptions","pageIndexChange","pageSizeChange"]],template:function(e,i){1&e&&t.YNc(0,vi,3,4,"ng-template",null,0,t.W1O)},directives:function(){return[d.O5,d.sg,d.tP,le,Ui]},encapsulation:2,changeDetection:0}),n})(),le=(()=>{class n{constructor(){this.active=!1,this.index=null,this.disabled=!1,this.direction="ltr",this.type=null,this.itemRender=null,this.diffIndex=new t.vpe,this.gotoIndex=new t.vpe,this.title=null}clickItem(){this.disabled||("page"===this.type?this.gotoIndex.emit(this.index):this.diffIndex.emit({next:1,prev:-1,prev_5:-5,next_5:5}[this.type]))}ngOnChanges(e){var i,a,s,r;const{locale:c,index:p,type:z}=e;(c||p||z)&&(this.title={page:`${this.index}`,next:null===(i=this.locale)||void 0===i?void 0:i.next_page,prev:null===(a=this.locale)||void 0===a?void 0:a.prev_page,prev_5:null===(s=this.locale)||void 0===s?void 0:s.prev_5,next_5:null===(r=this.locale)||void 0===r?void 0:r.next_5}[this.type])}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["li","nz-pagination-item",""]],hostVars:19,hostBindings:function(e,i){1&e&&t.NdJ("click",function(){return i.clickItem()}),2&e&&(t.uIk("title",i.title),t.ekj("ant-pagination-prev","prev"===i.type)("ant-pagination-next","next"===i.type)("ant-pagination-item","page"===i.type)("ant-pagination-jump-prev","prev_5"===i.type)("ant-pagination-jump-prev-custom-icon","prev_5"===i.type)("ant-pagination-jump-next","next_5"===i.type)("ant-pagination-jump-next-custom-icon","next_5"===i.type)("ant-pagination-disabled",i.disabled)("ant-pagination-item-active",i.active))},inputs:{active:"active",index:"index",disabled:"disabled",direction:"direction",type:"type",itemRender:"itemRender",locale:"locale"},outputs:{diffIndex:"diffIndex",gotoIndex:"gotoIndex"},features:[t.TTD],attrs:xi,decls:3,vars:5,consts:[["renderItemTemplate",""],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"ngSwitch"],[4,"ngSwitchCase"],["type","button","class","ant-pagination-item-link",3,"disabled",4,"ngSwitchCase"],[4,"ngSwitchDefault"],["type","button",1,"ant-pagination-item-link",3,"disabled"],["nz-icon","","nzType","right",4,"ngSwitchCase"],["nz-icon","","nzType","left",4,"ngSwitchDefault"],["nz-icon","","nzType","right"],["nz-icon","","nzType","left"],["nz-icon","","nzType","left",4,"ngSwitchCase"],["nz-icon","","nzType","right",4,"ngSwitchDefault"],[1,"ant-pagination-item-link",3,"ngSwitch"],["class","ant-pagination-item-container",4,"ngSwitchDefault"],[1,"ant-pagination-item-container"],[3,"ngSwitch",4,"ngSwitchCase"],[1,"ant-pagination-item-ellipsis"],["nz-icon","","nzType","double-right","class","ant-pagination-item-link-icon",4,"ngSwitchCase"],["nz-icon","","nzType","double-left","class","ant-pagination-item-link-icon",4,"ngSwitchDefault"],["nz-icon","","nzType","double-right",1,"ant-pagination-item-link-icon"],["nz-icon","","nzType","double-left",1,"ant-pagination-item-link-icon"],["nz-icon","","nzType","double-left","class","ant-pagination-item-link-icon",4,"ngSwitchCase"],["nz-icon","","nzType","double-right","class","ant-pagination-item-link-icon",4,"ngSwitchDefault"]],template:function(e,i){if(1&e&&(t.YNc(0,Ei,5,4,"ng-template",null,0,t.W1O),t.YNc(2,Bi,0,0,"ng-template",1)),2&e){const a=t.MAs(1);t.xp6(2),t.Q6J("ngTemplateOutlet",i.itemRender||a)("ngTemplateOutletContext",t.WLB(2,Qi,i.type,i.index))}},directives:[d.tP,d.RF,d.n9,d.ED,E.Ls],encapsulation:2,changeDetection:0}),n})(),Ui=(()=>{class n{constructor(e){this.elementRef=e,this.nzSize="default",this.disabled=!1,this.showSizeChanger=!1,this.showQuickJumper=!1,this.total=0,this.pageIndex=1,this.pageSize=10,this.pageSizeOptions=[],this.pageIndexChange=new t.vpe,this.pageSizeChange=new t.vpe,this.listOfPageSizeOption=[],this.elementRef.nativeElement.classList.add("ant-pagination-options")}onPageSizeChange(e){this.pageSize!==e&&this.pageSizeChange.next(e)}jumpToPageViaInput(e){const i=e.target,a=Math.floor((0,u.He)(i.value,this.pageIndex));this.pageIndexChange.next(a),i.value=""}trackByOption(e,i){return i.value}ngOnChanges(e){const{pageSize:i,pageSizeOptions:a,locale:s}=e;(i||a||s)&&(this.listOfPageSizeOption=[...new Set([...this.pageSizeOptions,this.pageSize])].map(r=>({value:r,label:`${r} ${this.locale.items_per_page}`})))}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.SBq))},n.\u0275cmp=t.Xpm({type:n,selectors:[["div","nz-pagination-options",""]],inputs:{nzSize:"nzSize",disabled:"disabled",showSizeChanger:"showSizeChanger",showQuickJumper:"showQuickJumper",total:"total",pageIndex:"pageIndex",pageSize:"pageSize",pageSizeOptions:"pageSizeOptions",locale:"locale"},outputs:{pageIndexChange:"pageIndexChange",pageSizeChange:"pageSizeChange"},features:[t.TTD],attrs:Li,decls:2,vars:2,consts:[["class","ant-pagination-options-size-changer",3,"nzDisabled","nzSize","ngModel","ngModelChange",4,"ngIf"],["class","ant-pagination-options-quick-jumper",4,"ngIf"],[1,"ant-pagination-options-size-changer",3,"nzDisabled","nzSize","ngModel","ngModelChange"],[3,"nzLabel","nzValue",4,"ngFor","ngForOf","ngForTrackBy"],[3,"nzLabel","nzValue"],[1,"ant-pagination-options-quick-jumper"],[3,"disabled","keydown.enter"]],template:function(e,i){1&e&&(t.YNc(0,Ri,2,5,"nz-select",0),t.YNc(1,$i,4,3,"div",1)),2&e&&(t.Q6J("ngIf",i.showSizeChanger),t.xp6(1),t.Q6J("ngIf",i.showQuickJumper))},directives:[d.O5,U.Vq,l.JJ,l.On,d.sg,U.Ip],encapsulation:2,changeDetection:0}),n})(),Hi=(()=>{class n{constructor(e,i,a,s){this.cdr=e,this.renderer=i,this.elementRef=a,this.directionality=s,this.itemRender=null,this.disabled=!1,this.total=0,this.pageIndex=1,this.pageSize=10,this.pageIndexChange=new t.vpe,this.lastIndex=0,this.isFirstIndex=!1,this.isLastIndex=!1,this.dir="ltr",this.destroy$=new x.xQ,i.removeChild(i.parentNode(a.nativeElement),a.nativeElement)}ngOnInit(){var e;null===(e=this.directionality.change)||void 0===e||e.pipe((0,_.R)(this.destroy$)).subscribe(i=>{this.dir=i,this.updateRtlStyle(),this.cdr.detectChanges()}),this.dir=this.directionality.value,this.updateRtlStyle()}updateRtlStyle(){"rtl"===this.dir?this.renderer.addClass(this.elementRef.nativeElement,"ant-pagination-rtl"):this.renderer.removeClass(this.elementRef.nativeElement,"ant-pagination-rtl")}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}jumpToPageViaInput(e){const i=e.target,a=(0,u.He)(i.value,this.pageIndex);this.onPageIndexChange(a),i.value=`${this.pageIndex}`}prePage(){this.onPageIndexChange(this.pageIndex-1)}nextPage(){this.onPageIndexChange(this.pageIndex+1)}onPageIndexChange(e){this.pageIndexChange.next(e)}updateBindingValue(){this.lastIndex=Math.ceil(this.total/this.pageSize),this.isFirstIndex=1===this.pageIndex,this.isLastIndex=this.pageIndex===this.lastIndex}ngOnChanges(e){const{pageIndex:i,total:a,pageSize:s}=e;(i||a||s)&&this.updateBindingValue()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.sBO),t.Y36(t.Qsj),t.Y36(t.SBq),t.Y36(k.Is,8))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-pagination-simple"]],viewQuery:function(e,i){if(1&e&&t.Gf(re,7),2&e){let a;t.iGM(a=t.CRH())&&(i.template=a.first)}},inputs:{itemRender:"itemRender",disabled:"disabled",total:"total",pageIndex:"pageIndex",pageSize:"pageSize",locale:"locale"},outputs:{pageIndexChange:"pageIndexChange"},features:[t.TTD],decls:2,vars:0,consts:[["containerTemplate",""],["nz-pagination-item","","type","prev",3,"disabled","direction","itemRender","click"],[1,"ant-pagination-simple-pager"],["size","3",3,"disabled","value","keydown.enter"],[1,"ant-pagination-slash"],["nz-pagination-item","","type","next",3,"disabled","direction","itemRender","click"]],template:function(e,i){1&e&&t.YNc(0,Vi,7,12,"ng-template",null,0,t.W1O)},directives:[le],encapsulation:2,changeDetection:0}),n})(),Gi=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[[k.vT,d.ez,l.u5,U.LV,wt.YI,E.PV]]}),n})();var Xi=g(6956),V=g(9112),Qt=g(9193),X=g(9761),Lt=g(1289),Jt=g(4395),ji=g(3653),Rt=g(9773),tt=g(4514),ce=g(9374);const j=["*"];function Ki(n,o){}function to(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"label",15),t.NdJ("ngModelChange",function(){t.CHM(e);const a=t.oxw().$implicit;return t.oxw(2).check(a)}),t.qZA()}if(2&n){const e=t.oxw().$implicit;t.Q6J("ngModel",e.checked)}}function eo(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"label",16),t.NdJ("ngModelChange",function(){t.CHM(e);const a=t.oxw().$implicit;return t.oxw(2).check(a)}),t.qZA()}if(2&n){const e=t.oxw().$implicit;t.Q6J("ngModel",e.checked)}}function no(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"li",12),t.NdJ("click",function(){const s=t.CHM(e).$implicit;return t.oxw(2).check(s)}),t.YNc(1,to,1,1,"label",13),t.YNc(2,eo,1,1,"label",14),t.TgZ(3,"span"),t._uU(4),t.qZA(),t.qZA()}if(2&n){const e=o.$implicit,i=t.oxw(2);t.Q6J("nzSelected",e.checked),t.xp6(1),t.Q6J("ngIf",!i.filterMultiple),t.xp6(1),t.Q6J("ngIf",i.filterMultiple),t.xp6(2),t.Oqu(e.text)}}function io(n,o){if(1&n){const e=t.EpF();t.ynx(0),t.TgZ(1,"nz-filter-trigger",3),t.NdJ("nzVisibleChange",function(a){return t.CHM(e),t.oxw().onVisibleChange(a)}),t._UZ(2,"i",4),t.qZA(),t.TgZ(3,"nz-dropdown-menu",null,5),t.TgZ(5,"div",6),t.TgZ(6,"ul",7),t.YNc(7,no,5,4,"li",8),t.qZA(),t.TgZ(8,"div",9),t.TgZ(9,"button",10),t.NdJ("click",function(){return t.CHM(e),t.oxw().reset()}),t._uU(10),t.qZA(),t.TgZ(11,"button",11),t.NdJ("click",function(){return t.CHM(e),t.oxw().confirm()}),t._uU(12),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.BQk()}if(2&n){const e=t.MAs(4),i=t.oxw();t.xp6(1),t.Q6J("nzVisible",i.isVisible)("nzActive",i.isChecked)("nzDropdownMenu",e),t.xp6(6),t.Q6J("ngForOf",i.listOfParsedFilter)("ngForTrackBy",i.trackByValue),t.xp6(2),t.Q6J("disabled",!i.isChecked),t.xp6(1),t.hij(" ",i.locale.filterReset," "),t.xp6(2),t.Oqu(i.locale.filterConfirm)}}function ro(n,o){}function lo(n,o){if(1&n&&t._UZ(0,"i",6),2&n){const e=t.oxw();t.ekj("active","ascend"===e.sortOrder)}}function co(n,o){if(1&n&&t._UZ(0,"i",7),2&n){const e=t.oxw();t.ekj("active","descend"===e.sortOrder)}}const mo=["nzColumnKey",""];function ho(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-table-filter",5),t.NdJ("filterChange",function(a){return t.CHM(e),t.oxw().onFilterValueChange(a)}),t.qZA()}if(2&n){const e=t.oxw(),i=t.MAs(2),a=t.MAs(4);t.Q6J("contentTemplate",i)("extraTemplate",a)("customFilter",e.nzCustomFilter)("filterMultiple",e.nzFilterMultiple)("listOfFilter",e.nzFilters)}}function fo(n,o){}function _o(n,o){if(1&n&&t.YNc(0,fo,0,0,"ng-template",6),2&n){const e=t.oxw(),i=t.MAs(6),a=t.MAs(8);t.Q6J("ngTemplateOutlet",e.nzShowSort?i:a)}}function zo(n,o){1&n&&(t.Hsn(0),t.Hsn(1,1))}function Co(n,o){if(1&n&&t._UZ(0,"nz-table-sorters",7),2&n){const e=t.oxw(),i=t.MAs(8);t.Q6J("sortOrder",e.sortOrder)("sortDirections",e.sortDirections)("contentTemplate",i)}}function vo(n,o){1&n&&t.Hsn(0,2)}const xo=[[["","nz-th-extra",""]],[["nz-filter-trigger"]],"*"],bo=["[nz-th-extra]","nz-filter-trigger","*"],Oo=["nz-table-content",""];function So(n,o){if(1&n&&t._UZ(0,"col"),2&n){const e=o.$implicit;t.Udp("width",e)("min-width",e)}}function wo(n,o){}function Mo(n,o){if(1&n&&(t.TgZ(0,"thead",3),t.YNc(1,wo,0,0,"ng-template",2),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngTemplateOutlet",e.theadTemplate)}}function yo(n,o){}const ge=["tdElement"],Po=["nz-table-fixed-row",""];function Fo(n,o){}function No(n,o){if(1&n&&(t.TgZ(0,"div",4),t.ALo(1,"async"),t.YNc(2,Fo,0,0,"ng-template",5),t.qZA()),2&n){const e=t.oxw(),i=t.MAs(5);t.Udp("width",t.lcZ(1,3,e.hostWidth$),"px"),t.xp6(2),t.Q6J("ngTemplateOutlet",i)}}function ko(n,o){1&n&&t.Hsn(0)}const Do=["tableHeaderElement"],Ao=["tableBodyElement"];function Zo(n,o){if(1&n&&(t.TgZ(0,"div",7,8),t._UZ(2,"table",9),t.qZA()),2&n){const e=t.oxw(2);t.Q6J("ngStyle",e.bodyStyleMap),t.xp6(2),t.Q6J("scrollX",e.scrollX)("listOfColWidth",e.listOfColWidth)("contentTemplate",e.contentTemplate)}}function Io(n,o){}const Eo=function(n,o){return{$implicit:n,index:o}};function Bo(n,o){if(1&n&&(t.ynx(0),t.YNc(1,Io,0,0,"ng-template",13),t.BQk()),2&n){const e=o.$implicit,i=o.index,a=t.oxw(3);t.xp6(1),t.Q6J("ngTemplateOutlet",a.virtualTemplate)("ngTemplateOutletContext",t.WLB(2,Eo,e,i))}}function Qo(n,o){if(1&n&&(t.TgZ(0,"cdk-virtual-scroll-viewport",10,8),t.TgZ(2,"table",11),t.TgZ(3,"tbody"),t.YNc(4,Bo,2,5,"ng-container",12),t.qZA(),t.qZA(),t.qZA()),2&n){const e=t.oxw(2);t.Udp("height",e.data.length?e.scrollY:e.noDateVirtualHeight),t.Q6J("itemSize",e.virtualItemSize)("maxBufferPx",e.virtualMaxBufferPx)("minBufferPx",e.virtualMinBufferPx),t.xp6(2),t.Q6J("scrollX",e.scrollX)("listOfColWidth",e.listOfColWidth),t.xp6(2),t.Q6J("cdkVirtualForOf",e.data)("cdkVirtualForTrackBy",e.virtualForTrackBy)}}function Lo(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"div",2,3),t._UZ(3,"table",4),t.qZA(),t.YNc(4,Zo,3,4,"div",5),t.YNc(5,Qo,5,9,"cdk-virtual-scroll-viewport",6),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("ngStyle",e.headerStyleMap),t.xp6(2),t.Q6J("scrollX",e.scrollX)("listOfColWidth",e.listOfColWidth)("theadTemplate",e.theadTemplate),t.xp6(1),t.Q6J("ngIf",!e.virtualTemplate),t.xp6(1),t.Q6J("ngIf",e.virtualTemplate)}}function Jo(n,o){if(1&n&&(t.TgZ(0,"div",14,8),t._UZ(2,"table",15),t.qZA()),2&n){const e=t.oxw();t.Q6J("ngStyle",e.bodyStyleMap),t.xp6(2),t.Q6J("scrollX",e.scrollX)("listOfColWidth",e.listOfColWidth)("theadTemplate",e.theadTemplate)("contentTemplate",e.contentTemplate)}}function Ro(n,o){}function $o(n,o){if(1&n&&(t.ynx(0),t.YNc(1,Ro,0,0,"ng-template",10),t.BQk()),2&n){t.oxw();const e=t.MAs(11);t.xp6(1),t.Q6J("ngTemplateOutlet",e)}}function Vo(n,o){if(1&n&&t._UZ(0,"nz-table-title-footer",11),2&n){const e=t.oxw();t.Q6J("title",e.nzTitle)}}function Yo(n,o){if(1&n&&t._UZ(0,"nz-table-inner-scroll",12),2&n){const e=t.oxw(),i=t.MAs(13),a=t.MAs(3);t.Q6J("data",e.data)("scrollX",e.scrollX)("scrollY",e.scrollY)("contentTemplate",i)("listOfColWidth",e.listOfAutoColWidth)("theadTemplate",e.theadTemplate)("verticalScrollBarWidth",e.verticalScrollBarWidth)("virtualTemplate",e.nzVirtualScrollDirective?e.nzVirtualScrollDirective.templateRef:null)("virtualItemSize",e.nzVirtualItemSize)("virtualMaxBufferPx",e.nzVirtualMaxBufferPx)("virtualMinBufferPx",e.nzVirtualMinBufferPx)("tableMainElement",a)("virtualForTrackBy",e.nzVirtualForTrackBy)}}function qo(n,o){if(1&n&&t._UZ(0,"nz-table-inner-default",13),2&n){const e=t.oxw(),i=t.MAs(13);t.Q6J("tableLayout",e.nzTableLayout)("listOfColWidth",e.listOfManualColWidth)("theadTemplate",e.theadTemplate)("contentTemplate",i)}}function Wo(n,o){if(1&n&&t._UZ(0,"nz-table-title-footer",14),2&n){const e=t.oxw();t.Q6J("footer",e.nzFooter)}}function Uo(n,o){}function Ho(n,o){if(1&n&&(t.ynx(0),t.YNc(1,Uo,0,0,"ng-template",10),t.BQk()),2&n){t.oxw();const e=t.MAs(11);t.xp6(1),t.Q6J("ngTemplateOutlet",e)}}function Go(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-pagination",16),t.NdJ("nzPageSizeChange",function(a){return t.CHM(e),t.oxw(2).onPageSizeChange(a)})("nzPageIndexChange",function(a){return t.CHM(e),t.oxw(2).onPageIndexChange(a)}),t.qZA()}if(2&n){const e=t.oxw(2);t.Q6J("hidden",!e.showPagination)("nzShowSizeChanger",e.nzShowSizeChanger)("nzPageSizeOptions",e.nzPageSizeOptions)("nzItemRender",e.nzItemRender)("nzShowQuickJumper",e.nzShowQuickJumper)("nzHideOnSinglePage",e.nzHideOnSinglePage)("nzShowTotal",e.nzShowTotal)("nzSize","small"===e.nzPaginationType?"small":"default"===e.nzSize?"default":"small")("nzPageSize",e.nzPageSize)("nzTotal",e.nzTotal)("nzSimple",e.nzSimple)("nzPageIndex",e.nzPageIndex)}}function Xo(n,o){if(1&n&&t.YNc(0,Go,1,12,"nz-pagination",15),2&n){const e=t.oxw();t.Q6J("ngIf",e.nzShowPagination&&e.data.length)}}function jo(n,o){1&n&&t.Hsn(0)}function Ko(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"tr",3),t.NdJ("listOfAutoWidth",function(a){return t.CHM(e),t.oxw(2).onListOfAutoWidthChange(a)}),t.qZA()}if(2&n){const e=t.oxw().ngIf;t.Q6J("listOfMeasureColumn",e)}}function ta(n,o){if(1&n&&(t.ynx(0),t.YNc(1,Ko,1,1,"tr",2),t.BQk()),2&n){const e=o.ngIf,i=t.oxw();t.xp6(1),t.Q6J("ngIf",i.isInsideTable&&e.length)}}function ea(n,o){if(1&n&&(t.TgZ(0,"tr",4),t._UZ(1,"nz-embed-empty",5),t.ALo(2,"async"),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("specificContent",t.lcZ(2,1,e.noResult$))}}const na=["contentTemplate"];function ia(n,o){1&n&&t.Hsn(0)}function oa(n,o){}function aa(n,o){if(1&n&&(t.ynx(0),t.YNc(1,oa,0,0,"ng-template",2),t.BQk()),2&n){t.oxw();const e=t.MAs(1);t.xp6(1),t.Q6J("ngTemplateOutlet",e)}}function sa(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.Oqu(e.title)}}function ra(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.Oqu(e.footer)}}const la=["nz-table-measure-row",""];function ca(n,o){1&n&&t._UZ(0,"td",1,2)}let ga=(()=>{class n{constructor(e){this.cdr=e,this.nzActive=!1,this.nzVisible=!1,this.nzHasBackdrop=!1,this.nzBackdrop=!1,this.nzVisibleChange=new t.vpe}onVisibleChange(e){this.nzVisible=e,this.nzVisibleChange.next(e)}onFilterClick(e){e.stopPropagation()}hide(){this.nzVisible=!1,this.cdr.markForCheck()}show(){this.nzVisible=!0,this.cdr.markForCheck()}ngOnChanges(e){const{nzHasBackdrop:i}=e;i&&(0,Xi.iX)("`nzHasBackdrop` in nz-filter-trigger component will be removed in 13.0.0, please use `nzBackdrop` instead.")}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.sBO))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-filter-trigger"]],inputs:{nzActive:"nzActive",nzVisible:"nzVisible",nzHasBackdrop:"nzHasBackdrop",nzBackdrop:"nzBackdrop",nzDropdownMenu:"nzDropdownMenu"},outputs:{nzVisibleChange:"nzVisibleChange"},exportAs:["nzFilterTrigger"],features:[t.TTD],ngContentSelectors:j,decls:2,vars:8,consts:[["nz-dropdown","","nzTrigger","click","nzPlacement","bottomRight",1,"ant-table-filter-trigger",3,"nzBackdrop","nzClickHide","nzDropdownMenu","nzVisible","nzVisibleChange","click"]],template:function(e,i){1&e&&(t.F$t(),t.TgZ(0,"span",0),t.NdJ("nzVisibleChange",function(s){return i.onVisibleChange(s)})("click",function(s){return i.onFilterClick(s)}),t.Hsn(1),t.qZA()),2&e&&(t.ekj("active",i.nzActive)("ant-table-filter-open",i.nzVisible),t.Q6J("nzBackdrop",i.nzBackdrop||i.nzHasBackdrop)("nzClickHide",!1)("nzDropdownMenu",i.nzDropdownMenu)("nzVisible",i.nzVisible))},directives:[$.cm],encapsulation:2,changeDetection:0}),(0,h.gn)([(0,u.yF)()],n.prototype,"nzHasBackdrop",void 0),(0,h.gn)([(0,u.yF)()],n.prototype,"nzBackdrop",void 0),n})(),pa=(()=>{class n{constructor(e,i,a){this.cdr=e,this.i18n=i,this.elementRef=a,this.contentTemplate=null,this.customFilter=!1,this.extraTemplate=null,this.filterMultiple=!0,this.listOfFilter=[],this.filterChange=new t.vpe,this.destroy$=new x.xQ,this.isChecked=!1,this.isVisible=!1,this.listOfParsedFilter=[],this.listOfChecked=[],this.elementRef.nativeElement.classList.add("ant-table-filter-column")}trackByValue(e,i){return i.value}check(e){this.filterMultiple?(this.listOfParsedFilter=this.listOfParsedFilter.map(i=>i===e?Object.assign(Object.assign({},i),{checked:!e.checked}):i),e.checked=!e.checked):this.listOfParsedFilter=this.listOfParsedFilter.map(i=>Object.assign(Object.assign({},i),{checked:i===e})),this.isChecked=this.getCheckedStatus(this.listOfParsedFilter)}confirm(){this.isVisible=!1,this.emitFilterData()}reset(){this.isVisible=!1,this.listOfParsedFilter=this.parseListOfFilter(this.listOfFilter,!0),this.isChecked=this.getCheckedStatus(this.listOfParsedFilter),this.emitFilterData()}onVisibleChange(e){this.isVisible=e,e?this.listOfChecked=this.listOfParsedFilter.filter(i=>i.checked).map(i=>i.value):this.emitFilterData()}emitFilterData(){const e=this.listOfParsedFilter.filter(i=>i.checked).map(i=>i.value);(0,u.cO)(this.listOfChecked,e)||this.filterChange.emit(this.filterMultiple?e:e.length>0?e[0]:null)}parseListOfFilter(e,i){return e.map(a=>({text:a.text,value:a.value,checked:!i&&!!a.byDefault}))}getCheckedStatus(e){return e.some(i=>i.checked)}ngOnInit(){this.i18n.localeChange.pipe((0,_.R)(this.destroy$)).subscribe(()=>{this.locale=this.i18n.getLocaleData("Table"),this.cdr.markForCheck()})}ngOnChanges(e){const{listOfFilter:i}=e;i&&this.listOfFilter&&this.listOfFilter.length&&(this.listOfParsedFilter=this.parseListOfFilter(this.listOfFilter),this.isChecked=this.getCheckedStatus(this.listOfParsedFilter))}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.sBO),t.Y36(wt.wi),t.Y36(t.SBq))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-table-filter"]],inputs:{contentTemplate:"contentTemplate",customFilter:"customFilter",extraTemplate:"extraTemplate",filterMultiple:"filterMultiple",listOfFilter:"listOfFilter"},outputs:{filterChange:"filterChange"},features:[t.TTD],decls:3,vars:3,consts:[[1,"ant-table-column-title"],[3,"ngTemplateOutlet"],[4,"ngIf","ngIfElse"],[3,"nzVisible","nzActive","nzDropdownMenu","nzVisibleChange"],["nz-icon","","nzType","filter","nzTheme","fill"],["filterMenu","nzDropdownMenu"],[1,"ant-table-filter-dropdown"],["nz-menu",""],["nz-menu-item","",3,"nzSelected","click",4,"ngFor","ngForOf","ngForTrackBy"],[1,"ant-table-filter-dropdown-btns"],["nz-button","","nzType","link","nzSize","small",3,"disabled","click"],["nz-button","","nzType","primary","nzSize","small",3,"click"],["nz-menu-item","",3,"nzSelected","click"],["nz-radio","",3,"ngModel","ngModelChange",4,"ngIf"],["nz-checkbox","",3,"ngModel","ngModelChange",4,"ngIf"],["nz-radio","",3,"ngModel","ngModelChange"],["nz-checkbox","",3,"ngModel","ngModelChange"]],template:function(e,i){1&e&&(t.TgZ(0,"span",0),t.YNc(1,Ki,0,0,"ng-template",1),t.qZA(),t.YNc(2,io,13,8,"ng-container",2)),2&e&&(t.xp6(1),t.Q6J("ngTemplateOutlet",i.contentTemplate),t.xp6(1),t.Q6J("ngIf",!i.customFilter)("ngIfElse",i.extraTemplate))},directives:[d.tP,d.O5,ga,tt.w,E.Ls,$.RR,K.wO,d.sg,mt.ix,ce.dQ,K.r9,lt.Of,l.JJ,l.On,rt.Ie],encapsulation:2,changeDetection:0}),n})(),ha=(()=>{class n{constructor(e){this.elementRef=e,this.sortDirections=["ascend","descend",null],this.sortOrder=null,this.contentTemplate=null,this.isUp=!1,this.isDown=!1,this.elementRef.nativeElement.classList.add("ant-table-column-sorters")}ngOnChanges(e){const{sortDirections:i}=e;i&&(this.isUp=-1!==this.sortDirections.indexOf("ascend"),this.isDown=-1!==this.sortDirections.indexOf("descend"))}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.SBq))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-table-sorters"]],inputs:{sortDirections:"sortDirections",sortOrder:"sortOrder",contentTemplate:"contentTemplate"},features:[t.TTD],decls:6,vars:5,consts:[[1,"ant-table-column-title"],[3,"ngTemplateOutlet"],[1,"ant-table-column-sorter"],[1,"ant-table-column-sorter-inner"],["nz-icon","","nzType","caret-up","class","ant-table-column-sorter-up",3,"active",4,"ngIf"],["nz-icon","","nzType","caret-down","class","ant-table-column-sorter-down",3,"active",4,"ngIf"],["nz-icon","","nzType","caret-up",1,"ant-table-column-sorter-up"],["nz-icon","","nzType","caret-down",1,"ant-table-column-sorter-down"]],template:function(e,i){1&e&&(t.TgZ(0,"span",0),t.YNc(1,ro,0,0,"ng-template",1),t.qZA(),t.TgZ(2,"span",2),t.TgZ(3,"span",3),t.YNc(4,lo,1,2,"i",4),t.YNc(5,co,1,2,"i",5),t.qZA(),t.qZA()),2&e&&(t.xp6(1),t.Q6J("ngTemplateOutlet",i.contentTemplate),t.xp6(1),t.ekj("ant-table-column-sorter-full",i.isDown&&i.isUp),t.xp6(2),t.Q6J("ngIf",i.isUp),t.xp6(1),t.Q6J("ngIf",i.isDown))},directives:[d.tP,d.O5,tt.w,E.Ls],encapsulation:2,changeDetection:0}),n})(),fa=(()=>{class n{constructor(e,i){this.renderer=e,this.elementRef=i,this.nzRight=!1,this.nzLeft=!1,this.colspan=null,this.colSpan=null,this.changes$=new x.xQ,this.isAutoLeft=!1,this.isAutoRight=!1,this.isFixedLeft=!1,this.isFixedRight=!1,this.isFixed=!1}setAutoLeftWidth(e){this.renderer.setStyle(this.elementRef.nativeElement,"left",e)}setAutoRightWidth(e){this.renderer.setStyle(this.elementRef.nativeElement,"right",e)}setIsFirstRight(e){this.setFixClass(e,"ant-table-cell-fix-right-first")}setIsLastLeft(e){this.setFixClass(e,"ant-table-cell-fix-left-last")}setFixClass(e,i){this.renderer.removeClass(this.elementRef.nativeElement,i),e&&this.renderer.addClass(this.elementRef.nativeElement,i)}ngOnChanges(){this.setIsFirstRight(!1),this.setIsLastLeft(!1),this.isAutoLeft=""===this.nzLeft||!0===this.nzLeft,this.isAutoRight=""===this.nzRight||!0===this.nzRight,this.isFixedLeft=!1!==this.nzLeft,this.isFixedRight=!1!==this.nzRight,this.isFixed=this.isFixedLeft||this.isFixedRight;const e=i=>"string"==typeof i&&""!==i?i:null;this.setAutoLeftWidth(e(this.nzLeft)),this.setAutoRightWidth(e(this.nzRight)),this.changes$.next()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.Qsj),t.Y36(t.SBq))},n.\u0275dir=t.lG2({type:n,selectors:[["td","nzRight",""],["th","nzRight",""],["td","nzLeft",""],["th","nzLeft",""]],hostVars:6,hostBindings:function(e,i){2&e&&(t.Udp("position",i.isFixed?"sticky":null),t.ekj("ant-table-cell-fix-right",i.isFixedRight)("ant-table-cell-fix-left",i.isFixedLeft))},inputs:{nzRight:"nzRight",nzLeft:"nzLeft",colspan:"colspan",colSpan:"colSpan"},features:[t.TTD]}),n})(),et=(()=>{class n{constructor(){this.theadTemplate$=new D.t(1),this.hasFixLeft$=new D.t(1),this.hasFixRight$=new D.t(1),this.hostWidth$=new D.t(1),this.columnCount$=new D.t(1),this.showEmpty$=new D.t(1),this.noResult$=new D.t(1),this.listOfThWidthConfigPx$=new P.X([]),this.tableWidthConfigPx$=new P.X([]),this.manualWidthConfigPx$=(0,V.aj)([this.tableWidthConfigPx$,this.listOfThWidthConfigPx$]).pipe((0,b.U)(([e,i])=>e.length?e:i)),this.listOfAutoWidthPx$=new D.t(1),this.listOfListOfThWidthPx$=(0,L.T)(this.manualWidthConfigPx$,(0,V.aj)([this.listOfAutoWidthPx$,this.manualWidthConfigPx$]).pipe((0,b.U)(([e,i])=>e.length===i.length?e.map((a,s)=>"0px"===a?i[s]||null:i[s]||a):i))),this.listOfMeasureColumn$=new D.t(1),this.listOfListOfThWidth$=this.listOfAutoWidthPx$.pipe((0,b.U)(e=>e.map(i=>parseInt(i,10)))),this.enableAutoMeasure$=new D.t(1)}setTheadTemplate(e){this.theadTemplate$.next(e)}setHasFixLeft(e){this.hasFixLeft$.next(e)}setHasFixRight(e){this.hasFixRight$.next(e)}setTableWidthConfig(e){this.tableWidthConfigPx$.next(e)}setListOfTh(e){let i=0;e.forEach(s=>{i+=s.colspan&&+s.colspan||s.colSpan&&+s.colSpan||1});const a=e.map(s=>s.nzWidth);this.columnCount$.next(i),this.listOfThWidthConfigPx$.next(a)}setListOfMeasureColumn(e){const i=[];e.forEach(a=>{const s=a.colspan&&+a.colspan||a.colSpan&&+a.colSpan||1;for(let r=0;r<s;r++)i.push(`measure_key_${r}`)}),this.listOfMeasureColumn$.next(i)}setListOfAutoWidth(e){this.listOfAutoWidthPx$.next(e.map(i=>`${i}px`))}setShowEmpty(e){this.showEmpty$.next(e)}setNoResult(e){this.noResult$.next(e)}setScroll(e,i){const a=!(!e&&!i);a||this.setListOfAutoWidth([]),this.enableAutoMeasure$.next(a)}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac}),n})(),_a=(()=>{class n{constructor(e){this.isInsideTable=!1,this.isInsideTable=!!e}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(et,8))},n.\u0275dir=t.lG2({type:n,selectors:[["th",9,"nz-disable-th",3,"mat-cell",""],["td",9,"nz-disable-td",3,"mat-cell",""]],hostVars:2,hostBindings:function(e,i){2&e&&t.ekj("ant-table-cell",i.isInsideTable)}}),n})(),za=(()=>{class n{constructor(e){this.cdr=e,this.manualClickOrder$=new x.xQ,this.calcOperatorChange$=new x.xQ,this.nzFilterValue=null,this.sortOrder=null,this.sortDirections=["ascend","descend",null],this.sortOrderChange$=new x.xQ,this.destroy$=new x.xQ,this.isNzShowSortChanged=!1,this.isNzShowFilterChanged=!1,this.nzFilterMultiple=!0,this.nzSortOrder=null,this.nzSortPriority=!1,this.nzSortDirections=["ascend","descend",null],this.nzFilters=[],this.nzSortFn=null,this.nzFilterFn=null,this.nzShowSort=!1,this.nzShowFilter=!1,this.nzCustomFilter=!1,this.nzCheckedChange=new t.vpe,this.nzSortOrderChange=new t.vpe,this.nzFilterChange=new t.vpe}getNextSortDirection(e,i){const a=e.indexOf(i);return a===e.length-1?e[0]:e[a+1]}emitNextSortValue(){if(this.nzShowSort){const e=this.getNextSortDirection(this.sortDirections,this.sortOrder);this.setSortOrder(e),this.manualClickOrder$.next(this)}}setSortOrder(e){this.sortOrderChange$.next(e)}clearSortOrder(){null!==this.sortOrder&&this.setSortOrder(null)}onFilterValueChange(e){this.nzFilterChange.emit(e),this.nzFilterValue=e,this.updateCalcOperator()}updateCalcOperator(){this.calcOperatorChange$.next()}ngOnInit(){this.sortOrderChange$.pipe((0,_.R)(this.destroy$)).subscribe(e=>{this.sortOrder!==e&&(this.sortOrder=e,this.nzSortOrderChange.emit(e)),this.updateCalcOperator(),this.cdr.markForCheck()})}ngOnChanges(e){const{nzSortDirections:i,nzFilters:a,nzSortOrder:s,nzSortFn:r,nzFilterFn:c,nzSortPriority:p,nzFilterMultiple:z,nzShowSort:C,nzShowFilter:f}=e;i&&this.nzSortDirections&&this.nzSortDirections.length&&(this.sortDirections=this.nzSortDirections),s&&(this.sortOrder=this.nzSortOrder,this.setSortOrder(this.nzSortOrder)),C&&(this.isNzShowSortChanged=!0),f&&(this.isNzShowFilterChanged=!0);const T=Z=>Z&&Z.firstChange&&void 0!==Z.currentValue;if((T(s)||T(r))&&!this.isNzShowSortChanged&&(this.nzShowSort=!0),T(a)&&!this.isNzShowFilterChanged&&(this.nzShowFilter=!0),(a||z)&&this.nzShowFilter){const Z=this.nzFilters.filter(vt=>vt.byDefault).map(vt=>vt.value);this.nzFilterValue=this.nzFilterMultiple?Z:Z[0]||null}(r||c||p||a)&&this.updateCalcOperator()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.sBO))},n.\u0275cmp=t.Xpm({type:n,selectors:[["th","nzColumnKey",""],["th","nzSortFn",""],["th","nzSortOrder",""],["th","nzFilters",""],["th","nzShowSort",""],["th","nzShowFilter",""],["th","nzCustomFilter",""]],hostVars:4,hostBindings:function(e,i){1&e&&t.NdJ("click",function(){return i.emitNextSortValue()}),2&e&&t.ekj("ant-table-column-has-sorters",i.nzShowSort)("ant-table-column-sort","descend"===i.sortOrder||"ascend"===i.sortOrder)},inputs:{nzFilterMultiple:"nzFilterMultiple",nzSortOrder:"nzSortOrder",nzSortPriority:"nzSortPriority",nzSortDirections:"nzSortDirections",nzFilters:"nzFilters",nzSortFn:"nzSortFn",nzFilterFn:"nzFilterFn",nzShowSort:"nzShowSort",nzShowFilter:"nzShowFilter",nzCustomFilter:"nzCustomFilter",nzColumnKey:"nzColumnKey"},outputs:{nzCheckedChange:"nzCheckedChange",nzSortOrderChange:"nzSortOrderChange",nzFilterChange:"nzFilterChange"},features:[t.TTD],attrs:mo,ngContentSelectors:bo,decls:9,vars:2,consts:[[3,"contentTemplate","extraTemplate","customFilter","filterMultiple","listOfFilter","filterChange",4,"ngIf","ngIfElse"],["notFilterTemplate",""],["extraTemplate",""],["sortTemplate",""],["contentTemplate",""],[3,"contentTemplate","extraTemplate","customFilter","filterMultiple","listOfFilter","filterChange"],[3,"ngTemplateOutlet"],[3,"sortOrder","sortDirections","contentTemplate"]],template:function(e,i){if(1&e&&(t.F$t(xo),t.YNc(0,ho,1,5,"nz-table-filter",0),t.YNc(1,_o,1,1,"ng-template",null,1,t.W1O),t.YNc(3,zo,2,0,"ng-template",null,2,t.W1O),t.YNc(5,Co,1,3,"ng-template",null,3,t.W1O),t.YNc(7,vo,1,0,"ng-template",null,4,t.W1O)),2&e){const a=t.MAs(2);t.Q6J("ngIf",i.nzShowFilter||i.nzCustomFilter)("ngIfElse",a)}},directives:[d.O5,pa,d.tP,ha],encapsulation:2,changeDetection:0}),(0,h.gn)([(0,u.yF)()],n.prototype,"nzShowSort",void 0),(0,h.gn)([(0,u.yF)()],n.prototype,"nzShowFilter",void 0),(0,h.gn)([(0,u.yF)()],n.prototype,"nzCustomFilter",void 0),n})(),pe=(()=>{class n{constructor(e,i){this.renderer=e,this.elementRef=i,this.changes$=new x.xQ,this.nzWidth=null,this.colspan=null,this.colSpan=null,this.rowspan=null,this.rowSpan=null}ngOnChanges(e){const{nzWidth:i,colspan:a,rowspan:s,colSpan:r,rowSpan:c}=e;if(a||r){const p=this.colspan||this.colSpan;(0,u.kK)(p)?this.renderer.removeAttribute(this.elementRef.nativeElement,"colspan"):this.renderer.setAttribute(this.elementRef.nativeElement,"colspan",`${p}`)}if(s||c){const p=this.rowspan||this.rowSpan;(0,u.kK)(p)?this.renderer.removeAttribute(this.elementRef.nativeElement,"rowspan"):this.renderer.setAttribute(this.elementRef.nativeElement,"rowspan",`${p}`)}(i||a)&&this.changes$.next()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.Qsj),t.Y36(t.SBq))},n.\u0275dir=t.lG2({type:n,selectors:[["th"]],inputs:{nzWidth:"nzWidth",colspan:"colspan",colSpan:"colSpan",rowspan:"rowspan",rowSpan:"rowSpan"},features:[t.TTD]}),n})(),de=(()=>{class n{constructor(){this.tableLayout="auto",this.theadTemplate=null,this.contentTemplate=null,this.listOfColWidth=[],this.scrollX=null}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["table","nz-table-content",""]],hostVars:8,hostBindings:function(e,i){2&e&&(t.Udp("table-layout",i.tableLayout)("width",i.scrollX)("min-width",i.scrollX?"100%":null),t.ekj("ant-table-fixed",i.scrollX))},inputs:{tableLayout:"tableLayout",theadTemplate:"theadTemplate",contentTemplate:"contentTemplate",listOfColWidth:"listOfColWidth",scrollX:"scrollX"},attrs:Oo,ngContentSelectors:j,decls:4,vars:3,consts:[[3,"width","minWidth",4,"ngFor","ngForOf"],["class","ant-table-thead",4,"ngIf"],[3,"ngTemplateOutlet"],[1,"ant-table-thead"]],template:function(e,i){1&e&&(t.F$t(),t.YNc(0,So,1,4,"col",0),t.YNc(1,Mo,2,1,"thead",1),t.YNc(2,yo,0,0,"ng-template",2),t.Hsn(3)),2&e&&(t.Q6J("ngForOf",i.listOfColWidth),t.xp6(1),t.Q6J("ngIf",i.theadTemplate),t.xp6(1),t.Q6J("ngTemplateOutlet",i.contentTemplate))},directives:[d.sg,d.O5,d.tP],encapsulation:2,changeDetection:0}),n})(),Ca=(()=>{class n{constructor(e,i){this.nzTableStyleService=e,this.renderer=i,this.hostWidth$=new P.X(null),this.enableAutoMeasure$=new P.X(!1),this.destroy$=new x.xQ}ngOnInit(){if(this.nzTableStyleService){const{enableAutoMeasure$:e,hostWidth$:i}=this.nzTableStyleService;e.pipe((0,_.R)(this.destroy$)).subscribe(this.enableAutoMeasure$),i.subscribe(this.hostWidth$)}}ngAfterViewInit(){this.nzTableStyleService.columnCount$.pipe((0,_.R)(this.destroy$)).subscribe(e=>{this.renderer.setAttribute(this.tdElement.nativeElement,"colspan",`${e}`)})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(et),t.Y36(t.Qsj))},n.\u0275cmp=t.Xpm({type:n,selectors:[["tr","nz-table-fixed-row",""],["tr","nzExpand",""]],viewQuery:function(e,i){if(1&e&&t.Gf(ge,5),2&e){let a;t.iGM(a=t.CRH())&&(i.tdElement=a.first)}},attrs:Po,ngContentSelectors:j,decls:6,vars:4,consts:[[1,"nz-disable-td","ant-table-cell"],["tdElement",""],["class","ant-table-expanded-row-fixed","style","position: sticky; left: 0px; overflow: hidden;",3,"width",4,"ngIf","ngIfElse"],["contentTemplate",""],[1,"ant-table-expanded-row-fixed",2,"position","sticky","left","0px","overflow","hidden"],[3,"ngTemplateOutlet"]],template:function(e,i){if(1&e&&(t.F$t(),t.TgZ(0,"td",0,1),t.YNc(2,No,3,5,"div",2),t.ALo(3,"async"),t.qZA(),t.YNc(4,ko,1,0,"ng-template",null,3,t.W1O)),2&e){const a=t.MAs(5);t.xp6(2),t.Q6J("ngIf",t.lcZ(3,2,i.enableAutoMeasure$))("ngIfElse",a)}},directives:[d.O5,d.tP],pipes:[d.Ov],encapsulation:2,changeDetection:0}),n})(),va=(()=>{class n{constructor(e){this.elementRef=e,this.tableLayout="auto",this.listOfColWidth=[],this.theadTemplate=null,this.contentTemplate=null,this.elementRef.nativeElement.classList.add("ant-table-container")}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.SBq))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-table-inner-default"]],inputs:{tableLayout:"tableLayout",listOfColWidth:"listOfColWidth",theadTemplate:"theadTemplate",contentTemplate:"contentTemplate"},decls:2,vars:4,consts:[[1,"ant-table-content"],["nz-table-content","",3,"contentTemplate","tableLayout","listOfColWidth","theadTemplate"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0),t._UZ(1,"table",1),t.qZA()),2&e&&(t.xp6(1),t.Q6J("contentTemplate",i.contentTemplate)("tableLayout",i.tableLayout)("listOfColWidth",i.listOfColWidth)("theadTemplate",i.theadTemplate))},directives:[de],encapsulation:2,changeDetection:0}),n})(),ue=(()=>{class n{constructor(e,i,a,s,r){this.renderer=e,this.ngZone=i,this.platform=a,this.resizeService=s,this.elementRef=r,this.data=[],this.scrollX=null,this.scrollY=null,this.contentTemplate=null,this.widthConfig=[],this.listOfColWidth=[],this.theadTemplate=null,this.virtualTemplate=null,this.virtualItemSize=0,this.virtualMaxBufferPx=200,this.virtualMinBufferPx=100,this.virtualForTrackBy=c=>c,this.headerStyleMap={},this.bodyStyleMap={},this.verticalScrollBarWidth=0,this.noDateVirtualHeight="182px",this.data$=new x.xQ,this.scroll$=new x.xQ,this.destroy$=new x.xQ,this.elementRef.nativeElement.classList.add("ant-table-container")}setScrollPositionClassName(e=!1){const{scrollWidth:i,scrollLeft:a,clientWidth:s}=this.tableBodyElement.nativeElement,r="ant-table-ping-left",c="ant-table-ping-right";i===s&&0!==i||e?(this.renderer.removeClass(this.tableMainElement,r),this.renderer.removeClass(this.tableMainElement,c)):0===a?(this.renderer.removeClass(this.tableMainElement,r),this.renderer.addClass(this.tableMainElement,c)):i===a+s?(this.renderer.removeClass(this.tableMainElement,c),this.renderer.addClass(this.tableMainElement,r)):(this.renderer.addClass(this.tableMainElement,r),this.renderer.addClass(this.tableMainElement,c))}ngOnChanges(e){const{scrollX:i,scrollY:a,data:s}=e;if(i||a){const r=0!==this.verticalScrollBarWidth;this.headerStyleMap={overflowX:"hidden",overflowY:this.scrollY&&r?"scroll":"hidden"},this.bodyStyleMap={overflowY:this.scrollY?"scroll":"hidden",overflowX:this.scrollX?"auto":null,maxHeight:this.scrollY},this.scroll$.next()}s&&this.data$.next()}ngAfterViewInit(){this.platform.isBrowser&&this.ngZone.runOutsideAngular(()=>{const e=this.scroll$.pipe((0,X.O)(null),(0,Lt.g)(0),(0,N.w)(()=>(0,Tt.R)(this.tableBodyElement.nativeElement,"scroll").pipe((0,X.O)(!0))),(0,_.R)(this.destroy$)),i=this.resizeService.subscribe().pipe((0,_.R)(this.destroy$)),a=this.data$.pipe((0,_.R)(this.destroy$));(0,L.T)(e,i,a,this.scroll$).pipe((0,X.O)(!0),(0,Lt.g)(0),(0,_.R)(this.destroy$)).subscribe(()=>this.setScrollPositionClassName()),e.pipe((0,R.h)(()=>!!this.scrollY)).subscribe(()=>this.tableHeaderElement.nativeElement.scrollLeft=this.tableBodyElement.nativeElement.scrollLeft)})}ngOnDestroy(){this.setScrollPositionClassName(!0),this.destroy$.next(),this.destroy$.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.Qsj),t.Y36(t.R0b),t.Y36(bt.t4),t.Y36(Mt.rI),t.Y36(t.SBq))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-table-inner-scroll"]],viewQuery:function(e,i){if(1&e&&(t.Gf(Do,5,t.SBq),t.Gf(Ao,5,t.SBq),t.Gf(gt.N7,5,gt.N7)),2&e){let a;t.iGM(a=t.CRH())&&(i.tableHeaderElement=a.first),t.iGM(a=t.CRH())&&(i.tableBodyElement=a.first),t.iGM(a=t.CRH())&&(i.cdkVirtualScrollViewport=a.first)}},inputs:{data:"data",scrollX:"scrollX",scrollY:"scrollY",contentTemplate:"contentTemplate",widthConfig:"widthConfig",listOfColWidth:"listOfColWidth",theadTemplate:"theadTemplate",virtualTemplate:"virtualTemplate",virtualItemSize:"virtualItemSize",virtualMaxBufferPx:"virtualMaxBufferPx",virtualMinBufferPx:"virtualMinBufferPx",virtualForTrackBy:"virtualForTrackBy",verticalScrollBarWidth:"verticalScrollBarWidth",tableMainElement:"tableMainElement"},features:[t.TTD],decls:2,vars:2,consts:[[4,"ngIf"],["class","ant-table-content",3,"ngStyle",4,"ngIf"],[1,"ant-table-header","nz-table-hide-scrollbar",3,"ngStyle"],["tableHeaderElement",""],["nz-table-content","","tableLayout","fixed",3,"scrollX","listOfColWidth","theadTemplate"],["class","ant-table-body",3,"ngStyle",4,"ngIf"],[3,"itemSize","maxBufferPx","minBufferPx","height",4,"ngIf"],[1,"ant-table-body",3,"ngStyle"],["tableBodyElement",""],["nz-table-content","","tableLayout","fixed",3,"scrollX","listOfColWidth","contentTemplate"],[3,"itemSize","maxBufferPx","minBufferPx"],["nz-table-content","","tableLayout","fixed",3,"scrollX","listOfColWidth"],[4,"cdkVirtualFor","cdkVirtualForOf","cdkVirtualForTrackBy"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"ant-table-content",3,"ngStyle"],["nz-table-content","","tableLayout","fixed",3,"scrollX","listOfColWidth","theadTemplate","contentTemplate"]],template:function(e,i){1&e&&(t.YNc(0,Lo,6,6,"ng-container",0),t.YNc(1,Jo,3,5,"div",1)),2&e&&(t.Q6J("ngIf",i.scrollY),t.xp6(1),t.Q6J("ngIf",!i.scrollY))},directives:function(){return[d.O5,d.PC,de,gt.N7,gt.xd,he,gt.x0,d.tP]},encapsulation:2,changeDetection:0}),n})(),xa=(()=>{class n{constructor(e){this.templateRef=e}static ngTemplateContextGuard(e,i){return!0}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.Rgc))},n.\u0275dir=t.lG2({type:n,selectors:[["","nz-virtual-scroll",""]],exportAs:["nzVirtualScroll"]}),n})(),$t=(()=>{class n{constructor(){this.destroy$=new x.xQ,this.pageIndex$=new P.X(1),this.frontPagination$=new P.X(!0),this.pageSize$=new P.X(10),this.listOfData$=new P.X([]),this.pageIndexDistinct$=this.pageIndex$.pipe((0,ct.x)()),this.pageSizeDistinct$=this.pageSize$.pipe((0,ct.x)()),this.listOfCalcOperator$=new P.X([]),this.queryParams$=(0,V.aj)([this.pageIndexDistinct$,this.pageSizeDistinct$,this.listOfCalcOperator$]).pipe((0,Jt.b)(0),(0,ji.T)(1),(0,b.U)(([e,i,a])=>({pageIndex:e,pageSize:i,sort:a.filter(s=>s.sortFn).map(s=>({key:s.key,value:s.sortOrder})),filter:a.filter(s=>s.filterFn).map(s=>({key:s.key,value:s.filterValue}))}))),this.listOfDataAfterCalc$=(0,V.aj)([this.listOfData$,this.listOfCalcOperator$]).pipe((0,b.U)(([e,i])=>{let a=[...e];const s=i.filter(c=>{const{filterValue:p,filterFn:z}=c;return!(null==p||Array.isArray(p)&&0===p.length)&&"function"==typeof z});for(const c of s){const{filterFn:p,filterValue:z}=c;a=a.filter(C=>p(z,C))}const r=i.filter(c=>null!==c.sortOrder&&"function"==typeof c.sortFn).sort((c,p)=>+p.sortPriority-+c.sortPriority);return i.length&&a.sort((c,p)=>{for(const z of r){const{sortFn:C,sortOrder:f}=z;if(C&&f){const T=C(c,p,f);if(0!==T)return"ascend"===f?T:-T}}return 0}),a})),this.listOfFrontEndCurrentPageData$=(0,V.aj)([this.pageIndexDistinct$,this.pageSizeDistinct$,this.listOfDataAfterCalc$]).pipe((0,_.R)(this.destroy$),(0,R.h)(e=>{const[i,a,s]=e;return i<=(Math.ceil(s.length/a)||1)}),(0,b.U)(([e,i,a])=>a.slice((e-1)*i,e*i))),this.listOfCurrentPageData$=this.frontPagination$.pipe((0,N.w)(e=>e?this.listOfFrontEndCurrentPageData$:this.listOfDataAfterCalc$)),this.total$=this.frontPagination$.pipe((0,N.w)(e=>e?this.listOfDataAfterCalc$:this.listOfData$),(0,b.U)(e=>e.length),(0,ct.x)())}updatePageSize(e){this.pageSize$.next(e)}updateFrontPagination(e){this.frontPagination$.next(e)}updatePageIndex(e){this.pageIndex$.next(e)}updateListOfData(e){this.listOfData$.next(e)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac}),n})(),ba=(()=>{class n{constructor(e,i,a,s,r,c,p){this.elementRef=e,this.nzResizeObserver=i,this.nzConfigService=a,this.cdr=s,this.nzTableStyleService=r,this.nzTableDataService=c,this.directionality=p,this._nzModuleName="table",this.nzTableLayout="auto",this.nzShowTotal=null,this.nzItemRender=null,this.nzTitle=null,this.nzFooter=null,this.nzNoResult=void 0,this.nzPageSizeOptions=[10,20,30,40,50],this.nzVirtualItemSize=0,this.nzVirtualMaxBufferPx=200,this.nzVirtualMinBufferPx=100,this.nzVirtualForTrackBy=z=>z,this.nzLoadingDelay=0,this.nzPageIndex=1,this.nzPageSize=10,this.nzTotal=0,this.nzWidthConfig=[],this.nzData=[],this.nzPaginationPosition="bottom",this.nzScroll={x:null,y:null},this.nzPaginationType="default",this.nzFrontPagination=!0,this.nzTemplateMode=!1,this.nzShowPagination=!0,this.nzLoading=!1,this.nzOuterBordered=!1,this.nzLoadingIndicator=null,this.nzBordered=!1,this.nzSize="default",this.nzShowSizeChanger=!1,this.nzHideOnSinglePage=!1,this.nzShowQuickJumper=!1,this.nzSimple=!1,this.nzPageSizeChange=new t.vpe,this.nzPageIndexChange=new t.vpe,this.nzQueryParams=new t.vpe,this.nzCurrentPageDataChange=new t.vpe,this.data=[],this.scrollX=null,this.scrollY=null,this.theadTemplate=null,this.listOfAutoColWidth=[],this.listOfManualColWidth=[],this.hasFixLeft=!1,this.hasFixRight=!1,this.showPagination=!0,this.destroy$=new x.xQ,this.loading$=new P.X(!1),this.templateMode$=new P.X(!1),this.dir="ltr",this.verticalScrollBarWidth=0,this.elementRef.nativeElement.classList.add("ant-table-wrapper"),this.nzConfigService.getConfigChangeEventForComponent("table").pipe((0,_.R)(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()})}onPageSizeChange(e){this.nzTableDataService.updatePageSize(e)}onPageIndexChange(e){this.nzTableDataService.updatePageIndex(e)}ngOnInit(){var e;const{pageIndexDistinct$:i,pageSizeDistinct$:a,listOfCurrentPageData$:s,total$:r,queryParams$:c}=this.nzTableDataService,{theadTemplate$:p,hasFixLeft$:z,hasFixRight$:C}=this.nzTableStyleService;this.dir=this.directionality.value,null===(e=this.directionality.change)||void 0===e||e.pipe((0,_.R)(this.destroy$)).subscribe(f=>{this.dir=f,this.cdr.detectChanges()}),c.pipe((0,_.R)(this.destroy$)).subscribe(this.nzQueryParams),i.pipe((0,_.R)(this.destroy$)).subscribe(f=>{f!==this.nzPageIndex&&(this.nzPageIndex=f,this.nzPageIndexChange.next(f))}),a.pipe((0,_.R)(this.destroy$)).subscribe(f=>{f!==this.nzPageSize&&(this.nzPageSize=f,this.nzPageSizeChange.next(f))}),r.pipe((0,_.R)(this.destroy$),(0,R.h)(()=>this.nzFrontPagination)).subscribe(f=>{f!==this.nzTotal&&(this.nzTotal=f,this.cdr.markForCheck())}),s.pipe((0,_.R)(this.destroy$)).subscribe(f=>{this.data=f,this.nzCurrentPageDataChange.next(f),this.cdr.markForCheck()}),p.pipe((0,_.R)(this.destroy$)).subscribe(f=>{this.theadTemplate=f,this.cdr.markForCheck()}),z.pipe((0,_.R)(this.destroy$)).subscribe(f=>{this.hasFixLeft=f,this.cdr.markForCheck()}),C.pipe((0,_.R)(this.destroy$)).subscribe(f=>{this.hasFixRight=f,this.cdr.markForCheck()}),(0,V.aj)([r,this.loading$,this.templateMode$]).pipe((0,b.U)(([f,T,Z])=>0===f&&!T&&!Z),(0,_.R)(this.destroy$)).subscribe(f=>{this.nzTableStyleService.setShowEmpty(f)}),this.verticalScrollBarWidth=(0,u.D8)("vertical"),this.nzTableStyleService.listOfListOfThWidthPx$.pipe((0,_.R)(this.destroy$)).subscribe(f=>{this.listOfAutoColWidth=f,this.cdr.markForCheck()}),this.nzTableStyleService.manualWidthConfigPx$.pipe((0,_.R)(this.destroy$)).subscribe(f=>{this.listOfManualColWidth=f,this.cdr.markForCheck()})}ngOnChanges(e){const{nzScroll:i,nzPageIndex:a,nzPageSize:s,nzFrontPagination:r,nzData:c,nzWidthConfig:p,nzNoResult:z,nzLoading:C,nzTemplateMode:f}=e;a&&this.nzTableDataService.updatePageIndex(this.nzPageIndex),s&&this.nzTableDataService.updatePageSize(this.nzPageSize),c&&(this.nzData=this.nzData||[],this.nzTableDataService.updateListOfData(this.nzData)),r&&this.nzTableDataService.updateFrontPagination(this.nzFrontPagination),i&&this.setScrollOnChanges(),p&&this.nzTableStyleService.setTableWidthConfig(this.nzWidthConfig),C&&this.loading$.next(this.nzLoading),f&&this.templateMode$.next(this.nzTemplateMode),z&&this.nzTableStyleService.setNoResult(this.nzNoResult),this.updateShowPagination()}ngAfterViewInit(){this.nzResizeObserver.observe(this.elementRef).pipe((0,b.U)(([e])=>{const{width:i}=e.target.getBoundingClientRect();return Math.floor(i-(this.scrollY?this.verticalScrollBarWidth:0))}),(0,_.R)(this.destroy$)).subscribe(this.nzTableStyleService.hostWidth$),this.nzTableInnerScrollComponent&&this.nzTableInnerScrollComponent.cdkVirtualScrollViewport&&(this.cdkVirtualScrollViewport=this.nzTableInnerScrollComponent.cdkVirtualScrollViewport)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}setScrollOnChanges(){this.scrollX=this.nzScroll&&this.nzScroll.x||null,this.scrollY=this.nzScroll&&this.nzScroll.y||null,this.nzTableStyleService.setScroll(this.scrollX,this.scrollY)}updateShowPagination(){this.showPagination=this.nzHideOnSinglePage&&this.nzData.length>this.nzPageSize||this.nzData.length>0&&!this.nzHideOnSinglePage||!this.nzFrontPagination&&this.nzTotal>this.nzPageSize}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.SBq),t.Y36(Bt.D3),t.Y36(S.jY),t.Y36(t.sBO),t.Y36(et),t.Y36($t),t.Y36(k.Is,8))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-table"]],contentQueries:function(e,i,a){if(1&e&&t.Suo(a,xa,5),2&e){let s;t.iGM(s=t.CRH())&&(i.nzVirtualScrollDirective=s.first)}},viewQuery:function(e,i){if(1&e&&t.Gf(ue,5),2&e){let a;t.iGM(a=t.CRH())&&(i.nzTableInnerScrollComponent=a.first)}},hostVars:2,hostBindings:function(e,i){2&e&&t.ekj("ant-table-wrapper-rtl","rtl"===i.dir)},inputs:{nzTableLayout:"nzTableLayout",nzShowTotal:"nzShowTotal",nzItemRender:"nzItemRender",nzTitle:"nzTitle",nzFooter:"nzFooter",nzNoResult:"nzNoResult",nzPageSizeOptions:"nzPageSizeOptions",nzVirtualItemSize:"nzVirtualItemSize",nzVirtualMaxBufferPx:"nzVirtualMaxBufferPx",nzVirtualMinBufferPx:"nzVirtualMinBufferPx",nzVirtualForTrackBy:"nzVirtualForTrackBy",nzLoadingDelay:"nzLoadingDelay",nzPageIndex:"nzPageIndex",nzPageSize:"nzPageSize",nzTotal:"nzTotal",nzWidthConfig:"nzWidthConfig",nzData:"nzData",nzPaginationPosition:"nzPaginationPosition",nzScroll:"nzScroll",nzPaginationType:"nzPaginationType",nzFrontPagination:"nzFrontPagination",nzTemplateMode:"nzTemplateMode",nzShowPagination:"nzShowPagination",nzLoading:"nzLoading",nzOuterBordered:"nzOuterBordered",nzLoadingIndicator:"nzLoadingIndicator",nzBordered:"nzBordered",nzSize:"nzSize",nzShowSizeChanger:"nzShowSizeChanger",nzHideOnSinglePage:"nzHideOnSinglePage",nzShowQuickJumper:"nzShowQuickJumper",nzSimple:"nzSimple"},outputs:{nzPageSizeChange:"nzPageSizeChange",nzPageIndexChange:"nzPageIndexChange",nzQueryParams:"nzQueryParams",nzCurrentPageDataChange:"nzCurrentPageDataChange"},exportAs:["nzTable"],features:[t._Bn([et,$t]),t.TTD],ngContentSelectors:j,decls:14,vars:27,consts:[[3,"nzDelay","nzSpinning","nzIndicator"],[4,"ngIf"],[1,"ant-table"],["tableMainElement",""],[3,"title",4,"ngIf"],[3,"data","scrollX","scrollY","contentTemplate","listOfColWidth","theadTemplate","verticalScrollBarWidth","virtualTemplate","virtualItemSize","virtualMaxBufferPx","virtualMinBufferPx","tableMainElement","virtualForTrackBy",4,"ngIf","ngIfElse"],["defaultTemplate",""],[3,"footer",4,"ngIf"],["paginationTemplate",""],["contentTemplate",""],[3,"ngTemplateOutlet"],[3,"title"],[3,"data","scrollX","scrollY","contentTemplate","listOfColWidth","theadTemplate","verticalScrollBarWidth","virtualTemplate","virtualItemSize","virtualMaxBufferPx","virtualMinBufferPx","tableMainElement","virtualForTrackBy"],[3,"tableLayout","listOfColWidth","theadTemplate","contentTemplate"],[3,"footer"],["class","ant-table-pagination ant-table-pagination-right",3,"hidden","nzShowSizeChanger","nzPageSizeOptions","nzItemRender","nzShowQuickJumper","nzHideOnSinglePage","nzShowTotal","nzSize","nzPageSize","nzTotal","nzSimple","nzPageIndex","nzPageSizeChange","nzPageIndexChange",4,"ngIf"],[1,"ant-table-pagination","ant-table-pagination-right",3,"hidden","nzShowSizeChanger","nzPageSizeOptions","nzItemRender","nzShowQuickJumper","nzHideOnSinglePage","nzShowTotal","nzSize","nzPageSize","nzTotal","nzSimple","nzPageIndex","nzPageSizeChange","nzPageIndexChange"]],template:function(e,i){if(1&e&&(t.F$t(),t.TgZ(0,"nz-spin",0),t.YNc(1,$o,2,1,"ng-container",1),t.TgZ(2,"div",2,3),t.YNc(4,Vo,1,1,"nz-table-title-footer",4),t.YNc(5,Yo,1,13,"nz-table-inner-scroll",5),t.YNc(6,qo,1,4,"ng-template",null,6,t.W1O),t.YNc(8,Wo,1,1,"nz-table-title-footer",7),t.qZA(),t.YNc(9,Ho,2,1,"ng-container",1),t.qZA(),t.YNc(10,Xo,1,1,"ng-template",null,8,t.W1O),t.YNc(12,jo,1,0,"ng-template",null,9,t.W1O)),2&e){const a=t.MAs(7);t.Q6J("nzDelay",i.nzLoadingDelay)("nzSpinning",i.nzLoading)("nzIndicator",i.nzLoadingIndicator),t.xp6(1),t.Q6J("ngIf","both"===i.nzPaginationPosition||"top"===i.nzPaginationPosition),t.xp6(1),t.ekj("ant-table-rtl","rtl"===i.dir)("ant-table-fixed-header",i.nzData.length&&i.scrollY)("ant-table-fixed-column",i.scrollX)("ant-table-has-fix-left",i.hasFixLeft)("ant-table-has-fix-right",i.hasFixRight)("ant-table-bordered",i.nzBordered)("nz-table-out-bordered",i.nzOuterBordered&&!i.nzBordered)("ant-table-middle","middle"===i.nzSize)("ant-table-small","small"===i.nzSize),t.xp6(2),t.Q6J("ngIf",i.nzTitle),t.xp6(1),t.Q6J("ngIf",i.scrollY||i.scrollX)("ngIfElse",a),t.xp6(3),t.Q6J("ngIf",i.nzFooter),t.xp6(1),t.Q6J("ngIf","both"===i.nzPaginationPosition||"bottom"===i.nzPaginationPosition)}},directives:function(){return[st.W,d.O5,d.tP,Oa,ue,va,qi]},encapsulation:2,changeDetection:0}),(0,h.gn)([(0,u.yF)()],n.prototype,"nzFrontPagination",void 0),(0,h.gn)([(0,u.yF)()],n.prototype,"nzTemplateMode",void 0),(0,h.gn)([(0,u.yF)()],n.prototype,"nzShowPagination",void 0),(0,h.gn)([(0,u.yF)()],n.prototype,"nzLoading",void 0),(0,h.gn)([(0,u.yF)()],n.prototype,"nzOuterBordered",void 0),(0,h.gn)([(0,S.oS)()],n.prototype,"nzLoadingIndicator",void 0),(0,h.gn)([(0,S.oS)(),(0,u.yF)()],n.prototype,"nzBordered",void 0),(0,h.gn)([(0,S.oS)()],n.prototype,"nzSize",void 0),(0,h.gn)([(0,S.oS)(),(0,u.yF)()],n.prototype,"nzShowSizeChanger",void 0),(0,h.gn)([(0,S.oS)(),(0,u.yF)()],n.prototype,"nzHideOnSinglePage",void 0),(0,h.gn)([(0,S.oS)(),(0,u.yF)()],n.prototype,"nzShowQuickJumper",void 0),(0,h.gn)([(0,S.oS)(),(0,u.yF)()],n.prototype,"nzSimple",void 0),n})(),he=(()=>{class n{constructor(e){if(this.nzTableStyleService=e,this.isInsideTable=!1,this.showEmpty$=new P.X(!1),this.noResult$=new P.X(void 0),this.listOfMeasureColumn$=new P.X([]),this.destroy$=new x.xQ,this.isInsideTable=!!this.nzTableStyleService,this.nzTableStyleService){const{showEmpty$:i,noResult$:a,listOfMeasureColumn$:s}=this.nzTableStyleService;a.pipe((0,_.R)(this.destroy$)).subscribe(this.noResult$),s.pipe((0,_.R)(this.destroy$)).subscribe(this.listOfMeasureColumn$),i.pipe((0,_.R)(this.destroy$)).subscribe(this.showEmpty$)}}onListOfAutoWidthChange(e){this.nzTableStyleService.setListOfAutoWidth(e)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(et,8))},n.\u0275cmp=t.Xpm({type:n,selectors:[["tbody"]],hostVars:2,hostBindings:function(e,i){2&e&&t.ekj("ant-table-tbody",i.isInsideTable)},ngContentSelectors:j,decls:5,vars:6,consts:[[4,"ngIf"],["class","ant-table-placeholder","nz-table-fixed-row","",4,"ngIf"],["nz-table-measure-row","",3,"listOfMeasureColumn","listOfAutoWidth",4,"ngIf"],["nz-table-measure-row","",3,"listOfMeasureColumn","listOfAutoWidth"],["nz-table-fixed-row","",1,"ant-table-placeholder"],["nzComponentName","table",3,"specificContent"]],template:function(e,i){1&e&&(t.F$t(),t.YNc(0,ta,2,1,"ng-container",0),t.ALo(1,"async"),t.Hsn(2),t.YNc(3,ea,3,3,"tr",1),t.ALo(4,"async")),2&e&&(t.Q6J("ngIf",t.lcZ(1,2,i.listOfMeasureColumn$)),t.xp6(3),t.Q6J("ngIf",t.lcZ(4,4,i.showEmpty$)))},directives:function(){return[d.O5,Sa,Ca,St.gB]},pipes:function(){return[d.Ov]},encapsulation:2,changeDetection:0}),n})(),fe=(()=>{class n{constructor(e){this.nzTableStyleService=e,this.destroy$=new x.xQ,this.listOfFixedColumns$=new D.t(1),this.listOfColumns$=new D.t(1),this.listOfFixedColumnsChanges$=this.listOfFixedColumns$.pipe((0,N.w)(i=>(0,L.T)(this.listOfFixedColumns$,...i.map(a=>a.changes$)).pipe((0,Rt.zg)(()=>this.listOfFixedColumns$))),(0,_.R)(this.destroy$)),this.listOfFixedLeftColumnChanges$=this.listOfFixedColumnsChanges$.pipe((0,b.U)(i=>i.filter(a=>!1!==a.nzLeft))),this.listOfFixedRightColumnChanges$=this.listOfFixedColumnsChanges$.pipe((0,b.U)(i=>i.filter(a=>!1!==a.nzRight))),this.listOfColumnsChanges$=this.listOfColumns$.pipe((0,N.w)(i=>(0,L.T)(this.listOfColumns$,...i.map(a=>a.changes$)).pipe((0,Rt.zg)(()=>this.listOfColumns$))),(0,_.R)(this.destroy$)),this.isInsideTable=!1,this.isInsideTable=!!e}ngAfterContentInit(){this.nzTableStyleService&&(this.listOfCellFixedDirective.changes.pipe((0,X.O)(this.listOfCellFixedDirective),(0,_.R)(this.destroy$)).subscribe(this.listOfFixedColumns$),this.listOfNzThDirective.changes.pipe((0,X.O)(this.listOfNzThDirective),(0,_.R)(this.destroy$)).subscribe(this.listOfColumns$),this.listOfFixedLeftColumnChanges$.subscribe(e=>{e.forEach(i=>i.setIsLastLeft(i===e[e.length-1]))}),this.listOfFixedRightColumnChanges$.subscribe(e=>{e.forEach(i=>i.setIsFirstRight(i===e[0]))}),(0,V.aj)([this.nzTableStyleService.listOfListOfThWidth$,this.listOfFixedLeftColumnChanges$]).pipe((0,_.R)(this.destroy$)).subscribe(([e,i])=>{i.forEach((a,s)=>{if(a.isAutoLeft){const c=i.slice(0,s).reduce((z,C)=>z+(C.colspan||C.colSpan||1),0),p=e.slice(0,c).reduce((z,C)=>z+C,0);a.setAutoLeftWidth(`${p}px`)}})}),(0,V.aj)([this.nzTableStyleService.listOfListOfThWidth$,this.listOfFixedRightColumnChanges$]).pipe((0,_.R)(this.destroy$)).subscribe(([e,i])=>{i.forEach((a,s)=>{const r=i[i.length-s-1];if(r.isAutoRight){const p=i.slice(i.length-s,i.length).reduce((C,f)=>C+(f.colspan||f.colSpan||1),0),z=e.slice(e.length-p,e.length).reduce((C,f)=>C+f,0);r.setAutoRightWidth(`${z}px`)}})}))}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(et,8))},n.\u0275dir=t.lG2({type:n,selectors:[["tr",3,"mat-row","",3,"mat-header-row","",3,"nz-table-measure-row","",3,"nzExpand","",3,"nz-table-fixed-row",""]],contentQueries:function(e,i,a){if(1&e&&(t.Suo(a,pe,4),t.Suo(a,fa,4)),2&e){let s;t.iGM(s=t.CRH())&&(i.listOfNzThDirective=s),t.iGM(s=t.CRH())&&(i.listOfCellFixedDirective=s)}},hostVars:2,hostBindings:function(e,i){2&e&&t.ekj("ant-table-row",i.isInsideTable)}}),n})(),Ta=(()=>{class n{constructor(e,i,a,s){this.elementRef=e,this.renderer=i,this.nzTableStyleService=a,this.nzTableDataService=s,this.destroy$=new x.xQ,this.isInsideTable=!1,this.nzSortOrderChange=new t.vpe,this.isInsideTable=!!this.nzTableStyleService}ngOnInit(){this.nzTableStyleService&&this.nzTableStyleService.setTheadTemplate(this.templateRef)}ngAfterContentInit(){if(this.nzTableStyleService){const e=this.listOfNzTrDirective.changes.pipe((0,X.O)(this.listOfNzTrDirective),(0,b.U)(r=>r&&r.first)),i=e.pipe((0,N.w)(r=>r?r.listOfColumnsChanges$:Qt.E),(0,_.R)(this.destroy$));i.subscribe(r=>this.nzTableStyleService.setListOfTh(r)),this.nzTableStyleService.enableAutoMeasure$.pipe((0,N.w)(r=>r?i:(0,Ot.of)([]))).pipe((0,_.R)(this.destroy$)).subscribe(r=>this.nzTableStyleService.setListOfMeasureColumn(r));const a=e.pipe((0,N.w)(r=>r?r.listOfFixedLeftColumnChanges$:Qt.E),(0,_.R)(this.destroy$)),s=e.pipe((0,N.w)(r=>r?r.listOfFixedRightColumnChanges$:Qt.E),(0,_.R)(this.destroy$));a.subscribe(r=>{this.nzTableStyleService.setHasFixLeft(0!==r.length)}),s.subscribe(r=>{this.nzTableStyleService.setHasFixRight(0!==r.length)})}if(this.nzTableDataService){const e=this.listOfNzThAddOnComponent.changes.pipe((0,X.O)(this.listOfNzThAddOnComponent));e.pipe((0,N.w)(()=>(0,L.T)(...this.listOfNzThAddOnComponent.map(s=>s.manualClickOrder$))),(0,_.R)(this.destroy$)).subscribe(s=>{this.nzSortOrderChange.emit({key:s.nzColumnKey,value:s.sortOrder}),s.nzSortFn&&!1===s.nzSortPriority&&this.listOfNzThAddOnComponent.filter(c=>c!==s).forEach(c=>c.clearSortOrder())}),e.pipe((0,N.w)(s=>(0,L.T)(e,...s.map(r=>r.calcOperatorChange$)).pipe((0,Rt.zg)(()=>e))),(0,b.U)(s=>s.filter(r=>!!r.nzSortFn||!!r.nzFilterFn).map(r=>{const{nzSortFn:c,sortOrder:p,nzFilterFn:z,nzFilterValue:C,nzSortPriority:f,nzColumnKey:T}=r;return{key:T,sortFn:c,sortPriority:f,sortOrder:p,filterFn:z,filterValue:C}})),(0,Lt.g)(0),(0,_.R)(this.destroy$)).subscribe(s=>{this.nzTableDataService.listOfCalcOperator$.next(s)})}}ngAfterViewInit(){this.nzTableStyleService&&this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement),this.elementRef.nativeElement)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.SBq),t.Y36(t.Qsj),t.Y36(et,8),t.Y36($t,8))},n.\u0275cmp=t.Xpm({type:n,selectors:[["thead",9,"ant-table-thead"]],contentQueries:function(e,i,a){if(1&e&&(t.Suo(a,fe,5),t.Suo(a,za,5)),2&e){let s;t.iGM(s=t.CRH())&&(i.listOfNzTrDirective=s),t.iGM(s=t.CRH())&&(i.listOfNzThAddOnComponent=s)}},viewQuery:function(e,i){if(1&e&&t.Gf(na,7),2&e){let a;t.iGM(a=t.CRH())&&(i.templateRef=a.first)}},outputs:{nzSortOrderChange:"nzSortOrderChange"},ngContentSelectors:j,decls:3,vars:1,consts:[["contentTemplate",""],[4,"ngIf"],[3,"ngTemplateOutlet"]],template:function(e,i){1&e&&(t.F$t(),t.YNc(0,ia,1,0,"ng-template",null,0,t.W1O),t.YNc(2,aa,2,1,"ng-container",1)),2&e&&(t.xp6(2),t.Q6J("ngIf",!i.isInsideTable))},directives:[d.O5,d.tP],encapsulation:2,changeDetection:0}),n})(),Oa=(()=>{class n{constructor(){this.title=null,this.footer=null}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-table-title-footer"]],hostVars:4,hostBindings:function(e,i){2&e&&t.ekj("ant-table-title",null!==i.title)("ant-table-footer",null!==i.footer)},inputs:{title:"title",footer:"footer"},decls:2,vars:2,consts:[[4,"nzStringTemplateOutlet"]],template:function(e,i){1&e&&(t.YNc(0,sa,2,1,"ng-container",0),t.YNc(1,ra,2,1,"ng-container",0)),2&e&&(t.Q6J("nzStringTemplateOutlet",i.title),t.xp6(1),t.Q6J("nzStringTemplateOutlet",i.footer))},directives:[H.f],encapsulation:2,changeDetection:0}),n})(),Sa=(()=>{class n{constructor(e,i,a){this.nzResizeObserver=e,this.ngZone=i,this.elementRef=a,this.listOfMeasureColumn=[],this.listOfAutoWidth=new t.vpe,this.destroy$=new x.xQ,this.elementRef.nativeElement.classList.add("ant-table-measure-now")}trackByFunc(e,i){return i}ngAfterViewInit(){this.listOfTdElement.changes.pipe((0,X.O)(this.listOfTdElement)).pipe((0,N.w)(e=>(0,V.aj)(e.toArray().map(i=>this.nzResizeObserver.observe(i).pipe((0,b.U)(([a])=>{const{width:s}=a.target.getBoundingClientRect();return Math.floor(s)}))))),(0,Jt.b)(16),(0,_.R)(this.destroy$)).subscribe(e=>{this.ngZone.run(()=>{this.listOfAutoWidth.next(e)})})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(Bt.D3),t.Y36(t.R0b),t.Y36(t.SBq))},n.\u0275cmp=t.Xpm({type:n,selectors:[["tr","nz-table-measure-row",""]],viewQuery:function(e,i){if(1&e&&t.Gf(ge,5),2&e){let a;t.iGM(a=t.CRH())&&(i.listOfTdElement=a)}},inputs:{listOfMeasureColumn:"listOfMeasureColumn"},outputs:{listOfAutoWidth:"listOfAutoWidth"},attrs:la,decls:1,vars:2,consts:[["class","nz-disable-td","style","padding: 0px; border: 0px; height: 0px;",4,"ngFor","ngForOf","ngForTrackBy"],[1,"nz-disable-td",2,"padding","0px","border","0px","height","0px"],["tdElement",""]],template:function(e,i){1&e&&t.YNc(0,ca,2,0,"td",0),2&e&&t.Q6J("ngForOf",i.listOfMeasureColumn)("ngForTrackBy",i.trackByFunc)},directives:[d.sg],encapsulation:2,changeDetection:0}),n})(),wa=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[[k.vT,K.ip,l.u5,H.T,lt.aF,rt.Wr,$.b1,mt.sL,d.ez,bt.ud,Gi,Bt.y7,st.j,wt.YI,E.PV,St.Xo,gt.Cl]]}),n})();var Ma=g(7070),_e=g(641);const ze=["*"];function ya(n,o){if(1&n&&(t.ynx(0),t._UZ(1,"i",6),t.BQk()),2&n){const e=o.$implicit,i=t.oxw(2);t.xp6(1),t.Q6J("nzType",e||"right")("nzRotate",i.nzActive?90:0)}}function Pa(n,o){if(1&n&&(t.ynx(0),t.YNc(1,ya,2,2,"ng-container",2),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzExpandedIcon)}}function Fa(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.Oqu(e.nzHeader)}}function Na(n,o){if(1&n&&(t.ynx(0),t._uU(1),t.BQk()),2&n){const e=t.oxw(2);t.xp6(1),t.Oqu(e.nzExtra)}}function ka(n,o){if(1&n&&(t.TgZ(0,"div",7),t.YNc(1,Na,2,1,"ng-container",2),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("nzStringTemplateOutlet",e.nzExtra)}}const Ce="collapse";let ve=(()=>{class n{constructor(e,i,a,s){this.nzConfigService=e,this.cdr=i,this.elementRef=a,this.directionality=s,this._nzModuleName=Ce,this.nzAccordion=!1,this.nzBordered=!0,this.nzGhost=!1,this.nzExpandIconPosition="left",this.dir="ltr",this.listOfNzCollapsePanelComponent=[],this.destroy$=new x.xQ,this.elementRef.nativeElement.classList.add("ant-collapse"),this.nzConfigService.getConfigChangeEventForComponent(Ce).pipe((0,_.R)(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()})}ngOnInit(){var e;null===(e=this.directionality.change)||void 0===e||e.pipe((0,_.R)(this.destroy$)).subscribe(i=>{this.dir=i,this.cdr.detectChanges()}),this.dir=this.directionality.value}addPanel(e){this.listOfNzCollapsePanelComponent.push(e)}removePanel(e){this.listOfNzCollapsePanelComponent.splice(this.listOfNzCollapsePanelComponent.indexOf(e),1)}click(e){this.nzAccordion&&!e.nzActive&&this.listOfNzCollapsePanelComponent.filter(i=>i!==e).forEach(i=>{i.nzActive&&(i.nzActive=!1,i.nzActiveChange.emit(i.nzActive),i.markForCheck())}),e.nzActive=!e.nzActive,e.nzActiveChange.emit(e.nzActive)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(S.jY),t.Y36(t.sBO),t.Y36(t.SBq),t.Y36(k.Is,8))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-collapse"]],hostVars:10,hostBindings:function(e,i){2&e&&t.ekj("ant-collapse-icon-position-left","left"===i.nzExpandIconPosition)("ant-collapse-icon-position-right","right"===i.nzExpandIconPosition)("ant-collapse-ghost",i.nzGhost)("ant-collapse-borderless",!i.nzBordered)("ant-collapse-rtl","rtl"===i.dir)},inputs:{nzAccordion:"nzAccordion",nzBordered:"nzBordered",nzGhost:"nzGhost",nzExpandIconPosition:"nzExpandIconPosition"},exportAs:["nzCollapse"],ngContentSelectors:ze,decls:1,vars:0,template:function(e,i){1&e&&(t.F$t(),t.Hsn(0))},encapsulation:2,changeDetection:0}),(0,h.gn)([(0,S.oS)(),(0,u.yF)()],n.prototype,"nzAccordion",void 0),(0,h.gn)([(0,S.oS)(),(0,u.yF)()],n.prototype,"nzBordered",void 0),(0,h.gn)([(0,S.oS)(),(0,u.yF)()],n.prototype,"nzGhost",void 0),n})();const xe="collapsePanel";let Da=(()=>{class n{constructor(e,i,a,s,r){this.nzConfigService=e,this.cdr=i,this.nzCollapseComponent=a,this.elementRef=s,this.noAnimation=r,this._nzModuleName=xe,this.nzActive=!1,this.nzDisabled=!1,this.nzShowArrow=!0,this.nzActiveChange=new t.vpe,this.destroy$=new x.xQ,this.elementRef.nativeElement.classList.add("ant-collapse-item"),this.nzConfigService.getConfigChangeEventForComponent(xe).pipe((0,_.R)(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()})}clickHeader(){this.nzDisabled||this.nzCollapseComponent.click(this)}markForCheck(){this.cdr.markForCheck()}ngOnInit(){this.nzCollapseComponent.addPanel(this)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete(),this.nzCollapseComponent.removePanel(this)}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(S.jY),t.Y36(t.sBO),t.Y36(ve,1),t.Y36(t.SBq),t.Y36(_e.P,8))},n.\u0275cmp=t.Xpm({type:n,selectors:[["nz-collapse-panel"]],hostVars:6,hostBindings:function(e,i){2&e&&t.ekj("ant-collapse-no-arrow",!i.nzShowArrow)("ant-collapse-item-active",i.nzActive)("ant-collapse-item-disabled",i.nzDisabled)},inputs:{nzActive:"nzActive",nzDisabled:"nzDisabled",nzShowArrow:"nzShowArrow",nzExtra:"nzExtra",nzHeader:"nzHeader",nzExpandedIcon:"nzExpandedIcon"},outputs:{nzActiveChange:"nzActiveChange"},exportAs:["nzCollapsePanel"],ngContentSelectors:ze,decls:7,vars:8,consts:[["role","tab",1,"ant-collapse-header",3,"click"],[4,"ngIf"],[4,"nzStringTemplateOutlet"],["class","ant-collapse-extra",4,"ngIf"],[1,"ant-collapse-content"],[1,"ant-collapse-content-box"],["nz-icon","",1,"ant-collapse-arrow",3,"nzType","nzRotate"],[1,"ant-collapse-extra"]],template:function(e,i){1&e&&(t.F$t(),t.TgZ(0,"div",0),t.NdJ("click",function(){return i.clickHeader()}),t.YNc(1,Pa,2,1,"ng-container",1),t.YNc(2,Fa,2,1,"ng-container",2),t.YNc(3,ka,2,1,"div",3),t.qZA(),t.TgZ(4,"div",4),t.TgZ(5,"div",5),t.Hsn(6),t.qZA(),t.qZA()),2&e&&(t.uIk("aria-expanded",i.nzActive),t.xp6(1),t.Q6J("ngIf",i.nzShowArrow),t.xp6(1),t.Q6J("nzStringTemplateOutlet",i.nzHeader),t.xp6(1),t.Q6J("ngIf",i.nzExtra),t.xp6(1),t.ekj("ant-collapse-content-active",i.nzActive),t.Q6J("@.disabled",null==i.noAnimation?null:i.noAnimation.nzNoAnimation)("@collapseMotion",i.nzActive?"expanded":"hidden"))},directives:[d.O5,H.f,E.Ls],encapsulation:2,data:{animation:[Ma.J_]},changeDetection:0}),(0,h.gn)([(0,u.yF)()],n.prototype,"nzActive",void 0),(0,h.gn)([(0,u.yF)()],n.prototype,"nzDisabled",void 0),(0,h.gn)([(0,S.oS)(),(0,u.yF)()],n.prototype,"nzShowArrow",void 0),n})(),Aa=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[[k.vT,d.ez,E.PV,H.T,_e.g]]}),n})();var Za=g(4466),nt=g(5304),it=g(9825),ot=g(7158),ht=g(3080),at=g(5136);let be=(()=>{class n{constructor(e,i,a){this.logger=e,this.notification=i,this.settingService=a}resolve(e,i){return this.settingService.getSettings(["output","logging","header","danmaku","recorder","postprocessing","space"]).pipe((0,it.X)(3,300),(0,nt.K)(a=>{throw this.logger.error("Failed to get settings:",a),this.notification.error("\u83b7\u53d6\u8bbe\u7f6e\u51fa\u9519",a.message,{nzDuration:0}),a}))}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(ot.Kf),t.LFG(ht.zb),t.LFG(at.R))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac}),n})(),Te=(()=>{class n{constructor(e,i,a){this.logger=e,this.notification=i,this.settingService=a}resolve(e,i){return this.settingService.getSettings(["emailNotification"]).pipe((0,b.U)(a=>a.emailNotification),(0,it.X)(3,300),(0,nt.K)(a=>{throw this.logger.error("Failed to get email notification settings:",a),this.notification.error("\u83b7\u53d6\u90ae\u4ef6\u901a\u77e5\u8bbe\u7f6e\u51fa\u9519",a.message,{nzDuration:0}),a}))}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(ot.Kf),t.LFG(ht.zb),t.LFG(at.R))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac}),n})(),Oe=(()=>{class n{constructor(e,i,a){this.logger=e,this.notification=i,this.settingService=a}resolve(e,i){return this.settingService.getSettings(["serverchanNotification"]).pipe((0,b.U)(a=>a.serverchanNotification),(0,it.X)(3,300),(0,nt.K)(a=>{throw this.logger.error("Failed to get ServerChan notification settings:",a),this.notification.error("\u83b7\u53d6 ServerChan \u901a\u77e5\u8bbe\u7f6e\u51fa\u9519",a.message,{nzDuration:0}),a}))}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(ot.Kf),t.LFG(ht.zb),t.LFG(at.R))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac}),n})(),Se=(()=>{class n{constructor(e,i,a){this.logger=e,this.notification=i,this.settingService=a}resolve(e,i){return this.settingService.getSettings(["pushplusNotification"]).pipe((0,b.U)(a=>a.pushplusNotification),(0,it.X)(3,300),(0,nt.K)(a=>{throw this.logger.error("Failed to get pushplus notification settings:",a),this.notification.error("\u83b7\u53d6 pushplus \u901a\u77e5\u8bbe\u7f6e\u51fa\u9519",a.message,{nzDuration:0}),a}))}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(ot.Kf),t.LFG(ht.zb),t.LFG(at.R))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac}),n})(),we=(()=>{class n{constructor(e,i,a){this.logger=e,this.notification=i,this.settingService=a}resolve(e,i){return this.settingService.getSettings(["webhooks"]).pipe((0,b.U)(a=>a.webhooks),(0,it.X)(3,300),(0,nt.K)(a=>{throw this.logger.error("Failed to get webhook settings:",a),this.notification.error("\u83b7\u53d6 Webhook \u8bbe\u7f6e\u51fa\u9519",a.message,{nzDuration:0}),a}))}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(ot.Kf),t.LFG(ht.zb),t.LFG(at.R))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac}),n})();var M=g(6983),Me=g(2145),Ia=g(9746),Ea=g(3637),ye=g(4704),y=g(2340);const w="RouterScrollService",Pe="defaultViewport",Fe="customViewport";let Ba=(()=>{class n{constructor(e,i,a,s){this.router=e,this.activatedRoute=i,this.viewportScroller=a,this.logger=s,this.addQueue=[],this.addBeforeNavigationQueue=[],this.removeQueue=[],this.routeStrategies=[],this.scrollDefaultViewport=!0,this.customViewportToScroll=null,y.N.traceRouterScrolling&&this.logger.trace(`${w}:: constructor`),y.N.traceRouterScrolling&&this.logger.trace(`${w}:: Subscribing to router events`);const r=this.router.events.pipe((0,R.h)(c=>c instanceof M.OD||c instanceof M.m2),(0,Me.R)((c,p)=>{var z,C;y.N.traceRouterScrolling&&this.logger.trace(`${w}:: Updating the known scroll positions`);const f=Object.assign({},c.positions);return p instanceof M.OD&&this.scrollDefaultViewport&&(y.N.traceRouterScrolling&&this.logger.trace(`${w}:: Storing the scroll position of the default viewport`),f[`${p.id}-${Pe}`]=this.viewportScroller.getScrollPosition()),p instanceof M.OD&&this.customViewportToScroll&&(y.N.traceRouterScrolling&&this.logger.trace(`${w}:: Storing the scroll position of the custom viewport`),f[`${p.id}-${Fe}`]=this.customViewportToScroll.scrollTop),{event:p,positions:f,trigger:p instanceof M.OD?p.navigationTrigger:c.trigger,idToRestore:p instanceof M.OD&&p.restoredState&&p.restoredState.navigationId+1||c.idToRestore,routeData:null===(C=null===(z=this.activatedRoute.firstChild)||void 0===z?void 0:z.routeConfig)||void 0===C?void 0:C.data}}),(0,R.h)(c=>!!c.trigger),(0,Ia.QV)(Ea.z));this.scrollPositionRestorationSubscription=r.subscribe(c=>{const p=this.routeStrategies.find(T=>c.event.url.indexOf(T.partialRoute)>-1),z=p&&p.behaviour===ye.g.KEEP_POSITION||!1,C=c.routeData&&c.routeData.scrollBehavior&&c.routeData.scrollBehavior===ye.g.KEEP_POSITION||!1,f=z||C;if(c.event instanceof M.m2){this.processRemoveQueue(this.removeQueue);const T=c.trigger&&"imperative"===c.trigger||!1,Z=!f||T;y.N.traceRouterScrolling&&(this.logger.trace(`${w}:: Existing strategy with keep position behavior? `,z),this.logger.trace(`${w}:: Route data with keep position behavior? `,C),this.logger.trace(`${w}:: Imperative trigger? `,T),this.logger.debug(`${w}:: Should scroll? `,Z)),Z?(this.scrollDefaultViewport&&(y.N.traceRouterScrolling&&this.logger.debug(`${w}:: Scrolling the default viewport`),this.viewportScroller.scrollToPosition([0,0])),this.customViewportToScroll&&(y.N.traceRouterScrolling&&this.logger.debug(`${w}:: Scrolling a custom viewport: `,this.customViewportToScroll),this.customViewportToScroll.scrollTop=0)):(y.N.traceRouterScrolling&&this.logger.debug(`${w}:: Not scrolling`),this.scrollDefaultViewport&&this.viewportScroller.scrollToPosition(c.positions[`${c.idToRestore}-${Pe}`]),this.customViewportToScroll&&(this.customViewportToScroll.scrollTop=c.positions[`${c.idToRestore}-${Fe}`])),this.processRemoveQueue(this.addBeforeNavigationQueue.map(vt=>vt.partialRoute),!0),this.processAddQueue(this.addQueue),this.addQueue=[],this.removeQueue=[],this.addBeforeNavigationQueue=[]}else this.processAddQueue(this.addBeforeNavigationQueue)})}addStrategyOnceBeforeNavigationForPartialRoute(e,i){y.N.traceRouterScrolling&&this.logger.trace(`${w}:: Adding a strategy once for before navigation towards [${e}]: `,i),this.addBeforeNavigationQueue.push({partialRoute:e,behaviour:i,onceBeforeNavigation:!0})}addStrategyForPartialRoute(e,i){y.N.traceRouterScrolling&&this.logger.trace(`${w}:: Adding a strategy for partial route: [${e}]`,i),this.addQueue.push({partialRoute:e,behaviour:i})}removeStrategyForPartialRoute(e){y.N.traceRouterScrolling&&this.logger.trace(`${w}:: Removing strategory for: [${e}]: `),this.removeQueue.push(e)}setCustomViewportToScroll(e){y.N.traceRouterScrolling&&this.logger.trace(`${w}:: Setting a custom viewport to scroll: `,e),this.customViewportToScroll=e}disableScrollDefaultViewport(){y.N.traceRouterScrolling&&this.logger.trace(`${w}:: Disabling scrolling the default viewport`),this.scrollDefaultViewport=!1}enableScrollDefaultViewPort(){y.N.traceRouterScrolling&&this.logger.trace(`${w}:: Enabling scrolling the default viewport`),this.scrollDefaultViewport=!0}processAddQueue(e){for(const i of e)-1===this.routeStrategyPosition(i.partialRoute)&&this.routeStrategies.push(i)}processRemoveQueue(e,i=!1){for(const a of e){const s=this.routeStrategyPosition(a);!i&&s>-1&&this.routeStrategies[s].onceBeforeNavigation||s>-1&&this.routeStrategies.splice(s,1)}}routeStrategyPosition(e){return this.routeStrategies.map(i=>i.partialRoute).indexOf(e)}ngOnDestroy(){y.N.traceRouterScrolling&&this.logger.trace(`${w}:: ngOnDestroy`),this.scrollPositionRestorationSubscription&&this.scrollPositionRestorationSubscription.unsubscribe()}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(M.F0),t.LFG(M.gz),t.LFG(d.EM),t.LFG(ot.Kf))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();var ft=g(4670),_t=g(2502),Qa=g(5026),La=g(1016),Ja=g(9198);const A=function(n,o){var e={};return o=(0,Ja.Z)(o,3),(0,La.Z)(n,function(i,a,s){(0,Qa.Z)(e,a,o(i,a,s))}),e};var $a=g(2980),Va=g(8290),Ne=g(7895),Vt=g(4663),Ya=g(4969),qa=g(6565),Wa=g(506),Ua=g(384),ja=Object.prototype.hasOwnProperty;var ke=g(6015),es=g(2134),De=g(8058);function B(n){const o="result"in n;return A(n.diff,()=>o)}let Q=(()=>{class n{constructor(e,i){this.message=e,this.settingService=i}syncSettings(e,i,a){return a.pipe((0,Me.R)(([,s],r)=>[s,r,(0,es.e)(r,s)],[i,i,{}]),(0,R.h)(([,,s])=>!function(n){if(null==n)return!0;if((0,Ya.Z)(n)&&((0,Vt.Z)(n)||"string"==typeof n||"function"==typeof n.splice||(0,qa.Z)(n)||(0,Ua.Z)(n)||(0,Ne.Z)(n)))return!n.length;var o=(0,Va.Z)(n);if("[object Map]"==o||"[object Set]"==o)return!n.size;if((0,Wa.Z)(n))return!(0,$a.Z)(n).length;for(var e in n)if(ja.call(n,e))return!1;return!0}(s)),(0,N.w)(([s,r,c])=>this.settingService.changeSettings({[e]:c}).pipe((0,it.X)(3,300),(0,dt.b)(p=>{console.assert((0,ke.Z)(p[e],r),"result settings should equal current settings",{curr:r,result:p[e]})},p=>{this.message.error(`\u8bbe\u7f6e\u51fa\u9519: ${p.message}`)}),(0,b.U)(p=>({prev:s,curr:r,diff:c,result:p[e]})),(0,nt.K)(p=>(0,Ot.of)({prev:s,curr:r,diff:c,error:p})))),(0,dt.b)(s=>console.debug(`${e} settings sync detail:`,s)))}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(De.dD),t.LFG(at.R))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();var O=g(8737),zt=(()=>{return(n=zt||(zt={}))[n.EACCES=13]="EACCES",n[n.ENOTDIR=20]="ENOTDIR",zt;var n})(),ns=g(1841);const is=y.N.apiUrl;let os=(()=>{class n{constructor(e){this.http=e}validateDir(e){return this.http.post(is+"/api/v1/validation/dir",{path:e})}}return n.\u0275fac=function(e){return new(e||n)(t.LFG(ns.eN))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function as(n,o){1&n&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u4fdd\u5b58\u4f4d\u7f6e "),t.BQk())}function ss(n,o){1&n&&(t.ynx(0),t._uU(1," \u4e0d\u662f\u4e00\u4e2a\u76ee\u5f55 "),t.BQk())}function rs(n,o){1&n&&(t.ynx(0),t._uU(1," \u6ca1\u6709\u8bfb\u5199\u6743\u9650 "),t.BQk())}function ls(n,o){1&n&&(t.ynx(0),t._uU(1," \u672a\u80fd\u8fdb\u884c\u6821\u9a8c "),t.BQk())}function cs(n,o){if(1&n&&(t.YNc(0,as,2,0,"ng-container",6),t.YNc(1,ss,2,0,"ng-container",6),t.YNc(2,rs,2,0,"ng-container",6),t.YNc(3,ls,2,0,"ng-container",6)),2&n){const e=o.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("notADirectory")),t.xp6(1),t.Q6J("ngIf",e.hasError("noPermissions")),t.xp6(1),t.Q6J("ngIf",e.hasError("failedToValidate"))}}function gs(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"form",2),t.TgZ(2,"nz-form-item"),t.TgZ(3,"nz-form-control",3),t._UZ(4,"input",4),t.YNc(5,cs,4,4,"ng-template",null,5,t.W1O),t.qZA(),t.qZA(),t.qZA(),t.BQk()),2&n){const e=t.MAs(6),i=t.oxw();t.xp6(1),t.Q6J("formGroup",i.settingsForm),t.xp6(2),t.Q6J("nzErrorTip",e)}}let ps=(()=>{class n{constructor(e,i,a){this.changeDetector=i,this.validationService=a,this.value="",this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.outDirAsyncValidator=s=>this.validationService.validateDir(s.value).pipe((0,b.U)(r=>{switch(r.code){case zt.ENOTDIR:return{error:!0,notADirectory:!0};case zt.EACCES:return{error:!0,noPermissions:!0};default:return null}}),(0,nt.K)(()=>(0,Ot.of)({error:!0,failedToValidate:!0}))),this.settingsForm=e.group({outDir:["",[l.kI.required],[this.outDirAsyncValidator]]})}get control(){return this.settingsForm.get("outDir")}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.setVisible(!1)}setVisible(e){this.visible=e,this.visibleChange.emit(e),this.changeDetector.markForCheck()}setValue(){this.control.setValue(this.value),this.changeDetector.markForCheck()}handleCancel(){this.cancel.emit(),this.close()}handleConfirm(){this.confirm.emit(this.control.value.trim()),this.close()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(l.qu),t.Y36(t.sBO),t.Y36(os))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-outdir-edit-dialog"]],inputs:{value:"value",visible:"visible"},outputs:{visibleChange:"visibleChange",cancel:"cancel",confirm:"confirm"},features:[t.TTD],decls:2,vars:2,consts:[["nzTitle","\u4fee\u6539\u6587\u4ef6\u4fdd\u5b58\u4f4d\u7f6e","nzCentered","",3,"nzVisible","nzOkDisabled","nzVisibleChange","nzOnOk","nzOnCancel"],[4,"nzModalContent"],["nz-form","",3,"formGroup"],["nzHasFeedback","","nzValidatingTip","\u6b63\u5728\u6821\u9a8c...",3,"nzErrorTip"],["type","text","required","","nz-input","","formControlName","outDir"],["errorTip",""],[4,"ngIf"]],template:function(e,i){1&e&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(s){return i.visible=s})("nzOnOk",function(){return i.handleConfirm()})("nzOnCancel",function(){return i.handleCancel()}),t.YNc(1,gs,7,2,"ng-container",1),t.qZA()),2&e&&t.Q6J("nzVisible",i.visible)("nzOkDisabled",i.control.invalid||i.control.value.trim()===i.value)},directives:[I.du,I.Hf,l._Y,l.JL,m.Lr,l.sg,v.SK,m.Nx,v.t3,m.Fd,J.Zp,l.Fj,l.Q7,l.JJ,l.u,d.O5],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}"],changeDetection:0}),n})();function ds(n,o){1&n&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u8def\u5f84\u6a21\u677f "),t.BQk())}function us(n,o){1&n&&(t.ynx(0),t._uU(1," \u8def\u5f84\u6a21\u677f\u6709\u9519\u8bef "),t.BQk())}function ms(n,o){if(1&n&&(t.YNc(0,ds,2,0,"ng-container",12),t.YNc(1,us,2,0,"ng-container",12)),2&n){const e=o.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}function hs(n,o){if(1&n&&(t.TgZ(0,"tr"),t.TgZ(1,"td"),t._uU(2),t.qZA(),t.TgZ(3,"td"),t._uU(4),t.qZA(),t.qZA()),2&n){const e=o.$implicit;t.xp6(2),t.Oqu(e.name),t.xp6(2),t.Oqu(e.desc)}}function fs(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"form",3),t.TgZ(2,"nz-form-item"),t.TgZ(3,"nz-form-control",4),t._UZ(4,"input",5),t.YNc(5,ms,2,2,"ng-template",null,6,t.W1O),t.qZA(),t.qZA(),t.TgZ(7,"nz-collapse"),t.TgZ(8,"nz-collapse-panel",7),t.TgZ(9,"nz-table",8,9),t.TgZ(11,"thead"),t.TgZ(12,"tr"),t.TgZ(13,"th"),t._uU(14,"\u53d8\u91cf"),t.qZA(),t.TgZ(15,"th"),t._uU(16,"\u8bf4\u660e"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(17,"tbody"),t.YNc(18,hs,5,2,"tr",10),t.qZA(),t.qZA(),t.TgZ(19,"p",11),t.TgZ(20,"strong"),t._uU(21," \u6ce8\u610f\uff1a\u53d8\u91cf\u540d\u5fc5\u987b\u653e\u5728\u82b1\u62ec\u53f7\u4e2d\uff01\u4f7f\u7528\u65e5\u671f\u65f6\u95f4\u53d8\u91cf\u4ee5\u907f\u514d\u547d\u540d\u51b2\u7a81\uff01 "),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.BQk()),2&n){const e=t.MAs(6),i=t.MAs(10),a=t.oxw();t.xp6(1),t.Q6J("formGroup",a.settingsForm),t.xp6(2),t.Q6J("nzErrorTip",e),t.xp6(1),t.Q6J("pattern",a.pathTemplatePattern),t.xp6(5),t.Q6J("nzData",a.pathTemplateVariables)("nzShowPagination",!1)("nzSize","small"),t.xp6(9),t.Q6J("ngForOf",i.data)}}function _s(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"button",13),t.NdJ("click",function(){return t.CHM(e),t.oxw().restoreDefault()}),t._uU(1," \u6062\u590d\u9ed8\u8ba4 "),t.qZA(),t.TgZ(2,"button",14),t.NdJ("click",function(){return t.CHM(e),t.oxw().handleCancel()}),t._uU(3,"\u53d6\u6d88"),t.qZA(),t.TgZ(4,"button",13),t.NdJ("click",function(){return t.CHM(e),t.oxw().handleConfirm()}),t._uU(5," \u786e\u5b9a "),t.qZA()}if(2&n){const e=t.oxw();t.Q6J("disabled",e.control.value.trim()===e.pathTemplateDefault),t.xp6(4),t.Q6J("disabled",e.control.invalid||e.control.value.trim()===e.value)}}let zs=(()=>{class n{constructor(e,i){this.changeDetector=i,this.value="",this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.pathTemplatePattern=O._m,this.pathTemplateDefault=O.ip,this.pathTemplateVariables=O.Dr,this.settingsForm=e.group({pathTemplate:["",[l.kI.required,l.kI.pattern(this.pathTemplatePattern)]]})}get control(){return this.settingsForm.get("pathTemplate")}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.setVisible(!1)}setVisible(e){this.visible=e,this.visibleChange.emit(e),this.changeDetector.markForCheck()}setValue(){this.control.setValue(this.value),this.changeDetector.markForCheck()}handleCancel(){this.cancel.emit(),this.close()}handleConfirm(){this.confirm.emit(this.control.value.trim()),this.close()}restoreDefault(){this.control.setValue(this.pathTemplateDefault)}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(l.qu),t.Y36(t.sBO))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-path-template-edit-dialog"]],inputs:{value:"value",visible:"visible"},outputs:{visibleChange:"visibleChange",cancel:"cancel",confirm:"confirm"},features:[t.TTD],decls:4,vars:2,consts:[["nzTitle","\u4fee\u6539\u6587\u4ef6\u8def\u5f84\u6a21\u677f","nzCentered","",3,"nzFooter","nzVisible","nzVisibleChange"],[4,"nzModalContent"],["modalFooter",""],["nz-form","",3,"formGroup"],[3,"nzErrorTip"],["type","text","required","","nz-input","","formControlName","pathTemplate",3,"pattern"],["errorTip",""],["nzHeader","\u6a21\u677f\u53d8\u91cf\u8bf4\u660e"],[3,"nzData","nzShowPagination","nzSize"],["table",""],[4,"ngFor","ngForOf"],[1,"footnote"],[4,"ngIf"],["nz-button","","nzType","default",3,"disabled","click"],["nz-button","","nzType","default",3,"click"]],template:function(e,i){if(1&e&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(s){return i.visible=s}),t.YNc(1,fs,22,7,"ng-container",1),t.YNc(2,_s,6,2,"ng-template",null,2,t.W1O),t.qZA()),2&e){const a=t.MAs(3);t.Q6J("nzFooter",a)("nzVisible",i.visible)}},directives:[I.du,I.Hf,l._Y,l.JL,m.Lr,l.sg,v.SK,m.Nx,v.t3,m.Fd,J.Zp,l.Fj,l.Q7,l.JJ,l.u,l.c5,ve,Da,ba,Ta,fe,_a,pe,he,d.sg,d.O5,mt.ix,ce.dQ,tt.w],styles:[".footnote[_ngcontent-%COMP%]{margin-top:1em;margin-bottom:0}"],changeDetection:0}),n})(),Cs=(()=>{class n{constructor(e,i,a){this.changeDetector=i,this.settingsSyncService=a,this.splitFileTip=O.Uk,this.syncFailedWarningTip=O.yT,this.filesizeLimitOptions=(0,_t.Z)(O.Pu),this.durationLimitOptions=(0,_t.Z)(O.Fg),this.settingsForm=e.group({outDir:[""],pathTemplate:[""],filesizeLimit:[""],durationLimit:[""]})}get outDirControl(){return this.settingsForm.get("outDir")}get pathTemplateControl(){return this.settingsForm.get("pathTemplate")}get filesizeLimitControl(){return this.settingsForm.get("filesizeLimit")}get durationLimitControl(){return this.settingsForm.get("durationLimit")}ngOnChanges(){this.syncStatus=A(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("output",this.settings,this.settingsForm.valueChanges).subscribe(e=>{this.syncStatus=Object.assign(Object.assign({},this.syncStatus),B(e)),this.changeDetector.markForCheck()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(l.qu),t.Y36(t.sBO),t.Y36(Q))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-output-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:27,vars:17,consts:[["nz-form","",3,"formGroup"],[1,"setting-item","actionable",3,"click"],[1,"setting-label"],[3,"nzWarningTip","nzValidateStatus"],[1,"setting-value"],[3,"value","confirm"],["outDirEditDialog",""],["pathTemplateEditDialog",""],[1,"setting-item"],["nzNoColon","",1,"setting-label",3,"nzTooltipTitle"],[1,"setting-control","select",3,"nzWarningTip","nzValidateStatus"],["formControlName","filesizeLimit",3,"nzOptions"],["formControlName","durationLimit",3,"nzOptions"]],template:function(e,i){if(1&e){const a=t.EpF();t.TgZ(0,"form",0),t.TgZ(1,"nz-form-item",1),t.NdJ("click",function(){return t.CHM(a),t.MAs(8).open()}),t.TgZ(2,"nz-form-label",2),t._uU(3,"\u4fdd\u5b58\u4f4d\u7f6e"),t.qZA(),t.TgZ(4,"nz-form-control",3),t.TgZ(5,"nz-form-text",4),t._uU(6),t.qZA(),t.TgZ(7,"app-outdir-edit-dialog",5,6),t.NdJ("confirm",function(r){return i.outDirControl.setValue(r)}),t.qZA(),t.qZA(),t.qZA(),t.TgZ(9,"nz-form-item",1),t.NdJ("click",function(){return t.CHM(a),t.MAs(16).open()}),t.TgZ(10,"nz-form-label",2),t._uU(11,"\u8def\u5f84\u6a21\u677f"),t.qZA(),t.TgZ(12,"nz-form-control",3),t.TgZ(13,"nz-form-text",4),t._uU(14),t.qZA(),t.TgZ(15,"app-path-template-edit-dialog",5,7),t.NdJ("confirm",function(r){return i.pathTemplateControl.setValue(r)}),t.qZA(),t.qZA(),t.qZA(),t.TgZ(17,"nz-form-item",8),t.TgZ(18,"nz-form-label",9),t._uU(19,"\u5927\u5c0f\u9650\u5236"),t.qZA(),t.TgZ(20,"nz-form-control",10),t._UZ(21,"nz-select",11),t.qZA(),t.qZA(),t.TgZ(22,"nz-form-item",8),t.TgZ(23,"nz-form-label",9),t._uU(24,"\u65f6\u957f\u9650\u5236"),t.qZA(),t.TgZ(25,"nz-form-control",10),t._UZ(26,"nz-select",12),t.qZA(),t.qZA(),t.qZA()}2&e&&(t.Q6J("formGroup",i.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.outDir?i.outDirControl:"warning"),t.xp6(2),t.hij("",i.outDirControl.value," "),t.xp6(1),t.Q6J("value",i.outDirControl.value),t.xp6(5),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.pathTemplate?i.pathTemplateControl:"warning"),t.xp6(2),t.hij("",i.pathTemplateControl.value," "),t.xp6(1),t.Q6J("value",i.pathTemplateControl.value),t.xp6(3),t.Q6J("nzTooltipTitle",i.splitFileTip),t.xp6(2),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.filesizeLimit?i.filesizeLimitControl:"warning"),t.xp6(1),t.Q6J("nzOptions",i.filesizeLimitOptions),t.xp6(2),t.Q6J("nzTooltipTitle",i.splitFileTip),t.xp6(2),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.durationLimit?i.durationLimitControl:"warning"),t.xp6(1),t.Q6J("nzOptions",i.durationLimitOptions))},directives:[l._Y,l.JL,m.Lr,l.sg,v.SK,m.Nx,v.t3,m.iK,m.Fd,m.EF,ps,zs,U.Vq,l.JJ,l.u],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}"],changeDetection:0}),n})(),vs=(()=>{class n{constructor(e,i,a){this.changeDetector=i,this.settingsSyncService=a,this.syncFailedWarningTip=O.yT,this.qualityOptions=(0,_t.Z)(O.O6),this.timeoutOptions=(0,_t.Z)(O.D4),this.bufferOptions=(0,_t.Z)(O.Rc),this.settingsForm=e.group({qualityNumber:[""],readTimeout:[""],bufferSize:[""]})}get qualityNumberControl(){return this.settingsForm.get("qualityNumber")}get readTimeoutControl(){return this.settingsForm.get("readTimeout")}get bufferSizeControl(){return this.settingsForm.get("bufferSize")}ngOnChanges(){this.syncStatus=A(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("recorder",this.settings,this.settingsForm.valueChanges).subscribe(e=>{this.syncStatus=Object.assign(Object.assign({},this.syncStatus),B(e)),this.changeDetector.markForCheck()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(l.qu),t.Y36(t.sBO),t.Y36(Q))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-recorder-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:16,vars:10,consts:[["nz-form","",3,"formGroup"],[1,"setting-item"],["nzNoColon","","nzTooltipTitle","\u6240\u9009\u753b\u8d28\u4e0d\u5b58\u5728\u5c06\u4ee5\u539f\u753b\u4ee3\u66ff",1,"setting-label"],[1,"setting-control","select",3,"nzWarningTip","nzValidateStatus"],["formControlName","qualityNumber",3,"nzOptions"],["nzNoColon","","nzTooltipTitle","\u8d85\u65f6\u65f6\u95f4\u8bbe\u7f6e\u5f97\u6bd4\u8f83\u957f\u76f8\u5bf9\u4e0d\u5bb9\u6613\u56e0\u7f51\u7edc\u4e0d\u7a33\u5b9a\u800c\u51fa\u73b0\u6d41\u4e2d\u65ad\uff0c\u4f46\u662f\u4e00\u65e6\u51fa\u73b0\u4e2d\u65ad\u5c31\u65e0\u6cd5\u5b9e\u73b0\u65e0\u7f1d\u62fc\u63a5\u4e14\u6f0f\u5f55\u65f6\u957f\u8d8a\u957f\u3002",1,"setting-label"],["formControlName","readTimeout",3,"nzOptions"],["nzNoColon","","nzTooltipTitle","\u786c\u76d8\u5199\u5165\u7f13\u51b2\u8bbe\u7f6e\u5f97\u6bd4\u8f83\u5927\u53ef\u4ee5\u51cf\u5c11\u5bf9\u786c\u76d8\u7684\u5199\u5165\uff0c\u4f46\u9700\u8981\u5360\u7528\u66f4\u591a\u7684\u5185\u5b58\u3002",1,"setting-label"],["formControlName","bufferSize",3,"nzOptions"]],template:function(e,i){1&e&&(t.TgZ(0,"form",0),t.TgZ(1,"nz-form-item",1),t.TgZ(2,"nz-form-label",2),t._uU(3,"\u753b\u8d28"),t.qZA(),t.TgZ(4,"nz-form-control",3),t._UZ(5,"nz-select",4),t.qZA(),t.qZA(),t.TgZ(6,"nz-form-item",1),t.TgZ(7,"nz-form-label",5),t._uU(8,"\u6570\u636e\u8bfb\u53d6\u8d85\u65f6"),t.qZA(),t.TgZ(9,"nz-form-control",3),t._UZ(10,"nz-select",6),t.qZA(),t.qZA(),t.TgZ(11,"nz-form-item",1),t.TgZ(12,"nz-form-label",7),t._uU(13,"\u786c\u76d8\u5199\u5165\u7f13\u51b2"),t.qZA(),t.TgZ(14,"nz-form-control",3),t._UZ(15,"nz-select",8),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.Q6J("formGroup",i.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.qualityNumber?i.qualityNumberControl:"warning"),t.xp6(1),t.Q6J("nzOptions",i.qualityOptions),t.xp6(4),t.Q6J("nzWarningTip",i.syncStatus.readTimeout?"\u65e0\u7f1d\u62fc\u63a5\u4f1a\u5931\u6548\uff01":i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.readTimeout&&i.readTimeoutControl.value<=3?i.readTimeoutControl:"warning"),t.xp6(1),t.Q6J("nzOptions",i.timeoutOptions),t.xp6(4),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.bufferSize?i.bufferSizeControl:"warning"),t.xp6(1),t.Q6J("nzOptions",i.bufferOptions))},directives:[l._Y,l.JL,m.Lr,l.sg,v.SK,m.Nx,v.t3,m.iK,m.Fd,U.Vq,l.JJ,l.u],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}"],changeDetection:0}),n})(),pt=(()=>{class n{constructor(){}get actionable(){var e;return(null===(e=this.directive)||void 0===e?void 0:e.valueAccessor)instanceof W.i}onClick(e){var i;e.target===e.currentTarget&&(e.preventDefault(),e.stopPropagation(),(null===(i=this.directive)||void 0===i?void 0:i.valueAccessor)instanceof W.i&&this.directive.control.setValue(!this.directive.control.value))}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275dir=t.lG2({type:n,selectors:[["","appSwitchActionable",""]],contentQueries:function(e,i,a){if(1&e&&t.Suo(a,l.u,5),2&e){let s;t.iGM(s=t.CRH())&&(i.directive=s.first)}},hostVars:2,hostBindings:function(e,i){1&e&&t.NdJ("click",function(s){return i.onClick(s)}),2&e&&t.ekj("actionable",i.actionable)}}),n})(),xs=(()=>{class n{constructor(e,i,a){this.changeDetector=i,this.settingsSyncService=a,this.syncFailedWarningTip=O.yT,this.settingsForm=e.group({danmuUname:[""]})}get danmuUnameControl(){return this.settingsForm.get("danmuUname")}ngOnChanges(){this.syncStatus=A(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("danmaku",this.settings,this.settingsForm.valueChanges).subscribe(e=>{this.syncStatus=Object.assign(Object.assign({},this.syncStatus),B(e)),this.changeDetector.markForCheck()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(l.qu),t.Y36(t.sBO),t.Y36(Q))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-danmaku-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:6,vars:3,consts:[["nz-form","",3,"formGroup"],["appSwitchActionable","",1,"setting-item"],["nzNoColon","","nzTooltipTitle","\u53d1\u9001\u8005: \u5f39\u5e55\u5185\u5bb9",1,"setting-label"],[1,"setting-control","switch",3,"nzWarningTip","nzValidateStatus"],["formControlName","danmuUname"]],template:function(e,i){1&e&&(t.TgZ(0,"form",0),t.TgZ(1,"nz-form-item",1),t.TgZ(2,"nz-form-label",2),t._uU(3,"\u5f39\u5e55\u52a0\u7528\u6237\u540d"),t.qZA(),t.TgZ(4,"nz-form-control",3),t._UZ(5,"nz-switch",4),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.Q6J("formGroup",i.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.danmuUname?i.danmuUnameControl:"warning"))},directives:[l._Y,l.JL,m.Lr,l.sg,v.SK,m.Nx,pt,v.t3,m.iK,m.Fd,W.i,l.JJ,l.u],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}"],changeDetection:0}),n})();function bs(n,o){1&n&&(t.TgZ(0,"p"),t._uU(1," \u81ea\u52a8: \u8f6c\u6362\u6210\u529f\u624d\u4f1a\u5220\u9664\u6e90\u6587\u4ef6"),t._UZ(2,"br"),t._uU(3," \u4ece\u4e0d: \u8f6c\u6362\u540e\u4fdd\u7559\u6e90\u6587\u4ef6"),t._UZ(4,"br"),t.qZA())}function Ts(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"label",11),t._uU(2),t.qZA(),t.BQk()),2&n){const e=o.$implicit;t.xp6(1),t.Q6J("nzValue",e.value),t.xp6(1),t.Oqu(e.label)}}let Os=(()=>{class n{constructor(e,i,a){this.changeDetector=i,this.settingsSyncService=a,this.deleteStrategies=O.rc,this.syncFailedWarningTip=O.yT,this.settingsForm=e.group({remuxToMp4:[""],deleteSource:[""]})}get remuxToMp4Control(){return this.settingsForm.get("remuxToMp4")}get deleteSourceControl(){return this.settingsForm.get("deleteSource")}ngOnChanges(){this.syncStatus=A(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("postprocessing",this.settings,this.settingsForm.valueChanges).subscribe(e=>{this.syncStatus=Object.assign(Object.assign({},this.syncStatus),B(e)),this.changeDetector.markForCheck()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(l.qu),t.Y36(t.sBO),t.Y36(Q))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-post-processing-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:14,vars:8,consts:[["nz-form","",3,"formGroup"],["appSwitchActionable","",1,"setting-item"],["nzNoColon","","nzTooltipTitle","\u8c03\u7528 ffmpeg \u8fdb\u884c\u8f6c\u6362\uff0c\u9700\u8981\u5b89\u88c5 ffmpeg \u3002",1,"setting-label"],[1,"setting-control","switch",3,"nzWarningTip","nzValidateStatus"],["formControlName","remuxToMp4"],[1,"setting-item"],["nzNoColon","",1,"setting-label",3,"nzTooltipTitle"],["deleteSourceTip",""],[1,"setting-control","radio",3,"nzWarningTip","nzValidateStatus"],["formControlName","deleteSource",3,"nzDisabled"],[4,"ngFor","ngForOf"],["nz-radio-button","",3,"nzValue"]],template:function(e,i){if(1&e&&(t.TgZ(0,"form",0),t.TgZ(1,"nz-form-item",1),t.TgZ(2,"nz-form-label",2),t._uU(3,"FLV \u8f6c MP4"),t.qZA(),t.TgZ(4,"nz-form-control",3),t._UZ(5,"nz-switch",4),t.qZA(),t.qZA(),t.TgZ(6,"nz-form-item",5),t.TgZ(7,"nz-form-label",6),t._uU(8,"\u6e90\u6587\u4ef6\u5220\u9664\u7b56\u7565"),t.qZA(),t.YNc(9,bs,5,0,"ng-template",null,7,t.W1O),t.TgZ(11,"nz-form-control",8),t.TgZ(12,"nz-radio-group",9),t.YNc(13,Ts,3,2,"ng-container",10),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&e){const a=t.MAs(10);t.Q6J("formGroup",i.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.remuxToMp4?i.remuxToMp4Control:"warning"),t.xp6(3),t.Q6J("nzTooltipTitle",a),t.xp6(4),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.deleteSource?i.deleteSourceControl:"warning"),t.xp6(1),t.Q6J("nzDisabled",!i.remuxToMp4Control.value),t.xp6(1),t.Q6J("ngForOf",i.deleteStrategies)}},directives:[l._Y,l.JL,m.Lr,l.sg,v.SK,m.Nx,pt,v.t3,m.iK,m.Fd,W.i,l.JJ,l.u,lt.Dg,d.sg,lt.Of,lt.Bq],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}"],changeDetection:0}),n})(),Ss=(()=>{class n{constructor(e,i,a){this.changeDetector=i,this.settingsSyncService=a,this.syncFailedWarningTip=O.yT,this.intervalOptions=[{label:"1 \u5206\u949f",value:60},{label:"3 \u5206\u949f",value:180},{label:"5 \u5206\u949f",value:300},{label:"10 \u5206\u949f",value:600}],this.thresholdOptions=[{label:"1 GB",value:1024**3},{label:"3 GB",value:1024**3*3},{label:"5 GB",value:1024**3*5},{label:"10 GB",value:1024**3*10}],this.settingsForm=e.group({recycleRecords:[""],checkInterval:[""],spaceThreshold:[""]})}get recycleRecordsControl(){return this.settingsForm.get("recycleRecords")}get checkIntervalControl(){return this.settingsForm.get("checkInterval")}get spaceThresholdControl(){return this.settingsForm.get("spaceThreshold")}ngOnChanges(){this.syncStatus=A(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("space",this.settings,this.settingsForm.valueChanges).subscribe(e=>{this.syncStatus=Object.assign(Object.assign({},this.syncStatus),B(e)),this.changeDetector.markForCheck()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(l.qu),t.Y36(t.sBO),t.Y36(Q))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-disk-space-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:16,vars:9,consts:[["nz-form","",3,"formGroup"],[1,"setting-item"],["nzNoColon","",1,"setting-label"],[1,"setting-control","select",3,"nzWarningTip","nzValidateStatus"],["formControlName","checkInterval",3,"nzOptions"],["formControlName","spaceThreshold",3,"nzOptions"],["appSwitchActionable","",1,"setting-item"],[1,"setting-control","switch",3,"nzWarningTip","nzValidateStatus"],["formControlName","recycleRecords"]],template:function(e,i){1&e&&(t.TgZ(0,"form",0),t.TgZ(1,"nz-form-item",1),t.TgZ(2,"nz-form-label",2),t._uU(3,"\u786c\u76d8\u7a7a\u95f4\u68c0\u6d4b\u95f4\u9694"),t.qZA(),t.TgZ(4,"nz-form-control",3),t._UZ(5,"nz-select",4),t.qZA(),t.qZA(),t.TgZ(6,"nz-form-item",1),t.TgZ(7,"nz-form-label",2),t._uU(8,"\u786c\u76d8\u7a7a\u95f4\u68c0\u6d4b\u9608\u503c"),t.qZA(),t.TgZ(9,"nz-form-control",3),t._UZ(10,"nz-select",5),t.qZA(),t.qZA(),t.TgZ(11,"nz-form-item",6),t.TgZ(12,"nz-form-label",2),t._uU(13,"\u7a7a\u95f4\u4e0d\u8db3\u5220\u9664\u65e7\u5f55\u64ad\u6587\u4ef6"),t.qZA(),t.TgZ(14,"nz-form-control",7),t._UZ(15,"nz-switch",8),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.Q6J("formGroup",i.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.checkInterval?i.checkIntervalControl:"warning"),t.xp6(1),t.Q6J("nzOptions",i.intervalOptions),t.xp6(4),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.spaceThreshold?i.spaceThresholdControl:"warning"),t.xp6(1),t.Q6J("nzOptions",i.thresholdOptions),t.xp6(4),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.recycleRecords?i.recycleRecordsControl:"warning"))},directives:[l._Y,l.JL,m.Lr,l.sg,v.SK,m.Nx,v.t3,m.iK,m.Fd,U.Vq,l.JJ,l.u,pt,W.i],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}"],changeDetection:0}),n})();function ws(n,o){1&n&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 User Agent "),t.BQk())}function Ms(n,o){1&n&&t.YNc(0,ws,2,0,"ng-container",6),2&n&&t.Q6J("ngIf",o.$implicit.hasError("required"))}function ys(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"form",2),t.TgZ(2,"nz-form-item"),t.TgZ(3,"nz-form-control",3),t._UZ(4,"textarea",4),t.YNc(5,Ms,1,1,"ng-template",null,5,t.W1O),t.qZA(),t.qZA(),t.qZA(),t.BQk()),2&n){const e=t.MAs(6),i=t.oxw();t.xp6(1),t.Q6J("formGroup",i.settingsForm),t.xp6(2),t.Q6J("nzWarningTip",i.warningTip)("nzValidateStatus",i.control.valid&&i.control.value.trim()!==i.value?"warning":i.control)("nzErrorTip",e),t.xp6(1),t.Q6J("rows",3)}}let Ps=(()=>{class n{constructor(e,i){this.changeDetector=i,this.value="",this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.warningTip="\u5168\u90e8\u4efb\u52a1\u90fd\u9700\u91cd\u542f\u5f39\u5e55\u5ba2\u6237\u7aef\u624d\u80fd\u751f\u6548\uff0c\u6b63\u5728\u5f55\u5236\u7684\u4efb\u52a1\u53ef\u80fd\u4f1a\u4e22\u5931\u5f39\u5e55\uff01",this.settingsForm=e.group({userAgent:["",[l.kI.required]]})}get control(){return this.settingsForm.get("userAgent")}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.setVisible(!1)}setVisible(e){this.visible=e,this.visibleChange.emit(e),this.changeDetector.markForCheck()}setValue(){this.control.setValue(this.value),this.changeDetector.markForCheck()}handleCancel(){this.cancel.emit(),this.close()}handleConfirm(){this.confirm.emit(this.control.value.trim()),this.close()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(l.qu),t.Y36(t.sBO))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-user-agent-edit-dialog"]],inputs:{value:"value",visible:"visible"},outputs:{visibleChange:"visibleChange",cancel:"cancel",confirm:"confirm"},features:[t.TTD],decls:2,vars:2,consts:[["nzTitle","\u4fee\u6539 User Agent","nzOkDanger","","nzCentered","",3,"nzVisible","nzOkDisabled","nzVisibleChange","nzOnOk","nzOnCancel"],[4,"nzModalContent"],["nz-form","",3,"formGroup"],[3,"nzWarningTip","nzValidateStatus","nzErrorTip"],["required","","nz-input","","formControlName","userAgent",3,"rows"],["errorTip",""],[4,"ngIf"]],template:function(e,i){1&e&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(s){return i.visible=s})("nzOnOk",function(){return i.handleConfirm()})("nzOnCancel",function(){return i.handleCancel()}),t.YNc(1,ys,7,5,"ng-container",1),t.qZA()),2&e&&t.Q6J("nzVisible",i.visible)("nzOkDisabled",i.control.invalid||i.control.value.trim()===i.value)},directives:[I.du,I.Hf,l._Y,l.JL,m.Lr,l.sg,v.SK,m.Nx,v.t3,m.Fd,J.Zp,l.Fj,l.Q7,l.JJ,l.u,d.O5],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}"],changeDetection:0}),n})();function Fs(n,o){if(1&n&&(t.ynx(0),t.TgZ(1,"form",2),t.TgZ(2,"nz-form-item"),t.TgZ(3,"nz-form-control",3),t._UZ(4,"textarea",4),t.qZA(),t.qZA(),t.qZA(),t.BQk()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("formGroup",e.settingsForm),t.xp6(2),t.Q6J("nzWarningTip",e.warningTip)("nzValidateStatus",e.control.valid&&e.control.value.trim()!==e.value?"warning":e.control),t.xp6(1),t.Q6J("rows",5)}}let Ns=(()=>{class n{constructor(e,i){this.changeDetector=i,this.value="",this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.warningTip="\u5168\u90e8\u4efb\u52a1\u90fd\u9700\u91cd\u542f\u5f39\u5e55\u5ba2\u6237\u7aef\u624d\u80fd\u751f\u6548\uff0c\u6b63\u5728\u5f55\u5236\u7684\u4efb\u52a1\u53ef\u80fd\u4f1a\u4e22\u5931\u5f39\u5e55\uff01",this.settingsForm=e.group({cookie:[""]})}get control(){return this.settingsForm.get("cookie")}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.setVisible(!1)}setVisible(e){this.visible=e,this.visibleChange.emit(e),this.changeDetector.markForCheck()}setValue(){this.control.setValue(this.value),this.changeDetector.markForCheck()}handleCancel(){this.cancel.emit(),this.close()}handleConfirm(){this.confirm.emit(this.control.value.trim()),this.close()}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(l.qu),t.Y36(t.sBO))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-cookie-edit-dialog"]],inputs:{value:"value",visible:"visible"},outputs:{visibleChange:"visibleChange",cancel:"cancel",confirm:"confirm"},features:[t.TTD],decls:2,vars:2,consts:[["nzTitle","\u4fee\u6539 Cookie","nzOkDanger","","nzCentered","",3,"nzVisible","nzOkDisabled","nzVisibleChange","nzOnOk","nzOnCancel"],[4,"nzModalContent"],["nz-form","",3,"formGroup"],[3,"nzWarningTip","nzValidateStatus"],["wrap","soft","nz-input","","formControlName","cookie",3,"rows"]],template:function(e,i){1&e&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzVisibleChange",function(s){return i.visible=s})("nzOnOk",function(){return i.handleConfirm()})("nzOnCancel",function(){return i.handleCancel()}),t.YNc(1,Fs,5,4,"ng-container",1),t.qZA()),2&e&&t.Q6J("nzVisible",i.visible)("nzOkDisabled",i.control.invalid||i.control.value.trim()===i.value)},directives:[I.du,I.Hf,l._Y,l.JL,m.Lr,l.sg,v.SK,m.Nx,v.t3,m.Fd,J.Zp,l.Fj,l.JJ,l.u],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}"],changeDetection:0}),n})(),ks=(()=>{class n{constructor(e,i,a){this.changeDetector=i,this.settingsSyncService=a,this.syncFailedWarningTip=O.yT,this.settingsForm=e.group({userAgent:["",[l.kI.required]],cookie:[""]})}get userAgentControl(){return this.settingsForm.get("userAgent")}get cookieControl(){return this.settingsForm.get("cookie")}ngOnChanges(){this.syncStatus=A(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("header",this.settings,this.settingsForm.valueChanges).subscribe(e=>{this.syncStatus=Object.assign(Object.assign({},this.syncStatus),B(e)),this.changeDetector.markForCheck()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(l.qu),t.Y36(t.sBO),t.Y36(Q))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-header-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:17,vars:9,consts:[["nz-form","",3,"formGroup"],[1,"setting-item","actionable",3,"click"],[1,"setting-label"],[3,"nzWarningTip","nzValidateStatus"],[1,"setting-value"],[3,"value","confirm"],["userAgentEditDialog",""],["cookieEditDialog",""]],template:function(e,i){if(1&e){const a=t.EpF();t.TgZ(0,"form",0),t.TgZ(1,"nz-form-item",1),t.NdJ("click",function(){return t.CHM(a),t.MAs(8).open()}),t.TgZ(2,"nz-form-label",2),t._uU(3,"User Agent"),t.qZA(),t.TgZ(4,"nz-form-control",3),t.TgZ(5,"nz-form-text",4),t._uU(6),t.qZA(),t.TgZ(7,"app-user-agent-edit-dialog",5,6),t.NdJ("confirm",function(r){return i.userAgentControl.setValue(r)}),t.qZA(),t.qZA(),t.qZA(),t.TgZ(9,"nz-form-item",1),t.NdJ("click",function(){return t.CHM(a),t.MAs(16).open()}),t.TgZ(10,"nz-form-label",2),t._uU(11,"Cookie"),t.qZA(),t.TgZ(12,"nz-form-control",3),t.TgZ(13,"nz-form-text",4),t._uU(14),t.qZA(),t.TgZ(15,"app-cookie-edit-dialog",5,7),t.NdJ("confirm",function(r){return i.cookieControl.setValue(r)}),t.qZA(),t.qZA(),t.qZA(),t.qZA()}2&e&&(t.Q6J("formGroup",i.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.userAgent?i.userAgentControl:"warning"),t.xp6(2),t.hij("",i.userAgentControl.value," "),t.xp6(1),t.Q6J("value",i.userAgentControl.value),t.xp6(5),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.cookie?i.cookieControl:"warning"),t.xp6(2),t.hij("",i.cookieControl.value," "),t.xp6(1),t.Q6J("value",i.cookieControl.value))},directives:[l._Y,l.JL,m.Lr,l.sg,v.SK,m.Nx,v.t3,m.iK,m.Fd,m.EF,Ps,Ns],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}"],changeDetection:0}),n})();var Ae=g(1801);let Ds=(()=>{class n{constructor(e,i,a){this.changeDetector=i,this.settingsSyncService=a,this.syncFailedWarningTip=O.yT,this.logLevelOptions=[{label:"VERBOSE",value:"NOTSET"},{label:"DEBUG",value:"DEBUG"},{label:"INFO",value:"INFO"},{label:"WARNING",value:"WARNING"},{label:"ERROR",value:"ERROR"},{label:"CRITICAL",value:"CRITICAL"}],this.maxBytesOptions=(0,Ae.Z)(1,11).map(s=>({label:`${s} MB`,value:1048576*s})),this.backupOptions=(0,Ae.Z)(1,31).map(s=>({label:s.toString(),value:s})),this.settingsForm=e.group({consoleLogLevel:[""],maxBytes:[""],backupCount:[""]})}get consoleLogLevelControl(){return this.settingsForm.get("consoleLogLevel")}get maxBytesControl(){return this.settingsForm.get("maxBytes")}get backupCountControl(){return this.settingsForm.get("backupCount")}ngOnChanges(){this.syncStatus=A(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("logging",this.settings,this.settingsForm.valueChanges).subscribe(e=>{this.syncStatus=Object.assign(Object.assign({},this.syncStatus),B(e)),this.changeDetector.markForCheck()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(l.qu),t.Y36(t.sBO),t.Y36(Q))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-logging-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:16,vars:10,consts:[["nz-form","",3,"formGroup"],["appSwitchActionable","",1,"setting-item"],["nzNoColon","",1,"setting-label"],[1,"setting-control","select",3,"nzWarningTip","nzValidateStatus"],["formControlName","consoleLogLevel",3,"nzOptions"],[1,"setting-item"],["formControlName","maxBytes",3,"nzOptions"],["formControlName","backupCount",3,"nzOptions"]],template:function(e,i){1&e&&(t.TgZ(0,"form",0),t.TgZ(1,"nz-form-item",1),t.TgZ(2,"nz-form-label",2),t._uU(3,"\u7ec8\u7aef\u65e5\u5fd7\u8f93\u51fa\u7ea7\u522b"),t.qZA(),t.TgZ(4,"nz-form-control",3),t._UZ(5,"nz-select",4),t.qZA(),t.qZA(),t.TgZ(6,"nz-form-item",5),t.TgZ(7,"nz-form-label",2),t._uU(8,"\u65e5\u5fd7\u6587\u4ef6\u5206\u5272\u5927\u5c0f"),t.qZA(),t.TgZ(9,"nz-form-control",3),t._UZ(10,"nz-select",6),t.qZA(),t.qZA(),t.TgZ(11,"nz-form-item",5),t.TgZ(12,"nz-form-label",2),t._uU(13,"\u65e5\u5fd7\u6587\u4ef6\u5907\u4efd\u6570\u91cf"),t.qZA(),t.TgZ(14,"nz-form-control",3),t._UZ(15,"nz-select",7),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.Q6J("formGroup",i.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.consoleLogLevel?i.consoleLogLevelControl:"warning"),t.xp6(1),t.Q6J("nzOptions",i.logLevelOptions),t.xp6(4),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.maxBytes?i.maxBytesControl:"warning"),t.xp6(1),t.Q6J("nzOptions",i.maxBytesOptions),t.xp6(4),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.backupCount?i.backupCountControl:"warning"),t.xp6(1),t.Q6J("nzOptions",i.backupOptions))},directives:[l._Y,l.JL,m.Lr,l.sg,v.SK,m.Nx,pt,v.t3,m.iK,m.Fd,U.Vq,l.JJ,l.u],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}"],changeDetection:0}),n})(),As=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-notification-settings"]],decls:15,vars:0,consts:[["routerLink","email-notification",1,"setting-item"],[1,"setting-label"],[1,"setting-control"],["nz-icon","","nzType","right"],["routerLink","serverchan-notification",1,"setting-item"],["routerLink","pushplus-notification",1,"setting-item"]],template:function(e,i){1&e&&(t.TgZ(0,"a",0),t.TgZ(1,"span",1),t._uU(2,"\u90ae\u7bb1\u901a\u77e5"),t.qZA(),t.TgZ(3,"span",2),t._UZ(4,"i",3),t.qZA(),t.qZA(),t.TgZ(5,"a",4),t.TgZ(6,"span",1),t._uU(7,"ServerChan \u901a\u77e5"),t.qZA(),t.TgZ(8,"span",2),t._UZ(9,"i",3),t.qZA(),t.qZA(),t.TgZ(10,"a",5),t.TgZ(11,"span",1),t._uU(12,"pushplus \u901a\u77e5"),t.qZA(),t.TgZ(13,"span",2),t._UZ(14,"i",3),t.qZA(),t.qZA())},directives:[M.yS,tt.w,E.Ls],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}"],changeDetection:0}),n})(),Zs=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-webhook-settings"]],decls:5,vars:0,consts:[["routerLink","webhooks",1,"setting-item"],[1,"setting-label"],[1,"setting-control"],["nz-icon","","nzType","right"]],template:function(e,i){1&e&&(t.TgZ(0,"a",0),t.TgZ(1,"span",1),t._uU(2,"Webhooks"),t.qZA(),t.TgZ(3,"span",2),t._UZ(4,"i",3),t.qZA(),t.qZA())},directives:[M.yS,tt.w,E.Ls],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}"],changeDetection:0}),n})();const Is=["innerContent"];let Es=(()=>{class n{constructor(e,i,a,s){this.changeDetector=e,this.route=i,this.logger=a,this.routerScrollService=s}ngOnInit(){this.route.data.subscribe(e=>{this.settings=e.settings,this.changeDetector.markForCheck()})}ngAfterViewInit(){this.innerContent?this.routerScrollService.setCustomViewportToScroll(this.innerContent.nativeElement):this.logger.error("The content element could not be found!")}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.sBO),t.Y36(M.gz),t.Y36(ot.Kf),t.Y36(Ba))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-settings"]],viewQuery:function(e,i){if(1&e&&t.Gf(Is,5),2&e){let a;t.iGM(a=t.CRH())&&(i.innerContent=a.first)}},decls:22,vars:7,consts:[[1,"inner-content"],["innerContent",""],[1,"main-settings","settings-page"],[1,"settings-page-content"],["name","\u6587\u4ef6"],[3,"settings"],["name","\u5f55\u5236"],["name","\u5f39\u5e55"],["name","\u6587\u4ef6\u5904\u7406"],["name","\u786c\u76d8\u7a7a\u95f4"],["name","\u7f51\u7edc\u8bf7\u6c42"],["name","\u65e5\u5fd7"],["name","\u901a\u77e5"],["name","Webhook"]],template:function(e,i){1&e&&(t.TgZ(0,"div",0,1),t.TgZ(2,"div",2),t.TgZ(3,"div",3),t.TgZ(4,"app-page-section",4),t._UZ(5,"app-output-settings",5),t.qZA(),t.TgZ(6,"app-page-section",6),t._UZ(7,"app-recorder-settings",5),t.qZA(),t.TgZ(8,"app-page-section",7),t._UZ(9,"app-danmaku-settings",5),t.qZA(),t.TgZ(10,"app-page-section",8),t._UZ(11,"app-post-processing-settings",5),t.qZA(),t.TgZ(12,"app-page-section",9),t._UZ(13,"app-disk-space-settings",5),t.qZA(),t.TgZ(14,"app-page-section",10),t._UZ(15,"app-header-settings",5),t.qZA(),t.TgZ(16,"app-page-section",11),t._UZ(17,"app-logging-settings",5),t.qZA(),t.TgZ(18,"app-page-section",12),t._UZ(19,"app-notification-settings"),t.qZA(),t.TgZ(20,"app-page-section",13),t._UZ(21,"app-webhook-settings"),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.xp6(5),t.Q6J("settings",i.settings.output),t.xp6(2),t.Q6J("settings",i.settings.recorder),t.xp6(2),t.Q6J("settings",i.settings.danmaku),t.xp6(2),t.Q6J("settings",i.settings.postprocessing),t.xp6(2),t.Q6J("settings",i.settings.space),t.xp6(2),t.Q6J("settings",i.settings.header),t.xp6(2),t.Q6J("settings",i.settings.logging))},directives:[ft.g,Cs,vs,xs,Os,Ss,ks,Ds,As,Zs],styles:[".inner-content[_ngcontent-%COMP%]{height:100%;width:100%;position:relative;display:block;margin:0;padding:1rem;background:#f1f3f4;overflow:auto}.settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}"]}),n})();var Bs=g(3283),Qs=g(2892),Ze=g(8598),Ls=g(6641),Ie=g(692),Js=g(1968);const $s=function(n,o,e,i){if(!(0,Ie.Z)(n))return n;for(var a=-1,s=(o=(0,Ze.Z)(o,n)).length,r=s-1,c=n;null!=c&&++a<s;){var p=(0,Js.Z)(o[a]),z=e;if("__proto__"===p||"constructor"===p||"prototype"===p)return n;if(a!=r){var C=c[p];void 0===(z=i?i(C,p,c):void 0)&&(z=(0,Ie.Z)(C)?C:(0,Ls.Z)(o[a+1])?[]:{})}(0,Qs.Z)(c,p,z),c=c[p]}return n};var qs=g(4085);const Us=function(n,o){return function(n,o,e){for(var i=-1,a=o.length,s={};++i<a;){var r=o[i],c=(0,Bs.Z)(n,r);e(c,r)&&$s(s,(0,Ze.Z)(r,n),c)}return s}(n,o,function(e,i){return(0,qs.Z)(n,i)})};var Hs=g(2981),Ee=g(1908),Be=Ee.Z?Ee.Z.isConcatSpreadable:void 0;const Xs=function(n){return(0,Vt.Z)(n)||(0,Ne.Z)(n)||!!(Be&&n&&n[Be])},js=function Qe(n,o,e,i,a){var s=-1,r=n.length;for(e||(e=Xs),a||(a=[]);++s<r;){var c=n[s];o>0&&e(c)?o>1?Qe(c,o-1,e,i,a):(0,Hs.Z)(a,c):i||(a[a.length]=c)}return a},tr=function(n){return null!=n&&n.length?js(n,1):[]},nr=function(n,o,e){switch(e.length){case 0:return n.call(o);case 1:return n.call(o,e[0]);case 2:return n.call(o,e[0],e[1]);case 3:return n.call(o,e[0],e[1],e[2])}return n.apply(o,e)};var Le=Math.max;const sr=function(n){return function(){return n}};var n,o,e,Je=g(9129),rr=g(5042),dr=Date.now;const hr=(n=Je.Z?function(n,o){return(0,Je.Z)(n,"toString",{configurable:!0,enumerable:!1,value:sr(o),writable:!0})}:rr.Z,o=0,e=0,function(){var i=dr(),a=16-(i-e);if(e=i,a>0){if(++o>=800)return arguments[0]}else o=0;return n.apply(void 0,arguments)}),Y=function(n){return hr(function(n,o,e){return o=Le(void 0===o?n.length-1:o,0),function(){for(var i=arguments,a=-1,s=Le(i.length-o,0),r=Array(s);++a<s;)r[a]=i[o+a];a=-1;for(var c=Array(o+1);++a<o;)c[a]=i[a];return c[o]=e(r),nr(n,this,c)}}(n,void 0,tr),n+"")}(function(n,o){return null==n?{}:Us(n,o)});var q=g(8760);let Ct=(()=>{class n{constructor(e){this.templateRef=e}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.Rgc))},n.\u0275dir=t.lG2({type:n,selectors:[["","appSubPageContent",""]]}),n})();function zr(n,o){if(1&n&&t._UZ(0,"nz-spin",2),2&n){const e=t.oxw();t.Q6J("nzSize","large")("nzSpinning",e.loading)}}function Cr(n,o){if(1&n&&(t.TgZ(0,"div",6),t.GkF(1,7),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("ngTemplateOutlet",e.content.templateRef)}}function vr(n,o){if(1&n&&(t.TgZ(0,"div",3),t._UZ(1,"nz-page-header",4),t.YNc(2,Cr,2,1,"div",5),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("nzTitle",e.pageTitle)("nzGhost",!1),t.xp6(1),t.Q6J("ngIf",e.content)}}let yt=(()=>{class n{constructor(){this.pageTitle="",this.loading=!1}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-sub-page"]],contentQueries:function(e,i,a){if(1&e&&t.Suo(a,Ct,5),2&e){let s;t.iGM(s=t.CRH())&&(i.content=s.first)}},inputs:{pageTitle:"pageTitle",loading:"loading"},decls:3,vars:2,consts:[["class","spinner",3,"nzSize","nzSpinning",4,"ngIf","ngIfElse"],["elseBlock",""],[1,"spinner",3,"nzSize","nzSpinning"],[1,"sub-page"],["nzBackIcon","",1,"page-header",3,"nzTitle","nzGhost"],["class","page-content",4,"ngIf"],[1,"page-content"],[3,"ngTemplateOutlet"]],template:function(e,i){if(1&e&&(t.YNc(0,zr,1,2,"nz-spin",0),t.YNc(1,vr,3,3,"ng-template",null,1,t.W1O)),2&e){const a=t.MAs(2);t.Q6J("ngIf",i.loading)("ngIfElse",a)}},directives:[d.O5,st.W,Ht.$O,d.tP],styles:["[_nghost-%COMP%]{height:100%;width:100%;position:relative;display:block;margin:0;padding:1rem;background:#f1f3f4;overflow:auto}.sub-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.spinner[_ngcontent-%COMP%]{height:100%;width:100%}[_nghost-%COMP%]{padding-top:0;padding-bottom:0}.sub-page[_ngcontent-%COMP%] .page-header[_ngcontent-%COMP%]{margin-top:3px;margin-bottom:1em}.sub-page[_ngcontent-%COMP%] .page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}"],changeDetection:0}),n})(),Yt=(()=>{class n{constructor(e,i,a){this.changeDetector=i,this.settingsSyncService=a,this.syncFailedWarningTip=O.yT,this.settingsForm=e.group({enabled:[""]})}get enabledControl(){return this.settingsForm.get("enabled")}ngOnChanges(){this.syncStatus=A(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings(this.keyOfSettings,this.settings,this.settingsForm.valueChanges).subscribe(e=>{this.syncStatus=Object.assign(Object.assign({},this.syncStatus),B(e)),this.changeDetector.markForCheck()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(l.qu),t.Y36(t.sBO),t.Y36(Q))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-notifier-settings"]],inputs:{settings:"settings",keyOfSettings:"keyOfSettings"},features:[t.TTD],decls:6,vars:3,consts:[["nz-form","",3,"formGroup"],["appSwitchActionable","",1,"setting-item"],["nzNoColon","",1,"setting-label"],[1,"setting-control","switch",3,"nzWarningTip","nzValidateStatus"],["formControlName","enabled"]],template:function(e,i){1&e&&(t.TgZ(0,"form",0),t.TgZ(1,"nz-form-item",1),t.TgZ(2,"nz-form-label",2),t._uU(3,"\u5141\u8bb8\u901a\u77e5"),t.qZA(),t.TgZ(4,"nz-form-control",3),t._UZ(5,"nz-switch",4),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.Q6J("formGroup",i.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.enabled?i.enabledControl:"warning"))},directives:[l._Y,l.JL,m.Lr,l.sg,v.SK,m.Nx,pt,v.t3,m.iK,m.Fd,W.i,l.JJ,l.u],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}"],changeDetection:0}),n})();var Re=g(9459),$e=g(4022),xr=g(2733),br=g(6165);function qt(n){return(0,$e.z)((0,R.h)(()=>n.valid),(0,Jt.b)(300),(0,$e.z)((0,b.U)(n=>(0,Re.Z)(n,(o,e,i)=>{o[i]=function(n){return"string"==typeof n||!(0,Vt.Z)(n)&&(0,br.Z)(n)&&"[object String]"==(0,xr.Z)(n)}(e)?e.trim():e},{}))),(0,ct.x)(ke.Z))}function Mr(n,o){1&n&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u90ae\u7bb1\u5730\u5740\uff01 "),t.BQk())}function yr(n,o){1&n&&(t.ynx(0),t._uU(1," \u90ae\u7bb1\u5730\u5740\u65e0\u6548! "),t.BQk())}function Pr(n,o){if(1&n&&(t.YNc(0,Mr,2,0,"ng-container",17),t.YNc(1,yr,2,0,"ng-container",17)),2&n){const e=o.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("email"))}}function Fr(n,o){1&n&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u6388\u6743\u7801\uff01 "),t.BQk())}function Nr(n,o){1&n&&t.YNc(0,Fr,2,0,"ng-container",17),2&n&&t.Q6J("ngIf",o.$implicit.hasError("required"))}function kr(n,o){1&n&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 SMTP \u4e3b\u673a\uff01 "),t.BQk())}function Dr(n,o){1&n&&t.YNc(0,kr,2,0,"ng-container",17),2&n&&t.Q6J("ngIf",o.$implicit.hasError("required"))}function Ar(n,o){1&n&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 SMTP \u7aef\u53e3\uff01 "),t.BQk())}function Zr(n,o){1&n&&(t.ynx(0),t._uU(1," SMTP \u7aef\u53e3\u65e0\u6548\uff01 "),t.BQk())}function Ir(n,o){if(1&n&&(t.YNc(0,Ar,2,0,"ng-container",17),t.YNc(1,Zr,2,0,"ng-container",17)),2&n){const e=o.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}function Er(n,o){1&n&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165\u90ae\u7bb1\u5730\u5740\uff01 "),t.BQk())}function Br(n,o){1&n&&(t.ynx(0),t._uU(1," \u90ae\u7bb1\u5730\u5740\u65e0\u6548! "),t.BQk())}function Qr(n,o){if(1&n&&(t.YNc(0,Er,2,0,"ng-container",17),t.YNc(1,Br,2,0,"ng-container",17)),2&n){const e=o.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("email"))}}let Lr=(()=>{class n{constructor(e,i,a){this.changeDetector=i,this.settingsSyncService=a,this.syncFailedWarningTip=O.yT,this.settingsForm=e.group({srcAddr:["",[l.kI.required,l.kI.email]],dstAddr:["",[l.kI.required,l.kI.email]],authCode:["",[l.kI.required]],smtpHost:["",[l.kI.required]],smtpPort:["",[l.kI.required,l.kI.pattern(/\d+/)]]})}get srcAddrControl(){return this.settingsForm.get("srcAddr")}get dstAddrControl(){return this.settingsForm.get("dstAddr")}get authCodeControl(){return this.settingsForm.get("authCode")}get smtpHostControl(){return this.settingsForm.get("smtpHost")}get smtpPortControl(){return this.settingsForm.get("smtpPort")}ngOnChanges(){this.syncStatus=A(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("emailNotification",this.settings,this.settingsForm.valueChanges.pipe(qt(this.settingsForm),(0,b.U)(e=>(0,Re.Z)(e,(i,a,s)=>{a="smtpPort"===s?parseInt(a):a,Reflect.set(i,s,a)},{})))).subscribe(e=>{this.syncStatus=Object.assign(Object.assign({},this.syncStatus),B(e)),this.changeDetector.markForCheck()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(l.qu),t.Y36(t.sBO),t.Y36(Q))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-email-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:36,vars:16,consts:[["nz-form","",3,"formGroup"],[1,"setting-item"],["nzFor","srcAddr","nzNoColon","","nzRequired","",1,"setting-label"],["nzHasFeedback","",1,"setting-control","input",3,"nzErrorTip","nzWarningTip","nzValidateStatus"],["id","srcAddr","type","email","placeholder","\u53d1\u9001\u901a\u77e5\u7684\u90ae\u7bb1\u5730\u5740","required","","nz-input","","formControlName","srcAddr"],["emailErrorTip",""],["nzFor","authCode","nzNoColon","","nzRequired","",1,"setting-label"],["id","authCode","type","text","placeholder","\u53d1\u9001\u90ae\u7bb1\u7684 SMTP \u6388\u6743\u7801","required","","nz-input","","formControlName","authCode"],["authCodeErrorTip",""],["nzFor","smtpHost","nzNoColon","","nzRequired","",1,"setting-label"],["id","smtpHost","type","text","placeholder","\u53d1\u9001\u90ae\u7bb1\u7684 SMTP \u4e3b\u673a\uff0c\u4f8b\u5982\uff1asmtp.163.com \u3002","required","","nz-input","","formControlName","smtpHost"],["smtpHostErrorTip",""],["nzFor","smtpPort","nzNoColon","","nzRequired","",1,"setting-label"],["id","smtpPort","type","text","pattern","\\d+","placeholder","\u53d1\u9001\u90ae\u7bb1\u7684 SMTP \u4e3b\u673a\u7aef\u53e3\uff0c\u901a\u5e38\u4e3a 465 \u3002","required","","nz-input","","formControlName","smtpPort"],["smtpPortErrorTip",""],["nzFor","dstAddr","nzNoColon","","nzRequired","",1,"setting-label"],["id","dstAddr","type","email","placeholder","\u63a5\u6536\u901a\u77e5\u7684\u90ae\u7bb1\u5730\u5740\uff0c\u53ef\u4ee5\u548c\u53d1\u9001\u90ae\u7bb1\u76f8\u540c\u5b9e\u73b0\u81ea\u53d1\u81ea\u6536\u3002","required","","nz-input","","formControlName","dstAddr"],[4,"ngIf"]],template:function(e,i){if(1&e&&(t.TgZ(0,"form",0),t.TgZ(1,"nz-form-item",1),t.TgZ(2,"nz-form-label",2),t._uU(3,"\u53d1\u9001\u90ae\u7bb1"),t.qZA(),t.TgZ(4,"nz-form-control",3),t._UZ(5,"input",4),t.YNc(6,Pr,2,2,"ng-template",null,5,t.W1O),t.qZA(),t.qZA(),t.TgZ(8,"nz-form-item",1),t.TgZ(9,"nz-form-label",6),t._uU(10,"\u6388\u6743\u7801"),t.qZA(),t.TgZ(11,"nz-form-control",3),t._UZ(12,"input",7),t.YNc(13,Nr,1,1,"ng-template",null,8,t.W1O),t.qZA(),t.qZA(),t.TgZ(15,"nz-form-item",1),t.TgZ(16,"nz-form-label",9),t._uU(17,"SMTP \u4e3b\u673a"),t.qZA(),t.TgZ(18,"nz-form-control",3),t._UZ(19,"input",10),t.YNc(20,Dr,1,1,"ng-template",null,11,t.W1O),t.qZA(),t.qZA(),t.TgZ(22,"nz-form-item",1),t.TgZ(23,"nz-form-label",12),t._uU(24,"SMTP \u7aef\u53e3"),t.qZA(),t.TgZ(25,"nz-form-control",3),t._UZ(26,"input",13),t.YNc(27,Ir,2,2,"ng-template",null,14,t.W1O),t.qZA(),t.qZA(),t.TgZ(29,"nz-form-item",1),t.TgZ(30,"nz-form-label",15),t._uU(31,"\u63a5\u6536\u90ae\u7bb1"),t.qZA(),t.TgZ(32,"nz-form-control",3),t._UZ(33,"input",16),t.YNc(34,Qr,2,2,"ng-template",null,5,t.W1O),t.qZA(),t.qZA(),t.qZA()),2&e){const a=t.MAs(7),s=t.MAs(14),r=t.MAs(21),c=t.MAs(28);t.Q6J("formGroup",i.settingsForm),t.xp6(4),t.Q6J("nzErrorTip",a)("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.srcAddrControl.valid&&!i.syncStatus.srcAddr?"warning":i.srcAddrControl),t.xp6(7),t.Q6J("nzErrorTip",s)("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.authCodeControl.valid&&!i.syncStatus.authCode?"warning":i.authCodeControl),t.xp6(7),t.Q6J("nzErrorTip",r)("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.smtpHostControl.valid&&!i.syncStatus.smtpHost?"warning":i.smtpHostControl),t.xp6(7),t.Q6J("nzErrorTip",c)("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.smtpPortControl.valid&&!i.syncStatus.smtpPort?"warning":i.smtpPortControl),t.xp6(7),t.Q6J("nzErrorTip",a)("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.dstAddrControl.valid&&!i.syncStatus.dstAddr?"warning":i.dstAddrControl)}},directives:[l._Y,l.JL,m.Lr,l.sg,v.SK,m.Nx,v.t3,m.iK,m.Fd,J.Zp,l.Fj,l.Q7,l.JJ,l.u,l.c5,d.O5],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}.setting-label[_ngcontent-%COMP%]{max-width:6em!important;width:6em!important}"],changeDetection:0}),n})(),Wt=(()=>{class n{constructor(e,i,a){this.changeDetector=i,this.settingsSyncService=a,this.syncFailedWarningTip=O.yT,this.settingsForm=e.group({notifyBegan:[""],notifyEnded:[""],notifyError:[""],notifySpace:[""]})}get notifyBeganControl(){return this.settingsForm.get("notifyBegan")}get notifyEndedControl(){return this.settingsForm.get("notifyEnded")}get notifyErrorControl(){return this.settingsForm.get("notifyError")}get notifySpaceControl(){return this.settingsForm.get("notifySpace")}ngOnChanges(){this.syncStatus=A(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings(this.keyOfSettings,this.settingsForm.value,this.settingsForm.valueChanges).subscribe(e=>{this.syncStatus=Object.assign(Object.assign({},this.syncStatus),B(e)),this.changeDetector.markForCheck()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(l.qu),t.Y36(t.sBO),t.Y36(Q))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-event-settings"]],inputs:{settings:"settings",keyOfSettings:"keyOfSettings"},features:[t.TTD],decls:21,vars:9,consts:[["nz-form","",3,"formGroup"],["appSwitchActionable","",1,"setting-item"],["nzNoColon","",1,"setting-label"],[1,"setting-control","switch",3,"nzWarningTip","nzValidateStatus"],["formControlName","notifyBegan"],["formControlName","notifyEnded"],["formControlName","notifyError"],["formControlName","notifySpace"]],template:function(e,i){1&e&&(t.TgZ(0,"form",0),t.TgZ(1,"nz-form-item",1),t.TgZ(2,"nz-form-label",2),t._uU(3,"\u5f00\u64ad\u53d1\u9001\u901a\u77e5"),t.qZA(),t.TgZ(4,"nz-form-control",3),t._UZ(5,"nz-switch",4),t.qZA(),t.qZA(),t.TgZ(6,"nz-form-item",1),t.TgZ(7,"nz-form-label",2),t._uU(8,"\u4e0b\u64ad\u53d1\u9001\u901a\u77e5"),t.qZA(),t.TgZ(9,"nz-form-control",3),t._UZ(10,"nz-switch",5),t.qZA(),t.qZA(),t.TgZ(11,"nz-form-item",1),t.TgZ(12,"nz-form-label",2),t._uU(13,"\u51fa\u9519\u53d1\u9001\u901a\u77e5"),t.qZA(),t.TgZ(14,"nz-form-control",3),t._UZ(15,"nz-switch",6),t.qZA(),t.qZA(),t.TgZ(16,"nz-form-item",1),t.TgZ(17,"nz-form-label",2),t._uU(18,"\u7a7a\u95f4\u4e0d\u8db3\u53d1\u9001\u901a\u77e5"),t.qZA(),t.TgZ(19,"nz-form-control",3),t._UZ(20,"nz-switch",7),t.qZA(),t.qZA(),t.qZA()),2&e&&(t.Q6J("formGroup",i.settingsForm),t.xp6(4),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.notifyBegan?i.notifyBeganControl:"warning"),t.xp6(5),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.notifyEnded?i.notifyEndedControl:"warning"),t.xp6(5),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.notifyError?i.notifyErrorControl:"warning"),t.xp6(5),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.syncStatus.notifySpace?i.notifySpaceControl:"warning"))},directives:[l._Y,l.JL,m.Lr,l.sg,v.SK,m.Nx,pt,v.t3,m.iK,m.Fd,W.i,l.JJ,l.u],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}"],changeDetection:0}),n})();function Jr(n,o){if(1&n&&(t.TgZ(0,"app-page-section"),t._UZ(1,"app-notifier-settings",2),t.qZA(),t.TgZ(2,"app-page-section",3),t._UZ(3,"app-email-settings",4),t.qZA(),t.TgZ(4,"app-page-section",5),t._UZ(5,"app-event-settings",2),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("settings",e.notifierSettings),t.xp6(2),t.Q6J("settings",e.emailSettings),t.xp6(2),t.Q6J("settings",e.notificationSettings)}}let Rr=(()=>{class n{constructor(e,i){this.changeDetector=e,this.route=i}ngOnInit(){this.route.data.subscribe(e=>{const i=e.settings;this.emailSettings=Y(i,q.gP),this.notifierSettings=Y(i,q._1),this.notificationSettings=Y(i,q.X),this.changeDetector.markForCheck()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.sBO),t.Y36(M.gz))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-email-notification-settings"]],decls:2,vars:0,consts:[["pageTitle","\u90ae\u4ef6\u901a\u77e5"],["appSubPageContent",""],["keyOfSettings","emailNotification",3,"settings"],["name","\u90ae\u7bb1"],[3,"settings"],["name","\u4e8b\u4ef6"]],template:function(e,i){1&e&&(t.TgZ(0,"app-sub-page",0),t.YNc(1,Jr,6,3,"ng-template",1),t.qZA())},directives:[yt,Ct,ft.g,Yt,Lr,Wt],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}"],changeDetection:0}),n})();function $r(n,o){1&n&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 sendkey\uff01 "),t.BQk())}function Vr(n,o){1&n&&(t.ynx(0),t._uU(1," sendkey \u65e0\u6548 "),t.BQk())}function Yr(n,o){if(1&n&&(t.YNc(0,$r,2,0,"ng-container",6),t.YNc(1,Vr,2,0,"ng-container",6)),2&n){const e=o.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}let qr=(()=>{class n{constructor(e,i,a){this.changeDetector=i,this.settingsSyncService=a,this.syncFailedWarningTip=O.yT,this.settingsForm=e.group({sendkey:["",[l.kI.required,l.kI.pattern(/^[a-zA-Z\d]+$/)]]})}get sendkeyControl(){return this.settingsForm.get("sendkey")}ngOnChanges(){this.syncStatus=A(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("serverchanNotification",this.settings,this.settingsForm.valueChanges.pipe(qt(this.settingsForm))).subscribe(e=>{this.syncStatus=Object.assign(Object.assign({},this.syncStatus),B(e)),this.changeDetector.markForCheck()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(l.qu),t.Y36(t.sBO),t.Y36(Q))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-serverchan-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:8,vars:4,consts:[["nz-form","",3,"formGroup"],[1,"setting-item"],["nzFor","sendkey","nzNoColon","","nzRequired","",1,"setting-label"],["nzHasFeedback","",1,"setting-control","input",3,"nzErrorTip","nzWarningTip","nzValidateStatus"],["id","sendkey","type","text","required","","nz-input","","formControlName","sendkey"],["sendkeyErrorTip",""],[4,"ngIf"]],template:function(e,i){if(1&e&&(t.TgZ(0,"form",0),t.TgZ(1,"nz-form-item",1),t.TgZ(2,"nz-form-label",2),t._uU(3,"sendkey"),t.qZA(),t.TgZ(4,"nz-form-control",3),t._UZ(5,"input",4),t.YNc(6,Yr,2,2,"ng-template",null,5,t.W1O),t.qZA(),t.qZA(),t.qZA()),2&e){const a=t.MAs(7);t.Q6J("formGroup",i.settingsForm),t.xp6(4),t.Q6J("nzErrorTip",a)("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.sendkeyControl.valid&&!i.syncStatus.sendkey?"warning":i.sendkeyControl)}},directives:[l._Y,l.JL,m.Lr,l.sg,v.SK,m.Nx,v.t3,m.iK,m.Fd,J.Zp,l.Fj,l.Q7,l.JJ,l.u,d.O5],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}.setting-label[_ngcontent-%COMP%]{max-width:5em!important;width:5em!important}"],changeDetection:0}),n})();function Wr(n,o){if(1&n&&(t.TgZ(0,"app-page-section"),t._UZ(1,"app-notifier-settings",2),t.qZA(),t.TgZ(2,"app-page-section",3),t._UZ(3,"app-serverchan-settings",4),t.qZA(),t.TgZ(4,"app-page-section",5),t._UZ(5,"app-event-settings",2),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("settings",e.notifierSettings),t.xp6(2),t.Q6J("settings",e.serverchanSettings),t.xp6(2),t.Q6J("settings",e.notificationSettings)}}let Ur=(()=>{class n{constructor(e,i){this.changeDetector=e,this.route=i}ngOnInit(){this.route.data.subscribe(e=>{const i=e.settings;this.serverchanSettings=Y(i,q.gq),this.notifierSettings=Y(i,q._1),this.notificationSettings=Y(i,q.X),this.changeDetector.markForCheck()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.sBO),t.Y36(M.gz))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-serverchan-notification-settings"]],decls:2,vars:0,consts:[["pageTitle","ServerChan \u901a\u77e5"],["appSubPageContent",""],["keyOfSettings","serverchanNotification",3,"settings"],["name","ServerChan"],[3,"settings"],["name","\u4e8b\u4ef6"]],template:function(e,i){1&e&&(t.TgZ(0,"app-sub-page",0),t.YNc(1,Wr,6,3,"ng-template",1),t.qZA())},directives:[yt,Ct,ft.g,Yt,qr,Wt],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}"],changeDetection:0}),n})();function Hr(n,o){1&n&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 token\uff01 "),t.BQk())}function Gr(n,o){1&n&&(t.ynx(0),t._uU(1," token \u65e0\u6548 "),t.BQk())}function Xr(n,o){if(1&n&&(t.YNc(0,Hr,2,0,"ng-container",9),t.YNc(1,Gr,2,0,"ng-container",9)),2&n){const e=o.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}let jr=(()=>{class n{constructor(e,i,a){this.changeDetector=i,this.settingsSyncService=a,this.syncFailedWarningTip=O.yT,this.settingsForm=e.group({token:["",[l.kI.required,l.kI.pattern(/^[a-z\d]{32}$/)]],topic:[""]})}get tokenControl(){return this.settingsForm.get("token")}get topicControl(){return this.settingsForm.get("topic")}ngOnChanges(){this.syncStatus=A(this.settings,()=>!0),this.settingsForm.setValue(this.settings)}ngOnInit(){this.settingsSyncService.syncSettings("pushplusNotification",this.settings,this.settingsForm.valueChanges.pipe(qt(this.settingsForm))).subscribe(e=>{this.syncStatus=Object.assign(Object.assign({},this.syncStatus),B(e)),this.changeDetector.markForCheck()})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(l.qu),t.Y36(t.sBO),t.Y36(Q))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-pushplus-settings"]],inputs:{settings:"settings"},features:[t.TTD],decls:13,vars:6,consts:[["nz-form","",3,"formGroup"],[1,"setting-item"],["nzFor","token","nzNoColon","","nzRequired","",1,"setting-label","required"],["nzHasFeedback","",1,"setting-control","input",3,"nzErrorTip","nzWarningTip","nzValidateStatus"],["id","token","type","text","required","","nz-input","","formControlName","token"],["tokenErrorTip",""],["nzFor","topic","nzNoColon","",1,"setting-label","align-required"],[1,"setting-control","input",3,"nzWarningTip","nzValidateStatus"],["id","topic","type","text","nz-input","","formControlName","topic"],[4,"ngIf"]],template:function(e,i){if(1&e&&(t.TgZ(0,"form",0),t.TgZ(1,"nz-form-item",1),t.TgZ(2,"nz-form-label",2),t._uU(3,"token"),t.qZA(),t.TgZ(4,"nz-form-control",3),t._UZ(5,"input",4),t.YNc(6,Xr,2,2,"ng-template",null,5,t.W1O),t.qZA(),t.qZA(),t.TgZ(8,"nz-form-item",1),t.TgZ(9,"nz-form-label",6),t._uU(10,"topic"),t.qZA(),t.TgZ(11,"nz-form-control",7),t._UZ(12,"input",8),t.qZA(),t.qZA(),t.qZA()),2&e){const a=t.MAs(7);t.Q6J("formGroup",i.settingsForm),t.xp6(4),t.Q6J("nzErrorTip",a)("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.tokenControl.valid&&!i.syncStatus.token?"warning":i.tokenControl),t.xp6(7),t.Q6J("nzWarningTip",i.syncFailedWarningTip)("nzValidateStatus",i.topicControl.valid&&!i.syncStatus.topic?"warning":i.topicControl)}},directives:[l._Y,l.JL,m.Lr,l.sg,v.SK,m.Nx,v.t3,m.iK,m.Fd,J.Zp,l.Fj,l.Q7,l.JJ,l.u,d.O5],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}.setting-label[_ngcontent-%COMP%]{max-width:4em!important;width:4em!important}"],changeDetection:0}),n})();function Kr(n,o){if(1&n&&(t.TgZ(0,"app-page-section"),t._UZ(1,"app-notifier-settings",2),t.qZA(),t.TgZ(2,"app-page-section",3),t._UZ(3,"app-pushplus-settings",4),t.qZA(),t.TgZ(4,"app-page-section",5),t._UZ(5,"app-event-settings",2),t.qZA()),2&n){const e=t.oxw();t.xp6(1),t.Q6J("settings",e.notifierSettings),t.xp6(2),t.Q6J("settings",e.pushplusSettings),t.xp6(2),t.Q6J("settings",e.notificationSettings)}}let tl=(()=>{class n{constructor(e,i){this.changeDetector=e,this.route=i}ngOnInit(){this.route.data.subscribe(e=>{const i=e.settings;this.changeDetector.markForCheck(),this.pushplusSettings=Y(i,q.q1),this.notifierSettings=Y(i,q._1),this.notificationSettings=Y(i,q.X)})}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(t.sBO),t.Y36(M.gz))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-pushplus-notification-settings"]],decls:2,vars:0,consts:[["pageTitle","pushplus \u901a\u77e5"],["appSubPageContent",""],["keyOfSettings","pushplusNotification",3,"settings"],["name","pushplus"],[3,"settings"],["name","\u4e8b\u4ef6"]],template:function(e,i){1&e&&(t.TgZ(0,"app-sub-page",0),t.YNc(1,Kr,6,3,"ng-template",1),t.qZA())},directives:[yt,Ct,ft.g,Yt,jr,Wt],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}"],changeDetection:0}),n})();function el(n,o){1&n&&(t.ynx(0),t._uU(1," \u8bf7\u8f93\u5165 url\uff01 "),t.BQk())}function nl(n,o){1&n&&(t.ynx(0),t._uU(1," url \u65e0\u6548\uff01 "),t.BQk())}function il(n,o){if(1&n&&(t.YNc(0,el,2,0,"ng-container",18),t.YNc(1,nl,2,0,"ng-container",18)),2&n){const e=o.$implicit;t.Q6J("ngIf",e.hasError("required")),t.xp6(1),t.Q6J("ngIf",e.hasError("pattern"))}}function ol(n,o){if(1&n){const e=t.EpF();t.ynx(0),t.TgZ(1,"form",2),t.TgZ(2,"nz-form-item",3),t.TgZ(3,"nz-form-label",4),t._uU(4,"URL"),t.qZA(),t.TgZ(5,"nz-form-control",5),t._UZ(6,"input",6),t.YNc(7,il,2,2,"ng-template",null,7,t.W1O),t.qZA(),t.qZA(),t.TgZ(9,"div",8),t.TgZ(10,"h2"),t._uU(11,"\u4e8b\u4ef6"),t.qZA(),t.TgZ(12,"nz-form-item",3),t.TgZ(13,"nz-form-control",9),t.TgZ(14,"label",10),t.NdJ("nzCheckedChange",function(a){return t.CHM(e),t.oxw().setAllChecked(a)}),t._uU(15,"\u5168\u9009"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(16,"nz-form-item",3),t.TgZ(17,"nz-form-control",11),t.TgZ(18,"label",12),t._uU(19,"\u5f00\u64ad"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(20,"nz-form-item",3),t.TgZ(21,"nz-form-control",11),t.TgZ(22,"label",13),t._uU(23,"\u4e0b\u64ad"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(24,"nz-form-item",3),t.TgZ(25,"nz-form-control",11),t.TgZ(26,"label",14),t._uU(27,"\u76f4\u64ad\u95f4\u4fe1\u606f\u6539\u53d8"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(28,"nz-form-item",3),t.TgZ(29,"nz-form-control",11),t.TgZ(30,"label",15),t._uU(31,"\u5f55\u64ad\u6587\u4ef6\u5b8c\u6210"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(32,"nz-form-item",3),t.TgZ(33,"nz-form-control",11),t.TgZ(34,"label",16),t._uU(35,"\u786c\u76d8\u7a7a\u95f4\u4e0d\u8db3"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(36,"nz-form-item",3),t.TgZ(37,"nz-form-control",11),t.TgZ(38,"label",17),t._uU(39,"\u7a0b\u5e8f\u51fa\u73b0\u5f02\u5e38"),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.qZA(),t.BQk()}if(2&n){const e=t.MAs(8),i=t.oxw();t.xp6(1),t.Q6J("formGroup",i.settingsForm),t.xp6(4),t.Q6J("nzErrorTip",e),t.xp6(9),t.Q6J("nzChecked",i.allChecked)("nzIndeterminate",i.indeterminate)}}const al={url:"",liveBegan:!0,liveEnded:!0,roomChange:!0,spaceNoEnough:!0,fileCompleted:!0,errorOccurred:!0};let sl=(()=>{class n{constructor(e,i){this.changeDetector=i,this.title="\u6807\u9898",this.okButtonText="\u786e\u5b9a",this.visible=!1,this.visibleChange=new t.vpe,this.cancel=new t.vpe,this.confirm=new t.vpe,this.allChecked=!1,this.indeterminate=!0,this.settingsForm=e.group({url:["",[l.kI.required,l.kI.pattern(/^https?:\/\/.*$/)]],liveBegan:[""],liveEnded:[""],roomChange:[""],fileCompleted:[""],spaceNoEnough:[""],errorOccurred:[""]}),this.checkboxControls=Object.entries(this.settingsForm.controls).filter(([a])=>"url"!==a).map(([,a])=>a),this.checkboxControls.forEach(a=>a.valueChanges.subscribe(()=>this.updateAllChecked()))}ngOnChanges(){this.setValue()}open(){this.setValue(),this.setVisible(!0)}close(){this.settingsForm.reset(),this.setVisible(!1)}setVisible(e){this.visible=e,this.visibleChange.emit(e),this.changeDetector.markForCheck()}setValue(){void 0===this.settings&&(this.settings=Object.assign({},al)),this.settingsForm.setValue(this.settings),this.changeDetector.markForCheck()}handleCancel(){this.cancel.emit(),this.close()}handleConfirm(){this.confirm.emit(this.settingsForm.value),this.close()}setAllChecked(e){this.indeterminate=!1,this.allChecked=e,this.checkboxControls.forEach(i=>i.setValue(e))}updateAllChecked(){const e=this.checkboxControls.map(i=>i.value);this.allChecked=e.every(i=>i),this.indeterminate=!this.allChecked&&e.some(i=>i)}}return n.\u0275fac=function(e){return new(e||n)(t.Y36(l.qu),t.Y36(t.sBO))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-webhook-edit-dialog"]],inputs:{settings:"settings",title:"title",okButtonText:"okButtonText",visible:"visible"},outputs:{visibleChange:"visibleChange",cancel:"cancel",confirm:"confirm"},features:[t.TTD],decls:2,vars:4,consts:[["nzCentered","",3,"nzTitle","nzOkText","nzVisible","nzOkDisabled","nzOnOk","nzOnCancel"],[4,"nzModalContent"],["nz-form","",3,"formGroup"],[1,"setting-item"],["nzFor","url","nzNoColon","",1,"setting-label"],["nzHasFeedback","",1,"setting-control","input",3,"nzErrorTip"],["id","url","type","url","required","","nz-input","","formControlName","url"],["urlErrorTip",""],[1,"form-group"],[1,"setting-control","checkbox","check-all"],["nz-checkbox","",3,"nzChecked","nzIndeterminate","nzCheckedChange"],[1,"setting-control","checkbox"],["nz-checkbox","","formControlName","liveBegan"],["nz-checkbox","","formControlName","liveEnded"],["nz-checkbox","","formControlName","roomChange"],["nz-checkbox","","formControlName","fileCompleted"],["nz-checkbox","","formControlName","spaceNoEnough"],["nz-checkbox","","formControlName","errorOccurred"],[4,"ngIf"]],template:function(e,i){1&e&&(t.TgZ(0,"nz-modal",0),t.NdJ("nzOnOk",function(){return i.handleConfirm()})("nzOnCancel",function(){return i.handleCancel()}),t.YNc(1,ol,40,4,"ng-container",1),t.qZA()),2&e&&t.Q6J("nzTitle",i.title)("nzOkText",i.okButtonText)("nzVisible",i.visible)("nzOkDisabled",i.settingsForm.invalid)},directives:[I.du,I.Hf,l._Y,l.JL,m.Lr,l.sg,v.SK,m.Nx,v.t3,m.iK,m.Fd,J.Zp,l.Fj,l.Q7,l.JJ,l.u,rt.Ie,d.O5],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}.setting-item[_ngcontent-%COMP%]{padding:1em 0;border:none}.setting-item[_ngcontent-%COMP%]:first-child{padding-top:0}.setting-item[_ngcontent-%COMP%]:first-child .setting-control[_ngcontent-%COMP%]{flex:1 1 auto;max-width:100%!important}.setting-item[_ngcontent-%COMP%]:last-child{padding-bottom:0}.setting-item[_ngcontent-%COMP%] .check-all[_ngcontent-%COMP%]{border-bottom:1px solid rgba(0,0,0,.06)}"],changeDetection:0}),n})();function rl(n,o){1&n&&t._UZ(0,"nz-list-empty")}function ll(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"nz-list-item",9),t.TgZ(1,"span",10),t._uU(2),t.qZA(),t.TgZ(3,"button",11),t._UZ(4,"i",12),t.qZA(),t.TgZ(5,"nz-dropdown-menu",null,13),t.TgZ(7,"ul",14),t.TgZ(8,"li",15),t.NdJ("click",function(){const s=t.CHM(e).index;return t.oxw().edit.emit(s)}),t._uU(9,"\u4fee\u6539"),t.qZA(),t.TgZ(10,"li",15),t.NdJ("click",function(){const s=t.CHM(e).index;return t.oxw().remove.emit(s)}),t._uU(11,"\u5220\u9664"),t.qZA(),t.qZA(),t.qZA(),t.qZA()}if(2&n){const e=o.$implicit,i=t.MAs(6);t.xp6(2),t.Oqu(e.url),t.xp6(1),t.Q6J("nzDropdownMenu",i)}}let cl=(()=>{class n{constructor(){this.header="",this.addable=!0,this.clearable=!0,this.add=new t.vpe,this.edit=new t.vpe,this.remove=new t.vpe,this.clear=new t.vpe}}return n.\u0275fac=function(e){return new(e||n)},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-webhook-list"]],inputs:{data:"data",header:"header",addable:"addable",clearable:"clearable"},outputs:{add:"add",edit:"edit",remove:"remove",clear:"clear"},decls:11,vars:5,consts:[["nzBordered","",1,"list"],[1,"list-header"],[1,"list-actions"],["nz-button","","nzType","text","nzSize","large","nz-tooltip","","nzTooltipTitle","\u6e05\u7a7a",1,"clear-button",3,"disabled","click"],["nz-icon","","nzType","clear"],["nz-button","","nzType","text","nzSize","large","nz-tooltip","","nzTooltipTitle","\u6dfb\u52a0",1,"add-button",3,"disabled","click"],["nz-icon","","nzType","plus"],[4,"ngIf"],["class","list-item",4,"ngFor","ngForOf"],[1,"list-item"],[1,"item-content"],["nz-button","","nzType","text","nzSize","default","nz-dropdown","","nzPlacement","bottomRight",1,"more-action-button",3,"nzDropdownMenu"],["nz-icon","","nzType","more"],["menu","nzDropdownMenu"],["nz-menu",""],["nz-menu-item","",3,"click"]],template:function(e,i){1&e&&(t.TgZ(0,"nz-list",0),t.TgZ(1,"nz-list-header",1),t.TgZ(2,"h3"),t._uU(3),t.qZA(),t.TgZ(4,"div",2),t.TgZ(5,"button",3),t.NdJ("click",function(){return i.clear.emit()}),t._UZ(6,"i",4),t.qZA(),t.TgZ(7,"button",5),t.NdJ("click",function(){return i.add.emit()}),t._UZ(8,"i",6),t.qZA(),t.qZA(),t.qZA(),t.YNc(9,rl,1,0,"nz-list-empty",7),t.YNc(10,ll,12,2,"nz-list-item",8),t.qZA()),2&e&&(t.xp6(3),t.Oqu(i.header),t.xp6(2),t.Q6J("disabled",i.data.length<=0||!i.clearable),t.xp6(2),t.Q6J("disabled",!i.addable),t.xp6(2),t.Q6J("ngIf",i.data.length<=0),t.xp6(1),t.Q6J("ngForOf",i.data))},directives:[Et,At,mt.ix,tt.w,ut.SY,E.Ls,d.O5,d.sg,Dt,se,$.wA,$.cm,$.RR,K.wO,K.r9],styles:[".list[_ngcontent-%COMP%]{background-color:#fff}.list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%]{display:flex;flex-wrap:nowrap;align-items:center;padding:.5em 1.5em}.list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0}.list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .list-actions[_ngcontent-%COMP%]{margin-left:auto;position:relative;left:1em}.list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%]{display:flex;flex-wrap:nowrap;padding:.5em 1.5em}.list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .item-content[_ngcontent-%COMP%]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .more-action-button[_ngcontent-%COMP%]{margin-left:auto;flex:0 0 auto;position:relative;left:1em}"],changeDetection:0}),n})();function gl(n,o){if(1&n){const e=t.EpF();t.TgZ(0,"app-page-section"),t.TgZ(1,"app-webhook-list",3),t.NdJ("add",function(){return t.CHM(e),t.oxw().addWebhook()})("edit",function(a){return t.CHM(e),t.oxw().editWebhook(a)})("remove",function(a){return t.CHM(e),t.oxw().removeWebhook(a)})("clear",function(){return t.CHM(e),t.oxw().clearWebhook()}),t.qZA(),t.qZA()}if(2&n){const e=t.oxw();t.xp6(1),t.Q6J("data",e.webhooks)("addable",e.canAdd)}}const pl=[{path:"email-notification",component:Rr,resolve:{settings:Te}},{path:"serverchan-notification",component:Ur,resolve:{settings:Oe}},{path:"pushplus-notification",component:tl,resolve:{settings:Se}},{path:"webhooks",component:(()=>{class n{constructor(e,i,a,s,r){this.changeDetector=e,this.route=i,this.message=a,this.modal=s,this.settingService=r,this.dialogTitle="",this.dialogOkButtonText="",this.dialogVisible=!1,this.editingIndex=-1}get canAdd(){return this.webhooks.length<n.MAX_WEBHOOKS}ngOnInit(){this.route.data.subscribe(e=>{this.webhooks=e.settings,this.changeDetector.markForCheck()})}addWebhook(){this.editingIndex=-1,this.editingSettings=void 0,this.dialogTitle="\u6dfb\u52a0 webhook",this.dialogOkButtonText="\u6dfb\u52a0",this.dialogVisible=!0}removeWebhook(e){const i=this.webhooks.filter((a,s)=>s!==e);this.changeSettings(i).subscribe(()=>this.reset())}editWebhook(e){this.editingIndex=e,this.editingSettings=Object.assign({},this.webhooks[e]),this.dialogTitle="\u4fee\u6539 webhook",this.dialogOkButtonText="\u4fdd\u5b58",this.dialogVisible=!0}clearWebhook(){this.modal.confirm({nzTitle:"\u786e\u5b9a\u8981\u6e05\u7a7a Webhook \uff1f",nzOnOk:()=>new Promise((e,i)=>{this.changeSettings([]).subscribe(e,i)})})}onDialogCanceled(){this.reset()}onDialogConfirmed(e){let i;-1===this.editingIndex?i=[...this.webhooks,e]:(i=[...this.webhooks],i[this.editingIndex]=e),this.changeSettings(i).subscribe(()=>this.reset())}reset(){this.editingIndex=-1,delete this.editingSettings}changeSettings(e){return this.settingService.changeSettings({webhooks:e}).pipe((0,it.X)(3,300),(0,dt.b)(i=>{this.webhooks=i.webhooks,this.changeDetector.markForCheck()},i=>{this.message.error(`Webhook \u8bbe\u7f6e\u51fa\u9519: ${i.message}`)}))}}return n.MAX_WEBHOOKS=50,n.\u0275fac=function(e){return new(e||n)(t.Y36(t.sBO),t.Y36(M.gz),t.Y36(De.dD),t.Y36(I.Sf),t.Y36(at.R))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-webhook-manager"]],decls:3,vars:4,consts:[["pageTitle","Webhooks"],["appSubPageContent",""],[3,"title","okButtonText","settings","visible","visibleChange","cancel","confirm"],["header","Webhook \u5217\u8868",3,"data","addable","add","edit","remove","clear"]],template:function(e,i){1&e&&(t.TgZ(0,"app-sub-page",0),t.YNc(1,gl,2,2,"ng-template",1),t.qZA(),t.TgZ(2,"app-webhook-edit-dialog",2),t.NdJ("visibleChange",function(s){return i.dialogVisible=s})("cancel",function(){return i.onDialogCanceled()})("confirm",function(s){return i.onDialogConfirmed(s)}),t.qZA()),2&e&&(t.xp6(2),t.Q6J("title",i.dialogTitle)("okButtonText",i.dialogOkButtonText)("settings",i.editingSettings)("visible",i.dialogVisible))},directives:[yt,Ct,sl,ft.g,cl],styles:[""],changeDetection:0}),n})(),resolve:{settings:we}},{path:"",component:Es,resolve:{settings:be}}];let dl=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[[M.Bz.forChild(pl)],M.Bz]}),n})(),ul=(()=>{class n{}return n.\u0275fac=function(e){return new(e||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({providers:[be,Te,Oe,Se,we],imports:[[d.ez,dl,l.u5,l.UX,st.j,Ht.KJ,Ve.vh,m.U5,J.o7,W.m,rt.Wr,lt.aF,rn,U.LV,I.Qp,mt.sL,E.PV,gi,$.b1,ut.cg,pi.S,wa,Aa,Za.m]]}),n})()}}]); \ No newline at end of file diff --git a/src/blrec/data/webapp/659.4923e830b3feb2abcce2.js b/src/blrec/data/webapp/659.4923e830b3feb2abcce2.js new file mode 100644 index 0000000..92bbef3 --- /dev/null +++ b/src/blrec/data/webapp/659.4923e830b3feb2abcce2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkblrec=self.webpackChunkblrec||[]).push([[659],{9659:(M,c,i)=>{i.r(c),i.d(c,{AboutModule:()=>y});var u=i(8583),p=i(6983),t=i(7716),h=i(4670),l=i(2340),g=i(1841);const Z=l.N.apiUrl;let A=(()=>{class n{constructor(o){this.http=o}getLatestVerisonString(){return this.http.get(Z+"/api/v1/update/version/latest")}}return n.\u0275fac=function(o){return new(o||n)(t.LFG(g.eN))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),m=(()=>{class n{constructor(o){this.latestVesion$=o.getLatestVerisonString()}}return n.\u0275fac=function(o){return new(o||n)(t.Y36(A))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-info-list"]],inputs:{appInfo:"appInfo"},decls:42,vars:4,consts:[[1,"info-list"],[1,"info-item"],[1,"label"],[1,"desc"],["href","https://github.com/acgnhiki/blrec","target","_blank"],["href","https://github.com/acgnhiki/blrec/issues","target","_blank"],["href","https://choosealicense.com/licenses/gpl-3.0","target","_blank"],["href","mailto:acgnhiki@outlook.com","target","_blank"],["href","https://afdian.net/@acgnhiki","target","_blank"]],template:function(o,a){1&o&&(t.TgZ(0,"ul",0),t.TgZ(1,"li",1),t.TgZ(2,"span",2),t._uU(3,"\u5f53\u524d\u7248\u672c"),t.qZA(),t.TgZ(4,"span",3),t._uU(5),t.qZA(),t.qZA(),t.TgZ(6,"li",1),t.TgZ(7,"span",2),t._uU(8,"\u6700\u65b0\u7248\u672c"),t.qZA(),t.TgZ(9,"span",3),t._uU(10),t.ALo(11,"async"),t.qZA(),t.qZA(),t.TgZ(12,"li",1),t.TgZ(13,"span",2),t._uU(14,"\u9879\u76ee\u4e3b\u9875"),t.qZA(),t.TgZ(15,"span",3),t.TgZ(16,"a",4),t._uU(17,"https://github.com/acgnhiki/blrec"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(18,"li",1),t.TgZ(19,"span",2),t._uU(20,"\u95ee\u9898\u53cd\u9988"),t.qZA(),t.TgZ(21,"span",3),t.TgZ(22,"a",5),t._uU(23,"https://github.com/acgnhiki/blrec/issues"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(24,"li",1),t.TgZ(25,"span",2),t._uU(26,"\u8bb8\u53ef\u534f\u8bae"),t.qZA(),t.TgZ(27,"span",3),t.TgZ(28,"a",6),t._uU(29,"GNU GPLv3"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(30,"li",1),t.TgZ(31,"span",2),t._uU(32,"\u8054\u7cfb\u65b9\u5f0f"),t.qZA(),t.TgZ(33,"span",3),t.TgZ(34,"a",7),t._uU(35,"acgnhiki@outlook.com"),t.qZA(),t.qZA(),t.qZA(),t.TgZ(36,"li",1),t.TgZ(37,"span",2),t._uU(38,"\u6295\u5582\u8d5e\u52a9"),t.qZA(),t.TgZ(39,"span",3),t.TgZ(40,"a",8),t._uU(41,"https://afdian.net/@acgnhiki"),t.qZA(),t.qZA(),t.qZA(),t.qZA()),2&o&&(t.xp6(5),t.Oqu(a.appInfo.version),t.xp6(5),t.Oqu(t.lcZ(11,2,a.latestVesion$)))},pipes:[u.Ov],styles:['@charset "UTF-8";.info-list[_ngcontent-%COMP%] .info-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.info-list[_ngcontent-%COMP%] .info-item[_ngcontent-%COMP%]:first-child{border-top:none}.info-list[_ngcontent-%COMP%] .info-item[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]:after{content:"\\ff1a"}.info-list[_ngcontent-%COMP%]{margin:0;padding:0;list-style:none}'],changeDetection:0}),n})(),d=(()=>{class n{constructor(o,a){this.changeDetector=o,this.route=a}ngOnInit(){this.route.data.subscribe(o=>{this.appInfo=o.appInfo,this.changeDetector.markForCheck()})}}return n.\u0275fac=function(o){return new(o||n)(t.Y36(t.sBO),t.Y36(p.gz))},n.\u0275cmp=t.Xpm({type:n,selectors:[["app-about"]],decls:4,vars:1,consts:[[1,"inner-content"],[1,"about-page"],[3,"appInfo"]],template:function(o,a){1&o&&(t.TgZ(0,"div",0),t.TgZ(1,"div",1),t.TgZ(2,"app-page-section"),t._UZ(3,"app-info-list",2),t.qZA(),t.qZA(),t.qZA()),2&o&&(t.xp6(3),t.Q6J("appInfo",a.appInfo))},directives:[h.g,m],styles:[".inner-content[_ngcontent-%COMP%]{height:100%;width:100%;position:relative;display:block;margin:0;padding:1rem;background:#f1f3f4;overflow:auto}.inner-content[_ngcontent-%COMP%] .about-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}"]}),n})();var v=i(5304),T=i(9825),b=i(7158),C=i(3080);const s=l.N.apiUrl;let U=(()=>{class n{constructor(o){this.http=o}getAppInfo(){return this.http.get(s+"/api/v1/app/info")}getAppStatus(){return this.http.get(s+"/api/v1/app/status")}restartApp(){return this.http.post(s+"/api/v1/app/restart",null)}exitApp(){return this.http.post(s+"/api/v1/app/exit",null)}}return n.\u0275fac=function(o){return new(o||n)(t.LFG(g.eN))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),f=(()=>{class n{constructor(o,a,r){this.logger=o,this.notification=a,this.appService=r}resolve(o,a){return this.appService.getAppInfo().pipe((0,T.X)(3,300),(0,v.K)(r=>{throw this.logger.error("Failed to get app info:",r),this.notification.error("\u83b7\u53d6\u540e\u7aef\u5e94\u7528\u4fe1\u606f\u51fa\u9519",r.message,{nzDuration:0}),r}))}}return n.\u0275fac=function(o){return new(o||n)(t.LFG(b.Kf),t.LFG(C.zb),t.LFG(U))},n.\u0275prov=t.Yz7({token:n,factory:n.\u0275fac}),n})();const F=[{path:"",component:d,resolve:{appInfo:f}}];let I=(()=>{class n{}return n.\u0275fac=function(o){return new(o||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({imports:[[p.Bz.forChild(F)],p.Bz]}),n})();var q=i(4466);let y=(()=>{class n{}return n.\u0275fac=function(o){return new(o||n)},n.\u0275mod=t.oAB({type:n}),n.\u0275inj=t.cJS({providers:[f],imports:[[u.ez,I,q.m]]}),n})()}}]); \ No newline at end of file diff --git a/src/blrec/data/webapp/80.78cb9b41766e5c57d657.js b/src/blrec/data/webapp/80.78cb9b41766e5c57d657.js new file mode 100644 index 0000000..a465d24 --- /dev/null +++ b/src/blrec/data/webapp/80.78cb9b41766e5c57d657.js @@ -0,0 +1 @@ +(self.webpackChunkblrec=self.webpackChunkblrec||[]).push([[80],{7612:function(Oe){Oe.exports=function(){"use strict";var W=/^(b|B)$/,l={iec:{bits:["b","Kib","Mib","Gib","Tib","Pib","Eib","Zib","Yib"],bytes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]},jedec:{bits:["b","Kb","Mb","Gb","Tb","Pb","Eb","Zb","Yb"],bytes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]}},c={iec:["","kibi","mebi","gibi","tebi","pebi","exbi","zebi","yobi"],jedec:["","kilo","mega","giga","tera","peta","exa","zetta","yotta"]},g={floor:Math.floor,ceil:Math.ceil};function F(e){var m,w,D,I,fe,X,O,R,k,_,x,A,v,P,f,L,se,B,re,K,J,h=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},p=[],G=0;if(isNaN(e))throw new TypeError("Invalid number");if(D=!0===h.bits,f=!0===h.unix,A=!0===h.pad,v=void 0!==h.round?h.round:f?1:2,O=void 0!==h.locale?h.locale:"",R=h.localeOptions||{},L=void 0!==h.separator?h.separator:"",se=void 0!==h.spacer?h.spacer:f?"":" ",re=h.symbols||{},B=2===(w=h.base||2)&&h.standard||"jedec",x=h.output||"string",fe=!0===h.fullform,X=h.fullforms instanceof Array?h.fullforms:[],m=void 0!==h.exponent?h.exponent:-1,K=g[h.roundingMethod]||Math.round,k=(_=Number(e))<0,I=w>2?1e3:1024,J=!1===isNaN(h.precision)?parseInt(h.precision,10):0,k&&(_=-_),(-1===m||isNaN(m))&&(m=Math.floor(Math.log(_)/Math.log(I)))<0&&(m=0),m>8&&(J>0&&(J+=8-m),m=8),"exponent"===x)return m;if(0===_)p[0]=0,P=p[1]=f?"":l[B][D?"bits":"bytes"][m];else{G=_/(2===w?Math.pow(2,10*m):Math.pow(1e3,m)),D&&(G*=8)>=I&&m<8&&(G/=I,m++);var ae=Math.pow(10,m>0?v:0);p[0]=K(G*ae)/ae,p[0]===I&&m<8&&void 0===h.exponent&&(p[0]=1,m++),P=p[1]=10===w&&1===m?D?"kb":"kB":l[B][D?"bits":"bytes"][m],f&&(p[1]="jedec"===B?p[1].charAt(0):m>0?p[1].replace(/B$/,""):p[1],W.test(p[1])&&(p[0]=Math.floor(p[0]),p[1]=""))}if(k&&(p[0]=-p[0]),J>0&&(p[0]=p[0].toPrecision(J)),p[1]=re[p[1]]||p[1],!0===O?p[0]=p[0].toLocaleString():O.length>0?p[0]=p[0].toLocaleString(O,R):L.length>0&&(p[0]=p[0].toString().replace(".",L)),A&&!1===Number.isInteger(p[0])&&v>0){var le=L||".",ce=p[0].toString().split(le),pe=ce[1]||"",ue=pe.length,ze=v-ue;p[0]="".concat(ce[0]).concat(le).concat(pe.padEnd(ue+ze,"0"))}return fe&&(p[1]=X[m]?X[m]:c[B][m]+(D?"bit":"byte")+(1===p[0]?"":"s")),"array"===x?p:"object"===x?{value:p[0],symbol:p[1],exponent:m,unit:P}:p.join(se)}return F.partial=function(e){return function(m){return F(m,e)}},F}()},5080:(Oe,W,l)=>{"use strict";l.r(W),l.d(W,{TasksModule:()=>ii});var c=l(8583),g=l(665),F=l(5072),e=l(7716);class m{constructor(s,t){this._document=t;const o=this._textarea=this._document.createElement("textarea"),i=o.style;i.position="fixed",i.top=i.opacity="0",i.left="-999em",o.setAttribute("aria-hidden","true"),o.value=s,this._document.body.appendChild(o)}copy(){const s=this._textarea;let t=!1;try{if(s){const o=this._document.activeElement;s.select(),s.setSelectionRange(0,s.value.length),t=this._document.execCommand("copy"),o&&o.focus()}}catch(o){}return t}destroy(){const s=this._textarea;s&&(s.parentNode&&s.parentNode.removeChild(s),this._textarea=void 0)}}let w=(()=>{class n{constructor(t){this._document=t}copy(t){const o=this.beginCopy(t),i=o.copy();return o.destroy(),i}beginCopy(t){return new m(t,this._document)}}return n.\u0275fac=function(t){return new(t||n)(e.LFG(c.K0))},n.\u0275prov=e.Yz7({factory:function(){return new n(e.LFG(c.K0))},token:n,providedIn:"root"}),n})(),X=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=e.oAB({type:n}),n.\u0275inj=e.cJS({}),n})();var O=l(6704),R=l(7018),k=l(464),_=l(4762),x=l(946),A=l(9765),v=l(6782),P=l(7705),f=l(6182);function L(n,s){if(1&n){const t=e.EpF();e.TgZ(0,"i",1),e.NdJ("click",function(i){return e.CHM(t),e.oxw().closeTag(i)}),e.qZA()}}const se=["*"];let B=(()=>{class n{constructor(t,o,i,r){this.cdr=t,this.renderer=o,this.elementRef=i,this.directionality=r,this.isPresetColor=!1,this.nzMode="default",this.nzChecked=!1,this.nzOnClose=new e.vpe,this.nzCheckedChange=new e.vpe,this.dir="ltr",this.destroy$=new A.xQ,this.elementRef.nativeElement.classList.add("ant-tag")}updateCheckedStatus(){"checkable"===this.nzMode&&(this.nzChecked=!this.nzChecked,this.nzCheckedChange.emit(this.nzChecked))}closeTag(t){this.nzOnClose.emit(t),t.defaultPrevented||this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement),this.elementRef.nativeElement)}clearPresetColor(){const t=this.elementRef.nativeElement,o=new RegExp(`(ant-tag-(?:${[...P.uf,...P.Bh].join("|")}))`,"g"),i=t.classList.toString(),r=[];let a=o.exec(i);for(;null!==a;)r.push(a[1]),a=o.exec(i);t.classList.remove(...r)}setPresetColor(){const t=this.elementRef.nativeElement;this.clearPresetColor(),this.isPresetColor=!!this.nzColor&&((0,P.o2)(this.nzColor)||(0,P.M8)(this.nzColor)),this.isPresetColor&&t.classList.add(`ant-tag-${this.nzColor}`)}ngOnInit(){var t;null===(t=this.directionality.change)||void 0===t||t.pipe((0,v.R)(this.destroy$)).subscribe(o=>{this.dir=o,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnChanges(t){const{nzColor:o}=t;o&&this.setPresetColor()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(e.sBO),e.Y36(e.Qsj),e.Y36(e.SBq),e.Y36(x.Is,8))},n.\u0275cmp=e.Xpm({type:n,selectors:[["nz-tag"]],hostVars:10,hostBindings:function(t,o){1&t&&e.NdJ("click",function(){return o.updateCheckedStatus()}),2&t&&(e.Udp("background-color",o.isPresetColor?"":o.nzColor),e.ekj("ant-tag-has-color",o.nzColor&&!o.isPresetColor)("ant-tag-checkable","checkable"===o.nzMode)("ant-tag-checkable-checked",o.nzChecked)("ant-tag-rtl","rtl"===o.dir))},inputs:{nzMode:"nzMode",nzChecked:"nzChecked",nzColor:"nzColor"},outputs:{nzOnClose:"nzOnClose",nzCheckedChange:"nzCheckedChange"},exportAs:["nzTag"],features:[e.TTD],ngContentSelectors:se,decls:2,vars:1,consts:[["nz-icon","","nzType","close","class","ant-tag-close-icon","tabindex","-1",3,"click",4,"ngIf"],["nz-icon","","nzType","close","tabindex","-1",1,"ant-tag-close-icon",3,"click"]],template:function(t,o){1&t&&(e.F$t(),e.Hsn(0),e.YNc(1,L,1,0,"i",0)),2&t&&(e.xp6(1),e.Q6J("ngIf","closeable"===o.nzMode))},directives:[c.O5,k.Ls],encapsulation:2,changeDetection:0}),(0,_.gn)([(0,f.yF)()],n.prototype,"nzChecked",void 0),n})(),re=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=e.oAB({type:n}),n.\u0275inj=e.cJS({imports:[[x.vT,c.ez,g.u5,k.PV]]}),n})();var K=l(5329);function J(n,s){if(1&n&&(e.TgZ(0,"div",5),e._UZ(1,"nz-skeleton-element",6),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("nzSize",t.avatar.size||"default")("nzShape",t.avatar.shape||"circle")}}function h(n,s){if(1&n&&e._UZ(0,"h3",7),2&n){const t=e.oxw(2);e.Udp("width",t.toCSSUnit(t.title.width))}}function p(n,s){if(1&n&&e._UZ(0,"li"),2&n){const t=s.index,o=e.oxw(3);e.Udp("width",o.toCSSUnit(o.widthList[t]))}}function G(n,s){if(1&n&&(e.TgZ(0,"ul",8),e.YNc(1,p,1,2,"li",9),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("ngForOf",t.rowsList)}}function ae(n,s){if(1&n&&(e.ynx(0),e.YNc(1,J,2,2,"div",1),e.TgZ(2,"div",2),e.YNc(3,h,1,2,"h3",3),e.YNc(4,G,2,1,"ul",4),e.qZA(),e.BQk()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",!!t.nzAvatar),e.xp6(2),e.Q6J("ngIf",!!t.nzTitle),e.xp6(1),e.Q6J("ngIf",!!t.nzParagraph)}}function le(n,s){1&n&&(e.ynx(0),e.Hsn(1),e.BQk())}const ce=["*"],ue=["nzType","avatar"];let Xe=(()=>{class n{constructor(t,o,i){this.cdr=t,this.nzActive=!1,this.nzLoading=!0,this.nzRound=!1,this.nzTitle=!0,this.nzAvatar=!1,this.nzParagraph=!0,this.rowsList=[],this.widthList=[],o.addClass(i.nativeElement,"ant-skeleton")}toCSSUnit(t=""){return(0,f.WX)(t)}getTitleProps(){const t=!!this.nzAvatar,o=!!this.nzParagraph;let i="";return!t&&o?i="38%":t&&o&&(i="50%"),Object.assign({width:i},this.getProps(this.nzTitle))}getAvatarProps(){return Object.assign({shape:this.nzTitle&&!this.nzParagraph?"square":"circle",size:"large"},this.getProps(this.nzAvatar))}getParagraphProps(){const t=!!this.nzAvatar,o=!!this.nzTitle,i={};return(!t||!o)&&(i.width="61%"),i.rows=!t&&o?3:2,Object.assign(Object.assign({},i),this.getProps(this.nzParagraph))}getProps(t){return t&&"object"==typeof t?t:{}}getWidthList(){const{width:t,rows:o}=this.paragraph;let i=[];return t&&Array.isArray(t)?i=t:t&&!Array.isArray(t)&&(i=[],i[o-1]=t),i}updateProps(){this.title=this.getTitleProps(),this.avatar=this.getAvatarProps(),this.paragraph=this.getParagraphProps(),this.rowsList=[...Array(this.paragraph.rows)],this.widthList=this.getWidthList(),this.cdr.markForCheck()}ngOnInit(){this.updateProps()}ngOnChanges(t){(t.nzTitle||t.nzAvatar||t.nzParagraph)&&this.updateProps()}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(e.sBO),e.Y36(e.Qsj),e.Y36(e.SBq))},n.\u0275cmp=e.Xpm({type:n,selectors:[["nz-skeleton"]],hostVars:6,hostBindings:function(t,o){2&t&&e.ekj("ant-skeleton-with-avatar",!!o.nzAvatar)("ant-skeleton-active",o.nzActive)("ant-skeleton-round",!!o.nzRound)},inputs:{nzActive:"nzActive",nzLoading:"nzLoading",nzRound:"nzRound",nzTitle:"nzTitle",nzAvatar:"nzAvatar",nzParagraph:"nzParagraph"},exportAs:["nzSkeleton"],features:[e.TTD],ngContentSelectors:ce,decls:2,vars:2,consts:[[4,"ngIf"],["class","ant-skeleton-header",4,"ngIf"],[1,"ant-skeleton-content"],["class","ant-skeleton-title",3,"width",4,"ngIf"],["class","ant-skeleton-paragraph",4,"ngIf"],[1,"ant-skeleton-header"],["nzType","avatar",3,"nzSize","nzShape"],[1,"ant-skeleton-title"],[1,"ant-skeleton-paragraph"],[3,"width",4,"ngFor","ngForOf"]],template:function(t,o){1&t&&(e.F$t(),e.YNc(0,ae,5,3,"ng-container",0),e.YNc(1,le,2,0,"ng-container",0)),2&t&&(e.Q6J("ngIf",o.nzLoading),e.xp6(1),e.Q6J("ngIf",!o.nzLoading))},directives:function(){return[c.O5,Ke,et,c.sg]},encapsulation:2,changeDetection:0}),n})(),Ke=(()=>{class n{constructor(t){this.elementRef=t,this.nzActive=!1,this.elementRef.nativeElement.classList.add("ant-skeleton","ant-skeleton-element")}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(e.SBq))},n.\u0275dir=e.lG2({type:n,selectors:[["nz-skeleton-element"]],hostVars:2,hostBindings:function(t,o){2&t&&e.ekj("ant-skeleton-active",o.nzActive)},inputs:{nzActive:"nzActive",nzType:"nzType"}}),n})(),et=(()=>{class n{constructor(){this.nzShape="circle",this.nzSize="default",this.styleMap={}}ngOnChanges(t){if(t.nzSize&&"number"==typeof this.nzSize){const o=`${this.nzSize}px`;this.styleMap={width:o,height:o,"line-height":o}}else this.styleMap={}}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275cmp=e.Xpm({type:n,selectors:[["nz-skeleton-element","nzType","avatar"]],inputs:{nzShape:"nzShape",nzSize:"nzSize"},features:[e.TTD],attrs:ue,decls:1,vars:9,consts:[[1,"ant-skeleton-avatar",3,"ngStyle"]],template:function(t,o){1&t&&e._UZ(0,"span",0),2&t&&(e.ekj("ant-skeleton-avatar-square","square"===o.nzShape)("ant-skeleton-avatar-circle","circle"===o.nzShape)("ant-skeleton-avatar-lg","large"===o.nzSize)("ant-skeleton-avatar-sm","small"===o.nzSize),e.Q6J("ngStyle",o.styleMap))},directives:[c.PC],encapsulation:2,changeDetection:0}),n})(),Se=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=e.oAB({type:n}),n.\u0275inj=e.cJS({imports:[[x.vT,c.ez]]}),n})();var E=l(7420),Ce=l(8453),$=l(4401),ee=l(4453),Q=l(8542),Z=l(5887),H=l(7674),we=l(2079),Pe=l(7070),b=l(2729),ge=l(641),Ze=l(9238),Ne=l(625),j=l(8178),Fe=l(6911),De=l(6756),Ie=l(9374),de=l(4514);const tt=["okBtn"],nt=["cancelBtn"];function ot(n,s){1&n&&e._UZ(0,"div",15)}function it(n,s){if(1&n&&(e.ynx(0),e._UZ(1,"i",17),e.BQk()),2&n){const t=s.$implicit;e.xp6(1),e.Q6J("nzType",t||"exclamation-circle")}}function st(n,s){if(1&n&&(e.ynx(0),e.YNc(1,it,2,1,"ng-container",8),e.TgZ(2,"div",16),e._uU(3),e.qZA(),e.BQk()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("nzStringTemplateOutlet",t.nzIcon),e.xp6(2),e.Oqu(t.nzTitle)}}function rt(n,s){if(1&n&&(e.ynx(0),e._uU(1),e.BQk()),2&n){const t=e.oxw(2);e.xp6(1),e.Oqu(t.nzCancelText)}}function at(n,s){1&n&&(e.ynx(0),e._uU(1),e.ALo(2,"nzI18n"),e.BQk()),2&n&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"Modal.cancelText")))}function lt(n,s){if(1&n&&(e.ynx(0),e._uU(1),e.BQk()),2&n){const t=e.oxw(2);e.xp6(1),e.Oqu(t.nzOkText)}}function ct(n,s){1&n&&(e.ynx(0),e._uU(1),e.ALo(2,"nzI18n"),e.BQk()),2&n&&(e.xp6(1),e.Oqu(e.lcZ(2,1,"Modal.okText")))}function pt(n,s){if(1&n){const t=e.EpF();e.TgZ(0,"div",2),e.TgZ(1,"div",3),e.YNc(2,ot,1,0,"div",4),e.TgZ(3,"div",5),e.TgZ(4,"div"),e.TgZ(5,"div",6),e.TgZ(6,"div",7),e.YNc(7,st,4,2,"ng-container",8),e.qZA(),e.TgZ(8,"div",9),e.TgZ(9,"button",10,11),e.NdJ("click",function(){return e.CHM(t),e.oxw().onCancel()}),e.YNc(11,rt,2,1,"ng-container",12),e.YNc(12,at,3,3,"ng-container",12),e.qZA(),e.TgZ(13,"button",13,14),e.NdJ("click",function(){return e.CHM(t),e.oxw().onConfirm()}),e.YNc(15,lt,2,1,"ng-container",12),e.YNc(16,ct,3,3,"ng-container",12),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.qZA()}if(2&n){const t=e.oxw();e.ekj("ant-popover-rtl","rtl"===t.dir),e.Q6J("cdkTrapFocusAutoCapture",null!==t.nzAutoFocus)("ngClass",t._classMap)("ngStyle",t.nzOverlayStyle)("@.disabled",null==t.noAnimation?null:t.noAnimation.nzNoAnimation)("nzNoAnimation",null==t.noAnimation?null:t.noAnimation.nzNoAnimation)("@zoomBigMotion","active"),e.xp6(2),e.Q6J("ngIf",t.nzPopconfirmShowArrow),e.xp6(5),e.Q6J("nzStringTemplateOutlet",t.nzTitle),e.xp6(2),e.Q6J("nzSize","small"),e.uIk("cdkFocusInitial","cancel"===t.nzAutoFocus||null),e.xp6(2),e.Q6J("ngIf",t.nzCancelText),e.xp6(1),e.Q6J("ngIf",!t.nzCancelText),e.xp6(1),e.Q6J("nzSize","small")("nzType",t.nzOkType),e.uIk("cdkFocusInitial","ok"===t.nzAutoFocus||null),e.xp6(2),e.Q6J("ngIf",t.nzOkText),e.xp6(1),e.Q6J("ngIf",!t.nzOkText)}}let gt=(()=>{class n extends E.Mg{constructor(t,o,i,r,a,u){super(t,o,i,r,a,u),this._nzModuleName="popconfirm",this.trigger="click",this.placement="top",this.nzCondition=!1,this.nzPopconfirmShowArrow=!0,this.nzPopconfirmBackdrop=!1,this.nzAutofocus=null,this.visibleChange=new e.vpe,this.nzOnCancel=new e.vpe,this.nzOnConfirm=new e.vpe,this.componentFactory=this.resolver.resolveComponentFactory(dt)}getProxyPropertyMap(){return Object.assign({nzOkText:["nzOkText",()=>this.nzOkText],nzOkType:["nzOkType",()=>this.nzOkType],nzCancelText:["nzCancelText",()=>this.nzCancelText],nzCondition:["nzCondition",()=>this.nzCondition],nzIcon:["nzIcon",()=>this.nzIcon],nzPopconfirmShowArrow:["nzPopconfirmShowArrow",()=>this.nzPopconfirmShowArrow],nzPopconfirmBackdrop:["nzBackdrop",()=>this.nzPopconfirmBackdrop],nzAutoFocus:["nzAutoFocus",()=>this.nzAutofocus]},super.getProxyPropertyMap())}createComponent(){super.createComponent(),this.component.nzOnCancel.pipe((0,v.R)(this.destroy$)).subscribe(()=>{this.nzOnCancel.emit()}),this.component.nzOnConfirm.pipe((0,v.R)(this.destroy$)).subscribe(()=>{this.nzOnConfirm.emit()})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(e.SBq),e.Y36(e.s_b),e.Y36(e._Vd),e.Y36(e.Qsj),e.Y36(ge.P,9),e.Y36(b.jY))},n.\u0275dir=e.lG2({type:n,selectors:[["","nz-popconfirm",""]],hostVars:2,hostBindings:function(t,o){2&t&&e.ekj("ant-popover-open",o.visible)},inputs:{trigger:["nzPopconfirmTrigger","trigger"],placement:["nzPopconfirmPlacement","placement"],nzCondition:"nzCondition",nzPopconfirmShowArrow:"nzPopconfirmShowArrow",nzPopconfirmBackdrop:"nzPopconfirmBackdrop",nzAutofocus:"nzAutofocus",title:["nzPopconfirmTitle","title"],directiveTitle:["nz-popconfirm","directiveTitle"],origin:["nzPopconfirmOrigin","origin"],mouseEnterDelay:["nzPopconfirmMouseEnterDelay","mouseEnterDelay"],mouseLeaveDelay:["nzPopconfirmMouseLeaveDelay","mouseLeaveDelay"],overlayClassName:["nzPopconfirmOverlayClassName","overlayClassName"],overlayStyle:["nzPopconfirmOverlayStyle","overlayStyle"],visible:["nzPopconfirmVisible","visible"],nzOkText:"nzOkText",nzOkType:"nzOkType",nzCancelText:"nzCancelText",nzIcon:"nzIcon"},outputs:{visibleChange:"nzPopconfirmVisibleChange",nzOnCancel:"nzOnCancel",nzOnConfirm:"nzOnConfirm"},exportAs:["nzPopconfirm"],features:[e.qOj]}),(0,_.gn)([(0,f.yF)()],n.prototype,"nzCondition",void 0),(0,_.gn)([(0,f.yF)()],n.prototype,"nzPopconfirmShowArrow",void 0),(0,_.gn)([(0,b.oS)()],n.prototype,"nzPopconfirmBackdrop",void 0),(0,_.gn)([(0,b.oS)()],n.prototype,"nzAutofocus",void 0),n})(),dt=(()=>{class n extends E.XK{constructor(t,o,i,r,a){super(t,i,a),this.elementRef=o,this.noAnimation=a,this.nzCondition=!1,this.nzPopconfirmShowArrow=!0,this.nzOkType="primary",this.nzAutoFocus=null,this.nzOnCancel=new A.xQ,this.nzOnConfirm=new A.xQ,this._trigger="click",this.elementFocusedBeforeModalWasOpened=null,this._prefix="ant-popover",this.document=r}ngOnDestroy(){super.ngOnDestroy(),this.nzOnCancel.complete(),this.nzOnConfirm.complete()}show(){this.nzCondition?this.onConfirm():(this.capturePreviouslyFocusedElement(),super.show())}hide(){super.hide(),this.restoreFocus()}onCancel(){this.nzOnCancel.next(),super.hide()}onConfirm(){this.nzOnConfirm.next(),super.hide()}capturePreviouslyFocusedElement(){this.document&&(this.elementFocusedBeforeModalWasOpened=this.document.activeElement)}restoreFocus(){const t=this.elementFocusedBeforeModalWasOpened;if(t&&"function"==typeof t.focus){const o=this.document.activeElement,i=this.elementRef.nativeElement;(!o||o===this.document.body||o===i||i.contains(o))&&t.focus()}}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(e.sBO),e.Y36(e.SBq),e.Y36(x.Is,8),e.Y36(c.K0,8),e.Y36(ge.P,9))},n.\u0275cmp=e.Xpm({type:n,selectors:[["nz-popconfirm"]],viewQuery:function(t,o){if(1&t&&(e.Gf(tt,5,e.SBq),e.Gf(nt,5,e.SBq)),2&t){let i;e.iGM(i=e.CRH())&&(o.okBtn=i),e.iGM(i=e.CRH())&&(o.cancelBtn=i)}},exportAs:["nzPopconfirmComponent"],features:[e.qOj],decls:2,vars:5,consts:[["cdkConnectedOverlay","","nzConnectedOverlay","",3,"cdkConnectedOverlayHasBackdrop","cdkConnectedOverlayOrigin","cdkConnectedOverlayPositions","cdkConnectedOverlayOpen","cdkConnectedOverlayPush","overlayOutsideClick","detach","positionChange"],["overlay","cdkConnectedOverlay"],["cdkTrapFocus","",1,"ant-popover",3,"cdkTrapFocusAutoCapture","ngClass","ngStyle","nzNoAnimation"],[1,"ant-popover-content"],["class","ant-popover-arrow",4,"ngIf"],[1,"ant-popover-inner"],[1,"ant-popover-inner-content"],[1,"ant-popover-message"],[4,"nzStringTemplateOutlet"],[1,"ant-popover-buttons"],["nz-button","",3,"nzSize","click"],["cancelBtn",""],[4,"ngIf"],["nz-button","",3,"nzSize","nzType","click"],["okBtn",""],[1,"ant-popover-arrow"],[1,"ant-popover-message-title"],["nz-icon","","nzTheme","fill",3,"nzType"]],template:function(t,o){1&t&&(e.YNc(0,pt,17,19,"ng-template",0,1,e.W1O),e.NdJ("overlayOutsideClick",function(r){return o.onClickOutside(r)})("detach",function(){return o.hide()})("positionChange",function(r){return o.onPositionChange(r)})),2&t&&e.Q6J("cdkConnectedOverlayHasBackdrop",o.nzBackdrop)("cdkConnectedOverlayOrigin",o.origin)("cdkConnectedOverlayPositions",o._positions)("cdkConnectedOverlayOpen",o._visible)("cdkConnectedOverlayPush",!0)},directives:[Ne.pI,Fe.hQ,Ze.mK,c.mk,c.PC,ge.P,c.O5,j.f,ee.ix,Ie.dQ,de.w,k.Ls],pipes:[De.o9],encapsulation:2,data:{animation:[Pe.$C]},changeDetection:0}),n})(),mt=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=e.oAB({type:n}),n.\u0275inj=e.cJS({imports:[[x.vT,c.ez,ee.sL,Ne.U8,De.YI,k.PV,j.T,Fe.e4,ge.g,E.cg,Ze.rt]]}),n})();var me=l(1398),Be=l(3385),Je=l(2482),Ee=l(1729);function _t(n,s){if(1&n&&(e.ynx(0),e._UZ(1,"i",5),e.BQk()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("nzType",t.nzIconType||t.inferredIconType)("nzTheme",t.iconTheme)}}function ht(n,s){if(1&n&&(e.ynx(0),e._uU(1),e.BQk()),2&n){const t=e.oxw(4);e.xp6(1),e.Oqu(t.nzMessage)}}function ft(n,s){if(1&n&&(e.TgZ(0,"span",9),e.YNc(1,ht,2,1,"ng-container",10),e.qZA()),2&n){const t=e.oxw(3);e.xp6(1),e.Q6J("nzStringTemplateOutlet",t.nzMessage)}}function zt(n,s){if(1&n&&(e.ynx(0),e._uU(1),e.BQk()),2&n){const t=e.oxw(4);e.xp6(1),e.Oqu(t.nzDescription)}}function Ct(n,s){if(1&n&&(e.TgZ(0,"span",11),e.YNc(1,zt,2,1,"ng-container",10),e.qZA()),2&n){const t=e.oxw(3);e.xp6(1),e.Q6J("nzStringTemplateOutlet",t.nzDescription)}}function Tt(n,s){if(1&n&&(e.TgZ(0,"div",6),e.YNc(1,ft,2,1,"span",7),e.YNc(2,Ct,2,1,"span",8),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("ngIf",t.nzMessage),e.xp6(1),e.Q6J("ngIf",t.nzDescription)}}function kt(n,s){1&n&&e._UZ(0,"i",15)}function xt(n,s){if(1&n&&(e.ynx(0),e.TgZ(1,"span",16),e._uU(2),e.qZA(),e.BQk()),2&n){const t=e.oxw(4);e.xp6(2),e.Oqu(t.nzCloseText)}}function vt(n,s){if(1&n&&(e.ynx(0),e.YNc(1,xt,3,1,"ng-container",10),e.BQk()),2&n){const t=e.oxw(3);e.xp6(1),e.Q6J("nzStringTemplateOutlet",t.nzCloseText)}}function bt(n,s){if(1&n){const t=e.EpF();e.TgZ(0,"button",12),e.NdJ("click",function(){return e.CHM(t),e.oxw(2).closeAlert()}),e.YNc(1,kt,1,0,"ng-template",null,13,e.W1O),e.YNc(3,vt,2,1,"ng-container",14),e.qZA()}if(2&n){const t=e.MAs(2),o=e.oxw(2);e.xp6(3),e.Q6J("ngIf",o.nzCloseText)("ngIfElse",t)}}function yt(n,s){if(1&n){const t=e.EpF();e.TgZ(0,"div",1),e.NdJ("@slideAlertMotion.done",function(){return e.CHM(t),e.oxw().onFadeAnimationDone()}),e.YNc(1,_t,2,2,"ng-container",2),e.YNc(2,Tt,3,2,"div",3),e.YNc(3,bt,4,2,"button",4),e.qZA()}if(2&n){const t=e.oxw();e.ekj("ant-alert-rtl","rtl"===t.dir)("ant-alert-success","success"===t.nzType)("ant-alert-info","info"===t.nzType)("ant-alert-warning","warning"===t.nzType)("ant-alert-error","error"===t.nzType)("ant-alert-no-icon",!t.nzShowIcon)("ant-alert-banner",t.nzBanner)("ant-alert-closable",t.nzCloseable)("ant-alert-with-description",!!t.nzDescription),e.Q6J("@.disabled",t.nzNoAnimation)("@slideAlertMotion",void 0),e.xp6(1),e.Q6J("ngIf",t.nzShowIcon),e.xp6(1),e.Q6J("ngIf",t.nzMessage||t.nzDescription),e.xp6(1),e.Q6J("ngIf",t.nzCloseable||t.nzCloseText)}}let Mt=(()=>{class n{constructor(t,o,i){this.nzConfigService=t,this.cdr=o,this.directionality=i,this._nzModuleName="alert",this.nzCloseText=null,this.nzIconType=null,this.nzMessage=null,this.nzDescription=null,this.nzType="info",this.nzCloseable=!1,this.nzShowIcon=!1,this.nzBanner=!1,this.nzNoAnimation=!1,this.nzOnClose=new e.vpe,this.closed=!1,this.iconTheme="fill",this.inferredIconType="info-circle",this.dir="ltr",this.isTypeSet=!1,this.isShowIconSet=!1,this.destroy$=new A.xQ,this.nzConfigService.getConfigChangeEventForComponent("alert").pipe((0,v.R)(this.destroy$)).subscribe(()=>{this.cdr.markForCheck()})}ngOnInit(){var t;null===(t=this.directionality.change)||void 0===t||t.pipe((0,v.R)(this.destroy$)).subscribe(o=>{this.dir=o,this.cdr.detectChanges()}),this.dir=this.directionality.value}closeAlert(){this.closed=!0}onFadeAnimationDone(){this.closed&&this.nzOnClose.emit(!0)}ngOnChanges(t){const{nzShowIcon:o,nzDescription:i,nzType:r,nzBanner:a}=t;if(o&&(this.isShowIconSet=!0),r)switch(this.isTypeSet=!0,this.nzType){case"error":this.inferredIconType="close-circle";break;case"success":this.inferredIconType="check-circle";break;case"info":this.inferredIconType="info-circle";break;case"warning":this.inferredIconType="exclamation-circle"}i&&(this.iconTheme=this.nzDescription?"outline":"fill"),a&&(this.isTypeSet||(this.nzType="warning"),this.isShowIconSet||(this.nzShowIcon=!0))}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(b.jY),e.Y36(e.sBO),e.Y36(x.Is,8))},n.\u0275cmp=e.Xpm({type:n,selectors:[["nz-alert"]],inputs:{nzCloseText:"nzCloseText",nzIconType:"nzIconType",nzMessage:"nzMessage",nzDescription:"nzDescription",nzType:"nzType",nzCloseable:"nzCloseable",nzShowIcon:"nzShowIcon",nzBanner:"nzBanner",nzNoAnimation:"nzNoAnimation"},outputs:{nzOnClose:"nzOnClose"},exportAs:["nzAlert"],features:[e.TTD],decls:1,vars:1,consts:[["class","ant-alert",3,"ant-alert-rtl","ant-alert-success","ant-alert-info","ant-alert-warning","ant-alert-error","ant-alert-no-icon","ant-alert-banner","ant-alert-closable","ant-alert-with-description",4,"ngIf"],[1,"ant-alert"],[4,"ngIf"],["class","ant-alert-content",4,"ngIf"],["type","button","tabindex","0","class","ant-alert-close-icon",3,"click",4,"ngIf"],["nz-icon","",1,"ant-alert-icon",3,"nzType","nzTheme"],[1,"ant-alert-content"],["class","ant-alert-message",4,"ngIf"],["class","ant-alert-description",4,"ngIf"],[1,"ant-alert-message"],[4,"nzStringTemplateOutlet"],[1,"ant-alert-description"],["type","button","tabindex","0",1,"ant-alert-close-icon",3,"click"],["closeDefaultTemplate",""],[4,"ngIf","ngIfElse"],["nz-icon","","nzType","close"],[1,"ant-alert-close-text"]],template:function(t,o){1&t&&e.YNc(0,yt,4,23,"div",0),2&t&&e.Q6J("ngIf",!o.closed)},directives:[c.O5,k.Ls,j.f],encapsulation:2,data:{animation:[Pe.Rq]},changeDetection:0}),(0,_.gn)([(0,b.oS)(),(0,f.yF)()],n.prototype,"nzCloseable",void 0),(0,_.gn)([(0,b.oS)(),(0,f.yF)()],n.prototype,"nzShowIcon",void 0),(0,_.gn)([(0,f.yF)()],n.prototype,"nzBanner",void 0),(0,_.gn)([(0,f.yF)()],n.prototype,"nzNoAnimation",void 0),n})(),At=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=e.oAB({type:n}),n.\u0275inj=e.cJS({imports:[[x.vT,c.ez,k.PV,j.T]]}),n})();var te=l(3721),Te=l(269);function Ot(n,s){if(1&n&&(e.ynx(0),e._UZ(1,"i",8),e.BQk()),2&n){const t=e.oxw(3);e.xp6(1),e.Q6J("nzType",t.icon)}}function St(n,s){if(1&n&&(e.ynx(0),e._uU(1),e.BQk()),2&n){const t=s.$implicit,o=e.oxw(4);e.xp6(1),e.hij(" ",t(o.nzPercent)," ")}}const wt=function(n){return{$implicit:n}};function Pt(n,s){if(1&n&&e.YNc(0,St,2,1,"ng-container",9),2&n){const t=e.oxw(3);e.Q6J("nzStringTemplateOutlet",t.formatter)("nzStringTemplateOutletContext",e.VKq(2,wt,t.nzPercent))}}function Zt(n,s){if(1&n&&(e.TgZ(0,"span",5),e.YNc(1,Ot,2,1,"ng-container",6),e.YNc(2,Pt,1,4,"ng-template",null,7,e.W1O),e.qZA()),2&n){const t=e.MAs(3),o=e.oxw(2);e.xp6(1),e.Q6J("ngIf",("exception"===o.status||"success"===o.status)&&!o.nzFormat)("ngIfElse",t)}}function Nt(n,s){if(1&n&&e.YNc(0,Zt,4,2,"span",4),2&n){const t=e.oxw();e.Q6J("ngIf",t.nzShowInfo)}}function Ft(n,s){if(1&n&&e._UZ(0,"div",17),2&n){const t=e.oxw(4);e.Udp("width",t.nzSuccessPercent,"%")("border-radius","round"===t.nzStrokeLinecap?"100px":"0")("height",t.strokeWidth,"px")}}function Dt(n,s){if(1&n&&(e.TgZ(0,"div",13),e.TgZ(1,"div",14),e._UZ(2,"div",15),e.YNc(3,Ft,1,6,"div",16),e.qZA(),e.qZA()),2&n){const t=e.oxw(3);e.xp6(2),e.Udp("width",t.nzPercent,"%")("border-radius","round"===t.nzStrokeLinecap?"100px":"0")("background",t.isGradient?null:t.nzStrokeColor)("background-image",t.isGradient?t.lineGradient:null)("height",t.strokeWidth,"px"),e.xp6(1),e.Q6J("ngIf",t.nzSuccessPercent||0===t.nzSuccessPercent)}}function It(n,s){}function Bt(n,s){if(1&n&&(e.ynx(0),e.YNc(1,Dt,4,11,"div",11),e.YNc(2,It,0,0,"ng-template",12),e.BQk()),2&n){const t=e.oxw(2),o=e.MAs(1);e.xp6(1),e.Q6J("ngIf",!t.isSteps),e.xp6(1),e.Q6J("ngTemplateOutlet",o)}}function Jt(n,s){1&n&&e._UZ(0,"div",20),2&n&&e.Q6J("ngStyle",s.$implicit)}function Et(n,s){}function Qt(n,s){if(1&n&&(e.TgZ(0,"div",18),e.YNc(1,Jt,1,1,"div",19),e.YNc(2,Et,0,0,"ng-template",12),e.qZA()),2&n){const t=e.oxw(2),o=e.MAs(1);e.xp6(1),e.Q6J("ngForOf",t.steps),e.xp6(1),e.Q6J("ngTemplateOutlet",o)}}function Yt(n,s){if(1&n&&(e.TgZ(0,"div"),e.YNc(1,Bt,3,2,"ng-container",2),e.YNc(2,Qt,3,2,"div",10),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("ngIf",!t.isSteps),e.xp6(1),e.Q6J("ngIf",t.isSteps)}}function Ut(n,s){if(1&n&&(e.O4$(),e._UZ(0,"stop")),2&n){const t=s.$implicit;e.uIk("offset",t.offset)("stop-color",t.color)}}function qt(n,s){if(1&n&&(e.O4$(),e.TgZ(0,"defs"),e.TgZ(1,"linearGradient",24),e.YNc(2,Ut,1,2,"stop",25),e.qZA(),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("id","gradient-"+t.gradientId),e.xp6(1),e.Q6J("ngForOf",t.circleGradient)}}function Rt(n,s){if(1&n&&(e.O4$(),e._UZ(0,"path",26)),2&n){const t=s.$implicit,o=e.oxw(2);e.Q6J("ngStyle",t.strokePathStyle),e.uIk("d",o.pathString)("stroke-linecap",o.nzStrokeLinecap)("stroke",t.stroke)("stroke-width",o.nzPercent?o.strokeWidth:0)}}function Lt(n,s){1&n&&e.O4$()}function Gt(n,s){if(1&n&&(e.TgZ(0,"div",14),e.O4$(),e.TgZ(1,"svg",21),e.YNc(2,qt,3,2,"defs",2),e._UZ(3,"path",22),e.YNc(4,Rt,1,5,"path",23),e.qZA(),e.YNc(5,Lt,0,0,"ng-template",12),e.qZA()),2&n){const t=e.oxw(),o=e.MAs(1);e.Udp("width",t.nzWidth,"px")("height",t.nzWidth,"px")("font-size",.15*t.nzWidth+6,"px"),e.ekj("ant-progress-circle-gradient",t.isGradient),e.xp6(2),e.Q6J("ngIf",t.isGradient),e.xp6(1),e.Q6J("ngStyle",t.trailPathStyle),e.uIk("stroke-width",t.strokeWidth)("d",t.pathString),e.xp6(1),e.Q6J("ngForOf",t.progressCirclePath)("ngForTrackBy",t.trackByFn),e.xp6(1),e.Q6J("ngTemplateOutlet",o)}}const Ye=n=>{let s=[];return Object.keys(n).forEach(t=>{const o=n[t],i=function(n){return+n.replace("%","")}(t);isNaN(i)||s.push({key:i,value:o})}),s=s.sort((t,o)=>t.key-o.key),s};let Vt=0;const Ue="progress",Wt=new Map([["success","check"],["exception","close"]]),Xt=new Map([["normal","#108ee9"],["exception","#ff5500"],["success","#87d068"]]),Kt=n=>`${n}%`;let en=(()=>{class n{constructor(t,o,i){this.cdr=t,this.nzConfigService=o,this.directionality=i,this._nzModuleName=Ue,this.nzShowInfo=!0,this.nzWidth=132,this.nzStrokeColor=void 0,this.nzSize="default",this.nzPercent=0,this.nzStrokeWidth=void 0,this.nzGapDegree=void 0,this.nzType="line",this.nzGapPosition="top",this.nzStrokeLinecap="round",this.nzSteps=0,this.steps=[],this.lineGradient=null,this.isGradient=!1,this.isSteps=!1,this.gradientId=Vt++,this.progressCirclePath=[],this.trailPathStyle=null,this.dir="ltr",this.trackByFn=r=>`${r}`,this.cachedStatus="normal",this.inferredStatus="normal",this.destroy$=new A.xQ}get formatter(){return this.nzFormat||Kt}get status(){return this.nzStatus||this.inferredStatus}get strokeWidth(){return this.nzStrokeWidth||("line"===this.nzType&&"small"!==this.nzSize?8:6)}get isCircleStyle(){return"circle"===this.nzType||"dashboard"===this.nzType}ngOnChanges(t){const{nzSteps:o,nzGapPosition:i,nzStrokeLinecap:r,nzStrokeColor:a,nzGapDegree:u,nzType:d,nzStatus:T,nzPercent:M,nzSuccessPercent:V,nzStrokeWidth:ie}=t;T&&(this.cachedStatus=this.nzStatus||this.cachedStatus),(M||V)&&(parseInt(this.nzPercent.toString(),10)>=100?((0,f.DX)(this.nzSuccessPercent)&&this.nzSuccessPercent>=100||void 0===this.nzSuccessPercent)&&(this.inferredStatus="success"):this.inferredStatus=this.cachedStatus),(T||M||V||a)&&this.updateIcon(),a&&this.setStrokeColor(),(i||r||u||d||M||a||a)&&this.getCirclePaths(),(M||o||ie)&&(this.isSteps=this.nzSteps>0,this.isSteps&&this.getSteps())}ngOnInit(){var t;this.nzConfigService.getConfigChangeEventForComponent(Ue).pipe((0,v.R)(this.destroy$)).subscribe(()=>{this.updateIcon(),this.setStrokeColor(),this.getCirclePaths()}),null===(t=this.directionality.change)||void 0===t||t.pipe((0,v.R)(this.destroy$)).subscribe(o=>{this.dir=o,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}updateIcon(){const t=Wt.get(this.status);this.icon=t?t+(this.isCircleStyle?"-o":"-circle-fill"):""}getSteps(){const t=Math.floor(this.nzSteps*(this.nzPercent/100)),o="small"===this.nzSize?2:14,i=[];for(let r=0;r<this.nzSteps;r++){let a;r<=t-1&&(a=this.nzStrokeColor),i.push({backgroundColor:`${a}`,width:`${o}px`,height:`${this.strokeWidth}px`})}this.steps=i}getCirclePaths(){if(!this.isCircleStyle)return;const t=(0,f.DX)(this.nzSuccessPercent)?[this.nzSuccessPercent,this.nzPercent]:[this.nzPercent],o=50-this.strokeWidth/2,r=2*Math.PI*o,a=this.nzGapDegree||("circle"===this.nzType?0:75);let u=0,d=-o,T=0,M=-2*o;switch(this.nzGapPosition||("circle"===this.nzType?"top":"bottom")){case"left":u=-o,d=0,T=2*o,M=0;break;case"right":u=o,d=0,T=-2*o,M=0;break;case"bottom":d=o,M=2*o}this.pathString=`M 50,50 m ${u},${d}\n a ${o},${o} 0 1 1 ${T},${-M}\n a ${o},${o} 0 1 1 ${-T},${M}`,this.trailPathStyle={strokeDasharray:`${r-a}px ${r}px`,strokeDashoffset:`-${a/2}px`,transition:"stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s"},this.progressCirclePath=t.map((V,ie)=>{const Ae=2===t.length&&0===ie;return{stroke:this.isGradient&&!Ae?`url(#gradient-${this.gradientId})`:null,strokePathStyle:{stroke:this.isGradient?null:Ae?Xt.get("success"):this.nzStrokeColor,transition:"stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s",strokeDasharray:`${(V||0)/100*(r-a)}px ${r}px`,strokeDashoffset:`-${a/2}px`}}}).reverse()}setStrokeColor(){const t=this.nzStrokeColor,o=this.isGradient=!!t&&"string"!=typeof t;o&&!this.isCircleStyle?this.lineGradient=(n=>{const{from:s="#1890ff",to:t="#1890ff",direction:o="to right"}=n,i=(0,_._T)(n,["from","to","direction"]);return 0!==Object.keys(i).length?`linear-gradient(${o}, ${Ye(i).map(({key:a,value:u})=>`${u} ${a}%`).join(", ")})`:`linear-gradient(${o}, ${s}, ${t})`})(t):o&&this.isCircleStyle?this.circleGradient=(n=>Ye(this.nzStrokeColor).map(({key:s,value:t})=>({offset:`${s}%`,color:t})))():(this.lineGradient=null,this.circleGradient=[])}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(e.sBO),e.Y36(b.jY),e.Y36(x.Is,8))},n.\u0275cmp=e.Xpm({type:n,selectors:[["nz-progress"]],inputs:{nzShowInfo:"nzShowInfo",nzWidth:"nzWidth",nzStrokeColor:"nzStrokeColor",nzSize:"nzSize",nzPercent:"nzPercent",nzStrokeWidth:"nzStrokeWidth",nzGapDegree:"nzGapDegree",nzType:"nzType",nzGapPosition:"nzGapPosition",nzStrokeLinecap:"nzStrokeLinecap",nzSteps:"nzSteps",nzFormat:"nzFormat",nzSuccessPercent:"nzSuccessPercent",nzStatus:"nzStatus"},exportAs:["nzProgress"],features:[e.TTD],decls:5,vars:15,consts:[["progressInfoTemplate",""],[3,"ngClass"],[4,"ngIf"],["class","ant-progress-inner",3,"width","height","fontSize","ant-progress-circle-gradient",4,"ngIf"],["class","ant-progress-text",4,"ngIf"],[1,"ant-progress-text"],[4,"ngIf","ngIfElse"],["formatTemplate",""],["nz-icon","",3,"nzType"],[4,"nzStringTemplateOutlet","nzStringTemplateOutletContext"],["class","ant-progress-steps-outer",4,"ngIf"],["class","ant-progress-outer",4,"ngIf"],[3,"ngTemplateOutlet"],[1,"ant-progress-outer"],[1,"ant-progress-inner"],[1,"ant-progress-bg"],["class","ant-progress-success-bg",3,"width","border-radius","height",4,"ngIf"],[1,"ant-progress-success-bg"],[1,"ant-progress-steps-outer"],["class","ant-progress-steps-item",3,"ngStyle",4,"ngFor","ngForOf"],[1,"ant-progress-steps-item",3,"ngStyle"],["viewBox","0 0 100 100",1,"ant-progress-circle"],["stroke","#f3f3f3","fill-opacity","0",1,"ant-progress-circle-trail",3,"ngStyle"],["class","ant-progress-circle-path","fill-opacity","0",3,"ngStyle",4,"ngFor","ngForOf","ngForTrackBy"],["x1","100%","y1","0%","x2","0%","y2","0%",3,"id"],[4,"ngFor","ngForOf"],["fill-opacity","0",1,"ant-progress-circle-path",3,"ngStyle"]],template:function(t,o){1&t&&(e.YNc(0,Nt,1,1,"ng-template",null,0,e.W1O),e.TgZ(2,"div",1),e.YNc(3,Yt,3,2,"div",2),e.YNc(4,Gt,6,15,"div",3),e.qZA()),2&t&&(e.xp6(2),e.ekj("ant-progress-line","line"===o.nzType)("ant-progress-small","small"===o.nzSize)("ant-progress-show-info",o.nzShowInfo)("ant-progress-circle",o.isCircleStyle)("ant-progress-steps",o.isSteps)("ant-progress-rtl","rtl"===o.dir),e.Q6J("ngClass","ant-progress ant-progress-status-"+o.status),e.xp6(1),e.Q6J("ngIf","line"===o.nzType),e.xp6(1),e.Q6J("ngIf",o.isCircleStyle))},directives:[c.mk,c.O5,k.Ls,j.f,c.tP,c.sg,c.PC],encapsulation:2,changeDetection:0}),(0,_.gn)([(0,b.oS)()],n.prototype,"nzShowInfo",void 0),(0,_.gn)([(0,b.oS)()],n.prototype,"nzStrokeColor",void 0),(0,_.gn)([(0,b.oS)()],n.prototype,"nzSize",void 0),(0,_.gn)([(0,f.Rn)()],n.prototype,"nzSuccessPercent",void 0),(0,_.gn)([(0,f.Rn)()],n.prototype,"nzPercent",void 0),(0,_.gn)([(0,b.oS)(),(0,f.Rn)()],n.prototype,"nzStrokeWidth",void 0),(0,_.gn)([(0,b.oS)(),(0,f.Rn)()],n.prototype,"nzGapDegree",void 0),(0,_.gn)([(0,b.oS)()],n.prototype,"nzGapPosition",void 0),(0,_.gn)([(0,b.oS)()],n.prototype,"nzStrokeLinecap",void 0),(0,_.gn)([(0,f.Rn)()],n.prototype,"nzSteps",void 0),n})(),tn=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=e.oAB({type:n}),n.\u0275inj=e.cJS({imports:[[x.vT,c.ez,k.PV,j.T]]}),n})();var nn=l(4466),qe=l(6983),on=l(5766),Re=l(3190),_e=l(5304),Y=l(5917),sn=l(8891),Le=l(3637),rn=l(6561);function ln(n){const{subscriber:s,counter:t,period:o}=n;s.next(t),this.schedule({subscriber:s,counter:t+1,period:o},o)}var y=(()=>{return(n=y||(y={})).ALL="all",n.PREPARING="preparing",n.LIVING="living",n.ROUNDING="rounding",n.MONITOR_ENABLED="monitor_enabled",n.MONITOR_DISABLED="monitor_disabled",n.RECORDER_ENABLED="recorder_enabled",n.RECORDER_DISABLED="recorder_disabled",n.STOPPED="stopped",n.WAITTING="waitting",n.RECORDING="recording",n.REMUXING="remuxing",n.INJECTING="injecting",y;var n})(),S=(()=>{return(n=S||(S={})).STOPPED="stopped",n.WAITING="waiting",n.RECORDING="recording",n.REMUXING="remuxing",n.INJECTING="injecting",S;var n})(),Ge=l(9825),cn=l(3080),pn=l(2323),un=l(2340),gn=l(1841);const z=un.N.apiUrl;let $e=(()=>{class n{constructor(t){this.http=t}getAllTaskData(t=y.ALL){return this.http.get(z+"/api/v1/tasks/data",{params:{select:t}})}getTaskData(t){return this.http.get(z+`/api/v1/tasks/${t}/data`)}getTaskFileDetails(t){return this.http.get(z+`/api/v1/tasks/${t}/files`)}getTaskParam(t){return this.http.get(z+`/api/v1/tasks/${t}/param`)}updateAllTaskInfos(){return this.http.post(z+"/api/v1/tasks/info",null)}updateTaskInfo(t){return this.http.post(z+`/api/v1/tasks/${t}/info`,null)}addTask(t){return this.http.post(z+`/api/v1/tasks/${t}`,null)}removeTask(t){return this.http.delete(z+`/api/v1/tasks/${t}`)}removeAllTasks(){return this.http.delete(z+"/api/v1/tasks")}startTask(t){return this.http.post(z+`/api/v1/tasks/${t}/start`,null)}startAllTasks(){return this.http.post(z+"/api/v1/tasks/start",null)}stopTask(t,o=!1,i=!1){return this.http.post(z+`/api/v1/tasks/${t}/stop`,{force:o,background:i})}stopAllTasks(t=!1,o=!1){return this.http.post(z+"/api/v1/tasks/stop",{force:t,background:o})}enableTaskMonitor(t){return this.http.post(z+`/api/v1/tasks/${t}/monitor/enable`,null)}enableAllMonitors(){return this.http.post(z+"/api/v1/tasks/monitor/enable",null)}disableTaskMonitor(t,o=!1){return this.http.post(z+`/api/v1/tasks/${t}/monitor/disable`,{background:o})}disableAllMonitors(t=!1){return this.http.post(z+"/api/v1/tasks/monitor/disable",{background:t})}enableTaskRecorder(t){return this.http.post(z+`/api/v1/tasks/${t}/recorder/enable`,null)}enableAllRecorders(){return this.http.post(z+"/api/v1/tasks/recorder/enable",null)}disableTaskRecorder(t,o=!1,i=!1){return this.http.post(z+`/api/v1/tasks/${t}/recorder/disable`,{force:o,background:i})}disableAllRecorders(t=!1,o=!1){return this.http.post(z+"/api/v1/tasks/recorder/disable",{force:t,background:o})}}return n.\u0275fac=function(t){return new(t||n)(e.LFG(gn.eN))},n.\u0275prov=e.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();var dn=l(4395),mn=l(7519),U=l(8002),C=l(8307);const ne=["(max-width: 534.98px)","(min-width: 535px) and (max-width: 1059.98px)","(min-width: 1060px)"];var ke=l(8058);let xe=(()=>{class n{constructor(t,o){this.message=t,this.taskService=o}getAllTaskRoomIds(){return this.taskService.getAllTaskData().pipe((0,U.U)(t=>t.map(o=>o.room_info.room_id)))}updateTaskInfo(t){return this.taskService.updateTaskInfo(t).pipe((0,C.b)(()=>{this.message.success("\u6210\u529f\u5237\u65b0\u4efb\u52a1\u7684\u6570\u636e")},o=>{this.message.error(`\u5237\u65b0\u4efb\u52a1\u7684\u6570\u636e\u51fa\u9519: ${o.message}`)}))}updateAllTaskInfos(){return this.taskService.updateAllTaskInfos().pipe((0,C.b)(()=>{this.message.success("\u6210\u529f\u5237\u65b0\u5168\u90e8\u4efb\u52a1\u7684\u6570\u636e")},t=>{this.message.error(`\u5237\u65b0\u5168\u90e8\u4efb\u52a1\u7684\u6570\u636e\u51fa\u9519: ${t.message}`)}))}addTask(t){return this.taskService.addTask(t).pipe((0,U.U)(o=>({type:"success",message:"\u6210\u529f\u6dfb\u52a0\u4efb\u52a1"})),(0,_e.K)(o=>{let i;return i=409==o.status?{type:"error",message:"\u4efb\u52a1\u5df2\u5b58\u5728\uff0c\u4e0d\u80fd\u91cd\u590d\u6dfb\u52a0\u3002"}:403==o.status?{type:"warning",message:"\u4efb\u52a1\u6570\u91cf\u8d85\u8fc7\u9650\u5236\uff0c\u4e0d\u80fd\u6dfb\u52a0\u4efb\u52a1\u3002"}:404==o.status?{type:"error",message:"\u76f4\u64ad\u95f4\u4e0d\u5b58\u5728"}:{type:"error",message:`\u6dfb\u52a0\u4efb\u52a1\u51fa\u9519: ${o.message}`},(0,Y.of)(i)}),(0,U.U)(o=>(o.message=`${t}: ${o.message}`,o)),(0,C.b)(o=>{this.message[o.type](o.message)}))}removeTask(t){return this.taskService.removeTask(t).pipe((0,C.b)(()=>{this.message.success("\u4efb\u52a1\u5df2\u5220\u9664")},o=>{this.message.error(`\u5220\u9664\u4efb\u52a1\u51fa\u9519: ${o.message}`)}))}removeAllTasks(){const t=this.message.loading("\u6b63\u5728\u5220\u9664\u5168\u90e8\u4efb\u52a1...",{nzDuration:0}).messageId;return this.taskService.removeAllTasks().pipe((0,C.b)(()=>{this.message.remove(t),this.message.success("\u6210\u529f\u5220\u9664\u5168\u90e8\u4efb\u52a1")},o=>{this.message.remove(t),this.message.error(`\u5220\u9664\u5168\u90e8\u4efb\u52a1\u51fa\u9519: ${o.message}`)}))}startTask(t){const o=this.message.loading("\u6b63\u5728\u8fd0\u884c\u4efb\u52a1...",{nzDuration:0}).messageId;return this.taskService.startTask(t).pipe((0,C.b)(()=>{this.message.remove(o),this.message.success("\u6210\u529f\u8fd0\u884c\u4efb\u52a1")},i=>{this.message.remove(o),this.message.error(`\u8fd0\u884c\u4efb\u52a1\u51fa\u9519: ${i.message}`)}))}startAllTasks(){const t=this.message.loading("\u6b63\u5728\u8fd0\u884c\u5168\u90e8\u4efb\u52a1...",{nzDuration:0}).messageId;return this.taskService.startAllTasks().pipe((0,C.b)(()=>{this.message.remove(t),this.message.success("\u6210\u529f\u8fd0\u884c\u5168\u90e8\u4efb\u52a1")},o=>{this.message.remove(t),this.message.error(`\u8fd0\u884c\u5168\u90e8\u4efb\u52a1\u51fa\u9519: ${o.message}`)}))}stopTask(t,o=!1){const i=this.message.loading("\u6b63\u5728\u505c\u6b62\u4efb\u52a1...",{nzDuration:0}).messageId;return this.taskService.stopTask(t,o).pipe((0,C.b)(()=>{this.message.remove(i),this.message.success("\u6210\u529f\u505c\u6b62\u4efb\u52a1")},r=>{this.message.remove(i),this.message.error(`\u505c\u6b62\u4efb\u52a1\u51fa\u9519: ${r.message}`)}))}stopAllTasks(t=!1){const o=this.message.loading("\u6b63\u5728\u505c\u6b62\u5168\u90e8\u4efb\u52a1...",{nzDuration:0}).messageId;return this.taskService.stopAllTasks(t).pipe((0,C.b)(()=>{this.message.remove(o),this.message.success("\u6210\u529f\u505c\u6b62\u5168\u90e8\u4efb\u52a1")},i=>{this.message.remove(o),this.message.error(`\u505c\u6b62\u5168\u90e8\u4efb\u52a1\u51fa\u9519: ${i.message}`)}))}enableRecorder(t){const o=this.message.loading("\u6b63\u5728\u5f00\u542f\u5f55\u5236...",{nzDuration:0}).messageId;return this.taskService.enableTaskRecorder(t).pipe((0,C.b)(()=>{this.message.remove(o),this.message.success("\u6210\u529f\u5f00\u542f\u5f55\u5236")},i=>{this.message.remove(o),this.message.error(`\u5f00\u542f\u5f55\u5236\u51fa\u9519: ${i.message}`)}))}enableAllRecorders(){const t=this.message.loading("\u6b63\u5728\u5f00\u542f\u5168\u90e8\u4efb\u52a1\u7684\u5f55\u5236...",{nzDuration:0}).messageId;return this.taskService.enableAllRecorders().pipe((0,C.b)(()=>{this.message.remove(t),this.message.success("\u6210\u529f\u5f00\u542f\u5168\u90e8\u4efb\u52a1\u7684\u5f55\u5236")},o=>{this.message.remove(t),this.message.error(`\u5f00\u542f\u5168\u90e8\u4efb\u52a1\u7684\u5f55\u5236\u51fa\u9519: ${o.message}`)}))}disableRecorder(t,o=!1){const i=this.message.loading("\u6b63\u5728\u5173\u95ed\u5f55\u5236...",{nzDuration:0}).messageId;return this.taskService.disableTaskRecorder(t,o).pipe((0,C.b)(()=>{this.message.remove(i),this.message.success("\u6210\u529f\u5173\u95ed\u5f55\u5236")},r=>{this.message.remove(i),this.message.error(`\u5173\u95ed\u5f55\u5236\u51fa\u9519: ${r.message}`)}))}disableAllRecorders(t=!1){const o=this.message.loading("\u6b63\u5728\u5173\u95ed\u5168\u90e8\u4efb\u52a1\u7684\u5f55\u5236...",{nzDuration:0}).messageId;return this.taskService.disableAllRecorders(t).pipe((0,C.b)(()=>{this.message.remove(o),this.message.success("\u6210\u529f\u5173\u95ed\u5168\u90e8\u4efb\u52a1\u7684\u5f55\u5236")},i=>{this.message.remove(o),this.message.error(`\u5173\u95ed\u5168\u90e8\u4efb\u52a1\u7684\u5f55\u5236\u51fa\u9519: ${i.message}`)}))}}return n.\u0275fac=function(t){return new(t||n)(e.LFG(ke.dD),e.LFG($e))},n.\u0275prov=e.Yz7({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();var oe=l(3730);function _n(n,s){if(1&n&&(e.ynx(0),e.GkF(1,8),e._UZ(2,"nz-divider",13),e.GkF(3,8),e._UZ(4,"nz-divider",13),e.GkF(5,8),e._UZ(6,"nz-divider",13),e.GkF(7,8),e.BQk()),2&n){e.oxw();const t=e.MAs(5),o=e.MAs(9),i=e.MAs(11),r=e.MAs(13);e.xp6(1),e.Q6J("ngTemplateOutlet",t),e.xp6(2),e.Q6J("ngTemplateOutlet",o),e.xp6(2),e.Q6J("ngTemplateOutlet",i),e.xp6(2),e.Q6J("ngTemplateOutlet",r)}}function hn(n,s){if(1&n&&(e.ynx(0),e.GkF(1,8),e._UZ(2,"nz-divider",13),e.GkF(3,8),e._UZ(4,"nz-divider",13),e.GkF(5,8),e._UZ(6,"nz-divider",13),e.GkF(7,8),e.BQk()),2&n){e.oxw();const t=e.MAs(7),o=e.MAs(9),i=e.MAs(11),r=e.MAs(13);e.xp6(1),e.Q6J("ngTemplateOutlet",t),e.xp6(2),e.Q6J("ngTemplateOutlet",o),e.xp6(2),e.Q6J("ngTemplateOutlet",i),e.xp6(2),e.Q6J("ngTemplateOutlet",r)}}function fn(n,s){if(1&n&&(e.ynx(0),e.GkF(1,8),e.GkF(2,8),e.BQk()),2&n){e.oxw();const t=e.MAs(9),o=e.MAs(20);e.xp6(1),e.Q6J("ngTemplateOutlet",t),e.xp6(1),e.Q6J("ngTemplateOutlet",o)}}function zn(n,s){if(1&n&&(e.ynx(0),e.TgZ(1,"label",16),e._uU(2),e.qZA(),e.BQk()),2&n){const t=s.$implicit;e.xp6(1),e.Q6J("nzValue",t.value),e.xp6(1),e.Oqu(t.label)}}function Cn(n,s){if(1&n){const t=e.EpF();e.TgZ(0,"nz-radio-group",14),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw().selection=i})("ngModelChange",function(i){return e.CHM(t),e.oxw().selectionChange.emit(i)}),e.YNc(1,zn,3,2,"ng-container",15),e.qZA()}if(2&n){const t=e.oxw();e.Q6J("ngModel",t.selection),e.xp6(1),e.Q6J("ngForOf",t.selections)}}function Tn(n,s){if(1&n){const t=e.EpF();e.TgZ(0,"nz-select",17),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw().selection=i})("ngModelChange",function(i){return e.CHM(t),e.oxw().selectionChange.emit(i)}),e.qZA()}if(2&n){const t=e.oxw();e.Q6J("nzOptions",t.selections)("ngModel",t.selection)}}function kn(n,s){if(1&n){const t=e.EpF();e.TgZ(0,"i",23),e.NdJ("click",function(){e.CHM(t),e.oxw(2);const i=e.MAs(2),r=e.oxw();return i.value="",r.onFilterInput("")}),e.qZA()}}function xn(n,s){if(1&n&&e.YNc(0,kn,1,0,"i",22),2&n){e.oxw();const t=e.MAs(2);e.Q6J("ngIf",t.value)}}function vn(n,s){if(1&n){const t=e.EpF();e.TgZ(0,"nz-input-group",18),e.TgZ(1,"input",19,20),e.NdJ("input",function(){e.CHM(t);const i=e.MAs(2);return e.oxw().onFilterInput(i.value)}),e.qZA(),e.qZA(),e.YNc(3,xn,1,1,"ng-template",null,21,e.W1O)}if(2&n){const t=e.MAs(4);e.Q6J("nzSuffix",t)}}function bn(n,s){if(1&n){const t=e.EpF();e.TgZ(0,"button",24),e.NdJ("click",function(){return e.CHM(t),e.oxw().toggleReverse()}),e.TgZ(1,"span"),e._uU(2),e.qZA(),e._UZ(3,"i",25),e.qZA()}if(2&n){const t=e.oxw();e.xp6(2),e.Oqu(t.reverse?"\u5012\u5e8f":"\u6b63\u5e8f"),e.xp6(1),e.Q6J("nzType",t.reverse?"swap-left":"swap-right")("nzRotate",90)}}function yn(n,s){if(1&n&&(e.TgZ(0,"button",26),e._UZ(1,"i",27),e.qZA()),2&n){e.oxw();const t=e.MAs(15);e.Q6J("nzDropdownMenu",t)}}function Mn(n,s){if(1&n){const t=e.EpF();e.TgZ(0,"ul",28),e.TgZ(1,"li",29),e.NdJ("click",function(){return e.CHM(t),e.oxw().startAllTasks()}),e._uU(2,"\u5168\u90e8\u8fd0\u884c"),e.qZA(),e.TgZ(3,"li",29),e.NdJ("click",function(){return e.CHM(t),e.oxw().stopAllTasks()}),e._uU(4,"\u5168\u90e8\u505c\u6b62"),e.qZA(),e.TgZ(5,"li",29),e.NdJ("click",function(){return e.CHM(t),e.oxw().stopAllTasks(!0)}),e._uU(6,"\u5168\u90e8\u5f3a\u5236\u505c\u6b62"),e.qZA(),e._UZ(7,"li",30),e.TgZ(8,"li",29),e.NdJ("click",function(){return e.CHM(t),e.oxw().disableAllRecorders(!1)}),e._uU(9,"\u5168\u90e8\u5173\u95ed\u5f55\u5236"),e.qZA(),e.TgZ(10,"li",29),e.NdJ("click",function(){return e.CHM(t),e.oxw().disableAllRecorders(!0)}),e._uU(11,"\u5168\u90e8\u5f3a\u5236\u5173\u95ed\u5f55\u5236"),e.qZA(),e._UZ(12,"li",30),e.TgZ(13,"li",29),e.NdJ("click",function(){return e.CHM(t),e.oxw().removeAllTasks()}),e._uU(14,"\u5168\u90e8\u5220\u9664"),e.qZA(),e.TgZ(15,"li",29),e.NdJ("click",function(){return e.CHM(t),e.oxw().updateAllTaskInfos()}),e._uU(16,"\u5168\u90e8\u5237\u65b0\u6570\u636e"),e.qZA(),e.TgZ(17,"li",29),e.NdJ("click",function(){return e.CHM(t),e.oxw().copyAllTaskRoomIds()}),e._uU(18,"\u590d\u5236\u5168\u90e8\u623f\u95f4\u53f7"),e.qZA(),e.qZA()}}function An(n,s){if(1&n){const t=e.EpF();e.TgZ(0,"button",31),e.NdJ("click",function(){return e.CHM(t),e.oxw().drawerVisible=!0}),e._UZ(1,"i",27),e.qZA()}}function On(n,s){if(1&n&&(e.ynx(0),e.TgZ(1,"div",35),e._UZ(2,"nz-divider",36),e.GkF(3,8),e._UZ(4,"nz-divider",37),e.TgZ(5,"div",38),e.GkF(6,8),e.qZA(),e.qZA(),e.BQk()),2&n){e.oxw(2);const t=e.MAs(5),o=e.MAs(11);e.xp6(3),e.Q6J("ngTemplateOutlet",t),e.xp6(3),e.Q6J("ngTemplateOutlet",o)}}function Sn(n,s){if(1&n){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",39),e.NdJ("click",function(){return e.CHM(t),e.oxw(2).menuDrawerVisible=!1}),e.GkF(2,8),e.qZA(),e.BQk()}if(2&n){e.oxw(2);const t=e.MAs(18);e.xp6(2),e.Q6J("ngTemplateOutlet",t)}}const wn=function(){return{padding:"0"}};function Pn(n,s){if(1&n){const t=e.EpF();e.TgZ(0,"nz-drawer",32),e.NdJ("nzVisibleChange",function(i){return e.CHM(t),e.oxw().drawerVisible=i})("nzOnClose",function(){return e.CHM(t),e.oxw().drawerVisible=!1}),e.YNc(1,On,7,2,"ng-container",33),e.TgZ(2,"nz-drawer",34),e.NdJ("nzVisibleChange",function(i){return e.CHM(t),e.oxw().menuDrawerVisible=i})("nzOnClose",function(){return e.CHM(t),e.oxw().menuDrawerVisible=!1}),e.YNc(3,Sn,3,1,"ng-container",33),e.qZA(),e.qZA()}if(2&n){const t=e.oxw(),o=e.MAs(23);e.Q6J("nzTitle",o)("nzClosable",!1)("nzVisible",t.drawerVisible),e.xp6(2),e.Q6J("nzClosable",!1)("nzBodyStyle",e.DdM(6,wn))("nzVisible",t.menuDrawerVisible)}}function Zn(n,s){if(1&n){const t=e.EpF();e.TgZ(0,"div",40),e.TgZ(1,"button",31),e.NdJ("click",function(){return e.CHM(t),e.oxw().menuDrawerVisible=!0}),e._UZ(2,"i",27),e.qZA(),e.qZA()}}let Nn=(()=>{class n{constructor(t,o,i,r,a,u){this.message=i,this.modal=r,this.clipboard=a,this.taskManager=u,this.selectionChange=new e.vpe,this.reverseChange=new e.vpe,this.filterChange=new e.vpe,this.destroyed=new A.xQ,this.useDrawer=!1,this.useSelector=!1,this.useRadioGroup=!0,this.drawerVisible=!1,this.menuDrawerVisible=!1,this.filterTerms=new A.xQ,this.selections=[{label:"\u5168\u90e8",value:y.ALL},{label:"\u5f55\u5236\u4e2d",value:y.RECORDING},{label:"\u5f55\u5236\u5173",value:y.RECORDER_DISABLED},{label:"\u505c\u6b62",value:y.STOPPED},{label:"\u76f4\u64ad",value:y.LIVING},{label:"\u8f6e\u64ad",value:y.ROUNDING},{label:"\u95f2\u7f6e",value:y.PREPARING}],o.observe(ne).pipe((0,v.R)(this.destroyed)).subscribe(d=>{this.useDrawer=d.breakpoints[ne[0]],this.useSelector=d.breakpoints[ne[1]],this.useRadioGroup=d.breakpoints[ne[2]],t.markForCheck()})}ngOnInit(){this.filterTerms.pipe((0,dn.b)(300),(0,mn.x)()).subscribe(t=>{this.filterChange.emit(t)})}ngOnDestroy(){this.destroyed.next(),this.destroyed.complete()}onFilterInput(t){this.filterTerms.next(t)}toggleReverse(){this.reverse=!this.reverse,this.reverseChange.emit(this.reverse)}removeAllTasks(){this.modal.confirm({nzTitle:"\u786e\u5b9a\u8981\u5220\u9664\u5168\u90e8\u4efb\u52a1\uff1f",nzContent:"\u6b63\u5728\u5f55\u5236\u7684\u4efb\u52a1\u5c06\u88ab\u5f3a\u5236\u505c\u6b62\uff01\u4efb\u52a1\u5220\u9664\u540e\u5c06\u4e0d\u53ef\u6062\u590d\uff01",nzOnOk:()=>new Promise((t,o)=>{this.taskManager.removeAllTasks().subscribe(t,o)})})}startAllTasks(){this.taskManager.startAllTasks().subscribe()}stopAllTasks(t=!1){t?this.modal.confirm({nzTitle:"\u786e\u5b9a\u8981\u5f3a\u5236\u505c\u6b62\u5168\u90e8\u4efb\u52a1\uff1f",nzContent:"\u6b63\u5728\u5f55\u5236\u7684\u6587\u4ef6\u4f1a\u88ab\u5f3a\u884c\u4e2d\u65ad\uff01\u786e\u5b9a\u8981\u653e\u5f03\u6b63\u5728\u5f55\u5236\u7684\u6587\u4ef6\uff1f",nzOnOk:()=>new Promise((o,i)=>{this.taskManager.stopAllTasks(t).subscribe(o,i)})}):this.taskManager.stopAllTasks().subscribe()}disableAllRecorders(t=!1){t?this.modal.confirm({nzTitle:"\u786e\u5b9a\u8981\u5f3a\u5236\u5173\u95ed\u5168\u90e8\u4efb\u52a1\u7684\u5f55\u5236\uff1f",nzContent:"\u6b63\u5728\u5f55\u5236\u7684\u6587\u4ef6\u4f1a\u88ab\u5f3a\u884c\u4e2d\u65ad\uff01\u786e\u5b9a\u8981\u653e\u5f03\u6b63\u5728\u5f55\u5236\u7684\u6587\u4ef6\uff1f",nzOnOk:()=>new Promise((o,i)=>{this.taskManager.disableAllRecorders(t).subscribe(o,i)})}):this.taskManager.disableAllRecorders().subscribe()}updateAllTaskInfos(){this.taskManager.updateAllTaskInfos().subscribe()}copyAllTaskRoomIds(){this.taskManager.getAllTaskRoomIds().pipe((0,U.U)(t=>t.join(" ")),(0,C.b)(t=>{if(!this.clipboard.copy(t))throw Error("Failed to copy text to the clipboard")})).subscribe(()=>{this.message.success("\u5168\u90e8\u623f\u95f4\u53f7\u5df2\u590d\u5236\u5230\u526a\u5207\u677f")},t=>{this.message.error("\u590d\u5236\u5168\u90e8\u623f\u95f4\u53f7\u5230\u526a\u5207\u677f\u51fa\u9519",t)})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(e.sBO),e.Y36(F.Yg),e.Y36(ke.dD),e.Y36(Q.Sf),e.Y36(w),e.Y36(xe))},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-toolbar"]],inputs:{selection:"selection",reverse:"reverse"},outputs:{selectionChange:"selectionChange",reverseChange:"reverseChange",filterChange:"filterChange"},decls:24,vars:7,consts:[[1,"controls-wrapper"],[4,"ngIf"],["radioGroup",""],["selector",""],["filter",""],["reorderButton",""],["menuButton",""],["dropdownMenu","nzDropdownMenu"],[3,"ngTemplateOutlet"],["menu",""],["drawerButton",""],["nzPlacement","bottom","nzHeight","auto",3,"nzTitle","nzClosable","nzVisible","nzVisibleChange","nzOnClose",4,"ngIf"],["drawerHeader",""],["nzType","vertical"],["nzButtonStyle","solid",1,"radio-group",3,"ngModel","ngModelChange"],[4,"ngFor","ngForOf"],["nz-radio-button","",3,"nzValue"],[1,"selector",3,"nzOptions","ngModel","ngModelChange"],[1,"filter",3,"nzSuffix"],["nz-input","","type","text","maxlength","18","placeholder","\u7528\u6807\u9898\u3001\u5206\u533a\u3001\u4e3b\u64ad\u540d\u3001\u623f\u95f4\u53f7\u7b5b\u9009",3,"input"],["filterInput",""],["inputClearTpl",""],["nz-icon","","class","filter-clear","nzTheme","fill","nzType","close-circle",3,"click",4,"ngIf"],["nz-icon","","nzTheme","fill","nzType","close-circle",1,"filter-clear",3,"click"],["nz-button","","nzType","text","nzSize","default",1,"reverse-button",3,"click"],["nz-icon","",3,"nzType","nzRotate"],["nz-button","","nzType","text","nzSize","default","nz-dropdown","","nzPlacement","bottomRight",1,"more-actions-button",3,"nzDropdownMenu"],["nz-icon","","nzType","more"],["nz-menu","",1,"menu"],["nz-menu-item","",3,"click"],["nz-menu-divider",""],["nz-button","","nzType","text","nzSize","default",1,"more-actions-button",3,"click"],["nzPlacement","bottom","nzHeight","auto",3,"nzTitle","nzClosable","nzVisible","nzVisibleChange","nzOnClose"],[4,"nzDrawerContent"],["nzPlacement","bottom","nzHeight","auto",3,"nzClosable","nzBodyStyle","nzVisible","nzVisibleChange","nzOnClose"],[1,"drawer-content"],["nzText","\u7b5b\u9009"],["nzText","\u6392\u5e8f"],[1,"reorder-button-wrapper"],[1,"drawer-content",3,"click"],[1,"drawer-header"]],template:function(t,o){if(1&t&&(e.TgZ(0,"div",0),e.YNc(1,_n,8,4,"ng-container",1),e.YNc(2,hn,8,4,"ng-container",1),e.YNc(3,fn,3,2,"ng-container",1),e.qZA(),e.YNc(4,Cn,2,2,"ng-template",null,2,e.W1O),e.YNc(6,Tn,1,2,"ng-template",null,3,e.W1O),e.YNc(8,vn,5,1,"ng-template",null,4,e.W1O),e.YNc(10,bn,4,3,"ng-template",null,5,e.W1O),e.YNc(12,yn,2,1,"ng-template",null,6,e.W1O),e.TgZ(14,"nz-dropdown-menu",null,7),e.GkF(16,8),e.YNc(17,Mn,19,0,"ng-template",null,9,e.W1O),e.qZA(),e.YNc(19,An,2,0,"ng-template",null,10,e.W1O),e.YNc(21,Pn,4,7,"nz-drawer",11),e.YNc(22,Zn,3,0,"ng-template",null,12,e.W1O)),2&t){const i=e.MAs(18);e.ekj("use-drawer",o.useDrawer),e.xp6(1),e.Q6J("ngIf",o.useRadioGroup),e.xp6(1),e.Q6J("ngIf",o.useSelector),e.xp6(1),e.Q6J("ngIf",o.useDrawer),e.xp6(13),e.Q6J("ngTemplateOutlet",i),e.xp6(5),e.Q6J("ngIf",o.useDrawer)}},directives:[c.O5,$.RR,c.tP,Be.g,me.Dg,g.JJ,g.On,c.sg,me.Of,me.Bq,Te.Vq,de.w,H.gB,H.ke,H.Zp,k.Ls,ee.ix,$.wA,$.cm,oe.wO,oe.r9,oe.YV,te.Vz,te.SQ],styles:[".drawer-content[_ngcontent-%COMP%] .menu[_ngcontent-%COMP%]{box-shadow:none;padding:.5em 0}.drawer-content[_ngcontent-%COMP%] .menu[_ngcontent-%COMP%] *[nz-menu-item][_ngcontent-%COMP%]{margin:0;padding:.5em 2em}.controls-wrapper[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;grid-gap:.2em;gap:.2em;width:100%;padding:.2em;background:#eee;border:1px solid #d9d9d9;border-left:none;border-right:none}.controls-wrapper[_ngcontent-%COMP%] nz-divider[_ngcontent-%COMP%]{height:1.8em;top:0}.controls-wrapper[_ngcontent-%COMP%]:not(.use-drawer) .filter[_ngcontent-%COMP%]{max-width:18em}.controls-wrapper.use-drawer[_ngcontent-%COMP%] .filter[_ngcontent-%COMP%]{max-width:unset;width:unset;flex:auto}.reverse-button[_ngcontent-%COMP%]{padding:0 .5em}.reverse-button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{margin:0}.more-actions-button[_ngcontent-%COMP%]{margin-left:auto;border:none;background:inherit}.more-actions-button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:20px}.menu[_ngcontent-%COMP%] nz-divider[_ngcontent-%COMP%]{margin:0}.drawer-header[_ngcontent-%COMP%]{display:flex}.drawer-content[_ngcontent-%COMP%] .reorder-button-wrapper[_ngcontent-%COMP%], .drawer-content[_ngcontent-%COMP%] .radio-group[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:2vw;gap:2vw}.drawer-content[_ngcontent-%COMP%] nz-divider[_ngcontent-%COMP%]:first-of-type{margin-top:0}.drawer-content[_ngcontent-%COMP%] .radio-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{text-align:center;padding:0}"],changeDetection:0}),n})();var ve=l(4402),Fn=l(4612);function Dn(n,s){1&n&&(e.ynx(0),e._uU(1," \u8bf7\u8f93\u5165\u76f4\u64ad\u95f4\u53f7\u6216 URL "),e.BQk())}function In(n,s){1&n&&(e.ynx(0),e._uU(1," \u8f93\u5165\u6709\u9519\u8bef "),e.BQk())}function Bn(n,s){if(1&n&&(e.YNc(0,Dn,2,0,"ng-container",8),e.YNc(1,In,2,0,"ng-container",8)),2&n){const t=s.$implicit;e.Q6J("ngIf",t.hasError("required")),e.xp6(1),e.Q6J("ngIf",t.hasError("pattern"))}}function Jn(n,s){if(1&n&&(e.ynx(0),e._UZ(1,"nz-alert",9),e.BQk()),2&n){const t=s.$implicit;e.xp6(1),e.Q6J("nzType",t.type)("nzMessage",t.message)}}function En(n,s){if(1&n&&(e.ynx(0),e.TgZ(1,"form",2),e.TgZ(2,"nz-form-item"),e.TgZ(3,"nz-form-control",3),e._UZ(4,"input",4),e.YNc(5,Bn,2,2,"ng-template",null,5,e.W1O),e.qZA(),e.qZA(),e.qZA(),e.TgZ(7,"div",6),e.YNc(8,Jn,2,2,"ng-container",7),e.qZA(),e.BQk()),2&n){const t=e.MAs(6),o=e.oxw();e.xp6(1),e.Q6J("formGroup",o.formGroup),e.xp6(2),e.Q6J("nzErrorTip",t),e.xp6(1),e.Q6J("pattern",o.pattern),e.xp6(4),e.Q6J("ngForOf",o.resultMessages)}}const Qn=/^https?:\/\/live\.bilibili\.com\/(\d+).*$/,Yn=/^\s*(?:\d+(?:[ ]+\d+)*|https?:\/\/live\.bilibili\.com\/\d+.*)\s*$/;let Un=(()=>{class n{constructor(t,o,i){this.changeDetector=o,this.taskManager=i,this.visible=!1,this.visibleChange=new e.vpe,this.pending=!1,this.resultMessages=[],this.pattern=Yn,this.formGroup=t.group({input:["",[g.kI.required,g.kI.pattern(this.pattern)]]})}get inputControl(){return this.formGroup.get("input")}open(){this.setVisible(!0)}close(){this.resultMessages=[],this.reset(),this.setVisible(!1)}setVisible(t){this.visible=t,this.visibleChange.emit(t),this.changeDetector.markForCheck()}reset(){this.pending=!1,this.formGroup.reset(),this.changeDetector.markForCheck()}handleCancel(){this.close()}handleConfirm(){this.pending=!0;const t=this.inputControl.value.trim();let o;o=t.startsWith("http")?[parseInt(Qn.exec(t)[1])]:new Set(t.split(/\s+/).map(i=>parseInt(i))),(0,ve.D)(o).pipe((0,Fn.b)(i=>this.taskManager.addTask(i)),(0,C.b)(i=>{this.resultMessages.push(i),this.changeDetector.markForCheck()})).subscribe({complete:()=>{this.resultMessages.every(i=>"success"===i.type)?this.close():this.reset()}})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(g.qu),e.Y36(e.sBO),e.Y36(xe))},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-add-task-dialog"]],inputs:{visible:"visible"},outputs:{visibleChange:"visibleChange"},decls:2,vars:6,consts:[["nzTitle","\u6dfb\u52a0\u4efb\u52a1","nzCentered","","nzOkText","\u6dfb\u52a0",3,"nzVisible","nzOkLoading","nzOkDisabled","nzCancelDisabled","nzClosable","nzMaskClosable","nzOnOk","nzOnCancel"],[4,"nzModalContent"],["nz-form","",3,"formGroup"],["nzHasFeedback","",3,"nzErrorTip"],["nz-input","","required","","placeholder","\u76f4\u64ad\u95f4 URL \u6216\u623f\u95f4\u53f7\uff08\u652f\u6301\u591a\u4e2a\u623f\u95f4\u53f7\u7528\u7a7a\u683c\u9694\u5f00\uff09","formControlName","input",3,"pattern"],["errorTip",""],[1,"result-messages-container"],[4,"ngFor","ngForOf"],[4,"ngIf"],["nzShowIcon","",3,"nzType","nzMessage"]],template:function(t,o){1&t&&(e.TgZ(0,"nz-modal",0),e.NdJ("nzOnOk",function(){return o.handleConfirm()})("nzOnCancel",function(){return o.handleCancel()}),e.YNc(1,En,9,4,"ng-container",1),e.qZA()),2&t&&e.Q6J("nzVisible",o.visible)("nzOkLoading",o.pending)("nzOkDisabled",o.formGroup.invalid)("nzCancelDisabled",o.pending)("nzClosable",!o.pending)("nzMaskClosable",!o.pending)},directives:[Q.du,Q.Hf,g._Y,g.JL,Z.Lr,g.sg,O.SK,Z.Nx,O.t3,Z.Fd,H.Zp,g.Fj,g.Q7,g.JJ,g.u,g.c5,c.sg,c.O5,Mt],styles:[".result-messages-container[_ngcontent-%COMP%]{width:100%;max-height:200px;overflow-y:auto}"],changeDetection:0}),n})();var qn=l(6693),Rn=l(9796),Ln=l(7393),he=l(377),be=l(5345);class $n{constructor(s){this.resultSelector=s}call(s,t){return t.subscribe(new Hn(s,this.resultSelector))}}class Hn extends Ln.L{constructor(s,t,o=Object.create(null)){super(s),this.resultSelector=t,this.iterators=[],this.active=0,this.resultSelector="function"==typeof t?t:void 0}_next(s){const t=this.iterators;(0,Rn.k)(s)?t.push(new Vn(s)):t.push("function"==typeof s[he.hZ]?new jn(s[he.hZ]()):new Wn(this.destination,this,s))}_complete(){const s=this.iterators,t=s.length;if(this.unsubscribe(),0!==t){this.active=t;for(let o=0;o<t;o++){let i=s[o];i.stillUnsubscribed?this.destination.add(i.subscribe()):this.active--}}else this.destination.complete()}notifyInactive(){this.active--,0===this.active&&this.destination.complete()}checkIterators(){const s=this.iterators,t=s.length,o=this.destination;for(let a=0;a<t;a++){let u=s[a];if("function"==typeof u.hasValue&&!u.hasValue())return}let i=!1;const r=[];for(let a=0;a<t;a++){let u=s[a],d=u.next();if(u.hasCompleted()&&(i=!0),d.done)return void o.complete();r.push(d.value)}this.resultSelector?this._tryresultSelector(r):o.next(r),i&&o.complete()}_tryresultSelector(s){let t;try{t=this.resultSelector.apply(this,s)}catch(o){return void this.destination.error(o)}this.destination.next(t)}}class jn{constructor(s){this.iterator=s,this.nextResult=s.next()}hasValue(){return!0}next(){const s=this.nextResult;return this.nextResult=this.iterator.next(),s}hasCompleted(){const s=this.nextResult;return Boolean(s&&s.done)}}class Vn{constructor(s){this.array=s,this.index=0,this.length=0,this.length=s.length}[he.hZ](){return this}next(s){const t=this.index++;return t<this.length?{value:this.array[t],done:!1}:{value:null,done:!0}}hasValue(){return this.array.length>this.index}hasCompleted(){return this.array.length===this.index}}class Wn extends be.Ds{constructor(s,t,o){super(s),this.parent=t,this.observable=o,this.stillUnsubscribed=!0,this.buffer=[],this.isComplete=!1}[he.hZ](){return this}next(){const s=this.buffer;return 0===s.length&&this.isComplete?{value:null,done:!0}:{value:s.shift(),done:!1}}hasValue(){return this.buffer.length>0}hasCompleted(){return 0===this.buffer.length&&this.isComplete}notifyComplete(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()}notifyNext(s){this.buffer.push(s),this.parent.checkIterators()}subscribe(){return(0,be.ft)(this.observable,new be.IY(this))}}var Xn=l(5136);let Kn=(()=>{class n{transform(t){if(t<0)throw RangeError("the argument totalSeconds must be greater than or equal to 0");const o=Math.floor(t/3600),i=Math.floor(t/60%60),r=Math.floor(t%60);let a="";return o>0&&(a+=o+":"),a+=i<10?"0"+i:i,a+=":",a+=r<10?"0"+r:r,a}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275pipe=e.Yjl({name:"duration",type:n,pure:!0}),n})(),eo=(()=>{class n{transform(t,o=3){let i,r;if(t<=0)return"0B/s";if(t<1e3)i=t,r="B";else if(t<1e6)i=t/1e3,r="kB";else if(t<1e9)i=t/1e6,r="MB";else{if(!(t<1e12))throw RangeError(`the rate argument ${t} out of range`);i=t/1e9,r="GB"}const a=o-Math.floor(Math.abs(Math.log10(i)))-1;return i.toFixed(a)+r+"/s"}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275pipe=e.Yjl({name:"speed",type:n,pure:!0}),n})();var to=l(7612);let no=(()=>{class n{transform(t,o){return to(t,o)}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275pipe=e.Yjl({name:"filesize",type:n,pure:!0}),n})();const oo={2e4:"4K",1e4:"\u539f\u753b",401:"\u84dd\u5149(\u675c\u6bd4)",400:"\u84dd\u5149",250:"\u8d85\u6e05",150:"\u9ad8\u6e05",80:"\u6d41\u7545"};let io=(()=>{class n{transform(t){return oo[t]}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275pipe=e.Yjl({name:"quality",type:n,pure:!0}),n})(),so=(()=>{class n{transform(t){var o,i;return t?t.startsWith("/")?null!==(o=t.split("/").pop())&&void 0!==o?o:"":null!==(i=t.split("\\").pop())&&void 0!==i?i:"":""}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275pipe=e.Yjl({name:"filename",type:n,pure:!0}),n})(),ro=(()=>{class n{transform(t){return t&&0!==t.duration?t.time/t.duration*100:0}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275pipe=e.Yjl({name:"progress",type:n,pure:!0}),n})();const ao=function(){return{spacer:""}};function lo(n,s){if(1&n&&(e.TgZ(0,"div",2),e.TgZ(1,"p",3),e.TgZ(2,"span",4),e._UZ(3,"i"),e.qZA(),e.TgZ(4,"span",5),e._uU(5),e.ALo(6,"duration"),e.qZA(),e.TgZ(7,"span",6),e._uU(8),e.ALo(9,"speed"),e.qZA(),e.TgZ(10,"span",7),e._uU(11),e.ALo(12,"filesize"),e.qZA(),e.TgZ(13,"span",8),e.ALo(14,"number"),e._uU(15),e.ALo(16,"number"),e.qZA(),e.TgZ(17,"span",9),e._uU(18),e.ALo(19,"quality"),e.qZA(),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(5),e.hij(" ",e.lcZ(6,6,t.status.elapsed)," "),e.xp6(3),e.hij(" ",e.lcZ(9,8,t.status.data_rate)," "),e.xp6(3),e.hij(" ",e.xi3(12,10,t.status.data_count,e.DdM(21,ao))," "),e.xp6(2),e.MGl("nzTooltipTitle","\u5f39\u5e55\u6570\u91cf\uff1a",e.xi3(14,13,t.status.danmu_count,"1.0-0"),""),e.xp6(2),e.hij(" ",e.xi3(16,16,t.status.danmu_count,"1.0-0")," "),e.xp6(3),e.hij(" ",e.lcZ(19,19,t.status.real_quality_number)," ")}}function co(n,s){if(1&n&&(e.TgZ(0,"div",2),e.TgZ(1,"p",10),e.ALo(2,"filename"),e._uU(3),e.ALo(4,"filename"),e.qZA(),e._UZ(5,"nz-progress",11),e.ALo(6,"progress"),e.qZA()),2&n){const t=e.oxw();let o,i;e.xp6(1),e.MGl("nzTooltipTitle","\u6b63\u5728\u6ce8\u5165\u5143\u6570\u636e\uff1a",e.lcZ(2,7,null!==(o=t.status.postprocessing_path)&&void 0!==o?o:""),""),e.xp6(2),e.hij(" \u6ce8\u5165\u5143\u6570\u636e\uff1a",e.lcZ(4,9,null!==(i=t.status.postprocessing_path)&&void 0!==i?i:"")," "),e.xp6(2),e.Q6J("nzType","line")("nzShowInfo",!1)("nzStrokeLinecap","square")("nzStrokeWidth",2)("nzPercent",null===t.status.postprocessing_progress?0:e.lcZ(6,11,t.status.postprocessing_progress))}}function po(n,s){if(1&n&&(e.TgZ(0,"div",2),e.TgZ(1,"p",12),e.ALo(2,"filename"),e._uU(3),e.ALo(4,"filename"),e.qZA(),e._UZ(5,"nz-progress",11),e.ALo(6,"progress"),e.qZA()),2&n){const t=e.oxw();let o,i;e.xp6(1),e.MGl("nzTooltipTitle","\u6b63\u5728\u8f6c\u6362\u683c\u5f0f\uff1a",e.lcZ(2,7,null!==(o=t.status.postprocessing_path)&&void 0!==o?o:""),""),e.xp6(2),e.hij(" \u8f6c\u6362\u683c\u5f0f\uff1a",e.lcZ(4,9,null!==(i=t.status.postprocessing_path)&&void 0!==i?i:"")," "),e.xp6(2),e.Q6J("nzType","line")("nzShowInfo",!1)("nzStrokeLinecap","square")("nzStrokeWidth",2)("nzPercent",null===t.status.postprocessing_progress?0:e.lcZ(6,11,t.status.postprocessing_progress))}}let uo=(()=>{class n{constructor(){this.RunningStatus=S}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-status-display"]],inputs:{status:"status"},decls:4,vars:4,consts:[[3,"ngSwitch"],["class","status-display",4,"ngSwitchCase"],[1,"status-display"],[1,"status-bar","recording"],["nz-tooltip","","nzTooltipTitle","\u6b63\u5728\u5f55\u5236\u4e2d","nzTooltipPlacement","top",1,"status-indicator"],["nz-tooltip","","nzTooltipTitle","\u5f00\u59cb\u5f55\u5236\u5230\u73b0\u5728\u8fc7\u53bb\u7684\u65f6\u95f4","nzTooltipPlacement","top",1,"time-elapsed"],["nz-tooltip","","nzTooltipTitle","\u5f53\u524d\u5b9e\u65f6\u5f55\u5236\u901f\u5ea6","nzTooltipPlacement","top",1,"data-rate"],["nz-tooltip","","nzTooltipTitle","\u5df2\u5f55\u5236\u7684\u6570\u636e","nzTooltipPlacement","top",1,"data-count"],["nz-tooltip","","nzTooltipPlacement","top",1,"danmu-count",3,"nzTooltipTitle"],["nz-tooltip","","nzTooltipTitle","\u5f53\u524d\u5f55\u5236\u7684\u753b\u8d28","nzTooltipPlacement","leftTop",1,"quality"],["nz-tooltip","","nzTooltipPlacement","top",1,"status-bar","injecting",3,"nzTooltipTitle"],[3,"nzType","nzShowInfo","nzStrokeLinecap","nzStrokeWidth","nzPercent"],["nz-tooltip","","nzTooltipPlacement","top",1,"status-bar","remuxing",3,"nzTooltipTitle"]],template:function(t,o){1&t&&(e.ynx(0,0),e.YNc(1,lo,20,22,"div",1),e.YNc(2,co,7,13,"div",1),e.YNc(3,po,7,13,"div",1),e.BQk()),2&t&&(e.Q6J("ngSwitch",o.status.running_status),e.xp6(1),e.Q6J("ngSwitchCase",o.RunningStatus.RECORDING),e.xp6(1),e.Q6J("ngSwitchCase",o.RunningStatus.INJECTING),e.xp6(1),e.Q6J("ngSwitchCase",o.RunningStatus.REMUXING))},directives:[c.RF,c.n9,E.SY,en],pipes:[Kn,eo,no,c.JJ,io,so,ro],styles:[".status-bar[_ngcontent-%COMP%]{color:#fff;text-shadow:1px 1px 2px black;margin:0;padding:0 .5rem;background:rgba(0,0,0,.32)}.status-display[_ngcontent-%COMP%]{position:absolute;bottom:0;left:0;width:100%}.status-bar[_ngcontent-%COMP%]{display:flex;grid-gap:1rem;gap:1rem;font-size:1rem;line-height:1.8}.status-bar.recording[_ngcontent-%COMP%] .status-indicator[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center}.status-bar.recording[_ngcontent-%COMP%] .status-indicator[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{width:1rem;height:1rem;border-radius:.5rem;color:red;background:red;animation:blinker 1s cubic-bezier(1,0,0,1) infinite}@keyframes blinker{0%{opacity:0}to{opacity:1}}.status-bar.injecting[_ngcontent-%COMP%], .status-bar.remuxing[_ngcontent-%COMP%]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.status-bar[_ngcontent-%COMP%] .danmu-count[_ngcontent-%COMP%]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.status-bar[_ngcontent-%COMP%] .quality[_ngcontent-%COMP%]{flex:none;margin-left:auto}nz-progress[_ngcontent-%COMP%]{display:flex}nz-progress[_ngcontent-%COMP%] .ant-progress-outer{display:flex}"],changeDetection:0}),n})();var q=l(2502),go=l(2134),N=l(8737);function mo(n,s){1&n&&(e.ynx(0),e._uU(1," \u8bf7\u8f93\u5165\u8def\u5f84\u6a21\u677f "),e.BQk())}function _o(n,s){1&n&&(e.ynx(0),e._uU(1," \u8def\u5f84\u6a21\u677f\u6709\u9519\u8bef "),e.BQk())}function ho(n,s){if(1&n&&(e.YNc(0,mo,2,0,"ng-container",41),e.YNc(1,_o,2,0,"ng-container",41)),2&n){const t=s.$implicit;e.Q6J("ngIf",t.hasError("required")),e.xp6(1),e.Q6J("ngIf",t.hasError("pattern"))}}function fo(n,s){1&n&&(e.ynx(0),e._uU(1," \u8bf7\u8f93\u5165 User Agent "),e.BQk())}function zo(n,s){1&n&&e.YNc(0,fo,2,0,"ng-container",41),2&n&&e.Q6J("ngIf",s.$implicit.hasError("required"))}function Co(n,s){if(1&n){const t=e.EpF();e.ynx(0),e.TgZ(1,"form",2),e.TgZ(2,"div",3),e.TgZ(3,"h2"),e._uU(4,"\u6587\u4ef6"),e.qZA(),e.TgZ(5,"nz-form-item",4),e.TgZ(6,"nz-form-label",5),e._uU(7,"\u8def\u5f84\u6a21\u677f"),e.qZA(),e.TgZ(8,"nz-form-control",6),e.TgZ(9,"input",7),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw().model.output.pathTemplate=i}),e.qZA(),e.YNc(10,ho,2,2,"ng-template",null,8,e.W1O),e.qZA(),e.TgZ(12,"label",9),e.NdJ("nzCheckedChange",function(i){e.CHM(t);const r=e.oxw();return r.options.output.pathTemplate=i?r.globalSettings.output.pathTemplate:null}),e._uU(13,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),e.qZA(),e.qZA(),e.TgZ(14,"nz-form-item",10),e.TgZ(15,"nz-form-label",11),e._uU(16,"\u5927\u5c0f\u9650\u5236"),e.qZA(),e.TgZ(17,"nz-form-control",12),e.TgZ(18,"nz-select",13),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw().model.output.filesizeLimit=i}),e.qZA(),e.qZA(),e.TgZ(19,"label",9),e.NdJ("nzCheckedChange",function(i){e.CHM(t);const r=e.oxw();return r.options.output.filesizeLimit=i?r.globalSettings.output.filesizeLimit:null}),e._uU(20,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),e.qZA(),e.qZA(),e.TgZ(21,"nz-form-item",10),e.TgZ(22,"nz-form-label",11),e._uU(23,"\u65f6\u957f\u9650\u5236"),e.qZA(),e.TgZ(24,"nz-form-control",12),e.TgZ(25,"nz-select",14),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw().model.output.durationLimit=i}),e.qZA(),e.qZA(),e.TgZ(26,"label",9),e.NdJ("nzCheckedChange",function(i){e.CHM(t);const r=e.oxw();return r.options.output.durationLimit=i?r.globalSettings.output.durationLimit:null}),e._uU(27,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),e.qZA(),e.qZA(),e.qZA(),e.TgZ(28,"div",15),e.TgZ(29,"h2"),e._uU(30,"\u5f55\u5236"),e.qZA(),e.TgZ(31,"nz-form-item",10),e.TgZ(32,"nz-form-label",16),e._uU(33,"\u753b\u8d28"),e.qZA(),e.TgZ(34,"nz-form-control",12),e.TgZ(35,"nz-select",17),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw().model.recorder.qualityNumber=i}),e.qZA(),e.qZA(),e.TgZ(36,"label",9),e.NdJ("nzCheckedChange",function(i){e.CHM(t);const r=e.oxw();return r.options.recorder.qualityNumber=i?r.globalSettings.recorder.qualityNumber:null}),e._uU(37,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),e.qZA(),e.qZA(),e.TgZ(38,"nz-form-item",10),e.TgZ(39,"nz-form-label",18),e._uU(40,"\u6570\u636e\u8bfb\u53d6\u8d85\u65f6"),e.qZA(),e.TgZ(41,"nz-form-control",19),e.TgZ(42,"nz-select",20,21),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw().model.recorder.readTimeout=i}),e.qZA(),e.qZA(),e.TgZ(44,"label",9),e.NdJ("nzCheckedChange",function(i){e.CHM(t);const r=e.oxw();return r.options.recorder.readTimeout=i?r.globalSettings.recorder.readTimeout:null}),e._uU(45,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),e.qZA(),e.qZA(),e.TgZ(46,"nz-form-item",10),e.TgZ(47,"nz-form-label",18),e._uU(48,"\u786c\u76d8\u5199\u5165\u7f13\u51b2"),e.qZA(),e.TgZ(49,"nz-form-control",12),e.TgZ(50,"nz-select",22),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw().model.recorder.bufferSize=i}),e.qZA(),e.qZA(),e.TgZ(51,"label",9),e.NdJ("nzCheckedChange",function(i){e.CHM(t);const r=e.oxw();return r.options.recorder.bufferSize=i?r.globalSettings.recorder.bufferSize:null}),e._uU(52,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),e.qZA(),e.qZA(),e.qZA(),e.TgZ(53,"div",23),e.TgZ(54,"h2"),e._uU(55,"\u5f39\u5e55"),e.qZA(),e.TgZ(56,"nz-form-item",10),e.TgZ(57,"nz-form-label",24),e._uU(58,"\u5f39\u5e55\u52a0\u7528\u6237\u540d"),e.qZA(),e.TgZ(59,"nz-form-control",25),e.TgZ(60,"nz-switch",26),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw().model.danmaku.danmuUname=i}),e.qZA(),e.qZA(),e.TgZ(61,"label",9),e.NdJ("nzCheckedChange",function(i){e.CHM(t);const r=e.oxw();return r.options.danmaku.danmuUname=i?r.globalSettings.danmaku.danmuUname:null}),e._uU(62,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),e.qZA(),e.qZA(),e.qZA(),e.TgZ(63,"div",27),e.TgZ(64,"h2"),e._uU(65,"\u6587\u4ef6\u5904\u7406"),e.qZA(),e.TgZ(66,"nz-form-item",10),e.TgZ(67,"nz-form-label",28),e._uU(68,"FLV \u8f6c MP4"),e.qZA(),e.TgZ(69,"nz-form-control",25),e.TgZ(70,"nz-switch",29),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw().model.postprocessing.remuxToMp4=i}),e.qZA(),e.qZA(),e.TgZ(71,"label",9),e.NdJ("nzCheckedChange",function(i){e.CHM(t);const r=e.oxw();return r.options.postprocessing.remuxToMp4=i?r.globalSettings.postprocessing.remuxToMp4:null}),e._uU(72,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),e.qZA(),e.qZA(),e.TgZ(73,"nz-form-item",10),e.TgZ(74,"nz-form-label",18),e._uU(75,"\u6e90\u6587\u4ef6\u5220\u9664\u7b56\u7565"),e.qZA(),e.TgZ(76,"nz-form-control",12),e.TgZ(77,"nz-select",30),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw().model.postprocessing.deleteSource=i}),e.qZA(),e.qZA(),e.TgZ(78,"label",9),e.NdJ("nzCheckedChange",function(i){e.CHM(t);const r=e.oxw();return r.options.postprocessing.deleteSource=i?r.globalSettings.postprocessing.deleteSource:null}),e._uU(79,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),e.qZA(),e.qZA(),e.qZA(),e.TgZ(80,"div",31),e.TgZ(81,"h2"),e._uU(82,"\u7f51\u7edc\u8bf7\u6c42"),e.qZA(),e.TgZ(83,"nz-form-item",32),e.TgZ(84,"nz-form-label",33),e._uU(85,"User Agent"),e.qZA(),e.TgZ(86,"nz-form-control",34),e.TgZ(87,"textarea",35,36),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw().model.header.userAgent=i}),e.qZA(),e.qZA(),e.YNc(89,zo,1,1,"ng-template",null,8,e.W1O),e.TgZ(91,"label",9),e.NdJ("nzCheckedChange",function(i){e.CHM(t);const r=e.oxw();return r.options.header.userAgent=i?r.globalSettings.header.userAgent:null}),e._uU(92,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),e.qZA(),e.qZA(),e.TgZ(93,"nz-form-item",32),e.TgZ(94,"nz-form-label",37),e._uU(95,"Cookie"),e.qZA(),e.TgZ(96,"nz-form-control",38),e.TgZ(97,"textarea",39,40),e.NdJ("ngModelChange",function(i){return e.CHM(t),e.oxw().model.header.cookie=i}),e.qZA(),e.qZA(),e.TgZ(99,"label",9),e.NdJ("nzCheckedChange",function(i){e.CHM(t);const r=e.oxw();return r.options.header.cookie=i?r.globalSettings.header.cookie:null}),e._uU(100,"\u8986\u76d6\u5168\u5c40\u8bbe\u7f6e"),e.qZA(),e.qZA(),e.qZA(),e.qZA(),e.BQk()}if(2&n){const t=e.MAs(11),o=e.MAs(43),i=e.MAs(88),r=e.MAs(98),a=e.oxw();e.xp6(8),e.Q6J("nzErrorTip",t),e.xp6(1),e.Q6J("pattern",a.pathTemplatePattern)("ngModel",a.model.output.pathTemplate)("disabled",null===a.options.output.pathTemplate),e.xp6(3),e.Q6J("nzChecked",null!==a.options.output.pathTemplate),e.xp6(3),e.Q6J("nzTooltipTitle",a.splitFileTip),e.xp6(3),e.Q6J("ngModel",a.model.output.filesizeLimit)("disabled",null===a.options.output.filesizeLimit)("nzOptions",a.filesizeLimitOptions),e.xp6(1),e.Q6J("nzChecked",null!==a.options.output.filesizeLimit),e.xp6(3),e.Q6J("nzTooltipTitle",a.splitFileTip),e.xp6(3),e.Q6J("ngModel",a.model.output.durationLimit)("disabled",null===a.options.output.durationLimit)("nzOptions",a.durationLimitOptions),e.xp6(1),e.Q6J("nzChecked",null!==a.options.output.durationLimit),e.xp6(9),e.Q6J("ngModel",a.model.recorder.qualityNumber)("disabled",null===a.options.recorder.qualityNumber)("nzOptions",a.qualityOptions),e.xp6(1),e.Q6J("nzChecked",null!==a.options.recorder.qualityNumber),e.xp6(5),e.Q6J("nzValidateStatus",o.value>3?"warning":o),e.xp6(1),e.Q6J("ngModel",a.model.recorder.readTimeout)("disabled",null===a.options.recorder.readTimeout)("nzOptions",a.timeoutOptions),e.xp6(2),e.Q6J("nzChecked",null!==a.options.recorder.readTimeout),e.xp6(6),e.Q6J("ngModel",a.model.recorder.bufferSize)("disabled",null===a.options.recorder.bufferSize)("nzOptions",a.bufferOptions)("nzOptionOverflowSize",6),e.xp6(1),e.Q6J("nzChecked",null!==a.options.recorder.bufferSize),e.xp6(9),e.Q6J("ngModel",a.model.danmaku.danmuUname)("disabled",null===a.options.danmaku.danmuUname),e.xp6(1),e.Q6J("nzChecked",null!==a.options.danmaku.danmuUname),e.xp6(9),e.Q6J("ngModel",a.model.postprocessing.remuxToMp4)("disabled",null===a.options.postprocessing.remuxToMp4),e.xp6(1),e.Q6J("nzChecked",null!==a.options.postprocessing.remuxToMp4),e.xp6(6),e.Q6J("ngModel",a.model.postprocessing.deleteSource)("disabled",null===a.options.postprocessing.deleteSource)("nzOptions",a.deleteStrategies),e.xp6(1),e.Q6J("nzChecked",null!==a.options.postprocessing.deleteSource),e.xp6(8),e.Q6J("nzWarningTip",a.warningTip)("nzValidateStatus",i.valid&&a.options.header.userAgent!==a.taskOptions.header.userAgent&&a.options.header.userAgent!==a.globalSettings.header.userAgent?"warning":i)("nzErrorTip",t),e.xp6(1),e.Q6J("rows",3)("ngModel",a.model.header.userAgent)("disabled",null===a.options.header.userAgent),e.xp6(4),e.Q6J("nzChecked",null!==a.options.header.userAgent),e.xp6(5),e.Q6J("nzWarningTip",a.warningTip)("nzValidateStatus",r.valid&&a.options.header.cookie!==a.taskOptions.header.cookie&&a.options.header.cookie!==a.globalSettings.header.cookie?"warning":r),e.xp6(1),e.Q6J("rows",3)("ngModel",a.model.header.cookie)("disabled",null===a.options.header.cookie),e.xp6(2),e.Q6J("nzChecked",null!==a.options.header.cookie)}}let To=(()=>{class n{constructor(t){this.changeDetector=t,this.visible=!1,this.visibleChange=new e.vpe,this.cancel=new e.vpe,this.confirm=new e.vpe,this.afterOpen=new e.vpe,this.afterClose=new e.vpe,this.warningTip="\u9700\u8981\u91cd\u542f\u5f39\u5e55\u5ba2\u6237\u7aef\u624d\u80fd\u751f\u6548\uff0c\u5982\u679c\u4efb\u52a1\u6b63\u5728\u5f55\u5236\u53ef\u80fd\u4f1a\u4e22\u5931\u5f39\u5e55\uff01",this.splitFileTip=N.Uk,this.pathTemplatePattern=N._m,this.filesizeLimitOptions=(0,q.Z)(N.Pu),this.durationLimitOptions=(0,q.Z)(N.Fg),this.qualityOptions=(0,q.Z)(N.O6),this.timeoutOptions=(0,q.Z)(N.D4),this.bufferOptions=(0,q.Z)(N.Rc),this.deleteStrategies=(0,q.Z)(N.rc)}ngOnChanges(){this.options=(0,q.Z)(this.taskOptions),this.setupModel(),this.changeDetector.markForCheck()}close(){this.setVisible(!1)}setVisible(t){this.visible=t,this.visibleChange.emit(t),this.changeDetector.markForCheck()}handleCancel(){this.cancel.emit(),this.close()}handleConfirm(){this.confirm.emit((0,go.e)(this.options,this.taskOptions)),this.close()}setupModel(){const t={};for(const o of Object.keys(this.options)){const a=this.globalSettings[o];Reflect.set(t,o,new Proxy(this.options[o],{get:(u,d)=>{var T;return null!==(T=Reflect.get(u,d))&&void 0!==T?T:Reflect.get(a,d)},set:(u,d,T)=>Reflect.set(u,d,T)}))}this.model=t}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(e.sBO))},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-task-settings-dialog"]],viewQuery:function(t,o){if(1&t&&e.Gf(g.F,5),2&t){let i;e.iGM(i=e.CRH())&&(o.ngForm=i.first)}},inputs:{taskOptions:"taskOptions",globalSettings:"globalSettings",visible:"visible"},outputs:{visibleChange:"visibleChange",cancel:"cancel",confirm:"confirm",afterOpen:"afterOpen",afterClose:"afterClose"},features:[e.TTD],decls:2,vars:2,consts:[["nzTitle","\u4efb\u52a1\u8bbe\u7f6e","nzCentered","",3,"nzVisible","nzOkDisabled","nzOnOk","nzOnCancel","nzAfterOpen","nzAfterClose"],[4,"nzModalContent"],["nz-form","","ngForm",""],["ngModelGroup","output",1,"form-group","output"],[1,"setting-item","input"],["nzNoColon","","nzTooltipTitle","\u53d8\u91cf\u8bf4\u660e\u8bf7\u67e5\u770b\u5bf9\u5e94\u5168\u5c40\u8bbe\u7f6e",1,"setting-label"],[1,"setting-control","input",3,"nzErrorTip"],["type","text","required","","nz-input","","name","pathTemplate",3,"pattern","ngModel","disabled","ngModelChange"],["errorTip",""],["nz-checkbox","",3,"nzChecked","nzCheckedChange"],[1,"setting-item"],["nzNoColon","",1,"setting-label",3,"nzTooltipTitle"],[1,"setting-control","select"],["name","filesizeLimit",3,"ngModel","disabled","nzOptions","ngModelChange"],["name","durationLimit",3,"ngModel","disabled","nzOptions","ngModelChange"],["ngModelGroup","recorder",1,"form-group","recorder"],["nzNoColon","","nzTooltipTitle","\u6240\u9009\u753b\u8d28\u4e0d\u5b58\u5728\u5c06\u4ee5\u539f\u753b\u4ee3\u66ff",1,"setting-label"],["name","qualityNumber",3,"ngModel","disabled","nzOptions","ngModelChange"],["nzNoColon","",1,"setting-label"],["nzWarningTip","\u65e0\u7f1d\u62fc\u63a5\u4f1a\u5931\u6548\uff01",1,"setting-control","select",3,"nzValidateStatus"],["name","readTimeout",3,"ngModel","disabled","nzOptions","ngModelChange"],["readTimeout","ngModel"],["name","bufferSize",3,"ngModel","disabled","nzOptions","nzOptionOverflowSize","ngModelChange"],["ngModelGroup","danmaku",1,"form-group","danmaku"],["nzFor","danmuUname","nzNoColon","",1,"setting-label"],[1,"setting-control","switch"],["id","danmuUname","name","danmuUname",3,"ngModel","disabled","ngModelChange"],["ngModelGroup","postprocessing",1,"form-group","postprocessing"],["nzNoColon","","nzTooltipTitle","\u9700\u8981\u5b89\u88c5 FFmpeg",1,"setting-label"],["name","remuxToMp4",3,"ngModel","disabled","ngModelChange"],["name","deleteSource",3,"ngModel","disabled","nzOptions","ngModelChange"],["ngModelGroup","header",1,"form-group","header"],[1,"setting-item","textarea"],["nzFor","userAgent","nzNoColon","",1,"setting-label"],[1,"setting-control","textarea",3,"nzWarningTip","nzValidateStatus","nzErrorTip"],["nz-input","","required","","id","userAgent","name","userAgent",3,"rows","ngModel","disabled","ngModelChange"],["userAgent","ngModel"],["nzFor","cookie","nzNoColon","",1,"setting-label"],[1,"setting-control","textarea",3,"nzWarningTip","nzValidateStatus"],["nz-input","","id","cookie","name","cookie",3,"rows","ngModel","disabled","ngModelChange"],["cookie","ngModel"],[4,"ngIf"]],template:function(t,o){1&t&&(e.TgZ(0,"nz-modal",0),e.NdJ("nzOnOk",function(){return o.handleConfirm()})("nzOnCancel",function(){return o.handleCancel()})("nzAfterOpen",function(){return o.afterOpen.emit()})("nzAfterClose",function(){return o.afterClose.emit()}),e.YNc(1,Co,101,52,"ng-container",1),e.qZA()),2&t&&e.Q6J("nzVisible",o.visible)("nzOkDisabled",null==o.ngForm||null==o.ngForm.form?null:o.ngForm.form.invalid)},directives:[Q.du,Q.Hf,g._Y,g.JL,g.F,Z.Lr,g.Mq,O.SK,Z.Nx,O.t3,Z.iK,Z.Fd,H.Zp,g.Fj,g.Q7,g.c5,g.JJ,g.On,we.Ie,Te.Vq,Ce.i,c.O5],styles:[".settings-page[_ngcontent-%COMP%]{max-width:680px;margin:0 auto}.setting-item[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:1em 2em;border-top:1px solid rgba(0,0,0,.06)}.setting-item[_ngcontent-%COMP%]:first-child{border-top:none}.settings-page-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.form-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:bold;font-size:1.2em;border-bottom:1px solid rgba(0,0,0,.1)}.setting-item[_ngcontent-%COMP%]{grid-gap:.5em;gap:.5em}.setting-item.actionable[_ngcontent-%COMP%]{cursor:pointer}.setting-item.actionable[_ngcontent-%COMP%]:hover{background-color:#2021241a}a.setting-item[_ngcontent-%COMP%]{outline:none;text-decoration:none;color:inherit;cursor:pointer}a.setting-item[_ngcontent-%COMP%]:hover{background-color:#2021241a}.setting-label[_ngcontent-%COMP%]{padding:0!important;max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;text-align:left}.setting-label.align-required[_ngcontent-%COMP%]{position:relative;left:11px}.setting-control[_ngcontent-%COMP%], .setting-value[_ngcontent-%COMP%]{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;margin-left:auto!important}.setting-control.input[_ngcontent-%COMP%], .setting-value.input[_ngcontent-%COMP%]{max-width:100%!important}.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{max-width:8em!important;width:8em!important}.setting-control.switch[_ngcontent-%COMP%], .setting-value.switch[_ngcontent-%COMP%]{flex-direction:row-reverse;align-items:center}.setting-control.checkbox[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}.setting-control.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%], .setting-value.checkbox[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:100%}.setting-control.textarea[_ngcontent-%COMP%], .setting-value.textarea[_ngcontent-%COMP%]{max-width:100%!important;width:100%!important;margin-left:0}@media screen and (max-width: 332px){.setting-control.radio[_ngcontent-%COMP%], .setting-value.radio[_ngcontent-%COMP%]{margin-left:0!important}}@media screen and (max-width: 319px){.setting-control.select[_ngcontent-%COMP%], .setting-value.select[_ngcontent-%COMP%]{margin-left:0!important}}.setting-value[_ngcontent-%COMP%]{color:#5f6368;font-weight:400}nz-divider[_ngcontent-%COMP%]{margin:0!important}.form-group[_ngcontent-%COMP%]:last-child .setting-item[_ngcontent-%COMP%]:last-child{padding-bottom:0}.setting-item[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);align-items:center;padding:1em 0;grid-gap:1em;gap:1em;border:none}.setting-item[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{margin:0!important}.setting-item[_ngcontent-%COMP%] .setting-label[_ngcontent-%COMP%]{justify-self:start}.setting-item[_ngcontent-%COMP%] .setting-control[_ngcontent-%COMP%]{justify-self:center}.setting-item[_ngcontent-%COMP%] label[nz-checkbox][_ngcontent-%COMP%]{justify-self:end}.setting-item[_ngcontent-%COMP%] label[nz-checkbox][_ngcontent-%COMP%] span:last-of-type{padding-right:0}.setting-item.input[_ngcontent-%COMP%], .setting-item.textarea[_ngcontent-%COMP%]{grid-template-columns:repeat(2,1fr)}.setting-item.input[_ngcontent-%COMP%] .setting-label[_ngcontent-%COMP%], .setting-item.textarea[_ngcontent-%COMP%] .setting-label[_ngcontent-%COMP%]{grid-row:1/2;grid-column:1/2;justify-self:center}.setting-item.input[_ngcontent-%COMP%] .setting-control[_ngcontent-%COMP%], .setting-item.textarea[_ngcontent-%COMP%] .setting-control[_ngcontent-%COMP%]{grid-row:2/3;grid-column:1/-1;justify-self:stretch}.setting-item.input[_ngcontent-%COMP%] label[nz-checkbox][_ngcontent-%COMP%], .setting-item.textarea[_ngcontent-%COMP%] label[nz-checkbox][_ngcontent-%COMP%]{grid-row:1/2;grid-column:2/3;justify-self:center}@media screen and (max-width: 450px){.setting-item[_ngcontent-%COMP%]{grid-template-columns:repeat(2,1fr)}.setting-item[_ngcontent-%COMP%] .setting-label[_ngcontent-%COMP%]{grid-column:1/-1;justify-self:center}.setting-item[_ngcontent-%COMP%] label[nz-checkbox][_ngcontent-%COMP%]{justify-self:end}}"],changeDetection:0}),n})();function He(n,s,t,o,i,r,a){try{var u=n[r](a),d=u.value}catch(T){return void t(T)}u.done?s(d):Promise.resolve(d).then(o,i)}var xo=l(2759),vo=l(9075);const ye=new Map,Me=new Map;let bo=(()=>{class n{constructor(t){this.domSanitizer=t}transform(t,o="object"){return"object"===o?Me.has(t)?(0,Y.of)(Me.get(t)):(0,ve.D)(this.fetchImage(t)).pipe((0,U.U)(i=>URL.createObjectURL(i)),(0,U.U)(i=>this.domSanitizer.bypassSecurityTrustUrl(i)),(0,C.b)(i=>Me.set(t,i)),(0,_e.K)(()=>(0,Y.of)(this.domSanitizer.bypassSecurityTrustUrl("")))):ye.has(t)?(0,Y.of)(ye.get(t)):(0,ve.D)(this.fetchImage(t)).pipe((0,Re.w)(i=>this.createDataURL(i)),(0,C.b)(i=>ye.set(t,i)),(0,_e.K)(()=>(0,Y.of)(this.domSanitizer.bypassSecurityTrustUrl(""))))}fetchImage(t){return function(n){return function(){var s=this,t=arguments;return new Promise(function(o,i){var r=n.apply(s,t);function a(d){He(r,o,i,a,u,"next",d)}function u(d){He(r,o,i,a,u,"throw",d)}a(void 0)})}}(function*(){return yield(yield fetch(t,{referrer:""})).blob()})()}createDataURL(t){const o=new FileReader,i=(0,xo.R)(o,"load").pipe((0,U.U)(()=>this.domSanitizer.bypassSecurityTrustUrl(o.result)));return o.readAsDataURL(t),i}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(vo.H7,16))},n.\u0275pipe=e.Yjl({name:"dataurl",type:n,pure:!0}),n})();function yo(n,s){if(1&n&&(e.TgZ(0,"div",15),e._UZ(1,"img",16),e.ALo(2,"async"),e.ALo(3,"dataurl"),e.TgZ(4,"h2",17),e._uU(5),e.qZA(),e._UZ(6,"app-status-display",18),e.qZA()),2&n){const t=e.oxw();e.xp6(1),e.Q6J("src",e.lcZ(2,4,e.lcZ(3,6,t.data.room_info.cover)),e.LSH),e.xp6(3),e.Q6J("nzTooltipTitle","\u76f4\u64ad\u95f4\u6807\u9898\uff1a"+t.data.room_info.title),e.xp6(1),e.hij(" ",t.data.room_info.title," "),e.xp6(1),e.Q6J("status",t.data.task_status)}}function Mo(n,s){if(1&n&&(e._UZ(0,"nz-avatar",19),e.ALo(1,"async"),e.ALo(2,"dataurl")),2&n){const t=e.oxw();e.Q6J("nzShape","square")("nzSize",54)("nzSrc",e.lcZ(1,3,e.lcZ(2,5,t.data.user_info.face)))}}function Ao(n,s){1&n&&(e.TgZ(0,"nz-tag",28),e._UZ(1,"i",29),e.TgZ(2,"span"),e._uU(3,"\u672a\u5f00\u64ad"),e.qZA(),e.qZA())}function Oo(n,s){1&n&&(e.TgZ(0,"nz-tag",30),e._UZ(1,"i",31),e.TgZ(2,"span"),e._uU(3,"\u76f4\u64ad\u4e2d"),e.qZA(),e.qZA())}function So(n,s){1&n&&(e.TgZ(0,"nz-tag",32),e._UZ(1,"i",33),e.TgZ(2,"span"),e._uU(3,"\u8f6e\u64ad\u4e2d"),e.qZA(),e.qZA())}function wo(n,s){if(1&n&&(e.TgZ(0,"p",20),e.TgZ(1,"span",21),e.TgZ(2,"a",22),e._uU(3),e.qZA(),e.qZA(),e.TgZ(4,"span",23),e.ynx(5,24),e.YNc(6,Ao,4,0,"nz-tag",25),e.YNc(7,Oo,4,0,"nz-tag",26),e.YNc(8,So,4,0,"nz-tag",27),e.BQk(),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(2),e.MGl("href","https://space.bilibili.com/",t.data.user_info.uid,"",e.LSH),e.xp6(1),e.hij(" ",t.data.user_info.name," "),e.xp6(2),e.Q6J("ngSwitch",t.data.room_info.live_status),e.xp6(1),e.Q6J("ngSwitchCase",0),e.xp6(1),e.Q6J("ngSwitchCase",1),e.xp6(1),e.Q6J("ngSwitchCase",2)}}function Po(n,s){if(1&n&&(e.TgZ(0,"span",41),e.TgZ(1,"a",22),e._uU(2),e.qZA(),e.qZA()),2&n){const t=e.oxw(2);e.xp6(1),e.MGl("href","https://live.bilibili.com/",t.data.room_info.short_room_id,"",e.LSH),e.xp6(1),e.hij(" ",t.data.room_info.short_room_id,"")}}function Zo(n,s){if(1&n&&(e.TgZ(0,"p",34),e.TgZ(1,"span",35),e.TgZ(2,"span",36),e._uU(3,"\u623f\u95f4\u53f7\uff1a"),e.qZA(),e.YNc(4,Po,3,2,"span",37),e.TgZ(5,"span",38),e.TgZ(6,"a",22),e._uU(7),e.qZA(),e.qZA(),e.qZA(),e.TgZ(8,"span",39),e.TgZ(9,"a",22),e.TgZ(10,"nz-tag",40),e._uU(11),e.qZA(),e.qZA(),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(4),e.Q6J("ngIf",t.data.room_info.short_room_id),e.xp6(2),e.MGl("href","https://live.bilibili.com/",t.data.room_info.room_id,"",e.LSH),e.xp6(1),e.Oqu(t.data.room_info.room_id),e.xp6(2),e.hYB("href","https://live.bilibili.com/p/eden/area-tags?parentAreaId=",t.data.room_info.parent_area_id,"&areaId=",t.data.room_info.area_id,"",e.LSH),e.xp6(1),e.Q6J("nzColor","#23ade5"),e.xp6(1),e.hij(" ",t.data.room_info.area_name," ")}}function No(n,s){if(1&n){const t=e.EpF();e.TgZ(0,"nz-switch",42),e.NdJ("click",function(){return e.CHM(t),e.oxw().toggleRecorder()}),e.qZA()}if(2&n){const t=e.oxw();e.Q6J("nzDisabled",t.toggleRecorderForbidden)("ngModel",t.data.task_status.recorder_enabled)("nzControl",!0)("nzLoading",t.switchPending)}}function Fo(n,s){if(1&n){const t=e.EpF();e.TgZ(0,"div",43),e.NdJ("nzOnConfirm",function(){return e.CHM(t),e.oxw().removeTask()}),e._UZ(1,"i",44),e.qZA()}}function Do(n,s){if(1&n){const t=e.EpF();e.ynx(0),e.TgZ(1,"app-task-settings-dialog",48),e.NdJ("visibleChange",function(i){return e.CHM(t),e.oxw(2).settingsDialogVisible=i})("confirm",function(i){return e.CHM(t),e.oxw(2).changeTaskOptions(i)})("afterClose",function(){return e.CHM(t),e.oxw(2).cleanSettingsData()}),e.qZA(),e.BQk()}if(2&n){const t=e.oxw(2);e.xp6(1),e.Q6J("taskOptions",t.taskOptions)("globalSettings",t.globalSettings)("visible",t.settingsDialogVisible)}}function Io(n,s){if(1&n){const t=e.EpF();e.TgZ(0,"div",45),e.NdJ("click",function(){return e.CHM(t),e.oxw().openSettingsDialog()}),e._UZ(1,"i",46),e.qZA(),e.YNc(2,Do,2,3,"ng-container",47)}if(2&n){const t=e.oxw();e.xp6(2),e.Q6J("ngIf",t.taskOptions&&t.globalSettings)}}function Bo(n,s){if(1&n&&(e.TgZ(0,"div",51),e._UZ(1,"i",52),e.qZA()),2&n){e.oxw(2);const t=e.MAs(20);e.Q6J("nzDropdownMenu",t)}}function Jo(n,s){if(1&n){const t=e.EpF();e.TgZ(0,"div",53),e.NdJ("click",function(){return e.CHM(t),e.oxw(2).menuDrawerVisible=!0}),e._UZ(1,"i",52),e.qZA()}}function Eo(n,s){if(1&n&&(e.YNc(0,Bo,2,1,"div",49),e.YNc(1,Jo,2,0,"div",50)),2&n){const t=e.oxw();e.Q6J("ngIf",!t.useDrawer),e.xp6(1),e.Q6J("ngIf",t.useDrawer)}}function Qo(n,s){if(1&n){const t=e.EpF();e.TgZ(0,"ul",54),e.TgZ(1,"li",55),e.NdJ("click",function(){return e.CHM(t),e.oxw().startTask()}),e._uU(2,"\u8fd0\u884c\u4efb\u52a1"),e.qZA(),e.TgZ(3,"li",55),e.NdJ("click",function(){return e.CHM(t),e.oxw().stopTask()}),e._uU(4,"\u505c\u6b62\u4efb\u52a1"),e.qZA(),e.TgZ(5,"li",55),e.NdJ("click",function(){return e.CHM(t),e.oxw().stopTask(!0)}),e._uU(6,"\u5f3a\u5236\u505c\u6b62\u4efb\u52a1"),e.qZA(),e.TgZ(7,"li",55),e.NdJ("click",function(){return e.CHM(t),e.oxw().disableRecorder(!0)}),e._uU(8,"\u5f3a\u5236\u5173\u95ed\u5f55\u5236"),e.qZA(),e.TgZ(9,"li",55),e.NdJ("click",function(){return e.CHM(t),e.oxw().updateTaskInfo()}),e._uU(10,"\u5237\u65b0\u6570\u636e"),e.qZA(),e.qZA()}}function Yo(n,s){if(1&n){const t=e.EpF();e.ynx(0),e.TgZ(1,"div",58),e.NdJ("click",function(){return e.CHM(t),e.oxw(2).menuDrawerVisible=!1}),e.GkF(2,12),e.qZA(),e.BQk()}if(2&n){e.oxw(2);const t=e.MAs(23);e.xp6(2),e.Q6J("ngTemplateOutlet",t)}}const Uo=function(){return{padding:"0"}};function qo(n,s){if(1&n){const t=e.EpF();e.TgZ(0,"nz-drawer",56),e.NdJ("nzVisibleChange",function(i){return e.CHM(t),e.oxw().menuDrawerVisible=i})("nzOnClose",function(){return e.CHM(t),e.oxw().menuDrawerVisible=!1}),e.YNc(1,Yo,3,1,"ng-container",57),e.qZA()}if(2&n){const t=e.oxw();e.Q6J("nzClosable",!1)("nzBodyStyle",e.DdM(3,Uo))("nzVisible",t.menuDrawerVisible)}}const Ro=function(n,s,t,o){return[n,s,t,o]},Lo=function(){return{padding:"0.5rem"}},Go=function(){return{size:"large"}};let $o=(()=>{class n{constructor(t,o,i,r,a,u){this.changeDetector=o,this.message=i,this.modal=r,this.settingService=a,this.taskManager=u,this.stopped=!1,this.destroyed=new A.xQ,this.useDrawer=!1,this.menuDrawerVisible=!1,this.switchPending=!1,this.settingsDialogVisible=!1,this.RunningStatus=S,t.observe(ne[0]).pipe((0,v.R)(this.destroyed)).subscribe(d=>{this.useDrawer=d.matches,o.markForCheck()})}get roomId(){return this.data.room_info.room_id}get toggleRecorderForbidden(){return!this.data.task_status.monitor_enabled}ngOnChanges(t){console.debug("[ngOnChanges]",this.roomId,t),this.stopped=this.data.task_status.running_status===S.STOPPED}ngOnDestroy(){this.destroyed.next(),this.destroyed.complete()}updateTaskInfo(){this.taskManager.updateTaskInfo(this.roomId).subscribe()}toggleRecorder(){this.toggleRecorderForbidden||this.switchPending||(this.switchPending=!0,this.data.task_status.recorder_enabled?this.taskManager.disableRecorder(this.roomId).subscribe(()=>this.switchPending=!1):this.taskManager.enableRecorder(this.roomId).subscribe(()=>this.switchPending=!1))}removeTask(){this.taskManager.removeTask(this.roomId).subscribe()}startTask(){this.data.task_status.running_status===S.STOPPED?this.taskManager.startTask(this.roomId).subscribe():this.message.warning("\u4efb\u52a1\u8fd0\u884c\u4e2d\uff0c\u5ffd\u7565\u64cd\u4f5c\u3002")}stopTask(t=!1){this.data.task_status.running_status!==S.STOPPED?t&&this.data.task_status.running_status==S.RECORDING?this.modal.confirm({nzTitle:"\u786e\u5b9a\u8981\u5f3a\u5236\u505c\u6b62\u4efb\u52a1\uff1f",nzContent:"\u6b63\u5728\u5f55\u5236\u7684\u6587\u4ef6\u4f1a\u88ab\u5f3a\u884c\u4e2d\u65ad\uff01\u786e\u5b9a\u8981\u653e\u5f03\u6b63\u5728\u5f55\u5236\u7684\u6587\u4ef6\uff1f",nzOnOk:()=>new Promise((o,i)=>{this.taskManager.stopTask(this.roomId,t).subscribe(o,i)})}):this.taskManager.stopTask(this.roomId).subscribe():this.message.warning("\u4efb\u52a1\u5904\u4e8e\u505c\u6b62\u72b6\u6001\uff0c\u5ffd\u7565\u64cd\u4f5c\u3002")}disableRecorder(t=!1){this.data.task_status.recorder_enabled?t&&this.data.task_status.running_status==S.RECORDING?this.modal.confirm({nzTitle:"\u786e\u5b9a\u8981\u5f3a\u5236\u505c\u6b62\u5f55\u5236\uff1f",nzContent:"\u6b63\u5728\u5f55\u5236\u7684\u6587\u4ef6\u4f1a\u88ab\u5f3a\u884c\u4e2d\u65ad\uff01\u786e\u5b9a\u8981\u653e\u5f03\u6b63\u5728\u5f55\u5236\u7684\u6587\u4ef6\uff1f",nzOnOk:()=>new Promise((o,i)=>{this.taskManager.disableRecorder(this.roomId,t).subscribe(o,i)})}):this.taskManager.disableRecorder(this.roomId).subscribe():this.message.warning("\u5f55\u5236\u5904\u4e8e\u5173\u95ed\u72b6\u6001\uff0c\u5ffd\u7565\u64cd\u4f5c\u3002")}openSettingsDialog(){(function(...n){const s=n[n.length-1];return"function"==typeof s&&n.pop(),(0,qn.n)(n,void 0).lift(new $n(s))})(this.settingService.getTaskOptions(this.roomId),this.settingService.getSettings(["output","header","danmaku","recorder","postprocessing"])).subscribe(([t,o])=>{this.taskOptions=t,this.globalSettings=o,this.settingsDialogVisible=!0,this.changeDetector.markForCheck()},t=>{this.message.error(`\u83b7\u53d6\u4efb\u52a1\u8bbe\u7f6e\u51fa\u9519: ${t.message}`)})}cleanSettingsData(){delete this.taskOptions,delete this.globalSettings,this.changeDetector.markForCheck()}changeTaskOptions(t){this.settingService.changeTaskOptions(this.roomId,t).pipe((0,Ge.X)(3,300)).subscribe(o=>{this.message.success("\u4fee\u6539\u4efb\u52a1\u8bbe\u7f6e\u6210\u529f")},o=>{this.message.error(`\u4fee\u6539\u4efb\u52a1\u8bbe\u7f6e\u51fa\u9519: ${o.message}`)})}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(F.Yg),e.Y36(e.sBO),e.Y36(ke.dD),e.Y36(Q.Sf),e.Y36(Xn.R),e.Y36(xe))},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-task-item"]],hostVars:2,hostBindings:function(t,o){2&t&&e.ekj("stopped",o.stopped)},inputs:{data:"data"},features:[e.TTD],decls:25,vars:18,consts:[[3,"nzCover","nzActions","nzBodyStyle"],[3,"nzActive","nzLoading","nzAvatar"],[3,"nzAvatar","nzTitle","nzDescription"],["coverTemplate",""],["avatarTemplate",""],["titleTemplate",""],["descTemplate",""],["actionSwitch",""],["actionDelete",""],["actionSetting",""],["actionMore",""],["dropdownMenu","nzDropdownMenu"],[3,"ngTemplateOutlet"],["menu",""],["nzPlacement","bottom","nzHeight","auto",3,"nzClosable","nzBodyStyle","nzVisible","nzVisibleChange","nzOnClose",4,"ngIf"],[1,"cover-wrapper"],["alt","\u76f4\u64ad\u95f4\u5c01\u9762",1,"cover",3,"src"],["nz-tooltip","","nzTooltipPlacement","bottomLeft",1,"title",3,"nzTooltipTitle"],[3,"status"],[3,"nzShape","nzSize","nzSrc"],[1,"meta-title"],["nz-tooltip","","nzTooltipTitle","\u6253\u5f00\u4e3b\u64ad\u4e2a\u4eba\u7a7a\u95f4\u9875\u9762","nzTooltipPlacement","right",1,"user-name"],["target","_blank",3,"href"],[1,"live-status"],[3,"ngSwitch"],["nzColor","default",4,"ngSwitchCase"],["nzColor","red",4,"ngSwitchCase"],["nzColor","green",4,"ngSwitchCase"],["nzColor","default"],["nz-icon","","nzType","frown"],["nzColor","red"],["nz-icon","","nzType","fire"],["nzColor","green"],["nz-icon","","nzType","sync","nzSpin",""],[1,"meta-desc"],[1,"room-id-wrapper"],[1,"room-id-label"],["class","short-room-id","nz-tooltip","","nzTooltipTitle","\u6253\u5f00\u76f4\u64ad\u95f4\u9875\u9762","nzTooltipPlacement","bottom",4,"ngIf"],["nz-tooltip","","nzTooltipTitle","\u6253\u5f00\u76f4\u64ad\u95f4\u9875\u9762","nzTooltipPlacement","bottom",1,"real-room-id"],["nz-tooltip","","nzTooltipTitle","\u6253\u5f00\u76f4\u64ad\u5206\u533a\u9875\u9762","nzTooltipPlacement","leftTop",1,"area-name"],[3,"nzColor"],["nz-tooltip","","nzTooltipTitle","\u6253\u5f00\u76f4\u64ad\u95f4\u9875\u9762","nzTooltipPlacement","bottom",1,"short-room-id"],["nz-tooltip","","nzTooltipTitle","\u5f55\u5236\u5f00\u5173",3,"nzDisabled","ngModel","nzControl","nzLoading","click"],["nz-tooltip","","nzTooltipTitle","\u5220\u9664\u4efb\u52a1","nz-popconfirm","","nzPopconfirmTitle","\u786e\u5b9a\u8981\u5220\u9664\u6b64\u4efb\u52a1\uff1f","nzPopconfirmPlacement","topLeft",3,"nzOnConfirm"],["nz-icon","","nzType","delete"],["nz-tooltip","","nzTooltipTitle","\u4efb\u52a1\u8bbe\u7f6e",3,"click"],["nz-icon","","nzType","setting"],[4,"ngIf"],[3,"taskOptions","globalSettings","visible","visibleChange","confirm","afterClose"],["nz-dropdown","","nzPlacement","topRight",3,"nzDropdownMenu",4,"ngIf"],[3,"click",4,"ngIf"],["nz-dropdown","","nzPlacement","topRight",3,"nzDropdownMenu"],["nz-icon","","nzType","more"],[3,"click"],["nz-menu","",1,"menu"],["nz-menu-item","",3,"click"],["nzPlacement","bottom","nzHeight","auto",3,"nzClosable","nzBodyStyle","nzVisible","nzVisibleChange","nzOnClose"],[4,"nzDrawerContent"],[1,"drawer-content",3,"click"]],template:function(t,o){if(1&t&&(e.TgZ(0,"nz-card",0),e.TgZ(1,"nz-skeleton",1),e._UZ(2,"nz-card-meta",2),e.qZA(),e.qZA(),e.YNc(3,yo,7,8,"ng-template",null,3,e.W1O),e.YNc(5,Mo,3,7,"ng-template",null,4,e.W1O),e.YNc(7,wo,9,6,"ng-template",null,5,e.W1O),e.YNc(9,Zo,12,7,"ng-template",null,6,e.W1O),e.YNc(11,No,1,4,"ng-template",null,7,e.W1O),e.YNc(13,Fo,2,0,"ng-template",null,8,e.W1O),e.YNc(15,Io,3,1,"ng-template",null,9,e.W1O),e.YNc(17,Eo,2,2,"ng-template",null,10,e.W1O),e.TgZ(19,"nz-dropdown-menu",null,11),e.GkF(21,12),e.YNc(22,Qo,11,0,"ng-template",null,13,e.W1O),e.qZA(),e.YNc(24,qo,2,4,"nz-drawer",14)),2&t){const i=e.MAs(4),r=e.MAs(6),a=e.MAs(8),u=e.MAs(10),d=e.MAs(12),T=e.MAs(14),M=e.MAs(16),V=e.MAs(18),ie=e.MAs(23);e.Q6J("nzCover",i)("nzActions",e.l5B(11,Ro,T,M,d,V))("nzBodyStyle",e.DdM(16,Lo)),e.xp6(1),e.Q6J("nzActive",!0)("nzLoading",!o.data)("nzAvatar",e.DdM(17,Go)),e.xp6(1),e.Q6J("nzAvatar",r)("nzTitle",a)("nzDescription",u),e.xp6(19),e.Q6J("ngTemplateOutlet",ie),e.xp6(3),e.Q6J("ngIf",o.useDrawer)}},directives:[R.bd,Xe,R.l7,$.RR,c.tP,c.O5,E.SY,uo,K.Dz,c.RF,c.n9,B,k.Ls,de.w,Ce.i,g.JJ,g.On,gt,To,$.cm,oe.wO,oe.r9,te.Vz,te.SQ],pipes:[c.Ov,bo],styles:['.cover-wrapper[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{color:#fff;text-shadow:1px 1px 2px black;margin:0;padding:0 .5rem;background:rgba(0,0,0,.32)}.drawer-content[_ngcontent-%COMP%] .menu[_ngcontent-%COMP%]{box-shadow:none;padding:.5em 0}.drawer-content[_ngcontent-%COMP%] .menu[_ngcontent-%COMP%] *[nz-menu-item][_ngcontent-%COMP%]{margin:0;padding:.5em 2em}.stopped[_nghost-%COMP%]{filter:grayscale(100%)}a[_ngcontent-%COMP%]{color:inherit}a[_ngcontent-%COMP%]:hover{color:#1890ff}a[_ngcontent-%COMP%]:focus-visible{outline:-webkit-focus-ring-color auto 1px}.cover-wrapper[_ngcontent-%COMP%]{--cover-ratio: 264 / 470;--cover-height: calc(var(--card-width) * var(--cover-ratio));position:relative;width:var(--card-width);height:var(--cover-height)}.cover-wrapper[_ngcontent-%COMP%] .cover[_ngcontent-%COMP%]{width:100%;max-height:var(--cover-height);object-fit:cover}.cover-wrapper[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{position:absolute;top:.5rem;left:.5rem;font-size:1.2rem;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:calc(100% - 1em);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}nz-card-meta[_ngcontent-%COMP%]{margin:0}.meta-title[_ngcontent-%COMP%]{margin:0;display:flex;grid-column-gap:1em;column-gap:1em}.meta-title[_ngcontent-%COMP%] .user-name[_ngcontent-%COMP%]{color:#fb7299;font-size:1rem;font-weight:bold;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.meta-title[_ngcontent-%COMP%] .live-status[_ngcontent-%COMP%] nz-tag[_ngcontent-%COMP%]{margin:0;position:relative;bottom:1px}.meta-desc[_ngcontent-%COMP%]{margin:0;display:flex}.meta-desc[_ngcontent-%COMP%] .room-id-wrapper[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.meta-desc[_ngcontent-%COMP%] .room-id-wrapper[_ngcontent-%COMP%] .short-room-id[_ngcontent-%COMP%]:after{display:inline-block;width:1em;content:", "}@media screen and (max-width: 320px){.meta-desc[_ngcontent-%COMP%] .room-id-wrapper[_ngcontent-%COMP%] .room-id-label[_ngcontent-%COMP%]{display:none}}.meta-desc[_ngcontent-%COMP%] .area-name[_ngcontent-%COMP%]{margin-left:auto}.meta-desc[_ngcontent-%COMP%] .area-name[_ngcontent-%COMP%] nz-tag[_ngcontent-%COMP%]{margin:0;border-radius:30px;padding:0 1em}'],changeDetection:0}),n})();function Ho(n,s){1&n&&(e.TgZ(0,"div",2),e._UZ(1,"nz-empty"),e.qZA())}function jo(n,s){1&n&&e._UZ(0,"app-task-item",6),2&n&&e.Q6J("data",s.$implicit)}function Vo(n,s){if(1&n&&(e.TgZ(0,"div",3,4),e.YNc(2,jo,1,1,"app-task-item",5),e.qZA()),2&n){const t=e.oxw();e.xp6(2),e.Q6J("ngForOf",t.dataList)("ngForTrackBy",t.trackByRoomId)}}let Wo=(()=>{class n{constructor(){this.dataList=[]}trackByRoomId(t,o){return o.room_info.room_id}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-task-list"]],inputs:{dataList:"dataList"},decls:3,vars:2,consts:[["class","empty-container",4,"ngIf","ngIfElse"],["elseBlock",""],[1,"empty-container"],[1,"tasks-container"],["tasks",""],[3,"data",4,"ngFor","ngForOf","ngForTrackBy"],[3,"data"]],template:function(t,o){if(1&t&&(e.YNc(0,Ho,2,0,"div",0),e.YNc(1,Vo,3,2,"ng-template",null,1,e.W1O)),2&t){const i=e.MAs(2);e.Q6J("ngIf",0===o.dataList.length)("ngIfElse",i)}},directives:[c.O5,Je.p9,c.sg,$o],styles:["[_nghost-%COMP%]{height:100%;width:100%;position:relative;display:block;margin:0;padding:1rem;background:#f1f3f4;overflow:auto}[_nghost-%COMP%]{--card-width: 400px;--grid-gutter: 12px;--max-columns: 3;padding:var(--grid-gutter)}@media screen and (max-width: 400px){[_nghost-%COMP%]{--card-width: 100%;padding:var(--grid-gutter) 0}}.tasks-container[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,var(--card-width));grid-gap:var(--grid-gutter);gap:var(--grid-gutter);justify-content:center;max-width:min(100%,calc(var(--card-width) * var(--max-columns) + var(--grid-gutter) * (var(--max-columns) - 1)));margin:0 auto}.empty-container[_ngcontent-%COMP%]{height:100%;width:100%;display:flex;align-items:center;justify-content:center}"],changeDetection:0}),n})(),Ko=(()=>{class n{transform(t,o=""){return console.debug("filter tasks by '%s'",o),[...this.filterByTerm(t,o)]}filterByTerm(t,o){return function*(n,s){for(const t of n)i=t,(""===(o=o.trim())||i.user_info.name.includes(o)||i.room_info.title.toString().includes(o)||i.room_info.area_name.toString().includes(o)||i.room_info.room_id.toString().includes(o)||i.room_info.short_room_id.toString().includes(o))&&(yield t);var i}(t)}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275pipe=e.Yjl({name:"filterTasks",type:n,pure:!0}),n})();function ei(n,s){if(1&n&&e._UZ(0,"nz-spin",6),2&n){const t=e.oxw();e.Q6J("nzSize","large")("nzSpinning",t.loading)}}function ti(n,s){if(1&n&&(e._UZ(0,"app-task-list",7),e.ALo(1,"filterTasks")),2&n){const t=e.oxw();e.Q6J("dataList",e.xi3(1,1,t.dataList,t.filterTerm))}}const je="app-tasks-selection",Ve="app-tasks-reverse",ni=[{path:"",component:(()=>{class n{constructor(t,o,i,r){this.changeDetector=t,this.notification=o,this.storage=i,this.taskService=r,this.loading=!0,this.dataList=[],this.filterTerm="",this.selection=this.retrieveSelection(),this.reverse=this.retrieveReverse()}ngOnInit(){this.syncTaskData()}ngOnDestroy(){this.desyncTaskData()}onSelectionChanged(t){this.selection=t,this.storeSelection(t),this.desyncTaskData(),this.syncTaskData()}onReverseChanged(t){this.reverse=t,this.storeReverse(t),t&&(this.dataList=[...this.dataList.reverse()],this.changeDetector.markForCheck())}retrieveSelection(){const t=this.storage.getData(je);return null!==t?t:y.ALL}retrieveReverse(){return"true"===this.storage.getData(Ve)}storeSelection(t){this.storage.setData(je,t)}storeReverse(t){this.storage.setData(Ve,t.toString())}syncTaskData(){this.dataSubscription=(0,Y.of)((0,Y.of)(0),function(n=0,s=Le.P){return(!(0,rn.k)(n)||n<0)&&(n=0),(!s||"function"!=typeof s.schedule)&&(s=Le.P),new sn.y(t=>(t.add(s.schedule(ln,n,{subscriber:t,counter:0,period:n})),t))}(1e3)).pipe((0,on.u)(),(0,Re.w)(()=>this.taskService.getAllTaskData(this.selection)),(0,_e.K)(t=>{throw this.notification.error("\u83b7\u53d6\u4efb\u52a1\u6570\u636e\u51fa\u9519",t.message),t}),(0,Ge.X)(10,3e3)).subscribe(t=>{this.loading=!1,this.dataList=this.reverse?t.reverse():t,this.changeDetector.markForCheck()},t=>{this.notification.error("\u83b7\u53d6\u4efb\u52a1\u6570\u636e\u51fa\u9519","\u7f51\u7edc\u8fde\u63a5\u5f02\u5e38, \u8bf7\u5f85\u7f51\u7edc\u6b63\u5e38\u540e\u5237\u65b0\u3002",{nzDuration:0})})}desyncTaskData(){var t;null===(t=this.dataSubscription)||void 0===t||t.unsubscribe()}}return n.\u0275fac=function(t){return new(t||n)(e.Y36(e.sBO),e.Y36(cn.zb),e.Y36(pn.V),e.Y36($e))},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-tasks"]],decls:8,vars:4,consts:[[3,"selection","reverse","selectionChange","reverseChange","filterChange"],["class","spinner",3,"nzSize","nzSpinning",4,"ngIf","ngIfElse"],["elseBlock",""],["nz-button","","nzType","primary","nzSize","large","nzShape","circle","nz-tooltip","","nzTooltipTitle","\u6dfb\u52a0\u4efb\u52a1",1,"add-task-button",3,"click"],["nz-icon","","nzType","plus"],["addTaskDialog",""],[1,"spinner",3,"nzSize","nzSpinning"],[3,"dataList"]],template:function(t,o){if(1&t){const i=e.EpF();e.TgZ(0,"app-toolbar",0),e.NdJ("selectionChange",function(a){return o.onSelectionChanged(a)})("reverseChange",function(a){return o.onReverseChanged(a)})("filterChange",function(a){return o.filterTerm=a}),e.qZA(),e.YNc(1,ei,1,2,"nz-spin",1),e.YNc(2,ti,2,4,"ng-template",null,2,e.W1O),e.TgZ(4,"button",3),e.NdJ("click",function(){return e.CHM(i),e.MAs(7).open()}),e._UZ(5,"i",4),e.qZA(),e._UZ(6,"app-add-task-dialog",null,5)}if(2&t){const i=e.MAs(3);e.Q6J("selection",o.selection)("reverse",o.reverse),e.xp6(1),e.Q6J("ngIf",o.loading)("ngIfElse",i)}},directives:[Nn,c.O5,ee.ix,Ie.dQ,de.w,E.SY,k.Ls,Un,Ee.W,Wo],pipes:[Ko],styles:["[_nghost-%COMP%]{height:100%;width:100%;position:relative;display:block;margin:0;padding:1rem;background:#f1f3f4;overflow:auto}.spinner[_ngcontent-%COMP%]{height:100%;width:100%}[_nghost-%COMP%]{display:flex;flex-direction:column;padding:0;overflow:hidden}.add-task-button[_ngcontent-%COMP%]{position:fixed;bottom:5vh;right:5vw}"],changeDetection:0}),n})()}];let oi=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=e.oAB({type:n}),n.\u0275inj=e.cJS({imports:[[qe.Bz.forChild(ni)],qe.Bz]}),n})(),ii=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=e.oAB({type:n}),n.\u0275inj=e.cJS({imports:[[c.ez,g.u5,g.UX,F.xu,X,O.Jb,R.vh,Se,K.Rt,k.PV,Se,E.cg,re,Ce.m,$.b1,ee.sL,Q.Qp,Z.U5,H.o7,we.Wr,mt,me.aF,Be.S,Je.Xo,Ee.j,At,te.BL,Te.LV,tn,oi,nn.m]]}),n})()}}]); \ No newline at end of file diff --git a/src/blrec/data/webapp/954.05cbcc74da25eb3ef2a9.js b/src/blrec/data/webapp/954.05cbcc74da25eb3ef2a9.js new file mode 100644 index 0000000..c18b037 --- /dev/null +++ b/src/blrec/data/webapp/954.05cbcc74da25eb3ef2a9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkblrec=self.webpackChunkblrec||[]).push([[954],{7618:(x,y,a)=>{a.d(y,{D3:()=>D,y7:()=>m});var l=a(7716),_=(a(4762),a(6182),a(9490)),P=a(8891),v=a(9765);let f=(()=>{class o{create(i){return"undefined"==typeof ResizeObserver?null:new ResizeObserver(i)}}return o.\u0275fac=function(i){return new(i||o)},o.\u0275prov=l.Yz7({factory:function(){return new o},token:o,providedIn:"root"}),o})(),D=(()=>{class o{constructor(i){this.nzResizeObserverFactory=i,this.observedElements=new Map}ngOnDestroy(){this.observedElements.forEach((i,g)=>this.cleanupObserver(g))}observe(i){const g=(0,_.fI)(i);return new P.y(p=>{const H=this.observeElement(g).subscribe(p);return()=>{H.unsubscribe(),this.unobserveElement(g)}})}observeElement(i){if(this.observedElements.has(i))this.observedElements.get(i).count++;else{const g=new v.xQ,p=this.nzResizeObserverFactory.create(M=>g.next(M));p&&p.observe(i),this.observedElements.set(i,{observer:p,stream:g,count:1})}return this.observedElements.get(i).stream}unobserveElement(i){this.observedElements.has(i)&&(this.observedElements.get(i).count--,this.observedElements.get(i).count||this.cleanupObserver(i))}cleanupObserver(i){if(this.observedElements.has(i)){const{observer:g,stream:p}=this.observedElements.get(i);g&&g.disconnect(),p.complete(),this.observedElements.delete(i)}}}return o.\u0275fac=function(i){return new(i||o)(l.LFG(f))},o.\u0275prov=l.Yz7({factory:function(){return new o(l.LFG(f))},token:o,providedIn:"root"}),o})(),m=(()=>{class o{}return o.\u0275fac=function(i){return new(i||o)},o.\u0275mod=l.oAB({type:o}),o.\u0275inj=l.cJS({providers:[f]}),o})()},6271:(x,y,a)=>{a.d(y,{$O:()=>U,KJ:()=>K});var l=a(946),b=a(8583),e=a(7716),_=a(8178),P=a(464),v=a(4762),f=a(9765),D=a(6782),R=a(8002),m=a(2729),o=a(6956),z=a(7618);function i(t,c){if(1&t&&(e.ynx(0),e._UZ(1,"i",9),e.BQk()),2&t){const n=c.$implicit,u=e.oxw(2);e.xp6(1),e.Q6J("nzType",n||u.getBackIcon())}}function g(t,c){if(1&t){const n=e.EpF();e.TgZ(0,"div",6),e.NdJ("click",function(){return e.CHM(n),e.oxw().onBack()}),e.TgZ(1,"div",7),e.YNc(2,i,2,1,"ng-container",8),e.qZA(),e.qZA()}if(2&t){const n=e.oxw();e.xp6(2),e.Q6J("nzStringTemplateOutlet",n.nzBackIcon)}}function p(t,c){if(1&t&&(e.ynx(0),e._uU(1),e.BQk()),2&t){const n=e.oxw(2);e.xp6(1),e.Oqu(n.nzTitle)}}function M(t,c){if(1&t&&(e.TgZ(0,"span",10),e.YNc(1,p,2,1,"ng-container",8),e.qZA()),2&t){const n=e.oxw();e.xp6(1),e.Q6J("nzStringTemplateOutlet",n.nzTitle)}}function H(t,c){1&t&&e.Hsn(0,6,["*ngIf","!nzTitle"])}function h(t,c){if(1&t&&(e.ynx(0),e._uU(1),e.BQk()),2&t){const n=e.oxw(2);e.xp6(1),e.Oqu(n.nzSubtitle)}}function r(t,c){if(1&t&&(e.TgZ(0,"span",11),e.YNc(1,h,2,1,"ng-container",8),e.qZA()),2&t){const n=e.oxw();e.xp6(1),e.Q6J("nzStringTemplateOutlet",n.nzSubtitle)}}function s(t,c){1&t&&e.Hsn(0,7,["*ngIf","!nzSubtitle"])}const d=[[["nz-breadcrumb","nz-page-header-breadcrumb",""]],[["nz-avatar","nz-page-header-avatar",""]],[["nz-page-header-tags"],["","nz-page-header-tags",""]],[["nz-page-header-extra"],["","nz-page-header-extra",""]],[["nz-page-header-content"],["","nz-page-header-content",""]],[["nz-page-header-footer"],["","nz-page-header-footer",""]],[["nz-page-header-title"],["","nz-page-header-title",""]],[["nz-page-header-subtitle"],["","nz-page-header-subtitle",""]]],O=["nz-breadcrumb[nz-page-header-breadcrumb]","nz-avatar[nz-page-header-avatar]","nz-page-header-tags, [nz-page-header-tags]","nz-page-header-extra, [nz-page-header-extra]","nz-page-header-content, [nz-page-header-content]","nz-page-header-footer, [nz-page-header-footer]","nz-page-header-title, [nz-page-header-title]","nz-page-header-subtitle, [nz-page-header-subtitle]"];let C=(()=>{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275dir=e.lG2({type:t,selectors:[["nz-page-header-footer"],["","nz-page-header-footer",""]],hostAttrs:[1,"ant-page-header-footer"],exportAs:["nzPageHeaderFooter"]}),t})(),S=(()=>{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275dir=e.lG2({type:t,selectors:[["nz-breadcrumb","nz-page-header-breadcrumb",""]],exportAs:["nzPageHeaderBreadcrumb"]}),t})(),U=(()=>{class t{constructor(n,u,T,N,w,Y){this.location=n,this.nzConfigService=u,this.elementRef=T,this.nzResizeObserver=N,this.cdr=w,this.directionality=Y,this._nzModuleName="pageHeader",this.nzBackIcon=null,this.nzGhost=!0,this.nzBack=new e.vpe,this.compact=!1,this.destroy$=new f.xQ,this.dir="ltr"}ngOnInit(){var n;null===(n=this.directionality.change)||void 0===n||n.pipe((0,D.R)(this.destroy$)).subscribe(u=>{this.dir=u,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngAfterViewInit(){this.nzResizeObserver.observe(this.elementRef).pipe((0,R.U)(([n])=>n.contentRect.width),(0,D.R)(this.destroy$)).subscribe(n=>{this.compact=n<768,this.cdr.markForCheck()})}onBack(){if(this.nzBack.observers.length)this.nzBack.emit();else{if(!this.location)throw new Error(`${o.Bq} you should import 'RouterModule' or register 'Location' if you want to use 'nzBack' default event!`);this.location.back()}}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}getBackIcon(){return"rtl"===this.dir?"arrow-right":"arrow-left"}}return t.\u0275fac=function(n){return new(n||t)(e.Y36(b.Ye,8),e.Y36(m.jY),e.Y36(e.SBq),e.Y36(z.D3),e.Y36(e.sBO),e.Y36(l.Is,8))},t.\u0275cmp=e.Xpm({type:t,selectors:[["nz-page-header"]],contentQueries:function(n,u,T){if(1&n&&(e.Suo(T,C,5),e.Suo(T,S,5)),2&n){let N;e.iGM(N=e.CRH())&&(u.nzPageHeaderFooter=N.first),e.iGM(N=e.CRH())&&(u.nzPageHeaderBreadcrumb=N.first)}},hostAttrs:[1,"ant-page-header"],hostVars:10,hostBindings:function(n,u){2&n&&e.ekj("has-footer",u.nzPageHeaderFooter)("ant-page-header-ghost",u.nzGhost)("has-breadcrumb",u.nzPageHeaderBreadcrumb)("ant-page-header-compact",u.compact)("ant-page-header-rtl","rtl"===u.dir)},inputs:{nzBackIcon:"nzBackIcon",nzGhost:"nzGhost",nzTitle:"nzTitle",nzSubtitle:"nzSubtitle"},outputs:{nzBack:"nzBack"},exportAs:["nzPageHeader"],ngContentSelectors:O,decls:13,vars:5,consts:[[1,"ant-page-header-heading"],[1,"ant-page-header-heading-left"],["class","ant-page-header-back",3,"click",4,"ngIf"],["class","ant-page-header-heading-title",4,"ngIf"],[4,"ngIf"],["class","ant-page-header-heading-sub-title",4,"ngIf"],[1,"ant-page-header-back",3,"click"],["role","button","tabindex","0",1,"ant-page-header-back-button"],[4,"nzStringTemplateOutlet"],["nz-icon","","nzTheme","outline",3,"nzType"],[1,"ant-page-header-heading-title"],[1,"ant-page-header-heading-sub-title"]],template:function(n,u){1&n&&(e.F$t(d),e.Hsn(0),e.TgZ(1,"div",0),e.TgZ(2,"div",1),e.YNc(3,g,3,1,"div",2),e.Hsn(4,1),e.YNc(5,M,2,1,"span",3),e.YNc(6,H,1,0,"ng-content",4),e.YNc(7,r,2,1,"span",5),e.YNc(8,s,1,0,"ng-content",4),e.Hsn(9,2),e.qZA(),e.Hsn(10,3),e.qZA(),e.Hsn(11,4),e.Hsn(12,5)),2&n&&(e.xp6(3),e.Q6J("ngIf",null!==u.nzBackIcon),e.xp6(2),e.Q6J("ngIf",u.nzTitle),e.xp6(1),e.Q6J("ngIf",!u.nzTitle),e.xp6(1),e.Q6J("ngIf",u.nzSubtitle),e.xp6(1),e.Q6J("ngIf",!u.nzSubtitle))},directives:[b.O5,_.f,P.Ls],encapsulation:2,changeDetection:0}),(0,v.gn)([(0,m.oS)()],t.prototype,"nzGhost",void 0),t})(),K=(()=>{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275mod=e.oAB({type:t}),t.\u0275inj=e.cJS({imports:[[l.vT,b.ez,_.T,P.PV]]}),t})()},9825:(x,y,a)=>{a.d(y,{X:()=>H});var l=a(4022),b=a(6797),e=a(9765),_=a(5345);class v{constructor(r,s){this.notifier=r,this.source=s}call(r,s){return s.subscribe(new f(r,this.notifier,this.source))}}class f extends _.Ds{constructor(r,s,d){super(r),this.notifier=s,this.source=d}error(r){if(!this.isStopped){let s=this.errors,d=this.retries,O=this.retriesSubscription;if(d)this.errors=void 0,this.retriesSubscription=void 0;else{s=new e.xQ;try{const{notifier:E}=this;d=E(s)}catch(E){return super.error(E)}O=(0,_.ft)(d,new _.IY(this))}this._unsubscribeAndRecycle(),this.errors=s,this.retries=d,this.retriesSubscription=O,s.next(r)}}_unsubscribe(){const{errors:r,retriesSubscription:s}=this;r&&(r.unsubscribe(),this.errors=void 0),s&&(s.unsubscribe(),this.retriesSubscription=void 0),this.retries=void 0}notifyNext(){const{_unsubscribe:r}=this;this._unsubscribe=null,this._unsubscribeAndRecycle(),this._unsubscribe=r,this.source.subscribe(this)}}a(7393),a(8891);var m=a(5197),o=a(509);class i{constructor(r){this.delayDurationSelector=r}call(r,s){return s.subscribe(new g(r,this.delayDurationSelector))}}class g extends m.L{constructor(r,s){super(r),this.delayDurationSelector=s,this.completed=!1,this.delayNotifierSubscriptions=[],this.index=0}notifyNext(r,s,d,O,E){this.destination.next(r),this.removeSubscription(E),this.tryComplete()}notifyError(r,s){this._error(r)}notifyComplete(r){const s=this.removeSubscription(r);s&&this.destination.next(s),this.tryComplete()}_next(r){const s=this.index++;try{const d=this.delayDurationSelector(r,s);d&&this.tryDelay(d,r)}catch(d){this.destination.error(d)}}_complete(){this.completed=!0,this.tryComplete(),this.unsubscribe()}removeSubscription(r){r.unsubscribe();const s=this.delayNotifierSubscriptions.indexOf(r);return-1!==s&&this.delayNotifierSubscriptions.splice(s,1),r.outerValue}tryDelay(r,s){const d=(0,o.D)(this,r,s);d&&!d.closed&&(this.destination.add(d),this.delayNotifierSubscriptions.push(d))}tryComplete(){this.completed&&0===this.delayNotifierSubscriptions.length&&this.destination.complete()}}function H(h,r){return(0,l.z)(function(h){return r=>r.lift(new v(h,r))}(s=>s.pipe(function(h,r){return s=>s.lift(new i(h))}((d,O)=>{if(h!==Number.POSITIVE_INFINITY&&O>=h)throw d;return(0,b.H)(r)}))))}},4466:(x,y,a)=>{a.d(y,{m:()=>P});var l=a(8583),b=a(1729),e=a(6271),_=a(7716);let P=(()=>{class v{}return v.\u0275fac=function(D){return new(D||v)},v.\u0275mod=_.oAB({type:v}),v.\u0275inj=_.cJS({imports:[[l.ez,b.j,e.KJ]]}),v})()}}]); \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/animal/panda.js b/src/blrec/data/webapp/assets/animal/panda.js new file mode 100644 index 0000000..bc11b07 --- /dev/null +++ b/src/blrec/data/webapp/assets/animal/panda.js @@ -0,0 +1,16 @@ +(function() { + __ant_icon_load({ + name: 'animal:panda', + icon: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"> + <path d="M99.096 315.634s-82.58-64.032-82.58-132.13c0-66.064 33.032-165.162 148.646-148.646 83.37 11.91 99.096 165.162 99.096 165.162l-165.162 115.614zM924.906 315.634s82.58-64.032 82.58-132.13c0-66.064-33.032-165.162-148.646-148.646-83.37 11.91-99.096 165.162-99.096 165.162l165.162 115.614z" fill="#6B676E" p-id="1143" /> + <path d="M1024 561.548c0 264.526-229.23 429.42-512.002 429.42S0 826.076 0 561.548 283.96 66.064 512.002 66.064 1024 297.022 1024 561.548z" fill="#FFEBD2" p-id="1144" /> + <path d="M330.324 842.126c0 82.096 81.34 148.646 181.678 148.646s181.678-66.55 181.678-148.646H330.324z" fill="#E9D7C3" p-id="1145" /> + <path d="M644.13 611.098C594.582 528.516 561.55 512 512.002 512c-49.548 0-82.58 16.516-132.13 99.096-42.488 70.814-78.73 211.264-49.548 247.742 66.064 82.58 165.162 33.032 181.678 33.032 16.516 0 115.614 49.548 181.678-33.032 29.18-36.476-7.064-176.93-49.55-247.74z" fill="#FFFFFF" p-id="1146" /> + <path d="M611.098 495.484c0-45.608 36.974-82.58 82.58-82.58 49.548 0 198.194 99.098 198.194 165.162s-79.934 144.904-148.646 99.096c-49.548-33.032-132.128-148.646-132.128-181.678zM412.904 495.484c0-45.608-36.974-82.58-82.58-82.58-49.548 0-198.194 99.098-198.194 165.162s79.934 144.904 148.646 99.096c49.548-33.032 132.128-148.646 132.128-181.678z" fill="#6B676E" p-id="1147" /> + <path d="M512.002 726.622c-30.06 0-115.614 5.668-115.614 33.032 0 49.638 105.484 85.24 115.614 82.58 10.128 2.66 115.614-32.944 115.614-82.58-0.002-27.366-85.556-33.032-115.614-33.032z" fill="#464655" p-id="1148" /> + <path d="M330.324 495.484m-33.032 0a33.032 33.032 0 1 0 66.064 0 33.032 33.032 0 1 0-66.064 0Z" fill="#464655" p-id="1149" /> + <path d="M693.678 495.484m-33.032 0a33.032 33.032 0 1 0 66.064 0 33.032 33.032 0 1 0-66.064 0Z" fill="#464655" p-id="1150" /> + </svg> + ` + }); +})(); diff --git a/src/blrec/data/webapp/assets/animal/panda.svg b/src/blrec/data/webapp/assets/animal/panda.svg new file mode 100644 index 0000000..a70bcb1 --- /dev/null +++ b/src/blrec/data/webapp/assets/animal/panda.svg @@ -0,0 +1,10 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"> + <path d="M99.096 315.634s-82.58-64.032-82.58-132.13c0-66.064 33.032-165.162 148.646-148.646 83.37 11.91 99.096 165.162 99.096 165.162l-165.162 115.614zM924.906 315.634s82.58-64.032 82.58-132.13c0-66.064-33.032-165.162-148.646-148.646-83.37 11.91-99.096 165.162-99.096 165.162l165.162 115.614z" fill="#6B676E" p-id="1143" /> + <path d="M1024 561.548c0 264.526-229.23 429.42-512.002 429.42S0 826.076 0 561.548 283.96 66.064 512.002 66.064 1024 297.022 1024 561.548z" fill="#FFEBD2" p-id="1144" /> + <path d="M330.324 842.126c0 82.096 81.34 148.646 181.678 148.646s181.678-66.55 181.678-148.646H330.324z" fill="#E9D7C3" p-id="1145" /> + <path d="M644.13 611.098C594.582 528.516 561.55 512 512.002 512c-49.548 0-82.58 16.516-132.13 99.096-42.488 70.814-78.73 211.264-49.548 247.742 66.064 82.58 165.162 33.032 181.678 33.032 16.516 0 115.614 49.548 181.678-33.032 29.18-36.476-7.064-176.93-49.55-247.74z" fill="#FFFFFF" p-id="1146" /> + <path d="M611.098 495.484c0-45.608 36.974-82.58 82.58-82.58 49.548 0 198.194 99.098 198.194 165.162s-79.934 144.904-148.646 99.096c-49.548-33.032-132.128-148.646-132.128-181.678zM412.904 495.484c0-45.608-36.974-82.58-82.58-82.58-49.548 0-198.194 99.098-198.194 165.162s79.934 144.904 148.646 99.096c49.548-33.032 132.128-148.646 132.128-181.678z" fill="#6B676E" p-id="1147" /> + <path d="M512.002 726.622c-30.06 0-115.614 5.668-115.614 33.032 0 49.638 105.484 85.24 115.614 82.58 10.128 2.66 115.614-32.944 115.614-82.58-0.002-27.366-85.556-33.032-115.614-33.032z" fill="#464655" p-id="1148" /> + <path d="M330.324 495.484m-33.032 0a33.032 33.032 0 1 0 66.064 0 33.032 33.032 0 1 0-66.064 0Z" fill="#464655" p-id="1149" /> + <path d="M693.678 495.484m-33.032 0a33.032 33.032 0 1 0 66.064 0 33.032 33.032 0 1 0-66.064 0Z" fill="#464655" p-id="1150" /> +</svg> diff --git a/src/blrec/data/webapp/assets/fill/.gitkeep b/src/blrec/data/webapp/assets/fill/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/blrec/data/webapp/assets/fill/account-book.js b/src/blrec/data/webapp/assets/fill/account-book.js new file mode 100644 index 0000000..c439de2 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/account-book.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'account-book', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zM648.3 426.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V752c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3 73.2-144.3a10 10 0 018.9-5.5h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/account-book.svg b/src/blrec/data/webapp/assets/fill/account-book.svg new file mode 100644 index 0000000..b57dd67 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/account-book.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zM648.3 426.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V752c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3 73.2-144.3a10 10 0 018.9-5.5h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/alert.js b/src/blrec/data/webapp/assets/fill/alert.js new file mode 100644 index 0000000..e542ee8 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/alert.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'alert', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 244c176.18 0 319 142.82 319 319v233a32 32 0 01-32 32H225a32 32 0 01-32-32V563c0-176.18 142.82-319 319-319zM484 68h56a8 8 0 018 8v96a8 8 0 01-8 8h-56a8 8 0 01-8-8V76a8 8 0 018-8zM177.25 191.66a8 8 0 0111.32 0l67.88 67.88a8 8 0 010 11.31l-39.6 39.6a8 8 0 01-11.31 0l-67.88-67.88a8 8 0 010-11.31l39.6-39.6zm669.6 0l39.6 39.6a8 8 0 010 11.3l-67.88 67.9a8 8 0 01-11.32 0l-39.6-39.6a8 8 0 010-11.32l67.89-67.88a8 8 0 0111.31 0zM192 892h640a32 32 0 0132 32v24a8 8 0 01-8 8H168a8 8 0 01-8-8v-24a32 32 0 0132-32zm148-317v253h64V575h-64z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/alert.svg b/src/blrec/data/webapp/assets/fill/alert.svg new file mode 100644 index 0000000..15fe371 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/alert.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 244c176.18 0 319 142.82 319 319v233a32 32 0 01-32 32H225a32 32 0 01-32-32V563c0-176.18 142.82-319 319-319zM484 68h56a8 8 0 018 8v96a8 8 0 01-8 8h-56a8 8 0 01-8-8V76a8 8 0 018-8zM177.25 191.66a8 8 0 0111.32 0l67.88 67.88a8 8 0 010 11.31l-39.6 39.6a8 8 0 01-11.31 0l-67.88-67.88a8 8 0 010-11.31l39.6-39.6zm669.6 0l39.6 39.6a8 8 0 010 11.3l-67.88 67.9a8 8 0 01-11.32 0l-39.6-39.6a8 8 0 010-11.32l67.89-67.88a8 8 0 0111.31 0zM192 892h640a32 32 0 0132 32v24a8 8 0 01-8 8H168a8 8 0 01-8-8v-24a32 32 0 0132-32zm148-317v253h64V575h-64z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/alipay-circle.js b/src/blrec/data/webapp/assets/fill/alipay-circle.js new file mode 100644 index 0000000..65e87ba --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/alipay-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'alipay-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zm460.5 67c100.1 33.4 154.7 43 166.7 44.8A445.9 445.9 0 00960 512c0-247.4-200.6-448-448-448S64 264.6 64 512s200.6 448 448 448c155.9 0 293.2-79.7 373.5-200.5-75.6-29.8-213.6-85-286.8-120.1-69.9 85.7-160.1 137.8-253.7 137.8-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/alipay-circle.svg b/src/blrec/data/webapp/assets/fill/alipay-circle.svg new file mode 100644 index 0000000..f15fe6f --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/alipay-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zm460.5 67c100.1 33.4 154.7 43 166.7 44.8A445.9 445.9 0 00960 512c0-247.4-200.6-448-448-448S64 264.6 64 512s200.6 448 448 448c155.9 0 293.2-79.7 373.5-200.5-75.6-29.8-213.6-85-286.8-120.1-69.9 85.7-160.1 137.8-253.7 137.8-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/alipay-square.js b/src/blrec/data/webapp/assets/fill/alipay-square.js new file mode 100644 index 0000000..bb23456 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/alipay-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'alipay-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm29.4 663.2S703 689.4 598.7 639.5C528.8 725.2 438.6 777.3 345 777.3c-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9 114.3 38.2 140.2 40.2 140.2 40.2v122.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/alipay-square.svg b/src/blrec/data/webapp/assets/fill/alipay-square.svg new file mode 100644 index 0000000..775c742 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/alipay-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm29.4 663.2S703 689.4 598.7 639.5C528.8 725.2 438.6 777.3 345 777.3c-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9 114.3 38.2 140.2 40.2 140.2 40.2v122.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/aliwangwang.js b/src/blrec/data/webapp/assets/fill/aliwangwang.js new file mode 100644 index 0000000..c037498 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/aliwangwang.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'aliwangwang', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M868.2 377.4c-18.9-45.1-46.3-85.6-81.2-120.6a377.26 377.26 0 00-120.5-81.2A375.65 375.65 0 00519 145.8c-41.9 0-82.9 6.7-121.9 20C306 123.3 200.8 120 170.6 120c-2.2 0-7.4 0-9.4.2-11.9.4-22.8 6.5-29.2 16.4-6.5 9.9-7.7 22.4-3.4 33.5l64.3 161.6a378.59 378.59 0 00-52.8 193.2c0 51.4 10 101 29.8 147.6 18.9 45 46.2 85.6 81.2 120.5 34.7 34.8 75.4 62.1 120.5 81.2C418.3 894 467.9 904 519 904c51.3 0 100.9-10 147.7-29.8 44.9-18.9 85.5-46.3 120.4-81.2 34.7-34.8 62.1-75.4 81.2-120.6a376.5 376.5 0 0029.8-147.6c-.2-51.2-10.1-100.8-29.9-147.4zm-325.2 79c0 20.4-16.6 37.1-37.1 37.1-20.4 0-37.1-16.7-37.1-37.1v-55.1c0-20.4 16.6-37.1 37.1-37.1 20.4 0 37.1 16.6 37.1 37.1v55.1zm175.2 0c0 20.4-16.6 37.1-37.1 37.1S644 476.8 644 456.4v-55.1c0-20.4 16.7-37.1 37.1-37.1 20.4 0 37.1 16.6 37.1 37.1v55.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/aliwangwang.svg b/src/blrec/data/webapp/assets/fill/aliwangwang.svg new file mode 100644 index 0000000..58e8f3b --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/aliwangwang.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M868.2 377.4c-18.9-45.1-46.3-85.6-81.2-120.6a377.26 377.26 0 00-120.5-81.2A375.65 375.65 0 00519 145.8c-41.9 0-82.9 6.7-121.9 20C306 123.3 200.8 120 170.6 120c-2.2 0-7.4 0-9.4.2-11.9.4-22.8 6.5-29.2 16.4-6.5 9.9-7.7 22.4-3.4 33.5l64.3 161.6a378.59 378.59 0 00-52.8 193.2c0 51.4 10 101 29.8 147.6 18.9 45 46.2 85.6 81.2 120.5 34.7 34.8 75.4 62.1 120.5 81.2C418.3 894 467.9 904 519 904c51.3 0 100.9-10 147.7-29.8 44.9-18.9 85.5-46.3 120.4-81.2 34.7-34.8 62.1-75.4 81.2-120.6a376.5 376.5 0 0029.8-147.6c-.2-51.2-10.1-100.8-29.9-147.4zm-325.2 79c0 20.4-16.6 37.1-37.1 37.1-20.4 0-37.1-16.7-37.1-37.1v-55.1c0-20.4 16.6-37.1 37.1-37.1 20.4 0 37.1 16.6 37.1 37.1v55.1zm175.2 0c0 20.4-16.6 37.1-37.1 37.1S644 476.8 644 456.4v-55.1c0-20.4 16.7-37.1 37.1-37.1 20.4 0 37.1 16.6 37.1 37.1v55.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/amazon-circle.js b/src/blrec/data/webapp/assets/fill/amazon-circle.js new file mode 100644 index 0000000..00d2bf9 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/amazon-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'amazon-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M485 467.5c-11.6 4.9-20.9 12.2-27.8 22-6.9 9.8-10.4 21.6-10.4 35.5 0 17.8 7.5 31.5 22.4 41.2 14.1 9.1 28.9 11.4 44.4 6.8 17.9-5.2 30-17.9 36.4-38.1 3-9.3 4.5-19.7 4.5-31.3v-50.2c-12.6.4-24.4 1.6-35.5 3.7-11.1 2.1-22.4 5.6-34 10.4zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm35.8 262.7c-7.2-10.9-20.1-16.4-38.7-16.4-1.3 0-3 .1-5.3.3-2.2.2-6.6 1.5-12.9 3.7a79.4 79.4 0 00-17.9 9.1c-5.5 3.8-11.5 10-18 18.4-6.4 8.5-11.5 18.4-15.3 29.8l-94-8.4c0-12.4 2.4-24.7 7-36.9 4.7-12.2 11.8-23.9 21.4-35 9.6-11.2 21.1-21 34.5-29.4 13.4-8.5 29.6-15.2 48.4-20.3 18.9-5.1 39.1-7.6 60.9-7.6 21.3 0 40.6 2.6 57.8 7.7 17.2 5.2 31.1 11.5 41.4 19.1a117 117 0 0125.9 25.7c6.9 9.6 11.7 18.5 14.4 26.7 2.7 8.2 4 15.7 4 22.8v182.5c0 6.4 1.4 13 4.3 19.8 2.9 6.8 6.3 12.8 10.2 18 3.9 5.2 7.9 9.9 12 14.3 4.1 4.3 7.6 7.7 10.6 9.9l4.1 3.4-72.5 69.4c-8.5-7.7-16.9-15.4-25.2-23.4-8.3-8-14.5-14-18.5-18.1l-6.1-6.2c-2.4-2.3-5-5.7-8-10.2-8.1 12.2-18.5 22.8-31.1 31.8-12.7 9-26.3 15.6-40.7 19.7-14.5 4.1-29.4 6.5-44.7 7.1-15.3.6-30-1.5-43.9-6.5-13.9-5-26.5-11.7-37.6-20.3-11.1-8.6-19.9-20.2-26.5-35-6.6-14.8-9.9-31.5-9.9-50.4 0-17.4 3-33.3 8.9-47.7 6-14.5 13.6-26.5 23-36.1 9.4-9.6 20.7-18.2 34-25.7s26.4-13.4 39.2-17.7c12.8-4.2 26.6-7.8 41.5-10.7 14.9-2.9 27.6-4.8 38.2-5.7 10.6-.9 21.2-1.6 31.8-2v-39.4c0-13.5-2.3-23.5-6.7-30.1zm180.5 379.6c-2.8 3.3-7.5 7.8-14.1 13.5s-16.8 12.7-30.5 21.1c-13.7 8.4-28.8 16-45 22.9-16.3 6.9-36.3 12.9-60.1 18-23.7 5.1-48.2 7.6-73.3 7.6-25.4 0-50.7-3.2-76.1-9.6-25.4-6.4-47.6-14.3-66.8-23.7-19.1-9.4-37.6-20.2-55.1-32.2-17.6-12.1-31.7-22.9-42.4-32.5-10.6-9.6-19.6-18.7-26.8-27.1-1.7-1.9-2.8-3.6-3.2-5.1-.4-1.5-.3-2.8.3-3.7.6-.9 1.5-1.6 2.6-2.2a7.42 7.42 0 017.4.8c40.9 24.2 72.9 41.3 95.9 51.4 82.9 36.4 168 45.7 255.3 27.9 40.5-8.3 82.1-22.2 124.9-41.8 3.2-1.2 6-1.5 8.3-.9 2.3.6 3.5 2.4 3.5 5.4 0 2.8-1.6 6.3-4.8 10.2zm59.9-29c-1.8 11.1-4.9 21.6-9.1 31.8-7.2 17.1-16.3 30-27.1 38.4-3.6 2.9-6.4 3.8-8.3 2.8-1.9-1-1.9-3.5 0-7.4 4.5-9.3 9.2-21.8 14.2-37.7 5-15.8 5.7-26 2.1-30.5-1.1-1.5-2.7-2.6-5-3.6-2.2-.9-5.1-1.5-8.6-1.9s-6.7-.6-9.4-.8c-2.8-.2-6.5-.2-11.2 0-4.7.2-8 .4-10.1.6a874.4 874.4 0 01-17.1 1.5c-1.3.2-2.7.4-4.1.5-1.5.1-2.7.2-3.5.3l-2.7.3c-1 .1-1.7.2-2.2.2h-3.2l-1-.2-.6-.5-.5-.9c-1.3-3.3 3.7-7.4 15-12.4s22.3-8.1 32.9-9.3c9.8-1.5 21.3-1.5 34.5-.3s21.3 3.7 24.3 7.4c2.3 3.5 2.5 10.7.7 21.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/amazon-circle.svg b/src/blrec/data/webapp/assets/fill/amazon-circle.svg new file mode 100644 index 0000000..48bd5e2 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/amazon-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M485 467.5c-11.6 4.9-20.9 12.2-27.8 22-6.9 9.8-10.4 21.6-10.4 35.5 0 17.8 7.5 31.5 22.4 41.2 14.1 9.1 28.9 11.4 44.4 6.8 17.9-5.2 30-17.9 36.4-38.1 3-9.3 4.5-19.7 4.5-31.3v-50.2c-12.6.4-24.4 1.6-35.5 3.7-11.1 2.1-22.4 5.6-34 10.4zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm35.8 262.7c-7.2-10.9-20.1-16.4-38.7-16.4-1.3 0-3 .1-5.3.3-2.2.2-6.6 1.5-12.9 3.7a79.4 79.4 0 00-17.9 9.1c-5.5 3.8-11.5 10-18 18.4-6.4 8.5-11.5 18.4-15.3 29.8l-94-8.4c0-12.4 2.4-24.7 7-36.9 4.7-12.2 11.8-23.9 21.4-35 9.6-11.2 21.1-21 34.5-29.4 13.4-8.5 29.6-15.2 48.4-20.3 18.9-5.1 39.1-7.6 60.9-7.6 21.3 0 40.6 2.6 57.8 7.7 17.2 5.2 31.1 11.5 41.4 19.1a117 117 0 0125.9 25.7c6.9 9.6 11.7 18.5 14.4 26.7 2.7 8.2 4 15.7 4 22.8v182.5c0 6.4 1.4 13 4.3 19.8 2.9 6.8 6.3 12.8 10.2 18 3.9 5.2 7.9 9.9 12 14.3 4.1 4.3 7.6 7.7 10.6 9.9l4.1 3.4-72.5 69.4c-8.5-7.7-16.9-15.4-25.2-23.4-8.3-8-14.5-14-18.5-18.1l-6.1-6.2c-2.4-2.3-5-5.7-8-10.2-8.1 12.2-18.5 22.8-31.1 31.8-12.7 9-26.3 15.6-40.7 19.7-14.5 4.1-29.4 6.5-44.7 7.1-15.3.6-30-1.5-43.9-6.5-13.9-5-26.5-11.7-37.6-20.3-11.1-8.6-19.9-20.2-26.5-35-6.6-14.8-9.9-31.5-9.9-50.4 0-17.4 3-33.3 8.9-47.7 6-14.5 13.6-26.5 23-36.1 9.4-9.6 20.7-18.2 34-25.7s26.4-13.4 39.2-17.7c12.8-4.2 26.6-7.8 41.5-10.7 14.9-2.9 27.6-4.8 38.2-5.7 10.6-.9 21.2-1.6 31.8-2v-39.4c0-13.5-2.3-23.5-6.7-30.1zm180.5 379.6c-2.8 3.3-7.5 7.8-14.1 13.5s-16.8 12.7-30.5 21.1c-13.7 8.4-28.8 16-45 22.9-16.3 6.9-36.3 12.9-60.1 18-23.7 5.1-48.2 7.6-73.3 7.6-25.4 0-50.7-3.2-76.1-9.6-25.4-6.4-47.6-14.3-66.8-23.7-19.1-9.4-37.6-20.2-55.1-32.2-17.6-12.1-31.7-22.9-42.4-32.5-10.6-9.6-19.6-18.7-26.8-27.1-1.7-1.9-2.8-3.6-3.2-5.1-.4-1.5-.3-2.8.3-3.7.6-.9 1.5-1.6 2.6-2.2a7.42 7.42 0 017.4.8c40.9 24.2 72.9 41.3 95.9 51.4 82.9 36.4 168 45.7 255.3 27.9 40.5-8.3 82.1-22.2 124.9-41.8 3.2-1.2 6-1.5 8.3-.9 2.3.6 3.5 2.4 3.5 5.4 0 2.8-1.6 6.3-4.8 10.2zm59.9-29c-1.8 11.1-4.9 21.6-9.1 31.8-7.2 17.1-16.3 30-27.1 38.4-3.6 2.9-6.4 3.8-8.3 2.8-1.9-1-1.9-3.5 0-7.4 4.5-9.3 9.2-21.8 14.2-37.7 5-15.8 5.7-26 2.1-30.5-1.1-1.5-2.7-2.6-5-3.6-2.2-.9-5.1-1.5-8.6-1.9s-6.7-.6-9.4-.8c-2.8-.2-6.5-.2-11.2 0-4.7.2-8 .4-10.1.6a874.4 874.4 0 01-17.1 1.5c-1.3.2-2.7.4-4.1.5-1.5.1-2.7.2-3.5.3l-2.7.3c-1 .1-1.7.2-2.2.2h-3.2l-1-.2-.6-.5-.5-.9c-1.3-3.3 3.7-7.4 15-12.4s22.3-8.1 32.9-9.3c9.8-1.5 21.3-1.5 34.5-.3s21.3 3.7 24.3 7.4c2.3 3.5 2.5 10.7.7 21.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/amazon-square.js b/src/blrec/data/webapp/assets/fill/amazon-square.js new file mode 100644 index 0000000..6d4bb2e --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/amazon-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'amazon-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM547.8 326.7c-7.2-10.9-20.1-16.4-38.7-16.4-1.3 0-3 .1-5.3.3-2.2.2-6.6 1.5-12.9 3.7a79.4 79.4 0 00-17.9 9.1c-5.5 3.8-11.5 10-18 18.4-6.4 8.5-11.5 18.4-15.3 29.8l-94-8.4c0-12.4 2.4-24.7 7-36.9s11.8-23.9 21.4-35c9.6-11.2 21.1-21 34.5-29.4 13.4-8.5 29.6-15.2 48.4-20.3 18.9-5.1 39.1-7.6 60.9-7.6 21.3 0 40.6 2.6 57.8 7.7 17.2 5.2 31.1 11.5 41.4 19.1a117 117 0 0125.9 25.7c6.9 9.6 11.7 18.5 14.4 26.7 2.7 8.2 4 15.7 4 22.8v182.5c0 6.4 1.4 13 4.3 19.8 2.9 6.8 6.3 12.8 10.2 18 3.9 5.2 7.9 9.9 12 14.3 4.1 4.3 7.6 7.7 10.6 9.9l4.1 3.4-72.5 69.4c-8.5-7.7-16.9-15.4-25.2-23.4-8.3-8-14.5-14-18.5-18.1l-6.1-6.2c-2.4-2.3-5-5.7-8-10.2-8.1 12.2-18.5 22.8-31.1 31.8-12.7 9-26.3 15.6-40.7 19.7-14.5 4.1-29.4 6.5-44.7 7.1-15.3.6-30-1.5-43.9-6.5-13.9-5-26.5-11.7-37.6-20.3-11.1-8.6-19.9-20.2-26.5-35-6.6-14.8-9.9-31.5-9.9-50.4 0-17.4 3-33.3 8.9-47.7 6-14.5 13.6-26.5 23-36.1 9.4-9.6 20.7-18.2 34-25.7s26.4-13.4 39.2-17.7c12.8-4.2 26.6-7.8 41.5-10.7 14.9-2.9 27.6-4.8 38.2-5.7 10.6-.9 21.2-1.6 31.8-2v-39.4c0-13.5-2.3-23.5-6.7-30.1zm180.5 379.6c-2.8 3.3-7.5 7.8-14.1 13.5s-16.8 12.7-30.5 21.1c-13.7 8.4-28.8 16-45 22.9-16.3 6.9-36.3 12.9-60.1 18-23.7 5.1-48.2 7.6-73.3 7.6-25.4 0-50.7-3.2-76.1-9.6-25.4-6.4-47.6-14.3-66.8-23.7-19.1-9.4-37.6-20.2-55.1-32.2-17.6-12.1-31.7-22.9-42.4-32.5-10.6-9.6-19.6-18.7-26.8-27.1-1.7-1.9-2.8-3.6-3.2-5.1-.4-1.5-.3-2.8.3-3.7.6-.9 1.5-1.6 2.6-2.2a7.42 7.42 0 017.4.8c40.9 24.2 72.9 41.3 95.9 51.4 82.9 36.4 168 45.7 255.3 27.9 40.5-8.3 82.1-22.2 124.9-41.8 3.2-1.2 6-1.5 8.3-.9 2.3.6 3.5 2.4 3.5 5.4 0 2.8-1.6 6.3-4.8 10.2zm59.9-29c-1.8 11.1-4.9 21.6-9.1 31.8-7.2 17.1-16.3 30-27.1 38.4-3.6 2.9-6.4 3.8-8.3 2.8-1.9-1-1.9-3.5 0-7.4 4.5-9.3 9.2-21.8 14.2-37.7 5-15.8 5.7-26 2.1-30.5-1.1-1.5-2.7-2.6-5-3.6-2.2-.9-5.1-1.5-8.6-1.9s-6.7-.6-9.4-.8c-2.8-.2-6.5-.2-11.2 0-4.7.2-8 .4-10.1.6a874.4 874.4 0 01-17.1 1.5c-1.3.2-2.7.4-4.1.5-1.5.1-2.7.2-3.5.3l-2.7.3c-1 .1-1.7.2-2.2.2h-3.2l-1-.2-.6-.5-.5-.9c-1.3-3.3 3.7-7.4 15-12.4s22.3-8.1 32.9-9.3c9.8-1.5 21.3-1.5 34.5-.3s21.3 3.7 24.3 7.4c2.3 3.5 2.5 10.7.7 21.7zM485 467.5c-11.6 4.9-20.9 12.2-27.8 22-6.9 9.8-10.4 21.6-10.4 35.5 0 17.8 7.5 31.5 22.4 41.2 14.1 9.1 28.9 11.4 44.4 6.8 17.9-5.2 30-17.9 36.4-38.1 3-9.3 4.5-19.7 4.5-31.3v-50.2c-12.6.4-24.4 1.6-35.5 3.7-11.1 2.1-22.4 5.6-34 10.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/amazon-square.svg b/src/blrec/data/webapp/assets/fill/amazon-square.svg new file mode 100644 index 0000000..c6b9a76 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/amazon-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM547.8 326.7c-7.2-10.9-20.1-16.4-38.7-16.4-1.3 0-3 .1-5.3.3-2.2.2-6.6 1.5-12.9 3.7a79.4 79.4 0 00-17.9 9.1c-5.5 3.8-11.5 10-18 18.4-6.4 8.5-11.5 18.4-15.3 29.8l-94-8.4c0-12.4 2.4-24.7 7-36.9s11.8-23.9 21.4-35c9.6-11.2 21.1-21 34.5-29.4 13.4-8.5 29.6-15.2 48.4-20.3 18.9-5.1 39.1-7.6 60.9-7.6 21.3 0 40.6 2.6 57.8 7.7 17.2 5.2 31.1 11.5 41.4 19.1a117 117 0 0125.9 25.7c6.9 9.6 11.7 18.5 14.4 26.7 2.7 8.2 4 15.7 4 22.8v182.5c0 6.4 1.4 13 4.3 19.8 2.9 6.8 6.3 12.8 10.2 18 3.9 5.2 7.9 9.9 12 14.3 4.1 4.3 7.6 7.7 10.6 9.9l4.1 3.4-72.5 69.4c-8.5-7.7-16.9-15.4-25.2-23.4-8.3-8-14.5-14-18.5-18.1l-6.1-6.2c-2.4-2.3-5-5.7-8-10.2-8.1 12.2-18.5 22.8-31.1 31.8-12.7 9-26.3 15.6-40.7 19.7-14.5 4.1-29.4 6.5-44.7 7.1-15.3.6-30-1.5-43.9-6.5-13.9-5-26.5-11.7-37.6-20.3-11.1-8.6-19.9-20.2-26.5-35-6.6-14.8-9.9-31.5-9.9-50.4 0-17.4 3-33.3 8.9-47.7 6-14.5 13.6-26.5 23-36.1 9.4-9.6 20.7-18.2 34-25.7s26.4-13.4 39.2-17.7c12.8-4.2 26.6-7.8 41.5-10.7 14.9-2.9 27.6-4.8 38.2-5.7 10.6-.9 21.2-1.6 31.8-2v-39.4c0-13.5-2.3-23.5-6.7-30.1zm180.5 379.6c-2.8 3.3-7.5 7.8-14.1 13.5s-16.8 12.7-30.5 21.1c-13.7 8.4-28.8 16-45 22.9-16.3 6.9-36.3 12.9-60.1 18-23.7 5.1-48.2 7.6-73.3 7.6-25.4 0-50.7-3.2-76.1-9.6-25.4-6.4-47.6-14.3-66.8-23.7-19.1-9.4-37.6-20.2-55.1-32.2-17.6-12.1-31.7-22.9-42.4-32.5-10.6-9.6-19.6-18.7-26.8-27.1-1.7-1.9-2.8-3.6-3.2-5.1-.4-1.5-.3-2.8.3-3.7.6-.9 1.5-1.6 2.6-2.2a7.42 7.42 0 017.4.8c40.9 24.2 72.9 41.3 95.9 51.4 82.9 36.4 168 45.7 255.3 27.9 40.5-8.3 82.1-22.2 124.9-41.8 3.2-1.2 6-1.5 8.3-.9 2.3.6 3.5 2.4 3.5 5.4 0 2.8-1.6 6.3-4.8 10.2zm59.9-29c-1.8 11.1-4.9 21.6-9.1 31.8-7.2 17.1-16.3 30-27.1 38.4-3.6 2.9-6.4 3.8-8.3 2.8-1.9-1-1.9-3.5 0-7.4 4.5-9.3 9.2-21.8 14.2-37.7 5-15.8 5.7-26 2.1-30.5-1.1-1.5-2.7-2.6-5-3.6-2.2-.9-5.1-1.5-8.6-1.9s-6.7-.6-9.4-.8c-2.8-.2-6.5-.2-11.2 0-4.7.2-8 .4-10.1.6a874.4 874.4 0 01-17.1 1.5c-1.3.2-2.7.4-4.1.5-1.5.1-2.7.2-3.5.3l-2.7.3c-1 .1-1.7.2-2.2.2h-3.2l-1-.2-.6-.5-.5-.9c-1.3-3.3 3.7-7.4 15-12.4s22.3-8.1 32.9-9.3c9.8-1.5 21.3-1.5 34.5-.3s21.3 3.7 24.3 7.4c2.3 3.5 2.5 10.7.7 21.7zM485 467.5c-11.6 4.9-20.9 12.2-27.8 22-6.9 9.8-10.4 21.6-10.4 35.5 0 17.8 7.5 31.5 22.4 41.2 14.1 9.1 28.9 11.4 44.4 6.8 17.9-5.2 30-17.9 36.4-38.1 3-9.3 4.5-19.7 4.5-31.3v-50.2c-12.6.4-24.4 1.6-35.5 3.7-11.1 2.1-22.4 5.6-34 10.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/android.js b/src/blrec/data/webapp/assets/fill/android.js new file mode 100644 index 0000000..2b67ccf --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/android.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'android', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M270.1 741.7c0 23.4 19.1 42.5 42.6 42.5h48.7v120.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V784.1h85v120.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V784.1h48.7c23.5 0 42.6-19.1 42.6-42.5V346.4h-486v395.3zm357.1-600.1l44.9-65c2.6-3.8 2-8.9-1.5-11.4-3.5-2.4-8.5-1.2-11.1 2.6l-46.6 67.6c-30.7-12.1-64.9-18.8-100.8-18.8-35.9 0-70.1 6.7-100.8 18.8l-46.6-67.5c-2.6-3.8-7.6-5.1-11.1-2.6-3.5 2.4-4.1 7.4-1.5 11.4l44.9 65c-71.4 33.2-121.4 96.1-127.8 169.6h486c-6.6-73.6-56.7-136.5-128-169.7zM409.5 244.1a26.9 26.9 0 1126.9-26.9 26.97 26.97 0 01-26.9 26.9zm208.4 0a26.9 26.9 0 1126.9-26.9 26.97 26.97 0 01-26.9 26.9zm223.4 100.7c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V400.1c.1-30.6-24.3-55.3-54.6-55.3zm-658.6 0c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V400.1c0-30.6-24.5-55.3-54.6-55.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/android.svg b/src/blrec/data/webapp/assets/fill/android.svg new file mode 100644 index 0000000..137a9bf --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/android.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M270.1 741.7c0 23.4 19.1 42.5 42.6 42.5h48.7v120.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V784.1h85v120.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V784.1h48.7c23.5 0 42.6-19.1 42.6-42.5V346.4h-486v395.3zm357.1-600.1l44.9-65c2.6-3.8 2-8.9-1.5-11.4-3.5-2.4-8.5-1.2-11.1 2.6l-46.6 67.6c-30.7-12.1-64.9-18.8-100.8-18.8-35.9 0-70.1 6.7-100.8 18.8l-46.6-67.5c-2.6-3.8-7.6-5.1-11.1-2.6-3.5 2.4-4.1 7.4-1.5 11.4l44.9 65c-71.4 33.2-121.4 96.1-127.8 169.6h486c-6.6-73.6-56.7-136.5-128-169.7zM409.5 244.1a26.9 26.9 0 1126.9-26.9 26.97 26.97 0 01-26.9 26.9zm208.4 0a26.9 26.9 0 1126.9-26.9 26.97 26.97 0 01-26.9 26.9zm223.4 100.7c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V400.1c.1-30.6-24.3-55.3-54.6-55.3zm-658.6 0c-30.2 0-54.6 24.8-54.6 55.4v216.4c0 30.5 24.5 55.4 54.6 55.4 30.2 0 54.6-24.8 54.6-55.4V400.1c0-30.6-24.5-55.3-54.6-55.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/api.js b/src/blrec/data/webapp/assets/fill/api.js new file mode 100644 index 0000000..01b3f82 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/api.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'api', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 00-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 000 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM578.9 546.7a8.03 8.03 0 00-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 00-11.3 0L363 475.3l-43-43a7.85 7.85 0 00-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 68.9-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 000 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/api.svg b/src/blrec/data/webapp/assets/fill/api.svg new file mode 100644 index 0000000..c5c85af --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/api.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 00-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 000 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM578.9 546.7a8.03 8.03 0 00-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 00-11.3 0L363 475.3l-43-43a7.85 7.85 0 00-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 68.9-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 000 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/apple.js b/src/blrec/data/webapp/assets/fill/apple.js new file mode 100644 index 0000000..b6cf2c5 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/apple.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'apple', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M747.4 535.7c-.4-68.2 30.5-119.6 92.9-157.5-34.9-50-87.7-77.5-157.3-82.8-65.9-5.2-138 38.4-164.4 38.4-27.9 0-91.7-36.6-141.9-36.6C273.1 298.8 163 379.8 163 544.6c0 48.7 8.9 99 26.7 150.8 23.8 68.2 109.6 235.3 199.1 232.6 46.8-1.1 79.9-33.2 140.8-33.2 59.1 0 89.7 33.2 141.9 33.2 90.3-1.3 167.9-153.2 190.5-221.6-121.1-57.1-114.6-167.2-114.6-170.7zm-105.1-305c50.7-60.2 46.1-115 44.6-134.7-44.8 2.6-96.6 30.5-126.1 64.8-32.5 36.8-51.6 82.3-47.5 133.6 48.4 3.7 92.6-21.2 129-63.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/apple.svg b/src/blrec/data/webapp/assets/fill/apple.svg new file mode 100644 index 0000000..b4004b6 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/apple.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M747.4 535.7c-.4-68.2 30.5-119.6 92.9-157.5-34.9-50-87.7-77.5-157.3-82.8-65.9-5.2-138 38.4-164.4 38.4-27.9 0-91.7-36.6-141.9-36.6C273.1 298.8 163 379.8 163 544.6c0 48.7 8.9 99 26.7 150.8 23.8 68.2 109.6 235.3 199.1 232.6 46.8-1.1 79.9-33.2 140.8-33.2 59.1 0 89.7 33.2 141.9 33.2 90.3-1.3 167.9-153.2 190.5-221.6-121.1-57.1-114.6-167.2-114.6-170.7zm-105.1-305c50.7-60.2 46.1-115 44.6-134.7-44.8 2.6-96.6 30.5-126.1 64.8-32.5 36.8-51.6 82.3-47.5 133.6 48.4 3.7 92.6-21.2 129-63.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/appstore.js b/src/blrec/data/webapp/assets/fill/appstore.js new file mode 100644 index 0000000..757283c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/appstore.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'appstore', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm0 400H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zM464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm0 400H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/appstore.svg b/src/blrec/data/webapp/assets/fill/appstore.svg new file mode 100644 index 0000000..1fb7857 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/appstore.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm0 400H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zM464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm0 400H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/audio.js b/src/blrec/data/webapp/assets/fill/audio.js new file mode 100644 index 0000000..3b9eb66 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/audio.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'audio', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm330-170c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/audio.svg b/src/blrec/data/webapp/assets/fill/audio.svg new file mode 100644 index 0000000..b0aace6 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/audio.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm330-170c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/backward.js b/src/blrec/data/webapp/assets/fill/backward.js new file mode 100644 index 0000000..0edfa87 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/backward.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'backward', + theme: 'fill', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M485.6 249.9L198.2 498c-8.3 7.1-8.3 20.8 0 27.9l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9zm320 0L518.2 498a18.6 18.6 0 00-6.2 14c0 5.2 2.1 10.4 6.2 14l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/backward.svg b/src/blrec/data/webapp/assets/fill/backward.svg new file mode 100644 index 0000000..e1d8a17 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/backward.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M485.6 249.9L198.2 498c-8.3 7.1-8.3 20.8 0 27.9l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9zm320 0L518.2 498a18.6 18.6 0 00-6.2 14c0 5.2 2.1 10.4 6.2 14l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/bank.js b/src/blrec/data/webapp/assets/fill/bank.js new file mode 100644 index 0000000..f30f79a --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/bank.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'bank', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 00-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM381 836H264V462h117v374zm189 0H453V462h117v374zm190 0H642V462h118v374z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/bank.svg b/src/blrec/data/webapp/assets/fill/bank.svg new file mode 100644 index 0000000..72edb58 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/bank.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 00-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM381 836H264V462h117v374zm189 0H453V462h117v374zm190 0H642V462h118v374z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/behance-circle.js b/src/blrec/data/webapp/assets/fill/behance-circle.js new file mode 100644 index 0000000..f9662ed --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/behance-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'behance-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M420.3 470.3c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 00-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1a50.5 50.5 0 0017.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm86.5 286.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 01-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 01-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 01-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0138.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 00-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/behance-circle.svg b/src/blrec/data/webapp/assets/fill/behance-circle.svg new file mode 100644 index 0000000..4b4fd74 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/behance-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M420.3 470.3c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 00-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1a50.5 50.5 0 0017.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm86.5 286.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 01-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 01-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 01-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0138.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 00-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/behance-square.js b/src/blrec/data/webapp/assets/fill/behance-square.js new file mode 100644 index 0000000..f5de648 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/behance-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'behance-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM598.5 350.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 01-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 01-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 01-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0138.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 00-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7zm-248.5-10.1c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 00-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1s12.7-3.8 17.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/behance-square.svg b/src/blrec/data/webapp/assets/fill/behance-square.svg new file mode 100644 index 0000000..458c0b4 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/behance-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM598.5 350.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 01-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 01-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 01-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0138.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 00-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7zm-248.5-10.1c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 00-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1s12.7-3.8 17.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/bell.js b/src/blrec/data/webapp/assets/fill/bell.js new file mode 100644 index 0000000..20a1b23 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/bell.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'bell', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M816 768h-24V428c0-141.1-104.3-257.8-240-277.2V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.8C336.3 170.2 232 286.9 232 428v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/bell.svg b/src/blrec/data/webapp/assets/fill/bell.svg new file mode 100644 index 0000000..ec19b0b --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/bell.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M816 768h-24V428c0-141.1-104.3-257.8-240-277.2V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.8C336.3 170.2 232 286.9 232 428v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/book.js b/src/blrec/data/webapp/assets/fill/book.js new file mode 100644 index 0000000..eee8a03 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/book.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'book', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM668 345.9L621.5 312 572 347.4V124h96v221.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/book.svg b/src/blrec/data/webapp/assets/fill/book.svg new file mode 100644 index 0000000..8bde762 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/book.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM668 345.9L621.5 312 572 347.4V124h96v221.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/box-plot.js b/src/blrec/data/webapp/assets/fill/box-plot.js new file mode 100644 index 0000000..369ee54 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/box-plot.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'box-plot', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H448v432h344c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-728 80v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h152V296H232c-4.4 0-8 3.6-8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/box-plot.svg b/src/blrec/data/webapp/assets/fill/box-plot.svg new file mode 100644 index 0000000..befd805 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/box-plot.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H448v432h344c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-728 80v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h152V296H232c-4.4 0-8 3.6-8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/bug.js b/src/blrec/data/webapp/assets/fill/bug.js new file mode 100644 index 0000000..1b0d85e --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/bug.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'bug', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M304 280h416c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1a184.31 184.31 0 00-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9a184.31 184.31 0 00-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z" /><path d="M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8a63 63 0 01-63 63H232a63 63 0 01-63-63c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7a273 273 0 0022.7 49c24.3 41.5 59 76.2 100.5 100.5 28.9 16.9 61 28.8 95.3 34.5 4.4 0 8-3.6 8-8V484c0-4.4 3.6-8 8-8h60c4.4 0 8 3.6 8 8v464.2c0 4.4 3.6 8 8 8 34.3-5.7 66.4-17.6 95.3-34.5a281.38 281.38 0 00123.2-149.5A120.4 120.4 0 01836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/bug.svg b/src/blrec/data/webapp/assets/fill/bug.svg new file mode 100644 index 0000000..84a3f9c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/bug.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M304 280h416c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1a184.31 184.31 0 00-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9a184.31 184.31 0 00-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z" /><path d="M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8a63 63 0 01-63 63H232a63 63 0 01-63-63c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7a273 273 0 0022.7 49c24.3 41.5 59 76.2 100.5 100.5 28.9 16.9 61 28.8 95.3 34.5 4.4 0 8-3.6 8-8V484c0-4.4 3.6-8 8-8h60c4.4 0 8 3.6 8 8v464.2c0 4.4 3.6 8 8 8 34.3-5.7 66.4-17.6 95.3-34.5a281.38 281.38 0 00123.2-149.5A120.4 120.4 0 01836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/build.js b/src/blrec/data/webapp/assets/fill/build.js new file mode 100644 index 0000000..8a698e9 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/build.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'build', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zM612 746H412V546h200v200zm268-268H680V278h200v200z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/build.svg b/src/blrec/data/webapp/assets/fill/build.svg new file mode 100644 index 0000000..f53d1da --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/build.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zM612 746H412V546h200v200zm268-268H680V278h200v200z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/bulb.js b/src/blrec/data/webapp/assets/fill/bulb.js new file mode 100644 index 0000000..c11e8bb --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/bulb.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'bulb', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M348 676.1C250 619.4 184 513.4 184 392c0-181.1 146.9-328 328-328s328 146.9 328 328c0 121.4-66 227.4-164 284.1V792c0 17.7-14.3 32-32 32H380c-17.7 0-32-14.3-32-32V676.1zM392 888h240c4.4 0 8 3.6 8 8v32c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32v-32c0-4.4 3.6-8 8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/bulb.svg b/src/blrec/data/webapp/assets/fill/bulb.svg new file mode 100644 index 0000000..db31c2f --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/bulb.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M348 676.1C250 619.4 184 513.4 184 392c0-181.1 146.9-328 328-328s328 146.9 328 328c0 121.4-66 227.4-164 284.1V792c0 17.7-14.3 32-32 32H380c-17.7 0-32-14.3-32-32V676.1zM392 888h240c4.4 0 8 3.6 8 8v32c0 17.7-14.3 32-32 32H416c-17.7 0-32-14.3-32-32v-32c0-4.4 3.6-8 8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/calculator.js b/src/blrec/data/webapp/assets/fill/calculator.js new file mode 100644 index 0000000..b2c9015 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/calculator.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'calculator', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM440.2 765h-50.8c-2.2 0-4.5-1.1-5.9-2.9L348 718.6l-35.5 43.5a7.38 7.38 0 01-5.9 2.9h-50.8c-6.6 0-10.2-7.9-5.8-13.1l62.7-76.8-61.2-74.9c-4.3-5.2-.7-13.1 5.9-13.1h50.9c2.2 0 4.5 1.1 5.9 2.9l34 41.6 34-41.6c1.5-1.9 3.6-2.9 5.9-2.9h50.8c6.6 0 10.2 7.9 5.9 13.1L383.5 675l62.7 76.8c4.2 5.3.6 13.2-6 13.2zm7.8-382c0 2.2-1.4 4-3.2 4H376v68.7c0 1.9-1.8 3.3-4 3.3h-48c-2.2 0-4-1.4-4-3.2V387h-68.8c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4H320v-68.8c0-1.8 1.8-3.2 4-3.2h48c2.2 0 4 1.4 4 3.2V331h68.7c1.9 0 3.3 1.8 3.3 4v48zm328 369c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48zm0-104c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48zm0-265c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/calculator.svg b/src/blrec/data/webapp/assets/fill/calculator.svg new file mode 100644 index 0000000..553ddad --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/calculator.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM440.2 765h-50.8c-2.2 0-4.5-1.1-5.9-2.9L348 718.6l-35.5 43.5a7.38 7.38 0 01-5.9 2.9h-50.8c-6.6 0-10.2-7.9-5.8-13.1l62.7-76.8-61.2-74.9c-4.3-5.2-.7-13.1 5.9-13.1h50.9c2.2 0 4.5 1.1 5.9 2.9l34 41.6 34-41.6c1.5-1.9 3.6-2.9 5.9-2.9h50.8c6.6 0 10.2 7.9 5.9 13.1L383.5 675l62.7 76.8c4.2 5.3.6 13.2-6 13.2zm7.8-382c0 2.2-1.4 4-3.2 4H376v68.7c0 1.9-1.8 3.3-4 3.3h-48c-2.2 0-4-1.4-4-3.2V387h-68.8c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4H320v-68.8c0-1.8 1.8-3.2 4-3.2h48c2.2 0 4 1.4 4 3.2V331h68.7c1.9 0 3.3 1.8 3.3 4v48zm328 369c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48zm0-104c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48zm0-265c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/calendar.js b/src/blrec/data/webapp/assets/fill/calendar.js new file mode 100644 index 0000000..2c8f31b --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/calendar.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'calendar', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M112 880c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V460H112v420zm768-696H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v176h800V216c0-17.7-14.3-32-32-32z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/calendar.svg b/src/blrec/data/webapp/assets/fill/calendar.svg new file mode 100644 index 0000000..b42de61 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/calendar.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M112 880c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V460H112v420zm768-696H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v176h800V216c0-17.7-14.3-32-32-32z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/camera.js b/src/blrec/data/webapp/assets/fill/camera.js new file mode 100644 index 0000000..2fab2a4 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/camera.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'camera', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M864 260H728l-32.4-90.8a32.07 32.07 0 00-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 260H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V340c0-44.2-35.8-80-80-80zM512 716c-88.4 0-160-71.6-160-160s71.6-160 160-160 160 71.6 160 160-71.6 160-160 160zm-96-160a96 96 0 10192 0 96 96 0 10-192 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/camera.svg b/src/blrec/data/webapp/assets/fill/camera.svg new file mode 100644 index 0000000..d7833d4 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/camera.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M864 260H728l-32.4-90.8a32.07 32.07 0 00-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 260H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V340c0-44.2-35.8-80-80-80zM512 716c-88.4 0-160-71.6-160-160s71.6-160 160-160 160 71.6 160 160-71.6 160-160 160zm-96-160a96 96 0 10192 0 96 96 0 10-192 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/car.js b/src/blrec/data/webapp/assets/fill/car.js new file mode 100644 index 0000000..5a4538c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/car.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'car', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M959 413.4L935.3 372a8 8 0 00-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 00-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 00-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 003-10.8zM264 621c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm388 75c0 4.4-3.6 8-8 8H380c-4.4 0-8-3.6-8-8v-84c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v36h168v-36c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v84zm108-75c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zM220 418l72.7-199.9.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/car.svg b/src/blrec/data/webapp/assets/fill/car.svg new file mode 100644 index 0000000..f10b26b --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/car.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M959 413.4L935.3 372a8 8 0 00-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 00-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 00-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 003-10.8zM264 621c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm388 75c0 4.4-3.6 8-8 8H380c-4.4 0-8-3.6-8-8v-84c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v36h168v-36c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v84zm108-75c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zM220 418l72.7-199.9.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/caret-down.js b/src/blrec/data/webapp/assets/fill/caret-down.js new file mode 100644 index 0000000..8e04e96 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/caret-down.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'caret-down', + theme: 'fill', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/caret-down.svg b/src/blrec/data/webapp/assets/fill/caret-down.svg new file mode 100644 index 0000000..8f6b32f --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/caret-down.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/caret-left.js b/src/blrec/data/webapp/assets/fill/caret-left.js new file mode 100644 index 0000000..8569555 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/caret-left.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'caret-left', + theme: 'fill', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M689 165.1L308.2 493.5c-10.9 9.4-10.9 27.5 0 37L689 858.9c14.2 12.2 35 1.2 35-18.5V183.6c0-19.7-20.8-30.7-35-18.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/caret-left.svg b/src/blrec/data/webapp/assets/fill/caret-left.svg new file mode 100644 index 0000000..735ae05 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/caret-left.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M689 165.1L308.2 493.5c-10.9 9.4-10.9 27.5 0 37L689 858.9c14.2 12.2 35 1.2 35-18.5V183.6c0-19.7-20.8-30.7-35-18.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/caret-right.js b/src/blrec/data/webapp/assets/fill/caret-right.js new file mode 100644 index 0000000..347c10d --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/caret-right.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'caret-right', + theme: 'fill', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/caret-right.svg b/src/blrec/data/webapp/assets/fill/caret-right.svg new file mode 100644 index 0000000..02c5840 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/caret-right.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/caret-up.js b/src/blrec/data/webapp/assets/fill/caret-up.js new file mode 100644 index 0000000..05de6c6 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/caret-up.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'caret-up', + theme: 'fill', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/caret-up.svg b/src/blrec/data/webapp/assets/fill/caret-up.svg new file mode 100644 index 0000000..adfeffa --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/caret-up.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/carry-out.js b/src/blrec/data/webapp/assets/fill/carry-out.js new file mode 100644 index 0000000..9dbe9ac --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/carry-out.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'carry-out', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zM694.5 432.7L481.9 725.4a16.1 16.1 0 01-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.1 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.8-6.6 13-6.6H688c6.5.1 10.3 7.5 6.5 12.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/carry-out.svg b/src/blrec/data/webapp/assets/fill/carry-out.svg new file mode 100644 index 0000000..7aa9e6c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/carry-out.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zM694.5 432.7L481.9 725.4a16.1 16.1 0 01-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.1 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.8-6.6 13-6.6H688c6.5.1 10.3 7.5 6.5 12.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/check-circle.js b/src/blrec/data/webapp/assets/fill/check-circle.js new file mode 100644 index 0000000..b146bbe --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/check-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'check-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/check-circle.svg b/src/blrec/data/webapp/assets/fill/check-circle.svg new file mode 100644 index 0000000..28d953b --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/check-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/check-square.js b/src/blrec/data/webapp/assets/fill/check-square.js new file mode 100644 index 0000000..7a42723 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/check-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'check-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM695.5 365.7l-210.6 292a31.8 31.8 0 01-51.7 0L308.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H689c6.5 0 10.3 7.4 6.5 12.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/check-square.svg b/src/blrec/data/webapp/assets/fill/check-square.svg new file mode 100644 index 0000000..547a623 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/check-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM695.5 365.7l-210.6 292a31.8 31.8 0 01-51.7 0L308.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H689c6.5 0 10.3 7.4 6.5 12.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/chrome.js b/src/blrec/data/webapp/assets/fill/chrome.js new file mode 100644 index 0000000..806c922 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/chrome.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'chrome', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M371.8 512c0 77.5 62.7 140.2 140.2 140.2S652.2 589.5 652.2 512 589.5 371.8 512 371.8 371.8 434.4 371.8 512zM900 362.4l-234.3 12.1c63.6 74.3 64.6 181.5 11.1 263.7l-188 289.2c78 4.2 158.4-12.9 231.2-55.2 180-104 253-322.1 180-509.8zM320.3 591.9L163.8 284.1A415.35 415.35 0 0096 512c0 208 152.3 380.3 351.4 410.8l106.9-209.4c-96.6 18.2-189.9-34.8-234-121.5zm218.5-285.5l344.4 18.1C848 254.7 792.6 194 719.8 151.7 653.9 113.6 581.5 95.5 510.5 96c-122.5.5-242.2 55.2-322.1 154.5l128.2 196.9c32-91.9 124.8-146.7 222.2-141z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/chrome.svg b/src/blrec/data/webapp/assets/fill/chrome.svg new file mode 100644 index 0000000..677c582 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/chrome.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M371.8 512c0 77.5 62.7 140.2 140.2 140.2S652.2 589.5 652.2 512 589.5 371.8 512 371.8 371.8 434.4 371.8 512zM900 362.4l-234.3 12.1c63.6 74.3 64.6 181.5 11.1 263.7l-188 289.2c78 4.2 158.4-12.9 231.2-55.2 180-104 253-322.1 180-509.8zM320.3 591.9L163.8 284.1A415.35 415.35 0 0096 512c0 208 152.3 380.3 351.4 410.8l106.9-209.4c-96.6 18.2-189.9-34.8-234-121.5zm218.5-285.5l344.4 18.1C848 254.7 792.6 194 719.8 151.7 653.9 113.6 581.5 95.5 510.5 96c-122.5.5-242.2 55.2-322.1 154.5l128.2 196.9c32-91.9 124.8-146.7 222.2-141z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/ci-circle.js b/src/blrec/data/webapp/assets/fill/ci-circle.js new file mode 100644 index 0000000..b22d218 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/ci-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'ci-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-63.6 656c-103 0-162.4-68.6-162.4-182.6v-49C286 373.5 345.4 304 448.3 304c88.3 0 152.3 56.9 152.3 138.1 0 2.4-2 4.4-4.4 4.4h-52.6c-4.2 0-7.6-3.2-8-7.4-4-46.1-37.6-77.6-87-77.6-61.1 0-95.6 45.4-95.6 126.9v49.3c0 80.3 34.5 125.1 95.6 125.1 49.3 0 82.8-29.5 87-72.4.4-4.1 3.8-7.3 8-7.3h52.7c2.4 0 4.4 2 4.4 4.4 0 77.4-64.3 132.5-152.3 132.5zM738 704.1c0 4.4-3.6 8-8 8h-50.4c-4.4 0-8-3.6-8-8V319.9c0-4.4 3.6-8 8-8H730c4.4 0 8 3.6 8 8v384.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/ci-circle.svg b/src/blrec/data/webapp/assets/fill/ci-circle.svg new file mode 100644 index 0000000..9adc588 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/ci-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-63.6 656c-103 0-162.4-68.6-162.4-182.6v-49C286 373.5 345.4 304 448.3 304c88.3 0 152.3 56.9 152.3 138.1 0 2.4-2 4.4-4.4 4.4h-52.6c-4.2 0-7.6-3.2-8-7.4-4-46.1-37.6-77.6-87-77.6-61.1 0-95.6 45.4-95.6 126.9v49.3c0 80.3 34.5 125.1 95.6 125.1 49.3 0 82.8-29.5 87-72.4.4-4.1 3.8-7.3 8-7.3h52.7c2.4 0 4.4 2 4.4 4.4 0 77.4-64.3 132.5-152.3 132.5zM738 704.1c0 4.4-3.6 8-8 8h-50.4c-4.4 0-8-3.6-8-8V319.9c0-4.4 3.6-8 8-8H730c4.4 0 8 3.6 8 8v384.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/clock-circle.js b/src/blrec/data/webapp/assets/fill/clock-circle.js new file mode 100644 index 0000000..41cbcde --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/clock-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'clock-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm176.5 585.7l-28.6 39a7.99 7.99 0 01-11.2 1.7L483.3 569.8a7.92 7.92 0 01-3.3-6.5V288c0-4.4 3.6-8 8-8h48.1c4.4 0 8 3.6 8 8v247.5l142.6 103.1c3.6 2.5 4.4 7.5 1.8 11.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/clock-circle.svg b/src/blrec/data/webapp/assets/fill/clock-circle.svg new file mode 100644 index 0000000..f90c0a2 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/clock-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm176.5 585.7l-28.6 39a7.99 7.99 0 01-11.2 1.7L483.3 569.8a7.92 7.92 0 01-3.3-6.5V288c0-4.4 3.6-8 8-8h48.1c4.4 0 8 3.6 8 8v247.5l142.6 103.1c3.6 2.5 4.4 7.5 1.8 11.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/close-circle.js b/src/blrec/data/webapp/assets/fill/close-circle.js new file mode 100644 index 0000000..870dded --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/close-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'close-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/close-circle.svg b/src/blrec/data/webapp/assets/fill/close-circle.svg new file mode 100644 index 0000000..a9b0330 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/close-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/close-square.js b/src/blrec/data/webapp/assets/fill/close-square.js new file mode 100644 index 0000000..47bbed4 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/close-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'close-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM676.1 657.9c4.4 5.2.7 13.1-6.1 13.1h-58.9c-4.7 0-9.2-2.1-12.3-5.7L512 561.8l-86.8 103.5c-3 3.6-7.5 5.7-12.3 5.7H354c-6.8 0-10.5-7.9-6.1-13.1L470.2 512 347.9 366.1A7.95 7.95 0 01354 353h58.9c4.7 0 9.2 2.1 12.3 5.7L512 462.2l86.8-103.5c3-3.6 7.5-5.7 12.3-5.7H670c6.8 0 10.5 7.9 6.1 13.1L553.8 512l122.3 145.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/close-square.svg b/src/blrec/data/webapp/assets/fill/close-square.svg new file mode 100644 index 0000000..84e8aac --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/close-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM676.1 657.9c4.4 5.2.7 13.1-6.1 13.1h-58.9c-4.7 0-9.2-2.1-12.3-5.7L512 561.8l-86.8 103.5c-3 3.6-7.5 5.7-12.3 5.7H354c-6.8 0-10.5-7.9-6.1-13.1L470.2 512 347.9 366.1A7.95 7.95 0 01354 353h58.9c4.7 0 9.2 2.1 12.3 5.7L512 462.2l86.8-103.5c3-3.6 7.5-5.7 12.3-5.7H670c6.8 0 10.5 7.9 6.1 13.1L553.8 512l122.3 145.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/cloud.js b/src/blrec/data/webapp/assets/fill/cloud.js new file mode 100644 index 0000000..1b9116e --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/cloud.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'cloud', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/cloud.svg b/src/blrec/data/webapp/assets/fill/cloud.svg new file mode 100644 index 0000000..7da85c2 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/cloud.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/code-sandbox-circle.js b/src/blrec/data/webapp/assets/fill/code-sandbox-circle.js new file mode 100644 index 0000000..15d23eb --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/code-sandbox-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'code-sandbox-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm243.7 589.2L512 794 268.3 653.2V371.8l110-63.6-.4-.2h.2L512 231l134 77h-.2l-.3.2 110.1 63.6v281.4zM307.9 536.7l87.6 49.9V681l96.7 55.9V524.8L307.9 418.4zm203.9-151.8L418 331l-91.1 52.6 185.2 107 185.2-106.9-91.4-52.8zm20 352l97.3-56.2v-94.1l87-49.5V418.5L531.8 525z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/code-sandbox-circle.svg b/src/blrec/data/webapp/assets/fill/code-sandbox-circle.svg new file mode 100644 index 0000000..2adfc60 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/code-sandbox-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm243.7 589.2L512 794 268.3 653.2V371.8l110-63.6-.4-.2h.2L512 231l134 77h-.2l-.3.2 110.1 63.6v281.4zM307.9 536.7l87.6 49.9V681l96.7 55.9V524.8L307.9 418.4zm203.9-151.8L418 331l-91.1 52.6 185.2 107 185.2-106.9-91.4-52.8zm20 352l97.3-56.2v-94.1l87-49.5V418.5L531.8 525z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/code-sandbox-square.js b/src/blrec/data/webapp/assets/fill/code-sandbox-square.js new file mode 100644 index 0000000..eaf8f9c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/code-sandbox-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'code-sandbox-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M307.9 536.7l87.6 49.9V681l96.7 55.9V524.8L307.9 418.4zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM755.7 653.2L512 794 268.3 653.2V371.8l110-63.6-.4-.2h.2L512 231l134 77h-.2l-.3.2 110.1 63.6v281.4zm-223.9 83.7l97.3-56.2v-94.1l87-49.5V418.5L531.8 525zm-20-352L418 331l-91.1 52.6 185.2 107 185.2-106.9-91.4-52.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/code-sandbox-square.svg b/src/blrec/data/webapp/assets/fill/code-sandbox-square.svg new file mode 100644 index 0000000..70175a1 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/code-sandbox-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M307.9 536.7l87.6 49.9V681l96.7 55.9V524.8L307.9 418.4zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM755.7 653.2L512 794 268.3 653.2V371.8l110-63.6-.4-.2h.2L512 231l134 77h-.2l-.3.2 110.1 63.6v281.4zm-223.9 83.7l97.3-56.2v-94.1l87-49.5V418.5L531.8 525zm-20-352L418 331l-91.1 52.6 185.2 107 185.2-106.9-91.4-52.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/code.js b/src/blrec/data/webapp/assets/fill/code.js new file mode 100644 index 0000000..fb57d08 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/code.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'code', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM513.1 518.1l-192 161c-5.2 4.4-13.1.7-13.1-6.1v-62.7c0-2.3 1.1-4.6 2.9-6.1L420.7 512l-109.8-92.2a7.63 7.63 0 01-2.9-6.1V351c0-6.8 7.9-10.5 13.1-6.1l192 160.9c3.9 3.2 3.9 9.1 0 12.3zM716 673c0 4.4-3.4 8-7.5 8h-185c-4.1 0-7.5-3.6-7.5-8v-48c0-4.4 3.4-8 7.5-8h185c4.1 0 7.5 3.6 7.5 8v48z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/code.svg b/src/blrec/data/webapp/assets/fill/code.svg new file mode 100644 index 0000000..2eef55f --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/code.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM513.1 518.1l-192 161c-5.2 4.4-13.1.7-13.1-6.1v-62.7c0-2.3 1.1-4.6 2.9-6.1L420.7 512l-109.8-92.2a7.63 7.63 0 01-2.9-6.1V351c0-6.8 7.9-10.5 13.1-6.1l192 160.9c3.9 3.2 3.9 9.1 0 12.3zM716 673c0 4.4-3.4 8-7.5 8h-185c-4.1 0-7.5-3.6-7.5-8v-48c0-4.4 3.4-8 7.5-8h185c4.1 0 7.5 3.6 7.5 8v48z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/codepen-circle.js b/src/blrec/data/webapp/assets/fill/codepen-circle.js new file mode 100644 index 0000000..47539f8 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/codepen-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'codepen-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M488.1 414.7V303.4L300.9 428l83.6 55.8zm254.1 137.7v-79.8l-59.8 39.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm278 533c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 01-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 01-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 01.8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-254.1 13.3v111.3L723.1 597l-83.6-55.8zM281.8 472.6v79.8l59.8-39.9zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zM723.1 428L535.9 303.4v111.3l103.6 69.1zM384.5 541.2L300.9 597l187.2 124.6V610.3l-103.6-69.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/codepen-circle.svg b/src/blrec/data/webapp/assets/fill/codepen-circle.svg new file mode 100644 index 0000000..3ac6eea --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/codepen-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M488.1 414.7V303.4L300.9 428l83.6 55.8zm254.1 137.7v-79.8l-59.8 39.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm278 533c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 01-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 01-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 01.8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-254.1 13.3v111.3L723.1 597l-83.6-55.8zM281.8 472.6v79.8l59.8-39.9zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zM723.1 428L535.9 303.4v111.3l103.6 69.1zM384.5 541.2L300.9 597l187.2 124.6V610.3l-103.6-69.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/codepen-square.js b/src/blrec/data/webapp/assets/fill/codepen-square.js new file mode 100644 index 0000000..61b82b5 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/codepen-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'codepen-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M723.1 428L535.9 303.4v111.3l103.6 69.1zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zm23.9 154.2v111.3L723.1 597l-83.6-55.8zm-151.4-69.1L300.9 597l187.2 124.6V610.3l-103.6-69.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-90 485c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 01-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 01-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 01.8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-47.8-44.6v-79.8l-59.8 39.9zm-460.4-79.8v79.8l59.8-39.9zm206.3-57.9V303.4L300.9 428l83.6 55.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/codepen-square.svg b/src/blrec/data/webapp/assets/fill/codepen-square.svg new file mode 100644 index 0000000..4386882 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/codepen-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M723.1 428L535.9 303.4v111.3l103.6 69.1zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zm23.9 154.2v111.3L723.1 597l-83.6-55.8zm-151.4-69.1L300.9 597l187.2 124.6V610.3l-103.6-69.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-90 485c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 01-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 01-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 01.8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-47.8-44.6v-79.8l-59.8 39.9zm-460.4-79.8v79.8l59.8-39.9zm206.3-57.9V303.4L300.9 428l83.6 55.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/compass.js b/src/blrec/data/webapp/assets/fill/compass.js new file mode 100644 index 0000000..16eb03a --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/compass.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'compass', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM327.3 702.4c-2 .9-4.4 0-5.3-2.1-.4-1-.4-2.2 0-3.2l98.7-225.5 132.1 132.1-225.5 98.7zm375.1-375.1l-98.7 225.5-132.1-132.1L697.1 322c2-.9 4.4 0 5.3 2.1.4 1 .4 2.1 0 3.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/compass.svg b/src/blrec/data/webapp/assets/fill/compass.svg new file mode 100644 index 0000000..07a8d43 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/compass.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM327.3 702.4c-2 .9-4.4 0-5.3-2.1-.4-1-.4-2.2 0-3.2l98.7-225.5 132.1 132.1-225.5 98.7zm375.1-375.1l-98.7 225.5-132.1-132.1L697.1 322c2-.9 4.4 0 5.3 2.1.4 1 .4 2.1 0 3.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/contacts.js b/src/blrec/data/webapp/assets/fill/contacts.js new file mode 100644 index 0000000..07a3bd2 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/contacts.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'contacts', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zM661 736h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.6-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H363a8 8 0 01-8-8.4c2.8-53.3 32-99.7 74.6-126.1a111.8 111.8 0 01-29.1-75.5c0-61.9 49.9-112 111.4-112 61.5 0 111.4 50.1 111.4 112 0 29.1-11 55.5-29.1 75.5 42.7 26.5 71.8 72.8 74.6 126.1.4 4.6-3.2 8.4-7.8 8.4zM512 474c-28.5 0-51.7 23.3-51.7 52s23.2 52 51.7 52c28.5 0 51.7-23.3 51.7-52s-23.2-52-51.7-52z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/contacts.svg b/src/blrec/data/webapp/assets/fill/contacts.svg new file mode 100644 index 0000000..80582ed --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/contacts.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zM661 736h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.6-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H363a8 8 0 01-8-8.4c2.8-53.3 32-99.7 74.6-126.1a111.8 111.8 0 01-29.1-75.5c0-61.9 49.9-112 111.4-112 61.5 0 111.4 50.1 111.4 112 0 29.1-11 55.5-29.1 75.5 42.7 26.5 71.8 72.8 74.6 126.1.4 4.6-3.2 8.4-7.8 8.4zM512 474c-28.5 0-51.7 23.3-51.7 52s23.2 52 51.7 52c28.5 0 51.7-23.3 51.7-52s-23.2-52-51.7-52z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/container.js b/src/blrec/data/webapp/assets/fill/container.js new file mode 100644 index 0000000..a907761 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/container.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'container', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v529c0-.6.4-1 1-1h219.3l5.2 24.7C397.6 708.5 450.8 752 512 752s114.4-43.5 126.4-103.3l5.2-24.7H863c.6 0 1 .4 1 1V96c0-17.7-14.3-32-32-32zM712 493c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8v48zm0-160c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8v48zm151 354H694.1c-11.6 32.8-32 62.3-59.1 84.7-34.5 28.6-78.2 44.3-123 44.3s-88.5-15.8-123-44.3a194.02 194.02 0 01-59.1-84.7H161c-.6 0-1-.4-1-1v242c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V686c0 .6-.4 1-1 1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/container.svg b/src/blrec/data/webapp/assets/fill/container.svg new file mode 100644 index 0000000..0c2ce0f --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/container.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v529c0-.6.4-1 1-1h219.3l5.2 24.7C397.6 708.5 450.8 752 512 752s114.4-43.5 126.4-103.3l5.2-24.7H863c.6 0 1 .4 1 1V96c0-17.7-14.3-32-32-32zM712 493c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8v48zm0-160c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8v48zm151 354H694.1c-11.6 32.8-32 62.3-59.1 84.7-34.5 28.6-78.2 44.3-123 44.3s-88.5-15.8-123-44.3a194.02 194.02 0 01-59.1-84.7H161c-.6 0-1-.4-1-1v242c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V686c0 .6-.4 1-1 1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/control.js b/src/blrec/data/webapp/assets/fill/control.js new file mode 100644 index 0000000..70d56b6 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/control.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'control', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM404 683v77c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-77c-41.7-13.6-72-52.8-72-99s30.3-85.5 72-99V264c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v221c41.7 13.6 72 52.8 72 99s-30.3 85.5-72 99zm279.6-143.9c.2 0 .3-.1.4-.1v221c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V539c.2 0 .3.1.4.1-42-13.4-72.4-52.7-72.4-99.1 0-46.4 30.4-85.7 72.4-99.1-.2 0-.3.1-.4.1v-77c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v77c-.2 0-.3-.1-.4-.1 42 13.4 72.4 52.7 72.4 99.1 0 46.4-30.4 85.7-72.4 99.1zM616 440a36 36 0 1072 0 36 36 0 10-72 0zM403.4 566.5l-1.5-2.4c0-.1-.1-.1-.1-.2l-.9-1.2c-.1-.1-.2-.2-.2-.3-1-1.3-2-2.5-3.2-3.6l-.2-.2c-.4-.4-.8-.8-1.2-1.1-.8-.8-1.7-1.5-2.6-2.1h-.1l-1.2-.9c-.1-.1-.3-.2-.4-.3-1.2-.8-2.5-1.6-3.9-2.2-.2-.1-.5-.2-.7-.4-.4-.2-.7-.3-1.1-.5-.3-.1-.7-.3-1-.4-.5-.2-1-.4-1.5-.5-.4-.1-.9-.3-1.3-.4l-.9-.3-1.4-.3c-.2-.1-.5-.1-.7-.2-.7-.1-1.4-.3-2.1-.4-.2 0-.4 0-.6-.1-.6-.1-1.1-.1-1.7-.2-.2 0-.4 0-.7-.1-.8 0-1.5-.1-2.3-.1s-1.5 0-2.3.1c-.2 0-.4 0-.7.1-.6 0-1.2.1-1.7.2-.2 0-.4 0-.6.1-.7.1-1.4.2-2.1.4-.2.1-.5.1-.7.2l-1.4.3-.9.3c-.4.1-.9.3-1.3.4-.5.2-1 .4-1.5.5-.3.1-.7.3-1 .4-.4.2-.7.3-1.1.5-.2.1-.5.2-.7.4-1.3.7-2.6 1.4-3.9 2.2-.1.1-.3.2-.4.3l-1.2.9h-.1c-.9.7-1.8 1.4-2.6 2.1-.4.4-.8.7-1.2 1.1l-.2.2a54.8 54.8 0 00-3.2 3.6c-.1.1-.2.2-.2.3l-.9 1.2c0 .1-.1.1-.1.2l-1.5 2.4c-.1.2-.2.3-.3.5-2.7 5.1-4.3 10.9-4.3 17s1.6 12 4.3 17c.1.2.2.3.3.5l1.5 2.4c0 .1.1.1.1.2l.9 1.2c.1.1.2.2.2.3 1 1.3 2 2.5 3.2 3.6l.2.2c.4.4.8.8 1.2 1.1.8.8 1.7 1.5 2.6 2.1h.1l1.2.9c.1.1.3.2.4.3 1.2.8 2.5 1.6 3.9 2.2.2.1.5.2.7.4.4.2.7.3 1.1.5.3.1.7.3 1 .4.5.2 1 .4 1.5.5.4.1.9.3 1.3.4l.9.3 1.4.3c.2.1.5.1.7.2.7.1 1.4.3 2.1.4.2 0 .4 0 .6.1.6.1 1.1.1 1.7.2.2 0 .4 0 .7.1.8 0 1.5.1 2.3.1s1.5 0 2.3-.1c.2 0 .4 0 .7-.1.6 0 1.2-.1 1.7-.2.2 0 .4 0 .6-.1.7-.1 1.4-.2 2.1-.4.2-.1.5-.1.7-.2l1.4-.3.9-.3c.4-.1.9-.3 1.3-.4.5-.2 1-.4 1.5-.5.3-.1.7-.3 1-.4.4-.2.7-.3 1.1-.5.2-.1.5-.2.7-.4 1.3-.7 2.6-1.4 3.9-2.2.1-.1.3-.2.4-.3l1.2-.9h.1c.9-.7 1.8-1.4 2.6-2.1.4-.4.8-.7 1.2-1.1l.2-.2c1.1-1.1 2.2-2.4 3.2-3.6.1-.1.2-.2.2-.3l.9-1.2c0-.1.1-.1.1-.2l1.5-2.4c.1-.2.2-.3.3-.5 2.7-5.1 4.3-10.9 4.3-17s-1.6-12-4.3-17c-.1-.2-.2-.4-.3-.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/control.svg b/src/blrec/data/webapp/assets/fill/control.svg new file mode 100644 index 0000000..d79fc3a --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/control.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM404 683v77c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-77c-41.7-13.6-72-52.8-72-99s30.3-85.5 72-99V264c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v221c41.7 13.6 72 52.8 72 99s-30.3 85.5-72 99zm279.6-143.9c.2 0 .3-.1.4-.1v221c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V539c.2 0 .3.1.4.1-42-13.4-72.4-52.7-72.4-99.1 0-46.4 30.4-85.7 72.4-99.1-.2 0-.3.1-.4.1v-77c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v77c-.2 0-.3-.1-.4-.1 42 13.4 72.4 52.7 72.4 99.1 0 46.4-30.4 85.7-72.4 99.1zM616 440a36 36 0 1072 0 36 36 0 10-72 0zM403.4 566.5l-1.5-2.4c0-.1-.1-.1-.1-.2l-.9-1.2c-.1-.1-.2-.2-.2-.3-1-1.3-2-2.5-3.2-3.6l-.2-.2c-.4-.4-.8-.8-1.2-1.1-.8-.8-1.7-1.5-2.6-2.1h-.1l-1.2-.9c-.1-.1-.3-.2-.4-.3-1.2-.8-2.5-1.6-3.9-2.2-.2-.1-.5-.2-.7-.4-.4-.2-.7-.3-1.1-.5-.3-.1-.7-.3-1-.4-.5-.2-1-.4-1.5-.5-.4-.1-.9-.3-1.3-.4l-.9-.3-1.4-.3c-.2-.1-.5-.1-.7-.2-.7-.1-1.4-.3-2.1-.4-.2 0-.4 0-.6-.1-.6-.1-1.1-.1-1.7-.2-.2 0-.4 0-.7-.1-.8 0-1.5-.1-2.3-.1s-1.5 0-2.3.1c-.2 0-.4 0-.7.1-.6 0-1.2.1-1.7.2-.2 0-.4 0-.6.1-.7.1-1.4.2-2.1.4-.2.1-.5.1-.7.2l-1.4.3-.9.3c-.4.1-.9.3-1.3.4-.5.2-1 .4-1.5.5-.3.1-.7.3-1 .4-.4.2-.7.3-1.1.5-.2.1-.5.2-.7.4-1.3.7-2.6 1.4-3.9 2.2-.1.1-.3.2-.4.3l-1.2.9h-.1c-.9.7-1.8 1.4-2.6 2.1-.4.4-.8.7-1.2 1.1l-.2.2a54.8 54.8 0 00-3.2 3.6c-.1.1-.2.2-.2.3l-.9 1.2c0 .1-.1.1-.1.2l-1.5 2.4c-.1.2-.2.3-.3.5-2.7 5.1-4.3 10.9-4.3 17s1.6 12 4.3 17c.1.2.2.3.3.5l1.5 2.4c0 .1.1.1.1.2l.9 1.2c.1.1.2.2.2.3 1 1.3 2 2.5 3.2 3.6l.2.2c.4.4.8.8 1.2 1.1.8.8 1.7 1.5 2.6 2.1h.1l1.2.9c.1.1.3.2.4.3 1.2.8 2.5 1.6 3.9 2.2.2.1.5.2.7.4.4.2.7.3 1.1.5.3.1.7.3 1 .4.5.2 1 .4 1.5.5.4.1.9.3 1.3.4l.9.3 1.4.3c.2.1.5.1.7.2.7.1 1.4.3 2.1.4.2 0 .4 0 .6.1.6.1 1.1.1 1.7.2.2 0 .4 0 .7.1.8 0 1.5.1 2.3.1s1.5 0 2.3-.1c.2 0 .4 0 .7-.1.6 0 1.2-.1 1.7-.2.2 0 .4 0 .6-.1.7-.1 1.4-.2 2.1-.4.2-.1.5-.1.7-.2l1.4-.3.9-.3c.4-.1.9-.3 1.3-.4.5-.2 1-.4 1.5-.5.3-.1.7-.3 1-.4.4-.2.7-.3 1.1-.5.2-.1.5-.2.7-.4 1.3-.7 2.6-1.4 3.9-2.2.1-.1.3-.2.4-.3l1.2-.9h.1c.9-.7 1.8-1.4 2.6-2.1.4-.4.8-.7 1.2-1.1l.2-.2c1.1-1.1 2.2-2.4 3.2-3.6.1-.1.2-.2.2-.3l.9-1.2c0-.1.1-.1.1-.2l1.5-2.4c.1-.2.2-.3.3-.5 2.7-5.1 4.3-10.9 4.3-17s-1.6-12-4.3-17c-.1-.2-.2-.4-.3-.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/copy.js b/src/blrec/data/webapp/assets/fill/copy.js new file mode 100644 index 0000000..3b61f5d --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/copy.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'copy', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM382 896h-.2L232 746.2v-.2h150v150z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/copy.svg b/src/blrec/data/webapp/assets/fill/copy.svg new file mode 100644 index 0000000..02bd853 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/copy.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM382 896h-.2L232 746.2v-.2h150v150z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/copyright-circle.js b/src/blrec/data/webapp/assets/fill/copyright-circle.js new file mode 100644 index 0000000..f303288 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/copyright-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'copyright-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm5.4 670c-110 0-173.4-73.2-173.4-194.9v-52.3C344 364.2 407.4 290 517.3 290c94.3 0 162.7 60.7 162.7 147.4 0 2.6-2.1 4.7-4.7 4.7h-56.7c-4.2 0-7.6-3.2-8-7.4-4-49.5-40-83.4-93-83.4-65.3 0-102.1 48.5-102.1 135.5v52.6c0 85.7 36.9 133.6 102.1 133.6 52.8 0 88.7-31.7 93-77.8.4-4.1 3.8-7.3 8-7.3h56.8c2.6 0 4.7 2.1 4.7 4.7 0 82.6-68.7 141.4-162.7 141.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/copyright-circle.svg b/src/blrec/data/webapp/assets/fill/copyright-circle.svg new file mode 100644 index 0000000..42287a7 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/copyright-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm5.4 670c-110 0-173.4-73.2-173.4-194.9v-52.3C344 364.2 407.4 290 517.3 290c94.3 0 162.7 60.7 162.7 147.4 0 2.6-2.1 4.7-4.7 4.7h-56.7c-4.2 0-7.6-3.2-8-7.4-4-49.5-40-83.4-93-83.4-65.3 0-102.1 48.5-102.1 135.5v52.6c0 85.7 36.9 133.6 102.1 133.6 52.8 0 88.7-31.7 93-77.8.4-4.1 3.8-7.3 8-7.3h56.8c2.6 0 4.7 2.1 4.7 4.7 0 82.6-68.7 141.4-162.7 141.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/credit-card.js b/src/blrec/data/webapp/assets/fill/credit-card.js new file mode 100644 index 0000000..c3a681b --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/credit-card.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'credit-card', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v160h896V192c0-17.7-14.3-32-32-32zM64 832c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V440H64v392zm579-184c0-4.4 3.6-8 8-8h165c4.4 0 8 3.6 8 8v72c0 4.4-3.6 8-8 8H651c-4.4 0-8-3.6-8-8v-72z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/credit-card.svg b/src/blrec/data/webapp/assets/fill/credit-card.svg new file mode 100644 index 0000000..9d11346 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/credit-card.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v160h896V192c0-17.7-14.3-32-32-32zM64 832c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V440H64v392zm579-184c0-4.4 3.6-8 8-8h165c4.4 0 8 3.6 8 8v72c0 4.4-3.6 8-8 8H651c-4.4 0-8-3.6-8-8v-72z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/crown.js b/src/blrec/data/webapp/assets/fill/crown.js new file mode 100644 index 0000000..d8ee677 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/crown.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'crown', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M899.6 276.5L705 396.4 518.4 147.5a8.06 8.06 0 00-12.9 0L319 396.4 124.3 276.5c-5.7-3.5-13.1 1.2-12.2 7.9L188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.8-6.7-6.5-11.4-12.3-7.9zM512 734.2c-62.1 0-112.6-50.5-112.6-112.6S449.9 509 512 509s112.6 50.5 112.6 112.6S574.1 734.2 512 734.2zm0-160.9c-26.6 0-48.2 21.6-48.2 48.3 0 26.6 21.6 48.3 48.2 48.3s48.2-21.6 48.2-48.3c0-26.6-21.6-48.3-48.2-48.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/crown.svg b/src/blrec/data/webapp/assets/fill/crown.svg new file mode 100644 index 0000000..3f0a683 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/crown.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M899.6 276.5L705 396.4 518.4 147.5a8.06 8.06 0 00-12.9 0L319 396.4 124.3 276.5c-5.7-3.5-13.1 1.2-12.2 7.9L188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.8-6.7-6.5-11.4-12.3-7.9zM512 734.2c-62.1 0-112.6-50.5-112.6-112.6S449.9 509 512 509s112.6 50.5 112.6 112.6S574.1 734.2 512 734.2zm0-160.9c-26.6 0-48.2 21.6-48.2 48.3 0 26.6 21.6 48.3 48.2 48.3s48.2-21.6 48.2-48.3c0-26.6-21.6-48.3-48.2-48.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/customer-service.js b/src/blrec/data/webapp/assets/fill/customer-service.js new file mode 100644 index 0000000..be4f28a --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/customer-service.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'customer-service', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/customer-service.svg b/src/blrec/data/webapp/assets/fill/customer-service.svg new file mode 100644 index 0000000..54f3d23 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/customer-service.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/dashboard.js b/src/blrec/data/webapp/assets/fill/dashboard.js new file mode 100644 index 0000000..e1ba7d1 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/dashboard.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dashboard', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M924.8 385.6a446.7 446.7 0 00-96-142.4 446.7 446.7 0 00-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 00-142.4 96 446.7 446.7 0 00-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM482 232c0-4.4 3.6-8 8-8h44c4.4 0 8 3.6 8 8v80c0 4.4-3.6 8-8 8h-44c-4.4 0-8-3.6-8-8v-80zM270 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44zm90.7-204.5l-31.1 31.1a8.03 8.03 0 01-11.3 0L261.7 352a8.03 8.03 0 010-11.3l31.1-31.1c3.1-3.1 8.2-3.1 11.3 0l56.6 56.6c3.1 3.1 3.1 8.2 0 11.3zm291.1 83.6l-84.5 84.5c5 18.7.2 39.4-14.5 54.1a55.95 55.95 0 01-79.2 0 55.95 55.95 0 010-79.2 55.87 55.87 0 0154.1-14.5l84.5-84.5c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3c3.1 3.1 3.1 8.1 0 11.3zm43-52.4l-31.1-31.1a8.03 8.03 0 010-11.3l56.6-56.6c3.1-3.1 8.2-3.1 11.3 0l31.1 31.1c3.1 3.1 3.1 8.2 0 11.3l-56.6 56.6a8.03 8.03 0 01-11.3 0zM846 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/dashboard.svg b/src/blrec/data/webapp/assets/fill/dashboard.svg new file mode 100644 index 0000000..ea6241f --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/dashboard.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M924.8 385.6a446.7 446.7 0 00-96-142.4 446.7 446.7 0 00-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 00-142.4 96 446.7 446.7 0 00-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM482 232c0-4.4 3.6-8 8-8h44c4.4 0 8 3.6 8 8v80c0 4.4-3.6 8-8 8h-44c-4.4 0-8-3.6-8-8v-80zM270 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44zm90.7-204.5l-31.1 31.1a8.03 8.03 0 01-11.3 0L261.7 352a8.03 8.03 0 010-11.3l31.1-31.1c3.1-3.1 8.2-3.1 11.3 0l56.6 56.6c3.1 3.1 3.1 8.2 0 11.3zm291.1 83.6l-84.5 84.5c5 18.7.2 39.4-14.5 54.1a55.95 55.95 0 01-79.2 0 55.95 55.95 0 010-79.2 55.87 55.87 0 0154.1-14.5l84.5-84.5c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3c3.1 3.1 3.1 8.1 0 11.3zm43-52.4l-31.1-31.1a8.03 8.03 0 010-11.3l56.6-56.6c3.1-3.1 8.2-3.1 11.3 0l31.1 31.1c3.1 3.1 3.1 8.2 0 11.3l-56.6 56.6a8.03 8.03 0 01-11.3 0zM846 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/database.js b/src/blrec/data/webapp/assets/fill/database.js new file mode 100644 index 0000000..4cfcc74 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/database.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'database', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v224h704V96c0-17.7-14.3-32-32-32zM288 232c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zM160 928c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V704H160v224zm128-136c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM160 640h704V384H160v256zm128-168c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/database.svg b/src/blrec/data/webapp/assets/fill/database.svg new file mode 100644 index 0000000..5f968b5 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/database.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v224h704V96c0-17.7-14.3-32-32-32zM288 232c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zM160 928c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V704H160v224zm128-136c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM160 640h704V384H160v256zm128-168c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/delete.js b/src/blrec/data/webapp/assets/fill/delete.js new file mode 100644 index 0000000..7481d48 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/delete.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'delete', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M864 256H736v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zm-200 0H360v-72h304v72z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/delete.svg b/src/blrec/data/webapp/assets/fill/delete.svg new file mode 100644 index 0000000..e8a661e --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/delete.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M864 256H736v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zm-200 0H360v-72h304v72z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/diff.js b/src/blrec/data/webapp/assets/fill/diff.js new file mode 100644 index 0000000..d568126 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/diff.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'diff', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.2 306.6L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23zM553.4 201.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM568 753c0 3.8-3.4 7-7.5 7h-225c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7h225c4.1 0 7.5 3.2 7.5 7v42zm0-220c0 3.8-3.4 7-7.5 7H476v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V540h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H420v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1V484h84.5c4.1 0 7.5 3.1 7.5 7v42z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/diff.svg b/src/blrec/data/webapp/assets/fill/diff.svg new file mode 100644 index 0000000..94ee07b --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/diff.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.2 306.6L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23zM553.4 201.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM568 753c0 3.8-3.4 7-7.5 7h-225c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7h225c4.1 0 7.5 3.2 7.5 7v42zm0-220c0 3.8-3.4 7-7.5 7H476v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V540h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H420v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1V484h84.5c4.1 0 7.5 3.1 7.5 7v42z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/dingtalk-circle.js b/src/blrec/data/webapp/assets/fill/dingtalk-circle.js new file mode 100644 index 0000000..9f03588 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/dingtalk-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dingtalk-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm227 385.3c-1 4.2-3.5 10.4-7 17.8h.1l-.4.7c-20.3 43.1-73.1 127.7-73.1 127.7s-.1-.2-.3-.5l-15.5 26.8h74.5L575.1 810l32.3-128h-58.6l20.4-84.7c-16.5 3.9-35.9 9.4-59 16.8 0 0-31.2 18.2-89.9-35 0 0-39.6-34.7-16.6-43.4 9.8-3.7 47.4-8.4 77-12.3 40-5.4 64.6-8.2 64.6-8.2S422 517 392.7 512.5c-29.3-4.6-66.4-53.1-74.3-95.8 0 0-12.2-23.4 26.3-12.3 38.5 11.1 197.9 43.2 197.9 43.2s-207.4-63.3-221.2-78.7c-13.8-15.4-40.6-84.2-37.1-126.5 0 0 1.5-10.5 12.4-7.7 0 0 153.3 69.7 258.1 107.9 104.8 37.9 195.9 57.3 184.2 106.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/dingtalk-circle.svg b/src/blrec/data/webapp/assets/fill/dingtalk-circle.svg new file mode 100644 index 0000000..d2e3e25 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/dingtalk-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm227 385.3c-1 4.2-3.5 10.4-7 17.8h.1l-.4.7c-20.3 43.1-73.1 127.7-73.1 127.7s-.1-.2-.3-.5l-15.5 26.8h74.5L575.1 810l32.3-128h-58.6l20.4-84.7c-16.5 3.9-35.9 9.4-59 16.8 0 0-31.2 18.2-89.9-35 0 0-39.6-34.7-16.6-43.4 9.8-3.7 47.4-8.4 77-12.3 40-5.4 64.6-8.2 64.6-8.2S422 517 392.7 512.5c-29.3-4.6-66.4-53.1-74.3-95.8 0 0-12.2-23.4 26.3-12.3 38.5 11.1 197.9 43.2 197.9 43.2s-207.4-63.3-221.2-78.7c-13.8-15.4-40.6-84.2-37.1-126.5 0 0 1.5-10.5 12.4-7.7 0 0 153.3 69.7 258.1 107.9 104.8 37.9 195.9 57.3 184.2 106.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/dingtalk-square.js b/src/blrec/data/webapp/assets/fill/dingtalk-square.js new file mode 100644 index 0000000..6d658a5 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/dingtalk-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dingtalk-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM739 449.3c-1 4.2-3.5 10.4-7 17.8h.1l-.4.7c-20.3 43.1-73.1 127.7-73.1 127.7s-.1-.2-.3-.5l-15.5 26.8h74.5L575.1 810l32.3-128h-58.6l20.4-84.7c-16.5 3.9-35.9 9.4-59 16.8 0 0-31.2 18.2-89.9-35 0 0-39.6-34.7-16.6-43.4 9.8-3.7 47.4-8.4 77-12.3 40-5.4 64.6-8.2 64.6-8.2S422 517 392.7 512.5c-29.3-4.6-66.4-53.1-74.3-95.8 0 0-12.2-23.4 26.3-12.3 38.5 11.1 197.9 43.2 197.9 43.2s-207.4-63.3-221.2-78.7c-13.8-15.4-40.6-84.2-37.1-126.5 0 0 1.5-10.5 12.4-7.7 0 0 153.3 69.7 258.1 107.9 104.8 37.9 195.9 57.3 184.2 106.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/dingtalk-square.svg b/src/blrec/data/webapp/assets/fill/dingtalk-square.svg new file mode 100644 index 0000000..b419d20 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/dingtalk-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM739 449.3c-1 4.2-3.5 10.4-7 17.8h.1l-.4.7c-20.3 43.1-73.1 127.7-73.1 127.7s-.1-.2-.3-.5l-15.5 26.8h74.5L575.1 810l32.3-128h-58.6l20.4-84.7c-16.5 3.9-35.9 9.4-59 16.8 0 0-31.2 18.2-89.9-35 0 0-39.6-34.7-16.6-43.4 9.8-3.7 47.4-8.4 77-12.3 40-5.4 64.6-8.2 64.6-8.2S422 517 392.7 512.5c-29.3-4.6-66.4-53.1-74.3-95.8 0 0-12.2-23.4 26.3-12.3 38.5 11.1 197.9 43.2 197.9 43.2s-207.4-63.3-221.2-78.7c-13.8-15.4-40.6-84.2-37.1-126.5 0 0 1.5-10.5 12.4-7.7 0 0 153.3 69.7 258.1 107.9 104.8 37.9 195.9 57.3 184.2 106.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/dislike.js b/src/blrec/data/webapp/assets/fill/dislike.js new file mode 100644 index 0000000..82dcb14 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/dislike.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dislike', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M885.9 490.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 00-26.5-5.4H273v428h.3l85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zM112 132v364c0 17.7 14.3 32 32 32h65V100h-65c-17.7 0-32 14.3-32 32z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/dislike.svg b/src/blrec/data/webapp/assets/fill/dislike.svg new file mode 100644 index 0000000..1168b4d --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/dislike.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M885.9 490.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 00-26.5-5.4H273v428h.3l85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zM112 132v364c0 17.7 14.3 32 32 32h65V100h-65c-17.7 0-32 14.3-32 32z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/dollar-circle.js b/src/blrec/data/webapp/assets/fill/dollar-circle.js new file mode 100644 index 0000000..54993db --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/dollar-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dollar-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm22.3 665.2l.2 31.7c0 4.4-3.6 8.1-8 8.1h-28.4c-4.4 0-8-3.6-8-8v-31.4C401.3 723 359.5 672.4 355 617.4c-.4-4.7 3.3-8.7 8-8.7h46.2c3.9 0 7.3 2.8 7.9 6.6 5.1 31.7 29.8 55.4 74.1 61.3V533.9l-24.7-6.3c-52.3-12.5-102.1-45.1-102.1-112.7 0-72.9 55.4-112.1 126.2-119v-33c0-4.4 3.6-8 8-8h28.1c4.4 0 8 3.6 8 8v32.7c68.5 6.9 119.9 46.9 125.9 109.2.5 4.7-3.2 8.8-8 8.8h-44.9c-4 0-7.4-3-7.9-6.9-4-29.2-27.4-53-65.5-58.2v134.3l25.4 5.9c64.8 16 108.9 47 108.9 116.4 0 75.3-56 117.3-134.3 124.1zM426.6 410.3c0 25.4 15.7 45.1 49.5 57.3 4.7 1.9 9.4 3.4 15 5v-124c-36.9 4.7-64.5 25.4-64.5 61.7zm116.5 135.2c-2.8-.6-5.6-1.3-8.8-2.2V677c42.6-3.8 72-27.2 72-66.4 0-30.7-15.9-50.7-63.2-65.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/dollar-circle.svg b/src/blrec/data/webapp/assets/fill/dollar-circle.svg new file mode 100644 index 0000000..e504ca5 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/dollar-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm22.3 665.2l.2 31.7c0 4.4-3.6 8.1-8 8.1h-28.4c-4.4 0-8-3.6-8-8v-31.4C401.3 723 359.5 672.4 355 617.4c-.4-4.7 3.3-8.7 8-8.7h46.2c3.9 0 7.3 2.8 7.9 6.6 5.1 31.7 29.8 55.4 74.1 61.3V533.9l-24.7-6.3c-52.3-12.5-102.1-45.1-102.1-112.7 0-72.9 55.4-112.1 126.2-119v-33c0-4.4 3.6-8 8-8h28.1c4.4 0 8 3.6 8 8v32.7c68.5 6.9 119.9 46.9 125.9 109.2.5 4.7-3.2 8.8-8 8.8h-44.9c-4 0-7.4-3-7.9-6.9-4-29.2-27.4-53-65.5-58.2v134.3l25.4 5.9c64.8 16 108.9 47 108.9 116.4 0 75.3-56 117.3-134.3 124.1zM426.6 410.3c0 25.4 15.7 45.1 49.5 57.3 4.7 1.9 9.4 3.4 15 5v-124c-36.9 4.7-64.5 25.4-64.5 61.7zm116.5 135.2c-2.8-.6-5.6-1.3-8.8-2.2V677c42.6-3.8 72-27.2 72-66.4 0-30.7-15.9-50.7-63.2-65.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/down-circle.js b/src/blrec/data/webapp/assets/fill/down-circle.js new file mode 100644 index 0000000..0f366da --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/down-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'down-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm184.5 353.7l-178 246a7.95 7.95 0 01-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7H381c10.2 0 19.9 4.9 25.9 13.2L512 563.6l105.2-145.4c6-8.3 15.6-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.5 12.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/down-circle.svg b/src/blrec/data/webapp/assets/fill/down-circle.svg new file mode 100644 index 0000000..260a6f1 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/down-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm184.5 353.7l-178 246a7.95 7.95 0 01-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7H381c10.2 0 19.9 4.9 25.9 13.2L512 563.6l105.2-145.4c6-8.3 15.6-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.5 12.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/down-square.js b/src/blrec/data/webapp/assets/fill/down-square.js new file mode 100644 index 0000000..0135dc3 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/down-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'down-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM696.5 412.7l-178 246a7.95 7.95 0 01-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7H381c10.2 0 19.9 4.9 25.9 13.2L512 558.6l105.2-145.4c6-8.3 15.6-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.5 12.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/down-square.svg b/src/blrec/data/webapp/assets/fill/down-square.svg new file mode 100644 index 0000000..5dd1585 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/down-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM696.5 412.7l-178 246a7.95 7.95 0 01-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7H381c10.2 0 19.9 4.9 25.9 13.2L512 558.6l105.2-145.4c6-8.3 15.6-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.5 12.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/dribbble-circle.js b/src/blrec/data/webapp/assets/fill/dribbble-circle.js new file mode 100644 index 0000000..61f3dbf --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/dribbble-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dribbble-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M675.1 328.3a245.2 245.2 0 00-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6zm47.7-11.9c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 736c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm53.1-346.2c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm30.6 82.5c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/dribbble-circle.svg b/src/blrec/data/webapp/assets/fill/dribbble-circle.svg new file mode 100644 index 0000000..5dbeef0 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/dribbble-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M675.1 328.3a245.2 245.2 0 00-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6zm47.7-11.9c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 736c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm53.1-346.2c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm30.6 82.5c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/dribbble-square.js b/src/blrec/data/webapp/assets/fill/dribbble-square.js new file mode 100644 index 0000000..799184c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/dribbble-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dribbble-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm66.5 21.8c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM512 800c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm89.7-259.1c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zm-72.5-26.4c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4zm145.9-186.2a245.2 245.2 0 00-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/dribbble-square.svg b/src/blrec/data/webapp/assets/fill/dribbble-square.svg new file mode 100644 index 0000000..af3704c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/dribbble-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm66.5 21.8c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM512 800c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm89.7-259.1c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zm-72.5-26.4c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4zm145.9-186.2a245.2 245.2 0 00-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/dropbox-circle.js b/src/blrec/data/webapp/assets/fill/dropbox-circle.js new file mode 100644 index 0000000..8cccb55 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/dropbox-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dropbox-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M663.8 455.5zm-151.5-93.8l-151.8 93.8 151.8 93.9 151.5-93.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm151.2 595.5L512.6 750l-151-90.5v-33.1l45.4 29.4 105.6-87.7 105.6 87.7 45.1-29.4v33.1zm-45.6-22.4l-105.3-87.7L407 637.1l-151-99.2 104.5-82.4L256 371.2 407 274l105.3 87.7L617.6 274 768 372.1l-104.2 83.5L768 539l-150.4 98.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/dropbox-circle.svg b/src/blrec/data/webapp/assets/fill/dropbox-circle.svg new file mode 100644 index 0000000..b9b96c7 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/dropbox-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M663.8 455.5zm-151.5-93.8l-151.8 93.8 151.8 93.9 151.5-93.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm151.2 595.5L512.6 750l-151-90.5v-33.1l45.4 29.4 105.6-87.7 105.6 87.7 45.1-29.4v33.1zm-45.6-22.4l-105.3-87.7L407 637.1l-151-99.2 104.5-82.4L256 371.2 407 274l105.3 87.7L617.6 274 768 372.1l-104.2 83.5L768 539l-150.4 98.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/dropbox-square.js b/src/blrec/data/webapp/assets/fill/dropbox-square.js new file mode 100644 index 0000000..da7459c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/dropbox-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dropbox-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM663.2 659.5L512.6 750l-151-90.5v-33.1l45.4 29.4 105.6-87.7 105.6 87.7 45.1-29.4v33.1zm-45.6-22.4l-105.3-87.7L407 637.1l-151-99.2 104.5-82.4L256 371.2 407 274l105.3 87.7L617.6 274 768 372.1l-104.2 83.5L768 539l-150.4 98.1zM512.3 361.7l-151.8 93.8 151.8 93.9 151.5-93.9zm151.5 93.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/dropbox-square.svg b/src/blrec/data/webapp/assets/fill/dropbox-square.svg new file mode 100644 index 0000000..458de61 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/dropbox-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM663.2 659.5L512.6 750l-151-90.5v-33.1l45.4 29.4 105.6-87.7 105.6 87.7 45.1-29.4v33.1zm-45.6-22.4l-105.3-87.7L407 637.1l-151-99.2 104.5-82.4L256 371.2 407 274l105.3 87.7L617.6 274 768 372.1l-104.2 83.5L768 539l-150.4 98.1zM512.3 361.7l-151.8 93.8 151.8 93.9 151.5-93.9zm151.5 93.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/edit.js b/src/blrec/data/webapp/assets/fill/edit.js new file mode 100644 index 0000000..de486ad --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/edit.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'edit', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32zm-622.3-84c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/edit.svg b/src/blrec/data/webapp/assets/fill/edit.svg new file mode 100644 index 0000000..4ec4230 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/edit.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32zm-622.3-84c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/environment.js b/src/blrec/data/webapp/assets/fill/environment.js new file mode 100644 index 0000000..e2621d9 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/environment.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'environment', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 327c-29.9 0-58 11.6-79.2 32.8A111.6 111.6 0 00400 439c0 29.9 11.7 58 32.8 79.2A111.6 111.6 0 00512 551c29.9 0 58-11.7 79.2-32.8C612.4 497 624 468.9 624 439c0-29.9-11.6-58-32.8-79.2S541.9 327 512 327zm342.6-37.9a362.49 362.49 0 00-79.9-115.7 370.83 370.83 0 00-118.2-77.8C610.7 76.6 562.1 67 512 67c-50.1 0-98.7 9.6-144.5 28.5-44.3 18.3-84 44.5-118.2 77.8A363.6 363.6 0 00169.4 289c-19.5 45-29.4 92.8-29.4 142 0 70.6 16.9 140.9 50.1 208.7 26.7 54.5 64 107.6 111 158.1 80.3 86.2 164.5 138.9 188.4 153a43.9 43.9 0 0022.4 6.1c7.8 0 15.5-2 22.4-6.1 23.9-14.1 108.1-66.8 188.4-153 47-50.4 84.3-103.6 111-158.1C867.1 572 884 501.8 884 431.1c0-49.2-9.9-97-29.4-142zM512 615c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/environment.svg b/src/blrec/data/webapp/assets/fill/environment.svg new file mode 100644 index 0000000..0eea224 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/environment.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 327c-29.9 0-58 11.6-79.2 32.8A111.6 111.6 0 00400 439c0 29.9 11.7 58 32.8 79.2A111.6 111.6 0 00512 551c29.9 0 58-11.7 79.2-32.8C612.4 497 624 468.9 624 439c0-29.9-11.6-58-32.8-79.2S541.9 327 512 327zm342.6-37.9a362.49 362.49 0 00-79.9-115.7 370.83 370.83 0 00-118.2-77.8C610.7 76.6 562.1 67 512 67c-50.1 0-98.7 9.6-144.5 28.5-44.3 18.3-84 44.5-118.2 77.8A363.6 363.6 0 00169.4 289c-19.5 45-29.4 92.8-29.4 142 0 70.6 16.9 140.9 50.1 208.7 26.7 54.5 64 107.6 111 158.1 80.3 86.2 164.5 138.9 188.4 153a43.9 43.9 0 0022.4 6.1c7.8 0 15.5-2 22.4-6.1 23.9-14.1 108.1-66.8 188.4-153 47-50.4 84.3-103.6 111-158.1C867.1 572 884 501.8 884 431.1c0-49.2-9.9-97-29.4-142zM512 615c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/euro-circle.js b/src/blrec/data/webapp/assets/fill/euro-circle.js new file mode 100644 index 0000000..d8bb254 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/euro-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'euro-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm63.5 375.8c4.4 0 8 3.6 8 8V475c0 4.4-3.6 8-8 8h-136c-.3 4.4-.3 9.1-.3 13.8v36h136.2c4.4 0 8 3.6 8 8V568c0 4.4-3.6 8-8 8H444.9c15.3 62 61.3 98.6 129.8 98.6 19.9 0 37.1-1.2 51.8-4.1 4.9-1 9.5 2.8 9.5 7.8v42.8c0 3.8-2.7 7-6.4 7.8-15.9 3.4-34.3 5.1-55.3 5.1-109.8 0-183-58.8-200.2-158H344c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h26.1v-36.9c0-4.4 0-8.8.3-12.8H344c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h31.7c19.7-94.2 92-149.9 198.6-149.9 20.9 0 39.4 1.9 55.3 5.4 3.7.8 6.3 4 6.3 7.8V346h.1c0 5.1-4.6 8.8-9.6 7.8-14.7-2.9-31.8-4.4-51.7-4.4-65.4 0-110.4 33.5-127.6 90.4h128.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/euro-circle.svg b/src/blrec/data/webapp/assets/fill/euro-circle.svg new file mode 100644 index 0000000..7b42a89 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/euro-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm63.5 375.8c4.4 0 8 3.6 8 8V475c0 4.4-3.6 8-8 8h-136c-.3 4.4-.3 9.1-.3 13.8v36h136.2c4.4 0 8 3.6 8 8V568c0 4.4-3.6 8-8 8H444.9c15.3 62 61.3 98.6 129.8 98.6 19.9 0 37.1-1.2 51.8-4.1 4.9-1 9.5 2.8 9.5 7.8v42.8c0 3.8-2.7 7-6.4 7.8-15.9 3.4-34.3 5.1-55.3 5.1-109.8 0-183-58.8-200.2-158H344c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h26.1v-36.9c0-4.4 0-8.8.3-12.8H344c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h31.7c19.7-94.2 92-149.9 198.6-149.9 20.9 0 39.4 1.9 55.3 5.4 3.7.8 6.3 4 6.3 7.8V346h.1c0 5.1-4.6 8.8-9.6 7.8-14.7-2.9-31.8-4.4-51.7-4.4-65.4 0-110.4 33.5-127.6 90.4h128.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/exclamation-circle.js b/src/blrec/data/webapp/assets/fill/exclamation-circle.js new file mode 100644 index 0000000..9450095 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/exclamation-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'exclamation-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/exclamation-circle.svg b/src/blrec/data/webapp/assets/fill/exclamation-circle.svg new file mode 100644 index 0000000..af99135 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/exclamation-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/experiment.js b/src/blrec/data/webapp/assets/fill/experiment.js new file mode 100644 index 0000000..a49229a --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/experiment.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'experiment', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M218.9 636.3l42.6 26.6c.1.1.3.2.4.3l12.7 8 .3.3a186.9 186.9 0 0094.1 25.1c44.9 0 87.2-15.7 121-43.8a256.27 256.27 0 01164.9-59.9c52.3 0 102.2 15.7 144.6 44.5l7.9 5-111.6-289V179.8h63.5c4.4 0 8-3.6 8-8V120c0-4.4-3.6-8-8-8H264.7c-4.4 0-8 3.6-8 8v51.9c0 4.4 3.6 8 8 8h63.5v173.6L218.9 636.3zm333-203.1c22 0 39.9 17.9 39.9 39.9S573.9 513 551.9 513 512 495.1 512 473.1s17.9-39.9 39.9-39.9zM878 825.1l-29.9-77.4-85.7-53.5-.1.1c-.7-.5-1.5-1-2.2-1.5l-8.1-5-.3-.3c-29-17.5-62.3-26.8-97-26.8-44.9 0-87.2 15.7-121 43.8a256.27 256.27 0 01-164.9 59.9c-53 0-103.5-16.1-146.2-45.6l-28.9-18.1L146 825.1c-2.8 7.4-4.3 15.2-4.3 23 0 35.2 28.6 63.8 63.8 63.8h612.9c7.9 0 15.7-1.5 23-4.3a63.6 63.6 0 0036.6-82.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/experiment.svg b/src/blrec/data/webapp/assets/fill/experiment.svg new file mode 100644 index 0000000..75490a5 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/experiment.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M218.9 636.3l42.6 26.6c.1.1.3.2.4.3l12.7 8 .3.3a186.9 186.9 0 0094.1 25.1c44.9 0 87.2-15.7 121-43.8a256.27 256.27 0 01164.9-59.9c52.3 0 102.2 15.7 144.6 44.5l7.9 5-111.6-289V179.8h63.5c4.4 0 8-3.6 8-8V120c0-4.4-3.6-8-8-8H264.7c-4.4 0-8 3.6-8 8v51.9c0 4.4 3.6 8 8 8h63.5v173.6L218.9 636.3zm333-203.1c22 0 39.9 17.9 39.9 39.9S573.9 513 551.9 513 512 495.1 512 473.1s17.9-39.9 39.9-39.9zM878 825.1l-29.9-77.4-85.7-53.5-.1.1c-.7-.5-1.5-1-2.2-1.5l-8.1-5-.3-.3c-29-17.5-62.3-26.8-97-26.8-44.9 0-87.2 15.7-121 43.8a256.27 256.27 0 01-164.9 59.9c-53 0-103.5-16.1-146.2-45.6l-28.9-18.1L146 825.1c-2.8 7.4-4.3 15.2-4.3 23 0 35.2 28.6 63.8 63.8 63.8h612.9c7.9 0 15.7-1.5 23-4.3a63.6 63.6 0 0036.6-82.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/eye-invisible.js b/src/blrec/data/webapp/assets/fill/eye-invisible.js new file mode 100644 index 0000000..dd5def2 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/eye-invisible.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'eye-invisible', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M508 624a112 112 0 00112-112c0-3.28-.15-6.53-.43-9.74L498.26 623.57c3.21.28 6.45.43 9.74.43zm370.72-458.44L836 122.88a8 8 0 00-11.31 0L715.37 232.23Q624.91 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q56.7 119.43 136.55 191.45L112.56 835a8 8 0 000 11.31L155.25 889a8 8 0 0011.31 0l712.16-712.12a8 8 0 000-11.32zM332 512a176 176 0 01258.88-155.28l-48.62 48.62a112.08 112.08 0 00-140.92 140.92l-48.62 48.62A175.09 175.09 0 01332 512z" /><path d="M942.2 486.2Q889.4 375 816.51 304.85L672.37 449A176.08 176.08 0 01445 676.37L322.74 798.63Q407.82 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/eye-invisible.svg b/src/blrec/data/webapp/assets/fill/eye-invisible.svg new file mode 100644 index 0000000..4b7da9a --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/eye-invisible.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M508 624a112 112 0 00112-112c0-3.28-.15-6.53-.43-9.74L498.26 623.57c3.21.28 6.45.43 9.74.43zm370.72-458.44L836 122.88a8 8 0 00-11.31 0L715.37 232.23Q624.91 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q56.7 119.43 136.55 191.45L112.56 835a8 8 0 000 11.31L155.25 889a8 8 0 0011.31 0l712.16-712.12a8 8 0 000-11.32zM332 512a176 176 0 01258.88-155.28l-48.62 48.62a112.08 112.08 0 00-140.92 140.92l-48.62 48.62A175.09 175.09 0 01332 512z" /><path d="M942.2 486.2Q889.4 375 816.51 304.85L672.37 449A176.08 176.08 0 01445 676.37L322.74 798.63Q407.82 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/eye.js b/src/blrec/data/webapp/assets/fill/eye.js new file mode 100644 index 0000000..2fca888 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/eye.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'eye', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M396 512a112 112 0 10224 0 112 112 0 10-224 0zm546.2-25.8C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM508 688c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/eye.svg b/src/blrec/data/webapp/assets/fill/eye.svg new file mode 100644 index 0000000..dfa3b98 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/eye.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M396 512a112 112 0 10224 0 112 112 0 10-224 0zm546.2-25.8C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM508 688c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/facebook.js b/src/blrec/data/webapp/assets/fill/facebook.js new file mode 100644 index 0000000..38f49b5 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/facebook.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'facebook', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-92.4 233.5h-63.9c-50.1 0-59.8 23.8-59.8 58.8v77.1h119.6l-15.6 120.7h-104V912H539.2V602.2H434.9V481.4h104.3v-89c0-103.3 63.1-159.6 155.3-159.6 44.2 0 82.1 3.3 93.2 4.8v107.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/facebook.svg b/src/blrec/data/webapp/assets/fill/facebook.svg new file mode 100644 index 0000000..5ebd7b4 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/facebook.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-92.4 233.5h-63.9c-50.1 0-59.8 23.8-59.8 58.8v77.1h119.6l-15.6 120.7h-104V912H539.2V602.2H434.9V481.4h104.3v-89c0-103.3 63.1-159.6 155.3-159.6 44.2 0 82.1 3.3 93.2 4.8v107.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/fast-backward.js b/src/blrec/data/webapp/assets/fill/fast-backward.js new file mode 100644 index 0000000..0cfaee1 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/fast-backward.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'fast-backward', + theme: 'fill', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M517.6 273.5L230.2 499.3a16.14 16.14 0 000 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm320 0L550.2 499.3a16.14 16.14 0 000 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm-620-25.5h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/fast-backward.svg b/src/blrec/data/webapp/assets/fill/fast-backward.svg new file mode 100644 index 0000000..bc80f8d --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/fast-backward.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M517.6 273.5L230.2 499.3a16.14 16.14 0 000 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm320 0L550.2 499.3a16.14 16.14 0 000 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm-620-25.5h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/fast-forward.js b/src/blrec/data/webapp/assets/fill/fast-forward.js new file mode 100644 index 0000000..33a4869 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/fast-forward.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'fast-forward', + theme: 'fill', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M793.8 499.3L506.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.6c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8a16.14 16.14 0 000-25.4zm-320 0L186.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.5c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8c4.1-3.2 6.2-8 6.2-12.7 0-4.6-2.1-9.4-6.2-12.6zM857.6 248h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/fast-forward.svg b/src/blrec/data/webapp/assets/fill/fast-forward.svg new file mode 100644 index 0000000..a17db63 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/fast-forward.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M793.8 499.3L506.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.6c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8a16.14 16.14 0 000-25.4zm-320 0L186.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.5c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8c4.1-3.2 6.2-8 6.2-12.7 0-4.6-2.1-9.4-6.2-12.6zM857.6 248h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-add.js b/src/blrec/data/webapp/assets/fill/file-add.js new file mode 100644 index 0000000..4fe051f --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-add.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-add', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M480 580H372a8 8 0 00-8 8v48a8 8 0 008 8h108v108a8 8 0 008 8h48a8 8 0 008-8V644h108a8 8 0 008-8v-48a8 8 0 00-8-8H544V472a8 8 0 00-8-8h-48a8 8 0 00-8 8v108zm374.6-291.3c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-add.svg b/src/blrec/data/webapp/assets/fill/file-add.svg new file mode 100644 index 0000000..b82e83c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-add.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M480 580H372a8 8 0 00-8 8v48a8 8 0 008 8h108v108a8 8 0 008 8h48a8 8 0 008-8V644h108a8 8 0 008-8v-48a8 8 0 00-8-8H544V472a8 8 0 00-8-8h-48a8 8 0 00-8 8v108zm374.6-291.3c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-excel.js b/src/blrec/data/webapp/assets/fill/file-excel.js new file mode 100644 index 0000000..cb1bb76 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-excel.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-excel', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM575.34 477.84l-61.22 102.3L452.3 477.8a12 12 0 00-10.27-5.79h-38.44a12 12 0 00-6.4 1.85 12 12 0 00-3.75 16.56l82.34 130.42-83.45 132.78a12 12 0 00-1.84 6.39 12 12 0 0012 12h34.46a12 12 0 0010.21-5.7l62.7-101.47 62.3 101.45a12 12 0 0010.23 5.72h37.48a12 12 0 006.48-1.9 12 12 0 003.62-16.58l-83.83-130.55 85.3-132.47a12 12 0 001.9-6.5 12 12 0 00-12-12h-35.7a12 12 0 00-10.29 5.84z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-excel.svg b/src/blrec/data/webapp/assets/fill/file-excel.svg new file mode 100644 index 0000000..3bb34c7 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-excel.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM575.34 477.84l-61.22 102.3L452.3 477.8a12 12 0 00-10.27-5.79h-38.44a12 12 0 00-6.4 1.85 12 12 0 00-3.75 16.56l82.34 130.42-83.45 132.78a12 12 0 00-1.84 6.39 12 12 0 0012 12h34.46a12 12 0 0010.21-5.7l62.7-101.47 62.3 101.45a12 12 0 0010.23 5.72h37.48a12 12 0 006.48-1.9 12 12 0 003.62-16.58l-83.83-130.55 85.3-132.47a12 12 0 001.9-6.5 12 12 0 00-12-12h-35.7a12 12 0 00-10.29 5.84z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-exclamation.js b/src/blrec/data/webapp/assets/fill/file-exclamation.js new file mode 100644 index 0000000..b0f153c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-exclamation.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-exclamation', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM512 784a40 40 0 100-80 40 40 0 000 80zm32-152V448a8 8 0 00-8-8h-48a8 8 0 00-8 8v184a8 8 0 008 8h48a8 8 0 008-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-exclamation.svg b/src/blrec/data/webapp/assets/fill/file-exclamation.svg new file mode 100644 index 0000000..e5ca9d9 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-exclamation.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM512 784a40 40 0 100-80 40 40 0 000 80zm32-152V448a8 8 0 00-8-8h-48a8 8 0 00-8 8v184a8 8 0 008 8h48a8 8 0 008-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-image.js b/src/blrec/data/webapp/assets/fill/file-image.js new file mode 100644 index 0000000..06c6206 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-image.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-image', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.6-9.4-22.6zM400 402c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm296 294H328c-6.7 0-10.4-7.7-6.3-12.9l99.8-127.2a8 8 0 0112.6 0l41.1 52.4 77.8-99.2a8 8 0 0112.6 0l136.5 174c4.3 5.2.5 12.9-6.1 12.9zm-94-370V137.8L790.2 326H602z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-image.svg b/src/blrec/data/webapp/assets/fill/file-image.svg new file mode 100644 index 0000000..488005c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-image.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.6-9.4-22.6zM400 402c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm296 294H328c-6.7 0-10.4-7.7-6.3-12.9l99.8-127.2a8 8 0 0112.6 0l41.1 52.4 77.8-99.2a8 8 0 0112.6 0l136.5 174c4.3 5.2.5 12.9-6.1 12.9zm-94-370V137.8L790.2 326H602z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-markdown.js b/src/blrec/data/webapp/assets/fill/file-markdown.js new file mode 100644 index 0000000..cc839c8 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-markdown.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-markdown', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM426.13 600.93l59.11 132.97a16 16 0 0014.62 9.5h24.06a16 16 0 0014.63-9.51l59.1-133.35V758a16 16 0 0016.01 16H641a16 16 0 0016-16V486a16 16 0 00-16-16h-34.75a16 16 0 00-14.67 9.62L512.1 662.2l-79.48-182.59a16 16 0 00-14.67-9.61H383a16 16 0 00-16 16v272a16 16 0 0016 16h27.13a16 16 0 0016-16V600.93z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-markdown.svg b/src/blrec/data/webapp/assets/fill/file-markdown.svg new file mode 100644 index 0000000..db595b2 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-markdown.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM426.13 600.93l59.11 132.97a16 16 0 0014.62 9.5h24.06a16 16 0 0014.63-9.51l59.1-133.35V758a16 16 0 0016.01 16H641a16 16 0 0016-16V486a16 16 0 00-16-16h-34.75a16 16 0 00-14.67 9.62L512.1 662.2l-79.48-182.59a16 16 0 00-14.67-9.61H383a16 16 0 00-16 16v272a16 16 0 0016 16h27.13a16 16 0 0016-16V600.93z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-pdf.js b/src/blrec/data/webapp/assets/fill/file-pdf.js new file mode 100644 index 0000000..a931b3d --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-pdf.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-pdf', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM633.22 637.26c-15.18-.5-31.32.67-49.65 2.96-24.3-14.99-40.66-35.58-52.28-65.83l1.07-4.38 1.24-5.18c4.3-18.13 6.61-31.36 7.3-44.7.52-10.07-.04-19.36-1.83-27.97-3.3-18.59-16.45-29.46-33.02-30.13-15.45-.63-29.65 8-33.28 21.37-5.91 21.62-2.45 50.07 10.08 98.59-15.96 38.05-37.05 82.66-51.2 107.54-18.89 9.74-33.6 18.6-45.96 28.42-16.3 12.97-26.48 26.3-29.28 40.3-1.36 6.49.69 14.97 5.36 21.92 5.3 7.88 13.28 13 22.85 13.74 24.15 1.87 53.83-23.03 86.6-79.26 3.29-1.1 6.77-2.26 11.02-3.7l11.9-4.02c7.53-2.54 12.99-4.36 18.39-6.11 23.4-7.62 41.1-12.43 57.2-15.17 27.98 14.98 60.32 24.8 82.1 24.8 17.98 0 30.13-9.32 34.52-23.99 3.85-12.88.8-27.82-7.48-36.08-8.56-8.41-24.3-12.43-45.65-13.12zM385.23 765.68v-.36l.13-.34a54.86 54.86 0 015.6-10.76c4.28-6.58 10.17-13.5 17.47-20.87 3.92-3.95 8-7.8 12.79-12.12 1.07-.96 7.91-7.05 9.19-8.25l11.17-10.4-8.12 12.93c-12.32 19.64-23.46 33.78-33 43-3.51 3.4-6.6 5.9-9.1 7.51a16.43 16.43 0 01-2.61 1.42c-.41.17-.77.27-1.13.3a2.2 2.2 0 01-1.12-.15 2.07 2.07 0 01-1.27-1.91zM511.17 547.4l-2.26 4-1.4-4.38c-3.1-9.83-5.38-24.64-6.01-38-.72-15.2.49-24.32 5.29-24.32 6.74 0 9.83 10.8 10.07 27.05.22 14.28-2.03 29.14-5.7 35.65zm-5.81 58.46l1.53-4.05 2.09 3.8c11.69 21.24 26.86 38.96 43.54 51.31l3.6 2.66-4.39.9c-16.33 3.38-31.54 8.46-52.34 16.85 2.17-.88-21.62 8.86-27.64 11.17l-5.25 2.01 2.8-4.88c12.35-21.5 23.76-47.32 36.05-79.77zm157.62 76.26c-7.86 3.1-24.78.33-54.57-12.39l-7.56-3.22 8.2-.6c23.3-1.73 39.8-.45 49.42 3.07 4.1 1.5 6.83 3.39 8.04 5.55a4.64 4.64 0 01-1.36 6.31 6.7 6.7 0 01-2.17 1.28z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-pdf.svg b/src/blrec/data/webapp/assets/fill/file-pdf.svg new file mode 100644 index 0000000..dfa8fc1 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-pdf.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM633.22 637.26c-15.18-.5-31.32.67-49.65 2.96-24.3-14.99-40.66-35.58-52.28-65.83l1.07-4.38 1.24-5.18c4.3-18.13 6.61-31.36 7.3-44.7.52-10.07-.04-19.36-1.83-27.97-3.3-18.59-16.45-29.46-33.02-30.13-15.45-.63-29.65 8-33.28 21.37-5.91 21.62-2.45 50.07 10.08 98.59-15.96 38.05-37.05 82.66-51.2 107.54-18.89 9.74-33.6 18.6-45.96 28.42-16.3 12.97-26.48 26.3-29.28 40.3-1.36 6.49.69 14.97 5.36 21.92 5.3 7.88 13.28 13 22.85 13.74 24.15 1.87 53.83-23.03 86.6-79.26 3.29-1.1 6.77-2.26 11.02-3.7l11.9-4.02c7.53-2.54 12.99-4.36 18.39-6.11 23.4-7.62 41.1-12.43 57.2-15.17 27.98 14.98 60.32 24.8 82.1 24.8 17.98 0 30.13-9.32 34.52-23.99 3.85-12.88.8-27.82-7.48-36.08-8.56-8.41-24.3-12.43-45.65-13.12zM385.23 765.68v-.36l.13-.34a54.86 54.86 0 015.6-10.76c4.28-6.58 10.17-13.5 17.47-20.87 3.92-3.95 8-7.8 12.79-12.12 1.07-.96 7.91-7.05 9.19-8.25l11.17-10.4-8.12 12.93c-12.32 19.64-23.46 33.78-33 43-3.51 3.4-6.6 5.9-9.1 7.51a16.43 16.43 0 01-2.61 1.42c-.41.17-.77.27-1.13.3a2.2 2.2 0 01-1.12-.15 2.07 2.07 0 01-1.27-1.91zM511.17 547.4l-2.26 4-1.4-4.38c-3.1-9.83-5.38-24.64-6.01-38-.72-15.2.49-24.32 5.29-24.32 6.74 0 9.83 10.8 10.07 27.05.22 14.28-2.03 29.14-5.7 35.65zm-5.81 58.46l1.53-4.05 2.09 3.8c11.69 21.24 26.86 38.96 43.54 51.31l3.6 2.66-4.39.9c-16.33 3.38-31.54 8.46-52.34 16.85 2.17-.88-21.62 8.86-27.64 11.17l-5.25 2.01 2.8-4.88c12.35-21.5 23.76-47.32 36.05-79.77zm157.62 76.26c-7.86 3.1-24.78.33-54.57-12.39l-7.56-3.22 8.2-.6c23.3-1.73 39.8-.45 49.42 3.07 4.1 1.5 6.83 3.39 8.04 5.55a4.64 4.64 0 01-1.36 6.31 6.7 6.7 0 01-2.17 1.28z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-ppt.js b/src/blrec/data/webapp/assets/fill/file-ppt.js new file mode 100644 index 0000000..253e87c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-ppt.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-ppt', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM468.53 760v-91.54h59.27c60.57 0 100.2-39.65 100.2-98.12 0-58.22-39.58-98.34-99.98-98.34H424a12 12 0 00-12 12v276a12 12 0 0012 12h32.53a12 12 0 0012-12zm0-139.33h34.9c47.82 0 67.19-12.93 67.19-50.33 0-32.05-18.12-50.12-49.87-50.12h-52.22v100.45z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-ppt.svg b/src/blrec/data/webapp/assets/fill/file-ppt.svg new file mode 100644 index 0000000..974a536 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-ppt.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM468.53 760v-91.54h59.27c60.57 0 100.2-39.65 100.2-98.12 0-58.22-39.58-98.34-99.98-98.34H424a12 12 0 00-12 12v276a12 12 0 0012 12h32.53a12 12 0 0012-12zm0-139.33h34.9c47.82 0 67.19-12.93 67.19-50.33 0-32.05-18.12-50.12-49.87-50.12h-52.22v100.45z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-text.js b/src/blrec/data/webapp/assets/fill/file-text.js new file mode 100644 index 0000000..bcad27b --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-text.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-text', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM320 482a8 8 0 00-8 8v48a8 8 0 008 8h384a8 8 0 008-8v-48a8 8 0 00-8-8H320zm0 136a8 8 0 00-8 8v48a8 8 0 008 8h184a8 8 0 008-8v-48a8 8 0 00-8-8H320z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-text.svg b/src/blrec/data/webapp/assets/fill/file-text.svg new file mode 100644 index 0000000..b935f27 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-text.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM320 482a8 8 0 00-8 8v48a8 8 0 008 8h384a8 8 0 008-8v-48a8 8 0 00-8-8H320zm0 136a8 8 0 00-8 8v48a8 8 0 008 8h184a8 8 0 008-8v-48a8 8 0 00-8-8H320z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-unknown.js b/src/blrec/data/webapp/assets/fill/file-unknown.js new file mode 100644 index 0000000..5da3273 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-unknown.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-unknown', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM402 549c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103zm110 227a32 32 0 100-64 32 32 0 000 64z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-unknown.svg b/src/blrec/data/webapp/assets/fill/file-unknown.svg new file mode 100644 index 0000000..9a79f5e --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-unknown.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM402 549c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103zm110 227a32 32 0 100-64 32 32 0 000 64z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-word.js b/src/blrec/data/webapp/assets/fill/file-word.js new file mode 100644 index 0000000..2f6e5e8 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-word.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-word', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM512 566.1l52.81 197a12 12 0 0011.6 8.9h31.77a12 12 0 0011.6-8.88l74.37-276a12 12 0 00.4-3.12 12 12 0 00-12-12h-35.57a12 12 0 00-11.7 9.31l-45.78 199.1-49.76-199.32A12 12 0 00528.1 472h-32.2a12 12 0 00-11.64 9.1L434.6 680.01 388.5 481.3a12 12 0 00-11.68-9.29h-35.39a12 12 0 00-3.11.41 12 12 0 00-8.47 14.7l74.17 276A12 12 0 00415.6 772h31.99a12 12 0 0011.59-8.9l52.81-197z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-word.svg b/src/blrec/data/webapp/assets/fill/file-word.svg new file mode 100644 index 0000000..5cf20c6 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-word.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM512 566.1l52.81 197a12 12 0 0011.6 8.9h31.77a12 12 0 0011.6-8.88l74.37-276a12 12 0 00.4-3.12 12 12 0 00-12-12h-35.57a12 12 0 00-11.7 9.31l-45.78 199.1-49.76-199.32A12 12 0 00528.1 472h-32.2a12 12 0 00-11.64 9.1L434.6 680.01 388.5 481.3a12 12 0 00-11.68-9.29h-35.39a12 12 0 00-3.11.41 12 12 0 00-8.47 14.7l74.17 276A12 12 0 00415.6 772h31.99a12 12 0 0011.59-8.9l52.81-197z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-zip.js b/src/blrec/data/webapp/assets/fill/file-zip.js new file mode 100644 index 0000000..91e2d5e --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-zip.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-zip', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM296 136v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm0 64v160h128V584H296zm48 48h32v64h-32v-64z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file-zip.svg b/src/blrec/data/webapp/assets/fill/file-zip.svg new file mode 100644 index 0000000..35297c5 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file-zip.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2zM296 136v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm64 64v64h64v-64h-64zm-64 64v64h64v-64h-64zm0 64v160h128V584H296zm48 48h32v64h-32v-64z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file.js b/src/blrec/data/webapp/assets/fill/file.js new file mode 100644 index 0000000..ccb92e2 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/file.svg b/src/blrec/data/webapp/assets/fill/file.svg new file mode 100644 index 0000000..4aa0f77 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/file.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/filter.js b/src/blrec/data/webapp/assets/fill/filter.js new file mode 100644 index 0000000..55f0d20 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/filter.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'filter', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/filter.svg b/src/blrec/data/webapp/assets/fill/filter.svg new file mode 100644 index 0000000..cd3522c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/filter.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/fire.js b/src/blrec/data/webapp/assets/fill/fire.js new file mode 100644 index 0000000..4c77fde --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/fire.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'fire', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M834.1 469.2A347.49 347.49 0 00751.2 354l-29.1-26.7a8.09 8.09 0 00-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 01-47.5 46.1 352.6 352.6 0 00-100.3 121.5A347.75 347.75 0 00160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0075.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 00760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0027.7-136c0-48.8-10-96.2-29.9-140.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/fire.svg b/src/blrec/data/webapp/assets/fill/fire.svg new file mode 100644 index 0000000..4492cf4 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/fire.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M834.1 469.2A347.49 347.49 0 00751.2 354l-29.1-26.7a8.09 8.09 0 00-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 01-47.5 46.1 352.6 352.6 0 00-100.3 121.5A347.75 347.75 0 00160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0075.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 00760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0027.7-136c0-48.8-10-96.2-29.9-140.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/flag.js b/src/blrec/data/webapp/assets/fill/flag.js new file mode 100644 index 0000000..0f1f9fe --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/flag.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'flag', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/flag.svg b/src/blrec/data/webapp/assets/fill/flag.svg new file mode 100644 index 0000000..19d2e21 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/flag.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/folder-add.js b/src/blrec/data/webapp/assets/fill/folder-add.js new file mode 100644 index 0000000..ac88f64 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/folder-add.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'folder-add', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM632 577c0 3.8-3.4 7-7.5 7H540v84.9c0 3.9-3.2 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V584h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7H484v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.8 0 7 3.2 7 7.1V528h84.5c4.1 0 7.5 3.2 7.5 7v42z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/folder-add.svg b/src/blrec/data/webapp/assets/fill/folder-add.svg new file mode 100644 index 0000000..bbee2e3 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/folder-add.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM632 577c0 3.8-3.4 7-7.5 7H540v84.9c0 3.9-3.2 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V584h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7H484v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.8 0 7 3.2 7 7.1V528h84.5c4.1 0 7.5 3.2 7.5 7v42z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/folder-open.js b/src/blrec/data/webapp/assets/fill/folder-open.js new file mode 100644 index 0000000..699088f --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/folder-open.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'folder-open', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zm-180 0H238c-13 0-24.8 7.9-29.7 20L136 643.2V256h188.5l119.6 114.4H748V444z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/folder-open.svg b/src/blrec/data/webapp/assets/fill/folder-open.svg new file mode 100644 index 0000000..173b20b --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/folder-open.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zm-180 0H238c-13 0-24.8 7.9-29.7 20L136 643.2V256h188.5l119.6 114.4H748V444z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/folder.js b/src/blrec/data/webapp/assets/fill/folder.js new file mode 100644 index 0000000..7ff5637 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/folder.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'folder', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/folder.svg b/src/blrec/data/webapp/assets/fill/folder.svg new file mode 100644 index 0000000..1fc5fe1 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/folder.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/format-painter.js b/src/blrec/data/webapp/assets/fill/format-painter.js new file mode 100644 index 0000000..161f35d --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/format-painter.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'format-painter', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M840 192h-56v-72c0-13.3-10.7-24-24-24H168c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h592c13.3 0 24-10.7 24-24V256h32v200H465c-22.1 0-40 17.9-40 40v136h-44c-4.4 0-8 3.6-8 8v228c0 1.1.2 2.2.6 3.1-.4 1.6-.6 3.2-.6 4.9 0 46.4 37.6 84 84 84s84-37.6 84-84c0-1.7-.2-3.3-.6-4.9.4-1 .6-2 .6-3.1V640c0-4.4-3.6-8-8-8h-44V520h351c22.1 0 40-17.9 40-40V232c0-22.1-17.9-40-40-40z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/format-painter.svg b/src/blrec/data/webapp/assets/fill/format-painter.svg new file mode 100644 index 0000000..b07f52e --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/format-painter.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M840 192h-56v-72c0-13.3-10.7-24-24-24H168c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h592c13.3 0 24-10.7 24-24V256h32v200H465c-22.1 0-40 17.9-40 40v136h-44c-4.4 0-8 3.6-8 8v228c0 1.1.2 2.2.6 3.1-.4 1.6-.6 3.2-.6 4.9 0 46.4 37.6 84 84 84s84-37.6 84-84c0-1.7-.2-3.3-.6-4.9.4-1 .6-2 .6-3.1V640c0-4.4-3.6-8-8-8h-44V520h351c22.1 0 40-17.9 40-40V232c0-22.1-17.9-40-40-40z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/forward.js b/src/blrec/data/webapp/assets/fill/forward.js new file mode 100644 index 0000000..3abc801 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/forward.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'forward', + theme: 'fill', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M825.8 498L538.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L825.8 526c8.3-7.2 8.3-20.8 0-28zm-320 0L218.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L505.8 526c4.1-3.6 6.2-8.8 6.2-14 0-5.2-2.1-10.4-6.2-14z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/forward.svg b/src/blrec/data/webapp/assets/fill/forward.svg new file mode 100644 index 0000000..f5184ec --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/forward.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M825.8 498L538.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L825.8 526c8.3-7.2 8.3-20.8 0-28zm-320 0L218.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L505.8 526c4.1-3.6 6.2-8.8 6.2-14 0-5.2-2.1-10.4-6.2-14z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/frown.js b/src/blrec/data/webapp/assets/fill/frown.js new file mode 100644 index 0000000..ccf26a1 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/frown.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'frown', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm376 272h-48.1c-4.2 0-7.8-3.2-8.1-7.4C604 636.1 562.5 597 512 597s-92.1 39.1-95.8 88.6c-.3 4.2-3.9 7.4-8.1 7.4H360a8 8 0 01-8-8.4c4.4-84.3 74.5-151.6 160-151.6s155.6 67.3 160 151.6a8 8 0 01-8 8.4zm24-224a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/frown.svg b/src/blrec/data/webapp/assets/fill/frown.svg new file mode 100644 index 0000000..df78a0d --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/frown.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm376 272h-48.1c-4.2 0-7.8-3.2-8.1-7.4C604 636.1 562.5 597 512 597s-92.1 39.1-95.8 88.6c-.3 4.2-3.9 7.4-8.1 7.4H360a8 8 0 01-8-8.4c4.4-84.3 74.5-151.6 160-151.6s155.6 67.3 160 151.6a8 8 0 01-8 8.4zm24-224a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/fund.js b/src/blrec/data/webapp/assets/fill/fund.js new file mode 100644 index 0000000..2311e32 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/fund.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'fund', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M926 164H94c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V196c0-17.7-14.3-32-32-32zm-92.3 194.4l-297 297.2a8.03 8.03 0 01-11.3 0L410.9 541.1 238.4 713.7a8.03 8.03 0 01-11.3 0l-36.8-36.8a8.03 8.03 0 010-11.3l214.9-215c3.1-3.1 8.2-3.1 11.3 0L531 565l254.5-254.6c3.1-3.1 8.2-3.1 11.3 0l36.8 36.8c3.2 3 3.2 8.1.1 11.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/fund.svg b/src/blrec/data/webapp/assets/fill/fund.svg new file mode 100644 index 0000000..8781e3f --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/fund.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M926 164H94c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V196c0-17.7-14.3-32-32-32zm-92.3 194.4l-297 297.2a8.03 8.03 0 01-11.3 0L410.9 541.1 238.4 713.7a8.03 8.03 0 01-11.3 0l-36.8-36.8a8.03 8.03 0 010-11.3l214.9-215c3.1-3.1 8.2-3.1 11.3 0L531 565l254.5-254.6c3.1-3.1 8.2-3.1 11.3 0l36.8 36.8c3.2 3 3.2 8.1.1 11.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/funnel-plot.js b/src/blrec/data/webapp/assets/fill/funnel-plot.js new file mode 100644 index 0000000..9aff946 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/funnel-plot.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'funnel-plot', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M336.7 586h350.6l84.9-148H251.8zm543.4-432H143.9c-24.5 0-39.8 26.7-27.5 48L215 374h594l98.7-172c12.2-21.3-3.1-48-27.6-48zM349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V650H349v188z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/funnel-plot.svg b/src/blrec/data/webapp/assets/fill/funnel-plot.svg new file mode 100644 index 0000000..d6cb457 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/funnel-plot.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M336.7 586h350.6l84.9-148H251.8zm543.4-432H143.9c-24.5 0-39.8 26.7-27.5 48L215 374h594l98.7-172c12.2-21.3-3.1-48-27.6-48zM349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V650H349v188z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/gift.js b/src/blrec/data/webapp/assets/fill/gift.js new file mode 100644 index 0000000..9056e01 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/gift.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'gift', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M160 894c0 17.7 14.3 32 32 32h286V550H160v344zm386 32h286c17.7 0 32-14.3 32-32V550H546v376zm334-616H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v140h366V310h68v172h366V342c0-17.7-14.3-32-32-32zm-402-4h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70 70 31.4 70 70v70zm138 0h-70v-70c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/gift.svg b/src/blrec/data/webapp/assets/fill/gift.svg new file mode 100644 index 0000000..7b050b4 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/gift.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M160 894c0 17.7 14.3 32 32 32h286V550H160v344zm386 32h286c17.7 0 32-14.3 32-32V550H546v376zm334-616H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v140h366V310h68v172h366V342c0-17.7-14.3-32-32-32zm-402-4h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70 70 31.4 70 70v70zm138 0h-70v-70c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/github.js b/src/blrec/data/webapp/assets/fill/github.js new file mode 100644 index 0000000..623ea80 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/github.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'github', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0138.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/github.svg b/src/blrec/data/webapp/assets/fill/github.svg new file mode 100644 index 0000000..17071fe --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/github.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0138.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/gitlab.js b/src/blrec/data/webapp/assets/fill/gitlab.js new file mode 100644 index 0000000..573c1d3 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/gitlab.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'gitlab', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M910.5 553.2l-109-370.8c-6.8-20.4-23.1-34.1-44.9-34.1s-39.5 12.3-46.3 32.7l-72.2 215.4H386.2L314 181.1c-6.8-20.4-24.5-32.7-46.3-32.7s-39.5 13.6-44.9 34.1L113.9 553.2c-4.1 13.6 1.4 28.6 12.3 36.8l385.4 289 386.7-289c10.8-8.1 16.3-23.1 12.2-36.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/gitlab.svg b/src/blrec/data/webapp/assets/fill/gitlab.svg new file mode 100644 index 0000000..9804f89 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/gitlab.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M910.5 553.2l-109-370.8c-6.8-20.4-23.1-34.1-44.9-34.1s-39.5 12.3-46.3 32.7l-72.2 215.4H386.2L314 181.1c-6.8-20.4-24.5-32.7-46.3-32.7s-39.5 13.6-44.9 34.1L113.9 553.2c-4.1 13.6 1.4 28.6 12.3 36.8l385.4 289 386.7-289c10.8-8.1 16.3-23.1 12.2-36.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/gold.js b/src/blrec/data/webapp/assets/fill/gold.js new file mode 100644 index 0000000..959d6ac --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/gold.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'gold', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M905.9 806.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zm-470.2-248c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/gold.svg b/src/blrec/data/webapp/assets/fill/gold.svg new file mode 100644 index 0000000..c89f55b --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/gold.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M905.9 806.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zm-470.2-248c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/golden.js b/src/blrec/data/webapp/assets/fill/golden.js new file mode 100644 index 0000000..85290e8 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/golden.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'golden', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M905.9 806.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zm-470.2-248c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/golden.svg b/src/blrec/data/webapp/assets/fill/golden.svg new file mode 100644 index 0000000..c89f55b --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/golden.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M905.9 806.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zm-470.2-248c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/google-circle.js b/src/blrec/data/webapp/assets/fill/google-circle.js new file mode 100644 index 0000000..e8ba5fb --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/google-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'google-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm167 633.6C638.4 735 583 757 516.9 757c-95.7 0-178.5-54.9-218.8-134.9C281.5 589 272 551.6 272 512s9.5-77 26.1-110.1c40.3-80.1 123.1-135 218.8-135 66 0 121.4 24.3 163.9 63.8L610.6 401c-25.4-24.3-57.7-36.6-93.6-36.6-63.8 0-117.8 43.1-137.1 101-4.9 14.7-7.7 30.4-7.7 46.6s2.8 31.9 7.7 46.6c19.3 57.9 73.3 101 137 101 33 0 61-8.7 82.9-23.4 26-17.4 43.2-43.3 48.9-74H516.9v-94.8h230.7c2.9 16.1 4.4 32.8 4.4 50.1 0 74.7-26.7 137.4-73 180.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/google-circle.svg b/src/blrec/data/webapp/assets/fill/google-circle.svg new file mode 100644 index 0000000..0c2feee --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/google-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm167 633.6C638.4 735 583 757 516.9 757c-95.7 0-178.5-54.9-218.8-134.9C281.5 589 272 551.6 272 512s9.5-77 26.1-110.1c40.3-80.1 123.1-135 218.8-135 66 0 121.4 24.3 163.9 63.8L610.6 401c-25.4-24.3-57.7-36.6-93.6-36.6-63.8 0-117.8 43.1-137.1 101-4.9 14.7-7.7 30.4-7.7 46.6s2.8 31.9 7.7 46.6c19.3 57.9 73.3 101 137 101 33 0 61-8.7 82.9-23.4 26-17.4 43.2-43.3 48.9-74H516.9v-94.8h230.7c2.9 16.1 4.4 32.8 4.4 50.1 0 74.7-26.7 137.4-73 180.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/google-plus-circle.js b/src/blrec/data/webapp/assets/fill/google-plus-circle.js new file mode 100644 index 0000000..35cf7b7 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/google-plus-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'google-plus-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm36.5 558.8c-43.9 61.8-132.1 79.8-200.9 53.3-69-26.3-118-99.2-112.1-173.5 1.5-90.9 85.2-170.6 176.1-167.5 43.6-2 84.6 16.9 118 43.6-14.3 16.2-29 31.8-44.8 46.3-40.1-27.7-97.2-35.6-137.3-3.6-57.4 39.7-60 133.4-4.8 176.1 53.7 48.7 155.2 24.5 170.1-50.1-33.6-.5-67.4 0-101-1.1-.1-20.1-.2-40.1-.1-60.2 56.2-.2 112.5-.3 168.8.2 3.3 47.3-3 97.5-32 136.5zM791 536.5c-16.8.2-33.6.3-50.4.4-.2 16.8-.3 33.6-.3 50.4H690c-.2-16.8-.2-33.5-.3-50.3-16.8-.2-33.6-.3-50.4-.5v-50.1c16.8-.2 33.6-.3 50.4-.3.1-16.8.3-33.6.4-50.4h50.2l.3 50.4c16.8.2 33.6.2 50.4.3v50.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/google-plus-circle.svg b/src/blrec/data/webapp/assets/fill/google-plus-circle.svg new file mode 100644 index 0000000..4ed5c04 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/google-plus-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm36.5 558.8c-43.9 61.8-132.1 79.8-200.9 53.3-69-26.3-118-99.2-112.1-173.5 1.5-90.9 85.2-170.6 176.1-167.5 43.6-2 84.6 16.9 118 43.6-14.3 16.2-29 31.8-44.8 46.3-40.1-27.7-97.2-35.6-137.3-3.6-57.4 39.7-60 133.4-4.8 176.1 53.7 48.7 155.2 24.5 170.1-50.1-33.6-.5-67.4 0-101-1.1-.1-20.1-.2-40.1-.1-60.2 56.2-.2 112.5-.3 168.8.2 3.3 47.3-3 97.5-32 136.5zM791 536.5c-16.8.2-33.6.3-50.4.4-.2 16.8-.3 33.6-.3 50.4H690c-.2-16.8-.2-33.5-.3-50.3-16.8-.2-33.6-.3-50.4-.5v-50.1c16.8-.2 33.6-.3 50.4-.3.1-16.8.3-33.6.4-50.4h50.2l.3 50.4c16.8.2 33.6.2 50.4.3v50.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/google-plus-square.js b/src/blrec/data/webapp/assets/fill/google-plus-square.js new file mode 100644 index 0000000..a084290 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/google-plus-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'google-plus-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM548.5 622.8c-43.9 61.8-132.1 79.8-200.9 53.3-69-26.3-118-99.2-112.1-173.5 1.5-90.9 85.2-170.6 176.1-167.5 43.6-2 84.6 16.9 118 43.6-14.3 16.2-29 31.8-44.8 46.3-40.1-27.7-97.2-35.6-137.3-3.6-57.4 39.7-60 133.4-4.8 176.1 53.7 48.7 155.2 24.5 170.1-50.1-33.6-.5-67.4 0-101-1.1-.1-20.1-.2-40.1-.1-60.2 56.2-.2 112.5-.3 168.8.2 3.3 47.3-3 97.5-32 136.5zM791 536.5c-16.8.2-33.6.3-50.4.4-.2 16.8-.3 33.6-.3 50.4H690c-.2-16.8-.2-33.5-.3-50.3-16.8-.2-33.6-.3-50.4-.5v-50.1c16.8-.2 33.6-.3 50.4-.3.1-16.8.3-33.6.4-50.4h50.2l.3 50.4c16.8.2 33.6.2 50.4.3v50.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/google-plus-square.svg b/src/blrec/data/webapp/assets/fill/google-plus-square.svg new file mode 100644 index 0000000..fb2575e --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/google-plus-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM548.5 622.8c-43.9 61.8-132.1 79.8-200.9 53.3-69-26.3-118-99.2-112.1-173.5 1.5-90.9 85.2-170.6 176.1-167.5 43.6-2 84.6 16.9 118 43.6-14.3 16.2-29 31.8-44.8 46.3-40.1-27.7-97.2-35.6-137.3-3.6-57.4 39.7-60 133.4-4.8 176.1 53.7 48.7 155.2 24.5 170.1-50.1-33.6-.5-67.4 0-101-1.1-.1-20.1-.2-40.1-.1-60.2 56.2-.2 112.5-.3 168.8.2 3.3 47.3-3 97.5-32 136.5zM791 536.5c-16.8.2-33.6.3-50.4.4-.2 16.8-.3 33.6-.3 50.4H690c-.2-16.8-.2-33.5-.3-50.3-16.8-.2-33.6-.3-50.4-.5v-50.1c16.8-.2 33.6-.3 50.4-.3.1-16.8.3-33.6.4-50.4h50.2l.3 50.4c16.8.2 33.6.2 50.4.3v50.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/google-square.js b/src/blrec/data/webapp/assets/fill/google-square.js new file mode 100644 index 0000000..bb37afc --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/google-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'google-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM679 697.6C638.4 735 583 757 516.9 757c-95.7 0-178.5-54.9-218.8-134.9A245.02 245.02 0 01272 512c0-39.6 9.5-77 26.1-110.1 40.3-80.1 123.1-135 218.8-135 66 0 121.4 24.3 163.9 63.8L610.6 401c-25.4-24.3-57.7-36.6-93.6-36.6-63.8 0-117.8 43.1-137.1 101-4.9 14.7-7.7 30.4-7.7 46.6s2.8 31.9 7.7 46.6c19.3 57.9 73.3 101 137 101 33 0 61-8.7 82.9-23.4 26-17.4 43.2-43.3 48.9-74H516.9v-94.8h230.7c2.9 16.1 4.4 32.8 4.4 50.1 0 74.7-26.7 137.4-73 180.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/google-square.svg b/src/blrec/data/webapp/assets/fill/google-square.svg new file mode 100644 index 0000000..384c520 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/google-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM679 697.6C638.4 735 583 757 516.9 757c-95.7 0-178.5-54.9-218.8-134.9A245.02 245.02 0 01272 512c0-39.6 9.5-77 26.1-110.1 40.3-80.1 123.1-135 218.8-135 66 0 121.4 24.3 163.9 63.8L610.6 401c-25.4-24.3-57.7-36.6-93.6-36.6-63.8 0-117.8 43.1-137.1 101-4.9 14.7-7.7 30.4-7.7 46.6s2.8 31.9 7.7 46.6c19.3 57.9 73.3 101 137 101 33 0 61-8.7 82.9-23.4 26-17.4 43.2-43.3 48.9-74H516.9v-94.8h230.7c2.9 16.1 4.4 32.8 4.4 50.1 0 74.7-26.7 137.4-73 180.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/hdd.js b/src/blrec/data/webapp/assets/fill/hdd.js new file mode 100644 index 0000000..f346239 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/hdd.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'hdd', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v224h704V96c0-17.7-14.3-32-32-32zM456 216c0 4.4-3.6 8-8 8H264c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zM160 928c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V704H160v224zm576-136c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM160 640h704V384H160v256zm96-152c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H264c-4.4 0-8-3.6-8-8v-48z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/hdd.svg b/src/blrec/data/webapp/assets/fill/hdd.svg new file mode 100644 index 0000000..b5b3a0d --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/hdd.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v224h704V96c0-17.7-14.3-32-32-32zM456 216c0 4.4-3.6 8-8 8H264c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zM160 928c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V704H160v224zm576-136c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM160 640h704V384H160v256zm96-152c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H264c-4.4 0-8-3.6-8-8v-48z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/heart.js b/src/blrec/data/webapp/assets/fill/heart.js new file mode 100644 index 0000000..dd5b49a --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/heart.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'heart', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M923 283.6a260.04 260.04 0 00-56.9-82.8 264.4 264.4 0 00-84-55.5A265.34 265.34 0 00679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 00-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/heart.svg b/src/blrec/data/webapp/assets/fill/heart.svg new file mode 100644 index 0000000..cf5520b --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/heart.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M923 283.6a260.04 260.04 0 00-56.9-82.8 264.4 264.4 0 00-84-55.5A265.34 265.34 0 00679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 00-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/highlight.js b/src/blrec/data/webapp/assets/fill/highlight.js new file mode 100644 index 0000000..0ee78ff --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/highlight.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'highlight', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M957.6 507.4L603.2 158.2a7.9 7.9 0 00-11.2 0L353.3 393.4a8.03 8.03 0 00-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 00-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8V860c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6 40.4 39.8a7.9 7.9 0 0011.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0011.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/highlight.svg b/src/blrec/data/webapp/assets/fill/highlight.svg new file mode 100644 index 0000000..0610895 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/highlight.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M957.6 507.4L603.2 158.2a7.9 7.9 0 00-11.2 0L353.3 393.4a8.03 8.03 0 00-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 00-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8V860c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6 40.4 39.8a7.9 7.9 0 0011.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0011.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/home.js b/src/blrec/data/webapp/assets/fill/home.js new file mode 100644 index 0000000..4cb190e --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/home.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'home', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M946.5 505L534.6 93.4a31.93 31.93 0 00-45.2 0L77.5 505c-12 12-18.8 28.3-18.8 45.3 0 35.3 28.7 64 64 64h43.4V908c0 17.7 14.3 32 32 32H448V716h112v224h265.9c17.7 0 32-14.3 32-32V614.3h43.4c17 0 33.3-6.7 45.3-18.8 24.9-25 24.9-65.5-.1-90.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/home.svg b/src/blrec/data/webapp/assets/fill/home.svg new file mode 100644 index 0000000..52ed6d6 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/home.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M946.5 505L534.6 93.4a31.93 31.93 0 00-45.2 0L77.5 505c-12 12-18.8 28.3-18.8 45.3 0 35.3 28.7 64 64 64h43.4V908c0 17.7 14.3 32 32 32H448V716h112v224h265.9c17.7 0 32-14.3 32-32V614.3h43.4c17 0 33.3-6.7 45.3-18.8 24.9-25 24.9-65.5-.1-90.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/hourglass.js b/src/blrec/data/webapp/assets/fill/hourglass.js new file mode 100644 index 0000000..68fc1b8 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/hourglass.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'hourglass', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/hourglass.svg b/src/blrec/data/webapp/assets/fill/hourglass.svg new file mode 100644 index 0000000..41f0637 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/hourglass.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/html5.js b/src/blrec/data/webapp/assets/fill/html5.js new file mode 100644 index 0000000..f3b57c5 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/html5.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'html5', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M145.2 96l66 746.6L512 928l299.6-85.4L878.9 96H145.2zm595 177.1l-4.8 47.2-1.7 19.5H382.3l8.2 94.2h335.1l-3.3 24.3-21.2 242.2-1.7 16.2-187 51.6v.3h-1.2l-.3.1v-.1h-.1l-188.6-52L310.8 572h91.1l6.5 73.2 102.4 27.7h.4l102-27.6 11.4-118.6H510.9v-.1H306l-22.8-253.5-1.7-24.3h460.3l-1.6 24.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/html5.svg b/src/blrec/data/webapp/assets/fill/html5.svg new file mode 100644 index 0000000..93758b2 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/html5.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M145.2 96l66 746.6L512 928l299.6-85.4L878.9 96H145.2zm595 177.1l-4.8 47.2-1.7 19.5H382.3l8.2 94.2h335.1l-3.3 24.3-21.2 242.2-1.7 16.2-187 51.6v.3h-1.2l-.3.1v-.1h-.1l-188.6-52L310.8 572h91.1l6.5 73.2 102.4 27.7h.4l102-27.6 11.4-118.6H510.9v-.1H306l-22.8-253.5-1.7-24.3h460.3l-1.6 24.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/idcard.js b/src/blrec/data/webapp/assets/fill/idcard.js new file mode 100644 index 0000000..366e062 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/idcard.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'idcard', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M373 411c-28.5 0-51.7 23.3-51.7 52s23.2 52 51.7 52 51.7-23.3 51.7-52-23.2-52-51.7-52zm555-251H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zM608 420c0-4.4 1-8 2.3-8h123.4c1.3 0 2.3 3.6 2.3 8v48c0 4.4-1 8-2.3 8H610.3c-1.3 0-2.3-3.6-2.3-8v-48zm-86 253h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H224a8 8 0 01-8-8.4c2.8-53.3 32-99.7 74.6-126.1a111.8 111.8 0 01-29.1-75.5c0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.5-29.1 75.5 42.7 26.5 71.8 72.8 74.6 126.1.4 4.6-3.2 8.4-7.8 8.4zm278.9-53H615.1c-3.9 0-7.1-3.6-7.1-8v-48c0-4.4 3.2-8 7.1-8h185.7c3.9 0 7.1 3.6 7.1 8v48h.1c0 4.4-3.2 8-7.1 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/idcard.svg b/src/blrec/data/webapp/assets/fill/idcard.svg new file mode 100644 index 0000000..af047a3 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/idcard.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M373 411c-28.5 0-51.7 23.3-51.7 52s23.2 52 51.7 52 51.7-23.3 51.7-52-23.2-52-51.7-52zm555-251H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zM608 420c0-4.4 1-8 2.3-8h123.4c1.3 0 2.3 3.6 2.3 8v48c0 4.4-1 8-2.3 8H610.3c-1.3 0-2.3-3.6-2.3-8v-48zm-86 253h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H224a8 8 0 01-8-8.4c2.8-53.3 32-99.7 74.6-126.1a111.8 111.8 0 01-29.1-75.5c0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.5-29.1 75.5 42.7 26.5 71.8 72.8 74.6 126.1.4 4.6-3.2 8.4-7.8 8.4zm278.9-53H615.1c-3.9 0-7.1-3.6-7.1-8v-48c0-4.4 3.2-8 7.1-8h185.7c3.9 0 7.1 3.6 7.1 8v48h.1c0 4.4-3.2 8-7.1 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/ie-circle.js b/src/blrec/data/webapp/assets/fill/ie-circle.js new file mode 100644 index 0000000..9b6c29b --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/ie-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'ie-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M693.6 284.4c-24 0-51.1 11.7-72.6 22 46.3 18 86 57.3 112.3 99.6 7.1-18.9 14.6-47.9 14.6-67.9 0-32-22.8-53.7-54.3-53.7zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm253.9 492.9H437.1c0 100.4 144.3 136 196.8 47.4h120.8c-32.6 91.7-119.7 146-216.8 146-35.1 0-70.3-.1-101.7-15.6-87.4 44.5-180.3 56.6-180.3-42 0-45.8 23.2-107.1 44-145C335 484 381.3 422.8 435.6 374.5c-43.7 18.9-91.1 66.3-122 101.2 25.9-112.8 129.5-193.6 237.1-186.5 130-59.8 209.7-34.1 209.7 38.6 0 27.4-10.6 63.3-21.4 87.9 25.2 45.5 33.3 97.6 26.9 141.2zM540.5 399.1c-53.7 0-102 39.7-104 94.9h208c-2-55.1-50.6-94.9-104-94.9zM320.6 602.9c-73 152.4 11.5 172.2 100.3 123.3-46.6-27.5-82.6-72.2-100.3-123.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/ie-circle.svg b/src/blrec/data/webapp/assets/fill/ie-circle.svg new file mode 100644 index 0000000..4e596b1 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/ie-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M693.6 284.4c-24 0-51.1 11.7-72.6 22 46.3 18 86 57.3 112.3 99.6 7.1-18.9 14.6-47.9 14.6-67.9 0-32-22.8-53.7-54.3-53.7zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm253.9 492.9H437.1c0 100.4 144.3 136 196.8 47.4h120.8c-32.6 91.7-119.7 146-216.8 146-35.1 0-70.3-.1-101.7-15.6-87.4 44.5-180.3 56.6-180.3-42 0-45.8 23.2-107.1 44-145C335 484 381.3 422.8 435.6 374.5c-43.7 18.9-91.1 66.3-122 101.2 25.9-112.8 129.5-193.6 237.1-186.5 130-59.8 209.7-34.1 209.7 38.6 0 27.4-10.6 63.3-21.4 87.9 25.2 45.5 33.3 97.6 26.9 141.2zM540.5 399.1c-53.7 0-102 39.7-104 94.9h208c-2-55.1-50.6-94.9-104-94.9zM320.6 602.9c-73 152.4 11.5 172.2 100.3 123.3-46.6-27.5-82.6-72.2-100.3-123.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/ie-square.js b/src/blrec/data/webapp/assets/fill/ie-square.js new file mode 100644 index 0000000..7ad2fa3 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/ie-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'ie-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM765.9 556.9H437.1c0 100.4 144.3 136 196.8 47.4h120.8c-32.6 91.7-119.7 146-216.8 146-35.1 0-70.3-.1-101.7-15.6-87.4 44.5-180.3 56.6-180.3-42 0-45.8 23.2-107.1 44-145C335 484 381.3 422.8 435.6 374.5c-43.7 18.9-91.1 66.3-122 101.2 25.9-112.8 129.5-193.6 237.1-186.5 130-59.8 209.7-34.1 209.7 38.6 0 27.4-10.6 63.3-21.4 87.9 25.2 45.5 33.3 97.6 26.9 141.2zm-72.3-272.5c-24 0-51.1 11.7-72.6 22 46.3 18 86 57.3 112.3 99.6 7.1-18.9 14.6-47.9 14.6-67.9 0-32-22.8-53.7-54.3-53.7zM540.5 399.1c-53.7 0-102 39.7-104 94.9h208c-2-55.1-50.6-94.9-104-94.9zM320.6 602.9c-73 152.4 11.5 172.2 100.3 123.3-46.6-27.5-82.6-72.2-100.3-123.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/ie-square.svg b/src/blrec/data/webapp/assets/fill/ie-square.svg new file mode 100644 index 0000000..8e74107 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/ie-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM765.9 556.9H437.1c0 100.4 144.3 136 196.8 47.4h120.8c-32.6 91.7-119.7 146-216.8 146-35.1 0-70.3-.1-101.7-15.6-87.4 44.5-180.3 56.6-180.3-42 0-45.8 23.2-107.1 44-145C335 484 381.3 422.8 435.6 374.5c-43.7 18.9-91.1 66.3-122 101.2 25.9-112.8 129.5-193.6 237.1-186.5 130-59.8 209.7-34.1 209.7 38.6 0 27.4-10.6 63.3-21.4 87.9 25.2 45.5 33.3 97.6 26.9 141.2zm-72.3-272.5c-24 0-51.1 11.7-72.6 22 46.3 18 86 57.3 112.3 99.6 7.1-18.9 14.6-47.9 14.6-67.9 0-32-22.8-53.7-54.3-53.7zM540.5 399.1c-53.7 0-102 39.7-104 94.9h208c-2-55.1-50.6-94.9-104-94.9zM320.6 602.9c-73 152.4 11.5 172.2 100.3 123.3-46.6-27.5-82.6-72.2-100.3-123.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/info-circle.js b/src/blrec/data/webapp/assets/fill/info-circle.js new file mode 100644 index 0000000..a89ed0f --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/info-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'info-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/info-circle.svg b/src/blrec/data/webapp/assets/fill/info-circle.svg new file mode 100644 index 0000000..833b2b7 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/info-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/instagram.js b/src/blrec/data/webapp/assets/fill/instagram.js new file mode 100644 index 0000000..ba1105f --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/instagram.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'instagram', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 378.7c-73.4 0-133.3 59.9-133.3 133.3S438.6 645.3 512 645.3 645.3 585.4 645.3 512 585.4 378.7 512 378.7zM911.8 512c0-55.2.5-109.9-2.6-165-3.1-64-17.7-120.8-64.5-167.6-46.9-46.9-103.6-61.4-167.6-64.5-55.2-3.1-109.9-2.6-165-2.6-55.2 0-109.9-.5-165 2.6-64 3.1-120.8 17.7-167.6 64.5C132.6 226.3 118.1 283 115 347c-3.1 55.2-2.6 109.9-2.6 165s-.5 109.9 2.6 165c3.1 64 17.7 120.8 64.5 167.6 46.9 46.9 103.6 61.4 167.6 64.5 55.2 3.1 109.9 2.6 165 2.6 55.2 0 109.9.5 165-2.6 64-3.1 120.8-17.7 167.6-64.5 46.9-46.9 61.4-103.6 64.5-167.6 3.2-55.1 2.6-109.8 2.6-165zM512 717.1c-113.5 0-205.1-91.6-205.1-205.1S398.5 306.9 512 306.9 717.1 398.5 717.1 512 625.5 717.1 512 717.1zm213.5-370.7c-26.5 0-47.9-21.4-47.9-47.9s21.4-47.9 47.9-47.9 47.9 21.4 47.9 47.9a47.84 47.84 0 01-47.9 47.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/instagram.svg b/src/blrec/data/webapp/assets/fill/instagram.svg new file mode 100644 index 0000000..f308ff4 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/instagram.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 378.7c-73.4 0-133.3 59.9-133.3 133.3S438.6 645.3 512 645.3 645.3 585.4 645.3 512 585.4 378.7 512 378.7zM911.8 512c0-55.2.5-109.9-2.6-165-3.1-64-17.7-120.8-64.5-167.6-46.9-46.9-103.6-61.4-167.6-64.5-55.2-3.1-109.9-2.6-165-2.6-55.2 0-109.9-.5-165 2.6-64 3.1-120.8 17.7-167.6 64.5C132.6 226.3 118.1 283 115 347c-3.1 55.2-2.6 109.9-2.6 165s-.5 109.9 2.6 165c3.1 64 17.7 120.8 64.5 167.6 46.9 46.9 103.6 61.4 167.6 64.5 55.2 3.1 109.9 2.6 165 2.6 55.2 0 109.9.5 165-2.6 64-3.1 120.8-17.7 167.6-64.5 46.9-46.9 61.4-103.6 64.5-167.6 3.2-55.1 2.6-109.8 2.6-165zM512 717.1c-113.5 0-205.1-91.6-205.1-205.1S398.5 306.9 512 306.9 717.1 398.5 717.1 512 625.5 717.1 512 717.1zm213.5-370.7c-26.5 0-47.9-21.4-47.9-47.9s21.4-47.9 47.9-47.9 47.9 21.4 47.9 47.9a47.84 47.84 0 01-47.9 47.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/insurance.js b/src/blrec/data/webapp/assets/fill/insurance.js new file mode 100644 index 0000000..c6d32f1 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/insurance.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'insurance', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M519.9 358.8h97.9v41.6h-97.9zm347-188.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM411.3 656h-.2c0 4.4-3.6 8-8 8h-37.3c-4.4 0-8-3.6-8-8V471.4c-7.7 9.2-15.4 17.9-23.1 26a6.04 6.04 0 01-10.2-2.4l-13.2-43.5c-.6-2-.2-4.1 1.2-5.6 37-43.4 64.7-95.1 82.2-153.6 1.1-3.5 5-5.3 8.4-3.7l38.6 18.3c2.7 1.3 4.1 4.4 3.2 7.2a429.2 429.2 0 01-33.6 79V656zm296.5-49.2l-26.3 35.3a5.92 5.92 0 01-8.9.7c-30.6-29.3-56.8-65.2-78.1-106.9V656c0 4.4-3.6 8-8 8h-36.2c-4.4 0-8-3.6-8-8V536c-22 44.7-49 80.8-80.6 107.6a5.9 5.9 0 01-8.9-1.4L430 605.7a6 6 0 011.6-8.1c28.6-20.3 51.9-45.2 71-76h-55.1c-4.4 0-8-3.6-8-8V478c0-4.4 3.6-8 8-8h94.9v-18.6h-65.9c-4.4 0-8-3.6-8-8V316c0-4.4 3.6-8 8-8h184.7c4.4 0 8 3.6 8 8v127.2c0 4.4-3.6 8-8 8h-66.7v18.6h98.8c4.4 0 8 3.6 8 8v35.6c0 4.4-3.6 8-8 8h-59c18.1 29.1 41.8 54.3 72.3 76.9 2.6 2.1 3.2 5.9 1.2 8.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/insurance.svg b/src/blrec/data/webapp/assets/fill/insurance.svg new file mode 100644 index 0000000..f26eac8 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/insurance.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M519.9 358.8h97.9v41.6h-97.9zm347-188.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM411.3 656h-.2c0 4.4-3.6 8-8 8h-37.3c-4.4 0-8-3.6-8-8V471.4c-7.7 9.2-15.4 17.9-23.1 26a6.04 6.04 0 01-10.2-2.4l-13.2-43.5c-.6-2-.2-4.1 1.2-5.6 37-43.4 64.7-95.1 82.2-153.6 1.1-3.5 5-5.3 8.4-3.7l38.6 18.3c2.7 1.3 4.1 4.4 3.2 7.2a429.2 429.2 0 01-33.6 79V656zm296.5-49.2l-26.3 35.3a5.92 5.92 0 01-8.9.7c-30.6-29.3-56.8-65.2-78.1-106.9V656c0 4.4-3.6 8-8 8h-36.2c-4.4 0-8-3.6-8-8V536c-22 44.7-49 80.8-80.6 107.6a5.9 5.9 0 01-8.9-1.4L430 605.7a6 6 0 011.6-8.1c28.6-20.3 51.9-45.2 71-76h-55.1c-4.4 0-8-3.6-8-8V478c0-4.4 3.6-8 8-8h94.9v-18.6h-65.9c-4.4 0-8-3.6-8-8V316c0-4.4 3.6-8 8-8h184.7c4.4 0 8 3.6 8 8v127.2c0 4.4-3.6 8-8 8h-66.7v18.6h98.8c4.4 0 8 3.6 8 8v35.6c0 4.4-3.6 8-8 8h-59c18.1 29.1 41.8 54.3 72.3 76.9 2.6 2.1 3.2 5.9 1.2 8.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/interaction.js b/src/blrec/data/webapp/assets/fill/interaction.js new file mode 100644 index 0000000..d622143 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/interaction.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'interaction', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM726 585.7c0 55.3-44.7 100.1-99.7 100.1H420.6v53.4c0 5.7-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.7l109.1-85.7c4.4-3.5 10.9-.3 10.9 5.3v53.4h205.7c19.6 0 35.5-16 35.5-35.6v-78.9c0-3.7 3-6.8 6.8-6.8h50.7c3.7 0 6.8 3 6.8 6.8v79.1zm-2.6-209.9l-109.1 85.7c-4.4 3.5-10.9.3-10.9-5.3v-53.4H397.7c-19.6 0-35.5 16-35.5 35.6v78.9c0 3.7-3 6.8-6.8 6.8h-50.7c-3.7 0-6.8-3-6.8-6.8v-78.9c0-55.3 44.7-100.1 99.7-100.1h205.7v-53.4c0-5.7 6.5-8.8 10.9-5.3l109.1 85.7c3.6 2.5 3.6 7.8.1 10.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/interaction.svg b/src/blrec/data/webapp/assets/fill/interaction.svg new file mode 100644 index 0000000..e9cb40a --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/interaction.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM726 585.7c0 55.3-44.7 100.1-99.7 100.1H420.6v53.4c0 5.7-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.7l109.1-85.7c4.4-3.5 10.9-.3 10.9 5.3v53.4h205.7c19.6 0 35.5-16 35.5-35.6v-78.9c0-3.7 3-6.8 6.8-6.8h50.7c3.7 0 6.8 3 6.8 6.8v79.1zm-2.6-209.9l-109.1 85.7c-4.4 3.5-10.9.3-10.9-5.3v-53.4H397.7c-19.6 0-35.5 16-35.5 35.6v78.9c0 3.7-3 6.8-6.8 6.8h-50.7c-3.7 0-6.8-3-6.8-6.8v-78.9c0-55.3 44.7-100.1 99.7-100.1h205.7v-53.4c0-5.7 6.5-8.8 10.9-5.3l109.1 85.7c3.6 2.5 3.6 7.8.1 10.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/layout.js b/src/blrec/data/webapp/assets/fill/layout.js new file mode 100644 index 0000000..f434288 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/layout.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'layout', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M384 912h496c17.7 0 32-14.3 32-32V340H384v572zm496-800H384v164h528V144c0-17.7-14.3-32-32-32zm-768 32v736c0 17.7 14.3 32 32 32h176V112H144c-17.7 0-32 14.3-32 32z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/layout.svg b/src/blrec/data/webapp/assets/fill/layout.svg new file mode 100644 index 0000000..3d54cd9 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/layout.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M384 912h496c17.7 0 32-14.3 32-32V340H384v572zm496-800H384v164h528V144c0-17.7-14.3-32-32-32zm-768 32v736c0 17.7 14.3 32 32 32h176V112H144c-17.7 0-32 14.3-32 32z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/left-circle.js b/src/blrec/data/webapp/assets/fill/left-circle.js new file mode 100644 index 0000000..0cdddca --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/left-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'left-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm104 316.9c0 10.2-4.9 19.9-13.2 25.9L457.4 512l145.4 105.2c8.3 6 13.2 15.6 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 010-12.9l246-178a8 8 0 0112.7 6.5v46.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/left-circle.svg b/src/blrec/data/webapp/assets/fill/left-circle.svg new file mode 100644 index 0000000..e63c7f3 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/left-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm104 316.9c0 10.2-4.9 19.9-13.2 25.9L457.4 512l145.4 105.2c8.3 6 13.2 15.6 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 010-12.9l246-178a8 8 0 0112.7 6.5v46.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/left-square.js b/src/blrec/data/webapp/assets/fill/left-square.js new file mode 100644 index 0000000..d230844 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/left-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'left-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM624 380.9c0 10.2-4.9 19.9-13.2 25.9L465.4 512l145.4 105.2c8.3 6 13.2 15.6 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 010-12.9l246-178c5.3-3.8 12.7 0 12.7 6.5v46.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/left-square.svg b/src/blrec/data/webapp/assets/fill/left-square.svg new file mode 100644 index 0000000..6644e82 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/left-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM624 380.9c0 10.2-4.9 19.9-13.2 25.9L465.4 512l145.4 105.2c8.3 6 13.2 15.6 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 010-12.9l246-178c5.3-3.8 12.7 0 12.7 6.5v46.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/like.js b/src/blrec/data/webapp/assets/fill/like.js new file mode 100644 index 0000000..9898433 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/like.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'like', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.4-65.5-111.1a67.67 67.67 0 00-34.3-9.3H572.4l6-122.9c1.4-29.7-9.1-57.9-29.5-79.4A106.62 106.62 0 00471 99.9c-52 0-98 35-111.8 85.1l-85.9 311h-.3v428h472.3c9.2 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7-.2-12.6-2-25.1-5.6-37.1zM112 528v364c0 17.7 14.3 32 32 32h65V496h-65c-17.7 0-32 14.3-32 32z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/like.svg b/src/blrec/data/webapp/assets/fill/like.svg new file mode 100644 index 0000000..1fa9680 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/like.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.4-65.5-111.1a67.67 67.67 0 00-34.3-9.3H572.4l6-122.9c1.4-29.7-9.1-57.9-29.5-79.4A106.62 106.62 0 00471 99.9c-52 0-98 35-111.8 85.1l-85.9 311h-.3v428h472.3c9.2 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7-.2-12.6-2-25.1-5.6-37.1zM112 528v364c0 17.7 14.3 32 32 32h65V496h-65c-17.7 0-32 14.3-32 32z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/linkedin.js b/src/blrec/data/webapp/assets/fill/linkedin.js new file mode 100644 index 0000000..53e20ee --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/linkedin.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'linkedin', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM349.3 793.7H230.6V411.9h118.7v381.8zm-59.3-434a68.8 68.8 0 1168.8-68.8c-.1 38-30.9 68.8-68.8 68.8zm503.7 434H675.1V608c0-44.3-.8-101.2-61.7-101.2-61.7 0-71.2 48.2-71.2 98v188.9H423.7V411.9h113.8v52.2h1.6c15.8-30 54.5-61.7 112.3-61.7 120.2 0 142.3 79.1 142.3 181.9v209.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/linkedin.svg b/src/blrec/data/webapp/assets/fill/linkedin.svg new file mode 100644 index 0000000..e35e0a8 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/linkedin.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM349.3 793.7H230.6V411.9h118.7v381.8zm-59.3-434a68.8 68.8 0 1168.8-68.8c-.1 38-30.9 68.8-68.8 68.8zm503.7 434H675.1V608c0-44.3-.8-101.2-61.7-101.2-61.7 0-71.2 48.2-71.2 98v188.9H423.7V411.9h113.8v52.2h1.6c15.8-30 54.5-61.7 112.3-61.7 120.2 0 142.3 79.1 142.3 181.9v209.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/lock.js b/src/blrec/data/webapp/assets/fill/lock.js new file mode 100644 index 0000000..5da8055 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/lock.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'lock', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM540 701v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 1156 0zm152-237H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/lock.svg b/src/blrec/data/webapp/assets/fill/lock.svg new file mode 100644 index 0000000..c631f64 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/lock.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM540 701v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 1156 0zm152-237H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/mac-command.js b/src/blrec/data/webapp/assets/fill/mac-command.js new file mode 100644 index 0000000..c39ccb1 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/mac-command.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'mac-command', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M624 672a48.01 48.01 0 0096 0c0-26.5-21.5-48-48-48h-48v48zm96-320a48.01 48.01 0 00-96 0v48h48c26.5 0 48-21.5 48-48z" /><path d="M928 64H96c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM672 560c61.9 0 112 50.1 112 112s-50.1 112-112 112-112-50.1-112-112v-48h-96v48c0 61.9-50.1 112-112 112s-112-50.1-112-112 50.1-112 112-112h48v-96h-48c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112v48h96v-48c0-61.9 50.1-112 112-112s112 50.1 112 112-50.1 112-112 112h-48v96h48z" /><path d="M464 464h96v96h-96zM352 304a48.01 48.01 0 000 96h48v-48c0-26.5-21.5-48-48-48zm-48 368a48.01 48.01 0 0096 0v-48h-48c-26.5 0-48 21.5-48 48z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/mac-command.svg b/src/blrec/data/webapp/assets/fill/mac-command.svg new file mode 100644 index 0000000..23dbc8a --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/mac-command.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M624 672a48.01 48.01 0 0096 0c0-26.5-21.5-48-48-48h-48v48zm96-320a48.01 48.01 0 00-96 0v48h48c26.5 0 48-21.5 48-48z" /><path d="M928 64H96c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM672 560c61.9 0 112 50.1 112 112s-50.1 112-112 112-112-50.1-112-112v-48h-96v48c0 61.9-50.1 112-112 112s-112-50.1-112-112 50.1-112 112-112h48v-96h-48c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112v48h96v-48c0-61.9 50.1-112 112-112s112 50.1 112 112-50.1 112-112 112h-48v96h48z" /><path d="M464 464h96v96h-96zM352 304a48.01 48.01 0 000 96h48v-48c0-26.5-21.5-48-48-48zm-48 368a48.01 48.01 0 0096 0v-48h-48c-26.5 0-48 21.5-48 48z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/mail.js b/src/blrec/data/webapp/assets/fill/mail.js new file mode 100644 index 0000000..dcfe9a8 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/mail.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'mail', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-80.8 108.9L531.7 514.4c-7.8 6.1-18.7 6.1-26.5 0L189.6 268.9A7.2 7.2 0 01194 256h648.8a7.2 7.2 0 014.4 12.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/mail.svg b/src/blrec/data/webapp/assets/fill/mail.svg new file mode 100644 index 0000000..f4c3ae8 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/mail.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-80.8 108.9L531.7 514.4c-7.8 6.1-18.7 6.1-26.5 0L189.6 268.9A7.2 7.2 0 01194 256h648.8a7.2 7.2 0 014.4 12.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/medicine-box.js b/src/blrec/data/webapp/assets/fill/medicine-box.js new file mode 100644 index 0000000..c858482 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/medicine-box.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'medicine-box', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M839.2 278.1a32 32 0 00-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 00-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM660 628c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V636H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V464c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8v48zm4-372H360v-72h304v72z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/medicine-box.svg b/src/blrec/data/webapp/assets/fill/medicine-box.svg new file mode 100644 index 0000000..260ccfe --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/medicine-box.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M839.2 278.1a32 32 0 00-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 00-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM660 628c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V636H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V464c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8v48zm4-372H360v-72h304v72z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/medium-circle.js b/src/blrec/data/webapp/assets/fill/medium-circle.js new file mode 100644 index 0000000..49630e1 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/medium-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'medium-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm256 253.7l-40.8 39.1c-3.6 2.7-5.3 7.1-4.6 11.4v287.7c-.7 4.4 1 8.8 4.6 11.4l40 39.1v8.7H566.4v-8.3l41.3-40.1c4.1-4.1 4.1-5.3 4.1-11.4V422.5l-115 291.6h-15.5L347.5 422.5V618c-1.2 8.2 1.7 16.5 7.5 22.4l53.8 65.1v8.7H256v-8.7l53.8-65.1a26.1 26.1 0 007-22.4V392c.7-6.3-1.7-12.4-6.5-16.7l-47.8-57.6V309H411l114.6 251.5 100.9-251.3H768v8.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/medium-circle.svg b/src/blrec/data/webapp/assets/fill/medium-circle.svg new file mode 100644 index 0000000..8670f50 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/medium-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm256 253.7l-40.8 39.1c-3.6 2.7-5.3 7.1-4.6 11.4v287.7c-.7 4.4 1 8.8 4.6 11.4l40 39.1v8.7H566.4v-8.3l41.3-40.1c4.1-4.1 4.1-5.3 4.1-11.4V422.5l-115 291.6h-15.5L347.5 422.5V618c-1.2 8.2 1.7 16.5 7.5 22.4l53.8 65.1v8.7H256v-8.7l53.8-65.1a26.1 26.1 0 007-22.4V392c.7-6.3-1.7-12.4-6.5-16.7l-47.8-57.6V309H411l114.6 251.5 100.9-251.3H768v8.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/medium-square.js b/src/blrec/data/webapp/assets/fill/medium-square.js new file mode 100644 index 0000000..eb4f621 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/medium-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'medium-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM768 317.7l-40.8 39.1c-3.6 2.7-5.3 7.1-4.6 11.4v287.7c-.7 4.4 1 8.8 4.6 11.4l40 39.1v8.7H566.4v-8.3l41.3-40.1c4.1-4.1 4.1-5.3 4.1-11.4V422.5l-115 291.6h-15.5L347.5 422.5V618c-1.2 8.2 1.7 16.5 7.5 22.4l53.8 65.1v8.7H256v-8.7l53.8-65.1a26.1 26.1 0 007-22.4V392c.7-6.3-1.7-12.4-6.5-16.7l-47.8-57.6V309H411l114.6 251.5 100.9-251.3H768v8.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/medium-square.svg b/src/blrec/data/webapp/assets/fill/medium-square.svg new file mode 100644 index 0000000..1673e42 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/medium-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM768 317.7l-40.8 39.1c-3.6 2.7-5.3 7.1-4.6 11.4v287.7c-.7 4.4 1 8.8 4.6 11.4l40 39.1v8.7H566.4v-8.3l41.3-40.1c4.1-4.1 4.1-5.3 4.1-11.4V422.5l-115 291.6h-15.5L347.5 422.5V618c-1.2 8.2 1.7 16.5 7.5 22.4l53.8 65.1v8.7H256v-8.7l53.8-65.1a26.1 26.1 0 007-22.4V392c.7-6.3-1.7-12.4-6.5-16.7l-47.8-57.6V309H411l114.6 251.5 100.9-251.3H768v8.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/meh.js b/src/blrec/data/webapp/assets/fill/meh.js new file mode 100644 index 0000000..d50b2c9 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/meh.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'meh', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm384 200c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h304c4.4 0 8 3.6 8 8v48zm16-152a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/meh.svg b/src/blrec/data/webapp/assets/fill/meh.svg new file mode 100644 index 0000000..70d7b7c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/meh.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm384 200c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h304c4.4 0 8 3.6 8 8v48zm16-152a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/message.js b/src/blrec/data/webapp/assets/fill/message.js new file mode 100644 index 0000000..143e53f --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/message.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'message', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M924.3 338.4a447.57 447.57 0 00-96.1-143.3 443.09 443.09 0 00-143-96.3A443.91 443.91 0 00512 64h-2c-60.5.3-119 12.3-174.1 35.9a444.08 444.08 0 00-141.7 96.5 445 445 0 00-95 142.8A449.89 449.89 0 0065 514.1c.3 69.4 16.9 138.3 47.9 199.9v152c0 25.4 20.6 46 45.9 46h151.8a447.72 447.72 0 00199.5 48h2.1c59.8 0 117.7-11.6 172.3-34.3A443.2 443.2 0 00827 830.5c41.2-40.9 73.6-88.7 96.3-142 23.5-55.2 35.5-113.9 35.8-174.5.2-60.9-11.6-120-34.8-175.6zM312.4 560c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.4 48-47.9 48zm199.6 0c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.5 48-47.9 48zm199.6 0c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.5 48-47.9 48z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/message.svg b/src/blrec/data/webapp/assets/fill/message.svg new file mode 100644 index 0000000..5cc79ce --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/message.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M924.3 338.4a447.57 447.57 0 00-96.1-143.3 443.09 443.09 0 00-143-96.3A443.91 443.91 0 00512 64h-2c-60.5.3-119 12.3-174.1 35.9a444.08 444.08 0 00-141.7 96.5 445 445 0 00-95 142.8A449.89 449.89 0 0065 514.1c.3 69.4 16.9 138.3 47.9 199.9v152c0 25.4 20.6 46 45.9 46h151.8a447.72 447.72 0 00199.5 48h2.1c59.8 0 117.7-11.6 172.3-34.3A443.2 443.2 0 00827 830.5c41.2-40.9 73.6-88.7 96.3-142 23.5-55.2 35.5-113.9 35.8-174.5.2-60.9-11.6-120-34.8-175.6zM312.4 560c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.4 48-47.9 48zm199.6 0c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.5 48-47.9 48zm199.6 0c-26.4 0-47.9-21.5-47.9-48s21.5-48 47.9-48 47.9 21.5 47.9 48-21.5 48-47.9 48z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/minus-circle.js b/src/blrec/data/webapp/assets/fill/minus-circle.js new file mode 100644 index 0000000..7d660e1 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/minus-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'minus-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm192 472c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/minus-circle.svg b/src/blrec/data/webapp/assets/fill/minus-circle.svg new file mode 100644 index 0000000..5faa140 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/minus-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm192 472c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/minus-square.js b/src/blrec/data/webapp/assets/fill/minus-square.js new file mode 100644 index 0000000..453d5b4 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/minus-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'minus-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/minus-square.svg b/src/blrec/data/webapp/assets/fill/minus-square.svg new file mode 100644 index 0000000..45b8dd5 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/minus-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/mobile.js b/src/blrec/data/webapp/assets/fill/mobile.js new file mode 100644 index 0000000..caf3ac7 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/mobile.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'mobile', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M744 62H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V126c0-35.3-28.7-64-64-64zM512 824c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/mobile.svg b/src/blrec/data/webapp/assets/fill/mobile.svg new file mode 100644 index 0000000..8f8ff87 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/mobile.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M744 62H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V126c0-35.3-28.7-64-64-64zM512 824c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/money-collect.js b/src/blrec/data/webapp/assets/fill/money-collect.js new file mode 100644 index 0000000..78f1da5 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/money-collect.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'money-collect', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M911.5 699.7a8 8 0 00-10.3-4.8L840 717.2V179c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V762c0 3.3 2.1 6.3 5.3 7.5L501 909.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zm-243.8-377L564 514.3h57.6c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3v39h76.3c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3V703c0 4.4-3.6 8-8 8h-49.9c-4.4 0-8-3.6-8-8v-63.4h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h76v-39h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h57L356.5 322.8c-2.1-3.8-.7-8.7 3.2-10.8 1.2-.7 2.5-1 3.8-1h55.7a8 8 0 017.1 4.4L511 484.2h3.3L599 315.4c1.3-2.7 4.1-4.4 7.1-4.4h54.5c4.4 0 8 3.6 8.1 7.9 0 1.3-.4 2.6-1 3.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/money-collect.svg b/src/blrec/data/webapp/assets/fill/money-collect.svg new file mode 100644 index 0000000..5b0be81 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/money-collect.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M911.5 699.7a8 8 0 00-10.3-4.8L840 717.2V179c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V762c0 3.3 2.1 6.3 5.3 7.5L501 909.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zm-243.8-377L564 514.3h57.6c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3v39h76.3c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3V703c0 4.4-3.6 8-8 8h-49.9c-4.4 0-8-3.6-8-8v-63.4h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h76v-39h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h57L356.5 322.8c-2.1-3.8-.7-8.7 3.2-10.8 1.2-.7 2.5-1 3.8-1h55.7a8 8 0 017.1 4.4L511 484.2h3.3L599 315.4c1.3-2.7 4.1-4.4 7.1-4.4h54.5c4.4 0 8 3.6 8.1 7.9 0 1.3-.4 2.6-1 3.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/notification.js b/src/blrec/data/webapp/assets/fill/notification.js new file mode 100644 index 0000000..e651435 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/notification.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'notification', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.6c-3.7 11.6-5.6 23.9-5.6 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/notification.svg b/src/blrec/data/webapp/assets/fill/notification.svg new file mode 100644 index 0000000..cebacc5 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/notification.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.6c-3.7 11.6-5.6 23.9-5.6 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/pause-circle.js b/src/blrec/data/webapp/assets/fill/pause-circle.js new file mode 100644 index 0000000..5644517 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/pause-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'pause-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-80 600c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304zm224 0c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/pause-circle.svg b/src/blrec/data/webapp/assets/fill/pause-circle.svg new file mode 100644 index 0000000..6642193 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/pause-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-80 600c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304zm224 0c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/pay-circle.js b/src/blrec/data/webapp/assets/fill/pay-circle.js new file mode 100644 index 0000000..58e0d44 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/pay-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'pay-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm166.6 246.8L567.5 515.6h62c4.4 0 8 3.6 8 8v29.9c0 4.4-3.6 8-8 8h-82V603h82c4.4 0 8 3.6 8 8v29.9c0 4.4-3.6 8-8 8h-82V717c0 4.4-3.6 8-8 8h-54.3c-4.4 0-8-3.6-8-8v-68.1h-81.7c-4.4 0-8-3.6-8-8V611c0-4.4 3.6-8 8-8h81.7v-41.5h-81.7c-4.4 0-8-3.6-8-8v-29.9c0-4.4 3.6-8 8-8h61.4L345.4 310.8a8.07 8.07 0 017-11.9h60.7c3 0 5.8 1.7 7.1 4.4l90.6 180h3.4l90.6-180a8 8 0 017.1-4.4h59.5c4.4 0 8 3.6 8 8 .2 1.4-.2 2.7-.8 3.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/pay-circle.svg b/src/blrec/data/webapp/assets/fill/pay-circle.svg new file mode 100644 index 0000000..150ea20 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/pay-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm166.6 246.8L567.5 515.6h62c4.4 0 8 3.6 8 8v29.9c0 4.4-3.6 8-8 8h-82V603h82c4.4 0 8 3.6 8 8v29.9c0 4.4-3.6 8-8 8h-82V717c0 4.4-3.6 8-8 8h-54.3c-4.4 0-8-3.6-8-8v-68.1h-81.7c-4.4 0-8-3.6-8-8V611c0-4.4 3.6-8 8-8h81.7v-41.5h-81.7c-4.4 0-8-3.6-8-8v-29.9c0-4.4 3.6-8 8-8h61.4L345.4 310.8a8.07 8.07 0 017-11.9h60.7c3 0 5.8 1.7 7.1 4.4l90.6 180h3.4l90.6-180a8 8 0 017.1-4.4h59.5c4.4 0 8 3.6 8 8 .2 1.4-.2 2.7-.8 3.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/phone.js b/src/blrec/data/webapp/assets/fill/phone.js new file mode 100644 index 0000000..bd6fe19 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/phone.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'phone', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M885.6 230.2L779.1 123.8a80.83 80.83 0 00-57.3-23.8c-21.7 0-42.1 8.5-57.4 23.8L549.8 238.4a80.83 80.83 0 00-23.8 57.3c0 21.7 8.5 42.1 23.8 57.4l83.8 83.8A393.82 393.82 0 01553.1 553 395.34 395.34 0 01437 633.8L353.2 550a80.83 80.83 0 00-57.3-23.8c-21.7 0-42.1 8.5-57.4 23.8L123.8 664.5a80.89 80.89 0 00-23.8 57.4c0 21.7 8.5 42.1 23.8 57.4l106.3 106.3c24.4 24.5 58.1 38.4 92.7 38.4 7.3 0 14.3-.6 21.2-1.8 134.8-22.2 268.5-93.9 376.4-201.7C828.2 612.8 899.8 479.2 922.3 344c6.8-41.3-6.9-83.8-36.7-113.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/phone.svg b/src/blrec/data/webapp/assets/fill/phone.svg new file mode 100644 index 0000000..d9b57f8 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/phone.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M885.6 230.2L779.1 123.8a80.83 80.83 0 00-57.3-23.8c-21.7 0-42.1 8.5-57.4 23.8L549.8 238.4a80.83 80.83 0 00-23.8 57.3c0 21.7 8.5 42.1 23.8 57.4l83.8 83.8A393.82 393.82 0 01553.1 553 395.34 395.34 0 01437 633.8L353.2 550a80.83 80.83 0 00-57.3-23.8c-21.7 0-42.1 8.5-57.4 23.8L123.8 664.5a80.89 80.89 0 00-23.8 57.4c0 21.7 8.5 42.1 23.8 57.4l106.3 106.3c24.4 24.5 58.1 38.4 92.7 38.4 7.3 0 14.3-.6 21.2-1.8 134.8-22.2 268.5-93.9 376.4-201.7C828.2 612.8 899.8 479.2 922.3 344c6.8-41.3-6.9-83.8-36.7-113.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/picture.js b/src/blrec/data/webapp/assets/fill/picture.js new file mode 100644 index 0000000..8d96d5e --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/picture.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'picture', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zM338 304c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm513.9 437.1a8.11 8.11 0 01-5.2 1.9H177.2c-4.4 0-8-3.6-8-8 0-1.9.7-3.7 1.9-5.2l170.3-202c2.8-3.4 7.9-3.8 11.3-1 .3.3.7.6 1 1l99.4 118 158.1-187.5c2.8-3.4 7.9-3.8 11.3-1 .3.3.7.6 1 1l229.6 271.6c2.6 3.3 2.2 8.4-1.2 11.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/picture.svg b/src/blrec/data/webapp/assets/fill/picture.svg new file mode 100644 index 0000000..1d8b9a8 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/picture.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zM338 304c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm513.9 437.1a8.11 8.11 0 01-5.2 1.9H177.2c-4.4 0-8-3.6-8-8 0-1.9.7-3.7 1.9-5.2l170.3-202c2.8-3.4 7.9-3.8 11.3-1 .3.3.7.6 1 1l99.4 118 158.1-187.5c2.8-3.4 7.9-3.8 11.3-1 .3.3.7.6 1 1l229.6 271.6c2.6 3.3 2.2 8.4-1.2 11.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/pie-chart.js b/src/blrec/data/webapp/assets/fill/pie-chart.js new file mode 100644 index 0000000..c1c8c6b --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/pie-chart.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'pie-chart', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M863.1 518.5H505.5V160.9c0-4.4-3.6-8-8-8h-26a398.57 398.57 0 00-282.5 117 397.47 397.47 0 00-85.6 127C82.6 446.2 72 498.5 72 552.5S82.6 658.7 103.4 708c20.1 47.5 48.9 90.3 85.6 127 36.7 36.7 79.4 65.5 127 85.6a396.64 396.64 0 00155.6 31.5 398.57 398.57 0 00282.5-117c36.7-36.7 65.5-79.4 85.6-127a396.64 396.64 0 0031.5-155.6v-26c-.1-4.4-3.7-8-8.1-8zM951 463l-2.6-28.2c-8.5-92-49.3-178.8-115.1-244.3A398.5 398.5 0 00588.4 75.6L560.1 73c-4.7-.4-8.7 3.2-8.7 7.9v383.7c0 4.4 3.6 8 8 8l383.6-1c4.7-.1 8.4-4 8-8.6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/pie-chart.svg b/src/blrec/data/webapp/assets/fill/pie-chart.svg new file mode 100644 index 0000000..a2f6959 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/pie-chart.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M863.1 518.5H505.5V160.9c0-4.4-3.6-8-8-8h-26a398.57 398.57 0 00-282.5 117 397.47 397.47 0 00-85.6 127C82.6 446.2 72 498.5 72 552.5S82.6 658.7 103.4 708c20.1 47.5 48.9 90.3 85.6 127 36.7 36.7 79.4 65.5 127 85.6a396.64 396.64 0 00155.6 31.5 398.57 398.57 0 00282.5-117c36.7-36.7 65.5-79.4 85.6-127a396.64 396.64 0 0031.5-155.6v-26c-.1-4.4-3.7-8-8.1-8zM951 463l-2.6-28.2c-8.5-92-49.3-178.8-115.1-244.3A398.5 398.5 0 00588.4 75.6L560.1 73c-4.7-.4-8.7 3.2-8.7 7.9v383.7c0 4.4 3.6 8 8 8l383.6-1c4.7-.1 8.4-4 8-8.6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/play-circle.js b/src/blrec/data/webapp/assets/fill/play-circle.js new file mode 100644 index 0000000..c81cb3e --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/play-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'play-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm144.1 454.9L437.7 677.8a8.02 8.02 0 01-12.7-6.5V353.7a8 8 0 0112.7-6.5L656.1 506a7.9 7.9 0 010 12.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/play-circle.svg b/src/blrec/data/webapp/assets/fill/play-circle.svg new file mode 100644 index 0000000..06f4223 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/play-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm144.1 454.9L437.7 677.8a8.02 8.02 0 01-12.7-6.5V353.7a8 8 0 0112.7-6.5L656.1 506a7.9 7.9 0 010 12.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/play-square.js b/src/blrec/data/webapp/assets/fill/play-square.js new file mode 100644 index 0000000..9568d8b --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/play-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'play-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM641.7 520.8L442.3 677.6c-7.4 5.8-18.3.6-18.3-8.8V355.3c0-9.4 10.9-14.7 18.3-8.8l199.4 156.7a11.2 11.2 0 010 17.6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/play-square.svg b/src/blrec/data/webapp/assets/fill/play-square.svg new file mode 100644 index 0000000..456829e --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/play-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM641.7 520.8L442.3 677.6c-7.4 5.8-18.3.6-18.3-8.8V355.3c0-9.4 10.9-14.7 18.3-8.8l199.4 156.7a11.2 11.2 0 010 17.6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/plus-circle.js b/src/blrec/data/webapp/assets/fill/plus-circle.js new file mode 100644 index 0000000..c08a2a0 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/plus-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'plus-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm192 472c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/plus-circle.svg b/src/blrec/data/webapp/assets/fill/plus-circle.svg new file mode 100644 index 0000000..5ec58a1 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/plus-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm192 472c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/plus-square.js b/src/blrec/data/webapp/assets/fill/plus-square.js new file mode 100644 index 0000000..33de2e0 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/plus-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'plus-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/plus-square.svg b/src/blrec/data/webapp/assets/fill/plus-square.svg new file mode 100644 index 0000000..7be471a --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/plus-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM704 536c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/pound-circle.js b/src/blrec/data/webapp/assets/fill/pound-circle.js new file mode 100644 index 0000000..8370442 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/pound-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'pound-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm146 658c0 4.4-3.6 8-8 8H376.2c-4.4 0-8-3.6-8-8v-38.5c0-3.7 2.5-6.9 6.1-7.8 44-10.9 72.8-49 72.8-94.2 0-14.7-2.5-29.4-5.9-44.2H374c-4.4 0-8-3.6-8-8v-30c0-4.4 3.6-8 8-8h53.7c-7.8-25.1-14.6-50.7-14.6-77.1 0-75.8 58.6-120.3 151.5-120.3 26.5 0 51.4 5.5 70.3 12.7 3.1 1.2 5.2 4.2 5.2 7.5v39.5a8 8 0 01-10.6 7.6c-17.9-6.4-39-10.5-60.4-10.5-53.3 0-87.3 26.6-87.3 70.2 0 24.7 6.2 47.9 13.4 70.5h112c4.4 0 8 3.6 8 8v30c0 4.4-3.6 8-8 8h-98.6c3.1 13.2 5.3 26.9 5.3 41 0 40.7-16.5 73.9-43.9 91.1v4.7h180c4.4 0 8 3.6 8 8V722z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/pound-circle.svg b/src/blrec/data/webapp/assets/fill/pound-circle.svg new file mode 100644 index 0000000..bd45d7e --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/pound-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm146 658c0 4.4-3.6 8-8 8H376.2c-4.4 0-8-3.6-8-8v-38.5c0-3.7 2.5-6.9 6.1-7.8 44-10.9 72.8-49 72.8-94.2 0-14.7-2.5-29.4-5.9-44.2H374c-4.4 0-8-3.6-8-8v-30c0-4.4 3.6-8 8-8h53.7c-7.8-25.1-14.6-50.7-14.6-77.1 0-75.8 58.6-120.3 151.5-120.3 26.5 0 51.4 5.5 70.3 12.7 3.1 1.2 5.2 4.2 5.2 7.5v39.5a8 8 0 01-10.6 7.6c-17.9-6.4-39-10.5-60.4-10.5-53.3 0-87.3 26.6-87.3 70.2 0 24.7 6.2 47.9 13.4 70.5h112c4.4 0 8 3.6 8 8v30c0 4.4-3.6 8-8 8h-98.6c3.1 13.2 5.3 26.9 5.3 41 0 40.7-16.5 73.9-43.9 91.1v4.7h180c4.4 0 8 3.6 8 8V722z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/printer.js b/src/blrec/data/webapp/assets/fill/printer.js new file mode 100644 index 0000000..c46b2d3 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/printer.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'printer', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M732 120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v148h440V120zm120 212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM664 844H360V568h304v276zm164-360c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v40z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/printer.svg b/src/blrec/data/webapp/assets/fill/printer.svg new file mode 100644 index 0000000..67111de --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/printer.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M732 120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v148h440V120zm120 212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM664 844H360V568h304v276zm164-360c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v40z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/profile.js b/src/blrec/data/webapp/assets/fill/profile.js new file mode 100644 index 0000000..40bfe17 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/profile.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'profile', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM380 696c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm0-144c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm0-144c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm304 272c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-144c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-144c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/profile.svg b/src/blrec/data/webapp/assets/fill/profile.svg new file mode 100644 index 0000000..a451cba --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/profile.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM380 696c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm0-144c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm0-144c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm304 272c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-144c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-144c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/project.js b/src/blrec/data/webapp/assets/fill/project.js new file mode 100644 index 0000000..619bc98 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/project.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'project', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM368 744c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v464zm192-280c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v184zm192 72c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v256z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/project.svg b/src/blrec/data/webapp/assets/fill/project.svg new file mode 100644 index 0000000..e27c9b3 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/project.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM368 744c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v464zm192-280c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v184zm192 72c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v256z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/property-safety.js b/src/blrec/data/webapp/assets/fill/property-safety.js new file mode 100644 index 0000000..9a840c8 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/property-safety.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'property-safety', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM648.3 332.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V658c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3 73.2-144.3a10 10 0 018.9-5.5h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/property-safety.svg b/src/blrec/data/webapp/assets/fill/property-safety.svg new file mode 100644 index 0000000..9ead30a --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/property-safety.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM648.3 332.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V658c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7h-63.1c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3 73.2-144.3a10 10 0 018.9-5.5h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/pushpin.js b/src/blrec/data/webapp/assets/fill/pushpin.js new file mode 100644 index 0000000..611c14f --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/pushpin.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'pushpin', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3-15.4 12.3-16.6 35.4-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 00-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/pushpin.svg b/src/blrec/data/webapp/assets/fill/pushpin.svg new file mode 100644 index 0000000..7a9c97d --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/pushpin.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3-15.4 12.3-16.6 35.4-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 00-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/qq-circle.js b/src/blrec/data/webapp/assets/fill/qq-circle.js new file mode 100644 index 0000000..95ce68f --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/qq-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'qq-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm210.5 612.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.2 72.2-51.1 101.8 16.9 5.2 54.9 19.2 45.9 34.4-7.3 12.3-125.6 7.9-159.8 4-34.2 3.8-152.5 8.3-159.8-4-9.1-15.2 28.9-29.2 45.8-34.4-35-29.5-51.1-70.4-51.1-101.8 0 0-33.4 54.1-44.9 52.7-5.4-.7-12.4-29.6 9.4-99.7 10.3-33 22-60.5 40.2-105.8-3.1-116.9 45.3-215 160.4-215 113.9 0 163.3 96.1 160.4 215 18.1 45.2 29.9 72.8 40.2 105.8 21.7 70.1 14.6 99.1 9.3 99.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/qq-circle.svg b/src/blrec/data/webapp/assets/fill/qq-circle.svg new file mode 100644 index 0000000..62832c6 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/qq-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm210.5 612.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.2 72.2-51.1 101.8 16.9 5.2 54.9 19.2 45.9 34.4-7.3 12.3-125.6 7.9-159.8 4-34.2 3.8-152.5 8.3-159.8-4-9.1-15.2 28.9-29.2 45.8-34.4-35-29.5-51.1-70.4-51.1-101.8 0 0-33.4 54.1-44.9 52.7-5.4-.7-12.4-29.6 9.4-99.7 10.3-33 22-60.5 40.2-105.8-3.1-116.9 45.3-215 160.4-215 113.9 0 163.3 96.1 160.4 215 18.1 45.2 29.9 72.8 40.2 105.8 21.7 70.1 14.6 99.1 9.3 99.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/qq-square.js b/src/blrec/data/webapp/assets/fill/qq-square.js new file mode 100644 index 0000000..38cab88 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/qq-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'qq-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM722.5 676.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.2 72.2-51.1 101.8 16.9 5.2 54.9 19.2 45.9 34.4-7.3 12.3-125.6 7.9-159.8 4-34.2 3.8-152.5 8.3-159.8-4-9.1-15.2 28.9-29.2 45.8-34.4-35-29.5-51.1-70.4-51.1-101.8 0 0-33.4 54.1-44.9 52.7-5.4-.7-12.4-29.6 9.4-99.7 10.3-33 22-60.5 40.2-105.8-3.1-116.9 45.3-215 160.4-215 113.9 0 163.3 96.1 160.4 215 18.1 45.2 29.9 72.8 40.2 105.8 21.7 70.1 14.6 99.1 9.3 99.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/qq-square.svg b/src/blrec/data/webapp/assets/fill/qq-square.svg new file mode 100644 index 0000000..cd4f4ac --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/qq-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM722.5 676.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.2 72.2-51.1 101.8 16.9 5.2 54.9 19.2 45.9 34.4-7.3 12.3-125.6 7.9-159.8 4-34.2 3.8-152.5 8.3-159.8-4-9.1-15.2 28.9-29.2 45.8-34.4-35-29.5-51.1-70.4-51.1-101.8 0 0-33.4 54.1-44.9 52.7-5.4-.7-12.4-29.6 9.4-99.7 10.3-33 22-60.5 40.2-105.8-3.1-116.9 45.3-215 160.4-215 113.9 0 163.3 96.1 160.4 215 18.1 45.2 29.9 72.8 40.2 105.8 21.7 70.1 14.6 99.1 9.3 99.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/question-circle.js b/src/blrec/data/webapp/assets/fill/question-circle.js new file mode 100644 index 0000000..f481c27 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/question-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'question-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 708c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 00-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/question-circle.svg b/src/blrec/data/webapp/assets/fill/question-circle.svg new file mode 100644 index 0000000..c111e07 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/question-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 708c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 00-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/read.js b/src/blrec/data/webapp/assets/fill/read.js new file mode 100644 index 0000000..2a2281c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/read.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'read', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 161H699.2c-49.1 0-97.1 14.1-138.4 40.7L512 233l-48.8-31.3A255.2 255.2 0 00324.8 161H96c-17.7 0-32 14.3-32 32v568c0 17.7 14.3 32 32 32h228.8c49.1 0 97.1 14.1 138.4 40.7l44.4 28.6c1.3.8 2.8 1.3 4.3 1.3s3-.4 4.3-1.3l44.4-28.6C602 807.1 650.1 793 699.2 793H928c17.7 0 32-14.3 32-32V193c0-17.7-14.3-32-32-32zM404 553.5c0 4.1-3.2 7.5-7.1 7.5H211.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm0-140c0 4.1-3.2 7.5-7.1 7.5H211.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm416 140c0 4.1-3.2 7.5-7.1 7.5H627.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm0-140c0 4.1-3.2 7.5-7.1 7.5H627.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/read.svg b/src/blrec/data/webapp/assets/fill/read.svg new file mode 100644 index 0000000..51acab7 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/read.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 161H699.2c-49.1 0-97.1 14.1-138.4 40.7L512 233l-48.8-31.3A255.2 255.2 0 00324.8 161H96c-17.7 0-32 14.3-32 32v568c0 17.7 14.3 32 32 32h228.8c49.1 0 97.1 14.1 138.4 40.7l44.4 28.6c1.3.8 2.8 1.3 4.3 1.3s3-.4 4.3-1.3l44.4-28.6C602 807.1 650.1 793 699.2 793H928c17.7 0 32-14.3 32-32V193c0-17.7-14.3-32-32-32zM404 553.5c0 4.1-3.2 7.5-7.1 7.5H211.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm0-140c0 4.1-3.2 7.5-7.1 7.5H211.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm416 140c0 4.1-3.2 7.5-7.1 7.5H627.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45zm0-140c0 4.1-3.2 7.5-7.1 7.5H627.1c-3.9 0-7.1-3.4-7.1-7.5v-45c0-4.1 3.2-7.5 7.1-7.5h185.7c3.9 0 7.1 3.4 7.1 7.5v45z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/reconciliation.js b/src/blrec/data/webapp/assets/fill/reconciliation.js new file mode 100644 index 0000000..e5bdf42 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/reconciliation.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'reconciliation', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M676 623c-18.8 0-34 15.2-34 34s15.2 34 34 34 34-15.2 34-34-15.2-34-34-34zm204-455H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zM448 848H176V616h272v232zm0-296H176v-88h272v88zm20-272v-48h72v-56h64v56h72v48H468zm180 168v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8zm28 301c-50.8 0-92-41.2-92-92s41.2-92 92-92 92 41.2 92 92-41.2 92-92 92zm92-245c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v96zm-92 61c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/reconciliation.svg b/src/blrec/data/webapp/assets/fill/reconciliation.svg new file mode 100644 index 0000000..e5a22be --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/reconciliation.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M676 623c-18.8 0-34 15.2-34 34s15.2 34 34 34 34-15.2 34-34-15.2-34-34-34zm204-455H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zM448 848H176V616h272v232zm0-296H176v-88h272v88zm20-272v-48h72v-56h64v56h72v48H468zm180 168v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8zm28 301c-50.8 0-92-41.2-92-92s41.2-92 92-92 92 41.2 92 92-41.2 92-92 92zm92-245c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v96zm-92 61c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/red-envelope.js b/src/blrec/data/webapp/assets/fill/red-envelope.js new file mode 100644 index 0000000..74ef2b7 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/red-envelope.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'red-envelope', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM647 470.4l-87.2 161h45.9c4.6 0 8.4 3.8 8.4 8.4v25.1c0 4.6-3.8 8.4-8.4 8.4h-63.3v28.6h63.3c4.6 0 8.4 3.8 8.4 8.4v25c.2 4.6-3.6 8.5-8.2 8.5h-63.3v49.9c0 4.6-3.8 8.4-8.4 8.4h-43.7c-4.6 0-8.4-3.8-8.4-8.4v-49.9h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h63v-28.6h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h45.4l-87.5-161c-2.2-4.1-.7-9.1 3.4-11.4 1.3-.6 2.6-1 3.9-1h48.8c3.2 0 6.1 1.8 7.5 4.6l71.9 141.8 71.9-141.9a8.5 8.5 0 017.5-4.6h47.8c4.6 0 8.4 3.8 8.4 8.4-.1 1.5-.5 2.9-1.1 4.1zM512.6 323L289 148h446L512.6 323z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/red-envelope.svg b/src/blrec/data/webapp/assets/fill/red-envelope.svg new file mode 100644 index 0000000..f2ffa5c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/red-envelope.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM647 470.4l-87.2 161h45.9c4.6 0 8.4 3.8 8.4 8.4v25.1c0 4.6-3.8 8.4-8.4 8.4h-63.3v28.6h63.3c4.6 0 8.4 3.8 8.4 8.4v25c.2 4.6-3.6 8.5-8.2 8.5h-63.3v49.9c0 4.6-3.8 8.4-8.4 8.4h-43.7c-4.6 0-8.4-3.8-8.4-8.4v-49.9h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h63v-28.6h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h45.4l-87.5-161c-2.2-4.1-.7-9.1 3.4-11.4 1.3-.6 2.6-1 3.9-1h48.8c3.2 0 6.1 1.8 7.5 4.6l71.9 141.8 71.9-141.9a8.5 8.5 0 017.5-4.6h47.8c4.6 0 8.4 3.8 8.4 8.4-.1 1.5-.5 2.9-1.1 4.1zM512.6 323L289 148h446L512.6 323z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/reddit-circle.js b/src/blrec/data/webapp/assets/fill/reddit-circle.js new file mode 100644 index 0000000..c328645 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/reddit-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'reddit-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M584 548a36 36 0 1072 0 36 36 0 10-72 0zm144-108a35.9 35.9 0 00-32.5 20.6c18.8 14.3 34.4 30.7 45.9 48.8A35.98 35.98 0 00728 440zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm245 477.9c4.6 13.5 7 27.6 7 42.1 0 99.4-112.8 180-252 180s-252-80.6-252-180c0-14.5 2.4-28.6 7-42.1A72.01 72.01 0 01296 404c27.1 0 50.6 14.9 62.9 37 36.2-19.8 80.2-32.8 128.1-36.1l58.4-131.1c4.3-9.8 15.2-14.8 25.5-11.8l91.6 26.5a54.03 54.03 0 01101.6 25.6c0 29.8-24.2 54-54 54-23.5 0-43.5-15.1-50.9-36.1L577 308.3l-43 96.5c49.1 3 94.2 16.1 131.2 36.3 12.3-22.1 35.8-37 62.9-37 39.8 0 72 32.2 72 72-.1 29.3-17.8 54.6-43.1 65.8zm-171.3 83c-14.9 11.7-44.3 24.3-73.7 24.3s-58.9-12.6-73.7-24.3c-9.3-7.3-22.7-5.7-30 3.6-7.3 9.3-5.7 22.7 3.6 30 25.7 20.4 65 33.5 100.1 33.5 35.1 0 74.4-13.1 100.2-33.5 9.3-7.3 10.9-20.8 3.6-30a21.46 21.46 0 00-30.1-3.6zM296 440a35.98 35.98 0 00-13.4 69.4c11.5-18.1 27.1-34.5 45.9-48.8A35.9 35.9 0 00296 440zm72 108a36 36 0 1072 0 36 36 0 10-72 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/reddit-circle.svg b/src/blrec/data/webapp/assets/fill/reddit-circle.svg new file mode 100644 index 0000000..4f929bf --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/reddit-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M584 548a36 36 0 1072 0 36 36 0 10-72 0zm144-108a35.9 35.9 0 00-32.5 20.6c18.8 14.3 34.4 30.7 45.9 48.8A35.98 35.98 0 00728 440zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm245 477.9c4.6 13.5 7 27.6 7 42.1 0 99.4-112.8 180-252 180s-252-80.6-252-180c0-14.5 2.4-28.6 7-42.1A72.01 72.01 0 01296 404c27.1 0 50.6 14.9 62.9 37 36.2-19.8 80.2-32.8 128.1-36.1l58.4-131.1c4.3-9.8 15.2-14.8 25.5-11.8l91.6 26.5a54.03 54.03 0 01101.6 25.6c0 29.8-24.2 54-54 54-23.5 0-43.5-15.1-50.9-36.1L577 308.3l-43 96.5c49.1 3 94.2 16.1 131.2 36.3 12.3-22.1 35.8-37 62.9-37 39.8 0 72 32.2 72 72-.1 29.3-17.8 54.6-43.1 65.8zm-171.3 83c-14.9 11.7-44.3 24.3-73.7 24.3s-58.9-12.6-73.7-24.3c-9.3-7.3-22.7-5.7-30 3.6-7.3 9.3-5.7 22.7 3.6 30 25.7 20.4 65 33.5 100.1 33.5 35.1 0 74.4-13.1 100.2-33.5 9.3-7.3 10.9-20.8 3.6-30a21.46 21.46 0 00-30.1-3.6zM296 440a35.98 35.98 0 00-13.4 69.4c11.5-18.1 27.1-34.5 45.9-48.8A35.9 35.9 0 00296 440zm72 108a36 36 0 1072 0 36 36 0 10-72 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/reddit-square.js b/src/blrec/data/webapp/assets/fill/reddit-square.js new file mode 100644 index 0000000..fae306b --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/reddit-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'reddit-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M296 440a35.98 35.98 0 00-13.4 69.4c11.5-18.1 27.1-34.5 45.9-48.8A35.9 35.9 0 00296 440zm289.7 184.9c-14.9 11.7-44.3 24.3-73.7 24.3s-58.9-12.6-73.7-24.3c-9.3-7.3-22.7-5.7-30 3.6-7.3 9.3-5.7 22.7 3.6 30 25.7 20.4 65 33.5 100.1 33.5 35.1 0 74.4-13.1 100.2-33.5 9.3-7.3 10.9-20.8 3.6-30a21.46 21.46 0 00-30.1-3.6zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM757 541.9c4.6 13.5 7 27.6 7 42.1 0 99.4-112.8 180-252 180s-252-80.6-252-180c0-14.5 2.4-28.6 7-42.1A72.01 72.01 0 01296 404c27.1 0 50.6 14.9 62.9 37 36.2-19.8 80.2-32.8 128.1-36.1l58.4-131.1c4.3-9.8 15.2-14.8 25.5-11.8l91.6 26.5a54.03 54.03 0 01101.6 25.6c0 29.8-24.2 54-54 54-23.5 0-43.5-15.1-50.9-36.1L577 308.3l-43 96.5c49.1 3 94.2 16.1 131.2 36.3 12.3-22.1 35.8-37 62.9-37 39.8 0 72 32.2 72 72-.1 29.3-17.8 54.6-43.1 65.8zM584 548a36 36 0 1072 0 36 36 0 10-72 0zm144-108a35.9 35.9 0 00-32.5 20.6c18.8 14.3 34.4 30.7 45.9 48.8A35.98 35.98 0 00728 440zM368 548a36 36 0 1072 0 36 36 0 10-72 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/reddit-square.svg b/src/blrec/data/webapp/assets/fill/reddit-square.svg new file mode 100644 index 0000000..1024e85 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/reddit-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M296 440a35.98 35.98 0 00-13.4 69.4c11.5-18.1 27.1-34.5 45.9-48.8A35.9 35.9 0 00296 440zm289.7 184.9c-14.9 11.7-44.3 24.3-73.7 24.3s-58.9-12.6-73.7-24.3c-9.3-7.3-22.7-5.7-30 3.6-7.3 9.3-5.7 22.7 3.6 30 25.7 20.4 65 33.5 100.1 33.5 35.1 0 74.4-13.1 100.2-33.5 9.3-7.3 10.9-20.8 3.6-30a21.46 21.46 0 00-30.1-3.6zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM757 541.9c4.6 13.5 7 27.6 7 42.1 0 99.4-112.8 180-252 180s-252-80.6-252-180c0-14.5 2.4-28.6 7-42.1A72.01 72.01 0 01296 404c27.1 0 50.6 14.9 62.9 37 36.2-19.8 80.2-32.8 128.1-36.1l58.4-131.1c4.3-9.8 15.2-14.8 25.5-11.8l91.6 26.5a54.03 54.03 0 01101.6 25.6c0 29.8-24.2 54-54 54-23.5 0-43.5-15.1-50.9-36.1L577 308.3l-43 96.5c49.1 3 94.2 16.1 131.2 36.3 12.3-22.1 35.8-37 62.9-37 39.8 0 72 32.2 72 72-.1 29.3-17.8 54.6-43.1 65.8zM584 548a36 36 0 1072 0 36 36 0 10-72 0zm144-108a35.9 35.9 0 00-32.5 20.6c18.8 14.3 34.4 30.7 45.9 48.8A35.98 35.98 0 00728 440zM368 548a36 36 0 1072 0 36 36 0 10-72 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/rest.js b/src/blrec/data/webapp/assets/fill/rest.js new file mode 100644 index 0000000..1c72281 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/rest.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'rest', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0031.9 29.3h429.2a32 32 0 0031.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zM508 704c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144zM291 256l22.4-76h397.2l22.4 76H291zm137 304a80 80 0 10160 0 80 80 0 10-160 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/rest.svg b/src/blrec/data/webapp/assets/fill/rest.svg new file mode 100644 index 0000000..5c8f5b8 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/rest.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0031.9 29.3h429.2a32 32 0 0031.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zM508 704c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144zM291 256l22.4-76h397.2l22.4 76H291zm137 304a80 80 0 10160 0 80 80 0 10-160 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/right-circle.js b/src/blrec/data/webapp/assets/fill/right-circle.js new file mode 100644 index 0000000..86e34a7 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/right-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'right-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm154.7 454.5l-246 178c-5.3 3.8-12.7 0-12.7-6.5v-46.9c0-10.2 4.9-19.9 13.2-25.9L566.6 512 421.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.8 0 13z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/right-circle.svg b/src/blrec/data/webapp/assets/fill/right-circle.svg new file mode 100644 index 0000000..e7087e7 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/right-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm154.7 454.5l-246 178c-5.3 3.8-12.7 0-12.7-6.5v-46.9c0-10.2 4.9-19.9 13.2-25.9L566.6 512 421.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.8 0 13z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/right-square.js b/src/blrec/data/webapp/assets/fill/right-square.js new file mode 100644 index 0000000..10e6617 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/right-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'right-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM658.7 518.5l-246 178c-5.3 3.8-12.7 0-12.7-6.5v-46.9c0-10.2 4.9-19.9 13.2-25.9L558.6 512 413.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.8 0 13z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/right-square.svg b/src/blrec/data/webapp/assets/fill/right-square.svg new file mode 100644 index 0000000..f3f4af2 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/right-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM658.7 518.5l-246 178c-5.3 3.8-12.7 0-12.7-6.5v-46.9c0-10.2 4.9-19.9 13.2-25.9L558.6 512 413.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.8 0 13z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/robot.js b/src/blrec/data/webapp/assets/fill/robot.js new file mode 100644 index 0000000..ce4da91 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/robot.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'robot', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M852 64H172c-17.7 0-32 14.3-32 32v660c0 17.7 14.3 32 32 32h680c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM300 328c0-33.1 26.9-60 60-60s60 26.9 60 60-26.9 60-60 60-60-26.9-60-60zm372 248c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-60c0-4.4 3.6-8 8-8h304c4.4 0 8 3.6 8 8v60zm-8-188c-33.1 0-60-26.9-60-60s26.9-60 60-60 60 26.9 60 60-26.9 60-60 60zm135 476H225c-13.8 0-25 14.3-25 32v56c0 4.4 2.8 8 6.2 8h611.5c3.4 0 6.2-3.6 6.2-8v-56c.1-17.7-11.1-32-24.9-32z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/robot.svg b/src/blrec/data/webapp/assets/fill/robot.svg new file mode 100644 index 0000000..93c1f4a --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/robot.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M852 64H172c-17.7 0-32 14.3-32 32v660c0 17.7 14.3 32 32 32h680c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM300 328c0-33.1 26.9-60 60-60s60 26.9 60 60-26.9 60-60 60-60-26.9-60-60zm372 248c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-60c0-4.4 3.6-8 8-8h304c4.4 0 8 3.6 8 8v60zm-8-188c-33.1 0-60-26.9-60-60s26.9-60 60-60 60 26.9 60 60-26.9 60-60 60zm135 476H225c-13.8 0-25 14.3-25 32v56c0 4.4 2.8 8 6.2 8h611.5c3.4 0 6.2-3.6 6.2-8v-56c.1-17.7-11.1-32-24.9-32z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/rocket.js b/src/blrec/data/webapp/assets/fill/rocket.js new file mode 100644 index 0000000..9037980 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/rocket.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'rocket', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 00-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0043.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0043.1-30.5 97.52 97.52 0 0021.4-60.8c0-8.4-1.1-16.4-3.1-23.8L864 736zM512 352a48.01 48.01 0 010 96 48.01 48.01 0 010-96zm116.1 432.2c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5s-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 01-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/rocket.svg b/src/blrec/data/webapp/assets/fill/rocket.svg new file mode 100644 index 0000000..e8bb9e8 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/rocket.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 00-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0043.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0043.1-30.5 97.52 97.52 0 0021.4-60.8c0-8.4-1.1-16.4-3.1-23.8L864 736zM512 352a48.01 48.01 0 010 96 48.01 48.01 0 010-96zm116.1 432.2c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5s-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 01-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/safety-certificate.js b/src/blrec/data/webapp/assets/fill/safety-certificate.js new file mode 100644 index 0000000..51eb94a --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/safety-certificate.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'safety-certificate', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM694.5 340.7L481.9 633.4a16.1 16.1 0 01-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.1 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.8-6.6 13-6.6H688c6.5.1 10.3 7.5 6.5 12.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/safety-certificate.svg b/src/blrec/data/webapp/assets/fill/safety-certificate.svg new file mode 100644 index 0000000..4855a3b --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/safety-certificate.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM694.5 340.7L481.9 633.4a16.1 16.1 0 01-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.1 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.8-6.6 13-6.6H688c6.5.1 10.3 7.5 6.5 12.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/save.js b/src/blrec/data/webapp/assets/fill/save.js new file mode 100644 index 0000000..08b7116 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/save.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'save', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M893.3 293.3L730.7 130.7c-12-12-28.3-18.7-45.3-18.7H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 176h256v112H384V176zm128 554c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144zm0-224c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/save.svg b/src/blrec/data/webapp/assets/fill/save.svg new file mode 100644 index 0000000..8b4a91b --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/save.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M893.3 293.3L730.7 130.7c-12-12-28.3-18.7-45.3-18.7H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 176h256v112H384V176zm128 554c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144zm0-224c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/schedule.js b/src/blrec/data/webapp/assets/fill/schedule.js new file mode 100644 index 0000000..98c635f --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/schedule.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'schedule', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zM424 688c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-136c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm374.5-91.3l-165 228.7a15.9 15.9 0 01-25.8 0L493.5 531.2c-3.8-5.3 0-12.7 6.5-12.7h54.9c5.1 0 9.9 2.5 12.9 6.6l52.8 73.1 103.7-143.7c3-4.2 7.8-6.6 12.9-6.6H792c6.5.1 10.3 7.5 6.5 12.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/schedule.svg b/src/blrec/data/webapp/assets/fill/schedule.svg new file mode 100644 index 0000000..a699893 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/schedule.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zM424 688c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-136c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm374.5-91.3l-165 228.7a15.9 15.9 0 01-25.8 0L493.5 531.2c-3.8-5.3 0-12.7 6.5-12.7h54.9c5.1 0 9.9 2.5 12.9 6.6l52.8 73.1 103.7-143.7c3-4.2 7.8-6.6 12.9-6.6H792c6.5.1 10.3 7.5 6.5 12.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/security-scan.js b/src/blrec/data/webapp/assets/fill/security-scan.js new file mode 100644 index 0000000..fb862eb --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/security-scan.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'security-scan', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM626.8 554c-48.5 48.5-123 55.2-178.6 20.1l-77.5 77.5a8.03 8.03 0 01-11.3 0l-34-34a8.03 8.03 0 010-11.3l77.5-77.5c-35.1-55.7-28.4-130.1 20.1-178.6 56.3-56.3 147.5-56.3 203.8 0 56.3 56.3 56.3 147.5 0 203.8zm-158.54-45.27a80.1 80.1 0 10113.27-113.28 80.1 80.1 0 10-113.27 113.28z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/security-scan.svg b/src/blrec/data/webapp/assets/fill/security-scan.svg new file mode 100644 index 0000000..3ac267e --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/security-scan.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM626.8 554c-48.5 48.5-123 55.2-178.6 20.1l-77.5 77.5a8.03 8.03 0 01-11.3 0l-34-34a8.03 8.03 0 010-11.3l77.5-77.5c-35.1-55.7-28.4-130.1 20.1-178.6 56.3-56.3 147.5-56.3 203.8 0 56.3 56.3 56.3 147.5 0 203.8zm-158.54-45.27a80.1 80.1 0 10113.27-113.28 80.1 80.1 0 10-113.27 113.28z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/setting.js b/src/blrec/data/webapp/assets/fill/setting.js new file mode 100644 index 0000000..db04813 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/setting.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'setting', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512.5 390.6c-29.9 0-57.9 11.6-79.1 32.8-21.1 21.2-32.8 49.2-32.8 79.1 0 29.9 11.7 57.9 32.8 79.1 21.2 21.1 49.2 32.8 79.1 32.8 29.9 0 57.9-11.7 79.1-32.8 21.1-21.2 32.8-49.2 32.8-79.1 0-29.9-11.7-57.9-32.8-79.1a110.96 110.96 0 00-79.1-32.8zm412.3 235.5l-65.4-55.9c3.1-19 4.7-38.4 4.7-57.7s-1.6-38.8-4.7-57.7l65.4-55.9a32.03 32.03 0 009.3-35.2l-.9-2.6a442.5 442.5 0 00-79.6-137.7l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.2 28.9c-30-24.6-63.4-44-99.6-57.5l-15.7-84.9a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52-9.4-106.8-9.4-158.8 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.3a353.44 353.44 0 00-98.9 57.3l-81.8-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a445.93 445.93 0 00-79.6 137.7l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.2 56.5c-3.1 18.8-4.6 38-4.6 57 0 19.2 1.5 38.4 4.6 57l-66 56.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.3 44.8 96.8 79.6 137.7l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.8-29.1c29.8 24.5 63 43.9 98.9 57.3l15.8 85.3a32.05 32.05 0 0025.8 25.7l2.7.5a448.27 448.27 0 00158.8 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-84.9c36.2-13.6 69.6-32.9 99.6-57.5l81.2 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.5-87.4 79.6-137.7l.9-2.6c4.3-12.4.6-26.3-9.5-35zm-412.3 52.2c-97.1 0-175.8-78.7-175.8-175.8s78.7-175.8 175.8-175.8 175.8 78.7 175.8 175.8-78.7 175.8-175.8 175.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/setting.svg b/src/blrec/data/webapp/assets/fill/setting.svg new file mode 100644 index 0000000..45782d8 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/setting.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512.5 390.6c-29.9 0-57.9 11.6-79.1 32.8-21.1 21.2-32.8 49.2-32.8 79.1 0 29.9 11.7 57.9 32.8 79.1 21.2 21.1 49.2 32.8 79.1 32.8 29.9 0 57.9-11.7 79.1-32.8 21.1-21.2 32.8-49.2 32.8-79.1 0-29.9-11.7-57.9-32.8-79.1a110.96 110.96 0 00-79.1-32.8zm412.3 235.5l-65.4-55.9c3.1-19 4.7-38.4 4.7-57.7s-1.6-38.8-4.7-57.7l65.4-55.9a32.03 32.03 0 009.3-35.2l-.9-2.6a442.5 442.5 0 00-79.6-137.7l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.2 28.9c-30-24.6-63.4-44-99.6-57.5l-15.7-84.9a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52-9.4-106.8-9.4-158.8 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.3a353.44 353.44 0 00-98.9 57.3l-81.8-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a445.93 445.93 0 00-79.6 137.7l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.2 56.5c-3.1 18.8-4.6 38-4.6 57 0 19.2 1.5 38.4 4.6 57l-66 56.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.3 44.8 96.8 79.6 137.7l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.8-29.1c29.8 24.5 63 43.9 98.9 57.3l15.8 85.3a32.05 32.05 0 0025.8 25.7l2.7.5a448.27 448.27 0 00158.8 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-84.9c36.2-13.6 69.6-32.9 99.6-57.5l81.2 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.5-87.4 79.6-137.7l.9-2.6c4.3-12.4.6-26.3-9.5-35zm-412.3 52.2c-97.1 0-175.8-78.7-175.8-175.8s78.7-175.8 175.8-175.8 175.8 78.7 175.8 175.8-78.7 175.8-175.8 175.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/shop.js b/src/blrec/data/webapp/assets/fill/shop.js new file mode 100644 index 0000000..ad6023e --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/shop.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'shop', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0014.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h274V736h128v176h274c17.7 0 32-14.3 32-32V535a175 175 0 0015.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zm-72 568H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0038.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0038.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 3-1.3 6-2.6 9-4v242.2zm0-568.1H214v-88h596v88z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/shop.svg b/src/blrec/data/webapp/assets/fill/shop.svg new file mode 100644 index 0000000..3373981 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/shop.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0014.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h274V736h128v176h274c17.7 0 32-14.3 32-32V535a175 175 0 0015.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zm-72 568H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0038.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0038.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 3-1.3 6-2.6 9-4v242.2zm0-568.1H214v-88h596v88z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/shopping.js b/src/blrec/data/webapp/assets/fill/shopping.js new file mode 100644 index 0000000..2094c6d --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/shopping.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'shopping', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-208 0H400v-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/shopping.svg b/src/blrec/data/webapp/assets/fill/shopping.svg new file mode 100644 index 0000000..aea7ac4 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/shopping.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-208 0H400v-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/signal.js b/src/blrec/data/webapp/assets/fill/signal.js new file mode 100644 index 0000000..cd26a13 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/signal.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'signal', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M584 352H440c-17.7 0-32 14.3-32 32v544c0 17.7 14.3 32 32 32h144c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32zM892 64H748c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h144c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM276 640H132c-17.7 0-32 14.3-32 32v256c0 17.7 14.3 32 32 32h144c17.7 0 32-14.3 32-32V672c0-17.7-14.3-32-32-32z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/signal.svg b/src/blrec/data/webapp/assets/fill/signal.svg new file mode 100644 index 0000000..3dd26f3 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/signal.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M584 352H440c-17.7 0-32 14.3-32 32v544c0 17.7 14.3 32 32 32h144c17.7 0 32-14.3 32-32V384c0-17.7-14.3-32-32-32zM892 64H748c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h144c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zM276 640H132c-17.7 0-32 14.3-32 32v256c0 17.7 14.3 32 32 32h144c17.7 0 32-14.3 32-32V672c0-17.7-14.3-32-32-32z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/sketch-circle.js b/src/blrec/data/webapp/assets/fill/sketch-circle.js new file mode 100644 index 0000000..b7a052d --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/sketch-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'sketch-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M582.3 625.6l147.9-166.3h-63.4zm90-202.3h62.5l-92.1-115.1zm-274.7 36L512 684.5l114.4-225.2zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm286.7 380.2L515.8 762.3c-1 1.1-2.4 1.7-3.8 1.7s-2.8-.6-3.8-1.7L225.3 444.2a5.14 5.14 0 01-.2-6.6L365.6 262c1-1.2 2.4-1.9 4-1.9h284.6c1.6 0 3 .7 4 1.9l140.5 175.6a4.9 4.9 0 010 6.6zm-190.5-20.9L512 326.1l-96.2 97.2zM420.3 301.1l-23.1 89.8 88.8-89.8zm183.4 0H538l88.8 89.8zm-222.4 7.1l-92.1 115.1h62.5zm-87.5 151.1l147.9 166.3-84.5-166.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/sketch-circle.svg b/src/blrec/data/webapp/assets/fill/sketch-circle.svg new file mode 100644 index 0000000..2ed7d8d --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/sketch-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M582.3 625.6l147.9-166.3h-63.4zm90-202.3h62.5l-92.1-115.1zm-274.7 36L512 684.5l114.4-225.2zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm286.7 380.2L515.8 762.3c-1 1.1-2.4 1.7-3.8 1.7s-2.8-.6-3.8-1.7L225.3 444.2a5.14 5.14 0 01-.2-6.6L365.6 262c1-1.2 2.4-1.9 4-1.9h284.6c1.6 0 3 .7 4 1.9l140.5 175.6a4.9 4.9 0 010 6.6zm-190.5-20.9L512 326.1l-96.2 97.2zM420.3 301.1l-23.1 89.8 88.8-89.8zm183.4 0H538l88.8 89.8zm-222.4 7.1l-92.1 115.1h62.5zm-87.5 151.1l147.9 166.3-84.5-166.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/sketch-square.js b/src/blrec/data/webapp/assets/fill/sketch-square.js new file mode 100644 index 0000000..a45dfa4 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/sketch-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'sketch-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M608.2 423.3L512 326.1l-96.2 97.2zm-25.9 202.3l147.9-166.3h-63.4zm90-202.3h62.5l-92.1-115.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-81.3 332.2L515.8 762.3c-1 1.1-2.4 1.7-3.8 1.7s-2.8-.6-3.8-1.7L225.3 444.2a5.14 5.14 0 01-.2-6.6L365.6 262c1-1.2 2.4-1.9 4-1.9h284.6c1.6 0 3 .7 4 1.9l140.5 175.6a4.9 4.9 0 010 6.6zm-401.1 15.1L512 684.5l114.4-225.2zm-16.3-151.1l-92.1 115.1h62.5zm-87.5 151.1l147.9 166.3-84.5-166.3zm126.5-158.2l-23.1 89.8 88.8-89.8zm183.4 0H538l88.8 89.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/sketch-square.svg b/src/blrec/data/webapp/assets/fill/sketch-square.svg new file mode 100644 index 0000000..c5998b0 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/sketch-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M608.2 423.3L512 326.1l-96.2 97.2zm-25.9 202.3l147.9-166.3h-63.4zm90-202.3h62.5l-92.1-115.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-81.3 332.2L515.8 762.3c-1 1.1-2.4 1.7-3.8 1.7s-2.8-.6-3.8-1.7L225.3 444.2a5.14 5.14 0 01-.2-6.6L365.6 262c1-1.2 2.4-1.9 4-1.9h284.6c1.6 0 3 .7 4 1.9l140.5 175.6a4.9 4.9 0 010 6.6zm-401.1 15.1L512 684.5l114.4-225.2zm-16.3-151.1l-92.1 115.1h62.5zm-87.5 151.1l147.9 166.3-84.5-166.3zm126.5-158.2l-23.1 89.8 88.8-89.8zm183.4 0H538l88.8 89.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/skin.js b/src/blrec/data/webapp/assets/fill/skin.js new file mode 100644 index 0000000..83649d8 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/skin.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'skin', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 00-37-29.3H154a44 44 0 00-44 44v252a44 44 0 0044 44h75v388a44 44 0 0044 44h478a44 44 0 0044-44V466h75a44 44 0 0044-44V170a44 44 0 00-44-44z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/skin.svg b/src/blrec/data/webapp/assets/fill/skin.svg new file mode 100644 index 0000000..cb1a360 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/skin.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 00-37-29.3H154a44 44 0 00-44 44v252a44 44 0 0044 44h75v388a44 44 0 0044 44h478a44 44 0 0044-44V466h75a44 44 0 0044-44V170a44 44 0 00-44-44z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/skype.js b/src/blrec/data/webapp/assets/fill/skype.js new file mode 100644 index 0000000..bbb53aa --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/skype.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'skype', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M883.7 578.6c4.1-22.5 6.3-45.5 6.3-68.5 0-51-10-100.5-29.7-147-19-45-46.3-85.4-81-120.1a375.79 375.79 0 00-120.1-80.9c-46.6-19.7-96-29.7-147-29.7-24 0-48.1 2.3-71.5 6.8A225.1 225.1 0 00335.6 113c-59.7 0-115.9 23.3-158.1 65.5A222.25 222.25 0 00112 336.6c0 38 9.8 75.4 28.1 108.4-3.7 21.4-5.7 43.3-5.7 65.1 0 51 10 100.5 29.7 147 19 45 46.2 85.4 80.9 120.1 34.7 34.7 75.1 61.9 120.1 80.9 46.6 19.7 96 29.7 147 29.7 22.2 0 44.4-2 66.2-5.9 33.5 18.9 71.3 29 110 29 59.7 0 115.9-23.2 158.1-65.5 42.3-42.2 65.5-98.4 65.5-158.1.1-38-9.7-75.5-28.2-108.7zm-370 162.9c-134.2 0-194.2-66-194.2-115.4 0-25.4 18.7-43.1 44.5-43.1 57.4 0 42.6 82.5 149.7 82.5 54.9 0 85.2-29.8 85.2-60.3 0-18.3-9-38.7-45.2-47.6l-119.4-29.8c-96.1-24.1-113.6-76.1-113.6-124.9 0-101.4 95.5-139.5 185.2-139.5 82.6 0 180 45.7 180 106.5 0 26.1-22.6 41.2-48.4 41.2-49 0-40-67.8-138.7-67.8-49 0-76.1 22.2-76.1 53.9s38.7 41.8 72.3 49.5l88.4 19.6c96.8 21.6 121.3 78.1 121.3 131.3 0 82.3-63.3 143.9-191 143.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/skype.svg b/src/blrec/data/webapp/assets/fill/skype.svg new file mode 100644 index 0000000..d5dfea1 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/skype.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M883.7 578.6c4.1-22.5 6.3-45.5 6.3-68.5 0-51-10-100.5-29.7-147-19-45-46.3-85.4-81-120.1a375.79 375.79 0 00-120.1-80.9c-46.6-19.7-96-29.7-147-29.7-24 0-48.1 2.3-71.5 6.8A225.1 225.1 0 00335.6 113c-59.7 0-115.9 23.3-158.1 65.5A222.25 222.25 0 00112 336.6c0 38 9.8 75.4 28.1 108.4-3.7 21.4-5.7 43.3-5.7 65.1 0 51 10 100.5 29.7 147 19 45 46.2 85.4 80.9 120.1 34.7 34.7 75.1 61.9 120.1 80.9 46.6 19.7 96 29.7 147 29.7 22.2 0 44.4-2 66.2-5.9 33.5 18.9 71.3 29 110 29 59.7 0 115.9-23.2 158.1-65.5 42.3-42.2 65.5-98.4 65.5-158.1.1-38-9.7-75.5-28.2-108.7zm-370 162.9c-134.2 0-194.2-66-194.2-115.4 0-25.4 18.7-43.1 44.5-43.1 57.4 0 42.6 82.5 149.7 82.5 54.9 0 85.2-29.8 85.2-60.3 0-18.3-9-38.7-45.2-47.6l-119.4-29.8c-96.1-24.1-113.6-76.1-113.6-124.9 0-101.4 95.5-139.5 185.2-139.5 82.6 0 180 45.7 180 106.5 0 26.1-22.6 41.2-48.4 41.2-49 0-40-67.8-138.7-67.8-49 0-76.1 22.2-76.1 53.9s38.7 41.8 72.3 49.5l88.4 19.6c96.8 21.6 121.3 78.1 121.3 131.3 0 82.3-63.3 143.9-191 143.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/slack-circle.js b/src/blrec/data/webapp/assets/fill/slack-circle.js new file mode 100644 index 0000000..8504b4c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/slack-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'slack-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4a50.35 50.35 0 01-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4a50.35 50.35 0 0150.3 50.4v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm83.7-50.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM579.3 765c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134c-13.3 0-26.1-5.3-35.6-14.8S529 593.6 529 580.2c0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/slack-circle.svg b/src/blrec/data/webapp/assets/fill/slack-circle.svg new file mode 100644 index 0000000..80cc2b1 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/slack-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4a50.35 50.35 0 01-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4a50.35 50.35 0 0150.3 50.4v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm83.7-50.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM579.3 765c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134c-13.3 0-26.1-5.3-35.6-14.8S529 593.6 529 580.2c0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/slack-square.js b/src/blrec/data/webapp/assets/fill/slack-square.js new file mode 100644 index 0000000..276e7b6 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/slack-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'slack-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM529 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4a50.35 50.35 0 01-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4a50.35 50.35 0 0150.3 50.4v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm134 403.2c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134a50.35 50.35 0 01-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/slack-square.svg b/src/blrec/data/webapp/assets/fill/slack-square.svg new file mode 100644 index 0000000..fee3de1 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/slack-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM529 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4a50.35 50.35 0 01-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4a50.35 50.35 0 0150.3 50.4v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm134 403.2c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134a50.35 50.35 0 01-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/sliders.js b/src/blrec/data/webapp/assets/fill/sliders.js new file mode 100644 index 0000000..f9a728a --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/sliders.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'sliders', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M904 296h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-584-72h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm292 180h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/sliders.svg b/src/blrec/data/webapp/assets/fill/sliders.svg new file mode 100644 index 0000000..e2408c8 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/sliders.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M904 296h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-584-72h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm292 180h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/smile.js b/src/blrec/data/webapp/assets/fill/smile.js new file mode 100644 index 0000000..8add2bb --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/smile.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'smile', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm224 272c-85.5 0-155.6-67.3-160-151.6a8 8 0 018-8.4h48.1c4.2 0 7.8 3.2 8.1 7.4C420 589.9 461.5 629 512 629s92.1-39.1 95.8-88.6c.3-4.2 3.9-7.4 8.1-7.4H664a8 8 0 018 8.4C667.6 625.7 597.5 693 512 693zm176-224a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/smile.svg b/src/blrec/data/webapp/assets/fill/smile.svg new file mode 100644 index 0000000..afe21bb --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/smile.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM288 421a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm224 272c-85.5 0-155.6-67.3-160-151.6a8 8 0 018-8.4h48.1c4.2 0 7.8 3.2 8.1 7.4C420 589.9 461.5 629 512 629s92.1-39.1 95.8-88.6c.3-4.2 3.9-7.4 8.1-7.4H664a8 8 0 018 8.4C667.6 625.7 597.5 693 512 693zm176-224a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/snippets.js b/src/blrec/data/webapp/assets/fill/snippets.js new file mode 100644 index 0000000..4f1ab8f --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/snippets.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'snippets', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 486H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/snippets.svg b/src/blrec/data/webapp/assets/fill/snippets.svg new file mode 100644 index 0000000..25f3fdd --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/snippets.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 486H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/sound.js b/src/blrec/data/webapp/assets/fill/sound.js new file mode 100644 index 0000000..f939585 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/sound.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'sound', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M892.1 737.8l-110.3-63.7a15.9 15.9 0 00-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0021.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM760 344a15.9 15.9 0 0021.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 00-21.7-5.9L746 287.8a15.99 15.99 0 00-5.8 21.8L760 344zm174 132H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zM625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/sound.svg b/src/blrec/data/webapp/assets/fill/sound.svg new file mode 100644 index 0000000..5506092 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/sound.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M892.1 737.8l-110.3-63.7a15.9 15.9 0 00-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0021.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM760 344a15.9 15.9 0 0021.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 00-21.7-5.9L746 287.8a15.99 15.99 0 00-5.8 21.8L760 344zm174 132H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zM625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/star.js b/src/blrec/data/webapp/assets/fill/star.js new file mode 100644 index 0000000..fb0a9b1 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/star.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'star', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 00.6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0046.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/star.svg b/src/blrec/data/webapp/assets/fill/star.svg new file mode 100644 index 0000000..2ecff20 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/star.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 00.6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0046.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/step-backward.js b/src/blrec/data/webapp/assets/fill/step-backward.js new file mode 100644 index 0000000..e953ebe --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/step-backward.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'step-backward', + theme: 'fill', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M347.6 528.95l383.2 301.02c14.25 11.2 35.2 1.1 35.2-16.95V210.97c0-18.05-20.95-28.14-35.2-16.94L347.6 495.05a21.53 21.53 0 000 33.9M330 864h-64a8 8 0 01-8-8V168a8 8 0 018-8h64a8 8 0 018 8v688a8 8 0 01-8 8" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/step-backward.svg b/src/blrec/data/webapp/assets/fill/step-backward.svg new file mode 100644 index 0000000..fb8ab81 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/step-backward.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M347.6 528.95l383.2 301.02c14.25 11.2 35.2 1.1 35.2-16.95V210.97c0-18.05-20.95-28.14-35.2-16.94L347.6 495.05a21.53 21.53 0 000 33.9M330 864h-64a8 8 0 01-8-8V168a8 8 0 018-8h64a8 8 0 018 8v688a8 8 0 01-8 8" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/step-forward.js b/src/blrec/data/webapp/assets/fill/step-forward.js new file mode 100644 index 0000000..04ccefa --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/step-forward.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'step-forward', + theme: 'fill', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M676.4 528.95L293.2 829.97c-14.25 11.2-35.2 1.1-35.2-16.95V210.97c0-18.05 20.95-28.14 35.2-16.94l383.2 301.02a21.53 21.53 0 010 33.9M694 864h64a8 8 0 008-8V168a8 8 0 00-8-8h-64a8 8 0 00-8 8v688a8 8 0 008 8" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/step-forward.svg b/src/blrec/data/webapp/assets/fill/step-forward.svg new file mode 100644 index 0000000..f4167bd --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/step-forward.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M676.4 528.95L293.2 829.97c-14.25 11.2-35.2 1.1-35.2-16.95V210.97c0-18.05 20.95-28.14 35.2-16.94l383.2 301.02a21.53 21.53 0 010 33.9M694 864h64a8 8 0 008-8V168a8 8 0 00-8-8h-64a8 8 0 00-8 8v688a8 8 0 008 8" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/stop.js b/src/blrec/data/webapp/assets/fill/stop.js new file mode 100644 index 0000000..cea93a9 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/stop.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'stop', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm234.8 736.5L223.5 277.2c16-19.7 34-37.7 53.7-53.7l523.3 523.3c-16 19.6-34 37.7-53.7 53.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/stop.svg b/src/blrec/data/webapp/assets/fill/stop.svg new file mode 100644 index 0000000..7b68939 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/stop.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm234.8 736.5L223.5 277.2c16-19.7 34-37.7 53.7-53.7l523.3 523.3c-16 19.6-34 37.7-53.7 53.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/switcher.js b/src/blrec/data/webapp/assets/fill/switcher.js new file mode 100644 index 0000000..486e8a0 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/switcher.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'switcher', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zM596 606c0 4.4-3.6 8-8 8H308c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h280c4.4 0 8 3.6 8 8v48zm284-494H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/switcher.svg b/src/blrec/data/webapp/assets/fill/switcher.svg new file mode 100644 index 0000000..32be76a --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/switcher.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zM596 606c0 4.4-3.6 8-8 8H308c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h280c4.4 0 8 3.6 8 8v48zm284-494H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/tablet.js b/src/blrec/data/webapp/assets/fill/tablet.js new file mode 100644 index 0000000..c94ee3e --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/tablet.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'tablet', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zM512 824c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/tablet.svg b/src/blrec/data/webapp/assets/fill/tablet.svg new file mode 100644 index 0000000..4858d27 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/tablet.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zM512 824c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/tag.js b/src/blrec/data/webapp/assets/fill/tag.js new file mode 100644 index 0000000..55a9568 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/tag.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'tag', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 000 14.1l363.8 363.8c1.9 1.9 4.4 2.9 7.1 2.9s5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM699 387c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/tag.svg b/src/blrec/data/webapp/assets/fill/tag.svg new file mode 100644 index 0000000..6a27a1e --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/tag.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 000 14.1l363.8 363.8c1.9 1.9 4.4 2.9 7.1 2.9s5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM699 387c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/tags.js b/src/blrec/data/webapp/assets/fill/tags.js new file mode 100644 index 0000000..c6fd1e2 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/tags.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'tags', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M483.2 790.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3c-2.3-.2-4.7.6-6.3 2.3L137.7 444.8a8.03 8.03 0 000 11.3l334.2 334.2c3.1 3.2 8.2 3.2 11.3 0zm122.7-533.4c18.7-18.7 49.1-18.7 67.9 0 18.7 18.7 18.7 49.1 0 67.9-18.7 18.7-49.1 18.7-67.9 0-18.7-18.7-18.7-49.1 0-67.9zm283.8 282.9l-39.6-39.5a8.03 8.03 0 00-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 00-11.3 0l-39.6 39.5a8.03 8.03 0 000 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/tags.svg b/src/blrec/data/webapp/assets/fill/tags.svg new file mode 100644 index 0000000..6577913 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/tags.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M483.2 790.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3c-2.3-.2-4.7.6-6.3 2.3L137.7 444.8a8.03 8.03 0 000 11.3l334.2 334.2c3.1 3.2 8.2 3.2 11.3 0zm122.7-533.4c18.7-18.7 49.1-18.7 67.9 0 18.7 18.7 18.7 49.1 0 67.9-18.7 18.7-49.1 18.7-67.9 0-18.7-18.7-18.7-49.1 0-67.9zm283.8 282.9l-39.6-39.5a8.03 8.03 0 00-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 00-11.3 0l-39.6 39.5a8.03 8.03 0 000 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/taobao-circle.js b/src/blrec/data/webapp/assets/fill/taobao-circle.js new file mode 100644 index 0000000..ffb14d9 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/taobao-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'taobao-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 110-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/taobao-circle.svg b/src/blrec/data/webapp/assets/fill/taobao-circle.svg new file mode 100644 index 0000000..9b09e41 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/taobao-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 110-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/taobao-square.js b/src/blrec/data/webapp/assets/fill/taobao-square.js new file mode 100644 index 0000000..5969a65 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/taobao-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'taobao-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 110-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/taobao-square.svg b/src/blrec/data/webapp/assets/fill/taobao-square.svg new file mode 100644 index 0000000..9959e4c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/taobao-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 110-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/thunderbolt.js b/src/blrec/data/webapp/assets/fill/thunderbolt.js new file mode 100644 index 0000000..aae521c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/thunderbolt.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'thunderbolt', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/thunderbolt.svg b/src/blrec/data/webapp/assets/fill/thunderbolt.svg new file mode 100644 index 0000000..e0f4004 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/thunderbolt.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/tool.js b/src/blrec/data/webapp/assets/fill/tool.js new file mode 100644 index 0000000..b925d46 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/tool.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'tool', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M865.3 244.7c-.3-.3-61.1 59.8-182.1 180.6l-84.9-84.9 180.9-180.9c-95.2-57.3-217.5-42.6-296.8 36.7A244.42 244.42 0 00419 432l1.8 6.7-283.5 283.4c-6.2 6.2-6.2 16.4 0 22.6l141.4 141.4c6.2 6.2 16.4 6.2 22.6 0l283.3-283.3 6.7 1.8c83.7 22.3 173.6-.9 236-63.3 79.4-79.3 94.1-201.6 38-296.6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/tool.svg b/src/blrec/data/webapp/assets/fill/tool.svg new file mode 100644 index 0000000..58a0148 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/tool.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M865.3 244.7c-.3-.3-61.1 59.8-182.1 180.6l-84.9-84.9 180.9-180.9c-95.2-57.3-217.5-42.6-296.8 36.7A244.42 244.42 0 00419 432l1.8 6.7-283.5 283.4c-6.2 6.2-6.2 16.4 0 22.6l141.4 141.4c6.2 6.2 16.4 6.2 22.6 0l283.3-283.3 6.7 1.8c83.7 22.3 173.6-.9 236-63.3 79.4-79.3 94.1-201.6 38-296.6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/trademark-circle.js b/src/blrec/data/webapp/assets/fill/trademark-circle.js new file mode 100644 index 0000000..696c2fd --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/trademark-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'trademark-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm164.7 660.2c-1.1.5-2.3.8-3.5.8h-62c-3.1 0-5.9-1.8-7.2-4.6l-74.6-159.2h-88.7V717c0 4.4-3.6 8-8 8H378c-4.4 0-8-3.6-8-8V307c0-4.4 3.6-8 8-8h155.6c98.8 0 144.2 59.9 144.2 131.1 0 70.2-43.6 106.4-78.4 119.2l80.8 164.2c2.1 3.9.4 8.7-3.5 10.7zM523.9 357h-83.4v148H522c53 0 82.8-25.6 82.8-72.4 0-50.3-32.9-75.6-80.9-75.6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/trademark-circle.svg b/src/blrec/data/webapp/assets/fill/trademark-circle.svg new file mode 100644 index 0000000..5bf6f97 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/trademark-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm164.7 660.2c-1.1.5-2.3.8-3.5.8h-62c-3.1 0-5.9-1.8-7.2-4.6l-74.6-159.2h-88.7V717c0 4.4-3.6 8-8 8H378c-4.4 0-8-3.6-8-8V307c0-4.4 3.6-8 8-8h155.6c98.8 0 144.2 59.9 144.2 131.1 0 70.2-43.6 106.4-78.4 119.2l80.8 164.2c2.1 3.9.4 8.7-3.5 10.7zM523.9 357h-83.4v148H522c53 0 82.8-25.6 82.8-72.4 0-50.3-32.9-75.6-80.9-75.6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/trophy.js b/src/blrec/data/webapp/assets/fill/trophy.js new file mode 100644 index 0000000..b15a0a9 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/trophy.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'trophy', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 00-44 44v148c0 81.7 60 149.6 138.2 162C265.6 630.2 359 721.8 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.8 758.4 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 00-44-44zM248 439.6c-37.1-11.9-64-46.7-64-87.6V232h64v207.6zM840 352c0 41-26.9 75.8-64 87.6V232h64v120z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/trophy.svg b/src/blrec/data/webapp/assets/fill/trophy.svg new file mode 100644 index 0000000..9b1b1c0 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/trophy.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 00-44 44v148c0 81.7 60 149.6 138.2 162C265.6 630.2 359 721.8 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.8 758.4 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 00-44-44zM248 439.6c-37.1-11.9-64-46.7-64-87.6V232h64v207.6zM840 352c0 41-26.9 75.8-64 87.6V232h64v120z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/twitter-circle.js b/src/blrec/data/webapp/assets/fill/twitter-circle.js new file mode 100644 index 0000000..d9e19a2 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/twitter-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'twitter-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm215.3 337.7c.3 4.7.3 9.6.3 14.4 0 146.8-111.8 315.9-316.1 315.9-63 0-121.4-18.3-170.6-49.8 9 1 17.6 1.4 26.8 1.4 52 0 99.8-17.6 137.9-47.4-48.8-1-89.8-33-103.8-77 17.1 2.5 32.5 2.5 50.1-2a111 111 0 01-88.9-109v-1.4c14.7 8.3 32 13.4 50.1 14.1a111.13 111.13 0 01-49.5-92.4c0-20.7 5.4-39.6 15.1-56a315.28 315.28 0 00229 116.1C492 353.1 548.4 292 616.2 292c32 0 60.8 13.4 81.1 35 25.1-4.7 49.1-14.1 70.5-26.7-8.3 25.7-25.7 47.4-48.8 61.1 22.4-2.4 44-8.6 64-17.3-15.1 22.2-34 41.9-55.7 57.6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/twitter-circle.svg b/src/blrec/data/webapp/assets/fill/twitter-circle.svg new file mode 100644 index 0000000..af5b899 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/twitter-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm215.3 337.7c.3 4.7.3 9.6.3 14.4 0 146.8-111.8 315.9-316.1 315.9-63 0-121.4-18.3-170.6-49.8 9 1 17.6 1.4 26.8 1.4 52 0 99.8-17.6 137.9-47.4-48.8-1-89.8-33-103.8-77 17.1 2.5 32.5 2.5 50.1-2a111 111 0 01-88.9-109v-1.4c14.7 8.3 32 13.4 50.1 14.1a111.13 111.13 0 01-49.5-92.4c0-20.7 5.4-39.6 15.1-56a315.28 315.28 0 00229 116.1C492 353.1 548.4 292 616.2 292c32 0 60.8 13.4 81.1 35 25.1-4.7 49.1-14.1 70.5-26.7-8.3 25.7-25.7 47.4-48.8 61.1 22.4-2.4 44-8.6 64-17.3-15.1 22.2-34 41.9-55.7 57.6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/twitter-square.js b/src/blrec/data/webapp/assets/fill/twitter-square.js new file mode 100644 index 0000000..fd39b28 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/twitter-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'twitter-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM727.3 401.7c.3 4.7.3 9.6.3 14.4 0 146.8-111.8 315.9-316.1 315.9-63 0-121.4-18.3-170.6-49.8 9 1 17.6 1.4 26.8 1.4 52 0 99.8-17.6 137.9-47.4-48.8-1-89.8-33-103.8-77 17.1 2.5 32.5 2.5 50.1-2a111 111 0 01-88.9-109v-1.4c14.7 8.3 32 13.4 50.1 14.1a111.13 111.13 0 01-49.5-92.4c0-20.7 5.4-39.6 15.1-56a315.28 315.28 0 00229 116.1C492 353.1 548.4 292 616.2 292c32 0 60.8 13.4 81.1 35 25.1-4.7 49.1-14.1 70.5-26.7-8.3 25.7-25.7 47.4-48.8 61.1 22.4-2.4 44-8.6 64-17.3-15.1 22.2-34 41.9-55.7 57.6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/twitter-square.svg b/src/blrec/data/webapp/assets/fill/twitter-square.svg new file mode 100644 index 0000000..cf18ded --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/twitter-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM727.3 401.7c.3 4.7.3 9.6.3 14.4 0 146.8-111.8 315.9-316.1 315.9-63 0-121.4-18.3-170.6-49.8 9 1 17.6 1.4 26.8 1.4 52 0 99.8-17.6 137.9-47.4-48.8-1-89.8-33-103.8-77 17.1 2.5 32.5 2.5 50.1-2a111 111 0 01-88.9-109v-1.4c14.7 8.3 32 13.4 50.1 14.1a111.13 111.13 0 01-49.5-92.4c0-20.7 5.4-39.6 15.1-56a315.28 315.28 0 00229 116.1C492 353.1 548.4 292 616.2 292c32 0 60.8 13.4 81.1 35 25.1-4.7 49.1-14.1 70.5-26.7-8.3 25.7-25.7 47.4-48.8 61.1 22.4-2.4 44-8.6 64-17.3-15.1 22.2-34 41.9-55.7 57.6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/unlock.js b/src/blrec/data/webapp/assets/fill/unlock.js new file mode 100644 index 0000000..1badd6b --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/unlock.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'unlock', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM540 701v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 1156 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/unlock.svg b/src/blrec/data/webapp/assets/fill/unlock.svg new file mode 100644 index 0000000..d3e117c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/unlock.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM540 701v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 1156 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/up-circle.js b/src/blrec/data/webapp/assets/fill/up-circle.js new file mode 100644 index 0000000..bdc3c9a --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/up-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'up-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm178 555h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 460.4 406.8 605.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/up-circle.svg b/src/blrec/data/webapp/assets/fill/up-circle.svg new file mode 100644 index 0000000..c9a1f0c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/up-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm178 555h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 460.4 406.8 605.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/up-square.js b/src/blrec/data/webapp/assets/fill/up-square.js new file mode 100644 index 0000000..d78687f --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/up-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'up-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM690 624h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 465.4 406.8 610.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/up-square.svg b/src/blrec/data/webapp/assets/fill/up-square.svg new file mode 100644 index 0000000..92d60ea --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/up-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM690 624h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 465.4 406.8 610.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/usb.js b/src/blrec/data/webapp/assets/fill/usb.js new file mode 100644 index 0000000..d8dd6a7 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/usb.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'usb', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M408 312h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm352 120V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zm-72 0H336V184h352v248zM568 312h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/usb.svg b/src/blrec/data/webapp/assets/fill/usb.svg new file mode 100644 index 0000000..36903db --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/usb.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M408 312h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm352 120V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zm-72 0H336V184h352v248zM568 312h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/video-camera.js b/src/blrec/data/webapp/assets/fill/video-camera.js new file mode 100644 index 0000000..0ecd488 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/video-camera.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'video-camera', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM328 352c0 4.4-3.6 8-8 8H208c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v48zm560 273l-104-59.8V458.9L888 399v226z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/video-camera.svg b/src/blrec/data/webapp/assets/fill/video-camera.svg new file mode 100644 index 0000000..60f7ca5 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/video-camera.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM328 352c0 4.4-3.6 8-8 8H208c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v48zm560 273l-104-59.8V458.9L888 399v226z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/wallet.js b/src/blrec/data/webapp/assets/fill/wallet.js new file mode 100644 index 0000000..0c783ee --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/wallet.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'wallet', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-32 464H528V448h320v128zm-268-64a40 40 0 1080 0 40 40 0 10-80 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/wallet.svg b/src/blrec/data/webapp/assets/fill/wallet.svg new file mode 100644 index 0000000..ff5578c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/wallet.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-32 464H528V448h320v128zm-268-64a40 40 0 1080 0 40 40 0 10-80 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/warning.js b/src/blrec/data/webapp/assets/fill/warning.js new file mode 100644 index 0000000..5504a0d --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/warning.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'warning', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/warning.svg b/src/blrec/data/webapp/assets/fill/warning.svg new file mode 100644 index 0000000..49023fe --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/warning.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/wechat.js b/src/blrec/data/webapp/assets/fill/wechat.js new file mode 100644 index 0000000..d65d6a3 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/wechat.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'wechat', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M690.1 377.4c5.9 0 11.8.2 17.6.5-24.4-128.7-158.3-227.1-319.9-227.1C209 150.8 64 271.4 64 420.2c0 81.1 43.6 154.2 111.9 203.6a21.5 21.5 0 019.1 17.6c0 2.4-.5 4.6-1.1 6.9-5.5 20.3-14.2 52.8-14.6 54.3-.7 2.6-1.7 5.2-1.7 7.9 0 5.9 4.8 10.8 10.8 10.8 2.3 0 4.2-.9 6.2-2l70.9-40.9c5.3-3.1 11-5 17.2-5 3.2 0 6.4.5 9.5 1.4 33.1 9.5 68.8 14.8 105.7 14.8 6 0 11.9-.1 17.8-.4-7.1-21-10.9-43.1-10.9-66 0-135.8 132.2-245.8 295.3-245.8zm-194.3-86.5c23.8 0 43.2 19.3 43.2 43.1s-19.3 43.1-43.2 43.1c-23.8 0-43.2-19.3-43.2-43.1s19.4-43.1 43.2-43.1zm-215.9 86.2c-23.8 0-43.2-19.3-43.2-43.1s19.3-43.1 43.2-43.1 43.2 19.3 43.2 43.1-19.4 43.1-43.2 43.1zm586.8 415.6c56.9-41.2 93.2-102 93.2-169.7 0-124-120.8-224.5-269.9-224.5-149 0-269.9 100.5-269.9 224.5S540.9 847.5 690 847.5c30.8 0 60.6-4.4 88.1-12.3 2.6-.8 5.2-1.2 7.9-1.2 5.2 0 9.9 1.6 14.3 4.1l59.1 34c1.7 1 3.3 1.7 5.2 1.7a9 9 0 006.4-2.6 9 9 0 002.6-6.4c0-2.2-.9-4.4-1.4-6.6-.3-1.2-7.6-28.3-12.2-45.3-.5-1.9-.9-3.8-.9-5.7.1-5.9 3.1-11.2 7.6-14.5zM600.2 587.2c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9c0 19.8-16.2 35.9-36 35.9zm179.9 0c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9a36.08 36.08 0 01-36 35.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/wechat.svg b/src/blrec/data/webapp/assets/fill/wechat.svg new file mode 100644 index 0000000..755e672 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/wechat.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M690.1 377.4c5.9 0 11.8.2 17.6.5-24.4-128.7-158.3-227.1-319.9-227.1C209 150.8 64 271.4 64 420.2c0 81.1 43.6 154.2 111.9 203.6a21.5 21.5 0 019.1 17.6c0 2.4-.5 4.6-1.1 6.9-5.5 20.3-14.2 52.8-14.6 54.3-.7 2.6-1.7 5.2-1.7 7.9 0 5.9 4.8 10.8 10.8 10.8 2.3 0 4.2-.9 6.2-2l70.9-40.9c5.3-3.1 11-5 17.2-5 3.2 0 6.4.5 9.5 1.4 33.1 9.5 68.8 14.8 105.7 14.8 6 0 11.9-.1 17.8-.4-7.1-21-10.9-43.1-10.9-66 0-135.8 132.2-245.8 295.3-245.8zm-194.3-86.5c23.8 0 43.2 19.3 43.2 43.1s-19.3 43.1-43.2 43.1c-23.8 0-43.2-19.3-43.2-43.1s19.4-43.1 43.2-43.1zm-215.9 86.2c-23.8 0-43.2-19.3-43.2-43.1s19.3-43.1 43.2-43.1 43.2 19.3 43.2 43.1-19.4 43.1-43.2 43.1zm586.8 415.6c56.9-41.2 93.2-102 93.2-169.7 0-124-120.8-224.5-269.9-224.5-149 0-269.9 100.5-269.9 224.5S540.9 847.5 690 847.5c30.8 0 60.6-4.4 88.1-12.3 2.6-.8 5.2-1.2 7.9-1.2 5.2 0 9.9 1.6 14.3 4.1l59.1 34c1.7 1 3.3 1.7 5.2 1.7a9 9 0 006.4-2.6 9 9 0 002.6-6.4c0-2.2-.9-4.4-1.4-6.6-.3-1.2-7.6-28.3-12.2-45.3-.5-1.9-.9-3.8-.9-5.7.1-5.9 3.1-11.2 7.6-14.5zM600.2 587.2c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9c0 19.8-16.2 35.9-36 35.9zm179.9 0c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9a36.08 36.08 0 01-36 35.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/weibo-circle.js b/src/blrec/data/webapp/assets/fill/weibo-circle.js new file mode 100644 index 0000000..455fc1c --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/weibo-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'weibo-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-44.4 672C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 00-7.2-34.1 34.68 34.68 0 00-33.1-10.7 18.24 18.24 0 01-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 01-22.9 11.7 18.18 18.18 0 01-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 01-26.6 13.7 21.19 21.19 0 01-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 00-98.9-32.1 21.14 21.14 0 01-25.1-16.3 21.07 21.07 0 0116.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-93-32.2c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zm34.9-14.5c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/weibo-circle.svg b/src/blrec/data/webapp/assets/fill/weibo-circle.svg new file mode 100644 index 0000000..414bbce --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/weibo-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-44.4 672C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 00-7.2-34.1 34.68 34.68 0 00-33.1-10.7 18.24 18.24 0 01-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 01-22.9 11.7 18.18 18.18 0 01-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 01-26.6 13.7 21.19 21.19 0 01-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 00-98.9-32.1 21.14 21.14 0 01-25.1-16.3 21.07 21.07 0 0116.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-93-32.2c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zm34.9-14.5c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/weibo-square.js b/src/blrec/data/webapp/assets/fill/weibo-square.js new file mode 100644 index 0000000..6eec836 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/weibo-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'weibo-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M433.6 595.1c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM467.6 736C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 00-7.2-34.1 34.68 34.68 0 00-33.1-10.7 18.24 18.24 0 01-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 01-22.9 11.7 18.18 18.18 0 01-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 01-26.6 13.7 21.19 21.19 0 01-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 00-98.9-32.1 21.14 21.14 0 01-25.1-16.3 21.07 21.07 0 0116.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-58.1-46.7c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/weibo-square.svg b/src/blrec/data/webapp/assets/fill/weibo-square.svg new file mode 100644 index 0000000..bd47a6a --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/weibo-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M433.6 595.1c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM467.6 736C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 00-7.2-34.1 34.68 34.68 0 00-33.1-10.7 18.24 18.24 0 01-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 01-22.9 11.7 18.18 18.18 0 01-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 01-26.6 13.7 21.19 21.19 0 01-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 00-98.9-32.1 21.14 21.14 0 01-25.1-16.3 21.07 21.07 0 0116.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-58.1-46.7c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/windows.js b/src/blrec/data/webapp/assets/fill/windows.js new file mode 100644 index 0000000..d42dd57 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/windows.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'windows', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M523.8 191.4v288.9h382V128.1zm0 642.2l382 62.2v-352h-382zM120.1 480.2H443V201.9l-322.9 53.5zm0 290.4L443 823.2V543.8H120.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/windows.svg b/src/blrec/data/webapp/assets/fill/windows.svg new file mode 100644 index 0000000..1994dcb --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/windows.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M523.8 191.4v288.9h382V128.1zm0 642.2l382 62.2v-352h-382zM120.1 480.2H443V201.9l-322.9 53.5zm0 290.4L443 823.2V543.8H120.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/yahoo.js b/src/blrec/data/webapp/assets/fill/yahoo.js new file mode 100644 index 0000000..f1dad0d --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/yahoo.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'yahoo', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M937.3 231H824.7c-15.5 0-27.7 12.6-27.1 28.1l13.1 366h84.4l65.4-366.4c2.7-15.2-7.8-27.7-23.2-27.7zm-77.4 450.4h-14.1c-27.1 0-49.2 22.2-49.2 49.3v14.1c0 27.1 22.2 49.3 49.2 49.3h14.1c27.1 0 49.2-22.2 49.2-49.3v-14.1c0-27.1-22.2-49.3-49.2-49.3zM402.6 231C216.2 231 65 357 65 512.5S216.2 794 402.6 794s337.6-126 337.6-281.5S589.1 231 402.6 231zm225.2 225.2h-65.3L458.9 559.8v65.3h84.4v56.3H318.2v-56.3h84.4v-65.3L242.9 399.9h-37v-56.3h168.5v56.3h-37l93.4 93.5 28.1-28.1V400h168.8v56.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/yahoo.svg b/src/blrec/data/webapp/assets/fill/yahoo.svg new file mode 100644 index 0000000..5970eb2 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/yahoo.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M937.3 231H824.7c-15.5 0-27.7 12.6-27.1 28.1l13.1 366h84.4l65.4-366.4c2.7-15.2-7.8-27.7-23.2-27.7zm-77.4 450.4h-14.1c-27.1 0-49.2 22.2-49.2 49.3v14.1c0 27.1 22.2 49.3 49.2 49.3h14.1c27.1 0 49.2-22.2 49.2-49.3v-14.1c0-27.1-22.2-49.3-49.2-49.3zM402.6 231C216.2 231 65 357 65 512.5S216.2 794 402.6 794s337.6-126 337.6-281.5S589.1 231 402.6 231zm225.2 225.2h-65.3L458.9 559.8v65.3h84.4v56.3H318.2v-56.3h84.4v-65.3L242.9 399.9h-37v-56.3h168.5v56.3h-37l93.4 93.5 28.1-28.1V400h168.8v56.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/youtube.js b/src/blrec/data/webapp/assets/fill/youtube.js new file mode 100644 index 0000000..644c065 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/youtube.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'youtube', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M941.3 296.1a112.3 112.3 0 00-79.2-79.3C792.2 198 512 198 512 198s-280.2 0-350.1 18.7A112.12 112.12 0 0082.7 296C64 366 64 512 64 512s0 146 18.7 215.9c10.3 38.6 40.7 69 79.2 79.3C231.8 826 512 826 512 826s280.2 0 350.1-18.8c38.6-10.3 68.9-40.7 79.2-79.3C960 658 960 512 960 512s0-146-18.7-215.9zM423 646V378l232 133-232 135z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/youtube.svg b/src/blrec/data/webapp/assets/fill/youtube.svg new file mode 100644 index 0000000..dab1007 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/youtube.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M941.3 296.1a112.3 112.3 0 00-79.2-79.3C792.2 198 512 198 512 198s-280.2 0-350.1 18.7A112.12 112.12 0 0082.7 296C64 366 64 512 64 512s0 146 18.7 215.9c10.3 38.6 40.7 69 79.2 79.3C231.8 826 512 826 512 826s280.2 0 350.1-18.8c38.6-10.3 68.9-40.7 79.2-79.3C960 658 960 512 960 512s0-146-18.7-215.9zM423 646V378l232 133-232 135z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/yuque.js b/src/blrec/data/webapp/assets/fill/yuque.js new file mode 100644 index 0000000..20095a9 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/yuque.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'yuque', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 370.6c-9.9-39.4 9.9-102.2 73.4-124.4l-67.9-3.6s-25.7-90-143.6-98c-117.9-8.1-195-3-195-3s87.4 55.6 52.4 154.7c-25.6 52.5-65.8 95.6-108.8 144.7-1.3 1.3-2.5 2.6-3.5 3.7C319.4 605 96 860 96 860c245.9 64.4 410.7-6.3 508.2-91.1 20.5-.2 35.9-.3 46.3-.3 135.8 0 250.6-117.6 245.9-248.4-3.2-89.9-31.9-110.2-41.8-149.6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/yuque.svg b/src/blrec/data/webapp/assets/fill/yuque.svg new file mode 100644 index 0000000..b1b69a2 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/yuque.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 370.6c-9.9-39.4 9.9-102.2 73.4-124.4l-67.9-3.6s-25.7-90-143.6-98c-117.9-8.1-195-3-195-3s87.4 55.6 52.4 154.7c-25.6 52.5-65.8 95.6-108.8 144.7-1.3 1.3-2.5 2.6-3.5 3.7C319.4 605 96 860 96 860c245.9 64.4 410.7-6.3 508.2-91.1 20.5-.2 35.9-.3 46.3-.3 135.8 0 250.6-117.6 245.9-248.4-3.2-89.9-31.9-110.2-41.8-149.6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/zhihu-circle.js b/src/blrec/data/webapp/assets/fill/zhihu-circle.js new file mode 100644 index 0000000..60837d3 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/zhihu-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'zhihu-circle', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-90.7 477.8l-.1 1.5c-1.5 20.4-6.3 43.9-12.9 67.6l24-18.1 71 80.7c9.2 33-3.3 63.1-3.3 63.1l-95.7-111.9v-.1c-8.9 29-20.1 57.3-33.3 84.7-22.6 45.7-55.2 54.7-89.5 57.7-34.4 3-23.3-5.3-23.3-5.3 68-55.5 78-87.8 96.8-123.1 11.9-22.3 20.4-64.3 25.3-96.8H264.1s4.8-31.2 19.2-41.7h101.6c.6-15.3-1.3-102.8-2-131.4h-49.4c-9.2 45-41 56.7-48.1 60.1-7 3.4-23.6 7.1-21.1 0 2.6-7.1 27-46.2 43.2-110.7 16.3-64.6 63.9-62 63.9-62-12.8 22.5-22.4 73.6-22.4 73.6h159.7c10.1 0 10.6 39 10.6 39h-90.8c-.7 22.7-2.8 83.8-5 131.4H519s12.2 15.4 12.2 41.7H421.3zm346.5 167h-87.6l-69.5 46.6-16.4-46.6h-40.1V321.5h213.6v387.3zM408.2 611s0-.1 0 0zm216 94.3l56.8-38.1h45.6-.1V364.7H596.7v302.5h14.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/zhihu-circle.svg b/src/blrec/data/webapp/assets/fill/zhihu-circle.svg new file mode 100644 index 0000000..450a858 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/zhihu-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-90.7 477.8l-.1 1.5c-1.5 20.4-6.3 43.9-12.9 67.6l24-18.1 71 80.7c9.2 33-3.3 63.1-3.3 63.1l-95.7-111.9v-.1c-8.9 29-20.1 57.3-33.3 84.7-22.6 45.7-55.2 54.7-89.5 57.7-34.4 3-23.3-5.3-23.3-5.3 68-55.5 78-87.8 96.8-123.1 11.9-22.3 20.4-64.3 25.3-96.8H264.1s4.8-31.2 19.2-41.7h101.6c.6-15.3-1.3-102.8-2-131.4h-49.4c-9.2 45-41 56.7-48.1 60.1-7 3.4-23.6 7.1-21.1 0 2.6-7.1 27-46.2 43.2-110.7 16.3-64.6 63.9-62 63.9-62-12.8 22.5-22.4 73.6-22.4 73.6h159.7c10.1 0 10.6 39 10.6 39h-90.8c-.7 22.7-2.8 83.8-5 131.4H519s12.2 15.4 12.2 41.7H421.3zm346.5 167h-87.6l-69.5 46.6-16.4-46.6h-40.1V321.5h213.6v387.3zM408.2 611s0-.1 0 0zm216 94.3l56.8-38.1h45.6-.1V364.7H596.7v302.5h14.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/zhihu-square.js b/src/blrec/data/webapp/assets/fill/zhihu-square.js new file mode 100644 index 0000000..fce761f --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/zhihu-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'zhihu-square', + theme: 'fill', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM432.3 592.8l71 80.7c9.2 33-3.3 63.1-3.3 63.1l-95.7-111.9v-.1c-8.9 29-20.1 57.3-33.3 84.7-22.6 45.7-55.2 54.7-89.5 57.7-34.4 3-23.3-5.3-23.3-5.3 68-55.5 78-87.8 96.8-123.1 11.9-22.3 20.4-64.3 25.3-96.8H264.1s4.8-31.2 19.2-41.7h101.6c.6-15.3-1.3-102.8-2-131.4h-49.4c-9.2 45-41 56.7-48.1 60.1-7 3.4-23.6 7.1-21.1 0 2.6-7.1 27-46.2 43.2-110.7 16.3-64.6 63.9-62 63.9-62-12.8 22.5-22.4 73.6-22.4 73.6h159.7c10.1 0 10.6 39 10.6 39h-90.8c-.7 22.7-2.8 83.8-5 131.4H519s12.2 15.4 12.2 41.7h-110l-.1 1.5c-1.5 20.4-6.3 43.9-12.9 67.6l24.1-18.1zm335.5 116h-87.6l-69.5 46.6-16.4-46.6h-40.1V321.5h213.6v387.3zM408.2 611s0-.1 0 0zm216 94.3l56.8-38.1h45.6-.1V364.7H596.7v302.5h14.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/fill/zhihu-square.svg b/src/blrec/data/webapp/assets/fill/zhihu-square.svg new file mode 100644 index 0000000..9da0638 --- /dev/null +++ b/src/blrec/data/webapp/assets/fill/zhihu-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM432.3 592.8l71 80.7c9.2 33-3.3 63.1-3.3 63.1l-95.7-111.9v-.1c-8.9 29-20.1 57.3-33.3 84.7-22.6 45.7-55.2 54.7-89.5 57.7-34.4 3-23.3-5.3-23.3-5.3 68-55.5 78-87.8 96.8-123.1 11.9-22.3 20.4-64.3 25.3-96.8H264.1s4.8-31.2 19.2-41.7h101.6c.6-15.3-1.3-102.8-2-131.4h-49.4c-9.2 45-41 56.7-48.1 60.1-7 3.4-23.6 7.1-21.1 0 2.6-7.1 27-46.2 43.2-110.7 16.3-64.6 63.9-62 63.9-62-12.8 22.5-22.4 73.6-22.4 73.6h159.7c10.1 0 10.6 39 10.6 39h-90.8c-.7 22.7-2.8 83.8-5 131.4H519s12.2 15.4 12.2 41.7h-110l-.1 1.5c-1.5 20.4-6.3 43.9-12.9 67.6l24.1-18.1zm335.5 116h-87.6l-69.5 46.6-16.4-46.6h-40.1V321.5h213.6v387.3zM408.2 611s0-.1 0 0zm216 94.3l56.8-38.1h45.6-.1V364.7H596.7v302.5h14.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/icons/icon-128x128.png b/src/blrec/data/webapp/assets/icons/icon-128x128.png new file mode 100644 index 0000000..f36ffbe Binary files /dev/null and b/src/blrec/data/webapp/assets/icons/icon-128x128.png differ diff --git a/src/blrec/data/webapp/assets/icons/icon-144x144.png b/src/blrec/data/webapp/assets/icons/icon-144x144.png new file mode 100644 index 0000000..9ccb8d6 Binary files /dev/null and b/src/blrec/data/webapp/assets/icons/icon-144x144.png differ diff --git a/src/blrec/data/webapp/assets/icons/icon-152x152.png b/src/blrec/data/webapp/assets/icons/icon-152x152.png new file mode 100644 index 0000000..899ae5f Binary files /dev/null and b/src/blrec/data/webapp/assets/icons/icon-152x152.png differ diff --git a/src/blrec/data/webapp/assets/icons/icon-192x192.png b/src/blrec/data/webapp/assets/icons/icon-192x192.png new file mode 100644 index 0000000..1490ee5 Binary files /dev/null and b/src/blrec/data/webapp/assets/icons/icon-192x192.png differ diff --git a/src/blrec/data/webapp/assets/icons/icon-384x384.png b/src/blrec/data/webapp/assets/icons/icon-384x384.png new file mode 100644 index 0000000..cbcaf18 Binary files /dev/null and b/src/blrec/data/webapp/assets/icons/icon-384x384.png differ diff --git a/src/blrec/data/webapp/assets/icons/icon-512x512.png b/src/blrec/data/webapp/assets/icons/icon-512x512.png new file mode 100644 index 0000000..4fa8b5f Binary files /dev/null and b/src/blrec/data/webapp/assets/icons/icon-512x512.png differ diff --git a/src/blrec/data/webapp/assets/icons/icon-72x72.png b/src/blrec/data/webapp/assets/icons/icon-72x72.png new file mode 100644 index 0000000..ccb56b0 Binary files /dev/null and b/src/blrec/data/webapp/assets/icons/icon-72x72.png differ diff --git a/src/blrec/data/webapp/assets/icons/icon-96x96.png b/src/blrec/data/webapp/assets/icons/icon-96x96.png new file mode 100644 index 0000000..1b1d510 Binary files /dev/null and b/src/blrec/data/webapp/assets/icons/icon-96x96.png differ diff --git a/src/blrec/data/webapp/assets/images/bili-404.png b/src/blrec/data/webapp/assets/images/bili-404.png new file mode 100644 index 0000000..9e00962 Binary files /dev/null and b/src/blrec/data/webapp/assets/images/bili-404.png differ diff --git a/src/blrec/data/webapp/assets/images/logo.png b/src/blrec/data/webapp/assets/images/logo.png new file mode 100644 index 0000000..d1a21b7 Binary files /dev/null and b/src/blrec/data/webapp/assets/images/logo.png differ diff --git a/src/blrec/data/webapp/assets/outline/.gitkeep b/src/blrec/data/webapp/assets/outline/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/blrec/data/webapp/assets/outline/account-book.js b/src/blrec/data/webapp/assets/outline/account-book.js new file mode 100644 index 0000000..5223e27 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/account-book.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'account-book', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584zM639.5 414h-45c-3 0-5.8 1.7-7.1 4.4L514 563.8h-2.8l-73.4-145.4a8 8 0 00-7.1-4.4h-46c-1.3 0-2.7.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9l89.3 164h-48.6c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1v33.7h-65.1c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1V752c0 4.4 3.6 8 8 8h41.3c4.4 0 8-3.6 8-8v-53.8h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-65.4v-33.7h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-49.1l89.3-164.1c.6-1.2 1-2.5 1-3.8.1-4.4-3.4-8-7.9-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/account-book.svg b/src/blrec/data/webapp/assets/outline/account-book.svg new file mode 100644 index 0000000..dac2140 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/account-book.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584zM639.5 414h-45c-3 0-5.8 1.7-7.1 4.4L514 563.8h-2.8l-73.4-145.4a8 8 0 00-7.1-4.4h-46c-1.3 0-2.7.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9l89.3 164h-48.6c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1v33.7h-65.1c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1V752c0 4.4 3.6 8 8 8h41.3c4.4 0 8-3.6 8-8v-53.8h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-65.4v-33.7h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-49.1l89.3-164.1c.6-1.2 1-2.5 1-3.8.1-4.4-3.4-8-7.9-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/aim.js b/src/blrec/data/webapp/assets/outline/aim.js new file mode 100644 index 0000000..4a6399d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/aim.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'aim', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M952 474H829.8C812.5 327.6 696.4 211.5 550 194.2V72c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v122.2C327.6 211.5 211.5 327.6 194.2 474H72c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h122.2C211.5 696.4 327.6 812.5 474 829.8V952c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V829.8C696.4 812.5 812.5 696.4 829.8 550H952c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM512 756c-134.8 0-244-109.2-244-244s109.2-244 244-244 244 109.2 244 244-109.2 244-244 244z" /><path d="M512 392c-32.1 0-62.1 12.4-84.8 35.2-22.7 22.7-35.2 52.7-35.2 84.8s12.5 62.1 35.2 84.8C449.9 619.4 480 632 512 632s62.1-12.5 84.8-35.2C619.4 574.1 632 544 632 512s-12.5-62.1-35.2-84.8A118.57 118.57 0 00512 392z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/aim.svg b/src/blrec/data/webapp/assets/outline/aim.svg new file mode 100644 index 0000000..5b2b299 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/aim.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M952 474H829.8C812.5 327.6 696.4 211.5 550 194.2V72c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v122.2C327.6 211.5 211.5 327.6 194.2 474H72c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h122.2C211.5 696.4 327.6 812.5 474 829.8V952c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V829.8C696.4 812.5 812.5 696.4 829.8 550H952c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM512 756c-134.8 0-244-109.2-244-244s109.2-244 244-244 244 109.2 244 244-109.2 244-244 244z" /><path d="M512 392c-32.1 0-62.1 12.4-84.8 35.2-22.7 22.7-35.2 52.7-35.2 84.8s12.5 62.1 35.2 84.8C449.9 619.4 480 632 512 632s62.1-12.5 84.8-35.2C619.4 574.1 632 544 632 512s-12.5-62.1-35.2-84.8A118.57 118.57 0 00512 392z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/alert.js b/src/blrec/data/webapp/assets/outline/alert.js new file mode 100644 index 0000000..49d5bef --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/alert.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'alert', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M193 796c0 17.7 14.3 32 32 32h574c17.7 0 32-14.3 32-32V563c0-176.2-142.8-319-319-319S193 386.8 193 563v233zm72-233c0-136.4 110.6-247 247-247s247 110.6 247 247v193H404V585c0-5.5-4.5-10-10-10h-44c-5.5 0-10 4.5-10 10v171h-75V563zm-48.1-252.5l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3l-67.9-67.9a8.03 8.03 0 00-11.3 0l-39.6 39.6a8.03 8.03 0 000 11.3l67.9 67.9c3.1 3.1 8.1 3.1 11.3 0zm669.6-79.2l-39.6-39.6a8.03 8.03 0 00-11.3 0l-67.9 67.9a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l67.9-67.9c3.1-3.2 3.1-8.2 0-11.3zM832 892H192c-17.7 0-32 14.3-32 32v24c0 4.4 3.6 8 8 8h688c4.4 0 8-3.6 8-8v-24c0-17.7-14.3-32-32-32zM484 180h56c4.4 0 8-3.6 8-8V76c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v96c0 4.4 3.6 8 8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/alert.svg b/src/blrec/data/webapp/assets/outline/alert.svg new file mode 100644 index 0000000..14c5bcd --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/alert.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M193 796c0 17.7 14.3 32 32 32h574c17.7 0 32-14.3 32-32V563c0-176.2-142.8-319-319-319S193 386.8 193 563v233zm72-233c0-136.4 110.6-247 247-247s247 110.6 247 247v193H404V585c0-5.5-4.5-10-10-10h-44c-5.5 0-10 4.5-10 10v171h-75V563zm-48.1-252.5l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3l-67.9-67.9a8.03 8.03 0 00-11.3 0l-39.6 39.6a8.03 8.03 0 000 11.3l67.9 67.9c3.1 3.1 8.1 3.1 11.3 0zm669.6-79.2l-39.6-39.6a8.03 8.03 0 00-11.3 0l-67.9 67.9a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l67.9-67.9c3.1-3.2 3.1-8.2 0-11.3zM832 892H192c-17.7 0-32 14.3-32 32v24c0 4.4 3.6 8 8 8h688c4.4 0 8-3.6 8-8v-24c0-17.7-14.3-32-32-32zM484 180h56c4.4 0 8-3.6 8-8V76c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v96c0 4.4 3.6 8 8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/alibaba.js b/src/blrec/data/webapp/assets/outline/alibaba.js new file mode 100644 index 0000000..9fd396e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/alibaba.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'alibaba', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M602.9 669.8c-37.2 2.6-33.6-17.3-11.5-46.2 50.4-67.2 143.7-158.5 147.9-225.2 5.8-86.6-81.3-113.4-171-113.4-62.4 1.6-127 18.9-171 34.6-151.6 53.5-246.6 137.5-306.9 232-62.4 93.4-43 183.2 91.8 185.8 101.8-4.2 170.5-32.5 239.7-68.2.5 0-192.5 55.1-263.9 14.7-7.9-4.2-15.7-10-17.8-26.2 0-33.1 54.6-67.7 86.6-78.7v-56.7c64.5 22.6 140.6 16.3 205.7-32 2.1 5.8 4.2 13.1 3.7 21h11c2.6-22.6-12.6-44.6-37.8-46.2 7.3 5.8 12.6 10.5 15.2 14.7l-1 1-.5.5c-83.9 58.8-165.3 31.5-173.1 29.9l46.7-45.7-13.1-33.1c92.9-32.5 169.5-56.2 296.9-78.7l-28.5-23 14.7-8.9c75.5 21 126.4 36.7 123.8 76.6-1 6.8-3.7 14.7-7.9 23.1C660.1 466.1 594 538 567.2 569c-17.3 20.5-34.6 39.4-46.7 58.3-13.6 19.4-20.5 37.3-21 53.5 2.6 131.8 391.4-61.9 468-112.9-111.7 47.8-232.9 93.5-364.6 101.9zm85-302.9c2.8 5.2 4.1 11.6 4.1 19.1-.1-6.8-1.4-13.3-4.1-19.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/alibaba.svg b/src/blrec/data/webapp/assets/outline/alibaba.svg new file mode 100644 index 0000000..bdcbf71 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/alibaba.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M602.9 669.8c-37.2 2.6-33.6-17.3-11.5-46.2 50.4-67.2 143.7-158.5 147.9-225.2 5.8-86.6-81.3-113.4-171-113.4-62.4 1.6-127 18.9-171 34.6-151.6 53.5-246.6 137.5-306.9 232-62.4 93.4-43 183.2 91.8 185.8 101.8-4.2 170.5-32.5 239.7-68.2.5 0-192.5 55.1-263.9 14.7-7.9-4.2-15.7-10-17.8-26.2 0-33.1 54.6-67.7 86.6-78.7v-56.7c64.5 22.6 140.6 16.3 205.7-32 2.1 5.8 4.2 13.1 3.7 21h11c2.6-22.6-12.6-44.6-37.8-46.2 7.3 5.8 12.6 10.5 15.2 14.7l-1 1-.5.5c-83.9 58.8-165.3 31.5-173.1 29.9l46.7-45.7-13.1-33.1c92.9-32.5 169.5-56.2 296.9-78.7l-28.5-23 14.7-8.9c75.5 21 126.4 36.7 123.8 76.6-1 6.8-3.7 14.7-7.9 23.1C660.1 466.1 594 538 567.2 569c-17.3 20.5-34.6 39.4-46.7 58.3-13.6 19.4-20.5 37.3-21 53.5 2.6 131.8 391.4-61.9 468-112.9-111.7 47.8-232.9 93.5-364.6 101.9zm85-302.9c2.8 5.2 4.1 11.6 4.1 19.1-.1-6.8-1.4-13.3-4.1-19.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/align-center.js b/src/blrec/data/webapp/assets/outline/align-center.js new file mode 100644 index 0000000..d67488d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/align-center.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'align-center', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M264 230h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm496 424c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496zm144 140H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/align-center.svg b/src/blrec/data/webapp/assets/outline/align-center.svg new file mode 100644 index 0000000..88940f4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/align-center.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M264 230h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm496 424c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496zm144 140H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/align-left.js b/src/blrec/data/webapp/assets/outline/align-left.js new file mode 100644 index 0000000..fc5c3fb --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/align-left.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'align-left', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M120 230h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 424h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm784 140H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/align-left.svg b/src/blrec/data/webapp/assets/outline/align-left.svg new file mode 100644 index 0000000..8abe521 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/align-left.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M120 230h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 424h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm784 140H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/align-right.js b/src/blrec/data/webapp/assets/outline/align-right.js new file mode 100644 index 0000000..c722c40 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/align-right.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'align-right', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M904 158H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 424H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 212H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/align-right.svg b/src/blrec/data/webapp/assets/outline/align-right.svg new file mode 100644 index 0000000..6dab41e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/align-right.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M904 158H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 424H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 212H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-424H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/alipay-circle.js b/src/blrec/data/webapp/assets/outline/alipay-circle.js new file mode 100644 index 0000000..099de08 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/alipay-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'alipay-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zm460.5 67c100.1 33.4 154.7 43 166.7 44.8A445.9 445.9 0 00960 512c0-247.4-200.6-448-448-448S64 264.6 64 512s200.6 448 448 448c155.9 0 293.2-79.7 373.5-200.5-75.6-29.8-213.6-85-286.8-120.1-69.9 85.7-160.1 137.8-253.7 137.8-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/alipay-circle.svg b/src/blrec/data/webapp/assets/outline/alipay-circle.svg new file mode 100644 index 0000000..f15fe6f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/alipay-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M308.6 545.7c-19.8 2-57.1 10.7-77.4 28.6-61 53-24.5 150 99 150 71.8 0 143.5-45.7 199.8-119-80.2-38.9-148.1-66.8-221.4-59.6zm460.5 67c100.1 33.4 154.7 43 166.7 44.8A445.9 445.9 0 00960 512c0-247.4-200.6-448-448-448S64 264.6 64 512s200.6 448 448 448c155.9 0 293.2-79.7 373.5-200.5-75.6-29.8-213.6-85-286.8-120.1-69.9 85.7-160.1 137.8-253.7 137.8-158.4 0-212.1-138.1-137.2-229 16.3-19.8 44.2-38.7 87.3-49.4 67.5-16.5 175 10.3 275.7 43.4 18.1-33.3 33.4-69.9 44.7-108.9H305.1V402h160v-56.2H271.3v-31.3h193.8v-80.1s0-13.5 13.7-13.5H557v93.6h191.7v31.3H557.1V402h156.4c-15 61.1-37.7 117.4-66.2 166.8 47.5 17.1 90.1 33.3 121.8 43.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/alipay.js b/src/blrec/data/webapp/assets/outline/alipay.js new file mode 100644 index 0000000..11aa1b2 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/alipay.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'alipay', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M789 610.3c-38.7-12.9-90.7-32.7-148.5-53.6 34.8-60.3 62.5-129 80.7-203.6H530.5v-68.6h233.6v-38.3H530.5V132h-95.4c-16.7 0-16.7 16.5-16.7 16.5v97.8H182.2v38.3h236.3v68.6H223.4v38.3h378.4a667.18 667.18 0 01-54.5 132.9c-122.8-40.4-253.8-73.2-336.1-53-52.6 13-86.5 36.1-106.5 60.3-91.4 111-25.9 279.6 167.2 279.6C386 811.2 496 747.6 581.2 643 708.3 704 960 808.7 960 808.7V659.4s-31.6-2.5-171-49.1zM253.9 746.6c-150.5 0-195-118.3-120.6-183.1 24.8-21.9 70.2-32.6 94.4-35 89.4-8.8 172.2 25.2 269.9 72.8-68.8 89.5-156.3 145.3-243.7 145.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/alipay.svg b/src/blrec/data/webapp/assets/outline/alipay.svg new file mode 100644 index 0000000..fd5965d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/alipay.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M789 610.3c-38.7-12.9-90.7-32.7-148.5-53.6 34.8-60.3 62.5-129 80.7-203.6H530.5v-68.6h233.6v-38.3H530.5V132h-95.4c-16.7 0-16.7 16.5-16.7 16.5v97.8H182.2v38.3h236.3v68.6H223.4v38.3h378.4a667.18 667.18 0 01-54.5 132.9c-122.8-40.4-253.8-73.2-336.1-53-52.6 13-86.5 36.1-106.5 60.3-91.4 111-25.9 279.6 167.2 279.6C386 811.2 496 747.6 581.2 643 708.3 704 960 808.7 960 808.7V659.4s-31.6-2.5-171-49.1zM253.9 746.6c-150.5 0-195-118.3-120.6-183.1 24.8-21.9 70.2-32.6 94.4-35 89.4-8.8 172.2 25.2 269.9 72.8-68.8 89.5-156.3 145.3-243.7 145.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/aliwangwang.js b/src/blrec/data/webapp/assets/outline/aliwangwang.js new file mode 100644 index 0000000..92030c6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/aliwangwang.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'aliwangwang', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M868.2 377.4c-18.9-45.1-46.3-85.6-81.2-120.6a377.26 377.26 0 00-120.5-81.2A375.65 375.65 0 00519 145.8c-41.9 0-82.9 6.7-121.9 20C306 123.3 200.8 120 170.6 120c-2.2 0-7.4 0-9.4.2-11.9.4-22.8 6.5-29.2 16.4-6.5 9.9-7.7 22.4-3.4 33.5l64.3 161.6a378.59 378.59 0 00-52.8 193.2c0 51.4 10 101 29.8 147.6 18.9 45 46.2 85.6 81.2 120.5 34.7 34.8 75.4 62.1 120.5 81.2C418.3 894 467.9 904 519 904c51.3 0 100.9-10.1 147.7-29.8 44.9-18.9 85.5-46.3 120.4-81.2 34.7-34.8 62.1-75.4 81.2-120.6a376.5 376.5 0 0029.8-147.6c-.2-51.2-10.1-100.8-29.9-147.4zm-66.4 266.5a307.08 307.08 0 01-65.9 98c-28.4 28.5-61.3 50.7-97.7 65.9h-.1c-38 16-78.3 24.2-119.9 24.2a306.51 306.51 0 01-217.5-90.2c-28.4-28.5-50.6-61.4-65.8-97.8v-.1c-16-37.8-24.1-78.2-24.1-119.9 0-55.4 14.8-109.7 42.8-157l13.2-22.1-9.5-23.9L206 192c14.9.6 35.9 2.1 59.7 5.6 43.8 6.5 82.5 17.5 114.9 32.6l19 8.9 19.9-6.8c31.5-10.8 64.8-16.2 98.9-16.2a306.51 306.51 0 01217.5 90.2c28.4 28.5 50.6 61.4 65.8 97.8l.1.1.1.1c16 37.6 24.1 78 24.2 119.8-.1 41.7-8.3 82-24.3 119.8zM681.1 364.2c-20.4 0-37.1 16.7-37.1 37.1v55.1c0 20.4 16.6 37.1 37.1 37.1s37.1-16.7 37.1-37.1v-55.1c0-20.5-16.7-37.1-37.1-37.1zm-175.2 0c-20.5 0-37.1 16.7-37.1 37.1v55.1c0 20.4 16.7 37.1 37.1 37.1 20.5 0 37.1-16.7 37.1-37.1v-55.1c0-20.5-16.7-37.1-37.1-37.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/aliwangwang.svg b/src/blrec/data/webapp/assets/outline/aliwangwang.svg new file mode 100644 index 0000000..fbb9e89 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/aliwangwang.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M868.2 377.4c-18.9-45.1-46.3-85.6-81.2-120.6a377.26 377.26 0 00-120.5-81.2A375.65 375.65 0 00519 145.8c-41.9 0-82.9 6.7-121.9 20C306 123.3 200.8 120 170.6 120c-2.2 0-7.4 0-9.4.2-11.9.4-22.8 6.5-29.2 16.4-6.5 9.9-7.7 22.4-3.4 33.5l64.3 161.6a378.59 378.59 0 00-52.8 193.2c0 51.4 10 101 29.8 147.6 18.9 45 46.2 85.6 81.2 120.5 34.7 34.8 75.4 62.1 120.5 81.2C418.3 894 467.9 904 519 904c51.3 0 100.9-10.1 147.7-29.8 44.9-18.9 85.5-46.3 120.4-81.2 34.7-34.8 62.1-75.4 81.2-120.6a376.5 376.5 0 0029.8-147.6c-.2-51.2-10.1-100.8-29.9-147.4zm-66.4 266.5a307.08 307.08 0 01-65.9 98c-28.4 28.5-61.3 50.7-97.7 65.9h-.1c-38 16-78.3 24.2-119.9 24.2a306.51 306.51 0 01-217.5-90.2c-28.4-28.5-50.6-61.4-65.8-97.8v-.1c-16-37.8-24.1-78.2-24.1-119.9 0-55.4 14.8-109.7 42.8-157l13.2-22.1-9.5-23.9L206 192c14.9.6 35.9 2.1 59.7 5.6 43.8 6.5 82.5 17.5 114.9 32.6l19 8.9 19.9-6.8c31.5-10.8 64.8-16.2 98.9-16.2a306.51 306.51 0 01217.5 90.2c28.4 28.5 50.6 61.4 65.8 97.8l.1.1.1.1c16 37.6 24.1 78 24.2 119.8-.1 41.7-8.3 82-24.3 119.8zM681.1 364.2c-20.4 0-37.1 16.7-37.1 37.1v55.1c0 20.4 16.6 37.1 37.1 37.1s37.1-16.7 37.1-37.1v-55.1c0-20.5-16.7-37.1-37.1-37.1zm-175.2 0c-20.5 0-37.1 16.7-37.1 37.1v55.1c0 20.4 16.7 37.1 37.1 37.1 20.5 0 37.1-16.7 37.1-37.1v-55.1c0-20.5-16.7-37.1-37.1-37.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/aliyun.js b/src/blrec/data/webapp/assets/outline/aliyun.js new file mode 100644 index 0000000..dbf8c94 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/aliyun.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'aliyun', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M959.2 383.9c-.3-82.1-66.9-148.6-149.1-148.6H575.9l21.6 85.2 201 43.7a42.58 42.58 0 0132.9 39.7c.1.5.1 216.1 0 216.6a42.58 42.58 0 01-32.9 39.7l-201 43.7-21.6 85.3h234.2c82.1 0 148.8-66.5 149.1-148.6V383.9zM225.5 660.4a42.58 42.58 0 01-32.9-39.7c-.1-.6-.1-216.1 0-216.6.8-19.4 14.6-35.5 32.9-39.7l201-43.7 21.6-85.2H213.8c-82.1 0-148.8 66.4-149.1 148.6V641c.3 82.1 67 148.6 149.1 148.6H448l-21.6-85.3-200.9-43.9zm200.9-158.8h171v21.3h-171z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/aliyun.svg b/src/blrec/data/webapp/assets/outline/aliyun.svg new file mode 100644 index 0000000..70a5da5 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/aliyun.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M959.2 383.9c-.3-82.1-66.9-148.6-149.1-148.6H575.9l21.6 85.2 201 43.7a42.58 42.58 0 0132.9 39.7c.1.5.1 216.1 0 216.6a42.58 42.58 0 01-32.9 39.7l-201 43.7-21.6 85.3h234.2c82.1 0 148.8-66.5 149.1-148.6V383.9zM225.5 660.4a42.58 42.58 0 01-32.9-39.7c-.1-.6-.1-216.1 0-216.6.8-19.4 14.6-35.5 32.9-39.7l201-43.7 21.6-85.2H213.8c-82.1 0-148.8 66.4-149.1 148.6V641c.3 82.1 67 148.6 149.1 148.6H448l-21.6-85.3-200.9-43.9zm200.9-158.8h171v21.3h-171z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/amazon.js b/src/blrec/data/webapp/assets/outline/amazon.js new file mode 100644 index 0000000..bbdc0ec --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/amazon.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'amazon', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M825 768.9c-3.3-.9-7.3-.4-11.9 1.3-61.6 28.2-121.5 48.3-179.7 60.2C507.7 856 385.2 842.6 266 790.3c-33.1-14.6-79.1-39.2-138-74a9.36 9.36 0 00-5.3-2c-2-.1-3.7.1-5.3.9-1.6.8-2.8 1.8-3.7 3.1-.9 1.3-1.1 3.1-.4 5.4.6 2.2 2.1 4.7 4.6 7.4 10.4 12.2 23.3 25.2 38.6 39s35.6 29.4 60.9 46.8c25.3 17.4 51.8 32.9 79.3 46.4 27.6 13.5 59.6 24.9 96.1 34.1s73 13.8 109.4 13.8c36.2 0 71.4-3.7 105.5-10.9 34.2-7.3 63-15.9 86.5-25.9 23.4-9.9 45-21 64.8-33 19.8-12 34.4-22.2 43.9-30.3 9.5-8.2 16.3-14.6 20.2-19.4 4.6-5.7 6.9-10.6 6.9-14.9.1-4.5-1.7-7.1-5-7.9zM527.4 348.1c-15.2 1.3-33.5 4.1-55 8.3-21.5 4.1-41.4 9.3-59.8 15.4s-37.2 14.6-56.3 25.4c-19.2 10.8-35.5 23.2-49 37s-24.5 31.1-33.1 52c-8.6 20.8-12.9 43.7-12.9 68.7 0 27.1 4.7 51.2 14.3 72.5 9.5 21.3 22.2 38 38.2 50.4 15.9 12.4 34 22.1 54 29.2 20 7.1 41.2 10.3 63.2 9.4 22-.9 43.5-4.3 64.4-10.3 20.8-5.9 40.4-15.4 58.6-28.3 18.2-12.9 33.1-28.2 44.8-45.7 4.3 6.6 8.1 11.5 11.5 14.7l8.7 8.9c5.8 5.9 14.7 14.6 26.7 26.1 11.9 11.5 24.1 22.7 36.3 33.7l104.4-99.9-6-4.9c-4.3-3.3-9.4-8-15.2-14.3-5.8-6.2-11.6-13.1-17.2-20.5-5.7-7.4-10.6-16.1-14.7-25.9-4.1-9.8-6.2-19.3-6.2-28.5V258.7c0-10.1-1.9-21-5.7-32.8-3.9-11.7-10.7-24.5-20.7-38.3-10-13.8-22.4-26.2-37.2-37-14.9-10.8-34.7-20-59.6-27.4-24.8-7.4-52.6-11.1-83.2-11.1-31.3 0-60.4 3.7-87.6 10.9-27.1 7.3-50.3 17-69.7 29.2-19.3 12.2-35.9 26.3-49.7 42.4-13.8 16.1-24.1 32.9-30.8 50.4-6.7 17.5-10.1 35.2-10.1 53.1L408 310c5.5-16.4 12.9-30.6 22-42.8 9.2-12.2 17.9-21 25.8-26.5 8-5.5 16.6-9.9 25.7-13.2 9.2-3.3 15.4-5 18.6-5.4 3.2-.3 5.7-.4 7.6-.4 26.7 0 45.2 7.9 55.6 23.6 6.5 9.5 9.7 23.9 9.7 43.3v56.6c-15.2.6-30.4 1.6-45.6 2.9zM573.1 500c0 16.6-2.2 31.7-6.5 45-9.2 29.1-26.7 47.4-52.4 54.8-22.4 6.6-43.7 3.3-63.9-9.8-21.5-14-32.2-33.8-32.2-59.3 0-19.9 5-36.9 15-51.1 10-14.1 23.3-24.7 40-31.7s33-12 49-14.9c15.9-3 33-4.8 51-5.4V500zm335.2 218.9c-4.3-5.4-15.9-8.9-34.9-10.7-19-1.8-35.5-1.7-49.7.4-15.3 1.8-31.1 6.2-47.3 13.4-16.3 7.1-23.4 13.1-21.6 17.8l.7 1.3.9.7 1.4.2h4.6c.8 0 1.8-.1 3.2-.2 1.4-.1 2.7-.3 3.9-.4 1.2-.1 2.9-.3 5.1-.4 2.1-.1 4.1-.4 6-.7.3 0 3.7-.3 10.3-.9 6.6-.6 11.4-1 14.3-1.3 2.9-.3 7.8-.6 14.5-.9 6.7-.3 12.1-.3 16.1 0 4 .3 8.5.7 13.6 1.1 5.1.4 9.2 1.3 12.4 2.7 3.2 1.3 5.6 3 7.1 5.1 5.2 6.6 4.2 21.2-3 43.9s-14 40.8-20.4 54.2c-2.8 5.7-2.8 9.2 0 10.7s6.7.1 11.9-4c15.6-12.2 28.6-30.6 39.1-55.3 6.1-14.6 10.5-29.8 13.1-45.7 2.4-15.9 2-26.2-1.3-31z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/amazon.svg b/src/blrec/data/webapp/assets/outline/amazon.svg new file mode 100644 index 0000000..104938a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/amazon.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M825 768.9c-3.3-.9-7.3-.4-11.9 1.3-61.6 28.2-121.5 48.3-179.7 60.2C507.7 856 385.2 842.6 266 790.3c-33.1-14.6-79.1-39.2-138-74a9.36 9.36 0 00-5.3-2c-2-.1-3.7.1-5.3.9-1.6.8-2.8 1.8-3.7 3.1-.9 1.3-1.1 3.1-.4 5.4.6 2.2 2.1 4.7 4.6 7.4 10.4 12.2 23.3 25.2 38.6 39s35.6 29.4 60.9 46.8c25.3 17.4 51.8 32.9 79.3 46.4 27.6 13.5 59.6 24.9 96.1 34.1s73 13.8 109.4 13.8c36.2 0 71.4-3.7 105.5-10.9 34.2-7.3 63-15.9 86.5-25.9 23.4-9.9 45-21 64.8-33 19.8-12 34.4-22.2 43.9-30.3 9.5-8.2 16.3-14.6 20.2-19.4 4.6-5.7 6.9-10.6 6.9-14.9.1-4.5-1.7-7.1-5-7.9zM527.4 348.1c-15.2 1.3-33.5 4.1-55 8.3-21.5 4.1-41.4 9.3-59.8 15.4s-37.2 14.6-56.3 25.4c-19.2 10.8-35.5 23.2-49 37s-24.5 31.1-33.1 52c-8.6 20.8-12.9 43.7-12.9 68.7 0 27.1 4.7 51.2 14.3 72.5 9.5 21.3 22.2 38 38.2 50.4 15.9 12.4 34 22.1 54 29.2 20 7.1 41.2 10.3 63.2 9.4 22-.9 43.5-4.3 64.4-10.3 20.8-5.9 40.4-15.4 58.6-28.3 18.2-12.9 33.1-28.2 44.8-45.7 4.3 6.6 8.1 11.5 11.5 14.7l8.7 8.9c5.8 5.9 14.7 14.6 26.7 26.1 11.9 11.5 24.1 22.7 36.3 33.7l104.4-99.9-6-4.9c-4.3-3.3-9.4-8-15.2-14.3-5.8-6.2-11.6-13.1-17.2-20.5-5.7-7.4-10.6-16.1-14.7-25.9-4.1-9.8-6.2-19.3-6.2-28.5V258.7c0-10.1-1.9-21-5.7-32.8-3.9-11.7-10.7-24.5-20.7-38.3-10-13.8-22.4-26.2-37.2-37-14.9-10.8-34.7-20-59.6-27.4-24.8-7.4-52.6-11.1-83.2-11.1-31.3 0-60.4 3.7-87.6 10.9-27.1 7.3-50.3 17-69.7 29.2-19.3 12.2-35.9 26.3-49.7 42.4-13.8 16.1-24.1 32.9-30.8 50.4-6.7 17.5-10.1 35.2-10.1 53.1L408 310c5.5-16.4 12.9-30.6 22-42.8 9.2-12.2 17.9-21 25.8-26.5 8-5.5 16.6-9.9 25.7-13.2 9.2-3.3 15.4-5 18.6-5.4 3.2-.3 5.7-.4 7.6-.4 26.7 0 45.2 7.9 55.6 23.6 6.5 9.5 9.7 23.9 9.7 43.3v56.6c-15.2.6-30.4 1.6-45.6 2.9zM573.1 500c0 16.6-2.2 31.7-6.5 45-9.2 29.1-26.7 47.4-52.4 54.8-22.4 6.6-43.7 3.3-63.9-9.8-21.5-14-32.2-33.8-32.2-59.3 0-19.9 5-36.9 15-51.1 10-14.1 23.3-24.7 40-31.7s33-12 49-14.9c15.9-3 33-4.8 51-5.4V500zm335.2 218.9c-4.3-5.4-15.9-8.9-34.9-10.7-19-1.8-35.5-1.7-49.7.4-15.3 1.8-31.1 6.2-47.3 13.4-16.3 7.1-23.4 13.1-21.6 17.8l.7 1.3.9.7 1.4.2h4.6c.8 0 1.8-.1 3.2-.2 1.4-.1 2.7-.3 3.9-.4 1.2-.1 2.9-.3 5.1-.4 2.1-.1 4.1-.4 6-.7.3 0 3.7-.3 10.3-.9 6.6-.6 11.4-1 14.3-1.3 2.9-.3 7.8-.6 14.5-.9 6.7-.3 12.1-.3 16.1 0 4 .3 8.5.7 13.6 1.1 5.1.4 9.2 1.3 12.4 2.7 3.2 1.3 5.6 3 7.1 5.1 5.2 6.6 4.2 21.2-3 43.9s-14 40.8-20.4 54.2c-2.8 5.7-2.8 9.2 0 10.7s6.7.1 11.9-4c15.6-12.2 28.6-30.6 39.1-55.3 6.1-14.6 10.5-29.8 13.1-45.7 2.4-15.9 2-26.2-1.3-31z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/android.js b/src/blrec/data/webapp/assets/outline/android.js new file mode 100644 index 0000000..fc57a5c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/android.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'android', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M448.3 225.2c-18.6 0-32 13.4-32 31.9s13.5 31.9 32 31.9c18.6 0 32-13.4 32-31.9.1-18.4-13.4-31.9-32-31.9zm393.9 96.4c-13.8-13.8-32.7-21.5-53.2-21.5-3.9 0-7.4.4-10.7 1v-1h-3.6c-5.5-30.6-18.6-60.5-38.1-87.4-18.7-25.7-43-47.9-70.8-64.9l25.1-35.8v-3.3c0-.8.4-2.3.7-3.8.6-2.4 1.4-5.5 1.4-8.9 0-18.5-13.5-31.9-32-31.9-9.8 0-19.5 5.7-25.9 15.4l-29.3 42.1c-30-9.8-62.4-15-93.8-15-31.3 0-63.7 5.2-93.8 15L389 79.4c-6.6-9.6-16.1-15.4-26-15.4-18.6 0-32 13.4-32 31.9 0 6.2 2.5 12.8 6.7 17.4l22.6 32.3c-28.7 17-53.5 39.4-72.2 65.1-19.4 26.9-32 56.8-36.7 87.4h-5.5v1c-3.2-.6-6.7-1-10.7-1-20.3 0-39.2 7.5-53.1 21.3-13.8 13.8-21.5 32.6-21.5 53v235c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 3.9 0 7.4-.4 10.7-1v93.5c0 29.2 23.9 53.1 53.2 53.1H331v58.3c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 20.3 0 39.2-7.5 53.1-21.3 13.8-13.8 21.5-32.6 21.5-53v-58.2H544v58.1c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 20.4 0 39.2-7.5 53.1-21.6 13.8-13.8 21.5-32.6 21.5-53v-58.2h31.9c29.3 0 53.2-23.8 53.2-53.1v-91.4c3.2.6 6.7 1 10.7 1 20.3 0 39.2-7.5 53.1-21.3 13.8-13.8 21.5-32.6 21.5-53v-235c-.1-20.3-7.6-39-21.4-52.9zM246 609.6c0 6.8-3.9 10.6-10.7 10.6-6.8 0-10.7-3.8-10.7-10.6V374.5c0-6.8 3.9-10.6 10.7-10.6 6.8 0 10.7 3.8 10.7 10.6v235.1zm131.1-396.8c37.5-27.3 85.3-42.3 135-42.3s97.5 15.1 135 42.5c32.4 23.7 54.2 54.2 62.7 87.5H314.4c8.5-33.4 30.5-64 62.7-87.7zm39.3 674.7c-.6 5.6-4.4 8.7-10.5 8.7-6.8 0-10.7-3.8-10.7-10.6v-58.2h21.2v60.1zm202.3 8.7c-6.8 0-10.7-3.8-10.7-10.6v-58.2h21.2v60.1c-.6 5.6-4.3 8.7-10.5 8.7zm95.8-132.6H309.9V364h404.6v399.6zm85.2-154c0 6.8-3.9 10.6-10.7 10.6-6.8 0-10.7-3.8-10.7-10.6V374.5c0-6.8 3.9-10.6 10.7-10.6 6.8 0 10.7 3.8 10.7 10.6v235.1zM576.1 225.2c-18.6 0-32 13.4-32 31.9s13.5 31.9 32 31.9c18.6 0 32.1-13.4 32.1-32-.1-18.6-13.4-31.8-32.1-31.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/android.svg b/src/blrec/data/webapp/assets/outline/android.svg new file mode 100644 index 0000000..fc14db0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/android.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M448.3 225.2c-18.6 0-32 13.4-32 31.9s13.5 31.9 32 31.9c18.6 0 32-13.4 32-31.9.1-18.4-13.4-31.9-32-31.9zm393.9 96.4c-13.8-13.8-32.7-21.5-53.2-21.5-3.9 0-7.4.4-10.7 1v-1h-3.6c-5.5-30.6-18.6-60.5-38.1-87.4-18.7-25.7-43-47.9-70.8-64.9l25.1-35.8v-3.3c0-.8.4-2.3.7-3.8.6-2.4 1.4-5.5 1.4-8.9 0-18.5-13.5-31.9-32-31.9-9.8 0-19.5 5.7-25.9 15.4l-29.3 42.1c-30-9.8-62.4-15-93.8-15-31.3 0-63.7 5.2-93.8 15L389 79.4c-6.6-9.6-16.1-15.4-26-15.4-18.6 0-32 13.4-32 31.9 0 6.2 2.5 12.8 6.7 17.4l22.6 32.3c-28.7 17-53.5 39.4-72.2 65.1-19.4 26.9-32 56.8-36.7 87.4h-5.5v1c-3.2-.6-6.7-1-10.7-1-20.3 0-39.2 7.5-53.1 21.3-13.8 13.8-21.5 32.6-21.5 53v235c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 3.9 0 7.4-.4 10.7-1v93.5c0 29.2 23.9 53.1 53.2 53.1H331v58.3c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 20.3 0 39.2-7.5 53.1-21.3 13.8-13.8 21.5-32.6 21.5-53v-58.2H544v58.1c0 20.3 7.5 39.1 21.4 52.9 13.8 13.8 32.8 21.5 53.2 21.5 20.4 0 39.2-7.5 53.1-21.6 13.8-13.8 21.5-32.6 21.5-53v-58.2h31.9c29.3 0 53.2-23.8 53.2-53.1v-91.4c3.2.6 6.7 1 10.7 1 20.3 0 39.2-7.5 53.1-21.3 13.8-13.8 21.5-32.6 21.5-53v-235c-.1-20.3-7.6-39-21.4-52.9zM246 609.6c0 6.8-3.9 10.6-10.7 10.6-6.8 0-10.7-3.8-10.7-10.6V374.5c0-6.8 3.9-10.6 10.7-10.6 6.8 0 10.7 3.8 10.7 10.6v235.1zm131.1-396.8c37.5-27.3 85.3-42.3 135-42.3s97.5 15.1 135 42.5c32.4 23.7 54.2 54.2 62.7 87.5H314.4c8.5-33.4 30.5-64 62.7-87.7zm39.3 674.7c-.6 5.6-4.4 8.7-10.5 8.7-6.8 0-10.7-3.8-10.7-10.6v-58.2h21.2v60.1zm202.3 8.7c-6.8 0-10.7-3.8-10.7-10.6v-58.2h21.2v60.1c-.6 5.6-4.3 8.7-10.5 8.7zm95.8-132.6H309.9V364h404.6v399.6zm85.2-154c0 6.8-3.9 10.6-10.7 10.6-6.8 0-10.7-3.8-10.7-10.6V374.5c0-6.8 3.9-10.6 10.7-10.6 6.8 0 10.7 3.8 10.7 10.6v235.1zM576.1 225.2c-18.6 0-32 13.4-32 31.9s13.5 31.9 32 31.9c18.6 0 32.1-13.4 32.1-32-.1-18.6-13.4-31.8-32.1-31.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/ant-cloud.js b/src/blrec/data/webapp/assets/outline/ant-cloud.js new file mode 100644 index 0000000..b395c00 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/ant-cloud.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'ant-cloud', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M378.9 738c-3.1 0-6.1-.5-8.8-1.5l4.4 30.7h26.3l-15.5-29.9c-2.1.5-4.2.7-6.4.7zm421-291.2c-12.6 0-24.8 1.5-36.5 4.2-21.4-38.4-62.3-64.3-109.3-64.3-6.9 0-13.6.6-20.2 1.6-35.4-77.4-113.4-131.1-203.9-131.1-112.3 0-205.3 82.6-221.6 190.4C127.3 455.5 64 523.8 64 607c0 88.4 71.6 160.1 160 160.2h50l13.2-27.6c-26.2-8.3-43.3-29-39.1-48.8 4.6-21.6 32.8-33.9 63.1-27.5 22.9 4.9 40.4 19.1 45.5 35.1a26.1 26.1 0 0122.1-12.4h.2c-.8-3.2-1.2-6.5-1.2-9.9 0-20.1 14.8-36.7 34.1-39.6v-25.4c0-4.4 3.6-8 8-8s8 3.6 8 8v26.3c4.6 1.2 8.8 3.2 12.6 5.8l19.5-21.4c3-3.3 8-3.5 11.3-.5 3.3 3 3.5 8 .5 11.3l-20 22-.2.2a40 40 0 01-46.9 59.2c-.4 5.6-2.6 10.7-6 14.8l20 38.4H804v-.1c86.5-2.2 156-73 156-160.1 0-88.5-71.7-160.2-160.1-160.2zM338.2 737.2l-4.3 30h24.4l-5.9-41.5c-3.5 4.6-8.3 8.5-14.2 11.5zM797.5 305a48 48 0 1096 0 48 48 0 10-96 0zm-65.7 61.3a24 24 0 1048 0 24 24 0 10-48 0zM303.4 742.9l-11.6 24.3h26l3.5-24.7c-5.7.8-11.7 1-17.9.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/ant-cloud.svg b/src/blrec/data/webapp/assets/outline/ant-cloud.svg new file mode 100644 index 0000000..a3862a0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/ant-cloud.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M378.9 738c-3.1 0-6.1-.5-8.8-1.5l4.4 30.7h26.3l-15.5-29.9c-2.1.5-4.2.7-6.4.7zm421-291.2c-12.6 0-24.8 1.5-36.5 4.2-21.4-38.4-62.3-64.3-109.3-64.3-6.9 0-13.6.6-20.2 1.6-35.4-77.4-113.4-131.1-203.9-131.1-112.3 0-205.3 82.6-221.6 190.4C127.3 455.5 64 523.8 64 607c0 88.4 71.6 160.1 160 160.2h50l13.2-27.6c-26.2-8.3-43.3-29-39.1-48.8 4.6-21.6 32.8-33.9 63.1-27.5 22.9 4.9 40.4 19.1 45.5 35.1a26.1 26.1 0 0122.1-12.4h.2c-.8-3.2-1.2-6.5-1.2-9.9 0-20.1 14.8-36.7 34.1-39.6v-25.4c0-4.4 3.6-8 8-8s8 3.6 8 8v26.3c4.6 1.2 8.8 3.2 12.6 5.8l19.5-21.4c3-3.3 8-3.5 11.3-.5 3.3 3 3.5 8 .5 11.3l-20 22-.2.2a40 40 0 01-46.9 59.2c-.4 5.6-2.6 10.7-6 14.8l20 38.4H804v-.1c86.5-2.2 156-73 156-160.1 0-88.5-71.7-160.2-160.1-160.2zM338.2 737.2l-4.3 30h24.4l-5.9-41.5c-3.5 4.6-8.3 8.5-14.2 11.5zM797.5 305a48 48 0 1096 0 48 48 0 10-96 0zm-65.7 61.3a24 24 0 1048 0 24 24 0 10-48 0zM303.4 742.9l-11.6 24.3h26l3.5-24.7c-5.7.8-11.7 1-17.9.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/ant-design.js b/src/blrec/data/webapp/assets/outline/ant-design.js new file mode 100644 index 0000000..629fcdd --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/ant-design.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'ant-design', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M716.3 313.8c19-18.9 19-49.7 0-68.6l-69.9-69.9.1.1c-18.5-18.5-50.3-50.3-95.3-95.2-21.2-20.7-55.5-20.5-76.5.5L80.9 474.2a53.84 53.84 0 000 76.4L474.6 944a54.14 54.14 0 0076.5 0l165.1-165c19-18.9 19-49.7 0-68.6a48.7 48.7 0 00-68.7 0l-125 125.2c-5.2 5.2-13.3 5.2-18.5 0L189.5 521.4c-5.2-5.2-5.2-13.3 0-18.5l314.4-314.2c.4-.4.9-.7 1.3-1.1 5.2-4.1 12.4-3.7 17.2 1.1l125.2 125.1c19 19 49.8 19 68.7 0zM408.6 514.4a106.3 106.2 0 10212.6 0 106.3 106.2 0 10-212.6 0zm536.2-38.6L821.9 353.5c-19-18.9-49.8-18.9-68.7.1a48.4 48.4 0 000 68.6l83 82.9c5.2 5.2 5.2 13.3 0 18.5l-81.8 81.7a48.4 48.4 0 000 68.6 48.7 48.7 0 0068.7 0l121.8-121.7a53.93 53.93 0 00-.1-76.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/ant-design.svg b/src/blrec/data/webapp/assets/outline/ant-design.svg new file mode 100644 index 0000000..4bf2520 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/ant-design.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M716.3 313.8c19-18.9 19-49.7 0-68.6l-69.9-69.9.1.1c-18.5-18.5-50.3-50.3-95.3-95.2-21.2-20.7-55.5-20.5-76.5.5L80.9 474.2a53.84 53.84 0 000 76.4L474.6 944a54.14 54.14 0 0076.5 0l165.1-165c19-18.9 19-49.7 0-68.6a48.7 48.7 0 00-68.7 0l-125 125.2c-5.2 5.2-13.3 5.2-18.5 0L189.5 521.4c-5.2-5.2-5.2-13.3 0-18.5l314.4-314.2c.4-.4.9-.7 1.3-1.1 5.2-4.1 12.4-3.7 17.2 1.1l125.2 125.1c19 19 49.8 19 68.7 0zM408.6 514.4a106.3 106.2 0 10212.6 0 106.3 106.2 0 10-212.6 0zm536.2-38.6L821.9 353.5c-19-18.9-49.8-18.9-68.7.1a48.4 48.4 0 000 68.6l83 82.9c5.2 5.2 5.2 13.3 0 18.5l-81.8 81.7a48.4 48.4 0 000 68.6 48.7 48.7 0 0068.7 0l121.8-121.7a53.93 53.93 0 00-.1-76.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/apartment.js b/src/blrec/data/webapp/assets/outline/apartment.js new file mode 100644 index 0000000..fdabd35 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/apartment.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'apartment', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M908 640H804V488c0-4.4-3.6-8-8-8H548v-96h108c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h108v96H228c-4.4 0-8 3.6-8 8v152H116c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h288c8.8 0 16-7.2 16-16V656c0-8.8-7.2-16-16-16H292v-88h440v88H620c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h288c8.8 0 16-7.2 16-16V656c0-8.8-7.2-16-16-16zm-564 76v168H176V716h168zm84-408V140h168v168H428zm420 576H680V716h168v168z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/apartment.svg b/src/blrec/data/webapp/assets/outline/apartment.svg new file mode 100644 index 0000000..5bbdfaa --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/apartment.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M908 640H804V488c0-4.4-3.6-8-8-8H548v-96h108c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16H368c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h108v96H228c-4.4 0-8 3.6-8 8v152H116c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h288c8.8 0 16-7.2 16-16V656c0-8.8-7.2-16-16-16H292v-88h440v88H620c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h288c8.8 0 16-7.2 16-16V656c0-8.8-7.2-16-16-16zm-564 76v168H176V716h168zm84-408V140h168v168H428zm420 576H680V716h168v168z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/api.js b/src/blrec/data/webapp/assets/outline/api.js new file mode 100644 index 0000000..63f5b99 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/api.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'api', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 00-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 000 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7 35.3 0 68.4 13.7 93.4 38.7 24.9 24.9 38.7 58.1 38.7 93.4 0 35.3-13.8 68.4-38.7 93.4zm-190.2 105a8.03 8.03 0 00-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 00-11.3 0L363 475.3l-43-43a7.85 7.85 0 00-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 69-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 000 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 01-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7a131.32 131.32 0 01-38.7-93.4c0-35.3 13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/api.svg b/src/blrec/data/webapp/assets/outline/api.svg new file mode 100644 index 0000000..89efea2 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/api.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M917.7 148.8l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 00-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 000 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7 35.3 0 68.4 13.7 93.4 38.7 24.9 24.9 38.7 58.1 38.7 93.4 0 35.3-13.8 68.4-38.7 93.4zm-190.2 105a8.03 8.03 0 00-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 00-11.3 0L363 475.3l-43-43a7.85 7.85 0 00-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2c-68.9 69-77 175.7-24.3 253.5l-76.1 76.1a8.03 8.03 0 000 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 01-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7a131.32 131.32 0 01-38.7-93.4c0-35.3 13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/apple.js b/src/blrec/data/webapp/assets/outline/apple.js new file mode 100644 index 0000000..f6ae88e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/apple.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'apple', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M747.4 535.7c-.4-68.2 30.5-119.6 92.9-157.5-34.9-50-87.7-77.5-157.3-82.8-65.9-5.2-138 38.4-164.4 38.4-27.9 0-91.7-36.6-141.9-36.6C273.1 298.8 163 379.8 163 544.6c0 48.7 8.9 99 26.7 150.8 23.8 68.2 109.6 235.3 199.1 232.6 46.8-1.1 79.9-33.2 140.8-33.2 59.1 0 89.7 33.2 141.9 33.2 90.3-1.3 167.9-153.2 190.5-221.6-121.1-57.1-114.6-167.2-114.6-170.7zm-10.6 267c-14.3 19.9-28.7 35.6-41.9 45.7-10.5 8-18.6 11.4-24 11.6-9-.1-17.7-2.3-34.7-8.8-1.2-.5-2.5-1-4.2-1.6l-4.4-1.7c-17.4-6.7-27.8-10.3-41.1-13.8-18.6-4.8-37.1-7.4-56.9-7.4-20.2 0-39.2 2.5-58.1 7.2-13.9 3.5-25.6 7.4-42.7 13.8-.7.3-8.1 3.1-10.2 3.9-3.5 1.3-6.2 2.3-8.7 3.2-10.4 3.6-17 5.1-22.9 5.2-.7 0-1.3-.1-1.8-.2-1.1-.2-2.5-.6-4.1-1.3-4.5-1.8-9.9-5.1-16-9.8-14-10.9-29.4-28-45.1-49.9-27.5-38.6-53.5-89.8-66-125.7-15.4-44.8-23-87.7-23-128.6 0-60.2 17.8-106 48.4-137.1 26.3-26.6 61.7-41.5 97.8-42.3 5.9.1 14.5 1.5 25.4 4.5 8.6 2.3 18 5.4 30.7 9.9 3.8 1.4 16.9 6.1 18.5 6.7 7.7 2.8 13.5 4.8 19.2 6.6 18.2 5.8 32.3 9 47.6 9 15.5 0 28.8-3.3 47.7-9.8 7.1-2.4 32.9-12 37.5-13.6 25.6-9.1 44.5-14 60.8-15.2 4.8-.4 9.1-.4 13.2-.1 22.7 1.8 42.1 6.3 58.6 13.8-37.6 43.4-57 96.5-56.9 158.4-.3 14.7.9 31.7 5.1 51.8 6.4 30.5 18.6 60.7 37.9 89 14.7 21.5 32.9 40.9 54.7 57.8-11.5 23.7-25.6 48.2-40.4 68.8zm-94.5-572c50.7-60.2 46.1-115 44.6-134.7-44.8 2.6-96.6 30.5-126.1 64.8-32.5 36.8-51.6 82.3-47.5 133.6 48.4 3.7 92.6-21.2 129-63.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/apple.svg b/src/blrec/data/webapp/assets/outline/apple.svg new file mode 100644 index 0000000..edca019 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/apple.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M747.4 535.7c-.4-68.2 30.5-119.6 92.9-157.5-34.9-50-87.7-77.5-157.3-82.8-65.9-5.2-138 38.4-164.4 38.4-27.9 0-91.7-36.6-141.9-36.6C273.1 298.8 163 379.8 163 544.6c0 48.7 8.9 99 26.7 150.8 23.8 68.2 109.6 235.3 199.1 232.6 46.8-1.1 79.9-33.2 140.8-33.2 59.1 0 89.7 33.2 141.9 33.2 90.3-1.3 167.9-153.2 190.5-221.6-121.1-57.1-114.6-167.2-114.6-170.7zm-10.6 267c-14.3 19.9-28.7 35.6-41.9 45.7-10.5 8-18.6 11.4-24 11.6-9-.1-17.7-2.3-34.7-8.8-1.2-.5-2.5-1-4.2-1.6l-4.4-1.7c-17.4-6.7-27.8-10.3-41.1-13.8-18.6-4.8-37.1-7.4-56.9-7.4-20.2 0-39.2 2.5-58.1 7.2-13.9 3.5-25.6 7.4-42.7 13.8-.7.3-8.1 3.1-10.2 3.9-3.5 1.3-6.2 2.3-8.7 3.2-10.4 3.6-17 5.1-22.9 5.2-.7 0-1.3-.1-1.8-.2-1.1-.2-2.5-.6-4.1-1.3-4.5-1.8-9.9-5.1-16-9.8-14-10.9-29.4-28-45.1-49.9-27.5-38.6-53.5-89.8-66-125.7-15.4-44.8-23-87.7-23-128.6 0-60.2 17.8-106 48.4-137.1 26.3-26.6 61.7-41.5 97.8-42.3 5.9.1 14.5 1.5 25.4 4.5 8.6 2.3 18 5.4 30.7 9.9 3.8 1.4 16.9 6.1 18.5 6.7 7.7 2.8 13.5 4.8 19.2 6.6 18.2 5.8 32.3 9 47.6 9 15.5 0 28.8-3.3 47.7-9.8 7.1-2.4 32.9-12 37.5-13.6 25.6-9.1 44.5-14 60.8-15.2 4.8-.4 9.1-.4 13.2-.1 22.7 1.8 42.1 6.3 58.6 13.8-37.6 43.4-57 96.5-56.9 158.4-.3 14.7.9 31.7 5.1 51.8 6.4 30.5 18.6 60.7 37.9 89 14.7 21.5 32.9 40.9 54.7 57.8-11.5 23.7-25.6 48.2-40.4 68.8zm-94.5-572c50.7-60.2 46.1-115 44.6-134.7-44.8 2.6-96.6 30.5-126.1 64.8-32.5 36.8-51.6 82.3-47.5 133.6 48.4 3.7 92.6-21.2 129-63.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/appstore-add.js b/src/blrec/data/webapp/assets/outline/appstore-add.js new file mode 100644 index 0000000..48ca151 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/appstore-add.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'appstore-add', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zm52 132H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200zM424 712H296V584c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v128H104c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h128v128c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V776h128c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/appstore-add.svg b/src/blrec/data/webapp/assets/outline/appstore-add.svg new file mode 100644 index 0000000..8cf1cc6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/appstore-add.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zm52 132H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200zM424 712H296V584c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v128H104c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h128v128c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V776h128c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/appstore.js b/src/blrec/data/webapp/assets/outline/appstore.js new file mode 100644 index 0000000..bcd7a18 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/appstore.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'appstore', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/appstore.svg b/src/blrec/data/webapp/assets/outline/appstore.svg new file mode 100644 index 0000000..19fd9dd --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/appstore.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/area-chart.js b/src/blrec/data/webapp/assets/outline/area-chart.js new file mode 100644 index 0000000..ee7fd4e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/area-chart.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'area-chart', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-616-64h536c4.4 0 8-3.6 8-8V284c0-7.2-8.7-10.7-13.7-5.7L592 488.6l-125.4-124a8.03 8.03 0 00-11.3 0l-189 189.6a7.87 7.87 0 00-2.3 5.6V720c0 4.4 3.6 8 8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/area-chart.svg b/src/blrec/data/webapp/assets/outline/area-chart.svg new file mode 100644 index 0000000..311c063 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/area-chart.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-616-64h536c4.4 0 8-3.6 8-8V284c0-7.2-8.7-10.7-13.7-5.7L592 488.6l-125.4-124a8.03 8.03 0 00-11.3 0l-189 189.6a7.87 7.87 0 00-2.3 5.6V720c0 4.4 3.6 8 8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/arrow-down.js b/src/blrec/data/webapp/assets/outline/arrow-down.js new file mode 100644 index 0000000..acbd50d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/arrow-down.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'arrow-down', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M862 465.3h-81c-4.6 0-9 2-12.1 5.5L550 723.1V160c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v563.1L255.1 470.8c-3-3.5-7.4-5.5-12.1-5.5h-81c-6.8 0-10.5 8.1-6 13.2L487.9 861a31.96 31.96 0 0048.3 0L868 478.5c4.5-5.2.8-13.2-6-13.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/arrow-down.svg b/src/blrec/data/webapp/assets/outline/arrow-down.svg new file mode 100644 index 0000000..7678458 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/arrow-down.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M862 465.3h-81c-4.6 0-9 2-12.1 5.5L550 723.1V160c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v563.1L255.1 470.8c-3-3.5-7.4-5.5-12.1-5.5h-81c-6.8 0-10.5 8.1-6 13.2L487.9 861a31.96 31.96 0 0048.3 0L868 478.5c4.5-5.2.8-13.2-6-13.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/arrow-left.js b/src/blrec/data/webapp/assets/outline/arrow-left.js new file mode 100644 index 0000000..8377231 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/arrow-left.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'arrow-left', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 000 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/arrow-left.svg b/src/blrec/data/webapp/assets/outline/arrow-left.svg new file mode 100644 index 0000000..c61674e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/arrow-left.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 000 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/arrow-right.js b/src/blrec/data/webapp/assets/outline/arrow-right.js new file mode 100644 index 0000000..18d0b3b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/arrow-right.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'arrow-right', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M869 487.8L491.2 159.9c-2.9-2.5-6.6-3.9-10.5-3.9h-88.5c-7.4 0-10.8 9.2-5.2 14l350.2 304H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h585.1L386.9 854c-5.6 4.9-2.2 14 5.2 14h91.5c1.9 0 3.8-.7 5.2-2L869 536.2a32.07 32.07 0 000-48.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/arrow-right.svg b/src/blrec/data/webapp/assets/outline/arrow-right.svg new file mode 100644 index 0000000..6e03db2 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/arrow-right.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M869 487.8L491.2 159.9c-2.9-2.5-6.6-3.9-10.5-3.9h-88.5c-7.4 0-10.8 9.2-5.2 14l350.2 304H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h585.1L386.9 854c-5.6 4.9-2.2 14 5.2 14h91.5c1.9 0 3.8-.7 5.2-2L869 536.2a32.07 32.07 0 000-48.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/arrow-up.js b/src/blrec/data/webapp/assets/outline/arrow-up.js new file mode 100644 index 0000000..259d525 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/arrow-up.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'arrow-up', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M868 545.5L536.1 163a31.96 31.96 0 00-48.3 0L156 545.5a7.97 7.97 0 006 13.2h81c4.6 0 9-2 12.1-5.5L474 300.9V864c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V300.9l218.9 252.3c3 3.5 7.4 5.5 12.1 5.5h81c6.8 0 10.5-8 6-13.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/arrow-up.svg b/src/blrec/data/webapp/assets/outline/arrow-up.svg new file mode 100644 index 0000000..f656a63 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/arrow-up.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M868 545.5L536.1 163a31.96 31.96 0 00-48.3 0L156 545.5a7.97 7.97 0 006 13.2h81c4.6 0 9-2 12.1-5.5L474 300.9V864c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V300.9l218.9 252.3c3 3.5 7.4 5.5 12.1 5.5h81c6.8 0 10.5-8 6-13.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/arrows-alt.js b/src/blrec/data/webapp/assets/outline/arrows-alt.js new file mode 100644 index 0000000..2048fff --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/arrows-alt.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'arrows-alt', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M855 160.1l-189.2 23.5c-6.6.8-9.3 8.8-4.7 13.5l54.7 54.7-153.5 153.5a8.03 8.03 0 000 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l153.6-153.6 54.7 54.7a7.94 7.94 0 0013.5-4.7L863.9 169a7.9 7.9 0 00-8.9-8.9zM416.6 562.3a8.03 8.03 0 00-11.3 0L251.8 715.9l-54.7-54.7a7.94 7.94 0 00-13.5 4.7L160.1 855c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 153.6-153.6c3.1-3.1 3.1-8.2 0-11.3l-45.2-45z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/arrows-alt.svg b/src/blrec/data/webapp/assets/outline/arrows-alt.svg new file mode 100644 index 0000000..19418e1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/arrows-alt.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M855 160.1l-189.2 23.5c-6.6.8-9.3 8.8-4.7 13.5l54.7 54.7-153.5 153.5a8.03 8.03 0 000 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l153.6-153.6 54.7 54.7a7.94 7.94 0 0013.5-4.7L863.9 169a7.9 7.9 0 00-8.9-8.9zM416.6 562.3a8.03 8.03 0 00-11.3 0L251.8 715.9l-54.7-54.7a7.94 7.94 0 00-13.5 4.7L160.1 855c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 153.6-153.6c3.1-3.1 3.1-8.2 0-11.3l-45.2-45z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/audio-muted.js b/src/blrec/data/webapp/assets/outline/audio-muted.js new file mode 100644 index 0000000..4bfd080 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/audio-muted.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'audio-muted', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M682 455V311l-76 76v68c-.1 50.7-42 92.1-94 92a95.8 95.8 0 01-52-15l-54 55c29.1 22.4 65.9 36 106 36 93.8 0 170-75.1 170-168z" /><path d="M833 446h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254-63 0-120.7-23-165-61l-54 54a334.01 334.01 0 00179 81v102H326c-13.9 0-24.9 14.3-25 32v36c.1 4.4 2.9 8 6 8h408c3.2 0 6-3.6 6-8v-36c0-17.7-11-32-25-32H547V782c165.3-17.9 294-157.9 294-328 0-4.4-3.6-8-8-8zm13.1-377.7l-43.5-41.9a8 8 0 00-11.2.1l-129 129C634.3 101.2 577 64 511 64c-93.9 0-170 75.3-170 168v224c0 6.7.4 13.3 1.2 19.8l-68 68A252.33 252.33 0 01258 454c-.2-4.4-3.8-8-8-8h-60c-4.4 0-8 3.6-8 8 0 53 12.5 103 34.6 147.4l-137 137a8.03 8.03 0 000 11.3l42.7 42.7c3.1 3.1 8.2 3.1 11.3 0L846.2 79.8l.1-.1c3.1-3.2 3-8.3-.2-11.4zM417 401V232c0-50.6 41.9-92 94-92 46 0 84.1 32.3 92.3 74.7L417 401z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/audio-muted.svg b/src/blrec/data/webapp/assets/outline/audio-muted.svg new file mode 100644 index 0000000..47d8ae4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/audio-muted.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M682 455V311l-76 76v68c-.1 50.7-42 92.1-94 92a95.8 95.8 0 01-52-15l-54 55c29.1 22.4 65.9 36 106 36 93.8 0 170-75.1 170-168z" /><path d="M833 446h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254-63 0-120.7-23-165-61l-54 54a334.01 334.01 0 00179 81v102H326c-13.9 0-24.9 14.3-25 32v36c.1 4.4 2.9 8 6 8h408c3.2 0 6-3.6 6-8v-36c0-17.7-11-32-25-32H547V782c165.3-17.9 294-157.9 294-328 0-4.4-3.6-8-8-8zm13.1-377.7l-43.5-41.9a8 8 0 00-11.2.1l-129 129C634.3 101.2 577 64 511 64c-93.9 0-170 75.3-170 168v224c0 6.7.4 13.3 1.2 19.8l-68 68A252.33 252.33 0 01258 454c-.2-4.4-3.8-8-8-8h-60c-4.4 0-8 3.6-8 8 0 53 12.5 103 34.6 147.4l-137 137a8.03 8.03 0 000 11.3l42.7 42.7c3.1 3.1 8.2 3.1 11.3 0L846.2 79.8l.1-.1c3.1-3.2 3-8.3-.2-11.4zM417 401V232c0-50.6 41.9-92 94-92 46 0 84.1 32.3 92.3 74.7L417 401z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/audio.js b/src/blrec/data/webapp/assets/outline/audio.js new file mode 100644 index 0000000..f809ec0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/audio.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'audio', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M842 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1zM512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm-94-392c0-50.6 41.9-92 94-92s94 41.4 94 92v224c0 50.6-41.9 92-94 92s-94-41.4-94-92V232z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/audio.svg b/src/blrec/data/webapp/assets/outline/audio.svg new file mode 100644 index 0000000..2e3f63b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/audio.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M842 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1zM512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm-94-392c0-50.6 41.9-92 94-92s94 41.4 94 92v224c0 50.6-41.9 92-94 92s-94-41.4-94-92V232z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/audit.js b/src/blrec/data/webapp/assets/outline/audit.js new file mode 100644 index 0000000..d660b97 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/audit.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'audit', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M296 250c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm184 144H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-48 458H208V148h560v320c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm440-88H728v-36.6c46.3-13.8 80-56.6 80-107.4 0-61.9-50.1-112-112-112s-112 50.1-112 112c0 50.7 33.7 93.6 80 107.4V764H520c-8.8 0-16 7.2-16 16v152c0 8.8 7.2 16 16 16h352c8.8 0 16-7.2 16-16V780c0-8.8-7.2-16-16-16zM646 620c0-27.6 22.4-50 50-50s50 22.4 50 50-22.4 50-50 50-50-22.4-50-50zm180 266H566v-60h260v60z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/audit.svg b/src/blrec/data/webapp/assets/outline/audit.svg new file mode 100644 index 0000000..a15cb98 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/audit.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M296 250c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm184 144H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-48 458H208V148h560v320c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm440-88H728v-36.6c46.3-13.8 80-56.6 80-107.4 0-61.9-50.1-112-112-112s-112 50.1-112 112c0 50.7 33.7 93.6 80 107.4V764H520c-8.8 0-16 7.2-16 16v152c0 8.8 7.2 16 16 16h352c8.8 0 16-7.2 16-16V780c0-8.8-7.2-16-16-16zM646 620c0-27.6 22.4-50 50-50s50 22.4 50 50-22.4 50-50 50-50-22.4-50-50zm180 266H566v-60h260v60z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/backward.js b/src/blrec/data/webapp/assets/outline/backward.js new file mode 100644 index 0000000..829cbc0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/backward.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'backward', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M485.6 249.9L198.2 498c-8.3 7.1-8.3 20.8 0 27.9l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9zm320 0L518.2 498a18.6 18.6 0 00-6.2 14c0 5.2 2.1 10.4 6.2 14l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/backward.svg b/src/blrec/data/webapp/assets/outline/backward.svg new file mode 100644 index 0000000..e1d8a17 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/backward.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M485.6 249.9L198.2 498c-8.3 7.1-8.3 20.8 0 27.9l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9zm320 0L518.2 498a18.6 18.6 0 00-6.2 14c0 5.2 2.1 10.4 6.2 14l287.4 248.2c10.7 9.2 26.4.9 26.4-14V263.8c0-14.8-15.7-23.2-26.4-13.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/bank.js b/src/blrec/data/webapp/assets/outline/bank.js new file mode 100644 index 0000000..18b4a06 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/bank.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'bank', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 00-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM512 196.7l271.1 197.2H240.9L512 196.7zM264 462h117v374H264V462zm189 0h117v374H453V462zm307 374H642V462h118v374z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/bank.svg b/src/blrec/data/webapp/assets/outline/bank.svg new file mode 100644 index 0000000..a9bf426 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/bank.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 00-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM512 196.7l271.1 197.2H240.9L512 196.7zM264 462h117v374H264V462zm189 0h117v374H453V462zm307 374H642V462h118v374z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/bar-chart.js b/src/blrec/data/webapp/assets/outline/bar-chart.js new file mode 100644 index 0000000..75569bf --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/bar-chart.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'bar-chart', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-600-80h56c4.4 0 8-3.6 8-8V560c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V384c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v320c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V462c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v242c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v400c0 4.4 3.6 8 8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/bar-chart.svg b/src/blrec/data/webapp/assets/outline/bar-chart.svg new file mode 100644 index 0000000..f3e28a3 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/bar-chart.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-600-80h56c4.4 0 8-3.6 8-8V560c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V384c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v320c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V462c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v242c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v400c0 4.4 3.6 8 8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/barcode.js b/src/blrec/data/webapp/assets/outline/barcode.js new file mode 100644 index 0000000..f4cd712 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/barcode.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'barcode', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M120 160H72c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zm833 0h-48c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zM200 736h112c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8H200c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm321 0h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm126 0h178c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8H647c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm-255 0h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm-79 64H201c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm257 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm256 0H648c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h178c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-385 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/barcode.svg b/src/blrec/data/webapp/assets/outline/barcode.svg new file mode 100644 index 0000000..1ca618a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/barcode.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M120 160H72c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zm833 0h-48c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zM200 736h112c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8H200c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm321 0h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm126 0h178c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8H647c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm-255 0h48c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8zm-79 64H201c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm257 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm256 0H648c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h178c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-385 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/bars.js b/src/blrec/data/webapp/assets/outline/bars.js new file mode 100644 index 0000000..32c51d4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/bars.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'bars', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/bars.svg b/src/blrec/data/webapp/assets/outline/bars.svg new file mode 100644 index 0000000..4f8a2fd --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/bars.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/behance-square.js b/src/blrec/data/webapp/assets/outline/behance-square.js new file mode 100644 index 0000000..2bf53f6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/behance-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'behance-square', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM598.5 350.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 01-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 01-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 01-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0138.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 00-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7zm-248.5-10.1c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 00-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1s12.7-3.8 17.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/behance-square.svg b/src/blrec/data/webapp/assets/outline/behance-square.svg new file mode 100644 index 0000000..458c0b4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/behance-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM598.5 350.9h138.4v33.7H598.5v-33.7zM512 628.8a89.52 89.52 0 01-27 31c-11.8 8.2-24.9 14.2-38.8 17.7a167.4 167.4 0 01-44.6 5.7H236V342.1h161c16.3 0 31.1 1.5 44.6 4.3 13.4 2.8 24.8 7.6 34.4 14.1 9.5 6.5 17 15.2 22.3 26 5.2 10.7 7.9 24.1 7.9 40 0 17.2-3.9 31.4-11.7 42.9-7.9 11.5-19.3 20.8-34.8 28.1 21.1 6 36.6 16.7 46.8 31.7 10.4 15.2 15.5 33.4 15.5 54.8 0 17.4-3.3 32.3-10 44.8zM790.8 576H612.4c0 19.4 6.7 38 16.8 48 10.2 9.9 24.8 14.9 43.9 14.9 13.8 0 25.5-3.5 35.5-10.4 9.9-6.9 15.9-14.2 18.1-21.8h59.8c-9.6 29.7-24.2 50.9-44 63.7-19.6 12.8-43.6 19.2-71.5 19.2-19.5 0-37-3.2-52.7-9.3-15.1-5.9-28.7-14.9-39.9-26.5a121.2 121.2 0 01-25.1-41.2c-6.1-16.9-9.1-34.7-8.9-52.6 0-18.5 3.1-35.7 9.1-51.7 11.5-31.1 35.4-56 65.9-68.9 16.3-6.8 33.8-10.2 51.5-10 21 0 39.2 4 55 12.2a111.6 111.6 0 0138.6 32.8c10.1 13.7 17.2 29.3 21.7 46.9 4.3 17.3 5.8 35.5 4.6 54.7zm-122-95.6c-10.8 0-19.9 1.9-26.9 5.6-7 3.7-12.8 8.3-17.2 13.6a48.4 48.4 0 00-9.1 17.4c-1.6 5.3-2.7 10.7-3.1 16.2H723c-1.6-17.3-7.6-30.1-15.6-39.1-8.4-8.9-21.9-13.7-38.6-13.7zm-248.5-10.1c8.7-6.3 12.9-16.7 12.9-31 .3-6.8-1.1-13.5-4.1-19.6-2.7-4.9-6.7-9-11.6-11.9a44.8 44.8 0 00-16.6-6c-6.4-1.2-12.9-1.8-19.3-1.7h-70.3v79.7h76.1c13.1.1 24.2-3.1 32.9-9.5zm11.8 72c-9.8-7.5-22.9-11.2-39.2-11.2h-81.8v94h80.2c7.5 0 14.4-.7 21.1-2.1s12.7-3.8 17.8-7.2c5.1-3.3 9.2-7.8 12.3-13.6 3-5.8 4.5-13.2 4.5-22.1 0-17.7-5-30.2-14.9-37.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/behance.js b/src/blrec/data/webapp/assets/outline/behance.js new file mode 100644 index 0000000..9c1ac24 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/behance.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'behance', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M634 294.3h199.5v48.4H634zM434.1 485.8c44.1-21.1 67.2-53.2 67.2-102.8 0-98.1-73-121.9-157.3-121.9H112v492.4h238.5c89.4 0 173.3-43 173.3-143 0-61.8-29.2-107.5-89.7-124.7zM220.2 345.1h101.5c39.1 0 74.2 10.9 74.2 56.3 0 41.8-27.3 58.6-66 58.6H220.2V345.1zm115.5 324.8H220.1V534.3H338c47.6 0 77.7 19.9 77.7 70.3 0 49.6-35.9 65.3-80 65.3zm575.8-89.5c0-105.5-61.7-193.4-173.3-193.4-108.5 0-182.3 81.7-182.3 188.8 0 111 69.9 187.2 182.3 187.2 85.1 0 140.2-38.3 166.7-120h-86.3c-9.4 30.5-47.6 46.5-77.3 46.5-57.4 0-87.4-33.6-87.4-90.7h256.9c.3-5.9.7-12.1.7-18.4zM653.9 537c3.1-46.9 34.4-76.2 81.2-76.2 49.2 0 73.8 28.9 78.1 76.2H653.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/behance.svg b/src/blrec/data/webapp/assets/outline/behance.svg new file mode 100644 index 0000000..f800fb5 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/behance.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M634 294.3h199.5v48.4H634zM434.1 485.8c44.1-21.1 67.2-53.2 67.2-102.8 0-98.1-73-121.9-157.3-121.9H112v492.4h238.5c89.4 0 173.3-43 173.3-143 0-61.8-29.2-107.5-89.7-124.7zM220.2 345.1h101.5c39.1 0 74.2 10.9 74.2 56.3 0 41.8-27.3 58.6-66 58.6H220.2V345.1zm115.5 324.8H220.1V534.3H338c47.6 0 77.7 19.9 77.7 70.3 0 49.6-35.9 65.3-80 65.3zm575.8-89.5c0-105.5-61.7-193.4-173.3-193.4-108.5 0-182.3 81.7-182.3 188.8 0 111 69.9 187.2 182.3 187.2 85.1 0 140.2-38.3 166.7-120h-86.3c-9.4 30.5-47.6 46.5-77.3 46.5-57.4 0-87.4-33.6-87.4-90.7h256.9c.3-5.9.7-12.1.7-18.4zM653.9 537c3.1-46.9 34.4-76.2 81.2-76.2 49.2 0 73.8 28.9 78.1 76.2H653.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/bell.js b/src/blrec/data/webapp/assets/outline/bell.js new file mode 100644 index 0000000..650fc71 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/bell.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'bell', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M816 768h-24V428c0-141.1-104.3-257.7-240-277.1V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.9c-135.7 19.4-240 136-240 277.1v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48zM304 768V428c0-55.6 21.6-107.8 60.9-147.1S456.4 220 512 220c55.6 0 107.8 21.6 147.1 60.9S720 372.4 720 428v340H304z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/bell.svg b/src/blrec/data/webapp/assets/outline/bell.svg new file mode 100644 index 0000000..b0cee33 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/bell.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M816 768h-24V428c0-141.1-104.3-257.7-240-277.1V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.9c-135.7 19.4-240 136-240 277.1v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48zM304 768V428c0-55.6 21.6-107.8 60.9-147.1S456.4 220 512 220c55.6 0 107.8 21.6 147.1 60.9S720 372.4 720 428v340H304z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/bg-colors.js b/src/blrec/data/webapp/assets/outline/bg-colors.js new file mode 100644 index 0000000..fb32b2a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/bg-colors.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'bg-colors', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M766.4 744.3c43.7 0 79.4-36.2 79.4-80.5 0-53.5-79.4-140.8-79.4-140.8S687 610.3 687 663.8c0 44.3 35.7 80.5 79.4 80.5zm-377.1-44.1c7.1 7.1 18.6 7.1 25.6 0l256.1-256c7.1-7.1 7.1-18.6 0-25.6l-256-256c-.6-.6-1.3-1.2-2-1.7l-78.2-78.2a9.11 9.11 0 00-12.8 0l-48 48a9.11 9.11 0 000 12.8l67.2 67.2-207.8 207.9c-7.1 7.1-7.1 18.6 0 25.6l255.9 256zm12.9-448.6l178.9 178.9H223.4l178.8-178.9zM904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/bg-colors.svg b/src/blrec/data/webapp/assets/outline/bg-colors.svg new file mode 100644 index 0000000..6aa01bb --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/bg-colors.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M766.4 744.3c43.7 0 79.4-36.2 79.4-80.5 0-53.5-79.4-140.8-79.4-140.8S687 610.3 687 663.8c0 44.3 35.7 80.5 79.4 80.5zm-377.1-44.1c7.1 7.1 18.6 7.1 25.6 0l256.1-256c7.1-7.1 7.1-18.6 0-25.6l-256-256c-.6-.6-1.3-1.2-2-1.7l-78.2-78.2a9.11 9.11 0 00-12.8 0l-48 48a9.11 9.11 0 000 12.8l67.2 67.2-207.8 207.9c-7.1 7.1-7.1 18.6 0 25.6l255.9 256zm12.9-448.6l178.9 178.9H223.4l178.8-178.9zM904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/block.js b/src/blrec/data/webapp/assets/outline/block.js new file mode 100644 index 0000000..1f06e90 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/block.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'block', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M856 376H648V168c0-8.8-7.2-16-16-16H168c-8.8 0-16 7.2-16 16v464c0 8.8 7.2 16 16 16h208v208c0 8.8 7.2 16 16 16h464c8.8 0 16-7.2 16-16V392c0-8.8-7.2-16-16-16zm-480 16v188H220V220h360v156H392c-8.8 0-16 7.2-16 16zm204 52v136H444V444h136zm224 360H444V648h188c8.8 0 16-7.2 16-16V444h156v360z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/block.svg b/src/blrec/data/webapp/assets/outline/block.svg new file mode 100644 index 0000000..c7b4a6e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/block.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M856 376H648V168c0-8.8-7.2-16-16-16H168c-8.8 0-16 7.2-16 16v464c0 8.8 7.2 16 16 16h208v208c0 8.8 7.2 16 16 16h464c8.8 0 16-7.2 16-16V392c0-8.8-7.2-16-16-16zm-480 16v188H220V220h360v156H392c-8.8 0-16 7.2-16 16zm204 52v136H444V444h136zm224 360H444V648h188c8.8 0 16-7.2 16-16V444h156v360z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/bold.js b/src/blrec/data/webapp/assets/outline/bold.js new file mode 100644 index 0000000..6126352 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/bold.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'bold', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M697.8 481.4c33.6-35 54.2-82.3 54.2-134.3v-10.2C752 229.3 663.9 142 555.3 142H259.4c-15.1 0-27.4 12.3-27.4 27.4v679.1c0 16.3 13.2 29.5 29.5 29.5h318.7c117 0 211.8-94.2 211.8-210.5v-11c0-73-37.4-137.3-94.2-175.1zM328 238h224.7c57.1 0 103.3 44.4 103.3 99.3v9.5c0 54.8-46.3 99.3-103.3 99.3H328V238zm366.6 429.4c0 62.9-51.7 113.9-115.5 113.9H328V542.7h251.1c63.8 0 115.5 51 115.5 113.9v10.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/bold.svg b/src/blrec/data/webapp/assets/outline/bold.svg new file mode 100644 index 0000000..5193885 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/bold.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M697.8 481.4c33.6-35 54.2-82.3 54.2-134.3v-10.2C752 229.3 663.9 142 555.3 142H259.4c-15.1 0-27.4 12.3-27.4 27.4v679.1c0 16.3 13.2 29.5 29.5 29.5h318.7c117 0 211.8-94.2 211.8-210.5v-11c0-73-37.4-137.3-94.2-175.1zM328 238h224.7c57.1 0 103.3 44.4 103.3 99.3v9.5c0 54.8-46.3 99.3-103.3 99.3H328V238zm366.6 429.4c0 62.9-51.7 113.9-115.5 113.9H328V542.7h251.1c63.8 0 115.5 51 115.5 113.9v10.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/book.js b/src/blrec/data/webapp/assets/outline/book.js new file mode 100644 index 0000000..c1614b6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/book.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'book', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-260 72h96v209.9L621.5 312 572 347.4V136zm220 752H232V136h280v296.9c0 3.3 1 6.6 3 9.3a15.9 15.9 0 0022.3 3.7l83.8-59.9 81.4 59.4c2.7 2 6 3.1 9.4 3.1 8.8 0 16-7.2 16-16V136h64v752z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/book.svg b/src/blrec/data/webapp/assets/outline/book.svg new file mode 100644 index 0000000..25c4a13 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/book.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-260 72h96v209.9L621.5 312 572 347.4V136zm220 752H232V136h280v296.9c0 3.3 1 6.6 3 9.3a15.9 15.9 0 0022.3 3.7l83.8-59.9 81.4 59.4c2.7 2 6 3.1 9.4 3.1 8.8 0 16-7.2 16-16V136h64v752z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/border-bottom.js b/src/blrec/data/webapp/assets/outline/border-bottom.js new file mode 100644 index 0000000..55b0f7b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/border-bottom.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'border-bottom', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M872 808H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-720-94h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-498h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-166h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm166 166h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm222-72h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388-404h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388 426h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388-404h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/border-bottom.svg b/src/blrec/data/webapp/assets/outline/border-bottom.svg new file mode 100644 index 0000000..2f330cc --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/border-bottom.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M872 808H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-720-94h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-498h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-166h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm166 166h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 332h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm222-72h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388-404h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388 426h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm388-404h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-388 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/border-horizontal.js b/src/blrec/data/webapp/assets/outline/border-horizontal.js new file mode 100644 index 0000000..caccd14 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/border-horizontal.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'border-horizontal', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M540 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm664 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/border-horizontal.svg b/src/blrec/data/webapp/assets/outline/border-horizontal.svg new file mode 100644 index 0000000..088457a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/border-horizontal.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M540 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-664 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm664 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/border-inner.js b/src/blrec/data/webapp/assets/outline/border-inner.js new file mode 100644 index 0000000..4cc20af --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/border-inner.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'border-inner', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M872 476H548V144h-72v332H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h324v332h72V548h324c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-664h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM650 216h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-592h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-166 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-426h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 260h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/border-inner.svg b/src/blrec/data/webapp/assets/outline/border-inner.svg new file mode 100644 index 0000000..d9cc9f8 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/border-inner.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M872 476H548V144h-72v332H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h324v332h72V548h324c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-664h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM650 216h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-592h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-166 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-426h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 260h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/border-left.js b/src/blrec/data/webapp/assets/outline/border-left.js new file mode 100644 index 0000000..2044886 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/border-left.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'border-left', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M208 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM540 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/border-left.svg b/src/blrec/data/webapp/assets/outline/border-left.svg new file mode 100644 index 0000000..acff252 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/border-left.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M208 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM540 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/border-outer.js b/src/blrec/data/webapp/assets/outline/border-outer.js new file mode 100644 index 0000000..2356a5e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/border-outer.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'border-outer', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM484 366h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM302 548h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm364 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-182 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 182h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/border-outer.svg b/src/blrec/data/webapp/assets/outline/border-outer.svg new file mode 100644 index 0000000..1a23cd1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/border-outer.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM484 366h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM302 548h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm364 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-182 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0 182h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/border-right.js b/src/blrec/data/webapp/assets/outline/border-right.js new file mode 100644 index 0000000..75d970b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/border-right.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'border-right', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M872 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/border-right.svg b/src/blrec/data/webapp/assets/outline/border-right.svg new file mode 100644 index 0000000..a98d325 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/border-right.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M872 144h-56c-4.4 0-8 3.6-8 8v720c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V152c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-498 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm498 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM374 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/border-top.js b/src/blrec/data/webapp/assets/outline/border-top.js new file mode 100644 index 0000000..5b4a9f8 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/border-top.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'border-top', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M872 144H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332-498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/border-top.svg b/src/blrec/data/webapp/assets/outline/border-top.svg new file mode 100644 index 0000000..3690e98 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/border-top.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M872 144H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM208 310h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm166 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332-498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 332h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/border-verticle.js b/src/blrec/data/webapp/assets/outline/border-verticle.js new file mode 100644 index 0000000..370c94a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/border-verticle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'border-verticle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M872 476H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-664h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM650 216h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-592h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-166 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM208 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM152 382h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM208 642h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/border-verticle.svg b/src/blrec/data/webapp/assets/outline/border-verticle.svg new file mode 100644 index 0000000..6d7f284 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/border-verticle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M872 476H152c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-166h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-664h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 498h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM650 216h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm56 592h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-56-592h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-166 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM208 808h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM152 382h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm332 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM208 642h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm332 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/border.js b/src/blrec/data/webapp/assets/outline/border.js new file mode 100644 index 0000000..aafecd1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/border.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'border', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/border.svg b/src/blrec/data/webapp/assets/outline/border.svg new file mode 100644 index 0000000..de5c334 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/border.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/borderless-table.js b/src/blrec/data/webapp/assets/outline/borderless-table.js new file mode 100644 index 0000000..07481f4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/borderless-table.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'borderless-table', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M117 368h231v64H117zm559 0h241v64H676zm-264 0h200v64H412zm0 224h200v64H412zm264 0h241v64H676zm-559 0h231v64H117zm295-160V179h-64v666h64V592zm264-64V179h-64v666h64V432z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/borderless-table.svg b/src/blrec/data/webapp/assets/outline/borderless-table.svg new file mode 100644 index 0000000..049904e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/borderless-table.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M117 368h231v64H117zm559 0h241v64H676zm-264 0h200v64H412zm0 224h200v64H412zm264 0h241v64H676zm-559 0h231v64H117zm295-160V179h-64v666h64V592zm264-64V179h-64v666h64V432z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/box-plot.js b/src/blrec/data/webapp/assets/outline/box-plot.js new file mode 100644 index 0000000..9103db8 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/box-plot.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'box-plot', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H232c-4.4 0-8 3.6-8 8v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h560c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zM296 368h88v288h-88V368zm432 288H448V368h280v288z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/box-plot.svg b/src/blrec/data/webapp/assets/outline/box-plot.svg new file mode 100644 index 0000000..a33f3be --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/box-plot.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H232c-4.4 0-8 3.6-8 8v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h560c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zM296 368h88v288h-88V368zm432 288H448V368h280v288z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/branches.js b/src/blrec/data/webapp/assets/outline/branches.js new file mode 100644 index 0000000..8c12134 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/branches.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'branches', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M740 161c-61.8 0-112 50.2-112 112 0 50.1 33.1 92.6 78.5 106.9v95.9L320 602.4V318.1c44.2-15 76-56.9 76-106.1 0-61.8-50.2-112-112-112s-112 50.2-112 112c0 49.2 31.8 91 76 106.1V706c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1v-27.8l423.5-138.7a50.52 50.52 0 0034.9-48.2V378.2c42.9-15.8 73.6-57 73.6-105.2 0-61.8-50.2-112-112-112zm-504 51a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm96 600a48.01 48.01 0 01-96 0 48.01 48.01 0 0196 0zm408-491a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/branches.svg b/src/blrec/data/webapp/assets/outline/branches.svg new file mode 100644 index 0000000..f1f91d2 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/branches.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M740 161c-61.8 0-112 50.2-112 112 0 50.1 33.1 92.6 78.5 106.9v95.9L320 602.4V318.1c44.2-15 76-56.9 76-106.1 0-61.8-50.2-112-112-112s-112 50.2-112 112c0 49.2 31.8 91 76 106.1V706c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1v-27.8l423.5-138.7a50.52 50.52 0 0034.9-48.2V378.2c42.9-15.8 73.6-57 73.6-105.2 0-61.8-50.2-112-112-112zm-504 51a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm96 600a48.01 48.01 0 01-96 0 48.01 48.01 0 0196 0zm408-491a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/bug.js b/src/blrec/data/webapp/assets/outline/bug.js new file mode 100644 index 0000000..2a5434f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/bug.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'bug', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M304 280h56c4.4 0 8-3.6 8-8 0-28.3 5.9-53.2 17.1-73.5 10.6-19.4 26-34.8 45.4-45.4C450.9 142 475.7 136 504 136h16c28.3 0 53.2 5.9 73.5 17.1 19.4 10.6 34.8 26 45.4 45.4C650 218.9 656 243.7 656 272c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1a184.31 184.31 0 00-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9a184.31 184.31 0 00-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z" /><path d="M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8a63 63 0 01-63 63H232a63 63 0 01-63-63c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7a273 273 0 0022.7 49c24.3 41.5 59 76.2 100.5 100.5S460.5 960 512 960s99.8-13.9 141.3-38.2a281.38 281.38 0 00123.2-149.5A120 120 0 01836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM716 680c0 36.8-9.7 72-27.8 102.9-17.7 30.3-43 55.6-73.3 73.3C584 874.3 548.8 884 512 884s-72-9.7-102.9-27.8c-30.3-17.7-55.6-43-73.3-73.3A202.75 202.75 0 01308 680V412h408v268z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/bug.svg b/src/blrec/data/webapp/assets/outline/bug.svg new file mode 100644 index 0000000..4a02cdf --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/bug.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M304 280h56c4.4 0 8-3.6 8-8 0-28.3 5.9-53.2 17.1-73.5 10.6-19.4 26-34.8 45.4-45.4C450.9 142 475.7 136 504 136h16c28.3 0 53.2 5.9 73.5 17.1 19.4 10.6 34.8 26 45.4 45.4C650 218.9 656 243.7 656 272c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1a184.31 184.31 0 00-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9a184.31 184.31 0 00-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z" /><path d="M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8a63 63 0 01-63 63H232a63 63 0 01-63-63c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7a273 273 0 0022.7 49c24.3 41.5 59 76.2 100.5 100.5S460.5 960 512 960s99.8-13.9 141.3-38.2a281.38 281.38 0 00123.2-149.5A120 120 0 01836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM716 680c0 36.8-9.7 72-27.8 102.9-17.7 30.3-43 55.6-73.3 73.3C584 874.3 548.8 884 512 884s-72-9.7-102.9-27.8c-30.3-17.7-55.6-43-73.3-73.3A202.75 202.75 0 01308 680V412h408v268z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/build.js b/src/blrec/data/webapp/assets/outline/build.js new file mode 100644 index 0000000..652bbe3 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/build.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'build', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zm-504 68h200v200H412V278zm-68 468H144V546h200v200zm268 0H412V546h200v200zm268-268H680V278h200v200z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/build.svg b/src/blrec/data/webapp/assets/outline/build.svg new file mode 100644 index 0000000..8ff5c27 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/build.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zm-504 68h200v200H412V278zm-68 468H144V546h200v200zm268 0H412V546h200v200zm268-268H680V278h200v200z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/bulb.js b/src/blrec/data/webapp/assets/outline/bulb.js new file mode 100644 index 0000000..0f1528a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/bulb.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'bulb', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/bulb.svg b/src/blrec/data/webapp/assets/outline/bulb.svg new file mode 100644 index 0000000..ffd07df --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/bulb.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/calculator.js b/src/blrec/data/webapp/assets/outline/calculator.js new file mode 100644 index 0000000..2c7bd18 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/calculator.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'calculator', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M251.2 387H320v68.8c0 1.8 1.8 3.2 4 3.2h48c2.2 0 4-1.4 4-3.3V387h68.8c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H376v-68.8c0-1.8-1.8-3.2-4-3.2h-48c-2.2 0-4 1.4-4 3.2V331h-68.8c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm328 0h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0 265h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0 104h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm-195.7-81l61.2-74.9c4.3-5.2.7-13.1-5.9-13.1H388c-2.3 0-4.5 1-5.9 2.9l-34 41.6-34-41.6a7.85 7.85 0 00-5.9-2.9h-50.9c-6.6 0-10.2 7.9-5.9 13.1l61.2 74.9-62.7 76.8c-4.4 5.2-.8 13.1 5.8 13.1h50.8c2.3 0 4.5-1 5.9-2.9l35.5-43.5 35.5 43.5c1.5 1.8 3.7 2.9 5.9 2.9h50.8c6.6 0 10.2-7.9 5.9-13.1L383.5 675zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-36 732H180V180h664v664z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/calculator.svg b/src/blrec/data/webapp/assets/outline/calculator.svg new file mode 100644 index 0000000..b4ac205 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/calculator.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M251.2 387H320v68.8c0 1.8 1.8 3.2 4 3.2h48c2.2 0 4-1.4 4-3.3V387h68.8c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H376v-68.8c0-1.8-1.8-3.2-4-3.2h-48c-2.2 0-4 1.4-4 3.2V331h-68.8c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm328 0h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0 265h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0 104h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm-195.7-81l61.2-74.9c4.3-5.2.7-13.1-5.9-13.1H388c-2.3 0-4.5 1-5.9 2.9l-34 41.6-34-41.6a7.85 7.85 0 00-5.9-2.9h-50.9c-6.6 0-10.2 7.9-5.9 13.1l61.2 74.9-62.7 76.8c-4.4 5.2-.8 13.1 5.8 13.1h50.8c2.3 0 4.5-1 5.9-2.9l35.5-43.5 35.5 43.5c1.5 1.8 3.7 2.9 5.9 2.9h50.8c6.6 0 10.2-7.9 5.9-13.1L383.5 675zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-36 732H180V180h664v664z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/calendar.js b/src/blrec/data/webapp/assets/outline/calendar.js new file mode 100644 index 0000000..4a910d8 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/calendar.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'calendar', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/calendar.svg b/src/blrec/data/webapp/assets/outline/calendar.svg new file mode 100644 index 0000000..108a2fa --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/calendar.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/camera.js b/src/blrec/data/webapp/assets/outline/camera.js new file mode 100644 index 0000000..1069f1b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/camera.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'camera', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M864 248H728l-32.4-90.8a32.07 32.07 0 00-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 248H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V328c0-44.2-35.8-80-80-80zm8 536c0 4.4-3.6 8-8 8H160c-4.4 0-8-3.6-8-8V328c0-4.4 3.6-8 8-8h186.7l17.1-47.8 22.9-64.2h250.5l22.9 64.2 17.1 47.8H864c4.4 0 8 3.6 8 8v456zM512 384c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zm0 256c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/camera.svg b/src/blrec/data/webapp/assets/outline/camera.svg new file mode 100644 index 0000000..5fbc9a0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/camera.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M864 248H728l-32.4-90.8a32.07 32.07 0 00-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 248H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V328c0-44.2-35.8-80-80-80zm8 536c0 4.4-3.6 8-8 8H160c-4.4 0-8-3.6-8-8V328c0-4.4 3.6-8 8-8h186.7l17.1-47.8 22.9-64.2h250.5l22.9 64.2 17.1 47.8H864c4.4 0 8 3.6 8 8v456zM512 384c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zm0 256c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/car.js b/src/blrec/data/webapp/assets/outline/car.js new file mode 100644 index 0000000..588fc8a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/car.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'car', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M380 704h264c4.4 0 8-3.6 8-8v-84c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v36H428v-36c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v84c0 4.4 3.6 8 8 8zm340-123a40 40 0 1080 0 40 40 0 10-80 0zm239-167.6L935.3 372a8 8 0 00-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 00-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 00-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 003-10.8zM840 517v237H184V517l15.6-43h624.8l15.6 43zM292.7 218.1l.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220l72.7-199.9zM224 581a40 40 0 1080 0 40 40 0 10-80 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/car.svg b/src/blrec/data/webapp/assets/outline/car.svg new file mode 100644 index 0000000..ccb3541 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/car.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M380 704h264c4.4 0 8-3.6 8-8v-84c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v36H428v-36c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v84c0 4.4 3.6 8 8 8zm340-123a40 40 0 1080 0 40 40 0 10-80 0zm239-167.6L935.3 372a8 8 0 00-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 00-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 00-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 003-10.8zM840 517v237H184V517l15.6-43h624.8l15.6 43zM292.7 218.1l.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220l72.7-199.9zM224 581a40 40 0 1080 0 40 40 0 10-80 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/caret-down.js b/src/blrec/data/webapp/assets/outline/caret-down.js new file mode 100644 index 0000000..07004b5 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/caret-down.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'caret-down', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/caret-down.svg b/src/blrec/data/webapp/assets/outline/caret-down.svg new file mode 100644 index 0000000..8f6b32f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/caret-down.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/caret-left.js b/src/blrec/data/webapp/assets/outline/caret-left.js new file mode 100644 index 0000000..76d3ae7 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/caret-left.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'caret-left', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M689 165.1L308.2 493.5c-10.9 9.4-10.9 27.5 0 37L689 858.9c14.2 12.2 35 1.2 35-18.5V183.6c0-19.7-20.8-30.7-35-18.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/caret-left.svg b/src/blrec/data/webapp/assets/outline/caret-left.svg new file mode 100644 index 0000000..735ae05 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/caret-left.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M689 165.1L308.2 493.5c-10.9 9.4-10.9 27.5 0 37L689 858.9c14.2 12.2 35 1.2 35-18.5V183.6c0-19.7-20.8-30.7-35-18.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/caret-right.js b/src/blrec/data/webapp/assets/outline/caret-right.js new file mode 100644 index 0000000..8a76690 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/caret-right.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'caret-right', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/caret-right.svg b/src/blrec/data/webapp/assets/outline/caret-right.svg new file mode 100644 index 0000000..02c5840 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/caret-right.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/caret-up.js b/src/blrec/data/webapp/assets/outline/caret-up.js new file mode 100644 index 0000000..cb3d553 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/caret-up.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'caret-up', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/caret-up.svg b/src/blrec/data/webapp/assets/outline/caret-up.svg new file mode 100644 index 0000000..adfeffa --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/caret-up.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/carry-out.js b/src/blrec/data/webapp/assets/outline/carry-out.js new file mode 100644 index 0000000..d330db2 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/carry-out.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'carry-out', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584zM688 420h-55.2c-5.1 0-10 2.5-13 6.6L468.9 634.4l-64.7-89c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0026 0l212.6-292.7c3.8-5.4 0-12.8-6.5-12.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/carry-out.svg b/src/blrec/data/webapp/assets/outline/carry-out.svg new file mode 100644 index 0000000..fd344d6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/carry-out.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584zM688 420h-55.2c-5.1 0-10 2.5-13 6.6L468.9 634.4l-64.7-89c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0026 0l212.6-292.7c3.8-5.4 0-12.8-6.5-12.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/check-circle.js b/src/blrec/data/webapp/assets/outline/check-circle.js new file mode 100644 index 0000000..f2b54a2 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/check-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'check-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/check-circle.svg b/src/blrec/data/webapp/assets/outline/check-circle.svg new file mode 100644 index 0000000..475f029 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/check-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/check-square.js b/src/blrec/data/webapp/assets/outline/check-square.js new file mode 100644 index 0000000..2b1657d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/check-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'check-square', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M433.1 657.7a31.8 31.8 0 0051.7 0l210.6-292c3.8-5.3 0-12.7-6.5-12.7H642c-10.2 0-19.9 4.9-25.9 13.3L459 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H315c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8z" /><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/check-square.svg b/src/blrec/data/webapp/assets/outline/check-square.svg new file mode 100644 index 0000000..ac47636 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/check-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M433.1 657.7a31.8 31.8 0 0051.7 0l210.6-292c3.8-5.3 0-12.7-6.5-12.7H642c-10.2 0-19.9 4.9-25.9 13.3L459 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H315c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8z" /><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/check.js b/src/blrec/data/webapp/assets/outline/check.js new file mode 100644 index 0000000..ca55acf --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/check.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'check', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/check.svg b/src/blrec/data/webapp/assets/outline/check.svg new file mode 100644 index 0000000..1270766 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/check.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/chrome.js b/src/blrec/data/webapp/assets/outline/chrome.js new file mode 100644 index 0000000..db2b0f5 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/chrome.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'chrome', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 512.3v-.3c0-229.8-186.2-416-416-416S96 282.2 96 512v.4c0 229.8 186.2 416 416 416s416-186.2 416-416v-.3.2zm-6.7-74.6l.6 3.3-.6-3.3zM676.7 638.2c53.5-82.2 52.5-189.4-11.1-263.7l162.4-8.4c20.5 44.4 32 93.8 32 145.9 0 185.2-144.6 336.6-327.1 347.4l143.8-221.2zM512 652.3c-77.5 0-140.2-62.7-140.2-140.2 0-77.7 62.7-140.2 140.2-140.2S652.2 434.5 652.2 512 589.5 652.3 512 652.3zm369.2-331.7l-3-5.7 3 5.7zM512 164c121.3 0 228.2 62.1 290.4 156.2l-263.6-13.9c-97.5-5.7-190.2 49.2-222.3 141.1L227.8 311c63.1-88.9 166.9-147 284.2-147zM102.5 585.8c26 145 127.1 264 261.6 315.1C229.6 850 128.5 731 102.5 585.8zM164 512c0-55.9 13.2-108.7 36.6-155.5l119.7 235.4c44.1 86.7 137.4 139.7 234 121.6l-74 145.1C302.9 842.5 164 693.5 164 512zm324.7 415.4c4 .2 8 .4 12 .5-4-.2-8-.3-12-.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/chrome.svg b/src/blrec/data/webapp/assets/outline/chrome.svg new file mode 100644 index 0000000..32c708b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/chrome.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 512.3v-.3c0-229.8-186.2-416-416-416S96 282.2 96 512v.4c0 229.8 186.2 416 416 416s416-186.2 416-416v-.3.2zm-6.7-74.6l.6 3.3-.6-3.3zM676.7 638.2c53.5-82.2 52.5-189.4-11.1-263.7l162.4-8.4c20.5 44.4 32 93.8 32 145.9 0 185.2-144.6 336.6-327.1 347.4l143.8-221.2zM512 652.3c-77.5 0-140.2-62.7-140.2-140.2 0-77.7 62.7-140.2 140.2-140.2S652.2 434.5 652.2 512 589.5 652.3 512 652.3zm369.2-331.7l-3-5.7 3 5.7zM512 164c121.3 0 228.2 62.1 290.4 156.2l-263.6-13.9c-97.5-5.7-190.2 49.2-222.3 141.1L227.8 311c63.1-88.9 166.9-147 284.2-147zM102.5 585.8c26 145 127.1 264 261.6 315.1C229.6 850 128.5 731 102.5 585.8zM164 512c0-55.9 13.2-108.7 36.6-155.5l119.7 235.4c44.1 86.7 137.4 139.7 234 121.6l-74 145.1C302.9 842.5 164 693.5 164 512zm324.7 415.4c4 .2 8 .4 12 .5-4-.2-8-.3-12-.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/ci-circle.js b/src/blrec/data/webapp/assets/outline/ci-circle.js new file mode 100644 index 0000000..056c57a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/ci-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'ci-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm218-572.1h-50.4c-4.4 0-8 3.6-8 8v384.2c0 4.4 3.6 8 8 8H730c4.4 0 8-3.6 8-8V319.9c0-4.4-3.6-8-8-8zm-281.4 49.6c49.5 0 83.1 31.5 87 77.6.4 4.2 3.8 7.4 8 7.4h52.6c2.4 0 4.4-2 4.4-4.4 0-81.2-64-138.1-152.3-138.1C345.4 304 286 373.5 286 488.4v49c0 114 59.4 182.6 162.3 182.6 88 0 152.3-55.1 152.3-132.5 0-2.4-2-4.4-4.4-4.4h-52.7c-4.2 0-7.6 3.2-8 7.3-4.2 43-37.7 72.4-87 72.4-61.1 0-95.6-44.9-95.6-125.2v-49.3c.1-81.4 34.6-126.8 95.7-126.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/ci-circle.svg b/src/blrec/data/webapp/assets/outline/ci-circle.svg new file mode 100644 index 0000000..ca011a0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/ci-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm218-572.1h-50.4c-4.4 0-8 3.6-8 8v384.2c0 4.4 3.6 8 8 8H730c4.4 0 8-3.6 8-8V319.9c0-4.4-3.6-8-8-8zm-281.4 49.6c49.5 0 83.1 31.5 87 77.6.4 4.2 3.8 7.4 8 7.4h52.6c2.4 0 4.4-2 4.4-4.4 0-81.2-64-138.1-152.3-138.1C345.4 304 286 373.5 286 488.4v49c0 114 59.4 182.6 162.3 182.6 88 0 152.3-55.1 152.3-132.5 0-2.4-2-4.4-4.4-4.4h-52.7c-4.2 0-7.6 3.2-8 7.3-4.2 43-37.7 72.4-87 72.4-61.1 0-95.6-44.9-95.6-125.2v-49.3c.1-81.4 34.6-126.8 95.7-126.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/ci.js b/src/blrec/data/webapp/assets/outline/ci.js new file mode 100644 index 0000000..e278b72 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/ci.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'ci', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm218-572.1h-50.4c-4.4 0-8 3.6-8 8v384.2c0 4.4 3.6 8 8 8H730c4.4 0 8-3.6 8-8V319.9c0-4.4-3.6-8-8-8zm-281.4 49.6c49.5 0 83.1 31.5 87 77.6.4 4.2 3.8 7.4 8 7.4h52.6c2.4 0 4.4-2 4.4-4.4 0-81.2-64-138.1-152.3-138.1C345.4 304 286 373.5 286 488.4v49c0 114 59.4 182.6 162.3 182.6 88 0 152.3-55.1 152.3-132.5 0-2.4-2-4.4-4.4-4.4h-52.7c-4.2 0-7.6 3.2-8 7.3-4.2 43-37.7 72.4-87 72.4-61.1 0-95.6-44.9-95.6-125.2v-49.3c.1-81.4 34.6-126.8 95.7-126.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/ci.svg b/src/blrec/data/webapp/assets/outline/ci.svg new file mode 100644 index 0000000..ca011a0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/ci.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm218-572.1h-50.4c-4.4 0-8 3.6-8 8v384.2c0 4.4 3.6 8 8 8H730c4.4 0 8-3.6 8-8V319.9c0-4.4-3.6-8-8-8zm-281.4 49.6c49.5 0 83.1 31.5 87 77.6.4 4.2 3.8 7.4 8 7.4h52.6c2.4 0 4.4-2 4.4-4.4 0-81.2-64-138.1-152.3-138.1C345.4 304 286 373.5 286 488.4v49c0 114 59.4 182.6 162.3 182.6 88 0 152.3-55.1 152.3-132.5 0-2.4-2-4.4-4.4-4.4h-52.7c-4.2 0-7.6 3.2-8 7.3-4.2 43-37.7 72.4-87 72.4-61.1 0-95.6-44.9-95.6-125.2v-49.3c.1-81.4 34.6-126.8 95.7-126.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/clear.js b/src/blrec/data/webapp/assets/outline/clear.js new file mode 100644 index 0000000..fa19028 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/clear.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'clear', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M899.1 869.6l-53-305.6H864c14.4 0 26-11.6 26-26V346c0-14.4-11.6-26-26-26H618V138c0-14.4-11.6-26-26-26H432c-14.4 0-26 11.6-26 26v182H160c-14.4 0-26 11.6-26 26v192c0 14.4 11.6 26 26 26h17.9l-53 305.6a25.95 25.95 0 0025.6 30.4h723c1.5 0 3-.1 4.4-.4a25.88 25.88 0 0021.2-30zM204 390h272V182h72v208h272v104H204V390zm468 440V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H416V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H202.8l45.1-260H776l45.1 260H672z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/clear.svg b/src/blrec/data/webapp/assets/outline/clear.svg new file mode 100644 index 0000000..b895d17 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/clear.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M899.1 869.6l-53-305.6H864c14.4 0 26-11.6 26-26V346c0-14.4-11.6-26-26-26H618V138c0-14.4-11.6-26-26-26H432c-14.4 0-26 11.6-26 26v182H160c-14.4 0-26 11.6-26 26v192c0 14.4 11.6 26 26 26h17.9l-53 305.6a25.95 25.95 0 0025.6 30.4h723c1.5 0 3-.1 4.4-.4a25.88 25.88 0 0021.2-30zM204 390h272V182h72v208h272v104H204V390zm468 440V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H416V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H202.8l45.1-260H776l45.1 260H672z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/clock-circle.js b/src/blrec/data/webapp/assets/outline/clock-circle.js new file mode 100644 index 0000000..f8ef008 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/clock-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'clock-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /><path d="M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/clock-circle.svg b/src/blrec/data/webapp/assets/outline/clock-circle.svg new file mode 100644 index 0000000..c96ec39 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/clock-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /><path d="M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/close-circle.js b/src/blrec/data/webapp/assets/outline/close-circle.js new file mode 100644 index 0000000..7d25a69 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/close-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'close-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M685.4 354.8c0-4.4-3.6-8-8-8l-66 .3L512 465.6l-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155L340.5 670a8.32 8.32 0 00-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3L512 564.4l99.3 118.4 66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.5 515l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z" /><path d="M512 65C264.6 65 64 265.6 64 513s200.6 448 448 448 448-200.6 448-448S759.4 65 512 65zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/close-circle.svg b/src/blrec/data/webapp/assets/outline/close-circle.svg new file mode 100644 index 0000000..321f37b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/close-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M685.4 354.8c0-4.4-3.6-8-8-8l-66 .3L512 465.6l-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155L340.5 670a8.32 8.32 0 00-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3L512 564.4l99.3 118.4 66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.5 515l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z" /><path d="M512 65C264.6 65 64 265.6 64 513s200.6 448 448 448 448-200.6 448-448S759.4 65 512 65zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/close-square.js b/src/blrec/data/webapp/assets/outline/close-square.js new file mode 100644 index 0000000..c92d924 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/close-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'close-square', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M354 671h58.9c4.7 0 9.2-2.1 12.3-5.7L512 561.8l86.8 103.5c3 3.6 7.5 5.7 12.3 5.7H670c6.8 0 10.5-7.9 6.1-13.1L553.8 512l122.4-145.9c4.4-5.2.7-13.1-6.1-13.1h-58.9c-4.7 0-9.2 2.1-12.3 5.7L512 462.2l-86.8-103.5c-3-3.6-7.5-5.7-12.3-5.7H354c-6.8 0-10.5 7.9-6.1 13.1L470.2 512 347.9 657.9A7.95 7.95 0 00354 671z" /><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/close-square.svg b/src/blrec/data/webapp/assets/outline/close-square.svg new file mode 100644 index 0000000..1e169e5 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/close-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M354 671h58.9c4.7 0 9.2-2.1 12.3-5.7L512 561.8l86.8 103.5c3 3.6 7.5 5.7 12.3 5.7H670c6.8 0 10.5-7.9 6.1-13.1L553.8 512l122.4-145.9c4.4-5.2.7-13.1-6.1-13.1h-58.9c-4.7 0-9.2 2.1-12.3 5.7L512 462.2l-86.8-103.5c-3-3.6-7.5-5.7-12.3-5.7H354c-6.8 0-10.5 7.9-6.1 13.1L470.2 512 347.9 657.9A7.95 7.95 0 00354 671z" /><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/close.js b/src/blrec/data/webapp/assets/outline/close.js new file mode 100644 index 0000000..4d9863c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/close.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'close', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/close.svg b/src/blrec/data/webapp/assets/outline/close.svg new file mode 100644 index 0000000..a6af880 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/close.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/cloud-download.js b/src/blrec/data/webapp/assets/outline/cloud-download.js new file mode 100644 index 0000000..15e413a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/cloud-download.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'cloud-download', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M624 706.3h-74.1V464c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v242.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.7a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9z" /><path d="M811.4 366.7C765.6 245.9 648.9 160 512.2 160S258.8 245.8 213 366.6C127.3 389.1 64 467.2 64 560c0 110.5 89.5 200 199.9 200H304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8h-40.1c-33.7 0-65.4-13.4-89-37.7-23.5-24.2-36-56.8-34.9-90.6.9-26.4 9.9-51.2 26.2-72.1 16.7-21.3 40.1-36.8 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0152.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10C846.1 454.5 884 503.8 884 560c0 33.1-12.9 64.3-36.3 87.7a123.07 123.07 0 01-87.6 36.3H720c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h40.1C870.5 760 960 670.5 960 560c0-92.7-63.1-170.7-148.6-193.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/cloud-download.svg b/src/blrec/data/webapp/assets/outline/cloud-download.svg new file mode 100644 index 0000000..c6a3f88 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/cloud-download.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M624 706.3h-74.1V464c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v242.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.7a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9z" /><path d="M811.4 366.7C765.6 245.9 648.9 160 512.2 160S258.8 245.8 213 366.6C127.3 389.1 64 467.2 64 560c0 110.5 89.5 200 199.9 200H304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8h-40.1c-33.7 0-65.4-13.4-89-37.7-23.5-24.2-36-56.8-34.9-90.6.9-26.4 9.9-51.2 26.2-72.1 16.7-21.3 40.1-36.8 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0152.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10C846.1 454.5 884 503.8 884 560c0 33.1-12.9 64.3-36.3 87.7a123.07 123.07 0 01-87.6 36.3H720c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h40.1C870.5 760 960 670.5 960 560c0-92.7-63.1-170.7-148.6-193.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/cloud-server.js b/src/blrec/data/webapp/assets/outline/cloud-server.js new file mode 100644 index 0000000..95bd528 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/cloud-server.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'cloud-server', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M704 446H320c-4.4 0-8 3.6-8 8v402c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8V454c0-4.4-3.6-8-8-8zm-328 64h272v117H376V510zm272 290H376V683h272v117z" /><path d="M424 748a32 32 0 1064 0 32 32 0 10-64 0zm0-178a32 32 0 1064 0 32 32 0 10-64 0z" /><path d="M811.4 368.9C765.6 248 648.9 162 512.2 162S258.8 247.9 213 368.8C126.9 391.5 63.5 470.2 64 563.6 64.6 668 145.6 752.9 247.6 762c4.7.4 8.7-3.3 8.7-8v-60.4c0-4-3-7.4-7-7.9-27-3.4-52.5-15.2-72.1-34.5-24-23.5-37.2-55.1-37.2-88.6 0-28 9.1-54.4 26.2-76.4 16.7-21.4 40.2-36.9 66.1-43.7l37.9-10 13.9-36.7c8.6-22.8 20.6-44.2 35.7-63.5 14.9-19.2 32.6-36 52.4-50 41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.3c19.9 14 37.5 30.8 52.4 50 15.1 19.3 27.1 40.7 35.7 63.5l13.8 36.6 37.8 10c54.2 14.4 92.1 63.7 92.1 120 0 33.6-13.2 65.1-37.2 88.6-19.5 19.2-44.9 31.1-71.9 34.5-4 .5-6.9 3.9-6.9 7.9V754c0 4.7 4.1 8.4 8.8 8 101.7-9.2 182.5-94 183.2-198.2.6-93.4-62.7-172.1-148.6-194.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/cloud-server.svg b/src/blrec/data/webapp/assets/outline/cloud-server.svg new file mode 100644 index 0000000..958ff90 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/cloud-server.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M704 446H320c-4.4 0-8 3.6-8 8v402c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8V454c0-4.4-3.6-8-8-8zm-328 64h272v117H376V510zm272 290H376V683h272v117z" /><path d="M424 748a32 32 0 1064 0 32 32 0 10-64 0zm0-178a32 32 0 1064 0 32 32 0 10-64 0z" /><path d="M811.4 368.9C765.6 248 648.9 162 512.2 162S258.8 247.9 213 368.8C126.9 391.5 63.5 470.2 64 563.6 64.6 668 145.6 752.9 247.6 762c4.7.4 8.7-3.3 8.7-8v-60.4c0-4-3-7.4-7-7.9-27-3.4-52.5-15.2-72.1-34.5-24-23.5-37.2-55.1-37.2-88.6 0-28 9.1-54.4 26.2-76.4 16.7-21.4 40.2-36.9 66.1-43.7l37.9-10 13.9-36.7c8.6-22.8 20.6-44.2 35.7-63.5 14.9-19.2 32.6-36 52.4-50 41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.3c19.9 14 37.5 30.8 52.4 50 15.1 19.3 27.1 40.7 35.7 63.5l13.8 36.6 37.8 10c54.2 14.4 92.1 63.7 92.1 120 0 33.6-13.2 65.1-37.2 88.6-19.5 19.2-44.9 31.1-71.9 34.5-4 .5-6.9 3.9-6.9 7.9V754c0 4.7 4.1 8.4 8.8 8 101.7-9.2 182.5-94 183.2-198.2.6-93.4-62.7-172.1-148.6-194.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/cloud-sync.js b/src/blrec/data/webapp/assets/outline/cloud-sync.js new file mode 100644 index 0000000..dd8f456 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/cloud-sync.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'cloud-sync', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M811.4 368.9C765.6 248 648.9 162 512.2 162S258.8 247.9 213 368.8C126.9 391.5 63.5 470.2 64 563.6 64.6 668 145.6 752.9 247.6 762c4.7.4 8.7-3.3 8.7-8v-60.4c0-4-3-7.4-7-7.9-27-3.4-52.5-15.2-72.1-34.5-24-23.5-37.2-55.1-37.2-88.6 0-28 9.1-54.4 26.2-76.4 16.7-21.4 40.2-36.9 66.1-43.7l37.9-10 13.9-36.7c8.6-22.8 20.6-44.2 35.7-63.5 14.9-19.2 32.6-36 52.4-50 41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.3c19.9 14 37.5 30.8 52.4 50 15.1 19.3 27.1 40.7 35.7 63.5l13.8 36.6 37.8 10c54.2 14.4 92.1 63.7 92.1 120 0 33.6-13.2 65.1-37.2 88.6-19.5 19.2-44.9 31.1-71.9 34.5-4 .5-6.9 3.9-6.9 7.9V754c0 4.7 4.1 8.4 8.8 8 101.7-9.2 182.5-94 183.2-198.2.6-93.4-62.7-172.1-148.6-194.9z" /><path d="M376.9 656.4c1.8-33.5 15.7-64.7 39.5-88.6 25.4-25.5 60-39.8 96-39.8 36.2 0 70.3 14.1 96 39.8 1.4 1.4 2.7 2.8 4.1 4.3l-25 19.6a8 8 0 003 14.1l98.2 24c5 1.2 9.9-2.6 9.9-7.7l.5-101.3c0-6.7-7.6-10.5-12.9-6.3L663 532.7c-36.6-42-90.4-68.6-150.5-68.6-107.4 0-195 85.1-199.4 191.7-.2 4.5 3.4 8.3 8 8.3H369c4.2-.1 7.7-3.4 7.9-7.7zM703 664h-47.9c-4.2 0-7.7 3.3-8 7.6-1.8 33.5-15.7 64.7-39.5 88.6-25.4 25.5-60 39.8-96 39.8-36.2 0-70.3-14.1-96-39.8-1.4-1.4-2.7-2.8-4.1-4.3l25-19.6a8 8 0 00-3-14.1l-98.2-24c-5-1.2-9.9 2.6-9.9 7.7l-.4 101.4c0 6.7 7.6 10.5 12.9 6.3l23.2-18.2c36.6 42 90.4 68.6 150.5 68.6 107.4 0 195-85.1 199.4-191.7.2-4.5-3.4-8.3-8-8.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/cloud-sync.svg b/src/blrec/data/webapp/assets/outline/cloud-sync.svg new file mode 100644 index 0000000..aa9c852 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/cloud-sync.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M811.4 368.9C765.6 248 648.9 162 512.2 162S258.8 247.9 213 368.8C126.9 391.5 63.5 470.2 64 563.6 64.6 668 145.6 752.9 247.6 762c4.7.4 8.7-3.3 8.7-8v-60.4c0-4-3-7.4-7-7.9-27-3.4-52.5-15.2-72.1-34.5-24-23.5-37.2-55.1-37.2-88.6 0-28 9.1-54.4 26.2-76.4 16.7-21.4 40.2-36.9 66.1-43.7l37.9-10 13.9-36.7c8.6-22.8 20.6-44.2 35.7-63.5 14.9-19.2 32.6-36 52.4-50 41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.3c19.9 14 37.5 30.8 52.4 50 15.1 19.3 27.1 40.7 35.7 63.5l13.8 36.6 37.8 10c54.2 14.4 92.1 63.7 92.1 120 0 33.6-13.2 65.1-37.2 88.6-19.5 19.2-44.9 31.1-71.9 34.5-4 .5-6.9 3.9-6.9 7.9V754c0 4.7 4.1 8.4 8.8 8 101.7-9.2 182.5-94 183.2-198.2.6-93.4-62.7-172.1-148.6-194.9z" /><path d="M376.9 656.4c1.8-33.5 15.7-64.7 39.5-88.6 25.4-25.5 60-39.8 96-39.8 36.2 0 70.3 14.1 96 39.8 1.4 1.4 2.7 2.8 4.1 4.3l-25 19.6a8 8 0 003 14.1l98.2 24c5 1.2 9.9-2.6 9.9-7.7l.5-101.3c0-6.7-7.6-10.5-12.9-6.3L663 532.7c-36.6-42-90.4-68.6-150.5-68.6-107.4 0-195 85.1-199.4 191.7-.2 4.5 3.4 8.3 8 8.3H369c4.2-.1 7.7-3.4 7.9-7.7zM703 664h-47.9c-4.2 0-7.7 3.3-8 7.6-1.8 33.5-15.7 64.7-39.5 88.6-25.4 25.5-60 39.8-96 39.8-36.2 0-70.3-14.1-96-39.8-1.4-1.4-2.7-2.8-4.1-4.3l25-19.6a8 8 0 00-3-14.1l-98.2-24c-5-1.2-9.9 2.6-9.9 7.7l-.4 101.4c0 6.7 7.6 10.5 12.9 6.3l23.2-18.2c36.6 42 90.4 68.6 150.5 68.6 107.4 0 195-85.1 199.4-191.7.2-4.5-3.4-8.3-8-8.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/cloud-upload.js b/src/blrec/data/webapp/assets/outline/cloud-upload.js new file mode 100644 index 0000000..dd02273 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/cloud-upload.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'cloud-upload', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M518.3 459a8 8 0 00-12.6 0l-112 141.7a7.98 7.98 0 006.3 12.9h73.9V856c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V613.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 459z" /><path d="M811.4 366.7C765.6 245.9 648.9 160 512.2 160S258.8 245.8 213 366.6C127.3 389.1 64 467.2 64 560c0 110.5 89.5 200 199.9 200H304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8h-40.1c-33.7 0-65.4-13.4-89-37.7-23.5-24.2-36-56.8-34.9-90.6.9-26.4 9.9-51.2 26.2-72.1 16.7-21.3 40.1-36.8 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0152.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10C846.1 454.5 884 503.8 884 560c0 33.1-12.9 64.3-36.3 87.7a123.07 123.07 0 01-87.6 36.3H720c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h40.1C870.5 760 960 670.5 960 560c0-92.7-63.1-170.7-148.6-193.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/cloud-upload.svg b/src/blrec/data/webapp/assets/outline/cloud-upload.svg new file mode 100644 index 0000000..3151a4c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/cloud-upload.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M518.3 459a8 8 0 00-12.6 0l-112 141.7a7.98 7.98 0 006.3 12.9h73.9V856c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V613.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 459z" /><path d="M811.4 366.7C765.6 245.9 648.9 160 512.2 160S258.8 245.8 213 366.6C127.3 389.1 64 467.2 64 560c0 110.5 89.5 200 199.9 200H304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8h-40.1c-33.7 0-65.4-13.4-89-37.7-23.5-24.2-36-56.8-34.9-90.6.9-26.4 9.9-51.2 26.2-72.1 16.7-21.3 40.1-36.8 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0152.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10C846.1 454.5 884 503.8 884 560c0 33.1-12.9 64.3-36.3 87.7a123.07 123.07 0 01-87.6 36.3H720c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h40.1C870.5 760 960 670.5 960 560c0-92.7-63.1-170.7-148.6-193.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/cloud.js b/src/blrec/data/webapp/assets/outline/cloud.js new file mode 100644 index 0000000..adcf956 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/cloud.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'cloud', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3zm36.3 281a123.07 123.07 0 01-87.6 36.3H263.9c-33.1 0-64.2-12.9-87.6-36.3A123.3 123.3 0 01140 612c0-28 9.1-54.3 26.2-76.3a125.7 125.7 0 0166.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0152.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10c54.3 14.5 92.1 63.8 92.1 120 0 33.1-12.9 64.3-36.3 87.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/cloud.svg b/src/blrec/data/webapp/assets/outline/cloud.svg new file mode 100644 index 0000000..e323088 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/cloud.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3zm36.3 281a123.07 123.07 0 01-87.6 36.3H263.9c-33.1 0-64.2-12.9-87.6-36.3A123.3 123.3 0 01140 612c0-28 9.1-54.3 26.2-76.3a125.7 125.7 0 0166.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0152.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10c54.3 14.5 92.1 63.8 92.1 120 0 33.1-12.9 64.3-36.3 87.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/cluster.js b/src/blrec/data/webapp/assets/outline/cluster.js new file mode 100644 index 0000000..a031311 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/cluster.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'cluster', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M888 680h-54V540H546v-92h238c8.8 0 16-7.2 16-16V168c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h238v92H190v140h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8h-54v-72h220v72h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8h-54v-72h220v72h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8zM256 805.3c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zm288 0c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zM288 384V216h448v168H288zm544 421.3c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zM360 300a40 40 0 1080 0 40 40 0 10-80 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/cluster.svg b/src/blrec/data/webapp/assets/outline/cluster.svg new file mode 100644 index 0000000..5d1376c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/cluster.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M888 680h-54V540H546v-92h238c8.8 0 16-7.2 16-16V168c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h238v92H190v140h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8h-54v-72h220v72h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8h-54v-72h220v72h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8zM256 805.3c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zm288 0c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zM288 384V216h448v168H288zm544 421.3c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zM360 300a40 40 0 1080 0 40 40 0 10-80 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/code-sandbox.js b/src/blrec/data/webapp/assets/outline/code-sandbox.js new file mode 100644 index 0000000..da5d989 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/code-sandbox.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'code-sandbox', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M709.6 210l.4-.2h.2L512 96 313.9 209.8h-.2l.7.3L151.5 304v416L512 928l360.5-208V304l-162.9-94zM482.7 843.6L339.6 761V621.4L210 547.8V372.9l272.7 157.3v313.4zM238.2 321.5l134.7-77.8 138.9 79.7 139.1-79.9 135.2 78-273.9 158-274-158zM814 548.3l-128.8 73.1v139.1l-143.9 83V530.4L814 373.1v175.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/code-sandbox.svg b/src/blrec/data/webapp/assets/outline/code-sandbox.svg new file mode 100644 index 0000000..6ea5502 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/code-sandbox.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M709.6 210l.4-.2h.2L512 96 313.9 209.8h-.2l.7.3L151.5 304v416L512 928l360.5-208V304l-162.9-94zM482.7 843.6L339.6 761V621.4L210 547.8V372.9l272.7 157.3v313.4zM238.2 321.5l134.7-77.8 138.9 79.7 139.1-79.9 135.2 78-273.9 158-274-158zM814 548.3l-128.8 73.1v139.1l-143.9 83V530.4L814 373.1v175.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/code.js b/src/blrec/data/webapp/assets/outline/code.js new file mode 100644 index 0000000..c62d33e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/code.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'code', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48zm-194.9 6.1l192-161c3.8-3.2 3.8-9.1 0-12.3l-192-160.9A7.95 7.95 0 00308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 00-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/code.svg b/src/blrec/data/webapp/assets/outline/code.svg new file mode 100644 index 0000000..85427ad --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/code.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48zm-194.9 6.1l192-161c3.8-3.2 3.8-9.1 0-12.3l-192-160.9A7.95 7.95 0 00308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 00-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/codepen-circle.js b/src/blrec/data/webapp/assets/outline/codepen-circle.js new file mode 100644 index 0000000..700a63e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/codepen-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'codepen-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M488.1 414.7V303.4L300.9 428l83.6 55.8zm254.1 137.7v-79.8l-59.8 39.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm278 533c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 01-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 01-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 01.8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-254.1 13.3v111.3L723.1 597l-83.6-55.8zM281.8 472.6v79.8l59.8-39.9zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zM723.1 428L535.9 303.4v111.3l103.6 69.1zM384.5 541.2L300.9 597l187.2 124.6V610.3l-103.6-69.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/codepen-circle.svg b/src/blrec/data/webapp/assets/outline/codepen-circle.svg new file mode 100644 index 0000000..3ac6eea --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/codepen-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M488.1 414.7V303.4L300.9 428l83.6 55.8zm254.1 137.7v-79.8l-59.8 39.9zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm278 533c0 1.1-.1 2.1-.2 3.1 0 .4-.1.7-.2 1a14.16 14.16 0 01-.8 3.2c-.2.6-.4 1.2-.6 1.7-.2.4-.4.8-.5 1.2-.3.5-.5 1.1-.8 1.6-.2.4-.4.7-.7 1.1-.3.5-.7 1-1 1.5-.3.4-.5.7-.8 1-.4.4-.8.9-1.2 1.3-.3.3-.6.6-1 .9-.4.4-.9.8-1.4 1.1-.4.3-.7.6-1.1.8-.1.1-.3.2-.4.3L525.2 786c-4 2.7-8.6 4-13.2 4-4.7 0-9.3-1.4-13.3-4L244.6 616.9c-.1-.1-.3-.2-.4-.3l-1.1-.8c-.5-.4-.9-.7-1.3-1.1-.3-.3-.6-.6-1-.9-.4-.4-.8-.8-1.2-1.3a7 7 0 01-.8-1c-.4-.5-.7-1-1-1.5-.2-.4-.5-.7-.7-1.1-.3-.5-.6-1.1-.8-1.6-.2-.4-.4-.8-.5-1.2-.2-.6-.4-1.2-.6-1.7-.1-.4-.3-.8-.4-1.2-.2-.7-.3-1.3-.4-2-.1-.3-.1-.7-.2-1-.1-1-.2-2.1-.2-3.1V427.9c0-1 .1-2.1.2-3.1.1-.3.1-.7.2-1a14.16 14.16 0 01.8-3.2c.2-.6.4-1.2.6-1.7.2-.4.4-.8.5-1.2.2-.5.5-1.1.8-1.6.2-.4.4-.7.7-1.1.6-.9 1.2-1.7 1.8-2.5.4-.4.8-.9 1.2-1.3.3-.3.6-.6 1-.9.4-.4.9-.8 1.3-1.1.4-.3.7-.6 1.1-.8.1-.1.3-.2.4-.3L498.7 239c8-5.3 18.5-5.3 26.5 0l254.1 169.1c.1.1.3.2.4.3l1.1.8 1.4 1.1c.3.3.6.6 1 .9.4.4.8.8 1.2 1.3.7.8 1.3 1.6 1.8 2.5.2.4.5.7.7 1.1.3.5.6 1 .8 1.6.2.4.4.8.5 1.2.2.6.4 1.2.6 1.7.1.4.3.8.4 1.2.2.7.3 1.3.4 2 .1.3.1.7.2 1 .1 1 .2 2.1.2 3.1V597zm-254.1 13.3v111.3L723.1 597l-83.6-55.8zM281.8 472.6v79.8l59.8-39.9zM512 456.1l-84.5 56.4 84.5 56.4 84.5-56.4zM723.1 428L535.9 303.4v111.3l103.6 69.1zM384.5 541.2L300.9 597l187.2 124.6V610.3l-103.6-69.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/codepen.js b/src/blrec/data/webapp/assets/outline/codepen.js new file mode 100644 index 0000000..346a249 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/codepen.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'codepen', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M911.7 385.3l-.3-1.5c-.2-1-.3-1.9-.6-2.9-.2-.6-.4-1.1-.5-1.7-.3-.8-.5-1.7-.9-2.5-.2-.6-.5-1.1-.8-1.7-.4-.8-.8-1.5-1.2-2.3-.3-.5-.6-1.1-1-1.6-.8-1.2-1.7-2.4-2.6-3.6-.5-.6-1.1-1.3-1.7-1.9-.4-.5-.9-.9-1.4-1.3-.6-.6-1.3-1.1-1.9-1.6-.5-.4-1-.8-1.6-1.2-.2-.1-.4-.3-.6-.4L531.1 117.8a34.3 34.3 0 00-38.1 0L127.3 361.3c-.2.1-.4.3-.6.4-.5.4-1 .8-1.6 1.2-.7.5-1.3 1.1-1.9 1.6-.5.4-.9.9-1.4 1.3-.6.6-1.2 1.2-1.7 1.9-1 1.1-1.8 2.3-2.6 3.6-.3.5-.7 1-1 1.6-.4.7-.8 1.5-1.2 2.3-.3.5-.5 1.1-.8 1.7-.3.8-.6 1.7-.9 2.5-.2.6-.4 1.1-.5 1.7-.2.9-.4 1.9-.6 2.9l-.3 1.5c-.2 1.5-.3 3-.3 4.5v243.5c0 1.5.1 3 .3 4.5l.3 1.5.6 2.9c.2.6.3 1.1.5 1.7.3.9.6 1.7.9 2.5.2.6.5 1.1.8 1.7.4.8.7 1.5 1.2 2.3.3.5.6 1.1 1 1.6.5.7.9 1.4 1.5 2.1l1.2 1.5c.5.6 1.1 1.3 1.7 1.9.4.5.9.9 1.4 1.3.6.6 1.3 1.1 1.9 1.6.5.4 1 .8 1.6 1.2.2.1.4.3.6.4L493 905.7c5.6 3.8 12.3 5.8 19.1 5.8 6.6 0 13.3-1.9 19.1-5.8l365.6-243.5c.2-.1.4-.3.6-.4.5-.4 1-.8 1.6-1.2.7-.5 1.3-1.1 1.9-1.6.5-.4.9-.9 1.4-1.3.6-.6 1.2-1.2 1.7-1.9l1.2-1.5 1.5-2.1c.3-.5.7-1 1-1.6.4-.8.8-1.5 1.2-2.3.3-.5.5-1.1.8-1.7.3-.8.6-1.7.9-2.5.2-.5.4-1.1.5-1.7.3-.9.4-1.9.6-2.9l.3-1.5c.2-1.5.3-3 .3-4.5V389.8c-.3-1.5-.4-3-.6-4.5zM546.4 210.5l269.4 179.4-120.3 80.4-149-99.6V210.5zm-68.8 0v160.2l-149 99.6-120.3-80.4 269.3-179.4zM180.7 454.1l86 57.5-86 57.5v-115zm296.9 358.5L208.3 633.2l120.3-80.4 149 99.6v160.2zM512 592.8l-121.6-81.2L512 430.3l121.6 81.2L512 592.8zm34.4 219.8V652.4l149-99.6 120.3 80.4-269.3 179.4zM843.3 569l-86-57.5 86-57.5v115z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/codepen.svg b/src/blrec/data/webapp/assets/outline/codepen.svg new file mode 100644 index 0000000..50a44fd --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/codepen.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M911.7 385.3l-.3-1.5c-.2-1-.3-1.9-.6-2.9-.2-.6-.4-1.1-.5-1.7-.3-.8-.5-1.7-.9-2.5-.2-.6-.5-1.1-.8-1.7-.4-.8-.8-1.5-1.2-2.3-.3-.5-.6-1.1-1-1.6-.8-1.2-1.7-2.4-2.6-3.6-.5-.6-1.1-1.3-1.7-1.9-.4-.5-.9-.9-1.4-1.3-.6-.6-1.3-1.1-1.9-1.6-.5-.4-1-.8-1.6-1.2-.2-.1-.4-.3-.6-.4L531.1 117.8a34.3 34.3 0 00-38.1 0L127.3 361.3c-.2.1-.4.3-.6.4-.5.4-1 .8-1.6 1.2-.7.5-1.3 1.1-1.9 1.6-.5.4-.9.9-1.4 1.3-.6.6-1.2 1.2-1.7 1.9-1 1.1-1.8 2.3-2.6 3.6-.3.5-.7 1-1 1.6-.4.7-.8 1.5-1.2 2.3-.3.5-.5 1.1-.8 1.7-.3.8-.6 1.7-.9 2.5-.2.6-.4 1.1-.5 1.7-.2.9-.4 1.9-.6 2.9l-.3 1.5c-.2 1.5-.3 3-.3 4.5v243.5c0 1.5.1 3 .3 4.5l.3 1.5.6 2.9c.2.6.3 1.1.5 1.7.3.9.6 1.7.9 2.5.2.6.5 1.1.8 1.7.4.8.7 1.5 1.2 2.3.3.5.6 1.1 1 1.6.5.7.9 1.4 1.5 2.1l1.2 1.5c.5.6 1.1 1.3 1.7 1.9.4.5.9.9 1.4 1.3.6.6 1.3 1.1 1.9 1.6.5.4 1 .8 1.6 1.2.2.1.4.3.6.4L493 905.7c5.6 3.8 12.3 5.8 19.1 5.8 6.6 0 13.3-1.9 19.1-5.8l365.6-243.5c.2-.1.4-.3.6-.4.5-.4 1-.8 1.6-1.2.7-.5 1.3-1.1 1.9-1.6.5-.4.9-.9 1.4-1.3.6-.6 1.2-1.2 1.7-1.9l1.2-1.5 1.5-2.1c.3-.5.7-1 1-1.6.4-.8.8-1.5 1.2-2.3.3-.5.5-1.1.8-1.7.3-.8.6-1.7.9-2.5.2-.5.4-1.1.5-1.7.3-.9.4-1.9.6-2.9l.3-1.5c.2-1.5.3-3 .3-4.5V389.8c-.3-1.5-.4-3-.6-4.5zM546.4 210.5l269.4 179.4-120.3 80.4-149-99.6V210.5zm-68.8 0v160.2l-149 99.6-120.3-80.4 269.3-179.4zM180.7 454.1l86 57.5-86 57.5v-115zm296.9 358.5L208.3 633.2l120.3-80.4 149 99.6v160.2zM512 592.8l-121.6-81.2L512 430.3l121.6 81.2L512 592.8zm34.4 219.8V652.4l149-99.6 120.3 80.4-269.3 179.4zM843.3 569l-86-57.5 86-57.5v115z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/coffee.js b/src/blrec/data/webapp/assets/outline/coffee.js new file mode 100644 index 0000000..85ada92 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/coffee.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'coffee', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M275 281c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36zm613 144H768c0-39.8-32.2-72-72-72H200c-39.8 0-72 32.2-72 72v248c0 3.4.2 6.7.7 9.9-.5 7-.7 14-.7 21.1 0 176.7 143.3 320 320 320 160.1 0 292.7-117.5 316.3-271H888c39.8 0 72-32.2 72-72V497c0-39.8-32.2-72-72-72zM696 681h-1.1c.7 7.6 1.1 15.2 1.1 23 0 137-111 248-248 248S200 841 200 704c0-7.8.4-15.4 1.1-23H200V425h496v256zm192-8H776V497h112v176zM613 281c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36zm-170 0c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/coffee.svg b/src/blrec/data/webapp/assets/outline/coffee.svg new file mode 100644 index 0000000..ecbeb5d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/coffee.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M275 281c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36zm613 144H768c0-39.8-32.2-72-72-72H200c-39.8 0-72 32.2-72 72v248c0 3.4.2 6.7.7 9.9-.5 7-.7 14-.7 21.1 0 176.7 143.3 320 320 320 160.1 0 292.7-117.5 316.3-271H888c39.8 0 72-32.2 72-72V497c0-39.8-32.2-72-72-72zM696 681h-1.1c.7 7.6 1.1 15.2 1.1 23 0 137-111 248-248 248S200 841 200 704c0-7.8.4-15.4 1.1-23H200V425h496v256zm192-8H776V497h112v176zM613 281c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36zm-170 0c19.9 0 36-16.1 36-36V36c0-19.9-16.1-36-36-36s-36 16.1-36 36v209c0 19.9 16.1 36 36 36z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/column-height.js b/src/blrec/data/webapp/assets/outline/column-height.js new file mode 100644 index 0000000..6c4e5f1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/column-height.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'column-height', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 00-11.3 0L403.6 366.3a7.23 7.23 0 005.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/column-height.svg b/src/blrec/data/webapp/assets/outline/column-height.svg new file mode 100644 index 0000000..754335f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/column-height.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 00-11.3 0L403.6 366.3a7.23 7.23 0 005.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/column-width.js b/src/blrec/data/webapp/assets/outline/column-width.js new file mode 100644 index 0000000..191158b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/column-width.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'column-width', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M180 176h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zm724 0h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zM785.3 504.3L657.7 403.6a7.23 7.23 0 00-11.7 5.7V476H378v-62.8c0-6-7-9.4-11.7-5.7L238.7 508.3a7.14 7.14 0 000 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h268v62.8c0 6 7 9.4 11.7 5.7l127.5-100.8c3.8-2.9 3.8-8.5.2-11.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/column-width.svg b/src/blrec/data/webapp/assets/outline/column-width.svg new file mode 100644 index 0000000..0ac4470 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/column-width.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M180 176h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zm724 0h-60c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8zM785.3 504.3L657.7 403.6a7.23 7.23 0 00-11.7 5.7V476H378v-62.8c0-6-7-9.4-11.7-5.7L238.7 508.3a7.14 7.14 0 000 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h268v62.8c0 6 7 9.4 11.7 5.7l127.5-100.8c3.8-2.9 3.8-8.5.2-11.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/comment.js b/src/blrec/data/webapp/assets/outline/comment.js new file mode 100644 index 0000000..10c7d7c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/comment.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'comment', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M573 421c-23.1 0-41 17.9-41 40s17.9 40 41 40c21.1 0 39-17.9 39-40s-17.9-40-39-40zm-280 0c-23.1 0-41 17.9-41 40s17.9 40 41 40c21.1 0 39-17.9 39-40s-17.9-40-39-40z" /><path d="M894 345a343.92 343.92 0 00-189-130v.1c-17.1-19-36.4-36.5-58-52.1-163.7-119-393.5-82.7-513 81-96.3 133-92.2 311.9 6 439l.8 132.6c0 3.2.5 6.4 1.5 9.4a31.95 31.95 0 0040.1 20.9L309 806c33.5 11.9 68.1 18.7 102.5 20.6l-.5.4c89.1 64.9 205.9 84.4 313 49l127.1 41.4c3.2 1 6.5 1.6 9.9 1.6 17.7 0 32-14.3 32-32V753c88.1-119.6 90.4-284.9 1-408zM323 735l-12-5-99 31-1-104-8-9c-84.6-103.2-90.2-251.9-11-361 96.4-132.2 281.2-161.4 413-66 132.2 96.1 161.5 280.6 66 412-80.1 109.9-223.5 150.5-348 102zm505-17l-8 10 1 104-98-33-12 5c-56 20.8-115.7 22.5-171 7l-.2-.1A367.31 367.31 0 00729 676c76.4-105.3 88.8-237.6 44.4-350.4l.6.4c23 16.5 44.1 37.1 62 62 72.6 99.6 68.5 235.2-8 330z" /><path d="M433 421c-23.1 0-41 17.9-41 40s17.9 40 41 40c21.1 0 39-17.9 39-40s-17.9-40-39-40z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/comment.svg b/src/blrec/data/webapp/assets/outline/comment.svg new file mode 100644 index 0000000..57cdeb0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/comment.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M573 421c-23.1 0-41 17.9-41 40s17.9 40 41 40c21.1 0 39-17.9 39-40s-17.9-40-39-40zm-280 0c-23.1 0-41 17.9-41 40s17.9 40 41 40c21.1 0 39-17.9 39-40s-17.9-40-39-40z" /><path d="M894 345a343.92 343.92 0 00-189-130v.1c-17.1-19-36.4-36.5-58-52.1-163.7-119-393.5-82.7-513 81-96.3 133-92.2 311.9 6 439l.8 132.6c0 3.2.5 6.4 1.5 9.4a31.95 31.95 0 0040.1 20.9L309 806c33.5 11.9 68.1 18.7 102.5 20.6l-.5.4c89.1 64.9 205.9 84.4 313 49l127.1 41.4c3.2 1 6.5 1.6 9.9 1.6 17.7 0 32-14.3 32-32V753c88.1-119.6 90.4-284.9 1-408zM323 735l-12-5-99 31-1-104-8-9c-84.6-103.2-90.2-251.9-11-361 96.4-132.2 281.2-161.4 413-66 132.2 96.1 161.5 280.6 66 412-80.1 109.9-223.5 150.5-348 102zm505-17l-8 10 1 104-98-33-12 5c-56 20.8-115.7 22.5-171 7l-.2-.1A367.31 367.31 0 00729 676c76.4-105.3 88.8-237.6 44.4-350.4l.6.4c23 16.5 44.1 37.1 62 62 72.6 99.6 68.5 235.2-8 330z" /><path d="M433 421c-23.1 0-41 17.9-41 40s17.9 40 41 40c21.1 0 39-17.9 39-40s-17.9-40-39-40z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/compass.js b/src/blrec/data/webapp/assets/outline/compass.js new file mode 100644 index 0000000..cff01e1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/compass.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'compass', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm198.4-588.1a32 32 0 00-24.5.5L414.9 415 296.4 686c-3.6 8.2-3.6 17.5 0 25.7 3.4 7.8 9.7 13.9 17.7 17 3.8 1.5 7.7 2.2 11.7 2.2 4.4 0 8.7-.9 12.8-2.7l271-118.6 118.5-271a32.06 32.06 0 00-17.7-42.7zM576.8 534.4l26.2 26.2-42.4 42.4-26.2-26.2L380 644.4 447.5 490 422 464.4l42.4-42.4 25.5 25.5L644.4 380l-67.6 154.4zM464.4 422L422 464.4l25.5 25.6 86.9 86.8 26.2 26.2 42.4-42.4-26.2-26.2-86.8-86.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/compass.svg b/src/blrec/data/webapp/assets/outline/compass.svg new file mode 100644 index 0000000..0a7656c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/compass.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm198.4-588.1a32 32 0 00-24.5.5L414.9 415 296.4 686c-3.6 8.2-3.6 17.5 0 25.7 3.4 7.8 9.7 13.9 17.7 17 3.8 1.5 7.7 2.2 11.7 2.2 4.4 0 8.7-.9 12.8-2.7l271-118.6 118.5-271a32.06 32.06 0 00-17.7-42.7zM576.8 534.4l26.2 26.2-42.4 42.4-26.2-26.2L380 644.4 447.5 490 422 464.4l42.4-42.4 25.5 25.5L644.4 380l-67.6 154.4zM464.4 422L422 464.4l25.5 25.6 86.9 86.8 26.2 26.2 42.4-42.4-26.2-26.2-86.8-86.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/compress.js b/src/blrec/data/webapp/assets/outline/compress.js new file mode 100644 index 0000000..e1145c7 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/compress.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'compress', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M326 664H104c-8.8 0-16 7.2-16 16v48c0 8.8 7.2 16 16 16h174v176c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16V696c0-17.7-14.3-32-32-32zm16-576h-48c-8.8 0-16 7.2-16 16v176H104c-8.8 0-16 7.2-16 16v48c0 8.8 7.2 16 16 16h222c17.7 0 32-14.3 32-32V104c0-8.8-7.2-16-16-16zm578 576H698c-17.7 0-32 14.3-32 32v224c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16V744h174c8.8 0 16-7.2 16-16v-48c0-8.8-7.2-16-16-16zm0-384H746V104c0-8.8-7.2-16-16-16h-48c-8.8 0-16 7.2-16 16v224c0 17.7 14.3 32 32 32h222c8.8 0 16-7.2 16-16v-48c0-8.8-7.2-16-16-16z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/compress.svg b/src/blrec/data/webapp/assets/outline/compress.svg new file mode 100644 index 0000000..a55fec1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/compress.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M326 664H104c-8.8 0-16 7.2-16 16v48c0 8.8 7.2 16 16 16h174v176c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16V696c0-17.7-14.3-32-32-32zm16-576h-48c-8.8 0-16 7.2-16 16v176H104c-8.8 0-16 7.2-16 16v48c0 8.8 7.2 16 16 16h222c17.7 0 32-14.3 32-32V104c0-8.8-7.2-16-16-16zm578 576H698c-17.7 0-32 14.3-32 32v224c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16V744h174c8.8 0 16-7.2 16-16v-48c0-8.8-7.2-16-16-16zm0-384H746V104c0-8.8-7.2-16-16-16h-48c-8.8 0-16 7.2-16 16v224c0 17.7 14.3 32 32 32h222c8.8 0 16-7.2 16-16v-48c0-8.8-7.2-16-16-16z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/console-sql.js b/src/blrec/data/webapp/assets/outline/console-sql.js new file mode 100644 index 0000000..cb6a914 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/console-sql.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'console-sql', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M301.3 496.7c-23.8 0-40.2-10.5-41.6-26.9H205c.9 43.4 36.9 70.3 93.9 70.3 59.1 0 95-28.4 95-75.5 0-35.8-20-55.9-64.5-64.5l-29.1-5.6c-23.8-4.7-33.8-11.9-33.8-24.2 0-15 13.3-24.5 33.4-24.5 20.1 0 35.3 11.1 36.6 27h53c-.9-41.7-37.5-70.3-90.3-70.3-54.4 0-89.7 28.9-89.7 73 0 35.5 21.2 58 62.5 65.8l29.7 5.9c25.8 5.2 35.6 11.9 35.6 24.4.1 14.7-14.5 25.1-36 25.1z" /><path d="M928 140H96c-17.7 0-32 14.3-32 32v496c0 17.7 14.3 32 32 32h380v112H304c-8.8 0-16 7.2-16 16v48c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-48c0-8.8-7.2-16-16-16H548V700h380c17.7 0 32-14.3 32-32V172c0-17.7-14.3-32-32-32zm-40 488H136V212h752v416z" /><path d="M828.5 486.7h-95.8V308.5h-57.4V534h153.2zm-298.6 53.4c14.1 0 27.2-2 39.1-5.8l13.3 20.3h53.3L607.9 511c21.1-20 33-51.1 33-89.8 0-73.3-43.3-118.8-110.9-118.8s-111.2 45.3-111.2 118.8c-.1 73.7 43 118.9 111.1 118.9zm0-190c31.6 0 52.7 27.7 52.7 71.1 0 16.7-3.6 30.6-10 40.5l-5.2-6.9h-48.8L542 491c-3.9.9-8 1.4-12.2 1.4-31.7 0-52.8-27.5-52.8-71.2.1-43.6 21.2-71.1 52.9-71.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/console-sql.svg b/src/blrec/data/webapp/assets/outline/console-sql.svg new file mode 100644 index 0000000..eeb2711 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/console-sql.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M301.3 496.7c-23.8 0-40.2-10.5-41.6-26.9H205c.9 43.4 36.9 70.3 93.9 70.3 59.1 0 95-28.4 95-75.5 0-35.8-20-55.9-64.5-64.5l-29.1-5.6c-23.8-4.7-33.8-11.9-33.8-24.2 0-15 13.3-24.5 33.4-24.5 20.1 0 35.3 11.1 36.6 27h53c-.9-41.7-37.5-70.3-90.3-70.3-54.4 0-89.7 28.9-89.7 73 0 35.5 21.2 58 62.5 65.8l29.7 5.9c25.8 5.2 35.6 11.9 35.6 24.4.1 14.7-14.5 25.1-36 25.1z" /><path d="M928 140H96c-17.7 0-32 14.3-32 32v496c0 17.7 14.3 32 32 32h380v112H304c-8.8 0-16 7.2-16 16v48c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-48c0-8.8-7.2-16-16-16H548V700h380c17.7 0 32-14.3 32-32V172c0-17.7-14.3-32-32-32zm-40 488H136V212h752v416z" /><path d="M828.5 486.7h-95.8V308.5h-57.4V534h153.2zm-298.6 53.4c14.1 0 27.2-2 39.1-5.8l13.3 20.3h53.3L607.9 511c21.1-20 33-51.1 33-89.8 0-73.3-43.3-118.8-110.9-118.8s-111.2 45.3-111.2 118.8c-.1 73.7 43 118.9 111.1 118.9zm0-190c31.6 0 52.7 27.7 52.7 71.1 0 16.7-3.6 30.6-10 40.5l-5.2-6.9h-48.8L542 491c-3.9.9-8 1.4-12.2 1.4-31.7 0-52.8-27.5-52.8-71.2.1-43.6 21.2-71.1 52.9-71.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/contacts.js b/src/blrec/data/webapp/assets/outline/contacts.js new file mode 100644 index 0000000..6c4bead --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/contacts.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'contacts', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M594.3 601.5a111.8 111.8 0 0029.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 00-74.6 126.1 8 8 0 008 8.4H407c4.2 0 7.6-3.3 7.9-7.5 3.8-50.6 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H661a8 8 0 008-8.4c-2.8-53.3-32-99.7-74.7-126.1zM512 578c-28.5 0-51.7-23.3-51.7-52s23.2-52 51.7-52 51.7 23.3 51.7 52-23.2 52-51.7 52zm416-354H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/contacts.svg b/src/blrec/data/webapp/assets/outline/contacts.svg new file mode 100644 index 0000000..d6705b8 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/contacts.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M594.3 601.5a111.8 111.8 0 0029.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 00-74.6 126.1 8 8 0 008 8.4H407c4.2 0 7.6-3.3 7.9-7.5 3.8-50.6 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H661a8 8 0 008-8.4c-2.8-53.3-32-99.7-74.7-126.1zM512 578c-28.5 0-51.7-23.3-51.7-52s23.2-52 51.7-52 51.7 23.3 51.7 52-23.2 52-51.7 52zm416-354H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/container.js b/src/blrec/data/webapp/assets/outline/container.js new file mode 100644 index 0000000..19add21 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/container.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'container', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V687h97.9c11.6 32.8 32 62.3 59.1 84.7 34.5 28.5 78.2 44.3 123 44.3s88.5-15.7 123-44.3c27.1-22.4 47.5-51.9 59.1-84.7H792v-63H643.6l-5.2 24.7C626.4 708.5 573.2 752 512 752s-114.4-43.5-126.5-103.3l-5.2-24.7H232V136h560v752zM320 341h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 160h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/container.svg b/src/blrec/data/webapp/assets/outline/container.svg new file mode 100644 index 0000000..9d6b1f2 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/container.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V687h97.9c11.6 32.8 32 62.3 59.1 84.7 34.5 28.5 78.2 44.3 123 44.3s88.5-15.7 123-44.3c27.1-22.4 47.5-51.9 59.1-84.7H792v-63H643.6l-5.2 24.7C626.4 708.5 573.2 752 512 752s-114.4-43.5-126.5-103.3l-5.2-24.7H232V136h560v752zM320 341h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 160h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/control.js b/src/blrec/data/webapp/assets/outline/control.js new file mode 100644 index 0000000..62e9816 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/control.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'control', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM340 683v77c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-77c-10.1 3.3-20.8 5-32 5s-21.9-1.8-32-5zm64-198V264c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v221c10.1-3.3 20.8-5 32-5s21.9 1.8 32 5zm-64 198c10.1 3.3 20.8 5 32 5s21.9-1.8 32-5c41.8-13.5 72-52.7 72-99s-30.2-85.5-72-99c-10.1-3.3-20.8-5-32-5s-21.9 1.8-32 5c-41.8 13.5-72 52.7-72 99s30.2 85.5 72 99zm.1-115.7c.3-.6.7-1.2 1-1.8v-.1l1.2-1.8c.1-.2.2-.3.3-.5.3-.5.7-.9 1-1.4.1-.1.2-.3.3-.4.5-.6.9-1.1 1.4-1.6l.3-.3 1.2-1.2.4-.4c.5-.5 1-.9 1.6-1.4.6-.5 1.1-.9 1.7-1.3.2-.1.3-.2.5-.3.5-.3.9-.7 1.4-1 .1-.1.3-.2.4-.3.6-.4 1.2-.7 1.9-1.1.1-.1.3-.1.4-.2.5-.3 1-.5 1.6-.8l.6-.3c.7-.3 1.3-.6 2-.8.7-.3 1.4-.5 2.1-.7.2-.1.4-.1.6-.2.6-.2 1.1-.3 1.7-.4.2 0 .3-.1.5-.1.7-.2 1.5-.3 2.2-.4.2 0 .3 0 .5-.1.6-.1 1.2-.1 1.8-.2h.6c.8 0 1.5-.1 2.3-.1s1.5 0 2.3.1h.6c.6 0 1.2.1 1.8.2.2 0 .3 0 .5.1.7.1 1.5.2 2.2.4.2 0 .3.1.5.1.6.1 1.2.3 1.7.4.2.1.4.1.6.2.7.2 1.4.4 2.1.7.7.2 1.3.5 2 .8l.6.3c.5.2 1.1.5 1.6.8.1.1.3.1.4.2.6.3 1.3.7 1.9 1.1.1.1.3.2.4.3.5.3 1 .6 1.4 1 .2.1.3.2.5.3.6.4 1.2.9 1.7 1.3s1.1.9 1.6 1.4l.4.4 1.2 1.2.3.3c.5.5 1 1.1 1.4 1.6.1.1.2.3.3.4.4.4.7.9 1 1.4.1.2.2.3.3.5l1.2 1.8s0 .1.1.1a36.18 36.18 0 015.1 18.5c0 6-1.5 11.7-4.1 16.7-.3.6-.7 1.2-1 1.8 0 0 0 .1-.1.1l-1.2 1.8c-.1.2-.2.3-.3.5-.3.5-.7.9-1 1.4-.1.1-.2.3-.3.4-.5.6-.9 1.1-1.4 1.6l-.3.3-1.2 1.2-.4.4c-.5.5-1 .9-1.6 1.4-.6.5-1.1.9-1.7 1.3-.2.1-.3.2-.5.3-.5.3-.9.7-1.4 1-.1.1-.3.2-.4.3-.6.4-1.2.7-1.9 1.1-.1.1-.3.1-.4.2-.5.3-1 .5-1.6.8l-.6.3c-.7.3-1.3.6-2 .8-.7.3-1.4.5-2.1.7-.2.1-.4.1-.6.2-.6.2-1.1.3-1.7.4-.2 0-.3.1-.5.1-.7.2-1.5.3-2.2.4-.2 0-.3 0-.5.1-.6.1-1.2.1-1.8.2h-.6c-.8 0-1.5.1-2.3.1s-1.5 0-2.3-.1h-.6c-.6 0-1.2-.1-1.8-.2-.2 0-.3 0-.5-.1-.7-.1-1.5-.2-2.2-.4-.2 0-.3-.1-.5-.1-.6-.1-1.2-.3-1.7-.4-.2-.1-.4-.1-.6-.2-.7-.2-1.4-.4-2.1-.7-.7-.2-1.3-.5-2-.8l-.6-.3c-.5-.2-1.1-.5-1.6-.8-.1-.1-.3-.1-.4-.2-.6-.3-1.3-.7-1.9-1.1-.1-.1-.3-.2-.4-.3-.5-.3-1-.6-1.4-1-.2-.1-.3-.2-.5-.3-.6-.4-1.2-.9-1.7-1.3s-1.1-.9-1.6-1.4l-.4-.4-1.2-1.2-.3-.3c-.5-.5-1-1.1-1.4-1.6-.1-.1-.2-.3-.3-.4-.4-.4-.7-.9-1-1.4-.1-.2-.2-.3-.3-.5l-1.2-1.8v-.1c-.4-.6-.7-1.2-1-1.8-2.6-5-4.1-10.7-4.1-16.7s1.5-11.7 4.1-16.7zM620 539v221c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V539c-10.1 3.3-20.8 5-32 5s-21.9-1.8-32-5zm64-198v-77c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v77c10.1-3.3 20.8-5 32-5s21.9 1.8 32 5zm-64 198c10.1 3.3 20.8 5 32 5s21.9-1.8 32-5c41.8-13.5 72-52.7 72-99s-30.2-85.5-72-99c-10.1-3.3-20.8-5-32-5s-21.9 1.8-32 5c-41.8 13.5-72 52.7-72 99s30.2 85.5 72 99zm.1-115.7c.3-.6.7-1.2 1-1.8v-.1l1.2-1.8c.1-.2.2-.3.3-.5.3-.5.7-.9 1-1.4.1-.1.2-.3.3-.4.5-.6.9-1.1 1.4-1.6l.3-.3 1.2-1.2.4-.4c.5-.5 1-.9 1.6-1.4.6-.5 1.1-.9 1.7-1.3.2-.1.3-.2.5-.3.5-.3.9-.7 1.4-1 .1-.1.3-.2.4-.3.6-.4 1.2-.7 1.9-1.1.1-.1.3-.1.4-.2.5-.3 1-.5 1.6-.8l.6-.3c.7-.3 1.3-.6 2-.8.7-.3 1.4-.5 2.1-.7.2-.1.4-.1.6-.2.6-.2 1.1-.3 1.7-.4.2 0 .3-.1.5-.1.7-.2 1.5-.3 2.2-.4.2 0 .3 0 .5-.1.6-.1 1.2-.1 1.8-.2h.6c.8 0 1.5-.1 2.3-.1s1.5 0 2.3.1h.6c.6 0 1.2.1 1.8.2.2 0 .3 0 .5.1.7.1 1.5.2 2.2.4.2 0 .3.1.5.1.6.1 1.2.3 1.7.4.2.1.4.1.6.2.7.2 1.4.4 2.1.7.7.2 1.3.5 2 .8l.6.3c.5.2 1.1.5 1.6.8.1.1.3.1.4.2.6.3 1.3.7 1.9 1.1.1.1.3.2.4.3.5.3 1 .6 1.4 1 .2.1.3.2.5.3.6.4 1.2.9 1.7 1.3s1.1.9 1.6 1.4l.4.4 1.2 1.2.3.3c.5.5 1 1.1 1.4 1.6.1.1.2.3.3.4.4.4.7.9 1 1.4.1.2.2.3.3.5l1.2 1.8v.1a36.18 36.18 0 015.1 18.5c0 6-1.5 11.7-4.1 16.7-.3.6-.7 1.2-1 1.8v.1l-1.2 1.8c-.1.2-.2.3-.3.5-.3.5-.7.9-1 1.4-.1.1-.2.3-.3.4-.5.6-.9 1.1-1.4 1.6l-.3.3-1.2 1.2-.4.4c-.5.5-1 .9-1.6 1.4-.6.5-1.1.9-1.7 1.3-.2.1-.3.2-.5.3-.5.3-.9.7-1.4 1-.1.1-.3.2-.4.3-.6.4-1.2.7-1.9 1.1-.1.1-.3.1-.4.2-.5.3-1 .5-1.6.8l-.6.3c-.7.3-1.3.6-2 .8-.7.3-1.4.5-2.1.7-.2.1-.4.1-.6.2-.6.2-1.1.3-1.7.4-.2 0-.3.1-.5.1-.7.2-1.5.3-2.2.4-.2 0-.3 0-.5.1-.6.1-1.2.1-1.8.2h-.6c-.8 0-1.5.1-2.3.1s-1.5 0-2.3-.1h-.6c-.6 0-1.2-.1-1.8-.2-.2 0-.3 0-.5-.1-.7-.1-1.5-.2-2.2-.4-.2 0-.3-.1-.5-.1-.6-.1-1.2-.3-1.7-.4-.2-.1-.4-.1-.6-.2-.7-.2-1.4-.4-2.1-.7-.7-.2-1.3-.5-2-.8l-.6-.3c-.5-.2-1.1-.5-1.6-.8-.1-.1-.3-.1-.4-.2-.6-.3-1.3-.7-1.9-1.1-.1-.1-.3-.2-.4-.3-.5-.3-1-.6-1.4-1-.2-.1-.3-.2-.5-.3-.6-.4-1.2-.9-1.7-1.3s-1.1-.9-1.6-1.4l-.4-.4-1.2-1.2-.3-.3c-.5-.5-1-1.1-1.4-1.6-.1-.1-.2-.3-.3-.4-.4-.4-.7-.9-1-1.4-.1-.2-.2-.3-.3-.5l-1.2-1.8v-.1c-.4-.6-.7-1.2-1-1.8-2.6-5-4.1-10.7-4.1-16.7s1.5-11.7 4.1-16.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/control.svg b/src/blrec/data/webapp/assets/outline/control.svg new file mode 100644 index 0000000..f9a14d5 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/control.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM340 683v77c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-77c-10.1 3.3-20.8 5-32 5s-21.9-1.8-32-5zm64-198V264c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v221c10.1-3.3 20.8-5 32-5s21.9 1.8 32 5zm-64 198c10.1 3.3 20.8 5 32 5s21.9-1.8 32-5c41.8-13.5 72-52.7 72-99s-30.2-85.5-72-99c-10.1-3.3-20.8-5-32-5s-21.9 1.8-32 5c-41.8 13.5-72 52.7-72 99s30.2 85.5 72 99zm.1-115.7c.3-.6.7-1.2 1-1.8v-.1l1.2-1.8c.1-.2.2-.3.3-.5.3-.5.7-.9 1-1.4.1-.1.2-.3.3-.4.5-.6.9-1.1 1.4-1.6l.3-.3 1.2-1.2.4-.4c.5-.5 1-.9 1.6-1.4.6-.5 1.1-.9 1.7-1.3.2-.1.3-.2.5-.3.5-.3.9-.7 1.4-1 .1-.1.3-.2.4-.3.6-.4 1.2-.7 1.9-1.1.1-.1.3-.1.4-.2.5-.3 1-.5 1.6-.8l.6-.3c.7-.3 1.3-.6 2-.8.7-.3 1.4-.5 2.1-.7.2-.1.4-.1.6-.2.6-.2 1.1-.3 1.7-.4.2 0 .3-.1.5-.1.7-.2 1.5-.3 2.2-.4.2 0 .3 0 .5-.1.6-.1 1.2-.1 1.8-.2h.6c.8 0 1.5-.1 2.3-.1s1.5 0 2.3.1h.6c.6 0 1.2.1 1.8.2.2 0 .3 0 .5.1.7.1 1.5.2 2.2.4.2 0 .3.1.5.1.6.1 1.2.3 1.7.4.2.1.4.1.6.2.7.2 1.4.4 2.1.7.7.2 1.3.5 2 .8l.6.3c.5.2 1.1.5 1.6.8.1.1.3.1.4.2.6.3 1.3.7 1.9 1.1.1.1.3.2.4.3.5.3 1 .6 1.4 1 .2.1.3.2.5.3.6.4 1.2.9 1.7 1.3s1.1.9 1.6 1.4l.4.4 1.2 1.2.3.3c.5.5 1 1.1 1.4 1.6.1.1.2.3.3.4.4.4.7.9 1 1.4.1.2.2.3.3.5l1.2 1.8s0 .1.1.1a36.18 36.18 0 015.1 18.5c0 6-1.5 11.7-4.1 16.7-.3.6-.7 1.2-1 1.8 0 0 0 .1-.1.1l-1.2 1.8c-.1.2-.2.3-.3.5-.3.5-.7.9-1 1.4-.1.1-.2.3-.3.4-.5.6-.9 1.1-1.4 1.6l-.3.3-1.2 1.2-.4.4c-.5.5-1 .9-1.6 1.4-.6.5-1.1.9-1.7 1.3-.2.1-.3.2-.5.3-.5.3-.9.7-1.4 1-.1.1-.3.2-.4.3-.6.4-1.2.7-1.9 1.1-.1.1-.3.1-.4.2-.5.3-1 .5-1.6.8l-.6.3c-.7.3-1.3.6-2 .8-.7.3-1.4.5-2.1.7-.2.1-.4.1-.6.2-.6.2-1.1.3-1.7.4-.2 0-.3.1-.5.1-.7.2-1.5.3-2.2.4-.2 0-.3 0-.5.1-.6.1-1.2.1-1.8.2h-.6c-.8 0-1.5.1-2.3.1s-1.5 0-2.3-.1h-.6c-.6 0-1.2-.1-1.8-.2-.2 0-.3 0-.5-.1-.7-.1-1.5-.2-2.2-.4-.2 0-.3-.1-.5-.1-.6-.1-1.2-.3-1.7-.4-.2-.1-.4-.1-.6-.2-.7-.2-1.4-.4-2.1-.7-.7-.2-1.3-.5-2-.8l-.6-.3c-.5-.2-1.1-.5-1.6-.8-.1-.1-.3-.1-.4-.2-.6-.3-1.3-.7-1.9-1.1-.1-.1-.3-.2-.4-.3-.5-.3-1-.6-1.4-1-.2-.1-.3-.2-.5-.3-.6-.4-1.2-.9-1.7-1.3s-1.1-.9-1.6-1.4l-.4-.4-1.2-1.2-.3-.3c-.5-.5-1-1.1-1.4-1.6-.1-.1-.2-.3-.3-.4-.4-.4-.7-.9-1-1.4-.1-.2-.2-.3-.3-.5l-1.2-1.8v-.1c-.4-.6-.7-1.2-1-1.8-2.6-5-4.1-10.7-4.1-16.7s1.5-11.7 4.1-16.7zM620 539v221c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V539c-10.1 3.3-20.8 5-32 5s-21.9-1.8-32-5zm64-198v-77c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v77c10.1-3.3 20.8-5 32-5s21.9 1.8 32 5zm-64 198c10.1 3.3 20.8 5 32 5s21.9-1.8 32-5c41.8-13.5 72-52.7 72-99s-30.2-85.5-72-99c-10.1-3.3-20.8-5-32-5s-21.9 1.8-32 5c-41.8 13.5-72 52.7-72 99s30.2 85.5 72 99zm.1-115.7c.3-.6.7-1.2 1-1.8v-.1l1.2-1.8c.1-.2.2-.3.3-.5.3-.5.7-.9 1-1.4.1-.1.2-.3.3-.4.5-.6.9-1.1 1.4-1.6l.3-.3 1.2-1.2.4-.4c.5-.5 1-.9 1.6-1.4.6-.5 1.1-.9 1.7-1.3.2-.1.3-.2.5-.3.5-.3.9-.7 1.4-1 .1-.1.3-.2.4-.3.6-.4 1.2-.7 1.9-1.1.1-.1.3-.1.4-.2.5-.3 1-.5 1.6-.8l.6-.3c.7-.3 1.3-.6 2-.8.7-.3 1.4-.5 2.1-.7.2-.1.4-.1.6-.2.6-.2 1.1-.3 1.7-.4.2 0 .3-.1.5-.1.7-.2 1.5-.3 2.2-.4.2 0 .3 0 .5-.1.6-.1 1.2-.1 1.8-.2h.6c.8 0 1.5-.1 2.3-.1s1.5 0 2.3.1h.6c.6 0 1.2.1 1.8.2.2 0 .3 0 .5.1.7.1 1.5.2 2.2.4.2 0 .3.1.5.1.6.1 1.2.3 1.7.4.2.1.4.1.6.2.7.2 1.4.4 2.1.7.7.2 1.3.5 2 .8l.6.3c.5.2 1.1.5 1.6.8.1.1.3.1.4.2.6.3 1.3.7 1.9 1.1.1.1.3.2.4.3.5.3 1 .6 1.4 1 .2.1.3.2.5.3.6.4 1.2.9 1.7 1.3s1.1.9 1.6 1.4l.4.4 1.2 1.2.3.3c.5.5 1 1.1 1.4 1.6.1.1.2.3.3.4.4.4.7.9 1 1.4.1.2.2.3.3.5l1.2 1.8v.1a36.18 36.18 0 015.1 18.5c0 6-1.5 11.7-4.1 16.7-.3.6-.7 1.2-1 1.8v.1l-1.2 1.8c-.1.2-.2.3-.3.5-.3.5-.7.9-1 1.4-.1.1-.2.3-.3.4-.5.6-.9 1.1-1.4 1.6l-.3.3-1.2 1.2-.4.4c-.5.5-1 .9-1.6 1.4-.6.5-1.1.9-1.7 1.3-.2.1-.3.2-.5.3-.5.3-.9.7-1.4 1-.1.1-.3.2-.4.3-.6.4-1.2.7-1.9 1.1-.1.1-.3.1-.4.2-.5.3-1 .5-1.6.8l-.6.3c-.7.3-1.3.6-2 .8-.7.3-1.4.5-2.1.7-.2.1-.4.1-.6.2-.6.2-1.1.3-1.7.4-.2 0-.3.1-.5.1-.7.2-1.5.3-2.2.4-.2 0-.3 0-.5.1-.6.1-1.2.1-1.8.2h-.6c-.8 0-1.5.1-2.3.1s-1.5 0-2.3-.1h-.6c-.6 0-1.2-.1-1.8-.2-.2 0-.3 0-.5-.1-.7-.1-1.5-.2-2.2-.4-.2 0-.3-.1-.5-.1-.6-.1-1.2-.3-1.7-.4-.2-.1-.4-.1-.6-.2-.7-.2-1.4-.4-2.1-.7-.7-.2-1.3-.5-2-.8l-.6-.3c-.5-.2-1.1-.5-1.6-.8-.1-.1-.3-.1-.4-.2-.6-.3-1.3-.7-1.9-1.1-.1-.1-.3-.2-.4-.3-.5-.3-1-.6-1.4-1-.2-.1-.3-.2-.5-.3-.6-.4-1.2-.9-1.7-1.3s-1.1-.9-1.6-1.4l-.4-.4-1.2-1.2-.3-.3c-.5-.5-1-1.1-1.4-1.6-.1-.1-.2-.3-.3-.4-.4-.4-.7-.9-1-1.4-.1-.2-.2-.3-.3-.5l-1.2-1.8v-.1c-.4-.6-.7-1.2-1-1.8-2.6-5-4.1-10.7-4.1-16.7s1.5-11.7 4.1-16.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/copy.js b/src/blrec/data/webapp/assets/outline/copy.js new file mode 100644 index 0000000..684df5b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/copy.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'copy', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/copy.svg b/src/blrec/data/webapp/assets/outline/copy.svg new file mode 100644 index 0000000..317917e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/copy.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/copyright-circle.js b/src/blrec/data/webapp/assets/outline/copyright-circle.js new file mode 100644 index 0000000..d1e2d5b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/copyright-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'copyright-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm5.6-532.7c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/copyright-circle.svg b/src/blrec/data/webapp/assets/outline/copyright-circle.svg new file mode 100644 index 0000000..c0c24d3 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/copyright-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm5.6-532.7c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/copyright.js b/src/blrec/data/webapp/assets/outline/copyright.js new file mode 100644 index 0000000..5041781 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/copyright.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'copyright', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm5.6-532.7c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/copyright.svg b/src/blrec/data/webapp/assets/outline/copyright.svg new file mode 100644 index 0000000..c0c24d3 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/copyright.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm5.6-532.7c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/credit-card.js b/src/blrec/data/webapp/assets/outline/credit-card.js new file mode 100644 index 0000000..b01554a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/credit-card.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'credit-card', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-792 72h752v120H136V232zm752 560H136V440h752v352zm-237-64h165c4.4 0 8-3.6 8-8v-72c0-4.4-3.6-8-8-8H651c-4.4 0-8 3.6-8 8v72c0 4.4 3.6 8 8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/credit-card.svg b/src/blrec/data/webapp/assets/outline/credit-card.svg new file mode 100644 index 0000000..b327c45 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/credit-card.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-792 72h752v120H136V232zm752 560H136V440h752v352zm-237-64h165c4.4 0 8-3.6 8-8v-72c0-4.4-3.6-8-8-8H651c-4.4 0-8 3.6-8 8v72c0 4.4 3.6 8 8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/crown.js b/src/blrec/data/webapp/assets/outline/crown.js new file mode 100644 index 0000000..eb5d8f9 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/crown.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'crown', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M899.6 276.5L705 396.4 518.4 147.5a8.06 8.06 0 00-12.9 0L319 396.4 124.3 276.5c-5.7-3.5-13.1 1.2-12.2 7.9L188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.8-6.7-6.5-11.4-12.3-7.9zm-126 534.1H250.3l-53.8-409.4 139.8 86.1L512 252.9l175.7 234.4 139.8-86.1-53.9 409.4zM512 509c-62.1 0-112.6 50.5-112.6 112.6S449.9 734.2 512 734.2s112.6-50.5 112.6-112.6S574.1 509 512 509zm0 160.9c-26.6 0-48.2-21.6-48.2-48.3 0-26.6 21.6-48.3 48.2-48.3s48.2 21.6 48.2 48.3c0 26.6-21.6 48.3-48.2 48.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/crown.svg b/src/blrec/data/webapp/assets/outline/crown.svg new file mode 100644 index 0000000..cea85e3 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/crown.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M899.6 276.5L705 396.4 518.4 147.5a8.06 8.06 0 00-12.9 0L319 396.4 124.3 276.5c-5.7-3.5-13.1 1.2-12.2 7.9L188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.8-6.7-6.5-11.4-12.3-7.9zm-126 534.1H250.3l-53.8-409.4 139.8 86.1L512 252.9l175.7 234.4 139.8-86.1-53.9 409.4zM512 509c-62.1 0-112.6 50.5-112.6 112.6S449.9 734.2 512 734.2s112.6-50.5 112.6-112.6S574.1 509 512 509zm0 160.9c-26.6 0-48.2-21.6-48.2-48.3 0-26.6 21.6-48.3 48.2-48.3s48.2 21.6 48.2 48.3c0 26.6-21.6 48.3-48.2 48.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/customer-service.js b/src/blrec/data/webapp/assets/outline/customer-service.js new file mode 100644 index 0000000..e31f25a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/customer-service.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'customer-service', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384zM328 632v192H200V632h128zm496 192H696V632h128v192z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/customer-service.svg b/src/blrec/data/webapp/assets/outline/customer-service.svg new file mode 100644 index 0000000..c7dc127 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/customer-service.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384zM328 632v192H200V632h128zm496 192H696V632h128v192z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dash.js b/src/blrec/data/webapp/assets/outline/dash.js new file mode 100644 index 0000000..728f1a6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dash.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dash', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M112 476h160v72H112zm320 0h160v72H432zm320 0h160v72H752z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dash.svg b/src/blrec/data/webapp/assets/outline/dash.svg new file mode 100644 index 0000000..fbf30a9 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dash.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M112 476h160v72H112zm320 0h160v72H432zm320 0h160v72H752z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dashboard.js b/src/blrec/data/webapp/assets/outline/dashboard.js new file mode 100644 index 0000000..f07841d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dashboard.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dashboard', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M924.8 385.6a446.7 446.7 0 00-96-142.4 446.7 446.7 0 00-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 00-142.4 96 446.7 446.7 0 00-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM761.4 836H262.6A371.12 371.12 0 01140 560c0-99.4 38.7-192.8 109-263 70.3-70.3 163.7-109 263-109 99.4 0 192.8 38.7 263 109 70.3 70.3 109 163.7 109 263 0 105.6-44.5 205.5-122.6 276zM623.5 421.5a8.03 8.03 0 00-11.3 0L527.7 506c-18.7-5-39.4-.2-54.1 14.5a55.95 55.95 0 000 79.2 55.95 55.95 0 0079.2 0 55.87 55.87 0 0014.5-54.1l84.5-84.5c3.1-3.1 3.1-8.2 0-11.3l-28.3-28.3zM490 320h44c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8h-44c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8zm260 218v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8zm12.7-197.2l-31.1-31.1a8.03 8.03 0 00-11.3 0l-56.6 56.6a8.03 8.03 0 000 11.3l31.1 31.1c3.1 3.1 8.2 3.1 11.3 0l56.6-56.6c3.1-3.1 3.1-8.2 0-11.3zm-458.6-31.1a8.03 8.03 0 00-11.3 0l-31.1 31.1a8.03 8.03 0 000 11.3l56.6 56.6c3.1 3.1 8.2 3.1 11.3 0l31.1-31.1c3.1-3.1 3.1-8.2 0-11.3l-56.6-56.6zM262 530h-80c-4.4 0-8 3.6-8 8v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dashboard.svg b/src/blrec/data/webapp/assets/outline/dashboard.svg new file mode 100644 index 0000000..ddaf996 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dashboard.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M924.8 385.6a446.7 446.7 0 00-96-142.4 446.7 446.7 0 00-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 00-142.4 96 446.7 446.7 0 00-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM761.4 836H262.6A371.12 371.12 0 01140 560c0-99.4 38.7-192.8 109-263 70.3-70.3 163.7-109 263-109 99.4 0 192.8 38.7 263 109 70.3 70.3 109 163.7 109 263 0 105.6-44.5 205.5-122.6 276zM623.5 421.5a8.03 8.03 0 00-11.3 0L527.7 506c-18.7-5-39.4-.2-54.1 14.5a55.95 55.95 0 000 79.2 55.95 55.95 0 0079.2 0 55.87 55.87 0 0014.5-54.1l84.5-84.5c3.1-3.1 3.1-8.2 0-11.3l-28.3-28.3zM490 320h44c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8h-44c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8zm260 218v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8zm12.7-197.2l-31.1-31.1a8.03 8.03 0 00-11.3 0l-56.6 56.6a8.03 8.03 0 000 11.3l31.1 31.1c3.1 3.1 8.2 3.1 11.3 0l56.6-56.6c3.1-3.1 3.1-8.2 0-11.3zm-458.6-31.1a8.03 8.03 0 00-11.3 0l-31.1 31.1a8.03 8.03 0 000 11.3l56.6 56.6c3.1 3.1 8.2 3.1 11.3 0l31.1-31.1c3.1-3.1 3.1-8.2 0-11.3l-56.6-56.6zM262 530h-80c-4.4 0-8 3.6-8 8v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/database.js b/src/blrec/data/webapp/assets/outline/database.js new file mode 100644 index 0000000..abc55ba --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/database.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'database', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM304 240a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/database.svg b/src/blrec/data/webapp/assets/outline/database.svg new file mode 100644 index 0000000..56f26f6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/database.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM304 240a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/delete-column.js b/src/blrec/data/webapp/assets/outline/delete-column.js new file mode 100644 index 0000000..79b73e6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/delete-column.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'delete-column', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M651.1 641.9a7.84 7.84 0 00-5.1-1.9h-54.7c-2.4 0-4.6 1.1-6.1 2.9L512 730.7l-73.1-87.8a8.1 8.1 0 00-6.1-2.9H378c-1.9 0-3.7.7-5.1 1.9a7.97 7.97 0 00-1 11.3L474.2 776 371.8 898.9a8.06 8.06 0 006.1 13.2h54.7c2.4 0 4.6-1.1 6.1-2.9l73.1-87.8 73.1 87.8a8.1 8.1 0 006.1 2.9h55c1.9 0 3.7-.7 5.1-1.9 3.4-2.8 3.9-7.9 1-11.3L549.8 776l102.4-122.9c2.8-3.4 2.3-8.4-1.1-11.2zM472 544h80c4.4 0 8-3.6 8-8V120c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8zM350 386H184V136c0-3.3-2.7-6-6-6h-60c-3.3 0-6 2.7-6 6v292c0 16.6 13.4 30 30 30h208c3.3 0 6-2.7 6-6v-60c0-3.3-2.7-6-6-6zm556-256h-60c-3.3 0-6 2.7-6 6v250H674c-3.3 0-6 2.7-6 6v60c0 3.3 2.7 6 6 6h208c16.6 0 30-13.4 30-30V136c0-3.3-2.7-6-6-6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/delete-column.svg b/src/blrec/data/webapp/assets/outline/delete-column.svg new file mode 100644 index 0000000..a911113 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/delete-column.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M651.1 641.9a7.84 7.84 0 00-5.1-1.9h-54.7c-2.4 0-4.6 1.1-6.1 2.9L512 730.7l-73.1-87.8a8.1 8.1 0 00-6.1-2.9H378c-1.9 0-3.7.7-5.1 1.9a7.97 7.97 0 00-1 11.3L474.2 776 371.8 898.9a8.06 8.06 0 006.1 13.2h54.7c2.4 0 4.6-1.1 6.1-2.9l73.1-87.8 73.1 87.8a8.1 8.1 0 006.1 2.9h55c1.9 0 3.7-.7 5.1-1.9 3.4-2.8 3.9-7.9 1-11.3L549.8 776l102.4-122.9c2.8-3.4 2.3-8.4-1.1-11.2zM472 544h80c4.4 0 8-3.6 8-8V120c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8zM350 386H184V136c0-3.3-2.7-6-6-6h-60c-3.3 0-6 2.7-6 6v292c0 16.6 13.4 30 30 30h208c3.3 0 6-2.7 6-6v-60c0-3.3-2.7-6-6-6zm556-256h-60c-3.3 0-6 2.7-6 6v250H674c-3.3 0-6 2.7-6 6v60c0 3.3 2.7 6 6 6h208c16.6 0 30-13.4 30-30V136c0-3.3-2.7-6-6-6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/delete-row.js b/src/blrec/data/webapp/assets/outline/delete-row.js new file mode 100644 index 0000000..d9cc498 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/delete-row.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'delete-row', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M819.8 512l102.4-122.9a8.06 8.06 0 00-6.1-13.2h-54.7c-2.4 0-4.6 1.1-6.1 2.9L782 466.7l-73.1-87.8a8.1 8.1 0 00-6.1-2.9H648c-1.9 0-3.7.7-5.1 1.9a7.97 7.97 0 00-1 11.3L744.2 512 641.8 634.9a8.06 8.06 0 006.1 13.2h54.7c2.4 0 4.6-1.1 6.1-2.9l73.1-87.8 73.1 87.8a8.1 8.1 0 006.1 2.9h55c1.9 0 3.7-.7 5.1-1.9 3.4-2.8 3.9-7.9 1-11.3L819.8 512zM536 464H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h416c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8zm-84 204h-60c-3.3 0-6 2.7-6 6v166H136c-3.3 0-6 2.7-6 6v60c0 3.3 2.7 6 6 6h292c16.6 0 30-13.4 30-30V674c0-3.3-2.7-6-6-6zM136 184h250v166c0 3.3 2.7 6 6 6h60c3.3 0 6-2.7 6-6V142c0-16.6-13.4-30-30-30H136c-3.3 0-6 2.7-6 6v60c0 3.3 2.7 6 6 6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/delete-row.svg b/src/blrec/data/webapp/assets/outline/delete-row.svg new file mode 100644 index 0000000..8542863 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/delete-row.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M819.8 512l102.4-122.9a8.06 8.06 0 00-6.1-13.2h-54.7c-2.4 0-4.6 1.1-6.1 2.9L782 466.7l-73.1-87.8a8.1 8.1 0 00-6.1-2.9H648c-1.9 0-3.7.7-5.1 1.9a7.97 7.97 0 00-1 11.3L744.2 512 641.8 634.9a8.06 8.06 0 006.1 13.2h54.7c2.4 0 4.6-1.1 6.1-2.9l73.1-87.8 73.1 87.8a8.1 8.1 0 006.1 2.9h55c1.9 0 3.7-.7 5.1-1.9 3.4-2.8 3.9-7.9 1-11.3L819.8 512zM536 464H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h416c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8zm-84 204h-60c-3.3 0-6 2.7-6 6v166H136c-3.3 0-6 2.7-6 6v60c0 3.3 2.7 6 6 6h292c16.6 0 30-13.4 30-30V674c0-3.3-2.7-6-6-6zM136 184h250v166c0 3.3 2.7 6 6 6h60c3.3 0 6-2.7 6-6V142c0-16.6-13.4-30-30-30H136c-3.3 0-6 2.7-6 6v60c0 3.3 2.7 6 6 6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/delete.js b/src/blrec/data/webapp/assets/outline/delete.js new file mode 100644 index 0000000..9a8508b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/delete.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'delete', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/delete.svg b/src/blrec/data/webapp/assets/outline/delete.svg new file mode 100644 index 0000000..65abf9c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/delete.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/delivered-procedure.js b/src/blrec/data/webapp/assets/outline/delivered-procedure.js new file mode 100644 index 0000000..fef03ca --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/delivered-procedure.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'delivered-procedure', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M632 698.3l141.9-112a8 8 0 000-12.6L632 461.7c-5.3-4.2-13-.4-13 6.3v76H295c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h324v76c0 6.7 7.8 10.4 13 6.3zm261.3-405L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v278c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V422c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-83.5c0-17-6.7-33.2-18.7-45.2zM640 288H384V184h256v104zm264 436h-56c-4.4 0-8 3.6-8 8v108H184V732c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v148c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V732c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/delivered-procedure.svg b/src/blrec/data/webapp/assets/outline/delivered-procedure.svg new file mode 100644 index 0000000..4abde13 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/delivered-procedure.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M632 698.3l141.9-112a8 8 0 000-12.6L632 461.7c-5.3-4.2-13-.4-13 6.3v76H295c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h324v76c0 6.7 7.8 10.4 13 6.3zm261.3-405L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v278c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V422c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-83.5c0-17-6.7-33.2-18.7-45.2zM640 288H384V184h256v104zm264 436h-56c-4.4 0-8 3.6-8 8v108H184V732c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v148c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V732c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/deployment-unit.js b/src/blrec/data/webapp/assets/outline/deployment-unit.js new file mode 100644 index 0000000..c4b4e8a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/deployment-unit.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'deployment-unit', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M888.3 693.2c-42.5-24.6-94.3-18-129.2 12.8l-53-30.7V523.6c0-15.7-8.4-30.3-22-38.1l-136-78.3v-67.1c44.2-15 76-56.8 76-106.1 0-61.9-50.1-112-112-112s-112 50.1-112 112c0 49.3 31.8 91.1 76 106.1v67.1l-136 78.3c-13.6 7.8-22 22.4-22 38.1v151.6l-53 30.7c-34.9-30.8-86.8-37.4-129.2-12.8-53.5 31-71.7 99.4-41 152.9 30.8 53.5 98.9 71.9 152.2 41 42.5-24.6 62.7-73 53.6-118.8l48.7-28.3 140.6 81c6.8 3.9 14.4 5.9 22 5.9s15.2-2 22-5.9L674.5 740l48.7 28.3c-9.1 45.7 11.2 94.2 53.6 118.8 53.3 30.9 121.5 12.6 152.2-41 30.8-53.6 12.6-122-40.7-152.9zm-673 138.4a47.6 47.6 0 01-65.2-17.6c-13.2-22.9-5.4-52.3 17.5-65.5a47.6 47.6 0 0165.2 17.6c13.2 22.9 5.4 52.3-17.5 65.5zM522 463.8zM464 234a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm170 446.2l-122 70.3-122-70.3V539.8l122-70.3 122 70.3v140.4zm239.9 133.9c-13.2 22.9-42.4 30.8-65.2 17.6-22.8-13.2-30.7-42.6-17.5-65.5s42.4-30.8 65.2-17.6c22.9 13.2 30.7 42.5 17.5 65.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/deployment-unit.svg b/src/blrec/data/webapp/assets/outline/deployment-unit.svg new file mode 100644 index 0000000..318d298 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/deployment-unit.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M888.3 693.2c-42.5-24.6-94.3-18-129.2 12.8l-53-30.7V523.6c0-15.7-8.4-30.3-22-38.1l-136-78.3v-67.1c44.2-15 76-56.8 76-106.1 0-61.9-50.1-112-112-112s-112 50.1-112 112c0 49.3 31.8 91.1 76 106.1v67.1l-136 78.3c-13.6 7.8-22 22.4-22 38.1v151.6l-53 30.7c-34.9-30.8-86.8-37.4-129.2-12.8-53.5 31-71.7 99.4-41 152.9 30.8 53.5 98.9 71.9 152.2 41 42.5-24.6 62.7-73 53.6-118.8l48.7-28.3 140.6 81c6.8 3.9 14.4 5.9 22 5.9s15.2-2 22-5.9L674.5 740l48.7 28.3c-9.1 45.7 11.2 94.2 53.6 118.8 53.3 30.9 121.5 12.6 152.2-41 30.8-53.6 12.6-122-40.7-152.9zm-673 138.4a47.6 47.6 0 01-65.2-17.6c-13.2-22.9-5.4-52.3 17.5-65.5a47.6 47.6 0 0165.2 17.6c13.2 22.9 5.4 52.3-17.5 65.5zM522 463.8zM464 234a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm170 446.2l-122 70.3-122-70.3V539.8l122-70.3 122 70.3v140.4zm239.9 133.9c-13.2 22.9-42.4 30.8-65.2 17.6-22.8-13.2-30.7-42.6-17.5-65.5s42.4-30.8 65.2-17.6c22.9 13.2 30.7 42.5 17.5 65.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/desktop.js b/src/blrec/data/webapp/assets/outline/desktop.js new file mode 100644 index 0000000..0fc53f8 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/desktop.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'desktop', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 140H96c-17.7 0-32 14.3-32 32v496c0 17.7 14.3 32 32 32h380v112H304c-8.8 0-16 7.2-16 16v48c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-48c0-8.8-7.2-16-16-16H548V700h380c17.7 0 32-14.3 32-32V172c0-17.7-14.3-32-32-32zm-40 488H136V212h752v416z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/desktop.svg b/src/blrec/data/webapp/assets/outline/desktop.svg new file mode 100644 index 0000000..ae78b98 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/desktop.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 140H96c-17.7 0-32 14.3-32 32v496c0 17.7 14.3 32 32 32h380v112H304c-8.8 0-16 7.2-16 16v48c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-48c0-8.8-7.2-16-16-16H548V700h380c17.7 0 32-14.3 32-32V172c0-17.7-14.3-32-32-32zm-40 488H136V212h752v416z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/diff.js b/src/blrec/data/webapp/assets/outline/diff.js new file mode 100644 index 0000000..bea3724 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/diff.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'diff', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M476 399.1c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1V484h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H420v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V540h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H476v-84.9zM560.5 704h-225c-4.1 0-7.5 3.2-7.5 7v42c0 3.8 3.4 7 7.5 7h225c4.1 0 7.5-3.2 7.5-7v-42c0-3.8-3.4-7-7.5-7zm-7.1-502.6c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM664 888H232V264h282.2L664 413.8V888zm190.2-581.4L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/diff.svg b/src/blrec/data/webapp/assets/outline/diff.svg new file mode 100644 index 0000000..42c36a0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/diff.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M476 399.1c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1V484h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H420v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V540h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H476v-84.9zM560.5 704h-225c-4.1 0-7.5 3.2-7.5 7v42c0 3.8 3.4 7 7.5 7h225c4.1 0 7.5-3.2 7.5-7v-42c0-3.8-3.4-7-7.5-7zm-7.1-502.6c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM664 888H232V264h282.2L664 413.8V888zm190.2-581.4L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dingding.js b/src/blrec/data/webapp/assets/outline/dingding.js new file mode 100644 index 0000000..0c2003d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dingding.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dingding', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M573.7 252.5C422.5 197.4 201.3 96.7 201.3 96.7c-15.7-4.1-17.9 11.1-17.9 11.1-5 61.1 33.6 160.5 53.6 182.8 19.9 22.3 319.1 113.7 319.1 113.7S326 357.9 270.5 341.9c-55.6-16-37.9 17.8-37.9 17.8 11.4 61.7 64.9 131.8 107.2 138.4 42.2 6.6 220.1 4 220.1 4s-35.5 4.1-93.2 11.9c-42.7 5.8-97 12.5-111.1 17.8-33.1 12.5 24 62.6 24 62.6 84.7 76.8 129.7 50.5 129.7 50.5 33.3-10.7 61.4-18.5 85.2-24.2L565 743.1h84.6L603 928l205.3-271.9H700.8l22.3-38.7c.3.5.4.8.4.8S799.8 496.1 829 433.8l.6-1h-.1c5-10.8 8.6-19.7 10-25.8 17-71.3-114.5-99.4-265.8-154.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dingding.svg b/src/blrec/data/webapp/assets/outline/dingding.svg new file mode 100644 index 0000000..b6ca687 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dingding.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M573.7 252.5C422.5 197.4 201.3 96.7 201.3 96.7c-15.7-4.1-17.9 11.1-17.9 11.1-5 61.1 33.6 160.5 53.6 182.8 19.9 22.3 319.1 113.7 319.1 113.7S326 357.9 270.5 341.9c-55.6-16-37.9 17.8-37.9 17.8 11.4 61.7 64.9 131.8 107.2 138.4 42.2 6.6 220.1 4 220.1 4s-35.5 4.1-93.2 11.9c-42.7 5.8-97 12.5-111.1 17.8-33.1 12.5 24 62.6 24 62.6 84.7 76.8 129.7 50.5 129.7 50.5 33.3-10.7 61.4-18.5 85.2-24.2L565 743.1h84.6L603 928l205.3-271.9H700.8l22.3-38.7c.3.5.4.8.4.8S799.8 496.1 829 433.8l.6-1h-.1c5-10.8 8.6-19.7 10-25.8 17-71.3-114.5-99.4-265.8-154.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dingtalk.js b/src/blrec/data/webapp/assets/outline/dingtalk.js new file mode 100644 index 0000000..5b5676d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dingtalk.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dingtalk', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M573.7 252.5C422.5 197.4 201.3 96.7 201.3 96.7c-15.7-4.1-17.9 11.1-17.9 11.1-5 61.1 33.6 160.5 53.6 182.8 19.9 22.3 319.1 113.7 319.1 113.7S326 357.9 270.5 341.9c-55.6-16-37.9 17.8-37.9 17.8 11.4 61.7 64.9 131.8 107.2 138.4 42.2 6.6 220.1 4 220.1 4s-35.5 4.1-93.2 11.9c-42.7 5.8-97 12.5-111.1 17.8-33.1 12.5 24 62.6 24 62.6 84.7 76.8 129.7 50.5 129.7 50.5 33.3-10.7 61.4-18.5 85.2-24.2L565 743.1h84.6L603 928l205.3-271.9H700.8l22.3-38.7c.3.5.4.8.4.8S799.8 496.1 829 433.8l.6-1h-.1c5-10.8 8.6-19.7 10-25.8 17-71.3-114.5-99.4-265.8-154.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dingtalk.svg b/src/blrec/data/webapp/assets/outline/dingtalk.svg new file mode 100644 index 0000000..b6ca687 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dingtalk.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M573.7 252.5C422.5 197.4 201.3 96.7 201.3 96.7c-15.7-4.1-17.9 11.1-17.9 11.1-5 61.1 33.6 160.5 53.6 182.8 19.9 22.3 319.1 113.7 319.1 113.7S326 357.9 270.5 341.9c-55.6-16-37.9 17.8-37.9 17.8 11.4 61.7 64.9 131.8 107.2 138.4 42.2 6.6 220.1 4 220.1 4s-35.5 4.1-93.2 11.9c-42.7 5.8-97 12.5-111.1 17.8-33.1 12.5 24 62.6 24 62.6 84.7 76.8 129.7 50.5 129.7 50.5 33.3-10.7 61.4-18.5 85.2-24.2L565 743.1h84.6L603 928l205.3-271.9H700.8l22.3-38.7c.3.5.4.8.4.8S799.8 496.1 829 433.8l.6-1h-.1c5-10.8 8.6-19.7 10-25.8 17-71.3-114.5-99.4-265.8-154.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/disconnect.js b/src/blrec/data/webapp/assets/outline/disconnect.js new file mode 100644 index 0000000..5626a63 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/disconnect.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'disconnect', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832.6 191.4c-84.6-84.6-221.5-84.6-306 0l-96.9 96.9 51 51 96.9-96.9c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204l-96.9 96.9 51.1 51.1 96.9-96.9c84.4-84.6 84.4-221.5-.1-306.1zM446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l96.9-96.9-51.1-51.1-96.9 96.9c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l96.9-96.9-51-51-96.8 97zM260.3 209.4a8.03 8.03 0 00-11.3 0L209.4 249a8.03 8.03 0 000 11.3l554.4 554.4c3.1 3.1 8.2 3.1 11.3 0l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3L260.3 209.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/disconnect.svg b/src/blrec/data/webapp/assets/outline/disconnect.svg new file mode 100644 index 0000000..8c6637a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/disconnect.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832.6 191.4c-84.6-84.6-221.5-84.6-306 0l-96.9 96.9 51 51 96.9-96.9c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204l-96.9 96.9 51.1 51.1 96.9-96.9c84.4-84.6 84.4-221.5-.1-306.1zM446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l96.9-96.9-51.1-51.1-96.9 96.9c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l96.9-96.9-51-51-96.8 97zM260.3 209.4a8.03 8.03 0 00-11.3 0L209.4 249a8.03 8.03 0 000 11.3l554.4 554.4c3.1 3.1 8.2 3.1 11.3 0l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3L260.3 209.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dislike.js b/src/blrec/data/webapp/assets/outline/dislike.js new file mode 100644 index 0000000..a0690aa --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dislike.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dislike', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M885.9 490.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 00-26.5-5.4H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h129.3l85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zM184 456V172h81v284h-81zm627.2 160.4H496.8l9.6 198.4c.6 11.9-4.7 23.1-14.6 30.5-6.1 4.5-13.6 6.8-21.1 6.7a44.28 44.28 0 01-42.2-32.3L329 459.2V172h415.4a56.85 56.85 0 0133.6 51.8c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0119.6 43c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0119.6 43c0 9.7-2.3 18.9-6.9 27.3l-14 25.5 21.9 19a56.76 56.76 0 0119.6 43c0 19.1-11 37.5-28.8 48.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dislike.svg b/src/blrec/data/webapp/assets/outline/dislike.svg new file mode 100644 index 0000000..8816ed6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dislike.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M885.9 490.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 00-26.5-5.4H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h129.3l85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zM184 456V172h81v284h-81zm627.2 160.4H496.8l9.6 198.4c.6 11.9-4.7 23.1-14.6 30.5-6.1 4.5-13.6 6.8-21.1 6.7a44.28 44.28 0 01-42.2-32.3L329 459.2V172h415.4a56.85 56.85 0 0133.6 51.8c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0119.6 43c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0119.6 43c0 9.7-2.3 18.9-6.9 27.3l-14 25.5 21.9 19a56.76 56.76 0 0119.6 43c0 19.1-11 37.5-28.8 48.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dollar-circle.js b/src/blrec/data/webapp/assets/outline/dollar-circle.js new file mode 100644 index 0000000..9984ff6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dollar-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dollar-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dollar-circle.svg b/src/blrec/data/webapp/assets/outline/dollar-circle.svg new file mode 100644 index 0000000..8bc3978 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dollar-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dollar.js b/src/blrec/data/webapp/assets/outline/dollar.js new file mode 100644 index 0000000..23cc505 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dollar.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dollar', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dollar.svg b/src/blrec/data/webapp/assets/outline/dollar.svg new file mode 100644 index 0000000..8bc3978 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dollar.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dot-chart.js b/src/blrec/data/webapp/assets/outline/dot-chart.js new file mode 100644 index 0000000..2864a40 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dot-chart.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dot-chart', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM288 604a64 64 0 10128 0 64 64 0 10-128 0zm118-224a48 48 0 1096 0 48 48 0 10-96 0zm158 228a96 96 0 10192 0 96 96 0 10-192 0zm148-314a56 56 0 10112 0 56 56 0 10-112 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dot-chart.svg b/src/blrec/data/webapp/assets/outline/dot-chart.svg new file mode 100644 index 0000000..84fce31 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dot-chart.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM288 604a64 64 0 10128 0 64 64 0 10-128 0zm118-224a48 48 0 1096 0 48 48 0 10-96 0zm158 228a96 96 0 10192 0 96 96 0 10-192 0zm148-314a56 56 0 10112 0 56 56 0 10-112 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/double-left.js b/src/blrec/data/webapp/assets/outline/double-left.js new file mode 100644 index 0000000..6a28407 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/double-left.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'double-left', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/double-left.svg b/src/blrec/data/webapp/assets/outline/double-left.svg new file mode 100644 index 0000000..401e343 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/double-left.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/double-right.js b/src/blrec/data/webapp/assets/outline/double-right.js new file mode 100644 index 0000000..7e5d2ba --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/double-right.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'double-right', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/double-right.svg b/src/blrec/data/webapp/assets/outline/double-right.svg new file mode 100644 index 0000000..a77d45b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/double-right.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/down-circle.js b/src/blrec/data/webapp/assets/outline/down-circle.js new file mode 100644 index 0000000..65a9189 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/down-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'down-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M690 405h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 563.6 406.8 418.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7z" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/down-circle.svg b/src/blrec/data/webapp/assets/outline/down-circle.svg new file mode 100644 index 0000000..8969414 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/down-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M690 405h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 563.6 406.8 418.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7z" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/down-square.js b/src/blrec/data/webapp/assets/outline/down-square.js new file mode 100644 index 0000000..86a5029 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/down-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'down-square', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M505.5 658.7c3.2 4.4 9.7 4.4 12.9 0l178-246c3.8-5.3 0-12.7-6.5-12.7H643c-10.2 0-19.9 4.9-25.9 13.2L512 558.6 406.8 413.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246z" /><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/down-square.svg b/src/blrec/data/webapp/assets/outline/down-square.svg new file mode 100644 index 0000000..e4ba467 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/down-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M505.5 658.7c3.2 4.4 9.7 4.4 12.9 0l178-246c3.8-5.3 0-12.7-6.5-12.7H643c-10.2 0-19.9 4.9-25.9 13.2L512 558.6 406.8 413.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246z" /><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/down.js b/src/blrec/data/webapp/assets/outline/down.js new file mode 100644 index 0000000..67578d8 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/down.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'down', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/down.svg b/src/blrec/data/webapp/assets/outline/down.svg new file mode 100644 index 0000000..d272fb8 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/down.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/download.js b/src/blrec/data/webapp/assets/outline/download.js new file mode 100644 index 0000000..92aac18 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/download.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'download', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/download.svg b/src/blrec/data/webapp/assets/outline/download.svg new file mode 100644 index 0000000..0219a49 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/download.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/drag.js b/src/blrec/data/webapp/assets/outline/drag.js new file mode 100644 index 0000000..72f5e4f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/drag.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'drag', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M909.3 506.3L781.7 405.6a7.23 7.23 0 00-11.7 5.7V476H548V254h64.8c6 0 9.4-7 5.7-11.7L517.7 114.7a7.14 7.14 0 00-11.3 0L405.6 242.3a7.23 7.23 0 005.7 11.7H476v222H254v-64.8c0-6-7-9.4-11.7-5.7L114.7 506.3a7.14 7.14 0 000 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h222v222h-64.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V548h222v64.8c0 6 7 9.4 11.7 5.7l127.5-100.8a7.3 7.3 0 00.1-11.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/drag.svg b/src/blrec/data/webapp/assets/outline/drag.svg new file mode 100644 index 0000000..f907083 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/drag.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M909.3 506.3L781.7 405.6a7.23 7.23 0 00-11.7 5.7V476H548V254h64.8c6 0 9.4-7 5.7-11.7L517.7 114.7a7.14 7.14 0 00-11.3 0L405.6 242.3a7.23 7.23 0 005.7 11.7H476v222H254v-64.8c0-6-7-9.4-11.7-5.7L114.7 506.3a7.14 7.14 0 000 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V548h222v222h-64.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V548h222v64.8c0 6 7 9.4 11.7 5.7l127.5-100.8a7.3 7.3 0 00.1-11.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dribbble-square.js b/src/blrec/data/webapp/assets/outline/dribbble-square.js new file mode 100644 index 0000000..ef0a63a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dribbble-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dribbble-square', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm66.5 21.8c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM512 800c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm89.7-259.1c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zm-72.5-26.4c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4zm145.9-186.2a245.2 245.2 0 00-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dribbble-square.svg b/src/blrec/data/webapp/assets/outline/dribbble-square.svg new file mode 100644 index 0000000..af3704c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dribbble-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M498.6 432c-40.8-72.5-84.7-133.4-91.2-142.3-68.8 32.5-120.3 95.9-136.2 172.2 11 .2 112.4.7 227.4-29.9zm66.5 21.8c5.7 11.7 11.2 23.6 16.3 35.6 1.8 4.2 3.6 8.4 5.3 12.7 81.8-10.3 163.2 6.2 171.3 7.9-.5-58.1-21.3-111.4-55.5-153.3-5.3 7.1-46.5 60-137.4 97.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM512 800c-158.8 0-288-129.2-288-288s129.2-288 288-288 288 129.2 288 288-129.2 288-288 288zm89.7-259.1c32.2 88.4 45.3 160.4 47.8 175.4 55.2-37.3 94.5-96.4 105.4-164.9-8.4-2.6-76.1-22.8-153.2-10.5zm-72.5-26.4c3.2-1 6.4-2 9.7-2.9-6.2-14-12.9-28-19.9-41.7-122.8 36.8-242.1 35.2-252.8 35-.1 2.5-.1 5-.1 7.5 0 63.2 23.9 120.9 63.2 164.5 5.5-9.6 73-121.4 199.9-162.4zm145.9-186.2a245.2 245.2 0 00-220.8-55.1c6.8 9.1 51.5 69.9 91.8 144 87.5-32.8 124.5-82.6 129-88.9zM554 552.8c-138.7 48.3-188.6 144.6-193 153.6 41.7 32.5 94.1 51.9 151 51.9 34.1 0 66.6-6.9 96.1-19.5-3.7-21.6-17.9-96.8-52.5-186.6l-1.6.6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dribbble.js b/src/blrec/data/webapp/assets/outline/dribbble.js new file mode 100644 index 0000000..d065fc7 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dribbble.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dribbble', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 96C282.6 96 96 282.6 96 512s186.6 416 416 416 416-186.6 416-416S741.4 96 512 96zm275.1 191.8c49.5 60.5 79.5 137.5 80.2 221.4-11.7-2.5-129.2-26.3-247.4-11.4-2.5-6.1-5-12.2-7.6-18.3-7.4-17.3-15.3-34.6-23.6-51.5C720 374.3 779.6 298 787.1 287.8zM512 157.2c90.3 0 172.8 33.9 235.5 89.5-6.4 9.1-59.9 81-186.2 128.4-58.2-107-122.7-194.8-132.6-208 27.3-6.6 55.2-9.9 83.3-9.9zM360.9 191c9.4 12.8 72.9 100.9 131.7 205.5C326.4 440.6 180 440 164.1 439.8c23.1-110.3 97.4-201.9 196.8-248.8zM156.7 512.5c0-3.6.1-7.3.2-10.9 15.5.3 187.7 2.5 365.2-50.6 10.2 19.9 19.9 40.1 28.8 60.3-4.7 1.3-9.4 2.7-14 4.2C353.6 574.9 256.1 736.4 248 750.1c-56.7-63-91.3-146.3-91.3-237.6zM512 867.8c-82.2 0-157.9-28-218.1-75 6.4-13.1 78.3-152 278.7-221.9l2.3-.8c49.9 129.6 70.5 238.3 75.8 269.5A350.46 350.46 0 01512 867.8zm198.5-60.7c-3.6-21.6-22.5-125.6-69-253.3C752.9 536 850.7 565.2 862.8 569c-15.8 98.8-72.5 184.2-152.3 238.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dribbble.svg b/src/blrec/data/webapp/assets/outline/dribbble.svg new file mode 100644 index 0000000..407cedb --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dribbble.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 96C282.6 96 96 282.6 96 512s186.6 416 416 416 416-186.6 416-416S741.4 96 512 96zm275.1 191.8c49.5 60.5 79.5 137.5 80.2 221.4-11.7-2.5-129.2-26.3-247.4-11.4-2.5-6.1-5-12.2-7.6-18.3-7.4-17.3-15.3-34.6-23.6-51.5C720 374.3 779.6 298 787.1 287.8zM512 157.2c90.3 0 172.8 33.9 235.5 89.5-6.4 9.1-59.9 81-186.2 128.4-58.2-107-122.7-194.8-132.6-208 27.3-6.6 55.2-9.9 83.3-9.9zM360.9 191c9.4 12.8 72.9 100.9 131.7 205.5C326.4 440.6 180 440 164.1 439.8c23.1-110.3 97.4-201.9 196.8-248.8zM156.7 512.5c0-3.6.1-7.3.2-10.9 15.5.3 187.7 2.5 365.2-50.6 10.2 19.9 19.9 40.1 28.8 60.3-4.7 1.3-9.4 2.7-14 4.2C353.6 574.9 256.1 736.4 248 750.1c-56.7-63-91.3-146.3-91.3-237.6zM512 867.8c-82.2 0-157.9-28-218.1-75 6.4-13.1 78.3-152 278.7-221.9l2.3-.8c49.9 129.6 70.5 238.3 75.8 269.5A350.46 350.46 0 01512 867.8zm198.5-60.7c-3.6-21.6-22.5-125.6-69-253.3C752.9 536 850.7 565.2 862.8 569c-15.8 98.8-72.5 184.2-152.3 238.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dropbox.js b/src/blrec/data/webapp/assets/outline/dropbox.js new file mode 100644 index 0000000..8de5c6c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dropbox.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dropbox', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M64 556.9l264.2 173.5L512.5 577 246.8 412.7zm896-290.3zm0 0L696.8 95 512.5 248.5l265.2 164.2L512.5 577l184.3 153.4L960 558.8 777.7 412.7zM513 609.8L328.2 763.3l-79.4-51.5v57.8L513 928l263.7-158.4v-57.8l-78.9 51.5zM328.2 95L64 265.1l182.8 147.6 265.7-164.2zM64 556.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/dropbox.svg b/src/blrec/data/webapp/assets/outline/dropbox.svg new file mode 100644 index 0000000..d89c0e3 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/dropbox.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M64 556.9l264.2 173.5L512.5 577 246.8 412.7zm896-290.3zm0 0L696.8 95 512.5 248.5l265.2 164.2L512.5 577l184.3 153.4L960 558.8 777.7 412.7zM513 609.8L328.2 763.3l-79.4-51.5v57.8L513 928l263.7-158.4v-57.8l-78.9 51.5zM328.2 95L64 265.1l182.8 147.6 265.7-164.2zM64 556.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/edit.js b/src/blrec/data/webapp/assets/outline/edit.js new file mode 100644 index 0000000..2691597 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/edit.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'edit', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/edit.svg b/src/blrec/data/webapp/assets/outline/edit.svg new file mode 100644 index 0000000..27d4c48 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/edit.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/ellipsis.js b/src/blrec/data/webapp/assets/outline/ellipsis.js new file mode 100644 index 0000000..859ceec --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/ellipsis.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'ellipsis', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/ellipsis.svg b/src/blrec/data/webapp/assets/outline/ellipsis.svg new file mode 100644 index 0000000..2e2126a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/ellipsis.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/enter.js b/src/blrec/data/webapp/assets/outline/enter.js new file mode 100644 index 0000000..aefc6df --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/enter.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'enter', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 000 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/enter.svg b/src/blrec/data/webapp/assets/outline/enter.svg new file mode 100644 index 0000000..903618f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/enter.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 000 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/environment.js b/src/blrec/data/webapp/assets/outline/environment.js new file mode 100644 index 0000000..7bffdd5 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/environment.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'environment', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 289.1a362.49 362.49 0 00-79.9-115.7 370.83 370.83 0 00-118.2-77.8C610.7 76.6 562.1 67 512 67c-50.1 0-98.7 9.6-144.5 28.5-44.3 18.3-84 44.5-118.2 77.8A363.6 363.6 0 00169.4 289c-19.5 45-29.4 92.8-29.4 142 0 70.6 16.9 140.9 50.1 208.7 26.7 54.5 64 107.6 111 158.1 80.3 86.2 164.5 138.9 188.4 153a43.9 43.9 0 0022.4 6.1c7.8 0 15.5-2 22.4-6.1 23.9-14.1 108.1-66.8 188.4-153 47-50.4 84.3-103.6 111-158.1C867.1 572 884 501.8 884 431.1c0-49.2-9.9-97-29.4-142zM512 880.2c-65.9-41.9-300-207.8-300-449.1 0-77.9 31.1-151.1 87.6-206.3C356.3 169.5 431.7 139 512 139s155.7 30.5 212.4 85.9C780.9 280 812 353.2 812 431.1c0 241.3-234.1 407.2-300 449.1zm0-617.2c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 551c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 439c0-29.9 11.7-58 32.8-79.2C454 338.6 482.1 327 512 327c29.9 0 58 11.6 79.2 32.8C612.4 381 624 409.1 624 439c0 29.9-11.6 58-32.8 79.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/environment.svg b/src/blrec/data/webapp/assets/outline/environment.svg new file mode 100644 index 0000000..03c4032 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/environment.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 289.1a362.49 362.49 0 00-79.9-115.7 370.83 370.83 0 00-118.2-77.8C610.7 76.6 562.1 67 512 67c-50.1 0-98.7 9.6-144.5 28.5-44.3 18.3-84 44.5-118.2 77.8A363.6 363.6 0 00169.4 289c-19.5 45-29.4 92.8-29.4 142 0 70.6 16.9 140.9 50.1 208.7 26.7 54.5 64 107.6 111 158.1 80.3 86.2 164.5 138.9 188.4 153a43.9 43.9 0 0022.4 6.1c7.8 0 15.5-2 22.4-6.1 23.9-14.1 108.1-66.8 188.4-153 47-50.4 84.3-103.6 111-158.1C867.1 572 884 501.8 884 431.1c0-49.2-9.9-97-29.4-142zM512 880.2c-65.9-41.9-300-207.8-300-449.1 0-77.9 31.1-151.1 87.6-206.3C356.3 169.5 431.7 139 512 139s155.7 30.5 212.4 85.9C780.9 280 812 353.2 812 431.1c0 241.3-234.1 407.2-300 449.1zm0-617.2c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 551c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 439c0-29.9 11.7-58 32.8-79.2C454 338.6 482.1 327 512 327c29.9 0 58 11.6 79.2 32.8C612.4 381 624 409.1 624 439c0 29.9-11.6 58-32.8 79.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/euro-circle.js b/src/blrec/data/webapp/assets/outline/euro-circle.js new file mode 100644 index 0000000..996fee4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/euro-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'euro-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm117.7-588.6c-15.9-3.5-34.4-5.4-55.3-5.4-106.7 0-178.9 55.7-198.6 149.9H344c-4.4 0-8 3.6-8 8v27.2c0 4.4 3.6 8 8 8h26.4c-.3 4.1-.3 8.4-.3 12.8v36.9H344c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h30.2c17.2 99.2 90.4 158 200.2 158 20.9 0 39.4-1.7 55.3-5.1 3.7-.8 6.4-4 6.4-7.8v-42.8c0-5-4.6-8.8-9.5-7.8-14.7 2.8-31.9 4.1-51.8 4.1-68.5 0-114.5-36.6-129.8-98.6h130.6c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H439.2v-36c0-4.7 0-9.4.3-13.8h135.9c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H447.1c17.2-56.9 62.3-90.4 127.6-90.4 19.9 0 37.1 1.5 51.7 4.4a8 8 0 009.6-7.8v-42.8c0-3.8-2.6-7-6.3-7.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/euro-circle.svg b/src/blrec/data/webapp/assets/outline/euro-circle.svg new file mode 100644 index 0000000..a2934d2 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/euro-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm117.7-588.6c-15.9-3.5-34.4-5.4-55.3-5.4-106.7 0-178.9 55.7-198.6 149.9H344c-4.4 0-8 3.6-8 8v27.2c0 4.4 3.6 8 8 8h26.4c-.3 4.1-.3 8.4-.3 12.8v36.9H344c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h30.2c17.2 99.2 90.4 158 200.2 158 20.9 0 39.4-1.7 55.3-5.1 3.7-.8 6.4-4 6.4-7.8v-42.8c0-5-4.6-8.8-9.5-7.8-14.7 2.8-31.9 4.1-51.8 4.1-68.5 0-114.5-36.6-129.8-98.6h130.6c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H439.2v-36c0-4.7 0-9.4.3-13.8h135.9c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H447.1c17.2-56.9 62.3-90.4 127.6-90.4 19.9 0 37.1 1.5 51.7 4.4a8 8 0 009.6-7.8v-42.8c0-3.8-2.6-7-6.3-7.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/euro.js b/src/blrec/data/webapp/assets/outline/euro.js new file mode 100644 index 0000000..0a3cbf3 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/euro.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'euro', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm117.7-588.6c-15.9-3.5-34.4-5.4-55.3-5.4-106.7 0-178.9 55.7-198.6 149.9H344c-4.4 0-8 3.6-8 8v27.2c0 4.4 3.6 8 8 8h26.4c-.3 4.1-.3 8.4-.3 12.8v36.9H344c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h30.2c17.2 99.2 90.4 158 200.2 158 20.9 0 39.4-1.7 55.3-5.1 3.7-.8 6.4-4 6.4-7.8v-42.8c0-5-4.6-8.8-9.5-7.8-14.7 2.8-31.9 4.1-51.8 4.1-68.5 0-114.5-36.6-129.8-98.6h130.6c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H439.2v-36c0-4.7 0-9.4.3-13.8h135.9c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H447.1c17.2-56.9 62.3-90.4 127.6-90.4 19.9 0 37.1 1.5 51.7 4.4a8 8 0 009.6-7.8v-42.8c0-3.8-2.6-7-6.3-7.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/euro.svg b/src/blrec/data/webapp/assets/outline/euro.svg new file mode 100644 index 0000000..a2934d2 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/euro.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm117.7-588.6c-15.9-3.5-34.4-5.4-55.3-5.4-106.7 0-178.9 55.7-198.6 149.9H344c-4.4 0-8 3.6-8 8v27.2c0 4.4 3.6 8 8 8h26.4c-.3 4.1-.3 8.4-.3 12.8v36.9H344c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h30.2c17.2 99.2 90.4 158 200.2 158 20.9 0 39.4-1.7 55.3-5.1 3.7-.8 6.4-4 6.4-7.8v-42.8c0-5-4.6-8.8-9.5-7.8-14.7 2.8-31.9 4.1-51.8 4.1-68.5 0-114.5-36.6-129.8-98.6h130.6c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H439.2v-36c0-4.7 0-9.4.3-13.8h135.9c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H447.1c17.2-56.9 62.3-90.4 127.6-90.4 19.9 0 37.1 1.5 51.7 4.4a8 8 0 009.6-7.8v-42.8c0-3.8-2.6-7-6.3-7.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/exception.js b/src/blrec/data/webapp/assets/outline/exception.js new file mode 100644 index 0000000..d71ab21 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/exception.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'exception', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm376 116c-119.3 0-216 96.7-216 216s96.7 216 216 216 216-96.7 216-216-96.7-216-216-216zm107.5 323.5C750.8 868.2 712.6 884 672 884s-78.8-15.8-107.5-44.5C535.8 810.8 520 772.6 520 732s15.8-78.8 44.5-107.5C593.2 595.8 631.4 580 672 580s78.8 15.8 107.5 44.5C808.2 653.2 824 691.4 824 732s-15.8 78.8-44.5 107.5zM640 812a32 32 0 1064 0 32 32 0 10-64 0zm12-64h40c4.4 0 8-3.6 8-8V628c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8zM440 852H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/exception.svg b/src/blrec/data/webapp/assets/outline/exception.svg new file mode 100644 index 0000000..0895bd2 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/exception.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm376 116c-119.3 0-216 96.7-216 216s96.7 216 216 216 216-96.7 216-216-96.7-216-216-216zm107.5 323.5C750.8 868.2 712.6 884 672 884s-78.8-15.8-107.5-44.5C535.8 810.8 520 772.6 520 732s15.8-78.8 44.5-107.5C593.2 595.8 631.4 580 672 580s78.8 15.8 107.5 44.5C808.2 653.2 824 691.4 824 732s-15.8 78.8-44.5 107.5zM640 812a32 32 0 1064 0 32 32 0 10-64 0zm12-64h40c4.4 0 8-3.6 8-8V628c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8zM440 852H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/exclamation-circle.js b/src/blrec/data/webapp/assets/outline/exclamation-circle.js new file mode 100644 index 0000000..0e6274a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/exclamation-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'exclamation-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /><path d="M464 688a48 48 0 1096 0 48 48 0 10-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/exclamation-circle.svg b/src/blrec/data/webapp/assets/outline/exclamation-circle.svg new file mode 100644 index 0000000..aa9547c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/exclamation-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /><path d="M464 688a48 48 0 1096 0 48 48 0 10-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/exclamation.js b/src/blrec/data/webapp/assets/outline/exclamation.js new file mode 100644 index 0000000..95ce5e0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/exclamation.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'exclamation', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M448 804a64 64 0 10128 0 64 64 0 10-128 0zm32-168h64c4.4 0 8-3.6 8-8V164c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/exclamation.svg b/src/blrec/data/webapp/assets/outline/exclamation.svg new file mode 100644 index 0000000..060dd35 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/exclamation.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M448 804a64 64 0 10128 0 64 64 0 10-128 0zm32-168h64c4.4 0 8-3.6 8-8V164c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/expand-alt.js b/src/blrec/data/webapp/assets/outline/expand-alt.js new file mode 100644 index 0000000..5f3bbb1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/expand-alt.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'expand-alt', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M855 160.1l-189.2 23.5c-6.6.8-9.3 8.8-4.7 13.5l54.7 54.7-153.5 153.5a8.03 8.03 0 000 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l153.6-153.6 54.7 54.7a7.94 7.94 0 0013.5-4.7L863.9 169a7.9 7.9 0 00-8.9-8.9zM416.6 562.3a8.03 8.03 0 00-11.3 0L251.8 715.9l-54.7-54.7a7.94 7.94 0 00-13.5 4.7L160.1 855c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 153.6-153.6c3.1-3.1 3.1-8.2 0-11.3l-45.2-45z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/expand-alt.svg b/src/blrec/data/webapp/assets/outline/expand-alt.svg new file mode 100644 index 0000000..19418e1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/expand-alt.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M855 160.1l-189.2 23.5c-6.6.8-9.3 8.8-4.7 13.5l54.7 54.7-153.5 153.5a8.03 8.03 0 000 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l153.6-153.6 54.7 54.7a7.94 7.94 0 0013.5-4.7L863.9 169a7.9 7.9 0 00-8.9-8.9zM416.6 562.3a8.03 8.03 0 00-11.3 0L251.8 715.9l-54.7-54.7a7.94 7.94 0 00-13.5 4.7L160.1 855c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 153.6-153.6c3.1-3.1 3.1-8.2 0-11.3l-45.2-45z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/expand.js b/src/blrec/data/webapp/assets/outline/expand.js new file mode 100644 index 0000000..b544b84 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/expand.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'expand', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M342 88H120c-17.7 0-32 14.3-32 32v224c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16V168h174c8.8 0 16-7.2 16-16v-48c0-8.8-7.2-16-16-16zm578 576h-48c-8.8 0-16 7.2-16 16v176H682c-8.8 0-16 7.2-16 16v48c0 8.8 7.2 16 16 16h222c17.7 0 32-14.3 32-32V680c0-8.8-7.2-16-16-16zM342 856H168V680c0-8.8-7.2-16-16-16h-48c-8.8 0-16 7.2-16 16v224c0 17.7 14.3 32 32 32h222c8.8 0 16-7.2 16-16v-48c0-8.8-7.2-16-16-16zM904 88H682c-8.8 0-16 7.2-16 16v48c0 8.8 7.2 16 16 16h174v176c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16V120c0-17.7-14.3-32-32-32z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/expand.svg b/src/blrec/data/webapp/assets/outline/expand.svg new file mode 100644 index 0000000..50dfafc --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/expand.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M342 88H120c-17.7 0-32 14.3-32 32v224c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16V168h174c8.8 0 16-7.2 16-16v-48c0-8.8-7.2-16-16-16zm578 576h-48c-8.8 0-16 7.2-16 16v176H682c-8.8 0-16 7.2-16 16v48c0 8.8 7.2 16 16 16h222c17.7 0 32-14.3 32-32V680c0-8.8-7.2-16-16-16zM342 856H168V680c0-8.8-7.2-16-16-16h-48c-8.8 0-16 7.2-16 16v224c0 17.7 14.3 32 32 32h222c8.8 0 16-7.2 16-16v-48c0-8.8-7.2-16-16-16zM904 88H682c-8.8 0-16 7.2-16 16v48c0 8.8 7.2 16 16 16h174v176c0 8.8 7.2 16 16 16h48c8.8 0 16-7.2 16-16V120c0-17.7-14.3-32-32-32z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/experiment.js b/src/blrec/data/webapp/assets/outline/experiment.js new file mode 100644 index 0000000..c6efcb1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/experiment.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'experiment', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/experiment.svg b/src/blrec/data/webapp/assets/outline/experiment.svg new file mode 100644 index 0000000..c5b9e7a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/experiment.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 472a40 40 0 1080 0 40 40 0 10-80 0zm367 352.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.7-107.8c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1L813.5 844h-603z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/export.js b/src/blrec/data/webapp/assets/outline/export.js new file mode 100644 index 0000000..49baf2e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/export.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'export', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M888.3 757.4h-53.8c-4.2 0-7.7 3.5-7.7 7.7v61.8H197.1V197.1h629.8v61.8c0 4.2 3.5 7.7 7.7 7.7h53.8c4.2 0 7.7-3.4 7.7-7.7V158.7c0-17-13.7-30.7-30.7-30.7H158.7c-17 0-30.7 13.7-30.7 30.7v706.6c0 17 13.7 30.7 30.7 30.7h706.6c17 0 30.7-13.7 30.7-30.7V765.1c0-4.3-3.5-7.7-7.7-7.7zm18.6-251.7L765 393.7c-5.3-4.2-13-.4-13 6.3v76H438c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 000-12.6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/export.svg b/src/blrec/data/webapp/assets/outline/export.svg new file mode 100644 index 0000000..f556152 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/export.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M888.3 757.4h-53.8c-4.2 0-7.7 3.5-7.7 7.7v61.8H197.1V197.1h629.8v61.8c0 4.2 3.5 7.7 7.7 7.7h53.8c4.2 0 7.7-3.4 7.7-7.7V158.7c0-17-13.7-30.7-30.7-30.7H158.7c-17 0-30.7 13.7-30.7 30.7v706.6c0 17 13.7 30.7 30.7 30.7h706.6c17 0 30.7-13.7 30.7-30.7V765.1c0-4.3-3.5-7.7-7.7-7.7zm18.6-251.7L765 393.7c-5.3-4.2-13-.4-13 6.3v76H438c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 000-12.6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/eye-invisible.js b/src/blrec/data/webapp/assets/outline/eye-invisible.js new file mode 100644 index 0000000..c129f78 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/eye-invisible.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'eye-invisible', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5zm-63.57-320.64L836 122.88a8 8 0 00-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 000 11.31L155.17 889a8 8 0 0011.31 0l712.15-712.12a8 8 0 000-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 00-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 01146.2-106.69L401.31 546.2A112 112 0 01396 512z" /><path d="M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 00227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 01-112 112z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/eye-invisible.svg b/src/blrec/data/webapp/assets/outline/eye-invisible.svg new file mode 100644 index 0000000..e39bd6a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/eye-invisible.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5zm-63.57-320.64L836 122.88a8 8 0 00-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 000 11.31L155.17 889a8 8 0 0011.31 0l712.15-712.12a8 8 0 000-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 00-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 01146.2-106.69L401.31 546.2A112 112 0 01396 512z" /><path d="M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 00227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 01-112 112z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/eye.js b/src/blrec/data/webapp/assets/outline/eye.js new file mode 100644 index 0000000..e269a12 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/eye.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'eye', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/eye.svg b/src/blrec/data/webapp/assets/outline/eye.svg new file mode 100644 index 0000000..9f8408b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/eye.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/facebook.js b/src/blrec/data/webapp/assets/outline/facebook.js new file mode 100644 index 0000000..20c966b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/facebook.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'facebook', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-32 736H663.9V602.2h104l15.6-120.7H663.9v-77.1c0-35 9.7-58.8 59.8-58.8h63.9v-108c-11.1-1.5-49-4.8-93.2-4.8-92.2 0-155.3 56.3-155.3 159.6v89H434.9v120.7h104.3V848H176V176h672v672z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/facebook.svg b/src/blrec/data/webapp/assets/outline/facebook.svg new file mode 100644 index 0000000..6abf52e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/facebook.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-32 736H663.9V602.2h104l15.6-120.7H663.9v-77.1c0-35 9.7-58.8 59.8-58.8h63.9v-108c-11.1-1.5-49-4.8-93.2-4.8-92.2 0-155.3 56.3-155.3 159.6v89H434.9v120.7h104.3V848H176V176h672v672z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/fall.js b/src/blrec/data/webapp/assets/outline/fall.js new file mode 100644 index 0000000..a15fc50 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/fall.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'fall', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M925.9 804l-24-199.2c-.8-6.6-8.9-9.4-13.6-4.7L829 659.5 557.7 388.3c-6.3-6.2-16.4-6.2-22.6 0L433.3 490 156.6 213.3a8.03 8.03 0 00-11.3 0l-45 45.2a8.03 8.03 0 000 11.3L422 591.7c6.2 6.3 16.4 6.3 22.6 0L546.4 490l226.1 226-59.3 59.3a8.01 8.01 0 004.7 13.6l199.2 24c5.1.7 9.5-3.7 8.8-8.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/fall.svg b/src/blrec/data/webapp/assets/outline/fall.svg new file mode 100644 index 0000000..2275258 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/fall.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M925.9 804l-24-199.2c-.8-6.6-8.9-9.4-13.6-4.7L829 659.5 557.7 388.3c-6.3-6.2-16.4-6.2-22.6 0L433.3 490 156.6 213.3a8.03 8.03 0 00-11.3 0l-45 45.2a8.03 8.03 0 000 11.3L422 591.7c6.2 6.3 16.4 6.3 22.6 0L546.4 490l226.1 226-59.3 59.3a8.01 8.01 0 004.7 13.6l199.2 24c5.1.7 9.5-3.7 8.8-8.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/fast-backward.js b/src/blrec/data/webapp/assets/outline/fast-backward.js new file mode 100644 index 0000000..46247de --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/fast-backward.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'fast-backward', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M517.6 273.5L230.2 499.3a16.14 16.14 0 000 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm320 0L550.2 499.3a16.14 16.14 0 000 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm-620-25.5h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/fast-backward.svg b/src/blrec/data/webapp/assets/outline/fast-backward.svg new file mode 100644 index 0000000..bc80f8d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/fast-backward.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M517.6 273.5L230.2 499.3a16.14 16.14 0 000 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm320 0L550.2 499.3a16.14 16.14 0 000 25.4l287.4 225.8c10.7 8.4 26.4.8 26.4-12.7V286.2c0-13.5-15.7-21.1-26.4-12.7zm-620-25.5h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/fast-forward.js b/src/blrec/data/webapp/assets/outline/fast-forward.js new file mode 100644 index 0000000..e07f671 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/fast-forward.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'fast-forward', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M793.8 499.3L506.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.6c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8a16.14 16.14 0 000-25.4zm-320 0L186.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.5c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8c4.1-3.2 6.2-8 6.2-12.7 0-4.6-2.1-9.4-6.2-12.6zM857.6 248h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/fast-forward.svg b/src/blrec/data/webapp/assets/outline/fast-forward.svg new file mode 100644 index 0000000..a17db63 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/fast-forward.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M793.8 499.3L506.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.6c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8a16.14 16.14 0 000-25.4zm-320 0L186.4 273.5c-10.7-8.4-26.4-.8-26.4 12.7v451.5c0 13.5 15.7 21.1 26.4 12.7l287.4-225.8c4.1-3.2 6.2-8 6.2-12.7 0-4.6-2.1-9.4-6.2-12.6zM857.6 248h-51.2c-3.5 0-6.4 2.7-6.4 6v516c0 3.3 2.9 6 6.4 6h51.2c3.5 0 6.4-2.7 6.4-6V254c0-3.3-2.9-6-6.4-6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/field-binary.js b/src/blrec/data/webapp/assets/outline/field-binary.js new file mode 100644 index 0000000..9ab8126 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/field-binary.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'field-binary', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M600 395.4h91V649h79V267c0-4.4-3.6-8-8-8h-48.2c-3.7 0-7 2.6-7.7 6.3-2.6 12.1-6.9 22.3-12.9 30.9a86.14 86.14 0 01-26.3 24.4c-10.3 6.2-22 10.5-35 12.9-10.4 1.9-21 3-32 3.1a8 8 0 00-7.9 8v42.8c0 4.4 3.6 8 8 8zM871 702H567c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM443.9 312.7c-16.1-19-34.4-32.4-55.2-40.4-21.3-8.2-44.1-12.3-68.4-12.3-23.9 0-46.4 4.1-67.7 12.3-20.8 8-39 21.4-54.8 40.3-15.9 19.1-28.7 44.7-38.3 77-9.6 32.5-14.5 73-14.5 121.5 0 49.9 4.9 91.4 14.5 124.4 9.6 32.8 22.4 58.7 38.3 77.7 15.8 18.9 34 32.3 54.8 40.3 21.3 8.2 43.8 12.3 67.7 12.3 24.4 0 47.2-4.1 68.4-12.3 20.8-8 39.2-21.4 55.2-40.4 16.1-19 29-44.9 38.6-77.7 9.6-33 14.5-74.5 14.5-124.4 0-48.4-4.9-88.9-14.5-121.5-9.5-32.1-22.4-57.7-38.6-76.8zm-29.5 251.7c-1 21.4-4.2 42-9.5 61.9-5.5 20.7-14.5 38.5-27 53.4-13.6 16.3-33.2 24.3-57.6 24.3-24 0-43.2-8.1-56.7-24.4-12.2-14.8-21.1-32.6-26.6-53.3-5.3-19.9-8.5-40.6-9.5-61.9-1-20.8-1.5-38.5-1.5-53.2 0-8.8.1-19.4.4-31.8.2-12.7 1.1-25.8 2.6-39.2 1.5-13.6 4-27.1 7.6-40.5 3.7-13.8 8.8-26.3 15.4-37.4 6.9-11.6 15.8-21.1 26.7-28.3 11.4-7.6 25.3-11.3 41.5-11.3 16.1 0 30.1 3.7 41.7 11.2a87.94 87.94 0 0127.4 28.2c6.9 11.2 12.1 23.8 15.6 37.7 3.3 13.2 5.8 26.6 7.5 40.1 1.8 13.5 2.8 26.6 3 39.4.2 12.4.4 23 .4 31.8.1 14.8-.4 32.5-1.4 53.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/field-binary.svg b/src/blrec/data/webapp/assets/outline/field-binary.svg new file mode 100644 index 0000000..f59205c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/field-binary.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M600 395.4h91V649h79V267c0-4.4-3.6-8-8-8h-48.2c-3.7 0-7 2.6-7.7 6.3-2.6 12.1-6.9 22.3-12.9 30.9a86.14 86.14 0 01-26.3 24.4c-10.3 6.2-22 10.5-35 12.9-10.4 1.9-21 3-32 3.1a8 8 0 00-7.9 8v42.8c0 4.4 3.6 8 8 8zM871 702H567c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM443.9 312.7c-16.1-19-34.4-32.4-55.2-40.4-21.3-8.2-44.1-12.3-68.4-12.3-23.9 0-46.4 4.1-67.7 12.3-20.8 8-39 21.4-54.8 40.3-15.9 19.1-28.7 44.7-38.3 77-9.6 32.5-14.5 73-14.5 121.5 0 49.9 4.9 91.4 14.5 124.4 9.6 32.8 22.4 58.7 38.3 77.7 15.8 18.9 34 32.3 54.8 40.3 21.3 8.2 43.8 12.3 67.7 12.3 24.4 0 47.2-4.1 68.4-12.3 20.8-8 39.2-21.4 55.2-40.4 16.1-19 29-44.9 38.6-77.7 9.6-33 14.5-74.5 14.5-124.4 0-48.4-4.9-88.9-14.5-121.5-9.5-32.1-22.4-57.7-38.6-76.8zm-29.5 251.7c-1 21.4-4.2 42-9.5 61.9-5.5 20.7-14.5 38.5-27 53.4-13.6 16.3-33.2 24.3-57.6 24.3-24 0-43.2-8.1-56.7-24.4-12.2-14.8-21.1-32.6-26.6-53.3-5.3-19.9-8.5-40.6-9.5-61.9-1-20.8-1.5-38.5-1.5-53.2 0-8.8.1-19.4.4-31.8.2-12.7 1.1-25.8 2.6-39.2 1.5-13.6 4-27.1 7.6-40.5 3.7-13.8 8.8-26.3 15.4-37.4 6.9-11.6 15.8-21.1 26.7-28.3 11.4-7.6 25.3-11.3 41.5-11.3 16.1 0 30.1 3.7 41.7 11.2a87.94 87.94 0 0127.4 28.2c6.9 11.2 12.1 23.8 15.6 37.7 3.3 13.2 5.8 26.6 7.5 40.1 1.8 13.5 2.8 26.6 3 39.4.2 12.4.4 23 .4 31.8.1 14.8-.4 32.5-1.4 53.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/field-number.js b/src/blrec/data/webapp/assets/outline/field-number.js new file mode 100644 index 0000000..d9a2471 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/field-number.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'field-number', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M508 280h-63.3c-3.3 0-6 2.7-6 6v340.2H433L197.4 282.6c-1.1-1.6-3-2.6-4.9-2.6H126c-3.3 0-6 2.7-6 6v464c0 3.3 2.7 6 6 6h62.7c3.3 0 6-2.7 6-6V405.1h5.7l238.2 348.3c1.1 1.6 3 2.6 5 2.6H508c3.3 0 6-2.7 6-6V286c0-3.3-2.7-6-6-6zm378 413H582c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-152.2-63c52.9 0 95.2-17.2 126.2-51.7 29.4-32.9 44-75.8 44-128.8 0-53.1-14.6-96.5-44-129.3-30.9-34.8-73.2-52.2-126.2-52.2-53.7 0-95.9 17.5-126.3 52.8-29.2 33.1-43.4 75.9-43.4 128.7 0 52.4 14.3 95.2 43.5 128.3 30.6 34.7 73 52.2 126.2 52.2zm-71.5-263.7c16.9-20.6 40.3-30.9 71.4-30.9 31.5 0 54.8 9.6 71 29.1 16.4 20.3 24.9 48.6 24.9 84.9 0 36.3-8.4 64.1-24.8 83.9-16.5 19.4-40 29.2-71.1 29.2-31.2 0-55-10.3-71.4-30.4-16.3-20.1-24.5-47.3-24.5-82.6.1-35.8 8.2-63 24.5-83.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/field-number.svg b/src/blrec/data/webapp/assets/outline/field-number.svg new file mode 100644 index 0000000..c953806 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/field-number.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M508 280h-63.3c-3.3 0-6 2.7-6 6v340.2H433L197.4 282.6c-1.1-1.6-3-2.6-4.9-2.6H126c-3.3 0-6 2.7-6 6v464c0 3.3 2.7 6 6 6h62.7c3.3 0 6-2.7 6-6V405.1h5.7l238.2 348.3c1.1 1.6 3 2.6 5 2.6H508c3.3 0 6-2.7 6-6V286c0-3.3-2.7-6-6-6zm378 413H582c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-152.2-63c52.9 0 95.2-17.2 126.2-51.7 29.4-32.9 44-75.8 44-128.8 0-53.1-14.6-96.5-44-129.3-30.9-34.8-73.2-52.2-126.2-52.2-53.7 0-95.9 17.5-126.3 52.8-29.2 33.1-43.4 75.9-43.4 128.7 0 52.4 14.3 95.2 43.5 128.3 30.6 34.7 73 52.2 126.2 52.2zm-71.5-263.7c16.9-20.6 40.3-30.9 71.4-30.9 31.5 0 54.8 9.6 71 29.1 16.4 20.3 24.9 48.6 24.9 84.9 0 36.3-8.4 64.1-24.8 83.9-16.5 19.4-40 29.2-71.1 29.2-31.2 0-55-10.3-71.4-30.4-16.3-20.1-24.5-47.3-24.5-82.6.1-35.8 8.2-63 24.5-83.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/field-string.js b/src/blrec/data/webapp/assets/outline/field-string.js new file mode 100644 index 0000000..d83719d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/field-string.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'field-string', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M875.6 515.9c2.1.8 4.4-.3 5.2-2.4.2-.4.2-.9.2-1.4v-58.3c0-1.8-1.1-3.3-2.8-3.8-6-1.8-17.2-3-27.2-3-32.9 0-61.7 16.7-73.5 41.2v-28.6c0-4.4-3.6-8-8-8H717c-4.4 0-8 3.6-8 8V729c0 4.4 3.6 8 8 8h54.8c4.4 0 8-3.6 8-8V572.7c0-36.2 26.1-60.2 65.1-60.2 10.4.1 26.6 1.8 30.7 3.4zm-537-40.5l-54.7-12.6c-61.2-14.2-87.7-34.8-87.7-70.7 0-44.6 39.1-73.5 96.9-73.5 52.8 0 91.4 26.5 99.9 68.9h70C455.9 311.6 387.6 259 293.4 259c-103.3 0-171 55.5-171 139 0 68.6 38.6 109.5 122.2 128.5l61.6 14.3c63.6 14.9 91.6 37.1 91.6 75.1 0 44.1-43.5 75.2-102.5 75.2-60.6 0-104.5-27.2-112.8-70.5H111c7.2 79.9 75.6 130.4 179.1 130.4C402.3 751 471 695.2 471 605.3c0-70.2-38.6-108.5-132.4-129.9zM841 729a36 36 0 1072 0 36 36 0 10-72 0zM653 457.8h-51.4V396c0-4.4-3.6-8-8-8h-54.7c-4.4 0-8 3.6-8 8v61.8H495c-4.4 0-8 3.6-8 8v42.3c0 4.4 3.6 8 8 8h35.9v147.5c0 56.2 27.4 79.4 93.1 79.4 11.7 0 23.6-1.2 33.8-3.1 1.9-.3 3.2-2 3.2-3.9v-49.3c0-2.2-1.8-4-4-4h-.4c-4.9.5-6.2.6-8.3.8-4.1.3-7.8.5-12.6.5-24.1 0-34.1-10.3-34.1-35.6V516.1H653c4.4 0 8-3.6 8-8v-42.3c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/field-string.svg b/src/blrec/data/webapp/assets/outline/field-string.svg new file mode 100644 index 0000000..3de404f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/field-string.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M875.6 515.9c2.1.8 4.4-.3 5.2-2.4.2-.4.2-.9.2-1.4v-58.3c0-1.8-1.1-3.3-2.8-3.8-6-1.8-17.2-3-27.2-3-32.9 0-61.7 16.7-73.5 41.2v-28.6c0-4.4-3.6-8-8-8H717c-4.4 0-8 3.6-8 8V729c0 4.4 3.6 8 8 8h54.8c4.4 0 8-3.6 8-8V572.7c0-36.2 26.1-60.2 65.1-60.2 10.4.1 26.6 1.8 30.7 3.4zm-537-40.5l-54.7-12.6c-61.2-14.2-87.7-34.8-87.7-70.7 0-44.6 39.1-73.5 96.9-73.5 52.8 0 91.4 26.5 99.9 68.9h70C455.9 311.6 387.6 259 293.4 259c-103.3 0-171 55.5-171 139 0 68.6 38.6 109.5 122.2 128.5l61.6 14.3c63.6 14.9 91.6 37.1 91.6 75.1 0 44.1-43.5 75.2-102.5 75.2-60.6 0-104.5-27.2-112.8-70.5H111c7.2 79.9 75.6 130.4 179.1 130.4C402.3 751 471 695.2 471 605.3c0-70.2-38.6-108.5-132.4-129.9zM841 729a36 36 0 1072 0 36 36 0 10-72 0zM653 457.8h-51.4V396c0-4.4-3.6-8-8-8h-54.7c-4.4 0-8 3.6-8 8v61.8H495c-4.4 0-8 3.6-8 8v42.3c0 4.4 3.6 8 8 8h35.9v147.5c0 56.2 27.4 79.4 93.1 79.4 11.7 0 23.6-1.2 33.8-3.1 1.9-.3 3.2-2 3.2-3.9v-49.3c0-2.2-1.8-4-4-4h-.4c-4.9.5-6.2.6-8.3.8-4.1.3-7.8.5-12.6.5-24.1 0-34.1-10.3-34.1-35.6V516.1H653c4.4 0 8-3.6 8-8v-42.3c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/field-time.js b/src/blrec/data/webapp/assets/outline/field-time.js new file mode 100644 index 0000000..d2fbf9e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/field-time.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'field-time', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M945 412H689c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h256c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM811 548H689c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h122c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM477.3 322.5H434c-6.2 0-11.2 5-11.2 11.2v248c0 3.6 1.7 6.9 4.6 9l148.9 108.6c5 3.6 12 2.6 15.6-2.4l25.7-35.1v-.1c3.6-5 2.5-12-2.5-15.6l-126.7-91.6V333.7c.1-6.2-5-11.2-11.1-11.2z" /><path d="M804.8 673.9H747c-5.6 0-10.9 2.9-13.9 7.7a321 321 0 01-44.5 55.7 317.17 317.17 0 01-101.3 68.3c-39.3 16.6-81 25-124 25-43.1 0-84.8-8.4-124-25-37.9-16-72-39-101.3-68.3s-52.3-63.4-68.3-101.3c-16.6-39.2-25-80.9-25-124 0-43.1 8.4-84.7 25-124 16-37.9 39-72 68.3-101.3 29.3-29.3 63.4-52.3 101.3-68.3 39.2-16.6 81-25 124-25 43.1 0 84.8 8.4 124 25 37.9 16 72 39 101.3 68.3a321 321 0 0144.5 55.7c3 4.8 8.3 7.7 13.9 7.7h57.8c6.9 0 11.3-7.2 8.2-13.3-65.2-129.7-197.4-214-345-215.7-216.1-2.7-395.6 174.2-396 390.1C71.6 727.5 246.9 903 463.2 903c149.5 0 283.9-84.6 349.8-215.8a9.18 9.18 0 00-8.2-13.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/field-time.svg b/src/blrec/data/webapp/assets/outline/field-time.svg new file mode 100644 index 0000000..c3c2592 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/field-time.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M945 412H689c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h256c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM811 548H689c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h122c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM477.3 322.5H434c-6.2 0-11.2 5-11.2 11.2v248c0 3.6 1.7 6.9 4.6 9l148.9 108.6c5 3.6 12 2.6 15.6-2.4l25.7-35.1v-.1c3.6-5 2.5-12-2.5-15.6l-126.7-91.6V333.7c.1-6.2-5-11.2-11.1-11.2z" /><path d="M804.8 673.9H747c-5.6 0-10.9 2.9-13.9 7.7a321 321 0 01-44.5 55.7 317.17 317.17 0 01-101.3 68.3c-39.3 16.6-81 25-124 25-43.1 0-84.8-8.4-124-25-37.9-16-72-39-101.3-68.3s-52.3-63.4-68.3-101.3c-16.6-39.2-25-80.9-25-124 0-43.1 8.4-84.7 25-124 16-37.9 39-72 68.3-101.3 29.3-29.3 63.4-52.3 101.3-68.3 39.2-16.6 81-25 124-25 43.1 0 84.8 8.4 124 25 37.9 16 72 39 101.3 68.3a321 321 0 0144.5 55.7c3 4.8 8.3 7.7 13.9 7.7h57.8c6.9 0 11.3-7.2 8.2-13.3-65.2-129.7-197.4-214-345-215.7-216.1-2.7-395.6 174.2-396 390.1C71.6 727.5 246.9 903 463.2 903c149.5 0 283.9-84.6 349.8-215.8a9.18 9.18 0 00-8.2-13.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-add.js b/src/blrec/data/webapp/assets/outline/file-add.js new file mode 100644 index 0000000..26641ef --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-add.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-add', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM544 472c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V472z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-add.svg b/src/blrec/data/webapp/assets/outline/file-add.svg new file mode 100644 index 0000000..bb3ab3c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-add.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM544 472c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V472z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-done.js b/src/blrec/data/webapp/assets/outline/file-done.js new file mode 100644 index 0000000..6fab248 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-done.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-done', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm376 116c-119.3 0-216 96.7-216 216s96.7 216 216 216 216-96.7 216-216-96.7-216-216-216zm107.5 323.5C750.8 868.2 712.6 884 672 884s-78.8-15.8-107.5-44.5C535.8 810.8 520 772.6 520 732s15.8-78.8 44.5-107.5C593.2 595.8 631.4 580 672 580s78.8 15.8 107.5 44.5C808.2 653.2 824 691.4 824 732s-15.8 78.8-44.5 107.5zM761 656h-44.3c-2.6 0-5 1.2-6.5 3.3l-63.5 87.8-23.1-31.9a7.92 7.92 0 00-6.5-3.3H573c-6.5 0-10.3 7.4-6.5 12.7l73.8 102.1c3.2 4.4 9.7 4.4 12.9 0l114.2-158c3.9-5.3.1-12.7-6.4-12.7zM440 852H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-done.svg b/src/blrec/data/webapp/assets/outline/file-done.svg new file mode 100644 index 0000000..6feb823 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-done.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm376 116c-119.3 0-216 96.7-216 216s96.7 216 216 216 216-96.7 216-216-96.7-216-216-216zm107.5 323.5C750.8 868.2 712.6 884 672 884s-78.8-15.8-107.5-44.5C535.8 810.8 520 772.6 520 732s15.8-78.8 44.5-107.5C593.2 595.8 631.4 580 672 580s78.8 15.8 107.5 44.5C808.2 653.2 824 691.4 824 732s-15.8 78.8-44.5 107.5zM761 656h-44.3c-2.6 0-5 1.2-6.5 3.3l-63.5 87.8-23.1-31.9a7.92 7.92 0 00-6.5-3.3H573c-6.5 0-10.3 7.4-6.5 12.7l73.8 102.1c3.2 4.4 9.7 4.4 12.9 0l114.2-158c3.9-5.3.1-12.7-6.4-12.7zM440 852H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-excel.js b/src/blrec/data/webapp/assets/outline/file-excel.js new file mode 100644 index 0000000..fa08347 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-excel.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-excel', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM514.1 580.1l-61.8-102.4c-2.2-3.6-6.1-5.8-10.3-5.8h-38.4c-2.3 0-4.5.6-6.4 1.9-5.6 3.5-7.3 10.9-3.7 16.6l82.3 130.4-83.4 132.8a12.04 12.04 0 0010.2 18.4h34.5c4.2 0 8-2.2 10.2-5.7L510 664.8l62.3 101.4c2.2 3.6 6.1 5.7 10.2 5.7H620c2.3 0 4.5-.7 6.5-1.9 5.6-3.6 7.2-11 3.6-16.6l-84-130.4 85.3-132.5a12.04 12.04 0 00-10.1-18.5h-35.7c-4.2 0-8.1 2.2-10.3 5.8l-61.2 102.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-excel.svg b/src/blrec/data/webapp/assets/outline/file-excel.svg new file mode 100644 index 0000000..a6ee25c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-excel.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM514.1 580.1l-61.8-102.4c-2.2-3.6-6.1-5.8-10.3-5.8h-38.4c-2.3 0-4.5.6-6.4 1.9-5.6 3.5-7.3 10.9-3.7 16.6l82.3 130.4-83.4 132.8a12.04 12.04 0 0010.2 18.4h34.5c4.2 0 8-2.2 10.2-5.7L510 664.8l62.3 101.4c2.2 3.6 6.1 5.7 10.2 5.7H620c2.3 0 4.5-.7 6.5-1.9 5.6-3.6 7.2-11 3.6-16.6l-84-130.4 85.3-132.5a12.04 12.04 0 00-10.1-18.5h-35.7c-4.2 0-8.1 2.2-10.3 5.8l-61.2 102.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-exclamation.js b/src/blrec/data/webapp/assets/outline/file-exclamation.js new file mode 100644 index 0000000..4da99cb --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-exclamation.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-exclamation', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM472 744a40 40 0 1080 0 40 40 0 10-80 0zm16-104h48c4.4 0 8-3.6 8-8V448c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-exclamation.svg b/src/blrec/data/webapp/assets/outline/file-exclamation.svg new file mode 100644 index 0000000..28b8a02 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-exclamation.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM472 744a40 40 0 1080 0 40 40 0 10-80 0zm16-104h48c4.4 0 8-3.6 8-8V448c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-gif.js b/src/blrec/data/webapp/assets/outline/file-gif.js new file mode 100644 index 0000000..ccdea1e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-gif.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-gif', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M551.5 490.5H521c-4.6 0-8.4 3.7-8.4 8.4V720c0 4.6 3.7 8.4 8.4 8.4h30.5c4.6 0 8.4-3.7 8.4-8.4V498.9c-.1-4.6-3.8-8.4-8.4-8.4zM477.3 600h-88.1c-4.6 0-8.4 3.7-8.4 8.4v23.8c0 4.6 3.7 8.4 8.4 8.4h47.6v.7c-.6 29.9-23 49.8-56.5 49.8-39.2 0-63.6-30.7-63.6-81.4 0-50.1 23.9-80.6 62.3-80.6 28.1 0 47.5 13.5 55.4 38.3l.9 2.8h49.2l-.7-4.6C475.9 515.9 434.7 484 379 484c-68.8 0-113 49.4-113 125.9 0 77.5 43.7 126.1 113.6 126.1 64.4 0 106-40.3 106-102.9v-24.8c0-4.6-3.7-8.3-8.3-8.3z" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" /><path d="M608.2 727.8h32.3c4.6 0 8.4-3.7 8.4-8.4v-84.8h87.8c4.6 0 8.4-3.7 8.4-8.4v-25.5c0-4.6-3.7-8.4-8.4-8.4h-87.8v-58.9h96.8c4.6 0 8.4-3.7 8.4-8.4v-26.8c0-4.6-3.7-8.4-8.4-8.4H608.2c-4.6 0-8.4 3.7-8.4 8.4v221.1c0 4.8 3.8 8.5 8.4 8.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-gif.svg b/src/blrec/data/webapp/assets/outline/file-gif.svg new file mode 100644 index 0000000..802b69d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-gif.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M551.5 490.5H521c-4.6 0-8.4 3.7-8.4 8.4V720c0 4.6 3.7 8.4 8.4 8.4h30.5c4.6 0 8.4-3.7 8.4-8.4V498.9c-.1-4.6-3.8-8.4-8.4-8.4zM477.3 600h-88.1c-4.6 0-8.4 3.7-8.4 8.4v23.8c0 4.6 3.7 8.4 8.4 8.4h47.6v.7c-.6 29.9-23 49.8-56.5 49.8-39.2 0-63.6-30.7-63.6-81.4 0-50.1 23.9-80.6 62.3-80.6 28.1 0 47.5 13.5 55.4 38.3l.9 2.8h49.2l-.7-4.6C475.9 515.9 434.7 484 379 484c-68.8 0-113 49.4-113 125.9 0 77.5 43.7 126.1 113.6 126.1 64.4 0 106-40.3 106-102.9v-24.8c0-4.6-3.7-8.3-8.3-8.3z" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" /><path d="M608.2 727.8h32.3c4.6 0 8.4-3.7 8.4-8.4v-84.8h87.8c4.6 0 8.4-3.7 8.4-8.4v-25.5c0-4.6-3.7-8.4-8.4-8.4h-87.8v-58.9h96.8c4.6 0 8.4-3.7 8.4-8.4v-26.8c0-4.6-3.7-8.4-8.4-8.4H608.2c-4.6 0-8.4 3.7-8.4 8.4v221.1c0 4.8 3.8 8.5 8.4 8.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-image.js b/src/blrec/data/webapp/assets/outline/file-image.js new file mode 100644 index 0000000..fe86c12 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-image.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-image', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 00-12.6 0l-99.8 127.2a7.98 7.98 0 006.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 00-12.7 0zM360 442a40 40 0 1080 0 40 40 0 10-80 0zm494.6-153.4L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-image.svg b/src/blrec/data/webapp/assets/outline/file-image.svg new file mode 100644 index 0000000..f89ed2f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-image.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 00-12.6 0l-99.8 127.2a7.98 7.98 0 006.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 00-12.7 0zM360 442a40 40 0 1080 0 40 40 0 10-80 0zm494.6-153.4L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-jpg.js b/src/blrec/data/webapp/assets/outline/file-jpg.js new file mode 100644 index 0000000..546295e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-jpg.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-jpg', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M874.6 301.8L596.8 21.3c-4.5-4.5-9.4-8.3-14.7-11.5-1.4-.8-2.8-1.6-4.3-2.3-.9-.5-1.9-.9-2.8-1.3-9-4-18.9-6.2-29-6.2H201c-39.8 0-73 32.2-73 72v880c0 39.8 33.2 72 73 72h623c39.8 0 71-32.2 71-72V352.5c0-19-7-37.2-20.4-50.7zM583 110.4L783.8 312H583V110.4zM823 952H200V72h311v240c0 39.8 33.2 72 73 72h239v568zM350 696.5c0 24.2-7.5 31.4-21.9 31.4-9 0-18.4-5.8-24.8-18.5L272.9 732c13.4 22.9 32.3 34.2 61.3 34.2 41.6 0 60.8-29.9 60.8-66.2V577h-45v119.5zM501.3 577H437v186h44v-62h21.6c39.1 0 73.1-19.6 73.1-63.6 0-45.8-33.5-60.4-74.4-60.4zm-.8 89H481v-53h18.2c21.5 0 33.4 6.2 33.4 24.9 0 18.1-10.5 28.1-32.1 28.1zm182.5-9v36h30v30.1c-4 2.9-11 4.7-17.7 4.7-34.3 0-50.7-21.4-50.7-58.2 0-36.1 19.7-57.4 47.1-57.4 15.3 0 25 6.2 34 14.4l23.7-28.3c-12.7-12.8-32.1-24.2-59.2-24.2-49.6 0-91.1 35.3-91.1 97 0 62.7 40 95.1 91.5 95.1 25.9 0 49.2-10.2 61.5-22.6V657H683z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-jpg.svg b/src/blrec/data/webapp/assets/outline/file-jpg.svg new file mode 100644 index 0000000..3a25893 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-jpg.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M874.6 301.8L596.8 21.3c-4.5-4.5-9.4-8.3-14.7-11.5-1.4-.8-2.8-1.6-4.3-2.3-.9-.5-1.9-.9-2.8-1.3-9-4-18.9-6.2-29-6.2H201c-39.8 0-73 32.2-73 72v880c0 39.8 33.2 72 73 72h623c39.8 0 71-32.2 71-72V352.5c0-19-7-37.2-20.4-50.7zM583 110.4L783.8 312H583V110.4zM823 952H200V72h311v240c0 39.8 33.2 72 73 72h239v568zM350 696.5c0 24.2-7.5 31.4-21.9 31.4-9 0-18.4-5.8-24.8-18.5L272.9 732c13.4 22.9 32.3 34.2 61.3 34.2 41.6 0 60.8-29.9 60.8-66.2V577h-45v119.5zM501.3 577H437v186h44v-62h21.6c39.1 0 73.1-19.6 73.1-63.6 0-45.8-33.5-60.4-74.4-60.4zm-.8 89H481v-53h18.2c21.5 0 33.4 6.2 33.4 24.9 0 18.1-10.5 28.1-32.1 28.1zm182.5-9v36h30v30.1c-4 2.9-11 4.7-17.7 4.7-34.3 0-50.7-21.4-50.7-58.2 0-36.1 19.7-57.4 47.1-57.4 15.3 0 25 6.2 34 14.4l23.7-28.3c-12.7-12.8-32.1-24.2-59.2-24.2-49.6 0-91.1 35.3-91.1 97 0 62.7 40 95.1 91.5 95.1 25.9 0 49.2-10.2 61.5-22.6V657H683z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-markdown.js b/src/blrec/data/webapp/assets/outline/file-markdown.js new file mode 100644 index 0000000..060c3a9 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-markdown.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-markdown', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM429 481.2c-1.9-4.4-6.2-7.2-11-7.2h-35c-6.6 0-12 5.4-12 12v272c0 6.6 5.4 12 12 12h27.1c6.6 0 12-5.4 12-12V582.1l66.8 150.2a12 12 0 0011 7.1H524c4.7 0 9-2.8 11-7.1l66.8-150.6V758c0 6.6 5.4 12 12 12H641c6.6 0 12-5.4 12-12V486c0-6.6-5.4-12-12-12h-34.7c-4.8 0-9.1 2.8-11 7.2l-83.1 191-83.2-191z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-markdown.svg b/src/blrec/data/webapp/assets/outline/file-markdown.svg new file mode 100644 index 0000000..c4cd589 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-markdown.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM429 481.2c-1.9-4.4-6.2-7.2-11-7.2h-35c-6.6 0-12 5.4-12 12v272c0 6.6 5.4 12 12 12h27.1c6.6 0 12-5.4 12-12V582.1l66.8 150.2a12 12 0 0011 7.1H524c4.7 0 9-2.8 11-7.1l66.8-150.6V758c0 6.6 5.4 12 12 12H641c6.6 0 12-5.4 12-12V486c0-6.6-5.4-12-12-12h-34.7c-4.8 0-9.1 2.8-11 7.2l-83.1 191-83.2-191z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-pdf.js b/src/blrec/data/webapp/assets/outline/file-pdf.js new file mode 100644 index 0000000..8d154af --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-pdf.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-pdf', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M531.3 574.4l.3-1.4c5.8-23.9 13.1-53.7 7.4-80.7-3.8-21.3-19.5-29.6-32.9-30.2-15.8-.7-29.9 8.3-33.4 21.4-6.6 24-.7 56.8 10.1 98.6-13.6 32.4-35.3 79.5-51.2 107.5-29.6 15.3-69.3 38.9-75.2 68.7-1.2 5.5.2 12.5 3.5 18.8 3.7 7 9.6 12.4 16.5 15 3 1.1 6.6 2 10.8 2 17.6 0 46.1-14.2 84.1-79.4 5.8-1.9 11.8-3.9 17.6-5.9 27.2-9.2 55.4-18.8 80.9-23.1 28.2 15.1 60.3 24.8 82.1 24.8 21.6 0 30.1-12.8 33.3-20.5 5.6-13.5 2.9-30.5-6.2-39.6-13.2-13-45.3-16.4-95.3-10.2-24.6-15-40.7-35.4-52.4-65.8zM421.6 726.3c-13.9 20.2-24.4 30.3-30.1 34.7 6.7-12.3 19.8-25.3 30.1-34.7zm87.6-235.5c5.2 8.9 4.5 35.8.5 49.4-4.9-19.9-5.6-48.1-2.7-51.4.8.1 1.5.7 2.2 2zm-1.6 120.5c10.7 18.5 24.2 34.4 39.1 46.2-21.6 4.9-41.3 13-58.9 20.2-4.2 1.7-8.3 3.4-12.3 5 13.3-24.1 24.4-51.4 32.1-71.4zm155.6 65.5c.1.2.2.5-.4.9h-.2l-.2.3c-.8.5-9 5.3-44.3-8.6 40.6-1.9 45 7.3 45.1 7.4zm191.4-388.2L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-pdf.svg b/src/blrec/data/webapp/assets/outline/file-pdf.svg new file mode 100644 index 0000000..f0e6686 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-pdf.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M531.3 574.4l.3-1.4c5.8-23.9 13.1-53.7 7.4-80.7-3.8-21.3-19.5-29.6-32.9-30.2-15.8-.7-29.9 8.3-33.4 21.4-6.6 24-.7 56.8 10.1 98.6-13.6 32.4-35.3 79.5-51.2 107.5-29.6 15.3-69.3 38.9-75.2 68.7-1.2 5.5.2 12.5 3.5 18.8 3.7 7 9.6 12.4 16.5 15 3 1.1 6.6 2 10.8 2 17.6 0 46.1-14.2 84.1-79.4 5.8-1.9 11.8-3.9 17.6-5.9 27.2-9.2 55.4-18.8 80.9-23.1 28.2 15.1 60.3 24.8 82.1 24.8 21.6 0 30.1-12.8 33.3-20.5 5.6-13.5 2.9-30.5-6.2-39.6-13.2-13-45.3-16.4-95.3-10.2-24.6-15-40.7-35.4-52.4-65.8zM421.6 726.3c-13.9 20.2-24.4 30.3-30.1 34.7 6.7-12.3 19.8-25.3 30.1-34.7zm87.6-235.5c5.2 8.9 4.5 35.8.5 49.4-4.9-19.9-5.6-48.1-2.7-51.4.8.1 1.5.7 2.2 2zm-1.6 120.5c10.7 18.5 24.2 34.4 39.1 46.2-21.6 4.9-41.3 13-58.9 20.2-4.2 1.7-8.3 3.4-12.3 5 13.3-24.1 24.4-51.4 32.1-71.4zm155.6 65.5c.1.2.2.5-.4.9h-.2l-.2.3c-.8.5-9 5.3-44.3-8.6 40.6-1.9 45 7.3 45.1 7.4zm191.4-388.2L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-ppt.js b/src/blrec/data/webapp/assets/outline/file-ppt.js new file mode 100644 index 0000000..217bca1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-ppt.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-ppt', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M424 476c-4.4 0-8 3.6-8 8v276c0 4.4 3.6 8 8 8h32.5c4.4 0 8-3.6 8-8v-95.5h63.3c59.4 0 96.2-38.9 96.2-94.1 0-54.5-36.3-94.3-96-94.3H424zm150.6 94.3c0 43.4-26.5 54.3-71.2 54.3h-38.9V516.2h56.2c33.8 0 53.9 19.7 53.9 54.1zm280-281.7L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-ppt.svg b/src/blrec/data/webapp/assets/outline/file-ppt.svg new file mode 100644 index 0000000..ce1bbb5 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-ppt.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M424 476c-4.4 0-8 3.6-8 8v276c0 4.4 3.6 8 8 8h32.5c4.4 0 8-3.6 8-8v-95.5h63.3c59.4 0 96.2-38.9 96.2-94.1 0-54.5-36.3-94.3-96-94.3H424zm150.6 94.3c0 43.4-26.5 54.3-71.2 54.3h-38.9V516.2h56.2c33.8 0 53.9 19.7 53.9 54.1zm280-281.7L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-protect.js b/src/blrec/data/webapp/assets/outline/file-protect.js new file mode 100644 index 0000000..d488787 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-protect.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-protect', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M644.7 669.2a7.92 7.92 0 00-6.5-3.3H594c-6.5 0-10.3 7.4-6.5 12.7l73.8 102.1c3.2 4.4 9.7 4.4 12.9 0l114.2-158c3.8-5.3 0-12.7-6.5-12.7h-44.3c-2.6 0-5 1.2-6.5 3.3l-63.5 87.8-22.9-31.9zM688 306v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm184 458H208V148h560v296c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h312c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm402.6-320.8l-192-66.7c-.9-.3-1.7-.4-2.6-.4s-1.8.1-2.6.4l-192 66.7a7.96 7.96 0 00-5.4 7.5v251.1c0 2.5 1.1 4.8 3.1 6.3l192 150.2c1.4 1.1 3.2 1.7 4.9 1.7s3.5-.6 4.9-1.7l192-150.2c1.9-1.5 3.1-3.8 3.1-6.3V538.7c0-3.4-2.2-6.4-5.4-7.5zM826 763.7L688 871.6 550 763.7V577l138-48 138 48v186.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-protect.svg b/src/blrec/data/webapp/assets/outline/file-protect.svg new file mode 100644 index 0000000..9f80da7 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-protect.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M644.7 669.2a7.92 7.92 0 00-6.5-3.3H594c-6.5 0-10.3 7.4-6.5 12.7l73.8 102.1c3.2 4.4 9.7 4.4 12.9 0l114.2-158c3.8-5.3 0-12.7-6.5-12.7h-44.3c-2.6 0-5 1.2-6.5 3.3l-63.5 87.8-22.9-31.9zM688 306v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm184 458H208V148h560v296c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h312c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm402.6-320.8l-192-66.7c-.9-.3-1.7-.4-2.6-.4s-1.8.1-2.6.4l-192 66.7a7.96 7.96 0 00-5.4 7.5v251.1c0 2.5 1.1 4.8 3.1 6.3l192 150.2c1.4 1.1 3.2 1.7 4.9 1.7s3.5-.6 4.9-1.7l192-150.2c1.9-1.5 3.1-3.8 3.1-6.3V538.7c0-3.4-2.2-6.4-5.4-7.5zM826 763.7L688 871.6 550 763.7V577l138-48 138 48v186.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-search.js b/src/blrec/data/webapp/assets/outline/file-search.js new file mode 100644 index 0000000..e823b11 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-search.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-search', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm144 452H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm445.7 51.5l-93.3-93.3C814.7 780.7 828 743.9 828 704c0-97.2-78.8-176-176-176s-176 78.8-176 176 78.8 176 176 176c35.8 0 69-10.7 96.8-29l94.7 94.7c1.6 1.6 3.6 2.3 5.6 2.3s4.1-.8 5.6-2.3l31-31a7.9 7.9 0 000-11.2zM652 816c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-search.svg b/src/blrec/data/webapp/assets/outline/file-search.svg new file mode 100644 index 0000000..9a8e73c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-search.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm144 452H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm445.7 51.5l-93.3-93.3C814.7 780.7 828 743.9 828 704c0-97.2-78.8-176-176-176s-176 78.8-176 176 78.8 176 176 176c35.8 0 69-10.7 96.8-29l94.7 94.7c1.6 1.6 3.6 2.3 5.6 2.3s4.1-.8 5.6-2.3l31-31a7.9 7.9 0 000-11.2zM652 816c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-sync.js b/src/blrec/data/webapp/assets/outline/file-sync.js new file mode 100644 index 0000000..12410fe --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-sync.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-sync', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M296 256c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm192 200v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8zm-48 396H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm104.1-115.6c1.8-34.5 16.2-66.8 40.8-91.4 26.2-26.2 62-41 99.1-41 37.4 0 72.6 14.6 99.1 41 3.2 3.2 6.3 6.6 9.2 10.1L769.2 673a8 8 0 003 14.1l93.3 22.5c5 1.2 9.8-2.6 9.9-7.7l.6-95.4a8 8 0 00-12.9-6.4l-20.3 15.8C805.4 569.6 748.1 540 684 540c-109.9 0-199.6 86.9-204 195.7-.2 4.5 3.5 8.3 8 8.3h48.1c4.3 0 7.8-3.3 8-7.6zM880 744h-48.1c-4.3 0-7.8 3.3-8 7.6-1.8 34.5-16.2 66.8-40.8 91.4-26.2 26.2-62 41-99.1 41-37.4 0-72.6-14.6-99.1-41-3.2-3.2-6.3-6.6-9.2-10.1l23.1-17.9a8 8 0 00-3-14.1l-93.3-22.5c-5-1.2-9.8 2.6-9.9 7.7l-.6 95.4a8 8 0 0012.9 6.4l20.3-15.8C562.6 918.4 619.9 948 684 948c109.9 0 199.6-86.9 204-195.7.2-4.5-3.5-8.3-8-8.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-sync.svg b/src/blrec/data/webapp/assets/outline/file-sync.svg new file mode 100644 index 0000000..6764da2 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-sync.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M296 256c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm192 200v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8zm-48 396H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm104.1-115.6c1.8-34.5 16.2-66.8 40.8-91.4 26.2-26.2 62-41 99.1-41 37.4 0 72.6 14.6 99.1 41 3.2 3.2 6.3 6.6 9.2 10.1L769.2 673a8 8 0 003 14.1l93.3 22.5c5 1.2 9.8-2.6 9.9-7.7l.6-95.4a8 8 0 00-12.9-6.4l-20.3 15.8C805.4 569.6 748.1 540 684 540c-109.9 0-199.6 86.9-204 195.7-.2 4.5 3.5 8.3 8 8.3h48.1c4.3 0 7.8-3.3 8-7.6zM880 744h-48.1c-4.3 0-7.8 3.3-8 7.6-1.8 34.5-16.2 66.8-40.8 91.4-26.2 26.2-62 41-99.1 41-37.4 0-72.6-14.6-99.1-41-3.2-3.2-6.3-6.6-9.2-10.1l23.1-17.9a8 8 0 00-3-14.1l-93.3-22.5c-5-1.2-9.8 2.6-9.9 7.7l-.6 95.4a8 8 0 0012.9 6.4l20.3-15.8C562.6 918.4 619.9 948 684 948c109.9 0 199.6-86.9 204-195.7.2-4.5-3.5-8.3-8-8.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-text.js b/src/blrec/data/webapp/assets/outline/file-text.js new file mode 100644 index 0000000..28785fe --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-text.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-text', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-text.svg b/src/blrec/data/webapp/assets/outline/file-text.svg new file mode 100644 index 0000000..75fe2b0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-text.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-unknown.js b/src/blrec/data/webapp/assets/outline/file-unknown.js new file mode 100644 index 0000000..7d3e944 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-unknown.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-unknown', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.6-9.4-22.6zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM402 549c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103zm78 195a32 32 0 1064 0 32 32 0 10-64 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-unknown.svg b/src/blrec/data/webapp/assets/outline/file-unknown.svg new file mode 100644 index 0000000..87827ab --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-unknown.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.6-9.4-22.6zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM402 549c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103zm78 195a32 32 0 1064 0 32 32 0 10-64 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-word.js b/src/blrec/data/webapp/assets/outline/file-word.js new file mode 100644 index 0000000..8ca2c7e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-word.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-word', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM528.1 472h-32.2c-5.5 0-10.3 3.7-11.6 9.1L434.6 680l-46.1-198.7c-1.3-5.4-6.1-9.3-11.7-9.3h-35.4a12.02 12.02 0 00-11.6 15.1l74.2 276c1.4 5.2 6.2 8.9 11.6 8.9h32c5.4 0 10.2-3.6 11.6-8.9l52.8-197 52.8 197c1.4 5.2 6.2 8.9 11.6 8.9h31.8c5.4 0 10.2-3.6 11.6-8.9l74.4-276a12.04 12.04 0 00-11.6-15.1H647c-5.6 0-10.4 3.9-11.7 9.3l-45.8 199.1-49.8-199.3c-1.3-5.4-6.1-9.1-11.6-9.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-word.svg b/src/blrec/data/webapp/assets/outline/file-word.svg new file mode 100644 index 0000000..19c4ded --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-word.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM528.1 472h-32.2c-5.5 0-10.3 3.7-11.6 9.1L434.6 680l-46.1-198.7c-1.3-5.4-6.1-9.3-11.7-9.3h-35.4a12.02 12.02 0 00-11.6 15.1l74.2 276c1.4 5.2 6.2 8.9 11.6 8.9h32c5.4 0 10.2-3.6 11.6-8.9l52.8-197 52.8 197c1.4 5.2 6.2 8.9 11.6 8.9h31.8c5.4 0 10.2-3.6 11.6-8.9l74.4-276a12.04 12.04 0 00-11.6-15.1H647c-5.6 0-10.4 3.9-11.7 9.3l-45.8 199.1-49.8-199.3c-1.3-5.4-6.1-9.1-11.6-9.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-zip.js b/src/blrec/data/webapp/assets/outline/file-zip.js new file mode 100644 index 0000000..65d08fb --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-zip.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-zip', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M296 392h64v64h-64zm0 190v160h128V582h-64v-62h-64v62zm80 48v64h-32v-64h32zm-16-302h64v64h-64zm-64-64h64v64h-64zm64 192h64v64h-64zm0-256h64v64h-64zm494.6 88.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h64v64h64v-64h174v216a42 42 0 0042 42h216v494z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file-zip.svg b/src/blrec/data/webapp/assets/outline/file-zip.svg new file mode 100644 index 0000000..fb27db9 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file-zip.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M296 392h64v64h-64zm0 190v160h128V582h-64v-62h-64v62zm80 48v64h-32v-64h32zm-16-302h64v64h-64zm-64-64h64v64h-64zm64 192h64v64h-64zm0-256h64v64h-64zm494.6 88.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h64v64h64v-64h174v216a42 42 0 0042 42h216v494z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file.js b/src/blrec/data/webapp/assets/outline/file.js new file mode 100644 index 0000000..07de022 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/file.svg b/src/blrec/data/webapp/assets/outline/file.svg new file mode 100644 index 0000000..6623d9f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/file.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/filter.js b/src/blrec/data/webapp/assets/outline/filter.js new file mode 100644 index 0000000..199b4db --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/filter.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'filter', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 597.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V597.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.4 798H420.6V642h182.9v156zm9.6-236.6l-9.5 16.6h-183l-9.5-16.6L212.7 226h598.6L613 561.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/filter.svg b/src/blrec/data/webapp/assets/outline/filter.svg new file mode 100644 index 0000000..28edea1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/filter.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 597.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V597.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.4 798H420.6V642h182.9v156zm9.6-236.6l-9.5 16.6h-183l-9.5-16.6L212.7 226h598.6L613 561.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/fire.js b/src/blrec/data/webapp/assets/outline/fire.js new file mode 100644 index 0000000..d6f374b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/fire.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'fire', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M834.1 469.2A347.49 347.49 0 00751.2 354l-29.1-26.7a8.09 8.09 0 00-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 01-47.5 46.1 352.6 352.6 0 00-100.3 121.5A347.75 347.75 0 00160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0075.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 00760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0027.7-136c0-48.8-10-96.2-29.9-140.9zM713 808.5c-53.7 53.2-125 82.4-201 82.4s-147.3-29.2-201-82.4c-53.5-53.1-83-123.5-83-198.4 0-43.5 9.8-85.2 29.1-124 18.8-37.9 46.8-71.8 80.8-97.9a349.6 349.6 0 0058.6-56.8c25-30.5 44.6-64.5 58.2-101a240 240 0 0012.1-46.5c24.1 22.2 44.3 49 61.2 80.4 33.4 62.6 48.8 118.3 45.8 165.7a74.01 74.01 0 0024.4 59.8 73.36 73.36 0 0053.4 18.8c19.7-1 37.8-9.7 51-24.4 13.3-14.9 24.8-30.1 34.4-45.6 14 17.9 25.7 37.4 35 58.4 15.9 35.8 24 73.9 24 113.1 0 74.9-29.5 145.4-83 198.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/fire.svg b/src/blrec/data/webapp/assets/outline/fire.svg new file mode 100644 index 0000000..17d488a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/fire.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M834.1 469.2A347.49 347.49 0 00751.2 354l-29.1-26.7a8.09 8.09 0 00-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 01-47.5 46.1 352.6 352.6 0 00-100.3 121.5A347.75 347.75 0 00160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0075.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 00760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0027.7-136c0-48.8-10-96.2-29.9-140.9zM713 808.5c-53.7 53.2-125 82.4-201 82.4s-147.3-29.2-201-82.4c-53.5-53.1-83-123.5-83-198.4 0-43.5 9.8-85.2 29.1-124 18.8-37.9 46.8-71.8 80.8-97.9a349.6 349.6 0 0058.6-56.8c25-30.5 44.6-64.5 58.2-101a240 240 0 0012.1-46.5c24.1 22.2 44.3 49 61.2 80.4 33.4 62.6 48.8 118.3 45.8 165.7a74.01 74.01 0 0024.4 59.8 73.36 73.36 0 0053.4 18.8c19.7-1 37.8-9.7 51-24.4 13.3-14.9 24.8-30.1 34.4-45.6 14 17.9 25.7 37.4 35 58.4 15.9 35.8 24 73.9 24 113.1 0 74.9-29.5 145.4-83 198.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/flag.js b/src/blrec/data/webapp/assets/outline/flag.js new file mode 100644 index 0000000..529ea4d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/flag.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'flag', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32zM184 568V232h368v336H184zm656 145H504v-73h112c4.4 0 8-3.6 8-8V377h216v336z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/flag.svg b/src/blrec/data/webapp/assets/outline/flag.svg new file mode 100644 index 0000000..5569655 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/flag.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32zM184 568V232h368v336H184zm656 145H504v-73h112c4.4 0 8-3.6 8-8V377h216v336z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/folder-add.js b/src/blrec/data/webapp/assets/outline/folder-add.js new file mode 100644 index 0000000..4b940af --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/folder-add.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'folder-add', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M484 443.1V528h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H484v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V584h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H540v-84.9c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1zm396-144.7H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/folder-add.svg b/src/blrec/data/webapp/assets/outline/folder-add.svg new file mode 100644 index 0000000..34aa2fd --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/folder-add.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M484 443.1V528h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H484v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V584h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H540v-84.9c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1zm396-144.7H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/folder-open.js b/src/blrec/data/webapp/assets/outline/folder-open.js new file mode 100644 index 0000000..71a4a2c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/folder-open.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'folder-open', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/folder-open.svg b/src/blrec/data/webapp/assets/outline/folder-open.svg new file mode 100644 index 0000000..3a0b867 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/folder-open.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/folder-view.js b/src/blrec/data/webapp/assets/outline/folder-view.js new file mode 100644 index 0000000..aa70b89 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/folder-view.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'folder-view', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M309.1 554.3a42.92 42.92 0 000 36.4C353.3 684 421.6 732 512.5 732s159.2-48.1 203.4-141.3c5.4-11.5 5.4-24.8.1-36.3l-.1-.1-.1-.1C671.7 461 603.4 413 512.5 413s-159.2 48.1-203.4 141.3zM512.5 477c62.1 0 107.4 30 141.1 95.5C620 638 574.6 668 512.5 668s-107.4-30-141.1-95.5c33.7-65.5 79-95.5 141.1-95.5z" /><path d="M457 573a56 56 0 10112 0 56 56 0 10-112 0z" /><path d="M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/folder-view.svg b/src/blrec/data/webapp/assets/outline/folder-view.svg new file mode 100644 index 0000000..2cd3f54 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/folder-view.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M309.1 554.3a42.92 42.92 0 000 36.4C353.3 684 421.6 732 512.5 732s159.2-48.1 203.4-141.3c5.4-11.5 5.4-24.8.1-36.3l-.1-.1-.1-.1C671.7 461 603.4 413 512.5 413s-159.2 48.1-203.4 141.3zM512.5 477c62.1 0 107.4 30 141.1 95.5C620 638 574.6 668 512.5 668s-107.4-30-141.1-95.5c33.7-65.5 79-95.5 141.1-95.5z" /><path d="M457 573a56 56 0 10112 0 56 56 0 10-112 0z" /><path d="M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/folder.js b/src/blrec/data/webapp/assets/outline/folder.js new file mode 100644 index 0000000..ad6faa5 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/folder.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'folder', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/folder.svg b/src/blrec/data/webapp/assets/outline/folder.svg new file mode 100644 index 0000000..fd1ed3b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/folder.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/font-colors.js b/src/blrec/data/webapp/assets/outline/font-colors.js new file mode 100644 index 0000000..821e619 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/font-colors.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'font-colors', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8zm-650.3-80h85c4.2 0 8-2.7 9.3-6.8l53.7-166h219.2l53.2 166c1.3 4 5 6.8 9.3 6.8h89.1c1.1 0 2.2-.2 3.2-.5a9.7 9.7 0 006-12.4L573.6 118.6a9.9 9.9 0 00-9.2-6.6H462.1c-4.2 0-7.9 2.6-9.2 6.6L244.5 723.1c-.4 1-.5 2.1-.5 3.2-.1 5.3 4.3 9.7 9.7 9.7zm255.9-516.1h4.1l83.8 263.8H424.9l84.7-263.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/font-colors.svg b/src/blrec/data/webapp/assets/outline/font-colors.svg new file mode 100644 index 0000000..43617ea --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/font-colors.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M904 816H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8zm-650.3-80h85c4.2 0 8-2.7 9.3-6.8l53.7-166h219.2l53.2 166c1.3 4 5 6.8 9.3 6.8h89.1c1.1 0 2.2-.2 3.2-.5a9.7 9.7 0 006-12.4L573.6 118.6a9.9 9.9 0 00-9.2-6.6H462.1c-4.2 0-7.9 2.6-9.2 6.6L244.5 723.1c-.4 1-.5 2.1-.5 3.2-.1 5.3 4.3 9.7 9.7 9.7zm255.9-516.1h4.1l83.8 263.8H424.9l84.7-263.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/font-size.js b/src/blrec/data/webapp/assets/outline/font-size.js new file mode 100644 index 0000000..d11e095 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/font-size.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'font-size', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M920 416H616c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-56h60v320h-46c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h164c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-46V480h60v56c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V424c0-4.4-3.6-8-8-8zM656 296V168c0-4.4-3.6-8-8-8H104c-4.4 0-8 3.6-8 8v128c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-64h168v560h-92c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-92V232h168v64c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/font-size.svg b/src/blrec/data/webapp/assets/outline/font-size.svg new file mode 100644 index 0000000..85f1559 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/font-size.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M920 416H616c-4.4 0-8 3.6-8 8v112c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-56h60v320h-46c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h164c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-46V480h60v56c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V424c0-4.4-3.6-8-8-8zM656 296V168c0-4.4-3.6-8-8-8H104c-4.4 0-8 3.6-8 8v128c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-64h168v560h-92c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-92V232h168v64c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/fork.js b/src/blrec/data/webapp/assets/outline/fork.js new file mode 100644 index 0000000..dd27fae --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/fork.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'fork', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M752 100c-61.8 0-112 50.2-112 112 0 47.7 29.9 88.5 72 104.6v27.6L512 601.4 312 344.2v-27.6c42.1-16.1 72-56.9 72-104.6 0-61.8-50.2-112-112-112s-112 50.2-112 112c0 50.6 33.8 93.5 80 107.3v34.4c0 9.7 3.3 19.3 9.3 27L476 672.3v33.6c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1v-33.6l226.7-291.6c6-7.7 9.3-17.3 9.3-27v-34.4c46.2-13.8 80-56.7 80-107.3 0-61.8-50.2-112-112-112zM224 212a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm336 600a48.01 48.01 0 01-96 0 48.01 48.01 0 0196 0zm192-552a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/fork.svg b/src/blrec/data/webapp/assets/outline/fork.svg new file mode 100644 index 0000000..b90eada --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/fork.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M752 100c-61.8 0-112 50.2-112 112 0 47.7 29.9 88.5 72 104.6v27.6L512 601.4 312 344.2v-27.6c42.1-16.1 72-56.9 72-104.6 0-61.8-50.2-112-112-112s-112 50.2-112 112c0 50.6 33.8 93.5 80 107.3v34.4c0 9.7 3.3 19.3 9.3 27L476 672.3v33.6c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1v-33.6l226.7-291.6c6-7.7 9.3-17.3 9.3-27v-34.4c46.2-13.8 80-56.7 80-107.3 0-61.8-50.2-112-112-112zM224 212a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm336 600a48.01 48.01 0 01-96 0 48.01 48.01 0 0196 0zm192-552a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/form.js b/src/blrec/data/webapp/assets/outline/form.js new file mode 100644 index 0000000..ef07dd2 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/form.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'form', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M904 512h-56c-4.4 0-8 3.6-8 8v320H184V184h320c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V520c0-4.4-3.6-8-8-8z" /><path d="M355.9 534.9L354 653.8c-.1 8.9 7.1 16.2 16 16.2h.4l118-2.9c2-.1 4-.9 5.4-2.3l415.9-415c3.1-3.1 3.1-8.2 0-11.3L785.4 114.3c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-415.8 415a8.3 8.3 0 00-2.3 5.6zm63.5 23.6L779.7 199l45.2 45.1-360.5 359.7-45.7 1.1.7-46.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/form.svg b/src/blrec/data/webapp/assets/outline/form.svg new file mode 100644 index 0000000..9263cad --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/form.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M904 512h-56c-4.4 0-8 3.6-8 8v320H184V184h320c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V520c0-4.4-3.6-8-8-8z" /><path d="M355.9 534.9L354 653.8c-.1 8.9 7.1 16.2 16 16.2h.4l118-2.9c2-.1 4-.9 5.4-2.3l415.9-415c3.1-3.1 3.1-8.2 0-11.3L785.4 114.3c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-415.8 415a8.3 8.3 0 00-2.3 5.6zm63.5 23.6L779.7 199l45.2 45.1-360.5 359.7-45.7 1.1.7-46.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/format-painter.js b/src/blrec/data/webapp/assets/outline/format-painter.js new file mode 100644 index 0000000..32ada5f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/format-painter.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'format-painter', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M840 192h-56v-72c0-13.3-10.7-24-24-24H168c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h592c13.3 0 24-10.7 24-24V256h32v200H465c-22.1 0-40 17.9-40 40v136h-44c-4.4 0-8 3.6-8 8v228c0 .6.1 1.3.2 1.9A83.99 83.99 0 00457 960c46.4 0 84-37.6 84-84 0-2.1-.1-4.1-.2-6.1.1-.6.2-1.2.2-1.9V640c0-4.4-3.6-8-8-8h-44V520h351c22.1 0 40-17.9 40-40V232c0-22.1-17.9-40-40-40zM720 352H208V160h512v192zM477 876c0 11-9 20-20 20s-20-9-20-20V696h40v180z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/format-painter.svg b/src/blrec/data/webapp/assets/outline/format-painter.svg new file mode 100644 index 0000000..e7a941d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/format-painter.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M840 192h-56v-72c0-13.3-10.7-24-24-24H168c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h592c13.3 0 24-10.7 24-24V256h32v200H465c-22.1 0-40 17.9-40 40v136h-44c-4.4 0-8 3.6-8 8v228c0 .6.1 1.3.2 1.9A83.99 83.99 0 00457 960c46.4 0 84-37.6 84-84 0-2.1-.1-4.1-.2-6.1.1-.6.2-1.2.2-1.9V640c0-4.4-3.6-8-8-8h-44V520h351c22.1 0 40-17.9 40-40V232c0-22.1-17.9-40-40-40zM720 352H208V160h512v192zM477 876c0 11-9 20-20 20s-20-9-20-20V696h40v180z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/forward.js b/src/blrec/data/webapp/assets/outline/forward.js new file mode 100644 index 0000000..956913c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/forward.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'forward', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M825.8 498L538.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L825.8 526c8.3-7.2 8.3-20.8 0-28zm-320 0L218.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L505.8 526c4.1-3.6 6.2-8.8 6.2-14 0-5.2-2.1-10.4-6.2-14z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/forward.svg b/src/blrec/data/webapp/assets/outline/forward.svg new file mode 100644 index 0000000..f5184ec --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/forward.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M825.8 498L538.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L825.8 526c8.3-7.2 8.3-20.8 0-28zm-320 0L218.4 249.9c-10.7-9.2-26.4-.9-26.4 14v496.3c0 14.9 15.7 23.2 26.4 14L505.8 526c4.1-3.6 6.2-8.8 6.2-14 0-5.2-2.1-10.4-6.2-14z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/frown.js b/src/blrec/data/webapp/assets/outline/frown.js new file mode 100644 index 0000000..9abcdad --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/frown.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'frown', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M288 421a48 48 0 1096 0 48 48 0 10-96 0zm352 0a48 48 0 1096 0 48 48 0 10-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 01248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 01249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 01775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 01775 775zM512 533c-85.5 0-155.6 67.3-160 151.6a8 8 0 008 8.4h48.1c4.2 0 7.8-3.2 8.1-7.4C420 636.1 461.5 597 512 597s92.1 39.1 95.8 88.6c.3 4.2 3.9 7.4 8.1 7.4H664a8 8 0 008-8.4C667.6 600.3 597.5 533 512 533z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/frown.svg b/src/blrec/data/webapp/assets/outline/frown.svg new file mode 100644 index 0000000..2e0fa39 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/frown.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M288 421a48 48 0 1096 0 48 48 0 10-96 0zm352 0a48 48 0 1096 0 48 48 0 10-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 01248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 01249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 01775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 01775 775zM512 533c-85.5 0-155.6 67.3-160 151.6a8 8 0 008 8.4h48.1c4.2 0 7.8-3.2 8.1-7.4C420 636.1 461.5 597 512 597s92.1 39.1 95.8 88.6c.3 4.2 3.9 7.4 8.1 7.4H664a8 8 0 008-8.4C667.6 600.3 597.5 533 512 533z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/fullscreen-exit.js b/src/blrec/data/webapp/assets/outline/fullscreen-exit.js new file mode 100644 index 0000000..057bfd4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/fullscreen-exit.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'fullscreen-exit', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M391 240.9c-.8-6.6-8.9-9.4-13.6-4.7l-43.7 43.7L200 146.3a8.03 8.03 0 00-11.3 0l-42.4 42.3a8.03 8.03 0 000 11.3L280 333.6l-43.9 43.9a8.01 8.01 0 004.7 13.6L401 410c5.1.6 9.5-3.7 8.9-8.9L391 240.9zm10.1 373.2L240.8 633c-6.6.8-9.4 8.9-4.7 13.6l43.9 43.9L146.3 824a8.03 8.03 0 000 11.3l42.4 42.3c3.1 3.1 8.2 3.1 11.3 0L333.7 744l43.7 43.7A8.01 8.01 0 00391 783l18.9-160.1c.6-5.1-3.7-9.4-8.8-8.8zm221.8-204.2L783.2 391c6.6-.8 9.4-8.9 4.7-13.6L744 333.6 877.7 200c3.1-3.1 3.1-8.2 0-11.3l-42.4-42.3a8.03 8.03 0 00-11.3 0L690.3 279.9l-43.7-43.7a8.01 8.01 0 00-13.6 4.7L614.1 401c-.6 5.2 3.7 9.5 8.8 8.9zM744 690.4l43.9-43.9a8.01 8.01 0 00-4.7-13.6L623 614c-5.1-.6-9.5 3.7-8.9 8.9L633 783.1c.8 6.6 8.9 9.4 13.6 4.7l43.7-43.7L824 877.7c3.1 3.1 8.2 3.1 11.3 0l42.4-42.3c3.1-3.1 3.1-8.2 0-11.3L744 690.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/fullscreen-exit.svg b/src/blrec/data/webapp/assets/outline/fullscreen-exit.svg new file mode 100644 index 0000000..ba345f7 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/fullscreen-exit.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M391 240.9c-.8-6.6-8.9-9.4-13.6-4.7l-43.7 43.7L200 146.3a8.03 8.03 0 00-11.3 0l-42.4 42.3a8.03 8.03 0 000 11.3L280 333.6l-43.9 43.9a8.01 8.01 0 004.7 13.6L401 410c5.1.6 9.5-3.7 8.9-8.9L391 240.9zm10.1 373.2L240.8 633c-6.6.8-9.4 8.9-4.7 13.6l43.9 43.9L146.3 824a8.03 8.03 0 000 11.3l42.4 42.3c3.1 3.1 8.2 3.1 11.3 0L333.7 744l43.7 43.7A8.01 8.01 0 00391 783l18.9-160.1c.6-5.1-3.7-9.4-8.8-8.8zm221.8-204.2L783.2 391c6.6-.8 9.4-8.9 4.7-13.6L744 333.6 877.7 200c3.1-3.1 3.1-8.2 0-11.3l-42.4-42.3a8.03 8.03 0 00-11.3 0L690.3 279.9l-43.7-43.7a8.01 8.01 0 00-13.6 4.7L614.1 401c-.6 5.2 3.7 9.5 8.8 8.9zM744 690.4l43.9-43.9a8.01 8.01 0 00-4.7-13.6L623 614c-5.1-.6-9.5 3.7-8.9 8.9L633 783.1c.8 6.6 8.9 9.4 13.6 4.7l43.7-43.7L824 877.7c3.1 3.1 8.2 3.1 11.3 0l42.4-42.3c3.1-3.1 3.1-8.2 0-11.3L744 690.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/fullscreen.js b/src/blrec/data/webapp/assets/outline/fullscreen.js new file mode 100644 index 0000000..e9e75bb --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/fullscreen.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'fullscreen', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M290 236.4l43.9-43.9a8.01 8.01 0 00-4.7-13.6L169 160c-5.1-.6-9.5 3.7-8.9 8.9L179 329.1c.8 6.6 8.9 9.4 13.6 4.7l43.7-43.7L370 423.7c3.1 3.1 8.2 3.1 11.3 0l42.4-42.3c3.1-3.1 3.1-8.2 0-11.3L290 236.4zm352.7 187.3c3.1 3.1 8.2 3.1 11.3 0l133.7-133.6 43.7 43.7a8.01 8.01 0 0013.6-4.7L863.9 169c.6-5.1-3.7-9.5-8.9-8.9L694.8 179c-6.6.8-9.4 8.9-4.7 13.6l43.9 43.9L600.3 370a8.03 8.03 0 000 11.3l42.4 42.4zM845 694.9c-.8-6.6-8.9-9.4-13.6-4.7l-43.7 43.7L654 600.3a8.03 8.03 0 00-11.3 0l-42.4 42.3a8.03 8.03 0 000 11.3L734 787.6l-43.9 43.9a8.01 8.01 0 004.7 13.6L855 864c5.1.6 9.5-3.7 8.9-8.9L845 694.9zm-463.7-94.6a8.03 8.03 0 00-11.3 0L236.3 733.9l-43.7-43.7a8.01 8.01 0 00-13.6 4.7L160.1 855c-.6 5.1 3.7 9.5 8.9 8.9L329.2 845c6.6-.8 9.4-8.9 4.7-13.6L290 787.6 423.7 654c3.1-3.1 3.1-8.2 0-11.3l-42.4-42.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/fullscreen.svg b/src/blrec/data/webapp/assets/outline/fullscreen.svg new file mode 100644 index 0000000..507bcd5 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/fullscreen.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M290 236.4l43.9-43.9a8.01 8.01 0 00-4.7-13.6L169 160c-5.1-.6-9.5 3.7-8.9 8.9L179 329.1c.8 6.6 8.9 9.4 13.6 4.7l43.7-43.7L370 423.7c3.1 3.1 8.2 3.1 11.3 0l42.4-42.3c3.1-3.1 3.1-8.2 0-11.3L290 236.4zm352.7 187.3c3.1 3.1 8.2 3.1 11.3 0l133.7-133.6 43.7 43.7a8.01 8.01 0 0013.6-4.7L863.9 169c.6-5.1-3.7-9.5-8.9-8.9L694.8 179c-6.6.8-9.4 8.9-4.7 13.6l43.9 43.9L600.3 370a8.03 8.03 0 000 11.3l42.4 42.4zM845 694.9c-.8-6.6-8.9-9.4-13.6-4.7l-43.7 43.7L654 600.3a8.03 8.03 0 00-11.3 0l-42.4 42.3a8.03 8.03 0 000 11.3L734 787.6l-43.9 43.9a8.01 8.01 0 004.7 13.6L855 864c5.1.6 9.5-3.7 8.9-8.9L845 694.9zm-463.7-94.6a8.03 8.03 0 00-11.3 0L236.3 733.9l-43.7-43.7a8.01 8.01 0 00-13.6 4.7L160.1 855c-.6 5.1 3.7 9.5 8.9 8.9L329.2 845c6.6-.8 9.4-8.9 4.7-13.6L290 787.6 423.7 654c3.1-3.1 3.1-8.2 0-11.3l-42.4-42.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/function.js b/src/blrec/data/webapp/assets/outline/function.js new file mode 100644 index 0000000..37e1703 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/function.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'function', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M841 370c3-3.3 2.7-8.3-.6-11.3a8.24 8.24 0 00-5.3-2.1h-72.6c-2.4 0-4.6 1-6.1 2.8L633.5 504.6a7.96 7.96 0 01-13.4-1.9l-63.5-141.3a7.9 7.9 0 00-7.3-4.7H380.7l.9-4.7 8-42.3c10.5-55.4 38-81.4 85.8-81.4 18.6 0 35.5 1.7 48.8 4.7l14.1-66.8c-22.6-4.7-35.2-6.1-54.9-6.1-103.3 0-156.4 44.3-175.9 147.3l-9.4 49.4h-97.6c-3.8 0-7.1 2.7-7.8 6.4L181.9 415a8.07 8.07 0 007.8 9.7H284l-89 429.9a8.07 8.07 0 007.8 9.7H269c3.8 0 7.1-2.7 7.8-6.4l89.7-433.1h135.8l68.2 139.1c1.4 2.9 1 6.4-1.2 8.8l-180.6 203c-2.9 3.3-2.6 8.4.7 11.3 1.5 1.3 3.4 2 5.3 2h72.7c2.4 0 4.6-1 6.1-2.8l123.7-146.7c2.8-3.4 7.9-3.8 11.3-1 .9.8 1.6 1.7 2.1 2.8L676.4 784c1.3 2.8 4.1 4.7 7.3 4.7h64.6a8.02 8.02 0 007.2-11.5l-95.2-198.9c-1.4-2.9-.9-6.4 1.3-8.8L841 370z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/function.svg b/src/blrec/data/webapp/assets/outline/function.svg new file mode 100644 index 0000000..10d8da4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/function.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M841 370c3-3.3 2.7-8.3-.6-11.3a8.24 8.24 0 00-5.3-2.1h-72.6c-2.4 0-4.6 1-6.1 2.8L633.5 504.6a7.96 7.96 0 01-13.4-1.9l-63.5-141.3a7.9 7.9 0 00-7.3-4.7H380.7l.9-4.7 8-42.3c10.5-55.4 38-81.4 85.8-81.4 18.6 0 35.5 1.7 48.8 4.7l14.1-66.8c-22.6-4.7-35.2-6.1-54.9-6.1-103.3 0-156.4 44.3-175.9 147.3l-9.4 49.4h-97.6c-3.8 0-7.1 2.7-7.8 6.4L181.9 415a8.07 8.07 0 007.8 9.7H284l-89 429.9a8.07 8.07 0 007.8 9.7H269c3.8 0 7.1-2.7 7.8-6.4l89.7-433.1h135.8l68.2 139.1c1.4 2.9 1 6.4-1.2 8.8l-180.6 203c-2.9 3.3-2.6 8.4.7 11.3 1.5 1.3 3.4 2 5.3 2h72.7c2.4 0 4.6-1 6.1-2.8l123.7-146.7c2.8-3.4 7.9-3.8 11.3-1 .9.8 1.6 1.7 2.1 2.8L676.4 784c1.3 2.8 4.1 4.7 7.3 4.7h64.6a8.02 8.02 0 007.2-11.5l-95.2-198.9c-1.4-2.9-.9-6.4 1.3-8.8L841 370z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/fund-projection-screen.js b/src/blrec/data/webapp/assets/outline/fund-projection-screen.js new file mode 100644 index 0000000..0ae35a4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/fund-projection-screen.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'fund-projection-screen', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M312.1 591.5c3.1 3.1 8.2 3.1 11.3 0l101.8-101.8 86.1 86.2c3.1 3.1 8.2 3.1 11.3 0l226.3-226.5c3.1-3.1 3.1-8.2 0-11.3l-36.8-36.8a8.03 8.03 0 00-11.3 0L517 485.3l-86.1-86.2a8.03 8.03 0 00-11.3 0L275.3 543.4a8.03 8.03 0 000 11.3l36.8 36.8z" /><path d="M904 160H548V96c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H120c-17.7 0-32 14.3-32 32v520c0 17.7 14.3 32 32 32h356.4v32L311.6 884.1a7.92 7.92 0 00-2.3 11l30.3 47.2v.1c2.4 3.7 7.4 4.7 11.1 2.3L512 838.9l161.3 105.8c3.7 2.4 8.7 1.4 11.1-2.3v-.1l30.3-47.2a8 8 0 00-2.3-11L548 776.3V744h356c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 512H160V232h704v440z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/fund-projection-screen.svg b/src/blrec/data/webapp/assets/outline/fund-projection-screen.svg new file mode 100644 index 0000000..fdc2cab --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/fund-projection-screen.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M312.1 591.5c3.1 3.1 8.2 3.1 11.3 0l101.8-101.8 86.1 86.2c3.1 3.1 8.2 3.1 11.3 0l226.3-226.5c3.1-3.1 3.1-8.2 0-11.3l-36.8-36.8a8.03 8.03 0 00-11.3 0L517 485.3l-86.1-86.2a8.03 8.03 0 00-11.3 0L275.3 543.4a8.03 8.03 0 000 11.3l36.8 36.8z" /><path d="M904 160H548V96c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H120c-17.7 0-32 14.3-32 32v520c0 17.7 14.3 32 32 32h356.4v32L311.6 884.1a7.92 7.92 0 00-2.3 11l30.3 47.2v.1c2.4 3.7 7.4 4.7 11.1 2.3L512 838.9l161.3 105.8c3.7 2.4 8.7 1.4 11.1-2.3v-.1l30.3-47.2a8 8 0 00-2.3-11L548 776.3V744h356c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 512H160V232h704v440z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/fund-view.js b/src/blrec/data/webapp/assets/outline/fund-view.js new file mode 100644 index 0000000..d7c5929 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/fund-view.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'fund-view', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M956 686.5l-.1-.1-.1-.1C911.7 593 843.4 545 752.5 545s-159.2 48.1-203.4 141.3v.1a42.92 42.92 0 000 36.4C593.3 816 661.6 864 752.5 864s159.2-48.1 203.4-141.3c5.4-11.5 5.4-24.8.1-36.2zM752.5 800c-62.1 0-107.4-30-141.1-95.5C645 639 690.4 609 752.5 609c62.1 0 107.4 30 141.1 95.5C860 770 814.6 800 752.5 800z" /><path d="M697 705a56 56 0 10112 0 56 56 0 10-112 0zM136 232h704v253h72V192c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32v520c0 17.7 14.3 32 32 32h352v-72H136V232z" /><path d="M724.9 338.1l-36.8-36.8a8.03 8.03 0 00-11.3 0L493 485.3l-86.1-86.2a8.03 8.03 0 00-11.3 0L251.3 543.4a8.03 8.03 0 000 11.3l36.8 36.8c3.1 3.1 8.2 3.1 11.3 0l101.8-101.8 86.1 86.2c3.1 3.1 8.2 3.1 11.3 0l226.3-226.5c3.2-3.1 3.2-8.2 0-11.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/fund-view.svg b/src/blrec/data/webapp/assets/outline/fund-view.svg new file mode 100644 index 0000000..2733d00 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/fund-view.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M956 686.5l-.1-.1-.1-.1C911.7 593 843.4 545 752.5 545s-159.2 48.1-203.4 141.3v.1a42.92 42.92 0 000 36.4C593.3 816 661.6 864 752.5 864s159.2-48.1 203.4-141.3c5.4-11.5 5.4-24.8.1-36.2zM752.5 800c-62.1 0-107.4-30-141.1-95.5C645 639 690.4 609 752.5 609c62.1 0 107.4 30 141.1 95.5C860 770 814.6 800 752.5 800z" /><path d="M697 705a56 56 0 10112 0 56 56 0 10-112 0zM136 232h704v253h72V192c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32v520c0 17.7 14.3 32 32 32h352v-72H136V232z" /><path d="M724.9 338.1l-36.8-36.8a8.03 8.03 0 00-11.3 0L493 485.3l-86.1-86.2a8.03 8.03 0 00-11.3 0L251.3 543.4a8.03 8.03 0 000 11.3l36.8 36.8c3.1 3.1 8.2 3.1 11.3 0l101.8-101.8 86.1 86.2c3.1 3.1 8.2 3.1 11.3 0l226.3-226.5c3.2-3.1 3.2-8.2 0-11.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/fund.js b/src/blrec/data/webapp/assets/outline/fund.js new file mode 100644 index 0000000..9de41c1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/fund.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'fund', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M926 164H94c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V196c0-17.7-14.3-32-32-32zm-40 632H134V236h752v560zm-658.9-82.3c3.1 3.1 8.2 3.1 11.3 0l172.5-172.5 114.4 114.5c3.1 3.1 8.2 3.1 11.3 0l297-297.2c3.1-3.1 3.1-8.2 0-11.3l-36.8-36.8a8.03 8.03 0 00-11.3 0L531 565 416.6 450.5a8.03 8.03 0 00-11.3 0l-214.9 215a8.03 8.03 0 000 11.3l36.7 36.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/fund.svg b/src/blrec/data/webapp/assets/outline/fund.svg new file mode 100644 index 0000000..b4de79c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/fund.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M926 164H94c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V196c0-17.7-14.3-32-32-32zm-40 632H134V236h752v560zm-658.9-82.3c3.1 3.1 8.2 3.1 11.3 0l172.5-172.5 114.4 114.5c3.1 3.1 8.2 3.1 11.3 0l297-297.2c3.1-3.1 3.1-8.2 0-11.3l-36.8-36.8a8.03 8.03 0 00-11.3 0L531 565 416.6 450.5a8.03 8.03 0 00-11.3 0l-214.9 215a8.03 8.03 0 000 11.3l36.7 36.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/funnel-plot.js b/src/blrec/data/webapp/assets/outline/funnel-plot.js new file mode 100644 index 0000000..28cdea3 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/funnel-plot.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'funnel-plot', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 607.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V607.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.4 798H420.6V650h182.9v148zm9.6-226.6l-8.4 14.6H419.3l-8.4-14.6L334.4 438h355.2L613 571.4zM726.3 374H297.7l-85-148h598.6l-85 148z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/funnel-plot.svg b/src/blrec/data/webapp/assets/outline/funnel-plot.svg new file mode 100644 index 0000000..82cc476 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/funnel-plot.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 607.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V607.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.4 798H420.6V650h182.9v148zm9.6-226.6l-8.4 14.6H419.3l-8.4-14.6L334.4 438h355.2L613 571.4zM726.3 374H297.7l-85-148h598.6l-85 148z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/gateway.js b/src/blrec/data/webapp/assets/outline/gateway.js new file mode 100644 index 0000000..a901890 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/gateway.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'gateway', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 392c8.8 0 16-7.2 16-16V192c0-8.8-7.2-16-16-16H744c-8.8 0-16 7.2-16 16v56H296v-56c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16v184c0 8.8 7.2 16 16 16h56v240H96c-8.8 0-16 7.2-16 16v184c0 8.8 7.2 16 16 16h184c8.8 0 16-7.2 16-16v-56h432v56c0 8.8 7.2 16 16 16h184c8.8 0 16-7.2 16-16V648c0-8.8-7.2-16-16-16h-56V392h56zM792 240h88v88h-88v-88zm-648 88v-88h88v88h-88zm88 456h-88v-88h88v88zm648-88v88h-88v-88h88zm-80-64h-56c-8.8 0-16 7.2-16 16v56H296v-56c0-8.8-7.2-16-16-16h-56V392h56c8.8 0 16-7.2 16-16v-56h432v56c0 8.8 7.2 16 16 16h56v240z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/gateway.svg b/src/blrec/data/webapp/assets/outline/gateway.svg new file mode 100644 index 0000000..dd540ed --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/gateway.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 392c8.8 0 16-7.2 16-16V192c0-8.8-7.2-16-16-16H744c-8.8 0-16 7.2-16 16v56H296v-56c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16v184c0 8.8 7.2 16 16 16h56v240H96c-8.8 0-16 7.2-16 16v184c0 8.8 7.2 16 16 16h184c8.8 0 16-7.2 16-16v-56h432v56c0 8.8 7.2 16 16 16h184c8.8 0 16-7.2 16-16V648c0-8.8-7.2-16-16-16h-56V392h56zM792 240h88v88h-88v-88zm-648 88v-88h88v88h-88zm88 456h-88v-88h88v88zm648-88v88h-88v-88h88zm-80-64h-56c-8.8 0-16 7.2-16 16v56H296v-56c0-8.8-7.2-16-16-16h-56V392h56c8.8 0 16-7.2 16-16v-56h432v56c0 8.8 7.2 16 16 16h56v240z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/gif.js b/src/blrec/data/webapp/assets/outline/gif.js new file mode 100644 index 0000000..799f1a7 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/gif.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'gif', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M944 299H692c-4.4 0-8 3.6-8 8v406c0 4.4 3.6 8 8 8h59.2c4.4 0 8-3.6 8-8V549.9h168.2c4.4 0 8-3.6 8-8V495c0-4.4-3.6-8-8-8H759.2V364.2H944c4.4 0 8-3.6 8-8V307c0-4.4-3.6-8-8-8zm-356 1h-56c-4.4 0-8 3.6-8 8v406c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V308c0-4.4-3.6-8-8-8zM452 500.9H290.5c-4.4 0-8 3.6-8 8v43.7c0 4.4 3.6 8 8 8h94.9l-.3 8.9c-1.2 58.8-45.6 98.5-110.9 98.5-76.2 0-123.9-59.7-123.9-156.7 0-95.8 46.8-155.2 121.5-155.2 54.8 0 93.1 26.9 108.5 75.4h76.2c-13.6-87.2-86-143.4-184.7-143.4C150 288 72 375.2 72 511.9 72 650.2 149.1 736 273 736c114.1 0 187-70.7 187-181.6v-45.5c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/gif.svg b/src/blrec/data/webapp/assets/outline/gif.svg new file mode 100644 index 0000000..0d06917 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/gif.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M944 299H692c-4.4 0-8 3.6-8 8v406c0 4.4 3.6 8 8 8h59.2c4.4 0 8-3.6 8-8V549.9h168.2c4.4 0 8-3.6 8-8V495c0-4.4-3.6-8-8-8H759.2V364.2H944c4.4 0 8-3.6 8-8V307c0-4.4-3.6-8-8-8zm-356 1h-56c-4.4 0-8 3.6-8 8v406c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V308c0-4.4-3.6-8-8-8zM452 500.9H290.5c-4.4 0-8 3.6-8 8v43.7c0 4.4 3.6 8 8 8h94.9l-.3 8.9c-1.2 58.8-45.6 98.5-110.9 98.5-76.2 0-123.9-59.7-123.9-156.7 0-95.8 46.8-155.2 121.5-155.2 54.8 0 93.1 26.9 108.5 75.4h76.2c-13.6-87.2-86-143.4-184.7-143.4C150 288 72 375.2 72 511.9 72 650.2 149.1 736 273 736c114.1 0 187-70.7 187-181.6v-45.5c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/gift.js b/src/blrec/data/webapp/assets/outline/gift.js new file mode 100644 index 0000000..b18a83c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/gift.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'gift', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 310H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v200c0 4.4 3.6 8 8 8h40v344c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V550h40c4.4 0 8-3.6 8-8V342c0-17.7-14.3-32-32-32zm-334-74c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70h-70v-70zm-138-70c38.6 0 70 31.4 70 70v70h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70zM180 482V378h298v104H180zm48 68h250v308H228V550zm568 308H546V550h250v308zm48-376H546V378h298v104z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/gift.svg b/src/blrec/data/webapp/assets/outline/gift.svg new file mode 100644 index 0000000..5cfb91b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/gift.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 310H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v200c0 4.4 3.6 8 8 8h40v344c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V550h40c4.4 0 8-3.6 8-8V342c0-17.7-14.3-32-32-32zm-334-74c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70h-70v-70zm-138-70c38.6 0 70 31.4 70 70v70h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70zM180 482V378h298v104H180zm48 68h250v308H228V550zm568 308H546V550h250v308zm48-376H546V378h298v104z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/github.js b/src/blrec/data/webapp/assets/outline/github.js new file mode 100644 index 0000000..8fbcd25 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/github.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'github', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0138.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/github.svg b/src/blrec/data/webapp/assets/outline/github.svg new file mode 100644 index 0000000..17071fe --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/github.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M511.6 76.3C264.3 76.2 64 276.4 64 523.5 64 718.9 189.3 885 363.8 946c23.5 5.9 19.9-10.8 19.9-22.2v-77.5c-135.7 15.9-141.2-73.9-150.3-88.9C215 726 171.5 718 184.5 703c30.9-15.9 62.4 4 98.9 57.9 26.4 39.1 77.9 32.5 104 26 5.7-23.5 17.9-44.5 34.7-60.8-140.6-25.2-199.2-111-199.2-213 0-49.5 16.3-95 48.3-131.7-20.4-60.5 1.9-112.3 4.9-120 58.1-5.2 118.5 41.6 123.2 45.3 33-8.9 70.7-13.6 112.9-13.6 42.4 0 80.2 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.3-43.9 2.9 7.7 24.7 58.3 5.5 118 32.4 36.8 48.9 82.7 48.9 132.3 0 102.2-59 188.1-200 212.9a127.5 127.5 0 0138.1 91v112.5c.8 9 0 17.9 15 17.9 177.1-59.7 304.6-227 304.6-424.1 0-247.2-200.4-447.3-447.5-447.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/gitlab.js b/src/blrec/data/webapp/assets/outline/gitlab.js new file mode 100644 index 0000000..a19c27f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/gitlab.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'gitlab', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M913.9 552.2L805 181.4v-.1c-7.6-22.9-25.7-36.5-48.3-36.5-23.4 0-42.5 13.5-49.7 35.2l-71.4 213H388.8l-71.4-213c-7.2-21.7-26.3-35.2-49.7-35.2-23.1 0-42.5 14.8-48.4 36.6L110.5 552.2c-4.4 14.7 1.2 31.4 13.5 40.7l368.5 276.4c2.6 3.6 6.2 6.3 10.4 7.8l8.6 6.4 8.5-6.4c4.9-1.7 9-4.7 11.9-8.9l368.4-275.4c12.4-9.2 18-25.9 13.6-40.6zM751.7 193.4c1-1.8 2.9-1.9 3.5-1.9 1.1 0 2.5.3 3.4 3L818 394.3H684.5l67.2-200.9zm-487.4 1c.9-2.6 2.3-2.9 3.4-2.9 2.7 0 2.9.1 3.4 1.7l67.3 201.2H206.5l57.8-200zM158.8 558.7l28.2-97.3 202.4 270.2-230.6-172.9zm73.9-116.4h122.1l90.8 284.3-212.9-284.3zM512.9 776L405.7 442.3H620L512.9 776zm157.9-333.7h119.5L580 723.1l90.8-280.8zm-40.7 293.9l207.3-276.7 29.5 99.2-236.8 177.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/gitlab.svg b/src/blrec/data/webapp/assets/outline/gitlab.svg new file mode 100644 index 0000000..310f521 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/gitlab.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M913.9 552.2L805 181.4v-.1c-7.6-22.9-25.7-36.5-48.3-36.5-23.4 0-42.5 13.5-49.7 35.2l-71.4 213H388.8l-71.4-213c-7.2-21.7-26.3-35.2-49.7-35.2-23.1 0-42.5 14.8-48.4 36.6L110.5 552.2c-4.4 14.7 1.2 31.4 13.5 40.7l368.5 276.4c2.6 3.6 6.2 6.3 10.4 7.8l8.6 6.4 8.5-6.4c4.9-1.7 9-4.7 11.9-8.9l368.4-275.4c12.4-9.2 18-25.9 13.6-40.6zM751.7 193.4c1-1.8 2.9-1.9 3.5-1.9 1.1 0 2.5.3 3.4 3L818 394.3H684.5l67.2-200.9zm-487.4 1c.9-2.6 2.3-2.9 3.4-2.9 2.7 0 2.9.1 3.4 1.7l67.3 201.2H206.5l57.8-200zM158.8 558.7l28.2-97.3 202.4 270.2-230.6-172.9zm73.9-116.4h122.1l90.8 284.3-212.9-284.3zM512.9 776L405.7 442.3H620L512.9 776zm157.9-333.7h119.5L580 723.1l90.8-280.8zm-40.7 293.9l207.3-276.7 29.5 99.2-236.8 177.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/global.js b/src/blrec/data/webapp/assets/outline/global.js new file mode 100644 index 0000000..3bcaec4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/global.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'global', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.4 800.9c.2-.3.5-.6.7-.9C920.6 722.1 960 621.7 960 512s-39.4-210.1-104.8-288c-.2-.3-.5-.5-.7-.8-1.1-1.3-2.1-2.5-3.2-3.7-.4-.5-.8-.9-1.2-1.4l-4.1-4.7-.1-.1c-1.5-1.7-3.1-3.4-4.6-5.1l-.1-.1c-3.2-3.4-6.4-6.8-9.7-10.1l-.1-.1-4.8-4.8-.3-.3c-1.5-1.5-3-2.9-4.5-4.3-.5-.5-1-1-1.6-1.5-1-1-2-1.9-3-2.8-.3-.3-.7-.6-1-1C736.4 109.2 629.5 64 512 64s-224.4 45.2-304.3 119.2c-.3.3-.7.6-1 1-1 .9-2 1.9-3 2.9-.5.5-1 1-1.6 1.5-1.5 1.4-3 2.9-4.5 4.3l-.3.3-4.8 4.8-.1.1c-3.3 3.3-6.5 6.7-9.7 10.1l-.1.1c-1.6 1.7-3.1 3.4-4.6 5.1l-.1.1c-1.4 1.5-2.8 3.1-4.1 4.7-.4.5-.8.9-1.2 1.4-1.1 1.2-2.1 2.5-3.2 3.7-.2.3-.5.5-.7.8C103.4 301.9 64 402.3 64 512s39.4 210.1 104.8 288c.2.3.5.6.7.9l3.1 3.7c.4.5.8.9 1.2 1.4l4.1 4.7c0 .1.1.1.1.2 1.5 1.7 3 3.4 4.6 5l.1.1c3.2 3.4 6.4 6.8 9.6 10.1l.1.1c1.6 1.6 3.1 3.2 4.7 4.7l.3.3c3.3 3.3 6.7 6.5 10.1 9.6 80.1 74 187 119.2 304.5 119.2s224.4-45.2 304.3-119.2a300 300 0 0010-9.6l.3-.3c1.6-1.6 3.2-3.1 4.7-4.7l.1-.1c3.3-3.3 6.5-6.7 9.6-10.1l.1-.1c1.5-1.7 3.1-3.3 4.6-5 0-.1.1-.1.1-.2 1.4-1.5 2.8-3.1 4.1-4.7.4-.5.8-.9 1.2-1.4a99 99 0 003.3-3.7zm4.1-142.6c-13.8 32.6-32 62.8-54.2 90.2a444.07 444.07 0 00-81.5-55.9c11.6-46.9 18.8-98.4 20.7-152.6H887c-3 40.9-12.6 80.6-28.5 118.3zM887 484H743.5c-1.9-54.2-9.1-105.7-20.7-152.6 29.3-15.6 56.6-34.4 81.5-55.9A373.86 373.86 0 01887 484zM658.3 165.5c39.7 16.8 75.8 40 107.6 69.2a394.72 394.72 0 01-59.4 41.8c-15.7-45-35.8-84.1-59.2-115.4 3.7 1.4 7.4 2.9 11 4.4zm-90.6 700.6c-9.2 7.2-18.4 12.7-27.7 16.4V697a389.1 389.1 0 01115.7 26.2c-8.3 24.6-17.9 47.3-29 67.8-17.4 32.4-37.8 58.3-59 75.1zm59-633.1c11 20.6 20.7 43.3 29 67.8A389.1 389.1 0 01540 327V141.6c9.2 3.7 18.5 9.1 27.7 16.4 21.2 16.7 41.6 42.6 59 75zM540 640.9V540h147.5c-1.6 44.2-7.1 87.1-16.3 127.8l-.3 1.2A445.02 445.02 0 00540 640.9zm0-156.9V383.1c45.8-2.8 89.8-12.5 130.9-28.1l.3 1.2c9.2 40.7 14.7 83.5 16.3 127.8H540zm-56 56v100.9c-45.8 2.8-89.8 12.5-130.9 28.1l-.3-1.2c-9.2-40.7-14.7-83.5-16.3-127.8H484zm-147.5-56c1.6-44.2 7.1-87.1 16.3-127.8l.3-1.2c41.1 15.6 85 25.3 130.9 28.1V484H336.5zM484 697v185.4c-9.2-3.7-18.5-9.1-27.7-16.4-21.2-16.7-41.7-42.7-59.1-75.1-11-20.6-20.7-43.3-29-67.8 37.2-14.6 75.9-23.3 115.8-26.1zm0-370a389.1 389.1 0 01-115.7-26.2c8.3-24.6 17.9-47.3 29-67.8 17.4-32.4 37.8-58.4 59.1-75.1 9.2-7.2 18.4-12.7 27.7-16.4V327zM365.7 165.5c3.7-1.5 7.3-3 11-4.4-23.4 31.3-43.5 70.4-59.2 115.4-21-12-40.9-26-59.4-41.8 31.8-29.2 67.9-52.4 107.6-69.2zM165.5 365.7c13.8-32.6 32-62.8 54.2-90.2 24.9 21.5 52.2 40.3 81.5 55.9-11.6 46.9-18.8 98.4-20.7 152.6H137c3-40.9 12.6-80.6 28.5-118.3zM137 540h143.5c1.9 54.2 9.1 105.7 20.7 152.6a444.07 444.07 0 00-81.5 55.9A373.86 373.86 0 01137 540zm228.7 318.5c-39.7-16.8-75.8-40-107.6-69.2 18.5-15.8 38.4-29.7 59.4-41.8 15.7 45 35.8 84.1 59.2 115.4-3.7-1.4-7.4-2.9-11-4.4zm292.6 0c-3.7 1.5-7.3 3-11 4.4 23.4-31.3 43.5-70.4 59.2-115.4 21 12 40.9 26 59.4 41.8a373.81 373.81 0 01-107.6 69.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/global.svg b/src/blrec/data/webapp/assets/outline/global.svg new file mode 100644 index 0000000..c3ea41e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/global.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.4 800.9c.2-.3.5-.6.7-.9C920.6 722.1 960 621.7 960 512s-39.4-210.1-104.8-288c-.2-.3-.5-.5-.7-.8-1.1-1.3-2.1-2.5-3.2-3.7-.4-.5-.8-.9-1.2-1.4l-4.1-4.7-.1-.1c-1.5-1.7-3.1-3.4-4.6-5.1l-.1-.1c-3.2-3.4-6.4-6.8-9.7-10.1l-.1-.1-4.8-4.8-.3-.3c-1.5-1.5-3-2.9-4.5-4.3-.5-.5-1-1-1.6-1.5-1-1-2-1.9-3-2.8-.3-.3-.7-.6-1-1C736.4 109.2 629.5 64 512 64s-224.4 45.2-304.3 119.2c-.3.3-.7.6-1 1-1 .9-2 1.9-3 2.9-.5.5-1 1-1.6 1.5-1.5 1.4-3 2.9-4.5 4.3l-.3.3-4.8 4.8-.1.1c-3.3 3.3-6.5 6.7-9.7 10.1l-.1.1c-1.6 1.7-3.1 3.4-4.6 5.1l-.1.1c-1.4 1.5-2.8 3.1-4.1 4.7-.4.5-.8.9-1.2 1.4-1.1 1.2-2.1 2.5-3.2 3.7-.2.3-.5.5-.7.8C103.4 301.9 64 402.3 64 512s39.4 210.1 104.8 288c.2.3.5.6.7.9l3.1 3.7c.4.5.8.9 1.2 1.4l4.1 4.7c0 .1.1.1.1.2 1.5 1.7 3 3.4 4.6 5l.1.1c3.2 3.4 6.4 6.8 9.6 10.1l.1.1c1.6 1.6 3.1 3.2 4.7 4.7l.3.3c3.3 3.3 6.7 6.5 10.1 9.6 80.1 74 187 119.2 304.5 119.2s224.4-45.2 304.3-119.2a300 300 0 0010-9.6l.3-.3c1.6-1.6 3.2-3.1 4.7-4.7l.1-.1c3.3-3.3 6.5-6.7 9.6-10.1l.1-.1c1.5-1.7 3.1-3.3 4.6-5 0-.1.1-.1.1-.2 1.4-1.5 2.8-3.1 4.1-4.7.4-.5.8-.9 1.2-1.4a99 99 0 003.3-3.7zm4.1-142.6c-13.8 32.6-32 62.8-54.2 90.2a444.07 444.07 0 00-81.5-55.9c11.6-46.9 18.8-98.4 20.7-152.6H887c-3 40.9-12.6 80.6-28.5 118.3zM887 484H743.5c-1.9-54.2-9.1-105.7-20.7-152.6 29.3-15.6 56.6-34.4 81.5-55.9A373.86 373.86 0 01887 484zM658.3 165.5c39.7 16.8 75.8 40 107.6 69.2a394.72 394.72 0 01-59.4 41.8c-15.7-45-35.8-84.1-59.2-115.4 3.7 1.4 7.4 2.9 11 4.4zm-90.6 700.6c-9.2 7.2-18.4 12.7-27.7 16.4V697a389.1 389.1 0 01115.7 26.2c-8.3 24.6-17.9 47.3-29 67.8-17.4 32.4-37.8 58.3-59 75.1zm59-633.1c11 20.6 20.7 43.3 29 67.8A389.1 389.1 0 01540 327V141.6c9.2 3.7 18.5 9.1 27.7 16.4 21.2 16.7 41.6 42.6 59 75zM540 640.9V540h147.5c-1.6 44.2-7.1 87.1-16.3 127.8l-.3 1.2A445.02 445.02 0 00540 640.9zm0-156.9V383.1c45.8-2.8 89.8-12.5 130.9-28.1l.3 1.2c9.2 40.7 14.7 83.5 16.3 127.8H540zm-56 56v100.9c-45.8 2.8-89.8 12.5-130.9 28.1l-.3-1.2c-9.2-40.7-14.7-83.5-16.3-127.8H484zm-147.5-56c1.6-44.2 7.1-87.1 16.3-127.8l.3-1.2c41.1 15.6 85 25.3 130.9 28.1V484H336.5zM484 697v185.4c-9.2-3.7-18.5-9.1-27.7-16.4-21.2-16.7-41.7-42.7-59.1-75.1-11-20.6-20.7-43.3-29-67.8 37.2-14.6 75.9-23.3 115.8-26.1zm0-370a389.1 389.1 0 01-115.7-26.2c8.3-24.6 17.9-47.3 29-67.8 17.4-32.4 37.8-58.4 59.1-75.1 9.2-7.2 18.4-12.7 27.7-16.4V327zM365.7 165.5c3.7-1.5 7.3-3 11-4.4-23.4 31.3-43.5 70.4-59.2 115.4-21-12-40.9-26-59.4-41.8 31.8-29.2 67.9-52.4 107.6-69.2zM165.5 365.7c13.8-32.6 32-62.8 54.2-90.2 24.9 21.5 52.2 40.3 81.5 55.9-11.6 46.9-18.8 98.4-20.7 152.6H137c3-40.9 12.6-80.6 28.5-118.3zM137 540h143.5c1.9 54.2 9.1 105.7 20.7 152.6a444.07 444.07 0 00-81.5 55.9A373.86 373.86 0 01137 540zm228.7 318.5c-39.7-16.8-75.8-40-107.6-69.2 18.5-15.8 38.4-29.7 59.4-41.8 15.7 45 35.8 84.1 59.2 115.4-3.7-1.4-7.4-2.9-11-4.4zm292.6 0c-3.7 1.5-7.3 3-11 4.4 23.4-31.3 43.5-70.4 59.2-115.4 21 12 40.9 26 59.4 41.8a373.81 373.81 0 01-107.6 69.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/gold.js b/src/blrec/data/webapp/assets/outline/gold.js new file mode 100644 index 0000000..225e8fe --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/gold.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'gold', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8zm91.2-196h159.5l20.7 128h-201l20.8-128zm2.5 282.7c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM196.5 748l20.7-128h159.5l20.7 128H196.5zm709.4 58.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zM626.5 748l20.7-128h159.5l20.7 128H626.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/gold.svg b/src/blrec/data/webapp/assets/outline/gold.svg new file mode 100644 index 0000000..ad3f3f9 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/gold.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8zm91.2-196h159.5l20.7 128h-201l20.8-128zm2.5 282.7c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM196.5 748l20.7-128h159.5l20.7 128H196.5zm709.4 58.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zM626.5 748l20.7-128h159.5l20.7 128H626.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/google-plus.js b/src/blrec/data/webapp/assets/outline/google-plus.js new file mode 100644 index 0000000..ed9dad4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/google-plus.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'google-plus', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M879.5 470.4c-.3-27-.4-54.2-.5-81.3h-80.8c-.3 27-.5 54.1-.7 81.3-27.2.1-54.2.3-81.2.6v80.9c27 .3 54.2.5 81.2.8.3 27 .3 54.1.5 81.1h80.9c.1-27 .3-54.1.5-81.3 27.2-.3 54.2-.4 81.2-.7v-80.9c-26.9-.2-54.1-.2-81.1-.5zm-530 .4c-.1 32.3 0 64.7.1 97 54.2 1.8 108.5 1 162.7 1.8-23.9 120.3-187.4 159.3-273.9 80.7-89-68.9-84.8-220 7.7-284 64.7-51.6 156.6-38.9 221.3 5.8 25.4-23.5 49.2-48.7 72.1-74.7-53.8-42.9-119.8-73.5-190-70.3-146.6-4.9-281.3 123.5-283.7 270.2-9.4 119.9 69.4 237.4 180.6 279.8 110.8 42.7 252.9 13.6 323.7-86 46.7-62.9 56.8-143.9 51.3-220-90.7-.7-181.3-.6-271.9-.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/google-plus.svg b/src/blrec/data/webapp/assets/outline/google-plus.svg new file mode 100644 index 0000000..6556775 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/google-plus.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M879.5 470.4c-.3-27-.4-54.2-.5-81.3h-80.8c-.3 27-.5 54.1-.7 81.3-27.2.1-54.2.3-81.2.6v80.9c27 .3 54.2.5 81.2.8.3 27 .3 54.1.5 81.1h80.9c.1-27 .3-54.1.5-81.3 27.2-.3 54.2-.4 81.2-.7v-80.9c-26.9-.2-54.1-.2-81.1-.5zm-530 .4c-.1 32.3 0 64.7.1 97 54.2 1.8 108.5 1 162.7 1.8-23.9 120.3-187.4 159.3-273.9 80.7-89-68.9-84.8-220 7.7-284 64.7-51.6 156.6-38.9 221.3 5.8 25.4-23.5 49.2-48.7 72.1-74.7-53.8-42.9-119.8-73.5-190-70.3-146.6-4.9-281.3 123.5-283.7 270.2-9.4 119.9 69.4 237.4 180.6 279.8 110.8 42.7 252.9 13.6 323.7-86 46.7-62.9 56.8-143.9 51.3-220-90.7-.7-181.3-.6-271.9-.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/google.js b/src/blrec/data/webapp/assets/outline/google.js new file mode 100644 index 0000000..f59eaf2 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/google.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'google', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M881 442.4H519.7v148.5h206.4c-8.9 48-35.9 88.6-76.6 115.8-34.4 23-78.3 36.6-129.9 36.6-99.9 0-184.4-67.5-214.6-158.2-7.6-23-12-47.6-12-72.9s4.4-49.9 12-72.9c30.3-90.6 114.8-158.1 214.7-158.1 56.3 0 106.8 19.4 146.6 57.4l110-110.1c-66.5-62-153.2-100-256.6-100-149.9 0-279.6 86-342.7 211.4-26 51.8-40.8 110.4-40.8 172.4S151 632.8 177 684.6C240.1 810 369.8 896 519.7 896c103.6 0 190.4-34.4 253.8-93 72.5-66.8 114.4-165.2 114.4-282.1 0-27.2-2.4-53.3-6.9-78.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/google.svg b/src/blrec/data/webapp/assets/outline/google.svg new file mode 100644 index 0000000..49df3ca --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/google.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M881 442.4H519.7v148.5h206.4c-8.9 48-35.9 88.6-76.6 115.8-34.4 23-78.3 36.6-129.9 36.6-99.9 0-184.4-67.5-214.6-158.2-7.6-23-12-47.6-12-72.9s4.4-49.9 12-72.9c30.3-90.6 114.8-158.1 214.7-158.1 56.3 0 106.8 19.4 146.6 57.4l110-110.1c-66.5-62-153.2-100-256.6-100-149.9 0-279.6 86-342.7 211.4-26 51.8-40.8 110.4-40.8 172.4S151 632.8 177 684.6C240.1 810 369.8 896 519.7 896c103.6 0 190.4-34.4 253.8-93 72.5-66.8 114.4-165.2 114.4-282.1 0-27.2-2.4-53.3-6.9-78.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/group.js b/src/blrec/data/webapp/assets/outline/group.js new file mode 100644 index 0000000..0e7d085 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/group.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'group', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M912 820.1V203.9c28-9.9 48-36.6 48-67.9 0-39.8-32.2-72-72-72-31.3 0-58 20-67.9 48H203.9C194 84 167.3 64 136 64c-39.8 0-72 32.2-72 72 0 31.3 20 58 48 67.9v616.2C84 830 64 856.7 64 888c0 39.8 32.2 72 72 72 31.3 0 58-20 67.9-48h616.2c9.9 28 36.6 48 67.9 48 39.8 0 72-32.2 72-72 0-31.3-20-58-48-67.9zM888 112c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zM136 912c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-752c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm704 680H184V184h656v656zm48 72c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z" /><path d="M288 474h448c8.8 0 16-7.2 16-16V282c0-8.8-7.2-16-16-16H288c-8.8 0-16 7.2-16 16v176c0 8.8 7.2 16 16 16zm56-136h336v64H344v-64zm-56 420h448c8.8 0 16-7.2 16-16V566c0-8.8-7.2-16-16-16H288c-8.8 0-16 7.2-16 16v176c0 8.8 7.2 16 16 16zm56-136h336v64H344v-64z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/group.svg b/src/blrec/data/webapp/assets/outline/group.svg new file mode 100644 index 0000000..a7049ce --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/group.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M912 820.1V203.9c28-9.9 48-36.6 48-67.9 0-39.8-32.2-72-72-72-31.3 0-58 20-67.9 48H203.9C194 84 167.3 64 136 64c-39.8 0-72 32.2-72 72 0 31.3 20 58 48 67.9v616.2C84 830 64 856.7 64 888c0 39.8 32.2 72 72 72 31.3 0 58-20 67.9-48h616.2c9.9 28 36.6 48 67.9 48 39.8 0 72-32.2 72-72 0-31.3-20-58-48-67.9zM888 112c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zM136 912c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-752c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm704 680H184V184h656v656zm48 72c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z" /><path d="M288 474h448c8.8 0 16-7.2 16-16V282c0-8.8-7.2-16-16-16H288c-8.8 0-16 7.2-16 16v176c0 8.8 7.2 16 16 16zm56-136h336v64H344v-64zm-56 420h448c8.8 0 16-7.2 16-16V566c0-8.8-7.2-16-16-16H288c-8.8 0-16 7.2-16 16v176c0 8.8 7.2 16 16 16zm56-136h336v64H344v-64z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/hdd.js b/src/blrec/data/webapp/assets/outline/hdd.js new file mode 100644 index 0000000..4b18e94 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/hdd.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'hdd', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM496 208H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 544h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm328 244a40 40 0 1080 0 40 40 0 10-80 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/hdd.svg b/src/blrec/data/webapp/assets/outline/hdd.svg new file mode 100644 index 0000000..8b0a19e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/hdd.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-600 72h560v208H232V136zm560 480H232V408h560v208zm0 272H232V680h560v208zM496 208H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 544h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm328 244a40 40 0 1080 0 40 40 0 10-80 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/heart.js b/src/blrec/data/webapp/assets/outline/heart.js new file mode 100644 index 0000000..cf182bc --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/heart.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'heart', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M923 283.6a260.04 260.04 0 00-56.9-82.8 264.4 264.4 0 00-84-55.5A265.34 265.34 0 00679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 00-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9zM512 814.8S156 586.7 156 385.5C156 283.6 240.3 201 344.3 201c73.1 0 136.5 40.8 167.7 100.4C543.2 241.8 606.6 201 679.7 201c104 0 188.3 82.6 188.3 184.5 0 201.2-356 429.3-356 429.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/heart.svg b/src/blrec/data/webapp/assets/outline/heart.svg new file mode 100644 index 0000000..1150c5c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/heart.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M923 283.6a260.04 260.04 0 00-56.9-82.8 264.4 264.4 0 00-84-55.5A265.34 265.34 0 00679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 00-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9zM512 814.8S156 586.7 156 385.5C156 283.6 240.3 201 344.3 201c73.1 0 136.5 40.8 167.7 100.4C543.2 241.8 606.6 201 679.7 201c104 0 188.3 82.6 188.3 184.5 0 201.2-356 429.3-356 429.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/heat-map.js b/src/blrec/data/webapp/assets/outline/heat-map.js new file mode 100644 index 0000000..f1436c3 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/heat-map.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'heat-map', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-790.4-23.9L512 231.9 858.7 832H165.3zm319-474.1l-228 394c-12.3 21.3 3.1 48 27.7 48h455.8c24.7 0 40.1-26.7 27.7-48L539.7 358c-6.2-10.7-17-16-27.7-16-10.8 0-21.6 5.3-27.7 16zm214 386H325.7L512 422l186.3 322zm-214-194.1l-57 98.4C415 669.5 430.4 696 455 696h114c24.6 0 39.9-26.5 27.7-47.7l-57-98.4c-6.1-10.6-16.9-15.9-27.7-15.9s-21.5 5.3-27.7 15.9zm57.1 98.4h-58.7l29.4-50.7 29.3 50.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/heat-map.svg b/src/blrec/data/webapp/assets/outline/heat-map.svg new file mode 100644 index 0000000..7c4c92f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/heat-map.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-790.4-23.9L512 231.9 858.7 832H165.3zm319-474.1l-228 394c-12.3 21.3 3.1 48 27.7 48h455.8c24.7 0 40.1-26.7 27.7-48L539.7 358c-6.2-10.7-17-16-27.7-16-10.8 0-21.6 5.3-27.7 16zm214 386H325.7L512 422l186.3 322zm-214-194.1l-57 98.4C415 669.5 430.4 696 455 696h114c24.6 0 39.9-26.5 27.7-47.7l-57-98.4c-6.1-10.6-16.9-15.9-27.7-15.9s-21.5 5.3-27.7 15.9zm57.1 98.4h-58.7l29.4-50.7 29.3 50.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/highlight.js b/src/blrec/data/webapp/assets/outline/highlight.js new file mode 100644 index 0000000..7722882 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/highlight.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'highlight', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M957.6 507.4L603.2 158.2a7.9 7.9 0 00-11.2 0L353.3 393.4a8.03 8.03 0 00-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 00-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8V860c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6 40.4 39.8a7.9 7.9 0 0011.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0011.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2zM389.8 796.2H229.6l134.4-133 80.1 78.9-54.3 54.1zm154.8-62.1L373.2 565.2l68.6-67.6 171.4 168.9-68.6 67.6zM713.1 658L450.3 399.1 597.6 254l262.8 259-147.3 145z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/highlight.svg b/src/blrec/data/webapp/assets/outline/highlight.svg new file mode 100644 index 0000000..c4c6c30 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/highlight.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M957.6 507.4L603.2 158.2a7.9 7.9 0 00-11.2 0L353.3 393.4a8.03 8.03 0 00-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 00-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8V860c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6 40.4 39.8a7.9 7.9 0 0011.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0011.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2zM389.8 796.2H229.6l134.4-133 80.1 78.9-54.3 54.1zm154.8-62.1L373.2 565.2l68.6-67.6 171.4 168.9-68.6 67.6zM713.1 658L450.3 399.1 597.6 254l262.8 259-147.3 145z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/history.js b/src/blrec/data/webapp/assets/outline/history.js new file mode 100644 index 0000000..dd8f7bb --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/history.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'history', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M536.1 273H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.3 120.7c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.7-3.7 1.9-8.7-1.7-11.2L544.1 528.5V281c0-4.4-3.6-8-8-8zm219.8 75.2l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3L752.9 334.1a8 8 0 003 14.1zm167.7 301.1l-56.7-19.5a8 8 0 00-10.1 4.8c-1.9 5.1-3.9 10.1-6 15.1-17.8 42.1-43.3 80-75.9 112.5a353 353 0 01-112.5 75.9 352.18 352.18 0 01-137.7 27.8c-47.8 0-94.1-9.3-137.7-27.8a353 353 0 01-112.5-75.9c-32.5-32.5-58-70.4-75.9-112.5A353.44 353.44 0 01171 512c0-47.8 9.3-94.2 27.8-137.8 17.8-42.1 43.3-80 75.9-112.5a353 353 0 01112.5-75.9C430.6 167.3 477 158 524.8 158s94.1 9.3 137.7 27.8A353 353 0 01775 261.7c10.2 10.3 19.8 21 28.6 32.3l59.8-46.8C784.7 146.6 662.2 81.9 524.6 82 285 82.1 92.6 276.7 95 516.4 97.4 751.9 288.9 942 524.8 942c185.5 0 343.5-117.6 403.7-282.3 1.5-4.2-.7-8.9-4.9-10.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/history.svg b/src/blrec/data/webapp/assets/outline/history.svg new file mode 100644 index 0000000..657a8f4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/history.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M536.1 273H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.3 120.7c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.7-3.7 1.9-8.7-1.7-11.2L544.1 528.5V281c0-4.4-3.6-8-8-8zm219.8 75.2l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3L752.9 334.1a8 8 0 003 14.1zm167.7 301.1l-56.7-19.5a8 8 0 00-10.1 4.8c-1.9 5.1-3.9 10.1-6 15.1-17.8 42.1-43.3 80-75.9 112.5a353 353 0 01-112.5 75.9 352.18 352.18 0 01-137.7 27.8c-47.8 0-94.1-9.3-137.7-27.8a353 353 0 01-112.5-75.9c-32.5-32.5-58-70.4-75.9-112.5A353.44 353.44 0 01171 512c0-47.8 9.3-94.2 27.8-137.8 17.8-42.1 43.3-80 75.9-112.5a353 353 0 01112.5-75.9C430.6 167.3 477 158 524.8 158s94.1 9.3 137.7 27.8A353 353 0 01775 261.7c10.2 10.3 19.8 21 28.6 32.3l59.8-46.8C784.7 146.6 662.2 81.9 524.6 82 285 82.1 92.6 276.7 95 516.4 97.4 751.9 288.9 942 524.8 942c185.5 0 343.5-117.6 403.7-282.3 1.5-4.2-.7-8.9-4.9-10.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/home.js b/src/blrec/data/webapp/assets/outline/home.js new file mode 100644 index 0000000..b2b57df --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/home.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'home', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/home.svg b/src/blrec/data/webapp/assets/outline/home.svg new file mode 100644 index 0000000..9be24cb --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/home.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/hourglass.js b/src/blrec/data/webapp/assets/outline/hourglass.js new file mode 100644 index 0000000..bc39969 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/hourglass.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'hourglass', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194zm-72 388v134H354V706c0-42.2 16.4-81.9 46.3-111.7C430.1 564.4 469.8 548 512 548s81.9 16.4 111.7 46.3C653.6 624.1 670 663.8 670 706zm0-388c0 42.2-16.4 81.9-46.3 111.7C593.9 459.6 554.2 476 512 476s-81.9-16.4-111.7-46.3A156.63 156.63 0 01354 318V184h316v134z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/hourglass.svg b/src/blrec/data/webapp/assets/outline/hourglass.svg new file mode 100644 index 0000000..8d9c813 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/hourglass.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194zm-72 388v134H354V706c0-42.2 16.4-81.9 46.3-111.7C430.1 564.4 469.8 548 512 548s81.9 16.4 111.7 46.3C653.6 624.1 670 663.8 670 706zm0-388c0 42.2-16.4 81.9-46.3 111.7C593.9 459.6 554.2 476 512 476s-81.9-16.4-111.7-46.3A156.63 156.63 0 01354 318V184h316v134z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/html5.js b/src/blrec/data/webapp/assets/outline/html5.js new file mode 100644 index 0000000..b9a47e0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/html5.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'html5', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M145 96l66 746.6L511.8 928l299.6-85.4L878.7 96H145zm610.9 700.6l-244.1 69.6-245.2-69.6-56.7-641.2h603.8l-57.8 641.2zM281 249l1.7 24.3 22.7 253.5h206.5v-.1h112.9l-11.4 118.5L511 672.9v.2h-.8l-102.4-27.7-6.5-73.2h-91l11.3 144.7 188.6 52h1.7v-.4l187.7-51.7 1.7-16.3 21.2-242.2 3.2-24.3H511v.2H389.9l-8.2-94.2h352.1l1.7-19.5 4.8-47.2L742 249H511z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/html5.svg b/src/blrec/data/webapp/assets/outline/html5.svg new file mode 100644 index 0000000..7700fe2 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/html5.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M145 96l66 746.6L511.8 928l299.6-85.4L878.7 96H145zm610.9 700.6l-244.1 69.6-245.2-69.6-56.7-641.2h603.8l-57.8 641.2zM281 249l1.7 24.3 22.7 253.5h206.5v-.1h112.9l-11.4 118.5L511 672.9v.2h-.8l-102.4-27.7-6.5-73.2h-91l11.3 144.7 188.6 52h1.7v-.4l187.7-51.7 1.7-16.3 21.2-242.2 3.2-24.3H511v.2H389.9l-8.2-94.2h352.1l1.7-19.5 4.8-47.2L742 249H511z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/idcard.js b/src/blrec/data/webapp/assets/outline/idcard.js new file mode 100644 index 0000000..297982e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/idcard.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'idcard', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V232h752v560zM610.3 476h123.4c1.3 0 2.3-3.6 2.3-8v-48c0-4.4-1-8-2.3-8H610.3c-1.3 0-2.3 3.6-2.3 8v48c0 4.4 1 8 2.3 8zm4.8 144h185.7c3.9 0 7.1-3.6 7.1-8v-48c0-4.4-3.2-8-7.1-8H615.1c-3.9 0-7.1 3.6-7.1 8v48c0 4.4 3.2 8 7.1 8zM224 673h43.9c4.2 0 7.6-3.3 7.9-7.5 3.8-50.5 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H522a8 8 0 008-8.4c-2.8-53.3-32-99.7-74.6-126.1a111.8 111.8 0 0029.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 00-74.6 126.1c-.4 4.6 3.2 8.4 7.8 8.4zm149-262c28.5 0 51.7 23.3 51.7 52s-23.2 52-51.7 52-51.7-23.3-51.7-52 23.2-52 51.7-52z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/idcard.svg b/src/blrec/data/webapp/assets/outline/idcard.svg new file mode 100644 index 0000000..f75fb69 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/idcard.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V232h752v560zM610.3 476h123.4c1.3 0 2.3-3.6 2.3-8v-48c0-4.4-1-8-2.3-8H610.3c-1.3 0-2.3 3.6-2.3 8v48c0 4.4 1 8 2.3 8zm4.8 144h185.7c3.9 0 7.1-3.6 7.1-8v-48c0-4.4-3.2-8-7.1-8H615.1c-3.9 0-7.1 3.6-7.1 8v48c0 4.4 3.2 8 7.1 8zM224 673h43.9c4.2 0 7.6-3.3 7.9-7.5 3.8-50.5 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H522a8 8 0 008-8.4c-2.8-53.3-32-99.7-74.6-126.1a111.8 111.8 0 0029.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 00-74.6 126.1c-.4 4.6 3.2 8.4 7.8 8.4zm149-262c28.5 0 51.7 23.3 51.7 52s-23.2 52-51.7 52-51.7-23.3-51.7-52 23.2-52 51.7-52z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/ie.js b/src/blrec/data/webapp/assets/outline/ie.js new file mode 100644 index 0000000..e157f3f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/ie.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'ie', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M852.6 367.6c16.3-36.9 32.1-90.7 32.1-131.8 0-109.1-119.5-147.6-314.5-57.9-161.4-10.8-316.8 110.5-355.6 279.7 46.3-52.3 117.4-123.4 183-151.7C316.1 378.3 246.7 470 194 565.6c-31.1 56.9-66 148.8-66 217.5 0 147.9 139.3 129.8 270.4 63 47.1 23.1 99.8 23.4 152.5 23.4 145.7 0 276.4-81.4 325.2-219H694.9c-78.8 132.9-295.2 79.5-295.2-71.2h493.2c9.6-65.4-2.5-143.6-40.3-211.7zM224.8 648.3c26.6 76.7 80.6 143.8 150.4 185-133.1 73.4-259.9 43.6-150.4-185zm174-163.3c3-82.7 75.4-142.3 156-142.3 80.1 0 153 59.6 156 142.3h-312zm276.8-281.4c32.1-15.4 72.8-33 108.8-33 47.1 0 81.4 32.6 81.4 80.6 0 30-11.1 73.5-21.9 101.8-39.3-63.5-98.9-122.4-168.3-149.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/ie.svg b/src/blrec/data/webapp/assets/outline/ie.svg new file mode 100644 index 0000000..2061aa6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/ie.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M852.6 367.6c16.3-36.9 32.1-90.7 32.1-131.8 0-109.1-119.5-147.6-314.5-57.9-161.4-10.8-316.8 110.5-355.6 279.7 46.3-52.3 117.4-123.4 183-151.7C316.1 378.3 246.7 470 194 565.6c-31.1 56.9-66 148.8-66 217.5 0 147.9 139.3 129.8 270.4 63 47.1 23.1 99.8 23.4 152.5 23.4 145.7 0 276.4-81.4 325.2-219H694.9c-78.8 132.9-295.2 79.5-295.2-71.2h493.2c9.6-65.4-2.5-143.6-40.3-211.7zM224.8 648.3c26.6 76.7 80.6 143.8 150.4 185-133.1 73.4-259.9 43.6-150.4-185zm174-163.3c3-82.7 75.4-142.3 156-142.3 80.1 0 153 59.6 156 142.3h-312zm276.8-281.4c32.1-15.4 72.8-33 108.8-33 47.1 0 81.4 32.6 81.4 80.6 0 30-11.1 73.5-21.9 101.8-39.3-63.5-98.9-122.4-168.3-149.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/import.js b/src/blrec/data/webapp/assets/outline/import.js new file mode 100644 index 0000000..10bde46 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/import.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'import', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M888.3 757.4h-53.8c-4.2 0-7.7 3.5-7.7 7.7v61.8H197.1V197.1h629.8v61.8c0 4.2 3.5 7.7 7.7 7.7h53.8c4.2 0 7.7-3.4 7.7-7.7V158.7c0-17-13.7-30.7-30.7-30.7H158.7c-17 0-30.7 13.7-30.7 30.7v706.6c0 17 13.7 30.7 30.7 30.7h706.6c17 0 30.7-13.7 30.7-30.7V765.1c0-4.3-3.5-7.7-7.7-7.7zM902 476H588v-76c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 000 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-76h314c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/import.svg b/src/blrec/data/webapp/assets/outline/import.svg new file mode 100644 index 0000000..d614d4d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/import.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M888.3 757.4h-53.8c-4.2 0-7.7 3.5-7.7 7.7v61.8H197.1V197.1h629.8v61.8c0 4.2 3.5 7.7 7.7 7.7h53.8c4.2 0 7.7-3.4 7.7-7.7V158.7c0-17-13.7-30.7-30.7-30.7H158.7c-17 0-30.7 13.7-30.7 30.7v706.6c0 17 13.7 30.7 30.7 30.7h706.6c17 0 30.7-13.7 30.7-30.7V765.1c0-4.3-3.5-7.7-7.7-7.7zM902 476H588v-76c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 000 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-76h314c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/inbox.js b/src/blrec/data/webapp/assets/outline/inbox.js new file mode 100644 index 0000000..67a8853 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/inbox.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'inbox', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M885.2 446.3l-.2-.8-112.2-285.1c-5-16.1-19.9-27.2-36.8-27.2H281.2c-17 0-32.1 11.3-36.9 27.6L139.4 443l-.3.7-.2.8c-1.3 4.9-1.7 9.9-1 14.8-.1 1.6-.2 3.2-.2 4.8V830a60.9 60.9 0 0060.8 60.8h627.2c33.5 0 60.8-27.3 60.9-60.8V464.1c0-1.3 0-2.6-.1-3.7.4-4.9 0-9.6-1.3-14.1zm-295.8-43l-.3 15.7c-.8 44.9-31.8 75.1-77.1 75.1-22.1 0-41.1-7.1-54.8-20.6S436 441.2 435.6 419l-.3-15.7H229.5L309 210h399.2l81.7 193.3H589.4zm-375 76.8h157.3c24.3 57.1 76 90.8 140.4 90.8 33.7 0 65-9.4 90.3-27.2 22.2-15.6 39.5-37.4 50.7-63.6h156.5V814H214.4V480.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/inbox.svg b/src/blrec/data/webapp/assets/outline/inbox.svg new file mode 100644 index 0000000..139c6c1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/inbox.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M885.2 446.3l-.2-.8-112.2-285.1c-5-16.1-19.9-27.2-36.8-27.2H281.2c-17 0-32.1 11.3-36.9 27.6L139.4 443l-.3.7-.2.8c-1.3 4.9-1.7 9.9-1 14.8-.1 1.6-.2 3.2-.2 4.8V830a60.9 60.9 0 0060.8 60.8h627.2c33.5 0 60.8-27.3 60.9-60.8V464.1c0-1.3 0-2.6-.1-3.7.4-4.9 0-9.6-1.3-14.1zm-295.8-43l-.3 15.7c-.8 44.9-31.8 75.1-77.1 75.1-22.1 0-41.1-7.1-54.8-20.6S436 441.2 435.6 419l-.3-15.7H229.5L309 210h399.2l81.7 193.3H589.4zm-375 76.8h157.3c24.3 57.1 76 90.8 140.4 90.8 33.7 0 65-9.4 90.3-27.2 22.2-15.6 39.5-37.4 50.7-63.6h156.5V814H214.4V480.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/info-circle.js b/src/blrec/data/webapp/assets/outline/info-circle.js new file mode 100644 index 0000000..686a45f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/info-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'info-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /><path d="M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/info-circle.svg b/src/blrec/data/webapp/assets/outline/info-circle.svg new file mode 100644 index 0000000..1dd266e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/info-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /><path d="M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/info.js b/src/blrec/data/webapp/assets/outline/info.js new file mode 100644 index 0000000..5a81536 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/info.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'info', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M448 224a64 64 0 10128 0 64 64 0 10-128 0zm96 168h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V400c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/info.svg b/src/blrec/data/webapp/assets/outline/info.svg new file mode 100644 index 0000000..b1ef9a4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/info.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M448 224a64 64 0 10128 0 64 64 0 10-128 0zm96 168h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V400c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/insert-row-above.js b/src/blrec/data/webapp/assets/outline/insert-row-above.js new file mode 100644 index 0000000..8505deb --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/insert-row-above.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'insert-row-above', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M878.7 336H145.3c-18.4 0-33.3 14.3-33.3 32v464c0 17.7 14.9 32 33.3 32h733.3c18.4 0 33.3-14.3 33.3-32V368c.1-17.7-14.8-32-33.2-32zM360 792H184V632h176v160zm0-224H184V408h176v160zm240 224H424V632h176v160zm0-224H424V408h176v160zm240 224H664V632h176v160zm0-224H664V408h176v160zm64-408H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/insert-row-above.svg b/src/blrec/data/webapp/assets/outline/insert-row-above.svg new file mode 100644 index 0000000..e914d08 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/insert-row-above.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M878.7 336H145.3c-18.4 0-33.3 14.3-33.3 32v464c0 17.7 14.9 32 33.3 32h733.3c18.4 0 33.3-14.3 33.3-32V368c.1-17.7-14.8-32-33.2-32zM360 792H184V632h176v160zm0-224H184V408h176v160zm240 224H424V632h176v160zm0-224H424V408h176v160zm240 224H664V632h176v160zm0-224H664V408h176v160zm64-408H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/insert-row-below.js b/src/blrec/data/webapp/assets/outline/insert-row-below.js new file mode 100644 index 0000000..feda59a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/insert-row-below.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'insert-row-below', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M904 768H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8zm-25.3-608H145.3c-18.4 0-33.3 14.3-33.3 32v464c0 17.7 14.9 32 33.3 32h733.3c18.4 0 33.3-14.3 33.3-32V192c.1-17.7-14.8-32-33.2-32zM360 616H184V456h176v160zm0-224H184V232h176v160zm240 224H424V456h176v160zm0-224H424V232h176v160zm240 224H664V456h176v160zm0-224H664V232h176v160z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/insert-row-below.svg b/src/blrec/data/webapp/assets/outline/insert-row-below.svg new file mode 100644 index 0000000..c98d4d1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/insert-row-below.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M904 768H120c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8zm-25.3-608H145.3c-18.4 0-33.3 14.3-33.3 32v464c0 17.7 14.9 32 33.3 32h733.3c18.4 0 33.3-14.3 33.3-32V192c.1-17.7-14.8-32-33.2-32zM360 616H184V456h176v160zm0-224H184V232h176v160zm240 224H424V456h176v160zm0-224H424V232h176v160zm240 224H664V456h176v160zm0-224H664V232h176v160z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/insert-row-left.js b/src/blrec/data/webapp/assets/outline/insert-row-left.js new file mode 100644 index 0000000..0e4f864 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/insert-row-left.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'insert-row-left', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M248 112h-80c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V120c0-4.4-3.6-8-8-8zm584 0H368c-17.7 0-32 14.9-32 33.3v733.3c0 18.4 14.3 33.3 32 33.3h464c17.7 0 32-14.9 32-33.3V145.3c0-18.4-14.3-33.3-32-33.3zM568 840H408V664h160v176zm0-240H408V424h160v176zm0-240H408V184h160v176zm224 480H632V664h160v176zm0-240H632V424h160v176zm0-240H632V184h160v176z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/insert-row-left.svg b/src/blrec/data/webapp/assets/outline/insert-row-left.svg new file mode 100644 index 0000000..ec4bbf7 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/insert-row-left.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M248 112h-80c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V120c0-4.4-3.6-8-8-8zm584 0H368c-17.7 0-32 14.9-32 33.3v733.3c0 18.4 14.3 33.3 32 33.3h464c17.7 0 32-14.9 32-33.3V145.3c0-18.4-14.3-33.3-32-33.3zM568 840H408V664h160v176zm0-240H408V424h160v176zm0-240H408V184h160v176zm224 480H632V664h160v176zm0-240H632V424h160v176zm0-240H632V184h160v176z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/insert-row-right.js b/src/blrec/data/webapp/assets/outline/insert-row-right.js new file mode 100644 index 0000000..931710a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/insert-row-right.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'insert-row-right', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M856 112h-80c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V120c0-4.4-3.6-8-8-8zm-200 0H192c-17.7 0-32 14.9-32 33.3v733.3c0 18.4 14.3 33.3 32 33.3h464c17.7 0 32-14.9 32-33.3V145.3c0-18.4-14.3-33.3-32-33.3zM392 840H232V664h160v176zm0-240H232V424h160v176zm0-240H232V184h160v176zm224 480H456V664h160v176zm0-240H456V424h160v176zm0-240H456V184h160v176z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/insert-row-right.svg b/src/blrec/data/webapp/assets/outline/insert-row-right.svg new file mode 100644 index 0000000..908da00 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/insert-row-right.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M856 112h-80c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V120c0-4.4-3.6-8-8-8zm-200 0H192c-17.7 0-32 14.9-32 33.3v733.3c0 18.4 14.3 33.3 32 33.3h464c17.7 0 32-14.9 32-33.3V145.3c0-18.4-14.3-33.3-32-33.3zM392 840H232V664h160v176zm0-240H232V424h160v176zm0-240H232V184h160v176zm224 480H456V664h160v176zm0-240H456V424h160v176zm0-240H456V184h160v176z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/instagram.js b/src/blrec/data/webapp/assets/outline/instagram.js new file mode 100644 index 0000000..84fc24e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/instagram.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'instagram', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 306.9c-113.5 0-205.1 91.6-205.1 205.1S398.5 717.1 512 717.1 717.1 625.5 717.1 512 625.5 306.9 512 306.9zm0 338.4c-73.4 0-133.3-59.9-133.3-133.3S438.6 378.7 512 378.7 645.3 438.6 645.3 512 585.4 645.3 512 645.3zm213.5-394.6c-26.5 0-47.9 21.4-47.9 47.9s21.4 47.9 47.9 47.9 47.9-21.3 47.9-47.9a47.84 47.84 0 00-47.9-47.9zM911.8 512c0-55.2.5-109.9-2.6-165-3.1-64-17.7-120.8-64.5-167.6-46.9-46.9-103.6-61.4-167.6-64.5-55.2-3.1-109.9-2.6-165-2.6-55.2 0-109.9-.5-165 2.6-64 3.1-120.8 17.7-167.6 64.5C132.6 226.3 118.1 283 115 347c-3.1 55.2-2.6 109.9-2.6 165s-.5 109.9 2.6 165c3.1 64 17.7 120.8 64.5 167.6 46.9 46.9 103.6 61.4 167.6 64.5 55.2 3.1 109.9 2.6 165 2.6 55.2 0 109.9.5 165-2.6 64-3.1 120.8-17.7 167.6-64.5 46.9-46.9 61.4-103.6 64.5-167.6 3.2-55.1 2.6-109.8 2.6-165zm-88 235.8c-7.3 18.2-16.1 31.8-30.2 45.8-14.1 14.1-27.6 22.9-45.8 30.2C695.2 844.7 570.3 840 512 840c-58.3 0-183.3 4.7-235.9-16.1-18.2-7.3-31.8-16.1-45.8-30.2-14.1-14.1-22.9-27.6-30.2-45.8C179.3 695.2 184 570.3 184 512c0-58.3-4.7-183.3 16.1-235.9 7.3-18.2 16.1-31.8 30.2-45.8s27.6-22.9 45.8-30.2C328.7 179.3 453.7 184 512 184s183.3-4.7 235.9 16.1c18.2 7.3 31.8 16.1 45.8 30.2 14.1 14.1 22.9 27.6 30.2 45.8C844.7 328.7 840 453.7 840 512c0 58.3 4.7 183.2-16.2 235.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/instagram.svg b/src/blrec/data/webapp/assets/outline/instagram.svg new file mode 100644 index 0000000..1f5ee10 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/instagram.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 306.9c-113.5 0-205.1 91.6-205.1 205.1S398.5 717.1 512 717.1 717.1 625.5 717.1 512 625.5 306.9 512 306.9zm0 338.4c-73.4 0-133.3-59.9-133.3-133.3S438.6 378.7 512 378.7 645.3 438.6 645.3 512 585.4 645.3 512 645.3zm213.5-394.6c-26.5 0-47.9 21.4-47.9 47.9s21.4 47.9 47.9 47.9 47.9-21.3 47.9-47.9a47.84 47.84 0 00-47.9-47.9zM911.8 512c0-55.2.5-109.9-2.6-165-3.1-64-17.7-120.8-64.5-167.6-46.9-46.9-103.6-61.4-167.6-64.5-55.2-3.1-109.9-2.6-165-2.6-55.2 0-109.9-.5-165 2.6-64 3.1-120.8 17.7-167.6 64.5C132.6 226.3 118.1 283 115 347c-3.1 55.2-2.6 109.9-2.6 165s-.5 109.9 2.6 165c3.1 64 17.7 120.8 64.5 167.6 46.9 46.9 103.6 61.4 167.6 64.5 55.2 3.1 109.9 2.6 165 2.6 55.2 0 109.9.5 165-2.6 64-3.1 120.8-17.7 167.6-64.5 46.9-46.9 61.4-103.6 64.5-167.6 3.2-55.1 2.6-109.8 2.6-165zm-88 235.8c-7.3 18.2-16.1 31.8-30.2 45.8-14.1 14.1-27.6 22.9-45.8 30.2C695.2 844.7 570.3 840 512 840c-58.3 0-183.3 4.7-235.9-16.1-18.2-7.3-31.8-16.1-45.8-30.2-14.1-14.1-22.9-27.6-30.2-45.8C179.3 695.2 184 570.3 184 512c0-58.3-4.7-183.3 16.1-235.9 7.3-18.2 16.1-31.8 30.2-45.8s27.6-22.9 45.8-30.2C328.7 179.3 453.7 184 512 184s183.3-4.7 235.9 16.1c18.2 7.3 31.8 16.1 45.8 30.2 14.1 14.1 22.9 27.6 30.2 45.8C844.7 328.7 840 453.7 840 512c0 58.3 4.7 183.2-16.2 235.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/insurance.js b/src/blrec/data/webapp/assets/outline/insurance.js new file mode 100644 index 0000000..d025703 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/insurance.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'insurance', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M441.6 306.8L403 288.6a6.1 6.1 0 00-8.4 3.7c-17.5 58.5-45.2 110.1-82.2 153.6a6.05 6.05 0 00-1.2 5.6l13.2 43.5c1.3 4.4 7 5.7 10.2 2.4 7.7-8.1 15.4-16.9 23.1-26V656c0 4.4 3.6 8 8 8H403c4.4 0 8-3.6 8-8V393.1a429.2 429.2 0 0033.6-79c1-2.9-.3-6-3-7.3zm26.8 9.2v127.2c0 4.4 3.6 8 8 8h65.9v18.6h-94.9c-4.4 0-8 3.6-8 8v35.6c0 4.4 3.6 8 8 8h55.1c-19.1 30.8-42.4 55.7-71 76a6 6 0 00-1.6 8.1l22.8 36.5c1.9 3.1 6.2 3.8 8.9 1.4 31.6-26.8 58.7-62.9 80.6-107.6v120c0 4.4 3.6 8 8 8h36.2c4.4 0 8-3.6 8-8V536c21.3 41.7 47.5 77.5 78.1 106.9 2.6 2.5 6.8 2.1 8.9-.7l26.3-35.3c2-2.7 1.4-6.5-1.2-8.4-30.5-22.6-54.2-47.8-72.3-76.9h59c4.4 0 8-3.6 8-8V478c0-4.4-3.6-8-8-8h-98.8v-18.6h66.7c4.4 0 8-3.6 8-8V316c0-4.4-3.6-8-8-8H476.4c-4.4 0-8 3.6-8 8zm51.5 42.8h97.9v41.6h-97.9v-41.6zm347-188.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/insurance.svg b/src/blrec/data/webapp/assets/outline/insurance.svg new file mode 100644 index 0000000..13cdef5 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/insurance.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M441.6 306.8L403 288.6a6.1 6.1 0 00-8.4 3.7c-17.5 58.5-45.2 110.1-82.2 153.6a6.05 6.05 0 00-1.2 5.6l13.2 43.5c1.3 4.4 7 5.7 10.2 2.4 7.7-8.1 15.4-16.9 23.1-26V656c0 4.4 3.6 8 8 8H403c4.4 0 8-3.6 8-8V393.1a429.2 429.2 0 0033.6-79c1-2.9-.3-6-3-7.3zm26.8 9.2v127.2c0 4.4 3.6 8 8 8h65.9v18.6h-94.9c-4.4 0-8 3.6-8 8v35.6c0 4.4 3.6 8 8 8h55.1c-19.1 30.8-42.4 55.7-71 76a6 6 0 00-1.6 8.1l22.8 36.5c1.9 3.1 6.2 3.8 8.9 1.4 31.6-26.8 58.7-62.9 80.6-107.6v120c0 4.4 3.6 8 8 8h36.2c4.4 0 8-3.6 8-8V536c21.3 41.7 47.5 77.5 78.1 106.9 2.6 2.5 6.8 2.1 8.9-.7l26.3-35.3c2-2.7 1.4-6.5-1.2-8.4-30.5-22.6-54.2-47.8-72.3-76.9h59c4.4 0 8-3.6 8-8V478c0-4.4-3.6-8-8-8h-98.8v-18.6h66.7c4.4 0 8-3.6 8-8V316c0-4.4-3.6-8-8-8H476.4c-4.4 0-8 3.6-8 8zm51.5 42.8h97.9v41.6h-97.9v-41.6zm347-188.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/interaction.js b/src/blrec/data/webapp/assets/outline/interaction.js new file mode 100644 index 0000000..d92ae43 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/interaction.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'interaction', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/interaction.svg b/src/blrec/data/webapp/assets/outline/interaction.svg new file mode 100644 index 0000000..ee1e887 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/interaction.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/issues-close.js b/src/blrec/data/webapp/assets/outline/issues-close.js new file mode 100644 index 0000000..b9f74c2 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/issues-close.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'issues-close', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M464 688a48 48 0 1096 0 48 48 0 10-96 0zm72-112c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48zm400-188h-59.3c-2.6 0-5 1.2-6.5 3.3L763.7 538.1l-49.9-68.8a7.92 7.92 0 00-6.5-3.3H648c-6.5 0-10.3 7.4-6.5 12.7l109.2 150.7a16.1 16.1 0 0026 0l165.8-228.7c3.8-5.3 0-12.7-6.5-12.7zm-44 306h-64.2c-5.5 0-10.6 2.9-13.6 7.5a352.2 352.2 0 01-49.8 62.2A355.92 355.92 0 01651.1 840a355 355 0 01-138.7 27.9c-48.1 0-94.8-9.4-138.7-27.9a355.92 355.92 0 01-113.3-76.3A353.06 353.06 0 01184 650.5c-18.6-43.8-28-90.5-28-138.5s9.4-94.7 28-138.5c17.9-42.4 43.6-80.5 76.4-113.2 32.8-32.7 70.9-58.4 113.3-76.3a355 355 0 01138.7-27.9c48.1 0 94.8 9.4 138.7 27.9 42.4 17.9 80.5 43.6 113.3 76.3 19 19 35.6 39.8 49.8 62.2 2.9 4.7 8.1 7.5 13.6 7.5H892c6 0 9.8-6.3 7.2-11.6C828.8 178.5 684.7 82 517.7 80 278.9 77.2 80.5 272.5 80 511.2 79.5 750.1 273.3 944 512.4 944c169.2 0 315.6-97 386.7-238.4A8 8 0 00892 694z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/issues-close.svg b/src/blrec/data/webapp/assets/outline/issues-close.svg new file mode 100644 index 0000000..e8356fb --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/issues-close.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M464 688a48 48 0 1096 0 48 48 0 10-96 0zm72-112c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48zm400-188h-59.3c-2.6 0-5 1.2-6.5 3.3L763.7 538.1l-49.9-68.8a7.92 7.92 0 00-6.5-3.3H648c-6.5 0-10.3 7.4-6.5 12.7l109.2 150.7a16.1 16.1 0 0026 0l165.8-228.7c3.8-5.3 0-12.7-6.5-12.7zm-44 306h-64.2c-5.5 0-10.6 2.9-13.6 7.5a352.2 352.2 0 01-49.8 62.2A355.92 355.92 0 01651.1 840a355 355 0 01-138.7 27.9c-48.1 0-94.8-9.4-138.7-27.9a355.92 355.92 0 01-113.3-76.3A353.06 353.06 0 01184 650.5c-18.6-43.8-28-90.5-28-138.5s9.4-94.7 28-138.5c17.9-42.4 43.6-80.5 76.4-113.2 32.8-32.7 70.9-58.4 113.3-76.3a355 355 0 01138.7-27.9c48.1 0 94.8 9.4 138.7 27.9 42.4 17.9 80.5 43.6 113.3 76.3 19 19 35.6 39.8 49.8 62.2 2.9 4.7 8.1 7.5 13.6 7.5H892c6 0 9.8-6.3 7.2-11.6C828.8 178.5 684.7 82 517.7 80 278.9 77.2 80.5 272.5 80 511.2 79.5 750.1 273.3 944 512.4 944c169.2 0 315.6-97 386.7-238.4A8 8 0 00892 694z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/italic.js b/src/blrec/data/webapp/assets/outline/italic.js new file mode 100644 index 0000000..3f23ea6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/italic.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'italic', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M798 160H366c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h181.2l-156 544H229c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8H474.4l156-544H798c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/italic.svg b/src/blrec/data/webapp/assets/outline/italic.svg new file mode 100644 index 0000000..c4f9d28 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/italic.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M798 160H366c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h181.2l-156 544H229c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8H474.4l156-544H798c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/key.js b/src/blrec/data/webapp/assets/outline/key.js new file mode 100644 index 0000000..ca77f94 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/key.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'key', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M608 112c-167.9 0-304 136.1-304 304 0 70.3 23.9 135 63.9 186.5l-41.1 41.1-62.3-62.3a8.15 8.15 0 00-11.4 0l-39.8 39.8a8.15 8.15 0 000 11.4l62.3 62.3-44.9 44.9-62.3-62.3a8.15 8.15 0 00-11.4 0l-39.8 39.8a8.15 8.15 0 000 11.4l62.3 62.3-65.3 65.3a8.03 8.03 0 000 11.3l42.3 42.3c3.1 3.1 8.2 3.1 11.3 0l253.6-253.6A304.06 304.06 0 00608 720c167.9 0 304-136.1 304-304S775.9 112 608 112zm161.2 465.2C726.2 620.3 668.9 644 608 644c-60.9 0-118.2-23.7-161.2-66.8-43.1-43-66.8-100.3-66.8-161.2 0-60.9 23.7-118.2 66.8-161.2 43-43.1 100.3-66.8 161.2-66.8 60.9 0 118.2 23.7 161.2 66.8 43.1 43 66.8 100.3 66.8 161.2 0 60.9-23.7 118.2-66.8 161.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/key.svg b/src/blrec/data/webapp/assets/outline/key.svg new file mode 100644 index 0000000..eabc470 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/key.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M608 112c-167.9 0-304 136.1-304 304 0 70.3 23.9 135 63.9 186.5l-41.1 41.1-62.3-62.3a8.15 8.15 0 00-11.4 0l-39.8 39.8a8.15 8.15 0 000 11.4l62.3 62.3-44.9 44.9-62.3-62.3a8.15 8.15 0 00-11.4 0l-39.8 39.8a8.15 8.15 0 000 11.4l62.3 62.3-65.3 65.3a8.03 8.03 0 000 11.3l42.3 42.3c3.1 3.1 8.2 3.1 11.3 0l253.6-253.6A304.06 304.06 0 00608 720c167.9 0 304-136.1 304-304S775.9 112 608 112zm161.2 465.2C726.2 620.3 668.9 644 608 644c-60.9 0-118.2-23.7-161.2-66.8-43.1-43-66.8-100.3-66.8-161.2 0-60.9 23.7-118.2 66.8-161.2 43-43.1 100.3-66.8 161.2-66.8 60.9 0 118.2 23.7 161.2 66.8 43.1 43 66.8 100.3 66.8 161.2 0 60.9-23.7 118.2-66.8 161.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/laptop.js b/src/blrec/data/webapp/assets/outline/laptop.js new file mode 100644 index 0000000..5822bca --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/laptop.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'laptop', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M956.9 845.1L896.4 632V168c0-17.7-14.3-32-32-32h-704c-17.7 0-32 14.3-32 32v464L67.9 845.1C60.4 866 75.8 888 98 888h828.8c22.2 0 37.6-22 30.1-42.9zM200.4 208h624v395h-624V208zm228.3 608l8.1-37h150.3l8.1 37H428.7zm224 0l-19.1-86.7c-.8-3.7-4.1-6.3-7.8-6.3H398.2c-3.8 0-7 2.6-7.8 6.3L371.3 816H151l42.3-149h638.2l42.3 149H652.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/laptop.svg b/src/blrec/data/webapp/assets/outline/laptop.svg new file mode 100644 index 0000000..fcd1321 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/laptop.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M956.9 845.1L896.4 632V168c0-17.7-14.3-32-32-32h-704c-17.7 0-32 14.3-32 32v464L67.9 845.1C60.4 866 75.8 888 98 888h828.8c22.2 0 37.6-22 30.1-42.9zM200.4 208h624v395h-624V208zm228.3 608l8.1-37h150.3l8.1 37H428.7zm224 0l-19.1-86.7c-.8-3.7-4.1-6.3-7.8-6.3H398.2c-3.8 0-7 2.6-7.8 6.3L371.3 816H151l42.3-149h638.2l42.3 149H652.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/layout.js b/src/blrec/data/webapp/assets/outline/layout.js new file mode 100644 index 0000000..ff0f89b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/layout.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'layout', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-696 72h136v656H184V184zm656 656H384V384h456v456zM384 320V184h456v136H384z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/layout.svg b/src/blrec/data/webapp/assets/outline/layout.svg new file mode 100644 index 0000000..f4c0e28 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/layout.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-696 72h136v656H184V184zm656 656H384V384h456v456zM384 320V184h456v136H384z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/left-circle.js b/src/blrec/data/webapp/assets/outline/left-circle.js new file mode 100644 index 0000000..a0c96cd --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/left-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'left-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M603.3 327.5l-246 178a7.95 7.95 0 000 12.9l246 178c5.3 3.8 12.7 0 12.7-6.5V643c0-10.2-4.9-19.9-13.2-25.9L457.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5z" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/left-circle.svg b/src/blrec/data/webapp/assets/outline/left-circle.svg new file mode 100644 index 0000000..ed1931b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/left-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M603.3 327.5l-246 178a7.95 7.95 0 000 12.9l246 178c5.3 3.8 12.7 0 12.7-6.5V643c0-10.2-4.9-19.9-13.2-25.9L457.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5z" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/left-square.js b/src/blrec/data/webapp/assets/outline/left-square.js new file mode 100644 index 0000000..c168543 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/left-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'left-square', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M365.3 518.5l246 178c5.3 3.8 12.7 0 12.7-6.5v-46.9c0-10.2-4.9-19.9-13.2-25.9L465.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5l-246 178a8.05 8.05 0 000 13z" /><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/left-square.svg b/src/blrec/data/webapp/assets/outline/left-square.svg new file mode 100644 index 0000000..5f452a0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/left-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M365.3 518.5l246 178c5.3 3.8 12.7 0 12.7-6.5v-46.9c0-10.2-4.9-19.9-13.2-25.9L465.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5l-246 178a8.05 8.05 0 000 13z" /><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/left.js b/src/blrec/data/webapp/assets/outline/left.js new file mode 100644 index 0000000..2408515 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/left.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'left', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/left.svg b/src/blrec/data/webapp/assets/outline/left.svg new file mode 100644 index 0000000..230a275 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/left.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/like.js b/src/blrec/data/webapp/assets/outline/like.js new file mode 100644 index 0000000..3c5d9ae --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/like.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'like', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.4-65.5-111.1a67.67 67.67 0 00-34.3-9.3H572.4l6-122.9c1.4-29.7-9.1-57.9-29.5-79.4A106.62 106.62 0 00471 99.9c-52 0-98 35-111.8 85.1l-85.9 311H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h601.3c9.2 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7-.2-12.6-2-25.1-5.6-37.1zM184 852V568h81v284h-81zm636.4-353l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 22.4-13.2 42.6-33.6 51.8H329V564.8l99.5-360.5a44.1 44.1 0 0142.2-32.3c7.6 0 15.1 2.2 21.1 6.7 9.9 7.4 15.2 18.6 14.6 30.5l-9.6 198.4h314.4C829 418.5 840 436.9 840 456c0 16.5-7.2 32.1-19.6 43z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/like.svg b/src/blrec/data/webapp/assets/outline/like.svg new file mode 100644 index 0000000..e8e1922 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/like.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.4-65.5-111.1a67.67 67.67 0 00-34.3-9.3H572.4l6-122.9c1.4-29.7-9.1-57.9-29.5-79.4A106.62 106.62 0 00471 99.9c-52 0-98 35-111.8 85.1l-85.9 311H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h601.3c9.2 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7-.2-12.6-2-25.1-5.6-37.1zM184 852V568h81v284h-81zm636.4-353l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 22.4-13.2 42.6-33.6 51.8H329V564.8l99.5-360.5a44.1 44.1 0 0142.2-32.3c7.6 0 15.1 2.2 21.1 6.7 9.9 7.4 15.2 18.6 14.6 30.5l-9.6 198.4h314.4C829 418.5 840 436.9 840 456c0 16.5-7.2 32.1-19.6 43z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/line-chart.js b/src/blrec/data/webapp/assets/outline/line-chart.js new file mode 100644 index 0000000..bc6c048 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/line-chart.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'line-chart', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/line-chart.svg b/src/blrec/data/webapp/assets/outline/line-chart.svg new file mode 100644 index 0000000..3d106e4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/line-chart.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM305.8 637.7c3.1 3.1 8.1 3.1 11.3 0l138.3-137.6L583 628.5c3.1 3.1 8.2 3.1 11.3 0l275.4-275.3c3.1-3.1 3.1-8.2 0-11.3l-39.6-39.6a8.03 8.03 0 00-11.3 0l-230 229.9L461.4 404a8.03 8.03 0 00-11.3 0L266.3 586.7a8.03 8.03 0 000 11.3l39.5 39.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/line-height.js b/src/blrec/data/webapp/assets/outline/line-height.js new file mode 100644 index 0000000..6f12756 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/line-height.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'line-height', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M648 160H104c-4.4 0-8 3.6-8 8v128c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-64h168v560h-92c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-92V232h168v64c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zm272.8 546H856V318h64.8c6 0 9.4-7 5.7-11.7L825.7 178.7a7.14 7.14 0 00-11.3 0L713.6 306.3a7.23 7.23 0 005.7 11.7H784v388h-64.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5a7.2 7.2 0 00-5.6-11.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/line-height.svg b/src/blrec/data/webapp/assets/outline/line-height.svg new file mode 100644 index 0000000..b8464b9 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/line-height.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M648 160H104c-4.4 0-8 3.6-8 8v128c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-64h168v560h-92c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-92V232h168v64c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V168c0-4.4-3.6-8-8-8zm272.8 546H856V318h64.8c6 0 9.4-7 5.7-11.7L825.7 178.7a7.14 7.14 0 00-11.3 0L713.6 306.3a7.23 7.23 0 005.7 11.7H784v388h-64.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5a7.2 7.2 0 00-5.6-11.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/line.js b/src/blrec/data/webapp/assets/outline/line.js new file mode 100644 index 0000000..6bc52cb --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/line.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'line', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M904 476H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/line.svg b/src/blrec/data/webapp/assets/outline/line.svg new file mode 100644 index 0000000..2df455d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/line.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M904 476H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/link.js b/src/blrec/data/webapp/assets/outline/link.js new file mode 100644 index 0000000..0dd2dee --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/link.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'link', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/link.svg b/src/blrec/data/webapp/assets/outline/link.svg new file mode 100644 index 0000000..f7d8ca7 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/link.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/linkedin.js b/src/blrec/data/webapp/assets/outline/linkedin.js new file mode 100644 index 0000000..b5403bc --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/linkedin.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'linkedin', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M847.7 112H176.3c-35.5 0-64.3 28.8-64.3 64.3v671.4c0 35.5 28.8 64.3 64.3 64.3h671.4c35.5 0 64.3-28.8 64.3-64.3V176.3c0-35.5-28.8-64.3-64.3-64.3zm0 736c-447.8-.1-671.7-.2-671.7-.3.1-447.8.2-671.7.3-671.7 447.8.1 671.7.2 671.7.3-.1 447.8-.2 671.7-.3 671.7zM230.6 411.9h118.7v381.8H230.6zm59.4-52.2c37.9 0 68.8-30.8 68.8-68.8a68.8 68.8 0 10-137.6 0c-.1 38 30.7 68.8 68.8 68.8zm252.3 245.1c0-49.8 9.5-98 71.2-98 60.8 0 61.7 56.9 61.7 101.2v185.7h118.6V584.3c0-102.8-22.2-181.9-142.3-181.9-57.7 0-96.4 31.7-112.3 61.7h-1.6v-52.2H423.7v381.8h118.6V604.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/linkedin.svg b/src/blrec/data/webapp/assets/outline/linkedin.svg new file mode 100644 index 0000000..67ef18e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/linkedin.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M847.7 112H176.3c-35.5 0-64.3 28.8-64.3 64.3v671.4c0 35.5 28.8 64.3 64.3 64.3h671.4c35.5 0 64.3-28.8 64.3-64.3V176.3c0-35.5-28.8-64.3-64.3-64.3zm0 736c-447.8-.1-671.7-.2-671.7-.3.1-447.8.2-671.7.3-671.7 447.8.1 671.7.2 671.7.3-.1 447.8-.2 671.7-.3 671.7zM230.6 411.9h118.7v381.8H230.6zm59.4-52.2c37.9 0 68.8-30.8 68.8-68.8a68.8 68.8 0 10-137.6 0c-.1 38 30.7 68.8 68.8 68.8zm252.3 245.1c0-49.8 9.5-98 71.2-98 60.8 0 61.7 56.9 61.7 101.2v185.7h118.6V584.3c0-102.8-22.2-181.9-142.3-181.9-57.7 0-96.4 31.7-112.3 61.7h-1.6v-52.2H423.7v381.8h118.6V604.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/loading-3-quarters.js b/src/blrec/data/webapp/assets/outline/loading-3-quarters.js new file mode 100644 index 0000000..2e78070 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/loading-3-quarters.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'loading-3-quarters', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M512 1024c-69.1 0-136.2-13.5-199.3-40.2C251.7 958 197 921 150 874c-47-47-84-101.7-109.8-162.7C13.5 648.2 0 581.1 0 512c0-19.9 16.1-36 36-36s36 16.1 36 36c0 59.4 11.6 117 34.6 171.3 22.2 52.4 53.9 99.5 94.3 139.9 40.4 40.4 87.5 72.2 139.9 94.3C395 940.4 452.6 952 512 952c59.4 0 117-11.6 171.3-34.6 52.4-22.2 99.5-53.9 139.9-94.3 40.4-40.4 72.2-87.5 94.3-139.9C940.4 629 952 571.4 952 512c0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.2C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3s-13.5 136.2-40.2 199.3C958 772.3 921 827 874 874c-47 47-101.8 83.9-162.7 109.7-63.1 26.8-130.2 40.3-199.3 40.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/loading-3-quarters.svg b/src/blrec/data/webapp/assets/outline/loading-3-quarters.svg new file mode 100644 index 0000000..40f465c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/loading-3-quarters.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M512 1024c-69.1 0-136.2-13.5-199.3-40.2C251.7 958 197 921 150 874c-47-47-84-101.7-109.8-162.7C13.5 648.2 0 581.1 0 512c0-19.9 16.1-36 36-36s36 16.1 36 36c0 59.4 11.6 117 34.6 171.3 22.2 52.4 53.9 99.5 94.3 139.9 40.4 40.4 87.5 72.2 139.9 94.3C395 940.4 452.6 952 512 952c59.4 0 117-11.6 171.3-34.6 52.4-22.2 99.5-53.9 139.9-94.3 40.4-40.4 72.2-87.5 94.3-139.9C940.4 629 952 571.4 952 512c0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.2C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3s-13.5 136.2-40.2 199.3C958 772.3 921 827 874 874c-47 47-101.8 83.9-162.7 109.7-63.1 26.8-130.2 40.3-199.3 40.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/loading.js b/src/blrec/data/webapp/assets/outline/loading.js new file mode 100644 index 0000000..1a651e6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/loading.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'loading', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/loading.svg b/src/blrec/data/webapp/assets/outline/loading.svg new file mode 100644 index 0000000..d19c339 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/loading.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/lock.js b/src/blrec/data/webapp/assets/outline/lock.js new file mode 100644 index 0000000..c25e04e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/lock.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'lock', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 10-56 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/lock.svg b/src/blrec/data/webapp/assets/outline/lock.svg new file mode 100644 index 0000000..a550f6e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/lock.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 10-56 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/login.js b/src/blrec/data/webapp/assets/outline/login.js new file mode 100644 index 0000000..1bae4a2 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/login.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'login', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M521.7 82c-152.5-.4-286.7 78.5-363.4 197.7-3.4 5.3.4 12.3 6.7 12.3h70.3c4.8 0 9.3-2.1 12.3-5.8 7-8.5 14.5-16.7 22.4-24.5 32.6-32.5 70.5-58.1 112.7-75.9 43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 32.6 32.5 58.1 70.4 76 112.5C865.7 417.8 875 464.1 875 512c0 47.9-9.4 94.2-27.8 137.8-17.8 42.1-43.4 80-76 112.5s-70.5 58.1-112.7 75.9A352.8 352.8 0 01520.6 866c-47.9 0-94.3-9.4-137.9-27.8A353.84 353.84 0 01270 762.3c-7.9-7.9-15.3-16.1-22.4-24.5-3-3.7-7.6-5.8-12.3-5.8H165c-6.3 0-10.2 7-6.7 12.3C234.9 863.2 368.5 942 520.6 942c236.2 0 428-190.1 430.4-425.6C953.4 277.1 761.3 82.6 521.7 82zM395.02 624v-76h-314c-4.4 0-8-3.6-8-8v-56c0-4.4 3.6-8 8-8h314v-76c0-6.7 7.8-10.5 13-6.3l141.9 112a8 8 0 010 12.6l-141.9 112c-5.2 4.1-13 .4-13-6.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/login.svg b/src/blrec/data/webapp/assets/outline/login.svg new file mode 100644 index 0000000..9e4ed36 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/login.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M521.7 82c-152.5-.4-286.7 78.5-363.4 197.7-3.4 5.3.4 12.3 6.7 12.3h70.3c4.8 0 9.3-2.1 12.3-5.8 7-8.5 14.5-16.7 22.4-24.5 32.6-32.5 70.5-58.1 112.7-75.9 43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 32.6 32.5 58.1 70.4 76 112.5C865.7 417.8 875 464.1 875 512c0 47.9-9.4 94.2-27.8 137.8-17.8 42.1-43.4 80-76 112.5s-70.5 58.1-112.7 75.9A352.8 352.8 0 01520.6 866c-47.9 0-94.3-9.4-137.9-27.8A353.84 353.84 0 01270 762.3c-7.9-7.9-15.3-16.1-22.4-24.5-3-3.7-7.6-5.8-12.3-5.8H165c-6.3 0-10.2 7-6.7 12.3C234.9 863.2 368.5 942 520.6 942c236.2 0 428-190.1 430.4-425.6C953.4 277.1 761.3 82.6 521.7 82zM395.02 624v-76h-314c-4.4 0-8-3.6-8-8v-56c0-4.4 3.6-8 8-8h314v-76c0-6.7 7.8-10.5 13-6.3l141.9 112a8 8 0 010 12.6l-141.9 112c-5.2 4.1-13 .4-13-6.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/logout.js b/src/blrec/data/webapp/assets/outline/logout.js new file mode 100644 index 0000000..341e288 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/logout.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'logout', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M868 732h-70.3c-4.8 0-9.3 2.1-12.3 5.8-7 8.5-14.5 16.7-22.4 24.5a353.84 353.84 0 01-112.7 75.9A352.8 352.8 0 01512.4 866c-47.9 0-94.3-9.4-137.9-27.8a353.84 353.84 0 01-112.7-75.9 353.28 353.28 0 01-76-112.5C167.3 606.2 158 559.9 158 512s9.4-94.2 27.8-137.8c17.8-42.1 43.4-80 76-112.5s70.5-58.1 112.7-75.9c43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 7.9 7.9 15.3 16.1 22.4 24.5 3 3.7 7.6 5.8 12.3 5.8H868c6.3 0 10.2-7 6.7-12.3C798 160.5 663.8 81.6 511.3 82 271.7 82.6 79.6 277.1 82 516.4 84.4 751.9 276.2 942 512.4 942c152.1 0 285.7-78.8 362.3-197.7 3.4-5.3-.4-12.3-6.7-12.3zm88.9-226.3L815 393.7c-5.3-4.2-13-.4-13 6.3v76H488c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 000-12.6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/logout.svg b/src/blrec/data/webapp/assets/outline/logout.svg new file mode 100644 index 0000000..7e7bf35 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/logout.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M868 732h-70.3c-4.8 0-9.3 2.1-12.3 5.8-7 8.5-14.5 16.7-22.4 24.5a353.84 353.84 0 01-112.7 75.9A352.8 352.8 0 01512.4 866c-47.9 0-94.3-9.4-137.9-27.8a353.84 353.84 0 01-112.7-75.9 353.28 353.28 0 01-76-112.5C167.3 606.2 158 559.9 158 512s9.4-94.2 27.8-137.8c17.8-42.1 43.4-80 76-112.5s70.5-58.1 112.7-75.9c43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 7.9 7.9 15.3 16.1 22.4 24.5 3 3.7 7.6 5.8 12.3 5.8H868c6.3 0 10.2-7 6.7-12.3C798 160.5 663.8 81.6 511.3 82 271.7 82.6 79.6 277.1 82 516.4 84.4 751.9 276.2 942 512.4 942c152.1 0 285.7-78.8 362.3-197.7 3.4-5.3-.4-12.3-6.7-12.3zm88.9-226.3L815 393.7c-5.3-4.2-13-.4-13 6.3v76H488c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 000-12.6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/mac-command.js b/src/blrec/data/webapp/assets/outline/mac-command.js new file mode 100644 index 0000000..e68b748 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/mac-command.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'mac-command', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /><path d="M370.8 554.4c-54.6 0-98.8 44.2-98.8 98.8s44.2 98.8 98.8 98.8 98.8-44.2 98.8-98.8v-42.4h84.7v42.4c0 54.6 44.2 98.8 98.8 98.8s98.8-44.2 98.8-98.8-44.2-98.8-98.8-98.8h-42.4v-84.7h42.4c54.6 0 98.8-44.2 98.8-98.8 0-54.6-44.2-98.8-98.8-98.8s-98.8 44.2-98.8 98.8v42.4h-84.7v-42.4c0-54.6-44.2-98.8-98.8-98.8S272 316.2 272 370.8s44.2 98.8 98.8 98.8h42.4v84.7h-42.4zm42.4 98.8c0 23.4-19 42.4-42.4 42.4s-42.4-19-42.4-42.4 19-42.4 42.4-42.4h42.4v42.4zm197.6-282.4c0-23.4 19-42.4 42.4-42.4s42.4 19 42.4 42.4-19 42.4-42.4 42.4h-42.4v-42.4zm0 240h42.4c23.4 0 42.4 19 42.4 42.4s-19 42.4-42.4 42.4-42.4-19-42.4-42.4v-42.4zM469.6 469.6h84.7v84.7h-84.7v-84.7zm-98.8-56.4c-23.4 0-42.4-19-42.4-42.4s19-42.4 42.4-42.4 42.4 19 42.4 42.4v42.4h-42.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/mac-command.svg b/src/blrec/data/webapp/assets/outline/mac-command.svg new file mode 100644 index 0000000..deeda5c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/mac-command.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /><path d="M370.8 554.4c-54.6 0-98.8 44.2-98.8 98.8s44.2 98.8 98.8 98.8 98.8-44.2 98.8-98.8v-42.4h84.7v42.4c0 54.6 44.2 98.8 98.8 98.8s98.8-44.2 98.8-98.8-44.2-98.8-98.8-98.8h-42.4v-84.7h42.4c54.6 0 98.8-44.2 98.8-98.8 0-54.6-44.2-98.8-98.8-98.8s-98.8 44.2-98.8 98.8v42.4h-84.7v-42.4c0-54.6-44.2-98.8-98.8-98.8S272 316.2 272 370.8s44.2 98.8 98.8 98.8h42.4v84.7h-42.4zm42.4 98.8c0 23.4-19 42.4-42.4 42.4s-42.4-19-42.4-42.4 19-42.4 42.4-42.4h42.4v42.4zm197.6-282.4c0-23.4 19-42.4 42.4-42.4s42.4 19 42.4 42.4-19 42.4-42.4 42.4h-42.4v-42.4zm0 240h42.4c23.4 0 42.4 19 42.4 42.4s-19 42.4-42.4 42.4-42.4-19-42.4-42.4v-42.4zM469.6 469.6h84.7v84.7h-84.7v-84.7zm-98.8-56.4c-23.4 0-42.4-19-42.4-42.4s19-42.4 42.4-42.4 42.4 19 42.4 42.4v42.4h-42.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/mail.js b/src/blrec/data/webapp/assets/outline/mail.js new file mode 100644 index 0000000..d4867b0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/mail.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'mail', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 110.8V792H136V270.8l-27.6-21.5 39.3-50.5 42.8 33.3h643.1l42.8-33.3 39.3 50.5-27.7 21.5zM833.6 232L512 482 190.4 232l-42.8-33.3-39.3 50.5 27.6 21.5 341.6 265.6a55.99 55.99 0 0068.7 0L888 270.8l27.6-21.5-39.3-50.5-42.7 33.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/mail.svg b/src/blrec/data/webapp/assets/outline/mail.svg new file mode 100644 index 0000000..5406778 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/mail.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 110.8V792H136V270.8l-27.6-21.5 39.3-50.5 42.8 33.3h643.1l42.8-33.3 39.3 50.5-27.7 21.5zM833.6 232L512 482 190.4 232l-42.8-33.3-39.3 50.5 27.6 21.5 341.6 265.6a55.99 55.99 0 0068.7 0L888 270.8l27.6-21.5-39.3-50.5-42.7 33.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/man.js b/src/blrec/data/webapp/assets/outline/man.js new file mode 100644 index 0000000..96fdc17 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/man.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'man', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M874 120H622c-3.3 0-6 2.7-6 6v56c0 3.3 2.7 6 6 6h160.4L583.1 387.3c-50-38.5-111-59.3-175.1-59.3-76.9 0-149.3 30-203.6 84.4S120 539.1 120 616s30 149.3 84.4 203.6C258.7 874 331.1 904 408 904s149.3-30 203.6-84.4C666 765.3 696 692.9 696 616c0-64.1-20.8-124.9-59.2-174.9L836 241.9V402c0 3.3 2.7 6 6 6h56c3.3 0 6-2.7 6-6V150c0-16.5-13.5-30-30-30zM408 828c-116.9 0-212-95.1-212-212s95.1-212 212-212 212 95.1 212 212-95.1 212-212 212z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/man.svg b/src/blrec/data/webapp/assets/outline/man.svg new file mode 100644 index 0000000..003f8e6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/man.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M874 120H622c-3.3 0-6 2.7-6 6v56c0 3.3 2.7 6 6 6h160.4L583.1 387.3c-50-38.5-111-59.3-175.1-59.3-76.9 0-149.3 30-203.6 84.4S120 539.1 120 616s30 149.3 84.4 203.6C258.7 874 331.1 904 408 904s149.3-30 203.6-84.4C666 765.3 696 692.9 696 616c0-64.1-20.8-124.9-59.2-174.9L836 241.9V402c0 3.3 2.7 6 6 6h56c3.3 0 6-2.7 6-6V150c0-16.5-13.5-30-30-30zM408 828c-116.9 0-212-95.1-212-212s95.1-212 212-212 212 95.1 212 212-95.1 212-212 212z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/medicine-box.js b/src/blrec/data/webapp/assets/outline/medicine-box.js new file mode 100644 index 0000000..71c0d69 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/medicine-box.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'medicine-box', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M839.2 278.1a32 32 0 00-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 00-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM360 184h304v72H360v-72zm480 656H184V513.4L244.3 328h535.4L840 513.4V840zM652 572H544V464c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V636h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/medicine-box.svg b/src/blrec/data/webapp/assets/outline/medicine-box.svg new file mode 100644 index 0000000..6583a4e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/medicine-box.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M839.2 278.1a32 32 0 00-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 00-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM360 184h304v72H360v-72zm480 656H184V513.4L244.3 328h535.4L840 513.4V840zM652 572H544V464c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V636h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/medium-workmark.js b/src/blrec/data/webapp/assets/outline/medium-workmark.js new file mode 100644 index 0000000..371b6bd --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/medium-workmark.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'medium-workmark', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M517.2 590.55c0 3.55 0 4.36 2.4 6.55l13.43 13.25v.57h-59.57v-25.47a41.44 41.44 0 01-39.5 27.65c-30.61 0-52.84-24.25-52.84-68.87 0-41.8 23.99-69.69 57.65-69.69a35.15 35.15 0 0134.61 21.67v-56.19a6.99 6.99 0 00-2.71-6.79l-12.8-12.45v-.56l59.33-7.04v177.37zm-43.74-8.09v-83.83a22.2 22.2 0 00-17.74-8.4c-14.48 0-28.47 13.25-28.47 52.62 0 36.86 12.07 49.88 27.1 49.88a23.91 23.91 0 0019.11-10.27zm83.23 28.46V497.74a7.65 7.65 0 00-2.4-6.79l-13.19-13.74v-.57h59.56v114.8c0 3.55 0 4.36 2.4 6.54l13.12 12.45v.57l-59.49-.08zm-2.16-175.67c0-13.4 10.74-24.25 23.99-24.25 13.25 0 23.98 10.86 23.98 24.25 0 13.4-10.73 24.25-23.98 24.25s-23.99-10.85-23.99-24.25zm206.83 155.06c0 3.55 0 4.6 2.4 6.79l13.43 13.25v.57h-59.88V581.9a43.4 43.4 0 01-41.01 31.2c-26.55 0-40.78-19.56-40.78-56.59 0-17.86 0-37.43.56-59.41a6.91 6.91 0 00-2.4-6.55L620.5 477.2v-.57h59.09v73.81c0 24.25 3.51 40.42 18.54 40.42a23.96 23.96 0 0019.35-12.2v-80.85a7.65 7.65 0 00-2.4-6.79l-13.27-13.82v-.57h59.56V590.3zm202.76 20.6c0-4.36.8-59.97.8-72.75 0-24.25-3.76-40.98-20.63-40.98a26.7 26.7 0 00-21.19 11.64 99.68 99.68 0 012.4 23.04c0 16.81-.56 38.23-.8 59.66a6.91 6.91 0 002.4 6.55l13.43 12.45v.56h-60.12c0-4.04.8-59.98.8-72.76 0-24.65-3.76-40.98-20.39-40.98-8.2.3-15.68 4.8-19.83 11.96v82.46c0 3.56 0 4.37 2.4 6.55l13.11 12.45v.56h-59.48V498.15a7.65 7.65 0 00-2.4-6.8l-13.19-14.14v-.57H841v28.78c5.53-19 23.13-31.76 42.7-30.96 19.82 0 33.26 11.16 38.93 32.34a46.41 46.41 0 0144.77-32.34c26.55 0 41.58 19.8 41.58 57.23 0 17.87-.56 38.24-.8 59.66a6.5 6.5 0 002.72 6.55l13.11 12.45v.57h-59.88zM215.87 593.3l17.66 17.05v.57h-89.62v-.57l17.99-17.05a6.91 6.91 0 002.4-6.55V477.69c0-4.6 0-10.83.8-16.16L104.66 613.1h-.72l-62.6-139.45c-1.37-3.47-1.77-3.72-2.65-6.06v91.43a32.08 32.08 0 002.96 17.87l25.19 33.46v.57H0v-.57l25.18-33.55a32.16 32.16 0 002.96-17.78V457.97A19.71 19.71 0 0024 444.15L6.16 420.78v-.56h63.96l53.56 118.1 47.17-118.1h62.6v.56l-17.58 19.8a6.99 6.99 0 00-2.72 6.8v139.37a6.5 6.5 0 002.72 6.55zm70.11-54.65v.56c0 34.6 17.67 48.5 38.38 48.5a43.5 43.5 0 0040.77-24.97h.56c-7.2 34.2-28.14 50.36-59.48 50.36-33.82 0-65.72-20.61-65.72-68.39 0-50.2 31.98-70.25 67.32-70.25 28.46 0 58.76 13.58 58.76 57.24v6.95h-80.59zm0-6.95h39.42v-7.04c0-35.57-7.28-45.03-18.23-45.03-13.27 0-21.35 14.15-21.35 52.07h.16z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/medium-workmark.svg b/src/blrec/data/webapp/assets/outline/medium-workmark.svg new file mode 100644 index 0000000..7118d27 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/medium-workmark.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M517.2 590.55c0 3.55 0 4.36 2.4 6.55l13.43 13.25v.57h-59.57v-25.47a41.44 41.44 0 01-39.5 27.65c-30.61 0-52.84-24.25-52.84-68.87 0-41.8 23.99-69.69 57.65-69.69a35.15 35.15 0 0134.61 21.67v-56.19a6.99 6.99 0 00-2.71-6.79l-12.8-12.45v-.56l59.33-7.04v177.37zm-43.74-8.09v-83.83a22.2 22.2 0 00-17.74-8.4c-14.48 0-28.47 13.25-28.47 52.62 0 36.86 12.07 49.88 27.1 49.88a23.91 23.91 0 0019.11-10.27zm83.23 28.46V497.74a7.65 7.65 0 00-2.4-6.79l-13.19-13.74v-.57h59.56v114.8c0 3.55 0 4.36 2.4 6.54l13.12 12.45v.57l-59.49-.08zm-2.16-175.67c0-13.4 10.74-24.25 23.99-24.25 13.25 0 23.98 10.86 23.98 24.25 0 13.4-10.73 24.25-23.98 24.25s-23.99-10.85-23.99-24.25zm206.83 155.06c0 3.55 0 4.6 2.4 6.79l13.43 13.25v.57h-59.88V581.9a43.4 43.4 0 01-41.01 31.2c-26.55 0-40.78-19.56-40.78-56.59 0-17.86 0-37.43.56-59.41a6.91 6.91 0 00-2.4-6.55L620.5 477.2v-.57h59.09v73.81c0 24.25 3.51 40.42 18.54 40.42a23.96 23.96 0 0019.35-12.2v-80.85a7.65 7.65 0 00-2.4-6.79l-13.27-13.82v-.57h59.56V590.3zm202.76 20.6c0-4.36.8-59.97.8-72.75 0-24.25-3.76-40.98-20.63-40.98a26.7 26.7 0 00-21.19 11.64 99.68 99.68 0 012.4 23.04c0 16.81-.56 38.23-.8 59.66a6.91 6.91 0 002.4 6.55l13.43 12.45v.56h-60.12c0-4.04.8-59.98.8-72.76 0-24.65-3.76-40.98-20.39-40.98-8.2.3-15.68 4.8-19.83 11.96v82.46c0 3.56 0 4.37 2.4 6.55l13.11 12.45v.56h-59.48V498.15a7.65 7.65 0 00-2.4-6.8l-13.19-14.14v-.57H841v28.78c5.53-19 23.13-31.76 42.7-30.96 19.82 0 33.26 11.16 38.93 32.34a46.41 46.41 0 0144.77-32.34c26.55 0 41.58 19.8 41.58 57.23 0 17.87-.56 38.24-.8 59.66a6.5 6.5 0 002.72 6.55l13.11 12.45v.57h-59.88zM215.87 593.3l17.66 17.05v.57h-89.62v-.57l17.99-17.05a6.91 6.91 0 002.4-6.55V477.69c0-4.6 0-10.83.8-16.16L104.66 613.1h-.72l-62.6-139.45c-1.37-3.47-1.77-3.72-2.65-6.06v91.43a32.08 32.08 0 002.96 17.87l25.19 33.46v.57H0v-.57l25.18-33.55a32.16 32.16 0 002.96-17.78V457.97A19.71 19.71 0 0024 444.15L6.16 420.78v-.56h63.96l53.56 118.1 47.17-118.1h62.6v.56l-17.58 19.8a6.99 6.99 0 00-2.72 6.8v139.37a6.5 6.5 0 002.72 6.55zm70.11-54.65v.56c0 34.6 17.67 48.5 38.38 48.5a43.5 43.5 0 0040.77-24.97h.56c-7.2 34.2-28.14 50.36-59.48 50.36-33.82 0-65.72-20.61-65.72-68.39 0-50.2 31.98-70.25 67.32-70.25 28.46 0 58.76 13.58 58.76 57.24v6.95h-80.59zm0-6.95h39.42v-7.04c0-35.57-7.28-45.03-18.23-45.03-13.27 0-21.35 14.15-21.35 52.07h.16z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/medium.js b/src/blrec/data/webapp/assets/outline/medium.js new file mode 100644 index 0000000..0439432 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/medium.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'medium', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M834.7 279.8l61.3-58.9V208H683.7L532.4 586.4 360.3 208H137.7v12.9l71.6 86.6c7 6.4 10.6 15.8 9.7 25.2V673c2.2 12.3-1.7 24.8-10.3 33.7L128 805v12.7h228.6v-12.9l-80.6-98a39.99 39.99 0 01-11.1-33.7V378.7l200.7 439.2h23.3l172.6-439.2v349.9c0 9.2 0 11.1-6 17.2l-62.1 60.3V819h301.2v-12.9l-59.9-58.9c-5.2-4-7.9-10.7-6.8-17.2V297a18.1 18.1 0 016.8-17.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/medium.svg b/src/blrec/data/webapp/assets/outline/medium.svg new file mode 100644 index 0000000..5cec2dd --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/medium.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M834.7 279.8l61.3-58.9V208H683.7L532.4 586.4 360.3 208H137.7v12.9l71.6 86.6c7 6.4 10.6 15.8 9.7 25.2V673c2.2 12.3-1.7 24.8-10.3 33.7L128 805v12.7h228.6v-12.9l-80.6-98a39.99 39.99 0 01-11.1-33.7V378.7l200.7 439.2h23.3l172.6-439.2v349.9c0 9.2 0 11.1-6 17.2l-62.1 60.3V819h301.2v-12.9l-59.9-58.9c-5.2-4-7.9-10.7-6.8-17.2V297a18.1 18.1 0 016.8-17.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/meh.js b/src/blrec/data/webapp/assets/outline/meh.js new file mode 100644 index 0000000..f20e8c3 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/meh.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'meh', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M288 421a48 48 0 1096 0 48 48 0 10-96 0zm352 0a48 48 0 1096 0 48 48 0 10-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 01248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 01249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 01775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 01775 775zM664 565H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/meh.svg b/src/blrec/data/webapp/assets/outline/meh.svg new file mode 100644 index 0000000..15654a6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/meh.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M288 421a48 48 0 1096 0 48 48 0 10-96 0zm352 0a48 48 0 1096 0 48 48 0 10-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 01248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 01249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 01775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 01775 775zM664 565H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/menu-fold.js b/src/blrec/data/webapp/assets/outline/menu-fold.js new file mode 100644 index 0000000..d978f8b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/menu-fold.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'menu-fold', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 000 13.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/menu-fold.svg b/src/blrec/data/webapp/assets/outline/menu-fold.svg new file mode 100644 index 0000000..5951e56 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/menu-fold.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 000 13.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/menu-unfold.js b/src/blrec/data/webapp/assets/outline/menu-unfold.js new file mode 100644 index 0000000..9117292 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/menu-unfold.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'menu-unfold', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 000-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0014.4 7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/menu-unfold.svg b/src/blrec/data/webapp/assets/outline/menu-unfold.svg new file mode 100644 index 0000000..4ac3d06 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/menu-unfold.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 000-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0014.4 7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/menu.js b/src/blrec/data/webapp/assets/outline/menu.js new file mode 100644 index 0000000..1ef7c6b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/menu.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'menu', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M904 160H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0 624H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0-312H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/menu.svg b/src/blrec/data/webapp/assets/outline/menu.svg new file mode 100644 index 0000000..4d321e6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/menu.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M904 160H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0 624H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8zm0-312H120c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/merge-cells.js b/src/blrec/data/webapp/assets/outline/merge-cells.js new file mode 100644 index 0000000..742f32d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/merge-cells.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'merge-cells', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M482.2 508.4L331.3 389c-3-2.4-7.3-.2-7.3 3.6V478H184V184h204v128c0 2.2 1.8 4 4 4h60c2.2 0 4-1.8 4-4V144c0-15.5-12.5-28-28-28H144c-15.5 0-28 12.5-28 28v736c0 15.5 12.5 28 28 28h284c15.5 0 28-12.5 28-28V712c0-2.2-1.8-4-4-4h-60c-2.2 0-4 1.8-4 4v128H184V546h140v85.4c0 3.8 4.4 6 7.3 3.6l150.9-119.4a4.5 4.5 0 000-7.2zM880 116H596c-15.5 0-28 12.5-28 28v168c0 2.2 1.8 4 4 4h60c2.2 0 4-1.8 4-4V184h204v294H700v-85.4c0-3.8-4.3-6-7.3-3.6l-151 119.4a4.52 4.52 0 000 7.1l151 119.5c2.9 2.3 7.3.2 7.3-3.6V546h140v294H636V712c0-2.2-1.8-4-4-4h-60c-2.2 0-4 1.8-4 4v168c0 15.5 12.5 28 28 28h284c15.5 0 28-12.5 28-28V144c0-15.5-12.5-28-28-28z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/merge-cells.svg b/src/blrec/data/webapp/assets/outline/merge-cells.svg new file mode 100644 index 0000000..0565450 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/merge-cells.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M482.2 508.4L331.3 389c-3-2.4-7.3-.2-7.3 3.6V478H184V184h204v128c0 2.2 1.8 4 4 4h60c2.2 0 4-1.8 4-4V144c0-15.5-12.5-28-28-28H144c-15.5 0-28 12.5-28 28v736c0 15.5 12.5 28 28 28h284c15.5 0 28-12.5 28-28V712c0-2.2-1.8-4-4-4h-60c-2.2 0-4 1.8-4 4v128H184V546h140v85.4c0 3.8 4.4 6 7.3 3.6l150.9-119.4a4.5 4.5 0 000-7.2zM880 116H596c-15.5 0-28 12.5-28 28v168c0 2.2 1.8 4 4 4h60c2.2 0 4-1.8 4-4V184h204v294H700v-85.4c0-3.8-4.3-6-7.3-3.6l-151 119.4a4.52 4.52 0 000 7.1l151 119.5c2.9 2.3 7.3.2 7.3-3.6V546h140v294H636V712c0-2.2-1.8-4-4-4h-60c-2.2 0-4 1.8-4 4v168c0 15.5 12.5 28 28 28h284c15.5 0 28-12.5 28-28V144c0-15.5-12.5-28-28-28z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/message.js b/src/blrec/data/webapp/assets/outline/message.js new file mode 100644 index 0000000..9202645 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/message.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'message', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/message.svg b/src/blrec/data/webapp/assets/outline/message.svg new file mode 100644 index 0000000..7f47c66 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/message.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/minus-circle.js b/src/blrec/data/webapp/assets/outline/minus-circle.js new file mode 100644 index 0000000..a3ec97d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/minus-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'minus-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/minus-circle.svg b/src/blrec/data/webapp/assets/outline/minus-circle.svg new file mode 100644 index 0000000..2a1eb91 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/minus-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/minus-square.js b/src/blrec/data/webapp/assets/outline/minus-square.js new file mode 100644 index 0000000..77c22a4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/minus-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'minus-square', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" /><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/minus-square.svg b/src/blrec/data/webapp/assets/outline/minus-square.svg new file mode 100644 index 0000000..401deb2 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/minus-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" /><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/minus.js b/src/blrec/data/webapp/assets/outline/minus.js new file mode 100644 index 0000000..cbde30b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/minus.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'minus', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M872 474H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/minus.svg b/src/blrec/data/webapp/assets/outline/minus.svg new file mode 100644 index 0000000..7f1e920 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/minus.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M872 474H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/mobile.js b/src/blrec/data/webapp/assets/outline/mobile.js new file mode 100644 index 0000000..5348008 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/mobile.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'mobile', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M744 62H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V126c0-35.3-28.7-64-64-64zm-8 824H288V134h448v752zM472 784a40 40 0 1080 0 40 40 0 10-80 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/mobile.svg b/src/blrec/data/webapp/assets/outline/mobile.svg new file mode 100644 index 0000000..f11da6e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/mobile.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M744 62H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V126c0-35.3-28.7-64-64-64zm-8 824H288V134h448v752zM472 784a40 40 0 1080 0 40 40 0 10-80 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/money-collect.js b/src/blrec/data/webapp/assets/outline/money-collect.js new file mode 100644 index 0000000..6bfce9a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/money-collect.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'money-collect', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M911.5 700.7a8 8 0 00-10.3-4.8L840 718.2V180c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V763c0 3.3 2.1 6.3 5.3 7.5L501 910.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zM512 837.5l-256-93.1V184h512v560.4l-256 93.1zM660.6 312h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 00-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.6-1.2 1-2.5 1-3.8-.1-4.3-3.7-7.9-8.1-7.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/money-collect.svg b/src/blrec/data/webapp/assets/outline/money-collect.svg new file mode 100644 index 0000000..d5f65c1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/money-collect.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M911.5 700.7a8 8 0 00-10.3-4.8L840 718.2V180c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V763c0 3.3 2.1 6.3 5.3 7.5L501 910.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zM512 837.5l-256-93.1V184h512v560.4l-256 93.1zM660.6 312h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 00-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.6-1.2 1-2.5 1-3.8-.1-4.3-3.7-7.9-8.1-7.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/monitor.js b/src/blrec/data/webapp/assets/outline/monitor.js new file mode 100644 index 0000000..f21b526 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/monitor.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'monitor', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M692.8 412.7l.2-.2-34.6-44.3a7.97 7.97 0 00-11.2-1.4l-50.4 39.3-70.5-90.1a7.97 7.97 0 00-11.2-1.4l-37.9 29.7a7.97 7.97 0 00-1.4 11.2l70.5 90.2-.2.1 34.6 44.3c2.7 3.5 7.7 4.1 11.2 1.4l50.4-39.3 64.1 82c2.7 3.5 7.7 4.1 11.2 1.4l37.9-29.6c3.5-2.7 4.1-7.7 1.4-11.2l-64.1-82.1zM608 112c-167.9 0-304 136.1-304 304 0 70.3 23.9 135 63.9 186.5L114.3 856.1a8.03 8.03 0 000 11.3l42.3 42.3c3.1 3.1 8.2 3.1 11.3 0l253.6-253.6C473 696.1 537.7 720 608 720c167.9 0 304-136.1 304-304S775.9 112 608 112zm161.2 465.2C726.2 620.3 668.9 644 608 644s-118.2-23.7-161.2-66.8C403.7 534.2 380 476.9 380 416s23.7-118.2 66.8-161.2c43-43.1 100.3-66.8 161.2-66.8s118.2 23.7 161.2 66.8c43.1 43 66.8 100.3 66.8 161.2s-23.7 118.2-66.8 161.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/monitor.svg b/src/blrec/data/webapp/assets/outline/monitor.svg new file mode 100644 index 0000000..96048b1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/monitor.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M692.8 412.7l.2-.2-34.6-44.3a7.97 7.97 0 00-11.2-1.4l-50.4 39.3-70.5-90.1a7.97 7.97 0 00-11.2-1.4l-37.9 29.7a7.97 7.97 0 00-1.4 11.2l70.5 90.2-.2.1 34.6 44.3c2.7 3.5 7.7 4.1 11.2 1.4l50.4-39.3 64.1 82c2.7 3.5 7.7 4.1 11.2 1.4l37.9-29.6c3.5-2.7 4.1-7.7 1.4-11.2l-64.1-82.1zM608 112c-167.9 0-304 136.1-304 304 0 70.3 23.9 135 63.9 186.5L114.3 856.1a8.03 8.03 0 000 11.3l42.3 42.3c3.1 3.1 8.2 3.1 11.3 0l253.6-253.6C473 696.1 537.7 720 608 720c167.9 0 304-136.1 304-304S775.9 112 608 112zm161.2 465.2C726.2 620.3 668.9 644 608 644s-118.2-23.7-161.2-66.8C403.7 534.2 380 476.9 380 416s23.7-118.2 66.8-161.2c43-43.1 100.3-66.8 161.2-66.8s118.2 23.7 161.2 66.8c43.1 43 66.8 100.3 66.8 161.2s-23.7 118.2-66.8 161.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/more.js b/src/blrec/data/webapp/assets/outline/more.js new file mode 100644 index 0000000..16959d8 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/more.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'more', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M456 231a56 56 0 10112 0 56 56 0 10-112 0zm0 280a56 56 0 10112 0 56 56 0 10-112 0zm0 280a56 56 0 10112 0 56 56 0 10-112 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/more.svg b/src/blrec/data/webapp/assets/outline/more.svg new file mode 100644 index 0000000..cfa5194 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/more.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M456 231a56 56 0 10112 0 56 56 0 10-112 0zm0 280a56 56 0 10112 0 56 56 0 10-112 0zm0 280a56 56 0 10112 0 56 56 0 10-112 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/node-collapse.js b/src/blrec/data/webapp/assets/outline/node-collapse.js new file mode 100644 index 0000000..d12d19b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/node-collapse.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'node-collapse', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M952 612c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H298a95.92 95.92 0 00-89-60c-53 0-96 43-96 96s43 96 96 96c40.3 0 74.8-24.8 89-60h150.3v152c0 55.2 44.8 100 100 100H952c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H548.3c-15.5 0-28-12.5-28-28V612H952zM451.7 313.7l172.5 136.2c6.3 5.1 15.8.5 15.8-7.7V344h264c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H640v-98.2c0-8.1-9.4-12.8-15.8-7.7L451.7 298.3a9.9 9.9 0 000 15.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/node-collapse.svg b/src/blrec/data/webapp/assets/outline/node-collapse.svg new file mode 100644 index 0000000..056584c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/node-collapse.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M952 612c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H298a95.92 95.92 0 00-89-60c-53 0-96 43-96 96s43 96 96 96c40.3 0 74.8-24.8 89-60h150.3v152c0 55.2 44.8 100 100 100H952c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H548.3c-15.5 0-28-12.5-28-28V612H952zM451.7 313.7l172.5 136.2c6.3 5.1 15.8.5 15.8-7.7V344h264c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H640v-98.2c0-8.1-9.4-12.8-15.8-7.7L451.7 298.3a9.9 9.9 0 000 15.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/node-expand.js b/src/blrec/data/webapp/assets/outline/node-expand.js new file mode 100644 index 0000000..462331a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/node-expand.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'node-expand', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M952 612c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H298a95.92 95.92 0 00-89-60c-53 0-96 43-96 96s43 96 96 96c40.3 0 74.8-24.8 89-60h150.3v152c0 55.2 44.8 100 100 100H952c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H548.3c-15.5 0-28-12.5-28-28V612H952zM456 344h264v98.2c0 8.1 9.5 12.8 15.8 7.7l172.5-136.2c5-3.9 5-11.4 0-15.3L735.8 162.1c-6.4-5.1-15.8-.5-15.8 7.7V268H456c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/node-expand.svg b/src/blrec/data/webapp/assets/outline/node-expand.svg new file mode 100644 index 0000000..9c06814 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/node-expand.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M952 612c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H298a95.92 95.92 0 00-89-60c-53 0-96 43-96 96s43 96 96 96c40.3 0 74.8-24.8 89-60h150.3v152c0 55.2 44.8 100 100 100H952c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H548.3c-15.5 0-28-12.5-28-28V612H952zM456 344h264v98.2c0 8.1 9.5 12.8 15.8 7.7l172.5-136.2c5-3.9 5-11.4 0-15.3L735.8 162.1c-6.4-5.1-15.8-.5-15.8 7.7V268H456c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/node-index.js b/src/blrec/data/webapp/assets/outline/node-index.js new file mode 100644 index 0000000..4bf4719 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/node-index.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'node-index', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M843.5 737.4c-12.4-75.2-79.2-129.1-155.3-125.4S550.9 676 546 752c-153.5-4.8-208-40.7-199.1-113.7 3.3-27.3 19.8-41.9 50.1-49 18.4-4.3 38.8-4.9 57.3-3.2 1.7.2 3.5.3 5.2.5 11.3 2.7 22.8 5 34.3 6.8 34.1 5.6 68.8 8.4 101.8 6.6 92.8-5 156-45.9 159.2-132.7 3.1-84.1-54.7-143.7-147.9-183.6-29.9-12.8-61.6-22.7-93.3-30.2-14.3-3.4-26.3-5.7-35.2-7.2-7.9-75.9-71.5-133.8-147.8-134.4-76.3-.6-140.9 56.1-150.1 131.9s40 146.3 114.2 163.9c74.2 17.6 149.9-23.3 175.7-95.1 9.4 1.7 18.7 3.6 28 5.8 28.2 6.6 56.4 15.4 82.4 26.6 70.7 30.2 109.3 70.1 107.5 119.9-1.6 44.6-33.6 65.2-96.2 68.6-27.5 1.5-57.6-.9-87.3-5.8-8.3-1.4-15.9-2.8-22.6-4.3-3.9-.8-6.6-1.5-7.8-1.8l-3.1-.6c-2.2-.3-5.9-.8-10.7-1.3-25-2.3-52.1-1.5-78.5 4.6-55.2 12.9-93.9 47.2-101.1 105.8-15.7 126.2 78.6 184.7 276 188.9 29.1 70.4 106.4 107.9 179.6 87 73.3-20.9 119.3-93.4 106.9-168.6zM329.1 345.2a83.3 83.3 0 11.01-166.61 83.3 83.3 0 01-.01 166.61zM695.6 845a83.3 83.3 0 11.01-166.61A83.3 83.3 0 01695.6 845z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/node-index.svg b/src/blrec/data/webapp/assets/outline/node-index.svg new file mode 100644 index 0000000..5987ffe --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/node-index.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M843.5 737.4c-12.4-75.2-79.2-129.1-155.3-125.4S550.9 676 546 752c-153.5-4.8-208-40.7-199.1-113.7 3.3-27.3 19.8-41.9 50.1-49 18.4-4.3 38.8-4.9 57.3-3.2 1.7.2 3.5.3 5.2.5 11.3 2.7 22.8 5 34.3 6.8 34.1 5.6 68.8 8.4 101.8 6.6 92.8-5 156-45.9 159.2-132.7 3.1-84.1-54.7-143.7-147.9-183.6-29.9-12.8-61.6-22.7-93.3-30.2-14.3-3.4-26.3-5.7-35.2-7.2-7.9-75.9-71.5-133.8-147.8-134.4-76.3-.6-140.9 56.1-150.1 131.9s40 146.3 114.2 163.9c74.2 17.6 149.9-23.3 175.7-95.1 9.4 1.7 18.7 3.6 28 5.8 28.2 6.6 56.4 15.4 82.4 26.6 70.7 30.2 109.3 70.1 107.5 119.9-1.6 44.6-33.6 65.2-96.2 68.6-27.5 1.5-57.6-.9-87.3-5.8-8.3-1.4-15.9-2.8-22.6-4.3-3.9-.8-6.6-1.5-7.8-1.8l-3.1-.6c-2.2-.3-5.9-.8-10.7-1.3-25-2.3-52.1-1.5-78.5 4.6-55.2 12.9-93.9 47.2-101.1 105.8-15.7 126.2 78.6 184.7 276 188.9 29.1 70.4 106.4 107.9 179.6 87 73.3-20.9 119.3-93.4 106.9-168.6zM329.1 345.2a83.3 83.3 0 11.01-166.61 83.3 83.3 0 01-.01 166.61zM695.6 845a83.3 83.3 0 11.01-166.61A83.3 83.3 0 01695.6 845z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/notification.js b/src/blrec/data/webapp/assets/outline/notification.js new file mode 100644 index 0000000..994a1ed --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/notification.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'notification', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.7c-3.7 11.6-5.7 23.9-5.7 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1zm496 58.4L318.8 611.3l-12.9-5.2H184V417.9h121.9l12.9-5.2L840 203.3v617.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/notification.svg b/src/blrec/data/webapp/assets/outline/notification.svg new file mode 100644 index 0000000..2ca5bf9 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/notification.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.7c-3.7 11.6-5.7 23.9-5.7 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1zm496 58.4L318.8 611.3l-12.9-5.2H184V417.9h121.9l12.9-5.2L840 203.3v617.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/number.js b/src/blrec/data/webapp/assets/outline/number.js new file mode 100644 index 0000000..ef66966 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/number.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'number', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M872 394c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H708V152c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v166H400V152c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v166H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h168v236H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h168v166c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V706h228v166c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V706h164c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H708V394h164zM628 630H400V394h228v236z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/number.svg b/src/blrec/data/webapp/assets/outline/number.svg new file mode 100644 index 0000000..14aa74f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/number.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M872 394c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H708V152c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v166H400V152c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v166H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h168v236H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h168v166c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V706h228v166c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V706h164c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H708V394h164zM628 630H400V394h228v236z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/one-to-one.js b/src/blrec/data/webapp/assets/outline/one-to-one.js new file mode 100644 index 0000000..16adb20 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/one-to-one.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'one-to-one', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M316 672h60c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8zm196-50c22.1 0 40-17.9 40-39 0-23.1-17.9-41-40-41s-40 17.9-40 41c0 21.1 17.9 39 40 39zm0-140c22.1 0 40-17.9 40-39 0-23.1-17.9-41-40-41s-40 17.9-40 41c0 21.1 17.9 39 40 39z" /><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /><path d="M648 672h60c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/one-to-one.svg b/src/blrec/data/webapp/assets/outline/one-to-one.svg new file mode 100644 index 0000000..38378c3 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/one-to-one.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M316 672h60c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8zm196-50c22.1 0 40-17.9 40-39 0-23.1-17.9-41-40-41s-40 17.9-40 41c0 21.1 17.9 39 40 39zm0-140c22.1 0 40-17.9 40-39 0-23.1-17.9-41-40-41s-40 17.9-40 41c0 21.1 17.9 39 40 39z" /><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /><path d="M648 672h60c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/ordered-list.js b/src/blrec/data/webapp/assets/outline/ordered-list.js new file mode 100644 index 0000000..b92fc3a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/ordered-list.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'ordered-list', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M920 760H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-568H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM216 712H100c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h72.4v20.5h-35.7c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h35.7V838H100c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h116c2.2 0 4-1.8 4-4V716c0-2.2-1.8-4-4-4zM100 188h38v120c0 2.2 1.8 4 4 4h40c2.2 0 4-1.8 4-4V152c0-4.4-3.6-8-8-8h-78c-2.2 0-4 1.8-4 4v36c0 2.2 1.8 4 4 4zm116 240H100c-2.2 0-4 1.8-4 4v36c0 2.2 1.8 4 4 4h68.4l-70.3 77.7a8.3 8.3 0 00-2.1 5.4V592c0 2.2 1.8 4 4 4h116c2.2 0 4-1.8 4-4v-36c0-2.2-1.8-4-4-4h-68.4l70.3-77.7a8.3 8.3 0 002.1-5.4V432c0-2.2-1.8-4-4-4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/ordered-list.svg b/src/blrec/data/webapp/assets/outline/ordered-list.svg new file mode 100644 index 0000000..d76f8fe --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/ordered-list.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M920 760H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-568H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM216 712H100c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h72.4v20.5h-35.7c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h35.7V838H100c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h116c2.2 0 4-1.8 4-4V716c0-2.2-1.8-4-4-4zM100 188h38v120c0 2.2 1.8 4 4 4h40c2.2 0 4-1.8 4-4V152c0-4.4-3.6-8-8-8h-78c-2.2 0-4 1.8-4 4v36c0 2.2 1.8 4 4 4zm116 240H100c-2.2 0-4 1.8-4 4v36c0 2.2 1.8 4 4 4h68.4l-70.3 77.7a8.3 8.3 0 00-2.1 5.4V592c0 2.2 1.8 4 4 4h116c2.2 0 4-1.8 4-4v-36c0-2.2-1.8-4-4-4h-68.4l70.3-77.7a8.3 8.3 0 002.1-5.4V432c0-2.2-1.8-4-4-4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/paper-clip.js b/src/blrec/data/webapp/assets/outline/paper-clip.js new file mode 100644 index 0000000..b30064f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/paper-clip.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'paper-clip', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 00174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/paper-clip.svg b/src/blrec/data/webapp/assets/outline/paper-clip.svg new file mode 100644 index 0000000..454aeff --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/paper-clip.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 00174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/partition.js b/src/blrec/data/webapp/assets/outline/partition.js new file mode 100644 index 0000000..a03c5c0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/partition.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'partition', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M640.6 429.8h257.1c7.9 0 14.3-6.4 14.3-14.3V158.3c0-7.9-6.4-14.3-14.3-14.3H640.6c-7.9 0-14.3 6.4-14.3 14.3v92.9H490.6c-3.9 0-7.1 3.2-7.1 7.1v221.5h-85.7v-96.5c0-7.9-6.4-14.3-14.3-14.3H126.3c-7.9 0-14.3 6.4-14.3 14.3v257.2c0 7.9 6.4 14.3 14.3 14.3h257.1c7.9 0 14.3-6.4 14.3-14.3V544h85.7v221.5c0 3.9 3.2 7.1 7.1 7.1h135.7v92.9c0 7.9 6.4 14.3 14.3 14.3h257.1c7.9 0 14.3-6.4 14.3-14.3v-257c0-7.9-6.4-14.3-14.3-14.3h-257c-7.9 0-14.3 6.4-14.3 14.3v100h-78.6v-393h78.6v100c0 7.9 6.4 14.3 14.3 14.3zm53.5-217.9h150V362h-150V211.9zM329.9 587h-150V437h150v150zm364.2 75.1h150v150.1h-150V662.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/partition.svg b/src/blrec/data/webapp/assets/outline/partition.svg new file mode 100644 index 0000000..8f53104 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/partition.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M640.6 429.8h257.1c7.9 0 14.3-6.4 14.3-14.3V158.3c0-7.9-6.4-14.3-14.3-14.3H640.6c-7.9 0-14.3 6.4-14.3 14.3v92.9H490.6c-3.9 0-7.1 3.2-7.1 7.1v221.5h-85.7v-96.5c0-7.9-6.4-14.3-14.3-14.3H126.3c-7.9 0-14.3 6.4-14.3 14.3v257.2c0 7.9 6.4 14.3 14.3 14.3h257.1c7.9 0 14.3-6.4 14.3-14.3V544h85.7v221.5c0 3.9 3.2 7.1 7.1 7.1h135.7v92.9c0 7.9 6.4 14.3 14.3 14.3h257.1c7.9 0 14.3-6.4 14.3-14.3v-257c0-7.9-6.4-14.3-14.3-14.3h-257c-7.9 0-14.3 6.4-14.3 14.3v100h-78.6v-393h78.6v100c0 7.9 6.4 14.3 14.3 14.3zm53.5-217.9h150V362h-150V211.9zM329.9 587h-150V437h150v150zm364.2 75.1h150v150.1h-150V662.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pause-circle.js b/src/blrec/data/webapp/assets/outline/pause-circle.js new file mode 100644 index 0000000..3039001 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pause-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'pause-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm-88-532h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zm224 0h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pause-circle.svg b/src/blrec/data/webapp/assets/outline/pause-circle.svg new file mode 100644 index 0000000..08166ac --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pause-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm-88-532h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zm224 0h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pause.js b/src/blrec/data/webapp/assets/outline/pause.js new file mode 100644 index 0000000..0de76dc --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pause.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'pause', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M304 176h80v672h-80zm408 0h-64c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pause.svg b/src/blrec/data/webapp/assets/outline/pause.svg new file mode 100644 index 0000000..1695e46 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pause.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M304 176h80v672h-80zm408 0h-64c-4.4 0-8 3.6-8 8v656c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V184c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pay-circle.js b/src/blrec/data/webapp/assets/outline/pay-circle.js new file mode 100644 index 0000000..550ae49 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pay-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'pay-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm159.6-585h-59.5c-3 0-5.8 1.7-7.1 4.4l-90.6 180H511l-90.6-180a8 8 0 00-7.1-4.4h-60.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9L457 515.7h-61.4c-4.4 0-8 3.6-8 8v29.9c0 4.4 3.6 8 8 8h81.7V603h-81.7c-4.4 0-8 3.6-8 8v29.9c0 4.4 3.6 8 8 8h81.7V717c0 4.4 3.6 8 8 8h54.3c4.4 0 8-3.6 8-8v-68.1h82c4.4 0 8-3.6 8-8V611c0-4.4-3.6-8-8-8h-82v-41.5h82c4.4 0 8-3.6 8-8v-29.9c0-4.4-3.6-8-8-8h-62l111.1-204.8c.6-1.2 1-2.5 1-3.8-.1-4.4-3.7-8-8.1-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pay-circle.svg b/src/blrec/data/webapp/assets/outline/pay-circle.svg new file mode 100644 index 0000000..5be2cf3 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pay-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm159.6-585h-59.5c-3 0-5.8 1.7-7.1 4.4l-90.6 180H511l-90.6-180a8 8 0 00-7.1-4.4h-60.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9L457 515.7h-61.4c-4.4 0-8 3.6-8 8v29.9c0 4.4 3.6 8 8 8h81.7V603h-81.7c-4.4 0-8 3.6-8 8v29.9c0 4.4 3.6 8 8 8h81.7V717c0 4.4 3.6 8 8 8h54.3c4.4 0 8-3.6 8-8v-68.1h82c4.4 0 8-3.6 8-8V611c0-4.4-3.6-8-8-8h-82v-41.5h82c4.4 0 8-3.6 8-8v-29.9c0-4.4-3.6-8-8-8h-62l111.1-204.8c.6-1.2 1-2.5 1-3.8-.1-4.4-3.7-8-8.1-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/percentage.js b/src/blrec/data/webapp/assets/outline/percentage.js new file mode 100644 index 0000000..fb2cd8f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/percentage.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'percentage', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M855.7 210.8l-42.4-42.4a8.03 8.03 0 00-11.3 0L168.3 801.9a8.03 8.03 0 000 11.3l42.4 42.4c3.1 3.1 8.2 3.1 11.3 0L855.6 222c3.2-3 3.2-8.1.1-11.2zM304 448c79.4 0 144-64.6 144-144s-64.6-144-144-144-144 64.6-144 144 64.6 144 144 144zm0-216c39.7 0 72 32.3 72 72s-32.3 72-72 72-72-32.3-72-72 32.3-72 72-72zm416 344c-79.4 0-144 64.6-144 144s64.6 144 144 144 144-64.6 144-144-64.6-144-144-144zm0 216c-39.7 0-72-32.3-72-72s32.3-72 72-72 72 32.3 72 72-32.3 72-72 72z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/percentage.svg b/src/blrec/data/webapp/assets/outline/percentage.svg new file mode 100644 index 0000000..6c1674c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/percentage.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M855.7 210.8l-42.4-42.4a8.03 8.03 0 00-11.3 0L168.3 801.9a8.03 8.03 0 000 11.3l42.4 42.4c3.1 3.1 8.2 3.1 11.3 0L855.6 222c3.2-3 3.2-8.1.1-11.2zM304 448c79.4 0 144-64.6 144-144s-64.6-144-144-144-144 64.6-144 144 64.6 144 144 144zm0-216c39.7 0 72 32.3 72 72s-32.3 72-72 72-72-32.3-72-72 32.3-72 72-72zm416 344c-79.4 0-144 64.6-144 144s64.6 144 144 144 144-64.6 144-144-64.6-144-144-144zm0 216c-39.7 0-72-32.3-72-72s32.3-72 72-72 72 32.3 72 72-32.3 72-72 72z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/phone.js b/src/blrec/data/webapp/assets/outline/phone.js new file mode 100644 index 0000000..1b74779 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/phone.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'phone', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M877.1 238.7L770.6 132.3c-13-13-30.4-20.3-48.8-20.3s-35.8 7.2-48.8 20.3L558.3 246.8c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l89.6 89.7a405.46 405.46 0 01-86.4 127.3c-36.7 36.9-79.6 66-127.2 86.6l-89.6-89.7c-13-13-30.4-20.3-48.8-20.3a68.2 68.2 0 00-48.8 20.3L132.3 673c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l106.4 106.4c22.2 22.2 52.8 34.9 84.2 34.9 6.5 0 12.8-.5 19.2-1.6 132.4-21.8 263.8-92.3 369.9-198.3C818 606 888.4 474.6 910.4 342.1c6.3-37.6-6.3-76.3-33.3-103.4zm-37.6 91.5c-19.5 117.9-82.9 235.5-178.4 331s-213 158.9-330.9 178.4c-14.8 2.5-30-2.5-40.8-13.2L184.9 721.9 295.7 611l119.8 120 .9.9 21.6-8a481.29 481.29 0 00285.7-285.8l8-21.6-120.8-120.7 110.8-110.9 104.5 104.5c10.8 10.8 15.8 26 13.3 40.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/phone.svg b/src/blrec/data/webapp/assets/outline/phone.svg new file mode 100644 index 0000000..580ca1b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/phone.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M877.1 238.7L770.6 132.3c-13-13-30.4-20.3-48.8-20.3s-35.8 7.2-48.8 20.3L558.3 246.8c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l89.6 89.7a405.46 405.46 0 01-86.4 127.3c-36.7 36.9-79.6 66-127.2 86.6l-89.6-89.7c-13-13-30.4-20.3-48.8-20.3a68.2 68.2 0 00-48.8 20.3L132.3 673c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l106.4 106.4c22.2 22.2 52.8 34.9 84.2 34.9 6.5 0 12.8-.5 19.2-1.6 132.4-21.8 263.8-92.3 369.9-198.3C818 606 888.4 474.6 910.4 342.1c6.3-37.6-6.3-76.3-33.3-103.4zm-37.6 91.5c-19.5 117.9-82.9 235.5-178.4 331s-213 158.9-330.9 178.4c-14.8 2.5-30-2.5-40.8-13.2L184.9 721.9 295.7 611l119.8 120 .9.9 21.6-8a481.29 481.29 0 00285.7-285.8l8-21.6-120.8-120.7 110.8-110.9 104.5 104.5c10.8 10.8 15.8 26 13.3 40.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pic-center.js b/src/blrec/data/webapp/assets/outline/pic-center.js new file mode 100644 index 0000000..42f5442 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pic-center.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'pic-center', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM848 660c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h672zM232 436h560v152H232V436z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pic-center.svg b/src/blrec/data/webapp/assets/outline/pic-center.svg new file mode 100644 index 0000000..6ce15ae --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pic-center.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM848 660c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H176c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h672zM232 436h560v152H232V436z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pic-left.js b/src/blrec/data/webapp/assets/outline/pic-left.js new file mode 100644 index 0000000..d064829 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pic-left.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'pic-left', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM608 660c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h512zM152 436h400v152H152V436zm552 210c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H712c-4.4 0-8 3.6-8 8v56zm8-204h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H712c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pic-left.svg b/src/blrec/data/webapp/assets/outline/pic-left.svg new file mode 100644 index 0000000..5f5cfd6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pic-left.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM608 660c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H96c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h512zM152 436h400v152H152V436zm552 210c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H712c-4.4 0-8 3.6-8 8v56zm8-204h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H712c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pic-right.js b/src/blrec/data/webapp/assets/outline/pic-right.js new file mode 100644 index 0000000..e726384 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pic-right.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'pic-right', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-24 500c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H416c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h512zM472 436h400v152H472V436zM80 646c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H88c-4.4 0-8 3.6-8 8v56zm8-204h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H88c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pic-right.svg b/src/blrec/data/webapp/assets/outline/pic-right.svg new file mode 100644 index 0000000..3dec966 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pic-right.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M952 792H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-632H72c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h880c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-24 500c8.8 0 16-7.2 16-16V380c0-8.8-7.2-16-16-16H416c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h512zM472 436h400v152H472V436zM80 646c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H88c-4.4 0-8 3.6-8 8v56zm8-204h224c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H88c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/picture.js b/src/blrec/data/webapp/assets/outline/picture.js new file mode 100644 index 0000000..e66f606 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/picture.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'picture', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2zM304 456a88 88 0 100-176 88 88 0 000 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/picture.svg b/src/blrec/data/webapp/assets/outline/picture.svg new file mode 100644 index 0000000..424d775 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/picture.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2zM304 456a88 88 0 100-176 88 88 0 000 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pie-chart.js b/src/blrec/data/webapp/assets/outline/pie-chart.js new file mode 100644 index 0000000..845d335 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pie-chart.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'pie-chart', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M864 518H506V160c0-4.4-3.6-8-8-8h-26a398.46 398.46 0 00-282.8 117.1 398.19 398.19 0 00-85.7 127.1A397.61 397.61 0 0072 552a398.46 398.46 0 00117.1 282.8c36.7 36.7 79.5 65.6 127.1 85.7A397.61 397.61 0 00472 952a398.46 398.46 0 00282.8-117.1c36.7-36.7 65.6-79.5 85.7-127.1A397.61 397.61 0 00872 552v-26c0-4.4-3.6-8-8-8zM705.7 787.8A331.59 331.59 0 01470.4 884c-88.1-.4-170.9-34.9-233.2-97.2C174.5 724.1 140 640.7 140 552c0-88.7 34.5-172.1 97.2-234.8 54.6-54.6 124.9-87.9 200.8-95.5V586h364.3c-7.7 76.3-41.3 147-96.6 201.8zM952 462.4l-2.6-28.2c-8.5-92.1-49.4-179-115.2-244.6A399.4 399.4 0 00589 74.6L560.7 72c-4.7-.4-8.7 3.2-8.7 7.9V464c0 4.4 3.6 8 8 8l384-1c4.7 0 8.4-4 8-8.6zm-332.2-58.2V147.6a332.24 332.24 0 01166.4 89.8c45.7 45.6 77 103.6 90 166.1l-256.4.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pie-chart.svg b/src/blrec/data/webapp/assets/outline/pie-chart.svg new file mode 100644 index 0000000..67e14b6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pie-chart.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M864 518H506V160c0-4.4-3.6-8-8-8h-26a398.46 398.46 0 00-282.8 117.1 398.19 398.19 0 00-85.7 127.1A397.61 397.61 0 0072 552a398.46 398.46 0 00117.1 282.8c36.7 36.7 79.5 65.6 127.1 85.7A397.61 397.61 0 00472 952a398.46 398.46 0 00282.8-117.1c36.7-36.7 65.6-79.5 85.7-127.1A397.61 397.61 0 00872 552v-26c0-4.4-3.6-8-8-8zM705.7 787.8A331.59 331.59 0 01470.4 884c-88.1-.4-170.9-34.9-233.2-97.2C174.5 724.1 140 640.7 140 552c0-88.7 34.5-172.1 97.2-234.8 54.6-54.6 124.9-87.9 200.8-95.5V586h364.3c-7.7 76.3-41.3 147-96.6 201.8zM952 462.4l-2.6-28.2c-8.5-92.1-49.4-179-115.2-244.6A399.4 399.4 0 00589 74.6L560.7 72c-4.7-.4-8.7 3.2-8.7 7.9V464c0 4.4 3.6 8 8 8l384-1c4.7 0 8.4-4 8-8.6zm-332.2-58.2V147.6a332.24 332.24 0 01166.4 89.8c45.7 45.6 77 103.6 90 166.1l-256.4.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/play-circle.js b/src/blrec/data/webapp/assets/outline/play-circle.js new file mode 100644 index 0000000..be011b4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/play-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'play-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /><path d="M719.4 499.1l-296.1-215A15.9 15.9 0 00398 297v430c0 13.1 14.8 20.5 25.3 12.9l296.1-215a15.9 15.9 0 000-25.8zm-257.6 134V390.9L628.5 512 461.8 633.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/play-circle.svg b/src/blrec/data/webapp/assets/outline/play-circle.svg new file mode 100644 index 0000000..736f05a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/play-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /><path d="M719.4 499.1l-296.1-215A15.9 15.9 0 00398 297v430c0 13.1 14.8 20.5 25.3 12.9l296.1-215a15.9 15.9 0 000-25.8zm-257.6 134V390.9L628.5 512 461.8 633.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/play-square.js b/src/blrec/data/webapp/assets/outline/play-square.js new file mode 100644 index 0000000..896c5c5 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/play-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'play-square', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M442.3 677.6l199.4-156.7a11.3 11.3 0 000-17.7L442.3 346.4c-7.4-5.8-18.3-.6-18.3 8.8v313.5c0 9.4 10.9 14.7 18.3 8.9z" /><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/play-square.svg b/src/blrec/data/webapp/assets/outline/play-square.svg new file mode 100644 index 0000000..f94bcd8 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/play-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M442.3 677.6l199.4-156.7a11.3 11.3 0 000-17.7L442.3 346.4c-7.4-5.8-18.3-.6-18.3 8.8v313.5c0 9.4 10.9 14.7 18.3 8.9z" /><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/plus-circle.js b/src/blrec/data/webapp/assets/outline/plus-circle.js new file mode 100644 index 0000000..b7174a8 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/plus-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'plus-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M696 480H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/plus-circle.svg b/src/blrec/data/webapp/assets/outline/plus-circle.svg new file mode 100644 index 0000000..acb2e08 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/plus-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M696 480H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/plus-square.js b/src/blrec/data/webapp/assets/outline/plus-square.js new file mode 100644 index 0000000..fa22ad0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/plus-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'plus-square', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" /><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/plus-square.svg b/src/blrec/data/webapp/assets/outline/plus-square.svg new file mode 100644 index 0000000..e589097 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/plus-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" /><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/plus.js b/src/blrec/data/webapp/assets/outline/plus.js new file mode 100644 index 0000000..fa4b36b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/plus.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'plus', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z" /><path d="M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/plus.svg b/src/blrec/data/webapp/assets/outline/plus.svg new file mode 100644 index 0000000..c536113 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/plus.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z" /><path d="M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pound-circle.js b/src/blrec/data/webapp/assets/outline/pound-circle.js new file mode 100644 index 0000000..078950e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pound-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'pound-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm138-209.8H469.8v-4.7c27.4-17.2 43.9-50.4 43.9-91.1 0-14.1-2.2-27.9-5.3-41H607c4.4 0 8-3.6 8-8v-30c0-4.4-3.6-8-8-8H495c-7.2-22.6-13.4-45.7-13.4-70.5 0-43.5 34-70.2 87.3-70.2 21.5 0 42.5 4.1 60.4 10.5 5.2 1.9 10.6-2 10.6-7.6v-39.5c0-3.3-2.1-6.3-5.2-7.5-18.8-7.2-43.8-12.7-70.3-12.7-92.9 0-151.5 44.5-151.5 120.3 0 26.3 6.9 52 14.6 77.1H374c-4.4 0-8 3.6-8 8v30c0 4.4 3.6 8 8 8h67.1c3.4 14.7 5.9 29.4 5.9 44.2 0 45.2-28.8 83.3-72.8 94.2-3.6.9-6.1 4.1-6.1 7.8V722c0 4.4 3.6 8 8 8H650c4.4 0 8-3.6 8-8v-39.8c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pound-circle.svg b/src/blrec/data/webapp/assets/outline/pound-circle.svg new file mode 100644 index 0000000..4f57ca8 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pound-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm138-209.8H469.8v-4.7c27.4-17.2 43.9-50.4 43.9-91.1 0-14.1-2.2-27.9-5.3-41H607c4.4 0 8-3.6 8-8v-30c0-4.4-3.6-8-8-8H495c-7.2-22.6-13.4-45.7-13.4-70.5 0-43.5 34-70.2 87.3-70.2 21.5 0 42.5 4.1 60.4 10.5 5.2 1.9 10.6-2 10.6-7.6v-39.5c0-3.3-2.1-6.3-5.2-7.5-18.8-7.2-43.8-12.7-70.3-12.7-92.9 0-151.5 44.5-151.5 120.3 0 26.3 6.9 52 14.6 77.1H374c-4.4 0-8 3.6-8 8v30c0 4.4 3.6 8 8 8h67.1c3.4 14.7 5.9 29.4 5.9 44.2 0 45.2-28.8 83.3-72.8 94.2-3.6.9-6.1 4.1-6.1 7.8V722c0 4.4 3.6 8 8 8H650c4.4 0 8-3.6 8-8v-39.8c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pound.js b/src/blrec/data/webapp/assets/outline/pound.js new file mode 100644 index 0000000..520d37e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pound.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'pound', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm138-209.8H469.8v-4.7c27.4-17.2 43.9-50.4 43.9-91.1 0-14.1-2.2-27.9-5.3-41H607c4.4 0 8-3.6 8-8v-30c0-4.4-3.6-8-8-8H495c-7.2-22.6-13.4-45.7-13.4-70.5 0-43.5 34-70.2 87.3-70.2 21.5 0 42.5 4.1 60.4 10.5 5.2 1.9 10.6-2 10.6-7.6v-39.5c0-3.3-2.1-6.3-5.2-7.5-18.8-7.2-43.8-12.7-70.3-12.7-92.9 0-151.5 44.5-151.5 120.3 0 26.3 6.9 52 14.6 77.1H374c-4.4 0-8 3.6-8 8v30c0 4.4 3.6 8 8 8h67.1c3.4 14.7 5.9 29.4 5.9 44.2 0 45.2-28.8 83.3-72.8 94.2-3.6.9-6.1 4.1-6.1 7.8V722c0 4.4 3.6 8 8 8H650c4.4 0 8-3.6 8-8v-39.8c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pound.svg b/src/blrec/data/webapp/assets/outline/pound.svg new file mode 100644 index 0000000..4f57ca8 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pound.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm138-209.8H469.8v-4.7c27.4-17.2 43.9-50.4 43.9-91.1 0-14.1-2.2-27.9-5.3-41H607c4.4 0 8-3.6 8-8v-30c0-4.4-3.6-8-8-8H495c-7.2-22.6-13.4-45.7-13.4-70.5 0-43.5 34-70.2 87.3-70.2 21.5 0 42.5 4.1 60.4 10.5 5.2 1.9 10.6-2 10.6-7.6v-39.5c0-3.3-2.1-6.3-5.2-7.5-18.8-7.2-43.8-12.7-70.3-12.7-92.9 0-151.5 44.5-151.5 120.3 0 26.3 6.9 52 14.6 77.1H374c-4.4 0-8 3.6-8 8v30c0 4.4 3.6 8 8 8h67.1c3.4 14.7 5.9 29.4 5.9 44.2 0 45.2-28.8 83.3-72.8 94.2-3.6.9-6.1 4.1-6.1 7.8V722c0 4.4 3.6 8 8 8H650c4.4 0 8-3.6 8-8v-39.8c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/poweroff.js b/src/blrec/data/webapp/assets/outline/poweroff.js new file mode 100644 index 0000000..8be7aab --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/poweroff.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'poweroff', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M705.6 124.9a8 8 0 00-11.6 7.2v64.2c0 5.5 2.9 10.6 7.5 13.6a352.2 352.2 0 0162.2 49.8c32.7 32.8 58.4 70.9 76.3 113.3a355 355 0 0127.9 138.7c0 48.1-9.4 94.8-27.9 138.7a355.92 355.92 0 01-76.3 113.3 353.06 353.06 0 01-113.2 76.4c-43.8 18.6-90.5 28-138.5 28s-94.7-9.4-138.5-28a353.06 353.06 0 01-113.2-76.4A355.92 355.92 0 01184 650.4a355 355 0 01-27.9-138.7c0-48.1 9.4-94.8 27.9-138.7 17.9-42.4 43.6-80.5 76.3-113.3 19-19 39.8-35.6 62.2-49.8 4.7-2.9 7.5-8.1 7.5-13.6V132c0-6-6.3-9.8-11.6-7.2C178.5 195.2 82 339.3 80 506.3 77.2 745.1 272.5 943.5 511.2 944c239 .5 432.8-193.3 432.8-432.4 0-169.2-97-315.7-238.4-386.7zM480 560h64c4.4 0 8-3.6 8-8V88c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/poweroff.svg b/src/blrec/data/webapp/assets/outline/poweroff.svg new file mode 100644 index 0000000..e4069f4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/poweroff.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M705.6 124.9a8 8 0 00-11.6 7.2v64.2c0 5.5 2.9 10.6 7.5 13.6a352.2 352.2 0 0162.2 49.8c32.7 32.8 58.4 70.9 76.3 113.3a355 355 0 0127.9 138.7c0 48.1-9.4 94.8-27.9 138.7a355.92 355.92 0 01-76.3 113.3 353.06 353.06 0 01-113.2 76.4c-43.8 18.6-90.5 28-138.5 28s-94.7-9.4-138.5-28a353.06 353.06 0 01-113.2-76.4A355.92 355.92 0 01184 650.4a355 355 0 01-27.9-138.7c0-48.1 9.4-94.8 27.9-138.7 17.9-42.4 43.6-80.5 76.3-113.3 19-19 39.8-35.6 62.2-49.8 4.7-2.9 7.5-8.1 7.5-13.6V132c0-6-6.3-9.8-11.6-7.2C178.5 195.2 82 339.3 80 506.3 77.2 745.1 272.5 943.5 511.2 944c239 .5 432.8-193.3 432.8-432.4 0-169.2-97-315.7-238.4-386.7zM480 560h64c4.4 0 8-3.6 8-8V88c0-4.4-3.6-8-8-8h-64c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/printer.js b/src/blrec/data/webapp/assets/outline/printer.js new file mode 100644 index 0000000..107a790 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/printer.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'printer', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M820 436h-40c-4.4 0-8 3.6-8 8v40c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-40c0-4.4-3.6-8-8-8zm32-104H732V120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM360 180h304v152H360V180zm304 664H360V568h304v276zm200-140H732V500H292v204H160V412c0-6.6 5.4-12 12-12h680c6.6 0 12 5.4 12 12v292z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/printer.svg b/src/blrec/data/webapp/assets/outline/printer.svg new file mode 100644 index 0000000..b30b033 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/printer.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M820 436h-40c-4.4 0-8 3.6-8 8v40c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-40c0-4.4-3.6-8-8-8zm32-104H732V120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM360 180h304v152H360V180zm304 664H360V568h304v276zm200-140H732V500H292v204H160V412c0-6.6 5.4-12 12-12h680c6.6 0 12 5.4 12 12v292z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/profile.js b/src/blrec/data/webapp/assets/outline/profile.js new file mode 100644 index 0000000..08dc522 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/profile.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'profile', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM492 400h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zM340 368a40 40 0 1080 0 40 40 0 10-80 0zm0 144a40 40 0 1080 0 40 40 0 10-80 0zm0 144a40 40 0 1080 0 40 40 0 10-80 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/profile.svg b/src/blrec/data/webapp/assets/outline/profile.svg new file mode 100644 index 0000000..d9c8066 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/profile.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656zM492 400h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zM340 368a40 40 0 1080 0 40 40 0 10-80 0zm0 144a40 40 0 1080 0 40 40 0 10-80 0zm0 144a40 40 0 1080 0 40 40 0 10-80 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/project.js b/src/blrec/data/webapp/assets/outline/project.js new file mode 100644 index 0000000..95d0299 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/project.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'project', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M280 752h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8zm192-280h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8zm192 72h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v256c0 4.4 3.6 8 8 8zm216-432H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/project.svg b/src/blrec/data/webapp/assets/outline/project.svg new file mode 100644 index 0000000..4bf4cdc --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/project.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M280 752h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8zm192-280h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8zm192 72h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v256c0 4.4 3.6 8 8 8zm216-432H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/property-safety.js b/src/blrec/data/webapp/assets/outline/property-safety.js new file mode 100644 index 0000000..8c6998d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/property-safety.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'property-safety', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zM430.5 318h-46c-1.7 0-3.3.4-4.8 1.2a10.1 10.1 0 00-4 13.6l88 161.1h-45.2c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1v29.7h-63.1c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1V658c0 5.5 4.5 10 10 10h41.3c5.5 0 10-4.5 10-10v-51.8h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-63.4v-29.7h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-45.7l87.7-161.1a10.05 10.05 0 00-8.8-14.8h-45c-3.8 0-7.2 2.1-8.9 5.5l-73.2 144.3-72.9-144.3c-1.7-3.4-5.2-5.5-9-5.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/property-safety.svg b/src/blrec/data/webapp/assets/outline/property-safety.svg new file mode 100644 index 0000000..170c0ca --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/property-safety.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zM430.5 318h-46c-1.7 0-3.3.4-4.8 1.2a10.1 10.1 0 00-4 13.6l88 161.1h-45.2c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1v29.7h-63.1c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1V658c0 5.5 4.5 10 10 10h41.3c5.5 0 10-4.5 10-10v-51.8h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-63.4v-29.7h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-45.7l87.7-161.1a10.05 10.05 0 00-8.8-14.8h-45c-3.8 0-7.2 2.1-8.9 5.5l-73.2 144.3-72.9-144.3c-1.7-3.4-5.2-5.5-9-5.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pull-request.js b/src/blrec/data/webapp/assets/outline/pull-request.js new file mode 100644 index 0000000..69d0645 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pull-request.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'pull-request', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M788 705.9V192c0-8.8-7.2-16-16-16H602v-68.8c0-6-7-9.4-11.7-5.7L462.7 202.3a7.14 7.14 0 000 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V240h114v465.9c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c.1-49.2-31.7-91-75.9-106.1zM752 860a48.01 48.01 0 010-96 48.01 48.01 0 010 96zM384 212c0-61.8-50.2-112-112-112s-112 50.2-112 112c0 49.2 31.8 91 76 106.1V706c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1V318.1c44.2-15.1 76-56.9 76-106.1zm-160 0a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm96 600a48.01 48.01 0 01-96 0 48.01 48.01 0 0196 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pull-request.svg b/src/blrec/data/webapp/assets/outline/pull-request.svg new file mode 100644 index 0000000..14913f5 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pull-request.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M788 705.9V192c0-8.8-7.2-16-16-16H602v-68.8c0-6-7-9.4-11.7-5.7L462.7 202.3a7.14 7.14 0 000 11.3l127.5 100.8c4.7 3.7 11.7.4 11.7-5.7V240h114v465.9c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c.1-49.2-31.7-91-75.9-106.1zM752 860a48.01 48.01 0 010-96 48.01 48.01 0 010 96zM384 212c0-61.8-50.2-112-112-112s-112 50.2-112 112c0 49.2 31.8 91 76 106.1V706c-44.2 15-76 56.9-76 106.1 0 61.8 50.2 112 112 112s112-50.2 112-112c0-49.2-31.8-91-76-106.1V318.1c44.2-15.1 76-56.9 76-106.1zm-160 0a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm96 600a48.01 48.01 0 01-96 0 48.01 48.01 0 0196 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pushpin.js b/src/blrec/data/webapp/assets/outline/pushpin.js new file mode 100644 index 0000000..a9aba7a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pushpin.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'pushpin', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3a33.23 33.23 0 00-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 00-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8zM666.2 549.3l-24.5 24.5 3.8 34.4a259.92 259.92 0 01-30.4 153.9L262 408.8c12.9-7.1 26.3-13.1 40.3-17.9 27.2-9.4 55.7-14.1 84.7-14.1 9.6 0 19.3.5 28.9 1.6l34.4 3.8 24.5-24.5L608.5 224 800 415.5 666.2 549.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/pushpin.svg b/src/blrec/data/webapp/assets/outline/pushpin.svg new file mode 100644 index 0000000..f29cda3 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/pushpin.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3a33.23 33.23 0 00-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 00-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8zM666.2 549.3l-24.5 24.5 3.8 34.4a259.92 259.92 0 01-30.4 153.9L262 408.8c12.9-7.1 26.3-13.1 40.3-17.9 27.2-9.4 55.7-14.1 84.7-14.1 9.6 0 19.3.5 28.9 1.6l34.4 3.8 24.5-24.5L608.5 224 800 415.5 666.2 549.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/qq.js b/src/blrec/data/webapp/assets/outline/qq.js new file mode 100644 index 0000000..1f8325d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/qq.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'qq', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M824.8 613.2c-16-51.4-34.4-94.6-62.7-165.3C766.5 262.2 689.3 112 511.5 112 331.7 112 256.2 265.2 261 447.9c-28.4 70.8-46.7 113.7-62.7 165.3-34 109.5-23 154.8-14.6 155.8 18 2.2 70.1-82.4 70.1-82.4 0 49 25.2 112.9 79.8 159-26.4 8.1-85.7 29.9-71.6 53.8 11.4 19.3 196.2 12.3 249.5 6.3 53.3 6 238.1 13 249.5-6.3 14.1-23.8-45.3-45.7-71.6-53.8 54.6-46.2 79.8-110.1 79.8-159 0 0 52.1 84.6 70.1 82.4 8.5-1.1 19.5-46.4-14.5-155.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/qq.svg b/src/blrec/data/webapp/assets/outline/qq.svg new file mode 100644 index 0000000..be5118a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/qq.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M824.8 613.2c-16-51.4-34.4-94.6-62.7-165.3C766.5 262.2 689.3 112 511.5 112 331.7 112 256.2 265.2 261 447.9c-28.4 70.8-46.7 113.7-62.7 165.3-34 109.5-23 154.8-14.6 155.8 18 2.2 70.1-82.4 70.1-82.4 0 49 25.2 112.9 79.8 159-26.4 8.1-85.7 29.9-71.6 53.8 11.4 19.3 196.2 12.3 249.5 6.3 53.3 6 238.1 13 249.5-6.3 14.1-23.8-45.3-45.7-71.6-53.8 54.6-46.2 79.8-110.1 79.8-159 0 0 52.1 84.6 70.1 82.4 8.5-1.1 19.5-46.4-14.5-155.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/qrcode.js b/src/blrec/data/webapp/assets/outline/qrcode.js new file mode 100644 index 0000000..efb1fbf --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/qrcode.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'qrcode', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M468 128H160c-17.7 0-32 14.3-32 32v308c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V136c0-4.4-3.6-8-8-8zm-56 284H192V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194 210H136c-4.4 0-8 3.6-8 8v308c0 17.7 14.3 32 32 32h308c4.4 0 8-3.6 8-8V556c0-4.4-3.6-8-8-8zm-56 284H192V612h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm590-630H556c-4.4 0-8 3.6-8 8v332c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V160c0-17.7-14.3-32-32-32zm-32 284H612V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194 210h-48c-4.4 0-8 3.6-8 8v134h-78V556c0-4.4-3.6-8-8-8H556c-4.4 0-8 3.6-8 8v332c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h78v102c0 4.4 3.6 8 8 8h190c4.4 0 8-3.6 8-8V556c0-4.4-3.6-8-8-8zM746 832h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm142 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/qrcode.svg b/src/blrec/data/webapp/assets/outline/qrcode.svg new file mode 100644 index 0000000..fc4d62e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/qrcode.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M468 128H160c-17.7 0-32 14.3-32 32v308c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V136c0-4.4-3.6-8-8-8zm-56 284H192V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194 210H136c-4.4 0-8 3.6-8 8v308c0 17.7 14.3 32 32 32h308c4.4 0 8-3.6 8-8V556c0-4.4-3.6-8-8-8zm-56 284H192V612h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm590-630H556c-4.4 0-8 3.6-8 8v332c0 4.4 3.6 8 8 8h332c4.4 0 8-3.6 8-8V160c0-17.7-14.3-32-32-32zm-32 284H612V192h220v220zm-138-74h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm194 210h-48c-4.4 0-8 3.6-8 8v134h-78V556c0-4.4-3.6-8-8-8H556c-4.4 0-8 3.6-8 8v332c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h78v102c0 4.4 3.6 8 8 8h190c4.4 0 8-3.6 8-8V556c0-4.4-3.6-8-8-8zM746 832h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm142 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/question-circle.js b/src/blrec/data/webapp/assets/outline/question-circle.js new file mode 100644 index 0000000..9dfb369 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/question-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'question-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/question-circle.svg b/src/blrec/data/webapp/assets/outline/question-circle.svg new file mode 100644 index 0000000..9e4c466 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/question-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/question.js b/src/blrec/data/webapp/assets/outline/question.js new file mode 100644 index 0000000..0ef9a6b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/question.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'question', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M764 280.9c-14-30.6-33.9-58.1-59.3-81.6C653.1 151.4 584.6 125 512 125s-141.1 26.4-192.7 74.2c-25.4 23.6-45.3 51-59.3 81.7-14.6 32-22 65.9-22 100.9v27c0 6.2 5 11.2 11.2 11.2h54c6.2 0 11.2-5 11.2-11.2v-27c0-99.5 88.6-180.4 197.6-180.4s197.6 80.9 197.6 180.4c0 40.8-14.5 79.2-42 111.2-27.2 31.7-65.6 54.4-108.1 64-24.3 5.5-46.2 19.2-61.7 38.8a110.85 110.85 0 00-23.9 68.6v31.4c0 6.2 5 11.2 11.2 11.2h54c6.2 0 11.2-5 11.2-11.2v-31.4c0-15.7 10.9-29.5 26-32.9 58.4-13.2 111.4-44.7 149.3-88.7 19.1-22.3 34-47.1 44.3-74 10.7-27.9 16.1-57.2 16.1-87 0-35-7.4-69-22-100.9zM512 787c-30.9 0-56 25.1-56 56s25.1 56 56 56 56-25.1 56-56-25.1-56-56-56z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/question.svg b/src/blrec/data/webapp/assets/outline/question.svg new file mode 100644 index 0000000..a5fc012 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/question.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M764 280.9c-14-30.6-33.9-58.1-59.3-81.6C653.1 151.4 584.6 125 512 125s-141.1 26.4-192.7 74.2c-25.4 23.6-45.3 51-59.3 81.7-14.6 32-22 65.9-22 100.9v27c0 6.2 5 11.2 11.2 11.2h54c6.2 0 11.2-5 11.2-11.2v-27c0-99.5 88.6-180.4 197.6-180.4s197.6 80.9 197.6 180.4c0 40.8-14.5 79.2-42 111.2-27.2 31.7-65.6 54.4-108.1 64-24.3 5.5-46.2 19.2-61.7 38.8a110.85 110.85 0 00-23.9 68.6v31.4c0 6.2 5 11.2 11.2 11.2h54c6.2 0 11.2-5 11.2-11.2v-31.4c0-15.7 10.9-29.5 26-32.9 58.4-13.2 111.4-44.7 149.3-88.7 19.1-22.3 34-47.1 44.3-74 10.7-27.9 16.1-57.2 16.1-87 0-35-7.4-69-22-100.9zM512 787c-30.9 0-56 25.1-56 56s25.1 56 56 56 56-25.1 56-56-25.1-56-56-56z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/radar-chart.js b/src/blrec/data/webapp/assets/outline/radar-chart.js new file mode 100644 index 0000000..2f408d7 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/radar-chart.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'radar-chart', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M926.8 397.1l-396-288a31.81 31.81 0 00-37.6 0l-396 288a31.99 31.99 0 00-11.6 35.8l151.3 466a32 32 0 0030.4 22.1h489.5c13.9 0 26.1-8.9 30.4-22.1l151.3-466c4.2-13.2-.5-27.6-11.7-35.8zM838.6 417l-98.5 32-200-144.7V199.9L838.6 417zM466 567.2l-89.1 122.3-55.2-169.2L466 567.2zm-116.3-96.8L484 373.3v140.8l-134.3-43.7zM512 599.2l93.9 128.9H418.1L512 599.2zm28.1-225.9l134.2 97.1L540.1 514V373.3zM558 567.2l144.3-46.9-55.2 169.2L558 567.2zm-74-367.3v104.4L283.9 449l-98.5-32L484 199.9zM169.3 470.8l86.5 28.1 80.4 246.4-53.8 73.9-113.1-348.4zM327.1 853l50.3-69h269.3l50.3 69H327.1zm414.5-33.8l-53.8-73.9 80.4-246.4 86.5-28.1-113.1 348.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/radar-chart.svg b/src/blrec/data/webapp/assets/outline/radar-chart.svg new file mode 100644 index 0000000..3291bd1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/radar-chart.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M926.8 397.1l-396-288a31.81 31.81 0 00-37.6 0l-396 288a31.99 31.99 0 00-11.6 35.8l151.3 466a32 32 0 0030.4 22.1h489.5c13.9 0 26.1-8.9 30.4-22.1l151.3-466c4.2-13.2-.5-27.6-11.7-35.8zM838.6 417l-98.5 32-200-144.7V199.9L838.6 417zM466 567.2l-89.1 122.3-55.2-169.2L466 567.2zm-116.3-96.8L484 373.3v140.8l-134.3-43.7zM512 599.2l93.9 128.9H418.1L512 599.2zm28.1-225.9l134.2 97.1L540.1 514V373.3zM558 567.2l144.3-46.9-55.2 169.2L558 567.2zm-74-367.3v104.4L283.9 449l-98.5-32L484 199.9zM169.3 470.8l86.5 28.1 80.4 246.4-53.8 73.9-113.1-348.4zM327.1 853l50.3-69h269.3l50.3 69H327.1zm414.5-33.8l-53.8-73.9 80.4-246.4 86.5-28.1-113.1 348.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/radius-bottomleft.js b/src/blrec/data/webapp/assets/outline/radius-bottomleft.js new file mode 100644 index 0000000..48f4fb9 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/radius-bottomleft.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'radius-bottomleft', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M712 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm2-696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM136 374h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-174h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm752 624h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-230 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm230 624H358c-87.3 0-158-70.7-158-158V484c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v182c0 127 103 230 230 230h182c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/radius-bottomleft.svg b/src/blrec/data/webapp/assets/outline/radius-bottomleft.svg new file mode 100644 index 0000000..66566e2 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/radius-bottomleft.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M712 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm2-696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM136 374h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm0-174h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm752 624h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-230 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm230 624H358c-87.3 0-158-70.7-158-158V484c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v182c0 127 103 230 230 230h182c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/radius-bottomright.js b/src/blrec/data/webapp/assets/outline/radius-bottomright.js new file mode 100644 index 0000000..090f9ad --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/radius-bottomright.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'radius-bottomright', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M368 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-58-624h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm578 102h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm292 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm174 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm230 276h-56c-4.4 0-8 3.6-8 8v182c0 87.3-70.7 158-158 158H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h182c127 0 230-103 230-230V484c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/radius-bottomright.svg b/src/blrec/data/webapp/assets/outline/radius-bottomright.svg new file mode 100644 index 0000000..5619500 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/radius-bottomright.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M368 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-58-624h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm578 102h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 824h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm292 72h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm174 0h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm230 276h-56c-4.4 0-8 3.6-8 8v182c0 87.3-70.7 158-158 158H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h182c127 0 230-103 230-230V484c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/radius-setting.js b/src/blrec/data/webapp/assets/outline/radius-setting.js new file mode 100644 index 0000000..bc67c6d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/radius-setting.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'radius-setting', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M396 140h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-44 684h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm524-204h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 344h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm320 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm160 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm140-284c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V370c0-127-103-230-230-230H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h170c87.3 0 158 70.7 158 158v170zM236 96H92c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8zm-48 101.6c0 1.3-1.1 2.4-2.4 2.4h-43.2c-1.3 0-2.4-1.1-2.4-2.4v-43.2c0-1.3 1.1-2.4 2.4-2.4h43.2c1.3 0 2.4 1.1 2.4 2.4v43.2zM920 780H776c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8V788c0-4.4-3.6-8-8-8zm-48 101.6c0 1.3-1.1 2.4-2.4 2.4h-43.2c-1.3 0-2.4-1.1-2.4-2.4v-43.2c0-1.3 1.1-2.4 2.4-2.4h43.2c1.3 0 2.4 1.1 2.4 2.4v43.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/radius-setting.svg b/src/blrec/data/webapp/assets/outline/radius-setting.svg new file mode 100644 index 0000000..3ba1423 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/radius-setting.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M396 140h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-44 684h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm524-204h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 344h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 160h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm320 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm160 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm140-284c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V370c0-127-103-230-230-230H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h170c87.3 0 158 70.7 158 158v170zM236 96H92c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8V104c0-4.4-3.6-8-8-8zm-48 101.6c0 1.3-1.1 2.4-2.4 2.4h-43.2c-1.3 0-2.4-1.1-2.4-2.4v-43.2c0-1.3 1.1-2.4 2.4-2.4h43.2c1.3 0 2.4 1.1 2.4 2.4v43.2zM920 780H776c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h144c4.4 0 8-3.6 8-8V788c0-4.4-3.6-8-8-8zm-48 101.6c0 1.3-1.1 2.4-2.4 2.4h-43.2c-1.3 0-2.4-1.1-2.4-2.4v-43.2c0-1.3 1.1-2.4 2.4-2.4h43.2c1.3 0 2.4 1.1 2.4 2.4v43.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/radius-upleft.js b/src/blrec/data/webapp/assets/outline/radius-upleft.js new file mode 100644 index 0000000..cd7b6e0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/radius-upleft.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'radius-upleft', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M656 200h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm58 624h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 650h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm696-696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-174 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm174-696H358c-127 0-230 103-230 230v182c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V358c0-87.3 70.7-158 158-158h182c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/radius-upleft.svg b/src/blrec/data/webapp/assets/outline/radius-upleft.svg new file mode 100644 index 0000000..9a97155 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/radius-upleft.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M656 200h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm58 624h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 650h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm696-696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-174 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm174-696H358c-127 0-230 103-230 230v182c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V358c0-87.3 70.7-158 158-158h182c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/radius-upright.js b/src/blrec/data/webapp/assets/outline/radius-upright.js new file mode 100644 index 0000000..2e4c161 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/radius-upright.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'radius-upright', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M368 128h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-2 696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm522-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 128h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm174 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-48-696H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h182c87.3 0 158 70.7 158 158v182c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V358c0-127-103-230-230-230z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/radius-upright.svg b/src/blrec/data/webapp/assets/outline/radius-upright.svg new file mode 100644 index 0000000..3405edd --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/radius-upright.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M368 128h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-2 696h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm522-174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM192 128h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 174h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm348 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm174 0h-56c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-48-696H484c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h182c87.3 0 158 70.7 158 158v182c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V358c0-127-103-230-230-230z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/read.js b/src/blrec/data/webapp/assets/outline/read.js new file mode 100644 index 0000000..3bef89c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/read.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'read', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 161H699.2c-49.1 0-97.1 14.1-138.4 40.7L512 233l-48.8-31.3A255.2 255.2 0 00324.8 161H96c-17.7 0-32 14.3-32 32v568c0 17.7 14.3 32 32 32h228.8c49.1 0 97.1 14.1 138.4 40.7l44.4 28.6c1.3.8 2.8 1.3 4.3 1.3s3-.4 4.3-1.3l44.4-28.6C602 807.1 650.1 793 699.2 793H928c17.7 0 32-14.3 32-32V193c0-17.7-14.3-32-32-32zM324.8 721H136V233h188.8c35.4 0 69.8 10.1 99.5 29.2l48.8 31.3 6.9 4.5v462c-47.6-25.6-100.8-39-155.2-39zm563.2 0H699.2c-54.4 0-107.6 13.4-155.2 39V298l6.9-4.5 48.8-31.3c29.7-19.1 64.1-29.2 99.5-29.2H888v488zM396.9 361H211.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5zm223.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c0-4.1-3.2-7.5-7.1-7.5H627.1c-3.9 0-7.1 3.4-7.1 7.5zM396.9 501H211.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5zm416 0H627.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/read.svg b/src/blrec/data/webapp/assets/outline/read.svg new file mode 100644 index 0000000..4195ace --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/read.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 161H699.2c-49.1 0-97.1 14.1-138.4 40.7L512 233l-48.8-31.3A255.2 255.2 0 00324.8 161H96c-17.7 0-32 14.3-32 32v568c0 17.7 14.3 32 32 32h228.8c49.1 0 97.1 14.1 138.4 40.7l44.4 28.6c1.3.8 2.8 1.3 4.3 1.3s3-.4 4.3-1.3l44.4-28.6C602 807.1 650.1 793 699.2 793H928c17.7 0 32-14.3 32-32V193c0-17.7-14.3-32-32-32zM324.8 721H136V233h188.8c35.4 0 69.8 10.1 99.5 29.2l48.8 31.3 6.9 4.5v462c-47.6-25.6-100.8-39-155.2-39zm563.2 0H699.2c-54.4 0-107.6 13.4-155.2 39V298l6.9-4.5 48.8-31.3c29.7-19.1 64.1-29.2 99.5-29.2H888v488zM396.9 361H211.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5zm223.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c0-4.1-3.2-7.5-7.1-7.5H627.1c-3.9 0-7.1 3.4-7.1 7.5zM396.9 501H211.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5zm416 0H627.1c-3.9 0-7.1 3.4-7.1 7.5v45c0 4.1 3.2 7.5 7.1 7.5h185.7c3.9 0 7.1-3.4 7.1-7.5v-45c.1-4.1-3.1-7.5-7-7.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/reconciliation.js b/src/blrec/data/webapp/assets/outline/reconciliation.js new file mode 100644 index 0000000..d3e5f3e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/reconciliation.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'reconciliation', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M676 565c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34zm204-523H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zm-412 64h72v-56h64v56h72v48H468v-48zm-20 616H176V616h272v232zm0-296H176v-88h272v88zm392 240H512V432c0-17.7-14.3-32-32-32H304V240h100v104h336V240h100v552zM704 408v96c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-96c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zM592 512h48c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/reconciliation.svg b/src/blrec/data/webapp/assets/outline/reconciliation.svg new file mode 100644 index 0000000..e1985f0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/reconciliation.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M676 565c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34zm204-523H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zm-412 64h72v-56h64v56h72v48H468v-48zm-20 616H176V616h272v232zm0-296H176v-88h272v88zm392 240H512V432c0-17.7-14.3-32-32-32H304V240h100v104h336V240h100v552zM704 408v96c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-96c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zM592 512h48c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/red-envelope.js b/src/blrec/data/webapp/assets/outline/red-envelope.js new file mode 100644 index 0000000..078fed9 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/red-envelope.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'red-envelope', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M440.6 462.6a8.38 8.38 0 00-7.5-4.6h-48.8c-1.3 0-2.6.4-3.9 1a8.4 8.4 0 00-3.4 11.4l87.4 161.1H419c-4.6 0-8.4 3.8-8.4 8.4V665c0 4.6 3.8 8.4 8.4 8.4h63V702h-63c-4.6 0-8.4 3.8-8.4 8.4v25.1c0 4.6 3.8 8.4 8.4 8.4h63v49.9c0 4.6 3.8 8.4 8.4 8.4h43.7c4.6 0 8.4-3.8 8.4-8.4v-49.9h63.3c4.7 0 8.4-3.8 8.2-8.5v-25c0-4.6-3.8-8.4-8.4-8.4h-63.3v-28.6h63.3c4.6 0 8.4-3.8 8.4-8.4v-25.1c0-4.6-3.8-8.4-8.4-8.4h-45.9l87.2-161a8.45 8.45 0 00-7.4-12.4h-47.8c-3.1 0-6 1.8-7.5 4.6l-71.9 141.9-71.7-142zM832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V193.1l260.3 204.1c11.6 9.1 27.9 9.1 39.5 0L792 193.1V888zm0-751.3h-31.7L512 331.3 263.7 136.7H232v-.7h560v.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/red-envelope.svg b/src/blrec/data/webapp/assets/outline/red-envelope.svg new file mode 100644 index 0000000..df09264 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/red-envelope.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M440.6 462.6a8.38 8.38 0 00-7.5-4.6h-48.8c-1.3 0-2.6.4-3.9 1a8.4 8.4 0 00-3.4 11.4l87.4 161.1H419c-4.6 0-8.4 3.8-8.4 8.4V665c0 4.6 3.8 8.4 8.4 8.4h63V702h-63c-4.6 0-8.4 3.8-8.4 8.4v25.1c0 4.6 3.8 8.4 8.4 8.4h63v49.9c0 4.6 3.8 8.4 8.4 8.4h43.7c4.6 0 8.4-3.8 8.4-8.4v-49.9h63.3c4.7 0 8.4-3.8 8.2-8.5v-25c0-4.6-3.8-8.4-8.4-8.4h-63.3v-28.6h63.3c4.6 0 8.4-3.8 8.4-8.4v-25.1c0-4.6-3.8-8.4-8.4-8.4h-45.9l87.2-161a8.45 8.45 0 00-7.4-12.4h-47.8c-3.1 0-6 1.8-7.5 4.6l-71.9 141.9-71.7-142zM832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V193.1l260.3 204.1c11.6 9.1 27.9 9.1 39.5 0L792 193.1V888zm0-751.3h-31.7L512 331.3 263.7 136.7H232v-.7h560v.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/reddit.js b/src/blrec/data/webapp/assets/outline/reddit.js new file mode 100644 index 0000000..83b8cf1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/reddit.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'reddit', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M288 568a56 56 0 10112 0 56 56 0 10-112 0zm338.7 119.7c-23.1 18.2-68.9 37.8-114.7 37.8s-91.6-19.6-114.7-37.8c-14.4-11.3-35.3-8.9-46.7 5.5s-8.9 35.3 5.5 46.7C396.3 771.6 457.5 792 512 792s115.7-20.4 155.9-52.1a33.25 33.25 0 10-41.2-52.2zM960 456c0-61.9-50.1-112-112-112-42.1 0-78.7 23.2-97.9 57.6-57.6-31.5-127.7-51.8-204.1-56.5L612.9 195l127.9 36.9c11.5 32.6 42.6 56.1 79.2 56.1 46.4 0 84-37.6 84-84s-37.6-84-84-84c-32 0-59.8 17.9-74 44.2L603.5 123a33.2 33.2 0 00-39.6 18.4l-90.8 203.9c-74.5 5.2-142.9 25.4-199.2 56.2A111.94 111.94 0 00176 344c-61.9 0-112 50.1-112 112 0 45.8 27.5 85.1 66.8 102.5-7.1 21-10.8 43-10.8 65.5 0 154.6 175.5 280 392 280s392-125.4 392-280c0-22.6-3.8-44.5-10.8-65.5C932.5 541.1 960 501.8 960 456zM820 172.5a31.5 31.5 0 110 63 31.5 31.5 0 010-63zM120 456c0-30.9 25.1-56 56-56a56 56 0 0150.6 32.1c-29.3 22.2-53.5 47.8-71.5 75.9a56.23 56.23 0 01-35.1-52zm392 381.5c-179.8 0-325.5-95.6-325.5-213.5S332.2 410.5 512 410.5 837.5 506.1 837.5 624 691.8 837.5 512 837.5zM868.8 508c-17.9-28.1-42.2-53.7-71.5-75.9 9-18.9 28.3-32.1 50.6-32.1 30.9 0 56 25.1 56 56 .1 23.5-14.5 43.7-35.1 52zM624 568a56 56 0 10112 0 56 56 0 10-112 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/reddit.svg b/src/blrec/data/webapp/assets/outline/reddit.svg new file mode 100644 index 0000000..9ee2baf --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/reddit.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M288 568a56 56 0 10112 0 56 56 0 10-112 0zm338.7 119.7c-23.1 18.2-68.9 37.8-114.7 37.8s-91.6-19.6-114.7-37.8c-14.4-11.3-35.3-8.9-46.7 5.5s-8.9 35.3 5.5 46.7C396.3 771.6 457.5 792 512 792s115.7-20.4 155.9-52.1a33.25 33.25 0 10-41.2-52.2zM960 456c0-61.9-50.1-112-112-112-42.1 0-78.7 23.2-97.9 57.6-57.6-31.5-127.7-51.8-204.1-56.5L612.9 195l127.9 36.9c11.5 32.6 42.6 56.1 79.2 56.1 46.4 0 84-37.6 84-84s-37.6-84-84-84c-32 0-59.8 17.9-74 44.2L603.5 123a33.2 33.2 0 00-39.6 18.4l-90.8 203.9c-74.5 5.2-142.9 25.4-199.2 56.2A111.94 111.94 0 00176 344c-61.9 0-112 50.1-112 112 0 45.8 27.5 85.1 66.8 102.5-7.1 21-10.8 43-10.8 65.5 0 154.6 175.5 280 392 280s392-125.4 392-280c0-22.6-3.8-44.5-10.8-65.5C932.5 541.1 960 501.8 960 456zM820 172.5a31.5 31.5 0 110 63 31.5 31.5 0 010-63zM120 456c0-30.9 25.1-56 56-56a56 56 0 0150.6 32.1c-29.3 22.2-53.5 47.8-71.5 75.9a56.23 56.23 0 01-35.1-52zm392 381.5c-179.8 0-325.5-95.6-325.5-213.5S332.2 410.5 512 410.5 837.5 506.1 837.5 624 691.8 837.5 512 837.5zM868.8 508c-17.9-28.1-42.2-53.7-71.5-75.9 9-18.9 28.3-32.1 50.6-32.1 30.9 0 56 25.1 56 56 .1 23.5-14.5 43.7-35.1 52zM624 568a56 56 0 10112 0 56 56 0 10-112 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/redo.js b/src/blrec/data/webapp/assets/outline/redo.js new file mode 100644 index 0000000..17ae7d7 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/redo.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'redo', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M758.2 839.1C851.8 765.9 912 651.9 912 523.9 912 303 733.5 124.3 512.6 124 291.4 123.7 112 302.8 112 523.9c0 125.2 57.5 236.9 147.6 310.2 3.5 2.8 8.6 2.2 11.4-1.3l39.4-50.5c2.7-3.4 2.1-8.3-1.2-11.1-8.1-6.6-15.9-13.7-23.4-21.2a318.64 318.64 0 01-68.6-101.7C200.4 609 192 567.1 192 523.9s8.4-85.1 25.1-124.5c16.1-38.1 39.2-72.3 68.6-101.7 29.4-29.4 63.6-52.5 101.7-68.6C426.9 212.4 468.8 204 512 204s85.1 8.4 124.5 25.1c38.1 16.1 72.3 39.2 101.7 68.6 29.4 29.4 52.5 63.6 68.6 101.7 16.7 39.4 25.1 81.3 25.1 124.5s-8.4 85.1-25.1 124.5a318.64 318.64 0 01-68.6 101.7c-9.3 9.3-19.1 18-29.3 26L668.2 724a8 8 0 00-14.1 3l-39.6 162.2c-1.2 5 2.6 9.9 7.7 9.9l167 .8c6.7 0 10.5-7.7 6.3-12.9l-37.3-47.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/redo.svg b/src/blrec/data/webapp/assets/outline/redo.svg new file mode 100644 index 0000000..3f2092a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/redo.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M758.2 839.1C851.8 765.9 912 651.9 912 523.9 912 303 733.5 124.3 512.6 124 291.4 123.7 112 302.8 112 523.9c0 125.2 57.5 236.9 147.6 310.2 3.5 2.8 8.6 2.2 11.4-1.3l39.4-50.5c2.7-3.4 2.1-8.3-1.2-11.1-8.1-6.6-15.9-13.7-23.4-21.2a318.64 318.64 0 01-68.6-101.7C200.4 609 192 567.1 192 523.9s8.4-85.1 25.1-124.5c16.1-38.1 39.2-72.3 68.6-101.7 29.4-29.4 63.6-52.5 101.7-68.6C426.9 212.4 468.8 204 512 204s85.1 8.4 124.5 25.1c38.1 16.1 72.3 39.2 101.7 68.6 29.4 29.4 52.5 63.6 68.6 101.7 16.7 39.4 25.1 81.3 25.1 124.5s-8.4 85.1-25.1 124.5a318.64 318.64 0 01-68.6 101.7c-9.3 9.3-19.1 18-29.3 26L668.2 724a8 8 0 00-14.1 3l-39.6 162.2c-1.2 5 2.6 9.9 7.7 9.9l167 .8c6.7 0 10.5-7.7 6.3-12.9l-37.3-47.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/reload.js b/src/blrec/data/webapp/assets/outline/reload.js new file mode 100644 index 0000000..7b21fa7 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/reload.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'reload', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/reload.svg b/src/blrec/data/webapp/assets/outline/reload.svg new file mode 100644 index 0000000..b6e5f77 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/reload.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/rest.js b/src/blrec/data/webapp/assets/outline/rest.js new file mode 100644 index 0000000..4eac0b9 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/rest.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'rest', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M508 704c79.5 0 144-64.5 144-144s-64.5-144-144-144-144 64.5-144 144 64.5 144 144 144zm0-224c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z" /><path d="M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0031.9 29.3h429.2a32 32 0 0031.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zm-518.6-76h397.2l22.4 76H291l22.4-76zm376.2 664H326.4L282 324h451.9l-44.3 520z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/rest.svg b/src/blrec/data/webapp/assets/outline/rest.svg new file mode 100644 index 0000000..782fcfc --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/rest.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M508 704c79.5 0 144-64.5 144-144s-64.5-144-144-144-144 64.5-144 144 64.5 144 144 144zm0-224c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z" /><path d="M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0031.9 29.3h429.2a32 32 0 0031.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zm-518.6-76h397.2l22.4 76H291l22.4-76zm376.2 664H326.4L282 324h451.9l-44.3 520z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/retweet.js b/src/blrec/data/webapp/assets/outline/retweet.js new file mode 100644 index 0000000..0751dc4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/retweet.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'retweet', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M136 552h63.6c4.4 0 8-3.6 8-8V288.7h528.6v72.6c0 1.9.6 3.7 1.8 5.2a8.3 8.3 0 0011.7 1.4L893 255.4c4.3-5 3.6-10.3 0-13.2L749.7 129.8a8.22 8.22 0 00-5.2-1.8c-4.6 0-8.4 3.8-8.4 8.4V209H199.7c-39.5 0-71.7 32.2-71.7 71.8V544c0 4.4 3.6 8 8 8zm752-80h-63.6c-4.4 0-8 3.6-8 8v255.3H287.8v-72.6c0-1.9-.6-3.7-1.8-5.2a8.3 8.3 0 00-11.7-1.4L131 768.6c-4.3 5-3.6 10.3 0 13.2l143.3 112.4c1.5 1.2 3.3 1.8 5.2 1.8 4.6 0 8.4-3.8 8.4-8.4V815h536.6c39.5 0 71.7-32.2 71.7-71.8V480c-.2-4.4-3.8-8-8.2-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/retweet.svg b/src/blrec/data/webapp/assets/outline/retweet.svg new file mode 100644 index 0000000..64e5287 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/retweet.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M136 552h63.6c4.4 0 8-3.6 8-8V288.7h528.6v72.6c0 1.9.6 3.7 1.8 5.2a8.3 8.3 0 0011.7 1.4L893 255.4c4.3-5 3.6-10.3 0-13.2L749.7 129.8a8.22 8.22 0 00-5.2-1.8c-4.6 0-8.4 3.8-8.4 8.4V209H199.7c-39.5 0-71.7 32.2-71.7 71.8V544c0 4.4 3.6 8 8 8zm752-80h-63.6c-4.4 0-8 3.6-8 8v255.3H287.8v-72.6c0-1.9-.6-3.7-1.8-5.2a8.3 8.3 0 00-11.7-1.4L131 768.6c-4.3 5-3.6 10.3 0 13.2l143.3 112.4c1.5 1.2 3.3 1.8 5.2 1.8 4.6 0 8.4-3.8 8.4-8.4V815h536.6c39.5 0 71.7-32.2 71.7-71.8V480c-.2-4.4-3.8-8-8.2-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/right-circle.js b/src/blrec/data/webapp/assets/outline/right-circle.js new file mode 100644 index 0000000..2e148a0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/right-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'right-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M666.7 505.5l-246-178A8 8 0 00408 334v46.9c0 10.2 4.9 19.9 13.2 25.9L566.6 512 421.2 617.2c-8.3 6-13.2 15.6-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.5l246-178c4.4-3.2 4.4-9.8 0-13z" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/right-circle.svg b/src/blrec/data/webapp/assets/outline/right-circle.svg new file mode 100644 index 0000000..f333b93 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/right-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M666.7 505.5l-246-178A8 8 0 00408 334v46.9c0 10.2 4.9 19.9 13.2 25.9L566.6 512 421.2 617.2c-8.3 6-13.2 15.6-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.5l246-178c4.4-3.2 4.4-9.8 0-13z" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/right-square.js b/src/blrec/data/webapp/assets/outline/right-square.js new file mode 100644 index 0000000..2c169bf --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/right-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'right-square', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M412.7 696.5l246-178c4.4-3.2 4.4-9.7 0-12.9l-246-178c-5.3-3.8-12.7 0-12.7 6.5V381c0 10.2 4.9 19.9 13.2 25.9L558.6 512 413.2 617.2c-8.3 6-13.2 15.6-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.5z" /><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/right-square.svg b/src/blrec/data/webapp/assets/outline/right-square.svg new file mode 100644 index 0000000..f2b1c7a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/right-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M412.7 696.5l246-178c4.4-3.2 4.4-9.7 0-12.9l-246-178c-5.3-3.8-12.7 0-12.7 6.5V381c0 10.2 4.9 19.9 13.2 25.9L558.6 512 413.2 617.2c-8.3 6-13.2 15.6-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.5z" /><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/right.js b/src/blrec/data/webapp/assets/outline/right.js new file mode 100644 index 0000000..edfe085 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/right.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'right', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/right.svg b/src/blrec/data/webapp/assets/outline/right.svg new file mode 100644 index 0000000..ed6983c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/right.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/rise.js b/src/blrec/data/webapp/assets/outline/rise.js new file mode 100644 index 0000000..6adfe9f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/rise.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'rise', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M917 211.1l-199.2 24c-6.6.8-9.4 8.9-4.7 13.6l59.3 59.3-226 226-101.8-101.7c-6.3-6.3-16.4-6.2-22.6 0L100.3 754.1a8.03 8.03 0 000 11.3l45 45.2c3.1 3.1 8.2 3.1 11.3 0L433.3 534 535 635.7c6.3 6.2 16.4 6.2 22.6 0L829 364.5l59.3 59.3a8.01 8.01 0 0013.6-4.7l24-199.2c.7-5.1-3.7-9.5-8.9-8.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/rise.svg b/src/blrec/data/webapp/assets/outline/rise.svg new file mode 100644 index 0000000..1623a4c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/rise.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M917 211.1l-199.2 24c-6.6.8-9.4 8.9-4.7 13.6l59.3 59.3-226 226-101.8-101.7c-6.3-6.3-16.4-6.2-22.6 0L100.3 754.1a8.03 8.03 0 000 11.3l45 45.2c3.1 3.1 8.2 3.1 11.3 0L433.3 534 535 635.7c6.3 6.2 16.4 6.2 22.6 0L829 364.5l59.3 59.3a8.01 8.01 0 0013.6-4.7l24-199.2c.7-5.1-3.7-9.5-8.9-8.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/robot.js b/src/blrec/data/webapp/assets/outline/robot.js new file mode 100644 index 0000000..9b8639f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/robot.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'robot', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M300 328a60 60 0 10120 0 60 60 0 10-120 0zM852 64H172c-17.7 0-32 14.3-32 32v660c0 17.7 14.3 32 32 32h680c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-32 660H204V128h616v596zM604 328a60 60 0 10120 0 60 60 0 10-120 0zm250.2 556H169.8c-16.5 0-29.8 14.3-29.8 32v36c0 4.4 3.3 8 7.4 8h729.1c4.1 0 7.4-3.6 7.4-8v-36c.1-17.7-13.2-32-29.7-32zM664 508H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/robot.svg b/src/blrec/data/webapp/assets/outline/robot.svg new file mode 100644 index 0000000..4d9621d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/robot.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M300 328a60 60 0 10120 0 60 60 0 10-120 0zM852 64H172c-17.7 0-32 14.3-32 32v660c0 17.7 14.3 32 32 32h680c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-32 660H204V128h616v596zM604 328a60 60 0 10120 0 60 60 0 10-120 0zm250.2 556H169.8c-16.5 0-29.8 14.3-29.8 32v36c0 4.4 3.3 8 7.4 8h729.1c4.1 0 7.4-3.6 7.4-8v-36c.1-17.7-13.2-32-29.7-32zM664 508H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/rocket.js b/src/blrec/data/webapp/assets/outline/rocket.js new file mode 100644 index 0000000..b271a6e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/rocket.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'rocket', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 00-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0043.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0043.1-30.5 97.52 97.52 0 0021.4-60.8c0-8.4-1.1-16.4-3.1-23.8H864zM762.3 621.4c9.4 14.6 17 30.3 22.5 46.6H700V558.7a211.6 211.6 0 0162.3 62.7zM388 483.1V318.8l124-147 124 147V668H388V483.1zM239.2 668c5.5-16.3 13.1-32 22.5-46.6 16.3-25.2 37.5-46.5 62.3-62.7V668h-84.8zm388.9 116.2c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5-38.3 0-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 01-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5zM464 400a48 48 0 1096 0 48 48 0 10-96 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/rocket.svg b/src/blrec/data/webapp/assets/outline/rocket.svg new file mode 100644 index 0000000..652111a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/rocket.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 00-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0043.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0043.1-30.5 97.52 97.52 0 0021.4-60.8c0-8.4-1.1-16.4-3.1-23.8H864zM762.3 621.4c9.4 14.6 17 30.3 22.5 46.6H700V558.7a211.6 211.6 0 0162.3 62.7zM388 483.1V318.8l124-147 124 147V668H388V483.1zM239.2 668c5.5-16.3 13.1-32 22.5-46.6 16.3-25.2 37.5-46.5 62.3-62.7V668h-84.8zm388.9 116.2c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5-38.3 0-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 01-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5zM464 400a48 48 0 1096 0 48 48 0 10-96 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/rollback.js b/src/blrec/data/webapp/assets/outline/rollback.js new file mode 100644 index 0000000..dd9c37e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/rollback.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'rollback', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M793 242H366v-74c0-6.7-7.7-10.4-12.9-6.3l-142 112a8 8 0 000 12.6l142 112c5.2 4.1 12.9.4 12.9-6.3v-74h415v470H175c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h618c35.3 0 64-28.7 64-64V306c0-35.3-28.7-64-64-64z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/rollback.svg b/src/blrec/data/webapp/assets/outline/rollback.svg new file mode 100644 index 0000000..7edbeb8 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/rollback.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M793 242H366v-74c0-6.7-7.7-10.4-12.9-6.3l-142 112a8 8 0 000 12.6l142 112c5.2 4.1 12.9.4 12.9-6.3v-74h415v470H175c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h618c35.3 0 64-28.7 64-64V306c0-35.3-28.7-64-64-64z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/rotate-left.js b/src/blrec/data/webapp/assets/outline/rotate-left.js new file mode 100644 index 0000000..951cd99 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/rotate-left.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'rotate-left', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M672 418H144c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H188V494h440v326z" /><path d="M819.3 328.5c-78.8-100.7-196-153.6-314.6-154.2l-.2-64c0-6.5-7.6-10.1-12.6-6.1l-128 101c-4 3.1-3.9 9.1 0 12.3L492 318.6c5.1 4 12.7.4 12.6-6.1v-63.9c12.9.1 25.9.9 38.8 2.5 42.1 5.2 82.1 18.2 119 38.7 38.1 21.2 71.2 49.7 98.4 84.3 27.1 34.7 46.7 73.7 58.1 115.8a325.95 325.95 0 016.5 140.9h74.9c14.8-103.6-11.3-213-81-302.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/rotate-left.svg b/src/blrec/data/webapp/assets/outline/rotate-left.svg new file mode 100644 index 0000000..f892e35 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/rotate-left.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M672 418H144c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H188V494h440v326z" /><path d="M819.3 328.5c-78.8-100.7-196-153.6-314.6-154.2l-.2-64c0-6.5-7.6-10.1-12.6-6.1l-128 101c-4 3.1-3.9 9.1 0 12.3L492 318.6c5.1 4 12.7.4 12.6-6.1v-63.9c12.9.1 25.9.9 38.8 2.5 42.1 5.2 82.1 18.2 119 38.7 38.1 21.2 71.2 49.7 98.4 84.3 27.1 34.7 46.7 73.7 58.1 115.8a325.95 325.95 0 016.5 140.9h74.9c14.8-103.6-11.3-213-81-302.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/rotate-right.js b/src/blrec/data/webapp/assets/outline/rotate-right.js new file mode 100644 index 0000000..f04e130 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/rotate-right.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'rotate-right', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M480.5 251.2c13-1.6 25.9-2.4 38.8-2.5v63.9c0 6.5 7.5 10.1 12.6 6.1L660 217.6c4-3.2 4-9.2 0-12.3l-128-101c-5.1-4-12.6-.4-12.6 6.1l-.2 64c-118.6.5-235.8 53.4-314.6 154.2A399.75 399.75 0 00123.5 631h74.9c-.9-5.3-1.7-10.7-2.4-16.1-5.1-42.1-2.1-84.1 8.9-124.8 11.4-42.2 31-81.1 58.1-115.8 27.2-34.7 60.3-63.2 98.4-84.3 37-20.6 76.9-33.6 119.1-38.8z" /><path d="M880 418H352c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H396V494h440v326z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/rotate-right.svg b/src/blrec/data/webapp/assets/outline/rotate-right.svg new file mode 100644 index 0000000..6c5177b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/rotate-right.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M480.5 251.2c13-1.6 25.9-2.4 38.8-2.5v63.9c0 6.5 7.5 10.1 12.6 6.1L660 217.6c4-3.2 4-9.2 0-12.3l-128-101c-5.1-4-12.6-.4-12.6 6.1l-.2 64c-118.6.5-235.8 53.4-314.6 154.2A399.75 399.75 0 00123.5 631h74.9c-.9-5.3-1.7-10.7-2.4-16.1-5.1-42.1-2.1-84.1 8.9-124.8 11.4-42.2 31-81.1 58.1-115.8 27.2-34.7 60.3-63.2 98.4-84.3 37-20.6 76.9-33.6 119.1-38.8z" /><path d="M880 418H352c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H396V494h440v326z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/safety-certificate.js b/src/blrec/data/webapp/assets/outline/safety-certificate.js new file mode 100644 index 0000000..2fd3d47 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/safety-certificate.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'safety-certificate', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zm-405.8-201c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0026 0l212.6-292.7c3.8-5.3 0-12.7-6.5-12.7h-55.2c-5.1 0-10 2.5-13 6.6L468.9 542.4l-64.7-89.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/safety-certificate.svg b/src/blrec/data/webapp/assets/outline/safety-certificate.svg new file mode 100644 index 0000000..01b4e18 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/safety-certificate.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zm-405.8-201c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0026 0l212.6-292.7c3.8-5.3 0-12.7-6.5-12.7h-55.2c-5.1 0-10 2.5-13 6.6L468.9 542.4l-64.7-89.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/safety.js b/src/blrec/data/webapp/assets/outline/safety.js new file mode 100644 index 0000000..e4ddb43 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/safety.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'safety', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M512 64L128 192v384c0 212.1 171.9 384 384 384s384-171.9 384-384V192L512 64zm312 512c0 172.3-139.7 312-312 312S200 748.3 200 576V246l312-110 312 110v330z" /><path d="M378.4 475.1a35.91 35.91 0 00-50.9 0 35.91 35.91 0 000 50.9l129.4 129.4 2.1 2.1a33.98 33.98 0 0048.1 0L730.6 434a33.98 33.98 0 000-48.1l-2.8-2.8a33.98 33.98 0 00-48.1 0L483 579.7 378.4 475.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/safety.svg b/src/blrec/data/webapp/assets/outline/safety.svg new file mode 100644 index 0000000..2659ed3 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/safety.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M512 64L128 192v384c0 212.1 171.9 384 384 384s384-171.9 384-384V192L512 64zm312 512c0 172.3-139.7 312-312 312S200 748.3 200 576V246l312-110 312 110v330z" /><path d="M378.4 475.1a35.91 35.91 0 00-50.9 0 35.91 35.91 0 000 50.9l129.4 129.4 2.1 2.1a33.98 33.98 0 0048.1 0L730.6 434a33.98 33.98 0 000-48.1l-2.8-2.8a33.98 33.98 0 00-48.1 0L483 579.7 378.4 475.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/save.js b/src/blrec/data/webapp/assets/outline/save.js new file mode 100644 index 0000000..a5c3615 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/save.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'save', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/save.svg b/src/blrec/data/webapp/assets/outline/save.svg new file mode 100644 index 0000000..9855064 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/save.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/scan.js b/src/blrec/data/webapp/assets/outline/scan.js new file mode 100644 index 0000000..6575cc3 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/scan.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'scan', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M136 384h56c4.4 0 8-3.6 8-8V200h176c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-37.6 0-68 30.4-68 68v180c0 4.4 3.6 8 8 8zm512-184h176v176c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V196c0-37.6-30.4-68-68-68H648c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM376 824H200V648c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v180c0 37.6 30.4 68 68 68h180c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm512-184h-56c-4.4 0-8 3.6-8 8v176H648c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h180c37.6 0 68-30.4 68-68V648c0-4.4-3.6-8-8-8zm16-164H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/scan.svg b/src/blrec/data/webapp/assets/outline/scan.svg new file mode 100644 index 0000000..f41e49a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/scan.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M136 384h56c4.4 0 8-3.6 8-8V200h176c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-37.6 0-68 30.4-68 68v180c0 4.4 3.6 8 8 8zm512-184h176v176c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V196c0-37.6-30.4-68-68-68H648c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zM376 824H200V648c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v180c0 37.6 30.4 68 68 68h180c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm512-184h-56c-4.4 0-8 3.6-8 8v176H648c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h180c37.6 0 68-30.4 68-68V648c0-4.4-3.6-8-8-8zm16-164H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/schedule.js b/src/blrec/data/webapp/assets/outline/schedule.js new file mode 100644 index 0000000..3071020 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/schedule.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'schedule', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496zM416 496H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 136H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm308.2-177.4L620.6 598.3l-52.8-73.1c-3-4.2-7.8-6.6-12.9-6.6H500c-6.5 0-10.3 7.4-6.5 12.7l114.1 158.2a15.9 15.9 0 0025.8 0l165-228.7c3.8-5.3 0-12.7-6.5-12.7H737c-5-.1-9.8 2.4-12.8 6.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/schedule.svg b/src/blrec/data/webapp/assets/outline/schedule.svg new file mode 100644 index 0000000..e6383b0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/schedule.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496zM416 496H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 136H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm308.2-177.4L620.6 598.3l-52.8-73.1c-3-4.2-7.8-6.6-12.9-6.6H500c-6.5 0-10.3 7.4-6.5 12.7l114.1 158.2a15.9 15.9 0 0025.8 0l165-228.7c3.8-5.3 0-12.7-6.5-12.7H737c-5-.1-9.8 2.4-12.8 6.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/scissor.js b/src/blrec/data/webapp/assets/outline/scissor.js new file mode 100644 index 0000000..e21327d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/scissor.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'scissor', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M567.1 512l318.5-319.3c5-5 1.5-13.7-5.6-13.7h-90.5c-2.1 0-4.2.8-5.6 2.3l-273.3 274-90.2-90.5c12.5-22.1 19.7-47.6 19.7-74.8 0-83.9-68.1-152-152-152s-152 68.1-152 152 68.1 152 152 152c27.7 0 53.6-7.4 75.9-20.3l90 90.3-90.1 90.3A151.04 151.04 0 00288 582c-83.9 0-152 68.1-152 152s68.1 152 152 152 152-68.1 152-152c0-27.2-7.2-52.7-19.7-74.8l90.2-90.5 273.3 274c1.5 1.5 3.5 2.3 5.6 2.3H880c7.1 0 10.7-8.6 5.6-13.7L567.1 512zM288 370c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm0 444c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/scissor.svg b/src/blrec/data/webapp/assets/outline/scissor.svg new file mode 100644 index 0000000..cb3aaa7 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/scissor.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M567.1 512l318.5-319.3c5-5 1.5-13.7-5.6-13.7h-90.5c-2.1 0-4.2.8-5.6 2.3l-273.3 274-90.2-90.5c12.5-22.1 19.7-47.6 19.7-74.8 0-83.9-68.1-152-152-152s-152 68.1-152 152 68.1 152 152 152c27.7 0 53.6-7.4 75.9-20.3l90 90.3-90.1 90.3A151.04 151.04 0 00288 582c-83.9 0-152 68.1-152 152s68.1 152 152 152 152-68.1 152-152c0-27.2-7.2-52.7-19.7-74.8l90.2-90.5 273.3 274c1.5 1.5 3.5 2.3 5.6 2.3H880c7.1 0 10.7-8.6 5.6-13.7L567.1 512zM288 370c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm0 444c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/search.js b/src/blrec/data/webapp/assets/outline/search.js new file mode 100644 index 0000000..49bf697 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/search.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'search', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/search.svg b/src/blrec/data/webapp/assets/outline/search.svg new file mode 100644 index 0000000..df64881 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/search.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/security-scan.js b/src/blrec/data/webapp/assets/outline/security-scan.js new file mode 100644 index 0000000..faf96ed --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/security-scan.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'security-scan', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zM402.9 528.8l-77.5 77.5a8.03 8.03 0 000 11.3l34 34c3.1 3.1 8.2 3.1 11.3 0l77.5-77.5c55.7 35.1 130.1 28.4 178.6-20.1 56.3-56.3 56.3-147.5 0-203.8-56.3-56.3-147.5-56.3-203.8 0-48.5 48.5-55.2 123-20.1 178.6zm65.4-133.3c31.3-31.3 82-31.3 113.2 0 31.3 31.3 31.3 82 0 113.2-31.3 31.3-82 31.3-113.2 0s-31.3-81.9 0-113.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/security-scan.svg b/src/blrec/data/webapp/assets/outline/security-scan.svg new file mode 100644 index 0000000..7180f10 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/security-scan.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6zM402.9 528.8l-77.5 77.5a8.03 8.03 0 000 11.3l34 34c3.1 3.1 8.2 3.1 11.3 0l77.5-77.5c55.7 35.1 130.1 28.4 178.6-20.1 56.3-56.3 56.3-147.5 0-203.8-56.3-56.3-147.5-56.3-203.8 0-48.5 48.5-55.2 123-20.1 178.6zm65.4-133.3c31.3-31.3 82-31.3 113.2 0 31.3 31.3 31.3 82 0 113.2-31.3 31.3-82 31.3-113.2 0s-31.3-81.9 0-113.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/select.js b/src/blrec/data/webapp/assets/outline/select.js new file mode 100644 index 0000000..bd24dfe --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/select.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'select', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h360c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H184V184h656v320c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32zM653.3 599.4l52.2-52.2a8.01 8.01 0 00-4.7-13.6l-179.4-21c-5.1-.6-9.5 3.7-8.9 8.9l21 179.4c.8 6.6 8.9 9.4 13.6 4.7l52.4-52.4 256.2 256.2c3.1 3.1 8.2 3.1 11.3 0l42.4-42.4c3.1-3.1 3.1-8.2 0-11.3L653.3 599.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/select.svg b/src/blrec/data/webapp/assets/outline/select.svg new file mode 100644 index 0000000..8081133 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/select.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h360c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H184V184h656v320c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32zM653.3 599.4l52.2-52.2a8.01 8.01 0 00-4.7-13.6l-179.4-21c-5.1-.6-9.5 3.7-8.9 8.9l21 179.4c.8 6.6 8.9 9.4 13.6 4.7l52.4-52.4 256.2 256.2c3.1 3.1 8.2 3.1 11.3 0l42.4-42.4c3.1-3.1 3.1-8.2 0-11.3L653.3 599.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/send.js b/src/blrec/data/webapp/assets/outline/send.js new file mode 100644 index 0000000..70acc87 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/send.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'send', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M931.4 498.9L94.9 79.5c-3.4-1.7-7.3-2.1-11-1.2a15.99 15.99 0 00-11.7 19.3l86.2 352.2c1.3 5.3 5.2 9.6 10.4 11.3l147.7 50.7-147.6 50.7c-5.2 1.8-9.1 6-10.3 11.3L72.2 926.5c-.9 3.7-.5 7.6 1.2 10.9 3.9 7.9 13.5 11.1 21.5 7.2l836.5-417c3.1-1.5 5.6-4.1 7.2-7.1 3.9-8 .7-17.6-7.2-21.6zM170.8 826.3l50.3-205.6 295.2-101.3c2.3-.8 4.2-2.6 5-5 1.4-4.2-.8-8.7-5-10.2L221.1 403 171 198.2l628 314.9-628.2 313.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/send.svg b/src/blrec/data/webapp/assets/outline/send.svg new file mode 100644 index 0000000..865fe2e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/send.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M931.4 498.9L94.9 79.5c-3.4-1.7-7.3-2.1-11-1.2a15.99 15.99 0 00-11.7 19.3l86.2 352.2c1.3 5.3 5.2 9.6 10.4 11.3l147.7 50.7-147.6 50.7c-5.2 1.8-9.1 6-10.3 11.3L72.2 926.5c-.9 3.7-.5 7.6 1.2 10.9 3.9 7.9 13.5 11.1 21.5 7.2l836.5-417c3.1-1.5 5.6-4.1 7.2-7.1 3.9-8 .7-17.6-7.2-21.6zM170.8 826.3l50.3-205.6 295.2-101.3c2.3-.8 4.2-2.6 5-5 1.4-4.2-.8-8.7-5-10.2L221.1 403 171 198.2l628 314.9-628.2 313.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/setting.js b/src/blrec/data/webapp/assets/outline/setting.js new file mode 100644 index 0000000..4cd6953 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/setting.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'setting', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/setting.svg b/src/blrec/data/webapp/assets/outline/setting.svg new file mode 100644 index 0000000..76854ba --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/setting.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/shake.js b/src/blrec/data/webapp/assets/outline/shake.js new file mode 100644 index 0000000..9b005e1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/shake.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'shake', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M324 666a48 48 0 1096 0 48 48 0 10-96 0zm616.7-309.6L667.6 83.2C655.2 70.9 638.7 64 621.1 64s-34.1 6.8-46.5 19.2L83.3 574.5a65.85 65.85 0 000 93.1l273.2 273.2c12.3 12.3 28.9 19.2 46.5 19.2s34.1-6.8 46.5-19.2l491.3-491.3c25.6-25.7 25.6-67.5-.1-93.1zM403 880.1L143.9 621l477.2-477.2 259 259.2L403 880.1zM152.8 373.7a7.9 7.9 0 0011.2 0L373.7 164a7.9 7.9 0 000-11.2l-38.4-38.4a7.9 7.9 0 00-11.2 0L114.3 323.9a7.9 7.9 0 000 11.2l38.5 38.6zm718.6 276.6a7.9 7.9 0 00-11.2 0L650.3 860.1a7.9 7.9 0 000 11.2l38.4 38.4a7.9 7.9 0 0011.2 0L909.7 700a7.9 7.9 0 000-11.2l-38.3-38.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/shake.svg b/src/blrec/data/webapp/assets/outline/shake.svg new file mode 100644 index 0000000..1255721 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/shake.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M324 666a48 48 0 1096 0 48 48 0 10-96 0zm616.7-309.6L667.6 83.2C655.2 70.9 638.7 64 621.1 64s-34.1 6.8-46.5 19.2L83.3 574.5a65.85 65.85 0 000 93.1l273.2 273.2c12.3 12.3 28.9 19.2 46.5 19.2s34.1-6.8 46.5-19.2l491.3-491.3c25.6-25.7 25.6-67.5-.1-93.1zM403 880.1L143.9 621l477.2-477.2 259 259.2L403 880.1zM152.8 373.7a7.9 7.9 0 0011.2 0L373.7 164a7.9 7.9 0 000-11.2l-38.4-38.4a7.9 7.9 0 00-11.2 0L114.3 323.9a7.9 7.9 0 000 11.2l38.5 38.6zm718.6 276.6a7.9 7.9 0 00-11.2 0L650.3 860.1a7.9 7.9 0 000 11.2l38.4 38.4a7.9 7.9 0 0011.2 0L909.7 700a7.9 7.9 0 000-11.2l-38.3-38.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/share-alt.js b/src/blrec/data/webapp/assets/outline/share-alt.js new file mode 100644 index 0000000..a249cf3 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/share-alt.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'share-alt', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M752 664c-28.5 0-54.8 10-75.4 26.7L469.4 540.8a160.68 160.68 0 000-57.6l207.2-149.9C697.2 350 723.5 360 752 360c66.2 0 120-53.8 120-120s-53.8-120-120-120-120 53.8-120 120c0 11.6 1.6 22.7 4.7 33.3L439.9 415.8C410.7 377.1 364.3 352 312 352c-88.4 0-160 71.6-160 160s71.6 160 160 160c52.3 0 98.7-25.1 127.9-63.8l196.8 142.5c-3.1 10.6-4.7 21.8-4.7 33.3 0 66.2 53.8 120 120 120s120-53.8 120-120-53.8-120-120-120zm0-476c28.7 0 52 23.3 52 52s-23.3 52-52 52-52-23.3-52-52 23.3-52 52-52zM312 600c-48.5 0-88-39.5-88-88s39.5-88 88-88 88 39.5 88 88-39.5 88-88 88zm440 236c-28.7 0-52-23.3-52-52s23.3-52 52-52 52 23.3 52 52-23.3 52-52 52z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/share-alt.svg b/src/blrec/data/webapp/assets/outline/share-alt.svg new file mode 100644 index 0000000..05819f1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/share-alt.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M752 664c-28.5 0-54.8 10-75.4 26.7L469.4 540.8a160.68 160.68 0 000-57.6l207.2-149.9C697.2 350 723.5 360 752 360c66.2 0 120-53.8 120-120s-53.8-120-120-120-120 53.8-120 120c0 11.6 1.6 22.7 4.7 33.3L439.9 415.8C410.7 377.1 364.3 352 312 352c-88.4 0-160 71.6-160 160s71.6 160 160 160c52.3 0 98.7-25.1 127.9-63.8l196.8 142.5c-3.1 10.6-4.7 21.8-4.7 33.3 0 66.2 53.8 120 120 120s120-53.8 120-120-53.8-120-120-120zm0-476c28.7 0 52 23.3 52 52s-23.3 52-52 52-52-23.3-52-52 23.3-52 52-52zM312 600c-48.5 0-88-39.5-88-88s39.5-88 88-88 88 39.5 88 88-39.5 88-88 88zm440 236c-28.7 0-52-23.3-52-52s23.3-52 52-52 52 23.3 52 52-23.3 52-52 52z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/shop.js b/src/blrec/data/webapp/assets/outline/shop.js new file mode 100644 index 0000000..e57d78b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/shop.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'shop', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0014.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h676c17.7 0 32-14.3 32-32V535a175 175 0 0015.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zM214 184h596v88H214v-88zm362 656.1H448V736h128v104.1zm234 0H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0038.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0038.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 3-1.3 6-2.6 9-4v242.2zm30-404.4c0 59.8-49 108.3-109.3 108.3-40.8 0-76.4-22.1-95.2-54.9-2.9-5-8.1-8.1-13.9-8.1h-.6c-5.7 0-11 3.1-13.9 8.1A109.24 109.24 0 01512 544c-40.7 0-76.2-22-95-54.7-3-5.1-8.4-8.3-14.3-8.3s-11.4 3.2-14.3 8.3a109.63 109.63 0 01-95.1 54.7C233 544 184 495.5 184 435.7v-91.2c0-.3.2-.5.5-.5h655c.3 0 .5.2.5.5v91.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/shop.svg b/src/blrec/data/webapp/assets/outline/shop.svg new file mode 100644 index 0000000..4560c03 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/shop.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0014.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h676c17.7 0 32-14.3 32-32V535a175 175 0 0015.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zM214 184h596v88H214v-88zm362 656.1H448V736h128v104.1zm234 0H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0038.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0038.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 3-1.3 6-2.6 9-4v242.2zm30-404.4c0 59.8-49 108.3-109.3 108.3-40.8 0-76.4-22.1-95.2-54.9-2.9-5-8.1-8.1-13.9-8.1h-.6c-5.7 0-11 3.1-13.9 8.1A109.24 109.24 0 01512 544c-40.7 0-76.2-22-95-54.7-3-5.1-8.4-8.3-14.3-8.3s-11.4 3.2-14.3 8.3a109.63 109.63 0 01-95.1 54.7C233 544 184 495.5 184 435.7v-91.2c0-.3.2-.5.5-.5h655c.3 0 .5.2.5.5v91.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/shopping-cart.js b/src/blrec/data/webapp/assets/outline/shopping-cart.js new file mode 100644 index 0000000..9676699 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/shopping-cart.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'shopping-cart', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M922.9 701.9H327.4l29.9-60.9 496.8-.9c16.8 0 31.2-12 34.2-28.6l68.8-385.1c1.8-10.1-.9-20.5-7.5-28.4a34.99 34.99 0 00-26.6-12.5l-632-2.1-5.4-25.4c-3.4-16.2-18-28-34.6-28H96.5a35.3 35.3 0 100 70.6h125.9L246 312.8l58.1 281.3-74.8 122.1a34.96 34.96 0 00-3 36.8c6 11.9 18.1 19.4 31.5 19.4h62.8a102.43 102.43 0 00-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7h161.1a102.43 102.43 0 00-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7H923c19.4 0 35.3-15.8 35.3-35.3a35.42 35.42 0 00-35.4-35.2zM305.7 253l575.8 1.9-56.4 315.8-452.3.8L305.7 253zm96.9 612.7c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 01-31.6 31.6zm325.1 0c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 01-31.6 31.6z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/shopping-cart.svg b/src/blrec/data/webapp/assets/outline/shopping-cart.svg new file mode 100644 index 0000000..7b40357 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/shopping-cart.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M922.9 701.9H327.4l29.9-60.9 496.8-.9c16.8 0 31.2-12 34.2-28.6l68.8-385.1c1.8-10.1-.9-20.5-7.5-28.4a34.99 34.99 0 00-26.6-12.5l-632-2.1-5.4-25.4c-3.4-16.2-18-28-34.6-28H96.5a35.3 35.3 0 100 70.6h125.9L246 312.8l58.1 281.3-74.8 122.1a34.96 34.96 0 00-3 36.8c6 11.9 18.1 19.4 31.5 19.4h62.8a102.43 102.43 0 00-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7h161.1a102.43 102.43 0 00-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7H923c19.4 0 35.3-15.8 35.3-35.3a35.42 35.42 0 00-35.4-35.2zM305.7 253l575.8 1.9-56.4 315.8-452.3.8L305.7 253zm96.9 612.7c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 01-31.6 31.6zm325.1 0c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 01-31.6 31.6z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/shopping.js b/src/blrec/data/webapp/assets/outline/shopping.js new file mode 100644 index 0000000..8dc4ad6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/shopping.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'shopping', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-432-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16H400v-16zm392 544H232V384h96v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h224v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h96v456z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/shopping.svg b/src/blrec/data/webapp/assets/outline/shopping.svg new file mode 100644 index 0000000..39e925a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/shopping.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-432-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16H400v-16zm392 544H232V384h96v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h224v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h96v456z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/shrink.js b/src/blrec/data/webapp/assets/outline/shrink.js new file mode 100644 index 0000000..a283be0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/shrink.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'shrink', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M881.7 187.4l-45.1-45.1a8.03 8.03 0 00-11.3 0L667.8 299.9l-54.7-54.7a7.94 7.94 0 00-13.5 4.7L576.1 439c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 157.6-157.6c3-3 3-8.1-.1-11.2zM439 576.1l-189.2 23.5c-6.6.8-9.3 8.9-4.7 13.5l54.7 54.7-157.5 157.5a8.03 8.03 0 000 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l157.6-157.6 54.7 54.7a7.94 7.94 0 0013.5-4.7L447.9 585a7.9 7.9 0 00-8.9-8.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/shrink.svg b/src/blrec/data/webapp/assets/outline/shrink.svg new file mode 100644 index 0000000..19c59b4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/shrink.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M881.7 187.4l-45.1-45.1a8.03 8.03 0 00-11.3 0L667.8 299.9l-54.7-54.7a7.94 7.94 0 00-13.5 4.7L576.1 439c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 157.6-157.6c3-3 3-8.1-.1-11.2zM439 576.1l-189.2 23.5c-6.6.8-9.3 8.9-4.7 13.5l54.7 54.7-157.5 157.5a8.03 8.03 0 000 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l157.6-157.6 54.7 54.7a7.94 7.94 0 0013.5-4.7L447.9 585a7.9 7.9 0 00-8.9-8.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/sisternode.js b/src/blrec/data/webapp/assets/outline/sisternode.js new file mode 100644 index 0000000..fbe8d95 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/sisternode.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'sisternode', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M672 432c-120.3 0-219.9 88.5-237.3 204H320c-15.5 0-28-12.5-28-28V244h291c14.2 35.2 48.7 60 89 60 53 0 96-43 96-96s-43-96-96-96c-40.3 0-74.8 24.8-89 60H112v72h108v364c0 55.2 44.8 100 100 100h114.7c17.4 115.5 117 204 237.3 204 132.5 0 240-107.5 240-240S804.5 432 672 432zm128 266c0 4.4-3.6 8-8 8h-86v86c0 4.4-3.6 8-8 8h-52c-4.4 0-8-3.6-8-8v-86h-86c-4.4 0-8-3.6-8-8v-52c0-4.4 3.6-8 8-8h86v-86c0-4.4 3.6-8 8-8h52c4.4 0 8 3.6 8 8v86h86c4.4 0 8 3.6 8 8v52z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/sisternode.svg b/src/blrec/data/webapp/assets/outline/sisternode.svg new file mode 100644 index 0000000..8e1c8b2 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/sisternode.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M672 432c-120.3 0-219.9 88.5-237.3 204H320c-15.5 0-28-12.5-28-28V244h291c14.2 35.2 48.7 60 89 60 53 0 96-43 96-96s-43-96-96-96c-40.3 0-74.8 24.8-89 60H112v72h108v364c0 55.2 44.8 100 100 100h114.7c17.4 115.5 117 204 237.3 204 132.5 0 240-107.5 240-240S804.5 432 672 432zm128 266c0 4.4-3.6 8-8 8h-86v86c0 4.4-3.6 8-8 8h-52c-4.4 0-8-3.6-8-8v-86h-86c-4.4 0-8-3.6-8-8v-52c0-4.4 3.6-8 8-8h86v-86c0-4.4 3.6-8 8-8h52c4.4 0 8 3.6 8 8v86h86c4.4 0 8 3.6 8 8v52z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/sketch.js b/src/blrec/data/webapp/assets/outline/sketch.js new file mode 100644 index 0000000..9fe8971 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/sketch.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'sketch', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M925.6 405.1l-203-253.7a6.5 6.5 0 00-5-2.4H306.4c-1.9 0-3.8.9-5 2.4l-203 253.7a6.5 6.5 0 00.2 8.3l408.6 459.5c1.2 1.4 3 2.1 4.8 2.1 1.8 0 3.5-.8 4.8-2.1l408.6-459.5a6.5 6.5 0 00.2-8.3zM645.2 206.4l34.4 133.9-132.5-133.9h98.1zm8.2 178.5H370.6L512 242l141.4 142.9zM378.8 206.4h98.1L344.3 340.3l34.5-133.9zm-53.4 7l-44.1 171.5h-93.1l137.2-171.5zM194.6 434.9H289l125.8 247.7-220.2-247.7zM512 763.4L345.1 434.9h333.7L512 763.4zm97.1-80.8L735 434.9h94.4L609.1 682.6zm133.6-297.7l-44.1-171.5 137.2 171.5h-93.1z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/sketch.svg b/src/blrec/data/webapp/assets/outline/sketch.svg new file mode 100644 index 0000000..170dc12 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/sketch.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M925.6 405.1l-203-253.7a6.5 6.5 0 00-5-2.4H306.4c-1.9 0-3.8.9-5 2.4l-203 253.7a6.5 6.5 0 00.2 8.3l408.6 459.5c1.2 1.4 3 2.1 4.8 2.1 1.8 0 3.5-.8 4.8-2.1l408.6-459.5a6.5 6.5 0 00.2-8.3zM645.2 206.4l34.4 133.9-132.5-133.9h98.1zm8.2 178.5H370.6L512 242l141.4 142.9zM378.8 206.4h98.1L344.3 340.3l34.5-133.9zm-53.4 7l-44.1 171.5h-93.1l137.2-171.5zM194.6 434.9H289l125.8 247.7-220.2-247.7zM512 763.4L345.1 434.9h333.7L512 763.4zm97.1-80.8L735 434.9h94.4L609.1 682.6zm133.6-297.7l-44.1-171.5 137.2 171.5h-93.1z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/skin.js b/src/blrec/data/webapp/assets/outline/skin.js new file mode 100644 index 0000000..20ea3e4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/skin.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'skin', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 00-37-29.3H154a44 44 0 00-44 44v252a44 44 0 0044 44h75v388a44 44 0 0044 44h478a44 44 0 0044-44V466h75a44 44 0 0044-44V170a44 44 0 00-44-44zm-28 268H723v432H301V394H182V198h153.3c28.2 71.2 97.5 120 176.7 120s148.5-48.8 176.7-120H842v196z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/skin.svg b/src/blrec/data/webapp/assets/outline/skin.svg new file mode 100644 index 0000000..a164d1c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/skin.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 00-37-29.3H154a44 44 0 00-44 44v252a44 44 0 0044 44h75v388a44 44 0 0044 44h478a44 44 0 0044-44V466h75a44 44 0 0044-44V170a44 44 0 00-44-44zm-28 268H723v432H301V394H182V198h153.3c28.2 71.2 97.5 120 176.7 120s148.5-48.8 176.7-120H842v196z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/skype.js b/src/blrec/data/webapp/assets/outline/skype.js new file mode 100644 index 0000000..2d48100 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/skype.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'skype', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M883.7 578.6c4.1-22.5 6.3-45.5 6.3-68.5 0-51-10-100.5-29.7-147-19-45-46.3-85.4-81-120.1a375.79 375.79 0 00-120.1-80.9c-46.6-19.7-96-29.7-147-29.7-24 0-48.1 2.3-71.5 6.8A225.1 225.1 0 00335.6 113c-59.7 0-115.9 23.3-158.1 65.5A222.25 222.25 0 00112 336.6c0 38 9.8 75.4 28.1 108.4-3.7 21.4-5.7 43.3-5.7 65.1 0 51 10 100.5 29.7 147 19 45 46.2 85.4 80.9 120.1 34.7 34.7 75.1 61.9 120.1 80.9 46.6 19.7 96 29.7 147 29.7 22.2 0 44.4-2 66.2-5.9 33.5 18.9 71.3 29 110 29 59.7 0 115.9-23.2 158.1-65.5 42.3-42.2 65.5-98.4 65.5-158.1.1-38-9.7-75.5-28.2-108.7zm-88.1 216C766.9 823.4 729 839 688.4 839c-26.1 0-51.8-6.8-74.6-19.7l-22.5-12.7-25.5 4.5c-17.8 3.2-35.8 4.8-53.6 4.8-41.4 0-81.3-8.1-119.1-24.1-36.3-15.3-69-37.3-97.2-65.5a304.29 304.29 0 01-65.5-97.1c-16-37.7-24-77.6-24-119 0-17.4 1.6-35.2 4.6-52.8l4.4-25.1L203 410a151.02 151.02 0 01-19.1-73.4c0-40.6 15.7-78.5 44.4-107.2C257.1 200.7 295 185 335.6 185a153 153 0 0171.4 17.9l22.4 11.8 24.8-4.8c18.9-3.6 38.4-5.5 58-5.5 41.4 0 81.3 8.1 119 24 36.5 15.4 69.1 37.4 97.2 65.5 28.2 28.1 50.2 60.8 65.6 97.2 16 37.7 24 77.6 24 119 0 18.4-1.7 37-5.1 55.5l-4.7 25.5 12.6 22.6c12.6 22.5 19.2 48 19.2 73.7 0 40.7-15.7 78.5-44.4 107.2zM583.4 466.2L495 446.6c-33.6-7.7-72.3-17.8-72.3-49.5s27.1-53.9 76.1-53.9c98.7 0 89.7 67.8 138.7 67.8 25.8 0 48.4-15.2 48.4-41.2 0-60.8-97.4-106.5-180-106.5-89.7 0-185.2 38.1-185.2 139.5 0 48.8 17.4 100.8 113.6 124.9l119.4 29.8c36.1 8.9 45.2 29.2 45.2 47.6 0 30.5-30.3 60.3-85.2 60.3-107.2 0-92.3-82.5-149.7-82.5-25.8 0-44.5 17.8-44.5 43.1 0 49.4 60 115.4 194.2 115.4 127.7 0 191-61.5 191-144 0-53.1-24.5-109.6-121.3-131.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/skype.svg b/src/blrec/data/webapp/assets/outline/skype.svg new file mode 100644 index 0000000..b139fc6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/skype.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M883.7 578.6c4.1-22.5 6.3-45.5 6.3-68.5 0-51-10-100.5-29.7-147-19-45-46.3-85.4-81-120.1a375.79 375.79 0 00-120.1-80.9c-46.6-19.7-96-29.7-147-29.7-24 0-48.1 2.3-71.5 6.8A225.1 225.1 0 00335.6 113c-59.7 0-115.9 23.3-158.1 65.5A222.25 222.25 0 00112 336.6c0 38 9.8 75.4 28.1 108.4-3.7 21.4-5.7 43.3-5.7 65.1 0 51 10 100.5 29.7 147 19 45 46.2 85.4 80.9 120.1 34.7 34.7 75.1 61.9 120.1 80.9 46.6 19.7 96 29.7 147 29.7 22.2 0 44.4-2 66.2-5.9 33.5 18.9 71.3 29 110 29 59.7 0 115.9-23.2 158.1-65.5 42.3-42.2 65.5-98.4 65.5-158.1.1-38-9.7-75.5-28.2-108.7zm-88.1 216C766.9 823.4 729 839 688.4 839c-26.1 0-51.8-6.8-74.6-19.7l-22.5-12.7-25.5 4.5c-17.8 3.2-35.8 4.8-53.6 4.8-41.4 0-81.3-8.1-119.1-24.1-36.3-15.3-69-37.3-97.2-65.5a304.29 304.29 0 01-65.5-97.1c-16-37.7-24-77.6-24-119 0-17.4 1.6-35.2 4.6-52.8l4.4-25.1L203 410a151.02 151.02 0 01-19.1-73.4c0-40.6 15.7-78.5 44.4-107.2C257.1 200.7 295 185 335.6 185a153 153 0 0171.4 17.9l22.4 11.8 24.8-4.8c18.9-3.6 38.4-5.5 58-5.5 41.4 0 81.3 8.1 119 24 36.5 15.4 69.1 37.4 97.2 65.5 28.2 28.1 50.2 60.8 65.6 97.2 16 37.7 24 77.6 24 119 0 18.4-1.7 37-5.1 55.5l-4.7 25.5 12.6 22.6c12.6 22.5 19.2 48 19.2 73.7 0 40.7-15.7 78.5-44.4 107.2zM583.4 466.2L495 446.6c-33.6-7.7-72.3-17.8-72.3-49.5s27.1-53.9 76.1-53.9c98.7 0 89.7 67.8 138.7 67.8 25.8 0 48.4-15.2 48.4-41.2 0-60.8-97.4-106.5-180-106.5-89.7 0-185.2 38.1-185.2 139.5 0 48.8 17.4 100.8 113.6 124.9l119.4 29.8c36.1 8.9 45.2 29.2 45.2 47.6 0 30.5-30.3 60.3-85.2 60.3-107.2 0-92.3-82.5-149.7-82.5-25.8 0-44.5 17.8-44.5 43.1 0 49.4 60 115.4 194.2 115.4 127.7 0 191-61.5 191-144 0-53.1-24.5-109.6-121.3-131.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/slack-square.js b/src/blrec/data/webapp/assets/outline/slack-square.js new file mode 100644 index 0000000..bdb33be --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/slack-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'slack-square', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM529 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4a50.35 50.35 0 01-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4a50.35 50.35 0 0150.3 50.4v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm134 403.2c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134a50.35 50.35 0 01-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/slack-square.svg b/src/blrec/data/webapp/assets/outline/slack-square.svg new file mode 100644 index 0000000..fee3de1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/slack-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM529 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V311.4zM361.5 580.2c0 27.8-22.5 50.4-50.3 50.4a50.35 50.35 0 01-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h50.3v50.4zm134 134.4c0 27.8-22.5 50.4-50.3 50.4-27.8 0-50.3-22.6-50.3-50.4V580.2c0-27.8 22.5-50.4 50.3-50.4a50.35 50.35 0 0150.3 50.4v134.4zm-50.2-218.4h-134c-27.8 0-50.3-22.6-50.3-50.4 0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4-.1 27.9-22.6 50.4-50.3 50.4zm0-134.4c-13.3 0-26.1-5.3-35.6-14.8S395 324.8 395 311.4c0-27.8 22.5-50.4 50.3-50.4 27.8 0 50.3 22.6 50.3 50.4v50.4h-50.3zm134 403.2c-27.8 0-50.3-22.6-50.3-50.4v-50.4h50.3c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm134-134.4h-134a50.35 50.35 0 01-50.3-50.4c0-27.8 22.5-50.4 50.3-50.4h134c27.8 0 50.3 22.6 50.3 50.4 0 27.8-22.5 50.4-50.3 50.4zm0-134.4H663v-50.4c0-27.8 22.5-50.4 50.3-50.4s50.3 22.6 50.3 50.4c0 27.8-22.5 50.4-50.3 50.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/slack.js b/src/blrec/data/webapp/assets/outline/slack.js new file mode 100644 index 0000000..058b864 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/slack.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'slack', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M409.4 128c-42.4 0-76.7 34.4-76.7 76.8 0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0054.3 22.5h76.7v-76.8c0-42.3-34.3-76.7-76.7-76.8zm0 204.8H204.7c-42.4 0-76.7 34.4-76.7 76.8s34.4 76.8 76.7 76.8h204.6c42.4 0 76.7-34.4 76.7-76.8.1-42.4-34.3-76.8-76.6-76.8zM614 486.4c42.4 0 76.8-34.4 76.7-76.8V204.8c0-42.4-34.3-76.8-76.7-76.8-42.4 0-76.7 34.4-76.7 76.8v204.8c0 42.5 34.3 76.8 76.7 76.8zm281.4-76.8c0-42.4-34.4-76.8-76.7-76.8S742 367.2 742 409.6v76.8h76.7c42.3 0 76.7-34.4 76.7-76.8zm-76.8 128H614c-42.4 0-76.7 34.4-76.7 76.8 0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0054.3 22.5h204.6c42.4 0 76.7-34.4 76.7-76.8.1-42.4-34.3-76.7-76.7-76.8zM614 742.4h-76.7v76.8c0 42.4 34.4 76.8 76.7 76.8 42.4 0 76.8-34.4 76.7-76.8.1-42.4-34.3-76.7-76.7-76.8zM409.4 537.6c-42.4 0-76.7 34.4-76.7 76.8v204.8c0 42.4 34.4 76.8 76.7 76.8 42.4 0 76.8-34.4 76.7-76.8V614.4c0-20.3-8.1-39.9-22.4-54.3a76.92 76.92 0 00-54.3-22.5zM128 614.4c0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0054.3 22.5c42.4 0 76.8-34.4 76.7-76.8v-76.8h-76.7c-42.3 0-76.7 34.4-76.7 76.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/slack.svg b/src/blrec/data/webapp/assets/outline/slack.svg new file mode 100644 index 0000000..67dc749 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/slack.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M409.4 128c-42.4 0-76.7 34.4-76.7 76.8 0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0054.3 22.5h76.7v-76.8c0-42.3-34.3-76.7-76.7-76.8zm0 204.8H204.7c-42.4 0-76.7 34.4-76.7 76.8s34.4 76.8 76.7 76.8h204.6c42.4 0 76.7-34.4 76.7-76.8.1-42.4-34.3-76.8-76.6-76.8zM614 486.4c42.4 0 76.8-34.4 76.7-76.8V204.8c0-42.4-34.3-76.8-76.7-76.8-42.4 0-76.7 34.4-76.7 76.8v204.8c0 42.5 34.3 76.8 76.7 76.8zm281.4-76.8c0-42.4-34.4-76.8-76.7-76.8S742 367.2 742 409.6v76.8h76.7c42.3 0 76.7-34.4 76.7-76.8zm-76.8 128H614c-42.4 0-76.7 34.4-76.7 76.8 0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0054.3 22.5h204.6c42.4 0 76.7-34.4 76.7-76.8.1-42.4-34.3-76.7-76.7-76.8zM614 742.4h-76.7v76.8c0 42.4 34.4 76.8 76.7 76.8 42.4 0 76.8-34.4 76.7-76.8.1-42.4-34.3-76.7-76.7-76.8zM409.4 537.6c-42.4 0-76.7 34.4-76.7 76.8v204.8c0 42.4 34.4 76.8 76.7 76.8 42.4 0 76.8-34.4 76.7-76.8V614.4c0-20.3-8.1-39.9-22.4-54.3a76.92 76.92 0 00-54.3-22.5zM128 614.4c0 20.3 8.1 39.9 22.4 54.3a76.74 76.74 0 0054.3 22.5c42.4 0 76.8-34.4 76.7-76.8v-76.8h-76.7c-42.3 0-76.7 34.4-76.7 76.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/sliders.js b/src/blrec/data/webapp/assets/outline/sliders.js new file mode 100644 index 0000000..162d33e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/sliders.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'sliders', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M320 224h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-60 508h-80V292h80v440zm644-436h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-60 364h-80V364h80v296zM612 404h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8zm-60 145a3 3 0 01-3 3h-74a3 3 0 01-3-3v-74a3 3 0 013-3h74a3 3 0 013 3v74z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/sliders.svg b/src/blrec/data/webapp/assets/outline/sliders.svg new file mode 100644 index 0000000..db7a899 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/sliders.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M320 224h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-60 508h-80V292h80v440zm644-436h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-60 364h-80V364h80v296zM612 404h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8zm-60 145a3 3 0 01-3 3h-74a3 3 0 01-3-3v-74a3 3 0 013-3h74a3 3 0 013 3v74z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/small-dash.js b/src/blrec/data/webapp/assets/outline/small-dash.js new file mode 100644 index 0000000..70e26ea --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/small-dash.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'small-dash', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M112 476h72v72h-72zm182 0h72v72h-72zm364 0h72v72h-72zm182 0h72v72h-72zm-364 0h72v72h-72z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/small-dash.svg b/src/blrec/data/webapp/assets/outline/small-dash.svg new file mode 100644 index 0000000..131ae77 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/small-dash.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M112 476h72v72h-72zm182 0h72v72h-72zm364 0h72v72h-72zm182 0h72v72h-72zm-364 0h72v72h-72z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/smile.js b/src/blrec/data/webapp/assets/outline/smile.js new file mode 100644 index 0000000..1ef6a70 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/smile.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'smile', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M288 421a48 48 0 1096 0 48 48 0 10-96 0zm352 0a48 48 0 1096 0 48 48 0 10-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 01248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 01249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 01775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 01775 775zM664 533h-48.1c-4.2 0-7.8 3.2-8.1 7.4C604 589.9 562.5 629 512 629s-92.1-39.1-95.8-88.6c-.3-4.2-3.9-7.4-8.1-7.4H360a8 8 0 00-8 8.4c4.4 84.3 74.5 151.6 160 151.6s155.6-67.3 160-151.6a8 8 0 00-8-8.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/smile.svg b/src/blrec/data/webapp/assets/outline/smile.svg new file mode 100644 index 0000000..de4eb7a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/smile.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M288 421a48 48 0 1096 0 48 48 0 10-96 0zm352 0a48 48 0 1096 0 48 48 0 10-96 0zM512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm263 711c-34.2 34.2-74 61-118.3 79.8C611 874.2 562.3 884 512 884c-50.3 0-99-9.8-144.8-29.2A370.4 370.4 0 01248.9 775c-34.2-34.2-61-74-79.8-118.3C149.8 611 140 562.3 140 512s9.8-99 29.2-144.8A370.4 370.4 0 01249 248.9c34.2-34.2 74-61 118.3-79.8C413 149.8 461.7 140 512 140c50.3 0 99 9.8 144.8 29.2A370.4 370.4 0 01775.1 249c34.2 34.2 61 74 79.8 118.3C874.2 413 884 461.7 884 512s-9.8 99-29.2 144.8A368.89 368.89 0 01775 775zM664 533h-48.1c-4.2 0-7.8 3.2-8.1 7.4C604 589.9 562.5 629 512 629s-92.1-39.1-95.8-88.6c-.3-4.2-3.9-7.4-8.1-7.4H360a8 8 0 00-8 8.4c4.4 84.3 74.5 151.6 160 151.6s155.6-67.3 160-151.6a8 8 0 00-8-8.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/snippets.js b/src/blrec/data/webapp/assets/outline/snippets.js new file mode 100644 index 0000000..c92b374 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/snippets.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'snippets', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 888H232V336h218v174c0 22.1 17.9 40 40 40h174v338zm0-402H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/snippets.svg b/src/blrec/data/webapp/assets/outline/snippets.svg new file mode 100644 index 0000000..583f0ae --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/snippets.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 888H232V336h218v174c0 22.1 17.9 40 40 40h174v338zm0-402H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/solution.js b/src/blrec/data/webapp/assets/outline/solution.js new file mode 100644 index 0000000..498441b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/solution.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'solution', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M688 264c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48zm-8 136H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM480 544H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-48 308H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm356.8-74.4c29-26.3 47.2-64.3 47.2-106.6 0-79.5-64.5-144-144-144s-144 64.5-144 144c0 42.3 18.2 80.3 47.2 106.6-57 32.5-96.2 92.7-99.2 162.1-.2 4.5 3.5 8.3 8 8.3h48.1c4.2 0 7.7-3.3 8-7.6C564 871.2 621.7 816 692 816s128 55.2 131.9 124.4c.2 4.2 3.7 7.6 8 7.6H880c4.6 0 8.2-3.8 8-8.3-2.9-69.5-42.2-129.6-99.2-162.1zM692 591c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/solution.svg b/src/blrec/data/webapp/assets/outline/solution.svg new file mode 100644 index 0000000..67f9d82 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/solution.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M688 264c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48zm-8 136H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM480 544H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-48 308H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm356.8-74.4c29-26.3 47.2-64.3 47.2-106.6 0-79.5-64.5-144-144-144s-144 64.5-144 144c0 42.3 18.2 80.3 47.2 106.6-57 32.5-96.2 92.7-99.2 162.1-.2 4.5 3.5 8.3 8 8.3h48.1c4.2 0 7.7-3.3 8-7.6C564 871.2 621.7 816 692 816s128 55.2 131.9 124.4c.2 4.2 3.7 7.6 8 7.6H880c4.6 0 8.2-3.8 8-8.3-2.9-69.5-42.2-129.6-99.2-162.1zM692 591c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/sort-ascending.js b/src/blrec/data/webapp/assets/outline/sort-ascending.js new file mode 100644 index 0000000..00cad5b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/sort-ascending.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'sort-ascending', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M839.6 433.8L749 150.5a9.24 9.24 0 00-8.9-6.5h-77.4c-4.1 0-7.6 2.6-8.9 6.5l-91.3 283.3c-.3.9-.5 1.9-.5 2.9 0 5.1 4.2 9.3 9.3 9.3h56.4c4.2 0 7.8-2.8 9-6.8l17.5-61.6h89l17.3 61.5c1.1 4 4.8 6.8 9 6.8h61.2c1 0 1.9-.1 2.8-.4 2.4-.8 4.3-2.4 5.5-4.6 1.1-2.2 1.3-4.7.6-7.1zM663.3 325.5l32.8-116.9h6.3l32.1 116.9h-71.2zm143.5 492.9H677.2v-.4l132.6-188.9c1.1-1.6 1.7-3.4 1.7-5.4v-36.4c0-5.1-4.2-9.3-9.3-9.3h-204c-5.1 0-9.3 4.2-9.3 9.3v43c0 5.1 4.2 9.3 9.3 9.3h122.6v.4L587.7 828.9a9.35 9.35 0 00-1.7 5.4v36.4c0 5.1 4.2 9.3 9.3 9.3h211.4c5.1 0 9.3-4.2 9.3-9.3v-43a9.2 9.2 0 00-9.2-9.3zM416 702h-76V172c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v530h-76c-6.7 0-10.5 7.8-6.3 13l112 141.9a8 8 0 0012.6 0l112-141.9c4.1-5.2.4-13-6.3-13z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/sort-ascending.svg b/src/blrec/data/webapp/assets/outline/sort-ascending.svg new file mode 100644 index 0000000..cdcb0e4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/sort-ascending.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M839.6 433.8L749 150.5a9.24 9.24 0 00-8.9-6.5h-77.4c-4.1 0-7.6 2.6-8.9 6.5l-91.3 283.3c-.3.9-.5 1.9-.5 2.9 0 5.1 4.2 9.3 9.3 9.3h56.4c4.2 0 7.8-2.8 9-6.8l17.5-61.6h89l17.3 61.5c1.1 4 4.8 6.8 9 6.8h61.2c1 0 1.9-.1 2.8-.4 2.4-.8 4.3-2.4 5.5-4.6 1.1-2.2 1.3-4.7.6-7.1zM663.3 325.5l32.8-116.9h6.3l32.1 116.9h-71.2zm143.5 492.9H677.2v-.4l132.6-188.9c1.1-1.6 1.7-3.4 1.7-5.4v-36.4c0-5.1-4.2-9.3-9.3-9.3h-204c-5.1 0-9.3 4.2-9.3 9.3v43c0 5.1 4.2 9.3 9.3 9.3h122.6v.4L587.7 828.9a9.35 9.35 0 00-1.7 5.4v36.4c0 5.1 4.2 9.3 9.3 9.3h211.4c5.1 0 9.3-4.2 9.3-9.3v-43a9.2 9.2 0 00-9.2-9.3zM416 702h-76V172c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v530h-76c-6.7 0-10.5 7.8-6.3 13l112 141.9a8 8 0 0012.6 0l112-141.9c4.1-5.2.4-13-6.3-13z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/sort-descending.js b/src/blrec/data/webapp/assets/outline/sort-descending.js new file mode 100644 index 0000000..f97e215 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/sort-descending.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'sort-descending', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M839.6 433.8L749 150.5a9.24 9.24 0 00-8.9-6.5h-77.4c-4.1 0-7.6 2.6-8.9 6.5l-91.3 283.3c-.3.9-.5 1.9-.5 2.9 0 5.1 4.2 9.3 9.3 9.3h56.4c4.2 0 7.8-2.8 9-6.8l17.5-61.6h89l17.3 61.5c1.1 4 4.8 6.8 9 6.8h61.2c1 0 1.9-.1 2.8-.4 2.4-.8 4.3-2.4 5.5-4.6 1.1-2.2 1.3-4.7.6-7.1zM663.3 325.5l32.8-116.9h6.3l32.1 116.9h-71.2zm143.5 492.9H677.2v-.4l132.6-188.9c1.1-1.6 1.7-3.4 1.7-5.4v-36.4c0-5.1-4.2-9.3-9.3-9.3h-204c-5.1 0-9.3 4.2-9.3 9.3v43c0 5.1 4.2 9.3 9.3 9.3h122.6v.4L587.7 828.9a9.35 9.35 0 00-1.7 5.4v36.4c0 5.1 4.2 9.3 9.3 9.3h211.4c5.1 0 9.3-4.2 9.3-9.3v-43a9.2 9.2 0 00-9.2-9.3zM310.3 167.1a8 8 0 00-12.6 0L185.7 309c-4.2 5.3-.4 13 6.3 13h76v530c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V322h76c6.7 0 10.5-7.8 6.3-13l-112-141.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/sort-descending.svg b/src/blrec/data/webapp/assets/outline/sort-descending.svg new file mode 100644 index 0000000..03a6b6e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/sort-descending.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M839.6 433.8L749 150.5a9.24 9.24 0 00-8.9-6.5h-77.4c-4.1 0-7.6 2.6-8.9 6.5l-91.3 283.3c-.3.9-.5 1.9-.5 2.9 0 5.1 4.2 9.3 9.3 9.3h56.4c4.2 0 7.8-2.8 9-6.8l17.5-61.6h89l17.3 61.5c1.1 4 4.8 6.8 9 6.8h61.2c1 0 1.9-.1 2.8-.4 2.4-.8 4.3-2.4 5.5-4.6 1.1-2.2 1.3-4.7.6-7.1zM663.3 325.5l32.8-116.9h6.3l32.1 116.9h-71.2zm143.5 492.9H677.2v-.4l132.6-188.9c1.1-1.6 1.7-3.4 1.7-5.4v-36.4c0-5.1-4.2-9.3-9.3-9.3h-204c-5.1 0-9.3 4.2-9.3 9.3v43c0 5.1 4.2 9.3 9.3 9.3h122.6v.4L587.7 828.9a9.35 9.35 0 00-1.7 5.4v36.4c0 5.1 4.2 9.3 9.3 9.3h211.4c5.1 0 9.3-4.2 9.3-9.3v-43a9.2 9.2 0 00-9.2-9.3zM310.3 167.1a8 8 0 00-12.6 0L185.7 309c-4.2 5.3-.4 13 6.3 13h76v530c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V322h76c6.7 0 10.5-7.8 6.3-13l-112-141.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/sound.js b/src/blrec/data/webapp/assets/outline/sound.js new file mode 100644 index 0000000..719584a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/sound.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'sound', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1zM586 803L293.4 611.7l-18-11.7H146V424h129.4l17.9-11.7L586 221v582zm348-327H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zm-41.9 261.8l-110.3-63.7a15.9 15.9 0 00-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0021.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM760 344a15.9 15.9 0 0021.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 00-21.7-5.9L746 287.8a15.99 15.99 0 00-5.8 21.8L760 344z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/sound.svg b/src/blrec/data/webapp/assets/outline/sound.svg new file mode 100644 index 0000000..b4f3eec --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/sound.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1zM586 803L293.4 611.7l-18-11.7H146V424h129.4l17.9-11.7L586 221v582zm348-327H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zm-41.9 261.8l-110.3-63.7a15.9 15.9 0 00-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0021.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM760 344a15.9 15.9 0 0021.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 00-21.7-5.9L746 287.8a15.99 15.99 0 00-5.8 21.8L760 344z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/split-cells.js b/src/blrec/data/webapp/assets/outline/split-cells.js new file mode 100644 index 0000000..a67a834 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/split-cells.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'split-cells', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M938.2 508.4L787.3 389c-3-2.4-7.3-.2-7.3 3.6V478H636V184h204v128c0 2.2 1.8 4 4 4h60c2.2 0 4-1.8 4-4V144c0-15.5-12.5-28-28-28H596c-15.5 0-28 12.5-28 28v736c0 15.5 12.5 28 28 28h284c15.5 0 28-12.5 28-28V712c0-2.2-1.8-4-4-4h-60c-2.2 0-4 1.8-4 4v128H636V546h144v85.4c0 3.8 4.4 6 7.3 3.6l150.9-119.4a4.5 4.5 0 000-7.2zM428 116H144c-15.5 0-28 12.5-28 28v168c0 2.2 1.8 4 4 4h60c2.2 0 4-1.8 4-4V184h204v294H244v-85.4c0-3.8-4.3-6-7.3-3.6l-151 119.4a4.52 4.52 0 000 7.1l151 119.5c2.9 2.3 7.3.2 7.3-3.6V546h144v294H184V712c0-2.2-1.8-4-4-4h-60c-2.2 0-4 1.8-4 4v168c0 15.5 12.5 28 28 28h284c15.5 0 28-12.5 28-28V144c0-15.5-12.5-28-28-28z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/split-cells.svg b/src/blrec/data/webapp/assets/outline/split-cells.svg new file mode 100644 index 0000000..ff2bf47 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/split-cells.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M938.2 508.4L787.3 389c-3-2.4-7.3-.2-7.3 3.6V478H636V184h204v128c0 2.2 1.8 4 4 4h60c2.2 0 4-1.8 4-4V144c0-15.5-12.5-28-28-28H596c-15.5 0-28 12.5-28 28v736c0 15.5 12.5 28 28 28h284c15.5 0 28-12.5 28-28V712c0-2.2-1.8-4-4-4h-60c-2.2 0-4 1.8-4 4v128H636V546h144v85.4c0 3.8 4.4 6 7.3 3.6l150.9-119.4a4.5 4.5 0 000-7.2zM428 116H144c-15.5 0-28 12.5-28 28v168c0 2.2 1.8 4 4 4h60c2.2 0 4-1.8 4-4V184h204v294H244v-85.4c0-3.8-4.3-6-7.3-3.6l-151 119.4a4.52 4.52 0 000 7.1l151 119.5c2.9 2.3 7.3.2 7.3-3.6V546h144v294H184V712c0-2.2-1.8-4-4-4h-60c-2.2 0-4 1.8-4 4v168c0 15.5 12.5 28 28 28h284c15.5 0 28-12.5 28-28V144c0-15.5-12.5-28-28-28z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/star.js b/src/blrec/data/webapp/assets/outline/star.js new file mode 100644 index 0000000..014f689 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/star.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'star', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 00.6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0046.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3zM664.8 561.6l36.1 210.3L512 672.7 323.1 772l36.1-210.3-152.8-149L417.6 382 512 190.7 606.4 382l211.2 30.7-152.8 148.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/star.svg b/src/blrec/data/webapp/assets/outline/star.svg new file mode 100644 index 0000000..a1e4bc7 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/star.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 00.6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0046.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3zM664.8 561.6l36.1 210.3L512 672.7 323.1 772l36.1-210.3-152.8-149L417.6 382 512 190.7 606.4 382l211.2 30.7-152.8 148.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/step-backward.js b/src/blrec/data/webapp/assets/outline/step-backward.js new file mode 100644 index 0000000..6f91fe1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/step-backward.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'step-backward', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M347.6 528.95l383.2 301.02c14.25 11.2 35.2 1.1 35.2-16.95V210.97c0-18.05-20.95-28.14-35.2-16.94L347.6 495.05a21.53 21.53 0 000 33.9M330 864h-64a8 8 0 01-8-8V168a8 8 0 018-8h64a8 8 0 018 8v688a8 8 0 01-8 8" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/step-backward.svg b/src/blrec/data/webapp/assets/outline/step-backward.svg new file mode 100644 index 0000000..fb8ab81 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/step-backward.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M347.6 528.95l383.2 301.02c14.25 11.2 35.2 1.1 35.2-16.95V210.97c0-18.05-20.95-28.14-35.2-16.94L347.6 495.05a21.53 21.53 0 000 33.9M330 864h-64a8 8 0 01-8-8V168a8 8 0 018-8h64a8 8 0 018 8v688a8 8 0 01-8 8" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/step-forward.js b/src/blrec/data/webapp/assets/outline/step-forward.js new file mode 100644 index 0000000..fb8aaac --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/step-forward.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'step-forward', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M676.4 528.95L293.2 829.97c-14.25 11.2-35.2 1.1-35.2-16.95V210.97c0-18.05 20.95-28.14 35.2-16.94l383.2 301.02a21.53 21.53 0 010 33.9M694 864h64a8 8 0 008-8V168a8 8 0 00-8-8h-64a8 8 0 00-8 8v688a8 8 0 008 8" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/step-forward.svg b/src/blrec/data/webapp/assets/outline/step-forward.svg new file mode 100644 index 0000000..f4167bd --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/step-forward.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M676.4 528.95L293.2 829.97c-14.25 11.2-35.2 1.1-35.2-16.95V210.97c0-18.05 20.95-28.14 35.2-16.94l383.2 301.02a21.53 21.53 0 010 33.9M694 864h64a8 8 0 008-8V168a8 8 0 00-8-8h-64a8 8 0 00-8 8v688a8 8 0 008 8" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/stock.js b/src/blrec/data/webapp/assets/outline/stock.js new file mode 100644 index 0000000..6ff2977 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/stock.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'stock', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M904 747H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM165.7 621.8l39.7 39.5c3.1 3.1 8.2 3.1 11.3 0l234.7-233.9 97.6 97.3a32.11 32.11 0 0045.2 0l264.2-263.2c3.1-3.1 3.1-8.2 0-11.3l-39.7-39.6a8.03 8.03 0 00-11.3 0l-235.7 235-97.7-97.3a32.11 32.11 0 00-45.2 0L165.7 610.5a7.94 7.94 0 000 11.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/stock.svg b/src/blrec/data/webapp/assets/outline/stock.svg new file mode 100644 index 0000000..64692fe --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/stock.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M904 747H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM165.7 621.8l39.7 39.5c3.1 3.1 8.2 3.1 11.3 0l234.7-233.9 97.6 97.3a32.11 32.11 0 0045.2 0l264.2-263.2c3.1-3.1 3.1-8.2 0-11.3l-39.7-39.6a8.03 8.03 0 00-11.3 0l-235.7 235-97.7-97.3a32.11 32.11 0 00-45.2 0L165.7 610.5a7.94 7.94 0 000 11.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/stop.js b/src/blrec/data/webapp/assets/outline/stop.js new file mode 100644 index 0000000..68103a9 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/stop.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'stop', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372 0-89 31.3-170.8 83.5-234.8l523.3 523.3C682.8 852.7 601 884 512 884zm288.5-137.2L277.2 223.5C341.2 171.3 423 140 512 140c205.4 0 372 166.6 372 372 0 89-31.3 170.8-83.5 234.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/stop.svg b/src/blrec/data/webapp/assets/outline/stop.svg new file mode 100644 index 0000000..489143b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/stop.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372 0-89 31.3-170.8 83.5-234.8l523.3 523.3C682.8 852.7 601 884 512 884zm288.5-137.2L277.2 223.5C341.2 171.3 423 140 512 140c205.4 0 372 166.6 372 372 0 89-31.3 170.8-83.5 234.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/strikethrough.js b/src/blrec/data/webapp/assets/outline/strikethrough.js new file mode 100644 index 0000000..acb8e1c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/strikethrough.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'strikethrough', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M952 474H569.9c-10-2-20.5-4-31.6-6-15.9-2.9-22.2-4.1-30.8-5.8-51.3-10-82.2-20-106.8-34.2-35.1-20.5-52.2-48.3-52.2-85.1 0-37 15.2-67.7 44-89 28.4-21 68.8-32.1 116.8-32.1 54.8 0 97.1 14.4 125.8 42.8 14.6 14.4 25.3 32.1 31.8 52.6 1.3 4.1 2.8 10 4.3 17.8.9 4.8 5.2 8.2 9.9 8.2h72.8c5.6 0 10.1-4.6 10.1-10.1v-1c-.7-6.8-1.3-12.1-2-16-7.3-43.5-28-81.7-59.7-110.3-44.4-40.5-109.7-61.8-188.7-61.8-72.3 0-137.4 18.1-183.3 50.9-25.6 18.4-45.4 41.2-58.6 67.7-13.5 27.1-20.3 58.4-20.3 92.9 0 29.5 5.7 54.5 17.3 76.5 8.3 15.7 19.6 29.5 34.1 42H72c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h433.2c2.1.4 3.9.8 5.9 1.2 30.9 6.2 49.5 10.4 66.6 15.2 23 6.5 40.6 13.3 55.2 21.5 35.8 20.2 53.3 49.2 53.3 89 0 35.3-15.5 66.8-43.6 88.8-30.5 23.9-75.6 36.4-130.5 36.4-43.7 0-80.7-8.5-110.2-25-29.1-16.3-49.1-39.8-59.7-69.5-.8-2.2-1.7-5.2-2.7-9-1.2-4.4-5.3-7.5-9.7-7.5h-79.7c-5.6 0-10.1 4.6-10.1 10.1v1c.2 2.3.4 4.2.6 5.7 6.5 48.8 30.3 88.8 70.7 118.8 47.1 34.8 113.4 53.2 191.8 53.2 84.2 0 154.8-19.8 204.2-57.3 25-18.9 44.2-42.2 57.1-69 13-27.1 19.7-57.9 19.7-91.5 0-31.8-5.8-58.4-17.8-81.4-5.8-11.2-13.1-21.5-21.8-30.8H952c4.4 0 8-3.6 8-8v-60a8 8 0 00-8-7.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/strikethrough.svg b/src/blrec/data/webapp/assets/outline/strikethrough.svg new file mode 100644 index 0000000..fc80a9e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/strikethrough.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M952 474H569.9c-10-2-20.5-4-31.6-6-15.9-2.9-22.2-4.1-30.8-5.8-51.3-10-82.2-20-106.8-34.2-35.1-20.5-52.2-48.3-52.2-85.1 0-37 15.2-67.7 44-89 28.4-21 68.8-32.1 116.8-32.1 54.8 0 97.1 14.4 125.8 42.8 14.6 14.4 25.3 32.1 31.8 52.6 1.3 4.1 2.8 10 4.3 17.8.9 4.8 5.2 8.2 9.9 8.2h72.8c5.6 0 10.1-4.6 10.1-10.1v-1c-.7-6.8-1.3-12.1-2-16-7.3-43.5-28-81.7-59.7-110.3-44.4-40.5-109.7-61.8-188.7-61.8-72.3 0-137.4 18.1-183.3 50.9-25.6 18.4-45.4 41.2-58.6 67.7-13.5 27.1-20.3 58.4-20.3 92.9 0 29.5 5.7 54.5 17.3 76.5 8.3 15.7 19.6 29.5 34.1 42H72c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h433.2c2.1.4 3.9.8 5.9 1.2 30.9 6.2 49.5 10.4 66.6 15.2 23 6.5 40.6 13.3 55.2 21.5 35.8 20.2 53.3 49.2 53.3 89 0 35.3-15.5 66.8-43.6 88.8-30.5 23.9-75.6 36.4-130.5 36.4-43.7 0-80.7-8.5-110.2-25-29.1-16.3-49.1-39.8-59.7-69.5-.8-2.2-1.7-5.2-2.7-9-1.2-4.4-5.3-7.5-9.7-7.5h-79.7c-5.6 0-10.1 4.6-10.1 10.1v1c.2 2.3.4 4.2.6 5.7 6.5 48.8 30.3 88.8 70.7 118.8 47.1 34.8 113.4 53.2 191.8 53.2 84.2 0 154.8-19.8 204.2-57.3 25-18.9 44.2-42.2 57.1-69 13-27.1 19.7-57.9 19.7-91.5 0-31.8-5.8-58.4-17.8-81.4-5.8-11.2-13.1-21.5-21.8-30.8H952c4.4 0 8-3.6 8-8v-60a8 8 0 00-8-7.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/subnode.js b/src/blrec/data/webapp/assets/outline/subnode.js new file mode 100644 index 0000000..c2482d3 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/subnode.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'subnode', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M688 240c-138 0-252 102.8-269.6 236H249a95.92 95.92 0 00-89-60c-53 0-96 43-96 96s43 96 96 96c40.3 0 74.8-24.8 89-60h169.3C436 681.2 550 784 688 784c150.2 0 272-121.8 272-272S838.2 240 688 240zm128 298c0 4.4-3.6 8-8 8h-86v86c0 4.4-3.6 8-8 8h-52c-4.4 0-8-3.6-8-8v-86h-86c-4.4 0-8-3.6-8-8v-52c0-4.4 3.6-8 8-8h86v-86c0-4.4 3.6-8 8-8h52c4.4 0 8 3.6 8 8v86h86c4.4 0 8 3.6 8 8v52z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/subnode.svg b/src/blrec/data/webapp/assets/outline/subnode.svg new file mode 100644 index 0000000..5aa04c1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/subnode.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M688 240c-138 0-252 102.8-269.6 236H249a95.92 95.92 0 00-89-60c-53 0-96 43-96 96s43 96 96 96c40.3 0 74.8-24.8 89-60h169.3C436 681.2 550 784 688 784c150.2 0 272-121.8 272-272S838.2 240 688 240zm128 298c0 4.4-3.6 8-8 8h-86v86c0 4.4-3.6 8-8 8h-52c-4.4 0-8-3.6-8-8v-86h-86c-4.4 0-8-3.6-8-8v-52c0-4.4 3.6-8 8-8h86v-86c0-4.4 3.6-8 8-8h52c4.4 0 8 3.6 8 8v86h86c4.4 0 8 3.6 8 8v52z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/swap-left.js b/src/blrec/data/webapp/assets/outline/swap-left.js new file mode 100644 index 0000000..87abdef --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/swap-left.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'swap-left', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M872 572H266.8l144.3-183c4.1-5.2.4-13-6.3-13H340c-9.8 0-19.1 4.5-25.1 12.2l-164 208c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/swap-left.svg b/src/blrec/data/webapp/assets/outline/swap-left.svg new file mode 100644 index 0000000..184390e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/swap-left.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M872 572H266.8l144.3-183c4.1-5.2.4-13-6.3-13H340c-9.8 0-19.1 4.5-25.1 12.2l-164 208c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/swap-right.js b/src/blrec/data/webapp/assets/outline/swap-right.js new file mode 100644 index 0000000..4733e38 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/swap-right.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'swap-right', + theme: 'outline', + icon: '<svg viewBox="0 0 1024 1024" focusable="false"><path d="M873.1 596.2l-164-208A32 32 0 00684 376h-64.8c-6.7 0-10.4 7.7-6.3 13l144.3 183H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h695.9c26.8 0 41.7-30.8 25.2-51.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/swap-right.svg b/src/blrec/data/webapp/assets/outline/swap-right.svg new file mode 100644 index 0000000..31ef35c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/swap-right.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 1024 1024" focusable="false"><path d="M873.1 596.2l-164-208A32 32 0 00684 376h-64.8c-6.7 0-10.4 7.7-6.3 13l144.3 183H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h695.9c26.8 0 41.7-30.8 25.2-51.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/swap.js b/src/blrec/data/webapp/assets/outline/swap.js new file mode 100644 index 0000000..2b1daa9 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/swap.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'swap', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/swap.svg b/src/blrec/data/webapp/assets/outline/swap.svg new file mode 100644 index 0000000..7fd1e88 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/swap.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/switcher.js b/src/blrec/data/webapp/assets/outline/switcher.js new file mode 100644 index 0000000..6fd6601 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/switcher.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'switcher', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zm-40 600H184V312h528v528zm168-728H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32zM300 550h296v64H300z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/switcher.svg b/src/blrec/data/webapp/assets/outline/switcher.svg new file mode 100644 index 0000000..abc08f0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/switcher.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zm-40 600H184V312h528v528zm168-728H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32zM300 550h296v64H300z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/sync.js b/src/blrec/data/webapp/assets/outline/sync.js new file mode 100644 index 0000000..904872b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/sync.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'sync', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M168 504.2c1-43.7 10-86.1 26.9-126 17.3-41 42.1-77.7 73.7-109.4S337 212.3 378 195c42.4-17.9 87.4-27 133.9-27s91.5 9.1 133.8 27A341.5 341.5 0 01755 268.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.7 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c0-6.7-7.7-10.5-12.9-6.3l-56.4 44.1C765.8 155.1 646.2 92 511.8 92 282.7 92 96.3 275.6 92 503.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8zm756 7.8h-60c-4.4 0-7.9 3.5-8 7.8-1 43.7-10 86.1-26.9 126-17.3 41-42.1 77.8-73.7 109.4A342.45 342.45 0 01512.1 856a342.24 342.24 0 01-243.2-100.8c-9.9-9.9-19.2-20.4-27.8-31.4l60.2-47a8 8 0 00-3-14.1l-175.7-43c-5-1.2-9.9 2.6-9.9 7.7l-.7 181c0 6.7 7.7 10.5 12.9 6.3l56.4-44.1C258.2 868.9 377.8 932 512.2 932c229.2 0 415.5-183.7 419.8-411.8a8 8 0 00-8-8.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/sync.svg b/src/blrec/data/webapp/assets/outline/sync.svg new file mode 100644 index 0000000..0896385 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/sync.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M168 504.2c1-43.7 10-86.1 26.9-126 17.3-41 42.1-77.7 73.7-109.4S337 212.3 378 195c42.4-17.9 87.4-27 133.9-27s91.5 9.1 133.8 27A341.5 341.5 0 01755 268.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.7 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c0-6.7-7.7-10.5-12.9-6.3l-56.4 44.1C765.8 155.1 646.2 92 511.8 92 282.7 92 96.3 275.6 92 503.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8zm756 7.8h-60c-4.4 0-7.9 3.5-8 7.8-1 43.7-10 86.1-26.9 126-17.3 41-42.1 77.8-73.7 109.4A342.45 342.45 0 01512.1 856a342.24 342.24 0 01-243.2-100.8c-9.9-9.9-19.2-20.4-27.8-31.4l60.2-47a8 8 0 00-3-14.1l-175.7-43c-5-1.2-9.9 2.6-9.9 7.7l-.7 181c0 6.7 7.7 10.5 12.9 6.3l56.4-44.1C258.2 868.9 377.8 932 512.2 932c229.2 0 415.5-183.7 419.8-411.8a8 8 0 00-8-8.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/table.js b/src/blrec/data/webapp/assets/outline/table.js new file mode 100644 index 0000000..6dba91f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/table.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'table', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 208H676V232h212v136zm0 224H676V432h212v160zM412 432h200v160H412V432zm200-64H412V232h200v136zm-476 64h212v160H136V432zm0-200h212v136H136V232zm0 424h212v136H136V656zm276 0h200v136H412V656zm476 136H676V656h212v136z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/table.svg b/src/blrec/data/webapp/assets/outline/table.svg new file mode 100644 index 0000000..26ff950 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/table.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 208H676V232h212v136zm0 224H676V432h212v160zM412 432h200v160H412V432zm200-64H412V232h200v136zm-476 64h212v160H136V432zm0-200h212v136H136V232zm0 424h212v136H136V656zm276 0h200v136H412V656zm476 136H676V656h212v136z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/tablet.js b/src/blrec/data/webapp/assets/outline/tablet.js new file mode 100644 index 0000000..d04bc40 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/tablet.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'tablet', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H232V136h560v752zM472 784a40 40 0 1080 0 40 40 0 10-80 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/tablet.svg b/src/blrec/data/webapp/assets/outline/tablet.svg new file mode 100644 index 0000000..940fd5a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/tablet.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H232V136h560v752zM472 784a40 40 0 1080 0 40 40 0 10-80 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/tag.js b/src/blrec/data/webapp/assets/outline/tag.js new file mode 100644 index 0000000..515cde1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/tag.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'tag', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 000 14.1l363.8 363.8c1.9 1.9 4.4 2.9 7.1 2.9s5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM459.7 834.7L189.3 564.3 589 164.6 836 188l23.4 247-399.7 399.7zM680 256c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm0 120c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/tag.svg b/src/blrec/data/webapp/assets/outline/tag.svg new file mode 100644 index 0000000..f8a3033 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/tag.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 000 14.1l363.8 363.8c1.9 1.9 4.4 2.9 7.1 2.9s5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM459.7 834.7L189.3 564.3 589 164.6 836 188l23.4 247-399.7 399.7zM680 256c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm0 120c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/tags.js b/src/blrec/data/webapp/assets/outline/tags.js new file mode 100644 index 0000000..fa162d0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/tags.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'tags', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M483.2 790.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3c-2.3-.2-4.7.6-6.3 2.3L137.7 444.8a8.03 8.03 0 000 11.3l334.2 334.2c3.1 3.2 8.2 3.2 11.3 0zm62.6-651.7l224.6 19 19 224.6L477.5 694 233.9 450.5l311.9-311.9zm60.16 186.23a48 48 0 1067.88-67.89 48 48 0 10-67.88 67.89zM889.7 539.8l-39.6-39.5a8.03 8.03 0 00-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 00-11.3 0l-39.6 39.5a8.03 8.03 0 000 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/tags.svg b/src/blrec/data/webapp/assets/outline/tags.svg new file mode 100644 index 0000000..8f31c87 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/tags.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M483.2 790.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3c-2.3-.2-4.7.6-6.3 2.3L137.7 444.8a8.03 8.03 0 000 11.3l334.2 334.2c3.1 3.2 8.2 3.2 11.3 0zm62.6-651.7l224.6 19 19 224.6L477.5 694 233.9 450.5l311.9-311.9zm60.16 186.23a48 48 0 1067.88-67.89 48 48 0 10-67.88 67.89zM889.7 539.8l-39.6-39.5a8.03 8.03 0 00-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 00-11.3 0l-39.6 39.5a8.03 8.03 0 000 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/taobao-circle.js b/src/blrec/data/webapp/assets/outline/taobao-circle.js new file mode 100644 index 0000000..8f20d77 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/taobao-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'taobao-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 110-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/taobao-circle.svg b/src/blrec/data/webapp/assets/outline/taobao-circle.svg new file mode 100644 index 0000000..9b09e41 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/taobao-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zM315.7 291.5c27.3 0 49.5 22.1 49.5 49.4s-22.1 49.4-49.5 49.4a49.4 49.4 0 110-98.8zM366.9 578c-13.6 42.3-10.2 26.7-64.4 144.5l-78.5-49s87.7-79.8 105.6-116.2c19.2-38.4-21.1-58.9-21.1-58.9l-60.2-37.5 32.7-50.2c45.4 33.7 48.7 36.6 79.2 67.2 23.8 23.9 20.7 56.8 6.7 100.1zm427.2 55c-15.3 143.8-202.4 90.3-202.4 90.3l10.2-41.1 43.3 9.3c80 5 72.3-64.9 72.3-64.9V423c.6-77.3-72.6-85.4-204.2-38.3l30.6 8.3c-2.5 9-12.5 23.2-25.2 38.6h176v35.6h-99.1v44.5h98.7v35.7h-98.7V622c14.9-4.8 28.6-11.5 40.5-20.5l-8.7-32.5 46.5-14.4 38.8 94.9-57.3 23.9-10.2-37.8c-25.6 19.5-78.8 48-171.8 45.4-99.2 2.6-73.7-112-73.7-112l2.5-1.3H472c-.5 14.7-6.6 38.7 1.7 51.8 6.8 10.8 24.2 12.6 35.3 13.1 1.3.1 2.6.1 3.9.1v-85.3h-101v-35.7h101v-44.5H487c-22.7 24.1-43.5 44.1-43.5 44.1l-30.6-26.7c21.7-22.9 43.3-59.1 56.8-83.2-10.9 4.4-22 9.2-33.6 14.2-11.2 14.3-24.2 29-38.7 43.5.5.8-50-28.4-50-28.4 52.2-44.4 81.4-139.9 81.4-139.9l72.5 20.4s-5.9 14-18.4 35.6c290.3-82.3 307.4 50.5 307.4 50.5s19.1 91.8 3.8 235.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/taobao.js b/src/blrec/data/webapp/assets/outline/taobao.js new file mode 100644 index 0000000..e4da320 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/taobao.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'taobao', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M168.5 273.7a68.7 68.7 0 10137.4 0 68.7 68.7 0 10-137.4 0zm730 79.2s-23.7-184.4-426.9-70.1c17.3-30 25.6-49.5 25.6-49.5L396.4 205s-40.6 132.6-113 194.4c0 0 70.1 40.6 69.4 39.4 20.1-20.1 38.2-40.6 53.7-60.4 16.1-7 31.5-13.6 46.7-19.8-18.6 33.5-48.7 83.8-78.8 115.6l42.4 37s28.8-27.7 60.4-61.2h36v61.8H372.9v49.5h140.3v118.5c-1.7 0-3.6 0-5.4-.2-15.4-.7-39.5-3.3-49-18.2-11.5-18.1-3-51.5-2.4-71.9h-97l-3.4 1.8s-35.5 159.1 102.3 155.5c129.1 3.6 203-36 238.6-63.1l14.2 52.6 79.6-33.2-53.9-131.9-64.6 20.1 12.1 45.2c-16.6 12.4-35.6 21.7-56.2 28.4V561.3h137.1v-49.5H628.1V450h137.6v-49.5H521.3c17.6-21.4 31.5-41.1 35-53.6l-42.5-11.6c182.8-65.5 284.5-54.2 283.6 53.2v282.8s10.8 97.1-100.4 90.1l-60.2-12.9-14.2 57.1S882.5 880 903.7 680.2c21.3-200-5.2-327.3-5.2-327.3zm-707.4 18.3l-45.4 69.7 83.6 52.1s56 28.5 29.4 81.9C233.8 625.5 112 736.3 112 736.3l109 68.1c75.4-163.7 70.5-142 89.5-200.7 19.5-60.1 23.7-105.9-9.4-139.1-42.4-42.6-47-46.6-110-93.4z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/taobao.svg b/src/blrec/data/webapp/assets/outline/taobao.svg new file mode 100644 index 0000000..33e3338 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/taobao.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M168.5 273.7a68.7 68.7 0 10137.4 0 68.7 68.7 0 10-137.4 0zm730 79.2s-23.7-184.4-426.9-70.1c17.3-30 25.6-49.5 25.6-49.5L396.4 205s-40.6 132.6-113 194.4c0 0 70.1 40.6 69.4 39.4 20.1-20.1 38.2-40.6 53.7-60.4 16.1-7 31.5-13.6 46.7-19.8-18.6 33.5-48.7 83.8-78.8 115.6l42.4 37s28.8-27.7 60.4-61.2h36v61.8H372.9v49.5h140.3v118.5c-1.7 0-3.6 0-5.4-.2-15.4-.7-39.5-3.3-49-18.2-11.5-18.1-3-51.5-2.4-71.9h-97l-3.4 1.8s-35.5 159.1 102.3 155.5c129.1 3.6 203-36 238.6-63.1l14.2 52.6 79.6-33.2-53.9-131.9-64.6 20.1 12.1 45.2c-16.6 12.4-35.6 21.7-56.2 28.4V561.3h137.1v-49.5H628.1V450h137.6v-49.5H521.3c17.6-21.4 31.5-41.1 35-53.6l-42.5-11.6c182.8-65.5 284.5-54.2 283.6 53.2v282.8s10.8 97.1-100.4 90.1l-60.2-12.9-14.2 57.1S882.5 880 903.7 680.2c21.3-200-5.2-327.3-5.2-327.3zm-707.4 18.3l-45.4 69.7 83.6 52.1s56 28.5 29.4 81.9C233.8 625.5 112 736.3 112 736.3l109 68.1c75.4-163.7 70.5-142 89.5-200.7 19.5-60.1 23.7-105.9-9.4-139.1-42.4-42.6-47-46.6-110-93.4z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/team.js b/src/blrec/data/webapp/assets/outline/team.js new file mode 100644 index 0000000..3cec8c0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/team.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'team', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M824.2 699.9a301.55 301.55 0 00-86.4-60.4C783.1 602.8 812 546.8 812 484c0-110.8-92.4-201.7-203.2-200-109.1 1.7-197 90.6-197 200 0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 00-86.4 60.4C345 754.6 314 826.8 312 903.8a8 8 0 008 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5A226.62 226.62 0 01612 684c60.9 0 118.2 23.7 161.3 66.8C814.5 792 838 846.3 840 904.3c.1 4.3 3.7 7.7 8 7.7h56a8 8 0 008-8.2c-2-77-33-149.2-87.8-203.9zM612 612c-34.2 0-66.4-13.3-90.5-37.5a126.86 126.86 0 01-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4 0 34.2-13.3 66.3-37.5 90.5A127.3 127.3 0 01612 612zM361.5 510.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 01-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.9-1.7-203.3 89.2-203.3 199.9 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 008 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.9-1 6.5-4.7 6-8.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/team.svg b/src/blrec/data/webapp/assets/outline/team.svg new file mode 100644 index 0000000..1350bc7 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/team.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M824.2 699.9a301.55 301.55 0 00-86.4-60.4C783.1 602.8 812 546.8 812 484c0-110.8-92.4-201.7-203.2-200-109.1 1.7-197 90.6-197 200 0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 00-86.4 60.4C345 754.6 314 826.8 312 903.8a8 8 0 008 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5A226.62 226.62 0 01612 684c60.9 0 118.2 23.7 161.3 66.8C814.5 792 838 846.3 840 904.3c.1 4.3 3.7 7.7 8 7.7h56a8 8 0 008-8.2c-2-77-33-149.2-87.8-203.9zM612 612c-34.2 0-66.4-13.3-90.5-37.5a126.86 126.86 0 01-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4 0 34.2-13.3 66.3-37.5 90.5A127.3 127.3 0 01612 612zM361.5 510.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 01-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.9-1.7-203.3 89.2-203.3 199.9 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 008 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.9-1 6.5-4.7 6-8.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/thunderbolt.js b/src/blrec/data/webapp/assets/outline/thunderbolt.js new file mode 100644 index 0000000..e882852 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/thunderbolt.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'thunderbolt', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.2 732.5l60.3-241H281.1l189.6-327.4h224.6L487 427.4h211L378.2 732.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/thunderbolt.svg b/src/blrec/data/webapp/assets/outline/thunderbolt.svg new file mode 100644 index 0000000..208808b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/thunderbolt.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.2 732.5l60.3-241H281.1l189.6-327.4h224.6L487 427.4h211L378.2 732.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/to-top.js b/src/blrec/data/webapp/assets/outline/to-top.js new file mode 100644 index 0000000..019229f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/to-top.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'to-top', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M885 780H165c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM400 325.7h73.9V664c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V325.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 171a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/to-top.svg b/src/blrec/data/webapp/assets/outline/to-top.svg new file mode 100644 index 0000000..0319aa5 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/to-top.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M885 780H165c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM400 325.7h73.9V664c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V325.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 171a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/tool.js b/src/blrec/data/webapp/assets/outline/tool.js new file mode 100644 index 0000000..fc99b48 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/tool.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'tool', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/tool.svg b/src/blrec/data/webapp/assets/outline/tool.svg new file mode 100644 index 0000000..b64193f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/tool.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/trademark-circle.js b/src/blrec/data/webapp/assets/outline/trademark-circle.js new file mode 100644 index 0000000..bfffbd0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/trademark-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'trademark-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm87.5-334.7c34.8-12.8 78.4-49 78.4-119.2 0-71.2-45.5-131.1-144.2-131.1H378c-4.4 0-8 3.6-8 8v410c0 4.4 3.6 8 8 8h54.5c4.4 0 8-3.6 8-8V561.2h88.7l74.6 159.2c1.3 2.8 4.1 4.6 7.2 4.6h62a7.9 7.9 0 007.1-11.5l-80.6-164.2zM522 505h-81.5V357h83.4c48 0 80.9 25.3 80.9 75.5 0 46.9-29.8 72.5-82.8 72.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/trademark-circle.svg b/src/blrec/data/webapp/assets/outline/trademark-circle.svg new file mode 100644 index 0000000..abc921d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/trademark-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm87.5-334.7c34.8-12.8 78.4-49 78.4-119.2 0-71.2-45.5-131.1-144.2-131.1H378c-4.4 0-8 3.6-8 8v410c0 4.4 3.6 8 8 8h54.5c4.4 0 8-3.6 8-8V561.2h88.7l74.6 159.2c1.3 2.8 4.1 4.6 7.2 4.6h62a7.9 7.9 0 007.1-11.5l-80.6-164.2zM522 505h-81.5V357h83.4c48 0 80.9 25.3 80.9 75.5 0 46.9-29.8 72.5-82.8 72.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/trademark.js b/src/blrec/data/webapp/assets/outline/trademark.js new file mode 100644 index 0000000..ef22afe --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/trademark.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'trademark', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm87.5-334.7c34.8-12.8 78.4-49 78.4-119.2 0-71.2-45.5-131.1-144.2-131.1H378c-4.4 0-8 3.6-8 8v410c0 4.4 3.6 8 8 8h54.5c4.4 0 8-3.6 8-8V561.2h88.7l74.6 159.2c1.3 2.8 4.1 4.6 7.2 4.6h62a7.9 7.9 0 007.1-11.5l-80.6-164.2zM522 505h-81.5V357h83.4c48 0 80.9 25.3 80.9 75.5 0 46.9-29.8 72.5-82.8 72.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/trademark.svg b/src/blrec/data/webapp/assets/outline/trademark.svg new file mode 100644 index 0000000..abc921d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/trademark.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm87.5-334.7c34.8-12.8 78.4-49 78.4-119.2 0-71.2-45.5-131.1-144.2-131.1H378c-4.4 0-8 3.6-8 8v410c0 4.4 3.6 8 8 8h54.5c4.4 0 8-3.6 8-8V561.2h88.7l74.6 159.2c1.3 2.8 4.1 4.6 7.2 4.6h62a7.9 7.9 0 007.1-11.5l-80.6-164.2zM522 505h-81.5V357h83.4c48 0 80.9 25.3 80.9 75.5 0 46.9-29.8 72.5-82.8 72.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/transaction.js b/src/blrec/data/webapp/assets/outline/transaction.js new file mode 100644 index 0000000..49967d4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/transaction.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'transaction', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M668.6 320c0-4.4-3.6-8-8-8h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 00-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.5-1.1.9-2.4.9-3.7zM157.9 504.2a352.7 352.7 0 01103.5-242.4c32.5-32.5 70.3-58.1 112.4-75.9 43.6-18.4 89.9-27.8 137.6-27.8 47.8 0 94.1 9.3 137.6 27.8 42.1 17.8 79.9 43.4 112.4 75.9 10 10 19.3 20.5 27.9 31.4l-50 39.1a8 8 0 003 14.1l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3l-47.8 37.4C770.7 146.3 648.6 82 511.5 82 277 82 86.3 270.1 82 503.8a8 8 0 008 8.2h60c4.3 0 7.8-3.5 7.9-7.8zM934 512h-60c-4.3 0-7.9 3.5-8 7.8a352.7 352.7 0 01-103.5 242.4 352.57 352.57 0 01-112.4 75.9c-43.6 18.4-89.9 27.8-137.6 27.8s-94.1-9.3-137.6-27.8a352.57 352.57 0 01-112.4-75.9c-10-10-19.3-20.5-27.9-31.4l49.9-39.1a8 8 0 00-3-14.1l-156.8-38.3c-5-1.2-9.9 2.6-9.9 7.7l-.8 161.7c0 6.7 7.7 10.5 12.9 6.3l47.8-37.4C253.3 877.7 375.4 942 512.5 942 747 942 937.7 753.9 942 520.2a8 8 0 00-8-8.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/transaction.svg b/src/blrec/data/webapp/assets/outline/transaction.svg new file mode 100644 index 0000000..ccd0003 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/transaction.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M668.6 320c0-4.4-3.6-8-8-8h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 00-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.5-1.1.9-2.4.9-3.7zM157.9 504.2a352.7 352.7 0 01103.5-242.4c32.5-32.5 70.3-58.1 112.4-75.9 43.6-18.4 89.9-27.8 137.6-27.8 47.8 0 94.1 9.3 137.6 27.8 42.1 17.8 79.9 43.4 112.4 75.9 10 10 19.3 20.5 27.9 31.4l-50 39.1a8 8 0 003 14.1l156.8 38.3c5 1.2 9.9-2.6 9.9-7.7l.8-161.5c0-6.7-7.7-10.5-12.9-6.3l-47.8 37.4C770.7 146.3 648.6 82 511.5 82 277 82 86.3 270.1 82 503.8a8 8 0 008 8.2h60c4.3 0 7.8-3.5 7.9-7.8zM934 512h-60c-4.3 0-7.9 3.5-8 7.8a352.7 352.7 0 01-103.5 242.4 352.57 352.57 0 01-112.4 75.9c-43.6 18.4-89.9 27.8-137.6 27.8s-94.1-9.3-137.6-27.8a352.57 352.57 0 01-112.4-75.9c-10-10-19.3-20.5-27.9-31.4l49.9-39.1a8 8 0 00-3-14.1l-156.8-38.3c-5-1.2-9.9 2.6-9.9 7.7l-.8 161.7c0 6.7 7.7 10.5 12.9 6.3l47.8-37.4C253.3 877.7 375.4 942 512.5 942 747 942 937.7 753.9 942 520.2a8 8 0 00-8-8.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/translation.js b/src/blrec/data/webapp/assets/outline/translation.js new file mode 100644 index 0000000..18ec968 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/translation.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'translation', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M140 188h584v164h76V144c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h544v-76H140V188z" /><path d="M414.3 256h-60.6c-3.4 0-6.4 2.2-7.6 5.4L219 629.4c-.3.8-.4 1.7-.4 2.6 0 4.4 3.6 8 8 8h55.1c3.4 0 6.4-2.2 7.6-5.4L322 540h196.2L422 261.4a8.42 8.42 0 00-7.7-5.4zm12.4 228h-85.5L384 360.2 426.7 484zM936 528H800v-93c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v93H592c-13.3 0-24 10.7-24 24v176c0 13.3 10.7 24 24 24h136v152c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V752h136c13.3 0 24-10.7 24-24V552c0-13.3-10.7-24-24-24zM728 680h-88v-80h88v80zm160 0h-88v-80h88v80z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/translation.svg b/src/blrec/data/webapp/assets/outline/translation.svg new file mode 100644 index 0000000..1b9fb07 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/translation.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M140 188h584v164h76V144c0-17.7-14.3-32-32-32H96c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h544v-76H140V188z" /><path d="M414.3 256h-60.6c-3.4 0-6.4 2.2-7.6 5.4L219 629.4c-.3.8-.4 1.7-.4 2.6 0 4.4 3.6 8 8 8h55.1c3.4 0 6.4-2.2 7.6-5.4L322 540h196.2L422 261.4a8.42 8.42 0 00-7.7-5.4zm12.4 228h-85.5L384 360.2 426.7 484zM936 528H800v-93c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v93H592c-13.3 0-24 10.7-24 24v176c0 13.3 10.7 24 24 24h136v152c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V752h136c13.3 0 24-10.7 24-24V552c0-13.3-10.7-24-24-24zM728 680h-88v-80h88v80zm160 0h-88v-80h88v80z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/trophy.js b/src/blrec/data/webapp/assets/outline/trophy.js new file mode 100644 index 0000000..09e77e8 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/trophy.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'trophy', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 00-44 44v148c0 81.7 60 149.6 138.2 162C265.7 630.2 359 721.7 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.7 758.3 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 00-44-44zM184 352V232h64v207.6a91.99 91.99 0 01-64-87.6zm520 128c0 49.1-19.1 95.4-53.9 130.1-34.8 34.8-81 53.9-130.1 53.9h-16c-49.1 0-95.4-19.1-130.1-53.9-34.8-34.8-53.9-81-53.9-130.1V184h384v296zm136-128c0 41-26.9 75.8-64 87.6V232h64v120z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/trophy.svg b/src/blrec/data/webapp/assets/outline/trophy.svg new file mode 100644 index 0000000..c034be9 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/trophy.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 00-44 44v148c0 81.7 60 149.6 138.2 162C265.7 630.2 359 721.7 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.7 758.3 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 00-44-44zM184 352V232h64v207.6a91.99 91.99 0 01-64-87.6zm520 128c0 49.1-19.1 95.4-53.9 130.1-34.8 34.8-81 53.9-130.1 53.9h-16c-49.1 0-95.4-19.1-130.1-53.9-34.8-34.8-53.9-81-53.9-130.1V184h384v296zm136-128c0 41-26.9 75.8-64 87.6V232h64v120z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/twitter.js b/src/blrec/data/webapp/assets/outline/twitter.js new file mode 100644 index 0000000..67b7de4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/twitter.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'twitter', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 254.3c-30.6 13.2-63.9 22.7-98.2 26.4a170.1 170.1 0 0075-94 336.64 336.64 0 01-108.2 41.2A170.1 170.1 0 00672 174c-94.5 0-170.5 76.6-170.5 170.6 0 13.2 1.6 26.4 4.2 39.1-141.5-7.4-267.7-75-351.6-178.5a169.32 169.32 0 00-23.2 86.1c0 59.2 30.1 111.4 76 142.1a172 172 0 01-77.1-21.7v2.1c0 82.9 58.6 151.6 136.7 167.4a180.6 180.6 0 01-44.9 5.8c-11.1 0-21.6-1.1-32.2-2.6C211 652 273.9 701.1 348.8 702.7c-58.6 45.9-132 72.9-211.7 72.9-14.3 0-27.5-.5-41.2-2.1C171.5 822 261.2 850 357.8 850 671.4 850 843 590.2 843 364.7c0-7.4 0-14.8-.5-22.2 33.2-24.3 62.3-54.4 85.5-88.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/twitter.svg b/src/blrec/data/webapp/assets/outline/twitter.svg new file mode 100644 index 0000000..ae563e9 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/twitter.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 254.3c-30.6 13.2-63.9 22.7-98.2 26.4a170.1 170.1 0 0075-94 336.64 336.64 0 01-108.2 41.2A170.1 170.1 0 00672 174c-94.5 0-170.5 76.6-170.5 170.6 0 13.2 1.6 26.4 4.2 39.1-141.5-7.4-267.7-75-351.6-178.5a169.32 169.32 0 00-23.2 86.1c0 59.2 30.1 111.4 76 142.1a172 172 0 01-77.1-21.7v2.1c0 82.9 58.6 151.6 136.7 167.4a180.6 180.6 0 01-44.9 5.8c-11.1 0-21.6-1.1-32.2-2.6C211 652 273.9 701.1 348.8 702.7c-58.6 45.9-132 72.9-211.7 72.9-14.3 0-27.5-.5-41.2-2.1C171.5 822 261.2 850 357.8 850 671.4 850 843 590.2 843 364.7c0-7.4 0-14.8-.5-22.2 33.2-24.3 62.3-54.4 85.5-88.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/underline.js b/src/blrec/data/webapp/assets/outline/underline.js new file mode 100644 index 0000000..6badd13 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/underline.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'underline', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M824 804H200c-4.4 0-8 3.4-8 7.6v60.8c0 4.2 3.6 7.6 8 7.6h624c4.4 0 8-3.4 8-7.6v-60.8c0-4.2-3.6-7.6-8-7.6zm-312-76c69.4 0 134.6-27.1 183.8-76.2C745 602.7 772 537.4 772 468V156c0-6.6-5.4-12-12-12h-60c-6.6 0-12 5.4-12 12v312c0 97-79 176-176 176s-176-79-176-176V156c0-6.6-5.4-12-12-12h-60c-6.6 0-12 5.4-12 12v312c0 69.4 27.1 134.6 76.2 183.8C377.3 701 442.6 728 512 728z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/underline.svg b/src/blrec/data/webapp/assets/outline/underline.svg new file mode 100644 index 0000000..2743234 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/underline.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M824 804H200c-4.4 0-8 3.4-8 7.6v60.8c0 4.2 3.6 7.6 8 7.6h624c4.4 0 8-3.4 8-7.6v-60.8c0-4.2-3.6-7.6-8-7.6zm-312-76c69.4 0 134.6-27.1 183.8-76.2C745 602.7 772 537.4 772 468V156c0-6.6-5.4-12-12-12h-60c-6.6 0-12 5.4-12 12v312c0 97-79 176-176 176s-176-79-176-176V156c0-6.6-5.4-12-12-12h-60c-6.6 0-12 5.4-12 12v312c0 69.4 27.1 134.6 76.2 183.8C377.3 701 442.6 728 512 728z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/undo.js b/src/blrec/data/webapp/assets/outline/undo.js new file mode 100644 index 0000000..354e639 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/undo.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'undo', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M511.4 124C290.5 124.3 112 303 112 523.9c0 128 60.2 242 153.8 315.2l-37.5 48c-4.1 5.3-.3 13 6.3 12.9l167-.8c5.2 0 9-4.9 7.7-9.9L369.8 727a8 8 0 00-14.1-3L315 776.1c-10.2-8-20-16.7-29.3-26a318.64 318.64 0 01-68.6-101.7C200.4 609 192 567.1 192 523.9s8.4-85.1 25.1-124.5c16.1-38.1 39.2-72.3 68.6-101.7 29.4-29.4 63.6-52.5 101.7-68.6C426.9 212.4 468.8 204 512 204s85.1 8.4 124.5 25.1c38.1 16.1 72.3 39.2 101.7 68.6 29.4 29.4 52.5 63.6 68.6 101.7 16.7 39.4 25.1 81.3 25.1 124.5s-8.4 85.1-25.1 124.5a318.64 318.64 0 01-68.6 101.7c-7.5 7.5-15.3 14.5-23.4 21.2a7.93 7.93 0 00-1.2 11.1l39.4 50.5c2.8 3.5 7.9 4.1 11.4 1.3C854.5 760.8 912 649.1 912 523.9c0-221.1-179.4-400.2-400.6-399.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/undo.svg b/src/blrec/data/webapp/assets/outline/undo.svg new file mode 100644 index 0000000..6fa3534 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/undo.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M511.4 124C290.5 124.3 112 303 112 523.9c0 128 60.2 242 153.8 315.2l-37.5 48c-4.1 5.3-.3 13 6.3 12.9l167-.8c5.2 0 9-4.9 7.7-9.9L369.8 727a8 8 0 00-14.1-3L315 776.1c-10.2-8-20-16.7-29.3-26a318.64 318.64 0 01-68.6-101.7C200.4 609 192 567.1 192 523.9s8.4-85.1 25.1-124.5c16.1-38.1 39.2-72.3 68.6-101.7 29.4-29.4 63.6-52.5 101.7-68.6C426.9 212.4 468.8 204 512 204s85.1 8.4 124.5 25.1c38.1 16.1 72.3 39.2 101.7 68.6 29.4 29.4 52.5 63.6 68.6 101.7 16.7 39.4 25.1 81.3 25.1 124.5s-8.4 85.1-25.1 124.5a318.64 318.64 0 01-68.6 101.7c-7.5 7.5-15.3 14.5-23.4 21.2a7.93 7.93 0 00-1.2 11.1l39.4 50.5c2.8 3.5 7.9 4.1 11.4 1.3C854.5 760.8 912 649.1 912 523.9c0-221.1-179.4-400.2-400.6-399.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/ungroup.js b/src/blrec/data/webapp/assets/outline/ungroup.js new file mode 100644 index 0000000..4036301 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/ungroup.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'ungroup', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M736 550H288c-8.8 0-16 7.2-16 16v176c0 8.8 7.2 16 16 16h448c8.8 0 16-7.2 16-16V566c0-8.8-7.2-16-16-16zm-56 136H344v-64h336v64zm208 130c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zM736 266H288c-8.8 0-16 7.2-16 16v176c0 8.8 7.2 16 16 16h448c8.8 0 16-7.2 16-16V282c0-8.8-7.2-16-16-16zm-56 136H344v-64h336v64zm208-194c39.8 0 72-32.2 72-72s-32.2-72-72-72-72 32.2-72 72 32.2 72 72 72zm0-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zM136 64c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0 656c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/ungroup.svg b/src/blrec/data/webapp/assets/outline/ungroup.svg new file mode 100644 index 0000000..e08ee5a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/ungroup.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M736 550H288c-8.8 0-16 7.2-16 16v176c0 8.8 7.2 16 16 16h448c8.8 0 16-7.2 16-16V566c0-8.8-7.2-16-16-16zm-56 136H344v-64h336v64zm208 130c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zM736 266H288c-8.8 0-16 7.2-16 16v176c0 8.8 7.2 16 16 16h448c8.8 0 16-7.2 16-16V282c0-8.8-7.2-16-16-16zm-56 136H344v-64h336v64zm208-194c39.8 0 72-32.2 72-72s-32.2-72-72-72-72 32.2-72 72 32.2 72 72 72zm0-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zM136 64c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0 656c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/unlock.js b/src/blrec/data/webapp/assets/outline/unlock.js new file mode 100644 index 0000000..6587902 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/unlock.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'unlock', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zm-40 376H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 10-56 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/unlock.svg b/src/blrec/data/webapp/assets/outline/unlock.svg new file mode 100644 index 0000000..cbb20ad --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/unlock.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zm-40 376H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 10-56 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/unordered-list.js b/src/blrec/data/webapp/assets/outline/unordered-list.js new file mode 100644 index 0000000..0d0abdc --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/unordered-list.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'unordered-list', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/unordered-list.svg b/src/blrec/data/webapp/assets/outline/unordered-list.svg new file mode 100644 index 0000000..bf3f747 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/unordered-list.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/up-circle.js b/src/blrec/data/webapp/assets/outline/up-circle.js new file mode 100644 index 0000000..6a8e2d5 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/up-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'up-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M518.5 360.3a7.95 7.95 0 00-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7H381c10.2 0 19.9-4.9 25.9-13.2L512 460.4l105.2 145.4c6 8.3 15.6 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.5-12.7l-178-246z" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/up-circle.svg b/src/blrec/data/webapp/assets/outline/up-circle.svg new file mode 100644 index 0000000..1361a40 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/up-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M518.5 360.3a7.95 7.95 0 00-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7H381c10.2 0 19.9-4.9 25.9-13.2L512 460.4l105.2 145.4c6 8.3 15.6 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.5-12.7l-178-246z" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/up-square.js b/src/blrec/data/webapp/assets/outline/up-square.js new file mode 100644 index 0000000..2289094 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/up-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'up-square', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M334 624h46.9c10.2 0 19.9-4.9 25.9-13.2L512 465.4l105.2 145.4c6 8.3 15.6 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.5-12.7l-178-246a7.95 7.95 0 00-12.9 0l-178 246A7.96 7.96 0 00334 624z" /><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/up-square.svg b/src/blrec/data/webapp/assets/outline/up-square.svg new file mode 100644 index 0000000..a614dc7 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/up-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M334 624h46.9c10.2 0 19.9-4.9 25.9-13.2L512 465.4l105.2 145.4c6 8.3 15.6 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.5-12.7l-178-246a7.95 7.95 0 00-12.9 0l-178 246A7.96 7.96 0 00334 624z" /><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/up.js b/src/blrec/data/webapp/assets/outline/up.js new file mode 100644 index 0000000..51514d6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/up.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'up', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/up.svg b/src/blrec/data/webapp/assets/outline/up.svg new file mode 100644 index 0000000..52fcb02 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/up.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/upload.js b/src/blrec/data/webapp/assets/outline/upload.js new file mode 100644 index 0000000..765c8ac --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/upload.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'upload', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/upload.svg b/src/blrec/data/webapp/assets/outline/upload.svg new file mode 100644 index 0000000..d120754 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/upload.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/usb.js b/src/blrec/data/webapp/assets/outline/usb.js new file mode 100644 index 0000000..affb000 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/usb.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'usb', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M760 432V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V548c0-24.3 21.6-44 48.1-44h495.8c26.5 0 48.1 19.7 48.1 44v356c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zm-424 0V184h352v248H336zm120-184h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm160 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/usb.svg b/src/blrec/data/webapp/assets/outline/usb.svg new file mode 100644 index 0000000..351b7a3 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/usb.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M760 432V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V548c0-24.3 21.6-44 48.1-44h495.8c26.5 0 48.1 19.7 48.1 44v356c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zm-424 0V184h352v248H336zm120-184h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm160 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/user-add.js b/src/blrec/data/webapp/assets/outline/user-add.js new file mode 100644 index 0000000..973779a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/user-add.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'user-add', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M678.3 642.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 00-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 505 759.6 431.7 759.6 349c0-137-110.8-248-247.5-248S264.7 212 264.7 349c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 00-80.4 119.5A373.6 373.6 0 00137 888.8a8 8 0 008 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 628.2 432.2 597 512.2 597c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 008.1.3zM512.2 521c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 01340.5 349c0-45.9 17.9-89.1 50.3-121.6S466.3 177 512.2 177s88.9 17.9 121.4 50.4A171.2 171.2 0 01683.9 349c0 45.9-17.9 89.1-50.3 121.6C601.1 503.1 558 521 512.2 521zM880 759h-84v-84c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v84h-84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h84v84c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-84h84c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/user-add.svg b/src/blrec/data/webapp/assets/outline/user-add.svg new file mode 100644 index 0000000..2814bcc --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/user-add.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M678.3 642.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 00-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 505 759.6 431.7 759.6 349c0-137-110.8-248-247.5-248S264.7 212 264.7 349c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 00-80.4 119.5A373.6 373.6 0 00137 888.8a8 8 0 008 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 628.2 432.2 597 512.2 597c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 008.1.3zM512.2 521c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 01340.5 349c0-45.9 17.9-89.1 50.3-121.6S466.3 177 512.2 177s88.9 17.9 121.4 50.4A171.2 171.2 0 01683.9 349c0 45.9-17.9 89.1-50.3 121.6C601.1 503.1 558 521 512.2 521zM880 759h-84v-84c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v84h-84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h84v84c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-84h84c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/user-delete.js b/src/blrec/data/webapp/assets/outline/user-delete.js new file mode 100644 index 0000000..a607916 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/user-delete.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'user-delete', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M678.3 655.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 00-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 518 759.6 444.7 759.6 362c0-137-110.8-248-247.5-248S264.7 225 264.7 362c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 00-80.4 119.5A373.6 373.6 0 00137 901.8a8 8 0 008 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 641.2 432.2 610 512.2 610c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 008.1.3zM512.2 534c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 01340.5 362c0-45.9 17.9-89.1 50.3-121.6S466.3 190 512.2 190s88.9 17.9 121.4 50.4A171.2 171.2 0 01683.9 362c0 45.9-17.9 89.1-50.3 121.6C601.1 516.1 558 534 512.2 534zM880 772H640c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h240c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/user-delete.svg b/src/blrec/data/webapp/assets/outline/user-delete.svg new file mode 100644 index 0000000..b59fef0 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/user-delete.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M678.3 655.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 00-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 518 759.6 444.7 759.6 362c0-137-110.8-248-247.5-248S264.7 225 264.7 362c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 00-80.4 119.5A373.6 373.6 0 00137 901.8a8 8 0 008 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 641.2 432.2 610 512.2 610c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 008.1.3zM512.2 534c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 01340.5 362c0-45.9 17.9-89.1 50.3-121.6S466.3 190 512.2 190s88.9 17.9 121.4 50.4A171.2 171.2 0 01683.9 362c0 45.9-17.9 89.1-50.3 121.6C601.1 516.1 558 534 512.2 534zM880 772H640c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h240c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/user-switch.js b/src/blrec/data/webapp/assets/outline/user-switch.js new file mode 100644 index 0000000..8ab1fac --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/user-switch.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'user-switch', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M759 335c0-137-111-248-248-248S263 198 263 335c0 82.8 40.6 156.2 103 201.2-.4.2-.7.3-.9.4-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 00-80.4 119.5A373.6 373.6 0 00136 874.8a8 8 0 008 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C356 614.2 431 583 511 583c137 0 248-111 248-248zM511 507c-95 0-172-77-172-172s77-172 172-172 172 77 172 172-77 172-172 172zm105 221h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H703.5l47.2-60.1a8.1 8.1 0 001.7-4.9c0-4.4-3.6-8-8-8h-72.6c-4.9 0-9.5 2.3-12.6 6.1l-68.5 87.1c-4.4 5.6-6.8 12.6-6.8 19.8.1 17.7 14.4 32 32.1 32zm240 64H592c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h176.5l-47.2 60.1a8.1 8.1 0 00-1.7 4.9c0 4.4 3.6 8 8 8h72.6c4.9 0 9.5-2.3 12.6-6.1l68.5-87.1c4.4-5.6 6.8-12.6 6.8-19.8-.1-17.7-14.4-32-32.1-32z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/user-switch.svg b/src/blrec/data/webapp/assets/outline/user-switch.svg new file mode 100644 index 0000000..b69b1f4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/user-switch.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M759 335c0-137-111-248-248-248S263 198 263 335c0 82.8 40.6 156.2 103 201.2-.4.2-.7.3-.9.4-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 00-80.4 119.5A373.6 373.6 0 00136 874.8a8 8 0 008 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C356 614.2 431 583 511 583c137 0 248-111 248-248zM511 507c-95 0-172-77-172-172s77-172 172-172 172 77 172 172-77 172-172 172zm105 221h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H703.5l47.2-60.1a8.1 8.1 0 001.7-4.9c0-4.4-3.6-8-8-8h-72.6c-4.9 0-9.5 2.3-12.6 6.1l-68.5 87.1c-4.4 5.6-6.8 12.6-6.8 19.8.1 17.7 14.4 32 32.1 32zm240 64H592c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h176.5l-47.2 60.1a8.1 8.1 0 00-1.7 4.9c0 4.4 3.6 8 8 8h72.6c4.9 0 9.5-2.3 12.6-6.1l68.5-87.1c4.4-5.6 6.8-12.6 6.8-19.8-.1-17.7-14.4-32-32.1-32z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/user.js b/src/blrec/data/webapp/assets/outline/user.js new file mode 100644 index 0000000..4f0277d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/user.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'user', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M858.5 763.6a374 374 0 00-80.6-119.5 375.63 375.63 0 00-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 00-80.6 119.5A371.7 371.7 0 00136 901.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 008-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/user.svg b/src/blrec/data/webapp/assets/outline/user.svg new file mode 100644 index 0000000..3afa2f6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/user.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M858.5 763.6a374 374 0 00-80.6-119.5 375.63 375.63 0 00-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 00-80.6 119.5A371.7 371.7 0 00136 901.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 008-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/usergroup-add.js b/src/blrec/data/webapp/assets/outline/usergroup-add.js new file mode 100644 index 0000000..98f476c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/usergroup-add.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'usergroup-add', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M892 772h-80v-80c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v80h-80c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h80v80c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-80h80c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM373.5 498.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 01-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.8-1.7-203.2 89.2-203.2 200 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 008 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.8-1.1 6.4-4.8 5.9-8.8zM824 472c0-109.4-87.9-198.3-196.9-200C516.3 270.3 424 361.2 424 472c0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 00-86.4 60.4C357 742.6 326 814.8 324 891.8a8 8 0 008 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5C505.8 695.7 563 672 624 672c110.4 0 200-89.5 200-200zm-109.5 90.5C690.3 586.7 658.2 600 624 600s-66.3-13.3-90.5-37.5a127.26 127.26 0 01-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4-.1 34.2-13.4 66.3-37.6 90.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/usergroup-add.svg b/src/blrec/data/webapp/assets/outline/usergroup-add.svg new file mode 100644 index 0000000..dc4663b --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/usergroup-add.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M892 772h-80v-80c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v80h-80c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h80v80c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-80h80c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM373.5 498.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 01-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.8-1.7-203.2 89.2-203.2 200 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 008 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.8-1.1 6.4-4.8 5.9-8.8zM824 472c0-109.4-87.9-198.3-196.9-200C516.3 270.3 424 361.2 424 472c0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 00-86.4 60.4C357 742.6 326 814.8 324 891.8a8 8 0 008 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5C505.8 695.7 563 672 624 672c110.4 0 200-89.5 200-200zm-109.5 90.5C690.3 586.7 658.2 600 624 600s-66.3-13.3-90.5-37.5a127.26 127.26 0 01-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4-.1 34.2-13.4 66.3-37.6 90.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/usergroup-delete.js b/src/blrec/data/webapp/assets/outline/usergroup-delete.js new file mode 100644 index 0000000..08236ed --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/usergroup-delete.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'usergroup-delete', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M888 784H664c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM373.5 510.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 01-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.9-1.7-203.3 89.2-203.3 199.9 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 008 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.9-1 6.5-4.7 6-8.7zM824 484c0-109.4-87.9-198.3-196.9-200C516.3 282.3 424 373.2 424 484c0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 00-86.4 60.4C357 754.6 326 826.8 324 903.8a8 8 0 008 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5C505.8 707.7 563 684 624 684c110.4 0 200-89.5 200-200zm-109.5 90.5C690.3 598.7 658.2 612 624 612s-66.3-13.3-90.5-37.5a127.26 127.26 0 01-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4-.1 34.2-13.4 66.3-37.6 90.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/usergroup-delete.svg b/src/blrec/data/webapp/assets/outline/usergroup-delete.svg new file mode 100644 index 0000000..1573343 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/usergroup-delete.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M888 784H664c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h224c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM373.5 510.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 01-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.9-1.7-203.3 89.2-203.3 199.9 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 008 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.9-1 6.5-4.7 6-8.7zM824 484c0-109.4-87.9-198.3-196.9-200C516.3 282.3 424 373.2 424 484c0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 00-86.4 60.4C357 754.6 326 826.8 324 903.8a8 8 0 008 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5C505.8 707.7 563 684 624 684c110.4 0 200-89.5 200-200zm-109.5 90.5C690.3 598.7 658.2 612 624 612s-66.3-13.3-90.5-37.5a127.26 127.26 0 01-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4-.1 34.2-13.4 66.3-37.6 90.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/verified.js b/src/blrec/data/webapp/assets/outline/verified.js new file mode 100644 index 0000000..a7ffcd7 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/verified.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'verified', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M447.8 588.8l-7.3-32.5c-.2-1-.6-1.9-1.1-2.7a7.94 7.94 0 00-11.1-2.2L405 567V411c0-4.4-3.6-8-8-8h-81c-4.4 0-8 3.6-8 8v36c0 4.4 3.6 8 8 8h37v192.4a8 8 0 0012.7 6.5l79-56.8c2.6-1.9 3.8-5.1 3.1-8.3zm-56.7-216.6l.2.2c3.2 3 8.3 2.8 11.3-.5l24.1-26.2a8.1 8.1 0 00-.3-11.2l-53.7-52.1a8 8 0 00-11.2.1l-24.7 24.7c-3.1 3.1-3.1 8.2.1 11.3l54.2 53.7z" /><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z" /><path d="M452 297v36c0 4.4 3.6 8 8 8h108v274h-38V405c0-4.4-3.6-8-8-8h-35c-4.4 0-8 3.6-8 8v210h-31c-4.4 0-8 3.6-8 8v37c0 4.4 3.6 8 8 8h244c4.4 0 8-3.6 8-8v-37c0-4.4-3.6-8-8-8h-72V493h58c4.4 0 8-3.6 8-8v-35c0-4.4-3.6-8-8-8h-58V341h63c4.4 0 8-3.6 8-8v-36c0-4.4-3.6-8-8-8H460c-4.4 0-8 3.6-8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/verified.svg b/src/blrec/data/webapp/assets/outline/verified.svg new file mode 100644 index 0000000..5e7748a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/verified.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M447.8 588.8l-7.3-32.5c-.2-1-.6-1.9-1.1-2.7a7.94 7.94 0 00-11.1-2.2L405 567V411c0-4.4-3.6-8-8-8h-81c-4.4 0-8 3.6-8 8v36c0 4.4 3.6 8 8 8h37v192.4a8 8 0 0012.7 6.5l79-56.8c2.6-1.9 3.8-5.1 3.1-8.3zm-56.7-216.6l.2.2c3.2 3 8.3 2.8 11.3-.5l24.1-26.2a8.1 8.1 0 00-.3-11.2l-53.7-52.1a8 8 0 00-11.2.1l-24.7 24.7c-3.1 3.1-3.1 8.2.1 11.3l54.2 53.7z" /><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z" /><path d="M452 297v36c0 4.4 3.6 8 8 8h108v274h-38V405c0-4.4-3.6-8-8-8h-35c-4.4 0-8 3.6-8 8v210h-31c-4.4 0-8 3.6-8 8v37c0 4.4 3.6 8 8 8h244c4.4 0 8-3.6 8-8v-37c0-4.4-3.6-8-8-8h-72V493h58c4.4 0 8-3.6 8-8v-35c0-4.4-3.6-8-8-8h-58V341h63c4.4 0 8-3.6 8-8v-36c0-4.4-3.6-8-8-8H460c-4.4 0-8 3.6-8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/vertical-align-bottom.js b/src/blrec/data/webapp/assets/outline/vertical-align-bottom.js new file mode 100644 index 0000000..3bec919 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/vertical-align-bottom.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'vertical-align-bottom', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M859.9 780H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM505.7 669a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V176c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/vertical-align-bottom.svg b/src/blrec/data/webapp/assets/outline/vertical-align-bottom.svg new file mode 100644 index 0000000..11dc1c9 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/vertical-align-bottom.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M859.9 780H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM505.7 669a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V176c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/vertical-align-middle.js b/src/blrec/data/webapp/assets/outline/vertical-align-middle.js new file mode 100644 index 0000000..2b1906a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/vertical-align-middle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'vertical-align-middle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M859.9 474H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zm-353.6-74.7c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H550V104c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v156h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.6zm11.4 225.4a7.14 7.14 0 00-11.3 0L405.6 752.3a7.23 7.23 0 005.7 11.7H474v156c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V764h62.8c6 0 9.4-7 5.7-11.7L517.7 624.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/vertical-align-middle.svg b/src/blrec/data/webapp/assets/outline/vertical-align-middle.svg new file mode 100644 index 0000000..d81cd45 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/vertical-align-middle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M859.9 474H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zm-353.6-74.7c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H550V104c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v156h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.6zm11.4 225.4a7.14 7.14 0 00-11.3 0L405.6 752.3a7.23 7.23 0 005.7 11.7H474v156c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V764h62.8c6 0 9.4-7 5.7-11.7L517.7 624.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/vertical-align-top.js b/src/blrec/data/webapp/assets/outline/vertical-align-top.js new file mode 100644 index 0000000..a5f7ec8 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/vertical-align-top.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'vertical-align-top', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M859.9 168H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM518.3 355a8 8 0 00-12.6 0l-112 141.7a7.98 7.98 0 006.3 12.9h73.9V848c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V509.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 355z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/vertical-align-top.svg b/src/blrec/data/webapp/assets/outline/vertical-align-top.svg new file mode 100644 index 0000000..199d111 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/vertical-align-top.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M859.9 168H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM518.3 355a8 8 0 00-12.6 0l-112 141.7a7.98 7.98 0 006.3 12.9h73.9V848c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V509.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 355z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/vertical-left.js b/src/blrec/data/webapp/assets/outline/vertical-left.js new file mode 100644 index 0000000..37b308e --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/vertical-left.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'vertical-left', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M762 164h-64c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V172c0-4.4-3.6-8-8-8zm-508 0v72.4c0 9.5 4.2 18.4 11.4 24.5L564.6 512 265.4 763.1c-7.2 6.1-11.4 15-11.4 24.5V860c0 6.8 7.9 10.5 13.1 6.1L689 512 267.1 157.9A7.95 7.95 0 00254 164z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/vertical-left.svg b/src/blrec/data/webapp/assets/outline/vertical-left.svg new file mode 100644 index 0000000..62c3caa --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/vertical-left.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M762 164h-64c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V172c0-4.4-3.6-8-8-8zm-508 0v72.4c0 9.5 4.2 18.4 11.4 24.5L564.6 512 265.4 763.1c-7.2 6.1-11.4 15-11.4 24.5V860c0 6.8 7.9 10.5 13.1 6.1L689 512 267.1 157.9A7.95 7.95 0 00254 164z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/vertical-right.js b/src/blrec/data/webapp/assets/outline/vertical-right.js new file mode 100644 index 0000000..1996758 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/vertical-right.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'vertical-right', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M326 164h-64c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V172c0-4.4-3.6-8-8-8zm444 72.4V164c0-6.8-7.9-10.5-13.1-6.1L335 512l421.9 354.1c5.2 4.4 13.1.7 13.1-6.1v-72.4c0-9.4-4.2-18.4-11.4-24.5L459.4 512l299.2-251.1c7.2-6.1 11.4-15.1 11.4-24.5z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/vertical-right.svg b/src/blrec/data/webapp/assets/outline/vertical-right.svg new file mode 100644 index 0000000..dec475d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/vertical-right.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M326 164h-64c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h64c4.4 0 8-3.6 8-8V172c0-4.4-3.6-8-8-8zm444 72.4V164c0-6.8-7.9-10.5-13.1-6.1L335 512l421.9 354.1c5.2 4.4 13.1.7 13.1-6.1v-72.4c0-9.4-4.2-18.4-11.4-24.5L459.4 512l299.2-251.1c7.2-6.1 11.4-15.1 11.4-24.5z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/video-camera-add.js b/src/blrec/data/webapp/assets/outline/video-camera-add.js new file mode 100644 index 0000000..1c0f5b8 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/video-camera-add.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'video-camera-add', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M368 724H252V608c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v116H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h116v116c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V788h116c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" /><path d="M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v352h72V232h576v560H448v72h272c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM888 625l-104-59.8V458.9L888 399v226z" /><path d="M320 360c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H208c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h112z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/video-camera-add.svg b/src/blrec/data/webapp/assets/outline/video-camera-add.svg new file mode 100644 index 0000000..19693a6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/video-camera-add.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M368 724H252V608c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v116H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h116v116c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V788h116c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" /><path d="M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v352h72V232h576v560H448v72h272c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM888 625l-104-59.8V458.9L888 399v226z" /><path d="M320 360c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H208c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h112z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/video-camera.js b/src/blrec/data/webapp/assets/outline/video-camera.js new file mode 100644 index 0000000..59d00d2 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/video-camera.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'video-camera', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM712 792H136V232h576v560zm176-167l-104-59.8V458.9L888 399v226zM208 360h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H208c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/video-camera.svg b/src/blrec/data/webapp/assets/outline/video-camera.svg new file mode 100644 index 0000000..7d5692c --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/video-camera.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM712 792H136V232h576v560zm176-167l-104-59.8V458.9L888 399v226zM208 360h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H208c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/wallet.js b/src/blrec/data/webapp/assets/outline/wallet.js new file mode 100644 index 0000000..6386756 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/wallet.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'wallet', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 464H528V448h312v128zm0 264H184V184h656v200H496c-17.7 0-32 14.3-32 32v192c0 17.7 14.3 32 32 32h344v200zM580 512a40 40 0 1080 0 40 40 0 10-80 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/wallet.svg b/src/blrec/data/webapp/assets/outline/wallet.svg new file mode 100644 index 0000000..6da144a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/wallet.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 464H528V448h312v128zm0 264H184V184h656v200H496c-17.7 0-32 14.3-32 32v192c0 17.7 14.3 32 32 32h344v200zM580 512a40 40 0 1080 0 40 40 0 10-80 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/warning.js b/src/blrec/data/webapp/assets/outline/warning.js new file mode 100644 index 0000000..39752cc --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/warning.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'warning', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M464 720a48 48 0 1096 0 48 48 0 10-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zm475.7 440l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/warning.svg b/src/blrec/data/webapp/assets/outline/warning.svg new file mode 100644 index 0000000..26821d4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/warning.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M464 720a48 48 0 1096 0 48 48 0 10-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zm475.7 440l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/wechat.js b/src/blrec/data/webapp/assets/outline/wechat.js new file mode 100644 index 0000000..533ef24 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/wechat.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'wechat', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M690.1 377.4c5.9 0 11.8.2 17.6.5-24.4-128.7-158.3-227.1-319.9-227.1C209 150.8 64 271.4 64 420.2c0 81.1 43.6 154.2 111.9 203.6a21.5 21.5 0 019.1 17.6c0 2.4-.5 4.6-1.1 6.9-5.5 20.3-14.2 52.8-14.6 54.3-.7 2.6-1.7 5.2-1.7 7.9 0 5.9 4.8 10.8 10.8 10.8 2.3 0 4.2-.9 6.2-2l70.9-40.9c5.3-3.1 11-5 17.2-5 3.2 0 6.4.5 9.5 1.4 33.1 9.5 68.8 14.8 105.7 14.8 6 0 11.9-.1 17.8-.4-7.1-21-10.9-43.1-10.9-66 0-135.8 132.2-245.8 295.3-245.8zm-194.3-86.5c23.8 0 43.2 19.3 43.2 43.1s-19.3 43.1-43.2 43.1c-23.8 0-43.2-19.3-43.2-43.1s19.4-43.1 43.2-43.1zm-215.9 86.2c-23.8 0-43.2-19.3-43.2-43.1s19.3-43.1 43.2-43.1 43.2 19.3 43.2 43.1-19.4 43.1-43.2 43.1zm586.8 415.6c56.9-41.2 93.2-102 93.2-169.7 0-124-120.8-224.5-269.9-224.5-149 0-269.9 100.5-269.9 224.5S540.9 847.5 690 847.5c30.8 0 60.6-4.4 88.1-12.3 2.6-.8 5.2-1.2 7.9-1.2 5.2 0 9.9 1.6 14.3 4.1l59.1 34c1.7 1 3.3 1.7 5.2 1.7a9 9 0 006.4-2.6 9 9 0 002.6-6.4c0-2.2-.9-4.4-1.4-6.6-.3-1.2-7.6-28.3-12.2-45.3-.5-1.9-.9-3.8-.9-5.7.1-5.9 3.1-11.2 7.6-14.5zM600.2 587.2c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9c0 19.8-16.2 35.9-36 35.9zm179.9 0c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9a36.08 36.08 0 01-36 35.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/wechat.svg b/src/blrec/data/webapp/assets/outline/wechat.svg new file mode 100644 index 0000000..755e672 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/wechat.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M690.1 377.4c5.9 0 11.8.2 17.6.5-24.4-128.7-158.3-227.1-319.9-227.1C209 150.8 64 271.4 64 420.2c0 81.1 43.6 154.2 111.9 203.6a21.5 21.5 0 019.1 17.6c0 2.4-.5 4.6-1.1 6.9-5.5 20.3-14.2 52.8-14.6 54.3-.7 2.6-1.7 5.2-1.7 7.9 0 5.9 4.8 10.8 10.8 10.8 2.3 0 4.2-.9 6.2-2l70.9-40.9c5.3-3.1 11-5 17.2-5 3.2 0 6.4.5 9.5 1.4 33.1 9.5 68.8 14.8 105.7 14.8 6 0 11.9-.1 17.8-.4-7.1-21-10.9-43.1-10.9-66 0-135.8 132.2-245.8 295.3-245.8zm-194.3-86.5c23.8 0 43.2 19.3 43.2 43.1s-19.3 43.1-43.2 43.1c-23.8 0-43.2-19.3-43.2-43.1s19.4-43.1 43.2-43.1zm-215.9 86.2c-23.8 0-43.2-19.3-43.2-43.1s19.3-43.1 43.2-43.1 43.2 19.3 43.2 43.1-19.4 43.1-43.2 43.1zm586.8 415.6c56.9-41.2 93.2-102 93.2-169.7 0-124-120.8-224.5-269.9-224.5-149 0-269.9 100.5-269.9 224.5S540.9 847.5 690 847.5c30.8 0 60.6-4.4 88.1-12.3 2.6-.8 5.2-1.2 7.9-1.2 5.2 0 9.9 1.6 14.3 4.1l59.1 34c1.7 1 3.3 1.7 5.2 1.7a9 9 0 006.4-2.6 9 9 0 002.6-6.4c0-2.2-.9-4.4-1.4-6.6-.3-1.2-7.6-28.3-12.2-45.3-.5-1.9-.9-3.8-.9-5.7.1-5.9 3.1-11.2 7.6-14.5zM600.2 587.2c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9c0 19.8-16.2 35.9-36 35.9zm179.9 0c-19.9 0-36-16.1-36-35.9 0-19.8 16.1-35.9 36-35.9s36 16.1 36 35.9a36.08 36.08 0 01-36 35.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/weibo-circle.js b/src/blrec/data/webapp/assets/outline/weibo-circle.js new file mode 100644 index 0000000..2ed7d15 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/weibo-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'weibo-circle', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-44.4 672C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 00-7.2-34.1 34.68 34.68 0 00-33.1-10.7 18.24 18.24 0 01-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 01-22.9 11.7 18.18 18.18 0 01-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 01-26.6 13.7 21.19 21.19 0 01-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 00-98.9-32.1 21.14 21.14 0 01-25.1-16.3 21.07 21.07 0 0116.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-93-32.2c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zm34.9-14.5c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/weibo-circle.svg b/src/blrec/data/webapp/assets/outline/weibo-circle.svg new file mode 100644 index 0000000..414bbce --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/weibo-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-44.4 672C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 00-7.2-34.1 34.68 34.68 0 00-33.1-10.7 18.24 18.24 0 01-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 01-22.9 11.7 18.18 18.18 0 01-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 01-26.6 13.7 21.19 21.19 0 01-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 00-98.9-32.1 21.14 21.14 0 01-25.1-16.3 21.07 21.07 0 0116.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-93-32.2c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zm34.9-14.5c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/weibo-square.js b/src/blrec/data/webapp/assets/outline/weibo-square.js new file mode 100644 index 0000000..504d354 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/weibo-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'weibo-square', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M433.6 595.1c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM467.6 736C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 00-7.2-34.1 34.68 34.68 0 00-33.1-10.7 18.24 18.24 0 01-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 01-22.9 11.7 18.18 18.18 0 01-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 01-26.6 13.7 21.19 21.19 0 01-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 00-98.9-32.1 21.14 21.14 0 01-25.1-16.3 21.07 21.07 0 0116.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-58.1-46.7c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/weibo-square.svg b/src/blrec/data/webapp/assets/outline/weibo-square.svg new file mode 100644 index 0000000..bd47a6a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/weibo-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M433.6 595.1c-14.2-5.9-32.4.2-41.2 13.9-8.8 13.8-4.7 30.2 9.3 36.6 14.3 6.5 33.2.3 42-13.8 8.8-14.3 4.2-30.6-10.1-36.7zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM467.6 736C353.1 736 236 680.4 236 588.9c0-47.8 30.2-103.1 82.3-155.3 69.5-69.6 150.6-101.4 181.1-70.8 13.5 13.5 14.8 36.8 6.1 64.6-4.5 14 13.1 6.3 13.1 6.3 56.2-23.6 105.2-25 123.1.7 9.6 13.7 8.6 32.8-.2 55.1-4.1 10.2 1.3 11.8 9 14.1 31.7 9.8 66.9 33.6 66.9 75.5.2 69.5-99.7 156.9-249.8 156.9zm207.3-290.8a34.9 34.9 0 00-7.2-34.1 34.68 34.68 0 00-33.1-10.7 18.24 18.24 0 01-7.6-35.7c24.1-5.1 50.1 2.3 67.7 21.9 17.7 19.6 22.4 46.3 14.9 69.8a18.13 18.13 0 01-22.9 11.7 18.18 18.18 0 01-11.8-22.9zm106 34.3s0 .1 0 0a21.1 21.1 0 01-26.6 13.7 21.19 21.19 0 01-13.6-26.7c11-34.2 4-73.2-21.7-101.8a104.04 104.04 0 00-98.9-32.1 21.14 21.14 0 01-25.1-16.3 21.07 21.07 0 0116.2-25.1c49.4-10.5 102.8 4.8 139.1 45.1 36.3 40.2 46.1 95.1 30.6 143.2zm-334.5 6.1c-91.4 9-160.7 65.1-154.7 125.2 5.9 60.1 84.8 101.5 176.2 92.5 91.4-9.1 160.7-65.1 154.7-125.3-5.9-60.1-84.8-101.5-176.2-92.4zm80.2 141.7c-18.7 42.3-72.3 64.8-117.8 50.1-43.9-14.2-62.5-57.7-43.3-96.8 18.9-38.4 68-60.1 111.5-48.8 45 11.7 68 54.2 49.6 95.5zm-58.1-46.7c-5.4-2.2-12.2.5-15.4 5.8-3.1 5.4-1.4 11.5 4.1 13.8 5.5 2.3 12.6-.3 15.8-5.8 3-5.6 1-11.8-4.5-13.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/weibo.js b/src/blrec/data/webapp/assets/outline/weibo.js new file mode 100644 index 0000000..476c244 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/weibo.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'weibo', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M457.3 543c-68.1-17.7-145 16.2-174.6 76.2-30.1 61.2-1 129.1 67.8 151.3 71.2 23 155.2-12.2 184.4-78.3 28.7-64.6-7.2-131-77.6-149.2zm-52 156.2c-13.8 22.1-43.5 31.7-65.8 21.6-22-10-28.5-35.7-14.6-57.2 13.7-21.4 42.3-31 64.4-21.7 22.4 9.5 29.6 35 16 57.3zm45.5-58.5c-5 8.6-16.1 12.7-24.7 9.1-8.5-3.5-11.2-13.1-6.4-21.5 5-8.4 15.6-12.4 24.1-9.1 8.7 3.2 11.8 12.9 7 21.5zm334.5-197.2c15 4.8 31-3.4 35.9-18.3 11.8-36.6 4.4-78.4-23.2-109a111.39 111.39 0 00-106-34.3 28.45 28.45 0 00-21.9 33.8 28.39 28.39 0 0033.8 21.8c18.4-3.9 38.3 1.8 51.9 16.7a54.2 54.2 0 0111.3 53.3 28.45 28.45 0 0018.2 36zm99.8-206c-56.7-62.9-140.4-86.9-217.7-70.5a32.98 32.98 0 00-25.4 39.3 33.12 33.12 0 0039.3 25.5c55-11.7 114.4 5.4 154.8 50.1 40.3 44.7 51.2 105.7 34 159.1-5.6 17.4 3.9 36 21.3 41.7 17.4 5.6 36-3.9 41.6-21.2v-.1c24.1-75.4 8.9-161.1-47.9-223.9zM729 499c-12.2-3.6-20.5-6.1-14.1-22.1 13.8-34.7 15.2-64.7.3-86-28-40.1-104.8-37.9-192.8-1.1 0 0-27.6 12.1-20.6-9.8 13.5-43.5 11.5-79.9-9.6-101-47.7-47.8-174.6 1.8-283.5 110.6C127.3 471.1 80 557.5 80 632.2 80 775.1 263.2 862 442.5 862c235 0 391.3-136.5 391.3-245 0-65.5-55.2-102.6-104.8-118zM443 810.8c-143 14.1-266.5-50.5-275.8-144.5-9.3-93.9 99.2-181.5 242.2-195.6 143-14.2 266.5 50.5 275.8 144.4C694.4 709 586 796.6 443 810.8z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/weibo.svg b/src/blrec/data/webapp/assets/outline/weibo.svg new file mode 100644 index 0000000..3b8b1d9 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/weibo.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M457.3 543c-68.1-17.7-145 16.2-174.6 76.2-30.1 61.2-1 129.1 67.8 151.3 71.2 23 155.2-12.2 184.4-78.3 28.7-64.6-7.2-131-77.6-149.2zm-52 156.2c-13.8 22.1-43.5 31.7-65.8 21.6-22-10-28.5-35.7-14.6-57.2 13.7-21.4 42.3-31 64.4-21.7 22.4 9.5 29.6 35 16 57.3zm45.5-58.5c-5 8.6-16.1 12.7-24.7 9.1-8.5-3.5-11.2-13.1-6.4-21.5 5-8.4 15.6-12.4 24.1-9.1 8.7 3.2 11.8 12.9 7 21.5zm334.5-197.2c15 4.8 31-3.4 35.9-18.3 11.8-36.6 4.4-78.4-23.2-109a111.39 111.39 0 00-106-34.3 28.45 28.45 0 00-21.9 33.8 28.39 28.39 0 0033.8 21.8c18.4-3.9 38.3 1.8 51.9 16.7a54.2 54.2 0 0111.3 53.3 28.45 28.45 0 0018.2 36zm99.8-206c-56.7-62.9-140.4-86.9-217.7-70.5a32.98 32.98 0 00-25.4 39.3 33.12 33.12 0 0039.3 25.5c55-11.7 114.4 5.4 154.8 50.1 40.3 44.7 51.2 105.7 34 159.1-5.6 17.4 3.9 36 21.3 41.7 17.4 5.6 36-3.9 41.6-21.2v-.1c24.1-75.4 8.9-161.1-47.9-223.9zM729 499c-12.2-3.6-20.5-6.1-14.1-22.1 13.8-34.7 15.2-64.7.3-86-28-40.1-104.8-37.9-192.8-1.1 0 0-27.6 12.1-20.6-9.8 13.5-43.5 11.5-79.9-9.6-101-47.7-47.8-174.6 1.8-283.5 110.6C127.3 471.1 80 557.5 80 632.2 80 775.1 263.2 862 442.5 862c235 0 391.3-136.5 391.3-245 0-65.5-55.2-102.6-104.8-118zM443 810.8c-143 14.1-266.5-50.5-275.8-144.5-9.3-93.9 99.2-181.5 242.2-195.6 143-14.2 266.5 50.5 275.8 144.4C694.4 709 586 796.6 443 810.8z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/whats-app.js b/src/blrec/data/webapp/assets/outline/whats-app.js new file mode 100644 index 0000000..9fb5d1d --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/whats-app.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'whats-app', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M713.5 599.9c-10.9-5.6-65.2-32.2-75.3-35.8-10.1-3.8-17.5-5.6-24.8 5.6-7.4 11.1-28.4 35.8-35 43.3-6.4 7.4-12.9 8.3-23.8 2.8-64.8-32.4-107.3-57.8-150-131.1-11.3-19.5 11.3-18.1 32.4-60.2 3.6-7.4 1.8-13.7-1-19.3-2.8-5.6-24.8-59.8-34-81.9-8.9-21.5-18.1-18.5-24.8-18.9-6.4-.4-13.7-.4-21.1-.4-7.4 0-19.3 2.8-29.4 13.7-10.1 11.1-38.6 37.8-38.6 92s39.5 106.7 44.9 114.1c5.6 7.4 77.7 118.6 188.4 166.5 70 30.2 97.4 32.8 132.4 27.6 21.3-3.2 65.2-26.6 74.3-52.5 9.1-25.8 9.1-47.9 6.4-52.5-2.7-4.9-10.1-7.7-21-13z" /><path d="M925.2 338.4c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/whats-app.svg b/src/blrec/data/webapp/assets/outline/whats-app.svg new file mode 100644 index 0000000..4135486 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/whats-app.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M713.5 599.9c-10.9-5.6-65.2-32.2-75.3-35.8-10.1-3.8-17.5-5.6-24.8 5.6-7.4 11.1-28.4 35.8-35 43.3-6.4 7.4-12.9 8.3-23.8 2.8-64.8-32.4-107.3-57.8-150-131.1-11.3-19.5 11.3-18.1 32.4-60.2 3.6-7.4 1.8-13.7-1-19.3-2.8-5.6-24.8-59.8-34-81.9-8.9-21.5-18.1-18.5-24.8-18.9-6.4-.4-13.7-.4-21.1-.4-7.4 0-19.3 2.8-29.4 13.7-10.1 11.1-38.6 37.8-38.6 92s39.5 106.7 44.9 114.1c5.6 7.4 77.7 118.6 188.4 166.5 70 30.2 97.4 32.8 132.4 27.6 21.3-3.2 65.2-26.6 74.3-52.5 9.1-25.8 9.1-47.9 6.4-52.5-2.7-4.9-10.1-7.7-21-13z" /><path d="M925.2 338.4c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/wifi.js b/src/blrec/data/webapp/assets/outline/wifi.js new file mode 100644 index 0000000..ce35533 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/wifi.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'wifi', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M723 620.5C666.8 571.6 593.4 542 513 542s-153.8 29.6-210.1 78.6a8.1 8.1 0 00-.8 11.2l36 42.9c2.9 3.4 8 3.8 11.4.9C393.1 637.2 450.3 614 513 614s119.9 23.2 163.5 61.5c3.4 2.9 8.5 2.5 11.4-.9l36-42.9c2.8-3.3 2.4-8.3-.9-11.2zm117.4-140.1C751.7 406.5 637.6 362 513 362s-238.7 44.5-327.5 118.4a8.05 8.05 0 00-1 11.3l36 42.9c2.8 3.4 7.9 3.8 11.2 1C308 472.2 406.1 434 513 434s205 38.2 281.2 101.6c3.4 2.8 8.4 2.4 11.2-1l36-42.9c2.8-3.4 2.4-8.5-1-11.3zm116.7-139C835.7 241.8 680.3 182 511 182c-168.2 0-322.6 59-443.7 157.4a8 8 0 00-1.1 11.4l36 42.9c2.8 3.3 7.8 3.8 11.1 1.1C222 306.7 360.3 254 511 254c151.8 0 291 53.5 400 142.7 3.4 2.8 8.4 2.3 11.2-1.1l36-42.9c2.9-3.4 2.4-8.5-1.1-11.3zM448 778a64 64 0 10128 0 64 64 0 10-128 0z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/wifi.svg b/src/blrec/data/webapp/assets/outline/wifi.svg new file mode 100644 index 0000000..2c9bd21 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/wifi.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M723 620.5C666.8 571.6 593.4 542 513 542s-153.8 29.6-210.1 78.6a8.1 8.1 0 00-.8 11.2l36 42.9c2.9 3.4 8 3.8 11.4.9C393.1 637.2 450.3 614 513 614s119.9 23.2 163.5 61.5c3.4 2.9 8.5 2.5 11.4-.9l36-42.9c2.8-3.3 2.4-8.3-.9-11.2zm117.4-140.1C751.7 406.5 637.6 362 513 362s-238.7 44.5-327.5 118.4a8.05 8.05 0 00-1 11.3l36 42.9c2.8 3.4 7.9 3.8 11.2 1C308 472.2 406.1 434 513 434s205 38.2 281.2 101.6c3.4 2.8 8.4 2.4 11.2-1l36-42.9c2.8-3.4 2.4-8.5-1-11.3zm116.7-139C835.7 241.8 680.3 182 511 182c-168.2 0-322.6 59-443.7 157.4a8 8 0 00-1.1 11.4l36 42.9c2.8 3.3 7.8 3.8 11.1 1.1C222 306.7 360.3 254 511 254c151.8 0 291 53.5 400 142.7 3.4 2.8 8.4 2.3 11.2-1.1l36-42.9c2.9-3.4 2.4-8.5-1.1-11.3zM448 778a64 64 0 10128 0 64 64 0 10-128 0z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/windows.js b/src/blrec/data/webapp/assets/outline/windows.js new file mode 100644 index 0000000..54a483a --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/windows.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'windows', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M120.1 770.6L443 823.2V543.8H120.1v226.8zm63.4-163.5h196.2v141.6l-196.2-31.9V607.1zm340.3 226.5l382 62.2v-352h-382v289.8zm63.4-226.5h255.3v214.4l-255.3-41.6V607.1zm-63.4-415.7v288.8h382V128.1l-382 63.3zm318.7 225.5H587.3V245l255.3-42.3v214.2zm-722.4 63.3H443V201.9l-322.9 53.5v224.8zM183.5 309l196.2-32.5v140.4H183.5V309z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/windows.svg b/src/blrec/data/webapp/assets/outline/windows.svg new file mode 100644 index 0000000..f0f6659 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/windows.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M120.1 770.6L443 823.2V543.8H120.1v226.8zm63.4-163.5h196.2v141.6l-196.2-31.9V607.1zm340.3 226.5l382 62.2v-352h-382v289.8zm63.4-226.5h255.3v214.4l-255.3-41.6V607.1zm-63.4-415.7v288.8h382V128.1l-382 63.3zm318.7 225.5H587.3V245l255.3-42.3v214.2zm-722.4 63.3H443V201.9l-322.9 53.5v224.8zM183.5 309l196.2-32.5v140.4H183.5V309z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/woman.js b/src/blrec/data/webapp/assets/outline/woman.js new file mode 100644 index 0000000..81ff2d3 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/woman.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'woman', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M712.8 548.8c53.6-53.6 83.2-125 83.2-200.8 0-75.9-29.5-147.2-83.2-200.8C659.2 93.6 587.8 64 512 64s-147.2 29.5-200.8 83.2C257.6 200.9 228 272.1 228 348c0 63.8 20.9 124.4 59.4 173.9 7.3 9.4 15.2 18.3 23.7 26.9 8.5 8.5 17.5 16.4 26.8 23.7 39.6 30.8 86.3 50.4 136.1 57V736H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h114v140c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V812h114c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H550V629.5c61.5-8.2 118.2-36.1 162.8-80.7zM512 556c-55.6 0-107.7-21.6-147.1-60.9C325.6 455.8 304 403.6 304 348s21.6-107.7 60.9-147.1C404.2 161.5 456.4 140 512 140s107.7 21.6 147.1 60.9C698.4 240.2 720 292.4 720 348s-21.6 107.7-60.9 147.1C619.7 534.4 567.6 556 512 556z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/woman.svg b/src/blrec/data/webapp/assets/outline/woman.svg new file mode 100644 index 0000000..a0192ec --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/woman.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M712.8 548.8c53.6-53.6 83.2-125 83.2-200.8 0-75.9-29.5-147.2-83.2-200.8C659.2 93.6 587.8 64 512 64s-147.2 29.5-200.8 83.2C257.6 200.9 228 272.1 228 348c0 63.8 20.9 124.4 59.4 173.9 7.3 9.4 15.2 18.3 23.7 26.9 8.5 8.5 17.5 16.4 26.8 23.7 39.6 30.8 86.3 50.4 136.1 57V736H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h114v140c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V812h114c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8H550V629.5c61.5-8.2 118.2-36.1 162.8-80.7zM512 556c-55.6 0-107.7-21.6-147.1-60.9C325.6 455.8 304 403.6 304 348s21.6-107.7 60.9-147.1C404.2 161.5 456.4 140 512 140s107.7 21.6 147.1 60.9C698.4 240.2 720 292.4 720 348s-21.6 107.7-60.9 147.1C619.7 534.4 567.6 556 512 556z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/yahoo.js b/src/blrec/data/webapp/assets/outline/yahoo.js new file mode 100644 index 0000000..4b578dd --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/yahoo.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'yahoo', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M859.9 681.4h-14.1c-27.1 0-49.2 22.2-49.2 49.3v14.1c0 27.1 22.2 49.3 49.2 49.3h14.1c27.1 0 49.2-22.2 49.2-49.3v-14.1c0-27.1-22.2-49.3-49.2-49.3zM402.6 231C216.2 231 65 357 65 512.5S216.2 794 402.6 794s337.6-126 337.6-281.5S589.1 231 402.6 231zm0 507C245.1 738 121 634.6 121 512.5c0-62.3 32.3-119.7 84.9-161v48.4h37l159.8 159.9v65.3h-84.4v56.3h225.1v-56.3H459v-65.3l103.5-103.6h65.3v-56.3H459v65.3l-28.1 28.1-93.4-93.5h37v-56.3H216.4c49.4-35 114.3-56.6 186.2-56.6 157.6 0 281.6 103.4 281.6 225.5S560.2 738 402.6 738zm534.7-507H824.7c-15.5 0-27.7 12.6-27.1 28.1l13.1 366h84.4l65.4-366.4c2.7-15.2-7.8-27.7-23.2-27.7z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/yahoo.svg b/src/blrec/data/webapp/assets/outline/yahoo.svg new file mode 100644 index 0000000..5369381 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/yahoo.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M859.9 681.4h-14.1c-27.1 0-49.2 22.2-49.2 49.3v14.1c0 27.1 22.2 49.3 49.2 49.3h14.1c27.1 0 49.2-22.2 49.2-49.3v-14.1c0-27.1-22.2-49.3-49.2-49.3zM402.6 231C216.2 231 65 357 65 512.5S216.2 794 402.6 794s337.6-126 337.6-281.5S589.1 231 402.6 231zm0 507C245.1 738 121 634.6 121 512.5c0-62.3 32.3-119.7 84.9-161v48.4h37l159.8 159.9v65.3h-84.4v56.3h225.1v-56.3H459v-65.3l103.5-103.6h65.3v-56.3H459v65.3l-28.1 28.1-93.4-93.5h37v-56.3H216.4c49.4-35 114.3-56.6 186.2-56.6 157.6 0 281.6 103.4 281.6 225.5S560.2 738 402.6 738zm534.7-507H824.7c-15.5 0-27.7 12.6-27.1 28.1l13.1 366h84.4l65.4-366.4c2.7-15.2-7.8-27.7-23.2-27.7z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/youtube.js b/src/blrec/data/webapp/assets/outline/youtube.js new file mode 100644 index 0000000..93504c4 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/youtube.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'youtube', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M960 509.2c0-2.2 0-4.7-.1-7.6-.1-8.1-.3-17.2-.5-26.9-.8-27.9-2.2-55.7-4.4-81.9-3-36.1-7.4-66.2-13.4-88.8a139.52 139.52 0 00-98.3-98.5c-28.3-7.6-83.7-12.3-161.7-15.2-37.1-1.4-76.8-2.3-116.5-2.8-13.9-.2-26.8-.3-38.4-.4h-29.4c-11.6.1-24.5.2-38.4.4-39.7.5-79.4 1.4-116.5 2.8-78 3-133.5 7.7-161.7 15.2A139.35 139.35 0 0082.4 304C76.3 326.6 72 356.7 69 392.8c-2.2 26.2-3.6 54-4.4 81.9-.3 9.7-.4 18.8-.5 26.9 0 2.9-.1 5.4-.1 7.6v5.6c0 2.2 0 4.7.1 7.6.1 8.1.3 17.2.5 26.9.8 27.9 2.2 55.7 4.4 81.9 3 36.1 7.4 66.2 13.4 88.8 12.8 47.9 50.4 85.7 98.3 98.5 28.2 7.6 83.7 12.3 161.7 15.2 37.1 1.4 76.8 2.3 116.5 2.8 13.9.2 26.8.3 38.4.4h29.4c11.6-.1 24.5-.2 38.4-.4 39.7-.5 79.4-1.4 116.5-2.8 78-3 133.5-7.7 161.7-15.2 47.9-12.8 85.5-50.5 98.3-98.5 6.1-22.6 10.4-52.7 13.4-88.8 2.2-26.2 3.6-54 4.4-81.9.3-9.7.4-18.8.5-26.9 0-2.9.1-5.4.1-7.6v-5.6zm-72 5.2c0 2.1 0 4.4-.1 7.1-.1 7.8-.3 16.4-.5 25.7-.7 26.6-2.1 53.2-4.2 77.9-2.7 32.2-6.5 58.6-11.2 76.3-6.2 23.1-24.4 41.4-47.4 47.5-21 5.6-73.9 10.1-145.8 12.8-36.4 1.4-75.6 2.3-114.7 2.8-13.7.2-26.4.3-37.8.3h-28.6l-37.8-.3c-39.1-.5-78.2-1.4-114.7-2.8-71.9-2.8-124.9-7.2-145.8-12.8-23-6.2-41.2-24.4-47.4-47.5-4.7-17.7-8.5-44.1-11.2-76.3-2.1-24.7-3.4-51.3-4.2-77.9-.3-9.3-.4-18-.5-25.7 0-2.7-.1-5.1-.1-7.1v-4.8c0-2.1 0-4.4.1-7.1.1-7.8.3-16.4.5-25.7.7-26.6 2.1-53.2 4.2-77.9 2.7-32.2 6.5-58.6 11.2-76.3 6.2-23.1 24.4-41.4 47.4-47.5 21-5.6 73.9-10.1 145.8-12.8 36.4-1.4 75.6-2.3 114.7-2.8 13.7-.2 26.4-.3 37.8-.3h28.6l37.8.3c39.1.5 78.2 1.4 114.7 2.8 71.9 2.8 124.9 7.2 145.8 12.8 23 6.2 41.2 24.4 47.4 47.5 4.7 17.7 8.5 44.1 11.2 76.3 2.1 24.7 3.4 51.3 4.2 77.9.3 9.3.4 18 .5 25.7 0 2.7.1 5.1.1 7.1v4.8zM423 646l232-135-232-133z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/youtube.svg b/src/blrec/data/webapp/assets/outline/youtube.svg new file mode 100644 index 0000000..f4df6ca --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/youtube.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M960 509.2c0-2.2 0-4.7-.1-7.6-.1-8.1-.3-17.2-.5-26.9-.8-27.9-2.2-55.7-4.4-81.9-3-36.1-7.4-66.2-13.4-88.8a139.52 139.52 0 00-98.3-98.5c-28.3-7.6-83.7-12.3-161.7-15.2-37.1-1.4-76.8-2.3-116.5-2.8-13.9-.2-26.8-.3-38.4-.4h-29.4c-11.6.1-24.5.2-38.4.4-39.7.5-79.4 1.4-116.5 2.8-78 3-133.5 7.7-161.7 15.2A139.35 139.35 0 0082.4 304C76.3 326.6 72 356.7 69 392.8c-2.2 26.2-3.6 54-4.4 81.9-.3 9.7-.4 18.8-.5 26.9 0 2.9-.1 5.4-.1 7.6v5.6c0 2.2 0 4.7.1 7.6.1 8.1.3 17.2.5 26.9.8 27.9 2.2 55.7 4.4 81.9 3 36.1 7.4 66.2 13.4 88.8 12.8 47.9 50.4 85.7 98.3 98.5 28.2 7.6 83.7 12.3 161.7 15.2 37.1 1.4 76.8 2.3 116.5 2.8 13.9.2 26.8.3 38.4.4h29.4c11.6-.1 24.5-.2 38.4-.4 39.7-.5 79.4-1.4 116.5-2.8 78-3 133.5-7.7 161.7-15.2 47.9-12.8 85.5-50.5 98.3-98.5 6.1-22.6 10.4-52.7 13.4-88.8 2.2-26.2 3.6-54 4.4-81.9.3-9.7.4-18.8.5-26.9 0-2.9.1-5.4.1-7.6v-5.6zm-72 5.2c0 2.1 0 4.4-.1 7.1-.1 7.8-.3 16.4-.5 25.7-.7 26.6-2.1 53.2-4.2 77.9-2.7 32.2-6.5 58.6-11.2 76.3-6.2 23.1-24.4 41.4-47.4 47.5-21 5.6-73.9 10.1-145.8 12.8-36.4 1.4-75.6 2.3-114.7 2.8-13.7.2-26.4.3-37.8.3h-28.6l-37.8-.3c-39.1-.5-78.2-1.4-114.7-2.8-71.9-2.8-124.9-7.2-145.8-12.8-23-6.2-41.2-24.4-47.4-47.5-4.7-17.7-8.5-44.1-11.2-76.3-2.1-24.7-3.4-51.3-4.2-77.9-.3-9.3-.4-18-.5-25.7 0-2.7-.1-5.1-.1-7.1v-4.8c0-2.1 0-4.4.1-7.1.1-7.8.3-16.4.5-25.7.7-26.6 2.1-53.2 4.2-77.9 2.7-32.2 6.5-58.6 11.2-76.3 6.2-23.1 24.4-41.4 47.4-47.5 21-5.6 73.9-10.1 145.8-12.8 36.4-1.4 75.6-2.3 114.7-2.8 13.7-.2 26.4-.3 37.8-.3h28.6l37.8.3c39.1.5 78.2 1.4 114.7 2.8 71.9 2.8 124.9 7.2 145.8 12.8 23 6.2 41.2 24.4 47.4 47.5 4.7 17.7 8.5 44.1 11.2 76.3 2.1 24.7 3.4 51.3 4.2 77.9.3 9.3.4 18 .5 25.7 0 2.7.1 5.1.1 7.1v4.8zM423 646l232-135-232-133z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/yuque.js b/src/blrec/data/webapp/assets/outline/yuque.js new file mode 100644 index 0000000..6bc41e9 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/yuque.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'yuque', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 370.6c-9.9-39.4 9.9-102.2 73.4-124.4l-67.9-3.6s-25.7-90-143.6-98c-117.8-8.1-194.9-3-195-3 .1 0 87.4 55.6 52.4 154.7-25.6 52.5-65.8 95.6-108.8 144.7-1.3 1.3-2.5 2.6-3.5 3.7C319.4 605 96 860 96 860c245.9 64.4 410.7-6.3 508.2-91.1 20.5-.2 35.9-.3 46.3-.3 135.8 0 250.6-117.6 245.9-248.4-3.2-89.9-31.9-110.2-41.8-149.6zm-204.1 334c-10.6 0-26.2.1-46.8.3l-23.6.2-17.8 15.5c-47.1 41-104.4 71.5-171.4 87.6-52.5 12.6-110 16.2-172.7 9.6 18-20.5 36.5-41.6 55.4-63.1 92-104.6 173.8-197.5 236.9-268.5l1.4-1.4 1.3-1.5c4.1-4.6 20.6-23.3 24.7-28.1 9.7-11.1 17.3-19.9 24.5-28.6 30.7-36.7 52.2-67.8 69-102.2l1.6-3.3 1.2-3.4c13.7-38.8 15.4-76.9 6.2-112.8 22.5.7 46.5 1.9 71.7 3.6 33.3 2.3 55.5 12.9 71.1 29.2 5.8 6 10.2 12.5 13.4 18.7 1 2 1.7 3.6 2.3 5l5 17.7c-15.7 34.5-19.9 73.3-11.4 107.2 3 11.8 6.9 22.4 12.3 34.4 2.1 4.7 9.5 20.1 11 23.3 10.3 22.7 15.4 43 16.7 78.7 3.3 94.6-82.7 181.9-182 181.9z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/yuque.svg b/src/blrec/data/webapp/assets/outline/yuque.svg new file mode 100644 index 0000000..51a33b3 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/yuque.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 370.6c-9.9-39.4 9.9-102.2 73.4-124.4l-67.9-3.6s-25.7-90-143.6-98c-117.8-8.1-194.9-3-195-3 .1 0 87.4 55.6 52.4 154.7-25.6 52.5-65.8 95.6-108.8 144.7-1.3 1.3-2.5 2.6-3.5 3.7C319.4 605 96 860 96 860c245.9 64.4 410.7-6.3 508.2-91.1 20.5-.2 35.9-.3 46.3-.3 135.8 0 250.6-117.6 245.9-248.4-3.2-89.9-31.9-110.2-41.8-149.6zm-204.1 334c-10.6 0-26.2.1-46.8.3l-23.6.2-17.8 15.5c-47.1 41-104.4 71.5-171.4 87.6-52.5 12.6-110 16.2-172.7 9.6 18-20.5 36.5-41.6 55.4-63.1 92-104.6 173.8-197.5 236.9-268.5l1.4-1.4 1.3-1.5c4.1-4.6 20.6-23.3 24.7-28.1 9.7-11.1 17.3-19.9 24.5-28.6 30.7-36.7 52.2-67.8 69-102.2l1.6-3.3 1.2-3.4c13.7-38.8 15.4-76.9 6.2-112.8 22.5.7 46.5 1.9 71.7 3.6 33.3 2.3 55.5 12.9 71.1 29.2 5.8 6 10.2 12.5 13.4 18.7 1 2 1.7 3.6 2.3 5l5 17.7c-15.7 34.5-19.9 73.3-11.4 107.2 3 11.8 6.9 22.4 12.3 34.4 2.1 4.7 9.5 20.1 11 23.3 10.3 22.7 15.4 43 16.7 78.7 3.3 94.6-82.7 181.9-182 181.9z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/zhihu.js b/src/blrec/data/webapp/assets/outline/zhihu.js new file mode 100644 index 0000000..f7af981 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/zhihu.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'zhihu', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M564.7 230.1V803h60l25.2 71.4L756.3 803h131.5V230.1H564.7zm247.7 497h-59.9l-75.1 50.4-17.8-50.4h-18V308.3h170.7v418.8zM526.1 486.9H393.3c2.1-44.9 4.3-104.3 6.6-172.9h130.9l-.1-8.1c0-.6-.2-14.7-2.3-29.1-2.1-15-6.6-34.9-21-34.9H287.8c4.4-20.6 15.7-69.7 29.4-93.8l6.4-11.2-12.9-.7c-.8 0-19.6-.9-41.4 10.6-35.7 19-51.7 56.4-58.7 84.4-18.4 73.1-44.6 123.9-55.7 145.6-3.3 6.4-5.3 10.2-6.2 12.8-1.8 4.9-.8 9.8 2.8 13 10.5 9.5 38.2-2.9 38.5-3 .6-.3 1.3-.6 2.2-1 13.9-6.3 55.1-25 69.8-84.5h56.7c.7 32.2 3.1 138.4 2.9 172.9h-141l-2.1 1.5c-23.1 16.9-30.5 63.2-30.8 65.2l-1.4 9.2h167c-12.3 78.3-26.5 113.4-34 127.4-3.7 7-7.3 14-10.7 20.8-21.3 42.2-43.4 85.8-126.3 153.6-3.6 2.8-7 8-4.8 13.7 2.4 6.3 9.3 9.1 24.6 9.1 5.4 0 11.8-.3 19.4-1 49.9-4.4 100.8-18 135.1-87.6 17-35.1 31.7-71.7 43.9-108.9L497 850l5-12c.8-1.9 19-46.3 5.1-95.9l-.5-1.8-108.1-123-22 16.6c6.4-26.1 10.6-49.9 12.5-71.1h158.7v-8c0-40.1-18.5-63.9-19.2-64.9l-2.4-3z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/zhihu.svg b/src/blrec/data/webapp/assets/outline/zhihu.svg new file mode 100644 index 0000000..58ee815 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/zhihu.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M564.7 230.1V803h60l25.2 71.4L756.3 803h131.5V230.1H564.7zm247.7 497h-59.9l-75.1 50.4-17.8-50.4h-18V308.3h170.7v418.8zM526.1 486.9H393.3c2.1-44.9 4.3-104.3 6.6-172.9h130.9l-.1-8.1c0-.6-.2-14.7-2.3-29.1-2.1-15-6.6-34.9-21-34.9H287.8c4.4-20.6 15.7-69.7 29.4-93.8l6.4-11.2-12.9-.7c-.8 0-19.6-.9-41.4 10.6-35.7 19-51.7 56.4-58.7 84.4-18.4 73.1-44.6 123.9-55.7 145.6-3.3 6.4-5.3 10.2-6.2 12.8-1.8 4.9-.8 9.8 2.8 13 10.5 9.5 38.2-2.9 38.5-3 .6-.3 1.3-.6 2.2-1 13.9-6.3 55.1-25 69.8-84.5h56.7c.7 32.2 3.1 138.4 2.9 172.9h-141l-2.1 1.5c-23.1 16.9-30.5 63.2-30.8 65.2l-1.4 9.2h167c-12.3 78.3-26.5 113.4-34 127.4-3.7 7-7.3 14-10.7 20.8-21.3 42.2-43.4 85.8-126.3 153.6-3.6 2.8-7 8-4.8 13.7 2.4 6.3 9.3 9.1 24.6 9.1 5.4 0 11.8-.3 19.4-1 49.9-4.4 100.8-18 135.1-87.6 17-35.1 31.7-71.7 43.9-108.9L497 850l5-12c.8-1.9 19-46.3 5.1-95.9l-.5-1.8-108.1-123-22 16.6c6.4-26.1 10.6-49.9 12.5-71.1h158.7v-8c0-40.1-18.5-63.9-19.2-64.9l-2.4-3z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/zoom-in.js b/src/blrec/data/webapp/assets/outline/zoom-in.js new file mode 100644 index 0000000..66cacb5 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/zoom-in.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'zoom-in', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M637 443H519V309c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v134H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h118v134c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V519h118c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/zoom-in.svg b/src/blrec/data/webapp/assets/outline/zoom-in.svg new file mode 100644 index 0000000..2c8d0e1 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/zoom-in.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M637 443H519V309c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v134H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h118v134c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V519h118c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/zoom-out.js b/src/blrec/data/webapp/assets/outline/zoom-out.js new file mode 100644 index 0000000..ba5d9b6 --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/zoom-out.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'zoom-out', + theme: 'outline', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M637 443H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h312c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/outline/zoom-out.svg b/src/blrec/data/webapp/assets/outline/zoom-out.svg new file mode 100644 index 0000000..33a5b6f --- /dev/null +++ b/src/blrec/data/webapp/assets/outline/zoom-out.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M637 443H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h312c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/.gitkeep b/src/blrec/data/webapp/assets/twotone/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/blrec/data/webapp/assets/twotone/account-book.js b/src/blrec/data/webapp/assets/twotone/account-book.js new file mode 100644 index 0000000..432f972 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/account-book.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'account-book', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v584h656V256H712v48zm-65.6 121.8l-89.3 164.1h49.1c4.4 0 8 3.6 8 8v21.3c0 4.4-3.6 8-8 8h-65.4v33.7h65.4c4.4 0 8 3.6 8 8v21.3c0 4.4-3.6 8-8 8h-65.4V752c0 4.4-3.6 8-8 8h-41.3c-4.4 0-8-3.6-8-8v-53.8h-65.1c-4.4 0-8-3.6-8-8v-21.3c0-4.4 3.6-8 8-8h65.1v-33.7h-65.1c-4.4 0-8-3.6-8-8v-21.3c0-4.4 3.6-8 8-8H467l-89.3-164c-2.1-3.9-.7-8.8 3.2-10.9 1.1-.7 2.5-1 3.8-1h46a8 8 0 017.1 4.4l73.4 145.4h2.8l73.4-145.4c1.3-2.7 4.1-4.4 7.1-4.4h45c4.5 0 8 3.6 7.9 8 0 1.3-.4 2.6-1 3.8z" fill="#E6E6E6" /><path d="M639.5 414h-45c-3 0-5.8 1.7-7.1 4.4L514 563.8h-2.8l-73.4-145.4a8 8 0 00-7.1-4.4h-46c-1.3 0-2.7.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9l89.3 164h-48.6c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1v33.7h-65.1c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1V752c0 4.4 3.6 8 8 8h41.3c4.4 0 8-3.6 8-8v-53.8h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-65.4v-33.7h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-49.1l89.3-164.1c.6-1.2 1-2.5 1-3.8.1-4.4-3.4-8-7.9-8z" fill="#333" /><path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/account-book.svg b/src/blrec/data/webapp/assets/twotone/account-book.svg new file mode 100644 index 0000000..e0a034b --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/account-book.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v584h656V256H712v48zm-65.6 121.8l-89.3 164.1h49.1c4.4 0 8 3.6 8 8v21.3c0 4.4-3.6 8-8 8h-65.4v33.7h65.4c4.4 0 8 3.6 8 8v21.3c0 4.4-3.6 8-8 8h-65.4V752c0 4.4-3.6 8-8 8h-41.3c-4.4 0-8-3.6-8-8v-53.8h-65.1c-4.4 0-8-3.6-8-8v-21.3c0-4.4 3.6-8 8-8h65.1v-33.7h-65.1c-4.4 0-8-3.6-8-8v-21.3c0-4.4 3.6-8 8-8H467l-89.3-164c-2.1-3.9-.7-8.8 3.2-10.9 1.1-.7 2.5-1 3.8-1h46a8 8 0 017.1 4.4l73.4 145.4h2.8l73.4-145.4c1.3-2.7 4.1-4.4 7.1-4.4h45c4.5 0 8 3.6 7.9 8 0 1.3-.4 2.6-1 3.8z" fill="#E6E6E6" /><path d="M639.5 414h-45c-3 0-5.8 1.7-7.1 4.4L514 563.8h-2.8l-73.4-145.4a8 8 0 00-7.1-4.4h-46c-1.3 0-2.7.3-3.8 1-3.9 2.1-5.3 7-3.2 10.9l89.3 164h-48.6c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1v33.7h-65.1c-4.4 0-8 3.6-8 8v21.3c0 4.4 3.6 8 8 8h65.1V752c0 4.4 3.6 8 8 8h41.3c4.4 0 8-3.6 8-8v-53.8h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-65.4v-33.7h65.4c4.4 0 8-3.6 8-8v-21.3c0-4.4-3.6-8-8-8h-49.1l89.3-164.1c.6-1.2 1-2.5 1-3.8.1-4.4-3.4-8-7.9-8z" fill="#333" /><path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/alert.js b/src/blrec/data/webapp/assets/twotone/alert.js new file mode 100644 index 0000000..8b35490 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/alert.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'alert', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M340 585c0-5.5 4.5-10 10-10h44c5.5 0 10 4.5 10 10v171h355V563c0-136.4-110.6-247-247-247S265 426.6 265 563v193h75V585z" fill="#E6E6E6" /><path d="M216.9 310.5l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3l-67.9-67.9a8.03 8.03 0 00-11.3 0l-39.6 39.6a8.03 8.03 0 000 11.3l67.9 67.9c3.1 3.1 8.1 3.1 11.3 0zm669.6-79.2l-39.6-39.6a8.03 8.03 0 00-11.3 0l-67.9 67.9a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l67.9-67.9c3.1-3.2 3.1-8.2 0-11.3zM484 180h56c4.4 0 8-3.6 8-8V76c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v96c0 4.4 3.6 8 8 8zm348 712H192c-17.7 0-32 14.3-32 32v24c0 4.4 3.6 8 8 8h688c4.4 0 8-3.6 8-8v-24c0-17.7-14.3-32-32-32zm-639-96c0 17.7 14.3 32 32 32h574c17.7 0 32-14.3 32-32V563c0-176.2-142.8-319-319-319S193 386.8 193 563v233zm72-233c0-136.4 110.6-247 247-247s247 110.6 247 247v193H404V585c0-5.5-4.5-10-10-10h-44c-5.5 0-10 4.5-10 10v171h-75V563z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/alert.svg b/src/blrec/data/webapp/assets/twotone/alert.svg new file mode 100644 index 0000000..8af886f --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/alert.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M340 585c0-5.5 4.5-10 10-10h44c5.5 0 10 4.5 10 10v171h355V563c0-136.4-110.6-247-247-247S265 426.6 265 563v193h75V585z" fill="#E6E6E6" /><path d="M216.9 310.5l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3l-67.9-67.9a8.03 8.03 0 00-11.3 0l-39.6 39.6a8.03 8.03 0 000 11.3l67.9 67.9c3.1 3.1 8.1 3.1 11.3 0zm669.6-79.2l-39.6-39.6a8.03 8.03 0 00-11.3 0l-67.9 67.9a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l67.9-67.9c3.1-3.2 3.1-8.2 0-11.3zM484 180h56c4.4 0 8-3.6 8-8V76c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v96c0 4.4 3.6 8 8 8zm348 712H192c-17.7 0-32 14.3-32 32v24c0 4.4 3.6 8 8 8h688c4.4 0 8-3.6 8-8v-24c0-17.7-14.3-32-32-32zm-639-96c0 17.7 14.3 32 32 32h574c17.7 0 32-14.3 32-32V563c0-176.2-142.8-319-319-319S193 386.8 193 563v233zm72-233c0-136.4 110.6-247 247-247s247 110.6 247 247v193H404V585c0-5.5-4.5-10-10-10h-44c-5.5 0-10 4.5-10 10v171h-75V563z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/api.js b/src/blrec/data/webapp/assets/twotone/api.js new file mode 100644 index 0000000..1cd6e08 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/api.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'api', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M148.2 674.6zm106.7-92.3c-25 25-38.7 58.1-38.7 93.4s13.8 68.5 38.7 93.4c25 25 58.1 38.7 93.4 38.7 35.3 0 68.5-13.8 93.4-38.7l59.4-59.4-186.8-186.8-59.4 59.4zm420.8-366.1c-35.3 0-68.5 13.8-93.4 38.7l-59.4 59.4 186.8 186.8 59.4-59.4c24.9-25 38.7-58.1 38.7-93.4s-13.8-68.5-38.7-93.4c-25-25-58.1-38.7-93.4-38.7z" fill="#E6E6E6" /><path d="M578.9 546.7a8.03 8.03 0 00-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 00-11.3 0L363 475.3l-43-43a7.85 7.85 0 00-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2a199.45 199.45 0 00-58.6 140.4c-.2 39.5 11.2 79.1 34.3 113.1l-76.1 76.1a8.03 8.03 0 000 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 01-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7-24.9-24.9-38.7-58.1-38.7-93.4s13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4zm476-620.3l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 00-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 000 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7s68.4 13.7 93.4 38.7c24.9 24.9 38.7 58.1 38.7 93.4s-13.8 68.4-38.7 93.4z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/api.svg b/src/blrec/data/webapp/assets/twotone/api.svg new file mode 100644 index 0000000..45f197a --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/api.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M148.2 674.6zm106.7-92.3c-25 25-38.7 58.1-38.7 93.4s13.8 68.5 38.7 93.4c25 25 58.1 38.7 93.4 38.7 35.3 0 68.5-13.8 93.4-38.7l59.4-59.4-186.8-186.8-59.4 59.4zm420.8-366.1c-35.3 0-68.5 13.8-93.4 38.7l-59.4 59.4 186.8 186.8 59.4-59.4c24.9-25 38.7-58.1 38.7-93.4s-13.8-68.5-38.7-93.4c-25-25-58.1-38.7-93.4-38.7z" fill="#E6E6E6" /><path d="M578.9 546.7a8.03 8.03 0 00-11.3 0L501 613.3 410.7 523l66.7-66.7c3.1-3.1 3.1-8.2 0-11.3L441 408.6a8.03 8.03 0 00-11.3 0L363 475.3l-43-43a7.85 7.85 0 00-5.7-2.3c-2 0-4.1.8-5.7 2.3L206.8 534.2a199.45 199.45 0 00-58.6 140.4c-.2 39.5 11.2 79.1 34.3 113.1l-76.1 76.1a8.03 8.03 0 000 11.3l42.4 42.4c1.6 1.6 3.6 2.3 5.7 2.3s4.1-.8 5.7-2.3l76.1-76.1c33.7 22.9 72.9 34.3 112.1 34.3 51.2 0 102.4-19.5 141.5-58.6l101.9-101.9c3.1-3.1 3.1-8.2 0-11.3l-43-43 66.7-66.7c3.1-3.1 3.1-8.2 0-11.3l-36.6-36.2zM441.7 769.1a131.32 131.32 0 01-93.4 38.7c-35.3 0-68.4-13.7-93.4-38.7-24.9-24.9-38.7-58.1-38.7-93.4s13.7-68.4 38.7-93.4l59.4-59.4 186.8 186.8-59.4 59.4zm476-620.3l-42.4-42.4c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-76.1 76.1a199.27 199.27 0 00-112.1-34.3c-51.2 0-102.4 19.5-141.5 58.6L432.3 308.7a8.03 8.03 0 000 11.3L704 591.7c1.6 1.6 3.6 2.3 5.7 2.3 2 0 4.1-.8 5.7-2.3l101.9-101.9c68.9-69 77-175.7 24.3-253.5l76.1-76.1c3.1-3.2 3.1-8.3 0-11.4zM769.1 441.7l-59.4 59.4-186.8-186.8 59.4-59.4c24.9-24.9 58.1-38.7 93.4-38.7s68.4 13.7 93.4 38.7c24.9 24.9 38.7 58.1 38.7 93.4s-13.8 68.4-38.7 93.4z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/appstore.js b/src/blrec/data/webapp/assets/twotone/appstore.js new file mode 100644 index 0000000..3cc5443 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/appstore.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'appstore', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm52-668H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452 132H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z" fill="#333" /><path d="M212 212h200v200H212zm400 0h200v200H612zM212 612h200v200H212zm400 0h200v200H612z" fill="#E6E6E6" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/appstore.svg b/src/blrec/data/webapp/assets/twotone/appstore.svg new file mode 100644 index 0000000..143b7b8 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/appstore.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M864 144H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm52-668H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452 132H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z" fill="#333" /><path d="M212 212h200v200H212zm400 0h200v200H612zM212 612h200v200H212zm400 0h200v200H612z" fill="#E6E6E6" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/audio.js b/src/blrec/data/webapp/assets/twotone/audio.js new file mode 100644 index 0000000..8fc4534 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/audio.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'audio', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 552c54.3 0 98-43.2 98-96V232c0-52.8-43.7-96-98-96s-98 43.2-98 96v224c0 52.8 43.7 96 98 96z" fill="#E6E6E6" /><path d="M842 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1z" fill="#333" /><path d="M512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm-98-392c0-52.8 43.7-96 98-96s98 43.2 98 96v224c0 52.8-43.7 96-98 96s-98-43.2-98-96V232z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/audio.svg b/src/blrec/data/webapp/assets/twotone/audio.svg new file mode 100644 index 0000000..46e6432 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/audio.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 552c54.3 0 98-43.2 98-96V232c0-52.8-43.7-96-98-96s-98 43.2-98 96v224c0 52.8 43.7 96 98 96z" fill="#E6E6E6" /><path d="M842 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 140.3-113.7 254-254 254S258 594.3 258 454c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 168.7 126.6 307.9 290 327.6V884H326.7c-13.7 0-24.7 14.3-24.7 32v36c0 4.4 2.8 8 6.2 8h407.6c3.4 0 6.2-3.6 6.2-8v-36c0-17.7-11-32-24.7-32H548V782.1c165.3-18 294-158 294-328.1z" fill="#333" /><path d="M512 624c93.9 0 170-75.2 170-168V232c0-92.8-76.1-168-170-168s-170 75.2-170 168v224c0 92.8 76.1 168 170 168zm-98-392c0-52.8 43.7-96 98-96s98 43.2 98 96v224c0 52.8-43.7 96-98 96s-98-43.2-98-96V232z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/bank.js b/src/blrec/data/webapp/assets/twotone/bank.js new file mode 100644 index 0000000..965c0fb --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/bank.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'bank', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M240.9 393.9h542.2L512 196.7z" fill="#E6E6E6" /><path d="M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 00-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM381 836H264V462h117v374zm189 0H453V462h117v374zm190 0H642V462h118v374zM240.9 393.9L512 196.7l271.1 197.2H240.9z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/bank.svg b/src/blrec/data/webapp/assets/twotone/bank.svg new file mode 100644 index 0000000..58e0902 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/bank.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M240.9 393.9h542.2L512 196.7z" fill="#E6E6E6" /><path d="M894 462c30.9 0 43.8-39.7 18.7-58L530.8 126.2a31.81 31.81 0 00-37.6 0L111.3 404c-25.1 18.2-12.2 58 18.8 58H192v374h-72c-4.4 0-8 3.6-8 8v52c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-52c0-4.4-3.6-8-8-8h-72V462h62zM381 836H264V462h117v374zm189 0H453V462h117v374zm190 0H642V462h118v374zM240.9 393.9L512 196.7l271.1 197.2H240.9z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/bell.js b/src/blrec/data/webapp/assets/twotone/bell.js new file mode 100644 index 0000000..ca0984c --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/bell.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'bell', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 220c-55.6 0-107.8 21.6-147.1 60.9S304 372.4 304 428v340h416V428c0-55.6-21.6-107.8-60.9-147.1S567.6 220 512 220zm280 208c0-141.1-104.3-257.8-240-277.2v.1c135.7 19.4 240 136 240 277.1zM472 150.9v-.1C336.3 170.2 232 286.9 232 428c0-141.1 104.3-257.7 240-277.1z" fill="#E6E6E6" /><path d="M816 768h-24V428c0-141.1-104.3-257.7-240-277.1V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.9c-135.7 19.4-240 136-240 277.1v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48zm208-120H304V428c0-55.6 21.6-107.8 60.9-147.1S456.4 220 512 220c55.6 0 107.8 21.6 147.1 60.9S720 372.4 720 428v340z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/bell.svg b/src/blrec/data/webapp/assets/twotone/bell.svg new file mode 100644 index 0000000..42469c3 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/bell.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 220c-55.6 0-107.8 21.6-147.1 60.9S304 372.4 304 428v340h416V428c0-55.6-21.6-107.8-60.9-147.1S567.6 220 512 220zm280 208c0-141.1-104.3-257.8-240-277.2v.1c135.7 19.4 240 136 240 277.1zM472 150.9v-.1C336.3 170.2 232 286.9 232 428c0-141.1 104.3-257.7 240-277.1z" fill="#E6E6E6" /><path d="M816 768h-24V428c0-141.1-104.3-257.7-240-277.1V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.9c-135.7 19.4-240 136-240 277.1v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48zm208-120H304V428c0-55.6 21.6-107.8 60.9-147.1S456.4 220 512 220c55.6 0 107.8 21.6 147.1 60.9S720 372.4 720 428v340z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/book.js b/src/blrec/data/webapp/assets/twotone/book.js new file mode 100644 index 0000000..3e84904 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/book.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'book', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-260 72h96v209.9L621.5 312 572 347.4V136zM232 888V136h280v296.9c0 3.3 1 6.6 3 9.3a15.9 15.9 0 0022.3 3.7l83.8-59.9 81.4 59.4c2.7 2 6 3.1 9.4 3.1 8.8 0 16-7.2 16-16V136h64v752H232z" fill="#333" /><path d="M668 345.9V136h-96v211.4l49.5-35.4z" fill="#E6E6E6" /><path d="M727.9 136v296.5c0 8.8-7.2 16-16 16-3.4 0-6.7-1.1-9.4-3.1L621.1 386l-83.8 59.9a15.9 15.9 0 01-22.3-3.7c-2-2.7-3-6-3-9.3V136H232v752h559.9V136h-64z" fill="#E6E6E6" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/book.svg b/src/blrec/data/webapp/assets/twotone/book.svg new file mode 100644 index 0000000..49f1355 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/book.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-260 72h96v209.9L621.5 312 572 347.4V136zM232 888V136h280v296.9c0 3.3 1 6.6 3 9.3a15.9 15.9 0 0022.3 3.7l83.8-59.9 81.4 59.4c2.7 2 6 3.1 9.4 3.1 8.8 0 16-7.2 16-16V136h64v752H232z" fill="#333" /><path d="M668 345.9V136h-96v211.4l49.5-35.4z" fill="#E6E6E6" /><path d="M727.9 136v296.5c0 8.8-7.2 16-16 16-3.4 0-6.7-1.1-9.4-3.1L621.1 386l-83.8 59.9a15.9 15.9 0 01-22.3-3.7c-2-2.7-3-6-3-9.3V136H232v752h559.9V136h-64z" fill="#E6E6E6" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/box-plot.js b/src/blrec/data/webapp/assets/twotone/box-plot.js new file mode 100644 index 0000000..8a22e0b --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/box-plot.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'box-plot', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M296 368h88v288h-88zm152 0h280v288H448z" fill="#E6E6E6" /><path d="M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H232c-4.4 0-8 3.6-8 8v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h560c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zM384 656h-88V368h88v288zm344 0H448V368h280v288z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/box-plot.svg b/src/blrec/data/webapp/assets/twotone/box-plot.svg new file mode 100644 index 0000000..75f494f --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/box-plot.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M296 368h88v288h-88zm152 0h280v288H448z" fill="#E6E6E6" /><path d="M952 224h-52c-4.4 0-8 3.6-8 8v248h-92V304c0-4.4-3.6-8-8-8H232c-4.4 0-8 3.6-8 8v176h-92V232c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V548h92v172c0 4.4 3.6 8 8 8h560c4.4 0 8-3.6 8-8V548h92v244c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zM384 656h-88V368h88v288zm344 0H448V368h280v288z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/bug.js b/src/blrec/data/webapp/assets/twotone/bug.js new file mode 100644 index 0000000..f4e5b03 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/bug.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'bug', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M308 412v268c0 36.78 9.68 71.96 27.8 102.9a205.39 205.39 0 0073.3 73.3A202.68 202.68 0 00512 884c36.78 0 71.96-9.68 102.9-27.8a205.39 205.39 0 0073.3-73.3A202.68 202.68 0 00716 680V412H308zm484 172v96c0 6.5-.22 12.95-.66 19.35C859.94 728.64 908 796.7 908 876a8 8 0 01-8 8h-56a8 8 0 01-8-8c0-44.24-23.94-82.89-59.57-103.7a278.63 278.63 0 01-22.66 49.02 281.39 281.39 0 01-100.45 100.45C611.84 946.07 563.55 960 512 960s-99.84-13.93-141.32-38.23a281.39 281.39 0 01-100.45-100.45 278.63 278.63 0 01-22.66-49.02A119.95 119.95 0 00188 876a8 8 0 01-8 8h-56a8 8 0 01-8-8c0-79.3 48.07-147.36 116.66-176.65A284.12 284.12 0 01232 680v-96H84a8 8 0 01-8-8v-56a8 8 0 018-8h148V412c-76.77 0-139-62.23-139-139a8 8 0 018-8h60a8 8 0 018 8 63 63 0 0063 63h560a63 63 0 0063-63 8 8 0 018-8h60a8 8 0 018 8c0 76.77-62.23 139-139 139v100h148a8 8 0 018 8v56a8 8 0 01-8 8H792zM368 272a8 8 0 01-8 8h-56a8 8 0 01-8-8c0-40.04 8.78-76.75 25.9-108.07a184.57 184.57 0 0174.03-74.03C427.25 72.78 463.96 64 504 64h16c40.04 0 76.75 8.78 108.07 25.9a184.57 184.57 0 0174.03 74.03C719.22 195.25 728 231.96 728 272a8 8 0 01-8 8h-56a8 8 0 01-8-8c0-28.33-5.94-53.15-17.08-73.53a112.56 112.56 0 00-45.39-45.4C573.15 141.95 548.33 136 520 136h-16c-28.33 0-53.15 5.94-73.53 17.08a112.56 112.56 0 00-45.4 45.39C373.95 218.85 368 243.67 368 272z" fill="#333" /><path d="M308 412v268c0 36.78 9.68 71.96 27.8 102.9a205.39 205.39 0 0073.3 73.3A202.68 202.68 0 00512 884c36.78 0 71.96-9.68 102.9-27.8a205.39 205.39 0 0073.3-73.3A202.68 202.68 0 00716 680V412H308z" fill="#E6E6E6" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/bug.svg b/src/blrec/data/webapp/assets/twotone/bug.svg new file mode 100644 index 0000000..e353d80 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/bug.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M308 412v268c0 36.78 9.68 71.96 27.8 102.9a205.39 205.39 0 0073.3 73.3A202.68 202.68 0 00512 884c36.78 0 71.96-9.68 102.9-27.8a205.39 205.39 0 0073.3-73.3A202.68 202.68 0 00716 680V412H308zm484 172v96c0 6.5-.22 12.95-.66 19.35C859.94 728.64 908 796.7 908 876a8 8 0 01-8 8h-56a8 8 0 01-8-8c0-44.24-23.94-82.89-59.57-103.7a278.63 278.63 0 01-22.66 49.02 281.39 281.39 0 01-100.45 100.45C611.84 946.07 563.55 960 512 960s-99.84-13.93-141.32-38.23a281.39 281.39 0 01-100.45-100.45 278.63 278.63 0 01-22.66-49.02A119.95 119.95 0 00188 876a8 8 0 01-8 8h-56a8 8 0 01-8-8c0-79.3 48.07-147.36 116.66-176.65A284.12 284.12 0 01232 680v-96H84a8 8 0 01-8-8v-56a8 8 0 018-8h148V412c-76.77 0-139-62.23-139-139a8 8 0 018-8h60a8 8 0 018 8 63 63 0 0063 63h560a63 63 0 0063-63 8 8 0 018-8h60a8 8 0 018 8c0 76.77-62.23 139-139 139v100h148a8 8 0 018 8v56a8 8 0 01-8 8H792zM368 272a8 8 0 01-8 8h-56a8 8 0 01-8-8c0-40.04 8.78-76.75 25.9-108.07a184.57 184.57 0 0174.03-74.03C427.25 72.78 463.96 64 504 64h16c40.04 0 76.75 8.78 108.07 25.9a184.57 184.57 0 0174.03 74.03C719.22 195.25 728 231.96 728 272a8 8 0 01-8 8h-56a8 8 0 01-8-8c0-28.33-5.94-53.15-17.08-73.53a112.56 112.56 0 00-45.39-45.4C573.15 141.95 548.33 136 520 136h-16c-28.33 0-53.15 5.94-73.53 17.08a112.56 112.56 0 00-45.4 45.39C373.95 218.85 368 243.67 368 272z" fill="#333" /><path d="M308 412v268c0 36.78 9.68 71.96 27.8 102.9a205.39 205.39 0 0073.3 73.3A202.68 202.68 0 00512 884c36.78 0 71.96-9.68 102.9-27.8a205.39 205.39 0 0073.3-73.3A202.68 202.68 0 00716 680V412H308z" fill="#E6E6E6" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/build.js b/src/blrec/data/webapp/assets/twotone/build.js new file mode 100644 index 0000000..11d79ec --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/build.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'build', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M144 546h200v200H144zm268-268h200v200H412z" fill="#E6E6E6" /><path d="M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zM344 746H144V546h200v200zm268 0H412V546h200v200zm0-268H412V278h200v200zm268 0H680V278h200v200z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/build.svg b/src/blrec/data/webapp/assets/twotone/build.svg new file mode 100644 index 0000000..c5f2819 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/build.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M144 546h200v200H144zm268-268h200v200H412z" fill="#E6E6E6" /><path d="M916 210H376c-17.7 0-32 14.3-32 32v236H108c-17.7 0-32 14.3-32 32v272c0 17.7 14.3 32 32 32h540c17.7 0 32-14.3 32-32V546h236c17.7 0 32-14.3 32-32V242c0-17.7-14.3-32-32-32zM344 746H144V546h200v200zm268 0H412V546h200v200zm0-268H412V278h200v200zm268 0H680V278h200v200z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/bulb.js b/src/blrec/data/webapp/assets/twotone/bulb.js new file mode 100644 index 0000000..dc998e3 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/bulb.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'bulb', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 136c-141.4 0-256 114.6-256 256 0 92.5 49.4 176.3 128.1 221.8l35.9 20.8V752h184V634.6l35.9-20.8C718.6 568.3 768 484.5 768 392c0-141.4-114.6-256-256-256z" fill="#E6E6E6" /><path d="M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/bulb.svg b/src/blrec/data/webapp/assets/twotone/bulb.svg new file mode 100644 index 0000000..ee14d26 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/bulb.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 136c-141.4 0-256 114.6-256 256 0 92.5 49.4 176.3 128.1 221.8l35.9 20.8V752h184V634.6l35.9-20.8C718.6 568.3 768 484.5 768 392c0-141.4-114.6-256-256-256z" fill="#E6E6E6" /><path d="M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/calculator.js b/src/blrec/data/webapp/assets/twotone/calculator.js new file mode 100644 index 0000000..d4ec4dc --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/calculator.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'calculator', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm256.2-75h-50.8c-2.2 0-4.5-1.1-5.9-2.9L348 718.6l-35.5 43.5a7.38 7.38 0 01-5.9 2.9h-50.8c-6.6 0-10.2-7.9-5.8-13.1l62.7-76.8-61.2-74.9c-4.3-5.2-.7-13.1 5.9-13.1h50.9c2.2 0 4.5 1.1 5.9 2.9l34 41.6 34-41.6c1.5-1.9 3.6-2.9 5.9-2.9h50.8c6.6 0 10.2 7.9 5.9 13.1L383.5 675l62.7 76.8c4.2 5.3.6 13.2-6 13.2zM576 335c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zm0 265c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zm0 104c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zM248 335c0-2.2 1.4-4 3.2-4H320v-68.8c0-1.8 1.8-3.2 4-3.2h48c2.2 0 4 1.4 4 3.2V331h68.7c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H376v68.7c0 1.9-1.8 3.3-4 3.3h-48c-2.2 0-4-1.4-4-3.2V387h-68.8c-1.8 0-3.2-1.8-3.2-4v-48z" fill="#E6E6E6" /><path d="M383.5 675l61.3-74.8c4.3-5.2.7-13.1-5.9-13.1h-50.8c-2.3 0-4.4 1-5.9 2.9l-34 41.6-34-41.6a7.69 7.69 0 00-5.9-2.9h-50.9c-6.6 0-10.2 7.9-5.9 13.1l61.2 74.9-62.7 76.8c-4.4 5.2-.8 13.1 5.8 13.1h50.8c2.3 0 4.4-1 5.9-2.9l35.5-43.5 35.5 43.5c1.4 1.8 3.7 2.9 5.9 2.9h50.8c6.6 0 10.2-7.9 6-13.2L383.5 675zM251.2 387H320v68.8c0 1.8 1.8 3.2 4 3.2h48c2.2 0 4-1.4 4-3.3V387h68.8c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H376v-68.8c0-1.8-1.8-3.2-4-3.2h-48c-2.2 0-4 1.4-4 3.2V331h-68.8c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm328 369h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0-104h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0-265h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/calculator.svg b/src/blrec/data/webapp/assets/twotone/calculator.svg new file mode 100644 index 0000000..e50b220 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/calculator.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm256.2-75h-50.8c-2.2 0-4.5-1.1-5.9-2.9L348 718.6l-35.5 43.5a7.38 7.38 0 01-5.9 2.9h-50.8c-6.6 0-10.2-7.9-5.8-13.1l62.7-76.8-61.2-74.9c-4.3-5.2-.7-13.1 5.9-13.1h50.9c2.2 0 4.5 1.1 5.9 2.9l34 41.6 34-41.6c1.5-1.9 3.6-2.9 5.9-2.9h50.8c6.6 0 10.2 7.9 5.9 13.1L383.5 675l62.7 76.8c4.2 5.3.6 13.2-6 13.2zM576 335c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zm0 265c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zm0 104c0-2.2 1.4-4 3.2-4h193.5c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H579.2c-1.8 0-3.2-1.8-3.2-4v-48zM248 335c0-2.2 1.4-4 3.2-4H320v-68.8c0-1.8 1.8-3.2 4-3.2h48c2.2 0 4 1.4 4 3.2V331h68.7c1.9 0 3.3 1.8 3.3 4v48c0 2.2-1.4 4-3.2 4H376v68.7c0 1.9-1.8 3.3-4 3.3h-48c-2.2 0-4-1.4-4-3.2V387h-68.8c-1.8 0-3.2-1.8-3.2-4v-48z" fill="#E6E6E6" /><path d="M383.5 675l61.3-74.8c4.3-5.2.7-13.1-5.9-13.1h-50.8c-2.3 0-4.4 1-5.9 2.9l-34 41.6-34-41.6a7.69 7.69 0 00-5.9-2.9h-50.9c-6.6 0-10.2 7.9-5.9 13.1l61.2 74.9-62.7 76.8c-4.4 5.2-.8 13.1 5.8 13.1h50.8c2.3 0 4.4-1 5.9-2.9l35.5-43.5 35.5 43.5c1.4 1.8 3.7 2.9 5.9 2.9h50.8c6.6 0 10.2-7.9 6-13.2L383.5 675zM251.2 387H320v68.8c0 1.8 1.8 3.2 4 3.2h48c2.2 0 4-1.4 4-3.3V387h68.8c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H376v-68.8c0-1.8-1.8-3.2-4-3.2h-48c-2.2 0-4 1.4-4 3.2V331h-68.8c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm328 369h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0-104h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4zm0-265h193.6c1.8 0 3.2-1.8 3.2-4v-48c0-2.2-1.4-4-3.3-4H579.2c-1.8 0-3.2 1.8-3.2 4v48c0 2.2 1.4 4 3.2 4z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/calendar.js b/src/blrec/data/webapp/assets/twotone/calendar.js new file mode 100644 index 0000000..b3bc28d --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/calendar.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'calendar', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v136h656V256H712v48z" fill="#E6E6E6" /><path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zm0-448H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/calendar.svg b/src/blrec/data/webapp/assets/twotone/calendar.svg new file mode 100644 index 0000000..2ae94c9 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/calendar.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v136h656V256H712v48z" fill="#E6E6E6" /><path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zm0-448H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/camera.js b/src/blrec/data/webapp/assets/twotone/camera.js new file mode 100644 index 0000000..fc63614 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/camera.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'camera', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M864 320H677.2l-17.1-47.8-22.9-64.2H386.7l-22.9 64.2-17.1 47.8H160c-4.4 0-8 3.6-8 8v456c0 4.4 3.6 8 8 8h704c4.4 0 8-3.6 8-8V328c0-4.4-3.6-8-8-8zM512 704c-88.4 0-160-71.6-160-160s71.6-160 160-160 160 71.6 160 160-71.6 160-160 160z" fill="#E6E6E6" /><path d="M512 384c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zm0 256c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z" fill="#333" /><path d="M864 248H728l-32.4-90.8a32.07 32.07 0 00-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 248H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V328c0-44.2-35.8-80-80-80zm8 536c0 4.4-3.6 8-8 8H160c-4.4 0-8-3.6-8-8V328c0-4.4 3.6-8 8-8h186.7l17.1-47.8 22.9-64.2h250.5l22.9 64.2 17.1 47.8H864c4.4 0 8 3.6 8 8v456z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/camera.svg b/src/blrec/data/webapp/assets/twotone/camera.svg new file mode 100644 index 0000000..c6a2f4d --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/camera.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M864 320H677.2l-17.1-47.8-22.9-64.2H386.7l-22.9 64.2-17.1 47.8H160c-4.4 0-8 3.6-8 8v456c0 4.4 3.6 8 8 8h704c4.4 0 8-3.6 8-8V328c0-4.4-3.6-8-8-8zM512 704c-88.4 0-160-71.6-160-160s71.6-160 160-160 160 71.6 160 160-71.6 160-160 160z" fill="#E6E6E6" /><path d="M512 384c-88.4 0-160 71.6-160 160s71.6 160 160 160 160-71.6 160-160-71.6-160-160-160zm0 256c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z" fill="#333" /><path d="M864 248H728l-32.4-90.8a32.07 32.07 0 00-30.2-21.2H358.6c-13.5 0-25.6 8.5-30.1 21.2L296 248H160c-44.2 0-80 35.8-80 80v456c0 44.2 35.8 80 80 80h704c44.2 0 80-35.8 80-80V328c0-44.2-35.8-80-80-80zm8 536c0 4.4-3.6 8-8 8H160c-4.4 0-8-3.6-8-8V328c0-4.4 3.6-8 8-8h186.7l17.1-47.8 22.9-64.2h250.5l22.9 64.2 17.1 47.8H864c4.4 0 8 3.6 8 8v456z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/car.js b/src/blrec/data/webapp/assets/twotone/car.js new file mode 100644 index 0000000..9d21ea0 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/car.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'car', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M199.6 474L184 517v237h656V517l-15.6-43H199.6zM264 621c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm388 75c0 4.4-3.6 8-8 8H380c-4.4 0-8-3.6-8-8v-84c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v36h168v-36c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v84zm108-75c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z" fill="#E6E6E6" /><path d="M720 581a40 40 0 1080 0 40 40 0 10-80 0z" fill="#333" /><path d="M959 413.4L935.3 372a8 8 0 00-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 00-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 00-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 003-10.8zM292.7 218.1l.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220l72.7-199.9zM840 754H184V517l15.6-43h624.8l15.6 43v237z" fill="#333" /><path d="M224 581a40 40 0 1080 0 40 40 0 10-80 0zm420 23h-40c-4.4 0-8 3.6-8 8v36H428v-36c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v84c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-84c0-4.4-3.6-8-8-8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/car.svg b/src/blrec/data/webapp/assets/twotone/car.svg new file mode 100644 index 0000000..50bbc72 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/car.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M199.6 474L184 517v237h656V517l-15.6-43H199.6zM264 621c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm388 75c0 4.4-3.6 8-8 8H380c-4.4 0-8-3.6-8-8v-84c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v36h168v-36c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v84zm108-75c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z" fill="#E6E6E6" /><path d="M720 581a40 40 0 1080 0 40 40 0 10-80 0z" fill="#333" /><path d="M959 413.4L935.3 372a8 8 0 00-10.9-2.9l-50.7 29.6-78.3-216.2a63.9 63.9 0 00-60.9-44.4H301.2c-34.7 0-65.5 22.4-76.2 55.5l-74.6 205.2-50.8-29.6a8 8 0 00-10.9 2.9L65 413.4c-2.2 3.8-.9 8.6 2.9 10.8l60.4 35.2-14.5 40c-1.2 3.2-1.8 6.6-1.8 10v348.2c0 15.7 11.8 28.4 26.3 28.4h67.6c12.3 0 23-9.3 25.6-22.3l7.7-37.7h545.6l7.7 37.7c2.7 13 13.3 22.3 25.6 22.3h67.6c14.5 0 26.3-12.7 26.3-28.4V509.4c0-3.4-.6-6.8-1.8-10l-14.5-40 60.3-35.2a8 8 0 003-10.8zM292.7 218.1l.5-1.3.4-1.3c1.1-3.3 4.1-5.5 7.6-5.5h427.6l75.4 208H220l72.7-199.9zM840 754H184V517l15.6-43h624.8l15.6 43v237z" fill="#333" /><path d="M224 581a40 40 0 1080 0 40 40 0 10-80 0zm420 23h-40c-4.4 0-8 3.6-8 8v36H428v-36c0-4.4-3.6-8-8-8h-40c-4.4 0-8 3.6-8 8v84c0 4.4 3.6 8 8 8h264c4.4 0 8-3.6 8-8v-84c0-4.4-3.6-8-8-8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/carry-out.js b/src/blrec/data/webapp/assets/twotone/carry-out.js new file mode 100644 index 0000000..876b27d --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/carry-out.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'carry-out', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584z" fill="#333" /><path d="M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v584h656V256H712v48zm-17.5 128.8L481.9 725.5a16.1 16.1 0 01-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.2 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.9-6.6 13-6.6H688c6.5 0 10.3 7.4 6.5 12.8z" fill="#E6E6E6" /><path d="M688 420h-55.2c-5.1 0-10 2.5-13 6.6L468.9 634.4l-64.7-89c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0026 0l212.6-292.7c3.8-5.4 0-12.8-6.5-12.8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/carry-out.svg b/src/blrec/data/webapp/assets/twotone/carry-out.svg new file mode 100644 index 0000000..5a39b14 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/carry-out.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v584z" fill="#333" /><path d="M712 304c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H384v48c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-48H184v584h656V256H712v48zm-17.5 128.8L481.9 725.5a16.1 16.1 0 01-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.2 0 10 2.5 13 6.6l64.7 89 150.9-207.8c3-4.1 7.9-6.6 13-6.6H688c6.5 0 10.3 7.4 6.5 12.8z" fill="#E6E6E6" /><path d="M688 420h-55.2c-5.1 0-10 2.5-13 6.6L468.9 634.4l-64.7-89c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0026 0l212.6-292.7c3.8-5.4 0-12.8-6.5-12.8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/check-circle.js b/src/blrec/data/webapp/assets/twotone/check-circle.js new file mode 100644 index 0000000..4ea721c --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/check-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'check-circle', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm193.4 225.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.3 0 19.9 5 25.9 13.3l71.2 98.8 157.2-218c6-8.4 15.7-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.4 12.7z" fill="#E6E6E6" /><path d="M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/check-circle.svg b/src/blrec/data/webapp/assets/twotone/check-circle.svg new file mode 100644 index 0000000..bf2c635 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/check-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm193.4 225.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.3 0 19.9 5 25.9 13.3l71.2 98.8 157.2-218c6-8.4 15.7-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.4 12.7z" fill="#E6E6E6" /><path d="M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/check-square.js b/src/blrec/data/webapp/assets/twotone/check-square.js new file mode 100644 index 0000000..fe77514 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/check-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'check-square', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm130-367.8h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H688c6.5 0 10.3 7.4 6.5 12.7l-210.6 292a31.8 31.8 0 01-51.7 0L307.5 484.9c-3.8-5.3 0-12.7 6.5-12.7z" fill="#E6E6E6" /><path d="M432.2 657.7a31.8 31.8 0 0051.7 0l210.6-292c3.8-5.3 0-12.7-6.5-12.7h-46.9c-10.3 0-19.9 5-25.9 13.3L458 584.3l-71.2-98.8c-6-8.4-15.7-13.3-25.9-13.3H314c-6.5 0-10.3 7.4-6.5 12.7l124.7 172.8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/check-square.svg b/src/blrec/data/webapp/assets/twotone/check-square.svg new file mode 100644 index 0000000..bc4d0b6 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/check-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm130-367.8h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H688c6.5 0 10.3 7.4 6.5 12.7l-210.6 292a31.8 31.8 0 01-51.7 0L307.5 484.9c-3.8-5.3 0-12.7 6.5-12.7z" fill="#E6E6E6" /><path d="M432.2 657.7a31.8 31.8 0 0051.7 0l210.6-292c3.8-5.3 0-12.7-6.5-12.7h-46.9c-10.3 0-19.9 5-25.9 13.3L458 584.3l-71.2-98.8c-6-8.4-15.7-13.3-25.9-13.3H314c-6.5 0-10.3 7.4-6.5 12.7l124.7 172.8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/ci-circle.js b/src/blrec/data/webapp/assets/twotone/ci-circle.js new file mode 100644 index 0000000..822e5de --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/ci-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'ci-circle', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-63.5 522.8c49.3 0 82.8-29.4 87-72.4.4-4.1 3.8-7.3 8-7.3h52.7c2.4 0 4.4 2 4.4 4.4 0 77.4-64.3 132.5-152.3 132.5C345.4 720 286 651.4 286 537.4v-49C286 373.5 345.4 304 448.3 304c88.3 0 152.3 56.9 152.3 138.1 0 2.4-2 4.4-4.4 4.4h-52.6c-4.2 0-7.6-3.2-8-7.4-3.9-46.1-37.5-77.6-87-77.6-61.1 0-95.6 45.4-95.7 126.8v49.3c0 80.3 34.5 125.2 95.6 125.2zM738 704.1c0 4.4-3.6 8-8 8h-50.4c-4.4 0-8-3.6-8-8V319.9c0-4.4 3.6-8 8-8H730c4.4 0 8 3.6 8 8v384.2z" fill="#E6E6E6" /><path d="M730 311.9h-50.4c-4.4 0-8 3.6-8 8v384.2c0 4.4 3.6 8 8 8H730c4.4 0 8-3.6 8-8V319.9c0-4.4-3.6-8-8-8zm-281.4 49.6c49.5 0 83.1 31.5 87 77.6.4 4.2 3.8 7.4 8 7.4h52.6c2.4 0 4.4-2 4.4-4.4 0-81.2-64-138.1-152.3-138.1C345.4 304 286 373.5 286 488.4v49c0 114 59.4 182.6 162.3 182.6 88 0 152.3-55.1 152.3-132.5 0-2.4-2-4.4-4.4-4.4h-52.7c-4.2 0-7.6 3.2-8 7.3-4.2 43-37.7 72.4-87 72.4-61.1 0-95.6-44.9-95.6-125.2v-49.3c.1-81.4 34.6-126.8 95.7-126.8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/ci-circle.svg b/src/blrec/data/webapp/assets/twotone/ci-circle.svg new file mode 100644 index 0000000..3465be4 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/ci-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-63.5 522.8c49.3 0 82.8-29.4 87-72.4.4-4.1 3.8-7.3 8-7.3h52.7c2.4 0 4.4 2 4.4 4.4 0 77.4-64.3 132.5-152.3 132.5C345.4 720 286 651.4 286 537.4v-49C286 373.5 345.4 304 448.3 304c88.3 0 152.3 56.9 152.3 138.1 0 2.4-2 4.4-4.4 4.4h-52.6c-4.2 0-7.6-3.2-8-7.4-3.9-46.1-37.5-77.6-87-77.6-61.1 0-95.6 45.4-95.7 126.8v49.3c0 80.3 34.5 125.2 95.6 125.2zM738 704.1c0 4.4-3.6 8-8 8h-50.4c-4.4 0-8-3.6-8-8V319.9c0-4.4 3.6-8 8-8H730c4.4 0 8 3.6 8 8v384.2z" fill="#E6E6E6" /><path d="M730 311.9h-50.4c-4.4 0-8 3.6-8 8v384.2c0 4.4 3.6 8 8 8H730c4.4 0 8-3.6 8-8V319.9c0-4.4-3.6-8-8-8zm-281.4 49.6c49.5 0 83.1 31.5 87 77.6.4 4.2 3.8 7.4 8 7.4h52.6c2.4 0 4.4-2 4.4-4.4 0-81.2-64-138.1-152.3-138.1C345.4 304 286 373.5 286 488.4v49c0 114 59.4 182.6 162.3 182.6 88 0 152.3-55.1 152.3-132.5 0-2.4-2-4.4-4.4-4.4h-52.7c-4.2 0-7.6 3.2-8 7.3-4.2 43-37.7 72.4-87 72.4-61.1 0-95.6-44.9-95.6-125.2v-49.3c.1-81.4 34.6-126.8 95.7-126.8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/ci.js b/src/blrec/data/webapp/assets/twotone/ci.js new file mode 100644 index 0000000..738bb46 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/ci.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'ci', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-63.5 522.8c49.3 0 82.8-29.4 87-72.4.4-4.1 3.8-7.3 8-7.3h52.7c2.4 0 4.4 2 4.4 4.4 0 77.4-64.3 132.5-152.3 132.5C345.4 720 286 651.4 286 537.4v-49C286 373.5 345.4 304 448.3 304c88.3 0 152.3 56.9 152.3 138.1 0 2.4-2 4.4-4.4 4.4h-52.6c-4.2 0-7.6-3.2-8-7.4-3.9-46.1-37.5-77.6-87-77.6-61.1 0-95.6 45.4-95.7 126.8v49.3c0 80.3 34.5 125.2 95.6 125.2zM738 704.1c0 4.4-3.6 8-8 8h-50.4c-4.4 0-8-3.6-8-8V319.9c0-4.4 3.6-8 8-8H730c4.4 0 8 3.6 8 8v384.2z" fill="#E6E6E6" /><path d="M730 311.9h-50.4c-4.4 0-8 3.6-8 8v384.2c0 4.4 3.6 8 8 8H730c4.4 0 8-3.6 8-8V319.9c0-4.4-3.6-8-8-8zm-281.4 49.6c49.5 0 83.1 31.5 87 77.6.4 4.2 3.8 7.4 8 7.4h52.6c2.4 0 4.4-2 4.4-4.4 0-81.2-64-138.1-152.3-138.1C345.4 304 286 373.5 286 488.4v49c0 114 59.4 182.6 162.3 182.6 88 0 152.3-55.1 152.3-132.5 0-2.4-2-4.4-4.4-4.4h-52.7c-4.2 0-7.6 3.2-8 7.3-4.2 43-37.7 72.4-87 72.4-61.1 0-95.6-44.9-95.6-125.2v-49.3c.1-81.4 34.6-126.8 95.7-126.8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/ci.svg b/src/blrec/data/webapp/assets/twotone/ci.svg new file mode 100644 index 0000000..3465be4 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/ci.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-63.5 522.8c49.3 0 82.8-29.4 87-72.4.4-4.1 3.8-7.3 8-7.3h52.7c2.4 0 4.4 2 4.4 4.4 0 77.4-64.3 132.5-152.3 132.5C345.4 720 286 651.4 286 537.4v-49C286 373.5 345.4 304 448.3 304c88.3 0 152.3 56.9 152.3 138.1 0 2.4-2 4.4-4.4 4.4h-52.6c-4.2 0-7.6-3.2-8-7.4-3.9-46.1-37.5-77.6-87-77.6-61.1 0-95.6 45.4-95.7 126.8v49.3c0 80.3 34.5 125.2 95.6 125.2zM738 704.1c0 4.4-3.6 8-8 8h-50.4c-4.4 0-8-3.6-8-8V319.9c0-4.4 3.6-8 8-8H730c4.4 0 8 3.6 8 8v384.2z" fill="#E6E6E6" /><path d="M730 311.9h-50.4c-4.4 0-8 3.6-8 8v384.2c0 4.4 3.6 8 8 8H730c4.4 0 8-3.6 8-8V319.9c0-4.4-3.6-8-8-8zm-281.4 49.6c49.5 0 83.1 31.5 87 77.6.4 4.2 3.8 7.4 8 7.4h52.6c2.4 0 4.4-2 4.4-4.4 0-81.2-64-138.1-152.3-138.1C345.4 304 286 373.5 286 488.4v49c0 114 59.4 182.6 162.3 182.6 88 0 152.3-55.1 152.3-132.5 0-2.4-2-4.4-4.4-4.4h-52.7c-4.2 0-7.6 3.2-8 7.3-4.2 43-37.7 72.4-87 72.4-61.1 0-95.6-44.9-95.6-125.2v-49.3c.1-81.4 34.6-126.8 95.7-126.8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/clock-circle.js b/src/blrec/data/webapp/assets/twotone/clock-circle.js new file mode 100644 index 0000000..dfc91ba --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/clock-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'clock-circle', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm176.5 509.7l-28.6 39a7.99 7.99 0 01-11.2 1.7L483.3 569.8a7.92 7.92 0 01-3.3-6.5V288c0-4.4 3.6-8 8-8h48.1c4.4 0 8 3.6 8 8v247.5l142.6 103.1c3.6 2.5 4.4 7.5 1.8 11.1z" fill="#E6E6E6" /><path d="M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.6-3.6 1.8-8.6-1.8-11.1z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/clock-circle.svg b/src/blrec/data/webapp/assets/twotone/clock-circle.svg new file mode 100644 index 0000000..8958069 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/clock-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm176.5 509.7l-28.6 39a7.99 7.99 0 01-11.2 1.7L483.3 569.8a7.92 7.92 0 01-3.3-6.5V288c0-4.4 3.6-8 8-8h48.1c4.4 0 8 3.6 8 8v247.5l142.6 103.1c3.6 2.5 4.4 7.5 1.8 11.1z" fill="#E6E6E6" /><path d="M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.3c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.9 11.2-1.7l28.6-39c2.6-3.6 1.8-8.6-1.8-11.1z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/close-circle.js b/src/blrec/data/webapp/assets/twotone/close-circle.js new file mode 100644 index 0000000..e5738e6 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/close-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'close-circle', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm171.8 527.1c1.2 1.5 1.9 3.3 1.9 5.2 0 4.5-3.6 8-8 8l-66-.3-99.3-118.4-99.3 118.5-66.1.3c-4.4 0-8-3.6-8-8 0-1.9.7-3.7 1.9-5.2L471 512.3l-130.1-155a8.32 8.32 0 01-1.9-5.2c0-4.5 3.6-8 8-8l66.1.3 99.3 118.4 99.4-118.5 66-.3c4.4 0 8 3.6 8 8 0 1.9-.6 3.8-1.8 5.2l-130.1 155 129.9 154.9z" fill="#E6E6E6" /><path d="M685.8 352c0-4.4-3.6-8-8-8l-66 .3-99.4 118.5-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155-130.1 154.9a8.32 8.32 0 00-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3 99.3-118.5L611.7 680l66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.9 512.2l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/close-circle.svg b/src/blrec/data/webapp/assets/twotone/close-circle.svg new file mode 100644 index 0000000..492008a --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/close-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm171.8 527.1c1.2 1.5 1.9 3.3 1.9 5.2 0 4.5-3.6 8-8 8l-66-.3-99.3-118.4-99.3 118.5-66.1.3c-4.4 0-8-3.6-8-8 0-1.9.7-3.7 1.9-5.2L471 512.3l-130.1-155a8.32 8.32 0 01-1.9-5.2c0-4.5 3.6-8 8-8l66.1.3 99.3 118.4 99.4-118.5 66-.3c4.4 0 8 3.6 8 8 0 1.9-.6 3.8-1.8 5.2l-130.1 155 129.9 154.9z" fill="#E6E6E6" /><path d="M685.8 352c0-4.4-3.6-8-8-8l-66 .3-99.4 118.5-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155-130.1 154.9a8.32 8.32 0 00-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3 99.3-118.5L611.7 680l66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.9 512.2l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/close-square.js b/src/blrec/data/webapp/assets/twotone/close-square.js new file mode 100644 index 0000000..60252cd --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/close-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'close-square', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm163.9-473.9A7.95 7.95 0 01354 353h58.9c4.7 0 9.2 2.1 12.3 5.7L512 462.2l86.8-103.5c3-3.6 7.5-5.7 12.3-5.7H670c6.8 0 10.5 7.9 6.1 13.1L553.8 512l122.3 145.9c4.4 5.2.7 13.1-6.1 13.1h-58.9c-4.7 0-9.2-2.1-12.3-5.7L512 561.8l-86.8 103.5c-3 3.6-7.5 5.7-12.3 5.7H354c-6.8 0-10.5-7.9-6.1-13.1L470.2 512 347.9 366.1z" fill="#E6E6E6" /><path d="M354 671h58.9c4.8 0 9.3-2.1 12.3-5.7L512 561.8l86.8 103.5c3.1 3.6 7.6 5.7 12.3 5.7H670c6.8 0 10.5-7.9 6.1-13.1L553.8 512l122.3-145.9c4.4-5.2.7-13.1-6.1-13.1h-58.9c-4.8 0-9.3 2.1-12.3 5.7L512 462.2l-86.8-103.5c-3.1-3.6-7.6-5.7-12.3-5.7H354c-6.8 0-10.5 7.9-6.1 13.1L470.2 512 347.9 657.9A7.95 7.95 0 00354 671z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/close-square.svg b/src/blrec/data/webapp/assets/twotone/close-square.svg new file mode 100644 index 0000000..0da9121 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/close-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm163.9-473.9A7.95 7.95 0 01354 353h58.9c4.7 0 9.2 2.1 12.3 5.7L512 462.2l86.8-103.5c3-3.6 7.5-5.7 12.3-5.7H670c6.8 0 10.5 7.9 6.1 13.1L553.8 512l122.3 145.9c4.4 5.2.7 13.1-6.1 13.1h-58.9c-4.7 0-9.2-2.1-12.3-5.7L512 561.8l-86.8 103.5c-3 3.6-7.5 5.7-12.3 5.7H354c-6.8 0-10.5-7.9-6.1-13.1L470.2 512 347.9 366.1z" fill="#E6E6E6" /><path d="M354 671h58.9c4.8 0 9.3-2.1 12.3-5.7L512 561.8l86.8 103.5c3.1 3.6 7.6 5.7 12.3 5.7H670c6.8 0 10.5-7.9 6.1-13.1L553.8 512l122.3-145.9c4.4-5.2.7-13.1-6.1-13.1h-58.9c-4.8 0-9.3 2.1-12.3 5.7L512 462.2l-86.8-103.5c-3.1-3.6-7.6-5.7-12.3-5.7H354c-6.8 0-10.5 7.9-6.1 13.1L470.2 512 347.9 657.9A7.95 7.95 0 00354 671z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/cloud.js b/src/blrec/data/webapp/assets/twotone/cloud.js new file mode 100644 index 0000000..154686f --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/cloud.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'cloud', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M791.9 492l-37.8-10-13.8-36.5c-8.6-22.7-20.6-44.1-35.7-63.4a245.73 245.73 0 00-52.4-49.9c-41.1-28.9-89.5-44.2-140-44.2s-98.9 15.3-140 44.2a245.6 245.6 0 00-52.4 49.9 240.47 240.47 0 00-35.7 63.4l-13.9 36.6-37.9 9.9a125.7 125.7 0 00-66.1 43.7A123.1 123.1 0 00140 612c0 33.1 12.9 64.3 36.3 87.7 23.4 23.4 54.5 36.3 87.6 36.3h496.2c33.1 0 64.2-12.9 87.6-36.3A123.3 123.3 0 00884 612c0-56.2-37.8-105.5-92.1-120z" fill="#E6E6E6" /><path d="M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3zm36.3 281a123.07 123.07 0 01-87.6 36.3H263.9c-33.1 0-64.2-12.9-87.6-36.3A123.3 123.3 0 01140 612c0-28 9.1-54.3 26.2-76.3a125.7 125.7 0 0166.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0152.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10c54.3 14.5 92.1 63.8 92.1 120 0 33.1-12.9 64.3-36.3 87.7z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/cloud.svg b/src/blrec/data/webapp/assets/twotone/cloud.svg new file mode 100644 index 0000000..51982bf --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/cloud.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M791.9 492l-37.8-10-13.8-36.5c-8.6-22.7-20.6-44.1-35.7-63.4a245.73 245.73 0 00-52.4-49.9c-41.1-28.9-89.5-44.2-140-44.2s-98.9 15.3-140 44.2a245.6 245.6 0 00-52.4 49.9 240.47 240.47 0 00-35.7 63.4l-13.9 36.6-37.9 9.9a125.7 125.7 0 00-66.1 43.7A123.1 123.1 0 00140 612c0 33.1 12.9 64.3 36.3 87.7 23.4 23.4 54.5 36.3 87.6 36.3h496.2c33.1 0 64.2-12.9 87.6-36.3A123.3 123.3 0 00884 612c0-56.2-37.8-105.5-92.1-120z" fill="#E6E6E6" /><path d="M811.4 418.7C765.6 297.9 648.9 212 512.2 212S258.8 297.8 213 418.6C127.3 441.1 64 519.1 64 612c0 110.5 89.5 200 199.9 200h496.2C870.5 812 960 722.5 960 612c0-92.7-63.1-170.7-148.6-193.3zm36.3 281a123.07 123.07 0 01-87.6 36.3H263.9c-33.1 0-64.2-12.9-87.6-36.3A123.3 123.3 0 01140 612c0-28 9.1-54.3 26.2-76.3a125.7 125.7 0 0166.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0152.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10c54.3 14.5 92.1 63.8 92.1 120 0 33.1-12.9 64.3-36.3 87.7z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/code.js b/src/blrec/data/webapp/assets/twotone/code.js new file mode 100644 index 0000000..905706f --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/code.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'code', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm339.5-223h185c4.1 0 7.5 3.6 7.5 8v48c0 4.4-3.4 8-7.5 8h-185c-4.1 0-7.5-3.6-7.5-8v-48c0-4.4 3.4-8 7.5-8zM308 610.3c0-2.3 1.1-4.6 2.9-6.1L420.7 512l-109.8-92.2a7.63 7.63 0 01-2.9-6.1V351c0-6.8 7.9-10.5 13.1-6.1l192 160.9c3.9 3.2 3.9 9.1 0 12.3l-192 161c-5.2 4.4-13.1.7-13.1-6.1v-62.7z" fill="#E6E6E6" /><path d="M321.1 679.1l192-161c3.9-3.2 3.9-9.1 0-12.3l-192-160.9A7.95 7.95 0 00308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 00-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/code.svg b/src/blrec/data/webapp/assets/twotone/code.svg new file mode 100644 index 0000000..080f1dc --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/code.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm339.5-223h185c4.1 0 7.5 3.6 7.5 8v48c0 4.4-3.4 8-7.5 8h-185c-4.1 0-7.5-3.6-7.5-8v-48c0-4.4 3.4-8 7.5-8zM308 610.3c0-2.3 1.1-4.6 2.9-6.1L420.7 512l-109.8-92.2a7.63 7.63 0 01-2.9-6.1V351c0-6.8 7.9-10.5 13.1-6.1l192 160.9c3.9 3.2 3.9 9.1 0 12.3l-192 161c-5.2 4.4-13.1.7-13.1-6.1v-62.7z" fill="#E6E6E6" /><path d="M321.1 679.1l192-161c3.9-3.2 3.9-9.1 0-12.3l-192-160.9A7.95 7.95 0 00308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 00-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/compass.js b/src/blrec/data/webapp/assets/twotone/compass.js new file mode 100644 index 0000000..026ba64 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/compass.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'compass', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM327.6 701.7c-2 .9-4.4 0-5.3-2.1-.4-1-.4-2.2 0-3.2L421 470.9 553.1 603l-225.5 98.7zm375.1-375.1L604 552.1 471.9 420l225.5-98.7c2-.9 4.4 0 5.3 2.1.4 1 .4 2.1 0 3.2z" fill="#E6E6E6" /><path d="M322.3 696.4c-.4 1-.4 2.2 0 3.2.9 2.1 3.3 3 5.3 2.1L553.1 603 421 470.9l-98.7 225.5zm375.1-375.1L471.9 420 604 552.1l98.7-225.5c.4-1.1.4-2.2 0-3.2-.9-2.1-3.3-3-5.3-2.1z" fill="#333" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/compass.svg b/src/blrec/data/webapp/assets/twotone/compass.svg new file mode 100644 index 0000000..1507515 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/compass.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM327.6 701.7c-2 .9-4.4 0-5.3-2.1-.4-1-.4-2.2 0-3.2L421 470.9 553.1 603l-225.5 98.7zm375.1-375.1L604 552.1 471.9 420l225.5-98.7c2-.9 4.4 0 5.3 2.1.4 1 .4 2.1 0 3.2z" fill="#E6E6E6" /><path d="M322.3 696.4c-.4 1-.4 2.2 0 3.2.9 2.1 3.3 3 5.3 2.1L553.1 603 421 470.9l-98.7 225.5zm375.1-375.1L471.9 420 604 552.1l98.7-225.5c.4-1.1.4-2.2 0-3.2-.9-2.1-3.3-3-5.3-2.1z" fill="#333" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/contacts.js b/src/blrec/data/webapp/assets/twotone/contacts.js new file mode 100644 index 0000000..9ade7c1 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/contacts.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'contacts', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M460.3 526a51.7 52 0 10103.4 0 51.7 52 0 10-103.4 0z" fill="#E6E6E6" /><path d="M768 352c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H548v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H328v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H136v496h752V296H768v56zM661 736h-43.8c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 39.9-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5h-43.9a8 8 0 01-8-8.4c2.8-53.3 31.9-99.6 74.6-126.1-18.1-20-29.1-46.4-29.1-75.5 0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.6-29.1 75.5 42.7 26.4 71.9 72.8 74.7 126.1a8 8 0 01-8 8.4z" fill="#E6E6E6" /><path d="M594.3 601.5a111.8 111.8 0 0029.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 00-74.6 126.1 8 8 0 008 8.4H407c4.2 0 7.6-3.3 7.9-7.5 3.8-50.6 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H661a8 8 0 008-8.4c-2.8-53.3-32-99.7-74.7-126.1zM512 578c-28.5 0-51.7-23.3-51.7-52s23.2-52 51.7-52 51.7 23.3 51.7 52-23.2 52-51.7 52z" fill="#333" /><path d="M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/contacts.svg b/src/blrec/data/webapp/assets/twotone/contacts.svg new file mode 100644 index 0000000..47ad01c --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/contacts.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M460.3 526a51.7 52 0 10103.4 0 51.7 52 0 10-103.4 0z" fill="#E6E6E6" /><path d="M768 352c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H548v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H328v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H136v496h752V296H768v56zM661 736h-43.8c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 39.9-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5h-43.9a8 8 0 01-8-8.4c2.8-53.3 31.9-99.6 74.6-126.1-18.1-20-29.1-46.4-29.1-75.5 0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.6-29.1 75.5 42.7 26.4 71.9 72.8 74.7 126.1a8 8 0 01-8 8.4z" fill="#E6E6E6" /><path d="M594.3 601.5a111.8 111.8 0 0029.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 00-74.6 126.1 8 8 0 008 8.4H407c4.2 0 7.6-3.3 7.9-7.5 3.8-50.6 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H661a8 8 0 008-8.4c-2.8-53.3-32-99.7-74.7-126.1zM512 578c-28.5 0-51.7-23.3-51.7-52s23.2-52 51.7-52 51.7 23.3 51.7 52-23.2 52-51.7 52z" fill="#333" /><path d="M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/container.js b/src/blrec/data/webapp/assets/twotone/container.js new file mode 100644 index 0000000..339035f --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/container.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'container', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M635 771.7c-34.5 28.6-78.2 44.3-123 44.3s-88.5-15.8-123-44.3a194.02 194.02 0 01-59.1-84.7H232v201h560V687h-97.9c-11.6 32.8-32 62.3-59.1 84.7z" fill="#E6E6E6" /><path d="M320 501h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" fill="#333" /><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V687h97.9c11.6 32.8 32 62.3 59.1 84.7 34.5 28.5 78.2 44.3 123 44.3s88.5-15.7 123-44.3c27.1-22.4 47.5-51.9 59.1-84.7H792v201zm0-264H643.6l-5.2 24.7C626.4 708.5 573.2 752 512 752s-114.4-43.5-126.5-103.3l-5.2-24.7H232V136h560v488z" fill="#333" /><path d="M320 341h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/container.svg b/src/blrec/data/webapp/assets/twotone/container.svg new file mode 100644 index 0000000..c44af96 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/container.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M635 771.7c-34.5 28.6-78.2 44.3-123 44.3s-88.5-15.8-123-44.3a194.02 194.02 0 01-59.1-84.7H232v201h560V687h-97.9c-11.6 32.8-32 62.3-59.1 84.7z" fill="#E6E6E6" /><path d="M320 501h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" fill="#333" /><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V687h97.9c11.6 32.8 32 62.3 59.1 84.7 34.5 28.5 78.2 44.3 123 44.3s88.5-15.7 123-44.3c27.1-22.4 47.5-51.9 59.1-84.7H792v201zm0-264H643.6l-5.2 24.7C626.4 708.5 573.2 752 512 752s-114.4-43.5-126.5-103.3l-5.2-24.7H232V136h560v488z" fill="#333" /><path d="M320 341h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/control.js b/src/blrec/data/webapp/assets/twotone/control.js new file mode 100644 index 0000000..a2be448 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/control.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'control', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M616 440a36 36 0 1072 0 36 36 0 10-72 0zM340.4 601.5l1.5 2.4c0 .1.1.1.1.2l.9 1.2c.1.1.2.2.2.3 1 1.3 2 2.5 3.2 3.6l.2.2c.4.4.8.8 1.2 1.1.8.8 1.7 1.5 2.6 2.1h.1l1.2.9c.1.1.3.2.4.3 1.2.8 2.5 1.6 3.9 2.2.2.1.5.2.7.4.4.2.7.3 1.1.5.3.1.7.3 1 .4.5.2 1 .4 1.5.5.4.1.9.3 1.3.4l.9.3 1.4.3c.2.1.5.1.7.2.7.1 1.4.3 2.1.4.2 0 .4 0 .6.1.6.1 1.1.1 1.7.2.2 0 .4 0 .7.1.8 0 1.5.1 2.3.1s1.5 0 2.3-.1c.2 0 .4 0 .7-.1.6 0 1.2-.1 1.7-.2.2 0 .4 0 .6-.1.7-.1 1.4-.2 2.1-.4.2-.1.5-.1.7-.2l1.4-.3.9-.3c.4-.1.9-.3 1.3-.4.5-.2 1-.4 1.5-.5.3-.1.7-.3 1-.4.4-.2.7-.3 1.1-.5.2-.1.5-.2.7-.4 1.3-.7 2.6-1.4 3.9-2.2.1-.1.3-.2.4-.3l1.2-.9h.1c.9-.7 1.8-1.4 2.6-2.1.4-.4.8-.7 1.2-1.1l.2-.2c1.1-1.1 2.2-2.4 3.2-3.6.1-.1.2-.2.2-.3l.9-1.2c0-.1.1-.1.1-.2l1.5-2.4c.1-.2.2-.3.3-.5 2.7-5.1 4.3-10.9 4.3-17s-1.6-12-4.3-17c-.1-.2-.2-.4-.3-.5l-1.5-2.4c0-.1-.1-.1-.1-.2l-.9-1.2c-.1-.1-.2-.2-.2-.3-1-1.3-2-2.5-3.2-3.6l-.2-.2c-.4-.4-.8-.8-1.2-1.1-.8-.8-1.7-1.5-2.6-2.1h-.1l-1.2-.9c-.1-.1-.3-.2-.4-.3-1.2-.8-2.5-1.6-3.9-2.2-.2-.1-.5-.2-.7-.4-.4-.2-.7-.3-1.1-.5-.3-.1-.7-.3-1-.4-.5-.2-1-.4-1.5-.5-.4-.1-.9-.3-1.3-.4l-.9-.3-1.4-.3c-.2-.1-.5-.1-.7-.2-.7-.1-1.4-.3-2.1-.4-.2 0-.4 0-.6-.1-.6-.1-1.1-.1-1.7-.2-.2 0-.4 0-.7-.1-.8 0-1.5-.1-2.3-.1s-1.5 0-2.3.1c-.2 0-.4 0-.7.1-.6 0-1.2.1-1.7.2-.2 0-.4 0-.6.1-.7.1-1.4.2-2.1.4-.2.1-.5.1-.7.2l-1.4.3-.9.3c-.4.1-.9.3-1.3.4-.5.2-1 .4-1.5.5-.3.1-.7.3-1 .4-.4.2-.7.3-1.1.5-.2.1-.5.2-.7.4-1.3.7-2.6 1.4-3.9 2.2-.1.1-.3.2-.4.3l-1.2.9h-.1c-.9.7-1.8 1.4-2.6 2.1-.4.4-.8.7-1.2 1.1l-.2.2a54.8 54.8 0 00-3.2 3.6c-.1.1-.2.2-.2.3l-.9 1.2c0 .1-.1.1-.1.2l-1.5 2.4c-.1.2-.2.3-.3.5-2.7 5.1-4.3 10.9-4.3 17s1.6 12 4.3 17c.1.2.2.3.3.5z" fill="#E6E6E6" /><path d="M184 840h656V184H184v656zm436.4-499.1c-.2 0-.3.1-.4.1v-77c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v77c-.2 0-.3-.1-.4-.1 42 13.4 72.4 52.7 72.4 99.1 0 46.4-30.4 85.7-72.4 99.1.2 0 .3-.1.4-.1v221c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V539c.2 0 .3.1.4.1-42-13.4-72.4-52.7-72.4-99.1 0-46.4 30.4-85.7 72.4-99.1zM340 485V264c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v221c41.7 13.6 72 52.8 72 99s-30.3 85.5-72 99v77c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-77c-41.7-13.6-72-52.8-72-99s30.3-85.5 72-99z" fill="#E6E6E6" /><path d="M340 683v77c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-77c41.7-13.5 72-52.8 72-99s-30.3-85.4-72-99V264c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v221c-41.7 13.5-72 52.8-72 99s30.3 85.4 72 99zm.1-116c.1-.2.2-.3.3-.5l1.5-2.4c0-.1.1-.1.1-.2l.9-1.2c0-.1.1-.2.2-.3 1-1.2 2.1-2.5 3.2-3.6l.2-.2c.4-.4.8-.7 1.2-1.1.8-.7 1.7-1.4 2.6-2.1h.1l1.2-.9c.1-.1.3-.2.4-.3 1.3-.8 2.6-1.5 3.9-2.2.2-.2.5-.3.7-.4.4-.2.7-.3 1.1-.5.3-.1.7-.3 1-.4.5-.1 1-.3 1.5-.5.4-.1.9-.3 1.3-.4l.9-.3 1.4-.3c.2-.1.5-.1.7-.2.7-.2 1.4-.3 2.1-.4.2-.1.4-.1.6-.1.5-.1 1.1-.2 1.7-.2.3-.1.5-.1.7-.1.8-.1 1.5-.1 2.3-.1s1.5.1 2.3.1c.3.1.5.1.7.1.6.1 1.1.1 1.7.2.2.1.4.1.6.1.7.1 1.4.3 2.1.4.2.1.5.1.7.2l1.4.3.9.3c.4.1.9.3 1.3.4.5.1 1 .3 1.5.5.3.1.7.3 1 .4.4.2.7.3 1.1.5.2.2.5.3.7.4 1.4.6 2.7 1.4 3.9 2.2.1.1.3.2.4.3l1.2.9h.1c.9.6 1.8 1.3 2.6 2.1.4.3.8.7 1.2 1.1l.2.2c1.2 1.1 2.2 2.3 3.2 3.6 0 .1.1.2.2.3l.9 1.2c0 .1.1.1.1.2l1.5 2.4A36.03 36.03 0 01408 584c0 6.1-1.6 11.9-4.3 17-.1.2-.2.3-.3.5l-1.5 2.4c0 .1-.1.1-.1.2l-.9 1.2c0 .1-.1.2-.2.3-1 1.2-2.1 2.5-3.2 3.6l-.2.2c-.4.4-.8.7-1.2 1.1-.8.7-1.7 1.4-2.6 2.1h-.1l-1.2.9c-.1.1-.3.2-.4.3-1.3.8-2.6 1.5-3.9 2.2-.2.2-.5.3-.7.4-.4.2-.7.3-1.1.5-.3.1-.7.3-1 .4-.5.1-1 .3-1.5.5-.4.1-.9.3-1.3.4l-.9.3-1.4.3c-.2.1-.5.1-.7.2-.7.2-1.4.3-2.1.4-.2.1-.4.1-.6.1-.5.1-1.1.2-1.7.2-.3.1-.5.1-.7.1-.8.1-1.5.1-2.3.1s-1.5-.1-2.3-.1c-.3-.1-.5-.1-.7-.1-.6-.1-1.1-.1-1.7-.2-.2-.1-.4-.1-.6-.1-.7-.1-1.4-.3-2.1-.4-.2-.1-.5-.1-.7-.2l-1.4-.3-.9-.3c-.4-.1-.9-.3-1.3-.4-.5-.1-1-.3-1.5-.5-.3-.1-.7-.3-1-.4-.4-.2-.7-.3-1.1-.5-.2-.2-.5-.3-.7-.4-1.4-.6-2.7-1.4-3.9-2.2-.1-.1-.3-.2-.4-.3l-1.2-.9h-.1c-.9-.6-1.8-1.3-2.6-2.1-.4-.3-.8-.7-1.2-1.1l-.2-.2c-1.2-1.1-2.2-2.3-3.2-3.6 0-.1-.1-.2-.2-.3l-.9-1.2c0-.1-.1-.1-.1-.2l-1.5-2.4c-.1-.2-.2-.3-.3-.5-2.7-5-4.3-10.9-4.3-17s1.6-11.9 4.3-17zm280.3-27.9c-.1 0-.2-.1-.4-.1v221c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V539c-.1 0-.2.1-.4.1 42-13.4 72.4-52.7 72.4-99.1 0-46.4-30.4-85.7-72.4-99.1.1 0 .2.1.4.1v-77c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v77c.1 0 .2-.1.4-.1-42 13.4-72.4 52.7-72.4 99.1 0 46.4 30.4 85.7 72.4 99.1zM652 404c19.9 0 36 16.1 36 36s-16.1 36-36 36-36-16.1-36-36 16.1-36 36-36z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/control.svg b/src/blrec/data/webapp/assets/twotone/control.svg new file mode 100644 index 0000000..6052b18 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/control.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M616 440a36 36 0 1072 0 36 36 0 10-72 0zM340.4 601.5l1.5 2.4c0 .1.1.1.1.2l.9 1.2c.1.1.2.2.2.3 1 1.3 2 2.5 3.2 3.6l.2.2c.4.4.8.8 1.2 1.1.8.8 1.7 1.5 2.6 2.1h.1l1.2.9c.1.1.3.2.4.3 1.2.8 2.5 1.6 3.9 2.2.2.1.5.2.7.4.4.2.7.3 1.1.5.3.1.7.3 1 .4.5.2 1 .4 1.5.5.4.1.9.3 1.3.4l.9.3 1.4.3c.2.1.5.1.7.2.7.1 1.4.3 2.1.4.2 0 .4 0 .6.1.6.1 1.1.1 1.7.2.2 0 .4 0 .7.1.8 0 1.5.1 2.3.1s1.5 0 2.3-.1c.2 0 .4 0 .7-.1.6 0 1.2-.1 1.7-.2.2 0 .4 0 .6-.1.7-.1 1.4-.2 2.1-.4.2-.1.5-.1.7-.2l1.4-.3.9-.3c.4-.1.9-.3 1.3-.4.5-.2 1-.4 1.5-.5.3-.1.7-.3 1-.4.4-.2.7-.3 1.1-.5.2-.1.5-.2.7-.4 1.3-.7 2.6-1.4 3.9-2.2.1-.1.3-.2.4-.3l1.2-.9h.1c.9-.7 1.8-1.4 2.6-2.1.4-.4.8-.7 1.2-1.1l.2-.2c1.1-1.1 2.2-2.4 3.2-3.6.1-.1.2-.2.2-.3l.9-1.2c0-.1.1-.1.1-.2l1.5-2.4c.1-.2.2-.3.3-.5 2.7-5.1 4.3-10.9 4.3-17s-1.6-12-4.3-17c-.1-.2-.2-.4-.3-.5l-1.5-2.4c0-.1-.1-.1-.1-.2l-.9-1.2c-.1-.1-.2-.2-.2-.3-1-1.3-2-2.5-3.2-3.6l-.2-.2c-.4-.4-.8-.8-1.2-1.1-.8-.8-1.7-1.5-2.6-2.1h-.1l-1.2-.9c-.1-.1-.3-.2-.4-.3-1.2-.8-2.5-1.6-3.9-2.2-.2-.1-.5-.2-.7-.4-.4-.2-.7-.3-1.1-.5-.3-.1-.7-.3-1-.4-.5-.2-1-.4-1.5-.5-.4-.1-.9-.3-1.3-.4l-.9-.3-1.4-.3c-.2-.1-.5-.1-.7-.2-.7-.1-1.4-.3-2.1-.4-.2 0-.4 0-.6-.1-.6-.1-1.1-.1-1.7-.2-.2 0-.4 0-.7-.1-.8 0-1.5-.1-2.3-.1s-1.5 0-2.3.1c-.2 0-.4 0-.7.1-.6 0-1.2.1-1.7.2-.2 0-.4 0-.6.1-.7.1-1.4.2-2.1.4-.2.1-.5.1-.7.2l-1.4.3-.9.3c-.4.1-.9.3-1.3.4-.5.2-1 .4-1.5.5-.3.1-.7.3-1 .4-.4.2-.7.3-1.1.5-.2.1-.5.2-.7.4-1.3.7-2.6 1.4-3.9 2.2-.1.1-.3.2-.4.3l-1.2.9h-.1c-.9.7-1.8 1.4-2.6 2.1-.4.4-.8.7-1.2 1.1l-.2.2a54.8 54.8 0 00-3.2 3.6c-.1.1-.2.2-.2.3l-.9 1.2c0 .1-.1.1-.1.2l-1.5 2.4c-.1.2-.2.3-.3.5-2.7 5.1-4.3 10.9-4.3 17s1.6 12 4.3 17c.1.2.2.3.3.5z" fill="#E6E6E6" /><path d="M184 840h656V184H184v656zm436.4-499.1c-.2 0-.3.1-.4.1v-77c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v77c-.2 0-.3-.1-.4-.1 42 13.4 72.4 52.7 72.4 99.1 0 46.4-30.4 85.7-72.4 99.1.2 0 .3-.1.4-.1v221c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V539c.2 0 .3.1.4.1-42-13.4-72.4-52.7-72.4-99.1 0-46.4 30.4-85.7 72.4-99.1zM340 485V264c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v221c41.7 13.6 72 52.8 72 99s-30.3 85.5-72 99v77c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-77c-41.7-13.6-72-52.8-72-99s30.3-85.5 72-99z" fill="#E6E6E6" /><path d="M340 683v77c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-77c41.7-13.5 72-52.8 72-99s-30.3-85.4-72-99V264c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v221c-41.7 13.5-72 52.8-72 99s30.3 85.4 72 99zm.1-116c.1-.2.2-.3.3-.5l1.5-2.4c0-.1.1-.1.1-.2l.9-1.2c0-.1.1-.2.2-.3 1-1.2 2.1-2.5 3.2-3.6l.2-.2c.4-.4.8-.7 1.2-1.1.8-.7 1.7-1.4 2.6-2.1h.1l1.2-.9c.1-.1.3-.2.4-.3 1.3-.8 2.6-1.5 3.9-2.2.2-.2.5-.3.7-.4.4-.2.7-.3 1.1-.5.3-.1.7-.3 1-.4.5-.1 1-.3 1.5-.5.4-.1.9-.3 1.3-.4l.9-.3 1.4-.3c.2-.1.5-.1.7-.2.7-.2 1.4-.3 2.1-.4.2-.1.4-.1.6-.1.5-.1 1.1-.2 1.7-.2.3-.1.5-.1.7-.1.8-.1 1.5-.1 2.3-.1s1.5.1 2.3.1c.3.1.5.1.7.1.6.1 1.1.1 1.7.2.2.1.4.1.6.1.7.1 1.4.3 2.1.4.2.1.5.1.7.2l1.4.3.9.3c.4.1.9.3 1.3.4.5.1 1 .3 1.5.5.3.1.7.3 1 .4.4.2.7.3 1.1.5.2.2.5.3.7.4 1.4.6 2.7 1.4 3.9 2.2.1.1.3.2.4.3l1.2.9h.1c.9.6 1.8 1.3 2.6 2.1.4.3.8.7 1.2 1.1l.2.2c1.2 1.1 2.2 2.3 3.2 3.6 0 .1.1.2.2.3l.9 1.2c0 .1.1.1.1.2l1.5 2.4A36.03 36.03 0 01408 584c0 6.1-1.6 11.9-4.3 17-.1.2-.2.3-.3.5l-1.5 2.4c0 .1-.1.1-.1.2l-.9 1.2c0 .1-.1.2-.2.3-1 1.2-2.1 2.5-3.2 3.6l-.2.2c-.4.4-.8.7-1.2 1.1-.8.7-1.7 1.4-2.6 2.1h-.1l-1.2.9c-.1.1-.3.2-.4.3-1.3.8-2.6 1.5-3.9 2.2-.2.2-.5.3-.7.4-.4.2-.7.3-1.1.5-.3.1-.7.3-1 .4-.5.1-1 .3-1.5.5-.4.1-.9.3-1.3.4l-.9.3-1.4.3c-.2.1-.5.1-.7.2-.7.2-1.4.3-2.1.4-.2.1-.4.1-.6.1-.5.1-1.1.2-1.7.2-.3.1-.5.1-.7.1-.8.1-1.5.1-2.3.1s-1.5-.1-2.3-.1c-.3-.1-.5-.1-.7-.1-.6-.1-1.1-.1-1.7-.2-.2-.1-.4-.1-.6-.1-.7-.1-1.4-.3-2.1-.4-.2-.1-.5-.1-.7-.2l-1.4-.3-.9-.3c-.4-.1-.9-.3-1.3-.4-.5-.1-1-.3-1.5-.5-.3-.1-.7-.3-1-.4-.4-.2-.7-.3-1.1-.5-.2-.2-.5-.3-.7-.4-1.4-.6-2.7-1.4-3.9-2.2-.1-.1-.3-.2-.4-.3l-1.2-.9h-.1c-.9-.6-1.8-1.3-2.6-2.1-.4-.3-.8-.7-1.2-1.1l-.2-.2c-1.2-1.1-2.2-2.3-3.2-3.6 0-.1-.1-.2-.2-.3l-.9-1.2c0-.1-.1-.1-.1-.2l-1.5-2.4c-.1-.2-.2-.3-.3-.5-2.7-5-4.3-10.9-4.3-17s1.6-11.9 4.3-17zm280.3-27.9c-.1 0-.2-.1-.4-.1v221c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V539c-.1 0-.2.1-.4.1 42-13.4 72.4-52.7 72.4-99.1 0-46.4-30.4-85.7-72.4-99.1.1 0 .2.1.4.1v-77c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v77c.1 0 .2-.1.4-.1-42 13.4-72.4 52.7-72.4 99.1 0 46.4 30.4 85.7 72.4 99.1zM652 404c19.9 0 36 16.1 36 36s-16.1 36-36 36-36-16.1-36-36 16.1-36 36-36z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/copy.js b/src/blrec/data/webapp/assets/twotone/copy.js new file mode 100644 index 0000000..721cdfb --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/copy.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'copy', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M232 706h142c22.1 0 40 17.9 40 40v142h250V264H232v442z" fill="#E6E6E6" /><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32z" fill="#333" /><path d="M704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/copy.svg b/src/blrec/data/webapp/assets/twotone/copy.svg new file mode 100644 index 0000000..e204461 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/copy.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M232 706h142c22.1 0 40 17.9 40 40v142h250V264H232v442z" fill="#E6E6E6" /><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32z" fill="#333" /><path d="M704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/copyright-circle.js b/src/blrec/data/webapp/assets/twotone/copyright-circle.js new file mode 100644 index 0000000..547910f --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/copyright-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'copyright-circle', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm5.5 533c52.9 0 88.8-31.7 93-77.8.4-4.1 3.8-7.3 8-7.3h56.8c2.6 0 4.7 2.1 4.7 4.7 0 82.6-68.7 141.4-162.7 141.4C407.4 734 344 660.8 344 539.1v-52.3C344 364.2 407.4 290 517.3 290c94.3 0 162.7 60.7 162.7 147.4 0 2.6-2.1 4.7-4.7 4.7h-56.7c-4.2 0-7.7-3.2-8-7.4-4-49.6-40-83.4-93-83.4-65.2 0-102.1 48.5-102.2 135.5v52.6c0 85.7 36.8 133.6 102.1 133.6z" fill="#E6E6E6" /><path d="M517.6 351.3c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/copyright-circle.svg b/src/blrec/data/webapp/assets/twotone/copyright-circle.svg new file mode 100644 index 0000000..c2a1750 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/copyright-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm5.5 533c52.9 0 88.8-31.7 93-77.8.4-4.1 3.8-7.3 8-7.3h56.8c2.6 0 4.7 2.1 4.7 4.7 0 82.6-68.7 141.4-162.7 141.4C407.4 734 344 660.8 344 539.1v-52.3C344 364.2 407.4 290 517.3 290c94.3 0 162.7 60.7 162.7 147.4 0 2.6-2.1 4.7-4.7 4.7h-56.7c-4.2 0-7.7-3.2-8-7.4-4-49.6-40-83.4-93-83.4-65.2 0-102.1 48.5-102.2 135.5v52.6c0 85.7 36.8 133.6 102.1 133.6z" fill="#E6E6E6" /><path d="M517.6 351.3c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/copyright.js b/src/blrec/data/webapp/assets/twotone/copyright.js new file mode 100644 index 0000000..3a31b6d --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/copyright.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'copyright', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm5.5 533c52.9 0 88.8-31.7 93-77.8.4-4.1 3.8-7.3 8-7.3h56.8c2.6 0 4.7 2.1 4.7 4.7 0 82.6-68.7 141.4-162.7 141.4C407.4 734 344 660.8 344 539.1v-52.3C344 364.2 407.4 290 517.3 290c94.3 0 162.7 60.7 162.7 147.4 0 2.6-2.1 4.7-4.7 4.7h-56.7c-4.2 0-7.7-3.2-8-7.4-4-49.6-40-83.4-93-83.4-65.2 0-102.1 48.5-102.2 135.5v52.6c0 85.7 36.8 133.6 102.1 133.6z" fill="#E6E6E6" /><path d="M517.6 351.3c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/copyright.svg b/src/blrec/data/webapp/assets/twotone/copyright.svg new file mode 100644 index 0000000..c2a1750 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/copyright.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm5.5 533c52.9 0 88.8-31.7 93-77.8.4-4.1 3.8-7.3 8-7.3h56.8c2.6 0 4.7 2.1 4.7 4.7 0 82.6-68.7 141.4-162.7 141.4C407.4 734 344 660.8 344 539.1v-52.3C344 364.2 407.4 290 517.3 290c94.3 0 162.7 60.7 162.7 147.4 0 2.6-2.1 4.7-4.7 4.7h-56.7c-4.2 0-7.7-3.2-8-7.4-4-49.6-40-83.4-93-83.4-65.2 0-102.1 48.5-102.2 135.5v52.6c0 85.7 36.8 133.6 102.1 133.6z" fill="#E6E6E6" /><path d="M517.6 351.3c53 0 89 33.8 93 83.4.3 4.2 3.8 7.4 8 7.4h56.7c2.6 0 4.7-2.1 4.7-4.7 0-86.7-68.4-147.4-162.7-147.4C407.4 290 344 364.2 344 486.8v52.3C344 660.8 407.4 734 517.3 734c94 0 162.7-58.8 162.7-141.4 0-2.6-2.1-4.7-4.7-4.7h-56.8c-4.2 0-7.6 3.2-8 7.3-4.2 46.1-40.1 77.8-93 77.8-65.3 0-102.1-47.9-102.1-133.6v-52.6c.1-87 37-135.5 102.2-135.5z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/credit-card.js b/src/blrec/data/webapp/assets/twotone/credit-card.js new file mode 100644 index 0000000..28a523c --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/credit-card.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'credit-card', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M136 792h752V440H136v352zm507-144c0-4.4 3.6-8 8-8h165c4.4 0 8 3.6 8 8v72c0 4.4-3.6 8-8 8H651c-4.4 0-8-3.6-8-8v-72zM136 232h752v120H136z" fill="#E6E6E6" /><path d="M651 728h165c4.4 0 8-3.6 8-8v-72c0-4.4-3.6-8-8-8H651c-4.4 0-8 3.6-8 8v72c0 4.4 3.6 8 8 8z" fill="#333" /><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V440h752v352zm0-440H136V232h752v120z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/credit-card.svg b/src/blrec/data/webapp/assets/twotone/credit-card.svg new file mode 100644 index 0000000..5d8d55a --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/credit-card.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M136 792h752V440H136v352zm507-144c0-4.4 3.6-8 8-8h165c4.4 0 8 3.6 8 8v72c0 4.4-3.6 8-8 8H651c-4.4 0-8-3.6-8-8v-72zM136 232h752v120H136z" fill="#E6E6E6" /><path d="M651 728h165c4.4 0 8-3.6 8-8v-72c0-4.4-3.6-8-8-8H651c-4.4 0-8 3.6-8 8v72c0 4.4 3.6 8 8 8z" fill="#333" /><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V440h752v352zm0-440H136V232h752v120z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/crown.js b/src/blrec/data/webapp/assets/twotone/crown.js new file mode 100644 index 0000000..79fb520 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/crown.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'crown', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M911.9 283.9v.5L835.5 865c-1 8-7.9 14-15.9 14H204.5c-8.1 0-14.9-6.1-16-14l-76.4-580.6v-.6 1.6L188.5 866c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.1-.5.1-1 0-1.5z" fill="#E6E6E6" /><path d="M773.6 810.6l53.9-409.4-139.8 86.1L512 252.9 336.3 487.3l-139.8-86.1 53.8 409.4h523.3zm-374.2-189c0-62.1 50.5-112.6 112.6-112.6s112.6 50.5 112.6 112.6v1c0 62.1-50.5 112.6-112.6 112.6s-112.6-50.5-112.6-112.6v-1z" fill="#E6E6E6" /><path d="M512 734.2c61.9 0 112.3-50.2 112.6-112.1v-.5c0-62.1-50.5-112.6-112.6-112.6s-112.6 50.5-112.6 112.6v.5c.3 61.9 50.7 112.1 112.6 112.1zm0-160.9c26.6 0 48.2 21.6 48.2 48.3 0 26.6-21.6 48.3-48.2 48.3s-48.2-21.6-48.2-48.3c0-26.6 21.6-48.3 48.2-48.3z" fill="#333" /><path d="M188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6v-.5c.3-6.4-6.7-10.8-12.3-7.4L705 396.4 518.4 147.5a8.06 8.06 0 00-12.9 0L319 396.4 124.3 276.5c-5.5-3.4-12.6.9-12.2 7.3v.6L188.5 865zm147.8-377.7L512 252.9l175.7 234.4 139.8-86.1-53.9 409.4H250.3l-53.8-409.4 139.8 86.1z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/crown.svg b/src/blrec/data/webapp/assets/twotone/crown.svg new file mode 100644 index 0000000..76ea4c4 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/crown.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M911.9 283.9v.5L835.5 865c-1 8-7.9 14-15.9 14H204.5c-8.1 0-14.9-6.1-16-14l-76.4-580.6v-.6 1.6L188.5 866c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6c.1-.5.1-1 0-1.5z" fill="#E6E6E6" /><path d="M773.6 810.6l53.9-409.4-139.8 86.1L512 252.9 336.3 487.3l-139.8-86.1 53.8 409.4h523.3zm-374.2-189c0-62.1 50.5-112.6 112.6-112.6s112.6 50.5 112.6 112.6v1c0 62.1-50.5 112.6-112.6 112.6s-112.6-50.5-112.6-112.6v-1z" fill="#E6E6E6" /><path d="M512 734.2c61.9 0 112.3-50.2 112.6-112.1v-.5c0-62.1-50.5-112.6-112.6-112.6s-112.6 50.5-112.6 112.6v.5c.3 61.9 50.7 112.1 112.6 112.1zm0-160.9c26.6 0 48.2 21.6 48.2 48.3 0 26.6-21.6 48.3-48.2 48.3s-48.2-21.6-48.2-48.3c0-26.6 21.6-48.3 48.2-48.3z" fill="#333" /><path d="M188.5 865c1.1 7.9 7.9 14 16 14h615.1c8 0 14.9-6 15.9-14l76.4-580.6v-.5c.3-6.4-6.7-10.8-12.3-7.4L705 396.4 518.4 147.5a8.06 8.06 0 00-12.9 0L319 396.4 124.3 276.5c-5.5-3.4-12.6.9-12.2 7.3v.6L188.5 865zm147.8-377.7L512 252.9l175.7 234.4 139.8-86.1-53.9 409.4H250.3l-53.8-409.4 139.8 86.1z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/customer-service.js b/src/blrec/data/webapp/assets/twotone/customer-service.js new file mode 100644 index 0000000..61ed464 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/customer-service.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'customer-service', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M696 632h128v192H696zm-496 0h128v192H200z" fill="#E6E6E6" /><path d="M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384zM328 632v192H200V632h128zm496 192H696V632h128v192z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/customer-service.svg b/src/blrec/data/webapp/assets/twotone/customer-service.svg new file mode 100644 index 0000000..5194d55 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/customer-service.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M696 632h128v192H696zm-496 0h128v192H200z" fill="#E6E6E6" /><path d="M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384zM328 632v192H200V632h128zm496 192H696V632h128v192z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/dashboard.js b/src/blrec/data/webapp/assets/twotone/dashboard.js new file mode 100644 index 0000000..ec4971a --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/dashboard.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dashboard', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 188c-99.3 0-192.7 38.7-263 109-70.3 70.2-109 163.6-109 263 0 105.6 44.5 205.5 122.6 276h498.8A371.12 371.12 0 00884 560c0-99.3-38.7-192.7-109-263-70.2-70.3-163.6-109-263-109zm-30 44c0-4.4 3.6-8 8-8h44c4.4 0 8 3.6 8 8v80c0 4.4-3.6 8-8 8h-44c-4.4 0-8-3.6-8-8v-80zM270 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44zm90.7-204.4l-31.1 31.1a8.03 8.03 0 01-11.3 0l-56.6-56.6a8.03 8.03 0 010-11.3l31.1-31.1c3.1-3.1 8.2-3.1 11.3 0l56.6 56.6c3.1 3.1 3.1 8.2 0 11.3zm291.1 83.5l-84.5 84.5c5 18.7.2 39.4-14.5 54.1a55.95 55.95 0 01-79.2 0 55.95 55.95 0 010-79.2 55.87 55.87 0 0154.1-14.5l84.5-84.5c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3c3.1 3.1 3.1 8.2 0 11.3zm43-52.4l-31.1-31.1a8.03 8.03 0 010-11.3l56.6-56.6c3.1-3.1 8.2-3.1 11.3 0l31.1 31.1c3.1 3.1 3.1 8.2 0 11.3l-56.6 56.6a8.03 8.03 0 01-11.3 0zM846 538v44c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8z" fill="#E6E6E6" /><path d="M623.5 421.5a8.03 8.03 0 00-11.3 0L527.7 506c-18.7-5-39.4-.2-54.1 14.5a55.95 55.95 0 000 79.2 55.95 55.95 0 0079.2 0 55.87 55.87 0 0014.5-54.1l84.5-84.5c3.1-3.1 3.1-8.2 0-11.3l-28.3-28.3zM490 320h44c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8h-44c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8z" fill="#333" /><path d="M924.8 385.6a446.7 446.7 0 00-96-142.4 446.7 446.7 0 00-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 00-142.4 96 446.7 446.7 0 00-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM761.4 836H262.6A371.12 371.12 0 01140 560c0-99.4 38.7-192.8 109-263 70.3-70.3 163.7-109 263-109 99.4 0 192.8 38.7 263 109 70.3 70.3 109 163.7 109 263 0 105.6-44.5 205.5-122.6 276z" fill="#333" /><path d="M762.7 340.8l-31.1-31.1a8.03 8.03 0 00-11.3 0l-56.6 56.6a8.03 8.03 0 000 11.3l31.1 31.1c3.1 3.1 8.2 3.1 11.3 0l56.6-56.6c3.1-3.1 3.1-8.2 0-11.3zM750 538v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8zM304.1 309.7a8.03 8.03 0 00-11.3 0l-31.1 31.1a8.03 8.03 0 000 11.3l56.6 56.6c3.1 3.1 8.2 3.1 11.3 0l31.1-31.1c3.1-3.1 3.1-8.2 0-11.3l-56.6-56.6zM262 530h-80c-4.4 0-8 3.6-8 8v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/dashboard.svg b/src/blrec/data/webapp/assets/twotone/dashboard.svg new file mode 100644 index 0000000..9b134ee --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/dashboard.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 188c-99.3 0-192.7 38.7-263 109-70.3 70.2-109 163.6-109 263 0 105.6 44.5 205.5 122.6 276h498.8A371.12 371.12 0 00884 560c0-99.3-38.7-192.7-109-263-70.2-70.3-163.6-109-263-109zm-30 44c0-4.4 3.6-8 8-8h44c4.4 0 8 3.6 8 8v80c0 4.4-3.6 8-8 8h-44c-4.4 0-8-3.6-8-8v-80zM270 582c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v44zm90.7-204.4l-31.1 31.1a8.03 8.03 0 01-11.3 0l-56.6-56.6a8.03 8.03 0 010-11.3l31.1-31.1c3.1-3.1 8.2-3.1 11.3 0l56.6 56.6c3.1 3.1 3.1 8.2 0 11.3zm291.1 83.5l-84.5 84.5c5 18.7.2 39.4-14.5 54.1a55.95 55.95 0 01-79.2 0 55.95 55.95 0 010-79.2 55.87 55.87 0 0154.1-14.5l84.5-84.5c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3c3.1 3.1 3.1 8.2 0 11.3zm43-52.4l-31.1-31.1a8.03 8.03 0 010-11.3l56.6-56.6c3.1-3.1 8.2-3.1 11.3 0l31.1 31.1c3.1 3.1 3.1 8.2 0 11.3l-56.6 56.6a8.03 8.03 0 01-11.3 0zM846 538v44c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8v-44c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8z" fill="#E6E6E6" /><path d="M623.5 421.5a8.03 8.03 0 00-11.3 0L527.7 506c-18.7-5-39.4-.2-54.1 14.5a55.95 55.95 0 000 79.2 55.95 55.95 0 0079.2 0 55.87 55.87 0 0014.5-54.1l84.5-84.5c3.1-3.1 3.1-8.2 0-11.3l-28.3-28.3zM490 320h44c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8h-44c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8z" fill="#333" /><path d="M924.8 385.6a446.7 446.7 0 00-96-142.4 446.7 446.7 0 00-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 00-142.4 96 446.7 446.7 0 00-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM761.4 836H262.6A371.12 371.12 0 01140 560c0-99.4 38.7-192.8 109-263 70.3-70.3 163.7-109 263-109 99.4 0 192.8 38.7 263 109 70.3 70.3 109 163.7 109 263 0 105.6-44.5 205.5-122.6 276z" fill="#333" /><path d="M762.7 340.8l-31.1-31.1a8.03 8.03 0 00-11.3 0l-56.6 56.6a8.03 8.03 0 000 11.3l31.1 31.1c3.1 3.1 8.2 3.1 11.3 0l56.6-56.6c3.1-3.1 3.1-8.2 0-11.3zM750 538v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8zM304.1 309.7a8.03 8.03 0 00-11.3 0l-31.1 31.1a8.03 8.03 0 000 11.3l56.6 56.6c3.1 3.1 8.2 3.1 11.3 0l31.1-31.1c3.1-3.1 3.1-8.2 0-11.3l-56.6-56.6zM262 530h-80c-4.4 0-8 3.6-8 8v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/database.js b/src/blrec/data/webapp/assets/twotone/database.js new file mode 100644 index 0000000..cb8164e --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/database.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'database', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M232 616h560V408H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 888h560V680H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 344h560V136H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z" fill="#E6E6E6" /><path d="M304 512a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0zm0-544a40 40 0 1080 0 40 40 0 10-80 0z" fill="#333" /><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V680h560v208zm0-272H232V408h560v208zm0-272H232V136h560v208z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/database.svg b/src/blrec/data/webapp/assets/twotone/database.svg new file mode 100644 index 0000000..39b178e --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/database.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M232 616h560V408H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 888h560V680H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 344h560V136H232v208zm112-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z" fill="#E6E6E6" /><path d="M304 512a40 40 0 1080 0 40 40 0 10-80 0zm0 272a40 40 0 1080 0 40 40 0 10-80 0zm0-544a40 40 0 1080 0 40 40 0 10-80 0z" fill="#333" /><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V680h560v208zm0-272H232V408h560v208zm0-272H232V136h560v208z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/delete.js b/src/blrec/data/webapp/assets/twotone/delete.js new file mode 100644 index 0000000..dfb2503 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/delete.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'delete', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M292.7 840h438.6l24.2-512h-487z" fill="#E6E6E6" /><path d="M864 256H736v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zm-504-72h304v72H360v-72zm371.3 656H292.7l-24.2-512h487l-24.2 512z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/delete.svg b/src/blrec/data/webapp/assets/twotone/delete.svg new file mode 100644 index 0000000..2c7c48d --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/delete.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M292.7 840h438.6l24.2-512h-487z" fill="#E6E6E6" /><path d="M864 256H736v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zm-504-72h304v72H360v-72zm371.3 656H292.7l-24.2-512h487l-24.2 512z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/diff.js b/src/blrec/data/webapp/assets/twotone/diff.js new file mode 100644 index 0000000..ef2ea31 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/diff.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'diff', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M232 264v624h432V413.8L514.2 264H232zm336 489c0 3.8-3.4 7-7.5 7h-225c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7h225c4.1 0 7.5 3.2 7.5 7v42zm0-262v42c0 3.8-3.4 7-7.5 7H476v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V540h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H420v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1V484h84.5c4.1 0 7.5 3.1 7.5 7z" fill="#E6E6E6" /><path d="M854.2 306.6L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23z" fill="#333" /><path d="M553.4 201.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM664 888H232V264h282.2L664 413.8V888z" fill="#333" /><path d="M476 399.1c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1V484h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H420v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V540h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H476v-84.9zM560.5 704h-225c-4.1 0-7.5 3.2-7.5 7v42c0 3.8 3.4 7 7.5 7h225c4.1 0 7.5-3.2 7.5-7v-42c0-3.8-3.4-7-7.5-7z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/diff.svg b/src/blrec/data/webapp/assets/twotone/diff.svg new file mode 100644 index 0000000..8b9f675 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/diff.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M232 264v624h432V413.8L514.2 264H232zm336 489c0 3.8-3.4 7-7.5 7h-225c-4.1 0-7.5-3.2-7.5-7v-42c0-3.8 3.4-7 7.5-7h225c4.1 0 7.5 3.2 7.5 7v42zm0-262v42c0 3.8-3.4 7-7.5 7H476v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V540h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H420v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1V484h84.5c4.1 0 7.5 3.1 7.5 7z" fill="#E6E6E6" /><path d="M854.2 306.6L611.3 72.9c-6-5.7-13.9-8.9-22.2-8.9H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h277l219 210.6V824c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V329.6c0-8.7-3.5-17-9.8-23z" fill="#333" /><path d="M553.4 201.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v704c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32V397.3c0-8.5-3.4-16.6-9.4-22.6L553.4 201.4zM664 888H232V264h282.2L664 413.8V888z" fill="#333" /><path d="M476 399.1c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1V484h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H420v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V540h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H476v-84.9zM560.5 704h-225c-4.1 0-7.5 3.2-7.5 7v42c0 3.8 3.4 7 7.5 7h225c4.1 0 7.5-3.2 7.5-7v-42c0-3.8-3.4-7-7.5-7z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/dislike.js b/src/blrec/data/webapp/assets/twotone/dislike.js new file mode 100644 index 0000000..3f6dfce --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/dislike.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dislike', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M273 100.1v428h.3l-.3-428zM820.4 525l-21.9-19 14-25.5a56.2 56.2 0 006.9-27.3c0-16.5-7.1-32.2-19.6-43l-21.9-19 13.9-25.4a56.2 56.2 0 006.9-27.3c0-16.5-7.1-32.2-19.6-43l-21.9-19 13.9-25.4a56.2 56.2 0 006.9-27.3c0-22.4-13.2-42.6-33.6-51.8H345v345.2c18.6 67.2 46.4 168 83.5 302.5a44.28 44.28 0 0042.2 32.3c7.5.1 15-2.2 21.1-6.7 9.9-7.4 15.2-18.6 14.6-30.5l-9.6-198.4h314.4C829 605.5 840 587.1 840 568c0-16.5-7.1-32.2-19.6-43z" fill="#E6E6E6" /><path d="M112 132v364c0 17.7 14.3 32 32 32h65V100h-65c-17.7 0-32 14.3-32 32zm773.9 358.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 00-26.5-5.4H273l.3 428 85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zm-74.7 126.1H496.8l9.6 198.4c.6 11.9-4.7 23.1-14.6 30.5-6.1 4.5-13.6 6.8-21.1 6.7a44.28 44.28 0 01-42.2-32.3c-37.1-134.4-64.9-235.2-83.5-302.5V172h399.4a56.85 56.85 0 0133.6 51.8c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0119.6 43c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0119.6 43c0 9.7-2.3 18.9-6.9 27.3l-14 25.5 21.9 19a56.76 56.76 0 0119.6 43c0 19.1-11 37.5-28.8 48.4z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/dislike.svg b/src/blrec/data/webapp/assets/twotone/dislike.svg new file mode 100644 index 0000000..86f4bae --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/dislike.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M273 100.1v428h.3l-.3-428zM820.4 525l-21.9-19 14-25.5a56.2 56.2 0 006.9-27.3c0-16.5-7.1-32.2-19.6-43l-21.9-19 13.9-25.4a56.2 56.2 0 006.9-27.3c0-16.5-7.1-32.2-19.6-43l-21.9-19 13.9-25.4a56.2 56.2 0 006.9-27.3c0-22.4-13.2-42.6-33.6-51.8H345v345.2c18.6 67.2 46.4 168 83.5 302.5a44.28 44.28 0 0042.2 32.3c7.5.1 15-2.2 21.1-6.7 9.9-7.4 15.2-18.6 14.6-30.5l-9.6-198.4h314.4C829 605.5 840 587.1 840 568c0-16.5-7.1-32.2-19.6-43z" fill="#E6E6E6" /><path d="M112 132v364c0 17.7 14.3 32 32 32h65V100h-65c-17.7 0-32 14.3-32 32zm773.9 358.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 00-26.5-5.4H273l.3 428 85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zm-74.7 126.1H496.8l9.6 198.4c.6 11.9-4.7 23.1-14.6 30.5-6.1 4.5-13.6 6.8-21.1 6.7a44.28 44.28 0 01-42.2-32.3c-37.1-134.4-64.9-235.2-83.5-302.5V172h399.4a56.85 56.85 0 0133.6 51.8c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0119.6 43c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0119.6 43c0 9.7-2.3 18.9-6.9 27.3l-14 25.5 21.9 19a56.76 56.76 0 0119.6 43c0 19.1-11 37.5-28.8 48.4z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/dollar-circle.js b/src/blrec/data/webapp/assets/twotone/dollar-circle.js new file mode 100644 index 0000000..98f0b21 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/dollar-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dollar-circle', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M426.6 410.3c0 25.4 15.7 45.1 49.5 57.3 4.7 1.9 9.4 3.4 15 5v-124c-37 4.7-64.5 25.4-64.5 61.7zm116.5 135.2c-2.9-.6-5.7-1.3-8.8-2.2V677c42.6-3.8 72-27.3 72-66.4 0-30.7-15.9-50.7-63.2-65.1z" fill="#E6E6E6" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm22.4 589.2l.2 31.7c0 4.5-3.6 8.1-8 8.1h-28.4c-4.4 0-8-3.6-8-8v-31.4c-89-6.5-130.7-57.1-135.2-112.1-.4-4.7 3.3-8.7 8-8.7h46.2c3.9 0 7.3 2.8 7.9 6.6 5.1 31.8 29.9 55.4 74.1 61.3V534l-24.7-6.3c-52.3-12.5-102.1-45.1-102.1-112.7 0-73 55.4-112.1 126.2-119v-33c0-4.4 3.6-8 8-8h28.1c4.4 0 8 3.6 8 8v32.7c68.5 6.9 119.8 46.9 125.9 109.2a8.1 8.1 0 01-8 8.8h-44.9c-4 0-7.4-2.9-7.9-6.9-4-29.2-27.5-53-65.5-58.2v134.3l25.4 5.9c64.8 16 108.9 47 109 116.4 0 75.2-56 117.1-134.3 124z" fill="#E6E6E6" /><path d="M559.7 488.8l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/dollar-circle.svg b/src/blrec/data/webapp/assets/twotone/dollar-circle.svg new file mode 100644 index 0000000..037d31b --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/dollar-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M426.6 410.3c0 25.4 15.7 45.1 49.5 57.3 4.7 1.9 9.4 3.4 15 5v-124c-37 4.7-64.5 25.4-64.5 61.7zm116.5 135.2c-2.9-.6-5.7-1.3-8.8-2.2V677c42.6-3.8 72-27.3 72-66.4 0-30.7-15.9-50.7-63.2-65.1z" fill="#E6E6E6" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm22.4 589.2l.2 31.7c0 4.5-3.6 8.1-8 8.1h-28.4c-4.4 0-8-3.6-8-8v-31.4c-89-6.5-130.7-57.1-135.2-112.1-.4-4.7 3.3-8.7 8-8.7h46.2c3.9 0 7.3 2.8 7.9 6.6 5.1 31.8 29.9 55.4 74.1 61.3V534l-24.7-6.3c-52.3-12.5-102.1-45.1-102.1-112.7 0-73 55.4-112.1 126.2-119v-33c0-4.4 3.6-8 8-8h28.1c4.4 0 8 3.6 8 8v32.7c68.5 6.9 119.8 46.9 125.9 109.2a8.1 8.1 0 01-8 8.8h-44.9c-4 0-7.4-2.9-7.9-6.9-4-29.2-27.5-53-65.5-58.2v134.3l25.4 5.9c64.8 16 108.9 47 109 116.4 0 75.2-56 117.1-134.3 124z" fill="#E6E6E6" /><path d="M559.7 488.8l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/dollar.js b/src/blrec/data/webapp/assets/twotone/dollar.js new file mode 100644 index 0000000..97bc0d3 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/dollar.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'dollar', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M426.6 410.3c0 25.4 15.7 45.1 49.5 57.3 4.7 1.9 9.4 3.4 15 5v-124c-37 4.7-64.5 25.4-64.5 61.7zm116.5 135.2c-2.9-.6-5.7-1.3-8.8-2.2V677c42.6-3.8 72-27.3 72-66.4 0-30.7-15.9-50.7-63.2-65.1z" fill="#E6E6E6" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm22.4 589.2l.2 31.7c0 4.5-3.6 8.1-8 8.1h-28.4c-4.4 0-8-3.6-8-8v-31.4c-89-6.5-130.7-57.1-135.2-112.1-.4-4.7 3.3-8.7 8-8.7h46.2c3.9 0 7.3 2.8 7.9 6.6 5.1 31.8 29.9 55.4 74.1 61.3V534l-24.7-6.3c-52.3-12.5-102.1-45.1-102.1-112.7 0-73 55.4-112.1 126.2-119v-33c0-4.4 3.6-8 8-8h28.1c4.4 0 8 3.6 8 8v32.7c68.5 6.9 119.8 46.9 125.9 109.2a8.1 8.1 0 01-8 8.8h-44.9c-4 0-7.4-2.9-7.9-6.9-4-29.2-27.5-53-65.5-58.2v134.3l25.4 5.9c64.8 16 108.9 47 109 116.4 0 75.2-56 117.1-134.3 124z" fill="#E6E6E6" /><path d="M559.7 488.8l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/dollar.svg b/src/blrec/data/webapp/assets/twotone/dollar.svg new file mode 100644 index 0000000..037d31b --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/dollar.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M426.6 410.3c0 25.4 15.7 45.1 49.5 57.3 4.7 1.9 9.4 3.4 15 5v-124c-37 4.7-64.5 25.4-64.5 61.7zm116.5 135.2c-2.9-.6-5.7-1.3-8.8-2.2V677c42.6-3.8 72-27.3 72-66.4 0-30.7-15.9-50.7-63.2-65.1z" fill="#E6E6E6" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm22.4 589.2l.2 31.7c0 4.5-3.6 8.1-8 8.1h-28.4c-4.4 0-8-3.6-8-8v-31.4c-89-6.5-130.7-57.1-135.2-112.1-.4-4.7 3.3-8.7 8-8.7h46.2c3.9 0 7.3 2.8 7.9 6.6 5.1 31.8 29.9 55.4 74.1 61.3V534l-24.7-6.3c-52.3-12.5-102.1-45.1-102.1-112.7 0-73 55.4-112.1 126.2-119v-33c0-4.4 3.6-8 8-8h28.1c4.4 0 8 3.6 8 8v32.7c68.5 6.9 119.8 46.9 125.9 109.2a8.1 8.1 0 01-8 8.8h-44.9c-4 0-7.4-2.9-7.9-6.9-4-29.2-27.5-53-65.5-58.2v134.3l25.4 5.9c64.8 16 108.9 47 109 116.4 0 75.2-56 117.1-134.3 124z" fill="#E6E6E6" /><path d="M559.7 488.8l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/down-circle.js b/src/blrec/data/webapp/assets/twotone/down-circle.js new file mode 100644 index 0000000..a0c0d51 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/down-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'down-circle', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm184.4 277.7l-178 246a7.95 7.95 0 01-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.3 0 19.9 4.9 25.9 13.2L512 563.6l105.2-145.4c6-8.3 15.7-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.4 12.7z" fill="#E6E6E6" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M690 405h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 563.6 406.8 418.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/down-circle.svg b/src/blrec/data/webapp/assets/twotone/down-circle.svg new file mode 100644 index 0000000..7022eaf --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/down-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm184.4 277.7l-178 246a7.95 7.95 0 01-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.3 0 19.9 4.9 25.9 13.2L512 563.6l105.2-145.4c6-8.3 15.7-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.4 12.7z" fill="#E6E6E6" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M690 405h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 563.6 406.8 418.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/down-square.js b/src/blrec/data/webapp/assets/twotone/down-square.js new file mode 100644 index 0000000..e4948d9 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/down-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'down-square', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm150-440h46.9c10.3 0 19.9 4.9 25.9 13.2L512 558.6l105.2-145.4c6-8.3 15.7-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.4 12.7l-178 246a7.95 7.95 0 01-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7z" fill="#E6E6E6" /><path d="M505.5 658.7c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 558.6 406.8 413.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/down-square.svg b/src/blrec/data/webapp/assets/twotone/down-square.svg new file mode 100644 index 0000000..5353ee7 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/down-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm150-440h46.9c10.3 0 19.9 4.9 25.9 13.2L512 558.6l105.2-145.4c6-8.3 15.7-13.2 25.9-13.2H690c6.5 0 10.3 7.4 6.4 12.7l-178 246a7.95 7.95 0 01-12.9 0l-178-246c-3.8-5.3 0-12.7 6.5-12.7z" fill="#E6E6E6" /><path d="M505.5 658.7c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 558.6 406.8 413.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/edit.js b/src/blrec/data/webapp/assets/twotone/edit.js new file mode 100644 index 0000000..f10c8f8 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/edit.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'edit', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M761.1 288.3L687.8 215 325.1 577.6l-15.6 89 88.9-15.7z" fill="#E6E6E6" /><path d="M880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32zm-622.3-84c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/edit.svg b/src/blrec/data/webapp/assets/twotone/edit.svg new file mode 100644 index 0000000..050c2c9 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/edit.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M761.1 288.3L687.8 215 325.1 577.6l-15.6 89 88.9-15.7z" fill="#E6E6E6" /><path d="M880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32zm-622.3-84c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/environment.js b/src/blrec/data/webapp/assets/twotone/environment.js new file mode 100644 index 0000000..e22e2e7 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/environment.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'environment', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M724.4 224.9C667.7 169.5 592.3 139 512 139s-155.7 30.5-212.4 85.8C243.1 280 212 353.2 212 431.1c0 241.3 234.1 407.2 300 449.1 65.9-41.9 300-207.8 300-449.1 0-77.9-31.1-151.1-87.6-206.2zM512 615c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z" fill="#E6E6E6" /><path d="M512 263c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 551c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 439c0-29.9 11.7-58 32.8-79.2C454 338.6 482.1 327 512 327c29.9 0 58 11.6 79.2 32.8S624 409.1 624 439c0 29.9-11.6 58-32.8 79.2z" fill="#333" /><path d="M854.6 289.1a362.49 362.49 0 00-79.9-115.7 370.83 370.83 0 00-118.2-77.8C610.7 76.6 562.1 67 512 67c-50.1 0-98.7 9.6-144.5 28.5-44.3 18.3-84 44.5-118.2 77.8A363.6 363.6 0 00169.4 289c-19.5 45-29.4 92.8-29.4 142 0 70.6 16.9 140.9 50.1 208.7 26.7 54.5 64 107.6 111 158.1 80.3 86.2 164.5 138.9 188.4 153a43.9 43.9 0 0022.4 6.1c7.8 0 15.5-2 22.4-6.1 23.9-14.1 108.1-66.8 188.4-153 47-50.4 84.3-103.6 111-158.1C867.1 572 884 501.8 884 431.1c0-49.2-9.9-97-29.4-142zM512 880.2c-65.9-41.9-300-207.8-300-449.1 0-77.9 31.1-151.1 87.6-206.3C356.3 169.5 431.7 139 512 139s155.7 30.5 212.4 85.9C780.9 280 812 353.2 812 431.1c0 241.3-234.1 407.2-300 449.1z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/environment.svg b/src/blrec/data/webapp/assets/twotone/environment.svg new file mode 100644 index 0000000..4712ab7 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/environment.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M724.4 224.9C667.7 169.5 592.3 139 512 139s-155.7 30.5-212.4 85.8C243.1 280 212 353.2 212 431.1c0 241.3 234.1 407.2 300 449.1 65.9-41.9 300-207.8 300-449.1 0-77.9-31.1-151.1-87.6-206.2zM512 615c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z" fill="#E6E6E6" /><path d="M512 263c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 551c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 439c0-29.9 11.7-58 32.8-79.2C454 338.6 482.1 327 512 327c29.9 0 58 11.6 79.2 32.8S624 409.1 624 439c0 29.9-11.6 58-32.8 79.2z" fill="#333" /><path d="M854.6 289.1a362.49 362.49 0 00-79.9-115.7 370.83 370.83 0 00-118.2-77.8C610.7 76.6 562.1 67 512 67c-50.1 0-98.7 9.6-144.5 28.5-44.3 18.3-84 44.5-118.2 77.8A363.6 363.6 0 00169.4 289c-19.5 45-29.4 92.8-29.4 142 0 70.6 16.9 140.9 50.1 208.7 26.7 54.5 64 107.6 111 158.1 80.3 86.2 164.5 138.9 188.4 153a43.9 43.9 0 0022.4 6.1c7.8 0 15.5-2 22.4-6.1 23.9-14.1 108.1-66.8 188.4-153 47-50.4 84.3-103.6 111-158.1C867.1 572 884 501.8 884 431.1c0-49.2-9.9-97-29.4-142zM512 880.2c-65.9-41.9-300-207.8-300-449.1 0-77.9 31.1-151.1 87.6-206.3C356.3 169.5 431.7 139 512 139s155.7 30.5 212.4 85.9C780.9 280 812 353.2 812 431.1c0 241.3-234.1 407.2-300 449.1z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/euro-circle.js b/src/blrec/data/webapp/assets/twotone/euro-circle.js new file mode 100644 index 0000000..7648357 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/euro-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'euro-circle', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm117.1 581.1c0 3.8-2.7 7-6.4 7.8-15.9 3.4-34.4 5.1-55.3 5.1-109.8 0-183-58.8-200.2-158H337c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h26.1v-36.9c0-4.4 0-8.7.3-12.8H337c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h31.8C388.5 345.7 460.7 290 567.4 290c20.9 0 39.4 1.9 55.3 5.4 3.7.8 6.3 4 6.3 7.8V346a8 8 0 01-9.6 7.8c-14.6-2.9-31.8-4.4-51.7-4.4-65.3 0-110.4 33.5-127.6 90.4h128.3c4.4 0 8 3.6 8 8V475c0 4.4-3.6 8-8 8H432.5c-.3 4.4-.3 9.1-.3 13.8v36h136.4c4.4 0 8 3.6 8 8V568c0 4.4-3.6 8-8 8H438c15.3 62 61.3 98.6 129.8 98.6 19.9 0 37.1-1.3 51.8-4.1 4.9-1 9.5 2.8 9.5 7.8v42.8z" fill="#E6E6E6" /><path d="M619.6 670.5c-14.7 2.8-31.9 4.1-51.8 4.1-68.5 0-114.5-36.6-129.8-98.6h130.6c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H432.2v-36c0-4.7 0-9.4.3-13.8h135.9c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H440.1c17.2-56.9 62.3-90.4 127.6-90.4 19.9 0 37.1 1.5 51.7 4.4a8 8 0 009.6-7.8v-42.8c0-3.8-2.6-7-6.3-7.8-15.9-3.5-34.4-5.4-55.3-5.4-106.7 0-178.9 55.7-198.6 149.9H337c-4.4 0-8 3.6-8 8v27.2c0 4.4 3.6 8 8 8h26.4c-.3 4.1-.3 8.4-.3 12.8v36.9H337c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h30.2c17.2 99.2 90.4 158 200.2 158 20.9 0 39.4-1.7 55.3-5.1 3.7-.8 6.4-4 6.4-7.8v-42.8c0-5-4.6-8.8-9.5-7.8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/euro-circle.svg b/src/blrec/data/webapp/assets/twotone/euro-circle.svg new file mode 100644 index 0000000..61b700d --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/euro-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm117.1 581.1c0 3.8-2.7 7-6.4 7.8-15.9 3.4-34.4 5.1-55.3 5.1-109.8 0-183-58.8-200.2-158H337c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h26.1v-36.9c0-4.4 0-8.7.3-12.8H337c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h31.8C388.5 345.7 460.7 290 567.4 290c20.9 0 39.4 1.9 55.3 5.4 3.7.8 6.3 4 6.3 7.8V346a8 8 0 01-9.6 7.8c-14.6-2.9-31.8-4.4-51.7-4.4-65.3 0-110.4 33.5-127.6 90.4h128.3c4.4 0 8 3.6 8 8V475c0 4.4-3.6 8-8 8H432.5c-.3 4.4-.3 9.1-.3 13.8v36h136.4c4.4 0 8 3.6 8 8V568c0 4.4-3.6 8-8 8H438c15.3 62 61.3 98.6 129.8 98.6 19.9 0 37.1-1.3 51.8-4.1 4.9-1 9.5 2.8 9.5 7.8v42.8z" fill="#E6E6E6" /><path d="M619.6 670.5c-14.7 2.8-31.9 4.1-51.8 4.1-68.5 0-114.5-36.6-129.8-98.6h130.6c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H432.2v-36c0-4.7 0-9.4.3-13.8h135.9c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H440.1c17.2-56.9 62.3-90.4 127.6-90.4 19.9 0 37.1 1.5 51.7 4.4a8 8 0 009.6-7.8v-42.8c0-3.8-2.6-7-6.3-7.8-15.9-3.5-34.4-5.4-55.3-5.4-106.7 0-178.9 55.7-198.6 149.9H337c-4.4 0-8 3.6-8 8v27.2c0 4.4 3.6 8 8 8h26.4c-.3 4.1-.3 8.4-.3 12.8v36.9H337c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h30.2c17.2 99.2 90.4 158 200.2 158 20.9 0 39.4-1.7 55.3-5.1 3.7-.8 6.4-4 6.4-7.8v-42.8c0-5-4.6-8.8-9.5-7.8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/euro.js b/src/blrec/data/webapp/assets/twotone/euro.js new file mode 100644 index 0000000..da7bbc3 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/euro.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'euro', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm117.1 581.1c0 3.8-2.7 7-6.4 7.8-15.9 3.4-34.4 5.1-55.3 5.1-109.8 0-183-58.8-200.2-158H337c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h26.1v-36.9c0-4.4 0-8.7.3-12.8H337c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h31.8C388.5 345.7 460.7 290 567.4 290c20.9 0 39.4 1.9 55.3 5.4 3.7.8 6.3 4 6.3 7.8V346a8 8 0 01-9.6 7.8c-14.6-2.9-31.8-4.4-51.7-4.4-65.3 0-110.4 33.5-127.6 90.4h128.3c4.4 0 8 3.6 8 8V475c0 4.4-3.6 8-8 8H432.5c-.3 4.4-.3 9.1-.3 13.8v36h136.4c4.4 0 8 3.6 8 8V568c0 4.4-3.6 8-8 8H438c15.3 62 61.3 98.6 129.8 98.6 19.9 0 37.1-1.3 51.8-4.1 4.9-1 9.5 2.8 9.5 7.8v42.8z" fill="#E6E6E6" /><path d="M619.6 670.5c-14.7 2.8-31.9 4.1-51.8 4.1-68.5 0-114.5-36.6-129.8-98.6h130.6c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H432.2v-36c0-4.7 0-9.4.3-13.8h135.9c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H440.1c17.2-56.9 62.3-90.4 127.6-90.4 19.9 0 37.1 1.5 51.7 4.4a8 8 0 009.6-7.8v-42.8c0-3.8-2.6-7-6.3-7.8-15.9-3.5-34.4-5.4-55.3-5.4-106.7 0-178.9 55.7-198.6 149.9H337c-4.4 0-8 3.6-8 8v27.2c0 4.4 3.6 8 8 8h26.4c-.3 4.1-.3 8.4-.3 12.8v36.9H337c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h30.2c17.2 99.2 90.4 158 200.2 158 20.9 0 39.4-1.7 55.3-5.1 3.7-.8 6.4-4 6.4-7.8v-42.8c0-5-4.6-8.8-9.5-7.8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/euro.svg b/src/blrec/data/webapp/assets/twotone/euro.svg new file mode 100644 index 0000000..61b700d --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/euro.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm117.1 581.1c0 3.8-2.7 7-6.4 7.8-15.9 3.4-34.4 5.1-55.3 5.1-109.8 0-183-58.8-200.2-158H337c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h26.1v-36.9c0-4.4 0-8.7.3-12.8H337c-4.4 0-8-3.6-8-8v-27.2c0-4.4 3.6-8 8-8h31.8C388.5 345.7 460.7 290 567.4 290c20.9 0 39.4 1.9 55.3 5.4 3.7.8 6.3 4 6.3 7.8V346a8 8 0 01-9.6 7.8c-14.6-2.9-31.8-4.4-51.7-4.4-65.3 0-110.4 33.5-127.6 90.4h128.3c4.4 0 8 3.6 8 8V475c0 4.4-3.6 8-8 8H432.5c-.3 4.4-.3 9.1-.3 13.8v36h136.4c4.4 0 8 3.6 8 8V568c0 4.4-3.6 8-8 8H438c15.3 62 61.3 98.6 129.8 98.6 19.9 0 37.1-1.3 51.8-4.1 4.9-1 9.5 2.8 9.5 7.8v42.8z" fill="#E6E6E6" /><path d="M619.6 670.5c-14.7 2.8-31.9 4.1-51.8 4.1-68.5 0-114.5-36.6-129.8-98.6h130.6c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H432.2v-36c0-4.7 0-9.4.3-13.8h135.9c4.4 0 8-3.6 8-8v-27.2c0-4.4-3.6-8-8-8H440.1c17.2-56.9 62.3-90.4 127.6-90.4 19.9 0 37.1 1.5 51.7 4.4a8 8 0 009.6-7.8v-42.8c0-3.8-2.6-7-6.3-7.8-15.9-3.5-34.4-5.4-55.3-5.4-106.7 0-178.9 55.7-198.6 149.9H337c-4.4 0-8 3.6-8 8v27.2c0 4.4 3.6 8 8 8h26.4c-.3 4.1-.3 8.4-.3 12.8v36.9H337c-4.4 0-8 3.6-8 8V568c0 4.4 3.6 8 8 8h30.2c17.2 99.2 90.4 158 200.2 158 20.9 0 39.4-1.7 55.3-5.1 3.7-.8 6.4-4 6.4-7.8v-42.8c0-5-4.6-8.8-9.5-7.8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/exclamation-circle.js b/src/blrec/data/webapp/assets/twotone/exclamation-circle.js new file mode 100644 index 0000000..ebe846c --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/exclamation-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'exclamation-circle', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-32 156c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" fill="#E6E6E6" /><path d="M488 576h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8zm-24 112a48 48 0 1096 0 48 48 0 10-96 0z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/exclamation-circle.svg b/src/blrec/data/webapp/assets/twotone/exclamation-circle.svg new file mode 100644 index 0000000..6052571 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/exclamation-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-32 156c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" fill="#E6E6E6" /><path d="M488 576h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8zm-24 112a48 48 0 1096 0 48 48 0 10-96 0z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/experiment.js b/src/blrec/data/webapp/assets/twotone/experiment.js new file mode 100644 index 0000000..8437291 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/experiment.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'experiment', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M551.9 513c19.6 0 35.9-14.2 39.3-32.8A40.02 40.02 0 01552 512a40 40 0 01-40-39.4v.5c0 22 17.9 39.9 39.9 39.9zM752 687.8l-.3-.3c-29-17.5-62.3-26.8-97-26.8-44.9 0-87.2 15.7-121 43.8a256.27 256.27 0 01-164.9 59.9c-41.2 0-81-9.8-116.7-28L210.5 844h603l-59.9-155.2-1.6-1z" fill="#E6E6E6" /><path d="M879 824.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.6-107.6.1-.2c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1l.6 1.6L813.5 844h-603z" fill="#333" /><path d="M552 512c19.3 0 35.4-13.6 39.2-31.8.6-2.7.8-5.4.8-8.2 0-22.1-17.9-40-40-40s-40 17.9-40 40v.6a40 40 0 0040 39.4z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/experiment.svg b/src/blrec/data/webapp/assets/twotone/experiment.svg new file mode 100644 index 0000000..f5891e5 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/experiment.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M551.9 513c19.6 0 35.9-14.2 39.3-32.8A40.02 40.02 0 01552 512a40 40 0 01-40-39.4v.5c0 22 17.9 39.9 39.9 39.9zM752 687.8l-.3-.3c-29-17.5-62.3-26.8-97-26.8-44.9 0-87.2 15.7-121 43.8a256.27 256.27 0 01-164.9 59.9c-41.2 0-81-9.8-116.7-28L210.5 844h603l-59.9-155.2-1.6-1z" fill="#E6E6E6" /><path d="M879 824.9L696.3 352V178H768v-68H256v68h71.7v174L145 824.9c-2.8 7.4-4.3 15.2-4.3 23.1 0 35.3 28.7 64 64 64h614.6c7.9 0 15.7-1.5 23.1-4.3 33-12.7 49.4-49.8 36.6-82.8zM395.7 364.7V180h232.6v184.7L719.2 600c-20.7-5.3-42.1-8-63.9-8-61.2 0-119.2 21.5-165.3 60a188.78 188.78 0 01-121.3 43.9c-32.7 0-64.1-8.3-91.8-23.7l118.8-307.5zM210.5 844l41.6-107.6.1-.2c35.7 18.1 75.4 27.8 116.6 27.8 61.2 0 119.2-21.5 165.3-60 33.9-28.2 76.3-43.9 121.3-43.9 35 0 68.4 9.5 97.6 27.1l.6 1.6L813.5 844h-603z" fill="#333" /><path d="M552 512c19.3 0 35.4-13.6 39.2-31.8.6-2.7.8-5.4.8-8.2 0-22.1-17.9-40-40-40s-40 17.9-40 40v.6a40 40 0 0040 39.4z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/eye-invisible.js b/src/blrec/data/webapp/assets/twotone/eye-invisible.js new file mode 100644 index 0000000..b6d11c1 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/eye-invisible.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'eye-invisible', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M254.89 758.85l125.57-125.57a176 176 0 01248.82-248.82L757 256.72Q651.69 186.07 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q69.27 145.91 173.09 221.05zM942.2 486.2Q889.46 375.11 816.7 305L672.48 449.27a176.09 176.09 0 01-227.22 227.21L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5z" fill="#E6E6E6" /><path d="M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5zM878.63 165.56L836 122.88a8 8 0 00-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 000 11.31L155.17 889a8 8 0 0011.31 0l712.15-712.12a8 8 0 000-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 00-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 01146.2-106.69L401.31 546.2A112 112 0 01396 512z" fill="#333" /><path d="M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 00227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 01-112 112z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/eye-invisible.svg b/src/blrec/data/webapp/assets/twotone/eye-invisible.svg new file mode 100644 index 0000000..054252c --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/eye-invisible.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M254.89 758.85l125.57-125.57a176 176 0 01248.82-248.82L757 256.72Q651.69 186.07 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q69.27 145.91 173.09 221.05zM942.2 486.2Q889.46 375.11 816.7 305L672.48 449.27a176.09 176.09 0 01-227.22 227.21L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5z" fill="#E6E6E6" /><path d="M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5zM878.63 165.56L836 122.88a8 8 0 00-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 000 11.31L155.17 889a8 8 0 0011.31 0l712.15-712.12a8 8 0 000-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 00-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 01146.2-106.69L401.31 546.2A112 112 0 01396 512z" fill="#333" /><path d="M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 00227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 01-112 112z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/eye.js b/src/blrec/data/webapp/assets/twotone/eye.js new file mode 100644 index 0000000..8224a05 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/eye.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'eye', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M81.8 537.8a60.3 60.3 0 010-51.5C176.6 286.5 319.8 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c-192.1 0-335.4-100.5-430.2-300.2z" fill="#E6E6E6" /><path d="M512 258c-161.3 0-279.4 81.8-362.7 254C232.6 684.2 350.7 766 512 766c161.4 0 279.5-81.8 362.7-254C791.4 339.8 673.3 258 512 258zm-4 430c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z" fill="#E6E6E6" /><path d="M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258s279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766z" fill="#333" /><path d="M508 336c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/eye.svg b/src/blrec/data/webapp/assets/twotone/eye.svg new file mode 100644 index 0000000..23c6c2a --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/eye.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M81.8 537.8a60.3 60.3 0 010-51.5C176.6 286.5 319.8 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c-192.1 0-335.4-100.5-430.2-300.2z" fill="#E6E6E6" /><path d="M512 258c-161.3 0-279.4 81.8-362.7 254C232.6 684.2 350.7 766 512 766c161.4 0 279.5-81.8 362.7-254C791.4 339.8 673.3 258 512 258zm-4 430c-97.2 0-176-78.8-176-176s78.8-176 176-176 176 78.8 176 176-78.8 176-176 176z" fill="#E6E6E6" /><path d="M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258s279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766z" fill="#333" /><path d="M508 336c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-add.js b/src/blrec/data/webapp/assets/twotone/file-add.js new file mode 100644 index 0000000..9365355 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-add.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-add', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm126 236v48c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V644H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V472c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M544 472c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V472z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-add.svg b/src/blrec/data/webapp/assets/twotone/file-add.svg new file mode 100644 index 0000000..510fd09 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-add.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm126 236v48c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V644H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V472c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M544 472c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V644h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V472z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-excel.js b/src/blrec/data/webapp/assets/twotone/file-excel.js new file mode 100644 index 0000000..294ab7e --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-excel.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-excel', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm51.6 120h35.7a12.04 12.04 0 0110.1 18.5L546.1 623l84 130.4c3.6 5.6 2 13-3.6 16.6-2 1.2-4.2 1.9-6.5 1.9h-37.5c-4.1 0-8-2.1-10.2-5.7L510 664.8l-62.7 101.5c-2.2 3.5-6 5.7-10.2 5.7h-34.5a12.04 12.04 0 01-10.2-18.4l83.4-132.8-82.3-130.4c-3.6-5.7-1.9-13.1 3.7-16.6 1.9-1.3 4.1-1.9 6.4-1.9H442c4.2 0 8.1 2.2 10.3 5.8l61.8 102.4 61.2-102.3c2.2-3.6 6.1-5.8 10.3-5.8z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M514.1 580.1l-61.8-102.4c-2.2-3.6-6.1-5.8-10.3-5.8h-38.4c-2.3 0-4.5.6-6.4 1.9-5.6 3.5-7.3 10.9-3.7 16.6l82.3 130.4-83.4 132.8a12.04 12.04 0 0010.2 18.4h34.5c4.2 0 8-2.2 10.2-5.7L510 664.8l62.3 101.4c2.2 3.6 6.1 5.7 10.2 5.7H620c2.3 0 4.5-.7 6.5-1.9 5.6-3.6 7.2-11 3.6-16.6l-84-130.4 85.3-132.5a12.04 12.04 0 00-10.1-18.5h-35.7c-4.2 0-8.1 2.2-10.3 5.8l-61.2 102.3z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-excel.svg b/src/blrec/data/webapp/assets/twotone/file-excel.svg new file mode 100644 index 0000000..792682b --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-excel.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm51.6 120h35.7a12.04 12.04 0 0110.1 18.5L546.1 623l84 130.4c3.6 5.6 2 13-3.6 16.6-2 1.2-4.2 1.9-6.5 1.9h-37.5c-4.1 0-8-2.1-10.2-5.7L510 664.8l-62.7 101.5c-2.2 3.5-6 5.7-10.2 5.7h-34.5a12.04 12.04 0 01-10.2-18.4l83.4-132.8-82.3-130.4c-3.6-5.7-1.9-13.1 3.7-16.6 1.9-1.3 4.1-1.9 6.4-1.9H442c4.2 0 8.1 2.2 10.3 5.8l61.8 102.4 61.2-102.3c2.2-3.6 6.1-5.8 10.3-5.8z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M514.1 580.1l-61.8-102.4c-2.2-3.6-6.1-5.8-10.3-5.8h-38.4c-2.3 0-4.5.6-6.4 1.9-5.6 3.5-7.3 10.9-3.7 16.6l82.3 130.4-83.4 132.8a12.04 12.04 0 0010.2 18.4h34.5c4.2 0 8-2.2 10.2-5.7L510 664.8l62.3 101.4c2.2 3.6 6.1 5.7 10.2 5.7H620c2.3 0 4.5-.7 6.5-1.9 5.6-3.6 7.2-11 3.6-16.6l-84-130.4 85.3-132.5a12.04 12.04 0 00-10.1-18.5h-35.7c-4.2 0-8.1 2.2-10.3 5.8l-61.2 102.3z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-exclamation.js b/src/blrec/data/webapp/assets/twotone/file-exclamation.js new file mode 100644 index 0000000..8346bc3 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-exclamation.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-exclamation', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm-54 96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V448zm32 336c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M488 640h48c4.4 0 8-3.6 8-8V448c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8zm-16 104a40 40 0 1080 0 40 40 0 10-80 0z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-exclamation.svg b/src/blrec/data/webapp/assets/twotone/file-exclamation.svg new file mode 100644 index 0000000..feb70b2 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-exclamation.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm-54 96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V448zm32 336c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M488 640h48c4.4 0 8-3.6 8-8V448c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8zm-16 104a40 40 0 1080 0 40 40 0 10-80 0z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-image.js b/src/blrec/data/webapp/assets/twotone/file-image.js new file mode 100644 index 0000000..ffd8e70 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-image.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-image', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm-134 50c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm296 294H328.1c-6.7 0-10.4-7.7-6.3-12.9l99.8-127.2a8 8 0 0112.6 0l41.1 52.4 77.8-99.2a8.1 8.1 0 0112.7 0l136.5 174c4.1 5.2.4 12.9-6.3 12.9z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 00-12.6 0l-99.8 127.2a7.98 7.98 0 006.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 00-12.7 0zM360 442a40 40 0 1080 0 40 40 0 10-80 0z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-image.svg b/src/blrec/data/webapp/assets/twotone/file-image.svg new file mode 100644 index 0000000..3ff2690 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-image.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm-134 50c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm296 294H328.1c-6.7 0-10.4-7.7-6.3-12.9l99.8-127.2a8 8 0 0112.6 0l41.1 52.4 77.8-99.2a8.1 8.1 0 0112.7 0l136.5 174c4.1 5.2.4 12.9-6.3 12.9z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 00-12.6 0l-99.8 127.2a7.98 7.98 0 006.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 00-12.7 0zM360 442a40 40 0 1080 0 40 40 0 10-80 0z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-markdown.js b/src/blrec/data/webapp/assets/twotone/file-markdown.js new file mode 100644 index 0000000..9a48e9d --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-markdown.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-markdown', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm72.3 122H641c6.6 0 12 5.4 12 12v272c0 6.6-5.4 12-12 12h-27.2c-6.6 0-12-5.4-12-12V581.7L535 732.3c-2 4.3-6.3 7.1-11 7.1h-24.1a12 12 0 01-11-7.1l-66.8-150.2V758c0 6.6-5.4 12-12 12H383c-6.6 0-12-5.4-12-12V486c0-6.6 5.4-12 12-12h35c4.8 0 9.1 2.8 11 7.2l83.2 191 83.1-191c1.9-4.4 6.2-7.2 11-7.2z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M429 481.2c-1.9-4.4-6.2-7.2-11-7.2h-35c-6.6 0-12 5.4-12 12v272c0 6.6 5.4 12 12 12h27.1c6.6 0 12-5.4 12-12V582.1l66.8 150.2a12 12 0 0011 7.1H524c4.7 0 9-2.8 11-7.1l66.8-150.6V758c0 6.6 5.4 12 12 12H641c6.6 0 12-5.4 12-12V486c0-6.6-5.4-12-12-12h-34.7c-4.8 0-9.1 2.8-11 7.2l-83.1 191-83.2-191z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-markdown.svg b/src/blrec/data/webapp/assets/twotone/file-markdown.svg new file mode 100644 index 0000000..27e372a --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-markdown.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm72.3 122H641c6.6 0 12 5.4 12 12v272c0 6.6-5.4 12-12 12h-27.2c-6.6 0-12-5.4-12-12V581.7L535 732.3c-2 4.3-6.3 7.1-11 7.1h-24.1a12 12 0 01-11-7.1l-66.8-150.2V758c0 6.6-5.4 12-12 12H383c-6.6 0-12-5.4-12-12V486c0-6.6 5.4-12 12-12h35c4.8 0 9.1 2.8 11 7.2l83.2 191 83.1-191c1.9-4.4 6.2-7.2 11-7.2z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M429 481.2c-1.9-4.4-6.2-7.2-11-7.2h-35c-6.6 0-12 5.4-12 12v272c0 6.6 5.4 12 12 12h27.1c6.6 0 12-5.4 12-12V582.1l66.8 150.2a12 12 0 0011 7.1H524c4.7 0 9-2.8 11-7.1l66.8-150.6V758c0 6.6 5.4 12 12 12H641c6.6 0 12-5.4 12-12V486c0-6.6-5.4-12-12-12h-34.7c-4.8 0-9.1 2.8-11 7.2l-83.1 191-83.2-191z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-pdf.js b/src/blrec/data/webapp/assets/twotone/file-pdf.js new file mode 100644 index 0000000..d8bcdcf --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-pdf.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-pdf', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M509.2 490.8c-.7-1.3-1.4-1.9-2.2-2-2.9 3.3-2.2 31.5 2.7 51.4 4-13.6 4.7-40.5-.5-49.4zm-1.6 120.5c-7.7 20-18.8 47.3-32.1 71.4 4-1.6 8.1-3.3 12.3-5 17.6-7.2 37.3-15.3 58.9-20.2-14.9-11.8-28.4-27.7-39.1-46.2z" fill="#E6E6E6" /><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm55 287.6c16.1-1.9 30.6-2.8 44.3-2.3 12.8.4 23.6 2 32 5.1.2.1.3.1.5.2.4.2.8.3 1.2.5.5.2 1.1.4 1.6.7.1.1.3.1.4.2 4.1 1.8 7.5 4 10.1 6.6 9.1 9.1 11.8 26.1 6.2 39.6-3.2 7.7-11.7 20.5-33.3 20.5-21.8 0-53.9-9.7-82.1-24.8-25.5 4.3-53.7 13.9-80.9 23.1-5.8 2-11.8 4-17.6 5.9-38 65.2-66.5 79.4-84.1 79.4-4.2 0-7.8-.9-10.8-2-6.9-2.6-12.8-8-16.5-15-.9-1.7-1.6-3.4-2.2-5.2-1.6-4.8-2.1-9.6-1.3-13.6l.6-2.7c.1-.2.1-.4.2-.6.2-.7.4-1.4.7-2.1 0-.1.1-.2.1-.3 4.1-11.9 13.6-23.4 27.7-34.6 12.3-9.8 27.1-18.7 45.9-28.4 15.9-28 37.6-75.1 51.2-107.4-10.8-41.8-16.7-74.6-10.1-98.6.9-3.3 2.5-6.4 4.6-9.1.2-.2.3-.4.5-.6.1-.1.1-.2.2-.2 6.3-7.5 16.9-11.9 28.1-11.5 16.6.7 29.7 11.5 33 30.1 1.7 8 2.2 16.5 1.9 25.7v.7c0 .5 0 1-.1 1.5-.7 13.3-3 26.6-7.3 44.7-.4 1.6-.8 3.2-1.2 5.2l-1 4.1-.1.3c.1.2.1.3.2.5l1.8 4.5c.1.3.3.7.4 1 .7 1.6 1.4 3.3 2.1 4.8v.1c8.7 18.8 19.7 33.4 33.9 45.1 4.3 3.5 8.9 6.7 13.9 9.8 1.8-.5 3.5-.7 5.3-.9z" fill="#E6E6E6" /><path d="M391.5 761c5.7-4.4 16.2-14.5 30.1-34.7-10.3 9.4-23.4 22.4-30.1 34.7zm270.9-83l.2-.3h.2c.6-.4.5-.7.4-.9-.1-.1-4.5-9.3-45.1-7.4 35.3 13.9 43.5 9.1 44.3 8.6z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M535.9 585.3c-.8-1.7-1.5-3.3-2.2-4.9-.1-.3-.3-.7-.4-1l-1.8-4.5c-.1-.2-.1-.3-.2-.5l.1-.3.2-1.1c4-16.3 8.6-35.3 9.4-54.4v-.7c.3-8.6-.2-17.2-2-25.6-3.8-21.3-19.5-29.6-32.9-30.2-11.3-.5-21.8 4-28.1 11.4-.1.1-.1.2-.2.2-.2.2-.4.4-.5.6-2.1 2.7-3.7 5.8-4.6 9.1-6.6 24-.7 56.8 10.1 98.6-13.6 32.4-35.3 79.4-51.2 107.4v.1c-27.7 14.3-64.1 35.8-73.6 62.9 0 .1-.1.2-.1.3-.2.7-.5 1.4-.7 2.1-.1.2-.1.4-.2.6-.2.9-.5 1.8-.6 2.7-.9 4-.4 8.8 1.3 13.6.6 1.8 1.3 3.5 2.2 5.2 3.7 7 9.6 12.4 16.5 15 3 1.1 6.6 2 10.8 2 17.6 0 46.1-14.2 84.1-79.4 5.8-1.9 11.8-3.9 17.6-5.9 27.2-9.2 55.4-18.8 80.9-23.1 28.2 15.1 60.3 24.8 82.1 24.8 21.6 0 30.1-12.8 33.3-20.5 5.6-13.5 2.9-30.5-6.2-39.6-2.6-2.6-6-4.8-10.1-6.6-.1-.1-.3-.1-.4-.2-.5-.2-1.1-.4-1.6-.7-.4-.2-.8-.3-1.2-.5-.2-.1-.3-.1-.5-.2-16.2-5.8-41.7-6.7-76.3-2.8l-5.3.6c-5-3-9.6-6.3-13.9-9.8-14.2-11.3-25.1-25.8-33.8-44.7zM391.5 761c6.7-12.3 19.8-25.3 30.1-34.7-13.9 20.2-24.4 30.3-30.1 34.7zM507 488.8c.8.1 1.5.7 2.2 2 5.2 8.9 4.5 35.8.5 49.4-4.9-19.9-5.6-48.1-2.7-51.4zm-19.2 188.9c-4.2 1.7-8.3 3.4-12.3 5 13.3-24.1 24.4-51.4 32.1-71.4 10.7 18.5 24.2 34.4 39.1 46.2-21.6 4.9-41.3 13-58.9 20.2zm175.4-.9c.1.2.2.5-.4.9h-.2l-.2.3c-.8.5-9 5.3-44.3-8.6 40.6-1.9 45 7.3 45.1 7.4z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-pdf.svg b/src/blrec/data/webapp/assets/twotone/file-pdf.svg new file mode 100644 index 0000000..8eb3ffb --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-pdf.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M509.2 490.8c-.7-1.3-1.4-1.9-2.2-2-2.9 3.3-2.2 31.5 2.7 51.4 4-13.6 4.7-40.5-.5-49.4zm-1.6 120.5c-7.7 20-18.8 47.3-32.1 71.4 4-1.6 8.1-3.3 12.3-5 17.6-7.2 37.3-15.3 58.9-20.2-14.9-11.8-28.4-27.7-39.1-46.2z" fill="#E6E6E6" /><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm55 287.6c16.1-1.9 30.6-2.8 44.3-2.3 12.8.4 23.6 2 32 5.1.2.1.3.1.5.2.4.2.8.3 1.2.5.5.2 1.1.4 1.6.7.1.1.3.1.4.2 4.1 1.8 7.5 4 10.1 6.6 9.1 9.1 11.8 26.1 6.2 39.6-3.2 7.7-11.7 20.5-33.3 20.5-21.8 0-53.9-9.7-82.1-24.8-25.5 4.3-53.7 13.9-80.9 23.1-5.8 2-11.8 4-17.6 5.9-38 65.2-66.5 79.4-84.1 79.4-4.2 0-7.8-.9-10.8-2-6.9-2.6-12.8-8-16.5-15-.9-1.7-1.6-3.4-2.2-5.2-1.6-4.8-2.1-9.6-1.3-13.6l.6-2.7c.1-.2.1-.4.2-.6.2-.7.4-1.4.7-2.1 0-.1.1-.2.1-.3 4.1-11.9 13.6-23.4 27.7-34.6 12.3-9.8 27.1-18.7 45.9-28.4 15.9-28 37.6-75.1 51.2-107.4-10.8-41.8-16.7-74.6-10.1-98.6.9-3.3 2.5-6.4 4.6-9.1.2-.2.3-.4.5-.6.1-.1.1-.2.2-.2 6.3-7.5 16.9-11.9 28.1-11.5 16.6.7 29.7 11.5 33 30.1 1.7 8 2.2 16.5 1.9 25.7v.7c0 .5 0 1-.1 1.5-.7 13.3-3 26.6-7.3 44.7-.4 1.6-.8 3.2-1.2 5.2l-1 4.1-.1.3c.1.2.1.3.2.5l1.8 4.5c.1.3.3.7.4 1 .7 1.6 1.4 3.3 2.1 4.8v.1c8.7 18.8 19.7 33.4 33.9 45.1 4.3 3.5 8.9 6.7 13.9 9.8 1.8-.5 3.5-.7 5.3-.9z" fill="#E6E6E6" /><path d="M391.5 761c5.7-4.4 16.2-14.5 30.1-34.7-10.3 9.4-23.4 22.4-30.1 34.7zm270.9-83l.2-.3h.2c.6-.4.5-.7.4-.9-.1-.1-4.5-9.3-45.1-7.4 35.3 13.9 43.5 9.1 44.3 8.6z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M535.9 585.3c-.8-1.7-1.5-3.3-2.2-4.9-.1-.3-.3-.7-.4-1l-1.8-4.5c-.1-.2-.1-.3-.2-.5l.1-.3.2-1.1c4-16.3 8.6-35.3 9.4-54.4v-.7c.3-8.6-.2-17.2-2-25.6-3.8-21.3-19.5-29.6-32.9-30.2-11.3-.5-21.8 4-28.1 11.4-.1.1-.1.2-.2.2-.2.2-.4.4-.5.6-2.1 2.7-3.7 5.8-4.6 9.1-6.6 24-.7 56.8 10.1 98.6-13.6 32.4-35.3 79.4-51.2 107.4v.1c-27.7 14.3-64.1 35.8-73.6 62.9 0 .1-.1.2-.1.3-.2.7-.5 1.4-.7 2.1-.1.2-.1.4-.2.6-.2.9-.5 1.8-.6 2.7-.9 4-.4 8.8 1.3 13.6.6 1.8 1.3 3.5 2.2 5.2 3.7 7 9.6 12.4 16.5 15 3 1.1 6.6 2 10.8 2 17.6 0 46.1-14.2 84.1-79.4 5.8-1.9 11.8-3.9 17.6-5.9 27.2-9.2 55.4-18.8 80.9-23.1 28.2 15.1 60.3 24.8 82.1 24.8 21.6 0 30.1-12.8 33.3-20.5 5.6-13.5 2.9-30.5-6.2-39.6-2.6-2.6-6-4.8-10.1-6.6-.1-.1-.3-.1-.4-.2-.5-.2-1.1-.4-1.6-.7-.4-.2-.8-.3-1.2-.5-.2-.1-.3-.1-.5-.2-16.2-5.8-41.7-6.7-76.3-2.8l-5.3.6c-5-3-9.6-6.3-13.9-9.8-14.2-11.3-25.1-25.8-33.8-44.7zM391.5 761c6.7-12.3 19.8-25.3 30.1-34.7-13.9 20.2-24.4 30.3-30.1 34.7zM507 488.8c.8.1 1.5.7 2.2 2 5.2 8.9 4.5 35.8.5 49.4-4.9-19.9-5.6-48.1-2.7-51.4zm-19.2 188.9c-4.2 1.7-8.3 3.4-12.3 5 13.3-24.1 24.4-51.4 32.1-71.4 10.7 18.5 24.2 34.4 39.1 46.2-21.6 4.9-41.3 13-58.9 20.2zm175.4-.9c.1.2.2.5-.4.9h-.2l-.2.3c-.8.5-9 5.3-44.3-8.6 40.6-1.9 45 7.3 45.1 7.4z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-ppt.js b/src/blrec/data/webapp/assets/twotone/file-ppt.js new file mode 100644 index 0000000..01415c0 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-ppt.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-ppt', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M464.5 516.2v108.4h38.9c44.7 0 71.2-10.9 71.2-54.3 0-34.4-20.1-54.1-53.9-54.1h-56.2z" fill="#E6E6E6" /><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm90 218.4c0 55.2-36.8 94.1-96.2 94.1h-63.3V760c0 4.4-3.6 8-8 8H424c-4.4 0-8-3.6-8-8V484c0-4.4 3.6-8 8-8v.1h104c59.7 0 96 39.8 96 94.3z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M424 476.1c-4.4-.1-8 3.5-8 7.9v276c0 4.4 3.6 8 8 8h32.5c4.4 0 8-3.6 8-8v-95.5h63.3c59.4 0 96.2-38.9 96.2-94.1 0-54.5-36.3-94.3-96-94.3H424zm150.6 94.2c0 43.4-26.5 54.3-71.2 54.3h-38.9V516.2h56.2c33.8 0 53.9 19.7 53.9 54.1z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-ppt.svg b/src/blrec/data/webapp/assets/twotone/file-ppt.svg new file mode 100644 index 0000000..1e9d739 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-ppt.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M464.5 516.2v108.4h38.9c44.7 0 71.2-10.9 71.2-54.3 0-34.4-20.1-54.1-53.9-54.1h-56.2z" fill="#E6E6E6" /><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm90 218.4c0 55.2-36.8 94.1-96.2 94.1h-63.3V760c0 4.4-3.6 8-8 8H424c-4.4 0-8-3.6-8-8V484c0-4.4 3.6-8 8-8v.1h104c59.7 0 96 39.8 96 94.3z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M424 476.1c-4.4-.1-8 3.5-8 7.9v276c0 4.4 3.6 8 8 8h32.5c4.4 0 8-3.6 8-8v-95.5h63.3c59.4 0 96.2-38.9 96.2-94.1 0-54.5-36.3-94.3-96-94.3H424zm150.6 94.2c0 43.4-26.5 54.3-71.2 54.3h-38.9V516.2h56.2c33.8 0 53.9 19.7 53.9 54.1z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-text.js b/src/blrec/data/webapp/assets/twotone/file-text.js new file mode 100644 index 0000000..5069bb5 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-text.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-text', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm-22 322c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm200-184v48c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8zm192 128H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-text.svg b/src/blrec/data/webapp/assets/twotone/file-text.svg new file mode 100644 index 0000000..d284782 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-text.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm-22 322c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm200-184v48c0 4.4-3.6 8-8 8H320c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h384c4.4 0 8 3.6 8 8z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8zm192 128H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-unknown.js b/src/blrec/data/webapp/assets/twotone/file-unknown.js new file mode 100644 index 0000000..5339efe --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-unknown.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-unknown', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm-22 424c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm110-228.4c.7 44.9-29.7 84.5-74.3 98.9-5.7 1.8-9.7 7.3-9.7 13.3V672c0 5.5-4.5 10-10 10h-32c-5.5 0-10-4.5-10-10v-32c.2-19.8 15.4-37.3 34.7-40.1C549 596.2 570 574.3 570 549c0-28.1-25.8-51.5-58-51.5s-58 23.4-58 51.6c0 5.2-4.4 9.4-9.8 9.4h-32.4c-5.4 0-9.8-4.1-9.8-9.5 0-57.4 50.1-103.7 111.5-103 59.3.8 107.7 46.1 108.5 101.6z" fill="#E6E6E6" /><path d="M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.6-9.4-22.6zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M480 744a32 32 0 1064 0 32 32 0 10-64 0zm-78-195c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-unknown.svg b/src/blrec/data/webapp/assets/twotone/file-unknown.svg new file mode 100644 index 0000000..6c60ed5 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-unknown.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm-22 424c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm110-228.4c.7 44.9-29.7 84.5-74.3 98.9-5.7 1.8-9.7 7.3-9.7 13.3V672c0 5.5-4.5 10-10 10h-32c-5.5 0-10-4.5-10-10v-32c.2-19.8 15.4-37.3 34.7-40.1C549 596.2 570 574.3 570 549c0-28.1-25.8-51.5-58-51.5s-58 23.4-58 51.6c0 5.2-4.4 9.4-9.8 9.4h-32.4c-5.4 0-9.8-4.1-9.8-9.5 0-57.4 50.1-103.7 111.5-103 59.3.8 107.7 46.1 108.5 101.6z" fill="#E6E6E6" /><path d="M854.6 288.7L639.4 73.4c-6-6-14.2-9.4-22.7-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.6-9.4-22.6zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M480 744a32 32 0 1064 0 32 32 0 10-64 0zm-78-195c0 5.4 4.4 9.5 9.8 9.5h32.4c5.4 0 9.8-4.2 9.8-9.4 0-28.2 25.8-51.6 58-51.6s58 23.4 58 51.5c0 25.3-21 47.2-49.3 50.9-19.3 2.8-34.5 20.3-34.7 40.1v32c0 5.5 4.5 10 10 10h32c5.5 0 10-4.5 10-10v-12.2c0-6 4-11.5 9.7-13.3 44.6-14.4 75-54 74.3-98.9-.8-55.5-49.2-100.8-108.5-101.6-61.4-.7-111.5 45.6-111.5 103z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-word.js b/src/blrec/data/webapp/assets/twotone/file-word.js new file mode 100644 index 0000000..c4bebe7 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-word.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-word', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm101.3 129.3c1.3-5.4 6.1-9.3 11.7-9.3h35.6a12.04 12.04 0 0111.6 15.1l-74.4 276c-1.4 5.3-6.2 8.9-11.6 8.9h-31.8c-5.4 0-10.2-3.7-11.6-8.9l-52.8-197-52.8 197c-1.4 5.3-6.2 8.9-11.6 8.9h-32c-5.4 0-10.2-3.7-11.6-8.9l-74.2-276a12.02 12.02 0 0111.6-15.1h35.4c5.6 0 10.4 3.9 11.7 9.3L434.6 680l49.7-198.9c1.3-5.4 6.1-9.1 11.6-9.1h32.2c5.5 0 10.3 3.7 11.6 9.1l49.8 199.3 45.8-199.1z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M528.1 472h-32.2c-5.5 0-10.3 3.7-11.6 9.1L434.6 680l-46.1-198.7c-1.3-5.4-6.1-9.3-11.7-9.3h-35.4a12.02 12.02 0 00-11.6 15.1l74.2 276c1.4 5.2 6.2 8.9 11.6 8.9h32c5.4 0 10.2-3.6 11.6-8.9l52.8-197 52.8 197c1.4 5.2 6.2 8.9 11.6 8.9h31.8c5.4 0 10.2-3.6 11.6-8.9l74.4-276a12.04 12.04 0 00-11.6-15.1H647c-5.6 0-10.4 3.9-11.7 9.3l-45.8 199.1-49.8-199.3c-1.3-5.4-6.1-9.1-11.6-9.1z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-word.svg b/src/blrec/data/webapp/assets/twotone/file-word.svg new file mode 100644 index 0000000..40c9f64 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-word.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42zm101.3 129.3c1.3-5.4 6.1-9.3 11.7-9.3h35.6a12.04 12.04 0 0111.6 15.1l-74.4 276c-1.4 5.3-6.2 8.9-11.6 8.9h-31.8c-5.4 0-10.2-3.7-11.6-8.9l-52.8-197-52.8 197c-1.4 5.3-6.2 8.9-11.6 8.9h-32c-5.4 0-10.2-3.7-11.6-8.9l-74.2-276a12.02 12.02 0 0111.6-15.1h35.4c5.6 0 10.4 3.9 11.7 9.3L434.6 680l49.7-198.9c1.3-5.4 6.1-9.1 11.6-9.1h32.2c5.5 0 10.3 3.7 11.6 9.1l49.8 199.3 45.8-199.1z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M528.1 472h-32.2c-5.5 0-10.3 3.7-11.6 9.1L434.6 680l-46.1-198.7c-1.3-5.4-6.1-9.3-11.7-9.3h-35.4a12.02 12.02 0 00-11.6 15.1l74.2 276c1.4 5.2 6.2 8.9 11.6 8.9h32c5.4 0 10.2-3.6 11.6-8.9l52.8-197 52.8 197c1.4 5.2 6.2 8.9 11.6 8.9h31.8c5.4 0 10.2-3.6 11.6-8.9l74.4-276a12.04 12.04 0 00-11.6-15.1H647c-5.6 0-10.4 3.9-11.7 9.3l-45.8 199.1-49.8-199.3c-1.3-5.4-6.1-9.1-11.6-9.1z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-zip.js b/src/blrec/data/webapp/assets/twotone/file-zip.js new file mode 100644 index 0000000..caba620 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-zip.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file-zip', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M344 630h32v2h-32z" fill="#E6E6E6" /><path d="M534 352V136H360v64h64v64h-64v64h64v64h-64v64h64v64h-64v62h64v160H296V520h64v-64h-64v-64h64v-64h-64v-64h64v-64h-64v-64h-64v752h560V394H576a42 42 0 01-42-42z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h64v64h64v-64h174v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M296 392h64v64h-64zm0-128h64v64h-64zm0 318v160h128V582h-64v-62h-64v62zm48 50v-2h32v64h-32v-62zm16-432h64v64h-64zm0 256h64v64h-64zm0-128h64v64h-64z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file-zip.svg b/src/blrec/data/webapp/assets/twotone/file-zip.svg new file mode 100644 index 0000000..a106a23 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file-zip.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M344 630h32v2h-32z" fill="#E6E6E6" /><path d="M534 352V136H360v64h64v64h-64v64h64v64h-64v64h64v64h-64v62h64v160H296V520h64v-64h-64v-64h64v-64h-64v-64h64v-64h-64v-64h-64v752h560V394H576a42 42 0 01-42-42z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h64v64h64v-64h174v216a42 42 0 0042 42h216v494z" fill="#333" /><path d="M296 392h64v64h-64zm0-128h64v64h-64zm0 318v160h128V582h-64v-62h-64v62zm48 50v-2h32v64h-32v-62zm16-432h64v64h-64zm0 256h64v64h-64zm0-128h64v64h-64z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file.js b/src/blrec/data/webapp/assets/twotone/file.js new file mode 100644 index 0000000..19ac33a --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'file', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/file.svg b/src/blrec/data/webapp/assets/twotone/file.svg new file mode 100644 index 0000000..58de3ca --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/file.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M534 352V136H232v752h560V394H576a42 42 0 01-42-42z" fill="#E6E6E6" /><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/filter.js b/src/blrec/data/webapp/assets/twotone/filter.js new file mode 100644 index 0000000..3ec8ac4 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/filter.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'filter', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M420.6 798h182.9V642H420.6zM411 561.4l9.5 16.6h183l9.5-16.6L811.3 226H212.7z" fill="#E6E6E6" /><path d="M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 597.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V597.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.5 798H420.6V642h182.9v156zm9.5-236.6l-9.5 16.6h-183l-9.5-16.6L212.7 226h598.6L613 561.4z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/filter.svg b/src/blrec/data/webapp/assets/twotone/filter.svg new file mode 100644 index 0000000..787b2cc --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/filter.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M420.6 798h182.9V642H420.6zM411 561.4l9.5 16.6h183l9.5-16.6L811.3 226H212.7z" fill="#E6E6E6" /><path d="M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 597.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V597.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.5 798H420.6V642h182.9v156zm9.5-236.6l-9.5 16.6h-183l-9.5-16.6L212.7 226h598.6L613 561.4z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/fire.js b/src/blrec/data/webapp/assets/twotone/fire.js new file mode 100644 index 0000000..36520ff --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/fire.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'fire', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M737 438.6c-9.6 15.5-21.1 30.7-34.4 45.6a73.1 73.1 0 01-51 24.4 73.36 73.36 0 01-53.4-18.8 74.01 74.01 0 01-24.4-59.8c3-47.4-12.4-103.1-45.8-165.7-16.9-31.4-37.1-58.2-61.2-80.4a240 240 0 01-12.1 46.5 354.26 354.26 0 01-58.2 101 349.6 349.6 0 01-58.6 56.8c-34 26.1-62 60-80.8 97.9a275.96 275.96 0 00-29.1 124c0 74.9 29.5 145.3 83 198.4 53.7 53.2 125 82.4 201 82.4s147.3-29.2 201-82.4c53.5-53 83-123.5 83-198.4 0-39.2-8.1-77.3-24-113.1-9.3-21-21-40.5-35-58.4z" fill="#E6E6E6" /><path d="M834.1 469.2A347.49 347.49 0 00751.2 354l-29.1-26.7a8.09 8.09 0 00-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 01-47.5 46.1 352.6 352.6 0 00-100.3 121.5A347.75 347.75 0 00160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0075.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 00760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0027.7-136c0-48.8-10-96.2-29.9-140.9zM713 808.5c-53.7 53.2-125 82.4-201 82.4s-147.3-29.2-201-82.4c-53.5-53.1-83-123.5-83-198.4 0-43.5 9.8-85.2 29.1-124 18.8-37.9 46.8-71.8 80.8-97.9a349.6 349.6 0 0058.6-56.8c25-30.5 44.6-64.5 58.2-101a240 240 0 0012.1-46.5c24.1 22.2 44.3 49 61.2 80.4 33.4 62.6 48.8 118.3 45.8 165.7a74.01 74.01 0 0024.4 59.8 73.36 73.36 0 0053.4 18.8c19.7-1 37.8-9.7 51-24.4 13.3-14.9 24.8-30.1 34.4-45.6 14 17.9 25.7 37.4 35 58.4 15.9 35.8 24 73.9 24 113.1 0 74.9-29.5 145.4-83 198.4z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/fire.svg b/src/blrec/data/webapp/assets/twotone/fire.svg new file mode 100644 index 0000000..67d54d9 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/fire.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M737 438.6c-9.6 15.5-21.1 30.7-34.4 45.6a73.1 73.1 0 01-51 24.4 73.36 73.36 0 01-53.4-18.8 74.01 74.01 0 01-24.4-59.8c3-47.4-12.4-103.1-45.8-165.7-16.9-31.4-37.1-58.2-61.2-80.4a240 240 0 01-12.1 46.5 354.26 354.26 0 01-58.2 101 349.6 349.6 0 01-58.6 56.8c-34 26.1-62 60-80.8 97.9a275.96 275.96 0 00-29.1 124c0 74.9 29.5 145.3 83 198.4 53.7 53.2 125 82.4 201 82.4s147.3-29.2 201-82.4c53.5-53 83-123.5 83-198.4 0-39.2-8.1-77.3-24-113.1-9.3-21-21-40.5-35-58.4z" fill="#E6E6E6" /><path d="M834.1 469.2A347.49 347.49 0 00751.2 354l-29.1-26.7a8.09 8.09 0 00-13 3.3l-13 37.3c-8.1 23.4-23 47.3-44.1 70.8-1.4 1.5-3 1.9-4.1 2-1.1.1-2.8-.1-4.3-1.5-1.4-1.2-2.1-3-2-4.8 3.7-60.2-14.3-128.1-53.7-202C555.3 171 510 123.1 453.4 89.7l-41.3-24.3c-5.4-3.2-12.3 1-12 7.3l2.2 48c1.5 32.8-2.3 61.8-11.3 85.9-11 29.5-26.8 56.9-47 81.5a295.64 295.64 0 01-47.5 46.1 352.6 352.6 0 00-100.3 121.5A347.75 347.75 0 00160 610c0 47.2 9.3 92.9 27.7 136a349.4 349.4 0 0075.5 110.9c32.4 32 70 57.2 111.9 74.7C418.5 949.8 464.5 959 512 959s93.5-9.2 136.9-27.3A348.6 348.6 0 00760.8 857c32.4-32 57.8-69.4 75.5-110.9a344.2 344.2 0 0027.7-136c0-48.8-10-96.2-29.9-140.9zM713 808.5c-53.7 53.2-125 82.4-201 82.4s-147.3-29.2-201-82.4c-53.5-53.1-83-123.5-83-198.4 0-43.5 9.8-85.2 29.1-124 18.8-37.9 46.8-71.8 80.8-97.9a349.6 349.6 0 0058.6-56.8c25-30.5 44.6-64.5 58.2-101a240 240 0 0012.1-46.5c24.1 22.2 44.3 49 61.2 80.4 33.4 62.6 48.8 118.3 45.8 165.7a74.01 74.01 0 0024.4 59.8 73.36 73.36 0 0053.4 18.8c19.7-1 37.8-9.7 51-24.4 13.3-14.9 24.8-30.1 34.4-45.6 14 17.9 25.7 37.4 35 58.4 15.9 35.8 24 73.9 24 113.1 0 74.9-29.5 145.4-83 198.4z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/flag.js b/src/blrec/data/webapp/assets/twotone/flag.js new file mode 100644 index 0000000..5df1002 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/flag.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'flag', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M184 232h368v336H184z" fill="#E6E6E6" /><path d="M624 632c0 4.4-3.6 8-8 8H504v73h336V377H624v255z" fill="#E6E6E6" /><path d="M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32zM184 568V232h368v336H184zm656 145H504v-73h112c4.4 0 8-3.6 8-8V377h216v336z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/flag.svg b/src/blrec/data/webapp/assets/twotone/flag.svg new file mode 100644 index 0000000..184208f --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/flag.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M184 232h368v336H184z" fill="#E6E6E6" /><path d="M624 632c0 4.4-3.6 8-8 8H504v73h336V377H624v255z" fill="#E6E6E6" /><path d="M880 305H624V192c0-17.7-14.3-32-32-32H184v-40c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v784c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V640h248v113c0 17.7 14.3 32 32 32h416c17.7 0 32-14.3 32-32V337c0-17.7-14.3-32-32-32zM184 568V232h368v336H184zm656 145H504v-73h112c4.4 0 8-3.6 8-8V377h216v336z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/folder-add.js b/src/blrec/data/webapp/assets/twotone/folder-add.js new file mode 100644 index 0000000..c3c6d3f --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/folder-add.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'folder-add', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M372.5 256H184v512h656V370.4H492.1L372.5 256zM540 443.1V528h84.5c4.1 0 7.5 3.1 7.5 7v42c0 3.8-3.4 7-7.5 7H540v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V584h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H484v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1z" fill="#E6E6E6" /><path d="M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z" fill="#333" /><path d="M484 443.1V528h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H484v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V584h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H540v-84.9c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/folder-add.svg b/src/blrec/data/webapp/assets/twotone/folder-add.svg new file mode 100644 index 0000000..0164c1d --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/folder-add.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M372.5 256H184v512h656V370.4H492.1L372.5 256zM540 443.1V528h84.5c4.1 0 7.5 3.1 7.5 7v42c0 3.8-3.4 7-7.5 7H540v84.9c0 3.9-3.1 7.1-7 7.1h-42c-3.8 0-7-3.2-7-7.1V584h-84.5c-4.1 0-7.5-3.2-7.5-7v-42c0-3.9 3.4-7 7.5-7H484v-84.9c0-3.9 3.2-7.1 7-7.1h42c3.9 0 7 3.2 7 7.1z" fill="#E6E6E6" /><path d="M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z" fill="#333" /><path d="M484 443.1V528h-84.5c-4.1 0-7.5 3.1-7.5 7v42c0 3.8 3.4 7 7.5 7H484v84.9c0 3.9 3.2 7.1 7 7.1h42c3.9 0 7-3.2 7-7.1V584h84.5c4.1 0 7.5-3.2 7.5-7v-42c0-3.9-3.4-7-7.5-7H540v-84.9c0-3.9-3.1-7.1-7-7.1h-42c-3.8 0-7 3.2-7 7.1z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/folder-open.js b/src/blrec/data/webapp/assets/twotone/folder-open.js new file mode 100644 index 0000000..0897adf --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/folder-open.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'folder-open', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M159 768h612.3l103.4-256H262.3z" fill="#E6E6E6" /><path d="M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/folder-open.svg b/src/blrec/data/webapp/assets/twotone/folder-open.svg new file mode 100644 index 0000000..841f9e1 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/folder-open.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M159 768h612.3l103.4-256H262.3z" fill="#E6E6E6" /><path d="M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/folder.js b/src/blrec/data/webapp/assets/twotone/folder.js new file mode 100644 index 0000000..b2f1385 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/folder.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'folder', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z" fill="#333" /><path d="M372.5 256H184v512h656V370.4H492.1z" fill="#E6E6E6" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/folder.svg b/src/blrec/data/webapp/assets/twotone/folder.svg new file mode 100644 index 0000000..8c1ffac --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/folder.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z" fill="#333" /><path d="M372.5 256H184v512h656V370.4H492.1z" fill="#E6E6E6" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/frown.js b/src/blrec/data/webapp/assets/twotone/frown.js new file mode 100644 index 0000000..985e983 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/frown.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'frown', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm376 272h-48.1c-4.2 0-7.8-3.2-8.1-7.4C604 636.1 562.5 597 512 597s-92.1 39.1-95.8 88.6c-.3 4.2-3.9 7.4-8.1 7.4H360a8 8 0 01-8-8.4c4.4-84.3 74.5-151.6 160-151.6s155.6 67.3 160 151.6a8 8 0 01-8 8.4zm24-224a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" fill="#E6E6E6" /><path d="M288 421a48 48 0 1096 0 48 48 0 10-96 0zm224 112c-85.5 0-155.6 67.3-160 151.6a8 8 0 008 8.4h48.1c4.2 0 7.8-3.2 8.1-7.4 3.7-49.5 45.3-88.6 95.8-88.6s92 39.1 95.8 88.6c.3 4.2 3.9 7.4 8.1 7.4H664a8 8 0 008-8.4C667.6 600.3 597.5 533 512 533zm128-112a48 48 0 1096 0 48 48 0 10-96 0z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/frown.svg b/src/blrec/data/webapp/assets/twotone/frown.svg new file mode 100644 index 0000000..ab47702 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/frown.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm376 272h-48.1c-4.2 0-7.8-3.2-8.1-7.4C604 636.1 562.5 597 512 597s-92.1 39.1-95.8 88.6c-.3 4.2-3.9 7.4-8.1 7.4H360a8 8 0 01-8-8.4c4.4-84.3 74.5-151.6 160-151.6s155.6 67.3 160 151.6a8 8 0 01-8 8.4zm24-224a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" fill="#E6E6E6" /><path d="M288 421a48 48 0 1096 0 48 48 0 10-96 0zm224 112c-85.5 0-155.6 67.3-160 151.6a8 8 0 008 8.4h48.1c4.2 0 7.8-3.2 8.1-7.4 3.7-49.5 45.3-88.6 95.8-88.6s92 39.1 95.8 88.6c.3 4.2 3.9 7.4 8.1 7.4H664a8 8 0 008-8.4C667.6 600.3 597.5 533 512 533zm128-112a48 48 0 1096 0 48 48 0 10-96 0z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/fund.js b/src/blrec/data/webapp/assets/twotone/fund.js new file mode 100644 index 0000000..340cf3b --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/fund.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'fund', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V232h752v560z" fill="#333" /><path d="M136 792h752V232H136v560zm56.4-130.5l214.9-215c3.1-3.1 8.2-3.1 11.3 0L533 561l254.5-254.6c3.1-3.1 8.2-3.1 11.3 0l36.8 36.8c3.1 3.1 3.1 8.2 0 11.3l-297 297.2a8.03 8.03 0 01-11.3 0L412.9 537.2 240.4 709.7a8.03 8.03 0 01-11.3 0l-36.7-36.9a8.03 8.03 0 010-11.3z" fill="#E6E6E6" /><path d="M229.1 709.7c3.1 3.1 8.2 3.1 11.3 0l172.5-172.5 114.4 114.5c3.1 3.1 8.2 3.1 11.3 0l297-297.2c3.1-3.1 3.1-8.2 0-11.3l-36.8-36.8a8.03 8.03 0 00-11.3 0L533 561 418.6 446.5a8.03 8.03 0 00-11.3 0l-214.9 215a8.03 8.03 0 000 11.3l36.7 36.9z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/fund.svg b/src/blrec/data/webapp/assets/twotone/fund.svg new file mode 100644 index 0000000..c6778b8 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/fund.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V232h752v560z" fill="#333" /><path d="M136 792h752V232H136v560zm56.4-130.5l214.9-215c3.1-3.1 8.2-3.1 11.3 0L533 561l254.5-254.6c3.1-3.1 8.2-3.1 11.3 0l36.8 36.8c3.1 3.1 3.1 8.2 0 11.3l-297 297.2a8.03 8.03 0 01-11.3 0L412.9 537.2 240.4 709.7a8.03 8.03 0 01-11.3 0l-36.7-36.9a8.03 8.03 0 010-11.3z" fill="#E6E6E6" /><path d="M229.1 709.7c3.1 3.1 8.2 3.1 11.3 0l172.5-172.5 114.4 114.5c3.1 3.1 8.2 3.1 11.3 0l297-297.2c3.1-3.1 3.1-8.2 0-11.3l-36.8-36.8a8.03 8.03 0 00-11.3 0L533 561 418.6 446.5a8.03 8.03 0 00-11.3 0l-214.9 215a8.03 8.03 0 000 11.3l36.7 36.9z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/funnel-plot.js b/src/blrec/data/webapp/assets/twotone/funnel-plot.js new file mode 100644 index 0000000..fddcea0 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/funnel-plot.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'funnel-plot', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M420.6 798h182.9V650H420.6zM297.7 374h428.6l85-148H212.7zm113.2 197.4l8.4 14.6h185.3l8.4-14.6L689.6 438H334.4z" fill="#E6E6E6" /><path d="M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 607.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V607.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.5 798H420.6V650h182.9v148zm9.5-226.6l-8.4 14.6H419.3l-8.4-14.6L334.4 438h355.2L613 571.4zM726.3 374H297.7l-85-148h598.6l-85 148z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/funnel-plot.svg b/src/blrec/data/webapp/assets/twotone/funnel-plot.svg new file mode 100644 index 0000000..03987ca --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/funnel-plot.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M420.6 798h182.9V650H420.6zM297.7 374h428.6l85-148H212.7zm113.2 197.4l8.4 14.6h185.3l8.4-14.6L689.6 438H334.4z" fill="#E6E6E6" /><path d="M880.1 154H143.9c-24.5 0-39.8 26.7-27.5 48L349 607.4V838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V607.4L907.7 202c12.2-21.3-3.1-48-27.6-48zM603.5 798H420.6V650h182.9v148zm9.5-226.6l-8.4 14.6H419.3l-8.4-14.6L334.4 438h355.2L613 571.4zM726.3 374H297.7l-85-148h598.6l-85 148z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/gift.js b/src/blrec/data/webapp/assets/twotone/gift.js new file mode 100644 index 0000000..0807c0f --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/gift.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'gift', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M546 378h298v104H546zM228 550h250v308H228zm-48-172h298v104H180zm366 172h250v308H546z" fill="#E6E6E6" /><path d="M880 310H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v200c0 4.4 3.6 8 8 8h40v344c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V550h40c4.4 0 8-3.6 8-8V342c0-17.7-14.3-32-32-32zM478 858H228V550h250v308zm0-376H180V378h298v104zm0-176h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70 70 31.4 70 70v70zm68-70c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70h-70v-70zm250 622H546V550h250v308zm48-376H546V378h298v104z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/gift.svg b/src/blrec/data/webapp/assets/twotone/gift.svg new file mode 100644 index 0000000..f59aee7 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/gift.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M546 378h298v104H546zM228 550h250v308H228zm-48-172h298v104H180zm366 172h250v308H546z" fill="#E6E6E6" /><path d="M880 310H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v200c0 4.4 3.6 8 8 8h40v344c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V550h40c4.4 0 8-3.6 8-8V342c0-17.7-14.3-32-32-32zM478 858H228V550h250v308zm0-376H180V378h298v104zm0-176h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70 70 31.4 70 70v70zm68-70c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70h-70v-70zm250 622H546V550h250v308zm48-376H546V378h298v104z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/gold.js b/src/blrec/data/webapp/assets/twotone/gold.js new file mode 100644 index 0000000..2afb126 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/gold.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'gold', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M435.7 558.7c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM196.5 748l20.7-128h159.5l20.7 128H196.5zm709.4 58.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zM626.5 748l20.7-128h159.5l20.7 128H626.5zM342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8zm91.2-196h159.5l20.7 128h-201l20.8-128z" fill="#333" /><path d="M592.7 276H433.2l-20.8 128h201zM217.2 620l-20.7 128h200.9l-20.7-128zm430 0l-20.7 128h200.9l-20.7-128z" fill="#E6E6E6" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/gold.svg b/src/blrec/data/webapp/assets/twotone/gold.svg new file mode 100644 index 0000000..1b455f4 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/gold.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M435.7 558.7c-.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248zM196.5 748l20.7-128h159.5l20.7 128H196.5zm709.4 58.7l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8h342c.4 0 .9 0 1.3-.1 4.3-.7 7.3-4.8 6.6-9.2zM626.5 748l20.7-128h159.5l20.7 128H626.5zM342 472h342c.4 0 .9 0 1.3-.1 4.4-.7 7.3-4.8 6.6-9.2l-40.2-248c-.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-.1.4-.1.9-.1 1.3 0 4.4 3.6 8 8 8zm91.2-196h159.5l20.7 128h-201l20.8-128z" fill="#333" /><path d="M592.7 276H433.2l-20.8 128h201zM217.2 620l-20.7 128h200.9l-20.7-128zm430 0l-20.7 128h200.9l-20.7-128z" fill="#E6E6E6" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/hdd.js b/src/blrec/data/webapp/assets/twotone/hdd.js new file mode 100644 index 0000000..d448e55 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/hdd.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'hdd', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M232 888h560V680H232v208zm448-140c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 616h560V408H232v208zm72-128c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H312c-4.4 0-8-3.6-8-8v-48zm-72-144h560V136H232v208zm72-128c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H312c-4.4 0-8-3.6-8-8v-48z" fill="#E6E6E6" /><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V680h560v208zm0-272H232V408h560v208zm0-272H232V136h560v208z" fill="#333" /><path d="M312 544h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-272h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm328 516a40 40 0 1080 0 40 40 0 10-80 0z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/hdd.svg b/src/blrec/data/webapp/assets/twotone/hdd.svg new file mode 100644 index 0000000..c5922d8 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/hdd.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M232 888h560V680H232v208zm448-140c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zM232 616h560V408H232v208zm72-128c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H312c-4.4 0-8-3.6-8-8v-48zm-72-144h560V136H232v208zm72-128c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H312c-4.4 0-8-3.6-8-8v-48z" fill="#E6E6E6" /><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V680h560v208zm0-272H232V408h560v208zm0-272H232V136h560v208z" fill="#333" /><path d="M312 544h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-272h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H312c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm328 516a40 40 0 1080 0 40 40 0 10-80 0z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/heart.js b/src/blrec/data/webapp/assets/twotone/heart.js new file mode 100644 index 0000000..1d97506 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/heart.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'heart', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M923 283.6a260.04 260.04 0 00-56.9-82.8 264.4 264.4 0 00-84-55.5A265.34 265.34 0 00679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 00-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9zM512 814.8S156 586.7 156 385.5C156 283.6 240.3 201 344.3 201c73.1 0 136.5 40.8 167.7 100.4C543.2 241.8 606.6 201 679.7 201c104 0 188.3 82.6 188.3 184.5 0 201.2-356 429.3-356 429.3z" fill="#333" /><path d="M679.7 201c-73.1 0-136.5 40.8-167.7 100.4C480.8 241.8 417.4 201 344.3 201c-104 0-188.3 82.6-188.3 184.5 0 201.2 356 429.3 356 429.3s356-228.1 356-429.3C868 283.6 783.7 201 679.7 201z" fill="#E6E6E6" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/heart.svg b/src/blrec/data/webapp/assets/twotone/heart.svg new file mode 100644 index 0000000..349d43a --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/heart.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M923 283.6a260.04 260.04 0 00-56.9-82.8 264.4 264.4 0 00-84-55.5A265.34 265.34 0 00679.7 125c-49.3 0-97.4 13.5-139.2 39-10 6.1-19.5 12.8-28.5 20.1-9-7.3-18.5-14-28.5-20.1-41.8-25.5-89.9-39-139.2-39-35.5 0-69.9 6.8-102.4 20.3-31.4 13-59.7 31.7-84 55.5a258.44 258.44 0 00-56.9 82.8c-13.9 32.3-21 66.6-21 101.9 0 33.3 6.8 68 20.3 103.3 11.3 29.5 27.5 60.1 48.2 91 32.8 48.9 77.9 99.9 133.9 151.6 92.8 85.7 184.7 144.9 188.6 147.3l23.7 15.2c10.5 6.7 24 6.7 34.5 0l23.7-15.2c3.9-2.5 95.7-61.6 188.6-147.3 56-51.7 101.1-102.7 133.9-151.6 20.7-30.9 37-61.5 48.2-91 13.5-35.3 20.3-70 20.3-103.3.1-35.3-7-69.6-20.9-101.9zM512 814.8S156 586.7 156 385.5C156 283.6 240.3 201 344.3 201c73.1 0 136.5 40.8 167.7 100.4C543.2 241.8 606.6 201 679.7 201c104 0 188.3 82.6 188.3 184.5 0 201.2-356 429.3-356 429.3z" fill="#333" /><path d="M679.7 201c-73.1 0-136.5 40.8-167.7 100.4C480.8 241.8 417.4 201 344.3 201c-104 0-188.3 82.6-188.3 184.5 0 201.2 356 429.3 356 429.3s356-228.1 356-429.3C868 283.6 783.7 201 679.7 201z" fill="#E6E6E6" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/highlight.js b/src/blrec/data/webapp/assets/twotone/highlight.js new file mode 100644 index 0000000..0f2b874 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/highlight.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'highlight', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M229.6 796.3h160.2l54.3-54.1-80.1-78.9zm220.7-397.1l262.8 258.9 147.3-145-262.8-259zm-77.1 166.1l171.4 168.9 68.6-67.6-171.4-168.9z" fill="#E6E6E6" /><path d="M957.6 507.5L603.2 158.3a7.9 7.9 0 00-11.2 0L353.3 393.5a8.03 8.03 0 00-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 00-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8v55.2c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6L539 830a7.9 7.9 0 0011.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0011.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2zM389.8 796.3H229.6l134.4-133 80.1 78.9-54.3 54.1zm154.8-62.1L373.2 565.3l68.6-67.6 171.4 168.9-68.6 67.6zm168.5-76.1L450.3 399.2l147.3-145.1 262.8 259-147.3 145z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/highlight.svg b/src/blrec/data/webapp/assets/twotone/highlight.svg new file mode 100644 index 0000000..6af6a85 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/highlight.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M229.6 796.3h160.2l54.3-54.1-80.1-78.9zm220.7-397.1l262.8 258.9 147.3-145-262.8-259zm-77.1 166.1l171.4 168.9 68.6-67.6-171.4-168.9z" fill="#E6E6E6" /><path d="M957.6 507.5L603.2 158.3a7.9 7.9 0 00-11.2 0L353.3 393.5a8.03 8.03 0 00-.1 11.3l.1.1 40 39.4-117.2 115.3a8.03 8.03 0 00-.1 11.3l.1.1 39.5 38.9-189.1 187H72.1c-4.4 0-8.1 3.6-8.1 8v55.2c0 4.4 3.6 8 8 8h344.9c2.1 0 4.1-.8 5.6-2.3l76.1-75.6L539 830a7.9 7.9 0 0011.2 0l117.1-115.6 40.1 39.5a7.9 7.9 0 0011.2 0l238.7-235.2c3.4-3 3.4-8 .3-11.2zM389.8 796.3H229.6l134.4-133 80.1 78.9-54.3 54.1zm154.8-62.1L373.2 565.3l68.6-67.6 171.4 168.9-68.6 67.6zm168.5-76.1L450.3 399.2l147.3-145.1 262.8 259-147.3 145z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/home.js b/src/blrec/data/webapp/assets/twotone/home.js new file mode 100644 index 0000000..53a4008 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/home.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'home', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512.1 172.6l-370 369.7h96V868H392V640c0-22.1 17.9-40 40-40h160c22.1 0 40 17.9 40 40v228h153.9V542.3H882L535.2 195.7l-23.1-23.1zm434.5 422.9c-6 6-13.1 10.8-20.8 13.9 7.7-3.2 14.8-7.9 20.8-13.9zm-887-34.7c5 30.3 31.4 53.5 63.1 53.5h.9c-31.9 0-58.9-23-64-53.5zm-.9-10.5v-1.9 1.9zm.1-2.6c.1-3.1.5-6.1 1-9.1-.6 2.9-.9 6-1 9.1z" fill="#E6E6E6" /><path d="M951 510c0-.1-.1-.1-.1-.2l-1.8-2.1c-.1-.1-.2-.3-.4-.4-.7-.8-1.5-1.6-2.2-2.4L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.6 63.6 0 00-16 26.6l-.6 2.1-.3 1.1-.3 1.2c-.2.7-.3 1.4-.4 2.1 0 .1 0 .3-.1.4-.6 3-.9 6-1 9.1v3.3c0 .5 0 1 .1 1.5 0 .5 0 .9.1 1.4 0 .5.1 1 .1 1.5 0 .6.1 1.2.2 1.8 0 .3.1.6.1.9l.3 2.5v.1c5.1 30.5 32.2 53.5 64 53.5h42.5V940h691.7V614.3h43.4c8.6 0 16.9-1.7 24.5-4.9s14.7-7.9 20.8-13.9a63.6 63.6 0 0018.7-45.3c0-14.7-5-28.8-14.3-40.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/home.svg b/src/blrec/data/webapp/assets/twotone/home.svg new file mode 100644 index 0000000..cb9b6d1 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/home.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512.1 172.6l-370 369.7h96V868H392V640c0-22.1 17.9-40 40-40h160c22.1 0 40 17.9 40 40v228h153.9V542.3H882L535.2 195.7l-23.1-23.1zm434.5 422.9c-6 6-13.1 10.8-20.8 13.9 7.7-3.2 14.8-7.9 20.8-13.9zm-887-34.7c5 30.3 31.4 53.5 63.1 53.5h.9c-31.9 0-58.9-23-64-53.5zm-.9-10.5v-1.9 1.9zm.1-2.6c.1-3.1.5-6.1 1-9.1-.6 2.9-.9 6-1 9.1z" fill="#E6E6E6" /><path d="M951 510c0-.1-.1-.1-.1-.2l-1.8-2.1c-.1-.1-.2-.3-.4-.4-.7-.8-1.5-1.6-2.2-2.4L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.6 63.6 0 00-16 26.6l-.6 2.1-.3 1.1-.3 1.2c-.2.7-.3 1.4-.4 2.1 0 .1 0 .3-.1.4-.6 3-.9 6-1 9.1v3.3c0 .5 0 1 .1 1.5 0 .5 0 .9.1 1.4 0 .5.1 1 .1 1.5 0 .6.1 1.2.2 1.8 0 .3.1.6.1.9l.3 2.5v.1c5.1 30.5 32.2 53.5 64 53.5h42.5V940h691.7V614.3h43.4c8.6 0 16.9-1.7 24.5-4.9s14.7-7.9 20.8-13.9a63.6 63.6 0 0018.7-45.3c0-14.7-5-28.8-14.3-40.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/hourglass.js b/src/blrec/data/webapp/assets/twotone/hourglass.js new file mode 100644 index 0000000..055d9a6 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/hourglass.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'hourglass', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 548c-42.2 0-81.9 16.4-111.7 46.3A156.63 156.63 0 00354 706v134h316V706c0-42.2-16.4-81.9-46.3-111.7A156.63 156.63 0 00512 548zM354 318c0 42.2 16.4 81.9 46.3 111.7C430.1 459.6 469.8 476 512 476s81.9-16.4 111.7-46.3C653.6 399.9 670 360.2 670 318V184H354v134z" fill="#E6E6E6" /><path d="M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194zm-72 388v134H354V706c0-42.2 16.4-81.9 46.3-111.7C430.1 564.4 469.8 548 512 548s81.9 16.4 111.7 46.3C653.6 624.1 670 663.8 670 706zm0-388c0 42.2-16.4 81.9-46.3 111.7C593.9 459.6 554.2 476 512 476s-81.9-16.4-111.7-46.3A156.63 156.63 0 01354 318V184h316v134z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/hourglass.svg b/src/blrec/data/webapp/assets/twotone/hourglass.svg new file mode 100644 index 0000000..0c52161 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/hourglass.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 548c-42.2 0-81.9 16.4-111.7 46.3A156.63 156.63 0 00354 706v134h316V706c0-42.2-16.4-81.9-46.3-111.7A156.63 156.63 0 00512 548zM354 318c0 42.2 16.4 81.9 46.3 111.7C430.1 459.6 469.8 476 512 476s81.9-16.4 111.7-46.3C653.6 399.9 670 360.2 670 318V184H354v134z" fill="#E6E6E6" /><path d="M742 318V184h86c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H196c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h86v134c0 81.5 42.4 153.2 106.4 194-64 40.8-106.4 112.5-106.4 194v134h-86c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h632c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-86V706c0-81.5-42.4-153.2-106.4-194 64-40.8 106.4-112.5 106.4-194zm-72 388v134H354V706c0-42.2 16.4-81.9 46.3-111.7C430.1 564.4 469.8 548 512 548s81.9 16.4 111.7 46.3C653.6 624.1 670 663.8 670 706zm0-388c0 42.2-16.4 81.9-46.3 111.7C593.9 459.6 554.2 476 512 476s-81.9-16.4-111.7-46.3A156.63 156.63 0 01354 318V184h316v134z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/html5.js b/src/blrec/data/webapp/assets/twotone/html5.js new file mode 100644 index 0000000..d92d2a5 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/html5.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'html5', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M145 96l66 746.6L511.8 928l299.6-85.4L878.7 96H145zm610.9 700.6l-244.1 69.6-245.2-69.6-56.7-641.2h603.8l-57.8 641.2z" fill="#333" /><path d="M209.9 155.4l56.7 641.2 245.2 69.6 244.1-69.6 57.8-641.2H209.9zm530.4 117.9l-4.8 47.2-1.7 19.5H381.7l8.2 94.2H511v-.2h214.7l-3.2 24.3-21.2 242.2-1.7 16.3-187.7 51.7v.4h-1.7l-188.6-52-11.3-144.7h91l6.5 73.2 102.4 27.7h.8v-.2l102.4-27.7 11.4-118.5H511.9v.1H305.4l-22.7-253.5L281 249h461l-1.7 24.3z" fill="#E6E6E6" /><path d="M281 249l1.7 24.3 22.7 253.5h206.5v-.1h112.9l-11.4 118.5L511 672.9v.2h-.8l-102.4-27.7-6.5-73.2h-91l11.3 144.7 188.6 52h1.7v-.4l187.7-51.7 1.7-16.3 21.2-242.2 3.2-24.3H511v.2H389.9l-8.2-94.2h352.1l1.7-19.5 4.8-47.2L742 249H511z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/html5.svg b/src/blrec/data/webapp/assets/twotone/html5.svg new file mode 100644 index 0000000..fa83f25 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/html5.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M145 96l66 746.6L511.8 928l299.6-85.4L878.7 96H145zm610.9 700.6l-244.1 69.6-245.2-69.6-56.7-641.2h603.8l-57.8 641.2z" fill="#333" /><path d="M209.9 155.4l56.7 641.2 245.2 69.6 244.1-69.6 57.8-641.2H209.9zm530.4 117.9l-4.8 47.2-1.7 19.5H381.7l8.2 94.2H511v-.2h214.7l-3.2 24.3-21.2 242.2-1.7 16.3-187.7 51.7v.4h-1.7l-188.6-52-11.3-144.7h91l6.5 73.2 102.4 27.7h.8v-.2l102.4-27.7 11.4-118.5H511.9v.1H305.4l-22.7-253.5L281 249h461l-1.7 24.3z" fill="#E6E6E6" /><path d="M281 249l1.7 24.3 22.7 253.5h206.5v-.1h112.9l-11.4 118.5L511 672.9v.2h-.8l-102.4-27.7-6.5-73.2h-91l11.3 144.7 188.6 52h1.7v-.4l187.7-51.7 1.7-16.3 21.2-242.2 3.2-24.3H511v.2H389.9l-8.2-94.2h352.1l1.7-19.5 4.8-47.2L742 249H511z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/idcard.js b/src/blrec/data/webapp/assets/twotone/idcard.js new file mode 100644 index 0000000..97a22c4 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/idcard.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'idcard', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V232h752v560z" fill="#333" /><path d="M136 792h752V232H136v560zm472-372c0-4.4 1-8 2.3-8h123.4c1.3 0 2.3 3.6 2.3 8v48c0 4.4-1 8-2.3 8H610.3c-1.3 0-2.3-3.6-2.3-8v-48zm0 144c0-4.4 3.2-8 7.1-8h185.7c3.9 0 7.1 3.6 7.1 8v48c0 4.4-3.2 8-7.1 8H615.1c-3.9 0-7.1-3.6-7.1-8v-48zM216.2 664.6c2.8-53.3 31.9-99.6 74.6-126.1-18.1-20-29.1-46.4-29.1-75.5 0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.6-29.1 75.5 42.6 26.4 71.8 72.8 74.6 126.1a8 8 0 01-8 8.4h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H224c-4.6 0-8.2-3.8-7.8-8.4z" fill="#E6E6E6" /><path d="M321.3 463a51.7 52 0 10103.4 0 51.7 52 0 10-103.4 0z" fill="#E6E6E6" /><path d="M610.3 476h123.4c1.3 0 2.3-3.6 2.3-8v-48c0-4.4-1-8-2.3-8H610.3c-1.3 0-2.3 3.6-2.3 8v48c0 4.4 1 8 2.3 8zm4.8 144h185.7c3.9 0 7.1-3.6 7.1-8v-48c0-4.4-3.2-8-7.1-8H615.1c-3.9 0-7.1 3.6-7.1 8v48c0 4.4 3.2 8 7.1 8zM224 673h43.9c4.2 0 7.6-3.3 7.9-7.5 3.8-50.5 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H522a8 8 0 008-8.4c-2.8-53.3-32-99.7-74.6-126.1a111.8 111.8 0 0029.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 00-74.6 126.1c-.4 4.6 3.2 8.4 7.8 8.4zm149-262c28.5 0 51.7 23.3 51.7 52s-23.2 52-51.7 52-51.7-23.3-51.7-52 23.2-52 51.7-52z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/idcard.svg b/src/blrec/data/webapp/assets/twotone/idcard.svg new file mode 100644 index 0000000..83871b5 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/idcard.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136V232h752v560z" fill="#333" /><path d="M136 792h752V232H136v560zm472-372c0-4.4 1-8 2.3-8h123.4c1.3 0 2.3 3.6 2.3 8v48c0 4.4-1 8-2.3 8H610.3c-1.3 0-2.3-3.6-2.3-8v-48zm0 144c0-4.4 3.2-8 7.1-8h185.7c3.9 0 7.1 3.6 7.1 8v48c0 4.4-3.2 8-7.1 8H615.1c-3.9 0-7.1-3.6-7.1-8v-48zM216.2 664.6c2.8-53.3 31.9-99.6 74.6-126.1-18.1-20-29.1-46.4-29.1-75.5 0-61.9 49.9-112 111.4-112s111.4 50.1 111.4 112c0 29.1-11 55.6-29.1 75.5 42.6 26.4 71.8 72.8 74.6 126.1a8 8 0 01-8 8.4h-43.9c-4.2 0-7.6-3.3-7.9-7.5-3.8-50.5-46-90.5-97.2-90.5s-93.4 40-97.2 90.5c-.3 4.2-3.7 7.5-7.9 7.5H224c-4.6 0-8.2-3.8-7.8-8.4z" fill="#E6E6E6" /><path d="M321.3 463a51.7 52 0 10103.4 0 51.7 52 0 10-103.4 0z" fill="#E6E6E6" /><path d="M610.3 476h123.4c1.3 0 2.3-3.6 2.3-8v-48c0-4.4-1-8-2.3-8H610.3c-1.3 0-2.3 3.6-2.3 8v48c0 4.4 1 8 2.3 8zm4.8 144h185.7c3.9 0 7.1-3.6 7.1-8v-48c0-4.4-3.2-8-7.1-8H615.1c-3.9 0-7.1 3.6-7.1 8v48c0 4.4 3.2 8 7.1 8zM224 673h43.9c4.2 0 7.6-3.3 7.9-7.5 3.8-50.5 46-90.5 97.2-90.5s93.4 40 97.2 90.5c.3 4.2 3.7 7.5 7.9 7.5H522a8 8 0 008-8.4c-2.8-53.3-32-99.7-74.6-126.1a111.8 111.8 0 0029.1-75.5c0-61.9-49.9-112-111.4-112s-111.4 50.1-111.4 112c0 29.1 11 55.5 29.1 75.5a158.09 158.09 0 00-74.6 126.1c-.4 4.6 3.2 8.4 7.8 8.4zm149-262c28.5 0 51.7 23.3 51.7 52s-23.2 52-51.7 52-51.7-23.3-51.7-52 23.2-52 51.7-52z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/info-circle.js b/src/blrec/data/webapp/assets/twotone/info-circle.js new file mode 100644 index 0000000..3d4a06a --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/info-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'info-circle', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm32 588c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" fill="#E6E6E6" /><path d="M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/info-circle.svg b/src/blrec/data/webapp/assets/twotone/info-circle.svg new file mode 100644 index 0000000..7148f2b --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/info-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm32 588c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" fill="#E6E6E6" /><path d="M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/insurance.js b/src/blrec/data/webapp/assets/twotone/insurance.js new file mode 100644 index 0000000..b8a8ea8 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/insurance.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'insurance', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z" fill="#333" /><path d="M521.9 358.8h97.9v41.6h-97.9z" fill="#E6E6E6" /><path d="M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM413.3 656h-.2c0 4.4-3.6 8-8 8h-37.3c-4.4 0-8-3.6-8-8V471.4c-7.7 9.2-15.4 17.9-23.1 26a6.04 6.04 0 01-10.2-2.4l-13.2-43.5c-.6-2-.2-4.1 1.2-5.6 37-43.4 64.7-95.1 82.2-153.6 1.1-3.5 5-5.3 8.4-3.7l38.6 18.3c2.7 1.3 4.1 4.4 3.2 7.2a429.2 429.2 0 01-33.6 79V656zm257.9-340v127.2c0 4.4-3.6 8-8 8h-66.7v18.6h98.8c4.4 0 8 3.6 8 8v35.6c0 4.4-3.6 8-8 8h-59c18.1 29.1 41.8 54.3 72.3 76.9 2.6 2.1 3.2 5.9 1.2 8.5l-26.3 35.3a5.92 5.92 0 01-8.9.7c-30.6-29.3-56.8-65.2-78.1-106.9V656c0 4.4-3.6 8-8 8h-36.2c-4.4 0-8-3.6-8-8V536c-22 44.7-49 80.8-80.6 107.6a6.38 6.38 0 01-4.8 1.4c-1.7-.3-3.2-1.3-4.1-2.8L432 605.7a6 6 0 011.6-8.1c28.6-20.3 51.9-45.2 71-76h-55.1c-4.4 0-8-3.6-8-8V478c0-4.4 3.6-8 8-8h94.9v-18.6h-65.9c-4.4 0-8-3.6-8-8V316c0-4.4 3.6-8 8-8h184.7c4.4 0 8 3.6 8 8z" fill="#E6E6E6" /><path d="M443.7 306.9l-38.6-18.3c-3.4-1.6-7.3.2-8.4 3.7-17.5 58.5-45.2 110.2-82.2 153.6a5.7 5.7 0 00-1.2 5.6l13.2 43.5c1.4 4.5 7 5.8 10.2 2.4 7.7-8.1 15.4-16.8 23.1-26V656c0 4.4 3.6 8 8 8h37.3c4.4 0 8-3.6 8-8h.2V393.1a429.2 429.2 0 0033.6-79c.9-2.8-.5-5.9-3.2-7.2zm26.8 9.1v127.4c0 4.4 3.6 8 8 8h65.9V470h-94.9c-4.4 0-8 3.6-8 8v35.6c0 4.4 3.6 8 8 8h55.1c-19.1 30.8-42.4 55.7-71 76a6 6 0 00-1.6 8.1l22.8 36.5c.9 1.5 2.4 2.5 4.1 2.8 1.7.3 3.5-.2 4.8-1.4 31.6-26.8 58.6-62.9 80.6-107.6v120c0 4.4 3.6 8 8 8h36.2c4.4 0 8-3.6 8-8V535.9c21.3 41.7 47.5 77.6 78.1 106.9 2.6 2.5 6.7 2.2 8.9-.7l26.3-35.3c2-2.6 1.4-6.4-1.2-8.5-30.5-22.6-54.2-47.8-72.3-76.9h59c4.4 0 8-3.6 8-8v-35.6c0-4.4-3.6-8-8-8h-98.8v-18.6h66.7c4.4 0 8-3.6 8-8V316c0-4.4-3.6-8-8-8H478.5c-4.4 0-8 3.6-8 8zm51.4 42.8h97.9v41.6h-97.9v-41.6z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/insurance.svg b/src/blrec/data/webapp/assets/twotone/insurance.svg new file mode 100644 index 0000000..63026ce --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/insurance.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z" fill="#333" /><path d="M521.9 358.8h97.9v41.6h-97.9z" fill="#E6E6E6" /><path d="M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM413.3 656h-.2c0 4.4-3.6 8-8 8h-37.3c-4.4 0-8-3.6-8-8V471.4c-7.7 9.2-15.4 17.9-23.1 26a6.04 6.04 0 01-10.2-2.4l-13.2-43.5c-.6-2-.2-4.1 1.2-5.6 37-43.4 64.7-95.1 82.2-153.6 1.1-3.5 5-5.3 8.4-3.7l38.6 18.3c2.7 1.3 4.1 4.4 3.2 7.2a429.2 429.2 0 01-33.6 79V656zm257.9-340v127.2c0 4.4-3.6 8-8 8h-66.7v18.6h98.8c4.4 0 8 3.6 8 8v35.6c0 4.4-3.6 8-8 8h-59c18.1 29.1 41.8 54.3 72.3 76.9 2.6 2.1 3.2 5.9 1.2 8.5l-26.3 35.3a5.92 5.92 0 01-8.9.7c-30.6-29.3-56.8-65.2-78.1-106.9V656c0 4.4-3.6 8-8 8h-36.2c-4.4 0-8-3.6-8-8V536c-22 44.7-49 80.8-80.6 107.6a6.38 6.38 0 01-4.8 1.4c-1.7-.3-3.2-1.3-4.1-2.8L432 605.7a6 6 0 011.6-8.1c28.6-20.3 51.9-45.2 71-76h-55.1c-4.4 0-8-3.6-8-8V478c0-4.4 3.6-8 8-8h94.9v-18.6h-65.9c-4.4 0-8-3.6-8-8V316c0-4.4 3.6-8 8-8h184.7c4.4 0 8 3.6 8 8z" fill="#E6E6E6" /><path d="M443.7 306.9l-38.6-18.3c-3.4-1.6-7.3.2-8.4 3.7-17.5 58.5-45.2 110.2-82.2 153.6a5.7 5.7 0 00-1.2 5.6l13.2 43.5c1.4 4.5 7 5.8 10.2 2.4 7.7-8.1 15.4-16.8 23.1-26V656c0 4.4 3.6 8 8 8h37.3c4.4 0 8-3.6 8-8h.2V393.1a429.2 429.2 0 0033.6-79c.9-2.8-.5-5.9-3.2-7.2zm26.8 9.1v127.4c0 4.4 3.6 8 8 8h65.9V470h-94.9c-4.4 0-8 3.6-8 8v35.6c0 4.4 3.6 8 8 8h55.1c-19.1 30.8-42.4 55.7-71 76a6 6 0 00-1.6 8.1l22.8 36.5c.9 1.5 2.4 2.5 4.1 2.8 1.7.3 3.5-.2 4.8-1.4 31.6-26.8 58.6-62.9 80.6-107.6v120c0 4.4 3.6 8 8 8h36.2c4.4 0 8-3.6 8-8V535.9c21.3 41.7 47.5 77.6 78.1 106.9 2.6 2.5 6.7 2.2 8.9-.7l26.3-35.3c2-2.6 1.4-6.4-1.2-8.5-30.5-22.6-54.2-47.8-72.3-76.9h59c4.4 0 8-3.6 8-8v-35.6c0-4.4-3.6-8-8-8h-98.8v-18.6h66.7c4.4 0 8-3.6 8-8V316c0-4.4-3.6-8-8-8H478.5c-4.4 0-8 3.6-8 8zm51.4 42.8h97.9v41.6h-97.9v-41.6z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/interaction.js b/src/blrec/data/webapp/assets/twotone/interaction.js new file mode 100644 index 0000000..0bcff12 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/interaction.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'interaction', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm114-401.9c0-55.3 44.6-100.1 99.7-100.1h205.8v-53.4c0-5.6 6.5-8.8 10.9-5.3L723.5 365c3.5 2.7 3.5 8 0 10.7l-109.1 85.7c-4.4 3.5-10.9.4-10.9-5.3v-53.4H397.8c-19.6 0-35.5 15.9-35.5 35.6v78.9c0 3.8-3.1 6.8-6.8 6.8h-50.7c-3.8 0-6.8-3-6.8-7v-78.9zm2.6 210.3l109.1-85.7c4.4-3.5 10.9-.4 10.9 5.3v53.4h205.6c19.6 0 35.5-15.9 35.5-35.6v-78.9c0-3.8 3.1-6.8 6.8-6.8h50.7c3.8 0 6.8 3.1 6.8 6.8v78.9c0 55.3-44.6 100.1-99.7 100.1H420.6v53.4c0 5.6-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.5z" fill="#E6E6E6" /><path d="M304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/interaction.svg b/src/blrec/data/webapp/assets/twotone/interaction.svg new file mode 100644 index 0000000..bcd33e2 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/interaction.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm114-401.9c0-55.3 44.6-100.1 99.7-100.1h205.8v-53.4c0-5.6 6.5-8.8 10.9-5.3L723.5 365c3.5 2.7 3.5 8 0 10.7l-109.1 85.7c-4.4 3.5-10.9.4-10.9-5.3v-53.4H397.8c-19.6 0-35.5 15.9-35.5 35.6v78.9c0 3.8-3.1 6.8-6.8 6.8h-50.7c-3.8 0-6.8-3-6.8-7v-78.9zm2.6 210.3l109.1-85.7c4.4-3.5 10.9-.4 10.9 5.3v53.4h205.6c19.6 0 35.5-15.9 35.5-35.6v-78.9c0-3.8 3.1-6.8 6.8-6.8h50.7c3.8 0 6.8 3.1 6.8 6.8v78.9c0 55.3-44.6 100.1-99.7 100.1H420.6v53.4c0 5.6-6.5 8.8-10.9 5.3l-109.1-85.7c-3.5-2.7-3.5-8 0-10.5z" fill="#E6E6E6" /><path d="M304.8 524h50.7c3.7 0 6.8-3 6.8-6.8v-78.9c0-19.7 15.9-35.6 35.5-35.6h205.7v53.4c0 5.7 6.5 8.8 10.9 5.3l109.1-85.7c3.5-2.7 3.5-8 0-10.7l-109.1-85.7c-4.4-3.5-10.9-.3-10.9 5.3V338H397.7c-55.1 0-99.7 44.8-99.7 100.1V517c0 4 3 7 6.8 7zm-4.2 134.9l109.1 85.7c4.4 3.5 10.9.3 10.9-5.3v-53.4h205.7c55.1 0 99.7-44.8 99.7-100.1v-78.9c0-3.7-3-6.8-6.8-6.8h-50.7c-3.7 0-6.8 3-6.8 6.8v78.9c0 19.7-15.9 35.6-35.5 35.6H420.6V568c0-5.7-6.5-8.8-10.9-5.3l-109.1 85.7c-3.5 2.5-3.5 7.8 0 10.5z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/layout.js b/src/blrec/data/webapp/assets/twotone/layout.js new file mode 100644 index 0000000..1ad14fb --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/layout.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'layout', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M384 185h456v136H384zm-200 0h136v656H184zm696-73H144c-17.7 0-32 14.3-32 32v1c0-17.7 14.3-32 32-32h736c17.7 0 32 14.3 32 32v-1c0-17.7-14.3-32-32-32zM384 385h456v456H384z" fill="#E6E6E6" /><path d="M880 113H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V145c0-17.7-14.3-32-32-32zM320 841H184V185h136v656zm520 0H384V385h456v456zm0-520H384V185h456v136z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/layout.svg b/src/blrec/data/webapp/assets/twotone/layout.svg new file mode 100644 index 0000000..0fd0a74 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/layout.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M384 185h456v136H384zm-200 0h136v656H184zm696-73H144c-17.7 0-32 14.3-32 32v1c0-17.7 14.3-32 32-32h736c17.7 0 32 14.3 32 32v-1c0-17.7-14.3-32-32-32zM384 385h456v456H384z" fill="#E6E6E6" /><path d="M880 113H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V145c0-17.7-14.3-32-32-32zM320 841H184V185h136v656zm520 0H384V385h456v456zm0-520H384V185h456v136z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/left-circle.js b/src/blrec/data/webapp/assets/twotone/left-circle.js new file mode 100644 index 0000000..5f17159 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/left-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'left-circle', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm104 240.9c0 10.3-4.9 19.9-13.2 25.9L457.4 512l145.4 105.1c8.3 6 13.2 15.7 13.2 25.9v46.9c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 010-12.9l246-178c5.3-3.8 12.7 0 12.7 6.5v46.9z" fill="#E6E6E6" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M603.3 327.5l-246 178a7.95 7.95 0 000 12.9l246 178c5.3 3.8 12.7 0 12.7-6.5V643c0-10.2-4.9-19.9-13.2-25.9L457.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/left-circle.svg b/src/blrec/data/webapp/assets/twotone/left-circle.svg new file mode 100644 index 0000000..38fbfe4 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/left-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm104 240.9c0 10.3-4.9 19.9-13.2 25.9L457.4 512l145.4 105.1c8.3 6 13.2 15.7 13.2 25.9v46.9c0 6.5-7.4 10.3-12.7 6.5l-246-178a7.95 7.95 0 010-12.9l246-178c5.3-3.8 12.7 0 12.7 6.5v46.9z" fill="#E6E6E6" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M603.3 327.5l-246 178a7.95 7.95 0 000 12.9l246 178c5.3 3.8 12.7 0 12.7-6.5V643c0-10.2-4.9-19.9-13.2-25.9L457.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/left-square.js b/src/blrec/data/webapp/assets/twotone/left-square.js new file mode 100644 index 0000000..168fa89 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/left-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'left-square', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm181.3-334.5l246-178c5.3-3.8 12.7 0 12.7 6.5v46.9c0 10.3-4.9 19.9-13.2 25.9L465.4 512l145.4 105.2c8.3 6 13.2 15.7 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.4l-246-178a7.95 7.95 0 010-12.9z" fill="#E6E6E6" /><path d="M365.3 518.4l246 178c5.3 3.9 12.7.1 12.7-6.4v-46.9c0-10.2-4.9-19.9-13.2-25.9L465.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5l-246 178a7.95 7.95 0 000 12.9z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/left-square.svg b/src/blrec/data/webapp/assets/twotone/left-square.svg new file mode 100644 index 0000000..0f5d160 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/left-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm181.3-334.5l246-178c5.3-3.8 12.7 0 12.7 6.5v46.9c0 10.3-4.9 19.9-13.2 25.9L465.4 512l145.4 105.2c8.3 6 13.2 15.7 13.2 25.9V690c0 6.5-7.4 10.3-12.7 6.4l-246-178a7.95 7.95 0 010-12.9z" fill="#E6E6E6" /><path d="M365.3 518.4l246 178c5.3 3.9 12.7.1 12.7-6.4v-46.9c0-10.2-4.9-19.9-13.2-25.9L465.4 512l145.4-105.2c8.3-6 13.2-15.6 13.2-25.9V334c0-6.5-7.4-10.3-12.7-6.5l-246 178a7.95 7.95 0 000 12.9z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/like.js b/src/blrec/data/webapp/assets/twotone/like.js new file mode 100644 index 0000000..fa88f10 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/like.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'like', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M273 495.9v428l.3-428zm538.2-88.3H496.8l9.6-198.4c.6-11.9-4.7-23.1-14.6-30.5-6.1-4.5-13.6-6.8-21.1-6.7-19.6.1-36.9 13.4-42.2 32.3-37.1 134.4-64.9 235.2-83.5 302.5V852h399.4a56.85 56.85 0 0033.6-51.8c0-9.7-2.3-18.9-6.9-27.3l-13.9-25.4 21.9-19a56.76 56.76 0 0019.6-43c0-9.7-2.3-18.9-6.9-27.3l-13.9-25.4 21.9-19a56.76 56.76 0 0019.6-43c0-9.7-2.3-18.9-6.9-27.3l-14-25.5 21.9-19a56.76 56.76 0 0019.6-43c0-19.1-11-37.5-28.8-48.4z" fill="#E6E6E6" /><path d="M112 528v364c0 17.7 14.3 32 32 32h65V496h-65c-17.7 0-32 14.3-32 32zm773.9 5.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.5-65.5-111a67.67 67.67 0 00-34.3-9.3H572.3l6-122.9c1.5-29.7-9-57.9-29.5-79.4a106.4 106.4 0 00-77.9-33.4c-52 0-98 35-111.8 85.1l-85.8 310.8-.3 428h472.1c9.3 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37zM820.4 499l-21.9 19 14 25.5a56.2 56.2 0 016.9 27.3c0 16.5-7.1 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 16.5-7.1 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 22.4-13.2 42.6-33.6 51.8H345V506.8c18.6-67.2 46.4-168 83.5-302.5a44.28 44.28 0 0142.2-32.3c7.5-.1 15 2.2 21.1 6.7 9.9 7.4 15.2 18.6 14.6 30.5l-9.6 198.4h314.4C829 418.5 840 436.9 840 456c0 16.5-7.1 32.2-19.6 43z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/like.svg b/src/blrec/data/webapp/assets/twotone/like.svg new file mode 100644 index 0000000..1d8daf0 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/like.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M273 495.9v428l.3-428zm538.2-88.3H496.8l9.6-198.4c.6-11.9-4.7-23.1-14.6-30.5-6.1-4.5-13.6-6.8-21.1-6.7-19.6.1-36.9 13.4-42.2 32.3-37.1 134.4-64.9 235.2-83.5 302.5V852h399.4a56.85 56.85 0 0033.6-51.8c0-9.7-2.3-18.9-6.9-27.3l-13.9-25.4 21.9-19a56.76 56.76 0 0019.6-43c0-9.7-2.3-18.9-6.9-27.3l-13.9-25.4 21.9-19a56.76 56.76 0 0019.6-43c0-9.7-2.3-18.9-6.9-27.3l-14-25.5 21.9-19a56.76 56.76 0 0019.6-43c0-19.1-11-37.5-28.8-48.4z" fill="#E6E6E6" /><path d="M112 528v364c0 17.7 14.3 32 32 32h65V496h-65c-17.7 0-32 14.3-32 32zm773.9 5.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.5-65.5-111a67.67 67.67 0 00-34.3-9.3H572.3l6-122.9c1.5-29.7-9-57.9-29.5-79.4a106.4 106.4 0 00-77.9-33.4c-52 0-98 35-111.8 85.1l-85.8 310.8-.3 428h472.1c9.3 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37zM820.4 499l-21.9 19 14 25.5a56.2 56.2 0 016.9 27.3c0 16.5-7.1 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 16.5-7.1 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 22.4-13.2 42.6-33.6 51.8H345V506.8c18.6-67.2 46.4-168 83.5-302.5a44.28 44.28 0 0142.2-32.3c7.5-.1 15 2.2 21.1 6.7 9.9 7.4 15.2 18.6 14.6 30.5l-9.6 198.4h314.4C829 418.5 840 436.9 840 456c0 16.5-7.1 32.2-19.6 43z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/lock.js b/src/blrec/data/webapp/assets/twotone/lock.js new file mode 100644 index 0000000..ed4e261 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/lock.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'lock', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304z" fill="#333" /><path d="M232 840h560V536H232v304zm280-226a48.01 48.01 0 0128 87v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 0128-87z" fill="#E6E6E6" /><path d="M484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 10-56 0z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/lock.svg b/src/blrec/data/webapp/assets/twotone/lock.svg new file mode 100644 index 0000000..b7d5673 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/lock.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304z" fill="#333" /><path d="M232 840h560V536H232v304zm280-226a48.01 48.01 0 0128 87v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 0128-87z" fill="#E6E6E6" /><path d="M484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 10-56 0z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/mail.js b/src/blrec/data/webapp/assets/twotone/mail.js new file mode 100644 index 0000000..c391ddc --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/mail.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'mail', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M477.5 536.3L135.9 270.7l-27.5-21.4 27.6 21.5V792h752V270.8L546.2 536.3a55.99 55.99 0 01-68.7 0z" fill="#E6E6E6" /><path d="M876.3 198.8l39.3 50.5-27.6 21.5 27.7-21.5-39.3-50.5z" fill="#E6E6E6" /><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-94.5 72.1L512 482 190.5 232.1h643zm54.5 38.7V792H136V270.8l-27.6-21.5 27.5 21.4 341.6 265.6a55.99 55.99 0 0068.7 0L888 270.8l27.6-21.5-39.3-50.5h.1l39.3 50.5-27.7 21.5z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/mail.svg b/src/blrec/data/webapp/assets/twotone/mail.svg new file mode 100644 index 0000000..0be0806 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/mail.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M477.5 536.3L135.9 270.7l-27.5-21.4 27.6 21.5V792h752V270.8L546.2 536.3a55.99 55.99 0 01-68.7 0z" fill="#E6E6E6" /><path d="M876.3 198.8l39.3 50.5-27.6 21.5 27.7-21.5-39.3-50.5z" fill="#E6E6E6" /><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-94.5 72.1L512 482 190.5 232.1h643zm54.5 38.7V792H136V270.8l-27.6-21.5 27.5 21.4 341.6 265.6a55.99 55.99 0 0068.7 0L888 270.8l27.6-21.5-39.3-50.5h.1l39.3 50.5-27.7 21.5z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/medicine-box.js b/src/blrec/data/webapp/assets/twotone/medicine-box.js new file mode 100644 index 0000000..37e4dec --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/medicine-box.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'medicine-box', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M244.3 328L184 513.4V840h656V513.4L779.7 328H244.3zM660 628c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V636H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V464c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8v48z" fill="#E6E6E6" /><path d="M652 572H544V464c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V636h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" fill="#333" /><path d="M839.2 278.1a32 32 0 00-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 00-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM360 184h304v72H360v-72zm480 656H184V513.4L244.3 328h535.4L840 513.4V840z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/medicine-box.svg b/src/blrec/data/webapp/assets/twotone/medicine-box.svg new file mode 100644 index 0000000..11a28f1 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/medicine-box.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M244.3 328L184 513.4V840h656V513.4L779.7 328H244.3zM660 628c0 4.4-3.6 8-8 8H544v108c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V636H372c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h108V464c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v108h108c4.4 0 8 3.6 8 8v48z" fill="#E6E6E6" /><path d="M652 572H544V464c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v108H372c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h108v108c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V636h108c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" fill="#333" /><path d="M839.2 278.1a32 32 0 00-30.4-22.1H736V144c0-17.7-14.3-32-32-32H320c-17.7 0-32 14.3-32 32v112h-72.8a31.9 31.9 0 00-30.4 22.1L112 502v378c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V502l-72.8-223.9zM360 184h304v72H360v-72zm480 656H184V513.4L244.3 328h535.4L840 513.4V840z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/meh.js b/src/blrec/data/webapp/assets/twotone/meh.js new file mode 100644 index 0000000..931720d --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/meh.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'meh', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm384 200c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h304c4.4 0 8 3.6 8 8v48zm16-152a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" fill="#E6E6E6" /><path d="M288 421a48 48 0 1096 0 48 48 0 10-96 0zm376 144H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-24-144a48 48 0 1096 0 48 48 0 10-96 0z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/meh.svg b/src/blrec/data/webapp/assets/twotone/meh.svg new file mode 100644 index 0000000..e58c14e --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/meh.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm384 200c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h304c4.4 0 8 3.6 8 8v48zm16-152a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" fill="#E6E6E6" /><path d="M288 421a48 48 0 1096 0 48 48 0 10-96 0zm376 144H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-24-144a48 48 0 1096 0 48 48 0 10-96 0z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/message.js b/src/blrec/data/webapp/assets/twotone/message.js new file mode 100644 index 0000000..892fbe2 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/message.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'message', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M775.3 248.9a369.62 369.62 0 00-119-80A370.2 370.2 0 00512.1 140h-1.7c-99.7.4-193 39.4-262.8 109.9-69.9 70.5-108 164.1-107.6 263.8.3 60.3 15.3 120.2 43.5 173.1l4.5 8.4V836h140.8l8.4 4.5c52.9 28.2 112.8 43.2 173.1 43.5h1.7c99 0 192-38.2 262.1-107.6 70.4-69.8 109.5-163.1 110.1-262.7.2-50.6-9.5-99.6-28.9-145.8a370.15 370.15 0 00-80-119zM312 560a48.01 48.01 0 010-96 48.01 48.01 0 010 96zm200 0a48.01 48.01 0 010-96 48.01 48.01 0 010 96zm200 0a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" fill="#E6E6E6" /><path d="M664 512a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0z" fill="#333" /><path d="M925.2 338.4c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z" fill="#333" /><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/message.svg b/src/blrec/data/webapp/assets/twotone/message.svg new file mode 100644 index 0000000..9777566 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/message.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M775.3 248.9a369.62 369.62 0 00-119-80A370.2 370.2 0 00512.1 140h-1.7c-99.7.4-193 39.4-262.8 109.9-69.9 70.5-108 164.1-107.6 263.8.3 60.3 15.3 120.2 43.5 173.1l4.5 8.4V836h140.8l8.4 4.5c52.9 28.2 112.8 43.2 173.1 43.5h1.7c99 0 192-38.2 262.1-107.6 70.4-69.8 109.5-163.1 110.1-262.7.2-50.6-9.5-99.6-28.9-145.8a370.15 370.15 0 00-80-119zM312 560a48.01 48.01 0 010-96 48.01 48.01 0 010 96zm200 0a48.01 48.01 0 010-96 48.01 48.01 0 010 96zm200 0a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" fill="#E6E6E6" /><path d="M664 512a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0z" fill="#333" /><path d="M925.2 338.4c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z" fill="#333" /><path d="M464 512a48 48 0 1096 0 48 48 0 10-96 0z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/minus-circle.js b/src/blrec/data/webapp/assets/twotone/minus-circle.js new file mode 100644 index 0000000..8a3b4e8 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/minus-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'minus-circle', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm192 396c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z" fill="#E6E6E6" /><path d="M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/minus-circle.svg b/src/blrec/data/webapp/assets/twotone/minus-circle.svg new file mode 100644 index 0000000..913eb76 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/minus-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm192 396c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48z" fill="#E6E6E6" /><path d="M696 480H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/minus-square.js b/src/blrec/data/webapp/assets/twotone/minus-square.js new file mode 100644 index 0000000..d6b8d59 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/minus-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'minus-square', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm136-352c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48z" fill="#E6E6E6" /><path d="M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/minus-square.svg b/src/blrec/data/webapp/assets/twotone/minus-square.svg new file mode 100644 index 0000000..4414bb4 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/minus-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm136-352c0-4.4 3.6-8 8-8h368c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H328c-4.4 0-8-3.6-8-8v-48z" fill="#E6E6E6" /><path d="M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/mobile.js b/src/blrec/data/webapp/assets/twotone/mobile.js new file mode 100644 index 0000000..2fc6129 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/mobile.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'mobile', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M744 64H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H288V136h448v752z" fill="#333" /><path d="M288 888h448V136H288v752zm224-142c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z" fill="#E6E6E6" /><path d="M472 786a40 40 0 1080 0 40 40 0 10-80 0z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/mobile.svg b/src/blrec/data/webapp/assets/twotone/mobile.svg new file mode 100644 index 0000000..f380bc5 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/mobile.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M744 64H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H288V136h448v752z" fill="#333" /><path d="M288 888h448V136H288v752zm224-142c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z" fill="#E6E6E6" /><path d="M472 786a40 40 0 1080 0 40 40 0 10-80 0z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/money-collect.js b/src/blrec/data/webapp/assets/twotone/money-collect.js new file mode 100644 index 0000000..a90bc44 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/money-collect.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'money-collect', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M256 744.4l256 93.1 256-93.1V184H256v560.4zM359.7 313c1.2-.7 2.5-1 3.8-1h55.7a8 8 0 017.1 4.4L511 485.2h3.3L599 316.4c1.3-2.7 4.1-4.4 7.1-4.4h54.5c4.4 0 8 3.6 8.1 7.9 0 1.3-.4 2.6-1 3.8L564 515.3h57.6c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3v39h76.3c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3V704c0 4.4-3.6 8-8 8h-49.9c-4.4 0-8-3.6-8-8v-63.4h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h76v-39h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h57L356.5 323.8c-2.1-3.8-.7-8.7 3.2-10.8z" fill="#E6E6E6" /><path d="M911.5 700.7a8 8 0 00-10.3-4.8L840 718.2V180c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V763c0 3.3 2.1 6.3 5.3 7.5L501 910.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zM768 744.4l-256 93.1-256-93.1V184h512v560.4z" fill="#333" /><path d="M460.4 515.4h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.6-1.2 1-2.5 1-3.8-.1-4.3-3.7-7.9-8.1-7.9h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 00-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/money-collect.svg b/src/blrec/data/webapp/assets/twotone/money-collect.svg new file mode 100644 index 0000000..d4f4c47 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/money-collect.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M256 744.4l256 93.1 256-93.1V184H256v560.4zM359.7 313c1.2-.7 2.5-1 3.8-1h55.7a8 8 0 017.1 4.4L511 485.2h3.3L599 316.4c1.3-2.7 4.1-4.4 7.1-4.4h54.5c4.4 0 8 3.6 8.1 7.9 0 1.3-.4 2.6-1 3.8L564 515.3h57.6c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3v39h76.3c4.4 0 8 3.6 8 8v27.1c0 4.4-3.6 8-8 8h-76.3V704c0 4.4-3.6 8-8 8h-49.9c-4.4 0-8-3.6-8-8v-63.4h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h76v-39h-76c-4.4 0-8-3.6-8-8v-27.1c0-4.4 3.6-8 8-8h57L356.5 323.8c-2.1-3.8-.7-8.7 3.2-10.8z" fill="#E6E6E6" /><path d="M911.5 700.7a8 8 0 00-10.3-4.8L840 718.2V180c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V763c0 3.3 2.1 6.3 5.3 7.5L501 910.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zM768 744.4l-256 93.1-256-93.1V184h512v560.4z" fill="#333" /><path d="M460.4 515.4h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.6-1.2 1-2.5 1-3.8-.1-4.3-3.7-7.9-8.1-7.9h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 00-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/notification.js b/src/blrec/data/webapp/assets/twotone/notification.js new file mode 100644 index 0000000..979d0e2 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/notification.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'notification', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M229.6 678.1c-3.7 11.6-5.6 23.9-5.6 36.4 0-12.5 2-24.8 5.7-36.4h-.1zm76.3-260.2H184v188.2h121.9l12.9 5.2L840 820.7V203.3L318.8 412.7z" fill="#E6E6E6" /><path d="M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.7c-3.7 11.6-5.7 23.9-5.7 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1zm496 58.4L318.8 611.3l-12.9-5.2H184V417.9h121.9l12.9-5.2L840 203.3v617.4z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/notification.svg b/src/blrec/data/webapp/assets/twotone/notification.svg new file mode 100644 index 0000000..ac923ff --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/notification.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M229.6 678.1c-3.7 11.6-5.6 23.9-5.6 36.4 0-12.5 2-24.8 5.7-36.4h-.1zm76.3-260.2H184v188.2h121.9l12.9 5.2L840 820.7V203.3L318.8 412.7z" fill="#E6E6E6" /><path d="M880 112c-3.8 0-7.7.7-11.6 2.3L292 345.9H128c-8.8 0-16 7.4-16 16.6v299c0 9.2 7.2 16.6 16 16.6h101.7c-3.7 11.6-5.7 23.9-5.7 36.4 0 65.9 53.8 119.5 120 119.5 55.4 0 102.1-37.6 115.9-88.4l408.6 164.2c3.9 1.5 7.8 2.3 11.6 2.3 16.9 0 32-14.2 32-33.2V145.2C912 126.2 897 112 880 112zM344 762.3c-26.5 0-48-21.4-48-47.8 0-11.2 3.9-21.9 11-30.4l84.9 34.1c-2 24.6-22.7 44.1-47.9 44.1zm496 58.4L318.8 611.3l-12.9-5.2H184V417.9h121.9l12.9-5.2L840 203.3v617.4z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/pause-circle.js b/src/blrec/data/webapp/assets/twotone/pause-circle.js new file mode 100644 index 0000000..2a3443b --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/pause-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'pause-circle', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-80 524c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304zm224 0c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304z" fill="#E6E6E6" /><path d="M424 352h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zm224 0h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/pause-circle.svg b/src/blrec/data/webapp/assets/twotone/pause-circle.svg new file mode 100644 index 0000000..eed2708 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/pause-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm-80 524c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304zm224 0c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V360c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v304z" fill="#E6E6E6" /><path d="M424 352h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zm224 0h-48c-4.4 0-8 3.6-8 8v304c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/phone.js b/src/blrec/data/webapp/assets/twotone/phone.js new file mode 100644 index 0000000..6a00014 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/phone.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'phone', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M721.7 184.9L610.9 295.8l120.8 120.7-8 21.6A481.29 481.29 0 01438 723.9l-21.6 8-.9-.9-119.8-120-110.8 110.9 104.5 104.5c10.8 10.7 26 15.7 40.8 13.2 117.9-19.5 235.4-82.9 330.9-178.4s158.9-213.1 178.4-331c2.5-14.8-2.5-30-13.3-40.8L721.7 184.9z" fill="#E6E6E6" /><path d="M877.1 238.7L770.6 132.3c-13-13-30.4-20.3-48.8-20.3s-35.8 7.2-48.8 20.3L558.3 246.8c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l89.6 89.7a405.46 405.46 0 01-86.4 127.3c-36.7 36.9-79.6 66-127.2 86.6l-89.6-89.7c-13-13-30.4-20.3-48.8-20.3a68.2 68.2 0 00-48.8 20.3L132.3 673c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l106.4 106.4c22.2 22.2 52.8 34.9 84.2 34.9 6.5 0 12.8-.5 19.2-1.6 132.4-21.8 263.8-92.3 369.9-198.3C818 606 888.4 474.6 910.4 342.1c6.3-37.6-6.3-76.3-33.3-103.4zm-37.6 91.5c-19.5 117.9-82.9 235.5-178.4 331s-213 158.9-330.9 178.4c-14.8 2.5-30-2.5-40.8-13.2L184.9 721.9 295.7 611l119.8 120 .9.9 21.6-8a481.29 481.29 0 00285.7-285.8l8-21.6-120.8-120.7 110.8-110.9 104.5 104.5c10.8 10.8 15.8 26 13.3 40.8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/phone.svg b/src/blrec/data/webapp/assets/twotone/phone.svg new file mode 100644 index 0000000..1acd73a --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/phone.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M721.7 184.9L610.9 295.8l120.8 120.7-8 21.6A481.29 481.29 0 01438 723.9l-21.6 8-.9-.9-119.8-120-110.8 110.9 104.5 104.5c10.8 10.7 26 15.7 40.8 13.2 117.9-19.5 235.4-82.9 330.9-178.4s158.9-213.1 178.4-331c2.5-14.8-2.5-30-13.3-40.8L721.7 184.9z" fill="#E6E6E6" /><path d="M877.1 238.7L770.6 132.3c-13-13-30.4-20.3-48.8-20.3s-35.8 7.2-48.8 20.3L558.3 246.8c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l89.6 89.7a405.46 405.46 0 01-86.4 127.3c-36.7 36.9-79.6 66-127.2 86.6l-89.6-89.7c-13-13-30.4-20.3-48.8-20.3a68.2 68.2 0 00-48.8 20.3L132.3 673c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l106.4 106.4c22.2 22.2 52.8 34.9 84.2 34.9 6.5 0 12.8-.5 19.2-1.6 132.4-21.8 263.8-92.3 369.9-198.3C818 606 888.4 474.6 910.4 342.1c6.3-37.6-6.3-76.3-33.3-103.4zm-37.6 91.5c-19.5 117.9-82.9 235.5-178.4 331s-213 158.9-330.9 178.4c-14.8 2.5-30-2.5-40.8-13.2L184.9 721.9 295.7 611l119.8 120 .9.9 21.6-8a481.29 481.29 0 00285.7-285.8l8-21.6-120.8-120.7 110.8-110.9 104.5 104.5c10.8 10.8 15.8 26 13.3 40.8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/picture.js b/src/blrec/data/webapp/assets/twotone/picture.js new file mode 100644 index 0000000..b58a89b --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/picture.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'picture', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2z" fill="#333" /><path d="M424.6 765.8l-150.1-178L136 752.1V792h752v-30.4L658.1 489z" fill="#E6E6E6" /><path d="M136 652.7l132.4-157c3.2-3.8 9-3.8 12.2 0l144 170.7L652 396.8c3.2-3.8 9-3.8 12.2 0L888 662.2V232H136v420.7zM304 280a88 88 0 110 176 88 88 0 010-176z" fill="#E6E6E6" /><path d="M276 368a28 28 0 1056 0 28 28 0 10-56 0z" fill="#E6E6E6" /><path d="M304 456a88 88 0 100-176 88 88 0 000 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/picture.svg b/src/blrec/data/webapp/assets/twotone/picture.svg new file mode 100644 index 0000000..637091f --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/picture.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2z" fill="#333" /><path d="M424.6 765.8l-150.1-178L136 752.1V792h752v-30.4L658.1 489z" fill="#E6E6E6" /><path d="M136 652.7l132.4-157c3.2-3.8 9-3.8 12.2 0l144 170.7L652 396.8c3.2-3.8 9-3.8 12.2 0L888 662.2V232H136v420.7zM304 280a88 88 0 110 176 88 88 0 010-176z" fill="#E6E6E6" /><path d="M276 368a28 28 0 1056 0 28 28 0 10-56 0z" fill="#E6E6E6" /><path d="M304 456a88 88 0 100-176 88 88 0 000 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/pie-chart.js b/src/blrec/data/webapp/assets/twotone/pie-chart.js new file mode 100644 index 0000000..5dfe89b --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/pie-chart.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'pie-chart', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M316.2 920.5c-47.6-20.1-90.4-49-127.1-85.7a398.19 398.19 0 01-85.7-127.1A397.12 397.12 0 0172 552.2v.2a398.57 398.57 0 00117 282.5c36.7 36.7 79.4 65.5 127 85.6A396.64 396.64 0 00471.6 952c27 0 53.6-2.7 79.7-7.9-25.9 5.2-52.4 7.8-79.3 7.8-54 .1-106.4-10.5-155.8-31.4zM560 472c-4.4 0-8-3.6-8-8V79.9c0-1.3.3-2.5.9-3.6-.9 1.3-1.5 2.9-1.5 4.6v383.7c0 4.4 3.6 8 8 8l383.6-1c1.6 0 3.1-.5 4.4-1.3-1 .5-2.2.7-3.4.7l-384 1z" fill="#E6E6E6" /><path d="M619.8 147.6v256.6l256.4-.7c-13-62.5-44.3-120.5-90-166.1a332.24 332.24 0 00-166.4-89.8z" fill="#E6E6E6" /><path d="M438 221.7c-75.9 7.6-146.2 40.9-200.8 95.5C174.5 379.9 140 463.3 140 552s34.5 172.1 97.2 234.8c62.3 62.3 145.1 96.8 233.2 97.2 88.2.4 172.7-34.1 235.3-96.2C761 733 794.6 662.3 802.3 586H438V221.7z" fill="#E6E6E6" /><path d="M864 518H506V160c0-4.4-3.6-8-8-8h-26a398.46 398.46 0 00-282.8 117.1 398.19 398.19 0 00-85.7 127.1A397.61 397.61 0 0072 552v.2c0 53.9 10.6 106.2 31.4 155.5 20.1 47.6 49 90.4 85.7 127.1 36.7 36.7 79.5 65.6 127.1 85.7A397.61 397.61 0 00472 952c26.9 0 53.4-2.6 79.3-7.8 26.1-5.3 51.7-13.1 76.4-23.6 47.6-20.1 90.4-49 127.1-85.7 36.7-36.7 65.6-79.5 85.7-127.1A397.61 397.61 0 00872 552v-26c0-4.4-3.6-8-8-8zM705.7 787.8A331.59 331.59 0 01470.4 884c-88.1-.4-170.9-34.9-233.2-97.2C174.5 724.1 140 640.7 140 552s34.5-172.1 97.2-234.8c54.6-54.6 124.9-87.9 200.8-95.5V586h364.3c-7.7 76.3-41.3 147-96.6 201.8z" fill="#333" /><path d="M952 462.4l-2.6-28.2c-8.5-92.1-49.4-179-115.2-244.6A399.4 399.4 0 00589 74.6L560.7 72c-3.4-.3-6.4 1.5-7.8 4.3a8.7 8.7 0 00-.9 3.6V464c0 4.4 3.6 8 8 8l384-1c1.2 0 2.3-.3 3.4-.7a8.1 8.1 0 004.6-7.9zm-332.2-58.2V147.6a332.24 332.24 0 01166.4 89.8c45.7 45.6 77 103.6 90 166.1l-256.4.7z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/pie-chart.svg b/src/blrec/data/webapp/assets/twotone/pie-chart.svg new file mode 100644 index 0000000..79ede7d --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/pie-chart.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M316.2 920.5c-47.6-20.1-90.4-49-127.1-85.7a398.19 398.19 0 01-85.7-127.1A397.12 397.12 0 0172 552.2v.2a398.57 398.57 0 00117 282.5c36.7 36.7 79.4 65.5 127 85.6A396.64 396.64 0 00471.6 952c27 0 53.6-2.7 79.7-7.9-25.9 5.2-52.4 7.8-79.3 7.8-54 .1-106.4-10.5-155.8-31.4zM560 472c-4.4 0-8-3.6-8-8V79.9c0-1.3.3-2.5.9-3.6-.9 1.3-1.5 2.9-1.5 4.6v383.7c0 4.4 3.6 8 8 8l383.6-1c1.6 0 3.1-.5 4.4-1.3-1 .5-2.2.7-3.4.7l-384 1z" fill="#E6E6E6" /><path d="M619.8 147.6v256.6l256.4-.7c-13-62.5-44.3-120.5-90-166.1a332.24 332.24 0 00-166.4-89.8z" fill="#E6E6E6" /><path d="M438 221.7c-75.9 7.6-146.2 40.9-200.8 95.5C174.5 379.9 140 463.3 140 552s34.5 172.1 97.2 234.8c62.3 62.3 145.1 96.8 233.2 97.2 88.2.4 172.7-34.1 235.3-96.2C761 733 794.6 662.3 802.3 586H438V221.7z" fill="#E6E6E6" /><path d="M864 518H506V160c0-4.4-3.6-8-8-8h-26a398.46 398.46 0 00-282.8 117.1 398.19 398.19 0 00-85.7 127.1A397.61 397.61 0 0072 552v.2c0 53.9 10.6 106.2 31.4 155.5 20.1 47.6 49 90.4 85.7 127.1 36.7 36.7 79.5 65.6 127.1 85.7A397.61 397.61 0 00472 952c26.9 0 53.4-2.6 79.3-7.8 26.1-5.3 51.7-13.1 76.4-23.6 47.6-20.1 90.4-49 127.1-85.7 36.7-36.7 65.6-79.5 85.7-127.1A397.61 397.61 0 00872 552v-26c0-4.4-3.6-8-8-8zM705.7 787.8A331.59 331.59 0 01470.4 884c-88.1-.4-170.9-34.9-233.2-97.2C174.5 724.1 140 640.7 140 552s34.5-172.1 97.2-234.8c54.6-54.6 124.9-87.9 200.8-95.5V586h364.3c-7.7 76.3-41.3 147-96.6 201.8z" fill="#333" /><path d="M952 462.4l-2.6-28.2c-8.5-92.1-49.4-179-115.2-244.6A399.4 399.4 0 00589 74.6L560.7 72c-3.4-.3-6.4 1.5-7.8 4.3a8.7 8.7 0 00-.9 3.6V464c0 4.4 3.6 8 8 8l384-1c1.2 0 2.3-.3 3.4-.7a8.1 8.1 0 004.6-7.9zm-332.2-58.2V147.6a332.24 332.24 0 01166.4 89.8c45.7 45.6 77 103.6 90 166.1l-256.4.7z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/play-circle.js b/src/blrec/data/webapp/assets/twotone/play-circle.js new file mode 100644 index 0000000..1a2b6fd --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/play-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'play-circle', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm164.1 378.2L457.7 677.1a8.02 8.02 0 01-12.7-6.5V353a8 8 0 0112.7-6.5l218.4 158.8a7.9 7.9 0 010 12.9z" fill="#E6E6E6" /><path d="M676.1 505.3L457.7 346.5A8 8 0 00445 353v317.6a8.02 8.02 0 0012.7 6.5l218.4-158.9a7.9 7.9 0 000-12.9z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/play-circle.svg b/src/blrec/data/webapp/assets/twotone/play-circle.svg new file mode 100644 index 0000000..b97542f --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/play-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm164.1 378.2L457.7 677.1a8.02 8.02 0 01-12.7-6.5V353a8 8 0 0112.7-6.5l218.4 158.8a7.9 7.9 0 010 12.9z" fill="#E6E6E6" /><path d="M676.1 505.3L457.7 346.5A8 8 0 00445 353v317.6a8.02 8.02 0 0012.7 6.5l218.4-158.9a7.9 7.9 0 000-12.9z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/play-square.js b/src/blrec/data/webapp/assets/twotone/play-square.js new file mode 100644 index 0000000..c5817bb --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/play-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'play-square', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm240-484.7c0-9.4 10.9-14.7 18.3-8.8l199.4 156.7a11.2 11.2 0 010 17.6L442.3 677.6c-7.4 5.8-18.3.6-18.3-8.8V355.3z" fill="#E6E6E6" /><path d="M442.3 677.6l199.4-156.8a11.2 11.2 0 000-17.6L442.3 346.5c-7.4-5.9-18.3-.6-18.3 8.8v313.5c0 9.4 10.9 14.6 18.3 8.8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/play-square.svg b/src/blrec/data/webapp/assets/twotone/play-square.svg new file mode 100644 index 0000000..28cb6b1 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/play-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm240-484.7c0-9.4 10.9-14.7 18.3-8.8l199.4 156.7a11.2 11.2 0 010 17.6L442.3 677.6c-7.4 5.8-18.3.6-18.3-8.8V355.3z" fill="#E6E6E6" /><path d="M442.3 677.6l199.4-156.8a11.2 11.2 0 000-17.6L442.3 346.5c-7.4-5.9-18.3-.6-18.3 8.8v313.5c0 9.4 10.9 14.6 18.3 8.8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/plus-circle.js b/src/blrec/data/webapp/assets/twotone/plus-circle.js new file mode 100644 index 0000000..004e201 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/plus-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'plus-circle', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm192 396c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z" fill="#E6E6E6" /><path d="M696 480H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/plus-circle.svg b/src/blrec/data/webapp/assets/twotone/plus-circle.svg new file mode 100644 index 0000000..8423c35 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/plus-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm192 396c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48z" fill="#E6E6E6" /><path d="M696 480H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/plus-square.js b/src/blrec/data/webapp/assets/twotone/plus-square.js new file mode 100644 index 0000000..6eb91c1 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/plus-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'plus-square', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm136-352c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48z" fill="#E6E6E6" /><path d="M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/plus-square.svg b/src/blrec/data/webapp/assets/twotone/plus-square.svg new file mode 100644 index 0000000..827c4a1 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/plus-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm136-352c0-4.4 3.6-8 8-8h152V328c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v152h152c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H544v152c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V544H328c-4.4 0-8-3.6-8-8v-48z" fill="#E6E6E6" /><path d="M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/pound-circle.js b/src/blrec/data/webapp/assets/twotone/pound-circle.js new file mode 100644 index 0000000..4f624ff --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/pound-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'pound-circle', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm146 582.1c0 4.4-3.6 8-8 8H376.2c-4.4 0-8-3.6-8-8v-38.5c0-3.7 2.5-6.9 6.1-7.8 44-10.9 72.8-49 72.8-94.2 0-14.7-2.5-29.4-5.9-44.2H374c-4.4 0-8-3.6-8-8v-30c0-4.4 3.6-8 8-8h53.7c-7.8-25.1-14.6-50.7-14.6-77.1 0-75.8 58.6-120.3 151.5-120.3 26.5 0 51.4 5.5 70.3 12.7 3.1 1.2 5.2 4.2 5.2 7.5v39.5a8 8 0 01-10.6 7.6c-17.9-6.4-39-10.5-60.4-10.5-53.3 0-87.3 26.6-87.3 70.2 0 24.7 6.2 47.9 13.4 70.5h112c4.4 0 8 3.6 8 8v30c0 4.4-3.6 8-8 8h-98.6c3.1 13.2 5.3 26.9 5.3 41 0 40.7-16.5 73.9-43.9 91.1v4.7h180c4.4 0 8 3.6 8 8v39.8z" fill="#E6E6E6" /><path d="M650 674.3H470v-4.7c27.4-17.2 43.9-50.4 43.9-91.1 0-14.1-2.2-27.8-5.3-41h98.6c4.4 0 8-3.6 8-8v-30c0-4.4-3.6-8-8-8h-112c-7.2-22.6-13.4-45.8-13.4-70.5 0-43.6 34-70.2 87.3-70.2 21.4 0 42.5 4.1 60.4 10.5a8 8 0 0010.6-7.6v-39.5c0-3.3-2.1-6.3-5.2-7.5-18.9-7.2-43.8-12.7-70.3-12.7-92.9 0-151.5 44.5-151.5 120.3 0 26.4 6.8 52 14.6 77.1H374c-4.4 0-8 3.6-8 8v30c0 4.4 3.6 8 8 8h67.2c3.4 14.8 5.9 29.5 5.9 44.2 0 45.2-28.8 83.3-72.8 94.2-3.6.9-6.1 4.1-6.1 7.8v38.5c0 4.4 3.6 8 8 8H650c4.4 0 8-3.6 8-8v-39.8c0-4.4-3.6-8-8-8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/pound-circle.svg b/src/blrec/data/webapp/assets/twotone/pound-circle.svg new file mode 100644 index 0000000..ede79cf --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/pound-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm146 582.1c0 4.4-3.6 8-8 8H376.2c-4.4 0-8-3.6-8-8v-38.5c0-3.7 2.5-6.9 6.1-7.8 44-10.9 72.8-49 72.8-94.2 0-14.7-2.5-29.4-5.9-44.2H374c-4.4 0-8-3.6-8-8v-30c0-4.4 3.6-8 8-8h53.7c-7.8-25.1-14.6-50.7-14.6-77.1 0-75.8 58.6-120.3 151.5-120.3 26.5 0 51.4 5.5 70.3 12.7 3.1 1.2 5.2 4.2 5.2 7.5v39.5a8 8 0 01-10.6 7.6c-17.9-6.4-39-10.5-60.4-10.5-53.3 0-87.3 26.6-87.3 70.2 0 24.7 6.2 47.9 13.4 70.5h112c4.4 0 8 3.6 8 8v30c0 4.4-3.6 8-8 8h-98.6c3.1 13.2 5.3 26.9 5.3 41 0 40.7-16.5 73.9-43.9 91.1v4.7h180c4.4 0 8 3.6 8 8v39.8z" fill="#E6E6E6" /><path d="M650 674.3H470v-4.7c27.4-17.2 43.9-50.4 43.9-91.1 0-14.1-2.2-27.8-5.3-41h98.6c4.4 0 8-3.6 8-8v-30c0-4.4-3.6-8-8-8h-112c-7.2-22.6-13.4-45.8-13.4-70.5 0-43.6 34-70.2 87.3-70.2 21.4 0 42.5 4.1 60.4 10.5a8 8 0 0010.6-7.6v-39.5c0-3.3-2.1-6.3-5.2-7.5-18.9-7.2-43.8-12.7-70.3-12.7-92.9 0-151.5 44.5-151.5 120.3 0 26.4 6.8 52 14.6 77.1H374c-4.4 0-8 3.6-8 8v30c0 4.4 3.6 8 8 8h67.2c3.4 14.8 5.9 29.5 5.9 44.2 0 45.2-28.8 83.3-72.8 94.2-3.6.9-6.1 4.1-6.1 7.8v38.5c0 4.4 3.6 8 8 8H650c4.4 0 8-3.6 8-8v-39.8c0-4.4-3.6-8-8-8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/printer.js b/src/blrec/data/webapp/assets/twotone/printer.js new file mode 100644 index 0000000..67b55b4 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/printer.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'printer', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M360 180h304v152H360zm492 220H172c-6.6 0-12 5.4-12 12v292h132V500h440v204h132V412c0-6.6-5.4-12-12-12zm-24 84c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v40z" fill="#E6E6E6" /><path d="M852 332H732V120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM360 180h304v152H360V180zm304 664H360V568h304v276zm200-140H732V500H292v204H160V412c0-6.6 5.4-12 12-12h680c6.6 0 12 5.4 12 12v292z" fill="#333" /><path d="M820 436h-40c-4.4 0-8 3.6-8 8v40c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-40c0-4.4-3.6-8-8-8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/printer.svg b/src/blrec/data/webapp/assets/twotone/printer.svg new file mode 100644 index 0000000..49e1f76 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/printer.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M360 180h304v152H360zm492 220H172c-6.6 0-12 5.4-12 12v292h132V500h440v204h132V412c0-6.6-5.4-12-12-12zm-24 84c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8 3.6 8 8v40z" fill="#E6E6E6" /><path d="M852 332H732V120c0-4.4-3.6-8-8-8H300c-4.4 0-8 3.6-8 8v212H172c-44.2 0-80 35.8-80 80v328c0 17.7 14.3 32 32 32h168v132c0 4.4 3.6 8 8 8h424c4.4 0 8-3.6 8-8V772h168c17.7 0 32-14.3 32-32V412c0-44.2-35.8-80-80-80zM360 180h304v152H360V180zm304 664H360V568h304v276zm200-140H732V500H292v204H160V412c0-6.6 5.4-12 12-12h680c6.6 0 12 5.4 12 12v292z" fill="#333" /><path d="M820 436h-40c-4.4 0-8 3.6-8 8v40c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-40c0-4.4-3.6-8-8-8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/profile.js b/src/blrec/data/webapp/assets/twotone/profile.js new file mode 100644 index 0000000..4e9bc8c --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/profile.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'profile', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm300-496c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zm0 144c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zm0 144c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zM380 328c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z" fill="#E6E6E6" /><path d="M340 656a40 40 0 1080 0 40 40 0 10-80 0zm0-144a40 40 0 1080 0 40 40 0 10-80 0zm0-144a40 40 0 1080 0 40 40 0 10-80 0zm152 320h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/profile.svg b/src/blrec/data/webapp/assets/twotone/profile.svg new file mode 100644 index 0000000..571b267 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/profile.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm300-496c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zm0 144c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zm0 144c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H492c-4.4 0-8-3.6-8-8v-48zM380 328c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40zm0 144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z" fill="#E6E6E6" /><path d="M340 656a40 40 0 1080 0 40 40 0 10-80 0zm0-144a40 40 0 1080 0 40 40 0 10-80 0zm0-144a40 40 0 1080 0 40 40 0 10-80 0zm152 320h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0-144h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H492c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/project.js b/src/blrec/data/webapp/assets/twotone/project.js new file mode 100644 index 0000000..5ac529d --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/project.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'project', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm472-560c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v256c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280zm-192 0c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280zm-192 0c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v464c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280z" fill="#E6E6E6" /><path d="M280 752h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8zm192-280h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8zm192 72h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v256c0 4.4 3.6 8 8 8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/project.svg b/src/blrec/data/webapp/assets/twotone/project.svg new file mode 100644 index 0000000..e77a181 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/project.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm472-560c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v256c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280zm-192 0c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280zm-192 0c0-4.4 3.6-8 8-8h80c4.4 0 8 3.6 8 8v464c0 4.4-3.6 8-8 8h-80c-4.4 0-8-3.6-8-8V280z" fill="#E6E6E6" /><path d="M280 752h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v464c0 4.4 3.6 8 8 8zm192-280h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v184c0 4.4 3.6 8 8 8zm192 72h80c4.4 0 8-3.6 8-8V280c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8v256c0 4.4 3.6 8 8 8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/property-safety.js b/src/blrec/data/webapp/assets/twotone/property-safety.js new file mode 100644 index 0000000..2088d10 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/property-safety.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'property-safety', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z" fill="#333" /><path d="M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM593.9 318h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V658c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8H418c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7H418c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3L585 323.5a10 10 0 018.9-5.5z" fill="#E6E6E6" /><path d="M438.9 323.5a9.88 9.88 0 00-8.9-5.5h-46c-1.7 0-3.3.4-4.8 1.2-4.9 2.7-6.6 8.8-4 13.6l88 161.1H418c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1v29.7H418c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1V658c0 5.5 4.5 10 10 10h41.3c5.5 0 10-4.5 10-10v-51.8h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-63.4v-29.7h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-45.7l87.7-161.1c.8-1.5 1.2-3.1 1.1-4.8 0-5.5-4.5-10-10-10h-45a10 10 0 00-8.9 5.5l-73.2 144.3-72.9-144.3z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/property-safety.svg b/src/blrec/data/webapp/assets/twotone/property-safety.svg new file mode 100644 index 0000000..b577b71 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/property-safety.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z" fill="#333" /><path d="M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM593.9 318h45c5.5 0 10 4.5 10 10 .1 1.7-.3 3.3-1.1 4.8l-87.7 161.1h45.7c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4v29.7h63.4c5.5 0 10 4.5 10 10v21.3c0 5.5-4.5 10-10 10h-63.4V658c0 5.5-4.5 10-10 10h-41.3c-5.5 0-10-4.5-10-10v-51.8H418c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h63.1v-29.7H418c-5.5 0-10-4.5-10-10v-21.3c0-5.5 4.5-10 10-10h45.2l-88-161.1c-2.6-4.8-.9-10.9 4-13.6 1.5-.8 3.1-1.2 4.8-1.2h46c3.8 0 7.2 2.1 8.9 5.5l72.9 144.3L585 323.5a10 10 0 018.9-5.5z" fill="#E6E6E6" /><path d="M438.9 323.5a9.88 9.88 0 00-8.9-5.5h-46c-1.7 0-3.3.4-4.8 1.2-4.9 2.7-6.6 8.8-4 13.6l88 161.1H418c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1v29.7H418c-5.5 0-10 4.5-10 10v21.3c0 5.5 4.5 10 10 10h63.1V658c0 5.5 4.5 10 10 10h41.3c5.5 0 10-4.5 10-10v-51.8h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-63.4v-29.7h63.4c5.5 0 10-4.5 10-10v-21.3c0-5.5-4.5-10-10-10h-45.7l87.7-161.1c.8-1.5 1.2-3.1 1.1-4.8 0-5.5-4.5-10-10-10h-45a10 10 0 00-8.9 5.5l-73.2 144.3-72.9-144.3z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/pushpin.js b/src/blrec/data/webapp/assets/twotone/pushpin.js new file mode 100644 index 0000000..4129dc6 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/pushpin.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'pushpin', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M474.8 357.7l-24.5 24.5-34.4-3.8c-9.6-1.1-19.3-1.6-28.9-1.6-29 0-57.5 4.7-84.7 14.1-14 4.8-27.4 10.8-40.3 17.9l353.1 353.3a259.92 259.92 0 0030.4-153.9l-3.8-34.4 24.5-24.5L800 415.5 608.5 224 474.8 357.7z" fill="#E6E6E6" /><path d="M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3a33.23 33.23 0 00-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 00-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8zM666.2 549.3l-24.5 24.5 3.8 34.4a259.92 259.92 0 01-30.4 153.9L262 408.8c12.9-7.1 26.3-13.1 40.3-17.9 27.2-9.4 55.7-14.1 84.7-14.1 9.6 0 19.3.5 28.9 1.6l34.4 3.8 24.5-24.5L608.5 224 800 415.5 666.2 549.3z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/pushpin.svg b/src/blrec/data/webapp/assets/twotone/pushpin.svg new file mode 100644 index 0000000..61a8d45 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/pushpin.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M474.8 357.7l-24.5 24.5-34.4-3.8c-9.6-1.1-19.3-1.6-28.9-1.6-29 0-57.5 4.7-84.7 14.1-14 4.8-27.4 10.8-40.3 17.9l353.1 353.3a259.92 259.92 0 0030.4-153.9l-3.8-34.4 24.5-24.5L800 415.5 608.5 224 474.8 357.7z" fill="#E6E6E6" /><path d="M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3a33.23 33.23 0 00-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 00-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8zM666.2 549.3l-24.5 24.5 3.8 34.4a259.92 259.92 0 01-30.4 153.9L262 408.8c12.9-7.1 26.3-13.1 40.3-17.9 27.2-9.4 55.7-14.1 84.7-14.1 9.6 0 19.3.5 28.9 1.6l34.4 3.8 24.5-24.5L608.5 224 800 415.5 666.2 549.3z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/question-circle.js b/src/blrec/data/webapp/assets/twotone/question-circle.js new file mode 100644 index 0000000..ec04c15 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/question-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'question-circle', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm0 632c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 00-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z" fill="#E6E6E6" /><path d="M472 732a40 40 0 1080 0 40 40 0 10-80 0zm151.6-415.3C593.6 290.5 554 276 512 276s-81.6 14.4-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.2 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5 0-39.3-17.2-76-48.4-103.3z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/question-circle.svg b/src/blrec/data/webapp/assets/twotone/question-circle.svg new file mode 100644 index 0000000..dff08cb --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/question-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm0 632c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm62.9-219.5a48.3 48.3 0 00-30.9 44.8V620c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-21.5c0-23.1 6.7-45.9 19.9-64.9 12.9-18.6 30.9-32.8 52.1-40.9 34-13.1 56-41.6 56-72.7 0-44.1-43.1-80-96-80s-96 35.9-96 80v7.6c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V420c0-39.3 17.2-76 48.4-103.3C430.4 290.4 470 276 512 276s81.6 14.5 111.6 40.7C654.8 344 672 380.7 672 420c0 57.8-38.1 109.8-97.1 132.5z" fill="#E6E6E6" /><path d="M472 732a40 40 0 1080 0 40 40 0 10-80 0zm151.6-415.3C593.6 290.5 554 276 512 276s-81.6 14.4-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.2 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5 0-39.3-17.2-76-48.4-103.3z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/reconciliation.js b/src/blrec/data/webapp/assets/twotone/reconciliation.js new file mode 100644 index 0000000..6eaa850 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/reconciliation.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'reconciliation', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M740 344H404V240H304v160h176c17.7 0 32 14.3 32 32v360h328V240H740v104zM584 448c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56zm92 301c-50.8 0-92-41.2-92-92s41.2-92 92-92 92 41.2 92 92-41.2 92-92 92zm92-341v96c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8z" fill="#E6E6E6" /><path d="M642 657a34 34 0 1068 0 34 34 0 10-68 0z" fill="#E6E6E6" /><path d="M592 512h48c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm112-104v96c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-96c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8z" fill="#333" /><path d="M880 168H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zm-412 64h72v-56h64v56h72v48H468v-48zm-20 616H176V616h272v232zm0-296H176v-88h272v88zm392 240H512V432c0-17.7-14.3-32-32-32H304V240h100v104h336V240h100v552z" fill="#333" /><path d="M676 565c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/reconciliation.svg b/src/blrec/data/webapp/assets/twotone/reconciliation.svg new file mode 100644 index 0000000..d1a01dc --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/reconciliation.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M740 344H404V240H304v160h176c17.7 0 32 14.3 32 32v360h328V240H740v104zM584 448c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56zm92 301c-50.8 0-92-41.2-92-92s41.2-92 92-92 92 41.2 92 92-41.2 92-92 92zm92-341v96c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-96c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8z" fill="#E6E6E6" /><path d="M642 657a34 34 0 1068 0 34 34 0 10-68 0z" fill="#E6E6E6" /><path d="M592 512h48c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm112-104v96c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-96c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8z" fill="#333" /><path d="M880 168H668c0-30.9-25.1-56-56-56h-80c-30.9 0-56 25.1-56 56H264c-17.7 0-32 14.3-32 32v200h-88c-17.7 0-32 14.3-32 32v448c0 17.7 14.3 32 32 32h336c17.7 0 32-14.3 32-32v-16h368c17.7 0 32-14.3 32-32V200c0-17.7-14.3-32-32-32zm-412 64h72v-56h64v56h72v48H468v-48zm-20 616H176V616h272v232zm0-296H176v-88h272v88zm392 240H512V432c0-17.7-14.3-32-32-32H304V240h100v104h336V240h100v552z" fill="#333" /><path d="M676 565c-50.8 0-92 41.2-92 92s41.2 92 92 92 92-41.2 92-92-41.2-92-92-92zm0 126c-18.8 0-34-15.2-34-34s15.2-34 34-34 34 15.2 34 34-15.2 34-34 34z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/red-envelope.js b/src/blrec/data/webapp/assets/twotone/red-envelope.js new file mode 100644 index 0000000..d3bdf45 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/red-envelope.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'red-envelope', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V193.1l260.3 204.1c11.6 9.1 27.9 9.1 39.5 0L792 193.1V888zm0-751.3h-31.7L512 331.3 263.7 136.7H232v-.7h560v.7z" fill="#333" /><path d="M492.3 397.2L232 193.1V888h560V193.1L531.8 397.2a31.99 31.99 0 01-39.5 0zm99.4 60.9h47.8a8.45 8.45 0 017.4 12.4l-87.2 161h45.9c4.6 0 8.4 3.8 8.4 8.4V665c0 4.6-3.8 8.4-8.4 8.4h-63.3V702h63.3c4.6 0 8.4 3.8 8.4 8.4v25c.2 4.7-3.5 8.5-8.2 8.5h-63.3v49.9c0 4.6-3.8 8.4-8.4 8.4h-43.7c-4.6 0-8.4-3.8-8.4-8.4v-49.9h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h63v-28.6h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h45.4L377 470.4a8.4 8.4 0 013.4-11.4c1.3-.6 2.6-1 3.9-1h48.8c3.2 0 6.1 1.8 7.5 4.6l71.7 142 71.9-141.9a8.6 8.6 0 017.5-4.6z" fill="#E6E6E6" /><path d="M232 136.7h31.7L512 331.3l248.3-194.6H792v-.7H232z" fill="#E6E6E6" /><path d="M440.6 462.6a8.38 8.38 0 00-7.5-4.6h-48.8c-1.3 0-2.6.4-3.9 1a8.4 8.4 0 00-3.4 11.4l87.4 161.1H419c-4.6 0-8.4 3.8-8.4 8.4V665c0 4.6 3.8 8.4 8.4 8.4h63V702h-63c-4.6 0-8.4 3.8-8.4 8.4v25.1c0 4.6 3.8 8.4 8.4 8.4h63v49.9c0 4.6 3.8 8.4 8.4 8.4h43.7c4.6 0 8.4-3.8 8.4-8.4v-49.9h63.3c4.7 0 8.4-3.8 8.2-8.5v-25c0-4.6-3.8-8.4-8.4-8.4h-63.3v-28.6h63.3c4.6 0 8.4-3.8 8.4-8.4v-25.1c0-4.6-3.8-8.4-8.4-8.4h-45.9l87.2-161a8.45 8.45 0 00-7.4-12.4h-47.8c-3.1 0-6 1.8-7.5 4.6l-71.9 141.9-71.7-142z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/red-envelope.svg b/src/blrec/data/webapp/assets/twotone/red-envelope.svg new file mode 100644 index 0000000..027b14e --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/red-envelope.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V193.1l260.3 204.1c11.6 9.1 27.9 9.1 39.5 0L792 193.1V888zm0-751.3h-31.7L512 331.3 263.7 136.7H232v-.7h560v.7z" fill="#333" /><path d="M492.3 397.2L232 193.1V888h560V193.1L531.8 397.2a31.99 31.99 0 01-39.5 0zm99.4 60.9h47.8a8.45 8.45 0 017.4 12.4l-87.2 161h45.9c4.6 0 8.4 3.8 8.4 8.4V665c0 4.6-3.8 8.4-8.4 8.4h-63.3V702h63.3c4.6 0 8.4 3.8 8.4 8.4v25c.2 4.7-3.5 8.5-8.2 8.5h-63.3v49.9c0 4.6-3.8 8.4-8.4 8.4h-43.7c-4.6 0-8.4-3.8-8.4-8.4v-49.9h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h63v-28.6h-63c-4.6 0-8.4-3.8-8.4-8.4v-25.1c0-4.6 3.8-8.4 8.4-8.4h45.4L377 470.4a8.4 8.4 0 013.4-11.4c1.3-.6 2.6-1 3.9-1h48.8c3.2 0 6.1 1.8 7.5 4.6l71.7 142 71.9-141.9a8.6 8.6 0 017.5-4.6z" fill="#E6E6E6" /><path d="M232 136.7h31.7L512 331.3l248.3-194.6H792v-.7H232z" fill="#E6E6E6" /><path d="M440.6 462.6a8.38 8.38 0 00-7.5-4.6h-48.8c-1.3 0-2.6.4-3.9 1a8.4 8.4 0 00-3.4 11.4l87.4 161.1H419c-4.6 0-8.4 3.8-8.4 8.4V665c0 4.6 3.8 8.4 8.4 8.4h63V702h-63c-4.6 0-8.4 3.8-8.4 8.4v25.1c0 4.6 3.8 8.4 8.4 8.4h63v49.9c0 4.6 3.8 8.4 8.4 8.4h43.7c4.6 0 8.4-3.8 8.4-8.4v-49.9h63.3c4.7 0 8.4-3.8 8.2-8.5v-25c0-4.6-3.8-8.4-8.4-8.4h-63.3v-28.6h63.3c4.6 0 8.4-3.8 8.4-8.4v-25.1c0-4.6-3.8-8.4-8.4-8.4h-45.9l87.2-161a8.45 8.45 0 00-7.4-12.4h-47.8c-3.1 0-6 1.8-7.5 4.6l-71.9 141.9-71.7-142z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/rest.js b/src/blrec/data/webapp/assets/twotone/rest.js new file mode 100644 index 0000000..07c268b --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/rest.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'rest', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M326.4 844h363.2l44.3-520H282l44.4 520zM508 416c79.5 0 144 64.5 144 144s-64.5 144-144 144-144-64.5-144-144 64.5-144 144-144z" fill="#E6E6E6" /><path d="M508 704c79.5 0 144-64.5 144-144s-64.5-144-144-144-144 64.5-144 144 64.5 144 144 144zm0-224c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z" fill="#333" /><path d="M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0031.9 29.3h429.2a32 32 0 0031.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zm-518.6-76h397.2l22.4 76H291l22.4-76zm376.2 664H326.4L282 324h451.9l-44.3 520z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/rest.svg b/src/blrec/data/webapp/assets/twotone/rest.svg new file mode 100644 index 0000000..38f7c69 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/rest.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M326.4 844h363.2l44.3-520H282l44.4 520zM508 416c79.5 0 144 64.5 144 144s-64.5 144-144 144-144-64.5-144-144 64.5-144 144-144z" fill="#E6E6E6" /><path d="M508 704c79.5 0 144-64.5 144-144s-64.5-144-144-144-144 64.5-144 144 64.5 144 144 144zm0-224c44.2 0 80 35.8 80 80s-35.8 80-80 80-80-35.8-80-80 35.8-80 80-80z" fill="#333" /><path d="M832 256h-28.1l-35.7-120.9c-4-13.7-16.5-23.1-30.7-23.1h-451c-14.3 0-26.8 9.4-30.7 23.1L220.1 256H192c-17.7 0-32 14.3-32 32v28c0 4.4 3.6 8 8 8h45.8l47.7 558.7a32 32 0 0031.9 29.3h429.2a32 32 0 0031.9-29.3L802.2 324H856c4.4 0 8-3.6 8-8v-28c0-17.7-14.3-32-32-32zm-518.6-76h397.2l22.4 76H291l22.4-76zm376.2 664H326.4L282 324h451.9l-44.3 520z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/right-circle.js b/src/blrec/data/webapp/assets/twotone/right-circle.js new file mode 100644 index 0000000..63e9b1f --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/right-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'right-circle', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm154.7 378.4l-246 178c-5.3 3.8-12.7 0-12.7-6.5V643c0-10.2 4.9-19.9 13.2-25.9L566.6 512 421.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.7 0 12.9z" fill="#E6E6E6" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M666.7 505.5l-246-178c-5.3-3.8-12.7 0-12.7 6.5v46.9c0 10.3 4.9 19.9 13.2 25.9L566.6 512 421.2 617.1c-8.3 6-13.2 15.7-13.2 25.9v46.9c0 6.5 7.4 10.3 12.7 6.5l246-178c4.4-3.2 4.4-9.7 0-12.9z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/right-circle.svg b/src/blrec/data/webapp/assets/twotone/right-circle.svg new file mode 100644 index 0000000..b338cf2 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/right-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm154.7 378.4l-246 178c-5.3 3.8-12.7 0-12.7-6.5V643c0-10.2 4.9-19.9 13.2-25.9L566.6 512 421.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.7 0 12.9z" fill="#E6E6E6" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M666.7 505.5l-246-178c-5.3-3.8-12.7 0-12.7 6.5v46.9c0 10.3 4.9 19.9 13.2 25.9L566.6 512 421.2 617.1c-8.3 6-13.2 15.7-13.2 25.9v46.9c0 6.5 7.4 10.3 12.7 6.5l246-178c4.4-3.2 4.4-9.7 0-12.9z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/right-square.js b/src/blrec/data/webapp/assets/twotone/right-square.js new file mode 100644 index 0000000..ccb50cf --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/right-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'right-square', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm216-196.9c0-10.2 4.9-19.9 13.2-25.9L558.6 512 413.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.7 0 12.9l-246 178c-5.3 3.9-12.7.1-12.7-6.4v-46.9z" fill="#E6E6E6" /><path d="M412.7 696.4l246-178c4.4-3.2 4.4-9.7 0-12.9l-246-178c-5.3-3.8-12.7 0-12.7 6.5v46.9c0 10.3 4.9 19.9 13.2 25.9L558.6 512 413.2 617.2c-8.3 6-13.2 15.7-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.4z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/right-square.svg b/src/blrec/data/webapp/assets/twotone/right-square.svg new file mode 100644 index 0000000..a8cfccb --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/right-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm216-196.9c0-10.2 4.9-19.9 13.2-25.9L558.6 512 413.2 406.8c-8.3-6-13.2-15.6-13.2-25.9V334c0-6.5 7.4-10.3 12.7-6.5l246 178c4.4 3.2 4.4 9.7 0 12.9l-246 178c-5.3 3.9-12.7.1-12.7-6.4v-46.9z" fill="#E6E6E6" /><path d="M412.7 696.4l246-178c4.4-3.2 4.4-9.7 0-12.9l-246-178c-5.3-3.8-12.7 0-12.7 6.5v46.9c0 10.3 4.9 19.9 13.2 25.9L558.6 512 413.2 617.2c-8.3 6-13.2 15.7-13.2 25.9V690c0 6.5 7.4 10.3 12.7 6.4z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/rocket.js b/src/blrec/data/webapp/assets/twotone/rocket.js new file mode 100644 index 0000000..8a6ebde --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/rocket.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'rocket', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M261.7 621.4c-9.4 14.6-17 30.3-22.5 46.6H324V558.7c-24.8 16.2-46 37.5-62.3 62.7zM700 558.7V668h84.8c-5.5-16.3-13.1-32-22.5-46.6a211.6 211.6 0 00-62.3-62.7zm-64-239.9l-124-147-124 147V668h248V318.8zM512 448a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" fill="#E6E6E6" /><path d="M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 00-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0043.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0043.1-30.5 97.52 97.52 0 0021.4-60.8c0-8.4-1.1-16.4-3.1-23.8L864 736zm-540-68h-84.8c5.5-16.3 13.1-32 22.5-46.6 16.3-25.2 37.5-46.5 62.3-62.7V668zm64-184.9V318.8l124-147 124 147V668H388V483.1zm240.1 301.1c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5s-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 01-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5zM700 668V558.7a211.6 211.6 0 0162.3 62.7c9.4 14.6 17 30.3 22.5 46.6H700z" fill="#333" /><path d="M464 400a48 48 0 1096 0 48 48 0 10-96 0z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/rocket.svg b/src/blrec/data/webapp/assets/twotone/rocket.svg new file mode 100644 index 0000000..23f0fe9 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/rocket.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M261.7 621.4c-9.4 14.6-17 30.3-22.5 46.6H324V558.7c-24.8 16.2-46 37.5-62.3 62.7zM700 558.7V668h84.8c-5.5-16.3-13.1-32-22.5-46.6a211.6 211.6 0 00-62.3-62.7zm-64-239.9l-124-147-124 147V668h248V318.8zM512 448a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" fill="#E6E6E6" /><path d="M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 00-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0043.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0043.1-30.5 97.52 97.52 0 0021.4-60.8c0-8.4-1.1-16.4-3.1-23.8L864 736zm-540-68h-84.8c5.5-16.3 13.1-32 22.5-46.6 16.3-25.2 37.5-46.5 62.3-62.7V668zm64-184.9V318.8l124-147 124 147V668H388V483.1zm240.1 301.1c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5s-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 01-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5zM700 668V558.7a211.6 211.6 0 0162.3 62.7c9.4 14.6 17 30.3 22.5 46.6H700z" fill="#333" /><path d="M464 400a48 48 0 1096 0 48 48 0 10-96 0z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/safety-certificate.js b/src/blrec/data/webapp/assets/twotone/safety-certificate.js new file mode 100644 index 0000000..183bfeb --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/safety-certificate.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'safety-certificate', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z" fill="#333" /><path d="M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM632.8 328H688c6.5 0 10.3 7.4 6.5 12.7L481.9 633.4a16.1 16.1 0 01-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.2 0 10 2.5 13 6.6l64.7 89.1 150.9-207.8c3-4.1 7.9-6.6 13-6.6z" fill="#E6E6E6" /><path d="M404.2 453.3c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0026 0l212.6-292.7c3.8-5.3 0-12.7-6.5-12.7h-55.2c-5.1 0-10 2.5-13 6.6L468.9 542.4l-64.7-89.1z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/safety-certificate.svg b/src/blrec/data/webapp/assets/twotone/safety-certificate.svg new file mode 100644 index 0000000..5a4e52f --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/safety-certificate.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z" fill="#333" /><path d="M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zM632.8 328H688c6.5 0 10.3 7.4 6.5 12.7L481.9 633.4a16.1 16.1 0 01-26 0l-126.4-174c-3.8-5.3 0-12.7 6.5-12.7h55.2c5.2 0 10 2.5 13 6.6l64.7 89.1 150.9-207.8c3-4.1 7.9-6.6 13-6.6z" fill="#E6E6E6" /><path d="M404.2 453.3c-3-4.1-7.8-6.6-13-6.6H336c-6.5 0-10.3 7.4-6.5 12.7l126.4 174a16.1 16.1 0 0026 0l212.6-292.7c3.8-5.3 0-12.7-6.5-12.7h-55.2c-5.1 0-10 2.5-13 6.6L468.9 542.4l-64.7-89.1z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/save.js b/src/blrec/data/webapp/assets/twotone/save.js new file mode 100644 index 0000000..40bee9e --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/save.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'save', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M704 320c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V184H184v656h656V341.8l-136-136V320zM512 730c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144z" fill="#E6E6E6" /><path d="M512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z" fill="#333" /><path d="M893.3 293.3L730.7 130.7c-.7-.7-1.4-1.3-2.1-2-.1-.1-.3-.2-.4-.3-.7-.7-1.5-1.3-2.2-1.9a64 64 0 00-22-11.7V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/save.svg b/src/blrec/data/webapp/assets/twotone/save.svg new file mode 100644 index 0000000..b571669 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/save.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M704 320c0 17.7-14.3 32-32 32H352c-17.7 0-32-14.3-32-32V184H184v656h656V341.8l-136-136V320zM512 730c-79.5 0-144-64.5-144-144s64.5-144 144-144 144 64.5 144 144-64.5 144-144 144z" fill="#E6E6E6" /><path d="M512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z" fill="#333" /><path d="M893.3 293.3L730.7 130.7c-.7-.7-1.4-1.3-2.1-2-.1-.1-.3-.2-.4-.3-.7-.7-1.5-1.3-2.2-1.9a64 64 0 00-22-11.7V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/schedule.js b/src/blrec/data/webapp/assets/twotone/schedule.js new file mode 100644 index 0000000..da2ab64 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/schedule.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'schedule', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M768 352c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H548v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H328v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H136v496h752V296H768v56zM424 688c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-136c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm374.4-91.2l-165 228.7a15.9 15.9 0 01-25.8 0L493.5 531.3c-3.8-5.3 0-12.7 6.5-12.7h54.9c5.1 0 9.9 2.4 12.9 6.6l52.8 73.1 103.6-143.7c3-4.1 7.8-6.6 12.8-6.5h54.9c6.5 0 10.3 7.4 6.5 12.7z" fill="#E6E6E6" /><path d="M724.2 454.6L620.6 598.3l-52.8-73.1c-3-4.2-7.8-6.6-12.9-6.6H500c-6.5 0-10.3 7.4-6.5 12.7l114.1 158.2a15.9 15.9 0 0025.8 0l165-228.7c3.8-5.3 0-12.7-6.5-12.7H737c-5-.1-9.8 2.4-12.8 6.5zM416 496H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" fill="#333" /><path d="M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496z" fill="#333" /><path d="M416 632H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/schedule.svg b/src/blrec/data/webapp/assets/twotone/schedule.svg new file mode 100644 index 0000000..5bfb10e --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/schedule.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M768 352c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H548v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H328v56c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-56H136v496h752V296H768v56zM424 688c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm0-136c0 4.4-3.6 8-8 8H232c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h184c4.4 0 8 3.6 8 8v48zm374.4-91.2l-165 228.7a15.9 15.9 0 01-25.8 0L493.5 531.3c-3.8-5.3 0-12.7 6.5-12.7h54.9c5.1 0 9.9 2.4 12.9 6.6l52.8 73.1 103.6-143.7c3-4.1 7.8-6.6 12.8-6.5h54.9c6.5 0 10.3 7.4 6.5 12.7z" fill="#E6E6E6" /><path d="M724.2 454.6L620.6 598.3l-52.8-73.1c-3-4.2-7.8-6.6-12.9-6.6H500c-6.5 0-10.3 7.4-6.5 12.7l114.1 158.2a15.9 15.9 0 0025.8 0l165-228.7c3.8-5.3 0-12.7-6.5-12.7H737c-5-.1-9.8 2.4-12.8 6.5zM416 496H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" fill="#333" /><path d="M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496z" fill="#333" /><path d="M416 632H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/security-scan.js b/src/blrec/data/webapp/assets/twotone/security-scan.js new file mode 100644 index 0000000..a921b1f --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/security-scan.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'security-scan', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z" fill="#333" /><path d="M460.7 451.1a80.1 80.1 0 10160.2 0 80.1 80.1 0 10-160.2 0z" fill="#E6E6E6" /><path d="M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zm428.7 122.5c56.3 56.3 56.3 147.5 0 203.8-48.5 48.5-123 55.2-178.6 20.1l-77.5 77.5a8.03 8.03 0 01-11.3 0l-34-34a8.03 8.03 0 010-11.3l77.5-77.5c-35.1-55.7-28.4-130.1 20.1-178.6 56.3-56.3 147.5-56.3 203.8 0z" fill="#E6E6E6" /><path d="M418.8 527.8l-77.5 77.5a8.03 8.03 0 000 11.3l34 34c3.1 3.1 8.2 3.1 11.3 0l77.5-77.5c55.6 35.1 130.1 28.4 178.6-20.1 56.3-56.3 56.3-147.5 0-203.8-56.3-56.3-147.5-56.3-203.8 0-48.5 48.5-55.2 122.9-20.1 178.6zm65.4-133.3a80.1 80.1 0 01113.3 0 80.1 80.1 0 010 113.3c-31.3 31.3-82 31.3-113.3 0s-31.3-82 0-113.3z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/security-scan.svg b/src/blrec/data/webapp/assets/twotone/security-scan.svg new file mode 100644 index 0000000..5575aa3 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/security-scan.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z" fill="#333" /><path d="M460.7 451.1a80.1 80.1 0 10160.2 0 80.1 80.1 0 10-160.2 0z" fill="#E6E6E6" /><path d="M214 226.7v427.6l298 232.2 298-232.2V226.7L512 125.1 214 226.7zm428.7 122.5c56.3 56.3 56.3 147.5 0 203.8-48.5 48.5-123 55.2-178.6 20.1l-77.5 77.5a8.03 8.03 0 01-11.3 0l-34-34a8.03 8.03 0 010-11.3l77.5-77.5c-35.1-55.7-28.4-130.1 20.1-178.6 56.3-56.3 147.5-56.3 203.8 0z" fill="#E6E6E6" /><path d="M418.8 527.8l-77.5 77.5a8.03 8.03 0 000 11.3l34 34c3.1 3.1 8.2 3.1 11.3 0l77.5-77.5c55.6 35.1 130.1 28.4 178.6-20.1 56.3-56.3 56.3-147.5 0-203.8-56.3-56.3-147.5-56.3-203.8 0-48.5 48.5-55.2 122.9-20.1 178.6zm65.4-133.3a80.1 80.1 0 01113.3 0 80.1 80.1 0 010 113.3c-31.3 31.3-82 31.3-113.3 0s-31.3-82 0-113.3z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/setting.js b/src/blrec/data/webapp/assets/twotone/setting.js new file mode 100644 index 0000000..2e19600 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/setting.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'setting', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M859.3 569.7l.2.1c3.1-18.9 4.6-38.2 4.6-57.3 0-17.1-1.3-34.3-3.7-51.1 2.4 16.7 3.6 33.6 3.6 50.5 0 19.4-1.6 38.8-4.7 57.8zM99 398.1c-.5-.4-.9-.8-1.4-1.3.7.7 1.4 1.4 2.2 2.1l65.5 55.9v-.1L99 398.1zm536.6-216h.1l-15.5-83.8c-.2-1-.4-1.9-.7-2.8.1.5.3 1.1.4 1.6l15.7 85zm54 546.5l31.4-25.8 92.8 32.9c17-22.9 31.3-47.5 42.6-73.6l-74.7-63.9 6.6-40.1c2.5-15.1 3.8-30.6 3.8-46.1s-1.3-31-3.8-46.1l-6.5-39.9 74.7-63.9c-11.4-26-25.6-50.7-42.6-73.6l-92.8 32.9-31.4-25.8c-23.9-19.6-50.6-35-79.3-45.8l-38.1-14.3-17.9-97a377.5 377.5 0 00-85 0l-17.9 97.2-37.9 14.3c-28.5 10.8-55 26.2-78.7 45.7l-31.4 25.9-93.4-33.2c-17 22.9-31.3 47.5-42.6 73.6l75.5 64.5-6.5 40c-2.5 14.9-3.7 30.2-3.7 45.5 0 15.2 1.3 30.6 3.7 45.5l6.5 40-75.5 64.5c11.4 26 25.6 50.7 42.6 73.6l93.4-33.2 31.4 25.9c23.7 19.5 50.2 34.9 78.7 45.7l37.8 14.5 17.9 97.2c28.2 3.2 56.9 3.2 85 0l17.9-97 38.1-14.3c28.8-10.8 55.4-26.2 79.3-45.8zm-177.1-50.3c-30.5 0-59.2-7.8-84.3-21.5C373.3 627 336 568.9 336 502c0-97.2 78.8-176 176-176 66.9 0 125 37.3 154.8 92.2 13.7 25 21.5 53.7 21.5 84.3 0 97.1-78.7 175.8-175.8 175.8zM207.2 812.8c-5.5 1.9-11.2 2.3-16.6 1.2 5.7 1.2 11.7 1 17.5-1l81.4-29c-.1-.1-.3-.2-.4-.3l-81.9 29.1zm717.6-414.7l-65.5 56c0 .2.1.5.1.7l65.4-55.9c7.1-6.1 11.1-14.9 11.2-24-.3 8.8-4.3 17.3-11.2 23.2z" fill="#E6E6E6" /><path d="M935.8 646.6c.5 4.7 0 9.5-1.7 14.1l-.9 2.6a446.02 446.02 0 01-79.7 137.9l-1.8 2.1a32 32 0 01-35.1 9.5l-81.3-28.9a350 350 0 01-99.7 57.6l-15.7 85a32.05 32.05 0 01-25.8 25.7l-2.7.5a445.2 445.2 0 01-79.2 7.1h.3c26.7 0 53.4-2.4 79.4-7.1l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-84.9c36.2-13.6 69.6-32.9 99.6-57.5l81.2 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.5-87.4 79.6-137.7l.9-2.6c1.6-4.7 2.1-9.7 1.5-14.5z" fill="#E6E6E6" /><path d="M688 502c0-30.3-7.7-58.9-21.2-83.8C637 363.3 578.9 326 512 326c-97.2 0-176 78.8-176 176 0 66.9 37.3 125 92.2 154.8 24.9 13.5 53.4 21.2 83.8 21.2 97.2 0 176-78.8 176-176zm-288 0c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502z" fill="#333" /><path d="M594.1 952.2a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c1.7-4.6 2.2-9.4 1.7-14.1-.9-7.9-4.7-15.4-11-20.9l-65.3-55.9-.2-.1c3.1-19 4.7-38.4 4.7-57.8 0-16.9-1.2-33.9-3.6-50.5-.3-2.2-.7-4.4-1-6.6 0-.2-.1-.5-.1-.7l65.5-56c6.9-5.9 10.9-14.4 11.2-23.2.1-4-.5-8.1-1.9-12l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.4-44-99.6-57.6h-.1l-15.7-85c-.1-.5-.2-1.1-.4-1.6a32.08 32.08 0 00-25.4-24.1l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6a32.09 32.09 0 007.9 33.9c.5.4.9.9 1.4 1.3l66.3 56.6v.1c-3.1 18.8-4.6 37.9-4.6 57 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1c4.9 5.7 11.4 9.4 18.5 10.7 5.4 1 11.1.7 16.6-1.2l81.9-29.1c.1.1.3.2.4.3 29.7 24.3 62.8 43.6 98.6 57.1l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5c26.1 4.7 52.8 7.1 79.5 7.1h.3c26.6 0 53.3-2.4 79.2-7.1l2.7-.5zm-39.8-66.5a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/setting.svg b/src/blrec/data/webapp/assets/twotone/setting.svg new file mode 100644 index 0000000..f78bf66 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/setting.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M859.3 569.7l.2.1c3.1-18.9 4.6-38.2 4.6-57.3 0-17.1-1.3-34.3-3.7-51.1 2.4 16.7 3.6 33.6 3.6 50.5 0 19.4-1.6 38.8-4.7 57.8zM99 398.1c-.5-.4-.9-.8-1.4-1.3.7.7 1.4 1.4 2.2 2.1l65.5 55.9v-.1L99 398.1zm536.6-216h.1l-15.5-83.8c-.2-1-.4-1.9-.7-2.8.1.5.3 1.1.4 1.6l15.7 85zm54 546.5l31.4-25.8 92.8 32.9c17-22.9 31.3-47.5 42.6-73.6l-74.7-63.9 6.6-40.1c2.5-15.1 3.8-30.6 3.8-46.1s-1.3-31-3.8-46.1l-6.5-39.9 74.7-63.9c-11.4-26-25.6-50.7-42.6-73.6l-92.8 32.9-31.4-25.8c-23.9-19.6-50.6-35-79.3-45.8l-38.1-14.3-17.9-97a377.5 377.5 0 00-85 0l-17.9 97.2-37.9 14.3c-28.5 10.8-55 26.2-78.7 45.7l-31.4 25.9-93.4-33.2c-17 22.9-31.3 47.5-42.6 73.6l75.5 64.5-6.5 40c-2.5 14.9-3.7 30.2-3.7 45.5 0 15.2 1.3 30.6 3.7 45.5l6.5 40-75.5 64.5c11.4 26 25.6 50.7 42.6 73.6l93.4-33.2 31.4 25.9c23.7 19.5 50.2 34.9 78.7 45.7l37.8 14.5 17.9 97.2c28.2 3.2 56.9 3.2 85 0l17.9-97 38.1-14.3c28.8-10.8 55.4-26.2 79.3-45.8zm-177.1-50.3c-30.5 0-59.2-7.8-84.3-21.5C373.3 627 336 568.9 336 502c0-97.2 78.8-176 176-176 66.9 0 125 37.3 154.8 92.2 13.7 25 21.5 53.7 21.5 84.3 0 97.1-78.7 175.8-175.8 175.8zM207.2 812.8c-5.5 1.9-11.2 2.3-16.6 1.2 5.7 1.2 11.7 1 17.5-1l81.4-29c-.1-.1-.3-.2-.4-.3l-81.9 29.1zm717.6-414.7l-65.5 56c0 .2.1.5.1.7l65.4-55.9c7.1-6.1 11.1-14.9 11.2-24-.3 8.8-4.3 17.3-11.2 23.2z" fill="#E6E6E6" /><path d="M935.8 646.6c.5 4.7 0 9.5-1.7 14.1l-.9 2.6a446.02 446.02 0 01-79.7 137.9l-1.8 2.1a32 32 0 01-35.1 9.5l-81.3-28.9a350 350 0 01-99.7 57.6l-15.7 85a32.05 32.05 0 01-25.8 25.7l-2.7.5a445.2 445.2 0 01-79.2 7.1h.3c26.7 0 53.4-2.4 79.4-7.1l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-84.9c36.2-13.6 69.6-32.9 99.6-57.5l81.2 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.5-87.4 79.6-137.7l.9-2.6c1.6-4.7 2.1-9.7 1.5-14.5z" fill="#E6E6E6" /><path d="M688 502c0-30.3-7.7-58.9-21.2-83.8C637 363.3 578.9 326 512 326c-97.2 0-176 78.8-176 176 0 66.9 37.3 125 92.2 154.8 24.9 13.5 53.4 21.2 83.8 21.2 97.2 0 176-78.8 176-176zm-288 0c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502z" fill="#333" /><path d="M594.1 952.2a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c1.7-4.6 2.2-9.4 1.7-14.1-.9-7.9-4.7-15.4-11-20.9l-65.3-55.9-.2-.1c3.1-19 4.7-38.4 4.7-57.8 0-16.9-1.2-33.9-3.6-50.5-.3-2.2-.7-4.4-1-6.6 0-.2-.1-.5-.1-.7l65.5-56c6.9-5.9 10.9-14.4 11.2-23.2.1-4-.5-8.1-1.9-12l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.4-44-99.6-57.6h-.1l-15.7-85c-.1-.5-.2-1.1-.4-1.6a32.08 32.08 0 00-25.4-24.1l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6a32.09 32.09 0 007.9 33.9c.5.4.9.9 1.4 1.3l66.3 56.6v.1c-3.1 18.8-4.6 37.9-4.6 57 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1c4.9 5.7 11.4 9.4 18.5 10.7 5.4 1 11.1.7 16.6-1.2l81.9-29.1c.1.1.3.2.4.3 29.7 24.3 62.8 43.6 98.6 57.1l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5c26.1 4.7 52.8 7.1 79.5 7.1h.3c26.6 0 53.3-2.4 79.2-7.1l2.7-.5zm-39.8-66.5a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/shop.js b/src/blrec/data/webapp/assets/twotone/shop.js new file mode 100644 index 0000000..daf554e --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/shop.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'shop', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M839.5 344h-655c-.3 0-.5.2-.5.5v91.2c0 59.8 49 108.3 109.3 108.3 40.7 0 76.2-22 95.1-54.7 2.9-5.1 8.4-8.3 14.3-8.3s11.3 3.2 14.3 8.3c18.8 32.7 54.3 54.7 95 54.7 40.8 0 76.4-22.1 95.1-54.9 2.9-5 8.2-8.1 13.9-8.1h.6c5.8 0 11 3.1 13.9 8.1 18.8 32.8 54.4 54.9 95.2 54.9C791 544 840 495.5 840 435.7v-91.2c0-.3-.2-.5-.5-.5z" fill="#E6E6E6" /><path d="M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0014.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h676c17.7 0 32-14.3 32-32V535a175 175 0 0015.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zM214 184h596v88H214v-88zm362 656.1H448V736h128v104.1zm234.4 0H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0038.7 22.1c22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0038.7 22.1c22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c3-1.3 6-2.6 9-4v242.2zM840 435.7c0 59.8-49 108.3-109.3 108.3-40.8 0-76.4-22.1-95.2-54.9-2.9-5-8.1-8.1-13.9-8.1h-.6c-5.7 0-11 3.1-13.9 8.1A109.24 109.24 0 01512 544c-40.7 0-76.2-22-95-54.7-3-5.1-8.4-8.3-14.3-8.3s-11.4 3.2-14.3 8.3a109.63 109.63 0 01-95.1 54.7C233 544 184 495.5 184 435.7v-91.2c0-.3.2-.5.5-.5h655c.3 0 .5.2.5.5v91.2z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/shop.svg b/src/blrec/data/webapp/assets/twotone/shop.svg new file mode 100644 index 0000000..c8c993c --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/shop.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M839.5 344h-655c-.3 0-.5.2-.5.5v91.2c0 59.8 49 108.3 109.3 108.3 40.7 0 76.2-22 95.1-54.7 2.9-5.1 8.4-8.3 14.3-8.3s11.3 3.2 14.3 8.3c18.8 32.7 54.3 54.7 95 54.7 40.8 0 76.4-22.1 95.1-54.9 2.9-5 8.2-8.1 13.9-8.1h.6c5.8 0 11 3.1 13.9 8.1 18.8 32.8 54.4 54.9 95.2 54.9C791 544 840 495.5 840 435.7v-91.2c0-.3-.2-.5-.5-.5z" fill="#E6E6E6" /><path d="M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0014.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h676c17.7 0 32-14.3 32-32V535a175 175 0 0015.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zM214 184h596v88H214v-88zm362 656.1H448V736h128v104.1zm234.4 0H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0038.7 22.1c22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0038.7 22.1c22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c3-1.3 6-2.6 9-4v242.2zM840 435.7c0 59.8-49 108.3-109.3 108.3-40.8 0-76.4-22.1-95.2-54.9-2.9-5-8.1-8.1-13.9-8.1h-.6c-5.7 0-11 3.1-13.9 8.1A109.24 109.24 0 01512 544c-40.7 0-76.2-22-95-54.7-3-5.1-8.4-8.3-14.3-8.3s-11.4 3.2-14.3 8.3a109.63 109.63 0 01-95.1 54.7C233 544 184 495.5 184 435.7v-91.2c0-.3.2-.5.5-.5h655c.3 0 .5.2.5.5v91.2z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/shopping.js b/src/blrec/data/webapp/assets/twotone/shopping.js new file mode 100644 index 0000000..d7fa18e --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/shopping.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'shopping', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M696 472c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-88H400v88c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-88h-96v456h560V384h-96v88z" fill="#E6E6E6" /><path d="M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-432-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16H400v-16zm392 544H232V384h96v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h224v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h96v456z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/shopping.svg b/src/blrec/data/webapp/assets/twotone/shopping.svg new file mode 100644 index 0000000..ed5bb53 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/shopping.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M696 472c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-88H400v88c0 4.4-3.6 8-8 8h-56c-4.4 0-8-3.6-8-8v-88h-96v456h560V384h-96v88z" fill="#E6E6E6" /><path d="M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-432-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16H400v-16zm392 544H232V384h96v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h224v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h96v456z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/skin.js b/src/blrec/data/webapp/assets/twotone/skin.js new file mode 100644 index 0000000..0702ef3 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/skin.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'skin', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 318c-79.2 0-148.5-48.8-176.7-120H182v196h119v432h422V394h119V198H688.7c-28.2 71.2-97.5 120-176.7 120z" fill="#E6E6E6" /><path d="M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 00-37-29.3H154a44 44 0 00-44 44v252a44 44 0 0044 44h75v388a44 44 0 0044 44h478a44 44 0 0044-44V466h75a44 44 0 0044-44V170a44 44 0 00-44-44zm-28 268H723v432H301V394H182V198h153.3c28.2 71.2 97.5 120 176.7 120s148.5-48.8 176.7-120H842v196z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/skin.svg b/src/blrec/data/webapp/assets/twotone/skin.svg new file mode 100644 index 0000000..5e987eb --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/skin.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 318c-79.2 0-148.5-48.8-176.7-120H182v196h119v432h422V394h119V198H688.7c-28.2 71.2-97.5 120-176.7 120z" fill="#E6E6E6" /><path d="M870 126H663.8c-17.4 0-32.9 11.9-37 29.3C614.3 208.1 567 246 512 246s-102.3-37.9-114.8-90.7a37.93 37.93 0 00-37-29.3H154a44 44 0 00-44 44v252a44 44 0 0044 44h75v388a44 44 0 0044 44h478a44 44 0 0044-44V466h75a44 44 0 0044-44V170a44 44 0 00-44-44zm-28 268H723v432H301V394H182V198h153.3c28.2 71.2 97.5 120 176.7 120s148.5-48.8 176.7-120H842v196z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/sliders.js b/src/blrec/data/webapp/assets/twotone/sliders.js new file mode 100644 index 0000000..2be0356 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/sliders.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'sliders', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M180 292h80v440h-80zm369 180h-74a3 3 0 00-3 3v74a3 3 0 003 3h74a3 3 0 003-3v-74a3 3 0 00-3-3zm215-108h80v296h-80z" fill="#E6E6E6" /><path d="M904 296h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-60 364h-80V364h80v296zM612 404h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8zm-60 145a3 3 0 01-3 3h-74a3 3 0 01-3-3v-74a3 3 0 013-3h74a3 3 0 013 3v74zM320 224h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-60 508h-80V292h80v440z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/sliders.svg b/src/blrec/data/webapp/assets/twotone/sliders.svg new file mode 100644 index 0000000..fa5fe37 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/sliders.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M180 292h80v440h-80zm369 180h-74a3 3 0 00-3 3v74a3 3 0 003 3h74a3 3 0 003-3v-74a3 3 0 00-3-3zm215-108h80v296h-80z" fill="#E6E6E6" /><path d="M904 296h-66v-96c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v96h-66c-4.4 0-8 3.6-8 8v416c0 4.4 3.6 8 8 8h66v96c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-96h66c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8zm-60 364h-80V364h80v296zM612 404h-66V232c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v172h-66c-4.4 0-8 3.6-8 8v200c0 4.4 3.6 8 8 8h66v172c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8V620h66c4.4 0 8-3.6 8-8V412c0-4.4-3.6-8-8-8zm-60 145a3 3 0 01-3 3h-74a3 3 0 01-3-3v-74a3 3 0 013-3h74a3 3 0 013 3v74zM320 224h-66v-56c0-4.4-3.6-8-8-8h-52c-4.4 0-8 3.6-8 8v56h-66c-4.4 0-8 3.6-8 8v560c0 4.4 3.6 8 8 8h66v56c0 4.4 3.6 8 8 8h52c4.4 0 8-3.6 8-8v-56h66c4.4 0 8-3.6 8-8V232c0-4.4-3.6-8-8-8zm-60 508h-80V292h80v440z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/smile.js b/src/blrec/data/webapp/assets/twotone/smile.js new file mode 100644 index 0000000..889388f --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/smile.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'smile', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm224 272c-85.5 0-155.6-67.3-160-151.6a8 8 0 018-8.4h48.1c4.2 0 7.8 3.2 8.1 7.4C420 589.9 461.5 629 512 629s92.1-39.1 95.8-88.6c.3-4.2 3.9-7.4 8.1-7.4H664a8 8 0 018 8.4C667.6 625.7 597.5 693 512 693zm176-224a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" fill="#E6E6E6" /><path d="M288 421a48 48 0 1096 0 48 48 0 10-96 0zm376 112h-48.1c-4.2 0-7.8 3.2-8.1 7.4-3.7 49.5-45.3 88.6-95.8 88.6s-92-39.1-95.8-88.6c-.3-4.2-3.9-7.4-8.1-7.4H360a8 8 0 00-8 8.4c4.4 84.3 74.5 151.6 160 151.6s155.6-67.3 160-151.6a8 8 0 00-8-8.4zm-24-112a48 48 0 1096 0 48 48 0 10-96 0z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/smile.svg b/src/blrec/data/webapp/assets/twotone/smile.svg new file mode 100644 index 0000000..a6acd51 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/smile.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zM288 421a48.01 48.01 0 0196 0 48.01 48.01 0 01-96 0zm224 272c-85.5 0-155.6-67.3-160-151.6a8 8 0 018-8.4h48.1c4.2 0 7.8 3.2 8.1 7.4C420 589.9 461.5 629 512 629s92.1-39.1 95.8-88.6c.3-4.2 3.9-7.4 8.1-7.4H664a8 8 0 018 8.4C667.6 625.7 597.5 693 512 693zm176-224a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" fill="#E6E6E6" /><path d="M288 421a48 48 0 1096 0 48 48 0 10-96 0zm376 112h-48.1c-4.2 0-7.8 3.2-8.1 7.4-3.7 49.5-45.3 88.6-95.8 88.6s-92-39.1-95.8-88.6c-.3-4.2-3.9-7.4-8.1-7.4H360a8 8 0 00-8 8.4c4.4 84.3 74.5 151.6 160 151.6s155.6-67.3 160-151.6a8 8 0 00-8-8.4zm-24-112a48 48 0 1096 0 48 48 0 10-96 0z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/snippets.js b/src/blrec/data/webapp/assets/twotone/snippets.js new file mode 100644 index 0000000..c02b763 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/snippets.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'snippets', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M450 510V336H232v552h432V550H490c-22.1 0-40-17.9-40-40z" fill="#E6E6E6" /><path d="M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 888H232V336h218v174c0 22.1 17.9 40 40 40h174v338zm0-402H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/snippets.svg b/src/blrec/data/webapp/assets/twotone/snippets.svg new file mode 100644 index 0000000..c17332c --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/snippets.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M450 510V336H232v552h432V550H490c-22.1 0-40-17.9-40-40z" fill="#E6E6E6" /><path d="M832 112H724V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H500V72c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v40H320c-17.7 0-32 14.3-32 32v120h-96c-17.7 0-32 14.3-32 32v632c0 17.7 14.3 32 32 32h512c17.7 0 32-14.3 32-32v-96h96c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zM664 888H232V336h218v174c0 22.1 17.9 40 40 40h174v338zm0-402H514V336h.2L664 485.8v.2zm128 274h-56V456L544 264H360v-80h68v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h152v32c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-32h68v576z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/sound.js b/src/blrec/data/webapp/assets/twotone/sound.js new file mode 100644 index 0000000..28f3bfc --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/sound.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'sound', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M275.4 424H146v176h129.4l18 11.7L586 803V221L293.3 412.3z" fill="#E6E6E6" /><path d="M892.1 737.8l-110.3-63.7a15.9 15.9 0 00-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0021.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM934 476H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zM760 344a15.9 15.9 0 0021.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 00-21.7-5.9L746 287.8a15.99 15.99 0 00-5.8 21.8L760 344zM625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1zM586 803L293.4 611.7l-18-11.7H146V424h129.4l17.9-11.7L586 221v582z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/sound.svg b/src/blrec/data/webapp/assets/twotone/sound.svg new file mode 100644 index 0000000..3b9763e --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/sound.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M275.4 424H146v176h129.4l18 11.7L586 803V221L293.3 412.3z" fill="#E6E6E6" /><path d="M892.1 737.8l-110.3-63.7a15.9 15.9 0 00-21.7 5.9l-19.9 34.5c-4.4 7.6-1.8 17.4 5.8 21.8L856.3 800a15.9 15.9 0 0021.7-5.9l19.9-34.5c4.4-7.6 1.7-17.4-5.8-21.8zM934 476H806c-8.8 0-16 7.2-16 16v40c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-40c0-8.8-7.2-16-16-16zM760 344a15.9 15.9 0 0021.7 5.9L892 286.2c7.6-4.4 10.2-14.2 5.8-21.8L878 230a15.9 15.9 0 00-21.7-5.9L746 287.8a15.99 15.99 0 00-5.8 21.8L760 344zM625.9 115c-5.9 0-11.9 1.6-17.4 5.3L254 352H90c-8.8 0-16 7.2-16 16v288c0 8.8 7.2 16 16 16h164l354.5 231.7c5.5 3.6 11.6 5.3 17.4 5.3 16.7 0 32.1-13.3 32.1-32.1V147.1c0-18.8-15.4-32.1-32.1-32.1zM586 803L293.4 611.7l-18-11.7H146V424h129.4l17.9-11.7L586 221v582z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/star.js b/src/blrec/data/webapp/assets/twotone/star.js new file mode 100644 index 0000000..7f3af1d --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/star.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'star', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512.5 190.4l-94.4 191.3-211.2 30.7 152.8 149-36.1 210.3 188.9-99.3 188.9 99.2-36.1-210.3 152.8-148.9-211.2-30.7z" fill="#E6E6E6" /><path d="M908.6 352.8l-253.9-36.9L541.2 85.8c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L370.3 315.9l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 00.6 45.3l183.7 179.1L239 839.4a31.95 31.95 0 0046.4 33.7l227.1-119.4 227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3zM665.3 561.3l36.1 210.3-188.9-99.2-188.9 99.3 36.1-210.3-152.8-149 211.2-30.7 94.4-191.3 94.4 191.3 211.2 30.7-152.8 148.9z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/star.svg b/src/blrec/data/webapp/assets/twotone/star.svg new file mode 100644 index 0000000..577eddf --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/star.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512.5 190.4l-94.4 191.3-211.2 30.7 152.8 149-36.1 210.3 188.9-99.3 188.9 99.2-36.1-210.3 152.8-148.9-211.2-30.7z" fill="#E6E6E6" /><path d="M908.6 352.8l-253.9-36.9L541.2 85.8c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L370.3 315.9l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 00.6 45.3l183.7 179.1L239 839.4a31.95 31.95 0 0046.4 33.7l227.1-119.4 227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3zM665.3 561.3l36.1 210.3-188.9-99.2-188.9 99.3 36.1-210.3-152.8-149 211.2-30.7 94.4-191.3 94.4 191.3 211.2 30.7-152.8 148.9z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/stop.js b/src/blrec/data/webapp/assets/twotone/stop.js new file mode 100644 index 0000000..bd49a6b --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/stop.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'stop', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm288.5 682.8L277.7 224C258 240 240 258 224 277.7l522.8 522.8C682.8 852.7 601 884 512 884c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372c0 89-31.3 170.8-83.5 234.8z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372c89 0 170.8-31.3 234.8-83.5L224 277.7c16-19.7 34-37.7 53.7-53.7l522.8 522.8C852.7 682.8 884 601 884 512c0-205.4-166.6-372-372-372z" fill="#E6E6E6" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/stop.svg b/src/blrec/data/webapp/assets/twotone/stop.svg new file mode 100644 index 0000000..0e8f550 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/stop.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm288.5 682.8L277.7 224C258 240 240 258 224 277.7l522.8 522.8C682.8 852.7 601 884 512 884c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372c0 89-31.3 170.8-83.5 234.8z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372c89 0 170.8-31.3 234.8-83.5L224 277.7c16-19.7 34-37.7 53.7-53.7l522.8 522.8C852.7 682.8 884 601 884 512c0-205.4-166.6-372-372-372z" fill="#E6E6E6" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/switcher.js b/src/blrec/data/webapp/assets/twotone/switcher.js new file mode 100644 index 0000000..781754f --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/switcher.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'switcher', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M184 840h528V312H184v528zm116-290h296v64H300v-64z" fill="#E6E6E6" /><path d="M880 112H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32z" fill="#333" /><path d="M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zm-40 600H184V312h528v528z" fill="#333" /><path d="M300 550h296v64H300z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/switcher.svg b/src/blrec/data/webapp/assets/twotone/switcher.svg new file mode 100644 index 0000000..bdc902c --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/switcher.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M184 840h528V312H184v528zm116-290h296v64H300v-64z" fill="#E6E6E6" /><path d="M880 112H264c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h576v576c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V144c0-17.7-14.3-32-32-32z" fill="#333" /><path d="M752 240H144c-17.7 0-32 14.3-32 32v608c0 17.7 14.3 32 32 32h608c17.7 0 32-14.3 32-32V272c0-17.7-14.3-32-32-32zm-40 600H184V312h528v528z" fill="#333" /><path d="M300 550h296v64H300z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/tablet.js b/src/blrec/data/webapp/assets/twotone/tablet.js new file mode 100644 index 0000000..79c6989 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/tablet.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'tablet', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H232V136h560v752z" fill="#333" /><path d="M232 888h560V136H232v752zm280-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z" fill="#E6E6E6" /><path d="M472 784a40 40 0 1080 0 40 40 0 10-80 0z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/tablet.svg b/src/blrec/data/webapp/assets/twotone/tablet.svg new file mode 100644 index 0000000..52fac81 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/tablet.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M800 64H224c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h576c35.3 0 64-28.7 64-64V128c0-35.3-28.7-64-64-64zm-8 824H232V136h560v752z" fill="#333" /><path d="M232 888h560V136H232v752zm280-144c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z" fill="#E6E6E6" /><path d="M472 784a40 40 0 1080 0 40 40 0 10-80 0z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/tag.js b/src/blrec/data/webapp/assets/twotone/tag.js new file mode 100644 index 0000000..a4edc26 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/tag.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'tag', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M589 164.6L189.3 564.3l270.4 270.4L859.4 435 836 188l-247-23.4zM680 432c-48.5 0-88-39.5-88-88s39.5-88 88-88 88 39.5 88 88-39.5 88-88 88z" fill="#E6E6E6" /><path d="M680 256c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm0 120c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z" fill="#333" /><path d="M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 000 14.1l363.8 363.8a9.9 9.9 0 007.1 2.9c2.7 0 5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM459.7 834.7L189.3 564.3 589 164.6 836 188l23.4 247-399.7 399.7z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/tag.svg b/src/blrec/data/webapp/assets/twotone/tag.svg new file mode 100644 index 0000000..bd44991 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/tag.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M589 164.6L189.3 564.3l270.4 270.4L859.4 435 836 188l-247-23.4zM680 432c-48.5 0-88-39.5-88-88s39.5-88 88-88 88 39.5 88 88-39.5 88-88 88z" fill="#E6E6E6" /><path d="M680 256c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm0 120c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z" fill="#333" /><path d="M938 458.8l-29.6-312.6c-1.5-16.2-14.4-29-30.6-30.6L565.2 86h-.4c-3.2 0-5.7 1-7.6 2.9L88.9 557.2a9.96 9.96 0 000 14.1l363.8 363.8a9.9 9.9 0 007.1 2.9c2.7 0 5.2-1 7.1-2.9l468.3-468.3c2-2.1 3-5 2.8-8zM459.7 834.7L189.3 564.3 589 164.6 836 188l23.4 247-399.7 399.7z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/tags.js b/src/blrec/data/webapp/assets/twotone/tags.js new file mode 100644 index 0000000..5279fb6 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/tags.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'tags', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M477.5 694l311.9-311.8-19-224.6-224.6-19-311.9 311.9L477.5 694zm116-415.5a47.81 47.81 0 0133.9-33.9c16.6-4.4 34.2.3 46.4 12.4a47.93 47.93 0 0112.4 46.4 47.81 47.81 0 01-33.9 33.9c-16.6 4.4-34.2-.3-46.4-12.4a48.3 48.3 0 01-12.4-46.4z" fill="#E6E6E6" /><path d="M476.6 792.6c-1.7-.2-3.4-1-4.7-2.3L137.7 456.1a8.03 8.03 0 010-11.3L515.9 66.6c1.2-1.3 2.9-2.1 4.7-2.3h-.4c-2.3-.2-4.7.6-6.3 2.3L135.7 444.8a8.03 8.03 0 000 11.3l334.2 334.2c1.8 1.9 4.3 2.6 6.7 2.3z" fill="#E6E6E6" /><path d="M889.7 539.8l-39.6-39.5a8.03 8.03 0 00-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 00-11.3 0l-39.6 39.5a8.03 8.03 0 000 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3zM652.3 337.3a47.81 47.81 0 0033.9-33.9c4.4-16.6-.3-34.2-12.4-46.4a47.93 47.93 0 00-46.4-12.4 47.81 47.81 0 00-33.9 33.9c-4.4 16.6.3 34.2 12.4 46.4a48.3 48.3 0 0046.4 12.4z" fill="#333" /><path d="M137.7 444.8a8.03 8.03 0 000 11.3l334.2 334.2c1.3 1.3 2.9 2.1 4.7 2.3 2.4.3 4.8-.5 6.6-2.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3h-1.6c-1.8.2-3.4 1-4.7 2.3L137.7 444.8zm408.1-306.2l224.6 19 19 224.6L477.5 694 233.9 450.5l311.9-311.9z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/tags.svg b/src/blrec/data/webapp/assets/twotone/tags.svg new file mode 100644 index 0000000..06ca025 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/tags.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M477.5 694l311.9-311.8-19-224.6-224.6-19-311.9 311.9L477.5 694zm116-415.5a47.81 47.81 0 0133.9-33.9c16.6-4.4 34.2.3 46.4 12.4a47.93 47.93 0 0112.4 46.4 47.81 47.81 0 01-33.9 33.9c-16.6 4.4-34.2-.3-46.4-12.4a48.3 48.3 0 01-12.4-46.4z" fill="#E6E6E6" /><path d="M476.6 792.6c-1.7-.2-3.4-1-4.7-2.3L137.7 456.1a8.03 8.03 0 010-11.3L515.9 66.6c1.2-1.3 2.9-2.1 4.7-2.3h-.4c-2.3-.2-4.7.6-6.3 2.3L135.7 444.8a8.03 8.03 0 000 11.3l334.2 334.2c1.8 1.9 4.3 2.6 6.7 2.3z" fill="#E6E6E6" /><path d="M889.7 539.8l-39.6-39.5a8.03 8.03 0 00-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 00-11.3 0l-39.6 39.5a8.03 8.03 0 000 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3zM652.3 337.3a47.81 47.81 0 0033.9-33.9c4.4-16.6-.3-34.2-12.4-46.4a47.93 47.93 0 00-46.4-12.4 47.81 47.81 0 00-33.9 33.9c-4.4 16.6.3 34.2 12.4 46.4a48.3 48.3 0 0046.4 12.4z" fill="#333" /><path d="M137.7 444.8a8.03 8.03 0 000 11.3l334.2 334.2c1.3 1.3 2.9 2.1 4.7 2.3 2.4.3 4.8-.5 6.6-2.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3h-1.6c-1.8.2-3.4 1-4.7 2.3L137.7 444.8zm408.1-306.2l224.6 19 19 224.6L477.5 694 233.9 450.5l311.9-311.9z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/thunderbolt.js b/src/blrec/data/webapp/assets/twotone/thunderbolt.js new file mode 100644 index 0000000..f51ed01 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/thunderbolt.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'thunderbolt', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M695.4 164.1H470.8L281.2 491.5h157.4l-60.3 241 319.8-305.1h-211z" fill="#E6E6E6" /><path d="M848.1 359.3H627.8L825.9 109c4.1-5.3.4-13-6.3-13H436.1c-2.8 0-5.5 1.5-6.9 4L170.1 547.5c-3.1 5.3.7 12 6.9 12h174.4L262 917.1c-1.9 7.8 7.5 13.3 13.3 7.7L853.6 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.3 732.5l60.3-241H281.2l189.6-327.4h224.6L487.1 427.4h211L378.3 732.5z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/thunderbolt.svg b/src/blrec/data/webapp/assets/twotone/thunderbolt.svg new file mode 100644 index 0000000..d899458 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/thunderbolt.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M695.4 164.1H470.8L281.2 491.5h157.4l-60.3 241 319.8-305.1h-211z" fill="#E6E6E6" /><path d="M848.1 359.3H627.8L825.9 109c4.1-5.3.4-13-6.3-13H436.1c-2.8 0-5.5 1.5-6.9 4L170.1 547.5c-3.1 5.3.7 12 6.9 12h174.4L262 917.1c-1.9 7.8 7.5 13.3 13.3 7.7L853.6 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.3 732.5l60.3-241H281.2l189.6-327.4h224.6L487.1 427.4h211L378.3 732.5z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/tool.js b/src/blrec/data/webapp/assets/twotone/tool.js new file mode 100644 index 0000000..1e4ff86 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/tool.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'tool', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M706.8 488.7a32.05 32.05 0 01-45.3 0L537 364.2a32.05 32.05 0 010-45.3l132.9-132.8a184.2 184.2 0 00-144 53.5c-58.1 58.1-69.3 145.3-33.6 214.6L439.5 507c-.1 0-.1-.1-.1-.1L209.3 737l79.2 79.2 274-274.1.1.1 8.8-8.8c69.3 35.7 156.5 24.5 214.6-33.6 39.2-39.1 57.3-92.1 53.6-143.9L706.8 488.7z" fill="#E6E6E6" /><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/tool.svg b/src/blrec/data/webapp/assets/twotone/tool.svg new file mode 100644 index 0000000..4b9a53c --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/tool.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M706.8 488.7a32.05 32.05 0 01-45.3 0L537 364.2a32.05 32.05 0 010-45.3l132.9-132.8a184.2 184.2 0 00-144 53.5c-58.1 58.1-69.3 145.3-33.6 214.6L439.5 507c-.1 0-.1-.1-.1-.1L209.3 737l79.2 79.2 274-274.1.1.1 8.8-8.8c69.3 35.7 156.5 24.5 214.6-33.6 39.2-39.1 57.3-92.1 53.6-143.9L706.8 488.7z" fill="#E6E6E6" /><path d="M876.6 239.5c-.5-.9-1.2-1.8-2-2.5-5-5-13.1-5-18.1 0L684.2 409.3l-67.9-67.9L788.7 169c.8-.8 1.4-1.6 2-2.5 3.6-6.1 1.6-13.9-4.5-17.5-98.2-58-226.8-44.7-311.3 39.7-67 67-89.2 162-66.5 247.4l-293 293c-3 3-2.8 7.9.3 11l169.7 169.7c3.1 3.1 8.1 3.3 11 .3l292.9-292.9c85.5 22.8 180.5.7 247.6-66.4 84.4-84.5 97.7-213.1 39.7-311.3zM786 499.8c-58.1 58.1-145.3 69.3-214.6 33.6l-8.8 8.8-.1-.1-274 274.1-79.2-79.2 230.1-230.1s0 .1.1.1l52.8-52.8c-35.7-69.3-24.5-156.5 33.6-214.6a184.2 184.2 0 01144-53.5L537 318.9a32.05 32.05 0 000 45.3l124.5 124.5a32.05 32.05 0 0045.3 0l132.8-132.8c3.7 51.8-14.4 104.8-53.6 143.9z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/trademark-circle.js b/src/blrec/data/webapp/assets/twotone/trademark-circle.js new file mode 100644 index 0000000..f99548c --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/trademark-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'trademark-circle', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm170.7 584.2c-1.1.5-2.3.8-3.5.8h-62c-3.1 0-5.9-1.8-7.2-4.6l-74.6-159.2h-88.7V717c0 4.4-3.6 8-8 8H384c-4.4 0-8-3.6-8-8V307c0-4.4 3.6-8 8-8h155.6c98.8 0 144.2 59.9 144.2 131.1 0 70.2-43.6 106.4-78.4 119.2l80.8 164.2c2.1 3.9.4 8.7-3.5 10.7z" fill="#E6E6E6" /><path d="M529.9 357h-83.4v148H528c53 0 82.8-25.6 82.8-72.4 0-50.3-32.9-75.6-80.9-75.6z" fill="#E6E6E6" /><path d="M605.4 549.3c34.8-12.8 78.4-49 78.4-119.2 0-71.2-45.4-131.1-144.2-131.1H384c-4.4 0-8 3.6-8 8v410c0 4.4 3.6 8 8 8h54.7c4.4 0 8-3.6 8-8V561.2h88.7L610 720.4c1.3 2.8 4.1 4.6 7.2 4.6h62c1.2 0 2.4-.3 3.5-.8 3.9-2 5.6-6.8 3.5-10.7l-80.8-164.2zM528 505h-81.5V357h83.4c48 0 80.9 25.3 80.9 75.6 0 46.8-29.8 72.4-82.8 72.4z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/trademark-circle.svg b/src/blrec/data/webapp/assets/twotone/trademark-circle.svg new file mode 100644 index 0000000..9abac99 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/trademark-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm170.7 584.2c-1.1.5-2.3.8-3.5.8h-62c-3.1 0-5.9-1.8-7.2-4.6l-74.6-159.2h-88.7V717c0 4.4-3.6 8-8 8H384c-4.4 0-8-3.6-8-8V307c0-4.4 3.6-8 8-8h155.6c98.8 0 144.2 59.9 144.2 131.1 0 70.2-43.6 106.4-78.4 119.2l80.8 164.2c2.1 3.9.4 8.7-3.5 10.7z" fill="#E6E6E6" /><path d="M529.9 357h-83.4v148H528c53 0 82.8-25.6 82.8-72.4 0-50.3-32.9-75.6-80.9-75.6z" fill="#E6E6E6" /><path d="M605.4 549.3c34.8-12.8 78.4-49 78.4-119.2 0-71.2-45.4-131.1-144.2-131.1H384c-4.4 0-8 3.6-8 8v410c0 4.4 3.6 8 8 8h54.7c4.4 0 8-3.6 8-8V561.2h88.7L610 720.4c1.3 2.8 4.1 4.6 7.2 4.6h62c1.2 0 2.4-.3 3.5-.8 3.9-2 5.6-6.8 3.5-10.7l-80.8-164.2zM528 505h-81.5V357h83.4c48 0 80.9 25.3 80.9 75.6 0 46.8-29.8 72.4-82.8 72.4z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/trophy.js b/src/blrec/data/webapp/assets/twotone/trophy.js new file mode 100644 index 0000000..2f4972e --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/trophy.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'trophy', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M320 480c0 49.1 19.1 95.3 53.9 130.1 34.7 34.8 81 53.9 130.1 53.9h16c49.1 0 95.3-19.1 130.1-53.9 34.8-34.7 53.9-81 53.9-130.1V184H320v296zM184 352c0 41 26.9 75.8 64 87.6-37.1-11.9-64-46.7-64-87.6zm364 382.5C665 721.8 758.4 630.2 773.8 514 758.3 630.2 665 721.7 548 734.5zM250.2 514C265.6 630.2 359 721.8 476 734.5 359 721.7 265.7 630.2 250.2 514z" fill="#E6E6E6" /><path d="M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 00-44 44v148c0 81.7 60 149.6 138.2 162C265.7 630.2 359 721.7 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.7 758.3 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 00-44-44zM248 439.6a91.99 91.99 0 01-64-87.6V232h64v207.6zM704 480c0 49.1-19.1 95.4-53.9 130.1-34.8 34.8-81 53.9-130.1 53.9h-16c-49.1 0-95.4-19.1-130.1-53.9-34.8-34.8-53.9-81-53.9-130.1V184h384v296zm136-128c0 41-26.9 75.8-64 87.6V232h64v120z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/trophy.svg b/src/blrec/data/webapp/assets/twotone/trophy.svg new file mode 100644 index 0000000..2d32bf6 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/trophy.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M320 480c0 49.1 19.1 95.3 53.9 130.1 34.7 34.8 81 53.9 130.1 53.9h16c49.1 0 95.3-19.1 130.1-53.9 34.8-34.7 53.9-81 53.9-130.1V184H320v296zM184 352c0 41 26.9 75.8 64 87.6-37.1-11.9-64-46.7-64-87.6zm364 382.5C665 721.8 758.4 630.2 773.8 514 758.3 630.2 665 721.7 548 734.5zM250.2 514C265.6 630.2 359 721.8 476 734.5 359 721.7 265.7 630.2 250.2 514z" fill="#E6E6E6" /><path d="M868 160h-92v-40c0-4.4-3.6-8-8-8H256c-4.4 0-8 3.6-8 8v40h-92a44 44 0 00-44 44v148c0 81.7 60 149.6 138.2 162C265.7 630.2 359 721.7 476 734.5v105.2H280c-17.7 0-32 14.3-32 32V904c0 4.4 3.6 8 8 8h512c4.4 0 8-3.6 8-8v-32.3c0-17.7-14.3-32-32-32H548V734.5C665 721.7 758.3 630.2 773.8 514 852 501.6 912 433.7 912 352V204a44 44 0 00-44-44zM248 439.6a91.99 91.99 0 01-64-87.6V232h64v207.6zM704 480c0 49.1-19.1 95.4-53.9 130.1-34.8 34.8-81 53.9-130.1 53.9h-16c-49.1 0-95.4-19.1-130.1-53.9-34.8-34.8-53.9-81-53.9-130.1V184h384v296zm136-128c0 41-26.9 75.8-64 87.6V232h64v120z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/unlock.js b/src/blrec/data/webapp/assets/twotone/unlock.js new file mode 100644 index 0000000..e0fe75a --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/unlock.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'unlock', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M232 840h560V536H232v304zm280-226a48.01 48.01 0 0128 87v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 0128-87z" fill="#E6E6E6" /><path d="M484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 10-56 0z" fill="#333" /><path d="M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zm-40 376H232V536h560v304z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/unlock.svg b/src/blrec/data/webapp/assets/twotone/unlock.svg new file mode 100644 index 0000000..3c9f5d2 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/unlock.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M232 840h560V536H232v304zm280-226a48.01 48.01 0 0128 87v53c0 4.4-3.6 8-8 8h-40c-4.4 0-8-3.6-8-8v-53a48.01 48.01 0 0128-87z" fill="#E6E6E6" /><path d="M484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 10-56 0z" fill="#333" /><path d="M832 464H332V240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v68c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-68c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zm-40 376H232V536h560v304z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/up-circle.js b/src/blrec/data/webapp/assets/twotone/up-circle.js new file mode 100644 index 0000000..9cc7133 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/up-circle.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'up-circle', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm178 479h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 460.4 406.8 605.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z" fill="#E6E6E6" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M518.4 360.3a7.95 7.95 0 00-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7h46.9c10.3 0 19.9-4.9 25.9-13.2L512 460.4l105.2 145.4c6 8.3 15.7 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.4-12.7l-178-246z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/up-circle.svg b/src/blrec/data/webapp/assets/twotone/up-circle.svg new file mode 100644 index 0000000..972434b --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/up-circle.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M512 140c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm178 479h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 460.4 406.8 605.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7z" fill="#E6E6E6" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" fill="#333" /><path d="M518.4 360.3a7.95 7.95 0 00-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7h46.9c10.3 0 19.9-4.9 25.9-13.2L512 460.4l105.2 145.4c6 8.3 15.7 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.4-12.7l-178-246z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/up-square.js b/src/blrec/data/webapp/assets/twotone/up-square.js new file mode 100644 index 0000000..6511bf6 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/up-square.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'up-square', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm143.5-228.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 465.4 406.8 610.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7z" fill="#E6E6E6" /><path d="M334 624h46.9c10.3 0 19.9-4.9 25.9-13.2L512 465.4l105.2 145.4c6 8.3 15.7 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.4-12.7l-178-246a7.95 7.95 0 00-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/up-square.svg b/src/blrec/data/webapp/assets/twotone/up-square.svg new file mode 100644 index 0000000..9fca0a8 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/up-square.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z" fill="#333" /><path d="M184 840h656V184H184v656zm143.5-228.7l178-246c3.2-4.4 9.7-4.4 12.9 0l178 246c3.9 5.3.1 12.7-6.4 12.7h-46.9c-10.2 0-19.9-4.9-25.9-13.2L512 465.4 406.8 610.8c-6 8.3-15.6 13.2-25.9 13.2H334c-6.5 0-10.3-7.4-6.5-12.7z" fill="#E6E6E6" /><path d="M334 624h46.9c10.3 0 19.9-4.9 25.9-13.2L512 465.4l105.2 145.4c6 8.3 15.7 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.4-12.7l-178-246a7.95 7.95 0 00-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/usb.js b/src/blrec/data/webapp/assets/twotone/usb.js new file mode 100644 index 0000000..da2c94e --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/usb.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'usb', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M759.9 504H264.1c-26.5 0-48.1 19.7-48.1 44v292h592V548c0-24.3-21.6-44-48.1-44z" fill="#E6E6E6" /><path d="M456 248h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm160 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" fill="#333" /><path d="M760 432V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zM336 184h352v248H336V184zm472 656H216V548c0-24.3 21.6-44 48.1-44h495.8c26.5 0 48.1 19.7 48.1 44v292z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/usb.svg b/src/blrec/data/webapp/assets/twotone/usb.svg new file mode 100644 index 0000000..509ad34 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/usb.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M759.9 504H264.1c-26.5 0-48.1 19.7-48.1 44v292h592V548c0-24.3-21.6-44-48.1-44z" fill="#E6E6E6" /><path d="M456 248h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm160 0h-48c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z" fill="#333" /><path d="M760 432V144c0-17.7-14.3-32-32-32H296c-17.7 0-32 14.3-32 32v288c-66.2 0-120 52.1-120 116v356c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8V548c0-63.9-53.8-116-120-116zM336 184h352v248H336V184zm472 656H216V548c0-24.3 21.6-44 48.1-44h495.8c26.5 0 48.1 19.7 48.1 44v292z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/video-camera.js b/src/blrec/data/webapp/assets/twotone/video-camera.js new file mode 100644 index 0000000..352e9c5 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/video-camera.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'video-camera', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M136 792h576V232H136v560zm64-488c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H208c-4.4 0-8-3.6-8-8v-48z" fill="#E6E6E6" /><path d="M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM712 792H136V232h576v560zm176-167l-104-59.8V458.9L888 399v226z" fill="#333" /><path d="M208 360h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H208c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/video-camera.svg b/src/blrec/data/webapp/assets/twotone/video-camera.svg new file mode 100644 index 0000000..29027d3 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/video-camera.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M136 792h576V232H136v560zm64-488c0-4.4 3.6-8 8-8h112c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8H208c-4.4 0-8-3.6-8-8v-48z" fill="#E6E6E6" /><path d="M912 302.3L784 376V224c0-35.3-28.7-64-64-64H128c-35.3 0-64 28.7-64 64v576c0 35.3 28.7 64 64 64h592c35.3 0 64-28.7 64-64V648l128 73.7c21.3 12.3 48-3.1 48-27.6V330c0-24.6-26.7-40-48-27.7zM712 792H136V232h576v560zm176-167l-104-59.8V458.9L888 399v226z" fill="#333" /><path d="M208 360h112c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H208c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/wallet.js b/src/blrec/data/webapp/assets/twotone/wallet.js new file mode 100644 index 0000000..32a1dd0 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/wallet.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'wallet', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 464H528V448h312v128zm0-192H496c-17.7 0-32 14.3-32 32v192c0 17.7 14.3 32 32 32h344v200H184V184h656v200z" fill="#333" /><path d="M528 576h312V448H528v128zm92-104c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z" fill="#E6E6E6" /><path d="M580 512a40 40 0 1080 0 40 40 0 10-80 0z" fill="#333" /><path d="M184 840h656V640H496c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32h344V184H184v656z" fill="#E6E6E6" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/wallet.svg b/src/blrec/data/webapp/assets/twotone/wallet.svg new file mode 100644 index 0000000..26790e0 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/wallet.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 464H528V448h312v128zm0-192H496c-17.7 0-32 14.3-32 32v192c0 17.7 14.3 32 32 32h344v200H184V184h656v200z" fill="#333" /><path d="M528 576h312V448H528v128zm92-104c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40 17.9-40 40-40z" fill="#E6E6E6" /><path d="M580 512a40 40 0 1080 0 40 40 0 10-80 0z" fill="#333" /><path d="M184 840h656V640H496c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32h344V184H184v656z" fill="#E6E6E6" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/warning.js b/src/blrec/data/webapp/assets/twotone/warning.js new file mode 100644 index 0000000..3388ff1 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/warning.js @@ -0,0 +1,7 @@ +(function() { + __ant_icon_load({ + name: 'warning', + theme: 'twotone', + icon: '<svg viewBox="64 64 896 896" focusable="false"><path d="M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z" fill="#333" /><path d="M172.2 828.1h679.6L512 239.9 172.2 828.1zM560 720a48.01 48.01 0 01-96 0 48.01 48.01 0 0196 0zm-16-304v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8z" fill="#E6E6E6" /><path d="M464 720a48 48 0 1096 0 48 48 0 10-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8z" fill="#333" /></svg>' + }); +})() \ No newline at end of file diff --git a/src/blrec/data/webapp/assets/twotone/warning.svg b/src/blrec/data/webapp/assets/twotone/warning.svg new file mode 100644 index 0000000..3e59b29 --- /dev/null +++ b/src/blrec/data/webapp/assets/twotone/warning.svg @@ -0,0 +1 @@ +<svg viewBox="64 64 896 896" focusable="false"><path d="M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z" fill="#333" /><path d="M172.2 828.1h679.6L512 239.9 172.2 828.1zM560 720a48.01 48.01 0 01-96 0 48.01 48.01 0 0196 0zm-16-304v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8z" fill="#E6E6E6" /><path d="M464 720a48 48 0 1096 0 48 48 0 10-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8z" fill="#333" /></svg> \ No newline at end of file diff --git a/src/blrec/data/webapp/common.fa68e1b34f0baff6ccad.js b/src/blrec/data/webapp/common.fa68e1b34f0baff6ccad.js new file mode 100644 index 0000000..3ada252 --- /dev/null +++ b/src/blrec/data/webapp/common.fa68e1b34f0baff6ccad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkblrec=self.webpackChunkblrec||[]).push([[592],{4670:(g,a,o)=>{o.d(a,{g:()=>r});var e=o(7716),s=o(8583);function i(n,c){if(1&n&&(e.TgZ(0,"div",2),e.TgZ(1,"h2",3),e._uU(2),e.qZA(),e.qZA()),2&n){const t=e.oxw();e.xp6(2),e.Oqu(t.name)}}const p=["*"];let r=(()=>{class n{constructor(){this.name=""}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275cmp=e.Xpm({type:n,selectors:[["app-page-section"]],inputs:{name:"name"},ngContentSelectors:p,decls:3,vars:1,consts:[["class","header",4,"ngIf"],[1,"card"],[1,"header"],[1,"title"]],template:function(t,l){1&t&&(e.F$t(),e.YNc(0,i,3,1,"div",0),e.TgZ(1,"div",1),e.Hsn(2),e.qZA()),2&t&&e.Q6J("ngIf",l.name)},directives:[s.O5],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column}.header[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{color:#202124;font-size:108%;font-weight:400;letter-spacing:.25px;margin-bottom:1em;margin-top:1.5em}.card[_ngcontent-%COMP%]{flex:1;background-color:#fff;border-radius:4px;box-shadow:0 2px 2px #00000024,0 1px 5px #0000001f,0 3px 1px -2px #0003}"],changeDetection:0}),n})()}}]); \ No newline at end of file diff --git a/src/blrec/data/webapp/index.html b/src/blrec/data/webapp/index.html new file mode 100644 index 0000000..c9625da --- /dev/null +++ b/src/blrec/data/webapp/index.html @@ -0,0 +1,15 @@ +<!DOCTYPE html><html lang="en"><head> + <meta charset="utf-8"> + <title>Bilibili Live Recorder</title> + <base href="/"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="icon" type="image/x-icon" href="assets/images/logo.png"> + <link rel="manifest" href="manifest.webmanifest"> + <meta name="theme-color" content="#1976d2"> +<style>body,html{width:100%;height:100%;}*,:after,:before{box-sizing:border-box;}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0);}body{margin:0;color:#000000d9;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variant:tabular-nums;line-height:1.5715;background-color:#fff;font-feature-settings:"tnum","tnum";}html{--antd-wave-shadow-color:#1890ff;--scroll-bar:0;}</style><link rel="stylesheet" href="styles.09c5ed83b6748436b293.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.09c5ed83b6748436b293.css"></noscript></head> +<body> + <app-root></app-root> + <noscript>Please enable JavaScript to continue using this application.</noscript> +<script src="runtime.9c55e9c0a6d0459b5e96.js" defer></script><script src="polyfills.a427f031f0f7196ffda1.js" defer></script><script src="main.22f06d53efe81d9df3a8.js" defer></script> + +</body></html> \ No newline at end of file diff --git a/src/blrec/data/webapp/main.22f06d53efe81d9df3a8.js b/src/blrec/data/webapp/main.22f06d53efe81d9df3a8.js new file mode 100644 index 0000000..a22a51c --- /dev/null +++ b/src/blrec/data/webapp/main.22f06d53efe81d9df3a8.js @@ -0,0 +1 @@ +(self.webpackChunkblrec=self.webpackChunkblrec||[]).push([[179],{8255:yt=>{function De(m){return Promise.resolve().then(()=>{var c=new Error("Cannot find module '"+m+"'");throw c.code="MODULE_NOT_FOUND",c})}De.keys=()=>[],De.resolve=De,De.id=8255,yt.exports=De},7238:(yt,De,m)=>{"use strict";m.d(De,{l3:()=>z,_j:()=>c,LC:()=>s,ZN:()=>ut,jt:()=>W,IO:()=>Ke,vP:()=>S,EY:()=>$e,SB:()=>U,oB:()=>B,eR:()=>Y,X$:()=>le,ZE:()=>tt,k1:()=>Ft});class c{}class s{}const z="*";function le(We,Re){return{type:7,name:We,definitions:Re,options:{}}}function W(We,Re=null){return{type:4,styles:Re,timings:We}}function S(We,Re=null){return{type:2,steps:We,options:Re}}function B(We){return{type:6,styles:We,offset:null}}function U(We,Re,Ze){return{type:0,name:We,styles:Re,options:Ze}}function Y(We,Re,Ze=null){return{type:1,expr:We,animation:Re,options:Ze}}function Ke(We,Re,Ze=null){return{type:11,selector:We,animation:Re,options:Ze}}function $e(We,Re){return{type:12,timings:We,animation:Re}}function nt(We){Promise.resolve(null).then(We)}class ut{constructor(Re=0,Ze=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=Re+Ze}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(Re=>Re()),this._onDoneFns=[])}onStart(Re){this._onStartFns.push(Re)}onDone(Re){this._onDoneFns.push(Re)}onDestroy(Re){this._onDestroyFns.push(Re)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){nt(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(Re=>Re()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(Re=>Re()),this._onDestroyFns=[])}reset(){this._started=!1}setPosition(Re){this._position=this.totalTime?Re*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(Re){const Ze="start"==Re?this._onStartFns:this._onDoneFns;Ze.forEach(Pe=>Pe()),Ze.length=0}}class tt{constructor(Re){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=Re;let Ze=0,Pe=0,st=0;const Be=this.players.length;0==Be?nt(()=>this._onFinish()):this.players.forEach(se=>{se.onDone(()=>{++Ze==Be&&this._onFinish()}),se.onDestroy(()=>{++Pe==Be&&this._onDestroy()}),se.onStart(()=>{++st==Be&&this._onStart()})}),this.totalTime=this.players.reduce((se,Se)=>Math.max(se,Se.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(Re=>Re()),this._onDoneFns=[])}init(){this.players.forEach(Re=>Re.init())}onStart(Re){this._onStartFns.push(Re)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(Re=>Re()),this._onStartFns=[])}onDone(Re){this._onDoneFns.push(Re)}onDestroy(Re){this._onDestroyFns.push(Re)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(Re=>Re.play())}pause(){this.players.forEach(Re=>Re.pause())}restart(){this.players.forEach(Re=>Re.restart())}finish(){this._onFinish(),this.players.forEach(Re=>Re.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(Re=>Re.destroy()),this._onDestroyFns.forEach(Re=>Re()),this._onDestroyFns=[])}reset(){this.players.forEach(Re=>Re.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(Re){const Ze=Re*this.totalTime;this.players.forEach(Pe=>{const st=Pe.totalTime?Math.min(1,Ze/Pe.totalTime):1;Pe.setPosition(st)})}getPosition(){const Re=this.players.reduce((Ze,Pe)=>null===Ze||Pe.totalTime>Ze.totalTime?Pe:Ze,null);return null!=Re?Re.getPosition():0}beforeDestroy(){this.players.forEach(Re=>{Re.beforeDestroy&&Re.beforeDestroy()})}triggerCallback(Re){const Ze="start"==Re?this._onStartFns:this._onDoneFns;Ze.forEach(Pe=>Pe()),Ze.length=0}}const Ft="!"},9238:(yt,De,m)=>{"use strict";m.d(De,{rt:()=>wt,mK:()=>Ht,tE:()=>Je,qV:()=>Dt});var c=m(8583),s=m(7716),z=m(6215),le=m(9765),W=m(5917),x=m(6461),S=m(5257),B=m(3653),U=m(7519),F=m(6782),Y=m(9490),V=m(521),be=m(8553);let Oe=(()=>{class Ee{constructor(te){this._platform=te}isDisabled(te){return te.hasAttribute("disabled")}isVisible(te){return function(Ee){return!!(Ee.offsetWidth||Ee.offsetHeight||"function"==typeof Ee.getClientRects&&Ee.getClientRects().length)}(te)&&"visible"===getComputedStyle(te).visibility}isTabbable(te){if(!this._platform.isBrowser)return!1;const Le=function(Ee){try{return Ee.frameElement}catch(de){return null}}(function(Ee){return Ee.ownerDocument&&Ee.ownerDocument.defaultView||window}(te));if(Le&&(-1===ft(Le)||!this.isVisible(Le)))return!1;let ct=te.nodeName.toLowerCase(),xt=ft(te);return te.hasAttribute("contenteditable")?-1!==xt:!("iframe"===ct||"object"===ct||this._platform.WEBKIT&&this._platform.IOS&&!function(Ee){let de=Ee.nodeName.toLowerCase(),te="input"===de&&Ee.type;return"text"===te||"password"===te||"select"===de||"textarea"===de}(te))&&("audio"===ct?!!te.hasAttribute("controls")&&-1!==xt:"video"===ct?-1!==xt&&(null!==xt||this._platform.FIREFOX||te.hasAttribute("controls")):te.tabIndex>=0)}isFocusable(te,Le){return function(Ee){return!function(Ee){return function(Ee){return"input"==Ee.nodeName.toLowerCase()}(Ee)&&"hidden"==Ee.type}(Ee)&&(function(Ee){let de=Ee.nodeName.toLowerCase();return"input"===de||"select"===de||"button"===de||"textarea"===de}(Ee)||function(Ee){return function(Ee){return"a"==Ee.nodeName.toLowerCase()}(Ee)&&Ee.hasAttribute("href")}(Ee)||Ee.hasAttribute("contenteditable")||Ve(Ee))}(te)&&!this.isDisabled(te)&&((null==Le?void 0:Le.ignoreVisibility)||this.isVisible(te))}}return Ee.\u0275fac=function(te){return new(te||Ee)(s.LFG(V.t4))},Ee.\u0275prov=s.Yz7({factory:function(){return new Ee(s.LFG(V.t4))},token:Ee,providedIn:"root"}),Ee})();function Ve(Ee){if(!Ee.hasAttribute("tabindex")||void 0===Ee.tabIndex)return!1;let de=Ee.getAttribute("tabindex");return"-32768"!=de&&!(!de||isNaN(parseInt(de,10)))}function ft(Ee){if(!Ve(Ee))return null;const de=parseInt(Ee.getAttribute("tabindex")||"",10);return isNaN(de)?-1:de}class lt{constructor(de,te,Le,ct,xt=!1){this._element=de,this._checker=te,this._ngZone=Le,this._document=ct,this._hasAttached=!1,this.startAnchorListener=()=>this.focusLastTabbableElement(),this.endAnchorListener=()=>this.focusFirstTabbableElement(),this._enabled=!0,xt||this.attachAnchors()}get enabled(){return this._enabled}set enabled(de){this._enabled=de,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(de,this._startAnchor),this._toggleAnchorTabIndex(de,this._endAnchor))}destroy(){const de=this._startAnchor,te=this._endAnchor;de&&(de.removeEventListener("focus",this.startAnchorListener),de.parentNode&&de.parentNode.removeChild(de)),te&&(te.removeEventListener("focus",this.endAnchorListener),te.parentNode&&te.parentNode.removeChild(te)),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return!!this._hasAttached||(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(de){return new Promise(te=>{this._executeOnStable(()=>te(this.focusInitialElement(de)))})}focusFirstTabbableElementWhenReady(de){return new Promise(te=>{this._executeOnStable(()=>te(this.focusFirstTabbableElement(de)))})}focusLastTabbableElementWhenReady(de){return new Promise(te=>{this._executeOnStable(()=>te(this.focusLastTabbableElement(de)))})}_getRegionBoundary(de){let te=this._element.querySelectorAll(`[cdk-focus-region-${de}], [cdkFocusRegion${de}], [cdk-focus-${de}]`);for(let Le=0;Le<te.length;Le++)te[Le].hasAttribute(`cdk-focus-${de}`)?console.warn(`Found use of deprecated attribute 'cdk-focus-${de}', use 'cdkFocusRegion${de}' instead. The deprecated attribute will be removed in 8.0.0.`,te[Le]):te[Le].hasAttribute(`cdk-focus-region-${de}`)&&console.warn(`Found use of deprecated attribute 'cdk-focus-region-${de}', use 'cdkFocusRegion${de}' instead. The deprecated attribute will be removed in 8.0.0.`,te[Le]);return"start"==de?te.length?te[0]:this._getFirstTabbableElement(this._element):te.length?te[te.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(de){const te=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(te){if(te.hasAttribute("cdk-focus-initial")&&console.warn("Found use of deprecated attribute 'cdk-focus-initial', use 'cdkFocusInitial' instead. The deprecated attribute will be removed in 8.0.0",te),!this._checker.isFocusable(te)){const Le=this._getFirstTabbableElement(te);return null==Le||Le.focus(de),!!Le}return te.focus(de),!0}return this.focusFirstTabbableElement(de)}focusFirstTabbableElement(de){const te=this._getRegionBoundary("start");return te&&te.focus(de),!!te}focusLastTabbableElement(de){const te=this._getRegionBoundary("end");return te&&te.focus(de),!!te}hasAttached(){return this._hasAttached}_getFirstTabbableElement(de){if(this._checker.isFocusable(de)&&this._checker.isTabbable(de))return de;let te=de.children||de.childNodes;for(let Le=0;Le<te.length;Le++){let ct=te[Le].nodeType===this._document.ELEMENT_NODE?this._getFirstTabbableElement(te[Le]):null;if(ct)return ct}return null}_getLastTabbableElement(de){if(this._checker.isFocusable(de)&&this._checker.isTabbable(de))return de;let te=de.children||de.childNodes;for(let Le=te.length-1;Le>=0;Le--){let ct=te[Le].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(te[Le]):null;if(ct)return ct}return null}_createAnchor(){const de=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,de),de.classList.add("cdk-visually-hidden"),de.classList.add("cdk-focus-trap-anchor"),de.setAttribute("aria-hidden","true"),de}_toggleAnchorTabIndex(de,te){de?te.setAttribute("tabindex","0"):te.removeAttribute("tabindex")}toggleAnchors(de){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(de,this._startAnchor),this._toggleAnchorTabIndex(de,this._endAnchor))}_executeOnStable(de){this._ngZone.isStable?de():this._ngZone.onStable.pipe((0,S.q)(1)).subscribe(de)}}let Dt=(()=>{class Ee{constructor(te,Le,ct){this._checker=te,this._ngZone=Le,this._document=ct}create(te,Le=!1){return new lt(te,this._checker,this._ngZone,this._document,Le)}}return Ee.\u0275fac=function(te){return new(te||Ee)(s.LFG(Oe),s.LFG(s.R0b),s.LFG(c.K0))},Ee.\u0275prov=s.Yz7({factory:function(){return new Ee(s.LFG(Oe),s.LFG(s.R0b),s.LFG(c.K0))},token:Ee,providedIn:"root"}),Ee})(),Ht=(()=>{class Ee{constructor(te,Le,ct){this._elementRef=te,this._focusTrapFactory=Le,this._previouslyFocusedElement=null,this.focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement,!0)}get enabled(){return this.focusTrap.enabled}set enabled(te){this.focusTrap.enabled=(0,Y.Ig)(te)}get autoCapture(){return this._autoCapture}set autoCapture(te){this._autoCapture=(0,Y.Ig)(te)}ngOnDestroy(){this.focusTrap.destroy(),this._previouslyFocusedElement&&(this._previouslyFocusedElement.focus(),this._previouslyFocusedElement=null)}ngAfterContentInit(){this.focusTrap.attachAnchors(),this.autoCapture&&this._captureFocus()}ngDoCheck(){this.focusTrap.hasAttached()||this.focusTrap.attachAnchors()}ngOnChanges(te){const Le=te.autoCapture;Le&&!Le.firstChange&&this.autoCapture&&this.focusTrap.hasAttached()&&this._captureFocus()}_captureFocus(){this._previouslyFocusedElement=(0,V.ht)(),this.focusTrap.focusInitialElementWhenReady()}}return Ee.\u0275fac=function(te){return new(te||Ee)(s.Y36(s.SBq),s.Y36(Dt),s.Y36(c.K0))},Ee.\u0275dir=s.lG2({type:Ee,selectors:[["","cdkTrapFocus",""]],inputs:{enabled:["cdkTrapFocus","enabled"],autoCapture:["cdkTrapFocusAutoCapture","autoCapture"]},exportAs:["cdkTrapFocus"],features:[s.TTD]}),Ee})();"undefined"!=typeof Element&∈const Ae=new s.OlP("cdk-input-modality-detector-options"),Ct={ignoreKeys:[x.zL,x.jx,x.b2,x.MW,x.JU]},I=(0,V.i$)({passive:!0,capture:!0});let ne=(()=>{class Ee{constructor(te,Le,ct,xt){this._platform=te,this._mostRecentTarget=null,this._modality=new z.X(null),this._lastTouchMs=0,this._onKeydown=Jt=>{var on,Sn;(null===(Sn=null===(on=this._options)||void 0===on?void 0:on.ignoreKeys)||void 0===Sn?void 0:Sn.some(Gt=>Gt===Jt.keyCode))||(this._modality.next("keyboard"),this._mostRecentTarget=(0,V.sA)(Jt))},this._onMousedown=Jt=>{Date.now()-this._lastTouchMs<650||(this._modality.next(function(Ee){return 0===Ee.offsetX&&0===Ee.offsetY}(Jt)?"keyboard":"mouse"),this._mostRecentTarget=(0,V.sA)(Jt))},this._onTouchstart=Jt=>{!function(Ee){const de=Ee.touches&&Ee.touches[0]||Ee.changedTouches&&Ee.changedTouches[0];return!(!de||-1!==de.identifier||null!=de.radiusX&&1!==de.radiusX||null!=de.radiusY&&1!==de.radiusY)}(Jt)?(this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=(0,V.sA)(Jt)):this._modality.next("keyboard")},this._options=Object.assign(Object.assign({},Ct),xt),this.modalityDetected=this._modality.pipe((0,B.T)(1)),this.modalityChanged=this.modalityDetected.pipe((0,U.x)()),te.isBrowser&&Le.runOutsideAngular(()=>{ct.addEventListener("keydown",this._onKeydown,I),ct.addEventListener("mousedown",this._onMousedown,I),ct.addEventListener("touchstart",this._onTouchstart,I)})}get mostRecentModality(){return this._modality.value}ngOnDestroy(){!this._platform.isBrowser||(document.removeEventListener("keydown",this._onKeydown,I),document.removeEventListener("mousedown",this._onMousedown,I),document.removeEventListener("touchstart",this._onTouchstart,I))}}return Ee.\u0275fac=function(te){return new(te||Ee)(s.LFG(V.t4),s.LFG(s.R0b),s.LFG(c.K0),s.LFG(Ae,8))},Ee.\u0275prov=s.Yz7({factory:function(){return new Ee(s.LFG(V.t4),s.LFG(s.R0b),s.LFG(c.K0),s.LFG(Ae,8))},token:Ee,providedIn:"root"}),Ee})();const H=new s.OlP("cdk-focus-monitor-default-options"),ce=(0,V.i$)({passive:!0,capture:!0});let Je=(()=>{class Ee{constructor(te,Le,ct,xt,Jt){this._ngZone=te,this._platform=Le,this._inputModalityDetector=ct,this._origin=null,this._windowFocused=!1,this._originFromTouchInteraction=!1,this._elementInfo=new Map,this._monitoredElementCount=0,this._rootNodeFocusListenerCount=new Map,this._windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=setTimeout(()=>this._windowFocused=!1)},this._stopInputModalityDetector=new le.xQ,this._rootNodeFocusAndBlurListener=on=>{const Sn=(0,V.sA)(on),Gt="focus"===on.type?this._onFocus:this._onBlur;for(let jn=Sn;jn;jn=jn.parentElement)Gt.call(this,on,jn)},this._document=xt,this._detectionMode=(null==Jt?void 0:Jt.detectionMode)||0}monitor(te,Le=!1){const ct=(0,Y.fI)(te);if(!this._platform.isBrowser||1!==ct.nodeType)return(0,W.of)(null);const xt=(0,V.kV)(ct)||this._getDocument(),Jt=this._elementInfo.get(ct);if(Jt)return Le&&(Jt.checkChildren=!0),Jt.subject;const on={checkChildren:Le,subject:new le.xQ,rootNode:xt};return this._elementInfo.set(ct,on),this._registerGlobalListeners(on),on.subject}stopMonitoring(te){const Le=(0,Y.fI)(te),ct=this._elementInfo.get(Le);ct&&(ct.subject.complete(),this._setClasses(Le),this._elementInfo.delete(Le),this._removeGlobalListeners(ct))}focusVia(te,Le,ct){const xt=(0,Y.fI)(te);xt===this._getDocument().activeElement?this._getClosestElementsInfo(xt).forEach(([on,Sn])=>this._originChanged(on,Le,Sn)):(this._setOrigin(Le),"function"==typeof xt.focus&&xt.focus(ct))}ngOnDestroy(){this._elementInfo.forEach((te,Le)=>this.stopMonitoring(Le))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_toggleClass(te,Le,ct){ct?te.classList.add(Le):te.classList.remove(Le)}_getFocusOrigin(te){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(te)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:"program"}_shouldBeAttributedToTouch(te){return 1===this._detectionMode||!!(null==te?void 0:te.contains(this._inputModalityDetector._mostRecentTarget))}_setClasses(te,Le){this._toggleClass(te,"cdk-focused",!!Le),this._toggleClass(te,"cdk-touch-focused","touch"===Le),this._toggleClass(te,"cdk-keyboard-focused","keyboard"===Le),this._toggleClass(te,"cdk-mouse-focused","mouse"===Le),this._toggleClass(te,"cdk-program-focused","program"===Le)}_setOrigin(te,Le=!1){this._ngZone.runOutsideAngular(()=>{this._origin=te,this._originFromTouchInteraction="touch"===te&&Le,0===this._detectionMode&&(clearTimeout(this._originTimeoutId),this._originTimeoutId=setTimeout(()=>this._origin=null,this._originFromTouchInteraction?650:1))})}_onFocus(te,Le){const ct=this._elementInfo.get(Le),xt=(0,V.sA)(te);!ct||!ct.checkChildren&&Le!==xt||this._originChanged(Le,this._getFocusOrigin(xt),ct)}_onBlur(te,Le){const ct=this._elementInfo.get(Le);!ct||ct.checkChildren&&te.relatedTarget instanceof Node&&Le.contains(te.relatedTarget)||(this._setClasses(Le),this._emitOrigin(ct.subject,null))}_emitOrigin(te,Le){this._ngZone.run(()=>te.next(Le))}_registerGlobalListeners(te){if(!this._platform.isBrowser)return;const Le=te.rootNode,ct=this._rootNodeFocusListenerCount.get(Le)||0;ct||this._ngZone.runOutsideAngular(()=>{Le.addEventListener("focus",this._rootNodeFocusAndBlurListener,ce),Le.addEventListener("blur",this._rootNodeFocusAndBlurListener,ce)}),this._rootNodeFocusListenerCount.set(Le,ct+1),1==++this._monitoredElementCount&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe((0,F.R)(this._stopInputModalityDetector)).subscribe(xt=>{this._setOrigin(xt,!0)}))}_removeGlobalListeners(te){const Le=te.rootNode;if(this._rootNodeFocusListenerCount.has(Le)){const ct=this._rootNodeFocusListenerCount.get(Le);ct>1?this._rootNodeFocusListenerCount.set(Le,ct-1):(Le.removeEventListener("focus",this._rootNodeFocusAndBlurListener,ce),Le.removeEventListener("blur",this._rootNodeFocusAndBlurListener,ce),this._rootNodeFocusListenerCount.delete(Le))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(te,Le,ct){this._setClasses(te,Le),this._emitOrigin(ct.subject,Le),this._lastFocusOrigin=Le}_getClosestElementsInfo(te){const Le=[];return this._elementInfo.forEach((ct,xt)=>{(xt===te||ct.checkChildren&&xt.contains(te))&&Le.push([xt,ct])}),Le}}return Ee.\u0275fac=function(te){return new(te||Ee)(s.LFG(s.R0b),s.LFG(V.t4),s.LFG(ne),s.LFG(c.K0,8),s.LFG(H,8))},Ee.\u0275prov=s.Yz7({factory:function(){return new Ee(s.LFG(s.R0b),s.LFG(V.t4),s.LFG(ne),s.LFG(c.K0,8),s.LFG(H,8))},token:Ee,providedIn:"root"}),Ee})();const it="cdk-high-contrast-black-on-white",X="cdk-high-contrast-white-on-black",Q="cdk-high-contrast-active";let at=(()=>{class Ee{constructor(te,Le){this._platform=te,this._document=Le}getHighContrastMode(){if(!this._platform.isBrowser)return 0;const te=this._document.createElement("div");te.style.backgroundColor="rgb(1,2,3)",te.style.position="absolute",this._document.body.appendChild(te);const Le=this._document.defaultView||window,ct=Le&&Le.getComputedStyle?Le.getComputedStyle(te):null,xt=(ct&&ct.backgroundColor||"").replace(/ /g,"");switch(this._document.body.removeChild(te),xt){case"rgb(0,0,0)":return 2;case"rgb(255,255,255)":return 1}return 0}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){const te=this._document.body.classList;te.remove(Q),te.remove(it),te.remove(X),this._hasCheckedHighContrastMode=!0;const Le=this.getHighContrastMode();1===Le?(te.add(Q),te.add(it)):2===Le&&(te.add(Q),te.add(X))}}}return Ee.\u0275fac=function(te){return new(te||Ee)(s.LFG(V.t4),s.LFG(c.K0))},Ee.\u0275prov=s.Yz7({factory:function(){return new Ee(s.LFG(V.t4),s.LFG(c.K0))},token:Ee,providedIn:"root"}),Ee})(),wt=(()=>{class Ee{constructor(te){te._applyBodyHighContrastModeCssClasses()}}return Ee.\u0275fac=function(te){return new(te||Ee)(s.LFG(at))},Ee.\u0275mod=s.oAB({type:Ee}),Ee.\u0275inj=s.cJS({imports:[[V.ud,be.Q8]]}),Ee})()},946:(yt,De,m)=>{"use strict";m.d(De,{vT:()=>S,Lv:()=>x,Is:()=>W});var c=m(7716),s=m(8583);const z=new c.OlP("cdk-dir-doc",{providedIn:"root",factory:function(){return(0,c.f3M)(s.K0)}});let W=(()=>{class B{constructor(F){if(this.value="ltr",this.change=new c.vpe,F){const V=F.documentElement?F.documentElement.dir:null,be=(F.body?F.body.dir:null)||V;this.value="ltr"===be||"rtl"===be?be:"ltr"}}ngOnDestroy(){this.change.complete()}}return B.\u0275fac=function(F){return new(F||B)(c.LFG(z,8))},B.\u0275prov=c.Yz7({factory:function(){return new B(c.LFG(z,8))},token:B,providedIn:"root"}),B})(),x=(()=>{class B{constructor(){this._dir="ltr",this._isInitialized=!1,this.change=new c.vpe}get dir(){return this._dir}set dir(F){const Y=this._dir,V=F&&F.toLowerCase();this._rawDir=F,this._dir="ltr"===V||"rtl"===V?V:"ltr",Y!==this._dir&&this._isInitialized&&this.change.emit(this._dir)}get value(){return this.dir}ngAfterContentInit(){this._isInitialized=!0}ngOnDestroy(){this.change.complete()}}return B.\u0275fac=function(F){return new(F||B)},B.\u0275dir=c.lG2({type:B,selectors:[["","dir",""]],hostVars:1,hostBindings:function(F,Y){2&F&&c.uIk("dir",Y._rawDir)},inputs:{dir:"dir"},outputs:{change:"dirChange"},exportAs:["dir"],features:[c._Bn([{provide:W,useExisting:B}])]}),B})(),S=(()=>{class B{}return B.\u0275fac=function(F){return new(F||B)},B.\u0275mod=c.oAB({type:B}),B.\u0275inj=c.cJS({}),B})()},6461:(yt,De,m)=>{"use strict";m.d(De,{zL:()=>B,ZH:()=>s,jx:()=>S,JH:()=>Ft,K5:()=>W,hY:()=>Y,oh:()=>nt,b2:()=>re,MW:()=>_e,SV:()=>tt,JU:()=>x,L_:()=>V,Mf:()=>z,LH:()=>ut,Vb:()=>Ye});const s=8,z=9,W=13,x=16,S=17,B=18,Y=27,V=32,nt=37,ut=38,tt=39,Ft=40,_e=91,re=224;function Ye(ot,...zt){return zt.length?zt.some(Vt=>ot[Vt]):ot.altKey||ot.shiftKey||ot.ctrlKey||ot.metaKey}},5072:(yt,De,m)=>{"use strict";m.d(De,{Yg:()=>Ft,u3:()=>Re,xu:()=>je,vx:()=>nt});var c=m(7716),s=m(9490),z=m(9765),le=m(9112),W=m(9923),x=m(8891),S=m(5257),B=m(3653),U=m(4395),F=m(8002),Y=m(9761),V=m(6782),be=m(521);let je=(()=>{class Ze{}return Ze.\u0275fac=function(st){return new(st||Ze)},Ze.\u0275mod=c.oAB({type:Ze}),Ze.\u0275inj=c.cJS({}),Ze})();const Ke=new Set;let $e,nt=(()=>{class Ze{constructor(st){this._platform=st,this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):tt}matchMedia(st){return this._platform.WEBKIT&&function(Ze){if(!Ke.has(Ze))try{$e||($e=document.createElement("style"),$e.setAttribute("type","text/css"),document.head.appendChild($e)),$e.sheet&&($e.sheet.insertRule(`@media ${Ze} {.fx-query-test{ }}`,0),Ke.add(Ze))}catch(Pe){console.error(Pe)}}(st),this._matchMedia(st)}}return Ze.\u0275fac=function(st){return new(st||Ze)(c.LFG(be.t4))},Ze.\u0275prov=c.Yz7({factory:function(){return new Ze(c.LFG(be.t4))},token:Ze,providedIn:"root"}),Ze})();function tt(Ze){return{matches:"all"===Ze||""===Ze,media:Ze,addListener:()=>{},removeListener:()=>{}}}let Ft=(()=>{class Ze{constructor(st,Be){this._mediaMatcher=st,this._zone=Be,this._queries=new Map,this._destroySubject=new z.xQ}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(st){return We((0,s.Eq)(st)).some(se=>this._registerQuery(se).mql.matches)}observe(st){const se=We((0,s.Eq)(st)).map(oe=>this._registerQuery(oe).observable);let Se=(0,le.aj)(se);return Se=(0,W.z)(Se.pipe((0,S.q)(1)),Se.pipe((0,B.T)(1),(0,U.b)(0))),Se.pipe((0,F.U)(oe=>{const fe={matches:!1,breakpoints:{}};return oe.forEach(({matches:Oe,query:pe})=>{fe.matches=fe.matches||Oe,fe.breakpoints[pe]=Oe}),fe}))}_registerQuery(st){if(this._queries.has(st))return this._queries.get(st);const Be=this._mediaMatcher.matchMedia(st),Se={observable:new x.y(oe=>{const fe=Oe=>this._zone.run(()=>oe.next(Oe));return Be.addListener(fe),()=>{Be.removeListener(fe)}}).pipe((0,Y.O)(Be),(0,F.U)(({matches:oe})=>({query:st,matches:oe})),(0,V.R)(this._destroySubject)),mql:Be};return this._queries.set(st,Se),Se}}return Ze.\u0275fac=function(st){return new(st||Ze)(c.LFG(nt),c.LFG(c.R0b))},Ze.\u0275prov=c.Yz7({factory:function(){return new Ze(c.LFG(nt),c.LFG(c.R0b))},token:Ze,providedIn:"root"}),Ze})();function We(Ze){return Ze.map(Pe=>Pe.split(",")).reduce((Pe,st)=>Pe.concat(st)).map(Pe=>Pe.trim())}const Re={XSmall:"(max-width: 599.98px)",Small:"(min-width: 600px) and (max-width: 959.98px)",Medium:"(min-width: 960px) and (max-width: 1279.98px)",Large:"(min-width: 1280px) and (max-width: 1919.98px)",XLarge:"(min-width: 1920px)",Handset:"(max-width: 599.98px) and (orientation: portrait), (max-width: 959.98px) and (orientation: landscape)",Tablet:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait), (min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",Web:"(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)",HandsetPortrait:"(max-width: 599.98px) and (orientation: portrait)",TabletPortrait:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait)",WebPortrait:"(min-width: 840px) and (orientation: portrait)",HandsetLandscape:"(max-width: 959.98px) and (orientation: landscape)",TabletLandscape:"(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",WebLandscape:"(min-width: 1280px) and (orientation: landscape)"}},8553:(yt,De,m)=>{"use strict";m.d(De,{yq:()=>S,Q8:()=>U});var c=m(9490),s=m(7716),z=m(8891),le=m(9765);m(4395);let x=(()=>{class F{create(V){return"undefined"==typeof MutationObserver?null:new MutationObserver(V)}}return F.\u0275fac=function(V){return new(V||F)},F.\u0275prov=s.Yz7({factory:function(){return new F},token:F,providedIn:"root"}),F})(),S=(()=>{class F{constructor(V){this._mutationObserverFactory=V,this._observedElements=new Map}ngOnDestroy(){this._observedElements.forEach((V,be)=>this._cleanupObserver(be))}observe(V){const be=(0,c.fI)(V);return new z.y(je=>{const $e=this._observeElement(be).subscribe(je);return()=>{$e.unsubscribe(),this._unobserveElement(be)}})}_observeElement(V){if(this._observedElements.has(V))this._observedElements.get(V).count++;else{const be=new le.xQ,je=this._mutationObserverFactory.create(Ke=>be.next(Ke));je&&je.observe(V,{characterData:!0,childList:!0,subtree:!0}),this._observedElements.set(V,{observer:je,stream:be,count:1})}return this._observedElements.get(V).stream}_unobserveElement(V){this._observedElements.has(V)&&(this._observedElements.get(V).count--,this._observedElements.get(V).count||this._cleanupObserver(V))}_cleanupObserver(V){if(this._observedElements.has(V)){const{observer:be,stream:je}=this._observedElements.get(V);be&&be.disconnect(),je.complete(),this._observedElements.delete(V)}}}return F.\u0275fac=function(V){return new(V||F)(s.LFG(x))},F.\u0275prov=s.Yz7({factory:function(){return new F(s.LFG(x))},token:F,providedIn:"root"}),F})(),U=(()=>{class F{}return F.\u0275fac=function(V){return new(V||F)},F.\u0275mod=s.oAB({type:F}),F.\u0275inj=s.cJS({providers:[x]}),F})()},625:(yt,De,m)=>{"use strict";m.d(De,{pI:()=>bn,xu:()=>kt,tR:()=>Se,aV:()=>tn,X_:()=>se,Vs:()=>Ne,U8:()=>Ae,Iu:()=>Ve});var c=m(1776),s=m(7716),z=m(521),le=m(946),W=m(8583),x=m(9490),S=m(7636),B=m(9765),U=m(5319),F=m(6682),Y=m(7393);class be{constructor(I,ne){this.predicate=I,this.inclusive=ne}call(I,ne){return ne.subscribe(new je(I,this.predicate,this.inclusive))}}class je extends Y.L{constructor(I,ne,N){super(I),this.predicate=ne,this.inclusive=N,this.index=0}_next(I){const ne=this.destination;let N;try{N=this.predicate(I,this.index++)}catch(G){return void ne.error(G)}this.nextOrComplete(I,N)}nextOrComplete(I,ne){const N=this.destination;Boolean(ne)?N.next(I):(this.inclusive&&N.next(I),N.complete())}}var Ke=m(5257),$e=m(6782),nt=m(6461);const ut=(0,z.Mq)();class tt{constructor(I,ne){this._viewportRuler=I,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=ne}attach(){}enable(){if(this._canBeEnabled()){const I=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=I.style.left||"",this._previousHTMLStyles.top=I.style.top||"",I.style.left=(0,x.HM)(-this._previousScrollPosition.left),I.style.top=(0,x.HM)(-this._previousScrollPosition.top),I.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const I=this._document.documentElement,N=I.style,G=this._document.body.style,_e=N.scrollBehavior||"",ve=G.scrollBehavior||"";this._isEnabled=!1,N.left=this._previousHTMLStyles.left,N.top=this._previousHTMLStyles.top,I.classList.remove("cdk-global-scrollblock"),ut&&(N.scrollBehavior=G.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),ut&&(N.scrollBehavior=_e,G.scrollBehavior=ve)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const ne=this._document.body,N=this._viewportRuler.getViewportSize();return ne.scrollHeight>N.height||ne.scrollWidth>N.width}}class We{constructor(I,ne,N,G){this._scrollDispatcher=I,this._ngZone=ne,this._viewportRuler=N,this._config=G,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(I){this._overlayRef=I}enable(){if(this._scrollSubscription)return;const I=this._scrollDispatcher.scrolled(0);this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=I.subscribe(()=>{const ne=this._viewportRuler.getViewportScrollPosition().top;Math.abs(ne-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=I.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class Re{enable(){}disable(){}attach(){}}function Ze(ae,I){return I.some(ne=>ae.bottom<ne.top||ae.top>ne.bottom||ae.right<ne.left||ae.left>ne.right)}function Pe(ae,I){return I.some(ne=>ae.top<ne.top||ae.bottom>ne.bottom||ae.left<ne.left||ae.right>ne.right)}class st{constructor(I,ne,N,G){this._scrollDispatcher=I,this._viewportRuler=ne,this._ngZone=N,this._config=G,this._scrollSubscription=null}attach(I){this._overlayRef=I}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const ne=this._overlayRef.overlayElement.getBoundingClientRect(),{width:N,height:G}=this._viewportRuler.getViewportSize();Ze(ne,[{width:N,height:G,bottom:G,right:N,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let Be=(()=>{class ae{constructor(ne,N,G,_e){this._scrollDispatcher=ne,this._viewportRuler=N,this._ngZone=G,this.noop=()=>new Re,this.close=ve=>new We(this._scrollDispatcher,this._ngZone,this._viewportRuler,ve),this.block=()=>new tt(this._viewportRuler,this._document),this.reposition=ve=>new st(this._scrollDispatcher,this._viewportRuler,this._ngZone,ve),this._document=_e}}return ae.\u0275fac=function(ne){return new(ne||ae)(s.LFG(c.mF),s.LFG(c.rL),s.LFG(s.R0b),s.LFG(W.K0))},ae.\u0275prov=s.Yz7({factory:function(){return new ae(s.LFG(c.mF),s.LFG(c.rL),s.LFG(s.R0b),s.LFG(W.K0))},token:ae,providedIn:"root"}),ae})();class se{constructor(I){if(this.scrollStrategy=new Re,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,I){const ne=Object.keys(I);for(const N of ne)void 0!==I[N]&&(this[N]=I[N])}}}class Se{constructor(I,ne,N,G,_e){this.offsetX=N,this.offsetY=G,this.panelClass=_e,this.originX=I.originX,this.originY=I.originY,this.overlayX=ne.overlayX,this.overlayY=ne.overlayY}}class fe{constructor(I,ne){this.connectionPair=I,this.scrollableViewProperties=ne}}let Ue=(()=>{class ae{constructor(ne){this._attachedOverlays=[],this._document=ne}ngOnDestroy(){this.detach()}add(ne){this.remove(ne),this._attachedOverlays.push(ne)}remove(ne){const N=this._attachedOverlays.indexOf(ne);N>-1&&this._attachedOverlays.splice(N,1),0===this._attachedOverlays.length&&this.detach()}}return ae.\u0275fac=function(ne){return new(ne||ae)(s.LFG(W.K0))},ae.\u0275prov=s.Yz7({factory:function(){return new ae(s.LFG(W.K0))},token:ae,providedIn:"root"}),ae})(),Ne=(()=>{class ae extends Ue{constructor(ne){super(ne),this._keydownListener=N=>{const G=this._attachedOverlays;for(let _e=G.length-1;_e>-1;_e--)if(G[_e]._keydownEvents.observers.length>0){G[_e]._keydownEvents.next(N);break}}}add(ne){super.add(ne),this._isAttached||(this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}}return ae.\u0275fac=function(ne){return new(ne||ae)(s.LFG(W.K0))},ae.\u0275prov=s.Yz7({factory:function(){return new ae(s.LFG(W.K0))},token:ae,providedIn:"root"}),ae})(),Ie=(()=>{class ae extends Ue{constructor(ne,N){super(ne),this._platform=N,this._cursorStyleIsSet=!1,this._clickListener=G=>{const _e=(0,z.sA)(G),ve=this._attachedOverlays.slice();for(let Ce=ve.length-1;Ce>-1;Ce--){const H=ve[Ce];if(!(H._outsidePointerEvents.observers.length<1)&&H.hasAttached()){if(H.overlayElement.contains(_e))break;H._outsidePointerEvents.next(G)}}}}add(ne){if(super.add(ne),!this._isAttached){const N=this._document.body;N.addEventListener("click",this._clickListener,!0),N.addEventListener("auxclick",this._clickListener,!0),N.addEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=N.style.cursor,N.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const ne=this._document.body;ne.removeEventListener("click",this._clickListener,!0),ne.removeEventListener("auxclick",this._clickListener,!0),ne.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(ne.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}}return ae.\u0275fac=function(ne){return new(ne||ae)(s.LFG(W.K0),s.LFG(z.t4))},ae.\u0275prov=s.Yz7({factory:function(){return new ae(s.LFG(W.K0),s.LFG(z.t4))},token:ae,providedIn:"root"}),ae})();const he="undefined"!=typeof window?window:{},we=void 0!==he.__karma__&&!!he.__karma__||void 0!==he.jasmine&&!!he.jasmine||void 0!==he.jest&&!!he.jest||void 0!==he.Mocha&&!!he.Mocha;let Ge=(()=>{class ae{constructor(ne,N){this._platform=N,this._document=ne}ngOnDestroy(){const ne=this._containerElement;ne&&ne.parentNode&&ne.parentNode.removeChild(ne)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const ne="cdk-overlay-container";if(this._platform.isBrowser||we){const G=this._document.querySelectorAll(`.${ne}[platform="server"], .${ne}[platform="test"]`);for(let _e=0;_e<G.length;_e++)G[_e].parentNode.removeChild(G[_e])}const N=this._document.createElement("div");N.classList.add(ne),we?N.setAttribute("platform","test"):this._platform.isBrowser||N.setAttribute("platform","server"),this._document.body.appendChild(N),this._containerElement=N}}return ae.\u0275fac=function(ne){return new(ne||ae)(s.LFG(W.K0),s.LFG(z.t4))},ae.\u0275prov=s.Yz7({factory:function(){return new ae(s.LFG(W.K0),s.LFG(z.t4))},token:ae,providedIn:"root"}),ae})();class Ve{constructor(I,ne,N,G,_e,ve,Ce,H,ce){this._portalOutlet=I,this._host=ne,this._pane=N,this._config=G,this._ngZone=_e,this._keyboardDispatcher=ve,this._document=Ce,this._location=H,this._outsideClickDispatcher=ce,this._backdropElement=null,this._backdropClick=new B.xQ,this._attachments=new B.xQ,this._detachments=new B.xQ,this._locationChanges=U.w.EMPTY,this._backdropClickHandler=Je=>this._backdropClick.next(Je),this._keydownEvents=new B.xQ,this._outsidePointerEvents=new B.xQ,G.scrollStrategy&&(this._scrollStrategy=G.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=G.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(I){let ne=this._portalOutlet.attach(I);return!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host),this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe((0,Ke.q)(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),ne}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const I=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),I}dispose(){const I=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this.detachBackdrop(),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host&&this._host.parentNode&&(this._host.parentNode.removeChild(this._host),this._host=null),this._previousHostParent=this._pane=null,I&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(I){I!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=I,this.hasAttached()&&(I.attach(this),this.updatePosition()))}updateSize(I){this._config=Object.assign(Object.assign({},this._config),I),this._updateElementSize()}setDirection(I){this._config=Object.assign(Object.assign({},this._config),{direction:I}),this._updateElementDirection()}addPanelClass(I){this._pane&&this._toggleClasses(this._pane,I,!0)}removePanelClass(I){this._pane&&this._toggleClasses(this._pane,I,!1)}getDirection(){const I=this._config.direction;return I?"string"==typeof I?I:I.value:"ltr"}updateScrollStrategy(I){I!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=I,this.hasAttached()&&(I.attach(this),I.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const I=this._pane.style;I.width=(0,x.HM)(this._config.width),I.height=(0,x.HM)(this._config.height),I.minWidth=(0,x.HM)(this._config.minWidth),I.minHeight=(0,x.HM)(this._config.minHeight),I.maxWidth=(0,x.HM)(this._config.maxWidth),I.maxHeight=(0,x.HM)(this._config.maxHeight)}_togglePointerEvents(I){this._pane.style.pointerEvents=I?"":"none"}_attachBackdrop(){const I="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),"undefined"!=typeof requestAnimationFrame?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(I)})}):this._backdropElement.classList.add(I)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){let I=this._backdropElement;if(!I)return;let ne,N=()=>{I&&(I.removeEventListener("click",this._backdropClickHandler),I.removeEventListener("transitionend",N),I.parentNode&&I.parentNode.removeChild(I)),this._backdropElement==I&&(this._backdropElement=null),this._config.backdropClass&&this._toggleClasses(I,this._config.backdropClass,!1),clearTimeout(ne)};I.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{I.addEventListener("transitionend",N)}),I.style.pointerEvents="none",ne=this._ngZone.runOutsideAngular(()=>setTimeout(N,500))}_toggleClasses(I,ne,N){const G=I.classList;(0,x.Eq)(ne).forEach(_e=>{_e&&(N?G.add(_e):G.remove(_e))})}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const I=this._ngZone.onStable.pipe((0,$e.R)((0,F.T)(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._previousHostParent.removeChild(this._host)),I.unsubscribe())})})}_disposeScrollStrategy(){const I=this._scrollStrategy;I&&(I.disable(),I.detach&&I.detach())}}const ft="cdk-overlay-connected-position-bounding-box",Tt=/([A-Za-z%]+)$/;class rt{constructor(I,ne,N,G,_e){this._viewportRuler=ne,this._document=N,this._platform=G,this._overlayContainer=_e,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new B.xQ,this._resizeSubscription=U.w.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(I)}get positions(){return this._preferredPositions}attach(I){this._validatePositions(),I.hostElement.classList.add(ft),this._overlayRef=I,this._boundingBox=I.hostElement,this._pane=I.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect();const I=this._originRect,ne=this._overlayRect,N=this._viewportRect,G=[];let _e;for(let ve of this._preferredPositions){let Ce=this._getOriginPoint(I,ve),H=this._getOverlayPoint(Ce,ne,ve),ce=this._getOverlayFit(H,ne,N,ve);if(ce.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(ve,Ce);this._canFitWithFlexibleDimensions(ce,H,N)?G.push({position:ve,origin:Ce,overlayRect:ne,boundingBoxRect:this._calculateBoundingBoxRect(Ce,ve)}):(!_e||_e.overlayFit.visibleArea<ce.visibleArea)&&(_e={overlayFit:ce,overlayPoint:H,originPoint:Ce,position:ve,overlayRect:ne})}if(G.length){let ve=null,Ce=-1;for(const H of G){const ce=H.boundingBoxRect.width*H.boundingBoxRect.height*(H.position.weight||1);ce>Ce&&(Ce=ce,ve=H)}return this._isPushed=!1,void this._applyPosition(ve.position,ve.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(_e.position,_e.originPoint);this._applyPosition(_e.position,_e.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&St(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(ft),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(!this._isDisposed&&(!this._platform||this._platform.isBrowser)){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect();const I=this._lastPosition||this._preferredPositions[0],ne=this._getOriginPoint(this._originRect,I);this._applyPosition(I,ne)}}withScrollableContainers(I){return this._scrollables=I,this}withPositions(I){return this._preferredPositions=I,-1===I.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(I){return this._viewportMargin=I,this}withFlexibleDimensions(I=!0){return this._hasFlexibleDimensions=I,this}withGrowAfterOpen(I=!0){return this._growAfterOpen=I,this}withPush(I=!0){return this._canPush=I,this}withLockedPosition(I=!0){return this._positionLocked=I,this}setOrigin(I){return this._origin=I,this}withDefaultOffsetX(I){return this._offsetX=I,this}withDefaultOffsetY(I){return this._offsetY=I,this}withTransformOriginOn(I){return this._transformOriginSelector=I,this}_getOriginPoint(I,ne){let N,G;if("center"==ne.originX)N=I.left+I.width/2;else{const _e=this._isRtl()?I.right:I.left,ve=this._isRtl()?I.left:I.right;N="start"==ne.originX?_e:ve}return G="center"==ne.originY?I.top+I.height/2:"top"==ne.originY?I.top:I.bottom,{x:N,y:G}}_getOverlayPoint(I,ne,N){let G,_e;return G="center"==N.overlayX?-ne.width/2:"start"===N.overlayX?this._isRtl()?-ne.width:0:this._isRtl()?0:-ne.width,_e="center"==N.overlayY?-ne.height/2:"top"==N.overlayY?0:-ne.height,{x:I.x+G,y:I.y+_e}}_getOverlayFit(I,ne,N,G){const _e=Dt(ne);let{x:ve,y:Ce}=I,H=this._getOffset(G,"x"),ce=this._getOffset(G,"y");H&&(ve+=H),ce&&(Ce+=ce);let it=0-Ce,X=Ce+_e.height-N.height,Q=this._subtractOverflows(_e.width,0-ve,ve+_e.width-N.width),at=this._subtractOverflows(_e.height,it,X),wt=Q*at;return{visibleArea:wt,isCompletelyWithinViewport:_e.width*_e.height===wt,fitsInViewportVertically:at===_e.height,fitsInViewportHorizontally:Q==_e.width}}_canFitWithFlexibleDimensions(I,ne,N){if(this._hasFlexibleDimensions){const G=N.bottom-ne.y,_e=N.right-ne.x,ve=lt(this._overlayRef.getConfig().minHeight),Ce=lt(this._overlayRef.getConfig().minWidth),ce=I.fitsInViewportHorizontally||null!=Ce&&Ce<=_e;return(I.fitsInViewportVertically||null!=ve&&ve<=G)&&ce}return!1}_pushOverlayOnScreen(I,ne,N){if(this._previousPushAmount&&this._positionLocked)return{x:I.x+this._previousPushAmount.x,y:I.y+this._previousPushAmount.y};const G=Dt(ne),_e=this._viewportRect,ve=Math.max(I.x+G.width-_e.width,0),Ce=Math.max(I.y+G.height-_e.height,0),H=Math.max(_e.top-N.top-I.y,0),ce=Math.max(_e.left-N.left-I.x,0);let Je=0,ge=0;return Je=G.width<=_e.width?ce||-ve:I.x<this._viewportMargin?_e.left-N.left-I.x:0,ge=G.height<=_e.height?H||-Ce:I.y<this._viewportMargin?_e.top-N.top-I.y:0,this._previousPushAmount={x:Je,y:ge},{x:I.x+Je,y:I.y+ge}}_applyPosition(I,ne){if(this._setTransformOrigin(I),this._setOverlayElementStyles(ne,I),this._setBoundingBoxStyles(ne,I),I.panelClass&&this._addPanelClasses(I.panelClass),this._lastPosition=I,this._positionChanges.observers.length){const N=this._getScrollVisibility(),G=new fe(I,N);this._positionChanges.next(G)}this._isInitialRender=!1}_setTransformOrigin(I){if(!this._transformOriginSelector)return;const ne=this._boundingBox.querySelectorAll(this._transformOriginSelector);let N,G=I.overlayY;N="center"===I.overlayX?"center":this._isRtl()?"start"===I.overlayX?"right":"left":"start"===I.overlayX?"left":"right";for(let _e=0;_e<ne.length;_e++)ne[_e].style.transformOrigin=`${N} ${G}`}_calculateBoundingBoxRect(I,ne){const N=this._viewportRect,G=this._isRtl();let _e,ve,Ce,Je,ge,it;if("top"===ne.overlayY)ve=I.y,_e=N.height-ve+this._viewportMargin;else if("bottom"===ne.overlayY)Ce=N.height-I.y+2*this._viewportMargin,_e=N.height-Ce+this._viewportMargin;else{const X=Math.min(N.bottom-I.y+N.top,I.y),Q=this._lastBoundingBoxSize.height;_e=2*X,ve=I.y-X,_e>Q&&!this._isInitialRender&&!this._growAfterOpen&&(ve=I.y-Q/2)}if("end"===ne.overlayX&&!G||"start"===ne.overlayX&&G)it=N.width-I.x+this._viewportMargin,Je=I.x-this._viewportMargin;else if("start"===ne.overlayX&&!G||"end"===ne.overlayX&&G)ge=I.x,Je=N.right-I.x;else{const X=Math.min(N.right-I.x+N.left,I.x),Q=this._lastBoundingBoxSize.width;Je=2*X,ge=I.x-X,Je>Q&&!this._isInitialRender&&!this._growAfterOpen&&(ge=I.x-Q/2)}return{top:ve,left:ge,bottom:Ce,right:it,width:Je,height:_e}}_setBoundingBoxStyles(I,ne){const N=this._calculateBoundingBoxRect(I,ne);!this._isInitialRender&&!this._growAfterOpen&&(N.height=Math.min(N.height,this._lastBoundingBoxSize.height),N.width=Math.min(N.width,this._lastBoundingBoxSize.width));const G={};if(this._hasExactPosition())G.top=G.left="0",G.bottom=G.right=G.maxHeight=G.maxWidth="",G.width=G.height="100%";else{const _e=this._overlayRef.getConfig().maxHeight,ve=this._overlayRef.getConfig().maxWidth;G.height=(0,x.HM)(N.height),G.top=(0,x.HM)(N.top),G.bottom=(0,x.HM)(N.bottom),G.width=(0,x.HM)(N.width),G.left=(0,x.HM)(N.left),G.right=(0,x.HM)(N.right),G.alignItems="center"===ne.overlayX?"center":"end"===ne.overlayX?"flex-end":"flex-start",G.justifyContent="center"===ne.overlayY?"center":"bottom"===ne.overlayY?"flex-end":"flex-start",_e&&(G.maxHeight=(0,x.HM)(_e)),ve&&(G.maxWidth=(0,x.HM)(ve))}this._lastBoundingBoxSize=N,St(this._boundingBox.style,G)}_resetBoundingBoxStyles(){St(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){St(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(I,ne){const N={},G=this._hasExactPosition(),_e=this._hasFlexibleDimensions,ve=this._overlayRef.getConfig();if(G){const Je=this._viewportRuler.getViewportScrollPosition();St(N,this._getExactOverlayY(ne,I,Je)),St(N,this._getExactOverlayX(ne,I,Je))}else N.position="static";let Ce="",H=this._getOffset(ne,"x"),ce=this._getOffset(ne,"y");H&&(Ce+=`translateX(${H}px) `),ce&&(Ce+=`translateY(${ce}px)`),N.transform=Ce.trim(),ve.maxHeight&&(G?N.maxHeight=(0,x.HM)(ve.maxHeight):_e&&(N.maxHeight="")),ve.maxWidth&&(G?N.maxWidth=(0,x.HM)(ve.maxWidth):_e&&(N.maxWidth="")),St(this._pane.style,N)}_getExactOverlayY(I,ne,N){let G={top:"",bottom:""},_e=this._getOverlayPoint(ne,this._overlayRect,I);this._isPushed&&(_e=this._pushOverlayOnScreen(_e,this._overlayRect,N));let ve=this._overlayContainer.getContainerElement().getBoundingClientRect().top;return _e.y-=ve,"bottom"===I.overlayY?G.bottom=this._document.documentElement.clientHeight-(_e.y+this._overlayRect.height)+"px":G.top=(0,x.HM)(_e.y),G}_getExactOverlayX(I,ne,N){let ve,G={left:"",right:""},_e=this._getOverlayPoint(ne,this._overlayRect,I);return this._isPushed&&(_e=this._pushOverlayOnScreen(_e,this._overlayRect,N)),ve=this._isRtl()?"end"===I.overlayX?"left":"right":"end"===I.overlayX?"right":"left","right"===ve?G.right=this._document.documentElement.clientWidth-(_e.x+this._overlayRect.width)+"px":G.left=(0,x.HM)(_e.x),G}_getScrollVisibility(){const I=this._getOriginRect(),ne=this._pane.getBoundingClientRect(),N=this._scrollables.map(G=>G.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:Pe(I,N),isOriginOutsideView:Ze(I,N),isOverlayClipped:Pe(ne,N),isOverlayOutsideView:Ze(ne,N)}}_subtractOverflows(I,...ne){return ne.reduce((N,G)=>N-Math.max(G,0),I)}_getNarrowedViewportRect(){const I=this._document.documentElement.clientWidth,ne=this._document.documentElement.clientHeight,N=this._viewportRuler.getViewportScrollPosition();return{top:N.top+this._viewportMargin,left:N.left+this._viewportMargin,right:N.left+I-this._viewportMargin,bottom:N.top+ne-this._viewportMargin,width:I-2*this._viewportMargin,height:ne-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(I,ne){return"x"===ne?null==I.offsetX?this._offsetX:I.offsetX:null==I.offsetY?this._offsetY:I.offsetY}_validatePositions(){}_addPanelClasses(I){this._pane&&(0,x.Eq)(I).forEach(ne=>{""!==ne&&-1===this._appliedPanelClasses.indexOf(ne)&&(this._appliedPanelClasses.push(ne),this._pane.classList.add(ne))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(I=>{this._pane.classList.remove(I)}),this._appliedPanelClasses=[])}_getOriginRect(){const I=this._origin;if(I instanceof s.SBq)return I.nativeElement.getBoundingClientRect();if(I instanceof Element)return I.getBoundingClientRect();const ne=I.width||0,N=I.height||0;return{top:I.y,bottom:I.y+N,left:I.x,right:I.x+ne,height:N,width:ne}}}function St(ae,I){for(let ne in I)I.hasOwnProperty(ne)&&(ae[ne]=I[ne]);return ae}function lt(ae){if("number"!=typeof ae&&null!=ae){const[I,ne]=ae.split(Tt);return ne&&"px"!==ne?null:parseFloat(I)}return ae||null}function Dt(ae){return{top:Math.floor(ae.top),right:Math.floor(ae.right),bottom:Math.floor(ae.bottom),left:Math.floor(ae.left),width:Math.floor(ae.width),height:Math.floor(ae.height)}}class Ht{constructor(I,ne,N,G,_e,ve,Ce){this._preferredPositions=[],this._positionStrategy=new rt(N,G,_e,ve,Ce).withFlexibleDimensions(!1).withPush(!1).withViewportMargin(0),this.withFallbackPosition(I,ne),this.onPositionChange=this._positionStrategy.positionChanges}get positions(){return this._preferredPositions}attach(I){this._overlayRef=I,this._positionStrategy.attach(I),this._direction&&(I.setDirection(this._direction),this._direction=null)}dispose(){this._positionStrategy.dispose()}detach(){this._positionStrategy.detach()}apply(){this._positionStrategy.apply()}recalculateLastPosition(){this._positionStrategy.reapplyLastPosition()}withScrollableContainers(I){this._positionStrategy.withScrollableContainers(I)}withFallbackPosition(I,ne,N,G){const _e=new Se(I,ne,N,G);return this._preferredPositions.push(_e),this._positionStrategy.withPositions(this._preferredPositions),this}withDirection(I){return this._overlayRef?this._overlayRef.setDirection(I):this._direction=I,this}withOffsetX(I){return this._positionStrategy.withDefaultOffsetX(I),this}withOffsetY(I){return this._positionStrategy.withDefaultOffsetY(I),this}withLockedPosition(I){return this._positionStrategy.withLockedPosition(I),this}withPositions(I){return this._preferredPositions=I.slice(),this._positionStrategy.withPositions(this._preferredPositions),this}setOrigin(I){return this._positionStrategy.setOrigin(I),this}}const un="cdk-global-overlay-wrapper";class en{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._leftOffset="",this._rightOffset="",this._alignItems="",this._justifyContent="",this._width="",this._height=""}attach(I){const ne=I.getConfig();this._overlayRef=I,this._width&&!ne.width&&I.updateSize({width:this._width}),this._height&&!ne.height&&I.updateSize({height:this._height}),I.hostElement.classList.add(un),this._isDisposed=!1}top(I=""){return this._bottomOffset="",this._topOffset=I,this._alignItems="flex-start",this}left(I=""){return this._rightOffset="",this._leftOffset=I,this._justifyContent="flex-start",this}bottom(I=""){return this._topOffset="",this._bottomOffset=I,this._alignItems="flex-end",this}right(I=""){return this._leftOffset="",this._rightOffset=I,this._justifyContent="flex-end",this}width(I=""){return this._overlayRef?this._overlayRef.updateSize({width:I}):this._width=I,this}height(I=""){return this._overlayRef?this._overlayRef.updateSize({height:I}):this._height=I,this}centerHorizontally(I=""){return this.left(I),this._justifyContent="center",this}centerVertically(I=""){return this.top(I),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const I=this._overlayRef.overlayElement.style,ne=this._overlayRef.hostElement.style,N=this._overlayRef.getConfig(),{width:G,height:_e,maxWidth:ve,maxHeight:Ce}=N,H=!("100%"!==G&&"100vw"!==G||ve&&"100%"!==ve&&"100vw"!==ve),ce=!("100%"!==_e&&"100vh"!==_e||Ce&&"100%"!==Ce&&"100vh"!==Ce);I.position=this._cssPosition,I.marginLeft=H?"0":this._leftOffset,I.marginTop=ce?"0":this._topOffset,I.marginBottom=this._bottomOffset,I.marginRight=this._rightOffset,H?ne.justifyContent="flex-start":"center"===this._justifyContent?ne.justifyContent="center":"rtl"===this._overlayRef.getConfig().direction?"flex-start"===this._justifyContent?ne.justifyContent="flex-end":"flex-end"===this._justifyContent&&(ne.justifyContent="flex-start"):ne.justifyContent=this._justifyContent,ne.alignItems=ce?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const I=this._overlayRef.overlayElement.style,ne=this._overlayRef.hostElement,N=ne.style;ne.classList.remove(un),N.justifyContent=N.alignItems=I.marginTop=I.marginBottom=I.marginLeft=I.marginRight=I.position="",this._overlayRef=null,this._isDisposed=!0}}let wn=(()=>{class ae{constructor(ne,N,G,_e){this._viewportRuler=ne,this._document=N,this._platform=G,this._overlayContainer=_e}global(){return new en}connectedTo(ne,N,G){return new Ht(N,G,ne,this._viewportRuler,this._document,this._platform,this._overlayContainer)}flexibleConnectedTo(ne){return new rt(ne,this._viewportRuler,this._document,this._platform,this._overlayContainer)}}return ae.\u0275fac=function(ne){return new(ne||ae)(s.LFG(c.rL),s.LFG(W.K0),s.LFG(z.t4),s.LFG(Ge))},ae.\u0275prov=s.Yz7({factory:function(){return new ae(s.LFG(c.rL),s.LFG(W.K0),s.LFG(z.t4),s.LFG(Ge))},token:ae,providedIn:"root"}),ae})(),It=0,tn=(()=>{class ae{constructor(ne,N,G,_e,ve,Ce,H,ce,Je,ge,it){this.scrollStrategies=ne,this._overlayContainer=N,this._componentFactoryResolver=G,this._positionBuilder=_e,this._keyboardDispatcher=ve,this._injector=Ce,this._ngZone=H,this._document=ce,this._directionality=Je,this._location=ge,this._outsideClickDispatcher=it}create(ne){const N=this._createHostElement(),G=this._createPaneElement(N),_e=this._createPortalOutlet(G),ve=new se(ne);return ve.direction=ve.direction||this._directionality.value,new Ve(_e,N,G,ve,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher)}position(){return this._positionBuilder}_createPaneElement(ne){const N=this._document.createElement("div");return N.id="cdk-overlay-"+It++,N.classList.add("cdk-overlay-pane"),ne.appendChild(N),N}_createHostElement(){const ne=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(ne),ne}_createPortalOutlet(ne){return this._appRef||(this._appRef=this._injector.get(s.z2F)),new S.u0(ne,this._componentFactoryResolver,this._appRef,this._injector,this._document)}}return ae.\u0275fac=function(ne){return new(ne||ae)(s.LFG(Be),s.LFG(Ge),s.LFG(s._Vd),s.LFG(wn),s.LFG(Ne),s.LFG(s.zs3),s.LFG(s.R0b),s.LFG(W.K0),s.LFG(le.Is),s.LFG(W.Ye),s.LFG(Ie))},ae.\u0275prov=s.Yz7({token:ae,factory:ae.\u0275fac}),ae})();const rn=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],cn=new s.OlP("cdk-connected-overlay-scroll-strategy");let kt=(()=>{class ae{constructor(ne){this.elementRef=ne}}return ae.\u0275fac=function(ne){return new(ne||ae)(s.Y36(s.SBq))},ae.\u0275dir=s.lG2({type:ae,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]}),ae})(),bn=(()=>{class ae{constructor(ne,N,G,_e,ve){this._overlay=ne,this._dir=ve,this._hasBackdrop=!1,this._lockPosition=!1,this._growAfterOpen=!1,this._flexibleDimensions=!1,this._push=!1,this._backdropSubscription=U.w.EMPTY,this._attachSubscription=U.w.EMPTY,this._detachSubscription=U.w.EMPTY,this._positionSubscription=U.w.EMPTY,this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.backdropClick=new s.vpe,this.positionChange=new s.vpe,this.attach=new s.vpe,this.detach=new s.vpe,this.overlayKeydown=new s.vpe,this.overlayOutsideClick=new s.vpe,this._templatePortal=new S.UE(N,G),this._scrollStrategyFactory=_e,this.scrollStrategy=this._scrollStrategyFactory()}get offsetX(){return this._offsetX}set offsetX(ne){this._offsetX=ne,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(ne){this._offsetY=ne,this._position&&this._updatePositionStrategy(this._position)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(ne){this._hasBackdrop=(0,x.Ig)(ne)}get lockPosition(){return this._lockPosition}set lockPosition(ne){this._lockPosition=(0,x.Ig)(ne)}get flexibleDimensions(){return this._flexibleDimensions}set flexibleDimensions(ne){this._flexibleDimensions=(0,x.Ig)(ne)}get growAfterOpen(){return this._growAfterOpen}set growAfterOpen(ne){this._growAfterOpen=(0,x.Ig)(ne)}get push(){return this._push}set push(ne){this._push=(0,x.Ig)(ne)}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(ne){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),ne.origin&&this.open&&this._position.apply()),ne.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=rn);const ne=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=ne.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=ne.detachments().subscribe(()=>this.detach.emit()),ne.keydownEvents().subscribe(N=>{this.overlayKeydown.next(N),N.keyCode===nt.hY&&!this.disableClose&&!(0,nt.Vb)(N)&&(N.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(N=>{this.overlayOutsideClick.next(N)})}_buildConfig(){const ne=this._position=this.positionStrategy||this._createPositionStrategy(),N=new se({direction:this._dir,positionStrategy:ne,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop});return(this.width||0===this.width)&&(N.width=this.width),(this.height||0===this.height)&&(N.height=this.height),(this.minWidth||0===this.minWidth)&&(N.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(N.minHeight=this.minHeight),this.backdropClass&&(N.backdropClass=this.backdropClass),this.panelClass&&(N.panelClass=this.panelClass),N}_updatePositionStrategy(ne){const N=this.positions.map(G=>({originX:G.originX,originY:G.originY,overlayX:G.overlayX,overlayY:G.overlayY,offsetX:G.offsetX||this.offsetX,offsetY:G.offsetY||this.offsetY,panelClass:G.panelClass||void 0}));return ne.setOrigin(this.origin.elementRef).withPositions(N).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const ne=this._overlay.position().flexibleConnectedTo(this.origin.elementRef);return this._updatePositionStrategy(ne),ne}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(ne=>{this.backdropClick.emit(ne)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(function(ae,I=!1){return ne=>ne.lift(new be(ae,I))}(()=>this.positionChange.observers.length>0)).subscribe(ne=>{this.positionChange.emit(ne),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}}return ae.\u0275fac=function(ne){return new(ne||ae)(s.Y36(tn),s.Y36(s.Rgc),s.Y36(s.s_b),s.Y36(cn),s.Y36(le.Is,8))},ae.\u0275dir=s.lG2({type:ae,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{viewportMargin:["cdkConnectedOverlayViewportMargin","viewportMargin"],open:["cdkConnectedOverlayOpen","open"],disableClose:["cdkConnectedOverlayDisableClose","disableClose"],scrollStrategy:["cdkConnectedOverlayScrollStrategy","scrollStrategy"],offsetX:["cdkConnectedOverlayOffsetX","offsetX"],offsetY:["cdkConnectedOverlayOffsetY","offsetY"],hasBackdrop:["cdkConnectedOverlayHasBackdrop","hasBackdrop"],lockPosition:["cdkConnectedOverlayLockPosition","lockPosition"],flexibleDimensions:["cdkConnectedOverlayFlexibleDimensions","flexibleDimensions"],growAfterOpen:["cdkConnectedOverlayGrowAfterOpen","growAfterOpen"],push:["cdkConnectedOverlayPush","push"],positions:["cdkConnectedOverlayPositions","positions"],origin:["cdkConnectedOverlayOrigin","origin"],positionStrategy:["cdkConnectedOverlayPositionStrategy","positionStrategy"],width:["cdkConnectedOverlayWidth","width"],height:["cdkConnectedOverlayHeight","height"],minWidth:["cdkConnectedOverlayMinWidth","minWidth"],minHeight:["cdkConnectedOverlayMinHeight","minHeight"],backdropClass:["cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:["cdkConnectedOverlayPanelClass","panelClass"],transformOriginSelector:["cdkConnectedOverlayTransformOriginOn","transformOriginSelector"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[s.TTD]}),ae})();const xe={provide:cn,deps:[tn],useFactory:function(ae){return()=>ae.scrollStrategies.reposition()}};let Ae=(()=>{class ae{}return ae.\u0275fac=function(ne){return new(ne||ae)},ae.\u0275mod=s.oAB({type:ae}),ae.\u0275inj=s.cJS({providers:[tn,xe],imports:[[le.vT,S.eL,c.Cl],c.Cl]}),ae})()},521:(yt,De,m)=>{"use strict";m.d(De,{t4:()=>le,ud:()=>W,sA:()=>Ft,ht:()=>tt,kV:()=>ut,_i:()=>Ke,i$:()=>Y,Mq:()=>je});var c=m(7716),s=m(8583);let z;try{z="undefined"!=typeof Intl&&Intl.v8BreakIterator}catch(We){z=!1}let U,V,be,$e,le=(()=>{class We{constructor(Ze){this._platformId=Ze,this.isBrowser=this._platformId?(0,s.NF)(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!z)&&"undefined"!=typeof CSS&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}}return We.\u0275fac=function(Ze){return new(Ze||We)(c.LFG(c.Lbi))},We.\u0275prov=c.Yz7({factory:function(){return new We(c.LFG(c.Lbi))},token:We,providedIn:"root"}),We})(),W=(()=>{class We{}return We.\u0275fac=function(Ze){return new(Ze||We)},We.\u0275mod=c.oAB({type:We}),We.\u0275inj=c.cJS({}),We})();function Y(We){return function(){if(null==U&&"undefined"!=typeof window)try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>U=!0}))}finally{U=U||!1}return U}()?We:!!We.capture}function je(){if(null==be){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return be=!1,be;if("scrollBehavior"in document.documentElement.style)be=!0;else{const We=Element.prototype.scrollTo;be=!!We&&!/\{\s*\[native code\]\s*\}/.test(We.toString())}}return be}function Ke(){if("object"!=typeof document||!document)return 0;if(null==V){const We=document.createElement("div"),Re=We.style;We.dir="rtl",Re.width="1px",Re.overflow="auto",Re.visibility="hidden",Re.pointerEvents="none",Re.position="absolute";const Ze=document.createElement("div"),Pe=Ze.style;Pe.width="2px",Pe.height="1px",We.appendChild(Ze),document.body.appendChild(We),V=0,0===We.scrollLeft&&(We.scrollLeft=1,V=0===We.scrollLeft?1:2),We.parentNode.removeChild(We)}return V}function ut(We){if(function(){if(null==$e){const We="undefined"!=typeof document?document.head:null;$e=!(!We||!We.createShadowRoot&&!We.attachShadow)}return $e}()){const Re=We.getRootNode?We.getRootNode():null;if("undefined"!=typeof ShadowRoot&&ShadowRoot&&Re instanceof ShadowRoot)return Re}return null}function tt(){let We="undefined"!=typeof document&&document?document.activeElement:null;for(;We&&We.shadowRoot;){const Re=We.shadowRoot.activeElement;if(Re===We)break;We=Re}return We}function Ft(We){return We.composedPath?We.composedPath()[0]:We.target}},7636:(yt,De,m)=>{"use strict";m.d(De,{en:()=>be,Pl:()=>tt,C5:()=>F,u0:()=>Ke,eL:()=>We,UE:()=>Y});var c=m(7716),s=m(8583);class U{attach(Pe){return this._attachedHost=Pe,Pe.attach(this)}detach(){let Pe=this._attachedHost;null!=Pe&&(this._attachedHost=null,Pe.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(Pe){this._attachedHost=Pe}}class F extends U{constructor(Pe,st,Be,se){super(),this.component=Pe,this.viewContainerRef=st,this.injector=Be,this.componentFactoryResolver=se}}class Y extends U{constructor(Pe,st,Be){super(),this.templateRef=Pe,this.viewContainerRef=st,this.context=Be}get origin(){return this.templateRef.elementRef}attach(Pe,st=this.context){return this.context=st,super.attach(Pe)}detach(){return this.context=void 0,super.detach()}}class V extends U{constructor(Pe){super(),this.element=Pe instanceof c.SBq?Pe.nativeElement:Pe}}class be{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(Pe){return Pe instanceof F?(this._attachedPortal=Pe,this.attachComponentPortal(Pe)):Pe instanceof Y?(this._attachedPortal=Pe,this.attachTemplatePortal(Pe)):this.attachDomPortal&&Pe instanceof V?(this._attachedPortal=Pe,this.attachDomPortal(Pe)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(Pe){this._disposeFn=Pe}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}class Ke extends be{constructor(Pe,st,Be,se,Se){super(),this.outletElement=Pe,this._componentFactoryResolver=st,this._appRef=Be,this._defaultInjector=se,this.attachDomPortal=oe=>{const fe=oe.element,Oe=this._document.createComment("dom-portal");fe.parentNode.insertBefore(Oe,fe),this.outletElement.appendChild(fe),this._attachedPortal=oe,super.setDisposeFn(()=>{Oe.parentNode&&Oe.parentNode.replaceChild(fe,Oe)})},this._document=Se}attachComponentPortal(Pe){const Be=(Pe.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(Pe.component);let se;return Pe.viewContainerRef?(se=Pe.viewContainerRef.createComponent(Be,Pe.viewContainerRef.length,Pe.injector||Pe.viewContainerRef.injector),this.setDisposeFn(()=>se.destroy())):(se=Be.create(Pe.injector||this._defaultInjector),this._appRef.attachView(se.hostView),this.setDisposeFn(()=>{this._appRef.detachView(se.hostView),se.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(se)),this._attachedPortal=Pe,se}attachTemplatePortal(Pe){let st=Pe.viewContainerRef,Be=st.createEmbeddedView(Pe.templateRef,Pe.context);return Be.rootNodes.forEach(se=>this.outletElement.appendChild(se)),Be.detectChanges(),this.setDisposeFn(()=>{let se=st.indexOf(Be);-1!==se&&st.remove(se)}),this._attachedPortal=Pe,Be}dispose(){super.dispose(),null!=this.outletElement.parentNode&&this.outletElement.parentNode.removeChild(this.outletElement)}_getComponentRootNode(Pe){return Pe.hostView.rootNodes[0]}}let tt=(()=>{class Ze extends be{constructor(st,Be,se){super(),this._componentFactoryResolver=st,this._viewContainerRef=Be,this._isInitialized=!1,this.attached=new c.vpe,this.attachDomPortal=Se=>{const oe=Se.element,fe=this._document.createComment("dom-portal");Se.setAttachedHost(this),oe.parentNode.insertBefore(fe,oe),this._getRootNode().appendChild(oe),this._attachedPortal=Se,super.setDisposeFn(()=>{fe.parentNode&&fe.parentNode.replaceChild(oe,fe)})},this._document=se}get portal(){return this._attachedPortal}set portal(st){this.hasAttached()&&!st&&!this._isInitialized||(this.hasAttached()&&super.detach(),st&&super.attach(st),this._attachedPortal=st)}get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedPortal=null,this._attachedRef=null}attachComponentPortal(st){st.setAttachedHost(this);const Be=null!=st.viewContainerRef?st.viewContainerRef:this._viewContainerRef,Se=(st.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(st.component),oe=Be.createComponent(Se,Be.length,st.injector||Be.injector);return Be!==this._viewContainerRef&&this._getRootNode().appendChild(oe.hostView.rootNodes[0]),super.setDisposeFn(()=>oe.destroy()),this._attachedPortal=st,this._attachedRef=oe,this.attached.emit(oe),oe}attachTemplatePortal(st){st.setAttachedHost(this);const Be=this._viewContainerRef.createEmbeddedView(st.templateRef,st.context);return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=st,this._attachedRef=Be,this.attached.emit(Be),Be}_getRootNode(){const st=this._viewContainerRef.element.nativeElement;return st.nodeType===st.ELEMENT_NODE?st:st.parentNode}}return Ze.\u0275fac=function(st){return new(st||Ze)(c.Y36(c._Vd),c.Y36(c.s_b),c.Y36(s.K0))},Ze.\u0275dir=c.lG2({type:Ze,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:["cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[c.qOj]}),Ze})(),We=(()=>{class Ze{}return Ze.\u0275fac=function(st){return new(st||Ze)},Ze.\u0275mod=c.oAB({type:Ze}),Ze.\u0275inj=c.cJS({}),Ze})()},1776:(yt,De,m)=>{"use strict";m.d(De,{xd:()=>cn,x0:()=>N,N7:()=>I,mF:()=>bn,Cl:()=>_e,rL:()=>Ae});var c=m(9490),s=m(7716),z=m(6465),W=m(6102);const S=new class extends W.v{flush(Ce){this.active=!0,this.scheduled=void 0;const{actions:H}=this;let ce,Je=-1,ge=H.length;Ce=Ce||H.shift();do{if(ce=Ce.execute(Ce.state,Ce.delay))break}while(++Je<ge&&(Ce=H.shift()));if(this.active=!1,ce){for(;++Je<ge&&(Ce=H.shift());)Ce.unsubscribe();throw ce}}}(class extends z.o{constructor(Ce,H){super(Ce,H),this.scheduler=Ce,this.work=H}requestAsyncId(Ce,H,ce=0){return null!==ce&&ce>0?super.requestAsyncId(Ce,H,ce):(Ce.actions.push(this),Ce.scheduled||(Ce.scheduled=requestAnimationFrame(()=>Ce.flush(null))))}recycleAsyncId(Ce,H,ce=0){if(null!==ce&&ce>0||null===ce&&this.delay>0)return super.recycleAsyncId(Ce,H,ce);0===Ce.actions.length&&(cancelAnimationFrame(H),Ce.scheduled=void 0)}});let U=1;const F=Promise.resolve(),Y={};function V(ve){return ve in Y&&(delete Y[ve],!0)}const be={setImmediate(ve){const Ce=U++;return Y[Ce]=!0,F.then(()=>V(Ce)&&ve()),Ce},clearImmediate(ve){V(ve)}},nt=new class extends W.v{flush(Ce){this.active=!0,this.scheduled=void 0;const{actions:H}=this;let ce,Je=-1,ge=H.length;Ce=Ce||H.shift();do{if(ce=Ce.execute(Ce.state,Ce.delay))break}while(++Je<ge&&(Ce=H.shift()));if(this.active=!1,ce){for(;++Je<ge&&(Ce=H.shift());)Ce.unsubscribe();throw ce}}}(class extends z.o{constructor(Ce,H){super(Ce,H),this.scheduler=Ce,this.work=H}requestAsyncId(Ce,H,ce=0){return null!==ce&&ce>0?super.requestAsyncId(Ce,H,ce):(Ce.actions.push(this),Ce.scheduled||(Ce.scheduled=be.setImmediate(Ce.flush.bind(Ce,null))))}recycleAsyncId(Ce,H,ce=0){if(null!==ce&&ce>0||null===ce&&this.delay>0)return super.recycleAsyncId(Ce,H,ce);0===Ce.actions.length&&(be.clearImmediate(H),Ce.scheduled=void 0)}});var tt=m(8891);function Ft(ve){return!!ve&&(ve instanceof tt.y||"function"==typeof ve.lift&&"function"==typeof ve.subscribe)}var We=m(9765),Re=m(5917),Ze=m(2759),Pe=m(5319),st=m(7393);class se{call(Ce,H){return H.subscribe(new Se(Ce))}}class Se extends st.L{constructor(Ce){super(Ce),this.hasPrev=!1}_next(Ce){let H;this.hasPrev?H=[this.prev,Ce]:this.hasPrev=!0,this.prev=Ce,H&&this.destination.next(H)}}var oe=m(7519),fe=m(13),Oe=m(5435),pe=m(6782),Ue=m(9761),Ne=m(3190),Ie=m(7349),he=m(521),we=m(8583),Ge=m(946);class Tt extends class{}{constructor(Ce){super(),this._data=Ce}connect(){return Ft(this._data)?this._data:(0,Re.of)(this._data)}disconnect(){}}class St{constructor(){this.viewCacheSize=20,this._viewCache=[]}applyChanges(Ce,H,ce,Je,ge){Ce.forEachOperation((it,X,Q)=>{let at,wt;null==it.previousIndex?(at=this._insertView(()=>ce(it,X,Q),Q,H,Je(it)),wt=at?1:0):null==Q?(this._detachAndCacheView(X,H),wt=3):(at=this._moveView(X,Q,H,Je(it)),wt=2),ge&&ge({context:null==at?void 0:at.context,operation:wt,record:it})})}detach(){for(const Ce of this._viewCache)Ce.destroy();this._viewCache=[]}_insertView(Ce,H,ce,Je){const ge=this._insertViewFromCache(H,ce);if(ge)return void(ge.context.$implicit=Je);const it=Ce();return ce.createEmbeddedView(it.templateRef,it.context,it.index)}_detachAndCacheView(Ce,H){const ce=H.detach(Ce);this._maybeCacheView(ce,H)}_moveView(Ce,H,ce,Je){const ge=ce.get(Ce);return ce.move(ge,H),ge.context.$implicit=Je,ge}_maybeCacheView(Ce,H){if(this._viewCache.length<this.viewCacheSize)this._viewCache.push(Ce);else{const ce=H.indexOf(Ce);-1===ce?Ce.destroy():H.remove(ce)}}_insertViewFromCache(Ce,H){const ce=this._viewCache.pop();return ce&&H.insert(ce,Ce),ce||null}}const un=new s.OlP("_ViewRepeater"),en=["contentWrapper"],wn=["*"],It=new s.OlP("VIRTUAL_SCROLL_STRATEGY");class tn{constructor(Ce,H,ce){this._scrolledIndexChange=new We.xQ,this.scrolledIndexChange=this._scrolledIndexChange.pipe((0,oe.x)()),this._viewport=null,this._itemSize=Ce,this._minBufferPx=H,this._maxBufferPx=ce}attach(Ce){this._viewport=Ce,this._updateTotalContentSize(),this._updateRenderedRange()}detach(){this._scrolledIndexChange.complete(),this._viewport=null}updateItemAndBufferSize(Ce,H,ce){this._itemSize=Ce,this._minBufferPx=H,this._maxBufferPx=ce,this._updateTotalContentSize(),this._updateRenderedRange()}onContentScrolled(){this._updateRenderedRange()}onDataLengthChanged(){this._updateTotalContentSize(),this._updateRenderedRange()}onContentRendered(){}onRenderedOffsetChanged(){}scrollToIndex(Ce,H){this._viewport&&this._viewport.scrollToOffset(Ce*this._itemSize,H)}_updateTotalContentSize(){!this._viewport||this._viewport.setTotalContentSize(this._viewport.getDataLength()*this._itemSize)}_updateRenderedRange(){if(!this._viewport)return;const Ce=this._viewport.getRenderedRange(),H={start:Ce.start,end:Ce.end},ce=this._viewport.getViewportSize(),Je=this._viewport.getDataLength();let ge=this._viewport.measureScrollOffset(),it=this._itemSize>0?ge/this._itemSize:0;if(H.end>Je){const Q=Math.ceil(ce/this._itemSize),at=Math.max(0,Math.min(it,Je-Q));it!=at&&(it=at,ge=at*this._itemSize,H.start=Math.floor(it)),H.end=Math.max(0,Math.min(Je,H.start+Q))}const X=ge-H.start*this._itemSize;if(X<this._minBufferPx&&0!=H.start){const Q=Math.ceil((this._maxBufferPx-X)/this._itemSize);H.start=Math.max(0,H.start-Q),H.end=Math.min(Je,Math.ceil(it+(ce+this._minBufferPx)/this._itemSize))}else{const Q=H.end*this._itemSize-(ge+ce);if(Q<this._minBufferPx&&H.end!=Je){const at=Math.ceil((this._maxBufferPx-Q)/this._itemSize);at>0&&(H.end=Math.min(Je,H.end+at),H.start=Math.max(0,Math.floor(it-this._minBufferPx/this._itemSize)))}}this._viewport.setRenderedRange(H),this._viewport.setRenderedContentOffset(this._itemSize*H.start),this._scrolledIndexChange.next(Math.floor(it))}}function rn(ve){return ve._scrollStrategy}let cn=(()=>{class ve{constructor(){this._itemSize=20,this._minBufferPx=100,this._maxBufferPx=200,this._scrollStrategy=new tn(this.itemSize,this.minBufferPx,this.maxBufferPx)}get itemSize(){return this._itemSize}set itemSize(H){this._itemSize=(0,c.su)(H)}get minBufferPx(){return this._minBufferPx}set minBufferPx(H){this._minBufferPx=(0,c.su)(H)}get maxBufferPx(){return this._maxBufferPx}set maxBufferPx(H){this._maxBufferPx=(0,c.su)(H)}ngOnChanges(){this._scrollStrategy.updateItemAndBufferSize(this.itemSize,this.minBufferPx,this.maxBufferPx)}}return ve.\u0275fac=function(H){return new(H||ve)},ve.\u0275dir=s.lG2({type:ve,selectors:[["cdk-virtual-scroll-viewport","itemSize",""]],inputs:{itemSize:"itemSize",minBufferPx:"minBufferPx",maxBufferPx:"maxBufferPx"},features:[s._Bn([{provide:It,useFactory:rn,deps:[(0,s.Gpc)(()=>ve)]}]),s.TTD]}),ve})(),bn=(()=>{class ve{constructor(H,ce,Je){this._ngZone=H,this._platform=ce,this._scrolled=new We.xQ,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=Je}register(H){this.scrollContainers.has(H)||this.scrollContainers.set(H,H.elementScrolled().subscribe(()=>this._scrolled.next(H)))}deregister(H){const ce=this.scrollContainers.get(H);ce&&(ce.unsubscribe(),this.scrollContainers.delete(H))}scrolled(H=20){return this._platform.isBrowser?new tt.y(ce=>{this._globalSubscription||this._addGlobalListener();const Je=H>0?this._scrolled.pipe((0,fe.e)(H)).subscribe(ce):this._scrolled.subscribe(ce);return this._scrolledCount++,()=>{Je.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):(0,Re.of)()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((H,ce)=>this.deregister(ce)),this._scrolled.complete()}ancestorScrolled(H,ce){const Je=this.getAncestorScrollContainers(H);return this.scrolled(ce).pipe((0,Oe.h)(ge=>!ge||Je.indexOf(ge)>-1))}getAncestorScrollContainers(H){const ce=[];return this.scrollContainers.forEach((Je,ge)=>{this._scrollableContainsElement(ge,H)&&ce.push(ge)}),ce}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(H,ce){let Je=(0,c.fI)(ce),ge=H.getElementRef().nativeElement;do{if(Je==ge)return!0}while(Je=Je.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>{const H=this._getWindow();return(0,Ze.R)(H.document,"scroll").subscribe(()=>this._scrolled.next())})}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}}return ve.\u0275fac=function(H){return new(H||ve)(s.LFG(s.R0b),s.LFG(he.t4),s.LFG(we.K0,8))},ve.\u0275prov=s.Yz7({factory:function(){return new ve(s.LFG(s.R0b),s.LFG(he.t4),s.LFG(we.K0,8))},token:ve,providedIn:"root"}),ve})(),pt=(()=>{class ve{constructor(H,ce,Je,ge){this.elementRef=H,this.scrollDispatcher=ce,this.ngZone=Je,this.dir=ge,this._destroyed=new We.xQ,this._elementScrolled=new tt.y(it=>this.ngZone.runOutsideAngular(()=>(0,Ze.R)(this.elementRef.nativeElement,"scroll").pipe((0,pe.R)(this._destroyed)).subscribe(it)))}ngOnInit(){this.scrollDispatcher.register(this)}ngOnDestroy(){this.scrollDispatcher.deregister(this),this._destroyed.next(),this._destroyed.complete()}elementScrolled(){return this._elementScrolled}getElementRef(){return this.elementRef}scrollTo(H){const ce=this.elementRef.nativeElement,Je=this.dir&&"rtl"==this.dir.value;null==H.left&&(H.left=Je?H.end:H.start),null==H.right&&(H.right=Je?H.start:H.end),null!=H.bottom&&(H.top=ce.scrollHeight-ce.clientHeight-H.bottom),Je&&0!=(0,he._i)()?(null!=H.left&&(H.right=ce.scrollWidth-ce.clientWidth-H.left),2==(0,he._i)()?H.left=H.right:1==(0,he._i)()&&(H.left=H.right?-H.right:H.right)):null!=H.right&&(H.left=ce.scrollWidth-ce.clientWidth-H.right),this._applyScrollToOptions(H)}_applyScrollToOptions(H){const ce=this.elementRef.nativeElement;(0,he.Mq)()?ce.scrollTo(H):(null!=H.top&&(ce.scrollTop=H.top),null!=H.left&&(ce.scrollLeft=H.left))}measureScrollOffset(H){const ce="left",ge=this.elementRef.nativeElement;if("top"==H)return ge.scrollTop;if("bottom"==H)return ge.scrollHeight-ge.clientHeight-ge.scrollTop;const it=this.dir&&"rtl"==this.dir.value;return"start"==H?H=it?"right":ce:"end"==H&&(H=it?ce:"right"),it&&2==(0,he._i)()?H==ce?ge.scrollWidth-ge.clientWidth-ge.scrollLeft:ge.scrollLeft:it&&1==(0,he._i)()?H==ce?ge.scrollLeft+ge.scrollWidth-ge.clientWidth:-ge.scrollLeft:H==ce?ge.scrollLeft:ge.scrollWidth-ge.clientWidth-ge.scrollLeft}}return ve.\u0275fac=function(H){return new(H||ve)(s.Y36(s.SBq),s.Y36(bn),s.Y36(s.R0b),s.Y36(Ge.Is,8))},ve.\u0275dir=s.lG2({type:ve,selectors:[["","cdk-scrollable",""],["","cdkScrollable",""]]}),ve})(),Ae=(()=>{class ve{constructor(H,ce,Je){this._platform=H,this._change=new We.xQ,this._changeListener=ge=>{this._change.next(ge)},this._document=Je,ce.runOutsideAngular(()=>{if(H.isBrowser){const ge=this._getWindow();ge.addEventListener("resize",this._changeListener),ge.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const H=this._getWindow();H.removeEventListener("resize",this._changeListener),H.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const H={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),H}getViewportRect(){const H=this.getViewportScrollPosition(),{width:ce,height:Je}=this.getViewportSize();return{top:H.top,left:H.left,bottom:H.top+Je,right:H.left+ce,height:Je,width:ce}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const H=this._document,ce=this._getWindow(),Je=H.documentElement,ge=Je.getBoundingClientRect();return{top:-ge.top||H.body.scrollTop||ce.scrollY||Je.scrollTop||0,left:-ge.left||H.body.scrollLeft||ce.scrollX||Je.scrollLeft||0}}change(H=20){return H>0?this._change.pipe((0,fe.e)(H)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const H=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:H.innerWidth,height:H.innerHeight}:{width:0,height:0}}}return ve.\u0275fac=function(H){return new(H||ve)(s.LFG(he.t4),s.LFG(s.R0b),s.LFG(we.K0,8))},ve.\u0275prov=s.Yz7({factory:function(){return new ve(s.LFG(he.t4),s.LFG(s.R0b),s.LFG(we.K0,8))},token:ve,providedIn:"root"}),ve})();const ae="undefined"!=typeof requestAnimationFrame?S:nt;let I=(()=>{class ve extends pt{constructor(H,ce,Je,ge,it,X,Q){super(H,X,Je,it),this.elementRef=H,this._changeDetectorRef=ce,this._scrollStrategy=ge,this._detachedSubject=new We.xQ,this._renderedRangeSubject=new We.xQ,this._orientation="vertical",this._appendOnly=!1,this.scrolledIndexChange=new tt.y(at=>this._scrollStrategy.scrolledIndexChange.subscribe(wt=>Promise.resolve().then(()=>this.ngZone.run(()=>at.next(wt))))),this.renderedRangeStream=this._renderedRangeSubject,this._totalContentSize=0,this._totalContentWidth="",this._totalContentHeight="",this._renderedRange={start:0,end:0},this._dataLength=0,this._viewportSize=0,this._renderedContentOffset=0,this._renderedContentOffsetNeedsRewrite=!1,this._isChangeDetectionPending=!1,this._runAfterChangeDetection=[],this._viewportChanges=Pe.w.EMPTY,this._viewportChanges=Q.change().subscribe(()=>{this.checkViewportSize()})}get orientation(){return this._orientation}set orientation(H){this._orientation!==H&&(this._orientation=H,this._calculateSpacerSize())}get appendOnly(){return this._appendOnly}set appendOnly(H){this._appendOnly=(0,c.Ig)(H)}ngOnInit(){super.ngOnInit(),this.ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>{this._measureViewportSize(),this._scrollStrategy.attach(this),this.elementScrolled().pipe((0,Ue.O)(null),(0,fe.e)(0,ae)).subscribe(()=>this._scrollStrategy.onContentScrolled()),this._markChangeDetectionNeeded()}))}ngOnDestroy(){this.detach(),this._scrollStrategy.detach(),this._renderedRangeSubject.complete(),this._detachedSubject.complete(),this._viewportChanges.unsubscribe(),super.ngOnDestroy()}attach(H){this.ngZone.runOutsideAngular(()=>{this._forOf=H,this._forOf.dataStream.pipe((0,pe.R)(this._detachedSubject)).subscribe(ce=>{const Je=ce.length;Je!==this._dataLength&&(this._dataLength=Je,this._scrollStrategy.onDataLengthChanged()),this._doChangeDetection()})})}detach(){this._forOf=null,this._detachedSubject.next()}getDataLength(){return this._dataLength}getViewportSize(){return this._viewportSize}getRenderedRange(){return this._renderedRange}setTotalContentSize(H){this._totalContentSize!==H&&(this._totalContentSize=H,this._calculateSpacerSize(),this._markChangeDetectionNeeded())}setRenderedRange(H){(function(ve,Ce){return ve.start==Ce.start&&ve.end==Ce.end})(this._renderedRange,H)||(this.appendOnly&&(H={start:0,end:Math.max(this._renderedRange.end,H.end)}),this._renderedRangeSubject.next(this._renderedRange=H),this._markChangeDetectionNeeded(()=>this._scrollStrategy.onContentRendered()))}getOffsetToRenderedContentStart(){return this._renderedContentOffsetNeedsRewrite?null:this._renderedContentOffset}setRenderedContentOffset(H,ce="to-start"){const ge="horizontal"==this.orientation,it=ge?"X":"Y";let Q=`translate${it}(${Number((ge&&this.dir&&"rtl"==this.dir.value?-1:1)*H)}px)`;this._renderedContentOffset=H,"to-end"===ce&&(Q+=` translate${it}(-100%)`,this._renderedContentOffsetNeedsRewrite=!0),this._renderedContentTransform!=Q&&(this._renderedContentTransform=Q,this._markChangeDetectionNeeded(()=>{this._renderedContentOffsetNeedsRewrite?(this._renderedContentOffset-=this.measureRenderedContentSize(),this._renderedContentOffsetNeedsRewrite=!1,this.setRenderedContentOffset(this._renderedContentOffset)):this._scrollStrategy.onRenderedOffsetChanged()}))}scrollToOffset(H,ce="auto"){const Je={behavior:ce};"horizontal"===this.orientation?Je.start=H:Je.top=H,this.scrollTo(Je)}scrollToIndex(H,ce="auto"){this._scrollStrategy.scrollToIndex(H,ce)}measureScrollOffset(H){return super.measureScrollOffset(H||("horizontal"===this.orientation?"start":"top"))}measureRenderedContentSize(){const H=this._contentWrapper.nativeElement;return"horizontal"===this.orientation?H.offsetWidth:H.offsetHeight}measureRangeSize(H){return this._forOf?this._forOf.measureRangeSize(H,this.orientation):0}checkViewportSize(){this._measureViewportSize(),this._scrollStrategy.onDataLengthChanged()}_measureViewportSize(){const H=this.elementRef.nativeElement;this._viewportSize="horizontal"===this.orientation?H.clientWidth:H.clientHeight}_markChangeDetectionNeeded(H){H&&this._runAfterChangeDetection.push(H),this._isChangeDetectionPending||(this._isChangeDetectionPending=!0,this.ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>{this._doChangeDetection()})))}_doChangeDetection(){this._isChangeDetectionPending=!1,this._contentWrapper.nativeElement.style.transform=this._renderedContentTransform,this.ngZone.run(()=>this._changeDetectorRef.markForCheck());const H=this._runAfterChangeDetection;this._runAfterChangeDetection=[];for(const ce of H)ce()}_calculateSpacerSize(){this._totalContentHeight="horizontal"===this.orientation?"":`${this._totalContentSize}px`,this._totalContentWidth="horizontal"===this.orientation?`${this._totalContentSize}px`:""}}return ve.\u0275fac=function(H){return new(H||ve)(s.Y36(s.SBq),s.Y36(s.sBO),s.Y36(s.R0b),s.Y36(It,8),s.Y36(Ge.Is,8),s.Y36(bn),s.Y36(Ae))},ve.\u0275cmp=s.Xpm({type:ve,selectors:[["cdk-virtual-scroll-viewport"]],viewQuery:function(H,ce){if(1&H&&s.Gf(en,7),2&H){let Je;s.iGM(Je=s.CRH())&&(ce._contentWrapper=Je.first)}},hostAttrs:[1,"cdk-virtual-scroll-viewport"],hostVars:4,hostBindings:function(H,ce){2&H&&s.ekj("cdk-virtual-scroll-orientation-horizontal","horizontal"===ce.orientation)("cdk-virtual-scroll-orientation-vertical","horizontal"!==ce.orientation)},inputs:{orientation:"orientation",appendOnly:"appendOnly"},outputs:{scrolledIndexChange:"scrolledIndexChange"},features:[s._Bn([{provide:pt,useExisting:ve}]),s.qOj],ngContentSelectors:wn,decls:4,vars:4,consts:[[1,"cdk-virtual-scroll-content-wrapper"],["contentWrapper",""],[1,"cdk-virtual-scroll-spacer"]],template:function(H,ce){1&H&&(s.F$t(),s.TgZ(0,"div",0,1),s.Hsn(2),s.qZA(),s._UZ(3,"div",2)),2&H&&(s.xp6(3),s.Udp("width",ce._totalContentWidth)("height",ce._totalContentHeight))},styles:["cdk-virtual-scroll-viewport{display:block;position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0}[dir=rtl] .cdk-virtual-scroll-spacer{right:0;left:auto;transform-origin:100% 0}\n"],encapsulation:2,changeDetection:0}),ve})();function ne(ve,Ce,H){if(!H.getBoundingClientRect)return 0;const Je=H.getBoundingClientRect();return"horizontal"===ve?"start"===Ce?Je.left:Je.right:"start"===Ce?Je.top:Je.bottom}let N=(()=>{class ve{constructor(H,ce,Je,ge,it,X){this._viewContainerRef=H,this._template=ce,this._differs=Je,this._viewRepeater=ge,this._viewport=it,this.viewChange=new We.xQ,this._dataSourceChanges=new We.xQ,this.dataStream=this._dataSourceChanges.pipe((0,Ue.O)(null),ve=>ve.lift(new se),(0,Ne.w)(([Q,at])=>this._changeDataSource(Q,at)),(0,Ie.d)(1)),this._differ=null,this._needsUpdate=!1,this._destroyed=new We.xQ,this.dataStream.subscribe(Q=>{this._data=Q,this._onRenderedDataChange()}),this._viewport.renderedRangeStream.pipe((0,pe.R)(this._destroyed)).subscribe(Q=>{this._renderedRange=Q,X.run(()=>this.viewChange.next(this._renderedRange)),this._onRenderedDataChange()}),this._viewport.attach(this)}get cdkVirtualForOf(){return this._cdkVirtualForOf}set cdkVirtualForOf(H){this._cdkVirtualForOf=H,function(ve){return ve&&"function"==typeof ve.connect}(H)?this._dataSourceChanges.next(H):this._dataSourceChanges.next(new Tt(Ft(H)?H:Array.from(H||[])))}get cdkVirtualForTrackBy(){return this._cdkVirtualForTrackBy}set cdkVirtualForTrackBy(H){this._needsUpdate=!0,this._cdkVirtualForTrackBy=H?(ce,Je)=>H(ce+(this._renderedRange?this._renderedRange.start:0),Je):void 0}set cdkVirtualForTemplate(H){H&&(this._needsUpdate=!0,this._template=H)}get cdkVirtualForTemplateCacheSize(){return this._viewRepeater.viewCacheSize}set cdkVirtualForTemplateCacheSize(H){this._viewRepeater.viewCacheSize=(0,c.su)(H)}measureRangeSize(H,ce){if(H.start>=H.end)return 0;const Je=H.start-this._renderedRange.start,ge=H.end-H.start;let it,X;for(let Q=0;Q<ge;Q++){const at=this._viewContainerRef.get(Q+Je);if(at&&at.rootNodes.length){it=X=at.rootNodes[0];break}}for(let Q=ge-1;Q>-1;Q--){const at=this._viewContainerRef.get(Q+Je);if(at&&at.rootNodes.length){X=at.rootNodes[at.rootNodes.length-1];break}}return it&&X?ne(ce,"end",X)-ne(ce,"start",it):0}ngDoCheck(){if(this._differ&&this._needsUpdate){const H=this._differ.diff(this._renderedItems);H?this._applyChanges(H):this._updateContext(),this._needsUpdate=!1}}ngOnDestroy(){this._viewport.detach(),this._dataSourceChanges.next(void 0),this._dataSourceChanges.complete(),this.viewChange.complete(),this._destroyed.next(),this._destroyed.complete(),this._viewRepeater.detach()}_onRenderedDataChange(){!this._renderedRange||(this._renderedItems=this._data.slice(this._renderedRange.start,this._renderedRange.end),this._differ||(this._differ=this._differs.find(this._renderedItems).create((H,ce)=>this.cdkVirtualForTrackBy?this.cdkVirtualForTrackBy(H,ce):ce)),this._needsUpdate=!0)}_changeDataSource(H,ce){return H&&H.disconnect(this),this._needsUpdate=!0,ce?ce.connect(this):(0,Re.of)()}_updateContext(){const H=this._data.length;let ce=this._viewContainerRef.length;for(;ce--;){const Je=this._viewContainerRef.get(ce);Je.context.index=this._renderedRange.start+ce,Je.context.count=H,this._updateComputedContextProperties(Je.context),Je.detectChanges()}}_applyChanges(H){this._viewRepeater.applyChanges(H,this._viewContainerRef,(ge,it,X)=>this._getEmbeddedViewArgs(ge,X),ge=>ge.item),H.forEachIdentityChange(ge=>{this._viewContainerRef.get(ge.currentIndex).context.$implicit=ge.item});const ce=this._data.length;let Je=this._viewContainerRef.length;for(;Je--;){const ge=this._viewContainerRef.get(Je);ge.context.index=this._renderedRange.start+Je,ge.context.count=ce,this._updateComputedContextProperties(ge.context)}}_updateComputedContextProperties(H){H.first=0===H.index,H.last=H.index===H.count-1,H.even=H.index%2==0,H.odd=!H.even}_getEmbeddedViewArgs(H,ce){return{templateRef:this._template,context:{$implicit:H.item,cdkVirtualForOf:this._cdkVirtualForOf,index:-1,count:-1,first:!1,last:!1,odd:!1,even:!1},index:ce}}}return ve.\u0275fac=function(H){return new(H||ve)(s.Y36(s.s_b),s.Y36(s.Rgc),s.Y36(s.ZZ4),s.Y36(un),s.Y36(I,4),s.Y36(s.R0b))},ve.\u0275dir=s.lG2({type:ve,selectors:[["","cdkVirtualFor","","cdkVirtualForOf",""]],inputs:{cdkVirtualForOf:"cdkVirtualForOf",cdkVirtualForTrackBy:"cdkVirtualForTrackBy",cdkVirtualForTemplate:"cdkVirtualForTemplate",cdkVirtualForTemplateCacheSize:"cdkVirtualForTemplateCacheSize"},features:[s._Bn([{provide:un,useClass:St}])]}),ve})(),G=(()=>{class ve{}return ve.\u0275fac=function(H){return new(H||ve)},ve.\u0275mod=s.oAB({type:ve}),ve.\u0275inj=s.cJS({}),ve})(),_e=(()=>{class ve{}return ve.\u0275fac=function(H){return new(H||ve)},ve.\u0275mod=s.oAB({type:ve}),ve.\u0275inj=s.cJS({imports:[[Ge.vT,he.ud,G],Ge.vT,G]}),ve})()},9490:(yt,De,m)=>{"use strict";m.d(De,{t6:()=>le,Eq:()=>W,Ig:()=>s,HM:()=>x,fI:()=>S,su:()=>z});var c=m(7716);function s(U){return null!=U&&"false"!=`${U}`}function z(U,F=0){return le(U)?Number(U):F}function le(U){return!isNaN(parseFloat(U))&&!isNaN(Number(U))}function W(U){return Array.isArray(U)?U:[U]}function x(U){return null==U?"":"string"==typeof U?U:`${U}px`}function S(U){return U instanceof c.SBq?U.nativeElement:U}},8583:(yt,De,m)=>{"use strict";m.d(De,{mr:()=>tt,Ov:()=>lo,ez:()=>tr,K0:()=>S,uU:()=>Ao,JJ:()=>$i,Do:()=>We,V_:()=>F,Ye:()=>Re,S$:()=>nt,mk:()=>Rt,sg:()=>k,O5:()=>Ye,PC:()=>bi,RF:()=>Kt,n9:()=>yn,ED:()=>ni,tP:()=>Ti,b0:()=>Ft,lw:()=>B,EM:()=>T,JF:()=>Lt,NF:()=>Wr,qS:()=>qe,w_:()=>x,bD:()=>Bi,q:()=>z,Mx:()=>gt,HT:()=>W});var c=m(7716);let s=null;function z(){return s}function W(b){s||(s=b)}class x{}const S=new c.OlP("DocumentToken");let B=(()=>{class b{historyGo(D){throw new Error("Not implemented")}}return b.\u0275fac=function(D){return new(D||b)},b.\u0275prov=(0,c.Yz7)({factory:U,token:b,providedIn:"platform"}),b})();function U(){return(0,c.LFG)(Y)}const F=new c.OlP("Location Initialized");let Y=(()=>{class b extends B{constructor(D){super(),this._doc=D,this._init()}_init(){this.location=window.location,this._history=window.history}getBaseHrefFromDOM(){return z().getBaseHref(this._doc)}onPopState(D){const J=z().getGlobalEventTarget(this._doc,"window");return J.addEventListener("popstate",D,!1),()=>J.removeEventListener("popstate",D)}onHashChange(D){const J=z().getGlobalEventTarget(this._doc,"window");return J.addEventListener("hashchange",D,!1),()=>J.removeEventListener("hashchange",D)}get href(){return this.location.href}get protocol(){return this.location.protocol}get hostname(){return this.location.hostname}get port(){return this.location.port}get pathname(){return this.location.pathname}get search(){return this.location.search}get hash(){return this.location.hash}set pathname(D){this.location.pathname=D}pushState(D,J,Me){V()?this._history.pushState(D,J,Me):this.location.hash=Me}replaceState(D,J,Me){V()?this._history.replaceState(D,J,Me):this.location.hash=Me}forward(){this._history.forward()}back(){this._history.back()}historyGo(D=0){this._history.go(D)}getState(){return this._history.state}}return b.\u0275fac=function(D){return new(D||b)(c.LFG(S))},b.\u0275prov=(0,c.Yz7)({factory:be,token:b,providedIn:"platform"}),b})();function V(){return!!window.history.pushState}function be(){return new Y((0,c.LFG)(S))}function je(b,j){if(0==b.length)return j;if(0==j.length)return b;let D=0;return b.endsWith("/")&&D++,j.startsWith("/")&&D++,2==D?b+j.substring(1):1==D?b+j:b+"/"+j}function Ke(b){const j=b.match(/#|\?|$/),D=j&&j.index||b.length;return b.slice(0,D-("/"===b[D-1]?1:0))+b.slice(D)}function $e(b){return b&&"?"!==b[0]?"?"+b:b}let nt=(()=>{class b{historyGo(D){throw new Error("Not implemented")}}return b.\u0275fac=function(D){return new(D||b)},b.\u0275prov=(0,c.Yz7)({factory:ut,token:b,providedIn:"root"}),b})();function ut(b){const j=(0,c.LFG)(S).location;return new Ft((0,c.LFG)(B),j&&j.origin||"")}const tt=new c.OlP("appBaseHref");let Ft=(()=>{class b extends nt{constructor(D,J){if(super(),this._platformLocation=D,this._removeListenerFns=[],null==J&&(J=this._platformLocation.getBaseHrefFromDOM()),null==J)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");this._baseHref=J}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(D){this._removeListenerFns.push(this._platformLocation.onPopState(D),this._platformLocation.onHashChange(D))}getBaseHref(){return this._baseHref}prepareExternalUrl(D){return je(this._baseHref,D)}path(D=!1){const J=this._platformLocation.pathname+$e(this._platformLocation.search),Me=this._platformLocation.hash;return Me&&D?`${J}${Me}`:J}pushState(D,J,Me,mt){const bt=this.prepareExternalUrl(Me+$e(mt));this._platformLocation.pushState(D,J,bt)}replaceState(D,J,Me,mt){const bt=this.prepareExternalUrl(Me+$e(mt));this._platformLocation.replaceState(D,J,bt)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}historyGo(D=0){var J,Me;null===(Me=(J=this._platformLocation).historyGo)||void 0===Me||Me.call(J,D)}}return b.\u0275fac=function(D){return new(D||b)(c.LFG(B),c.LFG(tt,8))},b.\u0275prov=c.Yz7({token:b,factory:b.\u0275fac}),b})(),We=(()=>{class b extends nt{constructor(D,J){super(),this._platformLocation=D,this._baseHref="",this._removeListenerFns=[],null!=J&&(this._baseHref=J)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(D){this._removeListenerFns.push(this._platformLocation.onPopState(D),this._platformLocation.onHashChange(D))}getBaseHref(){return this._baseHref}path(D=!1){let J=this._platformLocation.hash;return null==J&&(J="#"),J.length>0?J.substring(1):J}prepareExternalUrl(D){const J=je(this._baseHref,D);return J.length>0?"#"+J:J}pushState(D,J,Me,mt){let bt=this.prepareExternalUrl(Me+$e(mt));0==bt.length&&(bt=this._platformLocation.pathname),this._platformLocation.pushState(D,J,bt)}replaceState(D,J,Me,mt){let bt=this.prepareExternalUrl(Me+$e(mt));0==bt.length&&(bt=this._platformLocation.pathname),this._platformLocation.replaceState(D,J,bt)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}historyGo(D=0){var J,Me;null===(Me=(J=this._platformLocation).historyGo)||void 0===Me||Me.call(J,D)}}return b.\u0275fac=function(D){return new(D||b)(c.LFG(B),c.LFG(tt,8))},b.\u0275prov=c.Yz7({token:b,factory:b.\u0275fac}),b})(),Re=(()=>{class b{constructor(D,J){this._subject=new c.vpe,this._urlChangeListeners=[],this._platformStrategy=D;const Me=this._platformStrategy.getBaseHref();this._platformLocation=J,this._baseHref=Ke(st(Me)),this._platformStrategy.onPopState(mt=>{this._subject.emit({url:this.path(!0),pop:!0,state:mt.state,type:mt.type})})}path(D=!1){return this.normalize(this._platformStrategy.path(D))}getState(){return this._platformLocation.getState()}isCurrentPathEqualTo(D,J=""){return this.path()==this.normalize(D+$e(J))}normalize(D){return b.stripTrailingSlash(function(b,j){return b&&j.startsWith(b)?j.substring(b.length):j}(this._baseHref,st(D)))}prepareExternalUrl(D){return D&&"/"!==D[0]&&(D="/"+D),this._platformStrategy.prepareExternalUrl(D)}go(D,J="",Me=null){this._platformStrategy.pushState(Me,"",D,J),this._notifyUrlChangeListeners(this.prepareExternalUrl(D+$e(J)),Me)}replaceState(D,J="",Me=null){this._platformStrategy.replaceState(Me,"",D,J),this._notifyUrlChangeListeners(this.prepareExternalUrl(D+$e(J)),Me)}forward(){this._platformStrategy.forward()}back(){this._platformStrategy.back()}historyGo(D=0){var J,Me;null===(Me=(J=this._platformStrategy).historyGo)||void 0===Me||Me.call(J,D)}onUrlChange(D){this._urlChangeListeners.push(D),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(J=>{this._notifyUrlChangeListeners(J.url,J.state)}))}_notifyUrlChangeListeners(D="",J){this._urlChangeListeners.forEach(Me=>Me(D,J))}subscribe(D,J,Me){return this._subject.subscribe({next:D,error:J,complete:Me})}}return b.\u0275fac=function(D){return new(D||b)(c.LFG(nt),c.LFG(B))},b.normalizeQueryParams=$e,b.joinWithSlash=je,b.stripTrailingSlash=Ke,b.\u0275prov=(0,c.Yz7)({factory:Ze,token:b,providedIn:"root"}),b})();function Ze(){return new Re((0,c.LFG)(nt),(0,c.LFG)(B))}function st(b){return b.replace(/\/index.html$/,"")}var se=(()=>((se=se||{})[se.Decimal=0]="Decimal",se[se.Percent=1]="Percent",se[se.Currency=2]="Currency",se[se.Scientific=3]="Scientific",se))(),Se=(()=>((Se=Se||{})[Se.Zero=0]="Zero",Se[Se.One=1]="One",Se[Se.Two=2]="Two",Se[Se.Few=3]="Few",Se[Se.Many=4]="Many",Se[Se.Other=5]="Other",Se))(),oe=(()=>((oe=oe||{})[oe.Format=0]="Format",oe[oe.Standalone=1]="Standalone",oe))(),fe=(()=>((fe=fe||{})[fe.Narrow=0]="Narrow",fe[fe.Abbreviated=1]="Abbreviated",fe[fe.Wide=2]="Wide",fe[fe.Short=3]="Short",fe))(),Oe=(()=>((Oe=Oe||{})[Oe.Short=0]="Short",Oe[Oe.Medium=1]="Medium",Oe[Oe.Long=2]="Long",Oe[Oe.Full=3]="Full",Oe))(),pe=(()=>((pe=pe||{})[pe.Decimal=0]="Decimal",pe[pe.Group=1]="Group",pe[pe.List=2]="List",pe[pe.PercentSign=3]="PercentSign",pe[pe.PlusSign=4]="PlusSign",pe[pe.MinusSign=5]="MinusSign",pe[pe.Exponential=6]="Exponential",pe[pe.SuperscriptingExponent=7]="SuperscriptingExponent",pe[pe.PerMille=8]="PerMille",pe[pe.Infinity=9]="Infinity",pe[pe.NaN=10]="NaN",pe[pe.TimeSeparator=11]="TimeSeparator",pe[pe.CurrencyDecimal=12]="CurrencyDecimal",pe[pe.CurrencyGroup=13]="CurrencyGroup",pe))();function Tt(b,j){return bn((0,c.cg1)(b)[c.wAp.DateFormat],j)}function rt(b,j){return bn((0,c.cg1)(b)[c.wAp.TimeFormat],j)}function St(b,j){return bn((0,c.cg1)(b)[c.wAp.DateTimeFormat],j)}function lt(b,j){const D=(0,c.cg1)(b),J=D[c.wAp.NumberSymbols][j];if(void 0===J){if(j===pe.CurrencyDecimal)return D[c.wAp.NumberSymbols][pe.Decimal];if(j===pe.CurrencyGroup)return D[c.wAp.NumberSymbols][pe.Group]}return J}const It=c.kL8;function tn(b){if(!b[c.wAp.ExtraData])throw new Error(`Missing extra locale data for the locale "${b[c.wAp.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function bn(b,j){for(let D=j;D>-1;D--)if(void 0!==b[D])return b[D];throw new Error("Locale data API: locale data undefined")}function pt(b){const[j,D]=b.split(":");return{hours:+j,minutes:+D}}const ae=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,I={},ne=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;var N=(()=>((N=N||{})[N.Short=0]="Short",N[N.ShortGMT=1]="ShortGMT",N[N.Long=2]="Long",N[N.Extended=3]="Extended",N))(),G=(()=>((G=G||{})[G.FullYear=0]="FullYear",G[G.Month=1]="Month",G[G.Date=2]="Date",G[G.Hours=3]="Hours",G[G.Minutes=4]="Minutes",G[G.Seconds=5]="Seconds",G[G.FractionalSeconds=6]="FractionalSeconds",G[G.Day=7]="Day",G))(),_e=(()=>((_e=_e||{})[_e.DayPeriods=0]="DayPeriods",_e[_e.Days=1]="Days",_e[_e.Months=2]="Months",_e[_e.Eras=3]="Eras",_e))();function ve(b,j,D,J){let Me=function(b){if(Jn(b))return b;if("number"==typeof b&&!isNaN(b))return new Date(b);if("string"==typeof b){if(b=b.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(b)){const[Me,mt=1,bt=1]=b.split("-").map(Wt=>+Wt);return Ce(Me,mt-1,bt)}const D=parseFloat(b);if(!isNaN(b-D))return new Date(D);let J;if(J=b.match(ae))return function(b){const j=new Date(0);let D=0,J=0;const Me=b[8]?j.setUTCFullYear:j.setFullYear,mt=b[8]?j.setUTCHours:j.setHours;b[9]&&(D=Number(b[9]+b[10]),J=Number(b[9]+b[11])),Me.call(j,Number(b[1]),Number(b[2])-1,Number(b[3]));const bt=Number(b[4]||0)-D,Wt=Number(b[5]||0)-J,mn=Number(b[6]||0),Yn=Math.floor(1e3*parseFloat("0."+(b[7]||0)));return mt.call(j,bt,Wt,mn,Yn),j}(J)}const j=new Date(b);if(!Jn(j))throw new Error(`Unable to convert "${b}" into a date`);return j}(b);j=H(D,j)||j;let Wt,bt=[];for(;j;){if(Wt=ne.exec(j),!Wt){bt.push(j);break}{bt=bt.concat(Wt.slice(1));const Un=bt.pop();if(!Un)break;j=Un}}let mn=Me.getTimezoneOffset();J&&(mn=Sn(J,mn),Me=function(b,j,D){const Me=b.getTimezoneOffset();return function(b,j){return(b=new Date(b.getTime())).setMinutes(b.getMinutes()+j),b}(b,-1*(Sn(j,Me)-Me))}(Me,J));let Yn="";return bt.forEach(Un=>{const gn=function(b){if(Jt[b])return Jt[b];let j;switch(b){case"G":case"GG":case"GGG":j=Q(_e.Eras,fe.Abbreviated);break;case"GGGG":j=Q(_e.Eras,fe.Wide);break;case"GGGGG":j=Q(_e.Eras,fe.Narrow);break;case"y":j=it(G.FullYear,1,0,!1,!0);break;case"yy":j=it(G.FullYear,2,0,!0,!0);break;case"yyy":j=it(G.FullYear,3,0,!1,!0);break;case"yyyy":j=it(G.FullYear,4,0,!1,!0);break;case"Y":j=xt(1);break;case"YY":j=xt(2,!0);break;case"YYY":j=xt(3);break;case"YYYY":j=xt(4);break;case"M":case"L":j=it(G.Month,1,1);break;case"MM":case"LL":j=it(G.Month,2,1);break;case"MMM":j=Q(_e.Months,fe.Abbreviated);break;case"MMMM":j=Q(_e.Months,fe.Wide);break;case"MMMMM":j=Q(_e.Months,fe.Narrow);break;case"LLL":j=Q(_e.Months,fe.Abbreviated,oe.Standalone);break;case"LLLL":j=Q(_e.Months,fe.Wide,oe.Standalone);break;case"LLLLL":j=Q(_e.Months,fe.Narrow,oe.Standalone);break;case"w":j=ct(1);break;case"ww":j=ct(2);break;case"W":j=ct(1,!0);break;case"d":j=it(G.Date,1);break;case"dd":j=it(G.Date,2);break;case"c":case"cc":j=it(G.Day,1);break;case"ccc":j=Q(_e.Days,fe.Abbreviated,oe.Standalone);break;case"cccc":j=Q(_e.Days,fe.Wide,oe.Standalone);break;case"ccccc":j=Q(_e.Days,fe.Narrow,oe.Standalone);break;case"cccccc":j=Q(_e.Days,fe.Short,oe.Standalone);break;case"E":case"EE":case"EEE":j=Q(_e.Days,fe.Abbreviated);break;case"EEEE":j=Q(_e.Days,fe.Wide);break;case"EEEEE":j=Q(_e.Days,fe.Narrow);break;case"EEEEEE":j=Q(_e.Days,fe.Short);break;case"a":case"aa":case"aaa":j=Q(_e.DayPeriods,fe.Abbreviated);break;case"aaaa":j=Q(_e.DayPeriods,fe.Wide);break;case"aaaaa":j=Q(_e.DayPeriods,fe.Narrow);break;case"b":case"bb":case"bbb":j=Q(_e.DayPeriods,fe.Abbreviated,oe.Standalone,!0);break;case"bbbb":j=Q(_e.DayPeriods,fe.Wide,oe.Standalone,!0);break;case"bbbbb":j=Q(_e.DayPeriods,fe.Narrow,oe.Standalone,!0);break;case"B":case"BB":case"BBB":j=Q(_e.DayPeriods,fe.Abbreviated,oe.Format,!0);break;case"BBBB":j=Q(_e.DayPeriods,fe.Wide,oe.Format,!0);break;case"BBBBB":j=Q(_e.DayPeriods,fe.Narrow,oe.Format,!0);break;case"h":j=it(G.Hours,1,-12);break;case"hh":j=it(G.Hours,2,-12);break;case"H":j=it(G.Hours,1);break;case"HH":j=it(G.Hours,2);break;case"m":j=it(G.Minutes,1);break;case"mm":j=it(G.Minutes,2);break;case"s":j=it(G.Seconds,1);break;case"ss":j=it(G.Seconds,2);break;case"S":j=it(G.FractionalSeconds,1);break;case"SS":j=it(G.FractionalSeconds,2);break;case"SSS":j=it(G.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":j=wt(N.Short);break;case"ZZZZZ":j=wt(N.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":j=wt(N.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":j=wt(N.Long);break;default:return null}return Jt[b]=j,j}(Un);Yn+=gn?gn(Me,D,mn):"''"===Un?"'":Un.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),Yn}function Ce(b,j,D){const J=new Date(0);return J.setFullYear(b,j,D),J.setHours(0,0,0),J}function H(b,j){const D=function(b){return(0,c.cg1)(b)[c.wAp.LocaleId]}(b);if(I[D]=I[D]||{},I[D][j])return I[D][j];let J="";switch(j){case"shortDate":J=Tt(b,Oe.Short);break;case"mediumDate":J=Tt(b,Oe.Medium);break;case"longDate":J=Tt(b,Oe.Long);break;case"fullDate":J=Tt(b,Oe.Full);break;case"shortTime":J=rt(b,Oe.Short);break;case"mediumTime":J=rt(b,Oe.Medium);break;case"longTime":J=rt(b,Oe.Long);break;case"fullTime":J=rt(b,Oe.Full);break;case"short":const Me=H(b,"shortTime"),mt=H(b,"shortDate");J=ce(St(b,Oe.Short),[Me,mt]);break;case"medium":const bt=H(b,"mediumTime"),Wt=H(b,"mediumDate");J=ce(St(b,Oe.Medium),[bt,Wt]);break;case"long":const mn=H(b,"longTime"),Yn=H(b,"longDate");J=ce(St(b,Oe.Long),[mn,Yn]);break;case"full":const Un=H(b,"fullTime"),gn=H(b,"fullDate");J=ce(St(b,Oe.Full),[Un,gn])}return J&&(I[D][j]=J),J}function ce(b,j){return j&&(b=b.replace(/\{([^}]+)}/g,function(D,J){return null!=j&&J in j?j[J]:D})),b}function Je(b,j,D="-",J,Me){let mt="";(b<0||Me&&b<=0)&&(Me?b=1-b:(b=-b,mt=D));let bt=String(b);for(;bt.length<j;)bt="0"+bt;return J&&(bt=bt.substr(bt.length-j)),mt+bt}function it(b,j,D=0,J=!1,Me=!1){return function(mt,bt){let Wt=function(b,j){switch(b){case G.FullYear:return j.getFullYear();case G.Month:return j.getMonth();case G.Date:return j.getDate();case G.Hours:return j.getHours();case G.Minutes:return j.getMinutes();case G.Seconds:return j.getSeconds();case G.FractionalSeconds:return j.getMilliseconds();case G.Day:return j.getDay();default:throw new Error(`Unknown DateType value "${b}".`)}}(b,mt);if((D>0||Wt>-D)&&(Wt+=D),b===G.Hours)0===Wt&&-12===D&&(Wt=12);else if(b===G.FractionalSeconds)return function(b,j){return Je(b,3).substr(0,j)}(Wt,j);const mn=lt(bt,pe.MinusSign);return Je(Wt,j,mn,J,Me)}}function Q(b,j,D=oe.Format,J=!1){return function(Me,mt){return function(b,j,D,J,Me,mt){switch(D){case _e.Months:return function(b,j,D){const J=(0,c.cg1)(b),mt=bn([J[c.wAp.MonthsFormat],J[c.wAp.MonthsStandalone]],j);return bn(mt,D)}(j,Me,J)[b.getMonth()];case _e.Days:return function(b,j,D){const J=(0,c.cg1)(b),mt=bn([J[c.wAp.DaysFormat],J[c.wAp.DaysStandalone]],j);return bn(mt,D)}(j,Me,J)[b.getDay()];case _e.DayPeriods:const bt=b.getHours(),Wt=b.getMinutes();if(mt){const Yn=function(b){const j=(0,c.cg1)(b);return tn(j),(j[c.wAp.ExtraData][2]||[]).map(J=>"string"==typeof J?pt(J):[pt(J[0]),pt(J[1])])}(j),Un=function(b,j,D){const J=(0,c.cg1)(b);tn(J);const mt=bn([J[c.wAp.ExtraData][0],J[c.wAp.ExtraData][1]],j)||[];return bn(mt,D)||[]}(j,Me,J),gn=Yn.findIndex(Ln=>{if(Array.isArray(Ln)){const[Gn,ui]=Ln,Ir=bt>=Gn.hours&&Wt>=Gn.minutes,yi=bt<ui.hours||bt===ui.hours&&Wt<ui.minutes;if(Gn.hours<ui.hours){if(Ir&&yi)return!0}else if(Ir||yi)return!0}else if(Ln.hours===bt&&Ln.minutes===Wt)return!0;return!1});if(-1!==gn)return Un[gn]}return function(b,j,D){const J=(0,c.cg1)(b),mt=bn([J[c.wAp.DayPeriodsFormat],J[c.wAp.DayPeriodsStandalone]],j);return bn(mt,D)}(j,Me,J)[bt<12?0:1];case _e.Eras:return function(b,j){return bn((0,c.cg1)(b)[c.wAp.Eras],j)}(j,J)[b.getFullYear()<=0?0:1];default:throw new Error(`unexpected translation type ${D}`)}}(Me,mt,b,j,D,J)}}function wt(b){return function(j,D,J){const Me=-1*J,mt=lt(D,pe.MinusSign),bt=Me>0?Math.floor(Me/60):Math.ceil(Me/60);switch(b){case N.Short:return(Me>=0?"+":"")+Je(bt,2,mt)+Je(Math.abs(Me%60),2,mt);case N.ShortGMT:return"GMT"+(Me>=0?"+":"")+Je(bt,1,mt);case N.Long:return"GMT"+(Me>=0?"+":"")+Je(bt,2,mt)+":"+Je(Math.abs(Me%60),2,mt);case N.Extended:return 0===J?"Z":(Me>=0?"+":"")+Je(bt,2,mt)+":"+Je(Math.abs(Me%60),2,mt);default:throw new Error(`Unknown zone width "${b}"`)}}}function Le(b){return Ce(b.getFullYear(),b.getMonth(),b.getDate()+(4-b.getDay()))}function ct(b,j=!1){return function(D,J){let Me;if(j){const mt=new Date(D.getFullYear(),D.getMonth(),1).getDay()-1,bt=D.getDate();Me=1+Math.floor((bt+mt)/7)}else{const mt=Le(D),bt=function(b){const j=Ce(b,0,1).getDay();return Ce(b,0,1+(j<=4?4:11)-j)}(mt.getFullYear()),Wt=mt.getTime()-bt.getTime();Me=1+Math.round(Wt/6048e5)}return Je(Me,b,lt(J,pe.MinusSign))}}function xt(b,j=!1){return function(D,J){return Je(Le(D).getFullYear(),b,lt(J,pe.MinusSign),j)}}const Jt={};function Sn(b,j){b=b.replace(/:/g,"");const D=Date.parse("Jan 01, 1970 00:00:00 "+b)/6e4;return isNaN(D)?j:D}function Jn(b){return b instanceof Date&&!isNaN(b.valueOf())}const Wn=/^(\d+)?\.((\d+)(-(\d+))?)?$/;function $t(b){const j=parseInt(b);if(isNaN(j))throw new Error("Invalid integer literal when parsing "+b);return j}class Qe{}let ue=(()=>{class b extends Qe{constructor(D){super(),this.locale=D}getPluralCategory(D,J){switch(It(J||this.locale)(D)){case Se.Zero:return"zero";case Se.One:return"one";case Se.Two:return"two";case Se.Few:return"few";case Se.Many:return"many";default:return"other"}}}return b.\u0275fac=function(D){return new(D||b)(c.LFG(c.soG))},b.\u0275prov=c.Yz7({token:b,factory:b.\u0275fac}),b})();function qe(b,j,D){return(0,c.dwT)(b,j,D)}function gt(b,j){j=encodeURIComponent(j);for(const D of b.split(";")){const J=D.indexOf("="),[Me,mt]=-1==J?[D,""]:[D.slice(0,J),D.slice(J+1)];if(Me.trim()===j)return decodeURIComponent(mt)}return null}let Rt=(()=>{class b{constructor(D,J,Me,mt){this._iterableDiffers=D,this._keyValueDiffers=J,this._ngEl=Me,this._renderer=mt,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(D){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof D?D.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(D){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof D?D.split(/\s+/):D,this._rawClass&&((0,c.sIi)(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const D=this._iterableDiffer.diff(this._rawClass);D&&this._applyIterableChanges(D)}else if(this._keyValueDiffer){const D=this._keyValueDiffer.diff(this._rawClass);D&&this._applyKeyValueChanges(D)}}_applyKeyValueChanges(D){D.forEachAddedItem(J=>this._toggleClass(J.key,J.currentValue)),D.forEachChangedItem(J=>this._toggleClass(J.key,J.currentValue)),D.forEachRemovedItem(J=>{J.previousValue&&this._toggleClass(J.key,!1)})}_applyIterableChanges(D){D.forEachAddedItem(J=>{if("string"!=typeof J.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${(0,c.AaK)(J.item)}`);this._toggleClass(J.item,!0)}),D.forEachRemovedItem(J=>this._toggleClass(J.item,!1))}_applyClasses(D){D&&(Array.isArray(D)||D instanceof Set?D.forEach(J=>this._toggleClass(J,!0)):Object.keys(D).forEach(J=>this._toggleClass(J,!!D[J])))}_removeClasses(D){D&&(Array.isArray(D)||D instanceof Set?D.forEach(J=>this._toggleClass(J,!1)):Object.keys(D).forEach(J=>this._toggleClass(J,!1)))}_toggleClass(D,J){(D=D.trim())&&D.split(/\s+/g).forEach(Me=>{J?this._renderer.addClass(this._ngEl.nativeElement,Me):this._renderer.removeClass(this._ngEl.nativeElement,Me)})}}return b.\u0275fac=function(D){return new(D||b)(c.Y36(c.ZZ4),c.Y36(c.aQg),c.Y36(c.SBq),c.Y36(c.Qsj))},b.\u0275dir=c.lG2({type:b,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"}}),b})();class M{constructor(j,D,J,Me){this.$implicit=j,this.ngForOf=D,this.index=J,this.count=Me}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let k=(()=>{class b{constructor(D,J,Me){this._viewContainer=D,this._template=J,this._differs=Me,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForOf(D){this._ngForOf=D,this._ngForOfDirty=!0}set ngForTrackBy(D){this._trackByFn=D}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(D){D&&(this._template=D)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const D=this._ngForOf;if(!this._differ&&D)try{this._differ=this._differs.find(D).create(this.ngForTrackBy)}catch(J){throw new Error(`Cannot find a differ supporting object '${D}' of type '${function(b){return b.name||typeof b}(D)}'. NgFor only supports binding to Iterables such as Arrays.`)}}if(this._differ){const D=this._differ.diff(this._ngForOf);D&&this._applyChanges(D)}}_applyChanges(D){const J=[];D.forEachOperation((Me,mt,bt)=>{if(null==Me.previousIndex){const Wt=this._viewContainer.createEmbeddedView(this._template,new M(null,this._ngForOf,-1,-1),null===bt?void 0:bt),mn=new _(Me,Wt);J.push(mn)}else if(null==bt)this._viewContainer.remove(null===mt?void 0:mt);else if(null!==mt){const Wt=this._viewContainer.get(mt);this._viewContainer.move(Wt,bt);const mn=new _(Me,Wt);J.push(mn)}});for(let Me=0;Me<J.length;Me++)this._perViewChange(J[Me].view,J[Me].record);for(let Me=0,mt=this._viewContainer.length;Me<mt;Me++){const bt=this._viewContainer.get(Me);bt.context.index=Me,bt.context.count=mt,bt.context.ngForOf=this._ngForOf}D.forEachIdentityChange(Me=>{this._viewContainer.get(Me.currentIndex).context.$implicit=Me.item})}_perViewChange(D,J){D.context.$implicit=J.item}static ngTemplateContextGuard(D,J){return!0}}return b.\u0275fac=function(D){return new(D||b)(c.Y36(c.s_b),c.Y36(c.Rgc),c.Y36(c.ZZ4))},b.\u0275dir=c.lG2({type:b,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}}),b})();class _{constructor(j,D){this.record=j,this.view=D}}let Ye=(()=>{class b{constructor(D,J){this._viewContainer=D,this._context=new ot,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=J}set ngIf(D){this._context.$implicit=this._context.ngIf=D,this._updateView()}set ngIfThen(D){zt("ngIfThen",D),this._thenTemplateRef=D,this._thenViewRef=null,this._updateView()}set ngIfElse(D){zt("ngIfElse",D),this._elseTemplateRef=D,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(D,J){return!0}}return b.\u0275fac=function(D){return new(D||b)(c.Y36(c.s_b),c.Y36(c.Rgc))},b.\u0275dir=c.lG2({type:b,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}}),b})();class ot{constructor(){this.$implicit=null,this.ngIf=null}}function zt(b,j){if(j&&!j.createEmbeddedView)throw new Error(`${b} must be a TemplateRef, but received '${(0,c.AaK)(j)}'.`)}class Vt{constructor(j,D){this._viewContainerRef=j,this._templateRef=D,this._created=!1}create(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)}destroy(){this._created=!1,this._viewContainerRef.clear()}enforceState(j){j&&!this._created?this.create():!j&&this._created&&this.destroy()}}let Kt=(()=>{class b{constructor(){this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(D){this._ngSwitch=D,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(D){this._defaultViews||(this._defaultViews=[]),this._defaultViews.push(D)}_matchCase(D){const J=D==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||J,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),J}_updateDefaultCases(D){if(this._defaultViews&&D!==this._defaultUsed){this._defaultUsed=D;for(let J=0;J<this._defaultViews.length;J++)this._defaultViews[J].enforceState(D)}}}return b.\u0275fac=function(D){return new(D||b)},b.\u0275dir=c.lG2({type:b,selectors:[["","ngSwitch",""]],inputs:{ngSwitch:"ngSwitch"}}),b})(),yn=(()=>{class b{constructor(D,J,Me){this.ngSwitch=Me,Me._addCase(),this._view=new Vt(D,J)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}}return b.\u0275fac=function(D){return new(D||b)(c.Y36(c.s_b),c.Y36(c.Rgc),c.Y36(Kt,9))},b.\u0275dir=c.lG2({type:b,selectors:[["","ngSwitchCase",""]],inputs:{ngSwitchCase:"ngSwitchCase"}}),b})(),ni=(()=>{class b{constructor(D,J,Me){Me._addDefault(new Vt(D,J))}}return b.\u0275fac=function(D){return new(D||b)(c.Y36(c.s_b),c.Y36(c.Rgc),c.Y36(Kt,9))},b.\u0275dir=c.lG2({type:b,selectors:[["","ngSwitchDefault",""]]}),b})(),bi=(()=>{class b{constructor(D,J,Me){this._ngEl=D,this._differs=J,this._renderer=Me,this._ngStyle=null,this._differ=null}set ngStyle(D){this._ngStyle=D,!this._differ&&D&&(this._differ=this._differs.find(D).create())}ngDoCheck(){if(this._differ){const D=this._differ.diff(this._ngStyle);D&&this._applyChanges(D)}}_setStyle(D,J){const[Me,mt]=D.split(".");null!=(J=null!=J&&mt?`${J}${mt}`:J)?this._renderer.setStyle(this._ngEl.nativeElement,Me,J):this._renderer.removeStyle(this._ngEl.nativeElement,Me)}_applyChanges(D){D.forEachRemovedItem(J=>this._setStyle(J.key,null)),D.forEachAddedItem(J=>this._setStyle(J.key,J.currentValue)),D.forEachChangedItem(J=>this._setStyle(J.key,J.currentValue))}}return b.\u0275fac=function(D){return new(D||b)(c.Y36(c.SBq),c.Y36(c.aQg),c.Y36(c.Qsj))},b.\u0275dir=c.lG2({type:b,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}}),b})(),Ti=(()=>{class b{constructor(D){this._viewContainerRef=D,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null}ngOnChanges(D){if(D.ngTemplateOutlet){const J=this._viewContainerRef;this._viewRef&&J.remove(J.indexOf(this._viewRef)),this._viewRef=this.ngTemplateOutlet?J.createEmbeddedView(this.ngTemplateOutlet,this.ngTemplateOutletContext):null}else this._viewRef&&D.ngTemplateOutletContext&&this.ngTemplateOutletContext&&(this._viewRef.context=this.ngTemplateOutletContext)}}return b.\u0275fac=function(D){return new(D||b)(c.Y36(c.s_b))},b.\u0275dir=c.lG2({type:b,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet"},features:[c.TTD]}),b})();function hi(b,j){return Error(`InvalidPipeArgument: '${j}' for pipe '${(0,c.AaK)(b)}'`)}class Ur{createSubscription(j,D){return j.subscribe({next:D,error:J=>{throw J}})}dispose(j){j.unsubscribe()}onDestroy(j){j.unsubscribe()}}class hr{createSubscription(j,D){return j.then(D,J=>{throw J})}dispose(j){}onDestroy(j){}}const Ji=new hr,dr=new Ur;let lo=(()=>{class b{constructor(D){this._ref=D,this._latestValue=null,this._subscription=null,this._obj=null,this._strategy=null}ngOnDestroy(){this._subscription&&this._dispose()}transform(D){return this._obj?D!==this._obj?(this._dispose(),this.transform(D)):this._latestValue:(D&&this._subscribe(D),this._latestValue)}_subscribe(D){this._obj=D,this._strategy=this._selectStrategy(D),this._subscription=this._strategy.createSubscription(D,J=>this._updateLatestValue(D,J))}_selectStrategy(D){if((0,c.QGY)(D))return Ji;if((0,c.F4k)(D))return dr;throw hi(b,D)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(D,J){D===this._obj&&(this._latestValue=J,this._ref.markForCheck())}}return b.\u0275fac=function(D){return new(D||b)(c.Y36(c.sBO,16))},b.\u0275pipe=c.Yjl({name:"async",type:b,pure:!1}),b})(),Ao=(()=>{class b{constructor(D){this.locale=D}transform(D,J="mediumDate",Me,mt){if(null==D||""===D||D!=D)return null;try{return ve(D,J,mt||this.locale,Me)}catch(bt){throw hi(b,bt.message)}}}return b.\u0275fac=function(D){return new(D||b)(c.Y36(c.soG,16))},b.\u0275pipe=c.Yjl({name:"date",type:b,pure:!0}),b})(),$i=(()=>{class b{constructor(D){this._locale=D}transform(D,J,Me){if(!function(b){return!(null==b||""===b||b!=b)}(D))return null;Me=Me||this._locale;try{return function(b,j,D){return function(b,j,D,J,Me,mt,bt=!1){let Wt="",mn=!1;if(isFinite(b)){let Yn=function(b){let J,Me,mt,bt,Wt,j=Math.abs(b)+"",D=0;for((Me=j.indexOf("."))>-1&&(j=j.replace(".","")),(mt=j.search(/e/i))>0?(Me<0&&(Me=mt),Me+=+j.slice(mt+1),j=j.substring(0,mt)):Me<0&&(Me=j.length),mt=0;"0"===j.charAt(mt);mt++);if(mt===(Wt=j.length))J=[0],Me=1;else{for(Wt--;"0"===j.charAt(Wt);)Wt--;for(Me-=mt,J=[],bt=0;mt<=Wt;mt++,bt++)J[bt]=Number(j.charAt(mt))}return Me>22&&(J=J.splice(0,21),D=Me-1,Me=1),{digits:J,exponent:D,integerLen:Me}}(b);bt&&(Yn=function(b){if(0===b.digits[0])return b;const j=b.digits.length-b.integerLen;return b.exponent?b.exponent+=2:(0===j?b.digits.push(0,0):1===j&&b.digits.push(0),b.integerLen+=2),b}(Yn));let Un=j.minInt,gn=j.minFrac,Ln=j.maxFrac;if(mt){const Li=mt.match(Wn);if(null===Li)throw new Error(`${mt} is not a valid digit info`);const sn=Li[1],Kr=Li[3],Fr=Li[5];null!=sn&&(Un=$t(sn)),null!=Kr&&(gn=$t(Kr)),null!=Fr?Ln=$t(Fr):null!=Kr&&gn>Ln&&(Ln=gn)}!function(b,j,D){if(j>D)throw new Error(`The minimum number of digits after fraction (${j}) is higher than the maximum (${D}).`);let J=b.digits,Me=J.length-b.integerLen;const mt=Math.min(Math.max(j,Me),D);let bt=mt+b.integerLen,Wt=J[bt];if(bt>0){J.splice(Math.max(b.integerLen,bt));for(let gn=bt;gn<J.length;gn++)J[gn]=0}else{Me=Math.max(0,Me),b.integerLen=1,J.length=Math.max(1,bt=mt+1),J[0]=0;for(let gn=1;gn<bt;gn++)J[gn]=0}if(Wt>=5)if(bt-1<0){for(let gn=0;gn>bt;gn--)J.unshift(0),b.integerLen++;J.unshift(1),b.integerLen++}else J[bt-1]++;for(;Me<Math.max(0,mt);Me++)J.push(0);let mn=0!==mt;const Yn=j+b.integerLen,Un=J.reduceRight(function(gn,Ln,Gn,ui){return ui[Gn]=(Ln+=gn)<10?Ln:Ln-10,mn&&(0===ui[Gn]&&Gn>=Yn?ui.pop():mn=!1),Ln>=10?1:0},0);Un&&(J.unshift(Un),b.integerLen++)}(Yn,gn,Ln);let Gn=Yn.digits,ui=Yn.integerLen;const Ir=Yn.exponent;let yi=[];for(mn=Gn.every(Li=>!Li);ui<Un;ui++)Gn.unshift(0);for(;ui<0;ui++)Gn.unshift(0);ui>0?yi=Gn.splice(ui,Gn.length):(yi=Gn,Gn=[0]);const ir=[];for(Gn.length>=j.lgSize&&ir.unshift(Gn.splice(-j.lgSize,Gn.length).join(""));Gn.length>j.gSize;)ir.unshift(Gn.splice(-j.gSize,Gn.length).join(""));Gn.length&&ir.unshift(Gn.join("")),Wt=ir.join(lt(D,J)),yi.length&&(Wt+=lt(D,Me)+yi.join("")),Ir&&(Wt+=lt(D,pe.Exponential)+"+"+Ir)}else Wt=lt(D,pe.Infinity);return Wt=b<0&&!mn?j.negPre+Wt+j.negSuf:j.posPre+Wt+j.posSuf,Wt}(b,function(b,j="-"){const D={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},J=b.split(";"),Me=J[0],mt=J[1],bt=-1!==Me.indexOf(".")?Me.split("."):[Me.substring(0,Me.lastIndexOf("0")+1),Me.substring(Me.lastIndexOf("0")+1)],Wt=bt[0],mn=bt[1]||"";D.posPre=Wt.substr(0,Wt.indexOf("#"));for(let Un=0;Un<mn.length;Un++){const gn=mn.charAt(Un);"0"===gn?D.minFrac=D.maxFrac=Un+1:"#"===gn?D.maxFrac=Un+1:D.posSuf+=gn}const Yn=Wt.split(",");if(D.gSize=Yn[1]?Yn[1].length:0,D.lgSize=Yn[2]||Yn[1]?(Yn[2]||Yn[1]).length:0,mt){const Un=Me.length-D.posPre.length-D.posSuf.length,gn=mt.indexOf("#");D.negPre=mt.substr(0,gn).replace(/'/g,""),D.negSuf=mt.substr(gn+Un).replace(/'/g,"")}else D.negPre=j+D.posPre,D.negSuf=D.posSuf;return D}(function(b,j){return(0,c.cg1)(b)[c.wAp.NumberFormats][j]}(j,se.Decimal),lt(j,pe.MinusSign)),j,pe.Group,pe.Decimal,D)}(function(b){if("string"==typeof b&&!isNaN(Number(b)-parseFloat(b)))return Number(b);if("number"!=typeof b)throw new Error(`${b} is not a number`);return b}(D),Me,J)}catch(mt){throw hi(b,mt.message)}}}return b.\u0275fac=function(D){return new(D||b)(c.Y36(c.soG,16))},b.\u0275pipe=c.Yjl({name:"number",type:b,pure:!0}),b})();let tr=(()=>{class b{}return b.\u0275fac=function(D){return new(D||b)},b.\u0275mod=c.oAB({type:b}),b.\u0275inj=c.cJS({providers:[{provide:Qe,useClass:ue}]}),b})();const Bi="browser";function Wr(b){return b===Bi}let T=(()=>{class b{}return b.\u0275prov=(0,c.Yz7)({token:b,providedIn:"root",factory:()=>new E((0,c.LFG)(S),window)}),b})();class E{constructor(j,D){this.document=j,this.window=D,this.offset=()=>[0,0]}setOffset(j){this.offset=Array.isArray(j)?()=>j:j}getScrollPosition(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}scrollToPosition(j){this.supportsScrolling()&&this.window.scrollTo(j[0],j[1])}scrollToAnchor(j){if(!this.supportsScrolling())return;const D=function(b,j){const D=b.getElementById(j)||b.getElementsByName(j)[0];if(D)return D;if("function"==typeof b.createTreeWalker&&b.body&&(b.body.createShadowRoot||b.body.attachShadow)){const J=b.createTreeWalker(b.body,NodeFilter.SHOW_ELEMENT);let Me=J.currentNode;for(;Me;){const mt=Me.shadowRoot;if(mt){const bt=mt.getElementById(j)||mt.querySelector(`[name="${j}"]`);if(bt)return bt}Me=J.nextNode()}}return null}(this.document,j);D&&(this.scrollToElement(D),this.attemptFocus(D))}setHistoryScrollRestoration(j){if(this.supportScrollRestoration()){const D=this.window.history;D&&D.scrollRestoration&&(D.scrollRestoration=j)}}scrollToElement(j){const D=j.getBoundingClientRect(),J=D.left+this.window.pageXOffset,Me=D.top+this.window.pageYOffset,mt=this.offset();this.window.scrollTo(J-mt[0],Me-mt[1])}attemptFocus(j){return j.focus(),this.document.activeElement===j}supportScrollRestoration(){try{if(!this.supportsScrolling())return!1;const j=v(this.window.history)||v(Object.getPrototypeOf(this.window.history));return!(!j||!j.writable&&!j.set)}catch(j){return!1}}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch(j){return!1}}}function v(b){return Object.getOwnPropertyDescriptor(b,"scrollRestoration")}class Lt{}},1841:(yt,De,m)=>{"use strict";m.d(De,{TP:()=>pe,jN:()=>U,eN:()=>fe,JF:()=>cn,WM:()=>F,LE:()=>Ke,aW:()=>Ze,Zn:()=>se});var c=m(8583),s=m(7716),z=m(5917),le=m(8891),W=m(4612),x=m(5435),S=m(8002);class B{}class U{}class F{constructor(xe){this.normalizedNames=new Map,this.lazyUpdate=null,xe?this.lazyInit="string"==typeof xe?()=>{this.headers=new Map,xe.split("\n").forEach(Ae=>{const Ct=Ae.indexOf(":");if(Ct>0){const ae=Ae.slice(0,Ct),I=ae.toLowerCase(),ne=Ae.slice(Ct+1).trim();this.maybeSetNormalizedName(ae,I),this.headers.has(I)?this.headers.get(I).push(ne):this.headers.set(I,[ne])}})}:()=>{this.headers=new Map,Object.keys(xe).forEach(Ae=>{let Ct=xe[Ae];const ae=Ae.toLowerCase();"string"==typeof Ct&&(Ct=[Ct]),Ct.length>0&&(this.headers.set(ae,Ct),this.maybeSetNormalizedName(Ae,ae))})}:this.headers=new Map}has(xe){return this.init(),this.headers.has(xe.toLowerCase())}get(xe){this.init();const Ae=this.headers.get(xe.toLowerCase());return Ae&&Ae.length>0?Ae[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(xe){return this.init(),this.headers.get(xe.toLowerCase())||null}append(xe,Ae){return this.clone({name:xe,value:Ae,op:"a"})}set(xe,Ae){return this.clone({name:xe,value:Ae,op:"s"})}delete(xe,Ae){return this.clone({name:xe,value:Ae,op:"d"})}maybeSetNormalizedName(xe,Ae){this.normalizedNames.has(Ae)||this.normalizedNames.set(Ae,xe)}init(){this.lazyInit&&(this.lazyInit instanceof F?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(xe=>this.applyUpdate(xe)),this.lazyUpdate=null))}copyFrom(xe){xe.init(),Array.from(xe.headers.keys()).forEach(Ae=>{this.headers.set(Ae,xe.headers.get(Ae)),this.normalizedNames.set(Ae,xe.normalizedNames.get(Ae))})}clone(xe){const Ae=new F;return Ae.lazyInit=this.lazyInit&&this.lazyInit instanceof F?this.lazyInit:this,Ae.lazyUpdate=(this.lazyUpdate||[]).concat([xe]),Ae}applyUpdate(xe){const Ae=xe.name.toLowerCase();switch(xe.op){case"a":case"s":let Ct=xe.value;if("string"==typeof Ct&&(Ct=[Ct]),0===Ct.length)return;this.maybeSetNormalizedName(xe.name,Ae);const ae=("a"===xe.op?this.headers.get(Ae):void 0)||[];ae.push(...Ct),this.headers.set(Ae,ae);break;case"d":const I=xe.value;if(I){let ne=this.headers.get(Ae);if(!ne)return;ne=ne.filter(N=>-1===I.indexOf(N)),0===ne.length?(this.headers.delete(Ae),this.normalizedNames.delete(Ae)):this.headers.set(Ae,ne)}else this.headers.delete(Ae),this.normalizedNames.delete(Ae)}}forEach(xe){this.init(),Array.from(this.normalizedNames.keys()).forEach(Ae=>xe(this.normalizedNames.get(Ae),this.headers.get(Ae)))}}class Y{encodeKey(xe){return be(xe)}encodeValue(xe){return be(xe)}decodeKey(xe){return decodeURIComponent(xe)}decodeValue(xe){return decodeURIComponent(xe)}}function be(pt){return encodeURIComponent(pt).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/gi,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%2B/gi,"+").replace(/%3D/gi,"=").replace(/%3F/gi,"?").replace(/%2F/gi,"/")}function je(pt){return`${pt}`}class Ke{constructor(xe={}){if(this.updates=null,this.cloneFrom=null,this.encoder=xe.encoder||new Y,xe.fromString){if(xe.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function(pt,xe){const Ae=new Map;return pt.length>0&&pt.replace(/^\?/,"").split("&").forEach(ae=>{const I=ae.indexOf("="),[ne,N]=-1==I?[xe.decodeKey(ae),""]:[xe.decodeKey(ae.slice(0,I)),xe.decodeValue(ae.slice(I+1))],G=Ae.get(ne)||[];G.push(N),Ae.set(ne,G)}),Ae}(xe.fromString,this.encoder)}else xe.fromObject?(this.map=new Map,Object.keys(xe.fromObject).forEach(Ae=>{const Ct=xe.fromObject[Ae];this.map.set(Ae,Array.isArray(Ct)?Ct:[Ct])})):this.map=null}has(xe){return this.init(),this.map.has(xe)}get(xe){this.init();const Ae=this.map.get(xe);return Ae?Ae[0]:null}getAll(xe){return this.init(),this.map.get(xe)||null}keys(){return this.init(),Array.from(this.map.keys())}append(xe,Ae){return this.clone({param:xe,value:Ae,op:"a"})}appendAll(xe){const Ae=[];return Object.keys(xe).forEach(Ct=>{const ae=xe[Ct];Array.isArray(ae)?ae.forEach(I=>{Ae.push({param:Ct,value:I,op:"a"})}):Ae.push({param:Ct,value:ae,op:"a"})}),this.clone(Ae)}set(xe,Ae){return this.clone({param:xe,value:Ae,op:"s"})}delete(xe,Ae){return this.clone({param:xe,value:Ae,op:"d"})}toString(){return this.init(),this.keys().map(xe=>{const Ae=this.encoder.encodeKey(xe);return this.map.get(xe).map(Ct=>Ae+"="+this.encoder.encodeValue(Ct)).join("&")}).filter(xe=>""!==xe).join("&")}clone(xe){const Ae=new Ke({encoder:this.encoder});return Ae.cloneFrom=this.cloneFrom||this,Ae.updates=(this.updates||[]).concat(xe),Ae}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(xe=>this.map.set(xe,this.cloneFrom.map.get(xe))),this.updates.forEach(xe=>{switch(xe.op){case"a":case"s":const Ae=("a"===xe.op?this.map.get(xe.param):void 0)||[];Ae.push(je(xe.value)),this.map.set(xe.param,Ae);break;case"d":if(void 0===xe.value){this.map.delete(xe.param);break}{let Ct=this.map.get(xe.param)||[];const ae=Ct.indexOf(je(xe.value));-1!==ae&&Ct.splice(ae,1),Ct.length>0?this.map.set(xe.param,Ct):this.map.delete(xe.param)}}}),this.cloneFrom=this.updates=null)}}class nt{constructor(){this.map=new Map}set(xe,Ae){return this.map.set(xe,Ae),this}get(xe){return this.map.has(xe)||this.map.set(xe,xe.defaultValue()),this.map.get(xe)}delete(xe){return this.map.delete(xe),this}keys(){return this.map.keys()}}function tt(pt){return"undefined"!=typeof ArrayBuffer&&pt instanceof ArrayBuffer}function Ft(pt){return"undefined"!=typeof Blob&&pt instanceof Blob}function We(pt){return"undefined"!=typeof FormData&&pt instanceof FormData}class Ze{constructor(xe,Ae,Ct,ae){let I;if(this.url=Ae,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=xe.toUpperCase(),function(pt){switch(pt){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||ae?(this.body=void 0!==Ct?Ct:null,I=ae):I=Ct,I&&(this.reportProgress=!!I.reportProgress,this.withCredentials=!!I.withCredentials,I.responseType&&(this.responseType=I.responseType),I.headers&&(this.headers=I.headers),I.context&&(this.context=I.context),I.params&&(this.params=I.params)),this.headers||(this.headers=new F),this.context||(this.context=new nt),this.params){const ne=this.params.toString();if(0===ne.length)this.urlWithParams=Ae;else{const N=Ae.indexOf("?");this.urlWithParams=Ae+(-1===N?"?":N<Ae.length-1?"&":"")+ne}}else this.params=new Ke,this.urlWithParams=Ae}serializeBody(){return null===this.body?null:tt(this.body)||Ft(this.body)||We(this.body)||"undefined"!=typeof URLSearchParams&&this.body instanceof URLSearchParams||"string"==typeof this.body?this.body:this.body instanceof Ke?this.body.toString():"object"==typeof this.body||"boolean"==typeof this.body||Array.isArray(this.body)?JSON.stringify(this.body):this.body.toString()}detectContentTypeHeader(){return null===this.body||We(this.body)?null:Ft(this.body)?this.body.type||null:tt(this.body)?null:"string"==typeof this.body?"text/plain":this.body instanceof Ke?"application/x-www-form-urlencoded;charset=UTF-8":"object"==typeof this.body||"number"==typeof this.body||"boolean"==typeof this.body?"application/json":null}clone(xe={}){var Ae;const Ct=xe.method||this.method,ae=xe.url||this.url,I=xe.responseType||this.responseType,ne=void 0!==xe.body?xe.body:this.body,N=void 0!==xe.withCredentials?xe.withCredentials:this.withCredentials,G=void 0!==xe.reportProgress?xe.reportProgress:this.reportProgress;let _e=xe.headers||this.headers,ve=xe.params||this.params;const Ce=null!==(Ae=xe.context)&&void 0!==Ae?Ae:this.context;return void 0!==xe.setHeaders&&(_e=Object.keys(xe.setHeaders).reduce((H,ce)=>H.set(ce,xe.setHeaders[ce]),_e)),xe.setParams&&(ve=Object.keys(xe.setParams).reduce((H,ce)=>H.set(ce,xe.setParams[ce]),ve)),new Ze(Ct,ae,ne,{params:ve,headers:_e,context:Ce,reportProgress:G,responseType:I,withCredentials:N})}}var Pe=(()=>((Pe=Pe||{})[Pe.Sent=0]="Sent",Pe[Pe.UploadProgress=1]="UploadProgress",Pe[Pe.ResponseHeader=2]="ResponseHeader",Pe[Pe.DownloadProgress=3]="DownloadProgress",Pe[Pe.Response=4]="Response",Pe[Pe.User=5]="User",Pe))();class st{constructor(xe,Ae=200,Ct="OK"){this.headers=xe.headers||new F,this.status=void 0!==xe.status?xe.status:Ae,this.statusText=xe.statusText||Ct,this.url=xe.url||null,this.ok=this.status>=200&&this.status<300}}class Be extends st{constructor(xe={}){super(xe),this.type=Pe.ResponseHeader}clone(xe={}){return new Be({headers:xe.headers||this.headers,status:void 0!==xe.status?xe.status:this.status,statusText:xe.statusText||this.statusText,url:xe.url||this.url||void 0})}}class se extends st{constructor(xe={}){super(xe),this.type=Pe.Response,this.body=void 0!==xe.body?xe.body:null}clone(xe={}){return new se({body:void 0!==xe.body?xe.body:this.body,headers:xe.headers||this.headers,status:void 0!==xe.status?xe.status:this.status,statusText:xe.statusText||this.statusText,url:xe.url||this.url||void 0})}}class Se extends st{constructor(xe){super(xe,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${xe.url||"(unknown url)"}`:`Http failure response for ${xe.url||"(unknown url)"}: ${xe.status} ${xe.statusText}`,this.error=xe.error||null}}function oe(pt,xe){return{body:xe,headers:pt.headers,context:pt.context,observe:pt.observe,params:pt.params,reportProgress:pt.reportProgress,responseType:pt.responseType,withCredentials:pt.withCredentials}}let fe=(()=>{class pt{constructor(Ae){this.handler=Ae}request(Ae,Ct,ae={}){let I;if(Ae instanceof Ze)I=Ae;else{let G,_e;G=ae.headers instanceof F?ae.headers:new F(ae.headers),ae.params&&(_e=ae.params instanceof Ke?ae.params:new Ke({fromObject:ae.params})),I=new Ze(Ae,Ct,void 0!==ae.body?ae.body:null,{headers:G,context:ae.context,params:_e,reportProgress:ae.reportProgress,responseType:ae.responseType||"json",withCredentials:ae.withCredentials})}const ne=(0,z.of)(I).pipe((0,W.b)(G=>this.handler.handle(G)));if(Ae instanceof Ze||"events"===ae.observe)return ne;const N=ne.pipe((0,x.h)(G=>G instanceof se));switch(ae.observe||"body"){case"body":switch(I.responseType){case"arraybuffer":return N.pipe((0,S.U)(G=>{if(null!==G.body&&!(G.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return G.body}));case"blob":return N.pipe((0,S.U)(G=>{if(null!==G.body&&!(G.body instanceof Blob))throw new Error("Response is not a Blob.");return G.body}));case"text":return N.pipe((0,S.U)(G=>{if(null!==G.body&&"string"!=typeof G.body)throw new Error("Response is not a string.");return G.body}));case"json":default:return N.pipe((0,S.U)(G=>G.body))}case"response":return N;default:throw new Error(`Unreachable: unhandled observe type ${ae.observe}}`)}}delete(Ae,Ct={}){return this.request("DELETE",Ae,Ct)}get(Ae,Ct={}){return this.request("GET",Ae,Ct)}head(Ae,Ct={}){return this.request("HEAD",Ae,Ct)}jsonp(Ae,Ct){return this.request("JSONP",Ae,{params:(new Ke).append(Ct,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(Ae,Ct={}){return this.request("OPTIONS",Ae,Ct)}patch(Ae,Ct,ae={}){return this.request("PATCH",Ae,oe(ae,Ct))}post(Ae,Ct,ae={}){return this.request("POST",Ae,oe(ae,Ct))}put(Ae,Ct,ae={}){return this.request("PUT",Ae,oe(ae,Ct))}}return pt.\u0275fac=function(Ae){return new(Ae||pt)(s.LFG(B))},pt.\u0275prov=s.Yz7({token:pt,factory:pt.\u0275fac}),pt})();class Oe{constructor(xe,Ae){this.next=xe,this.interceptor=Ae}handle(xe){return this.interceptor.intercept(xe,this.next)}}const pe=new s.OlP("HTTP_INTERCEPTORS");let Ue=(()=>{class pt{intercept(Ae,Ct){return Ct.handle(Ae)}}return pt.\u0275fac=function(Ae){return new(Ae||pt)},pt.\u0275prov=s.Yz7({token:pt,factory:pt.\u0275fac}),pt})();const Tt=/^\)\]\}',?\n/;let St=(()=>{class pt{constructor(Ae){this.xhrFactory=Ae}handle(Ae){if("JSONP"===Ae.method)throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");return new le.y(Ct=>{const ae=this.xhrFactory.build();if(ae.open(Ae.method,Ae.urlWithParams),Ae.withCredentials&&(ae.withCredentials=!0),Ae.headers.forEach((ce,Je)=>ae.setRequestHeader(ce,Je.join(","))),Ae.headers.has("Accept")||ae.setRequestHeader("Accept","application/json, text/plain, */*"),!Ae.headers.has("Content-Type")){const ce=Ae.detectContentTypeHeader();null!==ce&&ae.setRequestHeader("Content-Type",ce)}if(Ae.responseType){const ce=Ae.responseType.toLowerCase();ae.responseType="json"!==ce?ce:"text"}const I=Ae.serializeBody();let ne=null;const N=()=>{if(null!==ne)return ne;const ce=1223===ae.status?204:ae.status,Je=ae.statusText||"OK",ge=new F(ae.getAllResponseHeaders()),it=function(pt){return"responseURL"in pt&&pt.responseURL?pt.responseURL:/^X-Request-URL:/m.test(pt.getAllResponseHeaders())?pt.getResponseHeader("X-Request-URL"):null}(ae)||Ae.url;return ne=new Be({headers:ge,status:ce,statusText:Je,url:it}),ne},G=()=>{let{headers:ce,status:Je,statusText:ge,url:it}=N(),X=null;204!==Je&&(X=void 0===ae.response?ae.responseText:ae.response),0===Je&&(Je=X?200:0);let Q=Je>=200&&Je<300;if("json"===Ae.responseType&&"string"==typeof X){const at=X;X=X.replace(Tt,"");try{X=""!==X?JSON.parse(X):null}catch(wt){X=at,Q&&(Q=!1,X={error:wt,text:X})}}Q?(Ct.next(new se({body:X,headers:ce,status:Je,statusText:ge,url:it||void 0})),Ct.complete()):Ct.error(new Se({error:X,headers:ce,status:Je,statusText:ge,url:it||void 0}))},_e=ce=>{const{url:Je}=N(),ge=new Se({error:ce,status:ae.status||0,statusText:ae.statusText||"Unknown Error",url:Je||void 0});Ct.error(ge)};let ve=!1;const Ce=ce=>{ve||(Ct.next(N()),ve=!0);let Je={type:Pe.DownloadProgress,loaded:ce.loaded};ce.lengthComputable&&(Je.total=ce.total),"text"===Ae.responseType&&!!ae.responseText&&(Je.partialText=ae.responseText),Ct.next(Je)},H=ce=>{let Je={type:Pe.UploadProgress,loaded:ce.loaded};ce.lengthComputable&&(Je.total=ce.total),Ct.next(Je)};return ae.addEventListener("load",G),ae.addEventListener("error",_e),ae.addEventListener("timeout",_e),ae.addEventListener("abort",_e),Ae.reportProgress&&(ae.addEventListener("progress",Ce),null!==I&&ae.upload&&ae.upload.addEventListener("progress",H)),ae.send(I),Ct.next({type:Pe.Sent}),()=>{ae.removeEventListener("error",_e),ae.removeEventListener("abort",_e),ae.removeEventListener("load",G),ae.removeEventListener("timeout",_e),Ae.reportProgress&&(ae.removeEventListener("progress",Ce),null!==I&&ae.upload&&ae.upload.removeEventListener("progress",H)),ae.readyState!==ae.DONE&&ae.abort()}})}}return pt.\u0275fac=function(Ae){return new(Ae||pt)(s.LFG(c.JF))},pt.\u0275prov=s.Yz7({token:pt,factory:pt.\u0275fac}),pt})();const lt=new s.OlP("XSRF_COOKIE_NAME"),Dt=new s.OlP("XSRF_HEADER_NAME");class Ht{}let un=(()=>{class pt{constructor(Ae,Ct,ae){this.doc=Ae,this.platform=Ct,this.cookieName=ae,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const Ae=this.doc.cookie||"";return Ae!==this.lastCookieString&&(this.parseCount++,this.lastToken=(0,c.Mx)(Ae,this.cookieName),this.lastCookieString=Ae),this.lastToken}}return pt.\u0275fac=function(Ae){return new(Ae||pt)(s.LFG(c.K0),s.LFG(s.Lbi),s.LFG(lt))},pt.\u0275prov=s.Yz7({token:pt,factory:pt.\u0275fac}),pt})(),en=(()=>{class pt{constructor(Ae,Ct){this.tokenService=Ae,this.headerName=Ct}intercept(Ae,Ct){const ae=Ae.url.toLowerCase();if("GET"===Ae.method||"HEAD"===Ae.method||ae.startsWith("http://")||ae.startsWith("https://"))return Ct.handle(Ae);const I=this.tokenService.getToken();return null!==I&&!Ae.headers.has(this.headerName)&&(Ae=Ae.clone({headers:Ae.headers.set(this.headerName,I)})),Ct.handle(Ae)}}return pt.\u0275fac=function(Ae){return new(Ae||pt)(s.LFG(Ht),s.LFG(Dt))},pt.\u0275prov=s.Yz7({token:pt,factory:pt.\u0275fac}),pt})(),wn=(()=>{class pt{constructor(Ae,Ct){this.backend=Ae,this.injector=Ct,this.chain=null}handle(Ae){if(null===this.chain){const Ct=this.injector.get(pe,[]);this.chain=Ct.reduceRight((ae,I)=>new Oe(ae,I),this.backend)}return this.chain.handle(Ae)}}return pt.\u0275fac=function(Ae){return new(Ae||pt)(s.LFG(U),s.LFG(s.zs3))},pt.\u0275prov=s.Yz7({token:pt,factory:pt.\u0275fac}),pt})(),rn=(()=>{class pt{static disable(){return{ngModule:pt,providers:[{provide:en,useClass:Ue}]}}static withOptions(Ae={}){return{ngModule:pt,providers:[Ae.cookieName?{provide:lt,useValue:Ae.cookieName}:[],Ae.headerName?{provide:Dt,useValue:Ae.headerName}:[]]}}}return pt.\u0275fac=function(Ae){return new(Ae||pt)},pt.\u0275mod=s.oAB({type:pt}),pt.\u0275inj=s.cJS({providers:[en,{provide:pe,useExisting:en,multi:!0},{provide:Ht,useClass:un},{provide:lt,useValue:"XSRF-TOKEN"},{provide:Dt,useValue:"X-XSRF-TOKEN"}]}),pt})(),cn=(()=>{class pt{}return pt.\u0275fac=function(Ae){return new(Ae||pt)},pt.\u0275mod=s.oAB({type:pt}),pt.\u0275inj=s.cJS({providers:[fe,{provide:B,useClass:wn},St,{provide:U,useExisting:St}],imports:[[rn.withOptions({cookieName:"XSRF-TOKEN",headerName:"X-XSRF-TOKEN"})]]}),pt})()},5068:(yt,De,m)=>{var c,s,z;!function(le){if("object"==typeof yt.exports){var W=le(0,De);void 0!==W&&(yt.exports=W)}else s=[m,De],void 0!==(z="function"==typeof(c=le)?c.apply(De,s):c)&&(yt.exports=z)}(function(le,W){"use strict";Object.defineProperty(W,"__esModule",{value:!0});var x=void 0;W.default=["zh",[["\u4e0a\u5348","\u4e0b\u5348"],x,x],x,[["\u65e5","\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d"],["\u5468\u65e5","\u5468\u4e00","\u5468\u4e8c","\u5468\u4e09","\u5468\u56db","\u5468\u4e94","\u5468\u516d"],["\u661f\u671f\u65e5","\u661f\u671f\u4e00","\u661f\u671f\u4e8c","\u661f\u671f\u4e09","\u661f\u671f\u56db","\u661f\u671f\u4e94","\u661f\u671f\u516d"],["\u5468\u65e5","\u5468\u4e00","\u5468\u4e8c","\u5468\u4e09","\u5468\u56db","\u5468\u4e94","\u5468\u516d"]],x,[["1","2","3","4","5","6","7","8","9","10","11","12"],["1\u6708","2\u6708","3\u6708","4\u6708","5\u6708","6\u6708","7\u6708","8\u6708","9\u6708","10\u6708","11\u6708","12\u6708"],["\u4e00\u6708","\u4e8c\u6708","\u4e09\u6708","\u56db\u6708","\u4e94\u6708","\u516d\u6708","\u4e03\u6708","\u516b\u6708","\u4e5d\u6708","\u5341\u6708","\u5341\u4e00\u6708","\u5341\u4e8c\u6708"]],x,[["\u516c\u5143\u524d","\u516c\u5143"],x,x],0,[6,0],["y/M/d","y\u5e74M\u6708d\u65e5",x,"y\u5e74M\u6708d\u65e5EEEE"],["ah:mm","ah:mm:ss","z ah:mm:ss","zzzz ah:mm:ss"],["{1} {0}",x,x,x],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"CNY","\xa5","\u4eba\u6c11\u5e01",{AUD:["AU$","$"],CNY:["\xa5"],ILR:["ILS"],JPY:["JP\xa5","\xa5"],KRW:["\uffe6","\u20a9"],TWD:["NT$"],USD:["US$","$"],XXX:[]},"ltr",function(B){return 5}]})},7716:(yt,De,m)=>{"use strict";m.d(De,{deG:()=>d8,tb:()=>O5,AFp:()=>T5,ip1:()=>V3,CZH:()=>Ca,hGG:()=>D_,z2F:()=>bc,sBO:()=>_m,Sil:()=>Mc,_Vd:()=>ws,EJc:()=>k5,SBq:()=>Po,qLn:()=>fs,vpe:()=>Oo,gxx:()=>ys,tBr:()=>us,XFs:()=>kt,OlP:()=>mi,zs3:()=>Zn,ZZ4:()=>$1,aQg:()=>W1,soG:()=>il,YKP:()=>md,v3s:()=>r_,h0i:()=>Ds,PXZ:()=>Jv,R0b:()=>Pr,FiY:()=>Mo,Lbi:()=>P5,g9A:()=>x5,Qsj:()=>im,FYo:()=>U1,JOm:()=>Xr,Tiy:()=>u3,q3G:()=>gi,tp0:()=>No,EAV:()=>c_,Rgc:()=>lc,dDg:()=>L5,DyG:()=>Oa,GfV:()=>ad,s_b:()=>Q1,ifc:()=>G,eFA:()=>Y5,G48:()=>$v,Gpc:()=>Y,f3M:()=>w8,X6Q:()=>j3,_c5:()=>__,VLi:()=>Uv,c2e:()=>A5,zSh:()=>Zs,wAp:()=>ln,vHH:()=>Ke,EiD:()=>Yl,mCW:()=>Ys,qzn:()=>Jo,JVY:()=>B8,pB0:()=>U8,eBb:()=>Il,L6k:()=>Y8,LAX:()=>j8,cg1:()=>t3,Tjo:()=>g_,kL8:()=>xh,yhl:()=>kl,dqk:()=>ce,sIi:()=>ec,CqO:()=>U2,QGY:()=>j2,F4k:()=>Vu,dwT:()=>Xp,RDi:()=>$,AaK:()=>B,z3N:()=>bo,qOj:()=>x2,TTD:()=>tr,_Bn:()=>nd,xp6:()=>x4,uIk:()=>A2,Tol:()=>ih,Gre:()=>yh,ekj:()=>Z2,Suo:()=>o5,Xpm:()=>xt,lG2:()=>Jn,Yz7:()=>rt,cJS:()=>lt,oAB:()=>jn,Yjl:()=>Wn,Y36:()=>nc,_UZ:()=>ku,GkF:()=>Iu,BQk:()=>Y2,ynx:()=>B2,qZA:()=>H2,TgZ:()=>N2,EpF:()=>Fu,n5z:()=>Co,Ikx:()=>X2,LFG:()=>Ci,$8M:()=>Go,NdJ:()=>$2,CRH:()=>s5,O4$:()=>Bt,oxw:()=>Nu,ALo:()=>Jd,lcZ:()=>Xd,xi3:()=>e5,Hsn:()=>Bu,F$t:()=>Hu,Q6J:()=>L2,MGl:()=>F1,hYB:()=>K2,DdM:()=>jd,VKq:()=>Ud,WLB:()=>$d,l5B:()=>Wd,iGM:()=>i5,MAs:()=>Mu,CHM:()=>Vr,oJD:()=>jl,LSH:()=>Uc,kYT:()=>Tn,Udp:()=>Q2,WFA:()=>W2,d8E:()=>e3,YNc:()=>Cu,W1O:()=>u5,_uU:()=>uh,Oqu:()=>J2,hij:()=>L1,Gf:()=>r5});var c=m(9765),s=m(5319),z=m(8891),le=m(6682),W=m(8345);function x(e){for(let t in e)if(e[t]===x)return t;throw Error("Could not find renamed property on target object.")}function S(e,t){for(const n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n])}function B(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(B).join(", ")+"]";if(null==e)return""+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return""+t;const n=t.indexOf("\n");return-1===n?t:t.substring(0,n)}function U(e,t){return null==e||""===e?null===t?"":t:null==t||""===t?e:e+" "+t}const F=x({__forward_ref__:x});function Y(e){return e.__forward_ref__=Y,e.toString=function(){return B(this())},e}function V(e){return be(e)?e():e}function be(e){return"function"==typeof e&&e.hasOwnProperty(F)&&e.__forward_ref__===Y}class Ke extends Error{constructor(t,n){super(function(e,t){return`${e?`NG0${e}: `:""}${t}`}(t,n)),this.code=t}}function ut(e){return"string"==typeof e?e:null==e?"":String(e)}function tt(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():ut(e)}function Ze(e,t){const n=t?` in ${t}`:"";throw new Ke("201",`No provider for ${tt(e)} found${n}`)}function we(e,t){null==e&&function(e,t,n,i){throw new Error(`ASSERTION ERROR: ${e}`+(null==i?"":` [Expected=> ${n} ${i} ${t} <=Actual]`))}(t,e,null,"!=")}function rt(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function lt(e){return{providers:e.providers||[],imports:e.imports||[]}}function Dt(e){return Ht(e,It)||Ht(e,rn)}function Ht(e,t){return e.hasOwnProperty(t)?e[t]:null}function wn(e){return e&&(e.hasOwnProperty(tn)||e.hasOwnProperty(cn))?e[tn]:null}const It=x({\u0275prov:x}),tn=x({\u0275inj:x}),rn=x({ngInjectableDef:x}),cn=x({ngInjectorDef:x});var kt=(()=>((kt=kt||{})[kt.Default=0]="Default",kt[kt.Host=1]="Host",kt[kt.Self=2]="Self",kt[kt.SkipSelf=4]="SkipSelf",kt[kt.Optional=8]="Optional",kt))();let bn;function xe(e){const t=bn;return bn=e,t}function Ae(e,t,n){const i=Dt(e);return i&&"root"==i.providedIn?void 0===i.value?i.value=i.factory():i.value:n&kt.Optional?null:void 0!==t?t:void Ze(B(e),"Injector")}function ae(e){return{toString:e}.toString()}var I=(()=>((I=I||{})[I.OnPush=0]="OnPush",I[I.Default=1]="Default",I))(),G=(()=>((G=G||{})[G.Emulated=0]="Emulated",G[G.None=2]="None",G[G.ShadowDom=3]="ShadowDom",G))();const _e="undefined"!=typeof globalThis&&globalThis,ve="undefined"!=typeof window&&window,Ce="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,H="undefined"!=typeof global&&global,ce=_e||H||ve||Ce,it={},X=[],Q=x({\u0275cmp:x}),at=x({\u0275dir:x}),wt=x({\u0275pipe:x}),Ee=x({\u0275mod:x}),de=x({\u0275loc:x}),te=x({\u0275fac:x}),Le=x({__NG_ELEMENT_ID__:x});let ct=0;function xt(e){return ae(()=>{const n={},i={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:n,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===I.OnPush,directiveDefs:null,pipeDefs:null,selectors:e.selectors||X,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||G.Emulated,id:"c",styles:e.styles||X,_:null,setInput:null,schemas:e.schemas||null,tView:null},r=e.directives,o=e.features,a=e.pipes;return i.id+=ct++,i.inputs=zn(e.inputs,n),i.outputs=zn(e.outputs),o&&o.forEach(l=>l(i)),i.directiveDefs=r?()=>("function"==typeof r?r():r).map(on):null,i.pipeDefs=a?()=>("function"==typeof a?a():a).map(Sn):null,i})}function on(e){return pn(e)||function(e){return e[at]||null}(e)}function Sn(e){return function(e){return e[wt]||null}(e)}const Gt={};function jn(e){return ae(()=>{const t={type:e.type,bootstrap:e.bootstrap||X,declarations:e.declarations||X,imports:e.imports||X,exports:e.exports||X,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null};return null!=e.id&&(Gt[e.id]=e.type),t})}function Tn(e,t){return ae(()=>{const n=xn(e,!0);n.declarations=t.declarations||X,n.imports=t.imports||X,n.exports=t.exports||X})}function zn(e,t){if(null==e)return it;const n={};for(const i in e)if(e.hasOwnProperty(i)){let r=e[i],o=r;Array.isArray(r)&&(o=r[1],r=r[0]),n[r]=i,t&&(t[r]=o)}return n}const Jn=xt;function Wn(e){return{type:e.type,name:e.name,factory:null,pure:!1!==e.pure,onDestroy:e.type.prototype.ngOnDestroy||null}}function pn(e){return e[Q]||null}function xn(e,t){const n=e[Ee]||null;if(!n&&!0===t)throw new Error(`Type ${B(e)} does not have '\u0275mod' property.`);return n}const M=19,k=20;function Xn(e){return Array.isArray(e)&&"object"==typeof e[1]}function Hn(e){return Array.isArray(e)&&!0===e[1]}function Fi(e){return 0!=(8&e.flags)}function bi(e){return 2==(2&e.flags)}function Ti(e){return 1==(1&e.flags)}function xi(e){return null!==e.template}function hi(e){return 0!=(512&e[2])}function Pi(e,t){return e.hasOwnProperty(te)?e[te]:null}class Vi{constructor(t,n,i){this.previousValue=t,this.currentValue=n,this.firstChange=i}isFirstChange(){return this.firstChange}}function tr(){return Bi}function Bi(e){return e.type.prototype.ngOnChanges&&(e.setInput=ho),Io}function Io(){const e=Wr(this),t=null==e?void 0:e.current;if(t){const n=e.previous;if(n===it)e.previous=t;else for(let i in t)n[i]=t[i];e.current=null,this.ngOnChanges(t)}}function ho(e,t,n,i){const r=Wr(e)||function(e,t){return e[kr]=t}(e,{previous:it,current:null}),o=r.current||(r.current={}),a=r.previous,l=this.declaredInputs[n],f=a[l];o[l]=new Vi(f&&f.currentValue,t,a===it),e[i]=t}tr.ngInherit=!0;const kr="__ngSimpleChanges__";function Wr(e){return e[kr]||null}const T="http://www.w3.org/2000/svg";let v;function $(e){v=e}function ht(){return void 0!==v?v:"undefined"!=typeof document?document:void 0}function b(e){return!!e.listen}const D={createRenderer:(e,t)=>ht()};function Me(e){for(;Array.isArray(e);)e=e[0];return e}function Wt(e,t){return Me(t[e])}function mn(e,t){return Me(t[e.index])}function Un(e,t){return e.data[t]}function gn(e,t){return e[t]}function Ln(e,t){const n=t[e];return Xn(n)?n:n[0]}function Gn(e){return 4==(4&e[2])}function ui(e){return 128==(128&e[2])}function yi(e,t){return null==t?null:e[t]}function ir(e){e[18]=0}function Li(e,t){e[5]+=t;let n=e,i=e[3];for(;null!==i&&(1===t&&1===n[5]||-1===t&&0===n[5]);)i[5]+=t,n=i,i=i[3]}const sn={lFrame:wi(null),bindingsEnabled:!0,isInCheckNoChangesMode:!1};function fo(){return sn.bindingsEnabled}function Et(){return sn.lFrame.lView}function Pn(){return sn.lFrame.tView}function Vr(e){return sn.lFrame.contextLView=e,e[8]}function ai(){let e=jo();for(;null!==e&&64===e.type;)e=e.parent;return e}function jo(){return sn.lFrame.currentTNode}function mr(e,t){const n=sn.lFrame;n.currentTNode=e,n.isParent=t}function L(){return sn.lFrame.isParent}function u(){sn.lFrame.isParent=!1}function R(){return sn.isInCheckNoChangesMode}function ee(e){sn.isInCheckNoChangesMode=e}function me(){const e=sn.lFrame;let t=e.bindingRootIndex;return-1===t&&(t=e.bindingRootIndex=e.tView.bindingStartIndex),t}function Te(){return sn.lFrame.bindingIndex}function vt(){return sn.lFrame.bindingIndex++}function At(e){const t=sn.lFrame,n=t.bindingIndex;return t.bindingIndex=t.bindingIndex+e,n}function On(e,t){const n=sn.lFrame;n.bindingIndex=n.bindingRootIndex=e,an(t)}function an(e){sn.lFrame.currentDirectiveIndex=e}function Dn(e){const t=sn.lFrame.currentDirectiveIndex;return-1===t?null:e[t]}function ei(){return sn.lFrame.currentQueryIndex}function ii(e){sn.lFrame.currentQueryIndex=e}function Si(e){const t=e[1];return 2===t.type?t.declTNode:1===t.type?e[6]:null}function fi(e,t,n){if(n&kt.SkipSelf){let r=t,o=e;for(;!(r=r.parent,null!==r||n&kt.Host||(r=Si(o),null===r||(o=o[15],10&r.type))););if(null===r)return!1;t=r,e=o}const i=sn.lFrame=Ri();return i.currentTNode=t,i.lView=e,!0}function rr(e){const t=Ri(),n=e[1];sn.lFrame=t,t.currentTNode=n.firstChild,t.lView=e,t.tView=n,t.contextLView=e,t.bindingIndex=n.bindingStartIndex,t.inI18n=!1}function Ri(){const e=sn.lFrame,t=null===e?null:e.child;return null===t?wi(e):t}function wi(e){const t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return null!==e&&(e.child=t),t}function or(){const e=sn.lFrame;return sn.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const sr=or;function Oi(){const e=or();e.isParent=!0,e.tView=null,e.selectedIndex=-1,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function Kn(){return sn.lFrame.selectedIndex}function ar(e){sn.lFrame.selectedIndex=e}function ri(){const e=sn.lFrame;return Un(e.tView,e.selectedIndex)}function Bt(){sn.lFrame.currentNamespace=T}function Di(e,t){for(let n=t.directiveStart,i=t.directiveEnd;n<i;n++){const o=e.data[n].type.prototype,{ngAfterContentInit:a,ngAfterContentChecked:l,ngAfterViewInit:f,ngAfterViewChecked:C,ngOnDestroy:P}=o;a&&(e.contentHooks||(e.contentHooks=[])).push(-n,a),l&&((e.contentHooks||(e.contentHooks=[])).push(n,l),(e.contentCheckHooks||(e.contentCheckHooks=[])).push(n,l)),f&&(e.viewHooks||(e.viewHooks=[])).push(-n,f),C&&((e.viewHooks||(e.viewHooks=[])).push(n,C),(e.viewCheckHooks||(e.viewCheckHooks=[])).push(n,C)),null!=P&&(e.destroyHooks||(e.destroyHooks=[])).push(n,P)}}function Ai(e,t,n){Wi(e,t,3,n)}function $n(e,t,n,i){(3&e[2])===n&&Wi(e,t,n,i)}function Er(e,t){let n=e[2];(3&n)===t&&(n&=2047,n+=1,e[2]=n)}function Wi(e,t,n,i){const o=null!=i?i:-1,a=t.length-1;let l=0;for(let f=void 0!==i?65535&e[18]:0;f<a;f++)if("number"==typeof t[f+1]){if(l=t[f],null!=i&&l>=i)break}else t[f]<0&&(e[18]+=65536),(l<o||-1==o)&&(wr(e,n,t,f),e[18]=(4294901760&e[18])+f+2),f++}function wr(e,t,n,i){const r=n[i]<0,o=n[i+1],l=e[r?-n[i]:n[i]];if(r){if(e[2]>>11<e[18]>>16&&(3&e[2])===t){e[2]+=2048;try{o.call(l)}finally{}}}else try{o.call(l)}finally{}}class ji{constructor(t,n,i){this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=i}}function Wo(e,t,n){const i=b(e);let r=0;for(;r<n.length;){const o=n[r];if("number"==typeof o){if(0!==o)break;r++;const a=n[r++],l=n[r++],f=n[r++];i?e.setAttribute(t,l,f,a):t.setAttributeNS(a,l,f)}else{const a=o,l=n[++r];As(a)?i&&e.setProperty(t,a,l):i?e.setAttribute(t,a,l):t.setAttribute(a,l),r++}}return r}function za(e){return 3===e||4===e||6===e}function As(e){return 64===e.charCodeAt(0)}function is(e,t){if(null!==t&&0!==t.length)if(null===e||0===e.length)e=t.slice();else{let n=-1;for(let i=0;i<t.length;i++){const r=t[i];"number"==typeof r?n=r:0===n||Ta(e,n,r,null,-1===n||2===n?t[++i]:null)}}return e}function Ta(e,t,n,i,r){let o=0,a=e.length;if(-1===t)a=-1;else for(;o<e.length;){const l=e[o++];if("number"==typeof l){if(l===t){a=-1;break}if(l>t){a=o-1;break}}}for(;o<e.length;){const l=e[o];if("number"==typeof l)break;if(l===n){if(null===i)return void(null!==r&&(e[o+1]=r));if(i===e[o+1])return void(e[o+2]=r)}o++,null!==i&&o++,null!==r&&o++}-1!==a&&(e.splice(a,0,t),o=a+1),e.splice(o++,0,n),null!==i&&e.splice(o++,0,i),null!==r&&e.splice(o++,0,r)}function xa(e){return-1!==e}function _o(e){return 32767&e}function Lo(e,t){let n=function(e){return e>>16}(e),i=t;for(;n>0;)i=i[15],n--;return i}let ks=!0;function yo(e){const t=ks;return ks=e,t}let Pc=0;function g(e,t){const n=d(e,t);if(-1!==n)return n;const i=t[1];i.firstCreatePass&&(e.injectorIndex=t.length,p(i.data,e),p(t,null),p(i.blueprint,null));const r=w(e,t),o=e.injectorIndex;if(xa(r)){const a=_o(r),l=Lo(r,t),f=l[1].data;for(let C=0;C<8;C++)t[o+C]=l[a+C]|f[a+C]}return t[o+8]=r,o}function p(e,t){e.push(0,0,0,0,0,0,0,0,t)}function d(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===t[e.injectorIndex+8]?-1:e.injectorIndex}function w(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=0,i=null,r=t;for(;null!==r;){const o=r[1],a=o.type;if(i=2===a?o.declTNode:1===a?r[6]:null,null===i)return-1;if(n++,r=r[15],-1!==i.injectorIndex)return i.injectorIndex|n<<16}return-1}function O(e,t,n){!function(e,t,n){let i;"string"==typeof n?i=n.charCodeAt(0)||0:n.hasOwnProperty(Le)&&(i=n[Le]),null==i&&(i=n[Le]=Pc++);const r=255&i;t.data[e+(r>>5)]|=1<<r}(e,t,n)}function ye(e,t,n){if(n&kt.Optional)return e;Ze(t,"NodeInjector")}function Fe(e,t,n,i){if(n&kt.Optional&&void 0===i&&(i=null),0==(n&(kt.Self|kt.Host))){const r=e[9],o=xe(void 0);try{return r?r.get(t,i,n&kt.Optional):Ae(t,i,n&kt.Optional)}finally{xe(o)}}return ye(i,t,n)}function _t(e,t,n,i=kt.Default,r){if(null!==e){const o=function(e){if("string"==typeof e)return e.charCodeAt(0)||0;const t=e.hasOwnProperty(Le)?e[Le]:void 0;return"number"==typeof t?t>=0?255&t:nn:t}(n);if("function"==typeof o){if(!fi(t,e,i))return i&kt.Host?ye(r,n,i):Fe(t,n,i,r);try{const a=o(i);if(null!=a||i&kt.Optional)return a;Ze(n)}finally{sr()}}else if("number"==typeof o){let a=null,l=d(e,t),f=-1,C=i&kt.Host?t[16][6]:null;for((-1===l||i&kt.SkipSelf)&&(f=-1===l?w(e,t):t[l+8],-1!==f&&cr(i,!1)?(a=t[1],l=_o(f),t=Lo(f,t)):l=-1);-1!==l;){const P=t[1];if(Dr(o,l,P.data)){const q=An(l,t,n,a,i,C);if(q!==Nt)return q}f=t[l+8],-1!==f&&cr(i,t[1].data[l+8]===C)&&Dr(o,l,t)?(a=P,l=_o(f),t=Lo(f,t)):l=-1}}}return Fe(t,n,i,r)}const Nt={};function nn(){return new Sr(ai(),Et())}function An(e,t,n,i,r,o){const a=t[1],l=a.data[e+8],P=Qn(l,a,n,null==i?bi(l)&&ks:i!=a&&0!=(3&l.type),r&kt.Host&&o===l);return null!==P?In(t,a,P,l):Nt}function Qn(e,t,n,i,r){const o=e.providerIndexes,a=t.data,l=1048575&o,f=e.directiveStart,P=o>>20,ie=r?l+P:e.directiveEnd;for(let ze=i?l:l+P;ze<ie;ze++){const He=a[ze];if(ze<f&&n===He||ze>=f&&He.type===n)return ze}if(r){const ze=a[f];if(ze&&xi(ze)&&ze.type===n)return f}return null}function In(e,t,n,i){let r=e[n];const o=t.data;if(function(e){return e instanceof ji}(r)){const a=r;a.resolving&&function(e,t){throw new Ke("200",`Circular dependency in DI detected for ${e}`)}(tt(o[n]));const l=yo(a.canSeeViewProviders);a.resolving=!0;const f=a.injectImpl?xe(a.injectImpl):null;fi(e,i,kt.Default);try{r=e[n]=a.factory(void 0,o,e,i),t.firstCreatePass&&n>=i.directiveStart&&function(e,t,n){const{ngOnChanges:i,ngOnInit:r,ngDoCheck:o}=t.type.prototype;if(i){const a=Bi(t);(n.preOrderHooks||(n.preOrderHooks=[])).push(e,a),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,a)}r&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-e,r),o&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,o),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,o))}(n,o[n],t)}finally{null!==f&&xe(f),yo(l),a.resolving=!1,sr()}}return r}function Dr(e,t,n){return!!(n[t+(e>>5)]&1<<e)}function cr(e,t){return!(e&kt.Self||e&kt.Host&&t)}class Sr{constructor(t,n){this._tNode=t,this._lView=n}get(t,n){return _t(this._tNode,this._lView,t,void 0,n)}}function Co(e){return ae(()=>{const t=e.prototype.constructor,n=t[te]||zr(t),i=Object.prototype;let r=Object.getPrototypeOf(e.prototype).constructor;for(;r&&r!==i;){const o=r[te]||zr(r);if(o&&o!==n)return o;r=Object.getPrototypeOf(r)}return o=>new o})}function zr(e){return be(e)?()=>{const t=zr(V(e));return t&&t()}:Pi(e)}function Go(e){return function(e,t){if("class"===t)return e.classes;if("style"===t)return e.styles;const n=e.attrs;if(n){const i=n.length;let r=0;for(;r<i;){const o=n[r];if(za(o))break;if(0===o)r+=2;else if("number"==typeof o)for(r++;r<i&&"string"==typeof n[r];)r++;else{if(o===t)return n[r+1];r+=2}}}return null}(ai(),e)}const os="__parameters__";function Ko(e,t,n){return ae(()=>{const i=function(e){return function(...n){if(e){const i=e(...n);for(const r in i)this[r]=i[r]}}}(t);function r(...o){if(this instanceof r)return i.apply(this,o),this;const a=new r(...o);return l.annotation=a,l;function l(f,C,P){const q=f.hasOwnProperty(os)?f[os]:Object.defineProperty(f,os,{value:[]})[os];for(;q.length<=P;)q.push(null);return(q[P]=q[P]||[]).push(a),f}}return n&&(r.prototype=Object.create(n.prototype)),r.prototype.ngMetadataName=e,r.annotationCls=r,r})}class mi{constructor(t,n){this._desc=t,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\u0275prov=rt({token:this,providedIn:n.providedIn||"root",factory:n.factory}))}toString(){return`InjectionToken ${this._desc}`}}const d8=new mi("AnalyzeForEntryComponents"),Oa=Function;function Tr(e,t){void 0===t&&(t=e);for(let n=0;n<e.length;n++){let i=e[n];Array.isArray(i)?(t===e&&(t=e.slice(0,n)),Tr(i,t)):t!==e&&t.push(i)}return t}function Zr(e,t){e.forEach(n=>Array.isArray(n)?Zr(n,t):t(n))}function ka(e,t,n){t>=e.length?e.push(n):e.splice(t,0,n)}function Qo(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function Ro(e,t){const n=[];for(let i=0;i<e;i++)n.push(t);return n}function gr(e,t,n){let i=as(e,t);return i>=0?e[1|i]=n:(i=~i,function(e,t,n,i){let r=e.length;if(r==t)e.push(n,i);else if(1===r)e.push(i,e[0]),e[0]=n;else{for(r--,e.push(e[r-1],e[r]);r>t;)e[r]=e[r-2],r--;e[t]=n,e[t+1]=i}}(e,i,t,n)),i}function Ac(e,t){const n=as(e,t);if(n>=0)return e[1|n]}function as(e,t){return function(e,t,n){let i=0,r=e.length>>n;for(;r!==i;){const o=i+(r-i>>1),a=e[o<<n];if(t===a)return o<<n;a>t?r=o:i=o+1}return~(r<<n)}(e,t,1)}const Rs={},Ic="__NG_DI_FLAG__",cs="ngTempTokenPath",M8=/\n/gm,Fc="__source",Vc=x({provide:String,useValue:x});let Ns;function ls(e){const t=Ns;return Ns=e,t}function E8(e,t=kt.Default){if(void 0===Ns)throw new Error("inject() must be called from an injection context");return null===Ns?Ae(e,void 0,t):Ns.get(e,t&kt.Optional?null:void 0,t)}function Ci(e,t=kt.Default){return(bn||E8)(V(e),t)}const w8=Ci;function Zo(e){const t=[];for(let n=0;n<e.length;n++){const i=V(e[n]);if(Array.isArray(i)){if(0===i.length)throw new Error("Arguments array must have arguments.");let r,o=kt.Default;for(let a=0;a<i.length;a++){const l=i[a],f=D8(l);"number"==typeof f?-1===f?r=l.token:o|=f:r=l}t.push(Ci(r,o))}else t.push(Ci(i))}return t}function Hs(e,t){return e[Ic]=t,e.prototype[Ic]=t,e}function D8(e){return e[Ic]}function Dl(e,t,n,i){const r=e[cs];throw t[Fc]&&r.unshift(t[Fc]),e.message=function(e,t,n,i=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.substr(2):e;let r=B(t);if(Array.isArray(t))r=t.map(B).join(" -> ");else if("object"==typeof t){let o=[];for(let a in t)if(t.hasOwnProperty(a)){let l=t[a];o.push(a+":"+("string"==typeof l?JSON.stringify(l):B(l)))}r=`{${o.join(", ")}}`}return`${n}${i?"("+i+")":""}[${r}]: ${e.replace(M8,"\n ")}`}("\n"+e.message,r,n,i),e.ngTokenPath=r,e[cs]=null,e}const us=Hs(Ko("Inject",e=>({token:e})),-1),Mo=Hs(Ko("Optional"),8),No=Hs(Ko("SkipSelf"),4);let La,Ra;function ds(e){var t;return(null===(t=function(){if(void 0===La&&(La=null,ce.trustedTypes))try{La=ce.trustedTypes.createPolicy("angular",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch(e){}return La}())||void 0===t?void 0:t.createHTML(e))||e}function Pl(e){var t;return(null===(t=function(){if(void 0===Ra&&(Ra=null,ce.trustedTypes))try{Ra=ce.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch(e){}return Ra}())||void 0===t?void 0:t.createHTML(e))||e}class qo{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see https://g.co/ng/security#xss)`}}class V8 extends qo{getTypeName(){return"HTML"}}class L8 extends qo{getTypeName(){return"Style"}}class R8 extends qo{getTypeName(){return"Script"}}class N8 extends qo{getTypeName(){return"URL"}}class H8 extends qo{getTypeName(){return"ResourceURL"}}function bo(e){return e instanceof qo?e.changingThisBreaksApplicationSecurity:e}function Jo(e,t){const n=kl(e);if(null!=n&&n!==t){if("ResourceURL"===n&&"URL"===t)return!0;throw new Error(`Required a safe ${t}, got a ${n} (see https://g.co/ng/security#xss)`)}return n===t}function kl(e){return e instanceof qo&&e.getTypeName()||null}function B8(e){return new V8(e)}function Y8(e){return new L8(e)}function Il(e){return new R8(e)}function j8(e){return new N8(e)}function U8(e){return new H8(e)}class $8{constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t="<body><remove></remove>"+t;try{const n=(new window.DOMParser).parseFromString(ds(t),"text/html").body;return null===n?this.inertDocumentHelper.getInertBodyElement(t):(n.removeChild(n.firstChild),n)}catch(n){return null}}}class W8{constructor(t){if(this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),null==this.inertDocument.body){const n=this.inertDocument.createElement("html");this.inertDocument.appendChild(n);const i=this.inertDocument.createElement("body");n.appendChild(i)}}getInertBodyElement(t){const n=this.inertDocument.createElement("template");if("content"in n)return n.innerHTML=ds(t),n;const i=this.inertDocument.createElement("body");return i.innerHTML=ds(t),this.defaultDoc.documentMode&&this.stripCustomNsAttrs(i),i}stripCustomNsAttrs(t){const n=t.attributes;for(let r=n.length-1;0<r;r--){const a=n.item(r).name;("xmlns:ns1"===a||0===a.indexOf("ns1:"))&&t.removeAttribute(a)}let i=t.firstChild;for(;i;)i.nodeType===Node.ELEMENT_NODE&&this.stripCustomNsAttrs(i),i=i.nextSibling}}const K8=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi,Q8=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i;function Ys(e){return(e=String(e)).match(K8)||e.match(Q8)?e:"unsafe:"+e}function qr(e){const t={};for(const n of e.split(","))t[n]=!0;return t}function js(...e){const t={};for(const n of e)for(const i in n)n.hasOwnProperty(i)&&(t[i]=!0);return t}const Ll=qr("area,br,col,hr,img,wbr"),Rl=qr("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),Nl=qr("rp,rt"),Hc=js(Ll,js(Rl,qr("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),js(Nl,qr("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),js(Nl,Rl)),Bc=qr("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),Yc=qr("srcset"),Hl=js(Bc,Yc,qr("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),qr("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),q8=qr("script,style,template");class J8{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(t){let n=t.firstChild,i=!0;for(;n;)if(n.nodeType===Node.ELEMENT_NODE?i=this.startElement(n):n.nodeType===Node.TEXT_NODE?this.chars(n.nodeValue):this.sanitizedSomething=!0,i&&n.firstChild)n=n.firstChild;else for(;n;){n.nodeType===Node.ELEMENT_NODE&&this.endElement(n);let r=this.checkClobberedElement(n,n.nextSibling);if(r){n=r;break}n=this.checkClobberedElement(n,n.parentNode)}return this.buf.join("")}startElement(t){const n=t.nodeName.toLowerCase();if(!Hc.hasOwnProperty(n))return this.sanitizedSomething=!0,!q8.hasOwnProperty(n);this.buf.push("<"),this.buf.push(n);const i=t.attributes;for(let r=0;r<i.length;r++){const o=i.item(r),a=o.name,l=a.toLowerCase();if(!Hl.hasOwnProperty(l)){this.sanitizedSomething=!0;continue}let f=o.value;Bc[l]&&(f=Ys(f)),Yc[l]&&(e=f,f=(e=String(e)).split(",").map(t=>Ys(t.trim())).join(", ")),this.buf.push(" ",a,'="',Bl(f),'"')}var e;return this.buf.push(">"),!0}endElement(t){const n=t.nodeName.toLowerCase();Hc.hasOwnProperty(n)&&!Ll.hasOwnProperty(n)&&(this.buf.push("</"),this.buf.push(n),this.buf.push(">"))}chars(t){this.buf.push(Bl(t))}checkClobberedElement(t,n){if(n&&(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${t.outerHTML}`);return n}}const X8=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,e6=/([^\#-~ |!])/g;function Bl(e){return e.replace(/&/g,"&").replace(X8,function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"}).replace(e6,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(/</g,"<").replace(/>/g,">")}let Na;function Yl(e,t){let n=null;try{Na=Na||function(e){const t=new W8(e);return function(){try{return!!(new window.DOMParser).parseFromString(ds(""),"text/html")}catch(e){return!1}}()?new $8(t):t}(e);let i=t?String(t):"";n=Na.getInertBodyElement(i);let r=5,o=i;do{if(0===r)throw new Error("Failed to sanitize html because the input is unstable");r--,i=o,o=n.innerHTML,n=Na.getInertBodyElement(i)}while(i!==o);return ds((new J8).sanitizeChildren(jc(n)||n))}finally{if(n){const i=jc(n)||n;for(;i.firstChild;)i.removeChild(i.firstChild)}}}function jc(e){return"content"in e&&function(e){return e.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===e.nodeName}(e)?e.content:null}var gi=(()=>((gi=gi||{})[gi.NONE=0]="NONE",gi[gi.HTML=1]="HTML",gi[gi.STYLE=2]="STYLE",gi[gi.SCRIPT=3]="SCRIPT",gi[gi.URL=4]="URL",gi[gi.RESOURCE_URL=5]="RESOURCE_URL",gi))();function jl(e){const t=Us();return t?Pl(t.sanitize(gi.HTML,e)||""):Jo(e,"HTML")?Pl(bo(e)):Yl(ht(),ut(e))}function Uc(e){const t=Us();return t?t.sanitize(gi.URL,e)||"":Jo(e,"URL")?bo(e):Ys(ut(e))}function Us(){const e=Et();return e&&e[12]}const Gl="__ngContext__";function Ui(e,t){e[Gl]=t}function Ha(e){const t=function(e){return e[Gl]||null}(e);return t?Array.isArray(t)?t:t.lView:null}function Ba(e){return e.ngOriginalError}function m6(e,...t){e.error(...t)}class fs{constructor(){this._console=console}handleError(t){const n=this._findOriginalError(t),i=this._findContext(t),r=(e=t)&&e.ngErrorLogger||m6;var e;r(this._console,"ERROR",t),n&&r(this._console,"ORIGINAL ERROR",n),i&&r(this._console,"ERROR CONTEXT",i)}_findContext(t){return t?t.ngDebugContext||this._findContext(Ba(t)):null}_findOriginalError(t){let n=t&&Ba(t);for(;n&&Ba(n);)n=Ba(n);return n||null}}const i4=(()=>("undefined"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(ce))();function Jr(e){return e instanceof Function?e():e}var Xr=(()=>((Xr=Xr||{})[Xr.Important=1]="Important",Xr[Xr.DashCase=2]="DashCase",Xr))();function Kc(e,t){return undefined(e,t)}function Ws(e){const t=e[3];return Hn(t)?t[3]:t}function Qc(e){return c4(e[13])}function Zc(e){return c4(e[4])}function c4(e){for(;null!==e&&!Hn(e);)e=e[4];return e}function ms(e,t,n,i,r){if(null!=i){let o,a=!1;Hn(i)?o=i:Xn(i)&&(a=!0,i=i[0]);const l=Me(i);0===e&&null!==n?null==r?p4(t,n,l):Xo(t,n,l,r||null,!0):1===e&&null!==n?Xo(t,n,l,r||null,!0):2===e?function(e,t,n){const i=ja(e,t);i&&function(e,t,n,i){b(e)?e.removeChild(t,n,i):t.removeChild(n)}(e,i,t,n)}(t,l,a):3===e&&t.destroyNode(l),null!=o&&function(e,t,n,i,r){const o=n[7];o!==Me(n)&&ms(t,e,i,o,r);for(let l=10;l<n.length;l++){const f=n[l];Gs(f[1],f,e,t,i,o)}}(t,e,o,n,r)}}function Jc(e,t,n){return b(e)?e.createElement(t,n):null===n?e.createElement(t):e.createElementNS(n,t)}function u4(e,t){const n=e[9],i=n.indexOf(t),r=t[3];1024&t[2]&&(t[2]&=-1025,Li(r,-1)),n.splice(i,1)}function Xc(e,t){if(e.length<=10)return;const n=10+t,i=e[n];if(i){const r=i[17];null!==r&&r!==e&&u4(r,i),t>0&&(e[n-1][4]=i[4]);const o=Qo(e,10+t);!function(e,t){Gs(e,t,t[11],2,null,null),t[0]=null,t[6]=null}(i[1],i);const a=o[M];null!==a&&a.detachView(o[1]),i[3]=null,i[4]=null,i[2]&=-129}return i}function h4(e,t){if(!(256&t[2])){const n=t[11];b(n)&&n.destroyNode&&Gs(e,t,n,3,null,null),function(e){let t=e[13];if(!t)return e1(e[1],e);for(;t;){let n=null;if(Xn(t))n=t[13];else{const i=t[10];i&&(n=i)}if(!n){for(;t&&!t[4]&&t!==e;)Xn(t)&&e1(t[1],t),t=t[3];null===t&&(t=e),Xn(t)&&e1(t[1],t),n=t&&t[4]}t=n}}(t)}}function e1(e,t){if(!(256&t[2])){t[2]&=-129,t[2]|=256,function(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let i=0;i<n.length;i+=2){const r=t[n[i]];if(!(r instanceof ji)){const o=n[i+1];if(Array.isArray(o))for(let a=0;a<o.length;a+=2){const l=r[o[a]],f=o[a+1];try{f.call(l)}finally{}}else try{o.call(r)}finally{}}}}(e,t),function(e,t){const n=e.cleanup,i=t[7];let r=-1;if(null!==n)for(let o=0;o<n.length-1;o+=2)if("string"==typeof n[o]){const a=n[o+1],l="function"==typeof a?a(t):Me(t[a]),f=i[r=n[o+2]],C=n[o+3];"boolean"==typeof C?l.removeEventListener(n[o],f,C):C>=0?i[r=C]():i[r=-C].unsubscribe(),o+=2}else{const a=i[r=n[o+1]];n[o].call(a)}if(null!==i){for(let o=r+1;o<i.length;o++)i[o]();t[7]=null}}(e,t),1===t[1].type&&b(t[11])&&t[11].destroy();const n=t[17];if(null!==n&&Hn(t[3])){n!==t[3]&&u4(n,t);const i=t[M];null!==i&&i.detachView(e)}}}function d4(e,t,n){return function(e,t,n){let i=t;for(;null!==i&&40&i.type;)i=(t=i).parent;if(null===i)return n[0];if(2&i.flags){const r=e.data[i.directiveStart].encapsulation;if(r===G.None||r===G.Emulated)return null}return mn(i,n)}(e,t.parent,n)}function Xo(e,t,n,i,r){b(e)?e.insertBefore(t,n,i,r):t.insertBefore(n,i,r)}function p4(e,t,n){b(e)?e.appendChild(t,n):t.appendChild(n)}function m4(e,t,n,i,r){null!==i?Xo(e,t,n,i,r):p4(e,t,n)}function ja(e,t){return b(e)?e.parentNode(t):t.parentNode}function g4(e,t,n){return _4(e,t,n)}let _4=function(e,t,n){return 40&e.type?mn(e,n):null};function Ua(e,t,n,i){const r=d4(e,i,t),o=t[11],l=g4(i.parent||t[6],i,t);if(null!=r)if(Array.isArray(n))for(let f=0;f<n.length;f++)m4(o,r,n[f],l,!1);else m4(o,r,n,l,!1)}function $a(e,t){if(null!==t){const n=t.type;if(3&n)return mn(t,e);if(4&n)return n1(-1,e[t.index]);if(8&n){const i=t.child;if(null!==i)return $a(e,i);{const r=e[t.index];return Hn(r)?n1(-1,r):Me(r)}}if(32&n)return Kc(t,e)()||Me(e[t.index]);{const i=C4(e,t);return null!==i?Array.isArray(i)?i[0]:$a(Ws(e[16]),i):$a(e,t.next)}}return null}function C4(e,t){return null!==t?e[16][6].projection[t.projection]:null}function n1(e,t){const n=10+e+1;if(n<t.length){const i=t[n],r=i[1].firstChild;if(null!==r)return $a(i,r)}return t[7]}function r1(e,t,n,i,r,o,a){for(;null!=n;){const l=i[n.index],f=n.type;if(a&&0===t&&(l&&Ui(Me(l),i),n.flags|=4),64!=(64&n.flags))if(8&f)r1(e,t,n.child,i,r,o,!1),ms(t,e,r,l,o);else if(32&f){const C=Kc(n,i);let P;for(;P=C();)ms(t,e,r,P,o);ms(t,e,r,l,o)}else 16&f?b4(e,t,i,n,r,o):ms(t,e,r,l,o);n=a?n.projectionNext:n.next}}function Gs(e,t,n,i,r,o){r1(n,i,e.firstChild,t,r,o,!1)}function b4(e,t,n,i,r,o){const a=n[16],f=a[6].projection[i.projection];if(Array.isArray(f))for(let C=0;C<f.length;C++)ms(t,e,r,f[C],o);else r1(e,t,f,a[3],r,o,!0)}function E4(e,t,n){b(e)?e.setAttribute(t,"style",n):t.style.cssText=n}function Wa(e,t,n){b(e)?""===n?e.removeAttribute(t,"class"):e.setAttribute(t,"class",n):t.className=n}function w4(e,t,n){let i=e.length;for(;;){const r=e.indexOf(t,n);if(-1===r)return r;if(0===r||e.charCodeAt(r-1)<=32){const o=t.length;if(r+o===i||e.charCodeAt(r+o)<=32)return r}n=r+1}}const D4="ng-template";function Y6(e,t,n){let i=0;for(;i<e.length;){let r=e[i++];if(n&&"class"===r){if(r=e[i],-1!==w4(r.toLowerCase(),t,0))return!0}else if(1===r){for(;i<e.length&&"string"==typeof(r=e[i++]);)if(r.toLowerCase()===t)return!0;return!1}}return!1}function S4(e){return 4===e.type&&e.value!==D4}function j6(e,t,n){return t===(4!==e.type||n?e.value:D4)}function U6(e,t,n){let i=4;const r=e.attrs||[],o=function(e){for(let t=0;t<e.length;t++)if(za(e[t]))return t;return e.length}(r);let a=!1;for(let l=0;l<t.length;l++){const f=t[l];if("number"!=typeof f){if(!a)if(4&i){if(i=2|1&i,""!==f&&!j6(e,f,n)||""===f&&1===t.length){if(Lr(i))return!1;a=!0}}else{const C=8&i?f:t[++l];if(8&i&&null!==e.attrs){if(!Y6(e.attrs,C,n)){if(Lr(i))return!1;a=!0}continue}const q=$6(8&i?"class":f,r,S4(e),n);if(-1===q){if(Lr(i))return!1;a=!0;continue}if(""!==C){let ie;ie=q>o?"":r[q+1].toLowerCase();const ze=8&i?ie:null;if(ze&&-1!==w4(ze,C,0)||2&i&&C!==ie){if(Lr(i))return!1;a=!0}}}}else{if(!a&&!Lr(i)&&!Lr(f))return!1;if(a&&Lr(f))continue;a=!1,i=f|1&i}}return Lr(i)||a}function Lr(e){return 0==(1&e)}function $6(e,t,n,i){if(null===t)return-1;let r=0;if(i||!n){let o=!1;for(;r<t.length;){const a=t[r];if(a===e)return r;if(3===a||6===a)o=!0;else{if(1===a||2===a){let l=t[++r];for(;"string"==typeof l;)l=t[++r];continue}if(4===a)break;if(0===a){r+=4;continue}}r+=o?1:2}return-1}return function(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){const i=e[n];if("number"==typeof i)return-1;if(i===t)return n;n++}return-1}(t,e)}function z4(e,t,n=!1){for(let i=0;i<t.length;i++)if(U6(e,t[i],n))return!0;return!1}function Q6(e,t){e:for(let n=0;n<t.length;n++){const i=t[n];if(e.length===i.length){for(let r=0;r<e.length;r++)if(e[r]!==i[r])continue e;return!0}}return!1}function T4(e,t){return e?":not("+t.trim()+")":t}function Z6(e){let t=e[0],n=1,i=2,r="",o=!1;for(;n<e.length;){let a=e[n];if("string"==typeof a)if(2&i){const l=e[++n];r+="["+a+(l.length>0?'="'+l+'"':"")+"]"}else 8&i?r+="."+a:4&i&&(r+=" "+a);else""!==r&&!Lr(a)&&(t+=T4(o,r),r=""),i=a,o=o||!Lr(i);n++}return""!==r&&(t+=T4(o,r)),t}const Cn={};function x4(e){P4(Pn(),Et(),Kn()+e,R())}function P4(e,t,n,i){if(!i)if(3==(3&t[2])){const o=e.preOrderCheckHooks;null!==o&&Ai(t,o,n)}else{const o=e.preOrderHooks;null!==o&&$n(t,o,0,n)}ar(n)}function Ga(e,t){return e<<17|t<<2}function Rr(e){return e>>17&32767}function s1(e){return 2|e}function Eo(e){return(131068&e)>>2}function a1(e,t){return-131069&e|t<<2}function c1(e){return 1|e}function H4(e,t){const n=e.contentQueries;if(null!==n)for(let i=0;i<n.length;i+=2){const r=n[i],o=n[i+1];if(-1!==o){const a=e.data[o];ii(r),a.contentQueries(2,t[o],o)}}}function Ks(e,t,n,i,r,o,a,l,f,C){const P=t.blueprint.slice();return P[0]=r,P[2]=140|i,ir(P),P[3]=P[15]=e,P[8]=n,P[10]=a||e&&e[10],P[11]=l||e&&e[11],P[12]=f||e&&e[12]||null,P[9]=C||e&&e[9]||null,P[6]=o,P[16]=2==t.type?e[16]:P,P}function gs(e,t,n,i,r){let o=e.data[t];if(null===o)o=function(e,t,n,i,r){const o=jo(),a=L(),f=e.data[t]=function(e,t,n,i,r,o){return{type:n,index:i,insertBeforeIndex:null,injectorIndex:t?t.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,propertyBindings:null,flags:0,providerIndexes:0,value:r,attrs:o,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tViews:null,next:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,a?o:o&&o.parent,n,t,i,r);return null===e.firstChild&&(e.firstChild=f),null!==o&&(a?null==o.child&&null!==f.parent&&(o.child=f):null===o.next&&(o.next=f)),f}(e,t,n,i,r),sn.lFrame.inI18n&&(o.flags|=64);else if(64&o.type){o.type=n,o.value=i,o.attrs=r;const a=function(){const e=sn.lFrame,t=e.currentTNode;return e.isParent?t:t.parent}();o.injectorIndex=null===a?-1:a.injectorIndex}return mr(o,!0),o}function vs(e,t,n,i){if(0===n)return-1;const r=t.length;for(let o=0;o<n;o++)t.push(i),e.blueprint.push(i),e.data.push(null);return r}function Qs(e,t,n){rr(t);try{const i=e.viewQuery;null!==i&&D1(1,i,n);const r=e.template;null!==r&&B4(e,t,r,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),e.staticContentQueries&&H4(e,t),e.staticViewQueries&&D1(2,e.viewQuery,n);const o=e.components;null!==o&&function(e,t){for(let n=0;n<t.length;n++)P0(e,t[n])}(t,o)}catch(i){throw e.firstCreatePass&&(e.incompleteFirstPass=!0,e.firstCreatePass=!1),i}finally{t[2]&=-5,Oi()}}function _s(e,t,n,i){const r=t[2];if(256==(256&r))return;rr(t);const o=R();try{ir(t),function(e){sn.lFrame.bindingIndex=e}(e.bindingStartIndex),null!==n&&B4(e,t,n,2,i);const a=3==(3&r);if(!o)if(a){const C=e.preOrderCheckHooks;null!==C&&Ai(t,C,null)}else{const C=e.preOrderHooks;null!==C&&$n(t,C,0,null),Er(t,0)}if(function(e){for(let t=Qc(e);null!==t;t=Zc(t)){if(!t[2])continue;const n=t[9];for(let i=0;i<n.length;i++){const r=n[i],o=r[3];0==(1024&r[2])&&Li(o,1),r[2]|=1024}}}(t),function(e){for(let t=Qc(e);null!==t;t=Zc(t))for(let n=10;n<t.length;n++){const i=t[n],r=i[1];ui(i)&&_s(r,i,r.template,i[8])}}(t),null!==e.contentQueries&&H4(e,t),!o)if(a){const C=e.contentCheckHooks;null!==C&&Ai(t,C)}else{const C=e.contentHooks;null!==C&&$n(t,C,1),Er(t,1)}!function(e,t){const n=e.hostBindingOpCodes;if(null!==n)try{for(let i=0;i<n.length;i++){const r=n[i];if(r<0)ar(~r);else{const o=r,a=n[++i],l=n[++i];On(a,o),l(2,t[o])}}}finally{ar(-1)}}(e,t);const l=e.components;null!==l&&function(e,t){for(let n=0;n<t.length;n++)x0(e,t[n])}(t,l);const f=e.viewQuery;if(null!==f&&D1(2,f,i),!o)if(a){const C=e.viewCheckHooks;null!==C&&Ai(t,C)}else{const C=e.viewHooks;null!==C&&$n(t,C,2),Er(t,2)}!0===e.firstUpdatePass&&(e.firstUpdatePass=!1),o||(t[2]&=-73),1024&t[2]&&(t[2]&=-1025,Li(t[3],-1))}finally{Oi()}}function h0(e,t,n,i){const r=t[10],o=!R(),a=Gn(t);try{o&&!a&&r.begin&&r.begin(),a&&Qs(e,t,i),_s(e,t,n,i)}finally{o&&!a&&r.end&&r.end()}}function B4(e,t,n,i,r){const o=Kn(),a=2&i;try{ar(-1),a&&t.length>k&&P4(e,t,k,R()),n(i,r)}finally{ar(o)}}function Y4(e,t,n){if(Fi(t)){const r=t.directiveEnd;for(let o=t.directiveStart;o<r;o++){const a=e.data[o];a.contentQueries&&a.contentQueries(1,n[o],o)}}}function g1(e,t,n){!fo()||(function(e,t,n,i){const r=n.directiveStart,o=n.directiveEnd;e.firstCreatePass||g(n,t),Ui(i,t);const a=n.initialInputs;for(let l=r;l<o;l++){const f=e.data[l],C=xi(f);C&&w0(t,n,f);const P=In(t,e,l,n);Ui(P,t),null!==a&&D0(0,l-r,P,f,0,a),C&&(Ln(n.index,t)[8]=P)}}(e,t,n,mn(n,t)),128==(128&n.flags)&&function(e,t,n){const i=n.directiveStart,r=n.directiveEnd,a=n.index,l=sn.lFrame.currentDirectiveIndex;try{ar(a);for(let f=i;f<r;f++){const C=e.data[f],P=t[f];an(f),(null!==C.hostBindings||0!==C.hostVars||null!==C.hostAttrs)&&Q4(C,P)}}finally{ar(-1),an(l)}}(e,t,n))}function v1(e,t,n=mn){const i=t.localNames;if(null!==i){let r=t.index+1;for(let o=0;o<i.length;o+=2){const a=i[o+1],l=-1===a?n(t,e):e[a];e[r++]=l}}}function j4(e){const t=e.tView;return null===t||t.incompleteFirstPass?e.tView=Za(1,null,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts):t}function Za(e,t,n,i,r,o,a,l,f,C){const P=k+i,q=P+r,ie=function(e,t){const n=[];for(let i=0;i<t;i++)n.push(i<e?null:Cn);return n}(P,q),ze="function"==typeof C?C():C;return ie[1]={type:e,blueprint:ie,template:n,queries:null,viewQuery:l,declTNode:t,data:ie.slice().fill(null,P),bindingStartIndex:P,expandoStartIndex:q,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:"function"==typeof o?o():o,pipeRegistry:"function"==typeof a?a():a,firstChild:null,schemas:f,consts:ze,incompleteFirstPass:!1}}function W4(e,t,n,i){const r=n2(t);null===n?r.push(i):(r.push(n),e.firstCreatePass&&r2(e).push(i,r.length-1))}function G4(e,t,n){for(let i in e)if(e.hasOwnProperty(i)){const r=e[i];(n=null===n?{}:n).hasOwnProperty(i)?n[i].push(t,r):n[i]=[t,r]}return n}function vr(e,t,n,i,r,o,a,l){const f=mn(t,n);let P,C=t.inputs;!l&&null!=C&&(P=C[i])?(a2(e,n,P,i,r),bi(t)&&function(e,t){const n=Ln(t,e);16&n[2]||(n[2]|=64)}(n,t.index)):3&t.type&&(i=function(e){return"class"===e?"className":"for"===e?"htmlFor":"formaction"===e?"formAction":"innerHtml"===e?"innerHTML":"readonly"===e?"readOnly":"tabindex"===e?"tabIndex":e}(i),r=null!=a?a(r,t.value||"",i):r,b(o)?o.setProperty(f,i,r):As(i)||(f.setProperty?f.setProperty(i,r):f[i]=r))}function _1(e,t,n,i){let r=!1;if(fo()){const o=function(e,t,n){const i=e.directiveRegistry;let r=null;if(i)for(let o=0;o<i.length;o++){const a=i[o];z4(n,a.selectors,!1)&&(r||(r=[]),O(g(n,t),e,a.type),xi(a)?(Z4(e,n),r.unshift(a)):r.push(a))}return r}(e,t,n),a=null===i?null:{"":-1};if(null!==o){r=!0,J4(n,e.data.length,o.length);for(let P=0;P<o.length;P++){const q=o[P];q.providersResolver&&q.providersResolver(q)}let l=!1,f=!1,C=vs(e,t,o.length,null);for(let P=0;P<o.length;P++){const q=o[P];n.mergedAttrs=is(n.mergedAttrs,q.hostAttrs),X4(e,n,t,C,q),q4(C,q,a),null!==q.contentQueries&&(n.flags|=8),(null!==q.hostBindings||null!==q.hostAttrs||0!==q.hostVars)&&(n.flags|=128);const ie=q.type.prototype;!l&&(ie.ngOnChanges||ie.ngOnInit||ie.ngDoCheck)&&((e.preOrderHooks||(e.preOrderHooks=[])).push(n.index),l=!0),!f&&(ie.ngOnChanges||ie.ngDoCheck)&&((e.preOrderCheckHooks||(e.preOrderCheckHooks=[])).push(n.index),f=!0),C++}!function(e,t){const i=t.directiveEnd,r=e.data,o=t.attrs,a=[];let l=null,f=null;for(let C=t.directiveStart;C<i;C++){const P=r[C],q=P.inputs,ie=null===o||S4(t)?null:S0(q,o);a.push(ie),l=G4(q,C,l),f=G4(P.outputs,C,f)}null!==l&&(l.hasOwnProperty("class")&&(t.flags|=16),l.hasOwnProperty("style")&&(t.flags|=32)),t.initialInputs=a,t.inputs=l,t.outputs=f}(e,n)}a&&function(e,t,n){if(t){const i=e.localNames=[];for(let r=0;r<t.length;r+=2){const o=n[t[r+1]];if(null==o)throw new Ke("301",`Export of name '${t[r+1]}' not found!`);i.push(t[r],o)}}}(n,i,a)}return n.mergedAttrs=is(n.mergedAttrs,n.attrs),r}function y1(e,t,n,i,r,o){const a=o.hostBindings;if(a){let l=e.hostBindingOpCodes;null===l&&(l=e.hostBindingOpCodes=[]);const f=~t.index;(function(e){let t=e.length;for(;t>0;){const n=e[--t];if("number"==typeof n&&n<0)return n}return 0})(l)!=f&&l.push(f),l.push(i,r,a)}}function Q4(e,t){null!==e.hostBindings&&e.hostBindings(1,t)}function Z4(e,t){t.flags|=2,(e.components||(e.components=[])).push(t.index)}function q4(e,t,n){if(n){if(t.exportAs)for(let i=0;i<t.exportAs.length;i++)n[t.exportAs[i]]=e;xi(t)&&(n[""]=e)}}function J4(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function X4(e,t,n,i,r){e.data[i]=r;const o=r.factory||(r.factory=Pi(r.type)),a=new ji(o,xi(r),null);e.blueprint[i]=a,n[i]=a,y1(e,t,0,i,vs(e,n,r.hostVars,Cn),r)}function w0(e,t,n){const i=mn(t,e),r=j4(n),o=e[10],a=qa(e,Ks(e,r,null,n.onPush?64:16,i,t,o,o.createRenderer(i,n),null,null));e[t.index]=a}function eo(e,t,n,i,r,o){const a=mn(e,t);!function(e,t,n,i,r,o,a){if(null==o)b(e)?e.removeAttribute(t,r,n):t.removeAttribute(r);else{const l=null==a?ut(o):a(o,i||"",r);b(e)?e.setAttribute(t,r,l,n):n?t.setAttributeNS(n,r,l):t.setAttribute(r,l)}}(t[11],a,o,e.value,n,i,r)}function D0(e,t,n,i,r,o){const a=o[t];if(null!==a){const l=i.setInput;for(let f=0;f<a.length;){const C=a[f++],P=a[f++],q=a[f++];null!==l?i.setInput(n,q,C,P):n[P]=q}}}function S0(e,t){let n=null,i=0;for(;i<t.length;){const r=t[i];if(0!==r)if(5!==r){if("number"==typeof r)break;e.hasOwnProperty(r)&&(null===n&&(n=[]),n.push(r,e[r],t[i+1])),i+=2}else i+=2;else i+=4}return n}function e2(e,t,n,i){return new Array(e,!0,!1,t,null,0,i,n,null,null)}function x0(e,t){const n=Ln(t,e);if(ui(n)){const i=n[1];80&n[2]?_s(i,n,i.template,n[8]):n[5]>0&&M1(n)}}function M1(e){for(let i=Qc(e);null!==i;i=Zc(i))for(let r=10;r<i.length;r++){const o=i[r];if(1024&o[2]){const a=o[1];_s(a,o,a.template,o[8])}else o[5]>0&&M1(o)}const n=e[1].components;if(null!==n)for(let i=0;i<n.length;i++){const r=Ln(n[i],e);ui(r)&&r[5]>0&&M1(r)}}function P0(e,t){const n=Ln(t,e),i=n[1];(function(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])})(i,n),Qs(i,n,n[8])}function qa(e,t){return e[13]?e[14][4]=t:e[13]=t,e[14]=t,t}function b1(e){for(;e;){e[2]|=64;const t=Ws(e);if(hi(e)&&!t)return e;e=t}return null}function w1(e,t,n){const i=t[10];i.begin&&i.begin();try{_s(e,t,e.template,n)}catch(r){throw s2(t,r),r}finally{i.end&&i.end()}}function t2(e){!function(e){for(let t=0;t<e.components.length;t++){const n=e.components[t],i=Ha(n),r=i[1];h0(r,i,r.template,n)}}(e[8])}function D1(e,t,n){ii(0),t(e,n)}const F0=(()=>Promise.resolve(null))();function n2(e){return e[7]||(e[7]=[])}function r2(e){return e.cleanup||(e.cleanup=[])}function o2(e,t,n){return(null===e||xi(e))&&(n=function(e){for(;Array.isArray(e);){if("object"==typeof e[1])return e;e=e[0]}return null}(n[t.index])),n[11]}function s2(e,t){const n=e[9],i=n?n.get(fs,null):null;i&&i.handleError(t)}function a2(e,t,n,i,r){for(let o=0;o<n.length;){const a=n[o++],l=n[o++],f=t[a],C=e.data[a];null!==C.setInput?C.setInput(f,r,i,l):f[l]=r}}function Do(e,t,n){const i=Wt(t,e);!function(e,t,n){b(e)?e.setValue(t,n):t.textContent=n}(e[11],i,n)}function Ja(e,t,n){let i=n?e.styles:null,r=n?e.classes:null,o=0;if(null!==t)for(let a=0;a<t.length;a++){const l=t[a];"number"==typeof l?o=l:1==o?r=U(r,l):2==o&&(i=U(i,l+": "+t[++a]+";"))}n?e.styles=i:e.stylesWithoutHost=i,n?e.classes=r:e.classesWithoutHost=r}const ys=new mi("INJECTOR",-1);class c2{get(t,n=Rs){if(n===Rs){const i=new Error(`NullInjectorError: No provider for ${B(t)}!`);throw i.name="NullInjectorError",i}return n}}const Zs=new mi("Set Injector scope."),qs={},R0={};let S1;function l2(){return void 0===S1&&(S1=new c2),S1}function u2(e,t=null,n=null,i){return new H0(e,n,t||l2(),i)}class H0{constructor(t,n,i,r=null){this.parent=i,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const o=[];n&&Zr(n,l=>this.processProvider(l,t,n)),Zr([t],l=>this.processInjectorType(l,[],o)),this.records.set(ys,Cs(void 0,this));const a=this.records.get(Zs);this.scope=null!=a?a.value:null,this.source=r||("object"==typeof t?null:B(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,n=Rs,i=kt.Default){this.assertNotDestroyed();const r=ls(this),o=xe(void 0);try{if(!(i&kt.SkipSelf)){let l=this.records.get(t);if(void 0===l){const f=("function"==typeof(e=t)||"object"==typeof e&&e instanceof mi)&&Dt(t);l=f&&this.injectableDefInScope(f)?Cs(z1(t),qs):null,this.records.set(t,l)}if(null!=l)return this.hydrate(t,l)}return(i&kt.Self?l2():this.parent).get(t,n=i&kt.Optional&&n===Rs?null:n)}catch(a){if("NullInjectorError"===a.name){if((a[cs]=a[cs]||[]).unshift(B(t)),r)throw a;return Dl(a,t,"R3InjectorError",this.source)}throw a}finally{xe(o),ls(r)}var e}_resolveInjectorDefTypes(){this.injectorDefTypes.forEach(t=>this.get(t))}toString(){const t=[];return this.records.forEach((i,r)=>t.push(B(r))),`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error("Injector has already been destroyed.")}processInjectorType(t,n,i){if(!(t=V(t)))return!1;let r=wn(t);const o=null==r&&t.ngModule||void 0,a=void 0===o?t:o,l=-1!==i.indexOf(a);if(void 0!==o&&(r=wn(o)),null==r)return!1;if(null!=r.imports&&!l){let P;i.push(a);try{Zr(r.imports,q=>{this.processInjectorType(q,n,i)&&(void 0===P&&(P=[]),P.push(q))})}finally{}if(void 0!==P)for(let q=0;q<P.length;q++){const{ngModule:ie,providers:ze}=P[q];Zr(ze,He=>this.processProvider(He,ie,ze||X))}}this.injectorDefTypes.add(a);const f=Pi(a)||(()=>new a);this.records.set(a,Cs(f,qs));const C=r.providers;if(null!=C&&!l){const P=t;Zr(C,q=>this.processProvider(q,P,C))}return void 0!==o&&void 0!==t.providers}processProvider(t,n,i){let r=Ms(t=V(t))?t:V(t&&t.provide);const o=f2(e=t)?Cs(void 0,e.useValue):Cs(d2(e),qs);var e;if(Ms(t)||!0!==t.multi)this.records.get(r);else{let a=this.records.get(r);a||(a=Cs(void 0,qs,!0),a.factory=()=>Zo(a.multi),this.records.set(r,a)),r=t,a.multi.push(t)}this.records.set(r,o)}hydrate(t,n){return n.value===qs&&(n.value=R0,n.value=n.factory()),"object"==typeof n.value&&n.value&&null!==(e=n.value)&&"object"==typeof e&&"function"==typeof e.ngOnDestroy&&this.onDestroy.add(n.value),n.value;var e}injectableDefInScope(t){if(!t.providedIn)return!1;const n=V(t.providedIn);return"string"==typeof n?"any"===n||n===this.scope:this.injectorDefTypes.has(n)}}function z1(e){const t=Dt(e),n=null!==t?t.factory:Pi(e);if(null!==n)return n;if(e instanceof mi)throw new Error(`Token ${B(e)} is missing a \u0275prov definition.`);if(e instanceof Function)return function(e){const t=e.length;if(t>0){const i=Ro(t,"?");throw new Error(`Can't resolve all parameters for ${B(e)}: (${i.join(", ")}).`)}const n=function(e){const t=e&&(e[It]||e[rn]);if(t){const n=function(e){if(e.hasOwnProperty("name"))return e.name;const t=(""+e).match(/^function\s*([^\s(]+)/);return null===t?"":t[1]}(e);return console.warn(`DEPRECATED: DI is instantiating a token "${n}" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in a future version of Angular. Please add @Injectable() to the "${n}" class.`),t}return null}(e);return null!==n?()=>n.factory(e):()=>new e}(e);throw new Error("unreachable")}function d2(e,t,n){let i;if(Ms(e)){const r=V(e);return Pi(r)||z1(r)}if(f2(e))i=()=>V(e.useValue);else if(function(e){return!(!e||!e.useFactory)}(e))i=()=>e.useFactory(...Zo(e.deps||[]));else if(function(e){return!(!e||!e.useExisting)}(e))i=()=>Ci(V(e.useExisting));else{const r=V(e&&(e.useClass||e.provide));if(!function(e){return!!e.deps}(e))return Pi(r)||z1(r);i=()=>new r(...Zo(e.deps))}return i}function Cs(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function f2(e){return null!==e&&"object"==typeof e&&Vc in e}function Ms(e){return"function"==typeof e}const p2=function(e,t,n){return function(e,t=null,n=null,i){const r=u2(e,t,n,i);return r._resolveInjectorDefTypes(),r}({name:n},t,e,n)};class Zn{static create(t,n){return Array.isArray(t)?p2(t,n,""):p2(t.providers,t.parent,t.name||"")}}function Af(e,t){Di(Ha(e)[1],ai())}function x2(e){let t=function(e){return Object.getPrototypeOf(e.prototype).constructor}(e.type),n=!0;const i=[e];for(;t;){let r;if(xi(e))r=t.\u0275cmp||t.\u0275dir;else{if(t.\u0275cmp)throw new Error("Directives cannot inherit Components");r=t.\u0275dir}if(r){if(n){i.push(r);const a=e;a.inputs=P2(e.inputs),a.declaredInputs=P2(e.declaredInputs),a.outputs=P2(e.outputs);const l=r.hostBindings;l&&Vf(e,l);const f=r.viewQuery,C=r.contentQueries;if(f&&If(e,f),C&&Ff(e,C),S(e.inputs,r.inputs),S(e.declaredInputs,r.declaredInputs),S(e.outputs,r.outputs),xi(r)&&r.data.animation){const P=e.data;P.animation=(P.animation||[]).concat(r.data.animation)}}const o=r.features;if(o)for(let a=0;a<o.length;a++){const l=o[a];l&&l.ngInherit&&l(e),l===x2&&(n=!1)}}t=Object.getPrototypeOf(t)}!function(e){let t=0,n=null;for(let i=e.length-1;i>=0;i--){const r=e[i];r.hostVars=t+=r.hostVars,r.hostAttrs=is(r.hostAttrs,n=is(n,r.hostAttrs))}}(i)}function P2(e){return e===it?{}:e===X?[]:e}function If(e,t){const n=e.viewQuery;e.viewQuery=n?(i,r)=>{t(i,r),n(i,r)}:t}function Ff(e,t){const n=e.contentQueries;e.contentQueries=n?(i,r,o)=>{t(i,r,o),n(i,r,o)}:t}function Vf(e,t){const n=e.hostBindings;e.hostBindings=n?(i,r)=>{t(i,r),n(i,r)}:t}Zn.THROW_IF_NOT_FOUND=Rs,Zn.NULL=new c2,Zn.\u0275prov=rt({token:Zn,providedIn:"any",factory:()=>Ci(ys)}),Zn.__NG_ELEMENT_ID__=-1;let A1=null;function Xs(){if(!A1){const e=ce.Symbol;if(e&&e.iterator)A1=e.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let n=0;n<t.length;++n){const i=t[n];"entries"!==i&&"size"!==i&&Map.prototype[i]===Map.prototype.entries&&(A1=i)}}}return A1}class to{constructor(t){this.wrapped=t}static wrap(t){return new to(t)}static unwrap(t){return to.isWrapped(t)?t.wrapped:t}static isWrapped(t){return t instanceof to}}function ec(e){return!!O2(e)&&(Array.isArray(e)||!(e instanceof Map)&&Xs()in e)}function O2(e){return null!==e&&("function"==typeof e||"object"==typeof e)}function zo(e,t,n){return e[t]=n}function Qi(e,t,n){return!Object.is(e[t],n)&&(e[t]=n,!0)}function bs(e,t,n,i){const r=Qi(e,t,n);return Qi(e,t+1,i)||r}function A2(e,t,n,i){const r=Et();return Qi(r,vt(),t)&&(Pn(),eo(ri(),r,e,t,n,i)),A2}function ta(e,t,n,i){return Qi(e,vt(),n)?t+ut(n)+i:Cn}function Cu(e,t,n,i,r,o,a,l){const f=Et(),C=Pn(),P=e+k,q=C.firstCreatePass?function(e,t,n,i,r,o,a,l,f){const C=t.consts,P=gs(t,e,4,a||null,yi(C,l));_1(t,n,P,yi(C,f)),Di(t,P);const q=P.tViews=Za(2,P,i,r,o,t.directiveRegistry,t.pipeRegistry,null,t.schemas,C);return null!==t.queries&&(t.queries.template(t,P),q.queries=t.queries.embeddedTView(P)),P}(P,C,f,t,n,i,r,o,a):C.data[P];mr(q,!1);const ie=f[11].createComment("");Ua(C,f,ie,q),Ui(ie,f),qa(f,f[P]=e2(ie,f,ie,q)),Ti(q)&&g1(C,f,q),null!=a&&v1(f,q,l)}function Mu(e){return gn(sn.lFrame.contextLView,k+e)}function nc(e,t=kt.Default){const n=Et();return null===n?Ci(e,t):_t(ai(),n,V(e),t)}function L2(e,t,n){const i=Et();return Qi(i,vt(),t)&&vr(Pn(),ri(),i,e,t,i[11],n,!1),L2}function R2(e,t,n,i,r){const a=r?"class":"style";a2(e,n,t.inputs[a],a,i)}function N2(e,t,n,i){const r=Et(),o=Pn(),a=k+e,l=r[11],f=r[a]=Jc(l,t,sn.lFrame.currentNamespace),C=o.firstCreatePass?function(e,t,n,i,r,o,a){const l=t.consts,C=gs(t,e,2,r,yi(l,o));return _1(t,n,C,yi(l,a)),null!==C.attrs&&Ja(C,C.attrs,!1),null!==C.mergedAttrs&&Ja(C,C.mergedAttrs,!0),null!==t.queries&&t.queries.elementStart(t,C),C}(a,o,r,0,t,n,i):o.data[a];mr(C,!0);const P=C.mergedAttrs;null!==P&&Wo(l,f,P);const q=C.classes;null!==q&&Wa(l,f,q);const ie=C.styles;null!==ie&&E4(l,f,ie),64!=(64&C.flags)&&Ua(o,r,f,C),0===sn.lFrame.elementDepthCount&&Ui(f,r),sn.lFrame.elementDepthCount++,Ti(C)&&(g1(o,r,C),Y4(o,C,r)),null!==i&&v1(r,C)}function H2(){let e=ai();L()?u():(e=e.parent,mr(e,!1));const t=e;sn.lFrame.elementDepthCount--;const n=Pn();n.firstCreatePass&&(Di(n,e),Fi(e)&&n.queries.elementEnd(e)),null!=t.classesWithoutHost&&function(e){return 0!=(16&e.flags)}(t)&&R2(n,t,Et(),t.classesWithoutHost,!0),null!=t.stylesWithoutHost&&function(e){return 0!=(32&e.flags)}(t)&&R2(n,t,Et(),t.stylesWithoutHost,!1)}function ku(e,t,n,i){N2(e,t,n,i),H2()}function B2(e,t,n){const i=Et(),r=Pn(),o=e+k,a=r.firstCreatePass?function(e,t,n,i,r){const o=t.consts,a=yi(o,i),l=gs(t,e,8,"ng-container",a);return null!==a&&Ja(l,a,!0),_1(t,n,l,yi(o,r)),null!==t.queries&&t.queries.elementStart(t,l),l}(o,r,i,t,n):r.data[o];mr(a,!0);const l=i[o]=i[11].createComment("");Ua(r,i,l,a),Ui(l,i),Ti(a)&&(g1(r,i,a),Y4(r,a,i)),null!=n&&v1(i,a)}function Y2(){let e=ai();const t=Pn();L()?u():(e=e.parent,mr(e,!1)),t.firstCreatePass&&(Di(t,e),Fi(e)&&t.queries.elementEnd(e))}function Iu(e,t,n){B2(e,t,n),Y2()}function Fu(){return Et()}function j2(e){return!!e&&"function"==typeof e.then}function Vu(e){return!!e&&"function"==typeof e.subscribe}const U2=Vu;function $2(e,t,n,i){const r=Et(),o=Pn(),a=ai();return Lu(o,r,r[11],a,e,t,!!n,i),$2}function W2(e,t){const n=ai(),i=Et(),r=Pn();return Lu(r,i,o2(Dn(r.data),n,i),n,e,t,!1),W2}function Lu(e,t,n,i,r,o,a,l){const f=Ti(i),P=e.firstCreatePass&&r2(e),q=t[8],ie=n2(t);let ze=!0;if(3&i.type||l){const et=mn(i,t),Pt=l?l(et):et,Mt=ie.length,qt=l?fn=>l(Me(fn[i.index])):i.index;if(b(n)){let fn=null;if(!l&&f&&(fn=function(e,t,n,i){const r=e.cleanup;if(null!=r)for(let o=0;o<r.length-1;o+=2){const a=r[o];if(a===n&&r[o+1]===i){const l=t[7],f=r[o+2];return l.length>f?l[f]:null}"string"==typeof a&&(o+=2)}return null}(e,t,r,i.index)),null!==fn)(fn.__ngLastListenerFn__||fn).__ngNextListenerFn__=o,fn.__ngLastListenerFn__=o,ze=!1;else{o=G2(i,t,q,o,!1);const Rn=n.listen(Pt,r,o);ie.push(o,Rn),P&&P.push(r,qt,Mt,Mt+1)}}else o=G2(i,t,q,o,!0),Pt.addEventListener(r,o,a),ie.push(o),P&&P.push(r,qt,Mt,a)}else o=G2(i,t,q,o,!1);const He=i.outputs;let dt;if(ze&&null!==He&&(dt=He[r])){const et=dt.length;if(et)for(let Pt=0;Pt<et;Pt+=2){const Ii=t[dt[Pt]][dt[Pt+1]].subscribe(o),jr=ie.length;ie.push(o,Ii),P&&P.push(r,i.index,jr,-(jr+1))}}}function Ru(e,t,n,i){try{return!1!==n(i)}catch(r){return s2(e,r),!1}}function G2(e,t,n,i,r){return function o(a){if(a===Function)return i;const l=2&e.flags?Ln(e.index,t):t;0==(32&t[2])&&b1(l);let f=Ru(t,0,i,a),C=o.__ngNextListenerFn__;for(;C;)f=Ru(t,0,C,a)&&f,C=C.__ngNextListenerFn__;return r&&!1===f&&(a.preventDefault(),a.returnValue=!1),f}}function Nu(e=1){return function(e){return(sn.lFrame.contextLView=function(e,t){for(;e>0;)t=t[15],e--;return t}(e,sn.lFrame.contextLView))[8]}(e)}function gp(e,t){let n=null;const i=function(e){const t=e.attrs;if(null!=t){const n=t.indexOf(5);if(0==(1&n))return t[n+1]}return null}(e);for(let r=0;r<t.length;r++){const o=t[r];if("*"!==o){if(null===i?z4(e,o,!0):Q6(i,o))return r}else n=r}return n}function Hu(e){const t=Et()[16][6];if(!t.projection){const i=t.projection=Ro(e?e.length:1,null),r=i.slice();let o=t.child;for(;null!==o;){const a=e?gp(o,e):0;null!==a&&(r[a]?r[a].projectionNext=o:i[a]=o,r[a]=o),o=o.next}}}function Bu(e,t=0,n){const i=Et(),r=Pn(),o=gs(r,k+e,16,null,n||null);null===o.projection&&(o.projection=t),u(),64!=(64&o.flags)&&function(e,t,n){b4(t[11],0,t,n,d4(e,n,t),g4(n.parent||t[6],n,t))}(r,i,o)}function F1(e,t,n,i,r){const o=Et(),a=ta(o,t,n,i);return a!==Cn&&vr(Pn(),ri(),o,e,a,o[11],r,!1),F1}function K2(e,t,n,i,r,o,a){const l=Et(),f=function(e,t,n,i,r,o){const l=bs(e,Te(),n,r);return At(2),l?t+ut(n)+i+ut(r)+o:Cn}(l,t,n,i,r,o);return f!==Cn&&vr(Pn(),ri(),l,e,f,l[11],a,!1),K2}function Zu(e,t,n,i,r){const o=e[n+1],a=null===t;let l=i?Rr(o):Eo(o),f=!1;for(;0!==l&&(!1===f||a);){const P=e[l+1];yp(e[l],t)&&(f=!0,e[l+1]=i?c1(P):s1(P)),l=i?Rr(P):Eo(P)}f&&(e[n+1]=i?s1(o):c1(o))}function yp(e,t){return null===e||null==t||(Array.isArray(e)?e[1]:e)===t||!(!Array.isArray(e)||"string"!=typeof t)&&as(e,t)>=0}const ki={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function qu(e){return e.substring(ki.key,ki.keyEnd)}function Ju(e,t){const n=ki.textEnd;return n===t?-1:(t=ki.keyEnd=function(e,t,n){for(;t<n&&e.charCodeAt(t)>32;)t++;return t}(e,ki.key=t,n),ua(e,t,n))}function ua(e,t,n){for(;t<n&&e.charCodeAt(t)<=32;)t++;return t}function Q2(e,t,n){return no(e,t,n,!1),Q2}function Z2(e,t){return no(e,t,null,!0),Z2}function ih(e){io(gr,xo,e,!0)}function xo(e,t){for(let n=function(e){return function(e){ki.key=0,ki.keyEnd=0,ki.value=0,ki.valueEnd=0,ki.textEnd=e.length}(e),Ju(e,ua(e,0,ki.textEnd))}(t);n>=0;n=Ju(t,n))gr(e,qu(t),!0)}function no(e,t,n,i){const r=Et(),o=Pn(),a=At(2);o.firstUpdatePass&&oh(o,e,a,i),t!==Cn&&Qi(r,a,t)&&ah(o,o.data[Kn()],r,r[11],e,r[a+1]=function(e,t){return null==e||("string"==typeof t?e+=t:"object"==typeof e&&(e=B(bo(e)))),e}(t,n),i,a)}function io(e,t,n,i){const r=Pn(),o=At(2);r.firstUpdatePass&&oh(r,null,o,i);const a=Et();if(n!==Cn&&Qi(a,o,n)){const l=r.data[Kn()];if(lh(l,i)&&!rh(r,o)){let f=i?l.classesWithoutHost:l.stylesWithoutHost;null!==f&&(n=U(f,n||"")),R2(r,l,a,n,i)}else!function(e,t,n,i,r,o,a,l){r===Cn&&(r=X);let f=0,C=0,P=0<r.length?r[0]:null,q=0<o.length?o[0]:null;for(;null!==P||null!==q;){const ie=f<r.length?r[f+1]:void 0,ze=C<o.length?o[C+1]:void 0;let dt,He=null;P===q?(f+=2,C+=2,ie!==ze&&(He=q,dt=ze)):null===q||null!==P&&P<q?(f+=2,He=P):(C+=2,He=q,dt=ze),null!==He&&ah(e,t,n,i,He,dt,a,l),P=f<r.length?r[f]:null,q=C<o.length?o[C]:null}}(r,l,a,a[11],a[o+1],a[o+1]=function(e,t,n){if(null==n||""===n)return X;const i=[],r=bo(n);if(Array.isArray(r))for(let o=0;o<r.length;o++)e(i,r[o],!0);else if("object"==typeof r)for(const o in r)r.hasOwnProperty(o)&&e(i,o,r[o]);else"string"==typeof r&&t(i,r);return i}(e,t,n),i,o)}}function rh(e,t){return t>=e.expandoStartIndex}function oh(e,t,n,i){const r=e.data;if(null===r[n+1]){const o=r[Kn()],a=rh(e,n);lh(o,i)&&null===t&&!a&&(t=!1),t=function(e,t,n,i){const r=Dn(e);let o=i?t.residualClasses:t.residualStyles;if(null===r)0===(i?t.classBindings:t.styleBindings)&&(n=ic(n=q2(null,e,t,n,i),t.attrs,i),o=null);else{const a=t.directiveStylingLast;if(-1===a||e[a]!==r)if(n=q2(r,e,t,n,i),null===o){let f=function(e,t,n){const i=n?t.classBindings:t.styleBindings;if(0!==Eo(i))return e[Rr(i)]}(e,t,i);void 0!==f&&Array.isArray(f)&&(f=q2(null,e,t,f[1],i),f=ic(f,t.attrs,i),function(e,t,n,i){e[Rr(n?t.classBindings:t.styleBindings)]=i}(e,t,i,f))}else o=function(e,t,n){let i;const r=t.directiveEnd;for(let o=1+t.directiveStylingLast;o<r;o++)i=ic(i,e[o].hostAttrs,n);return ic(i,t.attrs,n)}(e,t,i)}return void 0!==o&&(i?t.residualClasses=o:t.residualStyles=o),n}(r,o,t,i),function(e,t,n,i,r,o){let a=o?t.classBindings:t.styleBindings,l=Rr(a),f=Eo(a);e[i]=n;let P,C=!1;if(Array.isArray(n)){const q=n;P=q[1],(null===P||as(q,P)>0)&&(C=!0)}else P=n;if(r)if(0!==f){const ie=Rr(e[l+1]);e[i+1]=Ga(ie,l),0!==ie&&(e[ie+1]=a1(e[ie+1],i)),e[l+1]=function(e,t){return 131071&e|t<<17}(e[l+1],i)}else e[i+1]=Ga(l,0),0!==l&&(e[l+1]=a1(e[l+1],i)),l=i;else e[i+1]=Ga(f,0),0===l?l=i:e[f+1]=a1(e[f+1],i),f=i;C&&(e[i+1]=s1(e[i+1])),Zu(e,P,i,!0),Zu(e,P,i,!1),function(e,t,n,i,r){const o=r?e.residualClasses:e.residualStyles;null!=o&&"string"==typeof t&&as(o,t)>=0&&(n[i+1]=c1(n[i+1]))}(t,P,e,i,o),a=Ga(l,f),o?t.classBindings=a:t.styleBindings=a}(r,o,t,n,a,i)}}function q2(e,t,n,i,r){let o=null;const a=n.directiveEnd;let l=n.directiveStylingLast;for(-1===l?l=n.directiveStart:l++;l<a&&(o=t[l],i=ic(i,o.hostAttrs,r),o!==e);)l++;return null!==e&&(n.directiveStylingLast=l),i}function ic(e,t,n){const i=n?1:2;let r=-1;if(null!==t)for(let o=0;o<t.length;o++){const a=t[o];"number"==typeof a?r=a:r===i&&(Array.isArray(e)||(e=void 0===e?[]:["",e]),gr(e,a,!!n||t[++o]))}return void 0===e?null:e}function ah(e,t,n,i,r,o,a,l){if(!(3&t.type))return;const f=e.data,C=f[l+1];V1(function(e){return 1==(1&e)}(C)?ch(f,t,n,r,Eo(C),a):void 0)||(V1(o)||function(e){return 2==(2&e)}(C)&&(o=ch(f,null,n,r,l,a)),function(e,t,n,i,r){const o=b(e);if(t)r?o?e.addClass(n,i):n.classList.add(i):o?e.removeClass(n,i):n.classList.remove(i);else{let a=-1===i.indexOf("-")?void 0:Xr.DashCase;if(null==r)o?e.removeStyle(n,i,a):n.style.removeProperty(i);else{const l="string"==typeof r&&r.endsWith("!important");l&&(r=r.slice(0,-10),a|=Xr.Important),o?e.setStyle(n,i,r,a):n.style.setProperty(i,r,l?"important":"")}}}(i,a,Wt(Kn(),n),r,o))}function ch(e,t,n,i,r,o){const a=null===t;let l;for(;r>0;){const f=e[r],C=Array.isArray(f),P=C?f[1]:f,q=null===P;let ie=n[r+1];ie===Cn&&(ie=q?X:void 0);let ze=q?Ac(ie,i):P===i?ie:void 0;if(C&&!V1(ze)&&(ze=Ac(f,i)),V1(ze)&&(l=ze,a))return l;const He=e[r+1];r=a?Rr(He):Eo(He)}if(null!==t){let f=o?t.residualClasses:t.residualStyles;null!=f&&(l=Ac(f,i))}return l}function V1(e){return void 0!==e}function lh(e,t){return 0!=(e.flags&(t?16:32))}function uh(e,t=""){const n=Et(),i=Pn(),r=e+k,o=i.firstCreatePass?gs(i,r,1,t,null):i.data[r],a=n[r]=function(e,t){return b(e)?e.createText(t):e.createTextNode(t)}(n[11],t);Ua(i,n,a,o),mr(o,!1)}function J2(e){return L1("",e,""),J2}function L1(e,t,n){const i=Et(),r=ta(i,e,t,n);return r!==Cn&&Do(i,Kn(),r),L1}function yh(e,t,n){io(gr,xo,ta(Et(),e,t,n),!0)}function X2(e,t,n){const i=Et();return Qi(i,vt(),t)&&vr(Pn(),ri(),i,e,t,i[11],n,!0),X2}function e3(e,t,n){const i=Et();if(Qi(i,vt(),t)){const o=Pn(),a=ri();vr(o,a,i,e,t,o2(Dn(o.data),a,i),n,!0)}return e3}const Es=void 0;var Jp=["en",[["a","p"],["AM","PM"],Es],[["AM","PM"],Es,Es],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Es,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Es,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Es,"{1} 'at' {0}",Es],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",function(e){const t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\.?/,"").length;return 1===t&&0===n?1:5}];let ha={};function Xp(e,t,n){"string"!=typeof t&&(n=t,t=e[ln.LocaleId]),t=t.toLowerCase().replace(/_/g,"-"),ha[t]=e,n&&(ha[t][ln.ExtraData]=n)}function t3(e){const t=function(e){return e.toLowerCase().replace(/_/g,"-")}(e);let n=Ph(t);if(n)return n;const i=t.split("-")[0];if(n=Ph(i),n)return n;if("en"===i)return Jp;throw new Error(`Missing locale data for the locale "${e}".`)}function xh(e){return t3(e)[ln.PluralCase]}function Ph(e){return e in ha||(ha[e]=ce.ng&&ce.ng.common&&ce.ng.common.locales&&ce.ng.common.locales[e]),ha[e]}var ln=(()=>((ln=ln||{})[ln.LocaleId=0]="LocaleId",ln[ln.DayPeriodsFormat=1]="DayPeriodsFormat",ln[ln.DayPeriodsStandalone=2]="DayPeriodsStandalone",ln[ln.DaysFormat=3]="DaysFormat",ln[ln.DaysStandalone=4]="DaysStandalone",ln[ln.MonthsFormat=5]="MonthsFormat",ln[ln.MonthsStandalone=6]="MonthsStandalone",ln[ln.Eras=7]="Eras",ln[ln.FirstDayOfWeek=8]="FirstDayOfWeek",ln[ln.WeekendRange=9]="WeekendRange",ln[ln.DateFormat=10]="DateFormat",ln[ln.TimeFormat=11]="TimeFormat",ln[ln.DateTimeFormat=12]="DateTimeFormat",ln[ln.NumberSymbols=13]="NumberSymbols",ln[ln.NumberFormats=14]="NumberFormats",ln[ln.CurrencyCode=15]="CurrencyCode",ln[ln.CurrencySymbol=16]="CurrencySymbol",ln[ln.CurrencyName=17]="CurrencyName",ln[ln.Currencies=18]="Currencies",ln[ln.Directionality=19]="Directionality",ln[ln.PluralCase=20]="PluralCase",ln[ln.ExtraData=21]="ExtraData",ln))();const R1="en-US";let Oh=R1;function n3(e){we(e,"Expected localeId to be defined"),"string"==typeof e&&(Oh=e.toLowerCase().replace(/_/g,"-"))}function o3(e,t,n,i,r){if(e=V(e),Array.isArray(e))for(let o=0;o<e.length;o++)o3(e[o],t,n,i,r);else{const o=Pn(),a=Et();let l=Ms(e)?e:V(e.provide),f=d2(e);const C=ai(),P=1048575&C.providerIndexes,q=C.directiveStart,ie=C.providerIndexes>>20;if(Ms(e)||!e.multi){const ze=new ji(f,r,nc),He=a3(l,t,r?P:P+ie,q);-1===He?(O(g(C,a),o,l),s3(o,e,t.length),t.push(l),C.directiveStart++,C.directiveEnd++,r&&(C.providerIndexes+=1048576),n.push(ze),a.push(ze)):(n[He]=ze,a[He]=ze)}else{const ze=a3(l,t,P+ie,q),He=a3(l,t,P,P+ie),dt=ze>=0&&n[ze],et=He>=0&&n[He];if(r&&!et||!r&&!dt){O(g(C,a),o,l);const Pt=function(e,t,n,i,r){const o=new ji(e,n,nc);return o.multi=[],o.index=t,o.componentProviders=0,td(o,r,i&&!n),o}(r?Z9:Q9,n.length,r,i,f);!r&&et&&(n[He].providerFactory=Pt),s3(o,e,t.length,0),t.push(l),C.directiveStart++,C.directiveEnd++,r&&(C.providerIndexes+=1048576),n.push(Pt),a.push(Pt)}else s3(o,e,ze>-1?ze:He,td(n[r?He:ze],f,!r&&i));!r&&i&&et&&n[He].componentProviders++}}}function s3(e,t,n,i){const r=Ms(t);if(r||function(e){return!!e.useClass}(t)){const a=(t.useClass||t).prototype.ngOnDestroy;if(a){const l=e.destroyHooks||(e.destroyHooks=[]);if(!r&&t.multi){const f=l.indexOf(n);-1===f?l.push(n,[i,a]):l[f+1].push(i,a)}else l.push(n,a)}}}function td(e,t,n){return n&&e.componentProviders++,e.multi.push(t)-1}function a3(e,t,n,i){for(let r=n;r<i;r++)if(t[r]===e)return r;return-1}function Q9(e,t,n,i){return c3(this.multi,[])}function Z9(e,t,n,i){const r=this.multi;let o;if(this.providerFactory){const a=this.providerFactory.componentProviders,l=In(n,n[1],this.providerFactory.index,i);o=l.slice(0,a),c3(r,o);for(let f=a;f<l.length;f++)o.push(l[f])}else o=[],c3(r,o);return o}function c3(e,t){for(let n=0;n<e.length;n++)t.push((0,e[n])());return t}function nd(e,t=[]){return n=>{n.providersResolver=(i,r)=>function(e,t,n){const i=Pn();if(i.firstCreatePass){const r=xi(e);o3(n,i.data,i.blueprint,r,!0),o3(t,i.data,i.blueprint,r,!1)}}(i,r?r(e):e,t)}}class id{}const od="ngComponent";class X9{resolveComponentFactory(t){throw function(e){const t=Error(`No component factory found for ${B(e)}. Did you add it to @NgModule.entryComponents?`);return t[od]=e,t}(t)}}class ws{}function j1(...e){}function fa(e,t){return new Po(mn(e,t))}ws.NULL=new X9;const nm=function(){return fa(ai(),Et())};let Po=(()=>{class e{constructor(n){this.nativeElement=n}}return e.__NG_ELEMENT_ID__=nm,e})();function sd(e){return e instanceof Po?e.nativeElement:e}class U1{}let im=(()=>{class e{}return e.__NG_ELEMENT_ID__=()=>om(),e})();const om=function(){const e=Et(),n=Ln(ai().index,e);return function(e){return e[11]}(Xn(n)?n:e)};let u3=(()=>{class e{}return e.\u0275prov=rt({token:e,providedIn:"root",factory:()=>null}),e})();class ad{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const cd=new ad("12.2.0");class ld{constructor(){}supports(t){return ec(t)}create(t){return new lm(t)}}const cm=(e,t)=>t;class lm{constructor(t){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=t||cm}forEachItem(t){let n;for(n=this._itHead;null!==n;n=n._next)t(n)}forEachOperation(t){let n=this._itHead,i=this._removalsHead,r=0,o=null;for(;n||i;){const a=!i||n&&n.currentIndex<hd(i,r,o)?n:i,l=hd(a,r,o),f=a.currentIndex;if(a===i)r--,i=i._nextRemoved;else if(n=n._next,null==a.previousIndex)r++;else{o||(o=[]);const C=l-r,P=f-r;if(C!=P){for(let ie=0;ie<C;ie++){const ze=ie<o.length?o[ie]:o[ie]=0,He=ze+ie;P<=He&&He<C&&(o[ie]=ze+1)}o[a.previousIndex]=P-C}}l!==f&&t(a,l,f)}}forEachPreviousItem(t){let n;for(n=this._previousItHead;null!==n;n=n._nextPrevious)t(n)}forEachAddedItem(t){let n;for(n=this._additionsHead;null!==n;n=n._nextAdded)t(n)}forEachMovedItem(t){let n;for(n=this._movesHead;null!==n;n=n._nextMoved)t(n)}forEachRemovedItem(t){let n;for(n=this._removalsHead;null!==n;n=n._nextRemoved)t(n)}forEachIdentityChange(t){let n;for(n=this._identityChangesHead;null!==n;n=n._nextIdentityChange)t(n)}diff(t){if(null==t&&(t=[]),!ec(t))throw new Error(`Error trying to diff '${B(t)}'. Only arrays and iterables are allowed`);return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let r,o,a,n=this._itHead,i=!1;if(Array.isArray(t)){this.length=t.length;for(let l=0;l<this.length;l++)o=t[l],a=this._trackByFn(l,o),null!==n&&Object.is(n.trackById,a)?(i&&(n=this._verifyReinsertion(n,o,a,l)),Object.is(n.item,o)||this._addIdentityChange(n,o)):(n=this._mismatch(n,o,a,l),i=!0),n=n._next}else r=0,function(e,t){if(Array.isArray(e))for(let n=0;n<e.length;n++)t(e[n]);else{const n=e[Xs()]();let i;for(;!(i=n.next()).done;)t(i.value)}}(t,l=>{a=this._trackByFn(r,l),null!==n&&Object.is(n.trackById,a)?(i&&(n=this._verifyReinsertion(n,l,a,r)),Object.is(n.item,l)||this._addIdentityChange(n,l)):(n=this._mismatch(n,l,a,r),i=!0),n=n._next,r++}),this.length=r;return this._truncate(n),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,n,i,r){let o;return null===t?o=this._itTail:(o=t._prev,this._remove(t)),null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null))?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._reinsertAfter(t,o,r)):null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(i,r))?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._moveAfter(t,o,r)):t=this._addAfter(new um(n,i),o,r),t}_verifyReinsertion(t,n,i,r){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(i,null);return null!==o?t=this._reinsertAfter(o,t._prev,r):t.currentIndex!=r&&(t.currentIndex=r,this._addToMoves(t,r)),t}_truncate(t){for(;null!==t;){const n=t._next;this._addToRemovals(this._unlink(t)),t=n}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,n,i){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const r=t._prevRemoved,o=t._nextRemoved;return null===r?this._removalsHead=o:r._nextRemoved=o,null===o?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(t,n,i),this._addToMoves(t,i),t}_moveAfter(t,n,i){return this._unlink(t),this._insertAfter(t,n,i),this._addToMoves(t,i),t}_addAfter(t,n,i){return this._insertAfter(t,n,i),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,n,i){const r=null===n?this._itHead:n._next;return t._next=r,t._prev=n,null===r?this._itTail=t:r._prev=t,null===n?this._itHead=t:n._next=t,null===this._linkedRecords&&(this._linkedRecords=new ud),this._linkedRecords.put(t),t.currentIndex=i,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const n=t._prev,i=t._next;return null===n?this._itHead=i:n._next=i,null===i?this._itTail=n:i._prev=n,t}_addToMoves(t,n){return t.previousIndex===n||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ud),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,n){return t.item=n,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class um{constructor(t,n){this.item=t,this.trackById=n,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class hm{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,n){let i;for(i=this._head;null!==i;i=i._nextDup)if((null===n||n<=i.currentIndex)&&Object.is(i.trackById,t))return i;return null}remove(t){const n=t._prevDup,i=t._nextDup;return null===n?this._head=i:n._nextDup=i,null===i?this._tail=n:i._prevDup=n,null===this._head}}class ud{constructor(){this.map=new Map}put(t){const n=t.trackById;let i=this.map.get(n);i||(i=new hm,this.map.set(n,i)),i.add(t)}get(t,n){const r=this.map.get(t);return r?r.get(t,n):null}remove(t){const n=t.trackById;return this.map.get(n).remove(t)&&this.map.delete(n),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function hd(e,t,n){const i=e.previousIndex;if(null===i)return i;let r=0;return n&&i<n.length&&(r=n[i]),i+t+r}class dd{constructor(){}supports(t){return t instanceof Map||O2(t)}create(){return new dm}}class dm{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let n;for(n=this._mapHead;null!==n;n=n._next)t(n)}forEachPreviousItem(t){let n;for(n=this._previousMapHead;null!==n;n=n._nextPrevious)t(n)}forEachChangedItem(t){let n;for(n=this._changesHead;null!==n;n=n._nextChanged)t(n)}forEachAddedItem(t){let n;for(n=this._additionsHead;null!==n;n=n._nextAdded)t(n)}forEachRemovedItem(t){let n;for(n=this._removalsHead;null!==n;n=n._nextRemoved)t(n)}diff(t){if(t){if(!(t instanceof Map||O2(t)))throw new Error(`Error trying to diff '${B(t)}'. Only maps and objects are allowed`)}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let n=this._mapHead;if(this._appendAfter=null,this._forEach(t,(i,r)=>{if(n&&n.key===r)this._maybeAddToChanges(n,i),this._appendAfter=n,n=n._next;else{const o=this._getOrCreateRecordForKey(r,i);n=this._insertBeforeOrAppend(n,o)}}),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(let i=n;null!==i;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,n){if(t){const i=t._prev;return n._next=t,n._prev=i,t._prev=n,i&&(i._next=n),t===this._mapHead&&(this._mapHead=n),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=n,n._prev=this._appendAfter):this._mapHead=n,this._appendAfter=n,null}_getOrCreateRecordForKey(t,n){if(this._records.has(t)){const r=this._records.get(t);this._maybeAddToChanges(r,n);const o=r._prev,a=r._next;return o&&(o._next=a),a&&(a._prev=o),r._next=null,r._prev=null,r}const i=new fm(t);return this._records.set(t,i),i.currentValue=n,this._addToAdditions(i),i}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,n){Object.is(n,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=n,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,n){t instanceof Map?t.forEach(n):Object.keys(t).forEach(i=>n(t[i],i))}}class fm{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function fd(){return new $1([new ld])}let $1=(()=>{class e{constructor(n){this.factories=n}static create(n,i){if(null!=i){const r=i.factories.slice();n=n.concat(r)}return new e(n)}static extend(n){return{provide:e,useFactory:i=>e.create(n,i||fd()),deps:[[e,new No,new Mo]]}}find(n){const i=this.factories.find(r=>r.supports(n));if(null!=i)return i;throw new Error(`Cannot find a differ supporting object '${n}' of type '${function(e){return e.name||typeof e}(n)}'`)}}return e.\u0275prov=rt({token:e,providedIn:"root",factory:fd}),e})();function pd(){return new W1([new dd])}let W1=(()=>{class e{constructor(n){this.factories=n}static create(n,i){if(i){const r=i.factories.slice();n=n.concat(r)}return new e(n)}static extend(n){return{provide:e,useFactory:i=>e.create(n,i||pd()),deps:[[e,new No,new Mo]]}}find(n){const i=this.factories.find(r=>r.supports(n));if(i)return i;throw new Error(`Cannot find a differ supporting object '${n}'`)}}return e.\u0275prov=rt({token:e,providedIn:"root",factory:pd}),e})();function G1(e,t,n,i,r=!1){for(;null!==n;){const o=t[n.index];if(null!==o&&i.push(Me(o)),Hn(o))for(let l=10;l<o.length;l++){const f=o[l],C=f[1].firstChild;null!==C&&G1(f[1],f,C,i)}const a=n.type;if(8&a)G1(e,t,n.child,i);else if(32&a){const l=Kc(n,t);let f;for(;f=l();)i.push(f)}else if(16&a){const l=C4(t,n);if(Array.isArray(l))i.push(...l);else{const f=Ws(t[16]);G1(f[1],f,l,i,!0)}}n=r?n.projectionNext:n.next}return i}class cc{constructor(t,n){this._lView=t,this._cdRefInjectingView=n,this._appRef=null,this._attachedToViewContainer=!1}get rootNodes(){const t=this._lView,n=t[1];return G1(n,t,n.firstChild,[])}get context(){return this._lView[8]}set context(t){this._lView[8]=t}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._attachedToViewContainer){const t=this._lView[3];if(Hn(t)){const n=t[8],i=n?n.indexOf(this):-1;i>-1&&(Xc(t,i),Qo(n,i))}this._attachedToViewContainer=!1}h4(this._lView[1],this._lView)}onDestroy(t){W4(this._lView[1],this._lView,null,t)}markForCheck(){b1(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){w1(this._lView[1],this._lView,this.context)}checkNoChanges(){!function(e,t,n){ee(!0);try{w1(e,t,n)}finally{ee(!1)}}(this._lView[1],this._lView,this.context)}attachToViewContainerRef(){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._attachedToViewContainer=!0}detachFromAppRef(){var t;this._appRef=null,Gs(this._lView[1],t=this._lView,t[11],2,null,null)}attachToAppRef(t){if(this._attachedToViewContainer)throw new Error("This view is already attached to a ViewContainer!");this._appRef=t}}class mm extends cc{constructor(t){super(t),this._view=t}detectChanges(){t2(this._view)}checkNoChanges(){!function(e){ee(!0);try{t2(e)}finally{ee(!1)}}(this._view)}get context(){return null}}const vm=function(e){return function(e,t,n){if(bi(e)&&!n){const i=Ln(e.index,t);return new cc(i,i)}return 47&e.type?new cc(t[16],t):null}(ai(),Et(),16==(16&e))};let _m=(()=>{class e{}return e.__NG_ELEMENT_ID__=vm,e})();const Mm=[new dd],Em=new $1([new ld]),wm=new W1(Mm),Sm=function(){return K1(ai(),Et())};let lc=(()=>{class e{}return e.__NG_ELEMENT_ID__=Sm,e})();const zm=lc,Tm=class extends zm{constructor(t,n,i){super(),this._declarationLView=t,this._declarationTContainer=n,this.elementRef=i}createEmbeddedView(t){const n=this._declarationTContainer.tViews,i=Ks(this._declarationLView,n,t,16,null,n.declTNode,null,null,null,null);i[17]=this._declarationLView[this._declarationTContainer.index];const o=this._declarationLView[M];return null!==o&&(i[M]=o.createEmbeddedView(n)),Qs(n,i,t),new cc(i)}};function K1(e,t){return 4&e.type?new Tm(t,e,fa(e,t)):null}class Ds{}class md{}const Om=function(){return _d(ai(),Et())};let Q1=(()=>{class e{}return e.__NG_ELEMENT_ID__=Om,e})();const km=Q1,gd=class extends km{constructor(t,n,i){super(),this._lContainer=t,this._hostTNode=n,this._hostLView=i}get element(){return fa(this._hostTNode,this._hostLView)}get injector(){return new Sr(this._hostTNode,this._hostLView)}get parentInjector(){const t=w(this._hostTNode,this._hostLView);if(xa(t)){const n=Lo(t,this._hostLView),i=_o(t);return new Sr(n[1].data[i+8],n)}return new Sr(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const n=vd(this._lContainer);return null!==n&&n[t]||null}get length(){return this._lContainer.length-10}createEmbeddedView(t,n,i){const r=t.createEmbeddedView(n||{});return this.insert(r,i),r}createComponent(t,n,i,r,o){const a=i||this.parentInjector;if(!o&&null==t.ngModule&&a){const f=a.get(Ds,null);f&&(o=f)}const l=t.create(a,r,void 0,o);return this.insert(l.hostView,n),l}insert(t,n){const i=t._lView,r=i[1];if(Hn(i[3])){const P=this.indexOf(t);if(-1!==P)this.detach(P);else{const q=i[3],ie=new gd(q,q[6],q[3]);ie.detach(ie.indexOf(t))}}const o=this._adjustIndex(n),a=this._lContainer;!function(e,t,n,i){const r=10+i,o=n.length;i>0&&(n[r-1][4]=t),i<o-10?(t[4]=n[r],ka(n,10+i,t)):(n.push(t),t[4]=null),t[3]=n;const a=t[17];null!==a&&n!==a&&function(e,t){const n=e[9];t[16]!==t[3][3][16]&&(e[2]=!0),null===n?e[9]=[t]:n.push(t)}(a,t);const l=t[M];null!==l&&l.insertView(e),t[2]|=128}(r,i,a,o);const l=n1(o,a),f=i[11],C=ja(f,a[7]);return null!==C&&function(e,t,n,i,r,o){i[0]=r,i[6]=t,Gs(e,i,n,1,r,o)}(r,a[6],f,i,C,l),t.attachToViewContainerRef(),ka(h3(a),o,t),t}move(t,n){return this.insert(t,n)}indexOf(t){const n=vd(this._lContainer);return null!==n?n.indexOf(t):-1}remove(t){const n=this._adjustIndex(t,-1),i=Xc(this._lContainer,n);i&&(Qo(h3(this._lContainer),n),h4(i[1],i))}detach(t){const n=this._adjustIndex(t,-1),i=Xc(this._lContainer,n);return i&&null!=Qo(h3(this._lContainer),n)?new cc(i):null}_adjustIndex(t,n=0){return null==t?this.length+n:t}};function vd(e){return e[8]}function h3(e){return e[8]||(e[8]=[])}function _d(e,t){let n;const i=t[e.index];if(Hn(i))n=i;else{let r;if(8&e.type)r=Me(i);else{const o=t[11];r=o.createComment("");const a=mn(e,t);Xo(o,ja(o,a),r,function(e,t){return b(e)?e.nextSibling(t):t.nextSibling}(o,a),!1)}t[e.index]=n=e2(i,t,r,e),qa(t,n)}return new gd(n,e,t)}const va={};class Rd extends ws{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const n=pn(t);return new Hd(n,this.ngModule)}}function Nd(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}const xg=new mi("SCHEDULER_TOKEN",{providedIn:"root",factory:()=>i4});class Hd extends id{constructor(t,n){super(),this.componentDef=t,this.ngModule=n,this.componentType=t.type,this.selector=t.selectors.map(Z6).join(","),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!n}get inputs(){return Nd(this.componentDef.inputs)}get outputs(){return Nd(this.componentDef.outputs)}create(t,n,i,r){const o=(r=r||this.ngModule)?function(e,t){return{get:(n,i,r)=>{const o=e.get(n,va,r);return o!==va||i===va?o:t.get(n,i,r)}}}(t,r.injector):t,a=o.get(U1,D),l=o.get(u3,null),f=a.createRenderer(null,this.componentDef),C=this.componentDef.selectors[0][0]||"div",P=i?function(e,t,n){if(b(e))return e.selectRootElement(t,n===G.ShadowDom);let i="string"==typeof t?e.querySelector(t):t;return i.textContent="",i}(f,i,this.componentDef.encapsulation):Jc(a.createRenderer(null,this.componentDef),C,function(e){const t=e.toLowerCase();return"svg"===t?T:"math"===t?"http://www.w3.org/1998/MathML/":null}(C)),q=this.componentDef.onPush?576:528,ie=function(e,t){return{components:[],scheduler:e||i4,clean:F0,playerHandler:t||null,flags:0}}(),ze=Za(0,null,null,1,0,null,null,null,null,null),He=Ks(null,ze,ie,q,null,null,a,f,l,o);let dt,et;rr(He);try{const Pt=function(e,t,n,i,r,o){const a=n[1];n[20]=e;const f=gs(a,20,2,"#host",null),C=f.mergedAttrs=t.hostAttrs;null!==C&&(Ja(f,C,!0),null!==e&&(Wo(r,e,C),null!==f.classes&&Wa(r,e,f.classes),null!==f.styles&&E4(r,e,f.styles)));const P=i.createRenderer(e,t),q=Ks(n,j4(t),null,t.onPush?64:16,n[20],f,i,P,o||null,null);return a.firstCreatePass&&(O(g(f,n),a,t.type),Z4(a,f),J4(f,n.length,1)),qa(n,q),n[20]=q}(P,this.componentDef,He,a,f);if(P)if(i)Wo(f,P,["ng-version",cd.full]);else{const{attrs:Mt,classes:qt}=function(e){const t=[],n=[];let i=1,r=2;for(;i<e.length;){let o=e[i];if("string"==typeof o)2===r?""!==o&&t.push(o,e[++i]):8===r&&n.push(o);else{if(!Lr(r))break;r=o}i++}return{attrs:t,classes:n}}(this.componentDef.selectors[0]);Mt&&Wo(f,P,Mt),qt&&qt.length>0&&Wa(f,P,qt.join(" "))}if(et=Un(ze,k),void 0!==n){const Mt=et.projection=[];for(let qt=0;qt<this.ngContentSelectors.length;qt++){const fn=n[qt];Mt.push(null!=fn?Array.from(fn):null)}}dt=function(e,t,n,i,r){const o=n[1],a=function(e,t,n){const i=ai();e.firstCreatePass&&(n.providersResolver&&n.providersResolver(n),X4(e,i,t,vs(e,t,1,null),n));const r=In(t,e,i.directiveStart,i);Ui(r,t);const o=mn(i,t);return o&&Ui(o,t),r}(o,n,t);if(i.components.push(a),e[8]=a,r&&r.forEach(f=>f(a,t)),t.contentQueries){const f=ai();t.contentQueries(1,a,f.directiveStart)}const l=ai();return!o.firstCreatePass||null===t.hostBindings&&null===t.hostAttrs||(ar(l.index),y1(n[1],l,0,l.directiveStart,l.directiveEnd,t),Q4(t,a)),a}(Pt,this.componentDef,He,ie,[Af]),Qs(ze,He,null)}finally{Oi()}return new Ag(this.componentType,dt,fa(et,He),He,et)}}class Ag extends class{}{constructor(t,n,i,r,o){super(),this.location=i,this._rootLView=r,this._tNode=o,this.instance=n,this.hostView=this.changeDetectorRef=new mm(r),this.componentType=t}get injector(){return new Sr(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(t){this.hostView.onDestroy(t)}}const _a=new Map;class Fg extends Ds{constructor(t,n){super(),this._parent=n,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[],this.componentFactoryResolver=new Rd(this);const i=xn(t),r=t[de]||null;r&&n3(r),this._bootstrapComponents=Jr(i.bootstrap),this._r3Injector=u2(t,n,[{provide:Ds,useValue:this},{provide:ws,useValue:this.componentFactoryResolver}],B(t)),this._r3Injector._resolveInjectorDefTypes(),this.instance=this.get(t)}get(t,n=Zn.THROW_IF_NOT_FOUND,i=kt.Default){return t===Zn||t===Ds||t===ys?this:this._r3Injector.get(t,n,i)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(n=>n()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class w3 extends md{constructor(t){super(),this.moduleType=t,null!==xn(t)&&function(e){const t=new Set;!function n(i){const r=xn(i,!0),o=r.id;null!==o&&(function(e,t,n){if(t&&t!==n)throw new Error(`Duplicate module registered for ${e} - ${B(t)} vs ${B(t.name)}`)}(o,_a.get(o),i),_a.set(o,i));const a=Jr(r.imports);for(const l of a)t.has(l)||(t.add(l),n(l))}(e)}(t)}create(t){return new Fg(this.moduleType,t)}}function jd(e,t,n){const i=me()+e,r=Et();return r[i]===Cn?zo(r,i,n?t.call(n):t()):function(e,t){return e[t]}(r,i)}function Ud(e,t,n,i){return Gd(Et(),me(),e,t,n,i)}function $d(e,t,n,i,r){return Kd(Et(),me(),e,t,n,i,r)}function Wd(e,t,n,i,r,o,a){return function(e,t,n,i,r,o,a,l,f){const C=t+n;return function(e,t,n,i,r,o){const a=bs(e,t,n,i);return bs(e,t+2,r,o)||a}(e,C,r,o,a,l)?zo(e,C+4,f?i.call(f,r,o,a,l):i(r,o,a,l)):vc(e,C+4)}(Et(),me(),e,t,n,i,r,o,a)}function vc(e,t){const n=e[t];return n===Cn?void 0:n}function Gd(e,t,n,i,r,o){const a=t+n;return Qi(e,a,r)?zo(e,a+1,o?i.call(o,r):i(r)):vc(e,a+1)}function Kd(e,t,n,i,r,o,a){const l=t+n;return bs(e,l,r,o)?zo(e,l+2,a?i.call(a,r,o):i(r,o)):vc(e,l+2)}function Jd(e,t){const n=Pn();let i;const r=e+k;n.firstCreatePass?(i=function(e,t){if(t)for(let n=t.length-1;n>=0;n--){const i=t[n];if(e===i.name)return i}throw new Ke("302",`The pipe '${e}' could not be found!`)}(t,n.pipeRegistry),n.data[r]=i,i.onDestroy&&(n.destroyHooks||(n.destroyHooks=[])).push(r,i.onDestroy)):i=n.data[r];const o=i.factory||(i.factory=Pi(i.type)),a=xe(nc);try{const l=yo(!1),f=o();return yo(l),function(e,t,n,i){n>=e.data.length&&(e.data[n]=null,e.blueprint[n]=null),t[n]=i}(n,Et(),r,f),f}finally{xe(a)}}function Xd(e,t,n){const i=e+k,r=Et(),o=gn(r,i);return yc(r,_c(r,i)?Gd(r,me(),t,o.transform,n,o):o.transform(n))}function e5(e,t,n,i){const r=e+k,o=Et(),a=gn(o,r);return yc(o,_c(o,r)?Kd(o,me(),t,a.transform,n,i,a):a.transform(n,i))}function _c(e,t){return e[1].data[t].pure}function yc(e,t){return to.isWrapped(t)&&(t=to.unwrap(t),e[Te()]=Cn),t}function D3(e){return t=>{setTimeout(e,void 0,t)}}const Oo=class extends c.xQ{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,n,i){var r,o,a;let l=t,f=n||(()=>null),C=i;if(t&&"object"==typeof t){const q=t;l=null===(r=q.next)||void 0===r?void 0:r.bind(q),f=null===(o=q.error)||void 0===o?void 0:o.bind(q),C=null===(a=q.complete)||void 0===a?void 0:a.bind(q)}this.__isAsync&&(f=D3(f),l&&(l=D3(l)),C&&(C=D3(C)));const P=super.subscribe({next:l,error:f,complete:C});return t instanceof s.w&&t.add(P),P}};function Gg(){return this._results[Xs()]()}class el{constructor(t=!1){this._emitDistinctChangesOnly=t,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const n=Xs(),i=el.prototype;i[n]||(i[n]=Gg)}get changes(){return this._changes||(this._changes=new Oo)}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,n){return this._results.reduce(t,n)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,n){const i=this;i.dirty=!1;const r=Tr(t);(this._changesDetected=!function(e,t,n){if(e.length!==t.length)return!1;for(let i=0;i<e.length;i++){let r=e[i],o=t[i];if(n&&(r=n(r),o=n(o)),o!==r)return!1}return!0}(i._results,r,n))&&(i._results=r,i.length=r.length,i.last=r[this.length-1],i.first=r[0])}notifyOnChanges(){this._changes&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.emit(this)}setDirty(){this.dirty=!0}destroy(){this.changes.complete(),this.changes.unsubscribe()}}Symbol;class S3{constructor(t){this.queryList=t,this.matches=null}clone(){return new S3(this.queryList)}setDirty(){this.queryList.setDirty()}}class z3{constructor(t=[]){this.queries=t}createEmbeddedView(t){const n=t.queries;if(null!==n){const i=null!==t.contentQueries?t.contentQueries[0]:n.length,r=[];for(let o=0;o<i;o++){const a=n.getByIndex(o);r.push(this.queries[a.indexInDeclarationView].clone())}return new z3(r)}return null}insertView(t){this.dirtyQueriesWithMatches(t)}detachView(t){this.dirtyQueriesWithMatches(t)}dirtyQueriesWithMatches(t){for(let n=0;n<this.queries.length;n++)null!==l5(t,n).matches&&this.queries[n].setDirty()}}class t5{constructor(t,n,i=null){this.predicate=t,this.flags=n,this.read=i}}class T3{constructor(t=[]){this.queries=t}elementStart(t,n){for(let i=0;i<this.queries.length;i++)this.queries[i].elementStart(t,n)}elementEnd(t){for(let n=0;n<this.queries.length;n++)this.queries[n].elementEnd(t)}embeddedTView(t){let n=null;for(let i=0;i<this.length;i++){const r=null!==n?n.length:0,o=this.getByIndex(i).embeddedTView(t,r);o&&(o.indexInDeclarationView=i,null!==n?n.push(o):n=[o])}return null!==n?new T3(n):null}template(t,n){for(let i=0;i<this.queries.length;i++)this.queries[i].template(t,n)}getByIndex(t){return this.queries[t]}get length(){return this.queries.length}track(t){this.queries.push(t)}}class x3{constructor(t,n=-1){this.metadata=t,this.matches=null,this.indexInDeclarationView=-1,this.crossesNgTemplate=!1,this._appliesToNextNode=!0,this._declarationNodeIndex=n}elementStart(t,n){this.isApplyingToNode(n)&&this.matchTNode(t,n)}elementEnd(t){this._declarationNodeIndex===t.index&&(this._appliesToNextNode=!1)}template(t,n){this.elementStart(t,n)}embeddedTView(t,n){return this.isApplyingToNode(t)?(this.crossesNgTemplate=!0,this.addMatch(-t.index,n),new x3(this.metadata)):null}isApplyingToNode(t){if(this._appliesToNextNode&&1!=(1&this.metadata.flags)){const n=this._declarationNodeIndex;let i=t.parent;for(;null!==i&&8&i.type&&i.index!==n;)i=i.parent;return n===(null!==i?i.index:-1)}return this._appliesToNextNode}matchTNode(t,n){const i=this.metadata.predicate;if(Array.isArray(i))for(let r=0;r<i.length;r++){const o=i[r];this.matchTNodeWithReadOption(t,n,Zg(n,o)),this.matchTNodeWithReadOption(t,n,Qn(n,t,o,!1,!1))}else i===lc?4&n.type&&this.matchTNodeWithReadOption(t,n,-1):this.matchTNodeWithReadOption(t,n,Qn(n,t,i,!1,!1))}matchTNodeWithReadOption(t,n,i){if(null!==i){const r=this.metadata.read;if(null!==r)if(r===Po||r===Q1||r===lc&&4&n.type)this.addMatch(n.index,-2);else{const o=Qn(n,t,r,!1,!1);null!==o&&this.addMatch(n.index,o)}else this.addMatch(n.index,i)}}addMatch(t,n){null===this.matches?this.matches=[t,n]:this.matches.push(t,n)}}function Zg(e,t){const n=e.localNames;if(null!==n)for(let i=0;i<n.length;i+=2)if(n[i]===t)return n[i+1];return null}function Jg(e,t,n,i){return-1===n?function(e,t){return 11&e.type?fa(e,t):4&e.type?K1(e,t):null}(t,e):-2===n?function(e,t,n){return n===Po?fa(t,e):n===lc?K1(t,e):n===Q1?_d(t,e):void 0}(e,t,i):In(e,e[1],n,t)}function n5(e,t,n,i){const r=t[M].queries[i];if(null===r.matches){const o=e.data,a=n.matches,l=[];for(let f=0;f<a.length;f+=2){const C=a[f];l.push(C<0?null:Jg(t,o[C],a[f+1],n.metadata.read))}r.matches=l}return r.matches}function P3(e,t,n,i){const r=e.queries.getByIndex(n),o=r.matches;if(null!==o){const a=n5(e,t,r,n);for(let l=0;l<o.length;l+=2){const f=o[l];if(f>0)i.push(a[l/2]);else{const C=o[l+1],P=t[-f];for(let q=10;q<P.length;q++){const ie=P[q];ie[17]===ie[3]&&P3(ie[1],ie,C,i)}if(null!==P[9]){const q=P[9];for(let ie=0;ie<q.length;ie++){const ze=q[ie];P3(ze[1],ze,C,i)}}}}}return i}function i5(e){const t=Et(),n=Pn(),i=ei();ii(i+1);const r=l5(n,i);if(e.dirty&&Gn(t)===(2==(2&r.metadata.flags))){if(null===r.matches)e.reset([]);else{const o=r.crossesNgTemplate?P3(n,t,i,[]):n5(n,t,r,i);e.reset(o,sd),e.notifyOnChanges()}return!0}return!1}function r5(e,t,n){const i=Pn();i.firstCreatePass&&(c5(i,new t5(e,t,n),-1),2==(2&t)&&(i.staticViewQueries=!0)),a5(i,Et(),t)}function o5(e,t,n,i){const r=Pn();if(r.firstCreatePass){const o=ai();c5(r,new t5(t,n,i),o.index),function(e,t){const n=e.contentQueries||(e.contentQueries=[]);t!==(n.length?n[n.length-1]:-1)&&n.push(e.queries.length-1,t)}(r,e),2==(2&n)&&(r.staticContentQueries=!0)}a5(r,Et(),n)}function s5(){return e=Et(),t=ei(),e[M].queries[t].queryList;var e,t}function a5(e,t,n){const i=new el(4==(4&n));W4(e,t,i,i.destroy),null===t[M]&&(t[M]=new z3),t[M].queries.push(new S3(i))}function c5(e,t,n){null===e.queries&&(e.queries=new T3),e.queries.track(new x3(t,n))}function l5(e,t){return e.queries.getByIndex(t)}function u5(e,t){return K1(e,t)}const V3=new mi("Application Initializer");let Ca=(()=>{class e{constructor(n){this.appInits=n,this.resolve=j1,this.reject=j1,this.initialized=!1,this.done=!1,this.donePromise=new Promise((i,r)=>{this.resolve=i,this.reject=r})}runInitializers(){if(this.initialized)return;const n=[],i=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let r=0;r<this.appInits.length;r++){const o=this.appInits[r]();if(j2(o))n.push(o);else if(U2(o)){const a=new Promise((l,f)=>{o.subscribe({complete:l,error:f})});n.push(a)}}Promise.all(n).then(()=>{i()}).catch(r=>{this.reject(r)}),0===n.length&&i(),this.initialized=!0}}return e.\u0275fac=function(n){return new(n||e)(Ci(V3,8))},e.\u0275prov=rt({token:e,factory:e.\u0275fac}),e})();const T5=new mi("AppId"),Tv={provide:T5,useFactory:function(){return`${L3()}${L3()}${L3()}`},deps:[]};function L3(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const x5=new mi("Platform Initializer"),P5=new mi("Platform ID"),O5=new mi("appBootstrapListener");let A5=(()=>{class e{log(n){console.log(n)}warn(n){console.warn(n)}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=rt({token:e,factory:e.\u0275fac}),e})();const il=new mi("LocaleId"),k5=new mi("DefaultCurrencyCode");class Pv{constructor(t,n){this.ngModuleFactory=t,this.componentFactories=n}}const R3=function(e){return new w3(e)},Ov=R3,Av=function(e){return Promise.resolve(R3(e))},I5=function(e){const t=R3(e),i=Jr(xn(e).declarations).reduce((r,o)=>{const a=pn(o);return a&&r.push(new Hd(a)),r},[]);return new Pv(t,i)},kv=I5,Iv=function(e){return Promise.resolve(I5(e))};let Mc=(()=>{class e{constructor(){this.compileModuleSync=Ov,this.compileModuleAsync=Av,this.compileModuleAndAllComponentsSync=kv,this.compileModuleAndAllComponentsAsync=Iv}clearCache(){}clearCacheFor(n){}getModuleId(n){}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=rt({token:e,factory:e.\u0275fac}),e})();const Lv=(()=>Promise.resolve(0))();function N3(e){"undefined"==typeof Zone?Lv.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",e)}class Pr{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:n=!1,shouldCoalesceRunChangeDetection:i=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Oo(!1),this.onMicrotaskEmpty=new Oo(!1),this.onStable=new Oo(!1),this.onError=new Oo(!1),"undefined"==typeof Zone)throw new Error("In this configuration Angular requires Zone.js");Zone.assertZonePatched();const r=this;r._nesting=0,r._outer=r._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(r._inner=r._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(r._inner=r._inner.fork(Zone.longStackTraceZoneSpec)),r.shouldCoalesceEventChangeDetection=!i&&n,r.shouldCoalesceRunChangeDetection=i,r.lastRequestAnimationFrameId=-1,r.nativeRequestAnimationFrame=function(){let e=ce.requestAnimationFrame,t=ce.cancelAnimationFrame;if("undefined"!=typeof Zone&&e&&t){const n=e[Zone.__symbol__("OriginalDelegate")];n&&(e=n);const i=t[Zone.__symbol__("OriginalDelegate")];i&&(t=i)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function(e){const t=()=>{!function(e){e.isCheckStableRunning||-1!==e.lastRequestAnimationFrameId||(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ce,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,B3(e),e.isCheckStableRunning=!0,H3(e),e.isCheckStableRunning=!1},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),B3(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(n,i,r,o,a,l)=>{try{return F5(e),n.invokeTask(r,o,a,l)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===o.type||e.shouldCoalesceRunChangeDetection)&&t(),V5(e)}},onInvoke:(n,i,r,o,a,l,f)=>{try{return F5(e),n.invoke(r,o,a,l,f)}finally{e.shouldCoalesceRunChangeDetection&&t(),V5(e)}},onHasTask:(n,i,r,o)=>{n.hasTask(r,o),i===r&&("microTask"==o.change?(e._hasPendingMicrotasks=o.microTask,B3(e),H3(e)):"macroTask"==o.change&&(e.hasPendingMacrotasks=o.macroTask))},onHandleError:(n,i,r,o)=>(n.handleError(r,o),e.runOutsideAngular(()=>e.onError.emit(o)),!1)})}(r)}static isInAngularZone(){return!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!Pr.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")}static assertNotInAngularZone(){if(Pr.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")}run(t,n,i){return this._inner.run(t,n,i)}runTask(t,n,i,r){const o=this._inner,a=o.scheduleEventTask("NgZoneEvent: "+r,t,Nv,j1,j1);try{return o.runTask(a,n,i)}finally{o.cancelTask(a)}}runGuarded(t,n,i){return this._inner.runGuarded(t,n,i)}runOutsideAngular(t){return this._outer.run(t)}}const Nv={};function H3(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function B3(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function F5(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function V5(e){e._nesting--,H3(e)}class Yv{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Oo,this.onMicrotaskEmpty=new Oo,this.onStable=new Oo,this.onError=new Oo}run(t,n,i){return t.apply(n,i)}runGuarded(t,n,i){return t.apply(n,i)}runOutsideAngular(t){return t()}runTask(t,n,i,r){return t.apply(n,i)}}let L5=(()=>{class e{constructor(n){this._ngZone=n,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),n.run(()=>{this.taskTrackingZone="undefined"==typeof Zone?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{Pr.assertNotInAngularZone(),N3(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())N3(()=>{for(;0!==this._callbacks.length;){let n=this._callbacks.pop();clearTimeout(n.timeoutId),n.doneCb(this._didWork)}this._didWork=!1});else{let n=this.getPendingTasks();this._callbacks=this._callbacks.filter(i=>!i.updateCb||!i.updateCb(n)||(clearTimeout(i.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(n=>({source:n.source,creationLocation:n.creationLocation,data:n.data})):[]}addCallback(n,i,r){let o=-1;i&&i>0&&(o=setTimeout(()=>{this._callbacks=this._callbacks.filter(a=>a.timeoutId!==o),n(this._didWork,this.getPendingTasks())},i)),this._callbacks.push({doneCb:n,timeoutId:o,updateCb:r})}whenStable(n,i,r){if(r&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(n,i,r),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(n,i,r){return[]}}return e.\u0275fac=function(n){return new(n||e)(Ci(Pr))},e.\u0275prov=rt({token:e,factory:e.\u0275fac}),e})(),R5=(()=>{class e{constructor(){this._applications=new Map,Y3.addToWindow(this)}registerApplication(n,i){this._applications.set(n,i)}unregisterApplication(n){this._applications.delete(n)}unregisterAllApplications(){this._applications.clear()}getTestability(n){return this._applications.get(n)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(n,i=!0){return Y3.findTestabilityInTree(this,n,i)}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=rt({token:e,factory:e.\u0275fac}),e})();class jv{addToWindow(t){}findTestabilityInTree(t,n,i){return null}}function Uv(e){Y3=e}let Y3=new jv,N5=!0,H5=!1;function j3(){return H5=!0,N5}function $v(){if(H5)throw new Error("Cannot enable prod mode after platform setup.");N5=!1}let so;const B5=new mi("AllowMultipleToken");class Jv{constructor(t,n){this.name=t,this.token=n}}function Y5(e,t,n=[]){const i=`Platform: ${t}`,r=new mi(i);return(o=[])=>{let a=j5();if(!a||a.injector.get(B5,!1))if(e)e(n.concat(o).concat({provide:r,useValue:!0}));else{const l=n.concat(o).concat({provide:r,useValue:!0},{provide:Zs,useValue:"platform"});!function(e){if(so&&!so.destroyed&&!so.injector.get(B5,!1))throw new Error("There can be only one platform. Destroy the previous one to create a new one.");so=e.get(U5);const t=e.get(x5,null);t&&t.forEach(n=>n())}(Zn.create({providers:l,name:i}))}return function(e){const t=j5();if(!t)throw new Error("No platform exists!");if(!t.injector.get(e,null))throw new Error("A platform with a different configuration has been created. Please destroy it first.");return t}(r)}}function j5(){return so&&!so.destroyed?so:null}let U5=(()=>{class e{constructor(n){this._injector=n,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(n,i){const l=function(e,t){let n;return n="noop"===e?new Yv:("zone.js"===e?void 0:e)||new Pr({enableLongStackTrace:j3(),shouldCoalesceEventChangeDetection:!!(null==t?void 0:t.ngZoneEventCoalescing),shouldCoalesceRunChangeDetection:!!(null==t?void 0:t.ngZoneRunCoalescing)}),n}(i?i.ngZone:void 0,{ngZoneEventCoalescing:i&&i.ngZoneEventCoalescing||!1,ngZoneRunCoalescing:i&&i.ngZoneRunCoalescing||!1}),f=[{provide:Pr,useValue:l}];return l.run(()=>{const C=Zn.create({providers:f,parent:this.injector,name:n.moduleType.name}),P=n.create(C),q=P.injector.get(fs,null);if(!q)throw new Error("No ErrorHandler. Is platform module (BrowserModule) included?");return l.runOutsideAngular(()=>{const ie=l.onError.subscribe({next:ze=>{q.handleError(ze)}});P.onDestroy(()=>{U3(this._modules,P),ie.unsubscribe()})}),function(e,t,n){try{const i=n();return j2(i)?i.catch(r=>{throw t.runOutsideAngular(()=>e.handleError(r)),r}):i}catch(i){throw t.runOutsideAngular(()=>e.handleError(i)),i}}(q,l,()=>{const ie=P.injector.get(Ca);return ie.runInitializers(),ie.donePromise.then(()=>(n3(P.injector.get(il,R1)||R1),this._moduleDoBootstrap(P),P))})})}bootstrapModule(n,i=[]){const r=$5({},i);return function(e,t,n){const i=new w3(n);return Promise.resolve(i)}(0,0,n).then(o=>this.bootstrapModuleFactory(o,r))}_moduleDoBootstrap(n){const i=n.injector.get(bc);if(n._bootstrapComponents.length>0)n._bootstrapComponents.forEach(r=>i.bootstrap(r));else{if(!n.instance.ngDoBootstrap)throw new Error(`The module ${B(n.instance.constructor)} was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. Please define one of these.`);n.instance.ngDoBootstrap(i)}this._modules.push(n)}onDestroy(n){this._destroyListeners.push(n)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error("The platform has already been destroyed!");this._modules.slice().forEach(n=>n.destroy()),this._destroyListeners.forEach(n=>n()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\u0275fac=function(n){return new(n||e)(Ci(Zn))},e.\u0275prov=rt({token:e,factory:e.\u0275fac}),e})();function $5(e,t){return Array.isArray(t)?t.reduce($5,e):Object.assign(Object.assign({},e),t)}let bc=(()=>{class e{constructor(n,i,r,o,a){this._zone=n,this._injector=i,this._exceptionHandler=r,this._componentFactoryResolver=o,this._initStatus=a,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const l=new z.y(C=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{C.next(this._stable),C.complete()})}),f=new z.y(C=>{let P;this._zone.runOutsideAngular(()=>{P=this._zone.onStable.subscribe(()=>{Pr.assertNotInAngularZone(),N3(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,C.next(!0))})})});const q=this._zone.onUnstable.subscribe(()=>{Pr.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{C.next(!1)}))});return()=>{P.unsubscribe(),q.unsubscribe()}});this.isStable=(0,le.T)(l,f.pipe((0,W.B)()))}bootstrap(n,i){if(!this._initStatus.done)throw new Error("Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.");let r;r=n instanceof id?n:this._componentFactoryResolver.resolveComponentFactory(n),this.componentTypes.push(r.componentType);const o=function(e){return e.isBoundToModule}(r)?void 0:this._injector.get(Ds),l=r.create(Zn.NULL,[],i||r.selector,o),f=l.location.nativeElement,C=l.injector.get(L5,null),P=C&&l.injector.get(R5);return C&&P&&P.registerApplication(f,C),l.onDestroy(()=>{this.detachView(l.hostView),U3(this.components,l),P&&P.unregisterApplication(f)}),this._loadComponent(l),l}tick(){if(this._runningTick)throw new Error("ApplicationRef.tick is called recursively");try{this._runningTick=!0;for(let n of this._views)n.detectChanges()}catch(n){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(n))}finally{this._runningTick=!1}}attachView(n){const i=n;this._views.push(i),i.attachToAppRef(this)}detachView(n){const i=n;U3(this._views,i),i.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView),this.tick(),this.components.push(n),this._injector.get(O5,[]).concat(this._bootstrapListeners).forEach(r=>r(n))}ngOnDestroy(){this._views.slice().forEach(n=>n.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}get viewCount(){return this._views.length}}return e.\u0275fac=function(n){return new(n||e)(Ci(Pr),Ci(Zn),Ci(fs),Ci(ws),Ci(Ca))},e.\u0275prov=rt({token:e,factory:e.\u0275fac}),e})();function U3(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class r_{}class s_{}const a_={factoryPathPrefix:"",factoryPathSuffix:".ngfactory"};let c_=(()=>{class e{constructor(n,i){this._compiler=n,this._config=i||a_}load(n){return this.loadAndCompile(n)}loadAndCompile(n){let[i,r]=n.split("#");return void 0===r&&(r="default"),m(8255)(i).then(o=>o[r]).then(o=>Q5(o,i,r)).then(o=>this._compiler.compileModuleAsync(o))}loadFactory(n){let[i,r]=n.split("#"),o="NgFactory";return void 0===r&&(r="default",o=""),m(8255)(this._config.factoryPathPrefix+i+this._config.factoryPathSuffix).then(a=>a[r+o]).then(a=>Q5(a,i,r))}}return e.\u0275fac=function(n){return new(n||e)(Ci(Mc),Ci(s_,8))},e.\u0275prov=rt({token:e,factory:e.\u0275fac}),e})();function Q5(e,t,n){if(!e)throw new Error(`Cannot find '${n}' in '${t}'`);return e}const g_=function(e){return null},__=Y5(null,"core",[{provide:P5,useValue:"unknown"},{provide:U5,deps:[Zn]},{provide:R5,deps:[]},{provide:A5,deps:[]}]),E_=[{provide:bc,useClass:bc,deps:[Pr,Zn,fs,ws,Ca]},{provide:xg,deps:[Pr],useFactory:function(e){let t=[];return e.onStable.subscribe(()=>{for(;t.length;)t.pop()()}),function(n){t.push(n)}}},{provide:Ca,useClass:Ca,deps:[[new Mo,V3]]},{provide:Mc,useClass:Mc,deps:[]},Tv,{provide:$1,useFactory:function(){return Em},deps:[]},{provide:W1,useFactory:function(){return wm},deps:[]},{provide:il,useFactory:function(e){return n3(e=e||"undefined"!=typeof $localize&&$localize.locale||R1),e},deps:[[new us(il),new Mo,new No]]},{provide:k5,useValue:"USD"}];let D_=(()=>{class e{constructor(n){}}return e.\u0275fac=function(n){return new(n||e)(Ci(bc))},e.\u0275mod=jn({type:e}),e.\u0275inj=lt({providers:E_}),e})()},665:(yt,De,m)=>{"use strict";m.d(De,{TO:()=>pn,ve:()=>nt,Wl:()=>je,Fj:()=>ut,qu:()=>Gr,oH:()=>Ye,u:()=>Fi,sg:()=>zt,u5:()=>Wr,JU:()=>V,a5:()=>cn,JJ:()=>xe,JL:()=>Ae,F:()=>Qt,On:()=>li,Mq:()=>Bn,c5:()=>tr,UX:()=>nr,Q7:()=>Ar,kI:()=>Pe,_Y:()=>$t});var c=m(7716),s=m(8583),z=m(8891),le=m(9796),W=m(8002),x=m(1555),S=m(4402);function U(T,E){return new z.y(v=>{const $=T.length;if(0===$)return void v.complete();const ht=new Array($);let Lt=0,b=0;for(let j=0;j<$;j++){const D=(0,S.D)(T[j]);let J=!1;v.add(D.subscribe({next:Me=>{J||(J=!0,b++),ht[j]=Me},error:Me=>v.error(Me),complete:()=>{Lt++,(Lt===$||!J)&&(b===$&&v.next(E?E.reduce((Me,mt,bt)=>(Me[mt]=ht[bt],Me),{}):ht),v.complete())}}))}})}let F=(()=>{class T{constructor(v,$){this._renderer=v,this._elementRef=$,this.onChange=ht=>{},this.onTouched=()=>{}}setProperty(v,$){this._renderer.setProperty(this._elementRef.nativeElement,v,$)}registerOnTouched(v){this.onTouched=v}registerOnChange(v){this.onChange=v}setDisabledState(v){this.setProperty("disabled",v)}}return T.\u0275fac=function(v){return new(v||T)(c.Y36(c.Qsj),c.Y36(c.SBq))},T.\u0275dir=c.lG2({type:T}),T})(),Y=(()=>{class T extends F{}return T.\u0275fac=function(){let E;return function($){return(E||(E=c.n5z(T)))($||T)}}(),T.\u0275dir=c.lG2({type:T,features:[c.qOj]}),T})();const V=new c.OlP("NgValueAccessor"),be={provide:V,useExisting:(0,c.Gpc)(()=>je),multi:!0};let je=(()=>{class T extends Y{writeValue(v){this.setProperty("checked",v)}}return T.\u0275fac=function(){let E;return function($){return(E||(E=c.n5z(T)))($||T)}}(),T.\u0275dir=c.lG2({type:T,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(v,$){1&v&&c.NdJ("change",function(Lt){return $.onChange(Lt.target.checked)})("blur",function(){return $.onTouched()})},features:[c._Bn([be]),c.qOj]}),T})();const Ke={provide:V,useExisting:(0,c.Gpc)(()=>ut),multi:!0},nt=new c.OlP("CompositionEventMode");let ut=(()=>{class T extends F{constructor(v,$,ht){super(v,$),this._compositionMode=ht,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function(){const T=(0,s.q)()?(0,s.q)().getUserAgent():"";return/android (\d+)/.test(T.toLowerCase())}())}writeValue(v){this.setProperty("value",null==v?"":v)}_handleInput(v){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(v)}_compositionStart(){this._composing=!0}_compositionEnd(v){this._composing=!1,this._compositionMode&&this.onChange(v)}}return T.\u0275fac=function(v){return new(v||T)(c.Y36(c.Qsj),c.Y36(c.SBq),c.Y36(nt,8))},T.\u0275dir=c.lG2({type:T,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(v,$){1&v&&c.NdJ("input",function(Lt){return $._handleInput(Lt.target.value)})("blur",function(){return $.onTouched()})("compositionstart",function(){return $._compositionStart()})("compositionend",function(Lt){return $._compositionEnd(Lt.target.value)})},features:[c._Bn([Ke]),c.qOj]}),T})();function tt(T){return null==T||0===T.length}function Ft(T){return null!=T&&"number"==typeof T.length}const We=new c.OlP("NgValidators"),Re=new c.OlP("NgAsyncValidators"),Ze=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class Pe{static min(E){return T=E,E=>{if(tt(E.value)||tt(T))return null;const v=parseFloat(E.value);return!isNaN(v)&&v<T?{min:{min:T,actual:E.value}}:null};var T}static max(E){return T=E,E=>{if(tt(E.value)||tt(T))return null;const v=parseFloat(E.value);return!isNaN(v)&&v>T?{max:{max:T,actual:E.value}}:null};var T}static required(E){return se(E)}static requiredTrue(E){return!0===E.value?null:{required:!0}}static email(E){return tt((T=E).value)||Ze.test(T.value)?null:{email:!0};var T}static minLength(E){return T=E,E=>tt(E.value)||!Ft(E.value)?null:E.value.length<T?{minlength:{requiredLength:T,actualLength:E.value.length}}:null;var T}static maxLength(E){return T=E,E=>Ft(E.value)&&E.value.length>T?{maxlength:{requiredLength:T,actualLength:E.value.length}}:null;var T}static pattern(E){return pe(E)}static nullValidator(E){return null}static compose(E){return ft(E)}static composeAsync(E){return rt(E)}}function se(T){return tt(T.value)?{required:!0}:null}function pe(T){if(!T)return Ue;let E,v;return"string"==typeof T?(v="","^"!==T.charAt(0)&&(v+="^"),v+=T,"$"!==T.charAt(T.length-1)&&(v+="$"),E=new RegExp(v)):(v=T.toString(),E=T),$=>{if(tt($.value))return null;const ht=$.value;return E.test(ht)?null:{pattern:{requiredPattern:v,actualValue:ht}}}}function Ue(T){return null}function Ne(T){return null!=T}function Ie(T){const E=(0,c.QGY)(T)?(0,S.D)(T):T;return(0,c.CqO)(E),E}function he(T){let E={};return T.forEach(v=>{E=null!=v?Object.assign(Object.assign({},E),v):E}),0===Object.keys(E).length?null:E}function we(T,E){return E.map(v=>v(T))}function Ve(T){return T.map(E=>function(T){return!T.validate}(E)?E:v=>E.validate(v))}function ft(T){if(!T)return null;const E=T.filter(Ne);return 0==E.length?null:function(v){return he(we(v,E))}}function Tt(T){return null!=T?ft(Ve(T)):null}function rt(T){if(!T)return null;const E=T.filter(Ne);return 0==E.length?null:function(v){return function(...T){if(1===T.length){const E=T[0];if((0,le.k)(E))return U(E,null);if((0,x.K)(E)&&Object.getPrototypeOf(E)===Object.prototype){const v=Object.keys(E);return U(v.map($=>E[$]),v)}}if("function"==typeof T[T.length-1]){const E=T.pop();return U(T=1===T.length&&(0,le.k)(T[0])?T[0]:T,null).pipe((0,W.U)(v=>E(...v)))}return U(T,null)}(we(v,E).map(Ie)).pipe((0,W.U)(he))}}function St(T){return null!=T?rt(Ve(T)):null}function lt(T,E){return null===T?[E]:Array.isArray(T)?[...T,E]:[T,E]}function Dt(T){return T._rawValidators}function Ht(T){return T._rawAsyncValidators}function un(T){return T?Array.isArray(T)?T:[T]:[]}function en(T,E){return Array.isArray(T)?T.includes(E):T===E}function wn(T,E){const v=un(E);return un(T).forEach(ht=>{en(v,ht)||v.push(ht)}),v}function It(T,E){return un(E).filter(v=>!en(T,v))}let tn=(()=>{class T{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(v){this._rawValidators=v||[],this._composedValidatorFn=Tt(this._rawValidators)}_setAsyncValidators(v){this._rawAsyncValidators=v||[],this._composedAsyncValidatorFn=St(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(v){this._onDestroyCallbacks.push(v)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(v=>v()),this._onDestroyCallbacks=[]}reset(v){this.control&&this.control.reset(v)}hasError(v,$){return!!this.control&&this.control.hasError(v,$)}getError(v,$){return this.control?this.control.getError(v,$):null}}return T.\u0275fac=function(v){return new(v||T)},T.\u0275dir=c.lG2({type:T}),T})(),rn=(()=>{class T extends tn{get formDirective(){return null}get path(){return null}}return T.\u0275fac=function(){let E;return function($){return(E||(E=c.n5z(T)))($||T)}}(),T.\u0275dir=c.lG2({type:T,features:[c.qOj]}),T})();class cn extends tn{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class kt{constructor(E){this._cd=E}is(E){var v,$,ht;return"submitted"===E?!!(null===(v=this._cd)||void 0===v?void 0:v.submitted):!!(null===(ht=null===($=this._cd)||void 0===$?void 0:$.control)||void 0===ht?void 0:ht[E])}}let xe=(()=>{class T extends kt{constructor(v){super(v)}}return T.\u0275fac=function(v){return new(v||T)(c.Y36(cn,2))},T.\u0275dir=c.lG2({type:T,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(v,$){2&v&&c.ekj("ng-untouched",$.is("untouched"))("ng-touched",$.is("touched"))("ng-pristine",$.is("pristine"))("ng-dirty",$.is("dirty"))("ng-valid",$.is("valid"))("ng-invalid",$.is("invalid"))("ng-pending",$.is("pending"))},features:[c.qOj]}),T})(),Ae=(()=>{class T extends kt{constructor(v){super(v)}}return T.\u0275fac=function(v){return new(v||T)(c.Y36(rn,10))},T.\u0275dir=c.lG2({type:T,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(v,$){2&v&&c.ekj("ng-untouched",$.is("untouched"))("ng-touched",$.is("touched"))("ng-pristine",$.is("pristine"))("ng-dirty",$.is("dirty"))("ng-valid",$.is("valid"))("ng-invalid",$.is("invalid"))("ng-pending",$.is("pending"))("ng-submitted",$.is("submitted"))},features:[c.qOj]}),T})();function I(T,E){return[...E.path,T]}function ne(T,E){ve(T,E),E.valueAccessor.writeValue(T.value),function(T,E){E.valueAccessor.registerOnChange(v=>{T._pendingValue=v,T._pendingChange=!0,T._pendingDirty=!0,"change"===T.updateOn&&Je(T,E)})}(T,E),function(T,E){const v=($,ht)=>{E.valueAccessor.writeValue($),ht&&E.viewToModelUpdate($)};T.registerOnChange(v),E._registerOnDestroy(()=>{T._unregisterOnChange(v)})}(T,E),function(T,E){E.valueAccessor.registerOnTouched(()=>{T._pendingTouched=!0,"blur"===T.updateOn&&T._pendingChange&&Je(T,E),"submit"!==T.updateOn&&T.markAsTouched()})}(T,E),function(T,E){if(E.valueAccessor.setDisabledState){const v=$=>{E.valueAccessor.setDisabledState($)};T.registerOnDisabledChange(v),E._registerOnDestroy(()=>{T._unregisterOnDisabledChange(v)})}}(T,E)}function N(T,E,v=!0){const $=()=>{};E.valueAccessor&&(E.valueAccessor.registerOnChange($),E.valueAccessor.registerOnTouched($)),Ce(T,E),T&&(E._invokeOnDestroyCallbacks(),T._registerOnCollectionChange(()=>{}))}function G(T,E){T.forEach(v=>{v.registerOnValidatorChange&&v.registerOnValidatorChange(E)})}function ve(T,E){const v=Dt(T);null!==E.validator?T.setValidators(lt(v,E.validator)):"function"==typeof v&&T.setValidators([v]);const $=Ht(T);null!==E.asyncValidator?T.setAsyncValidators(lt($,E.asyncValidator)):"function"==typeof $&&T.setAsyncValidators([$]);const ht=()=>T.updateValueAndValidity();G(E._rawValidators,ht),G(E._rawAsyncValidators,ht)}function Ce(T,E){let v=!1;if(null!==T){if(null!==E.validator){const ht=Dt(T);if(Array.isArray(ht)&&ht.length>0){const Lt=ht.filter(b=>b!==E.validator);Lt.length!==ht.length&&(v=!0,T.setValidators(Lt))}}if(null!==E.asyncValidator){const ht=Ht(T);if(Array.isArray(ht)&&ht.length>0){const Lt=ht.filter(b=>b!==E.asyncValidator);Lt.length!==ht.length&&(v=!0,T.setAsyncValidators(Lt))}}}const $=()=>{};return G(E._rawValidators,$),G(E._rawAsyncValidators,$),v}function Je(T,E){T._pendingDirty&&T.markAsDirty(),T.setValue(T._pendingValue,{emitModelToViewChange:!1}),E.viewToModelUpdate(T._pendingValue),T._pendingChange=!1}function it(T,E){ve(T,E)}function wt(T,E){if(!T.hasOwnProperty("model"))return!1;const v=T.model;return!!v.isFirstChange()||!Object.is(E,v.currentValue)}function de(T,E){T._syncPendingControls(),E.forEach(v=>{const $=v.control;"submit"===$.updateOn&&$._pendingChange&&(v.viewToModelUpdate($._pendingValue),$._pendingChange=!1)})}function te(T,E){if(!E)return null;let v,$,ht;return Array.isArray(E),E.forEach(Lt=>{Lt.constructor===ut?v=Lt:function(T){return Object.getPrototypeOf(T.constructor)===Y}(Lt)?$=Lt:ht=Lt}),ht||$||v||null}function Le(T,E){const v=T.indexOf(E);v>-1&&T.splice(v,1)}const xt="VALID",Jt="INVALID",on="PENDING",Sn="DISABLED";function jn(T){return(Wn(T)?T.validators:T)||null}function Tn(T){return Array.isArray(T)?Tt(T):T||null}function zn(T,E){return(Wn(E)?E.asyncValidators:T)||null}function Jn(T){return Array.isArray(T)?St(T):T||null}function Wn(T){return null!=T&&!Array.isArray(T)&&"object"==typeof T}class pn{constructor(E,v){this._hasOwnPendingAsyncValidator=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._rawValidators=E,this._rawAsyncValidators=v,this._composedValidatorFn=Tn(this._rawValidators),this._composedAsyncValidatorFn=Jn(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn}set validator(E){this._rawValidators=this._composedValidatorFn=E}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(E){this._rawAsyncValidators=this._composedAsyncValidatorFn=E}get parent(){return this._parent}get valid(){return this.status===xt}get invalid(){return this.status===Jt}get pending(){return this.status==on}get disabled(){return this.status===Sn}get enabled(){return this.status!==Sn}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(E){this._rawValidators=E,this._composedValidatorFn=Tn(E)}setAsyncValidators(E){this._rawAsyncValidators=E,this._composedAsyncValidatorFn=Jn(E)}addValidators(E){this.setValidators(wn(E,this._rawValidators))}addAsyncValidators(E){this.setAsyncValidators(wn(E,this._rawAsyncValidators))}removeValidators(E){this.setValidators(It(E,this._rawValidators))}removeAsyncValidators(E){this.setAsyncValidators(It(E,this._rawAsyncValidators))}hasValidator(E){return en(this._rawValidators,E)}hasAsyncValidator(E){return en(this._rawAsyncValidators,E)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(E={}){this.touched=!0,this._parent&&!E.onlySelf&&this._parent.markAsTouched(E)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(E=>E.markAllAsTouched())}markAsUntouched(E={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(v=>{v.markAsUntouched({onlySelf:!0})}),this._parent&&!E.onlySelf&&this._parent._updateTouched(E)}markAsDirty(E={}){this.pristine=!1,this._parent&&!E.onlySelf&&this._parent.markAsDirty(E)}markAsPristine(E={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(v=>{v.markAsPristine({onlySelf:!0})}),this._parent&&!E.onlySelf&&this._parent._updatePristine(E)}markAsPending(E={}){this.status=on,!1!==E.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!E.onlySelf&&this._parent.markAsPending(E)}disable(E={}){const v=this._parentMarkedDirty(E.onlySelf);this.status=Sn,this.errors=null,this._forEachChild($=>{$.disable(Object.assign(Object.assign({},E),{onlySelf:!0}))}),this._updateValue(),!1!==E.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Object.assign(Object.assign({},E),{skipPristineCheck:v})),this._onDisabledChange.forEach($=>$(!0))}enable(E={}){const v=this._parentMarkedDirty(E.onlySelf);this.status=xt,this._forEachChild($=>{$.enable(Object.assign(Object.assign({},E),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:E.emitEvent}),this._updateAncestors(Object.assign(Object.assign({},E),{skipPristineCheck:v})),this._onDisabledChange.forEach($=>$(!1))}_updateAncestors(E){this._parent&&!E.onlySelf&&(this._parent.updateValueAndValidity(E),E.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(E){this._parent=E}updateValueAndValidity(E={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===xt||this.status===on)&&this._runAsyncValidator(E.emitEvent)),!1!==E.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!E.onlySelf&&this._parent.updateValueAndValidity(E)}_updateTreeValidity(E={emitEvent:!0}){this._forEachChild(v=>v._updateTreeValidity(E)),this.updateValueAndValidity({onlySelf:!0,emitEvent:E.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Sn:xt}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(E){if(this.asyncValidator){this.status=on,this._hasOwnPendingAsyncValidator=!0;const v=Ie(this.asyncValidator(this));this._asyncValidationSubscription=v.subscribe($=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors($,{emitEvent:E})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(E,v={}){this.errors=E,this._updateControlsErrors(!1!==v.emitEvent)}get(E){return function(T,E,v){if(null==E||(Array.isArray(E)||(E=E.split(".")),Array.isArray(E)&&0===E.length))return null;let $=T;return E.forEach(ht=>{$=$ instanceof kn?$.controls.hasOwnProperty(ht)?$.controls[ht]:null:$ instanceof xn&&$.at(ht)||null}),$}(this,E)}getError(E,v){const $=v?this.get(v):this;return $&&$.errors?$.errors[E]:null}hasError(E,v){return!!this.getError(E,v)}get root(){let E=this;for(;E._parent;)E=E._parent;return E}_updateControlsErrors(E){this.status=this._calculateStatus(),E&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(E)}_initObservables(){this.valueChanges=new c.vpe,this.statusChanges=new c.vpe}_calculateStatus(){return this._allControlsDisabled()?Sn:this.errors?Jt:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(on)?on:this._anyControlsHaveStatus(Jt)?Jt:xt}_anyControlsHaveStatus(E){return this._anyControls(v=>v.status===E)}_anyControlsDirty(){return this._anyControls(E=>E.dirty)}_anyControlsTouched(){return this._anyControls(E=>E.touched)}_updatePristine(E={}){this.pristine=!this._anyControlsDirty(),this._parent&&!E.onlySelf&&this._parent._updatePristine(E)}_updateTouched(E={}){this.touched=this._anyControlsTouched(),this._parent&&!E.onlySelf&&this._parent._updateTouched(E)}_isBoxedValue(E){return"object"==typeof E&&null!==E&&2===Object.keys(E).length&&"value"in E&&"disabled"in E}_registerOnCollectionChange(E){this._onCollectionChange=E}_setUpdateStrategy(E){Wn(E)&&null!=E.updateOn&&(this._updateOn=E.updateOn)}_parentMarkedDirty(E){return!E&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}}class vn extends pn{constructor(E=null,v,$){super(jn(v),zn($,v)),this._onChange=[],this._applyFormState(E),this._setUpdateStrategy(v),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}setValue(E,v={}){this.value=this._pendingValue=E,this._onChange.length&&!1!==v.emitModelToViewChange&&this._onChange.forEach($=>$(this.value,!1!==v.emitViewToModelChange)),this.updateValueAndValidity(v)}patchValue(E,v={}){this.setValue(E,v)}reset(E=null,v={}){this._applyFormState(E),this.markAsPristine(v),this.markAsUntouched(v),this.setValue(this.value,v),this._pendingChange=!1}_updateValue(){}_anyControls(E){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(E){this._onChange.push(E)}_unregisterOnChange(E){Le(this._onChange,E)}registerOnDisabledChange(E){this._onDisabledChange.push(E)}_unregisterOnDisabledChange(E){Le(this._onDisabledChange,E)}_forEachChild(E){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(E){this._isBoxedValue(E)?(this.value=this._pendingValue=E.value,E.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=E}}class kn extends pn{constructor(E,v,$){super(jn(v),zn($,v)),this.controls=E,this._initObservables(),this._setUpdateStrategy(v),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(E,v){return this.controls[E]?this.controls[E]:(this.controls[E]=v,v.setParent(this),v._registerOnCollectionChange(this._onCollectionChange),v)}addControl(E,v,$={}){this.registerControl(E,v),this.updateValueAndValidity({emitEvent:$.emitEvent}),this._onCollectionChange()}removeControl(E,v={}){this.controls[E]&&this.controls[E]._registerOnCollectionChange(()=>{}),delete this.controls[E],this.updateValueAndValidity({emitEvent:v.emitEvent}),this._onCollectionChange()}setControl(E,v,$={}){this.controls[E]&&this.controls[E]._registerOnCollectionChange(()=>{}),delete this.controls[E],v&&this.registerControl(E,v),this.updateValueAndValidity({emitEvent:$.emitEvent}),this._onCollectionChange()}contains(E){return this.controls.hasOwnProperty(E)&&this.controls[E].enabled}setValue(E,v={}){this._checkAllValuesPresent(E),Object.keys(E).forEach($=>{this._throwIfControlMissing($),this.controls[$].setValue(E[$],{onlySelf:!0,emitEvent:v.emitEvent})}),this.updateValueAndValidity(v)}patchValue(E,v={}){null!=E&&(Object.keys(E).forEach($=>{this.controls[$]&&this.controls[$].patchValue(E[$],{onlySelf:!0,emitEvent:v.emitEvent})}),this.updateValueAndValidity(v))}reset(E={},v={}){this._forEachChild(($,ht)=>{$.reset(E[ht],{onlySelf:!0,emitEvent:v.emitEvent})}),this._updatePristine(v),this._updateTouched(v),this.updateValueAndValidity(v)}getRawValue(){return this._reduceChildren({},(E,v,$)=>(E[$]=v instanceof vn?v.value:v.getRawValue(),E))}_syncPendingControls(){let E=this._reduceChildren(!1,(v,$)=>!!$._syncPendingControls()||v);return E&&this.updateValueAndValidity({onlySelf:!0}),E}_throwIfControlMissing(E){if(!Object.keys(this.controls).length)throw new Error("\n There are no form controls registered with this group yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.controls[E])throw new Error(`Cannot find form control with name: ${E}.`)}_forEachChild(E){Object.keys(this.controls).forEach(v=>{const $=this.controls[v];$&&E($,v)})}_setUpControls(){this._forEachChild(E=>{E.setParent(this),E._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(E){for(const v of Object.keys(this.controls)){const $=this.controls[v];if(this.contains(v)&&E($))return!0}return!1}_reduceValue(){return this._reduceChildren({},(E,v,$)=>((v.enabled||this.disabled)&&(E[$]=v.value),E))}_reduceChildren(E,v){let $=E;return this._forEachChild((ht,Lt)=>{$=v($,ht,Lt)}),$}_allControlsDisabled(){for(const E of Object.keys(this.controls))if(this.controls[E].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_checkAllValuesPresent(E){this._forEachChild((v,$)=>{if(void 0===E[$])throw new Error(`Must supply a value for form control with name: '${$}'.`)})}}class xn extends pn{constructor(E,v,$){super(jn(v),zn($,v)),this.controls=E,this._initObservables(),this._setUpdateStrategy(v),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(E){return this.controls[E]}push(E,v={}){this.controls.push(E),this._registerControl(E),this.updateValueAndValidity({emitEvent:v.emitEvent}),this._onCollectionChange()}insert(E,v,$={}){this.controls.splice(E,0,v),this._registerControl(v),this.updateValueAndValidity({emitEvent:$.emitEvent})}removeAt(E,v={}){this.controls[E]&&this.controls[E]._registerOnCollectionChange(()=>{}),this.controls.splice(E,1),this.updateValueAndValidity({emitEvent:v.emitEvent})}setControl(E,v,$={}){this.controls[E]&&this.controls[E]._registerOnCollectionChange(()=>{}),this.controls.splice(E,1),v&&(this.controls.splice(E,0,v),this._registerControl(v)),this.updateValueAndValidity({emitEvent:$.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(E,v={}){this._checkAllValuesPresent(E),E.forEach(($,ht)=>{this._throwIfControlMissing(ht),this.at(ht).setValue($,{onlySelf:!0,emitEvent:v.emitEvent})}),this.updateValueAndValidity(v)}patchValue(E,v={}){null!=E&&(E.forEach(($,ht)=>{this.at(ht)&&this.at(ht).patchValue($,{onlySelf:!0,emitEvent:v.emitEvent})}),this.updateValueAndValidity(v))}reset(E=[],v={}){this._forEachChild(($,ht)=>{$.reset(E[ht],{onlySelf:!0,emitEvent:v.emitEvent})}),this._updatePristine(v),this._updateTouched(v),this.updateValueAndValidity(v)}getRawValue(){return this.controls.map(E=>E instanceof vn?E.value:E.getRawValue())}clear(E={}){this.controls.length<1||(this._forEachChild(v=>v._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:E.emitEvent}))}_syncPendingControls(){let E=this.controls.reduce((v,$)=>!!$._syncPendingControls()||v,!1);return E&&this.updateValueAndValidity({onlySelf:!0}),E}_throwIfControlMissing(E){if(!this.controls.length)throw new Error("\n There are no form controls registered with this array yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.at(E))throw new Error(`Cannot find form control at index ${E}`)}_forEachChild(E){this.controls.forEach((v,$)=>{E(v,$)})}_updateValue(){this.value=this.controls.filter(E=>E.enabled||this.disabled).map(E=>E.value)}_anyControls(E){return this.controls.some(v=>v.enabled&&E(v))}_setUpControls(){this._forEachChild(E=>this._registerControl(E))}_checkAllValuesPresent(E){this._forEachChild((v,$)=>{if(void 0===E[$])throw new Error(`Must supply a value for form control at index: ${$}.`)})}_allControlsDisabled(){for(const E of this.controls)if(E.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(E){E.setParent(this),E._registerOnCollectionChange(this._onCollectionChange)}}const _i={provide:rn,useExisting:(0,c.Gpc)(()=>Qt)},Ot=(()=>Promise.resolve(null))();let Qt=(()=>{class T extends rn{constructor(v,$){super(),this.submitted=!1,this._directives=[],this.ngSubmit=new c.vpe,this.form=new kn({},Tt(v),St($))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(v){Ot.then(()=>{const $=this._findContainer(v.path);v.control=$.registerControl(v.name,v.control),ne(v.control,v),v.control.updateValueAndValidity({emitEvent:!1}),this._directives.push(v)})}getControl(v){return this.form.get(v.path)}removeControl(v){Ot.then(()=>{const $=this._findContainer(v.path);$&&$.removeControl(v.name),Le(this._directives,v)})}addFormGroup(v){Ot.then(()=>{const $=this._findContainer(v.path),ht=new kn({});it(ht,v),$.registerControl(v.name,ht),ht.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(v){Ot.then(()=>{const $=this._findContainer(v.path);$&&$.removeControl(v.name)})}getFormGroup(v){return this.form.get(v.path)}updateModel(v,$){Ot.then(()=>{this.form.get(v.path).setValue($)})}setValue(v){this.control.setValue(v)}onSubmit(v){return this.submitted=!0,de(this.form,this._directives),this.ngSubmit.emit(v),!1}onReset(){this.resetForm()}resetForm(v){this.form.reset(v),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(v){return v.pop(),v.length?this.form.get(v):this.form}}return T.\u0275fac=function(v){return new(v||T)(c.Y36(We,10),c.Y36(Re,10))},T.\u0275dir=c.lG2({type:T,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(v,$){1&v&&c.NdJ("submit",function(Lt){return $.onSubmit(Lt)})("reset",function(){return $.onReset()})},inputs:{options:["ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[c._Bn([_i]),c.qOj]}),T})(),_n=(()=>{class T extends rn{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return I(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}}return T.\u0275fac=function(){let E;return function($){return(E||(E=c.n5z(T)))($||T)}}(),T.\u0275dir=c.lG2({type:T,features:[c.qOj]}),T})();const ci={provide:rn,useExisting:(0,c.Gpc)(()=>Bn)};let Bn=(()=>{class T extends _n{constructor(v,$,ht){super(),this._parent=v,this._setValidators($),this._setAsyncValidators(ht)}_checkParentType(){}}return T.\u0275fac=function(v){return new(v||T)(c.Y36(rn,5),c.Y36(We,10),c.Y36(Re,10))},T.\u0275dir=c.lG2({type:T,selectors:[["","ngModelGroup",""]],inputs:{name:["ngModelGroup","name"]},exportAs:["ngModelGroup"],features:[c._Bn([ci]),c.qOj]}),T})();const si={provide:cn,useExisting:(0,c.Gpc)(()=>li)},jt=(()=>Promise.resolve(null))();let li=(()=>{class T extends cn{constructor(v,$,ht,Lt){super(),this.control=new vn,this._registered=!1,this.update=new c.vpe,this._parent=v,this._setValidators($),this._setAsyncValidators(ht),this.valueAccessor=te(0,Lt)}ngOnChanges(v){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in v&&this._updateDisabled(v),wt(v,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._parent?I(this.name,this._parent):[this.name]}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(v){this.viewModel=v,this.update.emit(v)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){ne(this.control,this),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(v){jt.then(()=>{this.control.setValue(v,{emitViewToModelChange:!1})})}_updateDisabled(v){const $=v.isDisabled.currentValue,ht=""===$||$&&"false"!==$;jt.then(()=>{ht&&!this.control.disabled?this.control.disable():!ht&&this.control.disabled&&this.control.enable()})}}return T.\u0275fac=function(v){return new(v||T)(c.Y36(rn,9),c.Y36(We,10),c.Y36(Re,10),c.Y36(V,10))},T.\u0275dir=c.lG2({type:T,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:["disabled","isDisabled"],model:["ngModel","model"],options:["ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[c._Bn([si]),c.qOj,c.TTD]}),T})(),$t=(()=>{class T{}return T.\u0275fac=function(v){return new(v||T)},T.\u0275dir=c.lG2({type:T,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),T})(),gt=(()=>{class T{}return T.\u0275fac=function(v){return new(v||T)},T.\u0275mod=c.oAB({type:T}),T.\u0275inj=c.cJS({}),T})();const _=new c.OlP("NgModelWithFormControlWarning"),re={provide:cn,useExisting:(0,c.Gpc)(()=>Ye)};let Ye=(()=>{class T extends cn{constructor(v,$,ht,Lt){super(),this._ngModelWarningConfig=Lt,this.update=new c.vpe,this._ngModelWarningSent=!1,this._setValidators(v),this._setAsyncValidators($),this.valueAccessor=te(0,ht)}set isDisabled(v){}ngOnChanges(v){if(this._isControlChanged(v)){const $=v.form.previousValue;$&&N($,this,!1),ne(this.form,this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this.form.updateValueAndValidity({emitEvent:!1})}wt(v,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&N(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(v){this.viewModel=v,this.update.emit(v)}_isControlChanged(v){return v.hasOwnProperty("form")}}return T.\u0275fac=function(v){return new(v||T)(c.Y36(We,10),c.Y36(Re,10),c.Y36(V,10),c.Y36(_,8))},T.\u0275dir=c.lG2({type:T,selectors:[["","formControl",""]],inputs:{isDisabled:["disabled","isDisabled"],form:["formControl","form"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],features:[c._Bn([re]),c.qOj,c.TTD]}),T._ngModelWarningSentOnce=!1,T})();const ot={provide:rn,useExisting:(0,c.Gpc)(()=>zt)};let zt=(()=>{class T extends rn{constructor(v,$){super(),this.validators=v,this.asyncValidators=$,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new c.vpe,this._setValidators(v),this._setAsyncValidators($)}ngOnChanges(v){this._checkFormPresent(),v.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Ce(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(v){const $=this.form.get(v.path);return ne($,v),$.updateValueAndValidity({emitEvent:!1}),this.directives.push(v),$}getControl(v){return this.form.get(v.path)}removeControl(v){N(v.control||null,v,!1),Le(this.directives,v)}addFormGroup(v){this._setUpFormContainer(v)}removeFormGroup(v){this._cleanUpFormContainer(v)}getFormGroup(v){return this.form.get(v.path)}addFormArray(v){this._setUpFormContainer(v)}removeFormArray(v){this._cleanUpFormContainer(v)}getFormArray(v){return this.form.get(v.path)}updateModel(v,$){this.form.get(v.path).setValue($)}onSubmit(v){return this.submitted=!0,de(this.form,this.directives),this.ngSubmit.emit(v),!1}onReset(){this.resetForm()}resetForm(v){this.form.reset(v),this.submitted=!1}_updateDomValue(){this.directives.forEach(v=>{const $=v.control,ht=this.form.get(v.path);$!==ht&&(N($||null,v),ht instanceof vn&&(ne(ht,v),v.control=ht))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(v){const $=this.form.get(v.path);it($,v),$.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(v){if(this.form){const $=this.form.get(v.path);$&&function(T,E){return Ce(T,E)}($,v)&&$.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){ve(this.form,this),this._oldForm&&Ce(this._oldForm,this)}_checkFormPresent(){}}return T.\u0275fac=function(v){return new(v||T)(c.Y36(We,10),c.Y36(Re,10))},T.\u0275dir=c.lG2({type:T,selectors:[["","formGroup",""]],hostBindings:function(v,$){1&v&&c.NdJ("submit",function(Lt){return $.onSubmit(Lt)})("reset",function(){return $.onReset()})},inputs:{form:["formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[c._Bn([ot]),c.qOj,c.TTD]}),T})();const Hn={provide:cn,useExisting:(0,c.Gpc)(()=>Fi)};let Fi=(()=>{class T extends cn{constructor(v,$,ht,Lt,b){super(),this._ngModelWarningConfig=b,this._added=!1,this.update=new c.vpe,this._ngModelWarningSent=!1,this._parent=v,this._setValidators($),this._setAsyncValidators(ht),this.valueAccessor=te(0,Lt)}set isDisabled(v){}ngOnChanges(v){this._added||this._setUpControl(),wt(v,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(v){this.viewModel=v,this.update.emit(v)}get path(){return I(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this._added=!0}}return T.\u0275fac=function(v){return new(v||T)(c.Y36(rn,13),c.Y36(We,10),c.Y36(Re,10),c.Y36(V,10),c.Y36(_,8))},T.\u0275dir=c.lG2({type:T,selectors:[["","formControlName",""]],inputs:{isDisabled:["disabled","isDisabled"],name:["formControlName","name"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},features:[c._Bn([Hn]),c.qOj,c.TTD]}),T._ngModelWarningSentOnce=!1,T})();const ko={provide:We,useExisting:(0,c.Gpc)(()=>Ar),multi:!0};let Ar=(()=>{class T{constructor(){this._required=!1}get required(){return this._required}set required(v){this._required=null!=v&&!1!==v&&"false"!=`${v}`,this._onChange&&this._onChange()}validate(v){return this.required?se(v):null}registerOnValidatorChange(v){this._onChange=v}}return T.\u0275fac=function(v){return new(v||T)},T.\u0275dir=c.lG2({type:T,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(v,$){2&v&&c.uIk("required",$.required?"":null)},inputs:{required:"required"},features:[c._Bn([ko])]}),T})();const Vi={provide:We,useExisting:(0,c.Gpc)(()=>tr),multi:!0};let tr=(()=>{class T{constructor(){this._validator=Ue}ngOnChanges(v){"pattern"in v&&(this._createValidator(),this._onChange&&this._onChange())}validate(v){return this._validator(v)}registerOnValidatorChange(v){this._onChange=v}_createValidator(){this._validator=pe(this.pattern)}}return T.\u0275fac=function(v){return new(v||T)},T.\u0275dir=c.lG2({type:T,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(v,$){2&v&&c.uIk("pattern",$.pattern?$.pattern:null)},inputs:{pattern:"pattern"},features:[c._Bn([Vi]),c.TTD]}),T})(),kr=(()=>{class T{}return T.\u0275fac=function(v){return new(v||T)},T.\u0275mod=c.oAB({type:T}),T.\u0275inj=c.cJS({imports:[[gt]]}),T})(),Wr=(()=>{class T{}return T.\u0275fac=function(v){return new(v||T)},T.\u0275mod=c.oAB({type:T}),T.\u0275inj=c.cJS({imports:[kr]}),T})(),nr=(()=>{class T{static withConfig(v){return{ngModule:T,providers:[{provide:_,useValue:v.warnOnNgModelWithFormControl}]}}}return T.\u0275fac=function(v){return new(v||T)},T.\u0275mod=c.oAB({type:T}),T.\u0275inj=c.cJS({imports:[kr]}),T})(),Gr=(()=>{class T{group(v,$=null){const ht=this._reduceControls(v);let j,Lt=null,b=null;return null!=$&&(function(T){return void 0!==T.asyncValidators||void 0!==T.validators||void 0!==T.updateOn}($)?(Lt=null!=$.validators?$.validators:null,b=null!=$.asyncValidators?$.asyncValidators:null,j=null!=$.updateOn?$.updateOn:void 0):(Lt=null!=$.validator?$.validator:null,b=null!=$.asyncValidator?$.asyncValidator:null)),new kn(ht,{asyncValidators:b,updateOn:j,validators:Lt})}control(v,$,ht){return new vn(v,$,ht)}array(v,$,ht){const Lt=v.map(b=>this._createControl(b));return new xn(Lt,$,ht)}_reduceControls(v){const $={};return Object.keys(v).forEach(ht=>{$[ht]=this._createControl(v[ht])}),$}_createControl(v){return v instanceof vn||v instanceof kn||v instanceof xn?v:Array.isArray(v)?this.control(v[0],v.length>1?v[1]:null,v.length>2?v[2]:null):this.control(v)}}return T.\u0275fac=function(v){return new(v||T)},T.\u0275prov=(0,c.Yz7)({factory:function(){return new T},token:T,providedIn:nr}),T})()},6237:(yt,De,m)=>{"use strict";m.d(De,{Qb:()=>Pn,PW:()=>mo});var c=m(7716),s=m(9075),z=m(7238);function le(){return"undefined"!=typeof window&&void 0!==window.document}function W(){return"undefined"!=typeof process&&"[object process]"==={}.toString.call(process)}function x(L){switch(L.length){case 0:return new z.ZN;case 1:return L[0];default:return new z.ZE(L)}}function S(L,u,h,y,R={},ee={}){const me=[],Te=[];let Xe=-1,vt=null;if(y.forEach(At=>{const Yt=At.offset,dn=Yt==Xe,On=dn&&vt||{};Object.keys(At).forEach(Xt=>{let an=Xt,Dn=At[Xt];if("offset"!==Xt)switch(an=u.normalizePropertyName(an,me),Dn){case z.k1:Dn=R[Xt];break;case z.l3:Dn=ee[Xt];break;default:Dn=u.normalizeStyleValue(Xt,an,Dn,me)}On[an]=Dn}),dn||Te.push(On),vt=On,Xe=Yt}),me.length){const At="\n - ";throw new Error(`Unable to animate due to the following errors:${At}${me.join(At)}`)}return Te}function B(L,u,h,y){switch(u){case"start":L.onStart(()=>y(h&&U(h,"start",L)));break;case"done":L.onDone(()=>y(h&&U(h,"done",L)));break;case"destroy":L.onDestroy(()=>y(h&&U(h,"destroy",L)))}}function U(L,u,h){const y=h.totalTime,ee=F(L.element,L.triggerName,L.fromState,L.toState,u||L.phaseName,null==y?L.totalTime:y,!!h.disabled),me=L._data;return null!=me&&(ee._data=me),ee}function F(L,u,h,y,R="",ee=0,me){return{element:L,triggerName:u,fromState:h,toState:y,phaseName:R,totalTime:ee,disabled:!!me}}function Y(L,u,h){let y;return L instanceof Map?(y=L.get(u),y||L.set(u,y=h)):(y=L[u],y||(y=L[u]=h)),y}function V(L){const u=L.indexOf(":");return[L.substring(1,u),L.substr(u+1)]}let be=(L,u)=>!1,Ke=(L,u)=>!1,nt=(L,u,h)=>[];const tt=W();(tt||"undefined"!=typeof Element)&&(be=le()?(L,u)=>{for(;u&&u!==document.documentElement;){if(u===L)return!0;u=u.parentNode||u.host}return!1}:(L,u)=>L.contains(u),Ke=(()=>{if(tt||Element.prototype.matches)return(L,u)=>L.matches(u);{const L=Element.prototype,u=L.matchesSelector||L.mozMatchesSelector||L.msMatchesSelector||L.oMatchesSelector||L.webkitMatchesSelector;return u?(h,y)=>u.apply(h,[y]):Ke}})(),nt=(L,u,h)=>{let y=[];if(h){const R=L.querySelectorAll(u);for(let ee=0;ee<R.length;ee++)y.push(R[ee])}else{const R=L.querySelector(u);R&&y.push(R)}return y});let We=null,Re=!1;function Ze(L){We||(We=("undefined"!=typeof document?document.body:null)||{},Re=!!We.style&&"WebkitAppearance"in We.style);let u=!0;return We.style&&!function(L){return"ebkit"==L.substring(1,6)}(L)&&(u=L in We.style,!u&&Re&&(u="Webkit"+L.charAt(0).toUpperCase()+L.substr(1)in We.style)),u}const st=Ke,Be=be,se=nt;function Se(L){const u={};return Object.keys(L).forEach(h=>{const y=h.replace(/([a-z])([A-Z])/g,"$1-$2");u[y]=L[h]}),u}let oe=(()=>{class L{validateStyleProperty(h){return Ze(h)}matchesElement(h,y){return st(h,y)}containsElement(h,y){return Be(h,y)}query(h,y,R){return se(h,y,R)}computeStyle(h,y,R){return R||""}animate(h,y,R,ee,me,Te=[],Xe){return new z.ZN(R,ee)}}return L.\u0275fac=function(h){return new(h||L)},L.\u0275prov=c.Yz7({token:L,factory:L.\u0275fac}),L})();class fe{}fe.NOOP=new oe;const Ne="ng-enter",Ie="ng-leave",Ge="ng-trigger",Ve=".ng-trigger",ft="ng-animating",Tt=".ng-animating";function rt(L){if("number"==typeof L)return L;const u=L.match(/^(-?[\.\d]+)(m?s)/);return!u||u.length<2?0:St(parseFloat(u[1]),u[2])}function St(L,u){switch(u){case"s":return 1e3*L;default:return L}}function lt(L,u,h){return L.hasOwnProperty("duration")?L:function(L,u,h){let R,ee=0,me="";if("string"==typeof L){const Te=L.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===Te)return u.push(`The provided timing value "${L}" is invalid.`),{duration:0,delay:0,easing:""};R=St(parseFloat(Te[1]),Te[2]);const Xe=Te[3];null!=Xe&&(ee=St(parseFloat(Xe),Te[4]));const vt=Te[5];vt&&(me=vt)}else R=L;if(!h){let Te=!1,Xe=u.length;R<0&&(u.push("Duration values below 0 are not allowed for this animation step."),Te=!0),ee<0&&(u.push("Delay values below 0 are not allowed for this animation step."),Te=!0),Te&&u.splice(Xe,0,`The provided timing value "${L}" is invalid.`)}return{duration:R,delay:ee,easing:me}}(L,u,h)}function Ht(L,u={}){return Object.keys(L).forEach(h=>{u[h]=L[h]}),u}function en(L,u,h={}){if(u)for(let y in L)h[y]=L[y];else Ht(L,h);return h}function wn(L,u,h){return h?u+":"+h+";":""}function It(L){let u="";for(let h=0;h<L.style.length;h++){const y=L.style.item(h);u+=wn(0,y,L.style.getPropertyValue(y))}for(const h in L.style)L.style.hasOwnProperty(h)&&!h.startsWith("_")&&(u+=wn(0,I(h),L.style[h]));L.setAttribute("style",u)}function tn(L,u,h){L.style&&(Object.keys(u).forEach(y=>{const R=ae(y);h&&!h.hasOwnProperty(y)&&(h[y]=L.style[R]),L.style[R]=u[y]}),W()&&It(L))}function rn(L,u){L.style&&(Object.keys(u).forEach(h=>{const y=ae(h);L.style[y]=""}),W()&&It(L))}function cn(L){return Array.isArray(L)?1==L.length?L[0]:(0,z.vP)(L):L}const bn=new RegExp("{{\\s*(.+?)\\s*}}","g");function pt(L){let u=[];if("string"==typeof L){let h;for(;h=bn.exec(L);)u.push(h[1]);bn.lastIndex=0}return u}function xe(L,u,h){const y=L.toString(),R=y.replace(bn,(ee,me)=>{let Te=u[me];return u.hasOwnProperty(me)||(h.push(`Please provide a value for the animation param ${me}`),Te=""),Te.toString()});return R==y?L:R}function Ae(L){const u=[];let h=L.next();for(;!h.done;)u.push(h.value),h=L.next();return u}const Ct=/-+([a-z0-9])/g;function ae(L){return L.replace(Ct,(...u)=>u[1].toUpperCase())}function I(L){return L.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function ne(L,u){return 0===L||0===u}function N(L,u,h){const y=Object.keys(h);if(y.length&&u.length){let ee=u[0],me=[];if(y.forEach(Te=>{ee.hasOwnProperty(Te)||me.push(Te),ee[Te]=h[Te]}),me.length)for(var R=1;R<u.length;R++){let Te=u[R];me.forEach(function(Xe){Te[Xe]=_e(L,Xe)})}}return u}function G(L,u,h){switch(u.type){case 7:return L.visitTrigger(u,h);case 0:return L.visitState(u,h);case 1:return L.visitTransition(u,h);case 2:return L.visitSequence(u,h);case 3:return L.visitGroup(u,h);case 4:return L.visitAnimate(u,h);case 5:return L.visitKeyframes(u,h);case 6:return L.visitStyle(u,h);case 8:return L.visitReference(u,h);case 9:return L.visitAnimateChild(u,h);case 10:return L.visitAnimateRef(u,h);case 11:return L.visitQuery(u,h);case 12:return L.visitStagger(u,h);default:throw new Error(`Unable to resolve animation metadata node #${u.type}`)}}function _e(L,u){return window.getComputedStyle(L)[u]}function Ce(L,u){const h=[];return"string"==typeof L?L.split(/\s*,\s*/).forEach(y=>function(L,u,h){if(":"==L[0]){const Xe=function(L,u){switch(L){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(h,y)=>parseFloat(y)>parseFloat(h);case":decrement":return(h,y)=>parseFloat(y)<parseFloat(h);default:return u.push(`The transition alias value "${L}" is not supported`),"* => *"}}(L,h);if("function"==typeof Xe)return void u.push(Xe);L=Xe}const y=L.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);if(null==y||y.length<4)return h.push(`The provided transition expression "${L}" is not supported`),u;const R=y[1],ee=y[2],me=y[3];u.push(it(R,me));"<"==ee[0]&&!("*"==R&&"*"==me)&&u.push(it(me,R))}(y,h,u)):h.push(L),h}const Je=new Set(["true","1"]),ge=new Set(["false","0"]);function it(L,u){const h=Je.has(L)||ge.has(L),y=Je.has(u)||ge.has(u);return(R,ee)=>{let me="*"==L||L==R,Te="*"==u||u==ee;return!me&&h&&"boolean"==typeof R&&(me=R?Je.has(L):ge.has(L)),!Te&&y&&"boolean"==typeof ee&&(Te=ee?Je.has(u):ge.has(u)),me&&Te}}const X=":self",Q=new RegExp(`s*${X}s*,?`,"g");function at(L,u,h){return new Ee(L).build(u,h)}class Ee{constructor(u){this._driver=u}build(u,h){const y=new Le(h);return this._resetContextStyleTimingState(y),G(this,cn(u),y)}_resetContextStyleTimingState(u){u.currentQuerySelector="",u.collectedStyles={},u.collectedStyles[""]={},u.currentTime=0}visitTrigger(u,h){let y=h.queryCount=0,R=h.depCount=0;const ee=[],me=[];return"@"==u.name.charAt(0)&&h.errors.push("animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))"),u.definitions.forEach(Te=>{if(this._resetContextStyleTimingState(h),0==Te.type){const Xe=Te,vt=Xe.name;vt.toString().split(/\s*,\s*/).forEach(At=>{Xe.name=At,ee.push(this.visitState(Xe,h))}),Xe.name=vt}else if(1==Te.type){const Xe=this.visitTransition(Te,h);y+=Xe.queryCount,R+=Xe.depCount,me.push(Xe)}else h.errors.push("only state() and transition() definitions can sit inside of a trigger()")}),{type:7,name:u.name,states:ee,transitions:me,queryCount:y,depCount:R,options:null}}visitState(u,h){const y=this.visitStyle(u.styles,h),R=u.options&&u.options.params||null;if(y.containsDynamicStyles){const ee=new Set,me=R||{};if(y.styles.forEach(Te=>{if(xt(Te)){const Xe=Te;Object.keys(Xe).forEach(vt=>{pt(Xe[vt]).forEach(At=>{me.hasOwnProperty(At)||ee.add(At)})})}}),ee.size){const Te=Ae(ee.values());h.errors.push(`state("${u.name}", ...) must define default values for all the following style substitutions: ${Te.join(", ")}`)}}return{type:0,name:u.name,style:y,options:R?{params:R}:null}}visitTransition(u,h){h.queryCount=0,h.depCount=0;const y=G(this,cn(u.animation),h);return{type:1,matchers:Ce(u.expr,h.errors),animation:y,queryCount:h.queryCount,depCount:h.depCount,options:on(u.options)}}visitSequence(u,h){return{type:2,steps:u.steps.map(y=>G(this,y,h)),options:on(u.options)}}visitGroup(u,h){const y=h.currentTime;let R=0;const ee=u.steps.map(me=>{h.currentTime=y;const Te=G(this,me,h);return R=Math.max(R,h.currentTime),Te});return h.currentTime=R,{type:3,steps:ee,options:on(u.options)}}visitAnimate(u,h){const y=function(L,u){let h=null;if(L.hasOwnProperty("duration"))h=L;else if("number"==typeof L)return Sn(lt(L,u).duration,0,"");const y=L;if(y.split(/\s+/).some(ee=>"{"==ee.charAt(0)&&"{"==ee.charAt(1))){const ee=Sn(0,0,"");return ee.dynamic=!0,ee.strValue=y,ee}return h=h||lt(y,u),Sn(h.duration,h.delay,h.easing)}(u.timings,h.errors);h.currentAnimateTimings=y;let R,ee=u.styles?u.styles:(0,z.oB)({});if(5==ee.type)R=this.visitKeyframes(ee,h);else{let me=u.styles,Te=!1;if(!me){Te=!0;const vt={};y.easing&&(vt.easing=y.easing),me=(0,z.oB)(vt)}h.currentTime+=y.duration+y.delay;const Xe=this.visitStyle(me,h);Xe.isEmptyStep=Te,R=Xe}return h.currentAnimateTimings=null,{type:4,timings:y,style:R,options:null}}visitStyle(u,h){const y=this._makeStyleAst(u,h);return this._validateStyleAst(y,h),y}_makeStyleAst(u,h){const y=[];Array.isArray(u.styles)?u.styles.forEach(me=>{"string"==typeof me?me==z.l3?y.push(me):h.errors.push(`The provided style string value ${me} is not allowed.`):y.push(me)}):y.push(u.styles);let R=!1,ee=null;return y.forEach(me=>{if(xt(me)){const Te=me,Xe=Te.easing;if(Xe&&(ee=Xe,delete Te.easing),!R)for(let vt in Te)if(Te[vt].toString().indexOf("{{")>=0){R=!0;break}}}),{type:6,styles:y,easing:ee,offset:u.offset,containsDynamicStyles:R,options:null}}_validateStyleAst(u,h){const y=h.currentAnimateTimings;let R=h.currentTime,ee=h.currentTime;y&&ee>0&&(ee-=y.duration+y.delay),u.styles.forEach(me=>{"string"!=typeof me&&Object.keys(me).forEach(Te=>{if(!this._driver.validateStyleProperty(Te))return void h.errors.push(`The provided animation property "${Te}" is not a supported CSS property for animations`);const Xe=h.collectedStyles[h.currentQuerySelector],vt=Xe[Te];let At=!0;vt&&(ee!=R&&ee>=vt.startTime&&R<=vt.endTime&&(h.errors.push(`The CSS property "${Te}" that exists between the times of "${vt.startTime}ms" and "${vt.endTime}ms" is also being animated in a parallel animation between the times of "${ee}ms" and "${R}ms"`),At=!1),ee=vt.startTime),At&&(Xe[Te]={startTime:ee,endTime:R}),h.options&&function(L,u,h){const y=u.params||{},R=pt(L);R.length&&R.forEach(ee=>{y.hasOwnProperty(ee)||h.push(`Unable to resolve the local animation param ${ee} in the given list of values`)})}(me[Te],h.options,h.errors)})})}visitKeyframes(u,h){const y={type:5,styles:[],options:null};if(!h.currentAnimateTimings)return h.errors.push("keyframes() must be placed inside of a call to animate()"),y;let ee=0;const me=[];let Te=!1,Xe=!1,vt=0;const At=u.steps.map(ei=>{const ii=this._makeStyleAst(ei,h);let Si=null!=ii.offset?ii.offset:function(L){if("string"==typeof L)return null;let u=null;if(Array.isArray(L))L.forEach(h=>{if(xt(h)&&h.hasOwnProperty("offset")){const y=h;u=parseFloat(y.offset),delete y.offset}});else if(xt(L)&&L.hasOwnProperty("offset")){const h=L;u=parseFloat(h.offset),delete h.offset}return u}(ii.styles),fi=0;return null!=Si&&(ee++,fi=ii.offset=Si),Xe=Xe||fi<0||fi>1,Te=Te||fi<vt,vt=fi,me.push(fi),ii});Xe&&h.errors.push("Please ensure that all keyframe offsets are between 0 and 1"),Te&&h.errors.push("Please ensure that all keyframe offsets are in order");const Yt=u.steps.length;let dn=0;ee>0&&ee<Yt?h.errors.push("Not all style() steps within the declared keyframes() contain offsets"):0==ee&&(dn=1/(Yt-1));const On=Yt-1,Xt=h.currentTime,an=h.currentAnimateTimings,Dn=an.duration;return At.forEach((ei,ii)=>{const Si=dn>0?ii==On?1:dn*ii:me[ii],fi=Si*Dn;h.currentTime=Xt+an.delay+fi,an.duration=fi,this._validateStyleAst(ei,h),ei.offset=Si,y.styles.push(ei)}),y}visitReference(u,h){return{type:8,animation:G(this,cn(u.animation),h),options:on(u.options)}}visitAnimateChild(u,h){return h.depCount++,{type:9,options:on(u.options)}}visitAnimateRef(u,h){return{type:10,animation:this.visitReference(u.animation,h),options:on(u.options)}}visitQuery(u,h){const y=h.currentQuerySelector,R=u.options||{};h.queryCount++,h.currentQuery=u;const[ee,me]=function(L){const u=!!L.split(/\s*,\s*/).find(h=>h==X);return u&&(L=L.replace(Q,"")),[L=L.replace(/@\*/g,Ve).replace(/@\w+/g,h=>Ve+"-"+h.substr(1)).replace(/:animating/g,Tt),u]}(u.selector);h.currentQuerySelector=y.length?y+" "+ee:ee,Y(h.collectedStyles,h.currentQuerySelector,{});const Te=G(this,cn(u.animation),h);return h.currentQuery=null,h.currentQuerySelector=y,{type:11,selector:ee,limit:R.limit||0,optional:!!R.optional,includeSelf:me,animation:Te,originalSelector:u.selector,options:on(u.options)}}visitStagger(u,h){h.currentQuery||h.errors.push("stagger() can only be used inside of query()");const y="full"===u.timings?{duration:0,delay:0,easing:"full"}:lt(u.timings,h.errors,!0);return{type:12,animation:G(this,cn(u.animation),h),timings:y,options:null}}}class Le{constructor(u){this.errors=u,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles={},this.options=null}}function xt(L){return!Array.isArray(L)&&"object"==typeof L}function on(L){return L?(L=Ht(L)).params&&(L.params=function(L){return L?Ht(L):null}(L.params)):L={},L}function Sn(L,u,h){return{duration:L,delay:u,easing:h}}function Gt(L,u,h,y,R,ee,me=null,Te=!1){return{type:1,element:L,keyframes:u,preStyleProps:h,postStyleProps:y,duration:R,delay:ee,totalTime:R+ee,easing:me,subTimeline:Te}}class jn{constructor(){this._map=new Map}consume(u){let h=this._map.get(u);return h?this._map.delete(u):h=[],h}append(u,h){let y=this._map.get(u);y||this._map.set(u,y=[]),y.push(...h)}has(u){return this._map.has(u)}clear(){this._map.clear()}}const Jn=new RegExp(":enter","g"),pn=new RegExp(":leave","g");function vn(L,u,h,y,R,ee={},me={},Te,Xe,vt=[]){return(new kn).buildKeyframes(L,u,h,y,R,ee,me,Te,Xe,vt)}class kn{buildKeyframes(u,h,y,R,ee,me,Te,Xe,vt,At=[]){vt=vt||new jn;const Yt=new _i(u,h,vt,R,ee,At,[]);Yt.options=Xe,Yt.currentTimeline.setStyles([me],null,Yt.errors,Xe),G(this,y,Yt);const dn=Yt.timelines.filter(On=>On.containsAnimation());if(dn.length&&Object.keys(Te).length){const On=dn[dn.length-1];On.allowOnlyTimelineStyles()||On.setStyles([Te],null,Yt.errors,Xe)}return dn.length?dn.map(On=>On.buildKeyframes()):[Gt(h,[],[],[],0,0,"",!1)]}visitTrigger(u,h){}visitState(u,h){}visitTransition(u,h){}visitAnimateChild(u,h){const y=h.subInstructions.consume(h.element);if(y){const R=h.createSubContext(u.options),ee=h.currentTimeline.currentTime,me=this._visitSubInstructions(y,R,R.options);ee!=me&&h.transformIntoNewTimeline(me)}h.previousNode=u}visitAnimateRef(u,h){const y=h.createSubContext(u.options);y.transformIntoNewTimeline(),this.visitReference(u.animation,y),h.transformIntoNewTimeline(y.currentTimeline.currentTime),h.previousNode=u}_visitSubInstructions(u,h,y){let ee=h.currentTimeline.currentTime;const me=null!=y.duration?rt(y.duration):null,Te=null!=y.delay?rt(y.delay):null;return 0!==me&&u.forEach(Xe=>{const vt=h.appendInstructionToTimeline(Xe,me,Te);ee=Math.max(ee,vt.duration+vt.delay)}),ee}visitReference(u,h){h.updateOptions(u.options,!0),G(this,u.animation,h),h.previousNode=u}visitSequence(u,h){const y=h.subContextCount;let R=h;const ee=u.options;if(ee&&(ee.params||ee.delay)&&(R=h.createSubContext(ee),R.transformIntoNewTimeline(),null!=ee.delay)){6==R.previousNode.type&&(R.currentTimeline.snapshotCurrentStyles(),R.previousNode=xn);const me=rt(ee.delay);R.delayNextStep(me)}u.steps.length&&(u.steps.forEach(me=>G(this,me,R)),R.currentTimeline.applyStylesToKeyframe(),R.subContextCount>y&&R.transformIntoNewTimeline()),h.previousNode=u}visitGroup(u,h){const y=[];let R=h.currentTimeline.currentTime;const ee=u.options&&u.options.delay?rt(u.options.delay):0;u.steps.forEach(me=>{const Te=h.createSubContext(u.options);ee&&Te.delayNextStep(ee),G(this,me,Te),R=Math.max(R,Te.currentTimeline.currentTime),y.push(Te.currentTimeline)}),y.forEach(me=>h.currentTimeline.mergeTimelineCollectedStyles(me)),h.transformIntoNewTimeline(R),h.previousNode=u}_visitTiming(u,h){if(u.dynamic){const y=u.strValue;return lt(h.params?xe(y,h.params,h.errors):y,h.errors)}return{duration:u.duration,delay:u.delay,easing:u.easing}}visitAnimate(u,h){const y=h.currentAnimateTimings=this._visitTiming(u.timings,h),R=h.currentTimeline;y.delay&&(h.incrementTime(y.delay),R.snapshotCurrentStyles());const ee=u.style;5==ee.type?this.visitKeyframes(ee,h):(h.incrementTime(y.duration),this.visitStyle(ee,h),R.applyStylesToKeyframe()),h.currentAnimateTimings=null,h.previousNode=u}visitStyle(u,h){const y=h.currentTimeline,R=h.currentAnimateTimings;!R&&y.getCurrentStyleProperties().length&&y.forwardFrame();const ee=R&&R.easing||u.easing;u.isEmptyStep?y.applyEmptyStep(ee):y.setStyles(u.styles,ee,h.errors,h.options),h.previousNode=u}visitKeyframes(u,h){const y=h.currentAnimateTimings,R=h.currentTimeline.duration,ee=y.duration,Te=h.createSubContext().currentTimeline;Te.easing=y.easing,u.styles.forEach(Xe=>{Te.forwardTime((Xe.offset||0)*ee),Te.setStyles(Xe.styles,Xe.easing,h.errors,h.options),Te.applyStylesToKeyframe()}),h.currentTimeline.mergeTimelineCollectedStyles(Te),h.transformIntoNewTimeline(R+ee),h.previousNode=u}visitQuery(u,h){const y=h.currentTimeline.currentTime,R=u.options||{},ee=R.delay?rt(R.delay):0;ee&&(6===h.previousNode.type||0==y&&h.currentTimeline.getCurrentStyleProperties().length)&&(h.currentTimeline.snapshotCurrentStyles(),h.previousNode=xn);let me=y;const Te=h.invokeQuery(u.selector,u.originalSelector,u.limit,u.includeSelf,!!R.optional,h.errors);h.currentQueryTotal=Te.length;let Xe=null;Te.forEach((vt,At)=>{h.currentQueryIndex=At;const Yt=h.createSubContext(u.options,vt);ee&&Yt.delayNextStep(ee),vt===h.element&&(Xe=Yt.currentTimeline),G(this,u.animation,Yt),Yt.currentTimeline.applyStylesToKeyframe(),me=Math.max(me,Yt.currentTimeline.currentTime)}),h.currentQueryIndex=0,h.currentQueryTotal=0,h.transformIntoNewTimeline(me),Xe&&(h.currentTimeline.mergeTimelineCollectedStyles(Xe),h.currentTimeline.snapshotCurrentStyles()),h.previousNode=u}visitStagger(u,h){const y=h.parentContext,R=h.currentTimeline,ee=u.timings,me=Math.abs(ee.duration),Te=me*(h.currentQueryTotal-1);let Xe=me*h.currentQueryIndex;switch(ee.duration<0?"reverse":ee.easing){case"reverse":Xe=Te-Xe;break;case"full":Xe=y.currentStaggerTime}const At=h.currentTimeline;Xe&&At.delayNextStep(Xe);const Yt=At.currentTime;G(this,u.animation,h),h.previousNode=u,y.currentStaggerTime=R.currentTime-Yt+(R.startTime-y.currentTimeline.startTime)}}const xn={};class _i{constructor(u,h,y,R,ee,me,Te,Xe){this._driver=u,this.element=h,this.subInstructions=y,this._enterClassName=R,this._leaveClassName=ee,this.errors=me,this.timelines=Te,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=xn,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=Xe||new Nn(this._driver,h,0),Te.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(u,h){if(!u)return;const y=u;let R=this.options;null!=y.duration&&(R.duration=rt(y.duration)),null!=y.delay&&(R.delay=rt(y.delay));const ee=y.params;if(ee){let me=R.params;me||(me=this.options.params={}),Object.keys(ee).forEach(Te=>{(!h||!me.hasOwnProperty(Te))&&(me[Te]=xe(ee[Te],me,this.errors))})}}_copyOptions(){const u={};if(this.options){const h=this.options.params;if(h){const y=u.params={};Object.keys(h).forEach(R=>{y[R]=h[R]})}}return u}createSubContext(u=null,h,y){const R=h||this.element,ee=new _i(this._driver,R,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(R,y||0));return ee.previousNode=this.previousNode,ee.currentAnimateTimings=this.currentAnimateTimings,ee.options=this._copyOptions(),ee.updateOptions(u),ee.currentQueryIndex=this.currentQueryIndex,ee.currentQueryTotal=this.currentQueryTotal,ee.parentContext=this,this.subContextCount++,ee}transformIntoNewTimeline(u){return this.previousNode=xn,this.currentTimeline=this.currentTimeline.fork(this.element,u),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(u,h,y){const R={duration:null!=h?h:u.duration,delay:this.currentTimeline.currentTime+(null!=y?y:0)+u.delay,easing:""},ee=new Ot(this._driver,u.element,u.keyframes,u.preStyleProps,u.postStyleProps,R,u.stretchStartingKeyframe);return this.timelines.push(ee),R}incrementTime(u){this.currentTimeline.forwardTime(this.currentTimeline.duration+u)}delayNextStep(u){u>0&&this.currentTimeline.delayNextStep(u)}invokeQuery(u,h,y,R,ee,me){let Te=[];if(R&&Te.push(this.element),u.length>0){u=(u=u.replace(Jn,"."+this._enterClassName)).replace(pn,"."+this._leaveClassName);let vt=this._driver.query(this.element,u,1!=y);0!==y&&(vt=y<0?vt.slice(vt.length+y,vt.length):vt.slice(0,y)),Te.push(...vt)}return!ee&&0==Te.length&&me.push(`\`query("${h}")\` returned zero elements. (Use \`query("${h}", { optional: true })\` if you wish to allow this.)`),Te}}class Nn{constructor(u,h,y,R){this._driver=u,this.element=h,this.startTime=y,this._elementTimelineStylesLookup=R,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(h),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(h,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.getCurrentStyleProperties().length>0;default:return!0}}getCurrentStyleProperties(){return Object.keys(this._currentKeyframe)}get currentTime(){return this.startTime+this.duration}delayNextStep(u){const h=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||h?(this.forwardTime(this.currentTime+u),h&&this.snapshotCurrentStyles()):this.startTime+=u}fork(u,h){return this.applyStylesToKeyframe(),new Nn(this._driver,u,h||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=Object.create(this._backFill,{}),this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(u){this.applyStylesToKeyframe(),this.duration=u,this._loadKeyframe()}_updateStyle(u,h){this._localTimelineStyles[u]=h,this._globalTimelineStyles[u]=h,this._styleSummary[u]={time:this.currentTime,value:h}}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(u){u&&(this._previousKeyframe.easing=u),Object.keys(this._globalTimelineStyles).forEach(h=>{this._backFill[h]=this._globalTimelineStyles[h]||z.l3,this._currentKeyframe[h]=z.l3}),this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(u,h,y,R){h&&(this._previousKeyframe.easing=h);const ee=R&&R.params||{},me=function(L,u){const h={};let y;return L.forEach(R=>{"*"===R?(y=y||Object.keys(u),y.forEach(ee=>{h[ee]=z.l3})):en(R,!1,h)}),h}(u,this._globalTimelineStyles);Object.keys(me).forEach(Te=>{const Xe=xe(me[Te],ee,y);this._pendingStyles[Te]=Xe,this._localTimelineStyles.hasOwnProperty(Te)||(this._backFill[Te]=this._globalTimelineStyles.hasOwnProperty(Te)?this._globalTimelineStyles[Te]:z.l3),this._updateStyle(Te,Xe)})}applyStylesToKeyframe(){const u=this._pendingStyles,h=Object.keys(u);0!=h.length&&(this._pendingStyles={},h.forEach(y=>{this._currentKeyframe[y]=u[y]}),Object.keys(this._localTimelineStyles).forEach(y=>{this._currentKeyframe.hasOwnProperty(y)||(this._currentKeyframe[y]=this._localTimelineStyles[y])}))}snapshotCurrentStyles(){Object.keys(this._localTimelineStyles).forEach(u=>{const h=this._localTimelineStyles[u];this._pendingStyles[u]=h,this._updateStyle(u,h)})}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const u=[];for(let h in this._currentKeyframe)u.push(h);return u}mergeTimelineCollectedStyles(u){Object.keys(u._styleSummary).forEach(h=>{const y=this._styleSummary[h],R=u._styleSummary[h];(!y||R.time>y.time)&&this._updateStyle(h,R.value)})}buildKeyframes(){this.applyStylesToKeyframe();const u=new Set,h=new Set,y=1===this._keyframes.size&&0===this.duration;let R=[];this._keyframes.forEach((Te,Xe)=>{const vt=en(Te,!0);Object.keys(vt).forEach(At=>{const Yt=vt[At];Yt==z.k1?u.add(At):Yt==z.l3&&h.add(At)}),y||(vt.offset=Xe/this.duration),R.push(vt)});const ee=u.size?Ae(u.values()):[],me=h.size?Ae(h.values()):[];if(y){const Te=R[0],Xe=Ht(Te);Te.offset=0,Xe.offset=1,R=[Te,Xe]}return Gt(this.element,R,ee,me,this.duration,this.startTime,this.easing,!1)}}class Ot extends Nn{constructor(u,h,y,R,ee,me,Te=!1){super(u,h,me.delay),this.keyframes=y,this.preStyleProps=R,this.postStyleProps=ee,this._stretchStartingKeyframe=Te,this.timings={duration:me.duration,delay:me.delay,easing:me.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let u=this.keyframes,{delay:h,duration:y,easing:R}=this.timings;if(this._stretchStartingKeyframe&&h){const ee=[],me=y+h,Te=h/me,Xe=en(u[0],!1);Xe.offset=0,ee.push(Xe);const vt=en(u[0],!1);vt.offset=Qt(Te),ee.push(vt);const At=u.length-1;for(let Yt=1;Yt<=At;Yt++){let dn=en(u[Yt],!1);dn.offset=Qt((h+dn.offset*y)/me),ee.push(dn)}y=me,h=0,R="",u=ee}return Gt(this.element,u,this.preStyleProps,this.postStyleProps,y,h,R,!0)}}function Qt(L,u=3){const h=Math.pow(10,u-1);return Math.round(L*h)/h}class ci{}class si extends ci{normalizePropertyName(u,h){return ae(u)}normalizeStyleValue(u,h,y,R){let ee="";const me=y.toString().trim();if(jt[h]&&0!==y&&"0"!==y)if("number"==typeof y)ee="px";else{const Te=y.match(/^[+-]?[\d\.]+([a-z]*)$/);Te&&0==Te[1].length&&R.push(`Please provide a CSS unit value for ${u}:${y}`)}return me+ee}}const jt=(()=>function(L){const u={};return L.forEach(h=>u[h]=!0),u}("width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective".split(",")))();function $t(L,u,h,y,R,ee,me,Te,Xe,vt,At,Yt,dn){return{type:0,element:L,triggerName:u,isRemovalTransition:R,fromState:h,fromStyles:ee,toState:y,toStyles:me,timelines:Te,queriedElements:Xe,preStyleProps:vt,postStyleProps:At,totalTime:Yt,errors:dn}}const Qe={};class ke{constructor(u,h,y){this._triggerName=u,this.ast=h,this._stateStyles=y}match(u,h,y,R){return function(L,u,h,y,R){return L.some(ee=>ee(u,h,y,R))}(this.ast.matchers,u,h,y,R)}buildStyles(u,h,y){const R=this._stateStyles["*"],ee=this._stateStyles[u],me=R?R.buildStyles(h,y):{};return ee?ee.buildStyles(h,y):me}build(u,h,y,R,ee,me,Te,Xe,vt,At){const Yt=[],dn=this.ast.options&&this.ast.options.params||Qe,Xt=this.buildStyles(y,Te&&Te.params||Qe,Yt),an=Xe&&Xe.params||Qe,Dn=this.buildStyles(R,an,Yt),ei=new Set,ii=new Map,Si=new Map,fi="void"===R,rr={params:Object.assign(Object.assign({},dn),an)},Ri=At?[]:vn(u,h,this.ast.animation,ee,me,Xt,Dn,rr,vt,Yt);let wi=0;if(Ri.forEach(sr=>{wi=Math.max(sr.duration+sr.delay,wi)}),Yt.length)return $t(h,this._triggerName,y,R,fi,Xt,Dn,[],[],ii,Si,wi,Yt);Ri.forEach(sr=>{const Oi=sr.element,Uo=Y(ii,Oi,{});sr.preStyleProps.forEach(Kn=>Uo[Kn]=!0);const go=Y(Si,Oi,{});sr.postStyleProps.forEach(Kn=>go[Kn]=!0),Oi!==h&&ei.add(Oi)});const or=Ae(ei.values());return $t(h,this._triggerName,y,R,fi,Xt,Dn,Ri,or,ii,Si,wi)}}class qe{constructor(u,h,y){this.styles=u,this.defaultParams=h,this.normalizer=y}buildStyles(u,h){const y={},R=Ht(this.defaultParams);return Object.keys(u).forEach(ee=>{const me=u[ee];null!=me&&(R[ee]=me)}),this.styles.styles.forEach(ee=>{if("string"!=typeof ee){const me=ee;Object.keys(me).forEach(Te=>{let Xe=me[Te];Xe.length>1&&(Xe=xe(Xe,R,h));const vt=this.normalizer.normalizePropertyName(Te,h);Xe=this.normalizer.normalizeStyleValue(Te,vt,Xe,h),y[vt]=Xe})}}),y}}class Rt{constructor(u,h,y){this.name=u,this.ast=h,this._normalizer=y,this.transitionFactories=[],this.states={},h.states.forEach(R=>{this.states[R.name]=new qe(R.style,R.options&&R.options.params||{},y)}),M(this.states,"true","1"),M(this.states,"false","0"),h.transitions.forEach(R=>{this.transitionFactories.push(new ke(u,R,this.states))}),this.fallbackTransition=function(L,u,h){return new ke(L,{type:1,animation:{type:2,steps:[],options:null},matchers:[(me,Te)=>!0],options:null,queryCount:0,depCount:0},u)}(u,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(u,h,y,R){return this.transitionFactories.find(me=>me.match(u,h,y,R))||null}matchStyles(u,h,y){return this.fallbackTransition.buildStyles(u,h,y)}}function M(L,u,h){L.hasOwnProperty(u)?L.hasOwnProperty(h)||(L[h]=L[u]):L.hasOwnProperty(h)&&(L[u]=L[h])}const k=new jn;class _{constructor(u,h,y){this.bodyNode=u,this._driver=h,this._normalizer=y,this._animations={},this._playersById={},this.players=[]}register(u,h){const y=[],R=at(this._driver,h,y);if(y.length)throw new Error(`Unable to build the animation due to the following errors: ${y.join("\n")}`);this._animations[u]=R}_buildPlayer(u,h,y){const R=u.element,ee=S(0,this._normalizer,0,u.keyframes,h,y);return this._driver.animate(R,ee,u.duration,u.delay,u.easing,[],!0)}create(u,h,y={}){const R=[],ee=this._animations[u];let me;const Te=new Map;if(ee?(me=vn(this._driver,h,ee,Ne,Ie,{},{},y,k,R),me.forEach(At=>{const Yt=Y(Te,At.element,{});At.postStyleProps.forEach(dn=>Yt[dn]=null)})):(R.push("The requested animation doesn't exist or has already been destroyed"),me=[]),R.length)throw new Error(`Unable to create the animation due to the following errors: ${R.join("\n")}`);Te.forEach((At,Yt)=>{Object.keys(At).forEach(dn=>{At[dn]=this._driver.computeStyle(Yt,dn,z.l3)})});const vt=x(me.map(At=>{const Yt=Te.get(At.element);return this._buildPlayer(At,{},Yt)}));return this._playersById[u]=vt,vt.onDestroy(()=>this.destroy(u)),this.players.push(vt),vt}destroy(u){const h=this._getPlayer(u);h.destroy(),delete this._playersById[u];const y=this.players.indexOf(h);y>=0&&this.players.splice(y,1)}_getPlayer(u){const h=this._playersById[u];if(!h)throw new Error(`Unable to find the timeline player referenced by ${u}`);return h}listen(u,h,y,R){const ee=F(h,"","","");return B(this._getPlayer(u),y,ee,R),()=>{}}command(u,h,y,R){if("register"==y)return void this.register(u,R[0]);if("create"==y)return void this.create(u,h,R[0]||{});const ee=this._getPlayer(u);switch(y){case"play":ee.play();break;case"pause":ee.pause();break;case"reset":ee.reset();break;case"restart":ee.restart();break;case"finish":ee.finish();break;case"init":ee.init();break;case"setPosition":ee.setPosition(parseFloat(R[0]));break;case"destroy":this.destroy(u)}}}const re="ng-animate-queued",ot="ng-animate-disabled",zt=".ng-animate-disabled",yn=[],ni={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Xn={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Hn="__ng_removed";class Fi{constructor(u,h=""){this.namespaceId=h;const y=u&&u.hasOwnProperty("value");if(this.value=null!=(L=y?u.value:u)?L:null,y){const ee=Ht(u);delete ee.value,this.options=ee}else this.options={};var L;this.options.params||(this.options.params={})}get params(){return this.options.params}absorbOptions(u){const h=u.params;if(h){const y=this.options.params;Object.keys(h).forEach(R=>{null==y[R]&&(y[R]=h[R])})}}}const bi="void",Ti=new Fi(bi);class xi{constructor(u,h,y){this.id=u,this.hostElement=h,this._engine=y,this.players=[],this._triggers={},this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+u,Ei(h,this._hostClassName)}listen(u,h,y,R){if(!this._triggers.hasOwnProperty(h))throw new Error(`Unable to listen on the animation trigger event "${y}" because the animation trigger "${h}" doesn't exist!`);if(null==y||0==y.length)throw new Error(`Unable to listen on the animation trigger "${h}" because the provided event is undefined!`);if("start"!=(L=y)&&"done"!=L)throw new Error(`The provided animation trigger event "${y}" for the animation trigger "${h}" is not supported!`);var L;const ee=Y(this._elementListeners,u,[]),me={name:h,phase:y,callback:R};ee.push(me);const Te=Y(this._engine.statesByElement,u,{});return Te.hasOwnProperty(h)||(Ei(u,Ge),Ei(u,Ge+"-"+h),Te[h]=Ti),()=>{this._engine.afterFlush(()=>{const Xe=ee.indexOf(me);Xe>=0&&ee.splice(Xe,1),this._triggers[h]||delete Te[h]})}}register(u,h){return!this._triggers[u]&&(this._triggers[u]=h,!0)}_getTrigger(u){const h=this._triggers[u];if(!h)throw new Error(`The provided animation trigger "${u}" has not been registered!`);return h}trigger(u,h,y,R=!0){const ee=this._getTrigger(h),me=new Ur(this.id,h,u);let Te=this._engine.statesByElement.get(u);Te||(Ei(u,Ge),Ei(u,Ge+"-"+h),this._engine.statesByElement.set(u,Te={}));let Xe=Te[h];const vt=new Fi(y,this.id);if(!(y&&y.hasOwnProperty("value"))&&Xe&&vt.absorbOptions(Xe.options),Te[h]=vt,Xe||(Xe=Ti),vt.value!==bi&&Xe.value===vt.value){if(!function(L,u){const h=Object.keys(L),y=Object.keys(u);if(h.length!=y.length)return!1;for(let R=0;R<h.length;R++){const ee=h[R];if(!u.hasOwnProperty(ee)||L[ee]!==u[ee])return!1}return!0}(Xe.params,vt.params)){const an=[],Dn=ee.matchStyles(Xe.value,Xe.params,an),ei=ee.matchStyles(vt.value,vt.params,an);an.length?this._engine.reportError(an):this._engine.afterFlush(()=>{rn(u,Dn),tn(u,ei)})}return}const dn=Y(this._engine.playersByElement,u,[]);dn.forEach(an=>{an.namespaceId==this.id&&an.triggerName==h&&an.queued&&an.destroy()});let On=ee.matchTransition(Xe.value,vt.value,u,vt.params),Xt=!1;if(!On){if(!R)return;On=ee.fallbackTransition,Xt=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:u,triggerName:h,transition:On,fromState:Xe,toState:vt,player:me,isFallbackTransition:Xt}),Xt||(Ei(u,re),me.onStart(()=>{Xi(u,re)})),me.onDone(()=>{let an=this.players.indexOf(me);an>=0&&this.players.splice(an,1);const Dn=this._engine.playersByElement.get(u);if(Dn){let ei=Dn.indexOf(me);ei>=0&&Dn.splice(ei,1)}}),this.players.push(me),dn.push(me),me}deregister(u){delete this._triggers[u],this._engine.statesByElement.forEach((h,y)=>{delete h[u]}),this._elementListeners.forEach((h,y)=>{this._elementListeners.set(y,h.filter(R=>R.name!=u))})}clearElementCache(u){this._engine.statesByElement.delete(u),this._elementListeners.delete(u);const h=this._engine.playersByElement.get(u);h&&(h.forEach(y=>y.destroy()),this._engine.playersByElement.delete(u))}_signalRemovalForInnerTriggers(u,h){const y=this._engine.driver.query(u,Ve,!0);y.forEach(R=>{if(R[Hn])return;const ee=this._engine.fetchNamespacesByElement(R);ee.size?ee.forEach(me=>me.triggerLeaveAnimation(R,h,!1,!0)):this.clearElementCache(R)}),this._engine.afterFlushAnimationsDone(()=>y.forEach(R=>this.clearElementCache(R)))}triggerLeaveAnimation(u,h,y,R){const ee=this._engine.statesByElement.get(u);if(ee){const me=[];if(Object.keys(ee).forEach(Te=>{if(this._triggers[Te]){const Xe=this.trigger(u,Te,bi,R);Xe&&me.push(Xe)}}),me.length)return this._engine.markElementAsRemoved(this.id,u,!0,h),y&&x(me).onDone(()=>this._engine.processLeaveNode(u)),!0}return!1}prepareLeaveAnimationListeners(u){const h=this._elementListeners.get(u),y=this._engine.statesByElement.get(u);if(h&&y){const R=new Set;h.forEach(ee=>{const me=ee.name;if(R.has(me))return;R.add(me);const Xe=this._triggers[me].fallbackTransition,vt=y[me]||Ti,At=new Fi(bi),Yt=new Ur(this.id,me,u);this._engine.totalQueuedPlayers++,this._queue.push({element:u,triggerName:me,transition:Xe,fromState:vt,toState:At,player:Yt,isFallbackTransition:!0})})}}removeNode(u,h){const y=this._engine;if(u.childElementCount&&this._signalRemovalForInnerTriggers(u,h),this.triggerLeaveAnimation(u,h,!0))return;let R=!1;if(y.totalAnimations){const ee=y.players.length?y.playersByQueriedElement.get(u):[];if(ee&&ee.length)R=!0;else{let me=u;for(;me=me.parentNode;)if(y.statesByElement.get(me)){R=!0;break}}}if(this.prepareLeaveAnimationListeners(u),R)y.markElementAsRemoved(this.id,u,!1,h);else{const ee=u[Hn];(!ee||ee===ni)&&(y.afterFlush(()=>this.clearElementCache(u)),y.destroyInnerAnimations(u),y._onRemovalComplete(u,h))}}insertNode(u,h){Ei(u,this._hostClassName)}drainQueuedTransitions(u){const h=[];return this._queue.forEach(y=>{const R=y.player;if(R.destroyed)return;const ee=y.element,me=this._elementListeners.get(ee);me&&me.forEach(Te=>{if(Te.name==y.triggerName){const Xe=F(ee,y.triggerName,y.fromState.value,y.toState.value);Xe._data=u,B(y.player,Te.phase,Xe,Te.callback)}}),R.markedForDestroy?this._engine.afterFlush(()=>{R.destroy()}):h.push(y)}),this._queue=[],h.sort((y,R)=>{const ee=y.transition.ast.depCount,me=R.transition.ast.depCount;return 0==ee||0==me?ee-me:this._engine.driver.containsElement(y.element,R.element)?1:-1})}destroy(u){this.players.forEach(h=>h.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,u)}elementContainsData(u){let h=!1;return this._elementListeners.has(u)&&(h=!0),h=!!this._queue.find(y=>y.element===u)||h,h}}class hi{constructor(u,h,y){this.bodyNode=u,this.driver=h,this._normalizer=y,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(R,ee)=>{}}_onRemovalComplete(u,h){this.onRemovalComplete(u,h)}get queuedPlayers(){const u=[];return this._namespaceList.forEach(h=>{h.players.forEach(y=>{y.queued&&u.push(y)})}),u}createNamespace(u,h){const y=new xi(u,h,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,h)?this._balanceNamespaceList(y,h):(this.newHostElements.set(h,y),this.collectEnterElement(h)),this._namespaceLookup[u]=y}_balanceNamespaceList(u,h){const y=this._namespaceList.length-1;if(y>=0){let R=!1;for(let ee=y;ee>=0;ee--)if(this.driver.containsElement(this._namespaceList[ee].hostElement,h)){this._namespaceList.splice(ee+1,0,u),R=!0;break}R||this._namespaceList.splice(0,0,u)}else this._namespaceList.push(u);return this.namespacesByHostElement.set(h,u),u}register(u,h){let y=this._namespaceLookup[u];return y||(y=this.createNamespace(u,h)),y}registerTrigger(u,h,y){let R=this._namespaceLookup[u];R&&R.register(h,y)&&this.totalAnimations++}destroy(u,h){if(!u)return;const y=this._fetchNamespace(u);this.afterFlush(()=>{this.namespacesByHostElement.delete(y.hostElement),delete this._namespaceLookup[u];const R=this._namespaceList.indexOf(y);R>=0&&this._namespaceList.splice(R,1)}),this.afterFlushAnimationsDone(()=>y.destroy(h))}_fetchNamespace(u){return this._namespaceLookup[u]}fetchNamespacesByElement(u){const h=new Set,y=this.statesByElement.get(u);if(y){const R=Object.keys(y);for(let ee=0;ee<R.length;ee++){const me=y[R[ee]].namespaceId;if(me){const Te=this._fetchNamespace(me);Te&&h.add(Te)}}}return h}trigger(u,h,y,R){if(dr(h)){const ee=this._fetchNamespace(u);if(ee)return ee.trigger(h,y,R),!0}return!1}insertNode(u,h,y,R){if(!dr(h))return;const ee=h[Hn];if(ee&&ee.setForRemoval){ee.setForRemoval=!1,ee.setForMove=!0;const me=this.collectedLeaveElements.indexOf(h);me>=0&&this.collectedLeaveElements.splice(me,1)}if(u){const me=this._fetchNamespace(u);me&&me.insertNode(h,y)}R&&this.collectEnterElement(h)}collectEnterElement(u){this.collectedEnterElements.push(u)}markElementAsDisabled(u,h){h?this.disabledNodes.has(u)||(this.disabledNodes.add(u),Ei(u,ot)):this.disabledNodes.has(u)&&(this.disabledNodes.delete(u),Xi(u,ot))}removeNode(u,h,y,R){if(dr(h)){const ee=u?this._fetchNamespace(u):null;if(ee?ee.removeNode(h,R):this.markElementAsRemoved(u,h,!1,R),y){const me=this.namespacesByHostElement.get(h);me&&me.id!==u&&me.removeNode(h,R)}}else this._onRemovalComplete(h,R)}markElementAsRemoved(u,h,y,R){this.collectedLeaveElements.push(h),h[Hn]={namespaceId:u,setForRemoval:R,hasAnimation:y,removedBeforeQueried:!1}}listen(u,h,y,R,ee){return dr(h)?this._fetchNamespace(u).listen(h,y,R,ee):()=>{}}_buildInstruction(u,h,y,R,ee){return u.transition.build(this.driver,u.element,u.fromState.value,u.toState.value,y,R,u.fromState.options,u.toState.options,h,ee)}destroyInnerAnimations(u){let h=this.driver.query(u,Ve,!0);h.forEach(y=>this.destroyActiveAnimationsForElement(y)),0!=this.playersByQueriedElement.size&&(h=this.driver.query(u,Tt,!0),h.forEach(y=>this.finishActiveQueriedAnimationOnElement(y)))}destroyActiveAnimationsForElement(u){const h=this.playersByElement.get(u);h&&h.forEach(y=>{y.queued?y.markedForDestroy=!0:y.destroy()})}finishActiveQueriedAnimationOnElement(u){const h=this.playersByQueriedElement.get(u);h&&h.forEach(y=>y.finish())}whenRenderingDone(){return new Promise(u=>{if(this.players.length)return x(this.players).onDone(()=>u());u()})}processLeaveNode(u){const h=u[Hn];if(h&&h.setForRemoval){if(u[Hn]=ni,h.namespaceId){this.destroyInnerAnimations(u);const y=this._fetchNamespace(h.namespaceId);y&&y.clearElementCache(u)}this._onRemovalComplete(u,h.setForRemoval)}this.driver.matchesElement(u,zt)&&this.markElementAsDisabled(u,!1),this.driver.query(u,zt,!0).forEach(y=>{this.markElementAsDisabled(y,!1)})}flush(u=-1){let h=[];if(this.newHostElements.size&&(this.newHostElements.forEach((y,R)=>this._balanceNamespaceList(y,R)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let y=0;y<this.collectedEnterElements.length;y++)Ei(this.collectedEnterElements[y],"ng-star-inserted");if(this._namespaceList.length&&(this.totalQueuedPlayers||this.collectedLeaveElements.length)){const y=[];try{h=this._flushAnimations(y,u)}finally{for(let R=0;R<y.length;R++)y[R]()}}else for(let y=0;y<this.collectedLeaveElements.length;y++)this.processLeaveNode(this.collectedLeaveElements[y]);if(this.totalQueuedPlayers=0,this.collectedEnterElements.length=0,this.collectedLeaveElements.length=0,this._flushFns.forEach(y=>y()),this._flushFns=[],this._whenQuietFns.length){const y=this._whenQuietFns;this._whenQuietFns=[],h.length?x(h).onDone(()=>{y.forEach(R=>R())}):y.forEach(R=>R())}}reportError(u){throw new Error(`Unable to process animations due to the following failed trigger transitions\n ${u.join("\n")}`)}_flushAnimations(u,h){const y=new jn,R=[],ee=new Map,me=[],Te=new Map,Xe=new Map,vt=new Map,At=new Set;this.disabledNodes.forEach(Bt=>{At.add(Bt);const Zt=this.driver.query(Bt,".ng-animate-queued",!0);for(let hn=0;hn<Zt.length;hn++)At.add(Zt[hn])});const Yt=this.bodyNode,dn=Array.from(this.statesByElement.keys()),On=yr(dn,this.collectedEnterElements),Xt=new Map;let an=0;On.forEach((Bt,Zt)=>{const hn=Ne+an++;Xt.set(Zt,hn),Bt.forEach(Vn=>Ei(Vn,hn))});const Dn=[],ei=new Set,ii=new Set;for(let Bt=0;Bt<this.collectedLeaveElements.length;Bt++){const Zt=this.collectedLeaveElements[Bt],hn=Zt[Hn];hn&&hn.setForRemoval&&(Dn.push(Zt),ei.add(Zt),hn.hasAnimation?this.driver.query(Zt,".ng-star-inserted",!0).forEach(Vn=>ei.add(Vn)):ii.add(Zt))}const Si=new Map,fi=yr(dn,Array.from(ei));fi.forEach((Bt,Zt)=>{const hn=Ie+an++;Si.set(Zt,hn),Bt.forEach(Vn=>Ei(Vn,hn))}),u.push(()=>{On.forEach((Bt,Zt)=>{const hn=Xt.get(Zt);Bt.forEach(Vn=>Xi(Vn,hn))}),fi.forEach((Bt,Zt)=>{const hn=Si.get(Zt);Bt.forEach(Vn=>Xi(Vn,hn))}),Dn.forEach(Bt=>{this.processLeaveNode(Bt)})});const rr=[],Ri=[];for(let Bt=this._namespaceList.length-1;Bt>=0;Bt--)this._namespaceList[Bt].drainQueuedTransitions(h).forEach(hn=>{const Vn=hn.player,pi=hn.element;if(rr.push(Vn),this.collectedEnterElements.length){const Wi=pi[Hn];if(Wi&&Wi.setForMove)return void Vn.destroy()}const ti=!Yt||!this.driver.containsElement(Yt,pi),Di=Si.get(pi),Ai=Xt.get(pi),$n=this._buildInstruction(hn,y,Ai,Di,ti);if($n.errors&&$n.errors.length)Ri.push($n);else{if(ti)return Vn.onStart(()=>rn(pi,$n.fromStyles)),Vn.onDestroy(()=>tn(pi,$n.toStyles)),void R.push(Vn);if(hn.isFallbackTransition)return Vn.onStart(()=>rn(pi,$n.fromStyles)),Vn.onDestroy(()=>tn(pi,$n.toStyles)),void R.push(Vn);$n.timelines.forEach(Wi=>Wi.stretchStartingKeyframe=!0),y.append(pi,$n.timelines),me.push({instruction:$n,player:Vn,element:pi}),$n.queriedElements.forEach(Wi=>Y(Te,Wi,[]).push(Vn)),$n.preStyleProps.forEach((Wi,wr)=>{const Gi=Object.keys(Wi);if(Gi.length){let ji=Xe.get(wr);ji||Xe.set(wr,ji=new Set),Gi.forEach(Fo=>ji.add(Fo))}}),$n.postStyleProps.forEach((Wi,wr)=>{const Gi=Object.keys(Wi);let ji=vt.get(wr);ji||vt.set(wr,ji=new Set),Gi.forEach(Fo=>ji.add(Fo))})}});if(Ri.length){const Bt=[];Ri.forEach(Zt=>{Bt.push(`@${Zt.triggerName} has failed due to:\n`),Zt.errors.forEach(hn=>Bt.push(`- ${hn}\n`))}),rr.forEach(Zt=>Zt.destroy()),this.reportError(Bt)}const wi=new Map,or=new Map;me.forEach(Bt=>{const Zt=Bt.element;y.has(Zt)&&(or.set(Zt,Zt),this._beforeAnimationBuild(Bt.player.namespaceId,Bt.instruction,wi))}),R.forEach(Bt=>{const Zt=Bt.element;this._getPreviousPlayers(Zt,!1,Bt.namespaceId,Bt.triggerName,null).forEach(Vn=>{Y(wi,Zt,[]).push(Vn),Vn.destroy()})});const sr=Dn.filter(Bt=>br(Bt,Xe,vt)),Oi=new Map;uo(Oi,this.driver,ii,vt,z.l3).forEach(Bt=>{br(Bt,Xe,vt)&&sr.push(Bt)});const go=new Map;On.forEach((Bt,Zt)=>{uo(go,this.driver,new Set(Bt),Xe,z.k1)}),sr.forEach(Bt=>{const Zt=Oi.get(Bt),hn=go.get(Bt);Oi.set(Bt,Object.assign(Object.assign({},Zt),hn))});const Kn=[],ar=[],ri={};me.forEach(Bt=>{const{element:Zt,player:hn,instruction:Vn}=Bt;if(y.has(Zt)){if(At.has(Zt))return hn.onDestroy(()=>tn(Zt,Vn.toStyles)),hn.disabled=!0,hn.overrideTotalTime(Vn.totalTime),void R.push(hn);let pi=ri;if(or.size>1){let Di=Zt;const Ai=[];for(;Di=Di.parentNode;){const $n=or.get(Di);if($n){pi=$n;break}Ai.push(Di)}Ai.forEach($n=>or.set($n,pi))}const ti=this._buildAnimation(hn.namespaceId,Vn,wi,ee,go,Oi);if(hn.setRealPlayer(ti),pi===ri)Kn.push(hn);else{const Di=this.playersByElement.get(pi);Di&&Di.length&&(hn.parentPlayer=x(Di)),R.push(hn)}}else rn(Zt,Vn.fromStyles),hn.onDestroy(()=>tn(Zt,Vn.toStyles)),ar.push(hn),At.has(Zt)&&R.push(hn)}),ar.forEach(Bt=>{const Zt=ee.get(Bt.element);if(Zt&&Zt.length){const hn=x(Zt);Bt.setRealPlayer(hn)}}),R.forEach(Bt=>{Bt.parentPlayer?Bt.syncPlayerEvents(Bt.parentPlayer):Bt.destroy()});for(let Bt=0;Bt<Dn.length;Bt++){const Zt=Dn[Bt],hn=Zt[Hn];if(Xi(Zt,Ie),hn&&hn.hasAnimation)continue;let Vn=[];if(Te.size){let ti=Te.get(Zt);ti&&ti.length&&Vn.push(...ti);let Di=this.driver.query(Zt,Tt,!0);for(let Ai=0;Ai<Di.length;Ai++){let $n=Te.get(Di[Ai]);$n&&$n.length&&Vn.push(...$n)}}const pi=Vn.filter(ti=>!ti.destroyed);pi.length?Mr(this,Zt,pi):this.processLeaveNode(Zt)}return Dn.length=0,Kn.forEach(Bt=>{this.players.push(Bt),Bt.onDone(()=>{Bt.destroy();const Zt=this.players.indexOf(Bt);this.players.splice(Zt,1)}),Bt.play()}),Kn}elementContainsData(u,h){let y=!1;const R=h[Hn];return R&&R.setForRemoval&&(y=!0),this.playersByElement.has(h)&&(y=!0),this.playersByQueriedElement.has(h)&&(y=!0),this.statesByElement.has(h)&&(y=!0),this._fetchNamespace(u).elementContainsData(h)||y}afterFlush(u){this._flushFns.push(u)}afterFlushAnimationsDone(u){this._whenQuietFns.push(u)}_getPreviousPlayers(u,h,y,R,ee){let me=[];if(h){const Te=this.playersByQueriedElement.get(u);Te&&(me=Te)}else{const Te=this.playersByElement.get(u);if(Te){const Xe=!ee||ee==bi;Te.forEach(vt=>{vt.queued||!Xe&&vt.triggerName!=R||me.push(vt)})}}return(y||R)&&(me=me.filter(Te=>!(y&&y!=Te.namespaceId||R&&R!=Te.triggerName))),me}_beforeAnimationBuild(u,h,y){const ee=h.element,me=h.isRemovalTransition?void 0:u,Te=h.isRemovalTransition?void 0:h.triggerName;for(const Xe of h.timelines){const vt=Xe.element,At=vt!==ee,Yt=Y(y,vt,[]);this._getPreviousPlayers(vt,At,me,Te,h.toState).forEach(On=>{const Xt=On.getRealPlayer();Xt.beforeDestroy&&Xt.beforeDestroy(),On.destroy(),Yt.push(On)})}rn(ee,h.fromStyles)}_buildAnimation(u,h,y,R,ee,me){const Te=h.triggerName,Xe=h.element,vt=[],At=new Set,Yt=new Set,dn=h.timelines.map(Xt=>{const an=Xt.element;At.add(an);const Dn=an[Hn];if(Dn&&Dn.removedBeforeQueried)return new z.ZN(Xt.duration,Xt.delay);const ei=an!==Xe,ii=function(L){const u=[];return Or(L,u),u}((y.get(an)||yn).map(wi=>wi.getRealPlayer())).filter(wi=>!!wi.element&&wi.element===an),Si=ee.get(an),fi=me.get(an),rr=S(0,this._normalizer,0,Xt.keyframes,Si,fi),Ri=this._buildPlayer(Xt,rr,ii);if(Xt.subTimeline&&R&&Yt.add(an),ei){const wi=new Ur(u,Te,an);wi.setRealPlayer(Ri),vt.push(wi)}return Ri});vt.forEach(Xt=>{Y(this.playersByQueriedElement,Xt.element,[]).push(Xt),Xt.onDone(()=>function(L,u,h){let y;if(L instanceof Map){if(y=L.get(u),y){if(y.length){const R=y.indexOf(h);y.splice(R,1)}0==y.length&&L.delete(u)}}else if(y=L[u],y){if(y.length){const R=y.indexOf(h);y.splice(R,1)}0==y.length&&delete L[u]}return y}(this.playersByQueriedElement,Xt.element,Xt))}),At.forEach(Xt=>Ei(Xt,ft));const On=x(dn);return On.onDestroy(()=>{At.forEach(Xt=>Xi(Xt,ft)),tn(Xe,h.toStyles)}),Yt.forEach(Xt=>{Y(R,Xt,[]).push(On)}),On}_buildPlayer(u,h,y){return h.length>0?this.driver.animate(u.element,h,u.duration,u.delay,u.easing,y):new z.ZN(u.duration,u.delay)}}class Ur{constructor(u,h,y){this.namespaceId=u,this.triggerName=h,this.element=y,this._player=new z.ZN,this._containsRealPlayer=!1,this._queuedCallbacks={},this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(u){this._containsRealPlayer||(this._player=u,Object.keys(this._queuedCallbacks).forEach(h=>{this._queuedCallbacks[h].forEach(y=>B(u,h,void 0,y))}),this._queuedCallbacks={},this._containsRealPlayer=!0,this.overrideTotalTime(u.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(u){this.totalTime=u}syncPlayerEvents(u){const h=this._player;h.triggerCallback&&u.onStart(()=>h.triggerCallback("start")),u.onDone(()=>this.finish()),u.onDestroy(()=>this.destroy())}_queueEvent(u,h){Y(this._queuedCallbacks,u,[]).push(h)}onDone(u){this.queued&&this._queueEvent("done",u),this._player.onDone(u)}onStart(u){this.queued&&this._queueEvent("start",u),this._player.onStart(u)}onDestroy(u){this.queued&&this._queueEvent("destroy",u),this._player.onDestroy(u)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(u){this.queued||this._player.setPosition(u)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(u){const h=this._player;h.triggerCallback&&h.triggerCallback(u)}}function dr(L){return L&&1===L.nodeType}function _r(L,u){const h=L.style.display;return L.style.display=null!=u?u:"none",h}function uo(L,u,h,y,R){const ee=[];h.forEach(Xe=>ee.push(_r(Xe)));const me=[];y.forEach((Xe,vt)=>{const At={};Xe.forEach(Yt=>{const dn=At[Yt]=u.computeStyle(vt,Yt,R);(!dn||0==dn.length)&&(vt[Hn]=Xn,me.push(vt))}),L.set(vt,At)});let Te=0;return h.forEach(Xe=>_r(Xe,ee[Te++])),me}function yr(L,u){const h=new Map;if(L.forEach(Te=>h.set(Te,[])),0==u.length)return h;const R=new Set(u),ee=new Map;function me(Te){if(!Te)return 1;let Xe=ee.get(Te);if(Xe)return Xe;const vt=Te.parentNode;return Xe=h.has(vt)?vt:R.has(vt)?1:me(vt),ee.set(Te,Xe),Xe}return u.forEach(Te=>{const Xe=me(Te);1!==Xe&&h.get(Xe).push(Te)}),h}const Cr="$$classes";function Ei(L,u){if(L.classList)L.classList.add(u);else{let h=L[Cr];h||(h=L[Cr]={}),h[u]=!0}}function Xi(L,u){if(L.classList)L.classList.remove(u);else{let h=L[Cr];h&&delete h[u]}}function Mr(L,u,h){x(h).onDone(()=>L.processLeaveNode(u))}function Or(L,u){for(let h=0;h<L.length;h++){const y=L[h];y instanceof z.ZE?Or(y.players,u):u.push(y)}}function br(L,u,h){const y=h.get(L);if(!y)return!1;let R=u.get(L);return R?y.forEach(ee=>R.add(ee)):u.set(L,y),h.delete(L),!0}class $i{constructor(u,h,y){this.bodyNode=u,this._driver=h,this._normalizer=y,this._triggerCache={},this.onRemovalComplete=(R,ee)=>{},this._transitionEngine=new hi(u,h,y),this._timelineEngine=new _(u,h,y),this._transitionEngine.onRemovalComplete=(R,ee)=>this.onRemovalComplete(R,ee)}registerTrigger(u,h,y,R,ee){const me=u+"-"+R;let Te=this._triggerCache[me];if(!Te){const Xe=[],vt=at(this._driver,ee,Xe);if(Xe.length)throw new Error(`The animation trigger "${R}" has failed to build due to the following errors:\n - ${Xe.join("\n - ")}`);Te=function(L,u,h){return new Rt(L,u,h)}(R,vt,this._normalizer),this._triggerCache[me]=Te}this._transitionEngine.registerTrigger(h,R,Te)}register(u,h){this._transitionEngine.register(u,h)}destroy(u,h){this._transitionEngine.destroy(u,h)}onInsert(u,h,y,R){this._transitionEngine.insertNode(u,h,y,R)}onRemove(u,h,y,R){this._transitionEngine.removeNode(u,h,R||!1,y)}disableAnimations(u,h){this._transitionEngine.markElementAsDisabled(u,h)}process(u,h,y,R){if("@"==y.charAt(0)){const[ee,me]=V(y);this._timelineEngine.command(ee,h,me,R)}else this._transitionEngine.trigger(u,h,y,R)}listen(u,h,y,R,ee){if("@"==y.charAt(0)){const[me,Te]=V(y);return this._timelineEngine.listen(me,h,Te,ee)}return this._transitionEngine.listen(u,h,y,R,ee)}flush(u=-1){this._transitionEngine.flush(u)}get players(){return this._transitionEngine.players.concat(this._timelineEngine.players)}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}}function fr(L,u){let h=null,y=null;return Array.isArray(u)&&u.length?(h=er(u[0]),u.length>1&&(y=er(u[u.length-1]))):u&&(h=er(u)),h||y?new pr(L,h,y):null}class pr{constructor(u,h,y){this._element=u,this._startStyles=h,this._endStyles=y,this._state=0;let R=pr.initialStylesByElement.get(u);R||pr.initialStylesByElement.set(u,R={}),this._initialStyles=R}start(){this._state<1&&(this._startStyles&&tn(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(tn(this._element,this._initialStyles),this._endStyles&&(tn(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(pr.initialStylesByElement.delete(this._element),this._startStyles&&(rn(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(rn(this._element,this._endStyles),this._endStyles=null),tn(this._element,this._initialStyles),this._state=3)}}function er(L){let u=null;const h=Object.keys(L);for(let y=0;y<h.length;y++){const R=h[y];$r(R)&&(u=u||{},u[R]=L[R])}return u}function $r(L){return"display"===L||"position"===L}pr.initialStylesByElement=new WeakMap;const Vi="animation",tr="animationend";class Io{constructor(u,h,y,R,ee,me,Te){this._element=u,this._name=h,this._duration=y,this._delay=R,this._easing=ee,this._fillMode=me,this._onDoneFn=Te,this._finished=!1,this._destroyed=!1,this._startTime=0,this._position=0,this._eventFn=Xe=>this._handleCallback(Xe)}apply(){(function(L,u){const h=T(L,"").trim();let y=0;h.length&&(function(L,u){let h=0;for(let y=0;y<L.length;y++)","===L.charAt(y)&&h++;return h}(h)+1,u=`${h}, ${u}`),di(L,"",u)})(this._element,`${this._duration}ms ${this._easing} ${this._delay}ms 1 normal ${this._fillMode} ${this._name}`),Gr(this._element,this._eventFn,!1),this._startTime=Date.now()}pause(){ho(this._element,this._name,"paused")}resume(){ho(this._element,this._name,"running")}setPosition(u){const h=nr(this._element,this._name);this._position=u*this._duration,di(this._element,"Delay",`-${this._position}ms`,h)}getPosition(){return this._position}_handleCallback(u){const h=u._ngTestManualTimestamp||Date.now(),y=1e3*parseFloat(u.elapsedTime.toFixed(3));u.animationName==this._name&&Math.max(h-this._startTime,0)>=this._delay&&y>=this._duration&&this.finish()}finish(){this._finished||(this._finished=!0,this._onDoneFn(),Gr(this._element,this._eventFn,!0))}destroy(){this._destroyed||(this._destroyed=!0,this.finish(),function(L,u){const y=T(L,"").split(","),R=Yi(y,u);R>=0&&(y.splice(R,1),di(L,"",y.join(",")))}(this._element,this._name))}}function ho(L,u,h){di(L,"PlayState",h,nr(L,u))}function nr(L,u){const h=T(L,"");return h.indexOf(",")>0?Yi(h.split(","),u):Yi([h],u)}function Yi(L,u){for(let h=0;h<L.length;h++)if(L[h].indexOf(u)>=0)return h;return-1}function Gr(L,u,h){h?L.removeEventListener(tr,u):L.addEventListener(tr,u)}function di(L,u,h,y){const R=Vi+u;if(null!=y){const ee=L.style[R];if(ee.length){const me=ee.split(",");me[y]=h,h=me.join(",")}}L.style[R]=h}function T(L,u){return L.style[Vi+u]||""}class ht{constructor(u,h,y,R,ee,me,Te,Xe){this.element=u,this.keyframes=h,this.animationName=y,this._duration=R,this._delay=ee,this._finalStyles=Te,this._specialStyles=Xe,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this.currentSnapshot={},this._state=0,this.easing=me||"linear",this.totalTime=R+ee,this._buildStyler()}onStart(u){this._onStartFns.push(u)}onDone(u){this._onDoneFns.push(u)}onDestroy(u){this._onDestroyFns.push(u)}destroy(){this.init(),!(this._state>=4)&&(this._state=4,this._styler.destroy(),this._flushStartFns(),this._flushDoneFns(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(u=>u()),this._onDestroyFns=[])}_flushDoneFns(){this._onDoneFns.forEach(u=>u()),this._onDoneFns=[]}_flushStartFns(){this._onStartFns.forEach(u=>u()),this._onStartFns=[]}finish(){this.init(),!(this._state>=3)&&(this._state=3,this._styler.finish(),this._flushStartFns(),this._specialStyles&&this._specialStyles.finish(),this._flushDoneFns())}setPosition(u){this._styler.setPosition(u)}getPosition(){return this._styler.getPosition()}hasStarted(){return this._state>=2}init(){this._state>=1||(this._state=1,this._styler.apply(),this._delay&&this._styler.pause())}play(){this.init(),this.hasStarted()||(this._flushStartFns(),this._state=2,this._specialStyles&&this._specialStyles.start()),this._styler.resume()}pause(){this.init(),this._styler.pause()}restart(){this.reset(),this.play()}reset(){this._state=0,this._styler.destroy(),this._buildStyler(),this._styler.apply()}_buildStyler(){this._styler=new Io(this.element,this.animationName,this._duration,this._delay,this.easing,"forwards",()=>this.finish())}triggerCallback(u){const h="start"==u?this._onStartFns:this._onDoneFns;h.forEach(y=>y()),h.length=0}beforeDestroy(){this.init();const u={};if(this.hasStarted()){const h=this._state>=3;Object.keys(this._finalStyles).forEach(y=>{"offset"!=y&&(u[y]=h?this._finalStyles[y]:_e(this.element,y))})}this.currentSnapshot=u}}class Lt extends z.ZN{constructor(u,h){super(),this.element=u,this._startingStyles={},this.__initialized=!1,this._styles=Se(h)}init(){this.__initialized||!this._startingStyles||(this.__initialized=!0,Object.keys(this._styles).forEach(u=>{this._startingStyles[u]=this.element.style[u]}),super.init())}play(){!this._startingStyles||(this.init(),Object.keys(this._styles).forEach(u=>this.element.style.setProperty(u,this._styles[u])),super.play())}destroy(){!this._startingStyles||(Object.keys(this._startingStyles).forEach(u=>{const h=this._startingStyles[u];h?this.element.style.setProperty(u,h):this.element.style.removeProperty(u)}),this._startingStyles=null,super.destroy())}}class D{constructor(){this._count=0}validateStyleProperty(u){return Ze(u)}matchesElement(u,h){return st(u,h)}containsElement(u,h){return Be(u,h)}query(u,h,y){return se(u,h,y)}computeStyle(u,h,y){return window.getComputedStyle(u)[h]}buildKeyframeElement(u,h,y){y=y.map(Te=>Se(Te));let R=`@keyframes ${h} {\n`,ee="";y.forEach(Te=>{ee=" ";const Xe=parseFloat(Te.offset);R+=`${ee}${100*Xe}% {\n`,ee+=" ",Object.keys(Te).forEach(vt=>{const At=Te[vt];switch(vt){case"offset":return;case"easing":return void(At&&(R+=`${ee}animation-timing-function: ${At};\n`));default:return void(R+=`${ee}${vt}: ${At};\n`)}}),R+=`${ee}}\n`}),R+="}\n";const me=document.createElement("style");return me.textContent=R,me}animate(u,h,y,R,ee,me=[],Te){const Xe=me.filter(Dn=>Dn instanceof ht),vt={};ne(y,R)&&Xe.forEach(Dn=>{let ei=Dn.currentSnapshot;Object.keys(ei).forEach(ii=>vt[ii]=ei[ii])});const At=function(L){let u={};return L&&(Array.isArray(L)?L:[L]).forEach(y=>{Object.keys(y).forEach(R=>{"offset"==R||"easing"==R||(u[R]=y[R])})}),u}(h=N(u,h,vt));if(0==y)return new Lt(u,At);const Yt="gen_css_kf_"+this._count++,dn=this.buildKeyframeElement(u,Yt,h);(function(L){var u;const h=null===(u=L.getRootNode)||void 0===u?void 0:u.call(L);return"undefined"!=typeof ShadowRoot&&h instanceof ShadowRoot?h:document.head})(u).appendChild(dn);const Xt=fr(u,h),an=new ht(u,h,Yt,y,R,ee,At,Xt);return an.onDestroy(()=>{var L;(L=dn).parentNode.removeChild(L)}),an}}class mn{constructor(u,h,y,R){this.element=u,this.keyframes=h,this.options=y,this._specialStyles=R,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this.time=0,this.parentPlayer=null,this.currentSnapshot={},this._duration=y.duration,this._delay=y.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(u=>u()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const u=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,u,this.options),this._finalKeyframe=u.length?u[u.length-1]:{},this.domPlayer.addEventListener("finish",()=>this._onFinish())}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_triggerWebAnimation(u,h,y){return u.animate(h,y)}onStart(u){this._onStartFns.push(u)}onDone(u){this._onDoneFns.push(u)}onDestroy(u){this._onDestroyFns.push(u)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(u=>u()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(u=>u()),this._onDestroyFns=[])}setPosition(u){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=u*this.time}getPosition(){return this.domPlayer.currentTime/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const u={};this.hasStarted()&&Object.keys(this._finalKeyframe).forEach(h=>{"offset"!=h&&(u[h]=this._finished?this._finalKeyframe[h]:_e(this.element,h))}),this.currentSnapshot=u}triggerCallback(u){const h="start"==u?this._onStartFns:this._onDoneFns;h.forEach(y=>y()),h.length=0}}class Yn{constructor(){this._isNativeImpl=/\{\s*\[native\s+code\]\s*\}/.test(gn().toString()),this._cssKeyframesDriver=new D}validateStyleProperty(u){return Ze(u)}matchesElement(u,h){return st(u,h)}containsElement(u,h){return Be(u,h)}query(u,h,y){return se(u,h,y)}computeStyle(u,h,y){return window.getComputedStyle(u)[h]}overrideWebAnimationsSupport(u){this._isNativeImpl=u}animate(u,h,y,R,ee,me=[],Te){if(!Te&&!this._isNativeImpl)return this._cssKeyframesDriver.animate(u,h,y,R,ee,me);const At={duration:y,delay:R,fill:0==R?"both":"forwards"};ee&&(At.easing=ee);const Yt={},dn=me.filter(Xt=>Xt instanceof mn);ne(y,R)&&dn.forEach(Xt=>{let an=Xt.currentSnapshot;Object.keys(an).forEach(Dn=>Yt[Dn]=an[Dn])});const On=fr(u,h=N(u,h=h.map(Xt=>en(Xt,!1)),Yt));return new mn(u,h,At,On)}}function gn(){return le()&&Element.prototype.animate||{}}var Ln=m(8583);let Gn=(()=>{class L extends z._j{constructor(h,y){super(),this._nextAnimationId=0,this._renderer=h.createRenderer(y.body,{id:"0",encapsulation:c.ifc.None,styles:[],data:{animation:[]}})}build(h){const y=this._nextAnimationId.toString();this._nextAnimationId++;const R=Array.isArray(h)?(0,z.vP)(h):h;return yi(this._renderer,null,y,"register",[R]),new ui(y,this._renderer)}}return L.\u0275fac=function(h){return new(h||L)(c.LFG(c.FYo),c.LFG(Ln.K0))},L.\u0275prov=c.Yz7({token:L,factory:L.\u0275fac}),L})();class ui extends z.LC{constructor(u,h){super(),this._id=u,this._renderer=h}create(u,h){return new Ir(this._id,u,h||{},this._renderer)}}class Ir{constructor(u,h,y,R){this.id=u,this.element=h,this._renderer=R,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",y)}_listen(u,h){return this._renderer.listen(this.element,`@@${this.id}:${u}`,h)}_command(u,...h){return yi(this._renderer,this.element,this.id,u,h)}onDone(u){this._listen("done",u)}onStart(u){this._listen("start",u)}onDestroy(u){this._listen("destroy",u)}init(){this._command("init")}hasStarted(){return this._started}play(){this._command("play"),this._started=!0}pause(){this._command("pause")}restart(){this._command("restart")}finish(){this._command("finish")}destroy(){this._command("destroy")}reset(){this._command("reset"),this._started=!1}setPosition(u){this._command("setPosition",u)}getPosition(){var u,h;return null!==(h=null===(u=this._renderer.engine.players[+this.id])||void 0===u?void 0:u.getPosition())&&void 0!==h?h:0}}function yi(L,u,h,y,R){return L.setProperty(u,`@@${h}:${y}`,R)}const Li="@.disabled";let sn=(()=>{class L{constructor(h,y,R){this.delegate=h,this.engine=y,this._zone=R,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,this.promise=Promise.resolve(0),y.onRemovalComplete=(ee,me)=>{me&&me.parentNode(ee)&&me.removeChild(ee.parentNode,ee)}}createRenderer(h,y){const ee=this.delegate.createRenderer(h,y);if(!(h&&y&&y.data&&y.data.animation)){let At=this._rendererCache.get(ee);return At||(At=new Kr("",ee,this.engine),this._rendererCache.set(ee,At)),At}const me=y.id,Te=y.id+"-"+this._currentId;this._currentId++,this.engine.register(Te,h);const Xe=At=>{Array.isArray(At)?At.forEach(Xe):this.engine.registerTrigger(me,Te,h,At.name,At)};return y.data.animation.forEach(Xe),new Fr(this,Te,ee,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){this.promise.then(()=>{this._microtaskId++})}scheduleListenerCallback(h,y,R){h>=0&&h<this._microtaskId?this._zone.run(()=>y(R)):(0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(()=>{this._zone.run(()=>{this._animationCallbacksBuffer.forEach(ee=>{const[me,Te]=ee;me(Te)}),this._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([y,R]))}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}return L.\u0275fac=function(h){return new(h||L)(c.LFG(c.FYo),c.LFG($i),c.LFG(c.R0b))},L.\u0275prov=c.Yz7({token:L,factory:L.\u0275fac}),L})();class Kr{constructor(u,h,y){this.namespaceId=u,this.delegate=h,this.engine=y,this.destroyNode=this.delegate.destroyNode?R=>h.destroyNode(R):null}get data(){return this.delegate.data}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy()}createElement(u,h){return this.delegate.createElement(u,h)}createComment(u){return this.delegate.createComment(u)}createText(u){return this.delegate.createText(u)}appendChild(u,h){this.delegate.appendChild(u,h),this.engine.onInsert(this.namespaceId,h,u,!1)}insertBefore(u,h,y,R=!0){this.delegate.insertBefore(u,h,y),this.engine.onInsert(this.namespaceId,h,u,R)}removeChild(u,h,y){this.engine.onRemove(this.namespaceId,h,this.delegate,y)}selectRootElement(u,h){return this.delegate.selectRootElement(u,h)}parentNode(u){return this.delegate.parentNode(u)}nextSibling(u){return this.delegate.nextSibling(u)}setAttribute(u,h,y,R){this.delegate.setAttribute(u,h,y,R)}removeAttribute(u,h,y){this.delegate.removeAttribute(u,h,y)}addClass(u,h){this.delegate.addClass(u,h)}removeClass(u,h){this.delegate.removeClass(u,h)}setStyle(u,h,y,R){this.delegate.setStyle(u,h,y,R)}removeStyle(u,h,y){this.delegate.removeStyle(u,h,y)}setProperty(u,h,y){"@"==h.charAt(0)&&h==Li?this.disableAnimations(u,!!y):this.delegate.setProperty(u,h,y)}setValue(u,h){this.delegate.setValue(u,h)}listen(u,h,y){return this.delegate.listen(u,h,y)}disableAnimations(u,h){this.engine.disableAnimations(u,h)}}class Fr extends Kr{constructor(u,h,y,R){super(h,y,R),this.factory=u,this.namespaceId=h}setProperty(u,h,y){"@"==h.charAt(0)?"."==h.charAt(1)&&h==Li?this.disableAnimations(u,y=void 0===y||!!y):this.engine.process(this.namespaceId,u,h.substr(1),y):this.delegate.setProperty(u,h,y)}listen(u,h,y){if("@"==h.charAt(0)){const R=function(L){switch(L){case"body":return document.body;case"document":return document;case"window":return window;default:return L}}(u);let ee=h.substr(1),me="";return"@"!=ee.charAt(0)&&([ee,me]=function(L){const u=L.indexOf(".");return[L.substring(0,u),L.substr(u+1)]}(ee)),this.engine.listen(this.namespaceId,R,ee,me,Te=>{this.factory.scheduleListenerCallback(Te._data||-1,y,Te)})}return this.delegate.listen(u,h,y)}}let fo=(()=>{class L extends $i{constructor(h,y,R){super(h.body,y,R)}ngOnDestroy(){this.flush()}}return L.\u0275fac=function(h){return new(h||L)(c.LFG(Ln.K0),c.LFG(fe),c.LFG(ci))},L.\u0275prov=c.Yz7({token:L,factory:L.\u0275fac}),L})();const Pn=new c.OlP("AnimationModuleType"),Vr=[{provide:z._j,useClass:Gn},{provide:ci,useFactory:function(){return new si}},{provide:$i,useClass:fo},{provide:c.FYo,useFactory:function(L,u,h){return new sn(L,u,h)},deps:[s.se,$i,c.R0b]}],ai=[{provide:fe,useFactory:function(){return"function"==typeof gn()?new Yn:new D}},{provide:Pn,useValue:"BrowserAnimations"},...Vr],jo=[{provide:fe,useClass:oe},{provide:Pn,useValue:"NoopAnimations"},...Vr];let mo=(()=>{class L{static withConfig(h){return{ngModule:L,providers:h.disableAnimations?jo:ai}}}return L.\u0275fac=function(h){return new(h||L)},L.\u0275mod=c.oAB({type:L}),L.\u0275inj=c.cJS({providers:ai,imports:[s.b2]}),L})()},9075:(yt,De,m)=>{"use strict";m.d(De,{b2:()=>jn,H7:()=>Q,q6:()=>Sn,se:()=>Ht});var c=m(8583),s=m(7716);class z extends c.w_{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class le extends z{static makeCurrent(){(0,c.HT)(new le)}onAndCancel(ke,ue,qe){return ke.addEventListener(ue,qe,!1),()=>{ke.removeEventListener(ue,qe,!1)}}dispatchEvent(ke,ue){ke.dispatchEvent(ue)}remove(ke){ke.parentNode&&ke.parentNode.removeChild(ke)}createElement(ke,ue){return(ue=ue||this.getDefaultDocument()).createElement(ke)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(ke){return ke.nodeType===Node.ELEMENT_NODE}isShadowRoot(ke){return ke instanceof DocumentFragment}getGlobalEventTarget(ke,ue){return"window"===ue?window:"document"===ue?ke:"body"===ue?ke.body:null}getBaseHref(ke){const ue=(W=W||document.querySelector("base"),W?W.getAttribute("href"):null);return null==ue?null:function(Qe){S=S||document.createElement("a"),S.setAttribute("href",Qe);const ke=S.pathname;return"/"===ke.charAt(0)?ke:`/${ke}`}(ue)}resetBaseElement(){W=null}getUserAgent(){return window.navigator.userAgent}getCookie(ke){return(0,c.Mx)(document.cookie,ke)}}let S,W=null;const U=new s.OlP("TRANSITION_ID"),Y=[{provide:s.ip1,useFactory:function(Qe,ke,ue){return()=>{ue.get(s.CZH).donePromise.then(()=>{const qe=(0,c.q)();Array.prototype.slice.apply(ke.querySelectorAll("style[ng-transition]")).filter(Rt=>Rt.getAttribute("ng-transition")===Qe).forEach(Rt=>qe.remove(Rt))})}},deps:[U,c.K0,s.zs3],multi:!0}];class V{static init(){(0,s.VLi)(new V)}addToWindow(ke){s.dqk.getAngularTestability=(qe,gt=!0)=>{const Rt=ke.findTestabilityInTree(qe,gt);if(null==Rt)throw new Error("Could not find testability for element.");return Rt},s.dqk.getAllAngularTestabilities=()=>ke.getAllTestabilities(),s.dqk.getAllAngularRootElements=()=>ke.getAllRootElements(),s.dqk.frameworkStabilizers||(s.dqk.frameworkStabilizers=[]),s.dqk.frameworkStabilizers.push(qe=>{const gt=s.dqk.getAllAngularTestabilities();let Rt=gt.length,Ut=!1;const M=function(k){Ut=Ut||k,Rt--,0==Rt&&qe(Ut)};gt.forEach(function(k){k.whenStable(M)})})}findTestabilityInTree(ke,ue,qe){if(null==ue)return null;const gt=ke.getTestability(ue);return null!=gt?gt:qe?(0,c.q)().isShadowRoot(ue)?this.findTestabilityInTree(ke,ue.host,!0):this.findTestabilityInTree(ke,ue.parentElement,!0):null}}let be=(()=>{class Qe{build(){return new XMLHttpRequest}}return Qe.\u0275fac=function(ue){return new(ue||Qe)},Qe.\u0275prov=s.Yz7({token:Qe,factory:Qe.\u0275fac}),Qe})();const oe=new s.OlP("EventManagerPlugins");let fe=(()=>{class Qe{constructor(ue,qe){this._zone=qe,this._eventNameToPlugin=new Map,ue.forEach(gt=>gt.manager=this),this._plugins=ue.slice().reverse()}addEventListener(ue,qe,gt){return this._findPluginFor(qe).addEventListener(ue,qe,gt)}addGlobalEventListener(ue,qe,gt){return this._findPluginFor(qe).addGlobalEventListener(ue,qe,gt)}getZone(){return this._zone}_findPluginFor(ue){const qe=this._eventNameToPlugin.get(ue);if(qe)return qe;const gt=this._plugins;for(let Rt=0;Rt<gt.length;Rt++){const Ut=gt[Rt];if(Ut.supports(ue))return this._eventNameToPlugin.set(ue,Ut),Ut}throw new Error(`No event manager plugin found for event ${ue}`)}}return Qe.\u0275fac=function(ue){return new(ue||Qe)(s.LFG(oe),s.LFG(s.R0b))},Qe.\u0275prov=s.Yz7({token:Qe,factory:Qe.\u0275fac}),Qe})();class Oe{constructor(ke){this._doc=ke}addGlobalEventListener(ke,ue,qe){const gt=(0,c.q)().getGlobalEventTarget(this._doc,ke);if(!gt)throw new Error(`Unsupported event target ${gt} for event ${ue}`);return this.addEventListener(gt,ue,qe)}}let pe=(()=>{class Qe{constructor(){this._stylesSet=new Set}addStyles(ue){const qe=new Set;ue.forEach(gt=>{this._stylesSet.has(gt)||(this._stylesSet.add(gt),qe.add(gt))}),this.onStylesAdded(qe)}onStylesAdded(ue){}getAllStyles(){return Array.from(this._stylesSet)}}return Qe.\u0275fac=function(ue){return new(ue||Qe)},Qe.\u0275prov=s.Yz7({token:Qe,factory:Qe.\u0275fac}),Qe})(),Ue=(()=>{class Qe extends pe{constructor(ue){super(),this._doc=ue,this._hostNodes=new Map,this._hostNodes.set(ue.head,[])}_addStylesToHost(ue,qe,gt){ue.forEach(Rt=>{const Ut=this._doc.createElement("style");Ut.textContent=Rt,gt.push(qe.appendChild(Ut))})}addHost(ue){const qe=[];this._addStylesToHost(this._stylesSet,ue,qe),this._hostNodes.set(ue,qe)}removeHost(ue){const qe=this._hostNodes.get(ue);qe&&qe.forEach(Ne),this._hostNodes.delete(ue)}onStylesAdded(ue){this._hostNodes.forEach((qe,gt)=>{this._addStylesToHost(ue,gt,qe)})}ngOnDestroy(){this._hostNodes.forEach(ue=>ue.forEach(Ne))}}return Qe.\u0275fac=function(ue){return new(ue||Qe)(s.LFG(c.K0))},Qe.\u0275prov=s.Yz7({token:Qe,factory:Qe.\u0275fac}),Qe})();function Ne(Qe){(0,c.q)().remove(Qe)}const Ie={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},he=/%COMP%/g;function St(Qe,ke,ue){for(let qe=0;qe<ke.length;qe++){let gt=ke[qe];Array.isArray(gt)?St(Qe,gt,ue):(gt=gt.replace(he,Qe),ue.push(gt))}return ue}function lt(Qe){return ke=>{if("__ngUnwrap__"===ke)return Qe;!1===Qe(ke)&&(ke.preventDefault(),ke.returnValue=!1)}}let Ht=(()=>{class Qe{constructor(ue,qe,gt){this.eventManager=ue,this.sharedStylesHost=qe,this.appId=gt,this.rendererByCompId=new Map,this.defaultRenderer=new un(ue)}createRenderer(ue,qe){if(!ue||!qe)return this.defaultRenderer;switch(qe.encapsulation){case s.ifc.Emulated:{let gt=this.rendererByCompId.get(qe.id);return gt||(gt=new tn(this.eventManager,this.sharedStylesHost,qe,this.appId),this.rendererByCompId.set(qe.id,gt)),gt.applyToHost(ue),gt}case 1:case s.ifc.ShadowDom:return new rn(this.eventManager,this.sharedStylesHost,ue,qe);default:if(!this.rendererByCompId.has(qe.id)){const gt=St(qe.id,qe.styles,[]);this.sharedStylesHost.addStyles(gt),this.rendererByCompId.set(qe.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return Qe.\u0275fac=function(ue){return new(ue||Qe)(s.LFG(fe),s.LFG(Ue),s.LFG(s.AFp))},Qe.\u0275prov=s.Yz7({token:Qe,factory:Qe.\u0275fac}),Qe})();class un{constructor(ke){this.eventManager=ke,this.data=Object.create(null)}destroy(){}createElement(ke,ue){return ue?document.createElementNS(Ie[ue]||ue,ke):document.createElement(ke)}createComment(ke){return document.createComment(ke)}createText(ke){return document.createTextNode(ke)}appendChild(ke,ue){ke.appendChild(ue)}insertBefore(ke,ue,qe){ke&&ke.insertBefore(ue,qe)}removeChild(ke,ue){ke&&ke.removeChild(ue)}selectRootElement(ke,ue){let qe="string"==typeof ke?document.querySelector(ke):ke;if(!qe)throw new Error(`The selector "${ke}" did not match any elements`);return ue||(qe.textContent=""),qe}parentNode(ke){return ke.parentNode}nextSibling(ke){return ke.nextSibling}setAttribute(ke,ue,qe,gt){if(gt){ue=gt+":"+ue;const Rt=Ie[gt];Rt?ke.setAttributeNS(Rt,ue,qe):ke.setAttribute(ue,qe)}else ke.setAttribute(ue,qe)}removeAttribute(ke,ue,qe){if(qe){const gt=Ie[qe];gt?ke.removeAttributeNS(gt,ue):ke.removeAttribute(`${qe}:${ue}`)}else ke.removeAttribute(ue)}addClass(ke,ue){ke.classList.add(ue)}removeClass(ke,ue){ke.classList.remove(ue)}setStyle(ke,ue,qe,gt){gt&(s.JOm.DashCase|s.JOm.Important)?ke.style.setProperty(ue,qe,gt&s.JOm.Important?"important":""):ke.style[ue]=qe}removeStyle(ke,ue,qe){qe&s.JOm.DashCase?ke.style.removeProperty(ue):ke.style[ue]=""}setProperty(ke,ue,qe){ke[ue]=qe}setValue(ke,ue){ke.nodeValue=ue}listen(ke,ue,qe){return"string"==typeof ke?this.eventManager.addGlobalEventListener(ke,ue,lt(qe)):this.eventManager.addEventListener(ke,ue,lt(qe))}}class tn extends un{constructor(ke,ue,qe,gt){super(ke),this.component=qe;const Rt=St(gt+"-"+qe.id,qe.styles,[]);ue.addStyles(Rt),this.contentAttr="_ngcontent-%COMP%".replace(he,gt+"-"+qe.id),this.hostAttr="_nghost-%COMP%".replace(he,gt+"-"+qe.id)}applyToHost(ke){super.setAttribute(ke,this.hostAttr,"")}createElement(ke,ue){const qe=super.createElement(ke,ue);return super.setAttribute(qe,this.contentAttr,""),qe}}class rn extends un{constructor(ke,ue,qe,gt){super(ke),this.sharedStylesHost=ue,this.hostEl=qe,this.shadowRoot=qe.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const Rt=St(gt.id,gt.styles,[]);for(let Ut=0;Ut<Rt.length;Ut++){const M=document.createElement("style");M.textContent=Rt[Ut],this.shadowRoot.appendChild(M)}}nodeOrShadowRoot(ke){return ke===this.hostEl?this.shadowRoot:ke}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(ke,ue){return super.appendChild(this.nodeOrShadowRoot(ke),ue)}insertBefore(ke,ue,qe){return super.insertBefore(this.nodeOrShadowRoot(ke),ue,qe)}removeChild(ke,ue){return super.removeChild(this.nodeOrShadowRoot(ke),ue)}parentNode(ke){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(ke)))}}let cn=(()=>{class Qe extends Oe{constructor(ue){super(ue)}supports(ue){return!0}addEventListener(ue,qe,gt){return ue.addEventListener(qe,gt,!1),()=>this.removeEventListener(ue,qe,gt)}removeEventListener(ue,qe,gt){return ue.removeEventListener(qe,gt)}}return Qe.\u0275fac=function(ue){return new(ue||Qe)(s.LFG(c.K0))},Qe.\u0275prov=s.Yz7({token:Qe,factory:Qe.\u0275fac}),Qe})();const N=["alt","control","meta","shift"],_e={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},ve={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","\x90":"NumLock"},ge={alt:Qe=>Qe.altKey,control:Qe=>Qe.ctrlKey,meta:Qe=>Qe.metaKey,shift:Qe=>Qe.shiftKey};let it=(()=>{class Qe extends Oe{constructor(ue){super(ue)}supports(ue){return null!=Qe.parseEventName(ue)}addEventListener(ue,qe,gt){const Rt=Qe.parseEventName(qe),Ut=Qe.eventCallback(Rt.fullKey,gt,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>(0,c.q)().onAndCancel(ue,Rt.domEventName,Ut))}static parseEventName(ue){const qe=ue.toLowerCase().split("."),gt=qe.shift();if(0===qe.length||"keydown"!==gt&&"keyup"!==gt)return null;const Rt=Qe._normalizeKey(qe.pop());let Ut="";if(N.forEach(k=>{const _=qe.indexOf(k);_>-1&&(qe.splice(_,1),Ut+=k+".")}),Ut+=Rt,0!=qe.length||0===Rt.length)return null;const M={};return M.domEventName=gt,M.fullKey=Ut,M}static getEventFullKey(ue){let qe="",gt=function(Qe){let ke=Qe.key;if(null==ke){if(ke=Qe.keyIdentifier,null==ke)return"Unidentified";ke.startsWith("U+")&&(ke=String.fromCharCode(parseInt(ke.substring(2),16)),3===Qe.location&&ve.hasOwnProperty(ke)&&(ke=ve[ke]))}return _e[ke]||ke}(ue);return gt=gt.toLowerCase()," "===gt?gt="space":"."===gt&&(gt="dot"),N.forEach(Rt=>{Rt!=gt&&ge[Rt](ue)&&(qe+=Rt+".")}),qe+=gt,qe}static eventCallback(ue,qe,gt){return Rt=>{Qe.getEventFullKey(Rt)===ue&>.runGuarded(()=>qe(Rt))}}static _normalizeKey(ue){switch(ue){case"esc":return"escape";default:return ue}}}return Qe.\u0275fac=function(ue){return new(ue||Qe)(s.LFG(c.K0))},Qe.\u0275prov=s.Yz7({token:Qe,factory:Qe.\u0275fac}),Qe})(),Q=(()=>{class Qe{}return Qe.\u0275fac=function(ue){return new(ue||Qe)},Qe.\u0275prov=(0,s.Yz7)({factory:function(){return(0,s.LFG)(wt)},token:Qe,providedIn:"root"}),Qe})(),wt=(()=>{class Qe extends Q{constructor(ue){super(),this._doc=ue}sanitize(ue,qe){if(null==qe)return null;switch(ue){case s.q3G.NONE:return qe;case s.q3G.HTML:return(0,s.qzn)(qe,"HTML")?(0,s.z3N)(qe):(0,s.EiD)(this._doc,String(qe)).toString();case s.q3G.STYLE:return(0,s.qzn)(qe,"Style")?(0,s.z3N)(qe):qe;case s.q3G.SCRIPT:if((0,s.qzn)(qe,"Script"))return(0,s.z3N)(qe);throw new Error("unsafe value used in a script context");case s.q3G.URL:return(0,s.yhl)(qe),(0,s.qzn)(qe,"URL")?(0,s.z3N)(qe):(0,s.mCW)(String(qe));case s.q3G.RESOURCE_URL:if((0,s.qzn)(qe,"ResourceURL"))return(0,s.z3N)(qe);throw new Error("unsafe value used in a resource URL context (see https://g.co/ng/security#xss)");default:throw new Error(`Unexpected SecurityContext ${ue} (see https://g.co/ng/security#xss)`)}}bypassSecurityTrustHtml(ue){return(0,s.JVY)(ue)}bypassSecurityTrustStyle(ue){return(0,s.L6k)(ue)}bypassSecurityTrustScript(ue){return(0,s.eBb)(ue)}bypassSecurityTrustUrl(ue){return(0,s.LAX)(ue)}bypassSecurityTrustResourceUrl(ue){return(0,s.pB0)(ue)}}return Qe.\u0275fac=function(ue){return new(ue||Qe)(s.LFG(c.K0))},Qe.\u0275prov=(0,s.Yz7)({factory:function(){return function(Qe){return new wt(Qe.get(c.K0))}((0,s.LFG)(s.gxx))},token:Qe,providedIn:"root"}),Qe})();const Sn=(0,s.eFA)(s._c5,"browser",[{provide:s.Lbi,useValue:c.bD},{provide:s.g9A,useValue:function(){le.makeCurrent(),V.init()},multi:!0},{provide:c.K0,useFactory:function(){return(0,s.RDi)(document),document},deps:[]}]),Gt=[[],{provide:s.zSh,useValue:"root"},{provide:s.qLn,useFactory:function(){return new s.qLn},deps:[]},{provide:oe,useClass:cn,multi:!0,deps:[c.K0,s.R0b,s.Lbi]},{provide:oe,useClass:it,multi:!0,deps:[c.K0]},[],{provide:Ht,useClass:Ht,deps:[fe,Ue,s.AFp]},{provide:s.FYo,useExisting:Ht},{provide:pe,useExisting:Ue},{provide:Ue,useClass:Ue,deps:[c.K0]},{provide:s.dDg,useClass:s.dDg,deps:[s.R0b]},{provide:fe,useClass:fe,deps:[oe,s.R0b]},{provide:c.JF,useClass:be,deps:[]},[]];let jn=(()=>{class Qe{constructor(ue){if(ue)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}static withServerTransition(ue){return{ngModule:Qe,providers:[{provide:s.AFp,useValue:ue.appId},{provide:U,useExisting:s.AFp},Y]}}}return Qe.\u0275fac=function(ue){return new(ue||Qe)(s.LFG(Qe,12))},Qe.\u0275mod=s.oAB({type:Qe}),Qe.\u0275inj=s.cJS({providers:Gt,imports:[c.ez,s.hGG]}),Qe})();"undefined"!=typeof window&&window},6983:(yt,De,m)=>{"use strict";m.d(De,{gz:()=>Ye,m2:()=>Dt,OD:()=>lt,wm:()=>Fo,F0:()=>ti,rH:()=>Ai,yS:()=>$n,Bz:()=>As,lC:()=>wr});var c=m(8583),s=m(7716);const le=(()=>{function g(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}return g.prototype=Object.create(Error.prototype),g})();var W=m(4402),x=m(5917),S=m(6215),B=m(9112),U=m(8891),F=m(9923),Y=m(1439),V=m(9193),be=m(2441),je=m(9765),Ke=m(5435),$e=m(7393),nt=m(7108);function ut(g){return function(d){return 0===g?(0,V.c)():d.lift(new tt(g))}}class tt{constructor(p){if(this.total=p,this.total<0)throw new nt.W}call(p,d){return d.subscribe(new Ft(p,this.total))}}class Ft extends $e.L{constructor(p,d){super(p),this.total=d,this.ring=new Array,this.count=0}_next(p){const d=this.ring,w=this.total,O=this.count++;d.length<w?d.push(p):d[O%w]=p}_complete(){const p=this.destination;let d=this.count;if(d>0){const w=this.count>=this.total?this.total:this.count,O=this.ring;for(let K=0;K<w;K++){const ye=d++%w;p.next(O[ye])}}p.complete()}}function We(g=Pe){return p=>p.lift(new Re(g))}class Re{constructor(p){this.errorFactory=p}call(p,d){return d.subscribe(new Ze(p,this.errorFactory))}}class Ze extends $e.L{constructor(p,d){super(p),this.errorFactory=d,this.hasValue=!1}_next(p){this.hasValue=!0,this.destination.next(p)}_complete(){if(this.hasValue)return this.destination.complete();{let p;try{p=this.errorFactory()}catch(d){p=d}this.destination.error(p)}}}function Pe(){return new le}function st(g=null){return p=>p.lift(new Be(g))}class Be{constructor(p){this.defaultValue=p}call(p,d){return d.subscribe(new se(p,this.defaultValue))}}class se extends $e.L{constructor(p,d){super(p),this.defaultValue=d,this.isEmpty=!0}_next(p){this.isEmpty=!1,this.destination.next(p)}_complete(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()}}var Se=m(4487),fe=m(5257);function Oe(g,p){const d=arguments.length>=2;return w=>w.pipe(g?(0,Ke.h)((O,K)=>g(O,K,w)):Se.y,(0,fe.q)(1),d?st(p):We(()=>new le))}var pe=m(8002),Ue=m(3190),Ne=m(9761),Ie=m(2145),he=m(5304),we=m(4612),Ge=m(9773),Ve=m(8307),ft=m(1307),Tt=m(8939),rt=m(3282);class St{constructor(p,d){this.id=p,this.url=d}}class lt extends St{constructor(p,d,w="imperative",O=null){super(p,d),this.navigationTrigger=w,this.restoredState=O}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Dt extends St{constructor(p,d,w){super(p,d),this.urlAfterRedirects=w}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class Ht extends St{constructor(p,d,w){super(p,d),this.reason=w}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class un extends St{constructor(p,d,w){super(p,d),this.error=w}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class en extends St{constructor(p,d,w,O){super(p,d),this.urlAfterRedirects=w,this.state=O}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class wn extends St{constructor(p,d,w,O){super(p,d),this.urlAfterRedirects=w,this.state=O}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class It extends St{constructor(p,d,w,O,K){super(p,d),this.urlAfterRedirects=w,this.state=O,this.shouldActivate=K}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class tn extends St{constructor(p,d,w,O){super(p,d),this.urlAfterRedirects=w,this.state=O}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class rn extends St{constructor(p,d,w,O){super(p,d),this.urlAfterRedirects=w,this.state=O}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class cn{constructor(p){this.route=p}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class kt{constructor(p){this.route=p}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class bn{constructor(p){this.snapshot=p}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class pt{constructor(p){this.snapshot=p}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class xe{constructor(p){this.snapshot=p}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Ae{constructor(p){this.snapshot=p}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Ct{constructor(p,d,w){this.routerEvent=p,this.position=d,this.anchor=w}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}const ae="primary";class I{constructor(p){this.params=p||{}}has(p){return Object.prototype.hasOwnProperty.call(this.params,p)}get(p){if(this.has(p)){const d=this.params[p];return Array.isArray(d)?d[0]:d}return null}getAll(p){if(this.has(p)){const d=this.params[p];return Array.isArray(d)?d:[d]}return[]}get keys(){return Object.keys(this.params)}}function ne(g){return new I(g)}const N="ngNavigationCancelingError";function G(g){const p=Error("NavigationCancelingError: "+g);return p[N]=!0,p}function ve(g,p,d){const w=d.path.split("/");if(w.length>g.length||"full"===d.pathMatch&&(p.hasChildren()||w.length<g.length))return null;const O={};for(let K=0;K<w.length;K++){const ye=w[K],Fe=g[K];if(ye.startsWith(":"))O[ye.substring(1)]=Fe;else if(ye!==Fe.path)return null}return{consumed:g.slice(0,w.length),posParams:O}}function H(g,p){const d=g?Object.keys(g):void 0,w=p?Object.keys(p):void 0;if(!d||!w||d.length!=w.length)return!1;let O;for(let K=0;K<d.length;K++)if(O=d[K],!ce(g[O],p[O]))return!1;return!0}function ce(g,p){if(Array.isArray(g)&&Array.isArray(p)){if(g.length!==p.length)return!1;const d=[...g].sort(),w=[...p].sort();return d.every((O,K)=>w[K]===O)}return g===p}function Je(g){return Array.prototype.concat.apply([],g)}function ge(g){return g.length>0?g[g.length-1]:null}function X(g,p){for(const d in g)g.hasOwnProperty(d)&&p(g[d],d)}function Q(g){return(0,s.CqO)(g)?g:(0,s.QGY)(g)?(0,W.D)(Promise.resolve(g)):(0,x.of)(g)}const wt={exact:function Le(g,p,d){if(!zn(g.segments,p.segments)||!on(g.segments,p.segments,d)||g.numberOfChildren!==p.numberOfChildren)return!1;for(const w in p.children)if(!g.children[w]||!Le(g.children[w],p.children[w],d))return!1;return!0},subset:xt},Ee={exact:function(g,p){return H(g,p)},subset:function(g,p){return Object.keys(p).length<=Object.keys(g).length&&Object.keys(p).every(d=>ce(g[d],p[d]))},ignored:()=>!0};function de(g,p,d){return wt[d.paths](g.root,p.root,d.matrixParams)&&Ee[d.queryParams](g.queryParams,p.queryParams)&&!("exact"===d.fragment&&g.fragment!==p.fragment)}function xt(g,p,d){return Jt(g,p,p.segments,d)}function Jt(g,p,d,w){if(g.segments.length>d.length){const O=g.segments.slice(0,d.length);return!(!zn(O,d)||p.hasChildren()||!on(O,d,w))}if(g.segments.length===d.length){if(!zn(g.segments,d)||!on(g.segments,d,w))return!1;for(const O in p.children)if(!g.children[O]||!xt(g.children[O],p.children[O],w))return!1;return!0}{const O=d.slice(0,g.segments.length),K=d.slice(g.segments.length);return!!(zn(g.segments,O)&&on(g.segments,O,w)&&g.children[ae])&&Jt(g.children[ae],p,K,w)}}function on(g,p,d){return p.every((w,O)=>Ee[d](g[O].parameters,w.parameters))}class Sn{constructor(p,d,w){this.root=p,this.queryParams=d,this.fragment=w}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=ne(this.queryParams)),this._queryParamMap}toString(){return vn.serialize(this)}}class Gt{constructor(p,d){this.segments=p,this.children=d,this.parent=null,X(d,(w,O)=>w.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return kn(this)}}class jn{constructor(p,d){this.path=p,this.parameters=d}get parameterMap(){return this._parameterMap||(this._parameterMap=ne(this.parameters)),this._parameterMap}toString(){return ci(this)}}function zn(g,p){return g.length===p.length&&g.every((d,w)=>d.path===p[w].path)}class Wn{}class pn{parse(p){const d=new ue(p);return new Sn(d.parseRootSegment(),d.parseQueryParams(),d.parseFragment())}serialize(p){var g;return`${`/${xn(p.root,!0)}`}${function(g){const p=Object.keys(g).map(d=>{const w=g[d];return Array.isArray(w)?w.map(O=>`${Nn(d)}=${Nn(O)}`).join("&"):`${Nn(d)}=${Nn(w)}`}).filter(d=>!!d);return p.length?`?${p.join("&")}`:""}(p.queryParams)}${"string"==typeof p.fragment?`#${g=p.fragment,encodeURI(g)}`:""}`}}const vn=new pn;function kn(g){return g.segments.map(p=>ci(p)).join("/")}function xn(g,p){if(!g.hasChildren())return kn(g);if(p){const d=g.children[ae]?xn(g.children[ae],!1):"",w=[];return X(g.children,(O,K)=>{K!==ae&&w.push(`${K}:${xn(O,!1)}`)}),w.length>0?`${d}(${w.join("//")})`:d}{const d=function(g,p){let d=[];return X(g.children,(w,O)=>{O===ae&&(d=d.concat(p(w,O)))}),X(g.children,(w,O)=>{O!==ae&&(d=d.concat(p(w,O)))}),d}(g,(w,O)=>O===ae?[xn(g.children[ae],!1)]:[`${O}:${xn(w,!1)}`]);return 1===Object.keys(g.children).length&&null!=g.children[ae]?`${kn(g)}/${d[0]}`:`${kn(g)}/(${d.join("//")})`}}function _i(g){return encodeURIComponent(g).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Nn(g){return _i(g).replace(/%3B/gi,";")}function Qt(g){return _i(g).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function _n(g){return decodeURIComponent(g)}function oi(g){return _n(g.replace(/\+/g,"%20"))}function ci(g){return`${Qt(g.path)}${function(g){return Object.keys(g).map(p=>`;${Qt(p)}=${Qt(g[p])}`).join("")}(g.parameters)}`}const Fn=/^[^\/()?;=#]+/;function jt(g){const p=g.match(Fn);return p?p[0]:""}const li=/^[^=?&#]+/,Qe=/^[^?&#]+/;class ue{constructor(p){this.url=p,this.remaining=p}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Gt([],{}):new Gt([],this.parseChildren())}parseQueryParams(){const p={};if(this.consumeOptional("?"))do{this.parseQueryParam(p)}while(this.consumeOptional("&"));return p}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const p=[];for(this.peekStartsWith("(")||p.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),p.push(this.parseSegment());let d={};this.peekStartsWith("/(")&&(this.capture("/"),d=this.parseParens(!0));let w={};return this.peekStartsWith("(")&&(w=this.parseParens(!1)),(p.length>0||Object.keys(d).length>0)&&(w[ae]=new Gt(p,d)),w}parseSegment(){const p=jt(this.remaining);if(""===p&&this.peekStartsWith(";"))throw new Error(`Empty path url segment cannot have parameters: '${this.remaining}'.`);return this.capture(p),new jn(_n(p),this.parseMatrixParams())}parseMatrixParams(){const p={};for(;this.consumeOptional(";");)this.parseParam(p);return p}parseParam(p){const d=jt(this.remaining);if(!d)return;this.capture(d);let w="";if(this.consumeOptional("=")){const O=jt(this.remaining);O&&(w=O,this.capture(w))}p[_n(d)]=_n(w)}parseQueryParam(p){const d=function(g){const p=g.match(li);return p?p[0]:""}(this.remaining);if(!d)return;this.capture(d);let w="";if(this.consumeOptional("=")){const ye=function(g){const p=g.match(Qe);return p?p[0]:""}(this.remaining);ye&&(w=ye,this.capture(w))}const O=oi(d),K=oi(w);if(p.hasOwnProperty(O)){let ye=p[O];Array.isArray(ye)||(ye=[ye],p[O]=ye),ye.push(K)}else p[O]=K}parseParens(p){const d={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const w=jt(this.remaining),O=this.remaining[w.length];if("/"!==O&&")"!==O&&";"!==O)throw new Error(`Cannot parse url '${this.url}'`);let K;w.indexOf(":")>-1?(K=w.substr(0,w.indexOf(":")),this.capture(K),this.capture(":")):p&&(K=ae);const ye=this.parseChildren();d[K]=1===Object.keys(ye).length?ye[ae]:new Gt([],ye),this.consumeOptional("//")}return d}peekStartsWith(p){return this.remaining.startsWith(p)}consumeOptional(p){return!!this.peekStartsWith(p)&&(this.remaining=this.remaining.substring(p.length),!0)}capture(p){if(!this.consumeOptional(p))throw new Error(`Expected "${p}".`)}}class qe{constructor(p){this._root=p}get root(){return this._root.value}parent(p){const d=this.pathFromRoot(p);return d.length>1?d[d.length-2]:null}children(p){const d=gt(p,this._root);return d?d.children.map(w=>w.value):[]}firstChild(p){const d=gt(p,this._root);return d&&d.children.length>0?d.children[0].value:null}siblings(p){const d=Rt(p,this._root);return d.length<2?[]:d[d.length-2].children.map(O=>O.value).filter(O=>O!==p)}pathFromRoot(p){return Rt(p,this._root).map(d=>d.value)}}function gt(g,p){if(g===p.value)return p;for(const d of p.children){const w=gt(g,d);if(w)return w}return null}function Rt(g,p){if(g===p.value)return[p];for(const d of p.children){const w=Rt(g,d);if(w.length)return w.unshift(p),w}return[]}class Ut{constructor(p,d){this.value=p,this.children=d}toString(){return`TreeNode(${this.value})`}}function M(g){const p={};return g&&g.children.forEach(d=>p[d.value.outlet]=d),p}class k extends qe{constructor(p,d){super(p),this.snapshot=d,yn(this,p)}toString(){return this.snapshot.toString()}}function _(g,p){const d=function(g,p){const ye=new Vt([],{},{},"",{},ae,p,null,g.root,-1,{});return new Kt("",new Ut(ye,[]))}(g,p),w=new S.X([new jn("",{})]),O=new S.X({}),K=new S.X({}),ye=new S.X({}),Fe=new S.X(""),_t=new Ye(w,O,ye,Fe,K,ae,p,d.root);return _t.snapshot=d.root,new k(new Ut(_t,[]),d)}class Ye{constructor(p,d,w,O,K,ye,Fe,_t){this.url=p,this.params=d,this.queryParams=w,this.fragment=O,this.data=K,this.outlet=ye,this.component=Fe,this._futureSnapshot=_t}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=this.params.pipe((0,pe.U)(p=>ne(p)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe((0,pe.U)(p=>ne(p)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function ot(g,p="emptyOnly"){const d=g.pathFromRoot;let w=0;if("always"!==p)for(w=d.length-1;w>=1;){const O=d[w],K=d[w-1];if(O.routeConfig&&""===O.routeConfig.path)w--;else{if(K.component)break;w--}}return function(g){return g.reduce((p,d)=>({params:Object.assign(Object.assign({},p.params),d.params),data:Object.assign(Object.assign({},p.data),d.data),resolve:Object.assign(Object.assign({},p.resolve),d._resolvedData)}),{params:{},data:{},resolve:{}})}(d.slice(w))}class Vt{constructor(p,d,w,O,K,ye,Fe,_t,Nt,nn,An){this.url=p,this.params=d,this.queryParams=w,this.fragment=O,this.data=K,this.outlet=ye,this.component=Fe,this.routeConfig=_t,this._urlSegment=Nt,this._lastPathIndex=nn,this._resolve=An}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=ne(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=ne(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(w=>w.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class Kt extends qe{constructor(p,d){super(d),this.url=p,yn(this,d)}toString(){return ni(this._root)}}function yn(g,p){p.value._routerState=g,p.children.forEach(d=>yn(g,d))}function ni(g){const p=g.children.length>0?` { ${g.children.map(ni).join(", ")} } `:"";return`${g.value}${p}`}function Xn(g){if(g.snapshot){const p=g.snapshot,d=g._futureSnapshot;g.snapshot=d,H(p.queryParams,d.queryParams)||g.queryParams.next(d.queryParams),p.fragment!==d.fragment&&g.fragment.next(d.fragment),H(p.params,d.params)||g.params.next(d.params),function(g,p){if(g.length!==p.length)return!1;for(let d=0;d<g.length;++d)if(!H(g[d],p[d]))return!1;return!0}(p.url,d.url)||g.url.next(d.url),H(p.data,d.data)||g.data.next(d.data)}else g.snapshot=g._futureSnapshot,g.data.next(g._futureSnapshot.data)}function Hn(g,p){return H(g.params,p.params)&&function(g,p){return zn(g,p)&&g.every((d,w)=>H(d.parameters,p[w].parameters))}(g.url,p.url)&&!(!g.parent!=!p.parent)&&(!g.parent||Hn(g.parent,p.parent))}function bi(g,p,d){if(d&&g.shouldReuseRoute(p.value,d.value.snapshot)){const w=d.value;w._futureSnapshot=p.value;const O=function(g,p,d){return p.children.map(w=>{for(const O of d.children)if(g.shouldReuseRoute(w.value,O.value.snapshot))return bi(g,w,O);return bi(g,w)})}(g,p,d);return new Ut(w,O)}{if(g.shouldAttach(p.value)){const K=g.retrieve(p.value);if(null!==K){const ye=K.route;return Ti(p,ye),ye}}const w=function(g){return new Ye(new S.X(g.url),new S.X(g.params),new S.X(g.queryParams),new S.X(g.fragment),new S.X(g.data),g.outlet,g.component,g)}(p.value),O=p.children.map(K=>bi(g,K));return new Ut(w,O)}}function Ti(g,p){if(g.value.routeConfig!==p.value.routeConfig)throw new Error("Cannot reattach ActivatedRouteSnapshot created from a different route");if(g.children.length!==p.children.length)throw new Error("Cannot reattach ActivatedRouteSnapshot with a different number of children");p.value._futureSnapshot=g.value;for(let d=0;d<g.children.length;++d)Ti(g.children[d],p.children[d])}function hr(g){return"object"==typeof g&&null!=g&&!g.outlets&&!g.segmentPath}function Ji(g){return"object"==typeof g&&null!=g&&g.outlets}function dr(g,p,d,w,O){let K={};return w&&X(w,(ye,Fe)=>{K[Fe]=Array.isArray(ye)?ye.map(_t=>`${_t}`):`${ye}`}),new Sn(d.root===g?p:lo(d.root,g,p),K,O)}function lo(g,p,d){const w={};return X(g.children,(O,K)=>{w[K]=O===p?d:lo(O,p,d)}),new Gt(g.segments,w)}class _r{constructor(p,d,w){if(this.isAbsolute=p,this.numberOfDoubleDots=d,this.commands=w,p&&w.length>0&&hr(w[0]))throw new Error("Root segment cannot have matrix parameters");const O=w.find(Ji);if(O&&O!==ge(w))throw new Error("{outlets:{}} has to be the last command")}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class yr{constructor(p,d,w){this.segmentGroup=p,this.processChildren=d,this.index=w}}function Xi(g,p,d){if(g||(g=new Gt([],{})),0===g.segments.length&&g.hasChildren())return Mr(g,p,d);const w=function(g,p,d){let w=0,O=p;const K={match:!1,pathIndex:0,commandIndex:0};for(;O<g.segments.length;){if(w>=d.length)return K;const ye=g.segments[O],Fe=d[w];if(Ji(Fe))break;const _t=`${Fe}`,Nt=w<d.length-1?d[w+1]:null;if(O>0&&void 0===_t)break;if(_t&&Nt&&"object"==typeof Nt&&void 0===Nt.outlets){if(!$i(_t,Nt,ye))return K;w+=2}else{if(!$i(_t,{},ye))return K;w++}O++}return{match:!0,pathIndex:O,commandIndex:w}}(g,p,d),O=d.slice(w.commandIndex);if(w.match&&w.pathIndex<g.segments.length){const K=new Gt(g.segments.slice(0,w.pathIndex),{});return K.children[ae]=new Gt(g.segments.slice(w.pathIndex),g.children),Mr(K,0,O)}return w.match&&0===O.length?new Gt(g.segments,{}):w.match&&!g.hasChildren()?Or(g,p,d):w.match?Mr(g,0,O):Or(g,p,d)}function Mr(g,p,d){if(0===d.length)return new Gt(g.segments,{});{const w=function(g){return Ji(g[0])?g[0].outlets:{[ae]:g}}(d),O={};return X(w,(K,ye)=>{"string"==typeof K&&(K=[K]),null!==K&&(O[ye]=Xi(g.children[ye],p,K))}),X(g.children,(K,ye)=>{void 0===w[ye]&&(O[ye]=K)}),new Gt(g.segments,O)}}function Or(g,p,d){const w=g.segments.slice(0,p);let O=0;for(;O<d.length;){const K=d[O];if(Ji(K)){const _t=Ar(K.outlets);return new Gt(w,_t)}if(0===O&&hr(d[0])){w.push(new jn(g.segments[p].path,br(d[0]))),O++;continue}const ye=Ji(K)?K.outlets[ae]:`${K}`,Fe=O<d.length-1?d[O+1]:null;ye&&Fe&&hr(Fe)?(w.push(new jn(ye,br(Fe))),O+=2):(w.push(new jn(ye,{})),O++)}return new Gt(w,{})}function Ar(g){const p={};return X(g,(d,w)=>{"string"==typeof d&&(d=[d]),null!==d&&(p[w]=Or(new Gt([],{}),0,d))}),p}function br(g){const p={};return X(g,(d,w)=>p[w]=`${d}`),p}function $i(g,p,d){return g==d.path&&H(p,d.parameters)}class pr{constructor(p,d,w,O){this.routeReuseStrategy=p,this.futureState=d,this.currState=w,this.forwardEvent=O}activate(p){const d=this.futureState._root,w=this.currState?this.currState._root:null;this.deactivateChildRoutes(d,w,p),Xn(this.futureState.root),this.activateChildRoutes(d,w,p)}deactivateChildRoutes(p,d,w){const O=M(d);p.children.forEach(K=>{const ye=K.value.outlet;this.deactivateRoutes(K,O[ye],w),delete O[ye]}),X(O,(K,ye)=>{this.deactivateRouteAndItsChildren(K,w)})}deactivateRoutes(p,d,w){const O=p.value,K=d?d.value:null;if(O===K)if(O.component){const ye=w.getContext(O.outlet);ye&&this.deactivateChildRoutes(p,d,ye.children)}else this.deactivateChildRoutes(p,d,w);else K&&this.deactivateRouteAndItsChildren(d,w)}deactivateRouteAndItsChildren(p,d){this.routeReuseStrategy.shouldDetach(p.value.snapshot)?this.detachAndStoreRouteSubtree(p,d):this.deactivateRouteAndOutlet(p,d)}detachAndStoreRouteSubtree(p,d){const w=d.getContext(p.value.outlet);if(w&&w.outlet){const O=w.outlet.detach(),K=w.children.onOutletDeactivated();this.routeReuseStrategy.store(p.value.snapshot,{componentRef:O,route:p,contexts:K})}}deactivateRouteAndOutlet(p,d){const w=d.getContext(p.value.outlet),O=w&&p.value.component?w.children:d,K=M(p);for(const ye of Object.keys(K))this.deactivateRouteAndItsChildren(K[ye],O);w&&w.outlet&&(w.outlet.deactivate(),w.children.onOutletDeactivated(),w.attachRef=null,w.resolver=null,w.route=null)}activateChildRoutes(p,d,w){const O=M(d);p.children.forEach(K=>{this.activateRoutes(K,O[K.value.outlet],w),this.forwardEvent(new Ae(K.value.snapshot))}),p.children.length&&this.forwardEvent(new pt(p.value.snapshot))}activateRoutes(p,d,w){const O=p.value,K=d?d.value:null;if(Xn(O),O===K)if(O.component){const ye=w.getOrCreateContext(O.outlet);this.activateChildRoutes(p,d,ye.children)}else this.activateChildRoutes(p,d,w);else if(O.component){const ye=w.getOrCreateContext(O.outlet);if(this.routeReuseStrategy.shouldAttach(O.snapshot)){const Fe=this.routeReuseStrategy.retrieve(O.snapshot);this.routeReuseStrategy.store(O.snapshot,null),ye.children.onOutletReAttached(Fe.contexts),ye.attachRef=Fe.componentRef,ye.route=Fe.route.value,ye.outlet&&ye.outlet.attach(Fe.componentRef,Fe.route.value),er(Fe.route)}else{const Fe=function(g){for(let p=g.parent;p;p=p.parent){const d=p.routeConfig;if(d&&d._loadedConfig)return d._loadedConfig;if(d&&d.component)return null}return null}(O.snapshot),_t=Fe?Fe.module.componentFactoryResolver:null;ye.attachRef=null,ye.route=O,ye.resolver=_t,ye.outlet&&ye.outlet.activateWith(O,_t),this.activateChildRoutes(p,null,ye.children)}}else this.activateChildRoutes(p,null,w)}}function er(g){Xn(g.value),g.children.forEach(er)}class Pi{constructor(p,d){this.routes=p,this.module=d}}function Vi(g){return"function"==typeof g}function Bi(g){return g instanceof Sn}const nr=Symbol("INITIAL_VALUE");function Yi(){return(0,Ue.w)(g=>(0,B.aj)(g.map(p=>p.pipe((0,fe.q)(1),(0,Ne.O)(nr)))).pipe((0,Ie.R)((p,d)=>{let w=!1;return d.reduce((O,K,ye)=>O!==nr?O:(K===nr&&(w=!0),w||!1!==K&&ye!==d.length-1&&!Bi(K)?O:K),p)},nr),(0,Ke.h)(p=>p!==nr),(0,pe.U)(p=>Bi(p)?p:!0===p),(0,fe.q)(1)))}let Gr=(()=>{class g{}return g.\u0275fac=function(d){return new(d||g)},g.\u0275cmp=s.Xpm({type:g,selectors:[["ng-component"]],decls:1,vars:0,template:function(d,w){1&d&&s._UZ(0,"router-outlet")},directives:function(){return[wr]},encapsulation:2}),g})();function di(g,p=""){for(let d=0;d<g.length;d++){const w=g[d];T(w,E(p,w))}}function T(g,p){g.children&&di(g.children,p)}function E(g,p){return p?g||p.path?g&&!p.path?`${g}/`:!g&&p.path?p.path:`${g}/${p.path}`:"":g}function v(g){const p=g.children&&g.children.map(v),d=p?Object.assign(Object.assign({},g),{children:p}):Object.assign({},g);return!d.component&&(p||d.loadChildren)&&d.outlet&&d.outlet!==ae&&(d.component=Gr),d}function $(g){return g.outlet||ae}function ht(g,p){const d=g.filter(w=>$(w)===p);return d.push(...g.filter(w=>$(w)!==p)),d}const Lt={matched:!1,consumedSegments:[],lastChild:0,parameters:{},positionalParamSegments:{}};function b(g,p,d){var w;if(""===p.path)return"full"===p.pathMatch&&(g.hasChildren()||d.length>0)?Object.assign({},Lt):{matched:!0,consumedSegments:[],lastChild:0,parameters:{},positionalParamSegments:{}};const K=(p.matcher||ve)(d,g,p);if(!K)return Object.assign({},Lt);const ye={};X(K.posParams,(_t,Nt)=>{ye[Nt]=_t.path});const Fe=K.consumed.length>0?Object.assign(Object.assign({},ye),K.consumed[K.consumed.length-1].parameters):ye;return{matched:!0,consumedSegments:K.consumed,lastChild:K.consumed.length,parameters:Fe,positionalParamSegments:null!==(w=K.posParams)&&void 0!==w?w:{}}}function j(g,p,d,w,O="corrected"){if(d.length>0&&function(g,p,d){return d.some(w=>bt(g,p,w)&&$(w)!==ae)}(g,d,w)){const ye=new Gt(p,function(g,p,d,w){const O={};O[ae]=w,w._sourceSegment=g,w._segmentIndexShift=p.length;for(const K of d)if(""===K.path&&$(K)!==ae){const ye=new Gt([],{});ye._sourceSegment=g,ye._segmentIndexShift=p.length,O[$(K)]=ye}return O}(g,p,w,new Gt(d,g.children)));return ye._sourceSegment=g,ye._segmentIndexShift=p.length,{segmentGroup:ye,slicedSegments:[]}}if(0===d.length&&function(g,p,d){return d.some(w=>bt(g,p,w))}(g,d,w)){const ye=new Gt(g.segments,function(g,p,d,w,O,K){const ye={};for(const Fe of w)if(bt(g,d,Fe)&&!O[$(Fe)]){const _t=new Gt([],{});_t._sourceSegment=g,_t._segmentIndexShift="legacy"===K?g.segments.length:p.length,ye[$(Fe)]=_t}return Object.assign(Object.assign({},O),ye)}(g,p,d,w,g.children,O));return ye._sourceSegment=g,ye._segmentIndexShift=p.length,{segmentGroup:ye,slicedSegments:d}}const K=new Gt(g.segments,g.children);return K._sourceSegment=g,K._segmentIndexShift=p.length,{segmentGroup:K,slicedSegments:d}}function bt(g,p,d){return(!(g.hasChildren()||p.length>0)||"full"!==d.pathMatch)&&""===d.path}function Wt(g,p,d,w){return!!($(g)===w||w!==ae&&bt(p,d,g))&&("**"===g.path||b(p,g,d).matched)}function mn(g,p,d){return 0===p.length&&!g.children[d]}class Yn{constructor(p){this.segmentGroup=p||null}}class Un{constructor(p){this.urlTree=p}}function gn(g){return new U.y(p=>p.error(new Yn(g)))}function Ln(g){return new U.y(p=>p.error(new Un(g)))}function Gn(g){return new U.y(p=>p.error(new Error(`Only absolute redirects can have named outlets. redirectTo: '${g}'`)))}class yi{constructor(p,d,w,O,K){this.configLoader=d,this.urlSerializer=w,this.urlTree=O,this.config=K,this.allowRedirects=!0,this.ngModule=p.get(s.h0i)}apply(){const p=j(this.urlTree.root,[],[],this.config).segmentGroup,d=new Gt(p.segments,p.children);return this.expandSegmentGroup(this.ngModule,this.config,d,ae).pipe((0,pe.U)(K=>this.createUrlTree(Li(K),this.urlTree.queryParams,this.urlTree.fragment))).pipe((0,he.K)(K=>{if(K instanceof Un)return this.allowRedirects=!1,this.match(K.urlTree);throw K instanceof Yn?this.noMatchError(K):K}))}match(p){return this.expandSegmentGroup(this.ngModule,this.config,p.root,ae).pipe((0,pe.U)(O=>this.createUrlTree(Li(O),p.queryParams,p.fragment))).pipe((0,he.K)(O=>{throw O instanceof Yn?this.noMatchError(O):O}))}noMatchError(p){return new Error(`Cannot match any routes. URL Segment: '${p.segmentGroup}'`)}createUrlTree(p,d,w){const O=p.segments.length>0?new Gt([],{[ae]:p}):p;return new Sn(O,d,w)}expandSegmentGroup(p,d,w,O){return 0===w.segments.length&&w.hasChildren()?this.expandChildren(p,d,w).pipe((0,pe.U)(K=>new Gt([],K))):this.expandSegment(p,w,d,w.segments,O,!0)}expandChildren(p,d,w){const O=[];for(const K of Object.keys(w.children))"primary"===K?O.unshift(K):O.push(K);return(0,W.D)(O).pipe((0,we.b)(K=>{const ye=w.children[K],Fe=ht(d,K);return this.expandSegmentGroup(p,Fe,ye,K).pipe((0,pe.U)(_t=>({segment:_t,outlet:K})))}),(0,Ie.R)((K,ye)=>(K[ye.outlet]=ye.segment,K),{}),function(g,p){const d=arguments.length>=2;return w=>w.pipe(g?(0,Ke.h)((O,K)=>g(O,K,w)):Se.y,ut(1),d?st(p):We(()=>new le))}())}expandSegment(p,d,w,O,K,ye){return(0,W.D)(w).pipe((0,we.b)(Fe=>this.expandSegmentAgainstRoute(p,d,w,Fe,O,K,ye).pipe((0,he.K)(Nt=>{if(Nt instanceof Yn)return(0,x.of)(null);throw Nt}))),Oe(Fe=>!!Fe),(0,he.K)((Fe,_t)=>{if(Fe instanceof le||"EmptyError"===Fe.name){if(mn(d,O,K))return(0,x.of)(new Gt([],{}));throw new Yn(d)}throw Fe}))}expandSegmentAgainstRoute(p,d,w,O,K,ye,Fe){return Wt(O,d,K,ye)?void 0===O.redirectTo?this.matchSegmentAgainstRoute(p,d,O,K,ye):Fe&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(p,d,w,O,K,ye):gn(d):gn(d)}expandSegmentAgainstRouteUsingRedirect(p,d,w,O,K,ye){return"**"===O.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(p,w,O,ye):this.expandRegularSegmentAgainstRouteUsingRedirect(p,d,w,O,K,ye)}expandWildCardWithParamsAgainstRouteUsingRedirect(p,d,w,O){const K=this.applyRedirectCommands([],w.redirectTo,{});return w.redirectTo.startsWith("/")?Ln(K):this.lineralizeSegments(w,K).pipe((0,Ge.zg)(ye=>{const Fe=new Gt(ye,{});return this.expandSegment(p,Fe,d,ye,O,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(p,d,w,O,K,ye){const{matched:Fe,consumedSegments:_t,lastChild:Nt,positionalParamSegments:nn}=b(d,O,K);if(!Fe)return gn(d);const An=this.applyRedirectCommands(_t,O.redirectTo,nn);return O.redirectTo.startsWith("/")?Ln(An):this.lineralizeSegments(O,An).pipe((0,Ge.zg)(Qn=>this.expandSegment(p,d,w,Qn.concat(K.slice(Nt)),ye,!1)))}matchSegmentAgainstRoute(p,d,w,O,K){if("**"===w.path)return w.loadChildren?(w._loadedConfig?(0,x.of)(w._loadedConfig):this.configLoader.load(p.injector,w)).pipe((0,pe.U)(Qn=>(w._loadedConfig=Qn,new Gt(O,{})))):(0,x.of)(new Gt(O,{}));const{matched:ye,consumedSegments:Fe,lastChild:_t}=b(d,w,O);if(!ye)return gn(d);const Nt=O.slice(_t);return this.getChildConfig(p,w,O).pipe((0,Ge.zg)(An=>{const Qn=An.module,In=An.routes,{segmentGroup:Qr,slicedSegments:Dr}=j(d,Fe,Nt,In),cr=new Gt(Qr.segments,Qr.children);if(0===Dr.length&&cr.hasChildren())return this.expandChildren(Qn,In,cr).pipe((0,pe.U)(Go=>new Gt(Fe,Go)));if(0===In.length&&0===Dr.length)return(0,x.of)(new Gt(Fe,{}));const Sr=$(w)===K;return this.expandSegment(Qn,cr,In,Dr,Sr?ae:K,!0).pipe((0,pe.U)(zr=>new Gt(Fe.concat(zr.segments),zr.children)))}))}getChildConfig(p,d,w){return d.children?(0,x.of)(new Pi(d.children,p)):d.loadChildren?void 0!==d._loadedConfig?(0,x.of)(d._loadedConfig):this.runCanLoadGuards(p.injector,d,w).pipe((0,Ge.zg)(O=>{return O?this.configLoader.load(p.injector,d).pipe((0,pe.U)(K=>(d._loadedConfig=K,K))):(g=d,new U.y(p=>p.error(G(`Cannot load children because the guard of the route "path: '${g.path}'" returned false`))));var g})):(0,x.of)(new Pi([],p))}runCanLoadGuards(p,d,w){const O=d.canLoad;if(!O||0===O.length)return(0,x.of)(!0);const K=O.map(ye=>{const Fe=p.get(ye);let _t;if((g=Fe)&&Vi(g.canLoad))_t=Fe.canLoad(d,w);else{if(!Vi(Fe))throw new Error("Invalid CanLoad guard");_t=Fe(d,w)}var g;return Q(_t)});return(0,x.of)(K).pipe(Yi(),(0,Ve.b)(ye=>{if(!Bi(ye))return;const Fe=G(`Redirecting to "${this.urlSerializer.serialize(ye)}"`);throw Fe.url=ye,Fe}),(0,pe.U)(ye=>!0===ye))}lineralizeSegments(p,d){let w=[],O=d.root;for(;;){if(w=w.concat(O.segments),0===O.numberOfChildren)return(0,x.of)(w);if(O.numberOfChildren>1||!O.children[ae])return Gn(p.redirectTo);O=O.children[ae]}}applyRedirectCommands(p,d,w){return this.applyRedirectCreatreUrlTree(d,this.urlSerializer.parse(d),p,w)}applyRedirectCreatreUrlTree(p,d,w,O){const K=this.createSegmentGroup(p,d.root,w,O);return new Sn(K,this.createQueryParams(d.queryParams,this.urlTree.queryParams),d.fragment)}createQueryParams(p,d){const w={};return X(p,(O,K)=>{if("string"==typeof O&&O.startsWith(":")){const Fe=O.substring(1);w[K]=d[Fe]}else w[K]=O}),w}createSegmentGroup(p,d,w,O){const K=this.createSegments(p,d.segments,w,O);let ye={};return X(d.children,(Fe,_t)=>{ye[_t]=this.createSegmentGroup(p,Fe,w,O)}),new Gt(K,ye)}createSegments(p,d,w,O){return d.map(K=>K.path.startsWith(":")?this.findPosParam(p,K,O):this.findOrReturn(K,w))}findPosParam(p,d,w){const O=w[d.path.substring(1)];if(!O)throw new Error(`Cannot redirect to '${p}'. Cannot find '${d.path}'.`);return O}findOrReturn(p,d){let w=0;for(const O of d){if(O.path===p.path)return d.splice(w),O;w++}return p}}function Li(g){const p={};for(const w of Object.keys(g.children)){const K=Li(g.children[w]);(K.segments.length>0||K.hasChildren())&&(p[w]=K)}return function(g){if(1===g.numberOfChildren&&g.children[ae]){const p=g.children[ae];return new Gt(g.segments.concat(p.segments),p.children)}return g}(new Gt(g.segments,p))}class Kr{constructor(p){this.path=p,this.route=this.path[this.path.length-1]}}class Fr{constructor(p,d){this.component=p,this.route=d}}function Ps(g,p,d){const w=g._root;return po(w,p?p._root:null,d,[w.value])}function fo(g,p,d){const w=function(g){if(!g)return null;for(let p=g.parent;p;p=p.parent){const d=p.routeConfig;if(d&&d._loadedConfig)return d._loadedConfig}return null}(p);return(w?w.module.injector:d).get(g)}function po(g,p,d,w,O={canDeactivateChecks:[],canActivateChecks:[]}){const K=M(p);return g.children.forEach(ye=>{(function(g,p,d,w,O={canDeactivateChecks:[],canActivateChecks:[]}){const K=g.value,ye=p?p.value:null,Fe=d?d.getContext(g.value.outlet):null;if(ye&&K.routeConfig===ye.routeConfig){const _t=function(g,p,d){if("function"==typeof d)return d(g,p);switch(d){case"pathParamsChange":return!zn(g.url,p.url);case"pathParamsOrQueryParamsChange":return!zn(g.url,p.url)||!H(g.queryParams,p.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Hn(g,p)||!H(g.queryParams,p.queryParams);case"paramsChange":default:return!Hn(g,p)}}(ye,K,K.routeConfig.runGuardsAndResolvers);_t?O.canActivateChecks.push(new Kr(w)):(K.data=ye.data,K._resolvedData=ye._resolvedData),po(g,p,K.component?Fe?Fe.children:null:d,w,O),_t&&Fe&&Fe.outlet&&Fe.outlet.isActivated&&O.canDeactivateChecks.push(new Fr(Fe.outlet.component,ye))}else ye&&Vr(p,Fe,O),O.canActivateChecks.push(new Kr(w)),po(g,null,K.component?Fe?Fe.children:null:d,w,O)})(ye,K[ye.value.outlet],d,w.concat([ye.value]),O),delete K[ye.value.outlet]}),X(K,(ye,Fe)=>Vr(ye,d.getContext(Fe),O)),O}function Vr(g,p,d){const w=M(g),O=g.value;X(w,(K,ye)=>{Vr(K,O.component?p?p.children.getContext(ye):null:p,d)}),d.canDeactivateChecks.push(new Fr(O.component&&p&&p.outlet&&p.outlet.isActivated?p.outlet.component:null,O))}class R{}function ee(g){return new U.y(p=>p.error(g))}class Te{constructor(p,d,w,O,K,ye){this.rootComponentType=p,this.config=d,this.urlTree=w,this.url=O,this.paramsInheritanceStrategy=K,this.relativeLinkResolution=ye}recognize(){const p=j(this.urlTree.root,[],[],this.config.filter(ye=>void 0===ye.redirectTo),this.relativeLinkResolution).segmentGroup,d=this.processSegmentGroup(this.config,p,ae);if(null===d)return null;const w=new Vt([],Object.freeze({}),Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,{},ae,this.rootComponentType,null,this.urlTree.root,-1,{}),O=new Ut(w,d),K=new Kt(this.url,O);return this.inheritParamsAndData(K._root),K}inheritParamsAndData(p){const d=p.value,w=ot(d,this.paramsInheritanceStrategy);d.params=Object.freeze(w.params),d.data=Object.freeze(w.data),p.children.forEach(O=>this.inheritParamsAndData(O))}processSegmentGroup(p,d,w){return 0===d.segments.length&&d.hasChildren()?this.processChildren(p,d):this.processSegment(p,d,d.segments,w)}processChildren(p,d){const w=[];for(const K of Object.keys(d.children)){const ye=d.children[K],Fe=ht(p,K),_t=this.processSegmentGroup(Fe,ye,K);if(null===_t)return null;w.push(..._t)}const O=Yt(w);return O.sort((p,d)=>p.value.outlet===ae?-1:d.value.outlet===ae?1:p.value.outlet.localeCompare(d.value.outlet)),O}processSegment(p,d,w,O){for(const K of p){const ye=this.processSegmentAgainstRoute(K,d,w,O);if(null!==ye)return ye}return mn(d,w,O)?[]:null}processSegmentAgainstRoute(p,d,w,O){if(p.redirectTo||!Wt(p,d,w,O))return null;let K,ye=[],Fe=[];if("**"===p.path){const In=w.length>0?ge(w).parameters:{};K=new Vt(w,In,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,an(p),$(p),p.component,p,On(d),Xt(d)+w.length,Dn(p))}else{const In=b(d,p,w);if(!In.matched)return null;ye=In.consumedSegments,Fe=w.slice(In.lastChild),K=new Vt(ye,In.parameters,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,an(p),$(p),p.component,p,On(d),Xt(d)+ye.length,Dn(p))}const _t=(g=p).children?g.children:g.loadChildren?g._loadedConfig.routes:[],{segmentGroup:Nt,slicedSegments:nn}=j(d,ye,Fe,_t.filter(In=>void 0===In.redirectTo),this.relativeLinkResolution);var g;if(0===nn.length&&Nt.hasChildren()){const In=this.processChildren(_t,Nt);return null===In?null:[new Ut(K,In)]}if(0===_t.length&&0===nn.length)return[new Ut(K,[])];const An=$(p)===O,Qn=this.processSegment(_t,Nt,nn,An?ae:O);return null===Qn?null:[new Ut(K,Qn)]}}function At(g){const p=g.value.routeConfig;return p&&""===p.path&&void 0===p.redirectTo}function Yt(g){const p=[],d=new Set;for(const w of g){if(!At(w)){p.push(w);continue}const O=p.find(K=>w.value.routeConfig===K.value.routeConfig);void 0!==O?(O.children.push(...w.children),d.add(O)):p.push(w)}for(const w of d){const O=Yt(w.children);p.push(new Ut(w.value,O))}return p.filter(w=>!d.has(w))}function On(g){let p=g;for(;p._sourceSegment;)p=p._sourceSegment;return p}function Xt(g){let p=g,d=p._segmentIndexShift?p._segmentIndexShift:0;for(;p._sourceSegment;)p=p._sourceSegment,d+=p._segmentIndexShift?p._segmentIndexShift:0;return d-1}function an(g){return g.data||{}}function Dn(g){return g.resolve||{}}function Ri(g){return(0,Ue.w)(p=>{const d=g(p);return d?(0,W.D)(d).pipe((0,pe.U)(()=>p)):(0,x.of)(p)})}class sr extends class{shouldDetach(p){return!1}store(p,d){}shouldAttach(p){return!1}retrieve(p){return null}shouldReuseRoute(p,d){return p.routeConfig===d.routeConfig}}{}const Oi=new s.OlP("ROUTES");class Uo{constructor(p,d,w,O){this.loader=p,this.compiler=d,this.onLoadStartListener=w,this.onLoadEndListener=O}load(p,d){if(d._loader$)return d._loader$;this.onLoadStartListener&&this.onLoadStartListener(d);const O=this.loadModuleFactory(d.loadChildren).pipe((0,pe.U)(K=>{this.onLoadEndListener&&this.onLoadEndListener(d);const ye=K.create(p);return new Pi(Je(ye.injector.get(Oi,void 0,s.XFs.Self|s.XFs.Optional)).map(v),ye)}),(0,he.K)(K=>{throw d._loader$=void 0,K}));return d._loader$=new be.c(O,()=>new je.xQ).pipe((0,ft.x)()),d._loader$}loadModuleFactory(p){return"string"==typeof p?(0,W.D)(this.loader.load(p)):Q(p()).pipe((0,Ge.zg)(d=>d instanceof s.YKP?(0,x.of)(d):(0,W.D)(this.compiler.compileModuleAsync(d))))}}class go{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.children=new Kn,this.attachRef=null}}class Kn{constructor(){this.contexts=new Map}onChildOutletCreated(p,d){const w=this.getOrCreateContext(p);w.outlet=d,this.contexts.set(p,w)}onChildOutletDestroyed(p){const d=this.getContext(p);d&&(d.outlet=null)}onOutletDeactivated(){const p=this.contexts;return this.contexts=new Map,p}onOutletReAttached(p){this.contexts=p}getOrCreateContext(p){let d=this.getContext(p);return d||(d=new go,this.contexts.set(p,d)),d}getContext(p){return this.contexts.get(p)||null}}class ri{shouldProcessUrl(p){return!0}extract(p){return p}merge(p,d){return p}}function Bt(g){throw g}function Zt(g,p,d){return p.parse("/")}function hn(g,p){return(0,x.of)(null)}const Vn={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},pi={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let ti=(()=>{class g{constructor(d,w,O,K,ye,Fe,_t,Nt){this.rootComponentType=d,this.urlSerializer=w,this.rootContexts=O,this.location=K,this.config=Nt,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.disposed=!1,this.lastLocationChangeInfo=null,this.navigationId=0,this.currentPageId=0,this.isNgZoneEnabled=!1,this.events=new je.xQ,this.errorHandler=Bt,this.malformedUriErrorHandler=Zt,this.navigated=!1,this.lastSuccessfulId=-1,this.hooks={beforePreactivation:hn,afterPreactivation:hn},this.urlHandlingStrategy=new ri,this.routeReuseStrategy=new sr,this.onSameUrlNavigation="ignore",this.paramsInheritanceStrategy="emptyOnly",this.urlUpdateStrategy="deferred",this.relativeLinkResolution="corrected",this.canceledNavigationResolution="replace",this.ngModule=ye.get(s.h0i),this.console=ye.get(s.c2e);const Qn=ye.get(s.R0b);this.isNgZoneEnabled=Qn instanceof s.R0b&&s.R0b.isInAngularZone(),this.resetConfig(Nt),this.currentUrlTree=new Sn(new Gt([],{}),{},null),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.configLoader=new Uo(Fe,_t,In=>this.triggerEvent(new cn(In)),In=>this.triggerEvent(new kt(In))),this.routerState=_(this.currentUrlTree,this.rootComponentType),this.transitions=new S.X({id:0,targetPageId:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}get browserPageId(){var d;return null===(d=this.location.getState())||void 0===d?void 0:d.\u0275routerPageId}setupNavigations(d){const w=this.events;return d.pipe((0,Ke.h)(O=>0!==O.id),(0,pe.U)(O=>Object.assign(Object.assign({},O),{extractedUrl:this.urlHandlingStrategy.extract(O.rawUrl)})),(0,Ue.w)(O=>{let K=!1,ye=!1;return(0,x.of)(O).pipe((0,Ve.b)(Fe=>{this.currentNavigation={id:Fe.id,initialUrl:Fe.currentRawUrl,extractedUrl:Fe.extractedUrl,trigger:Fe.source,extras:Fe.extras,previousNavigation:this.lastSuccessfulNavigation?Object.assign(Object.assign({},this.lastSuccessfulNavigation),{previousNavigation:null}):null}}),(0,Ue.w)(Fe=>{const _t=!this.navigated||Fe.extractedUrl.toString()!==this.browserUrlTree.toString();if(("reload"===this.onSameUrlNavigation||_t)&&this.urlHandlingStrategy.shouldProcessUrl(Fe.rawUrl))return(0,x.of)(Fe).pipe((0,Ue.w)(nn=>{const An=this.transitions.getValue();return w.next(new lt(nn.id,this.serializeUrl(nn.extractedUrl),nn.source,nn.restoredState)),An!==this.transitions.getValue()?V.E:Promise.resolve(nn)}),function(g,p,d,w){return(0,Ue.w)(O=>function(g,p,d,w,O){return new yi(g,p,d,w,O).apply()}(g,p,d,O.extractedUrl,w).pipe((0,pe.U)(K=>Object.assign(Object.assign({},O),{urlAfterRedirects:K}))))}(this.ngModule.injector,this.configLoader,this.urlSerializer,this.config),(0,Ve.b)(nn=>{this.currentNavigation=Object.assign(Object.assign({},this.currentNavigation),{finalUrl:nn.urlAfterRedirects})}),function(g,p,d,w,O){return(0,Ge.zg)(K=>function(g,p,d,w,O="emptyOnly",K="legacy"){try{const ye=new Te(g,p,d,w,O,K).recognize();return null===ye?ee(new R):(0,x.of)(ye)}catch(ye){return ee(ye)}}(g,p,K.urlAfterRedirects,d(K.urlAfterRedirects),w,O).pipe((0,pe.U)(ye=>Object.assign(Object.assign({},K),{targetSnapshot:ye}))))}(this.rootComponentType,this.config,nn=>this.serializeUrl(nn),this.paramsInheritanceStrategy,this.relativeLinkResolution),(0,Ve.b)(nn=>{"eager"===this.urlUpdateStrategy&&(nn.extras.skipLocationChange||this.setBrowserUrl(nn.urlAfterRedirects,nn),this.browserUrlTree=nn.urlAfterRedirects);const An=new en(nn.id,this.serializeUrl(nn.extractedUrl),this.serializeUrl(nn.urlAfterRedirects),nn.targetSnapshot);w.next(An)}));if(_t&&this.rawUrlTree&&this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)){const{id:An,extractedUrl:Qn,source:In,restoredState:Qr,extras:Dr}=Fe,cr=new lt(An,this.serializeUrl(Qn),In,Qr);w.next(cr);const Sr=_(Qn,this.rootComponentType).snapshot;return(0,x.of)(Object.assign(Object.assign({},Fe),{targetSnapshot:Sr,urlAfterRedirects:Qn,extras:Object.assign(Object.assign({},Dr),{skipLocationChange:!1,replaceUrl:!1})}))}return this.rawUrlTree=Fe.rawUrl,this.browserUrlTree=Fe.urlAfterRedirects,Fe.resolve(null),V.E}),Ri(Fe=>{const{targetSnapshot:_t,id:Nt,extractedUrl:nn,rawUrl:An,extras:{skipLocationChange:Qn,replaceUrl:In}}=Fe;return this.hooks.beforePreactivation(_t,{navigationId:Nt,appliedUrlTree:nn,rawUrlTree:An,skipLocationChange:!!Qn,replaceUrl:!!In})}),(0,Ve.b)(Fe=>{const _t=new wn(Fe.id,this.serializeUrl(Fe.extractedUrl),this.serializeUrl(Fe.urlAfterRedirects),Fe.targetSnapshot);this.triggerEvent(_t)}),(0,pe.U)(Fe=>Object.assign(Object.assign({},Fe),{guards:Ps(Fe.targetSnapshot,Fe.currentSnapshot,this.rootContexts)})),function(g,p){return(0,Ge.zg)(d=>{const{targetSnapshot:w,currentSnapshot:O,guards:{canActivateChecks:K,canDeactivateChecks:ye}}=d;return 0===ye.length&&0===K.length?(0,x.of)(Object.assign(Object.assign({},d),{guardsResult:!0})):function(g,p,d,w){return(0,W.D)(g).pipe((0,Ge.zg)(O=>function(g,p,d,w,O){const K=p&&p.routeConfig?p.routeConfig.canDeactivate:null;if(!K||0===K.length)return(0,x.of)(!0);const ye=K.map(Fe=>{const _t=fo(Fe,p,O);let Nt;if(function(g){return g&&Vi(g.canDeactivate)}(_t))Nt=Q(_t.canDeactivate(g,p,d,w));else{if(!Vi(_t))throw new Error("Invalid CanDeactivate guard");Nt=Q(_t(g,p,d,w))}return Nt.pipe(Oe())});return(0,x.of)(ye).pipe(Yi())}(O.component,O.route,d,p,w)),Oe(O=>!0!==O,!0))}(ye,w,O,g).pipe((0,Ge.zg)(Fe=>Fe&&function(g){return"boolean"==typeof g}(Fe)?function(g,p,d,w){return(0,W.D)(p).pipe((0,we.b)(O=>(0,F.z)(function(g,p){return null!==g&&p&&p(new bn(g)),(0,x.of)(!0)}(O.route.parent,w),function(g,p){return null!==g&&p&&p(new xe(g)),(0,x.of)(!0)}(O.route,w),function(g,p,d){const w=p[p.length-1],K=p.slice(0,p.length-1).reverse().map(ye=>function(g){const p=g.routeConfig?g.routeConfig.canActivateChild:null;return p&&0!==p.length?{node:g,guards:p}:null}(ye)).filter(ye=>null!==ye).map(ye=>(0,Y.P)(()=>{const Fe=ye.guards.map(_t=>{const Nt=fo(_t,ye.node,d);let nn;if(function(g){return g&&Vi(g.canActivateChild)}(Nt))nn=Q(Nt.canActivateChild(w,g));else{if(!Vi(Nt))throw new Error("Invalid CanActivateChild guard");nn=Q(Nt(w,g))}return nn.pipe(Oe())});return(0,x.of)(Fe).pipe(Yi())}));return(0,x.of)(K).pipe(Yi())}(g,O.path,d),function(g,p,d){const w=p.routeConfig?p.routeConfig.canActivate:null;if(!w||0===w.length)return(0,x.of)(!0);const O=w.map(K=>(0,Y.P)(()=>{const ye=fo(K,p,d);let Fe;if(function(g){return g&&Vi(g.canActivate)}(ye))Fe=Q(ye.canActivate(p,g));else{if(!Vi(ye))throw new Error("Invalid CanActivate guard");Fe=Q(ye(p,g))}return Fe.pipe(Oe())}));return(0,x.of)(O).pipe(Yi())}(g,O.route,d))),Oe(O=>!0!==O,!0))}(w,K,g,p):(0,x.of)(Fe)),(0,pe.U)(Fe=>Object.assign(Object.assign({},d),{guardsResult:Fe})))})}(this.ngModule.injector,Fe=>this.triggerEvent(Fe)),(0,Ve.b)(Fe=>{if(Bi(Fe.guardsResult)){const Nt=G(`Redirecting to "${this.serializeUrl(Fe.guardsResult)}"`);throw Nt.url=Fe.guardsResult,Nt}const _t=new It(Fe.id,this.serializeUrl(Fe.extractedUrl),this.serializeUrl(Fe.urlAfterRedirects),Fe.targetSnapshot,!!Fe.guardsResult);this.triggerEvent(_t)}),(0,Ke.h)(Fe=>!!Fe.guardsResult||(this.restoreHistory(Fe),this.cancelNavigationTransition(Fe,""),!1)),Ri(Fe=>{if(Fe.guards.canActivateChecks.length)return(0,x.of)(Fe).pipe((0,Ve.b)(_t=>{const Nt=new tn(_t.id,this.serializeUrl(_t.extractedUrl),this.serializeUrl(_t.urlAfterRedirects),_t.targetSnapshot);this.triggerEvent(Nt)}),(0,Ue.w)(_t=>{let Nt=!1;return(0,x.of)(_t).pipe(function(g,p){return(0,Ge.zg)(d=>{const{targetSnapshot:w,guards:{canActivateChecks:O}}=d;if(!O.length)return(0,x.of)(d);let K=0;return(0,W.D)(O).pipe((0,we.b)(ye=>function(g,p,d,w){return function(g,p,d,w){const O=Object.keys(g);if(0===O.length)return(0,x.of)({});const K={};return(0,W.D)(O).pipe((0,Ge.zg)(ye=>function(g,p,d,w){const O=fo(g,p,w);return Q(O.resolve?O.resolve(p,d):O(p,d))}(g[ye],p,d,w).pipe((0,Ve.b)(Fe=>{K[ye]=Fe}))),ut(1),(0,Ge.zg)(()=>Object.keys(K).length===O.length?(0,x.of)(K):V.E))}(g._resolve,g,p,w).pipe((0,pe.U)(K=>(g._resolvedData=K,g.data=Object.assign(Object.assign({},g.data),ot(g,d).resolve),null)))}(ye.route,w,g,p)),(0,Ve.b)(()=>K++),ut(1),(0,Ge.zg)(ye=>K===O.length?(0,x.of)(d):V.E))})}(this.paramsInheritanceStrategy,this.ngModule.injector),(0,Ve.b)({next:()=>Nt=!0,complete:()=>{Nt||(this.restoreHistory(_t),this.cancelNavigationTransition(_t,"At least one route resolver didn't emit any value."))}}))}),(0,Ve.b)(_t=>{const Nt=new rn(_t.id,this.serializeUrl(_t.extractedUrl),this.serializeUrl(_t.urlAfterRedirects),_t.targetSnapshot);this.triggerEvent(Nt)}))}),Ri(Fe=>{const{targetSnapshot:_t,id:Nt,extractedUrl:nn,rawUrl:An,extras:{skipLocationChange:Qn,replaceUrl:In}}=Fe;return this.hooks.afterPreactivation(_t,{navigationId:Nt,appliedUrlTree:nn,rawUrlTree:An,skipLocationChange:!!Qn,replaceUrl:!!In})}),(0,pe.U)(Fe=>{const _t=function(g,p,d){const w=bi(g,p._root,d?d._root:void 0);return new k(w,p)}(this.routeReuseStrategy,Fe.targetSnapshot,Fe.currentRouterState);return Object.assign(Object.assign({},Fe),{targetRouterState:_t})}),(0,Ve.b)(Fe=>{this.currentUrlTree=Fe.urlAfterRedirects,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,Fe.rawUrl),this.routerState=Fe.targetRouterState,"deferred"===this.urlUpdateStrategy&&(Fe.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,Fe),this.browserUrlTree=Fe.urlAfterRedirects)}),((g,p,d)=>(0,pe.U)(w=>(new pr(p,w.targetRouterState,w.currentRouterState,d).activate(g),w)))(this.rootContexts,this.routeReuseStrategy,Fe=>this.triggerEvent(Fe)),(0,Ve.b)({next(){K=!0},complete(){K=!0}}),(0,Tt.x)(()=>{if(!K&&!ye){const Fe=`Navigation ID ${O.id} is not equal to the current navigation id ${this.navigationId}`;"replace"===this.canceledNavigationResolution?(this.restoreHistory(O),this.cancelNavigationTransition(O,Fe)):this.cancelNavigationTransition(O,Fe)}this.currentNavigation=null}),(0,he.K)(Fe=>{if(ye=!0,function(g){return g&&g[N]}(Fe)){const _t=Bi(Fe.url);_t||(this.navigated=!0,this.restoreHistory(O,!0));const Nt=new Ht(O.id,this.serializeUrl(O.extractedUrl),Fe.message);w.next(Nt),_t?setTimeout(()=>{const nn=this.urlHandlingStrategy.merge(Fe.url,this.rawUrlTree);this.scheduleNavigation(nn,"imperative",null,{skipLocationChange:O.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy},{resolve:O.resolve,reject:O.reject,promise:O.promise})},0):O.resolve(!1)}else{this.restoreHistory(O,!0);const _t=new un(O.id,this.serializeUrl(O.extractedUrl),Fe);w.next(_t);try{O.resolve(this.errorHandler(Fe))}catch(Nt){O.reject(Nt)}}return V.E}))}))}resetRootComponentType(d){this.rootComponentType=d,this.routerState.root.component=this.rootComponentType}getTransition(){const d=this.transitions.value;return d.urlAfterRedirects=this.browserUrlTree,d}setTransition(d){this.transitions.next(Object.assign(Object.assign({},this.getTransition()),d))}initialNavigation(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(d=>{const w=this.extractLocationChangeInfoFromEvent(d);this.shouldScheduleNavigation(this.lastLocationChangeInfo,w)&&setTimeout(()=>{const{source:O,state:K,urlTree:ye}=w,Fe={replaceUrl:!0};if(K){const _t=Object.assign({},K);delete _t.navigationId,delete _t.\u0275routerPageId,0!==Object.keys(_t).length&&(Fe.state=_t)}this.scheduleNavigation(ye,O,K,Fe)},0),this.lastLocationChangeInfo=w}))}extractLocationChangeInfoFromEvent(d){var w;return{source:"popstate"===d.type?"popstate":"hashchange",urlTree:this.parseUrl(d.url),state:(null===(w=d.state)||void 0===w?void 0:w.navigationId)?d.state:null,transitionId:this.getTransition().id}}shouldScheduleNavigation(d,w){if(!d)return!0;const O=w.urlTree.toString()===d.urlTree.toString();return w.transitionId!==d.transitionId||!O||!("hashchange"===w.source&&"popstate"===d.source||"popstate"===w.source&&"hashchange"===d.source)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.currentNavigation}triggerEvent(d){this.events.next(d)}resetConfig(d){di(d),this.config=d.map(v),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.transitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0}createUrlTree(d,w={}){const{relativeTo:O,queryParams:K,fragment:ye,queryParamsHandling:Fe,preserveFragment:_t}=w,Nt=O||this.routerState.root,nn=_t?this.currentUrlTree.fragment:ye;let An=null;switch(Fe){case"merge":An=Object.assign(Object.assign({},this.currentUrlTree.queryParams),K);break;case"preserve":An=this.currentUrlTree.queryParams;break;default:An=K||null}return null!==An&&(An=this.removeEmptyProps(An)),function(g,p,d,w,O){if(0===d.length)return dr(p.root,p.root,p,w,O);const K=function(g){if("string"==typeof g[0]&&1===g.length&&"/"===g[0])return new _r(!0,0,g);let p=0,d=!1;const w=g.reduce((O,K,ye)=>{if("object"==typeof K&&null!=K){if(K.outlets){const Fe={};return X(K.outlets,(_t,Nt)=>{Fe[Nt]="string"==typeof _t?_t.split("/"):_t}),[...O,{outlets:Fe}]}if(K.segmentPath)return[...O,K.segmentPath]}return"string"!=typeof K?[...O,K]:0===ye?(K.split("/").forEach((Fe,_t)=>{0==_t&&"."===Fe||(0==_t&&""===Fe?d=!0:".."===Fe?p++:""!=Fe&&O.push(Fe))}),O):[...O,K]},[]);return new _r(d,p,w)}(d);if(K.toRoot())return dr(p.root,new Gt([],{}),p,w,O);const ye=function(g,p,d){if(g.isAbsolute)return new yr(p.root,!0,0);if(-1===d.snapshot._lastPathIndex){const K=d.snapshot._urlSegment;return new yr(K,K===p.root,0)}const w=hr(g.commands[0])?0:1;return function(g,p,d){let w=g,O=p,K=d;for(;K>O;){if(K-=O,w=w.parent,!w)throw new Error("Invalid number of '../'");O=w.segments.length}return new yr(w,!1,O-K)}(d.snapshot._urlSegment,d.snapshot._lastPathIndex+w,g.numberOfDoubleDots)}(K,p,g),Fe=ye.processChildren?Mr(ye.segmentGroup,ye.index,K.commands):Xi(ye.segmentGroup,ye.index,K.commands);return dr(ye.segmentGroup,Fe,p,w,O)}(Nt,this.currentUrlTree,d,An,null!=nn?nn:null)}navigateByUrl(d,w={skipLocationChange:!1}){const O=Bi(d)?d:this.parseUrl(d),K=this.urlHandlingStrategy.merge(O,this.rawUrlTree);return this.scheduleNavigation(K,"imperative",null,w)}navigate(d,w={skipLocationChange:!1}){return function(g){for(let p=0;p<g.length;p++){const d=g[p];if(null==d)throw new Error(`The requested path contains ${d} segment at index ${p}`)}}(d),this.navigateByUrl(this.createUrlTree(d,w),w)}serializeUrl(d){return this.urlSerializer.serialize(d)}parseUrl(d){let w;try{w=this.urlSerializer.parse(d)}catch(O){w=this.malformedUriErrorHandler(O,this.urlSerializer,d)}return w}isActive(d,w){let O;if(O=!0===w?Object.assign({},Vn):!1===w?Object.assign({},pi):w,Bi(d))return de(this.currentUrlTree,d,O);const K=this.parseUrl(d);return de(this.currentUrlTree,K,O)}removeEmptyProps(d){return Object.keys(d).reduce((w,O)=>{const K=d[O];return null!=K&&(w[O]=K),w},{})}processNavigations(){this.navigations.subscribe(d=>{this.navigated=!0,this.lastSuccessfulId=d.id,this.currentPageId=d.targetPageId,this.events.next(new Dt(d.id,this.serializeUrl(d.extractedUrl),this.serializeUrl(this.currentUrlTree))),this.lastSuccessfulNavigation=this.currentNavigation,d.resolve(!0)},d=>{this.console.warn("Unhandled Navigation Error: ")})}scheduleNavigation(d,w,O,K,ye){var Fe,_t;if(this.disposed)return Promise.resolve(!1);const Nt=this.getTransition(),nn="imperative"!==w&&"imperative"===(null==Nt?void 0:Nt.source),In=(this.lastSuccessfulId===Nt.id||this.currentNavigation?Nt.rawUrl:Nt.urlAfterRedirects).toString()===d.toString();if(nn&&In)return Promise.resolve(!0);let Qr,Dr,cr;ye?(Qr=ye.resolve,Dr=ye.reject,cr=ye.promise):cr=new Promise((zr,Go)=>{Qr=zr,Dr=Go});const Sr=++this.navigationId;let Co;return"computed"===this.canceledNavigationResolution?(0===this.currentPageId&&(O=this.location.getState()),Co=O&&O.\u0275routerPageId?O.\u0275routerPageId:K.replaceUrl||K.skipLocationChange?null!==(Fe=this.browserPageId)&&void 0!==Fe?Fe:0:(null!==(_t=this.browserPageId)&&void 0!==_t?_t:0)+1):Co=0,this.setTransition({id:Sr,targetPageId:Co,source:w,restoredState:O,currentUrlTree:this.currentUrlTree,currentRawUrl:this.rawUrlTree,rawUrl:d,extras:K,resolve:Qr,reject:Dr,promise:cr,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),cr.catch(zr=>Promise.reject(zr))}setBrowserUrl(d,w){const O=this.urlSerializer.serialize(d),K=Object.assign(Object.assign({},w.extras.state),this.generateNgRouterState(w.id,w.targetPageId));this.location.isCurrentPathEqualTo(O)||w.extras.replaceUrl?this.location.replaceState(O,"",K):this.location.go(O,"",K)}restoreHistory(d,w=!1){var O,K;if("computed"===this.canceledNavigationResolution){const ye=this.currentPageId-d.targetPageId;"popstate"!==d.source&&"eager"!==this.urlUpdateStrategy&&this.currentUrlTree!==(null===(O=this.currentNavigation)||void 0===O?void 0:O.finalUrl)||0===ye?this.currentUrlTree===(null===(K=this.currentNavigation)||void 0===K?void 0:K.finalUrl)&&0===ye&&(this.resetState(d),this.browserUrlTree=d.currentUrlTree,this.resetUrlToCurrentUrlTree()):this.location.historyGo(ye)}else"replace"===this.canceledNavigationResolution&&(w&&this.resetState(d),this.resetUrlToCurrentUrlTree())}resetState(d){this.routerState=d.currentRouterState,this.currentUrlTree=d.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,d.rawUrl)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}cancelNavigationTransition(d,w){const O=new Ht(d.id,this.serializeUrl(d.extractedUrl),w);this.triggerEvent(O),d.resolve(!1)}generateNgRouterState(d,w){return"computed"===this.canceledNavigationResolution?{navigationId:d,\u0275routerPageId:w}:{navigationId:d}}}return g.\u0275fac=function(d){return new(d||g)(s.LFG(s.DyG),s.LFG(Wn),s.LFG(Kn),s.LFG(c.Ye),s.LFG(s.zs3),s.LFG(s.v3s),s.LFG(s.Sil),s.LFG(void 0))},g.\u0275prov=s.Yz7({token:g,factory:g.\u0275fac}),g})(),Ai=(()=>{class g{constructor(d,w,O,K,ye){this.router=d,this.route=w,this.commands=[],this.onChanges=new je.xQ,null==O&&K.setAttribute(ye.nativeElement,"tabindex","0")}ngOnChanges(d){this.onChanges.next(this)}set routerLink(d){this.commands=null!=d?Array.isArray(d)?d:[d]:[]}onClick(){const d={skipLocationChange:Er(this.skipLocationChange),replaceUrl:Er(this.replaceUrl),state:this.state};return this.router.navigateByUrl(this.urlTree,d),!0}get urlTree(){return this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:Er(this.preserveFragment)})}}return g.\u0275fac=function(d){return new(d||g)(s.Y36(ti),s.Y36(Ye),s.$8M("tabindex"),s.Y36(s.Qsj),s.Y36(s.SBq))},g.\u0275dir=s.lG2({type:g,selectors:[["","routerLink","",5,"a",5,"area"]],hostBindings:function(d,w){1&d&&s.NdJ("click",function(){return w.onClick()})},inputs:{routerLink:"routerLink",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",preserveFragment:"preserveFragment",skipLocationChange:"skipLocationChange",replaceUrl:"replaceUrl",state:"state",relativeTo:"relativeTo"},features:[s.TTD]}),g})(),$n=(()=>{class g{constructor(d,w,O){this.router=d,this.route=w,this.locationStrategy=O,this.commands=[],this.onChanges=new je.xQ,this.subscription=d.events.subscribe(K=>{K instanceof Dt&&this.updateTargetUrlAndHref()})}set routerLink(d){this.commands=null!=d?Array.isArray(d)?d:[d]:[]}ngOnChanges(d){this.updateTargetUrlAndHref(),this.onChanges.next(this)}ngOnDestroy(){this.subscription.unsubscribe()}onClick(d,w,O,K,ye){if(0!==d||w||O||K||ye||"string"==typeof this.target&&"_self"!=this.target)return!0;const Fe={skipLocationChange:Er(this.skipLocationChange),replaceUrl:Er(this.replaceUrl),state:this.state};return this.router.navigateByUrl(this.urlTree,Fe),!1}updateTargetUrlAndHref(){this.href=this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree))}get urlTree(){return this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:Er(this.preserveFragment)})}}return g.\u0275fac=function(d){return new(d||g)(s.Y36(ti),s.Y36(Ye),s.Y36(c.S$))},g.\u0275dir=s.lG2({type:g,selectors:[["a","routerLink",""],["area","routerLink",""]],hostVars:2,hostBindings:function(d,w){1&d&&s.NdJ("click",function(K){return w.onClick(K.button,K.ctrlKey,K.shiftKey,K.altKey,K.metaKey)}),2&d&&(s.Ikx("href",w.href,s.LSH),s.uIk("target",w.target))},inputs:{routerLink:"routerLink",target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",preserveFragment:"preserveFragment",skipLocationChange:"skipLocationChange",replaceUrl:"replaceUrl",state:"state",relativeTo:"relativeTo"},features:[s.TTD]}),g})();function Er(g){return""===g||!!g}let wr=(()=>{class g{constructor(d,w,O,K,ye){this.parentContexts=d,this.location=w,this.resolver=O,this.changeDetector=ye,this.activated=null,this._activatedRoute=null,this.activateEvents=new s.vpe,this.deactivateEvents=new s.vpe,this.name=K||ae,d.onChildOutletCreated(this.name,this)}ngOnDestroy(){this.parentContexts.onChildOutletDestroyed(this.name)}ngOnInit(){if(!this.activated){const d=this.parentContexts.getContext(this.name);d&&d.route&&(d.attachRef?this.attach(d.attachRef,d.route):this.activateWith(d.route,d.resolver||null))}}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Error("Outlet is not activated");return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Error("Outlet is not activated");return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Error("Outlet is not activated");this.location.detach();const d=this.activated;return this.activated=null,this._activatedRoute=null,d}attach(d,w){this.activated=d,this._activatedRoute=w,this.location.insert(d.hostView)}deactivate(){if(this.activated){const d=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(d)}}activateWith(d,w){if(this.isActivated)throw new Error("Cannot activate an already activated outlet");this._activatedRoute=d;const ye=(w=w||this.resolver).resolveComponentFactory(d._futureSnapshot.routeConfig.component),Fe=this.parentContexts.getOrCreateContext(this.name).children,_t=new Gi(d,Fe,this.location.injector);this.activated=this.location.createComponent(ye,this.location.length,_t),this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}return g.\u0275fac=function(d){return new(d||g)(s.Y36(Kn),s.Y36(s.s_b),s.Y36(s._Vd),s.$8M("name"),s.Y36(s.sBO))},g.\u0275dir=s.lG2({type:g,selectors:[["router-outlet"]],outputs:{activateEvents:"activate",deactivateEvents:"deactivate"},exportAs:["outlet"]}),g})();class Gi{constructor(p,d,w){this.route=p,this.childContexts=d,this.parent=w}get(p,d){return p===Ye?this.route:p===Kn?this.childContexts:this.parent.get(p,d)}}class ji{}class Fo{preload(p,d){return d().pipe((0,he.K)(()=>(0,x.of)(null)))}}class Sa{preload(p,d){return(0,x.of)(null)}}let Vo=(()=>{class g{constructor(d,w,O,K,ye){this.router=d,this.injector=K,this.preloadingStrategy=ye,this.loader=new Uo(w,O,Nt=>d.triggerEvent(new cn(Nt)),Nt=>d.triggerEvent(new kt(Nt)))}setUpPreloading(){this.subscription=this.router.events.pipe((0,Ke.h)(d=>d instanceof Dt),(0,we.b)(()=>this.preload())).subscribe(()=>{})}preload(){const d=this.injector.get(s.h0i);return this.processRoutes(d,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(d,w){const O=[];for(const K of w)if(K.loadChildren&&!K.canLoad&&K._loadedConfig){const ye=K._loadedConfig;O.push(this.processRoutes(ye.module,ye.routes))}else K.loadChildren&&!K.canLoad?O.push(this.preloadConfig(d,K)):K.children&&O.push(this.processRoutes(d,K.children));return(0,W.D)(O).pipe((0,rt.J)(),(0,pe.U)(K=>{}))}preloadConfig(d,w){return this.preloadingStrategy.preload(w,()=>(w._loadedConfig?(0,x.of)(w._loadedConfig):this.loader.load(d.injector,w)).pipe((0,Ge.zg)(K=>(w._loadedConfig=K,this.processRoutes(K.module,K.routes)))))}}return g.\u0275fac=function(d){return new(d||g)(s.LFG(ti),s.LFG(s.v3s),s.LFG(s.Sil),s.LFG(s.zs3),s.LFG(ji))},g.\u0275prov=s.Yz7({token:g,factory:g.\u0275fac}),g})(),$o=(()=>{class g{constructor(d,w,O={}){this.router=d,this.viewportScroller=w,this.options=O,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},O.scrollPositionRestoration=O.scrollPositionRestoration||"disabled",O.anchorScrolling=O.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.router.events.subscribe(d=>{d instanceof lt?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=d.navigationTrigger,this.restoredId=d.restoredState?d.restoredState.navigationId:0):d instanceof Dt&&(this.lastId=d.id,this.scheduleScrollEvent(d,this.router.parseUrl(d.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.router.events.subscribe(d=>{d instanceof Ct&&(d.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(d.position):d.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(d.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(d,w){this.router.triggerEvent(new Ct(d,"popstate"===this.lastSource?this.store[this.restoredId]:null,w))}ngOnDestroy(){this.routerEventsSubscription&&this.routerEventsSubscription.unsubscribe(),this.scrollEventsSubscription&&this.scrollEventsSubscription.unsubscribe()}}return g.\u0275fac=function(d){return new(d||g)(s.LFG(ti),s.LFG(c.EM),s.LFG(void 0))},g.\u0275prov=s.Yz7({token:g,factory:g.\u0275fac}),g})();const vo=new s.OlP("ROUTER_CONFIGURATION"),Tc=new s.OlP("ROUTER_FORROOT_GUARD"),Wo=[c.Ye,{provide:Wn,useClass:pn},{provide:ti,useFactory:function(g,p,d,w,O,K,ye,Fe={},_t,Nt){const nn=new ti(null,g,p,d,w,O,K,Je(ye));return _t&&(nn.urlHandlingStrategy=_t),Nt&&(nn.routeReuseStrategy=Nt),function(g,p){g.errorHandler&&(p.errorHandler=g.errorHandler),g.malformedUriErrorHandler&&(p.malformedUriErrorHandler=g.malformedUriErrorHandler),g.onSameUrlNavigation&&(p.onSameUrlNavigation=g.onSameUrlNavigation),g.paramsInheritanceStrategy&&(p.paramsInheritanceStrategy=g.paramsInheritanceStrategy),g.relativeLinkResolution&&(p.relativeLinkResolution=g.relativeLinkResolution),g.urlUpdateStrategy&&(p.urlUpdateStrategy=g.urlUpdateStrategy)}(Fe,nn),Fe.enableTracing&&nn.events.subscribe(An=>{var Qn,In;null===(Qn=console.group)||void 0===Qn||Qn.call(console,`Router Event: ${An.constructor.name}`),console.log(An.toString()),console.log(An),null===(In=console.groupEnd)||void 0===In||In.call(console)}),nn},deps:[Wn,Kn,c.Ye,s.zs3,s.v3s,s.Sil,Oi,vo,[class{},new s.FiY],[class{},new s.FiY]]},Kn,{provide:Ye,useFactory:function(g){return g.routerState.root},deps:[ti]},{provide:s.v3s,useClass:s.EAV},Vo,Sa,Fo,{provide:vo,useValue:{enableTracing:!1}}];function za(){return new s.PXZ("Router",ti)}let As=(()=>{class g{constructor(d,w){}static forRoot(d,w){return{ngModule:g,providers:[Wo,_o(d),{provide:Tc,useFactory:xa,deps:[[ti,new s.FiY,new s.tp0]]},{provide:vo,useValue:w||{}},{provide:c.S$,useFactory:Ta,deps:[c.lw,[new s.tBr(c.mr),new s.FiY],vo]},{provide:$o,useFactory:is,deps:[ti,c.EM,vo]},{provide:ji,useExisting:w&&w.preloadingStrategy?w.preloadingStrategy:Sa},{provide:s.PXZ,multi:!0,useFactory:za},[yo,{provide:s.ip1,multi:!0,useFactory:gl,deps:[yo]},{provide:Is,useFactory:Pa,deps:[yo]},{provide:s.tb,multi:!0,useExisting:Is}]]}}static forChild(d){return{ngModule:g,providers:[_o(d)]}}}return g.\u0275fac=function(d){return new(d||g)(s.LFG(Tc,8),s.LFG(ti,8))},g.\u0275mod=s.oAB({type:g}),g.\u0275inj=s.cJS({}),g})();function is(g,p,d){return d.scrollOffset&&p.setOffset(d.scrollOffset),new $o(g,p,d)}function Ta(g,p,d={}){return d.useHash?new c.Do(g,p):new c.b0(g,p)}function xa(g){return"guarded"}function _o(g){return[{provide:s.deG,multi:!0,useValue:g},{provide:Oi,multi:!0,useValue:g}]}let yo=(()=>{class g{constructor(d){this.injector=d,this.initNavigation=!1,this.destroyed=!1,this.resultOfPreactivationDone=new je.xQ}appInitializer(){return this.injector.get(c.V_,Promise.resolve(null)).then(()=>{if(this.destroyed)return Promise.resolve(!0);let w=null;const O=new Promise(Fe=>w=Fe),K=this.injector.get(ti),ye=this.injector.get(vo);return"disabled"===ye.initialNavigation?(K.setUpLocationChangeListener(),w(!0)):"enabled"===ye.initialNavigation||"enabledBlocking"===ye.initialNavigation?(K.hooks.afterPreactivation=()=>this.initNavigation?(0,x.of)(null):(this.initNavigation=!0,w(!0),this.resultOfPreactivationDone),K.initialNavigation()):w(!0),O})}bootstrapListener(d){const w=this.injector.get(vo),O=this.injector.get(Vo),K=this.injector.get($o),ye=this.injector.get(ti),Fe=this.injector.get(s.z2F);d===Fe.components[0]&&(("enabledNonBlocking"===w.initialNavigation||void 0===w.initialNavigation)&&ye.initialNavigation(),O.setUpPreloading(),K.init(),ye.resetRootComponentType(Fe.componentTypes[0]),this.resultOfPreactivationDone.next(null),this.resultOfPreactivationDone.complete())}ngOnDestroy(){this.destroyed=!0}}return g.\u0275fac=function(d){return new(d||g)(s.LFG(s.zs3))},g.\u0275prov=s.Yz7({token:g,factory:g.\u0275fac}),g})();function gl(g){return g.appInitializer.bind(g)}function Pa(g){return g.bootstrapListener.bind(g)}const Is=new s.OlP("Router Initializer")},6390:(yt,De,m)=>{"use strict";m.d(De,{V65:()=>cn,ud1:()=>vn,Hkd:()=>Fn,XuQ:()=>_n,bBn:()=>ue,BOg:()=>jt,Rfq:()=>Rt,yQU:()=>Ut,U2Q:()=>re,UKj:()=>yn,BXH:()=>hi,OYp:()=>Ti,eLU:()=>hr,x0x:()=>Lt,Ej7:()=>ns,VWu:()=>an,rMt:()=>rr,vEg:()=>ei,RIp:()=>ar,RU0:()=>Zt,M8e:()=>wr,ssy:()=>Wo,Z5F:()=>yo,iUK:()=>cr,LJh:()=>yl,NFG:()=>f8,WH2:()=>El,UTl:()=>Il,nrZ:()=>Jo,gvV:()=>Z8,d2H:()=>$l,LBP:()=>Ha,_ry:()=>ql,eFY:()=>E6,sZJ:()=>Wa,np6:()=>o1,UY$:()=>k4,w1L:()=>e0,rHg:()=>r0,v6v:()=>y1,cN2:()=>q4,FsU:()=>h2,s_U:()=>Xa,TSL:()=>m2,uIz:()=>ou,d_$:()=>su});const cn={name:"bars",theme:"outline",icon:'<svg viewBox="0 0 1024 1024" focusable="false"><path d="M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z" /></svg>'},vn={name:"calendar",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z" /></svg>'},_n={name:"caret-down",theme:"outline",icon:'<svg viewBox="0 0 1024 1024" focusable="false"><path d="M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z" /></svg>'},Fn={name:"caret-down",theme:"fill",icon:'<svg viewBox="0 0 1024 1024" focusable="false"><path d="M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z" /></svg>'},jt={name:"caret-up",theme:"outline",icon:'<svg viewBox="0 0 1024 1024" focusable="false"><path d="M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z" /></svg>'},ue={name:"caret-up",theme:"fill",icon:'<svg viewBox="0 0 1024 1024" focusable="false"><path d="M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z" /></svg>'},Rt={name:"check-circle",theme:"fill",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z" /></svg>'},Ut={name:"check-circle",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z" /><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /></svg>'},re={name:"check",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z" /></svg>'},yn={name:"clock-circle",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /><path d="M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z" /></svg>'},Ti={name:"close-circle",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M685.4 354.8c0-4.4-3.6-8-8-8l-66 .3L512 465.6l-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155L340.5 670a8.32 8.32 0 00-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3L512 564.4l99.3 118.4 66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.5 515l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z" /><path d="M512 65C264.6 65 64 265.6 64 513s200.6 448 448 448 448-200.6 448-448S759.4 65 512 65zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /></svg>'},hi={name:"close-circle",theme:"fill",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z" /></svg>'},hr={name:"close",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z" /></svg>'},Lt={name:"copy",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z" /></svg>'},ns={name:"dashboard",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M924.8 385.6a446.7 446.7 0 00-96-142.4 446.7 446.7 0 00-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 00-142.4 96 446.7 446.7 0 00-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM761.4 836H262.6A371.12 371.12 0 01140 560c0-99.4 38.7-192.8 109-263 70.3-70.3 163.7-109 263-109 99.4 0 192.8 38.7 263 109 70.3 70.3 109 163.7 109 263 0 105.6-44.5 205.5-122.6 276zM623.5 421.5a8.03 8.03 0 00-11.3 0L527.7 506c-18.7-5-39.4-.2-54.1 14.5a55.95 55.95 0 000 79.2 55.95 55.95 0 0079.2 0 55.87 55.87 0 0014.5-54.1l84.5-84.5c3.1-3.1 3.1-8.2 0-11.3l-28.3-28.3zM490 320h44c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8h-44c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8zm260 218v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8zm12.7-197.2l-31.1-31.1a8.03 8.03 0 00-11.3 0l-56.6 56.6a8.03 8.03 0 000 11.3l31.1 31.1c3.1 3.1 8.2 3.1 11.3 0l56.6-56.6c3.1-3.1 3.1-8.2 0-11.3zm-458.6-31.1a8.03 8.03 0 00-11.3 0l-31.1 31.1a8.03 8.03 0 000 11.3l56.6 56.6c3.1 3.1 8.2 3.1 11.3 0l31.1-31.1c3.1-3.1 3.1-8.2 0-11.3l-56.6-56.6zM262 530h-80c-4.4 0-8 3.6-8 8v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8z" /></svg>'},an={name:"double-left",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z" /></svg>'},ei={name:"down",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z" /></svg>'},rr={name:"double-right",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z" /></svg>'},ar={name:"edit",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z" /></svg>'},Zt={name:"ellipsis",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z" /></svg>'},wr={name:"exclamation-circle",theme:"fill",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" /></svg>'},Wo={name:"exclamation-circle",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /><path d="M464 688a48 48 0 1096 0 48 48 0 10-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z" /></svg>'},yo={name:"eye",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z" /></svg>'},cr={name:"file",theme:"fill",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.7c6 6 9.4 14.1 9.4 22.6V928c0 17.7-14.3 32-32 32H192c-17.7 0-32-14.3-32-32V96c0-17.7 14.3-32 32-32h424.7c8.5 0 16.7 3.4 22.7 9.4l215.2 215.3zM790.2 326L602 137.8V326h188.2z" /></svg>'},f8={name:"filter",theme:"fill",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z" /></svg>'},yl={name:"file",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z" /></svg>'},El={name:"form",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M904 512h-56c-4.4 0-8 3.6-8 8v320H184V184h320c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V520c0-4.4-3.6-8-8-8z" /><path d="M355.9 534.9L354 653.8c-.1 8.9 7.1 16.2 16 16.2h.4l118-2.9c2-.1 4-.9 5.4-2.3l415.9-415c3.1-3.1 3.1-8.2 0-11.3L785.4 114.3c-1.6-1.6-3.6-2.3-5.7-2.3s-4.1.8-5.7 2.3l-415.8 415a8.3 8.3 0 00-2.3 5.6zm63.5 23.6L779.7 199l45.2 45.1-360.5 359.7-45.7 1.1.7-46.4z" /></svg>'},Jo={name:"info-circle",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /><path d="M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z" /></svg>'},Il={name:"info-circle",theme:"fill",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z" /></svg>'},Z8={name:"left",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z" /></svg>'},$l={name:"loading",theme:"outline",icon:'<svg viewBox="0 0 1024 1024" focusable="false"><path d="M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z" /></svg>'},Ha={name:"menu-fold",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 000 13.8z" /></svg>'},ql={name:"menu-unfold",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 000-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0014.4 7z" /></svg>'},E6={name:"paper-clip",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 00174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z" /></svg>'},Wa={name:"question-circle",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" /><path d="M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z" /></svg>'},o1={name:"right",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z" /></svg>'},e0={name:"rotate-right",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M480.5 251.2c13-1.6 25.9-2.4 38.8-2.5v63.9c0 6.5 7.5 10.1 12.6 6.1L660 217.6c4-3.2 4-9.2 0-12.3l-128-101c-5.1-4-12.6-.4-12.6 6.1l-.2 64c-118.6.5-235.8 53.4-314.6 154.2A399.75 399.75 0 00123.5 631h74.9c-.9-5.3-1.7-10.7-2.4-16.1-5.1-42.1-2.1-84.1 8.9-124.8 11.4-42.2 31-81.1 58.1-115.8 27.2-34.7 60.3-63.2 98.4-84.3 37-20.6 76.9-33.6 119.1-38.8z" /><path d="M880 418H352c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H396V494h440v326z" /></svg>'},k4={name:"rotate-left",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><defs><style /></defs><path d="M672 418H144c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H188V494h440v326z" /><path d="M819.3 328.5c-78.8-100.7-196-153.6-314.6-154.2l-.2-64c0-6.5-7.6-10.1-12.6-6.1l-128 101c-4 3.1-3.9 9.1 0 12.3L492 318.6c5.1 4 12.7.4 12.6-6.1v-63.9c12.9.1 25.9.9 38.8 2.5 42.1 5.2 82.1 18.2 119 38.7 38.1 21.2 71.2 49.7 98.4 84.3 27.1 34.7 46.7 73.7 58.1 115.8a325.95 325.95 0 016.5 140.9h74.9c14.8-103.6-11.3-213-81-302.3z" /></svg>'},r0={name:"search",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z" /></svg>'},y1={name:"star",theme:"fill",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 00.6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0046.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3z" /></svg>'},q4={name:"swap-right",theme:"outline",icon:'<svg viewBox="0 0 1024 1024" focusable="false"><path d="M873.1 596.2l-164-208A32 32 0 00684 376h-64.8c-6.7 0-10.4 7.7-6.3 13l144.3 183H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h695.9c26.8 0 41.7-30.8 25.2-51.8z" /></svg>'},h2={name:"up",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z" /></svg>'},Xa={name:"upload",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z" /></svg>'},m2={name:"vertical-align-top",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M859.9 168H164.1c-4.5 0-8.1 3.6-8.1 8v60c0 4.4 3.6 8 8.1 8h695.8c4.5 0 8.1-3.6 8.1-8v-60c0-4.4-3.6-8-8.1-8zM518.3 355a8 8 0 00-12.6 0l-112 141.7a7.98 7.98 0 006.3 12.9h73.9V848c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V509.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 355z" /></svg>'},ou={name:"zoom-in",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M637 443H519V309c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v134H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h118v134c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V519h118c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z" /></svg>'},su={name:"zoom-out",theme:"outline",icon:'<svg viewBox="64 64 896 896" focusable="false"><path d="M637 443H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h312c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z" /></svg>'}},7070:(yt,De,m)=>{"use strict";m.d(De,{J_:()=>le,MC:()=>x,c8:()=>S,YK:()=>B,LU:()=>U,Rq:()=>be,mF:()=>V,$C:()=>je});var c=m(7238);let s=(()=>{class $e{}return $e.SLOW="0.3s",$e.BASE="0.2s",$e.FAST="0.1s",$e})(),z=(()=>{class $e{}return $e.EASE_BASE_OUT="cubic-bezier(0.7, 0.3, 0.1, 1)",$e.EASE_BASE_IN="cubic-bezier(0.9, 0, 0.3, 0.7)",$e.EASE_OUT="cubic-bezier(0.215, 0.61, 0.355, 1)",$e.EASE_IN="cubic-bezier(0.55, 0.055, 0.675, 0.19)",$e.EASE_IN_OUT="cubic-bezier(0.645, 0.045, 0.355, 1)",$e.EASE_OUT_BACK="cubic-bezier(0.12, 0.4, 0.29, 1.46)",$e.EASE_IN_BACK="cubic-bezier(0.71, -0.46, 0.88, 0.6)",$e.EASE_IN_OUT_BACK="cubic-bezier(0.71, -0.46, 0.29, 1.46)",$e.EASE_OUT_CIRC="cubic-bezier(0.08, 0.82, 0.17, 1)",$e.EASE_IN_CIRC="cubic-bezier(0.6, 0.04, 0.98, 0.34)",$e.EASE_IN_OUT_CIRC="cubic-bezier(0.78, 0.14, 0.15, 0.86)",$e.EASE_OUT_QUINT="cubic-bezier(0.23, 1, 0.32, 1)",$e.EASE_IN_QUINT="cubic-bezier(0.755, 0.05, 0.855, 0.06)",$e.EASE_IN_OUT_QUINT="cubic-bezier(0.86, 0, 0.07, 1)",$e})();const le=(0,c.X$)("collapseMotion",[(0,c.SB)("expanded",(0,c.oB)({height:"*"})),(0,c.SB)("collapsed",(0,c.oB)({height:0,overflow:"hidden"})),(0,c.SB)("hidden",(0,c.oB)({height:0,overflow:"hidden",borderTopWidth:"0"})),(0,c.eR)("expanded => collapsed",(0,c.jt)(`150ms ${z.EASE_IN_OUT}`)),(0,c.eR)("expanded => hidden",(0,c.jt)(`150ms ${z.EASE_IN_OUT}`)),(0,c.eR)("collapsed => expanded",(0,c.jt)(`150ms ${z.EASE_IN_OUT}`)),(0,c.eR)("hidden => expanded",(0,c.jt)(`150ms ${z.EASE_IN_OUT}`))]),x=((0,c.X$)("treeCollapseMotion",[(0,c.eR)("* => *",[(0,c.IO)("nz-tree-node:leave,nz-tree-builtin-node:leave",[(0,c.oB)({overflow:"hidden"}),(0,c.EY)(0,[(0,c.jt)(`150ms ${z.EASE_IN_OUT}`,(0,c.oB)({height:0,opacity:0,"padding-bottom":0}))])],{optional:!0}),(0,c.IO)("nz-tree-node:enter,nz-tree-builtin-node:enter",[(0,c.oB)({overflow:"hidden",height:0,opacity:0,"padding-bottom":0}),(0,c.EY)(0,[(0,c.jt)(`150ms ${z.EASE_IN_OUT}`,(0,c.oB)({overflow:"hidden",height:"*",opacity:"*","padding-bottom":"*"}))])],{optional:!0})])]),(0,c.X$)("fadeMotion",[(0,c.eR)(":enter",[(0,c.oB)({opacity:0}),(0,c.jt)(`${s.BASE}`,(0,c.oB)({opacity:1}))]),(0,c.eR)(":leave",[(0,c.oB)({opacity:1}),(0,c.jt)(`${s.BASE}`,(0,c.oB)({opacity:0}))])])),S=(0,c.X$)("helpMotion",[(0,c.eR)(":enter",[(0,c.oB)({opacity:0,transform:"translateY(-5px)"}),(0,c.jt)(`${s.SLOW} ${z.EASE_IN_OUT}`,(0,c.oB)({opacity:1,transform:"translateY(0)"}))]),(0,c.eR)(":leave",[(0,c.oB)({opacity:1,transform:"translateY(0)"}),(0,c.jt)(`${s.SLOW} ${z.EASE_IN_OUT}`,(0,c.oB)({opacity:0,transform:"translateY(-5px)"}))])]),B=(0,c.X$)("moveUpMotion",[(0,c.eR)("* => enter",[(0,c.oB)({transformOrigin:"0 0",transform:"translateY(-100%)",opacity:0}),(0,c.jt)(`${s.BASE}`,(0,c.oB)({transformOrigin:"0 0",transform:"translateY(0%)",opacity:1}))]),(0,c.eR)("* => leave",[(0,c.oB)({transformOrigin:"0 0",transform:"translateY(0%)",opacity:1}),(0,c.jt)(`${s.BASE}`,(0,c.oB)({transformOrigin:"0 0",transform:"translateY(-100%)",opacity:0}))])]),U=(0,c.X$)("notificationMotion",[(0,c.SB)("enterRight",(0,c.oB)({opacity:1,transform:"translateX(0)"})),(0,c.eR)("* => enterRight",[(0,c.oB)({opacity:0,transform:"translateX(5%)"}),(0,c.jt)("100ms linear")]),(0,c.SB)("enterLeft",(0,c.oB)({opacity:1,transform:"translateX(0)"})),(0,c.eR)("* => enterLeft",[(0,c.oB)({opacity:0,transform:"translateX(-5%)"}),(0,c.jt)("100ms linear")]),(0,c.SB)("leave",(0,c.oB)({opacity:0,transform:"scaleY(0.8)",transformOrigin:"0% 0%"})),(0,c.eR)("* => leave",[(0,c.oB)({opacity:1,transform:"scaleY(1)",transformOrigin:"0% 0%"}),(0,c.jt)("100ms linear")])]),F=`${s.BASE} ${z.EASE_OUT_QUINT}`,Y=`${s.BASE} ${z.EASE_IN_QUINT}`,V=(0,c.X$)("slideMotion",[(0,c.SB)("void",(0,c.oB)({opacity:0,transform:"scaleY(0.8)"})),(0,c.SB)("enter",(0,c.oB)({opacity:1,transform:"scaleY(1)"})),(0,c.eR)("void => *",[(0,c.jt)(F)]),(0,c.eR)("* => void",[(0,c.jt)(Y)])]),be=(0,c.X$)("slideAlertMotion",[(0,c.eR)(":leave",[(0,c.oB)({opacity:1,transform:"scaleY(1)",transformOrigin:"0% 0%"}),(0,c.jt)(`${s.SLOW} ${z.EASE_IN_OUT_CIRC}`,(0,c.oB)({opacity:0,transform:"scaleY(0)",transformOrigin:"0% 0%"}))])]),je=(0,c.X$)("zoomBigMotion",[(0,c.eR)("void => active",[(0,c.oB)({opacity:0,transform:"scale(0.8)"}),(0,c.jt)(`${s.BASE} ${z.EASE_OUT_CIRC}`,(0,c.oB)({opacity:1,transform:"scale(1)"}))]),(0,c.eR)("active => void",[(0,c.oB)({opacity:1,transform:"scale(1)"}),(0,c.jt)(`${s.BASE} ${z.EASE_IN_OUT_CIRC}`,(0,c.oB)({opacity:0,transform:"scale(0.8)"}))])]);(0,c.X$)("zoomBadgeMotion",[(0,c.eR)(":enter",[(0,c.oB)({opacity:0,transform:"scale(0) translate(50%, -50%)"}),(0,c.jt)(`${s.SLOW} ${z.EASE_OUT_BACK}`,(0,c.oB)({opacity:1,transform:"scale(1) translate(50%, -50%)"}))]),(0,c.eR)(":leave",[(0,c.oB)({opacity:1,transform:"scale(1) translate(50%, -50%)"}),(0,c.jt)(`${s.SLOW} ${z.EASE_IN_BACK}`,(0,c.oB)({opacity:0,transform:"scale(0) translate(50%, -50%)"}))])])},7705:(yt,De,m)=>{"use strict";m.d(De,{o2:()=>z,M8:()=>le,uf:()=>s,Bh:()=>c});const c=["success","processing","error","default","warning"],s=["pink","red","yellow","orange","cyan","green","blue","purple","geekblue","magenta","volcano","gold","lime"];function z(W){return-1!==s.indexOf(W)}function le(W){return-1!==c.indexOf(W)}},2729:(yt,De,m)=>{"use strict";m.d(De,{jY:()=>B,oS:()=>U});var c=m(7716),s=m(9765),z=m(5435),le=m(6736);const W=new c.OlP("nz-config"),x=function(F){return void 0!==F};let B=(()=>{class F{constructor(V){this.configUpdated$=new s.xQ,this.config=V||{}}getConfig(){return this.config}getConfigForComponent(V){return this.config[V]}getConfigChangeEventForComponent(V){return this.configUpdated$.pipe((0,z.h)(be=>be===V),(0,le.h)(void 0))}set(V,be){this.config[V]=Object.assign(Object.assign({},this.config[V]),be),this.configUpdated$.next(V)}}return F.\u0275fac=function(V){return new(V||F)(c.LFG(W,8))},F.\u0275prov=c.Yz7({factory:function(){return new F(c.LFG(W,8))},token:F,providedIn:"root"}),F})();function U(){return function(Y,V,be){const je=`$$__zorroConfigDecorator__${V}`;return Object.defineProperty(Y,je,{configurable:!0,writable:!0,enumerable:!1}),{get(){var Ke,$e;const nt=(null==be?void 0:be.get)?be.get.bind(this)():this[je],ut=((null===(Ke=this.propertyAssignCounter)||void 0===Ke?void 0:Ke[V])||0)>1,tt=null===($e=this.nzConfigService.getConfigForComponent(this._nzModuleName))||void 0===$e?void 0:$e[V];return ut&&x(nt)?nt:x(tt)?tt:nt},set(Ke){this.propertyAssignCounter=this.propertyAssignCounter||{},this.propertyAssignCounter[V]=(this.propertyAssignCounter[V]||0)+1,(null==be?void 0:be.set)?be.set.bind(this)(Ke):this[je]=Ke},configurable:!0,enumerable:!0}}}},8397:(yt,De,m)=>{"use strict";m.d(De,{N:()=>c});const c={isTestMode:!1}},6956:(yt,De,m)=>{"use strict";m.d(De,{Bq:()=>le,ZK:()=>S,iX:()=>B});var c=m(7716),s=m(8397);const z={},le="[NG-ZORRO]:";function x(F,...Y){(s.N.isTestMode||(0,c.X6Q)()&&function(...F){const Y=F.reduce((V,be)=>V+be.toString(),"");return!z[Y]&&(z[Y]=!0,!0)}(...Y))&&F(...Y)}const S=(...F)=>x((...Y)=>console.warn(le,...Y),...F),B=(...F)=>{if(s.N.isTestMode)return()=>{};{const Y=(new Error).stack;return x((...V)=>console.warn(le,"deprecated:",...V,Y),...F)}}},641:(yt,De,m)=>{"use strict";m.d(De,{P:()=>B,g:()=>U});var c=m(8583),s=m(4762),z=m(9490),le=m(6237),W=m(6182),x=m(7716);const S="nz-animate-disabled";let B=(()=>{class F{constructor(V,be,je){this.element=V,this.renderer=be,this.animationType=je,this.nzNoAnimation=!1}ngOnChanges(){this.updateClass()}ngAfterViewInit(){this.updateClass()}updateClass(){const V=(0,z.fI)(this.element);!V||(this.nzNoAnimation||"NoopAnimations"===this.animationType?this.renderer.addClass(V,S):this.renderer.removeClass(V,S))}}return F.\u0275fac=function(V){return new(V||F)(x.Y36(x.SBq),x.Y36(x.Qsj),x.Y36(le.Qb,8))},F.\u0275dir=x.lG2({type:F,selectors:[["","nzNoAnimation",""]],inputs:{nzNoAnimation:"nzNoAnimation"},exportAs:["nzNoAnimation"],features:[x.TTD]}),(0,s.gn)([(0,W.yF)()],F.prototype,"nzNoAnimation",void 0),F})(),U=(()=>{class F{}return F.\u0275fac=function(V){return new(V||F)},F.\u0275mod=x.oAB({type:F}),F.\u0275inj=x.cJS({imports:[[c.ez]]}),F})()},8178:(yt,De,m)=>{"use strict";m.d(De,{T:()=>W,f:()=>z});var c=m(8583),s=m(7716);let z=(()=>{class x{constructor(B,U){this.viewContainer=B,this.templateRef=U,this.embeddedViewRef=null,this.context=new le,this.nzStringTemplateOutletContext=null,this.nzStringTemplateOutlet=null}static ngTemplateContextGuard(B,U){return!0}recreateView(){this.viewContainer.clear();const B=this.nzStringTemplateOutlet instanceof s.Rgc;this.embeddedViewRef=this.viewContainer.createEmbeddedView(B?this.nzStringTemplateOutlet:this.templateRef,B?this.nzStringTemplateOutletContext:this.context)}updateContext(){const U=this.nzStringTemplateOutlet instanceof s.Rgc?this.nzStringTemplateOutletContext:this.context,F=this.embeddedViewRef.context;if(U)for(const Y of Object.keys(U))F[Y]=U[Y]}ngOnChanges(B){const{nzStringTemplateOutletContext:U,nzStringTemplateOutlet:F}=B;F&&(this.context.$implicit=F.currentValue),(()=>{let be=!1;if(F)if(F.firstChange)be=!0;else{const nt=F.currentValue instanceof s.Rgc;be=F.previousValue instanceof s.Rgc||nt}return U&&($e=>{const nt=Object.keys($e.previousValue||{}),ut=Object.keys($e.currentValue||{});if(nt.length===ut.length){for(const tt of ut)if(-1===nt.indexOf(tt))return!0;return!1}return!0})(U)||be})()?this.recreateView():this.updateContext()}}return x.\u0275fac=function(B){return new(B||x)(s.Y36(s.s_b),s.Y36(s.Rgc))},x.\u0275dir=s.lG2({type:x,selectors:[["","nzStringTemplateOutlet",""]],inputs:{nzStringTemplateOutletContext:"nzStringTemplateOutletContext",nzStringTemplateOutlet:"nzStringTemplateOutlet"},exportAs:["nzStringTemplateOutlet"],features:[s.TTD]}),x})();class le{}let W=(()=>{class x{}return x.\u0275fac=function(B){return new(B||x)},x.\u0275mod=s.oAB({type:x}),x.\u0275inj=s.cJS({imports:[[c.ez]]}),x})()},6911:(yt,De,m)=>{"use strict";m.d(De,{Ek:()=>x,hQ:()=>z,e4:()=>le,yW:()=>W,d_:()=>F});var c=m(625),s=m(7716);let z=(()=>{class Y{constructor(be){this.cdkConnectedOverlay=be,this.cdkConnectedOverlay.backdropClass="nz-overlay-transparent-backdrop"}}return Y.\u0275fac=function(be){return new(be||Y)(s.Y36(c.pI))},Y.\u0275dir=s.lG2({type:Y,selectors:[["","cdkConnectedOverlay","","nzConnectedOverlay",""]],exportAs:["nzConnectedOverlay"]}),Y})(),le=(()=>{class Y{}return Y.\u0275fac=function(be){return new(be||Y)},Y.\u0275mod=s.oAB({type:Y}),Y.\u0275inj=s.cJS({}),Y})();const W={top:new c.tR({originX:"center",originY:"top"},{overlayX:"center",overlayY:"bottom"}),topCenter:new c.tR({originX:"center",originY:"top"},{overlayX:"center",overlayY:"bottom"}),topLeft:new c.tR({originX:"start",originY:"top"},{overlayX:"start",overlayY:"bottom"}),topRight:new c.tR({originX:"end",originY:"top"},{overlayX:"end",overlayY:"bottom"}),right:new c.tR({originX:"end",originY:"center"},{overlayX:"start",overlayY:"center"}),rightTop:new c.tR({originX:"end",originY:"top"},{overlayX:"start",overlayY:"top"}),rightBottom:new c.tR({originX:"end",originY:"bottom"},{overlayX:"start",overlayY:"bottom"}),bottom:new c.tR({originX:"center",originY:"bottom"},{overlayX:"center",overlayY:"top"}),bottomCenter:new c.tR({originX:"center",originY:"bottom"},{overlayX:"center",overlayY:"top"}),bottomLeft:new c.tR({originX:"start",originY:"bottom"},{overlayX:"start",overlayY:"top"}),bottomRight:new c.tR({originX:"end",originY:"bottom"},{overlayX:"end",overlayY:"top"}),left:new c.tR({originX:"start",originY:"center"},{overlayX:"end",overlayY:"center"}),leftTop:new c.tR({originX:"start",originY:"top"},{overlayX:"end",overlayY:"top"}),leftBottom:new c.tR({originX:"start",originY:"bottom"},{overlayX:"end",overlayY:"bottom"})},x=[W.top,W.right,W.bottom,W.left];function F(Y){for(const V in W)if(Y.connectionPair.originX===W[V].originX&&Y.connectionPair.originY===W[V].originY&&Y.connectionPair.overlayX===W[V].overlayX&&Y.connectionPair.overlayY===W[V].overlayY)return V}new c.tR({originX:"start",originY:"bottom"},{overlayX:"start",overlayY:"bottom"}),new c.tR({originX:"start",originY:"bottom"},{overlayX:"end",overlayY:"bottom"}),new c.tR({originX:"start",originY:"bottom"},{overlayX:"end",overlayY:"top"})},6169:(yt,De,m)=>{"use strict";m.d(De,{e:()=>W});const c=["moz","ms","webkit"],W=function(){if("undefined"==typeof window)return()=>0;if(window.requestAnimationFrame)return window.requestAnimationFrame.bind(window);const x=c.filter(S=>`${S}RequestAnimationFrame`in window)[0];return x?window[`${x}RequestAnimationFrame`]:function(){let x=0;return function(S){const B=(new Date).getTime(),U=Math.max(0,16-(B-x)),F=setTimeout(()=>{S(B+U)},U);return x=B+U,F}}()}()},4226:(yt,De,m)=>{"use strict";m.d(De,{G_:()=>We,r3:()=>Pe,kn:()=>st,rI:()=>je,MF:()=>Ft,KV:()=>$e,WV:()=>Re,ow:()=>Ze});var c=m(7716),s=m(9765),z=m(13),le=m(8939),W=m(8002),x=m(9761),S=m(7519),B=m(8397),U=m(8583),F=m(6169),Y=m(5072);const V=()=>{};let je=(()=>{class se{constructor(oe,fe){this.ngZone=oe,this.rendererFactory2=fe,this.resizeSource$=new s.xQ,this.listeners=0,this.disposeHandle=V,this.handler=()=>{this.ngZone.run(()=>{this.resizeSource$.next()})},this.renderer=this.rendererFactory2.createRenderer(null,null)}subscribe(){return this.registerListener(),this.resizeSource$.pipe((0,z.e)(16),(0,le.x)(()=>this.unregisterListener()))}unsubscribe(){this.unregisterListener()}registerListener(){0===this.listeners&&this.ngZone.runOutsideAngular(()=>{this.disposeHandle=this.renderer.listen("window","resize",this.handler)}),this.listeners+=1}unregisterListener(){this.listeners-=1,0===this.listeners&&(this.disposeHandle(),this.disposeHandle=V)}}return se.\u0275fac=function(oe){return new(oe||se)(c.LFG(c.R0b),c.LFG(c.FYo))},se.\u0275prov=c.Yz7({factory:function(){return new se(c.LFG(c.R0b),c.LFG(c.FYo))},token:se,providedIn:"root"}),se})();const Ke=new Map;let $e=(()=>{class se{constructor(){this._singletonRegistry=new Map}get singletonRegistry(){return B.N.isTestMode?Ke:this._singletonRegistry}registerSingletonWithKey(oe,fe){const Oe=this.singletonRegistry.has(oe),pe=Oe?this.singletonRegistry.get(oe):this.withNewTarget(fe);Oe||this.singletonRegistry.set(oe,pe)}getSingletonWithKey(oe){return this.singletonRegistry.has(oe)?this.singletonRegistry.get(oe).target:null}withNewTarget(oe){return{target:oe}}}return se.\u0275fac=function(oe){return new(oe||se)},se.\u0275prov=c.Yz7({factory:function(){return new se},token:se,providedIn:"root"}),se})();function tt(se,Se,oe,fe){const Oe=oe-Se;let pe=se/(fe/2);return pe<1?Oe/2*pe*pe*pe+Se:Oe/2*((pe-=2)*pe*pe+2)+Se}let Ft=(()=>{class se{constructor(oe){this.doc=oe}setScrollTop(oe,fe=0){oe===window?(this.doc.body.scrollTop=fe,this.doc.documentElement.scrollTop=fe):oe.scrollTop=fe}getOffset(oe){const fe={top:0,left:0};if(!oe||!oe.getClientRects().length)return fe;const Oe=oe.getBoundingClientRect();if(Oe.width||Oe.height){const pe=oe.ownerDocument.documentElement;fe.top=Oe.top-pe.clientTop,fe.left=Oe.left-pe.clientLeft}else fe.top=Oe.top,fe.left=Oe.left;return fe}getScroll(oe,fe=!0){if("undefined"==typeof window)return 0;const Oe=fe?"scrollTop":"scrollLeft";let pe=0;return this.isWindow(oe)?pe=oe[fe?"pageYOffset":"pageXOffset"]:oe instanceof Document?pe=oe.documentElement[Oe]:oe&&(pe=oe[Oe]),oe&&!this.isWindow(oe)&&"number"!=typeof pe&&(pe=(oe.ownerDocument||oe).documentElement[Oe]),pe}isWindow(oe){return null!=oe&&oe===oe.window}scrollTo(oe,fe=0,Oe={}){const pe=oe||window,Ue=this.getScroll(pe),Ne=Date.now(),{easing:Ie,callback:he,duration:we=450}=Oe,Ge=()=>{const ft=Date.now()-Ne,Tt=(Ie||tt)(ft>we?we:ft,Ue,fe,we);this.isWindow(pe)?pe.scrollTo(window.pageXOffset,Tt):pe instanceof HTMLDocument||"HTMLDocument"===pe.constructor.name?pe.documentElement.scrollTop=Tt:pe.scrollTop=Tt,ft<we?(0,F.e)(Ge):"function"==typeof he&&he()};(0,F.e)(Ge)}}return se.\u0275fac=function(oe){return new(oe||se)(c.LFG(U.K0))},se.\u0275prov=c.Yz7({factory:function(){return new se(c.LFG(U.K0))},token:se,providedIn:"root"}),se})();var We=(()=>{return(se=We||(We={})).xxl="xxl",se.xl="xl",se.lg="lg",se.md="md",se.sm="sm",se.xs="xs",We;var se})();const Re={xs:"(max-width: 575px)",sm:"(min-width: 576px)",md:"(min-width: 768px)",lg:"(min-width: 992px)",xl:"(min-width: 1200px)",xxl:"(min-width: 1600px)"},Ze={xs:"(max-width: 479.98px)",sm:"(max-width: 575.98px)",md:"(max-width: 767.98px)",lg:"(max-width: 991.98px)",xl:"(max-width: 1199.98px)",xxl:"(max-width: 1599.98px)"};let Pe=(()=>{class se{constructor(oe,fe){this.resizeService=oe,this.mediaMatcher=fe,this.resizeService.subscribe().subscribe(()=>{})}subscribe(oe,fe){if(fe){const Oe=()=>this.matchMedia(oe,!0);return this.resizeService.subscribe().pipe((0,W.U)(Oe),(0,x.O)(Oe()),(0,S.x)((pe,Ue)=>pe[0]===Ue[0]),(0,W.U)(pe=>pe[1]))}{const Oe=()=>this.matchMedia(oe);return this.resizeService.subscribe().pipe((0,W.U)(Oe),(0,x.O)(Oe()),(0,S.x)())}}matchMedia(oe,fe){let Oe=We.md;const pe={};return Object.keys(oe).map(Ue=>{const Ne=Ue,Ie=this.mediaMatcher.matchMedia(Re[Ne]).matches;pe[Ue]=Ie,Ie&&(Oe=Ne)}),fe?[Oe,pe]:Oe}}return se.\u0275fac=function(oe){return new(oe||se)(c.LFG(je),c.LFG(Y.vx))},se.\u0275prov=c.Yz7({factory:function(){return new se(c.LFG(je),c.LFG(Y.vx))},token:se,providedIn:"root"}),se})(),st=(()=>{class se extends s.xQ{ngOnDestroy(){this.next(),this.complete()}}return se.\u0275fac=function(){let Se;return function(fe){return(Se||(Se=c.n5z(se)))(fe||se)}}(),se.\u0275prov=c.Yz7({token:se,factory:se.\u0275fac}),se})()},6182:(yt,De,m)=>{"use strict";m.d(De,{yF:()=>ut,Rn:()=>Ft,cO:()=>x,xV:()=>Ue,pW:()=>Re,OY:()=>Oe,p8:()=>pe,ov:()=>I,kK:()=>U,DX:()=>B,ui:()=>Ne,tI:()=>fe,D8:()=>Ct,jJ:()=>We,Sm:()=>he,sw:()=>be,WX:()=>Ke,YM:()=>Ie,He:()=>je});var c=m(9490),s=m(6956),z=m(9765),le=m(5257);function x(N,G){if(!N||!G||N.length!==G.length)return!1;const _e=N.length;for(let ve=0;ve<_e;ve++)if(N[ve]!==G[ve])return!1;return!0}function B(N){return null!=N}function U(N){return null==N}function be(N){return(0,c.Ig)(N)}function je(N,G=0){return(0,c.t6)(N)?Number(N):G}function Ke(N){return(0,c.HM)(N)}function nt(N,G){return function(ve,Ce,H){const ce=`$$__zorroPropDecorator__${Ce}`;return Object.prototype.hasOwnProperty.call(ve,ce)&&(0,s.ZK)(`The prop "${ce}" is already exist, it will be overrided by ${N} decorator.`),Object.defineProperty(ve,ce,{configurable:!0,writable:!0}),{get(){return H&&H.get?H.get.bind(this)():this[ce]},set(Je){H&&H.set&&H.set.bind(this)(G(Je)),this[ce]=G(Je)}}}}function ut(){return nt("InputBoolean",be)}function Ft(N){return nt("InputNumber",G=>je(G,N))}function We(N){N.stopPropagation(),N.preventDefault()}function Re(N){if(!N.getClientRects().length)return{top:0,left:0};const G=N.getBoundingClientRect(),_e=N.ownerDocument.defaultView;return{top:G.top+_e.pageYOffset,left:G.left+_e.pageXOffset}}function fe(N){return!!N&&"function"==typeof N.then&&"function"==typeof N.catch}function Oe(N,G,_e){return(_e-N)/(G-N)*100}function pe(N){const G=N.toString(),_e=G.indexOf(".");return _e>=0?G.length-_e-1:0}function Ue(N,G,_e){return isNaN(N)||N<G?G:N>_e?_e:N}function Ne(N){return"number"==typeof N&&isFinite(N)}function Ie(N,G){return Math.round(N*Math.pow(10,G))/Math.pow(10,G)}function he(N,G=0){return N.reduce((_e,ve)=>_e+ve,G)}let pt,xe;"undefined"!=typeof window&&window;const Ae={position:"absolute",top:"-9999px",width:"50px",height:"50px"};function Ct(N="vertical",G="ant"){if("undefined"==typeof document||"undefined"==typeof window)return 0;const _e="vertical"===N;if(_e&&pt)return pt;if(!_e&&xe)return xe;const ve=document.createElement("div");Object.keys(Ae).forEach(H=>{ve.style[H]=Ae[H]}),ve.className=`${G}-hide-scrollbar scroll-div-append-to-body`,_e?ve.style.overflowY="scroll":ve.style.overflowX="scroll",document.body.appendChild(ve);let Ce=0;return _e?(Ce=ve.offsetWidth-ve.clientWidth,pt=Ce):(Ce=ve.offsetHeight-ve.clientHeight,xe=Ce),document.body.removeChild(ve),Ce}function I(){const N=new z.xQ;return Promise.resolve().then(()=>N.next()),N.pipe((0,le.q)(1))}},3721:(yt,De,m)=>{"use strict";m.d(De,{Vz:()=>we,SQ:()=>Ue,BL:()=>Ve});var c=m(4762),s=m(946),z=m(6461),le=m(625),W=m(7636),x=m(8583),S=m(7716),B=m(9765),U=m(6782),F=m(2729),Y=m(6182),V=m(641),be=m(8178),je=m(464),Ke=m(9238);const $e=["drawerTemplate"];function nt(rt,St){if(1&rt){const lt=S.EpF();S.TgZ(0,"div",11),S.NdJ("click",function(){return S.CHM(lt),S.oxw(2).maskClick()}),S.qZA()}if(2&rt){const lt=S.oxw(2);S.Q6J("ngStyle",lt.nzMaskStyle)}}function ut(rt,St){if(1&rt&&(S.ynx(0),S._UZ(1,"div",16),S.BQk()),2&rt){const lt=S.oxw(4);S.xp6(1),S.Q6J("innerHTML",lt.nzTitle,S.oJD)}}function tt(rt,St){if(1&rt&&(S.TgZ(0,"div",14),S.YNc(1,ut,2,1,"ng-container",15),S.qZA()),2&rt){const lt=S.oxw(3);S.xp6(1),S.Q6J("nzStringTemplateOutlet",lt.nzTitle)}}function Ft(rt,St){if(1&rt&&(S.ynx(0),S._UZ(1,"i",18),S.BQk()),2&rt){const lt=St.$implicit;S.xp6(1),S.Q6J("nzType",lt)}}function We(rt,St){if(1&rt){const lt=S.EpF();S.TgZ(0,"button",17),S.NdJ("click",function(){return S.CHM(lt),S.oxw(3).closeClick()}),S.YNc(1,Ft,2,1,"ng-container",15),S.qZA()}if(2&rt){const lt=S.oxw(3);S.xp6(1),S.Q6J("nzStringTemplateOutlet",lt.nzCloseIcon)}}function Re(rt,St){if(1&rt&&(S.TgZ(0,"div"),S.YNc(1,tt,2,1,"div",12),S.YNc(2,We,2,1,"button",13),S.qZA()),2&rt){const lt=S.oxw(2);S.ekj("ant-drawer-header",!!lt.nzTitle)("ant-drawer-header-no-title",!lt.nzTitle),S.xp6(1),S.Q6J("ngIf",lt.nzTitle),S.xp6(1),S.Q6J("ngIf",lt.nzClosable)}}function Ze(rt,St){}function Pe(rt,St){1&rt&&S.GkF(0)}function st(rt,St){if(1&rt&&(S.ynx(0),S.YNc(1,Pe,1,0,"ng-container",20),S.BQk()),2&rt){const lt=S.oxw(3);S.xp6(1),S.Q6J("ngTemplateOutlet",lt.nzContent)("ngTemplateOutletContext",lt.templateContext)}}function Be(rt,St){if(1&rt&&(S.ynx(0),S.YNc(1,st,2,2,"ng-container",19),S.BQk()),2&rt){const lt=S.oxw(2);S.xp6(1),S.Q6J("ngIf",lt.isTemplateRef(lt.nzContent))}}function se(rt,St){}function Se(rt,St){if(1&rt&&(S.ynx(0),S.YNc(1,se,0,0,"ng-template",21),S.BQk()),2&rt){const lt=S.oxw(3);S.xp6(1),S.Q6J("ngTemplateOutlet",lt.contentFromContentChild)}}function oe(rt,St){if(1&rt&&S.YNc(0,Se,2,1,"ng-container",19),2&rt){const lt=S.oxw(2);S.Q6J("ngIf",lt.contentFromContentChild&&(lt.isOpen||lt.inAnimation))}}function fe(rt,St){if(1&rt&&(S.ynx(0),S._UZ(1,"div",16),S.BQk()),2&rt){const lt=S.oxw(3);S.xp6(1),S.Q6J("innerHTML",lt.nzFooter,S.oJD)}}function Oe(rt,St){if(1&rt&&(S.TgZ(0,"div",22),S.YNc(1,fe,2,1,"ng-container",15),S.qZA()),2&rt){const lt=S.oxw(2);S.xp6(1),S.Q6J("nzStringTemplateOutlet",lt.nzFooter)}}function pe(rt,St){if(1&rt&&(S.TgZ(0,"div",1),S.YNc(1,nt,1,1,"div",2),S.TgZ(2,"div"),S.TgZ(3,"div",3),S.TgZ(4,"div",4),S.YNc(5,Re,3,6,"div",5),S.TgZ(6,"div",6),S.YNc(7,Ze,0,0,"ng-template",7),S.YNc(8,Be,2,1,"ng-container",8),S.YNc(9,oe,1,1,"ng-template",null,9,S.W1O),S.qZA(),S.YNc(11,Oe,2,1,"div",10),S.qZA(),S.qZA(),S.qZA(),S.qZA()),2&rt){const lt=S.MAs(10),Dt=S.oxw();S.Udp("transform",Dt.offsetTransform)("transition",Dt.placementChanging?"none":null)("z-index",Dt.nzZIndex),S.ekj("ant-drawer-rtl","rtl"===Dt.dir)("ant-drawer-open",Dt.isOpen)("no-mask",!Dt.nzMask)("ant-drawer-top","top"===Dt.nzPlacement)("ant-drawer-bottom","bottom"===Dt.nzPlacement)("ant-drawer-right","right"===Dt.nzPlacement)("ant-drawer-left","left"===Dt.nzPlacement),S.Q6J("nzNoAnimation",Dt.nzNoAnimation),S.xp6(1),S.Q6J("ngIf",Dt.nzMask),S.xp6(1),S.Gre("ant-drawer-content-wrapper ",Dt.nzWrapClassName,""),S.Udp("width",Dt.width)("height",Dt.height)("transform",Dt.transform)("transition",Dt.placementChanging?"none":null),S.xp6(2),S.Udp("height",Dt.isLeftOrRight?"100%":null),S.xp6(1),S.Q6J("ngIf",Dt.nzTitle||Dt.nzClosable),S.xp6(1),S.Q6J("ngStyle",Dt.nzBodyStyle),S.xp6(2),S.Q6J("ngIf",Dt.nzContent)("ngIfElse",lt),S.xp6(3),S.Q6J("ngIf",Dt.nzFooter)}}let Ue=(()=>{class rt{constructor(lt){this.templateRef=lt}}return rt.\u0275fac=function(lt){return new(lt||rt)(S.Y36(S.Rgc))},rt.\u0275dir=S.lG2({type:rt,selectors:[["","nzDrawerContent",""]],exportAs:["nzDrawerContent"]}),rt})();class Ne{}let we=(()=>{class rt extends Ne{constructor(lt,Dt,Ht,un,en,wn,It,tn,rn,cn,kt){super(),this.cdr=lt,this.document=Dt,this.nzConfigService=Ht,this.renderer=un,this.overlay=en,this.injector=wn,this.changeDetectorRef=It,this.focusTrapFactory=tn,this.viewContainerRef=rn,this.overlayKeyboardDispatcher=cn,this.directionality=kt,this._nzModuleName="drawer",this.nzCloseIcon="close",this.nzClosable=!0,this.nzMaskClosable=!0,this.nzMask=!0,this.nzCloseOnNavigation=!0,this.nzNoAnimation=!1,this.nzKeyboard=!0,this.nzPlacement="right",this.nzMaskStyle={},this.nzBodyStyle={},this.nzWidth=256,this.nzHeight=256,this.nzZIndex=1e3,this.nzOffsetX=0,this.nzOffsetY=0,this.componentInstance=null,this.nzOnViewInit=new S.vpe,this.nzOnClose=new S.vpe,this.nzVisibleChange=new S.vpe,this.destroy$=new B.xQ,this.placementChanging=!1,this.placementChangeTimeoutId=-1,this.isOpen=!1,this.inAnimation=!1,this.templateContext={$implicit:void 0,drawerRef:this},this.nzAfterOpen=new B.xQ,this.nzAfterClose=new B.xQ,this.nzDirection=void 0,this.dir="ltr"}set nzVisible(lt){this.isOpen=lt}get nzVisible(){return this.isOpen}get offsetTransform(){if(!this.isOpen||this.nzOffsetX+this.nzOffsetY===0)return null;switch(this.nzPlacement){case"left":return`translateX(${this.nzOffsetX}px)`;case"right":return`translateX(-${this.nzOffsetX}px)`;case"top":return`translateY(${this.nzOffsetY}px)`;case"bottom":return`translateY(-${this.nzOffsetY}px)`}}get transform(){if(this.isOpen)return null;switch(this.nzPlacement){case"left":return"translateX(-100%)";case"right":return"translateX(100%)";case"top":return"translateY(-100%)";case"bottom":return"translateY(100%)"}}get width(){return this.isLeftOrRight?(0,Y.WX)(this.nzWidth):null}get height(){return this.isLeftOrRight?null:(0,Y.WX)(this.nzHeight)}get isLeftOrRight(){return"left"===this.nzPlacement||"right"===this.nzPlacement}get afterOpen(){return this.nzAfterOpen.asObservable()}get afterClose(){return this.nzAfterClose.asObservable()}isTemplateRef(lt){return lt instanceof S.Rgc}ngOnInit(){var lt;null===(lt=this.directionality.change)||void 0===lt||lt.pipe((0,U.R)(this.destroy$)).subscribe(Dt=>{this.dir=Dt,this.cdr.detectChanges()}),this.dir=this.nzDirection||this.directionality.value,this.attachOverlay(),this.updateOverlayStyle(),this.updateBodyOverflow(),this.templateContext={$implicit:this.nzContentParams,drawerRef:this},this.changeDetectorRef.detectChanges()}ngAfterViewInit(){this.attachBodyContent(),this.nzOnViewInit.observers.length&&setTimeout(()=>{this.nzOnViewInit.emit()})}ngOnChanges(lt){const{nzPlacement:Dt,nzVisible:Ht}=lt;Ht&&(lt.nzVisible.currentValue?this.open():this.close()),Dt&&!Dt.isFirstChange()&&this.triggerPlacementChangeCycleOnce()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete(),clearTimeout(this.placementChangeTimeoutId),this.disposeOverlay()}getAnimationDuration(){return this.nzNoAnimation?0:300}triggerPlacementChangeCycleOnce(){this.nzNoAnimation||(this.placementChanging=!0,this.changeDetectorRef.markForCheck(),clearTimeout(this.placementChangeTimeoutId),this.placementChangeTimeoutId=setTimeout(()=>{this.placementChanging=!1,this.changeDetectorRef.markForCheck()},this.getAnimationDuration()))}close(lt){this.isOpen=!1,this.inAnimation=!0,this.nzVisibleChange.emit(!1),this.updateOverlayStyle(),this.overlayKeyboardDispatcher.remove(this.overlayRef),this.changeDetectorRef.detectChanges(),setTimeout(()=>{this.updateBodyOverflow(),this.restoreFocus(),this.inAnimation=!1,this.nzAfterClose.next(lt),this.nzAfterClose.complete(),this.componentInstance=null},this.getAnimationDuration())}open(){this.attachOverlay(),this.isOpen=!0,this.inAnimation=!0,this.nzVisibleChange.emit(!0),this.overlayKeyboardDispatcher.add(this.overlayRef),this.updateOverlayStyle(),this.updateBodyOverflow(),this.savePreviouslyFocusedElement(),this.trapFocus(),this.changeDetectorRef.detectChanges(),setTimeout(()=>{this.inAnimation=!1,this.changeDetectorRef.detectChanges(),this.nzAfterOpen.next()},this.getAnimationDuration())}getContentComponent(){return this.componentInstance}closeClick(){this.nzOnClose.emit()}maskClick(){this.nzMaskClosable&&this.nzMask&&this.nzOnClose.emit()}attachBodyContent(){if(this.bodyPortalOutlet.dispose(),this.nzContent instanceof S.DyG){const lt=S.zs3.create({parent:this.injector,providers:[{provide:Ne,useValue:this}]}),Dt=new W.C5(this.nzContent,null,lt),Ht=this.bodyPortalOutlet.attachComponentPortal(Dt);this.componentInstance=Ht.instance,Object.assign(Ht.instance,this.nzContentParams),Ht.changeDetectorRef.detectChanges()}}attachOverlay(){this.overlayRef||(this.portal=new W.UE(this.drawerTemplate,this.viewContainerRef),this.overlayRef=this.overlay.create(this.getOverlayConfig())),this.overlayRef&&!this.overlayRef.hasAttached()&&(this.overlayRef.attach(this.portal),this.overlayRef.keydownEvents().pipe((0,U.R)(this.destroy$)).subscribe(lt=>{lt.keyCode===z.hY&&this.isOpen&&this.nzKeyboard&&this.nzOnClose.emit()}),this.overlayRef.detachments().pipe((0,U.R)(this.destroy$)).subscribe(()=>{this.disposeOverlay()}))}disposeOverlay(){var lt;null===(lt=this.overlayRef)||void 0===lt||lt.dispose(),this.overlayRef=null}getOverlayConfig(){return new le.X_({disposeOnNavigation:this.nzCloseOnNavigation,positionStrategy:this.overlay.position().global(),scrollStrategy:this.overlay.scrollStrategies.block()})}updateOverlayStyle(){this.overlayRef&&this.overlayRef.overlayElement&&this.renderer.setStyle(this.overlayRef.overlayElement,"pointer-events",this.isOpen?"auto":"none")}updateBodyOverflow(){this.overlayRef&&(this.isOpen?this.overlayRef.getConfig().scrollStrategy.enable():this.overlayRef.getConfig().scrollStrategy.disable())}savePreviouslyFocusedElement(){this.document&&!this.previouslyFocusedElement&&(this.previouslyFocusedElement=this.document.activeElement,this.previouslyFocusedElement&&"function"==typeof this.previouslyFocusedElement.blur&&this.previouslyFocusedElement.blur())}trapFocus(){!this.focusTrap&&this.overlayRef&&this.overlayRef.overlayElement&&(this.focusTrap=this.focusTrapFactory.create(this.overlayRef.overlayElement),this.focusTrap.focusInitialElement())}restoreFocus(){this.previouslyFocusedElement&&"function"==typeof this.previouslyFocusedElement.focus&&this.previouslyFocusedElement.focus(),this.focusTrap&&this.focusTrap.destroy()}}return rt.\u0275fac=function(lt){return new(lt||rt)(S.Y36(S.sBO),S.Y36(x.K0,8),S.Y36(F.jY),S.Y36(S.Qsj),S.Y36(le.aV),S.Y36(S.zs3),S.Y36(S.sBO),S.Y36(Ke.qV),S.Y36(S.s_b),S.Y36(le.Vs),S.Y36(s.Is,8))},rt.\u0275cmp=S.Xpm({type:rt,selectors:[["nz-drawer"]],contentQueries:function(lt,Dt,Ht){if(1<&&S.Suo(Ht,Ue,7,S.Rgc),2<){let un;S.iGM(un=S.CRH())&&(Dt.contentFromContentChild=un.first)}},viewQuery:function(lt,Dt){if(1<&&(S.Gf($e,7),S.Gf(W.Pl,5)),2<){let Ht;S.iGM(Ht=S.CRH())&&(Dt.drawerTemplate=Ht.first),S.iGM(Ht=S.CRH())&&(Dt.bodyPortalOutlet=Ht.first)}},inputs:{nzCloseIcon:"nzCloseIcon",nzClosable:"nzClosable",nzMaskClosable:"nzMaskClosable",nzMask:"nzMask",nzCloseOnNavigation:"nzCloseOnNavigation",nzNoAnimation:"nzNoAnimation",nzKeyboard:"nzKeyboard",nzPlacement:"nzPlacement",nzMaskStyle:"nzMaskStyle",nzBodyStyle:"nzBodyStyle",nzWidth:"nzWidth",nzHeight:"nzHeight",nzZIndex:"nzZIndex",nzOffsetX:"nzOffsetX",nzOffsetY:"nzOffsetY",nzVisible:"nzVisible",nzContent:"nzContent",nzTitle:"nzTitle",nzFooter:"nzFooter",nzWrapClassName:"nzWrapClassName"},outputs:{nzOnViewInit:"nzOnViewInit",nzOnClose:"nzOnClose",nzVisibleChange:"nzVisibleChange"},exportAs:["nzDrawer"],features:[S.qOj,S.TTD],decls:2,vars:0,consts:[["drawerTemplate",""],[1,"ant-drawer",3,"nzNoAnimation"],["class","ant-drawer-mask",3,"ngStyle","click",4,"ngIf"],[1,"ant-drawer-content"],[1,"ant-drawer-wrapper-body"],[3,"ant-drawer-header","ant-drawer-header-no-title",4,"ngIf"],[1,"ant-drawer-body",3,"ngStyle"],["cdkPortalOutlet",""],[4,"ngIf","ngIfElse"],["contentElseTemp",""],["class","ant-drawer-footer",4,"ngIf"],[1,"ant-drawer-mask",3,"ngStyle","click"],["class","ant-drawer-title",4,"ngIf"],["aria-label","Close","class","ant-drawer-close","style","--scroll-bar: 0px;",3,"click",4,"ngIf"],[1,"ant-drawer-title"],[4,"nzStringTemplateOutlet"],[3,"innerHTML"],["aria-label","Close",1,"ant-drawer-close",2,"--scroll-bar","0px",3,"click"],["nz-icon","",3,"nzType"],[4,"ngIf"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"ngTemplateOutlet"],[1,"ant-drawer-footer"]],template:function(lt,Dt){1<&&S.YNc(0,pe,12,40,"ng-template",null,0,S.W1O)},directives:[V.P,x.O5,x.PC,W.Pl,be.f,je.Ls,x.tP],encapsulation:2,changeDetection:0}),(0,c.gn)([(0,Y.yF)()],rt.prototype,"nzClosable",void 0),(0,c.gn)([(0,F.oS)(),(0,Y.yF)()],rt.prototype,"nzMaskClosable",void 0),(0,c.gn)([(0,F.oS)(),(0,Y.yF)()],rt.prototype,"nzMask",void 0),(0,c.gn)([(0,F.oS)(),(0,Y.yF)()],rt.prototype,"nzCloseOnNavigation",void 0),(0,c.gn)([(0,Y.yF)()],rt.prototype,"nzNoAnimation",void 0),(0,c.gn)([(0,Y.yF)()],rt.prototype,"nzKeyboard",void 0),(0,c.gn)([(0,F.oS)()],rt.prototype,"nzDirection",void 0),rt})(),Ge=(()=>{class rt{}return rt.\u0275fac=function(lt){return new(lt||rt)},rt.\u0275mod=S.oAB({type:rt}),rt.\u0275inj=S.cJS({}),rt})(),Ve=(()=>{class rt{}return rt.\u0275fac=function(lt){return new(lt||rt)},rt.\u0275mod=S.oAB({type:rt}),rt.\u0275inj=S.cJS({imports:[[s.vT,x.ez,le.U8,W.eL,je.PV,be.T,V.g,Ge]]}),rt})()},6756:(yt,De,m)=>{"use strict";m.d(De,{u7:()=>x,YI:()=>F,o9:()=>U,wi:()=>B,bF:()=>W});var c=m(7716),s=m(6215),z=m(6956),le={locale:"en",Pagination:{items_per_page:"/ page",jump_to:"Go to",jump_to_confirm:"confirm",page:"",prev_page:"Previous Page",next_page:"Next Page",prev_5:"Previous 5 Pages",next_5:"Next 5 Pages",prev_3:"Previous 3 Pages",next_3:"Next 3 Pages"},DatePicker:{lang:{placeholder:"Select date",yearPlaceholder:"Select year",quarterPlaceholder:"Select quarter",monthPlaceholder:"Select month",weekPlaceholder:"Select week",rangePlaceholder:["Start date","End date"],rangeYearPlaceholder:["Start year","End year"],rangeMonthPlaceholder:["Start month","End month"],rangeWeekPlaceholder:["Start week","End week"],locale:"en_US",today:"Today",now:"Now",backToToday:"Back to today",ok:"Ok",clear:"Clear",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",yearFormat:"YYYY",dateFormat:"M/D/YYYY",dayFormat:"D",dateTimeFormat:"M/D/YYYY HH:mm:ss",monthBeforeYear:!0,previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"},timePickerLocale:{placeholder:"Select time",rangePlaceholder:["Start time","End time"]}},TimePicker:{placeholder:"Select time",rangePlaceholder:["Start time","End time"]},Calendar:{lang:{placeholder:"Select date",yearPlaceholder:"Select year",quarterPlaceholder:"Select quarter",monthPlaceholder:"Select month",weekPlaceholder:"Select week",rangePlaceholder:["Start date","End date"],rangeYearPlaceholder:["Start year","End year"],rangeMonthPlaceholder:["Start month","End month"],rangeWeekPlaceholder:["Start week","End week"],locale:"en_US",today:"Today",now:"Now",backToToday:"Back to today",ok:"Ok",clear:"Clear",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",yearFormat:"YYYY",dateFormat:"M/D/YYYY",dayFormat:"D",dateTimeFormat:"M/D/YYYY HH:mm:ss",monthBeforeYear:!0,previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"},timePickerLocale:{placeholder:"Select time",rangePlaceholder:["Start time","End time"]}},global:{placeholder:"Please select"},Table:{filterTitle:"Filter menu",filterConfirm:"OK",filterReset:"Reset",filterEmptyText:"No filters",emptyText:"No data",selectAll:"Select current page",selectInvert:"Invert current page",selectionAll:"Select all data",sortTitle:"Sort",expand:"Expand row",collapse:"Collapse row",triggerDesc:"Click sort by descend",triggerAsc:"Click sort by ascend",cancelSort:"Click to cancel sort"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Cancel"},Transfer:{titles:["",""],searchPlaceholder:"Search here",itemUnit:"item",itemsUnit:"items",remove:"Remove",selectCurrent:"Select current page",removeCurrent:"Remove current page",selectAll:"Select all data",removeAll:"Remove all data",selectInvert:"Invert current page"},Upload:{uploading:"Uploading...",removeFile:"Remove file",uploadError:"Upload error",previewFile:"Preview file",downloadFile:"Download file"},Empty:{description:"No Data"},Icon:{icon:"icon"},Text:{edit:"Edit",copy:"Copy",copied:"Copied",expand:"Expand"},PageHeader:{back:"Back"}},W={locale:"zh-cn",Pagination:{items_per_page:"\u6761/\u9875",jump_to:"\u8df3\u81f3",jump_to_confirm:"\u786e\u5b9a",page:"\u9875",prev_page:"\u4e0a\u4e00\u9875",next_page:"\u4e0b\u4e00\u9875",prev_5:"\u5411\u524d 5 \u9875",next_5:"\u5411\u540e 5 \u9875",prev_3:"\u5411\u524d 3 \u9875",next_3:"\u5411\u540e 3 \u9875"},DatePicker:{lang:{placeholder:"\u8bf7\u9009\u62e9\u65e5\u671f",yearPlaceholder:"\u8bf7\u9009\u62e9\u5e74\u4efd",quarterPlaceholder:"\u8bf7\u9009\u62e9\u5b63\u5ea6",monthPlaceholder:"\u8bf7\u9009\u62e9\u6708\u4efd",weekPlaceholder:"\u8bf7\u9009\u62e9\u5468",rangePlaceholder:["\u5f00\u59cb\u65e5\u671f","\u7ed3\u675f\u65e5\u671f"],rangeYearPlaceholder:["\u5f00\u59cb\u5e74\u4efd","\u7ed3\u675f\u5e74\u4efd"],rangeMonthPlaceholder:["\u5f00\u59cb\u6708\u4efd","\u7ed3\u675f\u6708\u4efd"],rangeWeekPlaceholder:["\u5f00\u59cb\u5468","\u7ed3\u675f\u5468"],locale:"zh_CN",today:"\u4eca\u5929",now:"\u6b64\u523b",backToToday:"\u8fd4\u56de\u4eca\u5929",ok:"\u786e\u5b9a",timeSelect:"\u9009\u62e9\u65f6\u95f4",dateSelect:"\u9009\u62e9\u65e5\u671f",weekSelect:"\u9009\u62e9\u5468",clear:"\u6e05\u9664",month:"\u6708",year:"\u5e74",previousMonth:"\u4e0a\u4e2a\u6708 (\u7ffb\u9875\u4e0a\u952e)",nextMonth:"\u4e0b\u4e2a\u6708 (\u7ffb\u9875\u4e0b\u952e)",monthSelect:"\u9009\u62e9\u6708\u4efd",yearSelect:"\u9009\u62e9\u5e74\u4efd",decadeSelect:"\u9009\u62e9\u5e74\u4ee3",yearFormat:"YYYY\u5e74",dayFormat:"D\u65e5",dateFormat:"YYYY\u5e74M\u6708D\u65e5",dateTimeFormat:"YYYY\u5e74M\u6708D\u65e5 HH\u65f6mm\u5206ss\u79d2",previousYear:"\u4e0a\u4e00\u5e74 (Control\u952e\u52a0\u5de6\u65b9\u5411\u952e)",nextYear:"\u4e0b\u4e00\u5e74 (Control\u952e\u52a0\u53f3\u65b9\u5411\u952e)",previousDecade:"\u4e0a\u4e00\u5e74\u4ee3",nextDecade:"\u4e0b\u4e00\u5e74\u4ee3",previousCentury:"\u4e0a\u4e00\u4e16\u7eaa",nextCentury:"\u4e0b\u4e00\u4e16\u7eaa"},timePickerLocale:{placeholder:"\u8bf7\u9009\u62e9\u65f6\u95f4",rangePlaceholder:["\u5f00\u59cb\u65f6\u95f4","\u7ed3\u675f\u65f6\u95f4"]}},TimePicker:{placeholder:"\u8bf7\u9009\u62e9\u65f6\u95f4",rangePlaceholder:["\u5f00\u59cb\u65f6\u95f4","\u7ed3\u675f\u65f6\u95f4"]},Calendar:{lang:{placeholder:"\u8bf7\u9009\u62e9\u65e5\u671f",yearPlaceholder:"\u8bf7\u9009\u62e9\u5e74\u4efd",quarterPlaceholder:"\u8bf7\u9009\u62e9\u5b63\u5ea6",monthPlaceholder:"\u8bf7\u9009\u62e9\u6708\u4efd",weekPlaceholder:"\u8bf7\u9009\u62e9\u5468",rangePlaceholder:["\u5f00\u59cb\u65e5\u671f","\u7ed3\u675f\u65e5\u671f"],rangeYearPlaceholder:["\u5f00\u59cb\u5e74\u4efd","\u7ed3\u675f\u5e74\u4efd"],rangeMonthPlaceholder:["\u5f00\u59cb\u6708\u4efd","\u7ed3\u675f\u6708\u4efd"],rangeWeekPlaceholder:["\u5f00\u59cb\u5468","\u7ed3\u675f\u5468"],locale:"zh_CN",today:"\u4eca\u5929",now:"\u6b64\u523b",backToToday:"\u8fd4\u56de\u4eca\u5929",ok:"\u786e\u5b9a",timeSelect:"\u9009\u62e9\u65f6\u95f4",dateSelect:"\u9009\u62e9\u65e5\u671f",weekSelect:"\u9009\u62e9\u5468",clear:"\u6e05\u9664",month:"\u6708",year:"\u5e74",previousMonth:"\u4e0a\u4e2a\u6708 (\u7ffb\u9875\u4e0a\u952e)",nextMonth:"\u4e0b\u4e2a\u6708 (\u7ffb\u9875\u4e0b\u952e)",monthSelect:"\u9009\u62e9\u6708\u4efd",yearSelect:"\u9009\u62e9\u5e74\u4efd",decadeSelect:"\u9009\u62e9\u5e74\u4ee3",yearFormat:"YYYY\u5e74",dayFormat:"D\u65e5",dateFormat:"YYYY\u5e74M\u6708D\u65e5",dateTimeFormat:"YYYY\u5e74M\u6708D\u65e5 HH\u65f6mm\u5206ss\u79d2",previousYear:"\u4e0a\u4e00\u5e74 (Control\u952e\u52a0\u5de6\u65b9\u5411\u952e)",nextYear:"\u4e0b\u4e00\u5e74 (Control\u952e\u52a0\u53f3\u65b9\u5411\u952e)",previousDecade:"\u4e0a\u4e00\u5e74\u4ee3",nextDecade:"\u4e0b\u4e00\u5e74\u4ee3",previousCentury:"\u4e0a\u4e00\u4e16\u7eaa",nextCentury:"\u4e0b\u4e00\u4e16\u7eaa"},timePickerLocale:{placeholder:"\u8bf7\u9009\u62e9\u65f6\u95f4",rangePlaceholder:["\u5f00\u59cb\u65f6\u95f4","\u7ed3\u675f\u65f6\u95f4"]}},global:{placeholder:"\u8bf7\u9009\u62e9"},Table:{filterTitle:"\u7b5b\u9009",filterConfirm:"\u786e\u5b9a",filterReset:"\u91cd\u7f6e",filterEmptyText:"\u65e0\u7b5b\u9009\u9879",selectAll:"\u5168\u9009\u5f53\u9875",selectInvert:"\u53cd\u9009\u5f53\u9875",selectionAll:"\u5168\u9009\u6240\u6709",sortTitle:"\u6392\u5e8f",expand:"\u5c55\u5f00\u884c",collapse:"\u5173\u95ed\u884c",triggerDesc:"\u70b9\u51fb\u964d\u5e8f",triggerAsc:"\u70b9\u51fb\u5347\u5e8f",cancelSort:"\u53d6\u6d88\u6392\u5e8f"},Modal:{okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",justOkText:"\u77e5\u9053\u4e86"},Popconfirm:{cancelText:"\u53d6\u6d88",okText:"\u786e\u5b9a"},Transfer:{searchPlaceholder:"\u8bf7\u8f93\u5165\u641c\u7d22\u5185\u5bb9",itemUnit:"\u9879",itemsUnit:"\u9879",remove:"\u5220\u9664",selectCurrent:"\u5168\u9009\u5f53\u9875",removeCurrent:"\u5220\u9664\u5f53\u9875",selectAll:"\u5168\u9009\u6240\u6709",removeAll:"\u5220\u9664\u5168\u90e8",selectInvert:"\u53cd\u9009\u5f53\u9875"},Upload:{uploading:"\u6587\u4ef6\u4e0a\u4f20\u4e2d",removeFile:"\u5220\u9664\u6587\u4ef6",uploadError:"\u4e0a\u4f20\u9519\u8bef",previewFile:"\u9884\u89c8\u6587\u4ef6",downloadFile:"\u4e0b\u8f7d\u6587\u4ef6"},Empty:{description:"\u6682\u65e0\u6570\u636e"},Icon:{icon:"\u56fe\u6807"},Text:{edit:"\u7f16\u8f91",copy:"\u590d\u5236",copied:"\u590d\u5236\u6210\u529f",expand:"\u5c55\u5f00"},PageHeader:{back:"\u8fd4\u56de"}};const x=new c.OlP("nz-i18n"),S=new c.OlP("nz-date-locale");let B=(()=>{class at{constructor(Ee,de){this._change=new s.X(this._locale),this.setLocale(Ee||W),this.setDateLocale(de||null)}get localeChange(){return this._change.asObservable()}translate(Ee,de){let te=this._getObjectPath(this._locale,Ee);return"string"==typeof te?(de&&Object.keys(de).forEach(Le=>te=te.replace(new RegExp(`%${Le}%`,"g"),de[Le])),te):Ee}setLocale(Ee){this._locale&&this._locale.locale===Ee.locale||(this._locale=Ee,this._change.next(Ee))}getLocale(){return this._locale}getLocaleId(){return this._locale?this._locale.locale:""}setDateLocale(Ee){this.dateLocale=Ee}getDateLocale(){return this.dateLocale}getLocaleData(Ee,de){const te=Ee?this._getObjectPath(this._locale,Ee):this._locale;return!te&&!de&&(0,z.ZK)(`Missing translations for "${Ee}" in language "${this._locale.locale}".\nYou can use "NzI18nService.setLocale" as a temporary fix.\nWelcome to submit a pull request to help us optimize the translations!\nhttps://github.com/NG-ZORRO/ng-zorro-antd/blob/master/CONTRIBUTING.md`),te||de||this._getObjectPath(le,Ee)||{}}_getObjectPath(Ee,de){let te=Ee;const Le=de.split("."),ct=Le.length;let xt=0;for(;te&&xt<ct;)te=te[Le[xt++]];return xt===ct?te:null}}return at.\u0275fac=function(Ee){return new(Ee||at)(c.LFG(x,8),c.LFG(S,8))},at.\u0275prov=c.Yz7({factory:function(){return new at(c.LFG(x,8),c.LFG(S,8))},token:at,providedIn:"root"}),at})(),U=(()=>{class at{constructor(Ee){this._locale=Ee}transform(Ee,de){return this._locale.translate(Ee,de)}}return at.\u0275fac=function(Ee){return new(Ee||at)(c.Y36(B,16))},at.\u0275pipe=c.Yjl({name:"nzI18n",type:at,pure:!0}),at})(),F=(()=>{class at{}return at.\u0275fac=function(Ee){return new(Ee||at)},at.\u0275mod=c.oAB({type:at}),at.\u0275inj=c.cJS({}),at})();new c.OlP("date-config")},464:(yt,De,m)=>{"use strict";m.d(De,{sV:()=>$t,Ls:()=>Rt,PV:()=>Ut});var c=m(521),s=m(7716),z=m(4762),le=m(8583);function W(M,k){(function(M){return"string"==typeof M&&-1!==M.indexOf(".")&&1===parseFloat(M)})(M)&&(M="100%");var _=function(M){return"string"==typeof M&&-1!==M.indexOf("%")}(M);return M=360===k?M:Math.min(k,Math.max(0,parseFloat(M))),_&&(M=parseInt(String(M*k),10)/100),Math.abs(M-k)<1e-6?1:M=360===k?(M<0?M%k+k:M%k)/parseFloat(String(k)):M%k/parseFloat(String(k))}function x(M){return Math.min(1,Math.max(0,M))}function U(M){return M=parseFloat(M),(isNaN(M)||M<0||M>1)&&(M=1),M}function F(M){return M<=1?100*Number(M)+"%":M}function Y(M){return 1===M.length?"0"+M:String(M)}function be(M,k,_){M=W(M,255),k=W(k,255),_=W(_,255);var re=Math.max(M,k,_),Ye=Math.min(M,k,_),ot=0,zt=0,Vt=(re+Ye)/2;if(re===Ye)zt=0,ot=0;else{var Kt=re-Ye;switch(zt=Vt>.5?Kt/(2-re-Ye):Kt/(re+Ye),re){case M:ot=(k-_)/Kt+(k<_?6:0);break;case k:ot=(_-M)/Kt+2;break;case _:ot=(M-k)/Kt+4}ot/=6}return{h:ot,s:zt,l:Vt}}function je(M,k,_){return _<0&&(_+=1),_>1&&(_-=1),_<1/6?M+6*_*(k-M):_<.5?k:_<2/3?M+(k-M)*(2/3-_)*6:M}function $e(M,k,_){M=W(M,255),k=W(k,255),_=W(_,255);var re=Math.max(M,k,_),Ye=Math.min(M,k,_),ot=0,zt=re,Vt=re-Ye,Kt=0===re?0:Vt/re;if(re===Ye)ot=0;else{switch(re){case M:ot=(k-_)/Vt+(k<_?6:0);break;case k:ot=(_-M)/Vt+2;break;case _:ot=(M-k)/Vt+4}ot/=6}return{h:ot,s:Kt,v:zt}}function ut(M,k,_,re){var Ye=[Y(Math.round(M).toString(16)),Y(Math.round(k).toString(16)),Y(Math.round(_).toString(16))];return re&&Ye[0].startsWith(Ye[0].charAt(1))&&Ye[1].startsWith(Ye[1].charAt(1))&&Ye[2].startsWith(Ye[2].charAt(1))?Ye[0].charAt(0)+Ye[1].charAt(0)+Ye[2].charAt(0):Ye.join("")}function We(M){return Math.round(255*parseFloat(M)).toString(16)}function Re(M){return Ze(M)/255}function Ze(M){return parseInt(M,16)}var st={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};var oe="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",fe="[\\s|\\(]+("+oe+")[,|\\s]+("+oe+")[,|\\s]+("+oe+")\\s*\\)?",Oe="[\\s|\\(]+("+oe+")[,|\\s]+("+oe+")[,|\\s]+("+oe+")[,|\\s]+("+oe+")\\s*\\)?",pe={CSS_UNIT:new RegExp(oe),rgb:new RegExp("rgb"+fe),rgba:new RegExp("rgba"+Oe),hsl:new RegExp("hsl"+fe),hsla:new RegExp("hsla"+Oe),hsv:new RegExp("hsv"+fe),hsva:new RegExp("hsva"+Oe),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function Ne(M){return Boolean(pe.CSS_UNIT.exec(String(M)))}var Ie=function(){function M(k,_){var re;if(void 0===k&&(k=""),void 0===_&&(_={}),k instanceof M)return k;"number"==typeof k&&(k=function(M){return{r:M>>16,g:(65280&M)>>8,b:255&M}}(k)),this.originalInput=k;var Ye=function(M){var k={r:0,g:0,b:0},_=1,re=null,Ye=null,ot=null,zt=!1,Vt=!1;return"string"==typeof M&&(M=function(M){if(0===(M=M.trim().toLowerCase()).length)return!1;var k=!1;if(st[M])M=st[M],k=!0;else if("transparent"===M)return{r:0,g:0,b:0,a:0,format:"name"};var _=pe.rgb.exec(M);return _?{r:_[1],g:_[2],b:_[3]}:(_=pe.rgba.exec(M))?{r:_[1],g:_[2],b:_[3],a:_[4]}:(_=pe.hsl.exec(M))?{h:_[1],s:_[2],l:_[3]}:(_=pe.hsla.exec(M))?{h:_[1],s:_[2],l:_[3],a:_[4]}:(_=pe.hsv.exec(M))?{h:_[1],s:_[2],v:_[3]}:(_=pe.hsva.exec(M))?{h:_[1],s:_[2],v:_[3],a:_[4]}:(_=pe.hex8.exec(M))?{r:Ze(_[1]),g:Ze(_[2]),b:Ze(_[3]),a:Re(_[4]),format:k?"name":"hex8"}:(_=pe.hex6.exec(M))?{r:Ze(_[1]),g:Ze(_[2]),b:Ze(_[3]),format:k?"name":"hex"}:(_=pe.hex4.exec(M))?{r:Ze(_[1]+_[1]),g:Ze(_[2]+_[2]),b:Ze(_[3]+_[3]),a:Re(_[4]+_[4]),format:k?"name":"hex8"}:!!(_=pe.hex3.exec(M))&&{r:Ze(_[1]+_[1]),g:Ze(_[2]+_[2]),b:Ze(_[3]+_[3]),format:k?"name":"hex"}}(M)),"object"==typeof M&&(Ne(M.r)&&Ne(M.g)&&Ne(M.b)?(k=function(M,k,_){return{r:255*W(M,255),g:255*W(k,255),b:255*W(_,255)}}(M.r,M.g,M.b),zt=!0,Vt="%"===String(M.r).substr(-1)?"prgb":"rgb"):Ne(M.h)&&Ne(M.s)&&Ne(M.v)?(re=F(M.s),Ye=F(M.v),k=function(M,k,_){M=6*W(M,360),k=W(k,100),_=W(_,100);var re=Math.floor(M),Ye=M-re,ot=_*(1-k),zt=_*(1-Ye*k),Vt=_*(1-(1-Ye)*k),Kt=re%6;return{r:255*[_,zt,ot,ot,Vt,_][Kt],g:255*[Vt,_,_,zt,ot,ot][Kt],b:255*[ot,ot,Vt,_,_,zt][Kt]}}(M.h,re,Ye),zt=!0,Vt="hsv"):Ne(M.h)&&Ne(M.s)&&Ne(M.l)&&(re=F(M.s),ot=F(M.l),k=function(M,k,_){var re,Ye,ot;if(M=W(M,360),k=W(k,100),_=W(_,100),0===k)Ye=_,ot=_,re=_;else{var zt=_<.5?_*(1+k):_+k-_*k,Vt=2*_-zt;re=je(Vt,zt,M+1/3),Ye=je(Vt,zt,M),ot=je(Vt,zt,M-1/3)}return{r:255*re,g:255*Ye,b:255*ot}}(M.h,re,ot),zt=!0,Vt="hsl"),Object.prototype.hasOwnProperty.call(M,"a")&&(_=M.a)),_=U(_),{ok:zt,format:M.format||Vt,r:Math.min(255,Math.max(k.r,0)),g:Math.min(255,Math.max(k.g,0)),b:Math.min(255,Math.max(k.b,0)),a:_}}(k);this.originalInput=k,this.r=Ye.r,this.g=Ye.g,this.b=Ye.b,this.a=Ye.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(re=_.format)&&void 0!==re?re:Ye.format,this.gradientType=_.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=Ye.ok}return M.prototype.isDark=function(){return this.getBrightness()<128},M.prototype.isLight=function(){return!this.isDark()},M.prototype.getBrightness=function(){var k=this.toRgb();return(299*k.r+587*k.g+114*k.b)/1e3},M.prototype.getLuminance=function(){var k=this.toRgb(),ot=k.r/255,zt=k.g/255,Vt=k.b/255;return.2126*(ot<=.03928?ot/12.92:Math.pow((ot+.055)/1.055,2.4))+.7152*(zt<=.03928?zt/12.92:Math.pow((zt+.055)/1.055,2.4))+.0722*(Vt<=.03928?Vt/12.92:Math.pow((Vt+.055)/1.055,2.4))},M.prototype.getAlpha=function(){return this.a},M.prototype.setAlpha=function(k){return this.a=U(k),this.roundA=Math.round(100*this.a)/100,this},M.prototype.toHsv=function(){var k=$e(this.r,this.g,this.b);return{h:360*k.h,s:k.s,v:k.v,a:this.a}},M.prototype.toHsvString=function(){var k=$e(this.r,this.g,this.b),_=Math.round(360*k.h),re=Math.round(100*k.s),Ye=Math.round(100*k.v);return 1===this.a?"hsv("+_+", "+re+"%, "+Ye+"%)":"hsva("+_+", "+re+"%, "+Ye+"%, "+this.roundA+")"},M.prototype.toHsl=function(){var k=be(this.r,this.g,this.b);return{h:360*k.h,s:k.s,l:k.l,a:this.a}},M.prototype.toHslString=function(){var k=be(this.r,this.g,this.b),_=Math.round(360*k.h),re=Math.round(100*k.s),Ye=Math.round(100*k.l);return 1===this.a?"hsl("+_+", "+re+"%, "+Ye+"%)":"hsla("+_+", "+re+"%, "+Ye+"%, "+this.roundA+")"},M.prototype.toHex=function(k){return void 0===k&&(k=!1),ut(this.r,this.g,this.b,k)},M.prototype.toHexString=function(k){return void 0===k&&(k=!1),"#"+this.toHex(k)},M.prototype.toHex8=function(k){return void 0===k&&(k=!1),function(M,k,_,re,Ye){var ot=[Y(Math.round(M).toString(16)),Y(Math.round(k).toString(16)),Y(Math.round(_).toString(16)),Y(We(re))];return Ye&&ot[0].startsWith(ot[0].charAt(1))&&ot[1].startsWith(ot[1].charAt(1))&&ot[2].startsWith(ot[2].charAt(1))&&ot[3].startsWith(ot[3].charAt(1))?ot[0].charAt(0)+ot[1].charAt(0)+ot[2].charAt(0)+ot[3].charAt(0):ot.join("")}(this.r,this.g,this.b,this.a,k)},M.prototype.toHex8String=function(k){return void 0===k&&(k=!1),"#"+this.toHex8(k)},M.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},M.prototype.toRgbString=function(){var k=Math.round(this.r),_=Math.round(this.g),re=Math.round(this.b);return 1===this.a?"rgb("+k+", "+_+", "+re+")":"rgba("+k+", "+_+", "+re+", "+this.roundA+")"},M.prototype.toPercentageRgb=function(){var k=function(_){return Math.round(100*W(_,255))+"%"};return{r:k(this.r),g:k(this.g),b:k(this.b),a:this.a}},M.prototype.toPercentageRgbString=function(){var k=function(_){return Math.round(100*W(_,255))};return 1===this.a?"rgb("+k(this.r)+"%, "+k(this.g)+"%, "+k(this.b)+"%)":"rgba("+k(this.r)+"%, "+k(this.g)+"%, "+k(this.b)+"%, "+this.roundA+")"},M.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var k="#"+ut(this.r,this.g,this.b,!1),_=0,re=Object.entries(st);_<re.length;_++){var Ye=re[_];if(k===Ye[1])return Ye[0]}return!1},M.prototype.toString=function(k){var _=Boolean(k);k=null!=k?k:this.format;var re=!1;return!_&&this.a<1&&this.a>=0&&(k.startsWith("hex")||"name"===k)?"name"===k&&0===this.a?this.toName():this.toRgbString():("rgb"===k&&(re=this.toRgbString()),"prgb"===k&&(re=this.toPercentageRgbString()),("hex"===k||"hex6"===k)&&(re=this.toHexString()),"hex3"===k&&(re=this.toHexString(!0)),"hex4"===k&&(re=this.toHex8String(!0)),"hex8"===k&&(re=this.toHex8String()),"name"===k&&(re=this.toName()),"hsl"===k&&(re=this.toHslString()),"hsv"===k&&(re=this.toHsvString()),re||this.toHexString())},M.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},M.prototype.clone=function(){return new M(this.toString())},M.prototype.lighten=function(k){void 0===k&&(k=10);var _=this.toHsl();return _.l+=k/100,_.l=x(_.l),new M(_)},M.prototype.brighten=function(k){void 0===k&&(k=10);var _=this.toRgb();return _.r=Math.max(0,Math.min(255,_.r-Math.round(-k/100*255))),_.g=Math.max(0,Math.min(255,_.g-Math.round(-k/100*255))),_.b=Math.max(0,Math.min(255,_.b-Math.round(-k/100*255))),new M(_)},M.prototype.darken=function(k){void 0===k&&(k=10);var _=this.toHsl();return _.l-=k/100,_.l=x(_.l),new M(_)},M.prototype.tint=function(k){return void 0===k&&(k=10),this.mix("white",k)},M.prototype.shade=function(k){return void 0===k&&(k=10),this.mix("black",k)},M.prototype.desaturate=function(k){void 0===k&&(k=10);var _=this.toHsl();return _.s-=k/100,_.s=x(_.s),new M(_)},M.prototype.saturate=function(k){void 0===k&&(k=10);var _=this.toHsl();return _.s+=k/100,_.s=x(_.s),new M(_)},M.prototype.greyscale=function(){return this.desaturate(100)},M.prototype.spin=function(k){var _=this.toHsl(),re=(_.h+k)%360;return _.h=re<0?360+re:re,new M(_)},M.prototype.mix=function(k,_){void 0===_&&(_=50);var re=this.toRgb(),Ye=new M(k).toRgb(),ot=_/100;return new M({r:(Ye.r-re.r)*ot+re.r,g:(Ye.g-re.g)*ot+re.g,b:(Ye.b-re.b)*ot+re.b,a:(Ye.a-re.a)*ot+re.a})},M.prototype.analogous=function(k,_){void 0===k&&(k=6),void 0===_&&(_=30);var re=this.toHsl(),Ye=360/_,ot=[this];for(re.h=(re.h-(Ye*k>>1)+720)%360;--k;)re.h=(re.h+Ye)%360,ot.push(new M(re));return ot},M.prototype.complement=function(){var k=this.toHsl();return k.h=(k.h+180)%360,new M(k)},M.prototype.monochromatic=function(k){void 0===k&&(k=6);for(var _=this.toHsv(),re=_.h,Ye=_.s,ot=_.v,zt=[],Vt=1/k;k--;)zt.push(new M({h:re,s:Ye,v:ot})),ot=(ot+Vt)%1;return zt},M.prototype.splitcomplement=function(){var k=this.toHsl(),_=k.h;return[this,new M({h:(_+72)%360,s:k.s,l:k.l}),new M({h:(_+216)%360,s:k.s,l:k.l})]},M.prototype.onBackground=function(k){var _=this.toRgb(),re=new M(k).toRgb();return new M({r:re.r+(_.r-re.r)*_.a,g:re.g+(_.g-re.g)*_.a,b:re.b+(_.b-re.b)*_.a})},M.prototype.triad=function(){return this.polyad(3)},M.prototype.tetrad=function(){return this.polyad(4)},M.prototype.polyad=function(k){for(var _=this.toHsl(),re=_.h,Ye=[this],ot=360/k,zt=1;zt<k;zt++)Ye.push(new M({h:(re+zt*ot)%360,s:_.s,l:_.l}));return Ye},M.prototype.equals=function(k){return this.toRgbString()===new M(k).toRgbString()},M}(),lt=[{index:7,opacity:.15},{index:6,opacity:.25},{index:5,opacity:.3},{index:5,opacity:.45},{index:5,opacity:.65},{index:5,opacity:.85},{index:4,opacity:.9},{index:3,opacity:.95},{index:2,opacity:.97},{index:1,opacity:.98}];function Dt(M,k,_){var re;return(re=Math.round(M.h)>=60&&Math.round(M.h)<=240?_?Math.round(M.h)-2*k:Math.round(M.h)+2*k:_?Math.round(M.h)+2*k:Math.round(M.h)-2*k)<0?re+=360:re>=360&&(re-=360),re}function Ht(M,k,_){return 0===M.h&&0===M.s?M.s:((re=_?M.s-.16*k:4===k?M.s+.16:M.s+.05*k)>1&&(re=1),_&&5===k&&re>.1&&(re=.1),re<.06&&(re=.06),Number(re.toFixed(2)));var re}function un(M,k,_){var re;return(re=_?M.v+.05*k:M.v-.15*k)>1&&(re=1),Number(re.toFixed(2))}function en(M){for(var k=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},_=[],re=new Ie(M),Ye=5;Ye>0;Ye-=1){var ot=re.toHsv(),zt=new Ie({h:Dt(ot,Ye,!0),s:Ht(ot,Ye,!0),v:un(ot,Ye,!0)}).toHexString();_.push(zt)}_.push(re.toHexString());for(var Vt=1;Vt<=4;Vt+=1){var Kt=re.toHsv(),yn=new Ie({h:Dt(Kt,Vt),s:Ht(Kt,Vt),v:un(Kt,Vt)}).toHexString();_.push(yn)}return"dark"===k.theme?lt.map(function(ni){var Xn=ni.index,Hn=ni.opacity;return new Ie(k.backgroundColor||"#141414").mix(_[Xn],100*Hn).toHexString()}):_}var wn={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1890FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"},It={},tn={};Object.keys(wn).forEach(function(M){It[M]=en(wn[M]),It[M].primary=It[M][5],tn[M]=en(wn[M],{theme:"dark",backgroundColor:"#141414"}),tn[M].primary=tn[M][5]});var _e=m(1841),ve=m(9765),Ce=m(5917),H=m(8891),ce=m(8002),Je=m(8307),ge=m(8939),it=m(5304),X=m(8345),Q=m(5435),at=m(5257),wt=m(9075);const Ee="[@ant-design/icons-angular]:";function te(M){(0,s.X6Q)()&&console.warn(`${Ee} ${M}.`)}function Le(M){return en(M)[0]}function ct(M,k){switch(k){case"fill":return`${M}-fill`;case"outline":return`${M}-o`;case"twotone":return`${M}-twotone`;case void 0:return M;default:throw new Error(`${Ee}Theme "${k}" is not a recognized theme!`)}}function Sn(M){return"object"==typeof M&&"string"==typeof M.name&&("string"==typeof M.theme||void 0===M.theme)&&"string"==typeof M.icon}function zn(M){const k=M.split(":");switch(k.length){case 1:return[M,""];case 2:return[k[1],k[0]];default:throw new Error(`${Ee}The icon type ${M} is not valid!`)}}function xn(){return new Error(`${Ee}<svg> tag not found.`)}let Ot=(()=>{class M{constructor(_,re,Ye,ot){this._rendererFactory=_,this._handler=re,this._document=Ye,this.sanitizer=ot,this.defaultTheme="outline",this._svgDefinitions=new Map,this._svgRenderedDefinitions=new Map,this._inProgressFetches=new Map,this._assetsUrlRoot="",this._twoToneColorPalette={primaryColor:"#333333",secondaryColor:"#E6E6E6"},this._enableJsonpLoading=!1,this._jsonpIconLoad$=new ve.xQ,this._renderer=this._rendererFactory.createRenderer(null,null),this._handler&&(this._http=new _e.eN(this._handler))}set twoToneColor({primaryColor:_,secondaryColor:re}){this._twoToneColorPalette.primaryColor=_,this._twoToneColorPalette.secondaryColor=re||Le(_)}get twoToneColor(){return Object.assign({},this._twoToneColorPalette)}useJsonpLoading(){this._enableJsonpLoading?te("You are already using jsonp loading."):(this._enableJsonpLoading=!0,window.__ant_icon_load=_=>{this._jsonpIconLoad$.next(_)})}changeAssetsSource(_){this._assetsUrlRoot=_.endsWith("/")?_:_+"/"}addIcon(..._){_.forEach(re=>{this._svgDefinitions.set(ct(re.name,re.theme),re)})}addIconLiteral(_,re){const[Ye,ot]=zn(_);if(!ot)throw new Error(`${Ee}Type should have a namespace. Try "namespace:${name}".`);this.addIcon({name:_,icon:re})}clear(){this._svgDefinitions.clear(),this._svgRenderedDefinitions.clear()}getRenderedContent(_,re){const Ye=Sn(_)?_:this._svgDefinitions.get(_)||null;return(Ye?(0,Ce.of)(Ye):this._loadIconDynamically(_)).pipe((0,ce.U)(zt=>{if(!zt)throw function(M){return new Error(`${Ee}the icon ${M} does not exist or is not registered.`)}(_);return this._loadSVGFromCacheOrCreateNew(zt,re)}))}getCachedIcons(){return this._svgDefinitions}_loadIconDynamically(_){if(!this._http&&!this._enableJsonpLoading)return(0,Ce.of)((console.error(`${Ee} you need to import "HttpClientModule" to use dynamic importing..`),null));let re=this._inProgressFetches.get(_);if(!re){const[Ye,ot]=zn(_),zt=ot?{name:_,icon:""}:function(M){const k=M.split("-"),_=function(M){return"o"===M?"outline":M}(k.splice(k.length-1,1)[0]);return{name:k.join("-"),theme:_,icon:""}}(Ye),Kt=(ot?`${this._assetsUrlRoot}assets/${ot}/${Ye}`:`${this._assetsUrlRoot}assets/${zt.theme}/${zt.name}`)+(this._enableJsonpLoading?".js":".svg"),yn=this.sanitizer.sanitize(s.q3G.URL,Kt);if(!yn)throw function(M){return new Error(`${Ee}The url "${M}" is unsafe.`)}(Kt);re=(this._enableJsonpLoading?this._loadIconDynamicallyWithJsonp(zt,yn):this._http.get(yn,{responseType:"text"}).pipe((0,ce.U)(Xn=>Object.assign(Object.assign({},zt),{icon:Xn})))).pipe((0,Je.b)(Xn=>this.addIcon(Xn)),(0,ge.x)(()=>this._inProgressFetches.delete(_)),(0,it.K)(()=>(0,Ce.of)(null)),(0,X.B)()),this._inProgressFetches.set(_,re)}return re}_loadIconDynamicallyWithJsonp(_,re){return new H.y(Ye=>{const ot=this._document.createElement("script"),zt=setTimeout(()=>{Vt(),Ye.error(new Error(`${Ee}Importing timeout error.`))},6e3);function Vt(){ot.parentNode.removeChild(ot),clearTimeout(zt)}ot.src=re,this._document.body.appendChild(ot),this._jsonpIconLoad$.pipe((0,Q.h)(Kt=>Kt.name===_.name&&Kt.theme===_.theme),(0,at.q)(1)).subscribe(Kt=>{Ye.next(Kt),Vt()})})}_loadSVGFromCacheOrCreateNew(_,re){let Ye;const ot=re||this._twoToneColorPalette.primaryColor,zt=Le(ot)||this._twoToneColorPalette.secondaryColor,Vt="twotone"===_.theme?function(M,k,_,re){return`${ct(M,k)}-${_}-${re}`}(_.name,_.theme,ot,zt):void 0===_.theme?_.name:ct(_.name,_.theme),Kt=this._svgRenderedDefinitions.get(Vt);return Kt?Ye=Kt.icon:(Ye=this._setSVGAttribute(this._colorizeSVGIcon(this._createSVGElementFromString(function(M){return""!==zn(M)[1]}(_.name)?_.icon:function(M){return M.replace(/['"]#333['"]/g,'"primaryColor"').replace(/['"]#E6E6E6['"]/g,'"secondaryColor"').replace(/['"]#D9D9D9['"]/g,'"secondaryColor"').replace(/['"]#D8D8D8['"]/g,'"secondaryColor"')}(_.icon)),"twotone"===_.theme,ot,zt)),this._svgRenderedDefinitions.set(Vt,Object.assign(Object.assign({},_),{icon:Ye}))),function(M){return M.cloneNode(!0)}(Ye)}_createSVGElementFromString(_){const re=this._document.createElement("div");re.innerHTML=_;const Ye=re.querySelector("svg");if(!Ye)throw xn;return Ye}_setSVGAttribute(_){return this._renderer.setAttribute(_,"width","1em"),this._renderer.setAttribute(_,"height","1em"),_}_colorizeSVGIcon(_,re,Ye,ot){if(re){const zt=_.childNodes,Vt=zt.length;for(let Kt=0;Kt<Vt;Kt++){const yn=zt[Kt];"secondaryColor"===yn.getAttribute("fill")?this._renderer.setAttribute(yn,"fill",ot):this._renderer.setAttribute(yn,"fill",Ye)}}return this._renderer.setAttribute(_,"fill","currentColor"),_}}return M.\u0275fac=function(_){return new(_||M)(s.LFG(s.FYo),s.LFG(_e.jN,8),s.LFG(le.K0,8),s.LFG(wt.H7))},M.\u0275prov=s.Yz7({token:M,factory:M.\u0275fac}),M})(),_n=(()=>{class M{constructor(_,re,Ye){this._iconService=_,this._elementRef=re,this._renderer=Ye}ngOnChanges(_){(_.type||_.theme||_.twoToneColor)&&this._changeIcon()}_changeIcon(){return new Promise(_=>{if(this.type){const re=this._getSelfRenderMeta();this._iconService.getRenderedContent(this._parseIconType(this.type,this.theme),this.twoToneColor).subscribe(Ye=>{!function(M,k){return M.type===k.type&&M.theme===k.theme&&M.twoToneColor===k.twoToneColor}(re,this._getSelfRenderMeta())?_(null):(this._setSVGElement(Ye),_(Ye))})}else this._clearSVGElement(),_(null)})}_getSelfRenderMeta(){return{type:this.type,theme:this.theme,twoToneColor:this.twoToneColor}}_parseIconType(_,re){if(Sn(_))return _;{const[Ye,ot]=zn(_);return ot?_:function(M){return M.endsWith("-fill")||M.endsWith("-o")||M.endsWith("-twotone")}(Ye)?(re&&te(`'type' ${Ye} already gets a theme inside so 'theme' ${re} would be ignored`),Ye):ct(Ye,re||this._iconService.defaultTheme)}}_setSVGElement(_){this._clearSVGElement(),this._renderer.appendChild(this._elementRef.nativeElement,_)}_clearSVGElement(){var _;const re=this._elementRef.nativeElement,Ye=re.childNodes;for(let zt=Ye.length-1;zt>=0;zt--){const Vt=Ye[zt];"svg"===(null===(_=Vt.tagName)||void 0===_?void 0:_.toLowerCase())&&this._renderer.removeChild(re,Vt)}}}return M.\u0275fac=function(_){return new(_||M)(s.Y36(Ot),s.Y36(s.SBq),s.Y36(s.Qsj))},M.\u0275dir=s.lG2({type:M,selectors:[["","antIcon",""]],inputs:{type:"type",theme:"theme",twoToneColor:"twoToneColor"},features:[s.TTD]}),M})();var Bn=m(6182),si=m(2729),Fn=m(6956),jt=m(6390);const li=[jt.V65,jt.ud1,jt.bBn,jt.BOg,jt.Hkd,jt.XuQ,jt.Rfq,jt.yQU,jt.U2Q,jt.UKj,jt.OYp,jt.BXH,jt.eLU,jt.x0x,jt.VWu,jt.rMt,jt.vEg,jt.RIp,jt.RU0,jt.M8e,jt.ssy,jt.Z5F,jt.iUK,jt.LJh,jt.NFG,jt.UTl,jt.nrZ,jt.gvV,jt.d2H,jt.eFY,jt.sZJ,jt.np6,jt.w1L,jt.UY$,jt.v6v,jt.rHg,jt.v6v,jt.s_U,jt.TSL,jt.FsU,jt.cN2,jt.uIz,jt.d_$],$t=new s.OlP("nz_icons"),ke=(new s.OlP("nz_icon_default_twotone_color"),"#1890ff");let ue=(()=>{class M extends Ot{constructor(_,re,Ye,ot,zt,Vt){super(_,ot,zt,re),this.nzConfigService=Ye,this.configUpdated$=new ve.xQ,this.iconfontCache=new Set,this.subscription=null,this.onConfigChange(),this.addIcon(...li,...Vt||[]),this.configDefaultTwotoneColor(),this.configDefaultTheme()}ngOnDestroy(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=null)}normalizeSvgElement(_){_.getAttribute("viewBox")||this._renderer.setAttribute(_,"viewBox","0 0 1024 1024"),(!_.getAttribute("width")||!_.getAttribute("height"))&&(this._renderer.setAttribute(_,"width","1em"),this._renderer.setAttribute(_,"height","1em")),_.getAttribute("fill")||this._renderer.setAttribute(_,"fill","currentColor")}fetchFromIconfont(_){const{scriptUrl:re}=_;if(this._document&&!this.iconfontCache.has(re)){const Ye=this._renderer.createElement("script");this._renderer.setAttribute(Ye,"src",re),this._renderer.setAttribute(Ye,"data-namespace",re.replace(/^(https?|http):/g,"")),this._renderer.appendChild(this._document.body,Ye),this.iconfontCache.add(re)}}createIconfontIcon(_){return this._createSVGElementFromString(`<svg><use xlink:href="${_}"></svg>`)}onConfigChange(){this.subscription=this.nzConfigService.getConfigChangeEventForComponent("icon").subscribe(()=>{this.configDefaultTwotoneColor(),this.configDefaultTheme(),this.configUpdated$.next()})}configDefaultTheme(){const _=this.getConfig();this.defaultTheme=_.nzTheme||"outline"}configDefaultTwotoneColor(){const re=this.getConfig().nzTwotoneColor||ke;let Ye=ke;re&&(re.startsWith("#")?Ye=re:(0,Fn.ZK)("Twotone color must be a hex color!")),this.twoToneColor={primaryColor:Ye}}getConfig(){return this.nzConfigService.getConfigForComponent("icon")||{}}}return M.\u0275fac=function(_){return new(_||M)(s.LFG(s.FYo),s.LFG(wt.H7),s.LFG(si.jY),s.LFG(_e.jN,8),s.LFG(le.K0,8),s.LFG($t,8))},M.\u0275prov=s.Yz7({factory:function(){return new M(s.LFG(s.FYo),s.LFG(wt.H7),s.LFG(si.jY),s.LFG(_e.jN,8),s.LFG(le.K0,8),s.LFG($t,8))},token:M,providedIn:"root"}),M})();const qe=new s.OlP("nz_icons_patch");let gt=(()=>{class M{constructor(_,re){this.extraIcons=_,this.rootIconService=re,this.patched=!1}doPatch(){this.patched||(this.extraIcons.forEach(_=>this.rootIconService.addIcon(_)),this.patched=!0)}}return M.\u0275fac=function(_){return new(_||M)(s.LFG(qe,2),s.LFG(ue))},M.\u0275prov=s.Yz7({token:M,factory:M.\u0275fac}),M})(),Rt=(()=>{class M extends _n{constructor(_,re,Ye,ot){super(re,_,Ye),this.iconService=re,this.renderer=Ye,this.cacheClassName=null,this.nzRotate=0,this.spin=!1,ot&&ot.doPatch(),this.el=_.nativeElement}set nzSpin(_){this.spin=_}set nzType(_){this.type=_}set nzTheme(_){this.theme=_}set nzTwotoneColor(_){this.twoToneColor=_}set nzIconfont(_){this.iconfont=_}ngOnChanges(_){const{nzType:re,nzTwotoneColor:Ye,nzSpin:ot,nzTheme:zt,nzRotate:Vt}=_;re||Ye||ot||zt?this.changeIcon2():Vt?this.handleRotate(this.el.firstChild):this._setSVGElement(this.iconService.createIconfontIcon(`#${this.iconfont}`))}ngOnInit(){this.renderer.setAttribute(this.el,"class",`anticon ${this.el.className}`.trim())}ngAfterContentChecked(){if(!this.type){const _=this.el.children;let re=_.length;if(!this.type&&_.length)for(;re--;){const Ye=_[re];"svg"===Ye.tagName.toLowerCase()&&this.iconService.normalizeSvgElement(Ye)}}}changeIcon2(){this.setClassName(),this._changeIcon().then(_=>{_&&(this.setSVGData(_),this.handleSpin(_),this.handleRotate(_))})}handleSpin(_){this.spin||"loading"===this.type?this.renderer.addClass(_,"anticon-spin"):this.renderer.removeClass(_,"anticon-spin")}handleRotate(_){this.nzRotate?this.renderer.setAttribute(_,"style",`transform: rotate(${this.nzRotate}deg)`):this.renderer.removeAttribute(_,"style")}setClassName(){this.cacheClassName&&this.renderer.removeClass(this.el,this.cacheClassName),this.cacheClassName=`anticon-${this.type}`,this.renderer.addClass(this.el,this.cacheClassName)}setSVGData(_){this.renderer.setAttribute(_,"data-icon",this.type),this.renderer.setAttribute(_,"aria-hidden","true")}}return M.\u0275fac=function(_){return new(_||M)(s.Y36(s.SBq),s.Y36(ue),s.Y36(s.Qsj),s.Y36(gt,8))},M.\u0275dir=s.lG2({type:M,selectors:[["","nz-icon",""]],hostVars:2,hostBindings:function(_,re){2&_&&s.ekj("anticon",!0)},inputs:{nzRotate:"nzRotate",nzSpin:"nzSpin",nzType:"nzType",nzTheme:"nzTheme",nzTwotoneColor:"nzTwotoneColor",nzIconfont:"nzIconfont"},exportAs:["nzIcon"],features:[s.qOj,s.TTD]}),(0,z.gn)([(0,Bn.yF)()],M.prototype,"nzSpin",null),M})(),Ut=(()=>{class M{static forRoot(_){return{ngModule:M,providers:[{provide:$t,useValue:_}]}}static forChild(_){return{ngModule:M,providers:[gt,{provide:qe,useValue:_}]}}}return M.\u0275fac=function(_){return new(_||M)},M.\u0275mod=s.oAB({type:M}),M.\u0275inj=s.cJS({imports:[[c.ud]]}),M})()},3730:(yt,De,m)=>{"use strict";m.d(De,{hl:()=>cn,Cc:()=>kt,wO:()=>N,YV:()=>ve,r9:()=>xe,ip:()=>Je});var c=m(4762),s=m(946),z=m(7716),le=m(9765),W=m(6215),x=m(6682),S=m(9112),B=m(8002),U=m(9773),F=m(5435),Y=m(6736),V=m(13),be=m(7519),je=m(6782),Ke=m(9761),$e=m(3190),nt=m(6182),ut=m(6983),tt=m(625),Ft=m(521),We=m(641),Re=m(6911),Ze=m(7070),Pe=m(8583),st=m(8178),Be=m(464);const se=["nz-submenu",""];function Se(ge,it){1&ge&&z.Hsn(0,0,["*ngIf","!nzTitle"])}function oe(ge,it){if(1&ge&&z._UZ(0,"div",6),2&ge){const X=z.oxw(),Q=z.MAs(7);z.Q6J("mode",X.mode)("nzOpen",X.nzOpen)("@.disabled",null==X.noAnimation?null:X.noAnimation.nzNoAnimation)("nzNoAnimation",null==X.noAnimation?null:X.noAnimation.nzNoAnimation)("menuClass",X.nzMenuClassName)("templateOutlet",Q)}}function fe(ge,it){if(1&ge){const X=z.EpF();z.TgZ(0,"div",8),z.NdJ("subMenuMouseState",function(at){return z.CHM(X),z.oxw(2).setMouseEnterState(at)}),z.qZA()}if(2&ge){const X=z.oxw(2),Q=z.MAs(7);z.Q6J("theme",X.theme)("mode",X.mode)("nzOpen",X.nzOpen)("position",X.position)("nzDisabled",X.nzDisabled)("isMenuInsideDropDown",X.isMenuInsideDropDown)("templateOutlet",Q)("menuClass",X.nzMenuClassName)("@.disabled",null==X.noAnimation?null:X.noAnimation.nzNoAnimation)("nzNoAnimation",null==X.noAnimation?null:X.noAnimation.nzNoAnimation)}}function Oe(ge,it){if(1&ge){const X=z.EpF();z.YNc(0,fe,1,10,"ng-template",7),z.NdJ("positionChange",function(at){return z.CHM(X),z.oxw().onPositionChange(at)})}if(2&ge){const X=z.oxw(),Q=z.MAs(1);z.Q6J("cdkConnectedOverlayPositions",X.overlayPositions)("cdkConnectedOverlayOrigin",Q)("cdkConnectedOverlayWidth",X.triggerWidth)("cdkConnectedOverlayOpen",X.nzOpen)("cdkConnectedOverlayTransformOriginOn",".ant-menu-submenu")}}function pe(ge,it){1&ge&&z.Hsn(0,1)}const Ue=[[["","title",""]],"*"],Ne=["[title]","*"],Tt=["nz-submenu-title",""];function rt(ge,it){if(1&ge&&z._UZ(0,"i",4),2&ge){const X=z.oxw();z.Q6J("nzType",X.nzIcon)}}function St(ge,it){if(1&ge&&(z.ynx(0),z.TgZ(1,"span"),z._uU(2),z.qZA(),z.BQk()),2&ge){const X=z.oxw();z.xp6(2),z.Oqu(X.nzTitle)}}function lt(ge,it){1&ge&&z._UZ(0,"i",8)}function Dt(ge,it){1&ge&&z._UZ(0,"i",9)}function Ht(ge,it){if(1&ge&&(z.TgZ(0,"span",5),z.YNc(1,lt,1,0,"i",6),z.YNc(2,Dt,1,0,"i",7),z.qZA()),2&ge){const X=z.oxw();z.Q6J("ngSwitch",X.dir),z.xp6(1),z.Q6J("ngSwitchCase","rtl")}}function un(ge,it){1&ge&&z._UZ(0,"i",10)}const en=["*"],wn=["nz-submenu-inline-child",""];function It(ge,it){}const tn=["nz-submenu-none-inline-child",""];function rn(ge,it){}let cn=(()=>{class ge{constructor(){this.descendantMenuItemClick$=new le.xQ,this.childMenuItemClick$=new le.xQ,this.theme$=new W.X("light"),this.mode$=new W.X("vertical"),this.inlineIndent$=new W.X(24),this.isChildSubMenuOpen$=new W.X(!1)}onDescendantMenuItemClick(X){this.descendantMenuItemClick$.next(X)}onChildMenuItemClick(X){this.childMenuItemClick$.next(X)}setMode(X){this.mode$.next(X)}setTheme(X){this.theme$.next(X)}setInlineIndent(X){this.inlineIndent$.next(X)}}return ge.\u0275fac=function(X){return new(X||ge)},ge.\u0275prov=z.Yz7({token:ge,factory:ge.\u0275fac}),ge})();const kt=new z.OlP("NzIsInDropDownMenuToken"),bn=new z.OlP("NzMenuServiceLocalToken");let pt=(()=>{class ge{constructor(X,Q,at){this.nzHostSubmenuService=X,this.nzMenuService=Q,this.isMenuInsideDropDown=at,this.mode$=this.nzMenuService.mode$.pipe((0,B.U)(te=>"inline"===te?"inline":"vertical"===te||this.nzHostSubmenuService?"vertical":"horizontal")),this.level=1,this.isCurrentSubMenuOpen$=new W.X(!1),this.isChildSubMenuOpen$=new W.X(!1),this.isMouseEnterTitleOrOverlay$=new le.xQ,this.childMenuItemClick$=new le.xQ,this.destroy$=new le.xQ,this.nzHostSubmenuService&&(this.level=this.nzHostSubmenuService.level+1);const wt=this.childMenuItemClick$.pipe((0,U.zg)(()=>this.mode$),(0,F.h)(te=>"inline"!==te||this.isMenuInsideDropDown),(0,Y.h)(!1)),Ee=(0,x.T)(this.isMouseEnterTitleOrOverlay$,wt);(0,S.aj)([this.isChildSubMenuOpen$,Ee]).pipe((0,B.U)(([te,Le])=>te||Le),(0,V.e)(150),(0,be.x)(),(0,je.R)(this.destroy$)).pipe((0,be.x)()).subscribe(te=>{this.setOpenStateWithoutDebounce(te),this.nzHostSubmenuService?this.nzHostSubmenuService.isChildSubMenuOpen$.next(te):this.nzMenuService.isChildSubMenuOpen$.next(te)})}onChildMenuItemClick(X){this.childMenuItemClick$.next(X)}setOpenStateWithoutDebounce(X){this.isCurrentSubMenuOpen$.next(X)}setMouseEnterTitleOrOverlayState(X){this.isMouseEnterTitleOrOverlay$.next(X)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return ge.\u0275fac=function(X){return new(X||ge)(z.LFG(ge,12),z.LFG(cn),z.LFG(kt))},ge.\u0275prov=z.Yz7({token:ge,factory:ge.\u0275fac}),ge})(),xe=(()=>{class ge{constructor(X,Q,at,wt,Ee,de,te,Le){this.nzMenuService=X,this.cdr=Q,this.nzSubmenuService=at,this.isMenuInsideDropDown=wt,this.directionality=Ee,this.routerLink=de,this.routerLinkWithHref=te,this.router=Le,this.destroy$=new le.xQ,this.level=this.nzSubmenuService?this.nzSubmenuService.level+1:1,this.selected$=new le.xQ,this.inlinePaddingLeft=null,this.dir="ltr",this.nzDisabled=!1,this.nzSelected=!1,this.nzDanger=!1,this.nzMatchRouterExact=!1,this.nzMatchRouter=!1,Le&&this.router.events.pipe((0,je.R)(this.destroy$),(0,F.h)(ct=>ct instanceof ut.m2)).subscribe(()=>{this.updateRouterActive()})}clickMenuItem(X){this.nzDisabled?(X.preventDefault(),X.stopPropagation()):(this.nzMenuService.onDescendantMenuItemClick(this),this.nzSubmenuService?this.nzSubmenuService.onChildMenuItemClick(this):this.nzMenuService.onChildMenuItemClick(this))}setSelectedState(X){this.nzSelected=X,this.selected$.next(X)}updateRouterActive(){!this.listOfRouterLink||!this.listOfRouterLinkWithHref||!this.router||!this.router.navigated||!this.nzMatchRouter||Promise.resolve().then(()=>{const X=this.hasActiveLinks();this.nzSelected!==X&&(this.nzSelected=X,this.setSelectedState(this.nzSelected),this.cdr.markForCheck())})}hasActiveLinks(){const X=this.isLinkActive(this.router);return this.routerLink&&X(this.routerLink)||this.routerLinkWithHref&&X(this.routerLinkWithHref)||this.listOfRouterLink.some(X)||this.listOfRouterLinkWithHref.some(X)}isLinkActive(X){return Q=>X.isActive(Q.urlTree,this.nzMatchRouterExact)}ngOnInit(){var X;(0,S.aj)([this.nzMenuService.mode$,this.nzMenuService.inlineIndent$]).pipe((0,je.R)(this.destroy$)).subscribe(([Q,at])=>{this.inlinePaddingLeft="inline"===Q?this.level*at:null}),this.dir=this.directionality.value,null===(X=this.directionality.change)||void 0===X||X.pipe((0,je.R)(this.destroy$)).subscribe(Q=>{this.dir=Q})}ngAfterContentInit(){this.listOfRouterLink.changes.pipe((0,je.R)(this.destroy$)).subscribe(()=>this.updateRouterActive()),this.listOfRouterLinkWithHref.changes.pipe((0,je.R)(this.destroy$)).subscribe(()=>this.updateRouterActive()),this.updateRouterActive()}ngOnChanges(X){X.nzSelected&&this.setSelectedState(this.nzSelected)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return ge.\u0275fac=function(X){return new(X||ge)(z.Y36(cn),z.Y36(z.sBO),z.Y36(pt,8),z.Y36(kt),z.Y36(s.Is,8),z.Y36(ut.rH,8),z.Y36(ut.yS,8),z.Y36(ut.F0,8))},ge.\u0275dir=z.lG2({type:ge,selectors:[["","nz-menu-item",""]],contentQueries:function(X,Q,at){if(1&X&&(z.Suo(at,ut.rH,5),z.Suo(at,ut.yS,5)),2&X){let wt;z.iGM(wt=z.CRH())&&(Q.listOfRouterLink=wt),z.iGM(wt=z.CRH())&&(Q.listOfRouterLinkWithHref=wt)}},hostVars:20,hostBindings:function(X,Q){1&X&&z.NdJ("click",function(wt){return Q.clickMenuItem(wt)}),2&X&&(z.Udp("padding-left","rtl"===Q.dir?null:Q.nzPaddingLeft||Q.inlinePaddingLeft,"px")("padding-right","rtl"===Q.dir?Q.nzPaddingLeft||Q.inlinePaddingLeft:null,"px"),z.ekj("ant-dropdown-menu-item",Q.isMenuInsideDropDown)("ant-dropdown-menu-item-selected",Q.isMenuInsideDropDown&&Q.nzSelected)("ant-dropdown-menu-item-danger",Q.isMenuInsideDropDown&&Q.nzDanger)("ant-dropdown-menu-item-disabled",Q.isMenuInsideDropDown&&Q.nzDisabled)("ant-menu-item",!Q.isMenuInsideDropDown)("ant-menu-item-selected",!Q.isMenuInsideDropDown&&Q.nzSelected)("ant-menu-item-danger",!Q.isMenuInsideDropDown&&Q.nzDanger)("ant-menu-item-disabled",!Q.isMenuInsideDropDown&&Q.nzDisabled))},inputs:{nzDisabled:"nzDisabled",nzSelected:"nzSelected",nzDanger:"nzDanger",nzMatchRouterExact:"nzMatchRouterExact",nzMatchRouter:"nzMatchRouter",nzPaddingLeft:"nzPaddingLeft"},exportAs:["nzMenuItem"],features:[z.TTD]}),(0,c.gn)([(0,nt.yF)()],ge.prototype,"nzDisabled",void 0),(0,c.gn)([(0,nt.yF)()],ge.prototype,"nzSelected",void 0),(0,c.gn)([(0,nt.yF)()],ge.prototype,"nzDanger",void 0),(0,c.gn)([(0,nt.yF)()],ge.prototype,"nzMatchRouterExact",void 0),(0,c.gn)([(0,nt.yF)()],ge.prototype,"nzMatchRouter",void 0),ge})();const Ae=[Re.yW.rightTop,Re.yW.right,Re.yW.rightBottom,Re.yW.leftTop,Re.yW.left,Re.yW.leftBottom],Ct=[Re.yW.bottomLeft];let ae=(()=>{class ge{constructor(X,Q,at,wt,Ee,de,te){this.nzMenuService=X,this.cdr=Q,this.nzSubmenuService=at,this.platform=wt,this.isMenuInsideDropDown=Ee,this.directionality=de,this.noAnimation=te,this.nzMenuClassName="",this.nzPaddingLeft=null,this.nzTitle=null,this.nzIcon=null,this.nzOpen=!1,this.nzDisabled=!1,this.nzOpenChange=new z.vpe,this.cdkOverlayOrigin=null,this.listOfNzSubMenuComponent=null,this.listOfNzMenuItemDirective=null,this.level=this.nzSubmenuService.level,this.destroy$=new le.xQ,this.position="right",this.triggerWidth=null,this.theme="light",this.mode="vertical",this.inlinePaddingLeft=null,this.overlayPositions=Ae,this.isSelected=!1,this.isActive=!1,this.dir="ltr"}setOpenStateWithoutDebounce(X){this.nzSubmenuService.setOpenStateWithoutDebounce(X)}toggleSubMenu(){this.setOpenStateWithoutDebounce(!this.nzOpen)}setMouseEnterState(X){this.isActive=X,"inline"!==this.mode&&this.nzSubmenuService.setMouseEnterTitleOrOverlayState(X)}setTriggerWidth(){"horizontal"===this.mode&&this.platform.isBrowser&&this.cdkOverlayOrigin&&(this.triggerWidth=this.cdkOverlayOrigin.nativeElement.getBoundingClientRect().width)}onPositionChange(X){const Q=(0,Re.d_)(X);"rightTop"===Q||"rightBottom"===Q||"right"===Q?this.position="right":("leftTop"===Q||"leftBottom"===Q||"left"===Q)&&(this.position="left"),this.cdr.markForCheck()}ngOnInit(){var X;this.nzMenuService.theme$.pipe((0,je.R)(this.destroy$)).subscribe(Q=>{this.theme=Q,this.cdr.markForCheck()}),this.nzSubmenuService.mode$.pipe((0,je.R)(this.destroy$)).subscribe(Q=>{this.mode=Q,"horizontal"===Q?this.overlayPositions=Ct:"vertical"===Q&&(this.overlayPositions=Ae),this.cdr.markForCheck()}),(0,S.aj)([this.nzSubmenuService.mode$,this.nzMenuService.inlineIndent$]).pipe((0,je.R)(this.destroy$)).subscribe(([Q,at])=>{this.inlinePaddingLeft="inline"===Q?this.level*at:null,this.cdr.markForCheck()}),this.nzSubmenuService.isCurrentSubMenuOpen$.pipe((0,je.R)(this.destroy$)).subscribe(Q=>{this.isActive=Q,Q!==this.nzOpen&&(this.setTriggerWidth(),this.nzOpen=Q,this.nzOpenChange.emit(this.nzOpen),this.cdr.markForCheck())}),this.dir=this.directionality.value,null===(X=this.directionality.change)||void 0===X||X.pipe((0,je.R)(this.destroy$)).subscribe(Q=>{this.dir=Q,this.cdr.markForCheck()})}ngAfterContentInit(){this.setTriggerWidth();const X=this.listOfNzMenuItemDirective,Q=X.changes,at=(0,x.T)(Q,...X.map(wt=>wt.selected$));Q.pipe((0,Ke.O)(X),(0,$e.w)(()=>at),(0,Ke.O)(!0),(0,B.U)(()=>X.some(wt=>wt.nzSelected)),(0,je.R)(this.destroy$)).subscribe(wt=>{this.isSelected=wt,this.cdr.markForCheck()})}ngOnChanges(X){const{nzOpen:Q}=X;Q&&(this.nzSubmenuService.setOpenStateWithoutDebounce(this.nzOpen),this.setTriggerWidth())}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return ge.\u0275fac=function(X){return new(X||ge)(z.Y36(cn),z.Y36(z.sBO),z.Y36(pt),z.Y36(Ft.t4),z.Y36(kt),z.Y36(s.Is,8),z.Y36(We.P,9))},ge.\u0275cmp=z.Xpm({type:ge,selectors:[["","nz-submenu",""]],contentQueries:function(X,Q,at){if(1&X&&(z.Suo(at,ge,5),z.Suo(at,xe,5)),2&X){let wt;z.iGM(wt=z.CRH())&&(Q.listOfNzSubMenuComponent=wt),z.iGM(wt=z.CRH())&&(Q.listOfNzMenuItemDirective=wt)}},viewQuery:function(X,Q){if(1&X&&z.Gf(tt.xu,7,z.SBq),2&X){let at;z.iGM(at=z.CRH())&&(Q.cdkOverlayOrigin=at.first)}},hostVars:34,hostBindings:function(X,Q){2&X&&z.ekj("ant-dropdown-menu-submenu",Q.isMenuInsideDropDown)("ant-dropdown-menu-submenu-disabled",Q.isMenuInsideDropDown&&Q.nzDisabled)("ant-dropdown-menu-submenu-open",Q.isMenuInsideDropDown&&Q.nzOpen)("ant-dropdown-menu-submenu-selected",Q.isMenuInsideDropDown&&Q.isSelected)("ant-dropdown-menu-submenu-vertical",Q.isMenuInsideDropDown&&"vertical"===Q.mode)("ant-dropdown-menu-submenu-horizontal",Q.isMenuInsideDropDown&&"horizontal"===Q.mode)("ant-dropdown-menu-submenu-inline",Q.isMenuInsideDropDown&&"inline"===Q.mode)("ant-dropdown-menu-submenu-active",Q.isMenuInsideDropDown&&Q.isActive)("ant-menu-submenu",!Q.isMenuInsideDropDown)("ant-menu-submenu-disabled",!Q.isMenuInsideDropDown&&Q.nzDisabled)("ant-menu-submenu-open",!Q.isMenuInsideDropDown&&Q.nzOpen)("ant-menu-submenu-selected",!Q.isMenuInsideDropDown&&Q.isSelected)("ant-menu-submenu-vertical",!Q.isMenuInsideDropDown&&"vertical"===Q.mode)("ant-menu-submenu-horizontal",!Q.isMenuInsideDropDown&&"horizontal"===Q.mode)("ant-menu-submenu-inline",!Q.isMenuInsideDropDown&&"inline"===Q.mode)("ant-menu-submenu-active",!Q.isMenuInsideDropDown&&Q.isActive)("ant-menu-submenu-rtl","rtl"===Q.dir)},inputs:{nzMenuClassName:"nzMenuClassName",nzPaddingLeft:"nzPaddingLeft",nzTitle:"nzTitle",nzIcon:"nzIcon",nzOpen:"nzOpen",nzDisabled:"nzDisabled"},outputs:{nzOpenChange:"nzOpenChange"},exportAs:["nzSubmenu"],features:[z._Bn([pt]),z.TTD],attrs:se,ngContentSelectors:Ne,decls:8,vars:9,consts:[["nz-submenu-title","","cdkOverlayOrigin","",3,"nzIcon","nzTitle","mode","nzDisabled","isMenuInsideDropDown","paddingLeft","subMenuMouseState","toggleSubMenu"],["origin","cdkOverlayOrigin"],[4,"ngIf"],["nz-submenu-inline-child","",3,"mode","nzOpen","nzNoAnimation","menuClass","templateOutlet",4,"ngIf","ngIfElse"],["nonInlineTemplate",""],["subMenuTemplate",""],["nz-submenu-inline-child","",3,"mode","nzOpen","nzNoAnimation","menuClass","templateOutlet"],["cdkConnectedOverlay","",3,"cdkConnectedOverlayPositions","cdkConnectedOverlayOrigin","cdkConnectedOverlayWidth","cdkConnectedOverlayOpen","cdkConnectedOverlayTransformOriginOn","positionChange"],["nz-submenu-none-inline-child","",3,"theme","mode","nzOpen","position","nzDisabled","isMenuInsideDropDown","templateOutlet","menuClass","nzNoAnimation","subMenuMouseState"]],template:function(X,Q){if(1&X&&(z.F$t(Ue),z.TgZ(0,"div",0,1),z.NdJ("subMenuMouseState",function(wt){return Q.setMouseEnterState(wt)})("toggleSubMenu",function(){return Q.toggleSubMenu()}),z.YNc(2,Se,1,0,"ng-content",2),z.qZA(),z.YNc(3,oe,1,6,"div",3),z.YNc(4,Oe,1,5,"ng-template",null,4,z.W1O),z.YNc(6,pe,1,0,"ng-template",null,5,z.W1O)),2&X){const at=z.MAs(5);z.Q6J("nzIcon",Q.nzIcon)("nzTitle",Q.nzTitle)("mode",Q.mode)("nzDisabled",Q.nzDisabled)("isMenuInsideDropDown",Q.isMenuInsideDropDown)("paddingLeft",Q.nzPaddingLeft||Q.inlinePaddingLeft),z.xp6(2),z.Q6J("ngIf",!Q.nzTitle),z.xp6(1),z.Q6J("ngIf","inline"===Q.mode)("ngIfElse",at)}},directives:function(){return[Ce,tt.xu,Pe.O5,H,We.P,tt.pI,ce]},encapsulation:2,changeDetection:0}),(0,c.gn)([(0,nt.yF)()],ge.prototype,"nzOpen",void 0),(0,c.gn)([(0,nt.yF)()],ge.prototype,"nzDisabled",void 0),ge})();function I(ge,it){return ge||it}function ne(ge){return ge||!1}let N=(()=>{class ge{constructor(X,Q,at,wt){this.nzMenuService=X,this.isMenuInsideDropDown=Q,this.cdr=at,this.directionality=wt,this.nzInlineIndent=24,this.nzTheme="light",this.nzMode="vertical",this.nzInlineCollapsed=!1,this.nzSelectable=!this.isMenuInsideDropDown,this.nzClick=new z.vpe,this.actualMode="vertical",this.dir="ltr",this.inlineCollapsed$=new W.X(this.nzInlineCollapsed),this.mode$=new W.X(this.nzMode),this.destroy$=new le.xQ,this.listOfOpenedNzSubMenuComponent=[]}setInlineCollapsed(X){this.nzInlineCollapsed=X,this.inlineCollapsed$.next(X)}updateInlineCollapse(){this.listOfNzMenuItemDirective&&(this.nzInlineCollapsed?(this.listOfOpenedNzSubMenuComponent=this.listOfNzSubMenuComponent.filter(X=>X.nzOpen),this.listOfNzSubMenuComponent.forEach(X=>X.setOpenStateWithoutDebounce(!1))):(this.listOfOpenedNzSubMenuComponent.forEach(X=>X.setOpenStateWithoutDebounce(!0)),this.listOfOpenedNzSubMenuComponent=[]))}ngOnInit(){var X;(0,S.aj)([this.inlineCollapsed$,this.mode$]).pipe((0,je.R)(this.destroy$)).subscribe(([Q,at])=>{this.actualMode=Q?"vertical":at,this.nzMenuService.setMode(this.actualMode),this.cdr.markForCheck()}),this.nzMenuService.descendantMenuItemClick$.pipe((0,je.R)(this.destroy$)).subscribe(Q=>{this.nzClick.emit(Q),this.nzSelectable&&!Q.nzMatchRouter&&this.listOfNzMenuItemDirective.forEach(at=>at.setSelectedState(at===Q))}),this.dir=this.directionality.value,null===(X=this.directionality.change)||void 0===X||X.pipe((0,je.R)(this.destroy$)).subscribe(Q=>{this.dir=Q,this.nzMenuService.setMode(this.actualMode),this.cdr.markForCheck()})}ngAfterContentInit(){this.inlineCollapsed$.pipe((0,je.R)(this.destroy$)).subscribe(()=>{this.updateInlineCollapse(),this.cdr.markForCheck()})}ngOnChanges(X){const{nzInlineCollapsed:Q,nzInlineIndent:at,nzTheme:wt,nzMode:Ee}=X;Q&&this.inlineCollapsed$.next(this.nzInlineCollapsed),at&&this.nzMenuService.setInlineIndent(this.nzInlineIndent),wt&&this.nzMenuService.setTheme(this.nzTheme),Ee&&(this.mode$.next(this.nzMode),!X.nzMode.isFirstChange()&&this.listOfNzSubMenuComponent&&this.listOfNzSubMenuComponent.forEach(de=>de.setOpenStateWithoutDebounce(!1)))}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return ge.\u0275fac=function(X){return new(X||ge)(z.Y36(cn),z.Y36(kt),z.Y36(z.sBO),z.Y36(s.Is,8))},ge.\u0275dir=z.lG2({type:ge,selectors:[["","nz-menu",""]],contentQueries:function(X,Q,at){if(1&X&&(z.Suo(at,xe,5),z.Suo(at,ae,5)),2&X){let wt;z.iGM(wt=z.CRH())&&(Q.listOfNzMenuItemDirective=wt),z.iGM(wt=z.CRH())&&(Q.listOfNzSubMenuComponent=wt)}},hostVars:34,hostBindings:function(X,Q){2&X&&z.ekj("ant-dropdown-menu",Q.isMenuInsideDropDown)("ant-dropdown-menu-root",Q.isMenuInsideDropDown)("ant-dropdown-menu-light",Q.isMenuInsideDropDown&&"light"===Q.nzTheme)("ant-dropdown-menu-dark",Q.isMenuInsideDropDown&&"dark"===Q.nzTheme)("ant-dropdown-menu-vertical",Q.isMenuInsideDropDown&&"vertical"===Q.actualMode)("ant-dropdown-menu-horizontal",Q.isMenuInsideDropDown&&"horizontal"===Q.actualMode)("ant-dropdown-menu-inline",Q.isMenuInsideDropDown&&"inline"===Q.actualMode)("ant-dropdown-menu-inline-collapsed",Q.isMenuInsideDropDown&&Q.nzInlineCollapsed)("ant-menu",!Q.isMenuInsideDropDown)("ant-menu-root",!Q.isMenuInsideDropDown)("ant-menu-light",!Q.isMenuInsideDropDown&&"light"===Q.nzTheme)("ant-menu-dark",!Q.isMenuInsideDropDown&&"dark"===Q.nzTheme)("ant-menu-vertical",!Q.isMenuInsideDropDown&&"vertical"===Q.actualMode)("ant-menu-horizontal",!Q.isMenuInsideDropDown&&"horizontal"===Q.actualMode)("ant-menu-inline",!Q.isMenuInsideDropDown&&"inline"===Q.actualMode)("ant-menu-inline-collapsed",!Q.isMenuInsideDropDown&&Q.nzInlineCollapsed)("ant-menu-rtl","rtl"===Q.dir)},inputs:{nzInlineIndent:"nzInlineIndent",nzTheme:"nzTheme",nzMode:"nzMode",nzInlineCollapsed:"nzInlineCollapsed",nzSelectable:"nzSelectable"},outputs:{nzClick:"nzClick"},exportAs:["nzMenu"],features:[z._Bn([{provide:bn,useClass:cn},{provide:cn,useFactory:I,deps:[[new z.tp0,new z.FiY,cn],bn]},{provide:kt,useFactory:ne,deps:[[new z.tp0,new z.FiY,kt]]}]),z.TTD]}),(0,c.gn)([(0,nt.yF)()],ge.prototype,"nzInlineCollapsed",void 0),(0,c.gn)([(0,nt.yF)()],ge.prototype,"nzSelectable",void 0),ge})(),ve=(()=>{class ge{constructor(X,Q){this.elementRef=X,this.renderer=Q,this.renderer.addClass(X.nativeElement,"ant-dropdown-menu-item-divider")}}return ge.\u0275fac=function(X){return new(X||ge)(z.Y36(z.SBq),z.Y36(z.Qsj))},ge.\u0275dir=z.lG2({type:ge,selectors:[["","nz-menu-divider",""]],exportAs:["nzMenuDivider"]}),ge})(),Ce=(()=>{class ge{constructor(X,Q){this.cdr=X,this.directionality=Q,this.nzIcon=null,this.nzTitle=null,this.isMenuInsideDropDown=!1,this.nzDisabled=!1,this.paddingLeft=null,this.mode="vertical",this.toggleSubMenu=new z.vpe,this.subMenuMouseState=new z.vpe,this.dir="ltr",this.destroy$=new le.xQ}ngOnInit(){var X;this.dir=this.directionality.value,null===(X=this.directionality.change)||void 0===X||X.pipe((0,je.R)(this.destroy$)).subscribe(Q=>{this.dir=Q,this.cdr.detectChanges()})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}setMouseState(X){this.nzDisabled||this.subMenuMouseState.next(X)}clickTitle(){"inline"===this.mode&&!this.nzDisabled&&this.toggleSubMenu.emit()}}return ge.\u0275fac=function(X){return new(X||ge)(z.Y36(z.sBO),z.Y36(s.Is,8))},ge.\u0275cmp=z.Xpm({type:ge,selectors:[["","nz-submenu-title",""]],hostVars:8,hostBindings:function(X,Q){1&X&&z.NdJ("click",function(){return Q.clickTitle()})("mouseenter",function(){return Q.setMouseState(!0)})("mouseleave",function(){return Q.setMouseState(!1)}),2&X&&(z.Udp("padding-left","rtl"===Q.dir?null:Q.paddingLeft,"px")("padding-right","rtl"===Q.dir?Q.paddingLeft:null,"px"),z.ekj("ant-dropdown-menu-submenu-title",Q.isMenuInsideDropDown)("ant-menu-submenu-title",!Q.isMenuInsideDropDown))},inputs:{nzIcon:"nzIcon",nzTitle:"nzTitle",isMenuInsideDropDown:"isMenuInsideDropDown",nzDisabled:"nzDisabled",paddingLeft:"paddingLeft",mode:"mode"},outputs:{toggleSubMenu:"toggleSubMenu",subMenuMouseState:"subMenuMouseState"},exportAs:["nzSubmenuTitle"],attrs:Tt,ngContentSelectors:en,decls:6,vars:4,consts:[["nz-icon","",3,"nzType",4,"ngIf"],[4,"nzStringTemplateOutlet"],["class","ant-dropdown-menu-submenu-expand-icon",3,"ngSwitch",4,"ngIf","ngIfElse"],["notDropdownTpl",""],["nz-icon","",3,"nzType"],[1,"ant-dropdown-menu-submenu-expand-icon",3,"ngSwitch"],["nz-icon","","nzType","left","class","ant-dropdown-menu-submenu-arrow-icon",4,"ngSwitchCase"],["nz-icon","","nzType","right","class","ant-dropdown-menu-submenu-arrow-icon",4,"ngSwitchDefault"],["nz-icon","","nzType","left",1,"ant-dropdown-menu-submenu-arrow-icon"],["nz-icon","","nzType","right",1,"ant-dropdown-menu-submenu-arrow-icon"],[1,"ant-menu-submenu-arrow"]],template:function(X,Q){if(1&X&&(z.F$t(),z.YNc(0,rt,1,1,"i",0),z.YNc(1,St,3,1,"ng-container",1),z.Hsn(2),z.YNc(3,Ht,3,2,"span",2),z.YNc(4,un,1,0,"ng-template",null,3,z.W1O)),2&X){const at=z.MAs(5);z.Q6J("ngIf",Q.nzIcon),z.xp6(1),z.Q6J("nzStringTemplateOutlet",Q.nzTitle),z.xp6(2),z.Q6J("ngIf",Q.isMenuInsideDropDown)("ngIfElse",at)}},directives:[Pe.O5,st.f,Be.Ls,Pe.RF,Pe.n9,Pe.ED],encapsulation:2,changeDetection:0}),ge})(),H=(()=>{class ge{constructor(X,Q,at){this.elementRef=X,this.renderer=Q,this.directionality=at,this.templateOutlet=null,this.menuClass="",this.mode="vertical",this.nzOpen=!1,this.listOfCacheClassName=[],this.expandState="collapsed",this.dir="ltr",this.destroy$=new le.xQ,this.elementRef.nativeElement.classList.add("ant-menu","ant-menu-inline","ant-menu-sub")}calcMotionState(){this.expandState=this.nzOpen?"expanded":"collapsed"}ngOnInit(){var X;this.calcMotionState(),this.dir=this.directionality.value,null===(X=this.directionality.change)||void 0===X||X.pipe((0,je.R)(this.destroy$)).subscribe(Q=>{this.dir=Q})}ngOnChanges(X){const{mode:Q,nzOpen:at,menuClass:wt}=X;(Q||at)&&this.calcMotionState(),wt&&(this.listOfCacheClassName.length&&this.listOfCacheClassName.filter(Ee=>!!Ee).forEach(Ee=>{this.renderer.removeClass(this.elementRef.nativeElement,Ee)}),this.menuClass&&(this.listOfCacheClassName=this.menuClass.split(" "),this.listOfCacheClassName.filter(Ee=>!!Ee).forEach(Ee=>{this.renderer.addClass(this.elementRef.nativeElement,Ee)})))}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return ge.\u0275fac=function(X){return new(X||ge)(z.Y36(z.SBq),z.Y36(z.Qsj),z.Y36(s.Is,8))},ge.\u0275cmp=z.Xpm({type:ge,selectors:[["","nz-submenu-inline-child",""]],hostVars:3,hostBindings:function(X,Q){2&X&&(z.d8E("@collapseMotion",Q.expandState),z.ekj("ant-menu-rtl","rtl"===Q.dir))},inputs:{templateOutlet:"templateOutlet",menuClass:"menuClass",mode:"mode",nzOpen:"nzOpen"},exportAs:["nzSubmenuInlineChild"],features:[z.TTD],attrs:wn,decls:1,vars:1,consts:[[3,"ngTemplateOutlet"]],template:function(X,Q){1&X&&z.YNc(0,It,0,0,"ng-template",0),2&X&&z.Q6J("ngTemplateOutlet",Q.templateOutlet)},directives:[Pe.tP],encapsulation:2,data:{animation:[Ze.J_]},changeDetection:0}),ge})(),ce=(()=>{class ge{constructor(X,Q){this.elementRef=X,this.directionality=Q,this.menuClass="",this.theme="light",this.templateOutlet=null,this.isMenuInsideDropDown=!1,this.mode="vertical",this.position="right",this.nzDisabled=!1,this.nzOpen=!1,this.subMenuMouseState=new z.vpe,this.expandState="collapsed",this.dir="ltr",this.destroy$=new le.xQ,this.elementRef.nativeElement.classList.add("ant-menu-submenu","ant-menu-submenu-popup")}setMouseState(X){this.nzDisabled||this.subMenuMouseState.next(X)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}calcMotionState(){this.nzOpen?"horizontal"===this.mode?this.expandState="bottom":"vertical"===this.mode&&(this.expandState="active"):this.expandState="collapsed"}ngOnInit(){var X;this.calcMotionState(),this.dir=this.directionality.value,null===(X=this.directionality.change)||void 0===X||X.pipe((0,je.R)(this.destroy$)).subscribe(Q=>{this.dir=Q})}ngOnChanges(X){const{mode:Q,nzOpen:at}=X;(Q||at)&&this.calcMotionState()}}return ge.\u0275fac=function(X){return new(X||ge)(z.Y36(z.SBq),z.Y36(s.Is,8))},ge.\u0275cmp=z.Xpm({type:ge,selectors:[["","nz-submenu-none-inline-child",""]],hostVars:14,hostBindings:function(X,Q){1&X&&z.NdJ("mouseenter",function(){return Q.setMouseState(!0)})("mouseleave",function(){return Q.setMouseState(!1)}),2&X&&(z.d8E("@slideMotion",Q.expandState)("@zoomBigMotion",Q.expandState),z.ekj("ant-menu-light","light"===Q.theme)("ant-menu-dark","dark"===Q.theme)("ant-menu-submenu-placement-bottom","horizontal"===Q.mode)("ant-menu-submenu-placement-right","vertical"===Q.mode&&"right"===Q.position)("ant-menu-submenu-placement-left","vertical"===Q.mode&&"left"===Q.position)("ant-menu-submenu-rtl","rtl"===Q.dir))},inputs:{menuClass:"menuClass",theme:"theme",templateOutlet:"templateOutlet",isMenuInsideDropDown:"isMenuInsideDropDown",mode:"mode",position:"position",nzDisabled:"nzDisabled",nzOpen:"nzOpen"},outputs:{subMenuMouseState:"subMenuMouseState"},exportAs:["nzSubmenuNoneInlineChild"],features:[z.TTD],attrs:tn,decls:2,vars:16,consts:[[3,"ngClass"],[3,"ngTemplateOutlet"]],template:function(X,Q){1&X&&(z.TgZ(0,"div",0),z.YNc(1,rn,0,0,"ng-template",1),z.qZA()),2&X&&(z.ekj("ant-dropdown-menu",Q.isMenuInsideDropDown)("ant-menu",!Q.isMenuInsideDropDown)("ant-dropdown-menu-vertical",Q.isMenuInsideDropDown)("ant-menu-vertical",!Q.isMenuInsideDropDown)("ant-dropdown-menu-sub",Q.isMenuInsideDropDown)("ant-menu-sub",!Q.isMenuInsideDropDown)("ant-menu-rtl","rtl"===Q.dir),z.Q6J("ngClass",Q.menuClass),z.xp6(1),z.Q6J("ngTemplateOutlet",Q.templateOutlet))},directives:[Pe.mk,Pe.tP],encapsulation:2,data:{animation:[Ze.$C,Ze.mF]},changeDetection:0}),ge})(),Je=(()=>{class ge{}return ge.\u0275fac=function(X){return new(X||ge)},ge.\u0275mod=z.oAB({type:ge}),ge.\u0275inj=z.cJS({imports:[[s.vT,Pe.ez,Ft.ud,tt.U8,Be.PV,We.g,st.T]]}),ge})()},8058:(yt,De,m)=>{"use strict";m.d(De,{Ay:()=>Be,Gm:()=>st,XJ:()=>Pe,gR:()=>Ue,dD:()=>Oe});var c=m(7636),s=m(7716),z=m(9765),le=m(5435),W=m(5257),x=m(6782),S=m(625),B=m(4226),U=m(6182),F=m(946),Y=m(8583),V=m(8178),be=m(464),je=m(7070),Ke=m(2729);function $e(Ne,Ie){if(1&Ne){const he=s.EpF();s.TgZ(0,"nz-message",2),s.NdJ("destroyed",function(Ge){return s.CHM(he),s.oxw().remove(Ge.id,Ge.userAction)}),s.qZA()}2&Ne&&s.Q6J("instance",Ie.$implicit)}function nt(Ne,Ie){1&Ne&&s._UZ(0,"i",10)}function ut(Ne,Ie){1&Ne&&s._UZ(0,"i",11)}function tt(Ne,Ie){1&Ne&&s._UZ(0,"i",12)}function Ft(Ne,Ie){1&Ne&&s._UZ(0,"i",13)}function We(Ne,Ie){1&Ne&&s._UZ(0,"i",14)}function Re(Ne,Ie){if(1&Ne&&(s.ynx(0),s._UZ(1,"span",15),s.BQk()),2&Ne){const he=s.oxw();s.xp6(1),s.Q6J("innerHTML",he.instance.content,s.oJD)}}let Ze=0;class Pe{constructor(Ie,he,we){this.nzSingletonService=Ie,this.overlay=he,this.injector=we}remove(Ie){this.container&&(Ie?this.container.remove(Ie):this.container.removeAll())}getInstanceId(){return`${this.componentPrefix}-${Ze++}`}withContainer(Ie){let he=this.nzSingletonService.getSingletonWithKey(this.componentPrefix);if(he)return he;const we=this.overlay.create({hasBackdrop:!1,scrollStrategy:this.overlay.scrollStrategies.noop(),positionStrategy:this.overlay.position().global()}),Ge=new c.C5(Ie,null,this.injector),Ve=we.attach(Ge);return we.overlayElement.style.zIndex="1010",he||(this.container=he=Ve.instance,this.nzSingletonService.registerSingletonWithKey(this.componentPrefix,he)),he}}let st=(()=>{class Ne{constructor(he,we){this.cdr=he,this.nzConfigService=we,this.instances=[],this.destroy$=new z.xQ,this.updateConfig()}ngOnInit(){this.subscribeConfigChange()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}create(he){const we=this.onCreate(he);return this.instances.length>=this.config.nzMaxStack&&(this.instances=this.instances.slice(1)),this.instances=[...this.instances,we],this.readyInstances(),we}remove(he,we=!1){this.instances.some((Ge,Ve)=>Ge.messageId===he&&(this.instances.splice(Ve,1),this.instances=[...this.instances],this.onRemove(Ge,we),this.readyInstances(),!0))}removeAll(){this.instances.forEach(he=>this.onRemove(he,!1)),this.instances=[],this.readyInstances()}onCreate(he){return he.options=this.mergeOptions(he.options),he.onClose=new z.xQ,he}onRemove(he,we){he.onClose.next(we),he.onClose.complete()}readyInstances(){this.cdr.detectChanges()}mergeOptions(he){const{nzDuration:we,nzAnimate:Ge,nzPauseOnHover:Ve}=this.config;return Object.assign({nzDuration:we,nzAnimate:Ge,nzPauseOnHover:Ve},he)}}return Ne.\u0275fac=function(he){return new(he||Ne)(s.Y36(s.sBO),s.Y36(Ke.jY))},Ne.\u0275dir=s.lG2({type:Ne}),Ne})(),Be=(()=>{class Ne{constructor(he){this.cdr=he,this.destroyed=new s.vpe,this.animationStateChanged=new z.xQ,this.userAction=!1,this.eraseTimer=null}ngOnInit(){this.options=this.instance.options,this.options.nzAnimate&&(this.instance.state="enter",this.animationStateChanged.pipe((0,le.h)(he=>"done"===he.phaseName&&"leave"===he.toState),(0,W.q)(1)).subscribe(()=>{clearTimeout(this.closeTimer),this.destroyed.next({id:this.instance.messageId,userAction:this.userAction})})),this.autoClose=this.options.nzDuration>0,this.autoClose&&(this.initErase(),this.startEraseTimeout())}ngOnDestroy(){this.autoClose&&this.clearEraseTimeout(),this.animationStateChanged.complete()}onEnter(){this.autoClose&&this.options.nzPauseOnHover&&(this.clearEraseTimeout(),this.updateTTL())}onLeave(){this.autoClose&&this.options.nzPauseOnHover&&this.startEraseTimeout()}destroy(he=!1){this.userAction=he,this.options.nzAnimate?(this.instance.state="leave",this.cdr.detectChanges(),this.closeTimer=setTimeout(()=>{this.closeTimer=void 0,this.destroyed.next({id:this.instance.messageId,userAction:he})},200)):this.destroyed.next({id:this.instance.messageId,userAction:he})}initErase(){this.eraseTTL=this.options.nzDuration,this.eraseTimingStart=Date.now()}updateTTL(){this.autoClose&&(this.eraseTTL-=Date.now()-this.eraseTimingStart)}startEraseTimeout(){this.eraseTTL>0?(this.clearEraseTimeout(),this.eraseTimer=setTimeout(()=>this.destroy(),this.eraseTTL),this.eraseTimingStart=Date.now()):this.destroy()}clearEraseTimeout(){null!==this.eraseTimer&&(clearTimeout(this.eraseTimer),this.eraseTimer=null)}}return Ne.\u0275fac=function(he){return new(he||Ne)(s.Y36(s.sBO))},Ne.\u0275dir=s.lG2({type:Ne}),Ne})();const se="message",Se={nzAnimate:!0,nzDuration:3e3,nzMaxStack:7,nzPauseOnHover:!0,nzTop:24,nzDirection:"ltr"};let oe=(()=>{class Ne extends st{constructor(he,we){super(he,we),this.destroy$=new z.xQ,this.dir="ltr",this.instances=[];const Ge=this.nzConfigService.getConfigForComponent(se);this.dir=(null==Ge?void 0:Ge.nzDirection)||"ltr"}subscribeConfigChange(){this.nzConfigService.getConfigChangeEventForComponent(se).pipe((0,x.R)(this.destroy$)).subscribe(()=>{this.updateConfig();const he=this.nzConfigService.getConfigForComponent(se);if(he){const{nzDirection:we}=he;this.dir=we||this.dir}})}updateConfig(){this.config=Object.assign(Object.assign(Object.assign({},Se),this.config),this.nzConfigService.getConfigForComponent(se)),this.top=(0,U.WX)(this.config.nzTop),this.cdr.markForCheck()}}return Ne.\u0275fac=function(he){return new(he||Ne)(s.Y36(s.sBO),s.Y36(Ke.jY))},Ne.\u0275cmp=s.Xpm({type:Ne,selectors:[["nz-message-container"]],exportAs:["nzMessageContainer"],features:[s.qOj],decls:2,vars:5,consts:[[1,"ant-message"],[3,"instance","destroyed",4,"ngFor","ngForOf"],[3,"instance","destroyed"]],template:function(he,we){1&he&&(s.TgZ(0,"div",0),s.YNc(1,$e,1,1,"nz-message",1),s.qZA()),2&he&&(s.Udp("top",we.top),s.ekj("ant-message-rtl","rtl"===we.dir),s.xp6(1),s.Q6J("ngForOf",we.instances))},directives:function(){return[Y.sg,pe]},encapsulation:2,changeDetection:0}),Ne})(),fe=(()=>{class Ne{}return Ne.\u0275fac=function(he){return new(he||Ne)},Ne.\u0275mod=s.oAB({type:Ne}),Ne.\u0275inj=s.cJS({}),Ne})(),Oe=(()=>{class Ne extends Pe{constructor(he,we,Ge){super(he,we,Ge),this.componentPrefix="message-"}success(he,we){return this.createInstance({type:"success",content:he},we)}error(he,we){return this.createInstance({type:"error",content:he},we)}info(he,we){return this.createInstance({type:"info",content:he},we)}warning(he,we){return this.createInstance({type:"warning",content:he},we)}loading(he,we){return this.createInstance({type:"loading",content:he},we)}create(he,we,Ge){return this.createInstance({type:he,content:we},Ge)}createInstance(he,we){return this.container=this.withContainer(oe),this.container.create(Object.assign(Object.assign({},he),{createdAt:new Date,messageId:this.getInstanceId(),options:we}))}}return Ne.\u0275fac=function(he){return new(he||Ne)(s.LFG(B.KV),s.LFG(S.aV),s.LFG(s.zs3))},Ne.\u0275prov=s.Yz7({factory:function(){return new Ne(s.LFG(B.KV),s.LFG(S.aV),s.LFG(s.gxx))},token:Ne,providedIn:fe}),Ne})(),pe=(()=>{class Ne extends Be{constructor(he){super(he),this.destroyed=new s.vpe}}return Ne.\u0275fac=function(he){return new(he||Ne)(s.Y36(s.sBO))},Ne.\u0275cmp=s.Xpm({type:Ne,selectors:[["nz-message"]],inputs:{instance:"instance"},outputs:{destroyed:"destroyed"},exportAs:["nzMessage"],features:[s.qOj],decls:10,vars:9,consts:[[1,"ant-message-notice",3,"mouseenter","mouseleave"],[1,"ant-message-notice-content"],[1,"ant-message-custom-content",3,"ngClass"],[3,"ngSwitch"],["nz-icon","","nzType","check-circle",4,"ngSwitchCase"],["nz-icon","","nzType","info-circle",4,"ngSwitchCase"],["nz-icon","","nzType","exclamation-circle",4,"ngSwitchCase"],["nz-icon","","nzType","close-circle",4,"ngSwitchCase"],["nz-icon","","nzType","loading",4,"ngSwitchCase"],[4,"nzStringTemplateOutlet"],["nz-icon","","nzType","check-circle"],["nz-icon","","nzType","info-circle"],["nz-icon","","nzType","exclamation-circle"],["nz-icon","","nzType","close-circle"],["nz-icon","","nzType","loading"],[3,"innerHTML"]],template:function(he,we){1&he&&(s.TgZ(0,"div",0),s.NdJ("@moveUpMotion.done",function(Ve){return we.animationStateChanged.next(Ve)})("mouseenter",function(){return we.onEnter()})("mouseleave",function(){return we.onLeave()}),s.TgZ(1,"div",1),s.TgZ(2,"div",2),s.ynx(3,3),s.YNc(4,nt,1,0,"i",4),s.YNc(5,ut,1,0,"i",5),s.YNc(6,tt,1,0,"i",6),s.YNc(7,Ft,1,0,"i",7),s.YNc(8,We,1,0,"i",8),s.BQk(),s.YNc(9,Re,2,1,"ng-container",9),s.qZA(),s.qZA(),s.qZA()),2&he&&(s.Q6J("@moveUpMotion",we.instance.state),s.xp6(2),s.Q6J("ngClass","ant-message-"+we.instance.type),s.xp6(1),s.Q6J("ngSwitch",we.instance.type),s.xp6(1),s.Q6J("ngSwitchCase","success"),s.xp6(1),s.Q6J("ngSwitchCase","info"),s.xp6(1),s.Q6J("ngSwitchCase","warning"),s.xp6(1),s.Q6J("ngSwitchCase","error"),s.xp6(1),s.Q6J("ngSwitchCase","loading"),s.xp6(1),s.Q6J("nzStringTemplateOutlet",we.instance.content))},directives:[Y.mk,Y.RF,Y.n9,V.f,be.Ls],encapsulation:2,data:{animation:[je.YK]},changeDetection:0}),Ne})(),Ue=(()=>{class Ne{}return Ne.\u0275fac=function(he){return new(he||Ne)},Ne.\u0275mod=s.oAB({type:Ne}),Ne.\u0275inj=s.cJS({imports:[[F.vT,Y.ez,S.U8,be.PV,V.T,fe]]}),Ne})()},3080:(yt,De,m)=>{"use strict";m.d(De,{L8:()=>Ne,zb:()=>he});var c=m(7716),s=m(7070),z=m(8058),le=m(946),W=m(625),x=m(8583),S=m(8178),B=m(464),U=m(9765),F=m(6782),Y=m(6182),V=m(4226),be=m(2729);function je(we,Ge){1&we&&c._UZ(0,"i",16)}function Ke(we,Ge){1&we&&c._UZ(0,"i",17)}function $e(we,Ge){1&we&&c._UZ(0,"i",18)}function nt(we,Ge){1&we&&c._UZ(0,"i",19)}const ut=function(we){return{"ant-notification-notice-with-icon":we}};function tt(we,Ge){if(1&we&&(c.TgZ(0,"div",7),c.TgZ(1,"div",8),c.TgZ(2,"div"),c.ynx(3,9),c.YNc(4,je,1,0,"i",10),c.YNc(5,Ke,1,0,"i",11),c.YNc(6,$e,1,0,"i",12),c.YNc(7,nt,1,0,"i",13),c.BQk(),c._UZ(8,"div",14),c._UZ(9,"div",15),c.qZA(),c.qZA(),c.qZA()),2&we){const Ve=c.oxw();c.xp6(1),c.Q6J("ngClass",c.VKq(10,ut,"blank"!==Ve.instance.type)),c.xp6(1),c.ekj("ant-notification-notice-with-icon","blank"!==Ve.instance.type),c.xp6(1),c.Q6J("ngSwitch",Ve.instance.type),c.xp6(1),c.Q6J("ngSwitchCase","success"),c.xp6(1),c.Q6J("ngSwitchCase","info"),c.xp6(1),c.Q6J("ngSwitchCase","warning"),c.xp6(1),c.Q6J("ngSwitchCase","error"),c.xp6(1),c.Q6J("innerHTML",Ve.instance.title,c.oJD),c.xp6(1),c.Q6J("innerHTML",Ve.instance.content,c.oJD)}}function Ft(we,Ge){}function We(we,Ge){if(1&we&&(c.ynx(0),c._UZ(1,"i",21),c.BQk()),2&we){const Ve=Ge.$implicit;c.xp6(1),c.Q6J("nzType",Ve)}}function Re(we,Ge){if(1&we&&(c.ynx(0),c.YNc(1,We,2,1,"ng-container",20),c.BQk()),2&we){const Ve=c.oxw();c.xp6(1),c.Q6J("nzStringTemplateOutlet",null==Ve.instance.options?null:Ve.instance.options.nzCloseIcon)}}function Ze(we,Ge){1&we&&c._UZ(0,"i",22)}const Pe=function(we,Ge){return{$implicit:we,data:Ge}};function st(we,Ge){if(1&we){const Ve=c.EpF();c.TgZ(0,"nz-notification",5),c.NdJ("destroyed",function(Tt){return c.CHM(Ve),c.oxw().remove(Tt.id,Tt.userAction)}),c.qZA()}if(2&we){const Ve=Ge.$implicit,ft=c.oxw();c.Q6J("instance",Ve)("placement",ft.config.nzPlacement)}}function Be(we,Ge){if(1&we){const Ve=c.EpF();c.TgZ(0,"nz-notification",5),c.NdJ("destroyed",function(Tt){return c.CHM(Ve),c.oxw().remove(Tt.id,Tt.userAction)}),c.qZA()}if(2&we){const Ve=Ge.$implicit,ft=c.oxw();c.Q6J("instance",Ve)("placement",ft.config.nzPlacement)}}function se(we,Ge){if(1&we){const Ve=c.EpF();c.TgZ(0,"nz-notification",5),c.NdJ("destroyed",function(Tt){return c.CHM(Ve),c.oxw().remove(Tt.id,Tt.userAction)}),c.qZA()}if(2&we){const Ve=Ge.$implicit,ft=c.oxw();c.Q6J("instance",Ve)("placement",ft.config.nzPlacement)}}function Se(we,Ge){if(1&we){const Ve=c.EpF();c.TgZ(0,"nz-notification",5),c.NdJ("destroyed",function(Tt){return c.CHM(Ve),c.oxw().remove(Tt.id,Tt.userAction)}),c.qZA()}if(2&we){const Ve=Ge.$implicit,ft=c.oxw();c.Q6J("instance",Ve)("placement",ft.config.nzPlacement)}}let oe=(()=>{class we extends z.Ay{constructor(Ve){super(Ve),this.destroyed=new c.vpe}ngOnDestroy(){super.ngOnDestroy(),this.instance.onClick.complete()}onClick(Ve){this.instance.onClick.next(Ve)}close(){this.destroy(!0)}get state(){return"enter"===this.instance.state?"topLeft"===this.placement||"bottomLeft"===this.placement?"enterLeft":"enterRight":this.instance.state}}return we.\u0275fac=function(Ve){return new(Ve||we)(c.Y36(c.sBO))},we.\u0275cmp=c.Xpm({type:we,selectors:[["nz-notification"]],inputs:{instance:"instance",placement:"placement",index:"index"},outputs:{destroyed:"destroyed"},exportAs:["nzNotification"],features:[c.qOj],decls:8,vars:12,consts:[[1,"ant-notification-notice","ant-notification-notice-closable",3,"ngStyle","ngClass","click","mouseenter","mouseleave"],["class","ant-notification-notice-content",4,"ngIf"],[3,"ngIf","ngTemplateOutlet","ngTemplateOutletContext"],["tabindex","0",1,"ant-notification-notice-close",3,"click"],[1,"ant-notification-notice-close-x"],[4,"ngIf","ngIfElse"],["iconTpl",""],[1,"ant-notification-notice-content"],[1,"ant-notification-notice-content",3,"ngClass"],[3,"ngSwitch"],["nz-icon","","nzType","check-circle","class","ant-notification-notice-icon ant-notification-notice-icon-success",4,"ngSwitchCase"],["nz-icon","","nzType","info-circle","class","ant-notification-notice-icon ant-notification-notice-icon-info",4,"ngSwitchCase"],["nz-icon","","nzType","exclamation-circle","class","ant-notification-notice-icon ant-notification-notice-icon-warning",4,"ngSwitchCase"],["nz-icon","","nzType","close-circle","class","ant-notification-notice-icon ant-notification-notice-icon-error",4,"ngSwitchCase"],[1,"ant-notification-notice-message",3,"innerHTML"],[1,"ant-notification-notice-description",3,"innerHTML"],["nz-icon","","nzType","check-circle",1,"ant-notification-notice-icon","ant-notification-notice-icon-success"],["nz-icon","","nzType","info-circle",1,"ant-notification-notice-icon","ant-notification-notice-icon-info"],["nz-icon","","nzType","exclamation-circle",1,"ant-notification-notice-icon","ant-notification-notice-icon-warning"],["nz-icon","","nzType","close-circle",1,"ant-notification-notice-icon","ant-notification-notice-icon-error"],[4,"nzStringTemplateOutlet"],["nz-icon","",3,"nzType"],["nz-icon","","nzType","close",1,"ant-notification-close-icon"]],template:function(Ve,ft){if(1&Ve&&(c.TgZ(0,"div",0),c.NdJ("@notificationMotion.done",function(rt){return ft.animationStateChanged.next(rt)})("click",function(rt){return ft.onClick(rt)})("mouseenter",function(){return ft.onEnter()})("mouseleave",function(){return ft.onLeave()}),c.YNc(1,tt,10,12,"div",1),c.YNc(2,Ft,0,0,"ng-template",2),c.TgZ(3,"a",3),c.NdJ("click",function(){return ft.close()}),c.TgZ(4,"span",4),c.YNc(5,Re,2,1,"ng-container",5),c.YNc(6,Ze,1,0,"ng-template",null,6,c.W1O),c.qZA(),c.qZA(),c.qZA()),2&Ve){const Tt=c.MAs(7);c.Q6J("ngStyle",(null==ft.instance.options?null:ft.instance.options.nzStyle)||null)("ngClass",(null==ft.instance.options?null:ft.instance.options.nzClass)||"")("@notificationMotion",ft.state),c.xp6(1),c.Q6J("ngIf",!ft.instance.template),c.xp6(1),c.Q6J("ngIf",ft.instance.template)("ngTemplateOutlet",ft.instance.template)("ngTemplateOutletContext",c.WLB(9,Pe,ft,null==ft.instance.options?null:ft.instance.options.nzData)),c.xp6(3),c.Q6J("ngIf",null==ft.instance.options?null:ft.instance.options.nzCloseIcon)("ngIfElse",Tt)}},directives:[x.PC,x.mk,x.O5,x.tP,x.RF,x.n9,B.Ls,S.f],encapsulation:2,data:{animation:[s.LU]}}),we})();const fe="notification",Oe={nzTop:"24px",nzBottom:"24px",nzPlacement:"topRight",nzDuration:4500,nzMaxStack:7,nzPauseOnHover:!0,nzAnimate:!0,nzDirection:"ltr"};let pe=(()=>{class we extends z.Gm{constructor(Ve,ft){super(Ve,ft),this.dir="ltr",this.instances=[],this.topLeftInstances=[],this.topRightInstances=[],this.bottomLeftInstances=[],this.bottomRightInstances=[];const Tt=this.nzConfigService.getConfigForComponent(fe);this.dir=(null==Tt?void 0:Tt.nzDirection)||"ltr"}create(Ve){const ft=this.onCreate(Ve),Tt=ft.options.nzKey,rt=this.instances.find(St=>St.options.nzKey===Ve.options.nzKey);return Tt&&rt?this.replaceNotification(rt,ft):(this.instances.length>=this.config.nzMaxStack&&(this.instances=this.instances.slice(1)),this.instances=[...this.instances,ft]),this.readyInstances(),ft}onCreate(Ve){return Ve.options=this.mergeOptions(Ve.options),Ve.onClose=new U.xQ,Ve.onClick=new U.xQ,Ve}subscribeConfigChange(){this.nzConfigService.getConfigChangeEventForComponent(fe).pipe((0,F.R)(this.destroy$)).subscribe(()=>{this.updateConfig();const Ve=this.nzConfigService.getConfigForComponent(fe);if(Ve){const{nzDirection:ft}=Ve;this.dir=ft||this.dir}})}updateConfig(){this.config=Object.assign(Object.assign(Object.assign({},Oe),this.config),this.nzConfigService.getConfigForComponent(fe)),this.top=(0,Y.WX)(this.config.nzTop),this.bottom=(0,Y.WX)(this.config.nzBottom),this.cdr.markForCheck()}replaceNotification(Ve,ft){Ve.title=ft.title,Ve.content=ft.content,Ve.template=ft.template,Ve.type=ft.type,Ve.options=ft.options}readyInstances(){this.topLeftInstances=this.instances.filter(Ve=>"topLeft"===Ve.options.nzPlacement),this.topRightInstances=this.instances.filter(Ve=>"topRight"===Ve.options.nzPlacement||!Ve.options.nzPlacement),this.bottomLeftInstances=this.instances.filter(Ve=>"bottomLeft"===Ve.options.nzPlacement),this.bottomRightInstances=this.instances.filter(Ve=>"bottomRight"===Ve.options.nzPlacement),this.cdr.detectChanges()}mergeOptions(Ve){const{nzDuration:ft,nzAnimate:Tt,nzPauseOnHover:rt,nzPlacement:St}=this.config;return Object.assign({nzDuration:ft,nzAnimate:Tt,nzPauseOnHover:rt,nzPlacement:St},Ve)}}return we.\u0275fac=function(Ve){return new(Ve||we)(c.Y36(c.sBO),c.Y36(be.jY))},we.\u0275cmp=c.Xpm({type:we,selectors:[["nz-notification-container"]],exportAs:["nzNotificationContainer"],features:[c.qOj],decls:8,vars:28,consts:[[1,"ant-notification","ant-notification-topLeft"],[3,"instance","placement","destroyed",4,"ngFor","ngForOf"],[1,"ant-notification","ant-notification-topRight"],[1,"ant-notification","ant-notification-bottomLeft"],[1,"ant-notification","ant-notification-bottomRight"],[3,"instance","placement","destroyed"]],template:function(Ve,ft){1&Ve&&(c.TgZ(0,"div",0),c.YNc(1,st,1,2,"nz-notification",1),c.qZA(),c.TgZ(2,"div",2),c.YNc(3,Be,1,2,"nz-notification",1),c.qZA(),c.TgZ(4,"div",3),c.YNc(5,se,1,2,"nz-notification",1),c.qZA(),c.TgZ(6,"div",4),c.YNc(7,Se,1,2,"nz-notification",1),c.qZA()),2&Ve&&(c.Udp("top",ft.top)("left","0px"),c.ekj("ant-notification-rtl","rtl"===ft.dir),c.xp6(1),c.Q6J("ngForOf",ft.topLeftInstances),c.xp6(1),c.Udp("top",ft.top)("right","0px"),c.ekj("ant-notification-rtl","rtl"===ft.dir),c.xp6(1),c.Q6J("ngForOf",ft.topRightInstances),c.xp6(1),c.Udp("bottom",ft.bottom)("left","0px"),c.ekj("ant-notification-rtl","rtl"===ft.dir),c.xp6(1),c.Q6J("ngForOf",ft.bottomLeftInstances),c.xp6(1),c.Udp("bottom",ft.bottom)("right","0px"),c.ekj("ant-notification-rtl","rtl"===ft.dir),c.xp6(1),c.Q6J("ngForOf",ft.bottomRightInstances))},directives:[x.sg,oe],encapsulation:2,changeDetection:0}),we})(),Ue=(()=>{class we{}return we.\u0275fac=function(Ve){return new(Ve||we)},we.\u0275mod=c.oAB({type:we}),we.\u0275inj=c.cJS({}),we})(),Ne=(()=>{class we{}return we.\u0275fac=function(Ve){return new(Ve||we)},we.\u0275mod=c.oAB({type:we}),we.\u0275inj=c.cJS({imports:[[le.vT,x.ez,W.U8,B.PV,S.T,Ue]]}),we})(),Ie=0,he=(()=>{class we extends z.XJ{constructor(Ve,ft,Tt){super(Ve,ft,Tt),this.componentPrefix="notification-"}success(Ve,ft,Tt){return this.createInstance({type:"success",title:Ve,content:ft},Tt)}error(Ve,ft,Tt){return this.createInstance({type:"error",title:Ve,content:ft},Tt)}info(Ve,ft,Tt){return this.createInstance({type:"info",title:Ve,content:ft},Tt)}warning(Ve,ft,Tt){return this.createInstance({type:"warning",title:Ve,content:ft},Tt)}blank(Ve,ft,Tt){return this.createInstance({type:"blank",title:Ve,content:ft},Tt)}create(Ve,ft,Tt,rt){return this.createInstance({type:Ve,title:ft,content:Tt},rt)}template(Ve,ft){return this.createInstance({template:Ve},ft)}generateMessageId(){return`${this.componentPrefix}-${Ie++}`}createInstance(Ve,ft){return this.container=this.withContainer(pe),this.container.create(Object.assign(Object.assign({},Ve),{createdAt:new Date,messageId:this.generateMessageId(),options:ft}))}}return we.\u0275fac=function(Ve){return new(Ve||we)(c.LFG(V.KV),c.LFG(W.aV),c.LFG(c.zs3))},we.\u0275prov=c.Yz7({factory:function(){return new we(c.LFG(V.KV),c.LFG(W.aV),c.LFG(c.gxx))},token:we,providedIn:Ue}),we})()},1729:(yt,De,m)=>{"use strict";m.d(De,{W:()=>se,j:()=>Se});var c=m(4762),s=m(946),z=m(9765),le=m(6215),W=m(226),x=m(6797),S=m(5345);class U{constructor(fe){this.durationSelector=fe}call(fe,Oe){return Oe.subscribe(new F(fe,this.durationSelector))}}class F extends S.Ds{constructor(fe,Oe){super(fe),this.durationSelector=Oe,this.hasValue=!1}_next(fe){try{const Oe=this.durationSelector.call(this,fe);Oe&&this._tryNext(fe,Oe)}catch(Oe){this.destination.error(Oe)}}_complete(){this.emitValue(),this.destination.complete()}_tryNext(fe,Oe){let pe=this.durationSubscription;this.value=fe,this.hasValue=!0,pe&&(pe.unsubscribe(),this.remove(pe)),pe=(0,S.ft)(Oe,new S.IY(this)),pe&&!pe.closed&&this.add(this.durationSubscription=pe)}notifyNext(){this.emitValue()}notifyComplete(){this.emitValue()}emitValue(){if(this.hasValue){const fe=this.value,Oe=this.durationSubscription;Oe&&(this.durationSubscription=void 0,Oe.unsubscribe(),this.remove(Oe)),this.value=void 0,this.hasValue=!1,super._next(fe)}}}var Y=m(9761),V=m(7519),be=m(3190),je=m(6782),Ke=m(2729),$e=m(6182),nt=m(8553),ut=m(8583),tt=m(7716);function Ft(oe,fe){1&oe&&(tt.TgZ(0,"span",3),tt._UZ(1,"i",4),tt._UZ(2,"i",4),tt._UZ(3,"i",4),tt._UZ(4,"i",4),tt.qZA())}function We(oe,fe){}function Re(oe,fe){if(1&oe&&(tt.TgZ(0,"div",8),tt._uU(1),tt.qZA()),2&oe){const Oe=tt.oxw(2);tt.xp6(1),tt.Oqu(Oe.nzTip)}}function Ze(oe,fe){if(1&oe&&(tt.TgZ(0,"div"),tt.TgZ(1,"div",5),tt.YNc(2,We,0,0,"ng-template",6),tt.YNc(3,Re,2,1,"div",7),tt.qZA(),tt.qZA()),2&oe){const Oe=tt.oxw(),pe=tt.MAs(1);tt.xp6(1),tt.ekj("ant-spin-rtl","rtl"===Oe.dir)("ant-spin-spinning",Oe.isLoading)("ant-spin-lg","large"===Oe.nzSize)("ant-spin-sm","small"===Oe.nzSize)("ant-spin-show-text",Oe.nzTip),tt.xp6(1),tt.Q6J("ngTemplateOutlet",Oe.nzIndicator||pe),tt.xp6(1),tt.Q6J("ngIf",Oe.nzTip)}}function Pe(oe,fe){if(1&oe&&(tt.TgZ(0,"div",9),tt.Hsn(1),tt.qZA()),2&oe){const Oe=tt.oxw();tt.ekj("ant-spin-blur",Oe.isLoading)}}const st=["*"];let se=(()=>{class oe{constructor(Oe,pe,Ue){this.nzConfigService=Oe,this.cdr=pe,this.directionality=Ue,this._nzModuleName="spin",this.nzIndicator=null,this.nzSize="default",this.nzTip=null,this.nzDelay=0,this.nzSimple=!1,this.nzSpinning=!0,this.destroy$=new z.xQ,this.spinning$=new le.X(this.nzSpinning),this.delay$=new W.t(1),this.isLoading=!1,this.dir="ltr"}ngOnInit(){var Oe;this.delay$.pipe((0,Y.O)(this.nzDelay),(0,V.x)(),(0,be.w)(Ue=>0===Ue?this.spinning$:this.spinning$.pipe(function(oe){return fe=>fe.lift(new U(oe))}(Ne=>(0,x.H)(Ne?Ue:0)))),(0,je.R)(this.destroy$)).subscribe(Ue=>{this.isLoading=Ue,this.cdr.markForCheck()}),this.nzConfigService.getConfigChangeEventForComponent("spin").pipe((0,je.R)(this.destroy$)).subscribe(()=>this.cdr.markForCheck()),null===(Oe=this.directionality.change)||void 0===Oe||Oe.pipe((0,je.R)(this.destroy$)).subscribe(Ue=>{this.dir=Ue,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnChanges(Oe){const{nzSpinning:pe,nzDelay:Ue}=Oe;pe&&this.spinning$.next(this.nzSpinning),Ue&&this.delay$.next(this.nzDelay)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return oe.\u0275fac=function(Oe){return new(Oe||oe)(tt.Y36(Ke.jY),tt.Y36(tt.sBO),tt.Y36(s.Is,8))},oe.\u0275cmp=tt.Xpm({type:oe,selectors:[["nz-spin"]],hostVars:2,hostBindings:function(Oe,pe){2&Oe&&tt.ekj("ant-spin-nested-loading",!pe.nzSimple)},inputs:{nzIndicator:"nzIndicator",nzSize:"nzSize",nzTip:"nzTip",nzDelay:"nzDelay",nzSimple:"nzSimple",nzSpinning:"nzSpinning"},exportAs:["nzSpin"],features:[tt.TTD],ngContentSelectors:st,decls:4,vars:2,consts:[["defaultTemplate",""],[4,"ngIf"],["class","ant-spin-container",3,"ant-spin-blur",4,"ngIf"],[1,"ant-spin-dot","ant-spin-dot-spin"],[1,"ant-spin-dot-item"],[1,"ant-spin"],[3,"ngTemplateOutlet"],["class","ant-spin-text",4,"ngIf"],[1,"ant-spin-text"],[1,"ant-spin-container"]],template:function(Oe,pe){1&Oe&&(tt.F$t(),tt.YNc(0,Ft,5,0,"ng-template",null,0,tt.W1O),tt.YNc(2,Ze,4,12,"div",1),tt.YNc(3,Pe,2,2,"div",2)),2&Oe&&(tt.xp6(2),tt.Q6J("ngIf",pe.isLoading),tt.xp6(1),tt.Q6J("ngIf",!pe.nzSimple))},directives:[ut.O5,ut.tP],encapsulation:2}),(0,c.gn)([(0,Ke.oS)()],oe.prototype,"nzIndicator",void 0),(0,c.gn)([(0,$e.Rn)()],oe.prototype,"nzDelay",void 0),(0,c.gn)([(0,$e.yF)()],oe.prototype,"nzSimple",void 0),(0,c.gn)([(0,$e.yF)()],oe.prototype,"nzSpinning",void 0),oe})(),Se=(()=>{class oe{}return oe.\u0275fac=function(Oe){return new(Oe||oe)},oe.\u0275mod=tt.oAB({type:oe}),oe.\u0275inj=tt.cJS({imports:[[s.vT,ut.ez,nt.Q8]]}),oe})()},7420:(yt,De,m)=>{"use strict";m.d(De,{XK:()=>Re,cg:()=>Ze,Mg:()=>ut,SY:()=>We});var c=m(946),s=m(7716),z=m(7070),le=m(7705),W=m(641),x=m(9765),S=m(7519),B=m(6782),U=m(6911),F=m(6182),Y=m(625),V=m(8583),be=m(8178),je=m(2729);const Ke=["overlay"];function $e(Pe,st){if(1&Pe&&(s.ynx(0),s._uU(1),s.BQk()),2&Pe){const Be=s.oxw(2);s.xp6(1),s.Oqu(Be.nzTitle)}}function nt(Pe,st){if(1&Pe&&(s.TgZ(0,"div",2),s.TgZ(1,"div",3),s.TgZ(2,"div",4),s._UZ(3,"span",5),s.qZA(),s.TgZ(4,"div",6),s.YNc(5,$e,2,1,"ng-container",7),s.qZA(),s.qZA(),s.qZA()),2&Pe){const Be=s.oxw();s.ekj("ant-tooltip-rtl","rtl"===Be.dir),s.Q6J("ngClass",Be._classMap)("ngStyle",Be.nzOverlayStyle)("@.disabled",null==Be.noAnimation?null:Be.noAnimation.nzNoAnimation)("nzNoAnimation",null==Be.noAnimation?null:Be.noAnimation.nzNoAnimation)("@zoomBigMotion","active"),s.xp6(3),s.Q6J("ngStyle",Be._contentStyleMap),s.xp6(1),s.Q6J("ngStyle",Be._contentStyleMap),s.xp6(1),s.Q6J("nzStringTemplateOutlet",Be.nzTitle)}}let ut=(()=>{class Pe{constructor(Be,se,Se,oe,fe,Oe){this.elementRef=Be,this.hostView=se,this.resolver=Se,this.renderer=oe,this.noAnimation=fe,this.nzConfigService=Oe,this.visibleChange=new s.vpe,this.internalVisible=!1,this.destroy$=new x.xQ,this.triggerDisposables=[]}get _title(){return this.title||this.directiveTitle||null}get _content(){return this.content||this.directiveContent||null}get _trigger(){return void 0!==this.trigger?this.trigger:"hover"}get _placement(){const Be=this.placement;return Array.isArray(Be)&&Be.length>0?Be:"string"==typeof Be&&Be?[Be]:["top"]}get _visible(){return(void 0!==this.visible?this.visible:this.internalVisible)||!1}get _mouseEnterDelay(){return this.mouseEnterDelay||.15}get _mouseLeaveDelay(){return this.mouseLeaveDelay||.1}get _overlayClassName(){return this.overlayClassName||null}get _overlayStyle(){return this.overlayStyle||null}getProxyPropertyMap(){return{noAnimation:["noAnimation",()=>this.noAnimation]}}ngOnChanges(Be){const{trigger:se}=Be;se&&!se.isFirstChange()&&this.registerTriggers(),this.component&&this.updatePropertiesByChanges(Be)}ngAfterViewInit(){this.createComponent(),this.registerTriggers()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete(),this.clearTogglingTimer(),this.removeTriggerListeners()}show(){var Be;null===(Be=this.component)||void 0===Be||Be.show()}hide(){var Be;null===(Be=this.component)||void 0===Be||Be.hide()}updatePosition(){this.component&&this.component.updatePosition()}createComponent(){const Be=this.hostView.createComponent(this.componentFactory);this.component=Be.instance,this.renderer.removeChild(this.renderer.parentNode(this.elementRef.nativeElement),Be.location.nativeElement),this.component.setOverlayOrigin({elementRef:this.origin||this.elementRef}),this.initProperties(),this.component.nzVisibleChange.pipe((0,S.x)(),(0,B.R)(this.destroy$)).subscribe(se=>{this.internalVisible=se,this.visibleChange.emit(se)})}registerTriggers(){const Be=this.elementRef.nativeElement,se=this.trigger;if(this.removeTriggerListeners(),"hover"===se){let Se;this.triggerDisposables.push(this.renderer.listen(Be,"mouseenter",()=>{this.delayEnterLeave(!0,!0,this._mouseEnterDelay)})),this.triggerDisposables.push(this.renderer.listen(Be,"mouseleave",()=>{var oe;this.delayEnterLeave(!0,!1,this._mouseLeaveDelay),(null===(oe=this.component)||void 0===oe?void 0:oe.overlay.overlayRef)&&!Se&&(Se=this.component.overlay.overlayRef.overlayElement,this.triggerDisposables.push(this.renderer.listen(Se,"mouseenter",()=>{this.delayEnterLeave(!1,!0,this._mouseEnterDelay)})),this.triggerDisposables.push(this.renderer.listen(Se,"mouseleave",()=>{this.delayEnterLeave(!1,!1,this._mouseLeaveDelay)})))}))}else"focus"===se?(this.triggerDisposables.push(this.renderer.listen(Be,"focus",()=>this.show())),this.triggerDisposables.push(this.renderer.listen(Be,"blur",()=>this.hide()))):"click"===se&&this.triggerDisposables.push(this.renderer.listen(Be,"click",Se=>{Se.preventDefault(),this.show()}))}updatePropertiesByChanges(Be){this.updatePropertiesByKeys(Object.keys(Be))}updatePropertiesByKeys(Be){var se;const Se=Object.assign({title:["nzTitle",()=>this._title],directiveTitle:["nzTitle",()=>this._title],content:["nzContent",()=>this._content],directiveContent:["nzContent",()=>this._content],trigger:["nzTrigger",()=>this._trigger],placement:["nzPlacement",()=>this._placement],visible:["nzVisible",()=>this._visible],mouseEnterDelay:["nzMouseEnterDelay",()=>this._mouseEnterDelay],mouseLeaveDelay:["nzMouseLeaveDelay",()=>this._mouseLeaveDelay],overlayClassName:["nzOverlayClassName",()=>this._overlayClassName],overlayStyle:["nzOverlayStyle",()=>this._overlayStyle]},this.getProxyPropertyMap());(Be||Object.keys(Se).filter(oe=>!oe.startsWith("directive"))).forEach(oe=>{if(Se[oe]){const[fe,Oe]=Se[oe];this.updateComponentValue(fe,Oe())}}),null===(se=this.component)||void 0===se||se.updateByDirective()}initProperties(){this.updatePropertiesByKeys()}updateComponentValue(Be,se){void 0!==se&&(this.component[Be]=se)}delayEnterLeave(Be,se,Se=-1){this.delayTimer?this.clearTogglingTimer():Se>0?this.delayTimer=setTimeout(()=>{this.delayTimer=void 0,se?this.show():this.hide()},1e3*Se):se&&Be?this.show():this.hide()}removeTriggerListeners(){this.triggerDisposables.forEach(Be=>Be()),this.triggerDisposables.length=0}clearTogglingTimer(){this.delayTimer&&(clearTimeout(this.delayTimer),this.delayTimer=void 0)}}return Pe.\u0275fac=function(Be){return new(Be||Pe)(s.Y36(s.SBq),s.Y36(s.s_b),s.Y36(s._Vd),s.Y36(s.Qsj),s.Y36(W.P),s.Y36(je.jY))},Pe.\u0275dir=s.lG2({type:Pe,features:[s.TTD]}),Pe})(),tt=(()=>{class Pe{constructor(Be,se,Se){this.cdr=Be,this.directionality=se,this.noAnimation=Se,this.nzTitle=null,this.nzContent=null,this.nzOverlayStyle={},this.nzBackdrop=!1,this.nzVisibleChange=new x.xQ,this._visible=!1,this._trigger="hover",this.preferredPlacement="top",this.dir="ltr",this._classMap={},this._prefix="ant-tooltip",this._positions=[...U.Ek],this.destroy$=new x.xQ}set nzVisible(Be){const se=(0,F.sw)(Be);this._visible!==se&&(this._visible=se,this.nzVisibleChange.next(se))}get nzVisible(){return this._visible}set nzTrigger(Be){this._trigger=Be}get nzTrigger(){return this._trigger}set nzPlacement(Be){const se=Be.map(Se=>U.yW[Se]);this._positions=[...se,...U.Ek]}ngOnInit(){var Be;null===(Be=this.directionality.change)||void 0===Be||Be.pipe((0,B.R)(this.destroy$)).subscribe(se=>{this.dir=se,this.cdr.detectChanges()}),this.dir=this.directionality.value}ngOnDestroy(){this.nzVisibleChange.complete(),this.destroy$.next(),this.destroy$.complete()}show(){this.nzVisible||(this.isEmpty()||(this.nzVisible=!0,this.nzVisibleChange.next(!0),this.cdr.detectChanges()),this.origin&&this.overlay&&this.overlay.overlayRef&&"rtl"===this.overlay.overlayRef.getDirection()&&this.overlay.overlayRef.setDirection("ltr"))}hide(){!this.nzVisible||(this.nzVisible=!1,this.nzVisibleChange.next(!1),this.cdr.detectChanges())}updateByDirective(){this.updateStyles(),this.cdr.detectChanges(),Promise.resolve().then(()=>{this.updatePosition(),this.updateVisibilityByTitle()})}updatePosition(){this.origin&&this.overlay&&this.overlay.overlayRef&&this.overlay.overlayRef.updatePosition()}onPositionChange(Be){this.preferredPlacement=(0,U.d_)(Be),this.updateStyles(),this.cdr.detectChanges()}updateStyles(){this._classMap={[this.nzOverlayClassName]:!0,[`${this._prefix}-placement-${this.preferredPlacement}`]:!0}}setOverlayOrigin(Be){this.origin=Be,this.cdr.markForCheck()}onClickOutside(Be){!this.origin.elementRef.nativeElement.contains(Be.target)&&null!==this.nzTrigger&&this.hide()}updateVisibilityByTitle(){this.isEmpty()&&this.hide()}}return Pe.\u0275fac=function(Be){return new(Be||Pe)(s.Y36(s.sBO),s.Y36(c.Is,8),s.Y36(W.P))},Pe.\u0275dir=s.lG2({type:Pe,viewQuery:function(Be,se){if(1&Be&&s.Gf(Ke,5),2&Be){let Se;s.iGM(Se=s.CRH())&&(se.overlay=Se.first)}}}),Pe})(),We=(()=>{class Pe extends ut{constructor(Be,se,Se,oe,fe){super(Be,se,Se,oe,fe),this.trigger="hover",this.placement="top",this.visibleChange=new s.vpe,this.componentFactory=this.resolver.resolveComponentFactory(Re)}getProxyPropertyMap(){return{nzTooltipColor:["nzColor",()=>this.nzTooltipColor]}}}return Pe.\u0275fac=function(Be){return new(Be||Pe)(s.Y36(s.SBq),s.Y36(s.s_b),s.Y36(s._Vd),s.Y36(s.Qsj),s.Y36(W.P,9))},Pe.\u0275dir=s.lG2({type:Pe,selectors:[["","nz-tooltip",""]],hostVars:2,hostBindings:function(Be,se){2&Be&&s.ekj("ant-tooltip-open",se.visible)},inputs:{trigger:["nzTooltipTrigger","trigger"],placement:["nzTooltipPlacement","placement"],title:["nzTooltipTitle","title"],directiveTitle:["nz-tooltip","directiveTitle"],origin:["nzTooltipOrigin","origin"],visible:["nzTooltipVisible","visible"],mouseEnterDelay:["nzTooltipMouseEnterDelay","mouseEnterDelay"],mouseLeaveDelay:["nzTooltipMouseLeaveDelay","mouseLeaveDelay"],overlayClassName:["nzTooltipOverlayClassName","overlayClassName"],overlayStyle:["nzTooltipOverlayStyle","overlayStyle"],nzTooltipColor:"nzTooltipColor"},outputs:{visibleChange:"nzTooltipVisibleChange"},exportAs:["nzTooltip"],features:[s.qOj]}),Pe})(),Re=(()=>{class Pe extends tt{constructor(Be,se,Se){super(Be,se,Se),this.noAnimation=Se,this.nzTitle=null,this._contentStyleMap={}}isEmpty(){return function(Pe){return!(Pe instanceof s.Rgc||""!==Pe&&(0,F.DX)(Pe))}(this.nzTitle)}updateStyles(){const Be=this.nzColor&&(0,le.o2)(this.nzColor);this._classMap={[this.nzOverlayClassName]:!0,[`${this._prefix}-placement-${this.preferredPlacement}`]:!0,[`${this._prefix}-${this.nzColor}`]:Be},this._contentStyleMap={backgroundColor:this.nzColor&&!Be?this.nzColor:null}}}return Pe.\u0275fac=function(Be){return new(Be||Pe)(s.Y36(s.sBO),s.Y36(c.Is,8),s.Y36(W.P,9))},Pe.\u0275cmp=s.Xpm({type:Pe,selectors:[["nz-tooltip"]],exportAs:["nzTooltipComponent"],features:[s.qOj],decls:2,vars:4,consts:[["cdkConnectedOverlay","","nzConnectedOverlay","",3,"cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayPositions","cdkConnectedOverlayPush","overlayOutsideClick","detach","positionChange"],["overlay","cdkConnectedOverlay"],[1,"ant-tooltip",3,"ngClass","ngStyle","nzNoAnimation"],[1,"ant-tooltip-content"],[1,"ant-tooltip-arrow"],[1,"ant-tooltip-arrow-content",3,"ngStyle"],[1,"ant-tooltip-inner",3,"ngStyle"],[4,"nzStringTemplateOutlet"]],template:function(Be,se){1&Be&&(s.YNc(0,nt,6,10,"ng-template",0,1,s.W1O),s.NdJ("overlayOutsideClick",function(oe){return se.onClickOutside(oe)})("detach",function(){return se.hide()})("positionChange",function(oe){return se.onPositionChange(oe)})),2&Be&&s.Q6J("cdkConnectedOverlayOrigin",se.origin)("cdkConnectedOverlayOpen",se._visible)("cdkConnectedOverlayPositions",se._positions)("cdkConnectedOverlayPush",!0)},directives:[Y.pI,U.hQ,V.mk,V.PC,W.P,be.f],encapsulation:2,data:{animation:[z.$C]},changeDetection:0}),Pe})(),Ze=(()=>{class Pe{}return Pe.\u0275fac=function(Be){return new(Be||Pe)},Pe.\u0275mod=s.oAB({type:Pe}),Pe.\u0275inj=s.cJS({imports:[[c.vT,V.ez,Y.U8,be.T,U.e4,W.g]]}),Pe})()},7158:(yt,De,m)=>{"use strict";m.d(De,{f9:()=>Ft,Kf:()=>oe,_z:()=>Re});var c=m(8583),s=m(7716),z=m(1841),le=m(7393);class x{constructor(Ne,Ie){this.count=Ne,this.source=Ie}call(Ne,Ie){return Ie.subscribe(new S(Ne,this.count,this.source))}}class S extends le.L{constructor(Ne,Ie,he){super(Ne),this.count=Ie,this.source=he}error(Ne){if(!this.isStopped){const{source:Ie,count:he}=this;if(0===he)return super.error(Ne);he>-1&&(this.count=he-1),Ie.subscribe(this._unsubscribeAndRecycle())}}}var B=m(5435),U=m(8002),F=m(7349),Y=m(5304),V=m(3190),be={},je={};function Ke(Ue){for(var Ne=[],Ie=0,he=0,we=0;we<Ue.length;we+=1){var Ge=be[Ue[we]];if(void 0===Ge)throw new Error("Invalid character ("+Ue[we]+")");var Ve=32&Ge;if(he+=(Ge&=31)<<Ie,Ve)Ie+=5;else{var ft=1&he;he>>>=1,Ne.push(ft?0===he?-2147483648:-he:he),he=Ie=0}}return Ne}"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".split("").forEach(function(Ue,Ne){be[Ue]=Ne,je[Ne]=Ue});var ut=m(5917);class tt{}let Ft=(()=>{class Ue{static forRoot(Ie){return{ngModule:Ue,providers:[{provide:tt,useValue:Ie||{}}]}}static forChild(){return{ngModule:Ue}}}return Ue.\u0275fac=function(Ie){return new(Ie||Ue)},Ue.\u0275mod=s.oAB({type:Ue}),Ue.\u0275inj=s.cJS({providers:[c.uU],imports:[[c.ez]]}),Ue})(),We=(()=>{class Ue{constructor(Ie){this.httpBackend=Ie}logOnServer(Ie,he,we){const Ge=new z.aW("POST",Ie,he,we||{});return this.httpBackend.handle(Ge).pipe((0,B.h)(Ve=>Ve instanceof z.Zn),(0,U.U)(Ve=>Ve.body))}}return Ue.\u0275fac=function(Ie){return new(Ie||Ue)(s.LFG(z.jN))},Ue.\u0275prov=(0,s.Yz7)({factory:function(){return new Ue((0,s.LFG)(z.jN))},token:Ue,providedIn:"root"}),Ue})();var Re=(()=>{return(Ue=Re||(Re={}))[Ue.TRACE=0]="TRACE",Ue[Ue.DEBUG=1]="DEBUG",Ue[Ue.INFO=2]="INFO",Ue[Ue.LOG=3]="LOG",Ue[Ue.WARN=4]="WARN",Ue[Ue.ERROR=5]="ERROR",Ue[Ue.FATAL=6]="FATAL",Ue[Ue.OFF=7]="OFF",Re;var Ue})();class Ze{constructor(Ne){this.config=Ne,this._config=Ne}get level(){return this._config.level}get serverLogLevel(){return this._config.serverLogLevel}updateConfig(Ne){this._config=this._clone(Ne)}getConfig(){return this._clone(this._config)}_clone(Ne){const Ie=new tt;return Object.keys(Ne).forEach(he=>{Ie[he]=Ne[he]}),Ie}}const Pe=["purple","teal","gray","gray","red","red","red"];class st{static prepareMetaString(Ne,Ie,he,we){return`${Ne} ${Ie}${he?` [${he}:${we}]`:""}`}static getColor(Ne,Ie){switch(Ne){case Re.TRACE:return this.getColorFromConfig(Re.TRACE,Ie);case Re.DEBUG:return this.getColorFromConfig(Re.DEBUG,Ie);case Re.INFO:return this.getColorFromConfig(Re.INFO,Ie);case Re.LOG:return this.getColorFromConfig(Re.LOG,Ie);case Re.WARN:return this.getColorFromConfig(Re.WARN,Ie);case Re.ERROR:return this.getColorFromConfig(Re.ERROR,Ie);case Re.FATAL:return this.getColorFromConfig(Re.FATAL,Ie);case Re.OFF:default:return}}static getColorFromConfig(Ne,Ie){return Ie?Ie[Ne]:Pe[Ne]}static prepareMessage(Ne){try{"string"!=typeof Ne&&!(Ne instanceof Error)&&(Ne=JSON.stringify(Ne,null,2))}catch(Ie){Ne='The provided "message" value could not be parsed with JSON.stringify().'}return Ne}static prepareAdditionalParameters(Ne){return null==Ne?null:Ne.map((Ie,he)=>{try{return"object"==typeof Ie&&JSON.stringify(Ie),Ie}catch(we){return`The additional[${he}] value could not be parsed using JSON.stringify().`}})}}class Be{constructor(Ne,Ie,he){this.fileName=Ne,this.lineNumber=Ie,this.columnNumber=he}toString(){return this.fileName+":"+this.lineNumber+":"+this.columnNumber}}let se=(()=>{class Ue{constructor(Ie){this.httpBackend=Ie,this.sourceMapCache=new Map,this.logPositionCache=new Map}static getStackLine(Ie){const he=new Error;try{throw he}catch(we){try{let Ge=4;return he.stack.split("\n")[0].includes(".js:")||(Ge+=1),he.stack.split("\n")[Ge+(Ie||0)]}catch(Ge){return null}}}static getPosition(Ie){const he=Ie.lastIndexOf("/");let we=Ie.indexOf(")");we<0&&(we=void 0);const Ve=Ie.substring(he+1,we).split(":");return 3===Ve.length?new Be(Ve[0],+Ve[1],+Ve[2]):new Be("unknown",0,0)}static getTranspileLocation(Ie){let he=Ie.indexOf("(");he<0&&(he=Ie.lastIndexOf("@"),he<0&&(he=Ie.lastIndexOf(" ")));let we=Ie.indexOf(")");return we<0&&(we=void 0),Ie.substring(he+1,we)}static getMapFilePath(Ie){const he=Ue.getTranspileLocation(Ie),we=he.substring(0,he.lastIndexOf(":"));return we.substring(0,we.lastIndexOf(":"))+".map"}static getMapping(Ie,he){let we=0,Ge=0,Ve=0;const ft=Ie.mappings.split(";");for(let Tt=0;Tt<ft.length;Tt++){let rt=0;const St=ft[Tt].split(",");for(let lt=0;lt<St.length;lt++){const Dt=Ke(St[lt]);if(Dt.length>=4&&(rt+=Dt[0],we+=Dt[1],Ge+=Dt[2],Ve+=Dt[3]),Tt===he.lineNumber){if(rt===he.columnNumber)return new Be(Ie.sources[we],Ge,Ve);if(lt+1===St.length)return new Be(Ie.sources[we],Ge,0)}}}return new Be("unknown",0,0)}_getSourceMap(Ie,he){const we=new z.aW("GET",Ie),Ge=he.toString();if(this.logPositionCache.has(Ge))return this.logPositionCache.get(Ge);this.sourceMapCache.has(Ie)||this.sourceMapCache.set(Ie,this.httpBackend.handle(we).pipe((0,B.h)(ft=>ft instanceof z.Zn),(0,U.U)(ft=>ft.body),function(Ue=-1){return Ne=>Ne.lift(new x(Ue,Ne))}(3),(0,F.d)(1)));const Ve=this.sourceMapCache.get(Ie).pipe((0,U.U)(ft=>Ue.getMapping(ft,he)),(0,Y.K)(()=>(0,ut.of)(he)),(0,F.d)(1));return this.logPositionCache.set(Ge,Ve),Ve}getCallerDetails(Ie,he){const we=Ue.getStackLine(he);return we?(0,ut.of)([Ue.getPosition(we),Ue.getMapFilePath(we)]).pipe((0,V.w)(([Ge,Ve])=>Ie?this._getSourceMap(Ve,Ge):(0,ut.of)(Ge))):(0,ut.of)(new Be("",0,0))}}return Ue.\u0275fac=function(Ie){return new(Ie||Ue)(s.LFG(z.jN))},Ue.\u0275prov=(0,s.Yz7)({factory:function(){return new Ue((0,s.LFG)(z.jN))},token:Ue,providedIn:"root"}),Ue})();const Se=["TRACE","DEBUG","INFO","LOG","WARN","ERROR","FATAL","OFF"];let oe=(()=>{class Ue{constructor(Ie,he,we,Ge,Ve){this.mapperService=Ie,this.httpService=he,this.platformId=Ge,this.datePipe=Ve,this._withCredentials=!1,this._isIE=(0,c.NF)(Ge)&&navigator&&navigator.userAgent&&!(-1===navigator.userAgent.indexOf("MSIE")&&!navigator.userAgent.match(/Trident\//)&&!navigator.userAgent.match(/Edge\//)),this.config=new Ze(we),this._logFunc=this._isIE?this._logIE.bind(this):this._logModern.bind(this)}get level(){return this.config.level}get serverLogLevel(){return this.config.serverLogLevel}trace(Ie,...he){this._log(Re.TRACE,Ie,he)}debug(Ie,...he){this._log(Re.DEBUG,Ie,he)}info(Ie,...he){this._log(Re.INFO,Ie,he)}log(Ie,...he){this._log(Re.LOG,Ie,he)}warn(Ie,...he){this._log(Re.WARN,Ie,he)}error(Ie,...he){this._log(Re.ERROR,Ie,he)}fatal(Ie,...he){this._log(Re.FATAL,Ie,he)}setCustomHttpHeaders(Ie){this._customHttpHeaders=Ie}setCustomParams(Ie){this._customParams=Ie}setWithCredentialsOptionValue(Ie){this._withCredentials=Ie}registerMonitor(Ie){this._loggerMonitor=Ie}updateConfig(Ie){this.config.updateConfig(Ie)}getConfigSnapshot(){return this.config.getConfig()}_logIE(Ie,he,we,Ge){switch(Ge=Ge||[],Ie){case Re.WARN:console.warn(`${he} `,we,...Ge);break;case Re.ERROR:case Re.FATAL:console.error(`${he} `,we,...Ge);break;case Re.INFO:console.info(`${he} `,we,...Ge);break;default:console.log(`${he} `,we,...Ge)}}_logModern(Ie,he,we,Ge){const Ve=this.getConfigSnapshot().colorScheme,ft=st.getColor(Ie,Ve);switch(Ge=Ge||[],Ie){case Re.WARN:console.warn(`%c${he}`,`color:${ft}`,we,...Ge);break;case Re.ERROR:case Re.FATAL:console.error(`%c${he}`,`color:${ft}`,we,...Ge);break;case Re.INFO:console.info(`%c${he}`,`color:${ft}`,we,...Ge);break;case Re.DEBUG:console.debug(`%c${he}`,`color:${ft}`,we,...Ge);break;default:console.log(`%c${he}`,`color:${ft}`,we,...Ge)}}_log(Ie,he,we=[],Ge=!0){const Ve=this.config.getConfig(),ft=Ge&&Ve.serverLoggingUrl&&Ie>=Ve.serverLogLevel,Tt=Ie>=Ve.level;if(!he||!ft&&!Tt)return;const rt=Se[Ie];he="function"==typeof he?he():he;const St=st.prepareAdditionalParameters(we),lt=Ve.timestampFormat?this.datePipe.transform(new Date,Ve.timestampFormat):(new Date).toISOString();this.mapperService.getCallerDetails(Ve.enableSourceMaps,Ve.proxiedSteps).subscribe(Dt=>{const Ht={message:st.prepareMessage(he),additional:St,level:Ie,timestamp:lt,fileName:Dt.fileName,lineNumber:Dt.lineNumber.toString()};if(this._loggerMonitor&&Tt&&this._loggerMonitor.onLog(Ht),ft){Ht.message=he instanceof Error?he.stack:he,Ht.message=st.prepareMessage(Ht.message);const un=this._customHttpHeaders||new z.WM;un.set("Content-Type","application/json");const en={headers:un,params:this._customParams||new z.LE,responseType:Ve.httpResponseType||"json",withCredentials:this._withCredentials};this.httpService.logOnServer(Ve.serverLoggingUrl,Ht,en).subscribe(wn=>{},wn=>{this._log(Re.ERROR,`FAILED TO LOG ON SERVER: ${he}`,[wn],!1)})}if(Tt&&!Ve.disableConsoleLogging){const un=st.prepareMetaString(lt,rt,Ve.disableFileDetails?null:Dt.fileName,Dt.lineNumber.toString());return this._logFunc(Ie,un,he,we)}})}}return Ue.\u0275fac=function(Ie){return new(Ie||Ue)(s.LFG(se),s.LFG(We),s.LFG(tt),s.LFG(s.Lbi),s.LFG(c.uU))},Ue.\u0275prov=(0,s.Yz7)({factory:function(){return new Ue((0,s.LFG)(se),(0,s.LFG)(We),(0,s.LFG)(tt),(0,s.LFG)(s.Lbi),(0,s.LFG)(c.uU))},token:Ue,providedIn:"root"}),Ue})()},6215:(yt,De,m)=>{"use strict";m.d(De,{X:()=>z});var c=m(9765),s=m(7971);class z extends c.xQ{constructor(W){super(),this._value=W}get value(){return this.getValue()}_subscribe(W){const x=super._subscribe(W);return x&&!x.closed&&W.next(this._value),x}getValue(){if(this.hasError)throw this.thrownError;if(this.closed)throw new s.N;return this._value}next(W){super.next(this._value=W)}}},3098:(yt,De,m)=>{"use strict";m.d(De,{P:()=>W});var c=m(9193),s=m(5917),z=m(205);class W{constructor(S,B,U){this.kind=S,this.value=B,this.error=U,this.hasValue="N"===S}observe(S){switch(this.kind){case"N":return S.next&&S.next(this.value);case"E":return S.error&&S.error(this.error);case"C":return S.complete&&S.complete()}}do(S,B,U){switch(this.kind){case"N":return S&&S(this.value);case"E":return B&&B(this.error);case"C":return U&&U()}}accept(S,B,U){return S&&"function"==typeof S.next?this.observe(S):this.do(S,B,U)}toObservable(){switch(this.kind){case"N":return(0,s.of)(this.value);case"E":return(0,z._)(this.error);case"C":return(0,c.c)()}throw new Error("unexpected notification kind value")}static createNext(S){return void 0!==S?new W("N",S):W.undefinedValueNotification}static createError(S){return new W("E",void 0,S)}static createComplete(){return W.completeNotification}}W.completeNotification=new W("C"),W.undefinedValueNotification=new W("N",void 0)},8891:(yt,De,m)=>{"use strict";m.d(De,{y:()=>U});var c=m(7393),z=m(9181),le=m(6490),x=m(6554),S=m(4022),B=m(2494);let U=(()=>{class Y{constructor(be){this._isScalar=!1,be&&(this._subscribe=be)}lift(be){const je=new Y;return je.source=this,je.operator=be,je}subscribe(be,je,Ke){const{operator:$e}=this,nt=function(Y,V,be){if(Y){if(Y instanceof c.L)return Y;if(Y[z.b])return Y[z.b]()}return Y||V||be?new c.L(Y,V,be):new c.L(le.c)}(be,je,Ke);if(nt.add($e?$e.call(nt,this.source):this.source||B.v.useDeprecatedSynchronousErrorHandling&&!nt.syncErrorThrowable?this._subscribe(nt):this._trySubscribe(nt)),B.v.useDeprecatedSynchronousErrorHandling&&nt.syncErrorThrowable&&(nt.syncErrorThrowable=!1,nt.syncErrorThrown))throw nt.syncErrorValue;return nt}_trySubscribe(be){try{return this._subscribe(be)}catch(je){B.v.useDeprecatedSynchronousErrorHandling&&(be.syncErrorThrown=!0,be.syncErrorValue=je),function(Y){for(;Y;){const{closed:V,destination:be,isStopped:je}=Y;if(V||je)return!1;Y=be&&be instanceof c.L?be:null}return!0}(be)?be.error(je):console.warn(je)}}forEach(be,je){return new(je=F(je))((Ke,$e)=>{let nt;nt=this.subscribe(ut=>{try{be(ut)}catch(tt){$e(tt),nt&&nt.unsubscribe()}},$e,Ke)})}_subscribe(be){const{source:je}=this;return je&&je.subscribe(be)}[x.L](){return this}pipe(...be){return 0===be.length?this:(0,S.U)(be)(this)}toPromise(be){return new(be=F(be))((je,Ke)=>{let $e;this.subscribe(nt=>$e=nt,nt=>Ke(nt),()=>je($e))})}}return Y.create=V=>new Y(V),Y})();function F(Y){if(Y||(Y=B.v.Promise||Promise),!Y)throw new Error("no Promise impl found");return Y}},6490:(yt,De,m)=>{"use strict";m.d(De,{c:()=>z});var c=m(2494),s=m(4449);const z={closed:!0,next(le){},error(le){if(c.v.useDeprecatedSynchronousErrorHandling)throw le;(0,s.z)(le)},complete(){}}},5197:(yt,De,m)=>{"use strict";m.d(De,{L:()=>s});var c=m(7393);class s extends c.L{notifyNext(le,W,x,S,B){this.destination.next(W)}notifyError(le,W){this.destination.error(le)}notifyComplete(le){this.destination.complete()}}},226:(yt,De,m)=>{"use strict";m.d(De,{t:()=>V});var c=m(9765),s=m(6465),le=m(6102);const S=new class extends le.v{}(class extends s.o{constructor(Ke,$e){super(Ke,$e),this.scheduler=Ke,this.work=$e}schedule(Ke,$e=0){return $e>0?super.schedule(Ke,$e):(this.delay=$e,this.state=Ke,this.scheduler.flush(this),this)}execute(Ke,$e){return $e>0||this.closed?super.execute(Ke,$e):this._execute(Ke,$e)}requestAsyncId(Ke,$e,nt=0){return null!==nt&&nt>0||null===nt&&this.delay>0?super.requestAsyncId(Ke,$e,nt):Ke.flush(this)}});var B=m(5319),U=m(9746),F=m(7971),Y=m(8858);class V extends c.xQ{constructor(Ke=Number.POSITIVE_INFINITY,$e=Number.POSITIVE_INFINITY,nt){super(),this.scheduler=nt,this._events=[],this._infiniteTimeWindow=!1,this._bufferSize=Ke<1?1:Ke,this._windowTime=$e<1?1:$e,$e===Number.POSITIVE_INFINITY?(this._infiniteTimeWindow=!0,this.next=this.nextInfiniteTimeWindow):this.next=this.nextTimeWindow}nextInfiniteTimeWindow(Ke){if(!this.isStopped){const $e=this._events;$e.push(Ke),$e.length>this._bufferSize&&$e.shift()}super.next(Ke)}nextTimeWindow(Ke){this.isStopped||(this._events.push(new be(this._getNow(),Ke)),this._trimBufferThenGetEvents()),super.next(Ke)}_subscribe(Ke){const $e=this._infiniteTimeWindow,nt=$e?this._events:this._trimBufferThenGetEvents(),ut=this.scheduler,tt=nt.length;let Ft;if(this.closed)throw new F.N;if(this.isStopped||this.hasError?Ft=B.w.EMPTY:(this.observers.push(Ke),Ft=new Y.W(this,Ke)),ut&&Ke.add(Ke=new U.ht(Ke,ut)),$e)for(let We=0;We<tt&&!Ke.closed;We++)Ke.next(nt[We]);else for(let We=0;We<tt&&!Ke.closed;We++)Ke.next(nt[We].value);return this.hasError?Ke.error(this.thrownError):this.isStopped&&Ke.complete(),Ft}_getNow(){return(this.scheduler||S).now()}_trimBufferThenGetEvents(){const Ke=this._getNow(),$e=this._bufferSize,nt=this._windowTime,ut=this._events,tt=ut.length;let Ft=0;for(;Ft<tt&&!(Ke-ut[Ft].time<nt);)Ft++;return tt>$e&&(Ft=Math.max(Ft,tt-$e)),Ft>0&&ut.splice(0,Ft),ut}}class be{constructor(Ke,$e){this.time=Ke,this.value=$e}}},9765:(yt,De,m)=>{"use strict";m.d(De,{Yc:()=>S,xQ:()=>B});var c=m(8891),s=m(7393),z=m(5319),le=m(7971),W=m(8858),x=m(9181);class S extends s.L{constructor(Y){super(Y),this.destination=Y}}let B=(()=>{class F extends c.y{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[x.b](){return new S(this)}lift(V){const be=new U(this,this);return be.operator=V,be}next(V){if(this.closed)throw new le.N;if(!this.isStopped){const{observers:be}=this,je=be.length,Ke=be.slice();for(let $e=0;$e<je;$e++)Ke[$e].next(V)}}error(V){if(this.closed)throw new le.N;this.hasError=!0,this.thrownError=V,this.isStopped=!0;const{observers:be}=this,je=be.length,Ke=be.slice();for(let $e=0;$e<je;$e++)Ke[$e].error(V);this.observers.length=0}complete(){if(this.closed)throw new le.N;this.isStopped=!0;const{observers:V}=this,be=V.length,je=V.slice();for(let Ke=0;Ke<be;Ke++)je[Ke].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(V){if(this.closed)throw new le.N;return super._trySubscribe(V)}_subscribe(V){if(this.closed)throw new le.N;return this.hasError?(V.error(this.thrownError),z.w.EMPTY):this.isStopped?(V.complete(),z.w.EMPTY):(this.observers.push(V),new W.W(this,V))}asObservable(){const V=new c.y;return V.source=this,V}}return F.create=(Y,V)=>new U(Y,V),F})();class U extends B{constructor(Y,V){super(),this.destination=Y,this.source=V}next(Y){const{destination:V}=this;V&&V.next&&V.next(Y)}error(Y){const{destination:V}=this;V&&V.error&&this.destination.error(Y)}complete(){const{destination:Y}=this;Y&&Y.complete&&this.destination.complete()}_subscribe(Y){const{source:V}=this;return V?this.source.subscribe(Y):z.w.EMPTY}}},8858:(yt,De,m)=>{"use strict";m.d(De,{W:()=>s});var c=m(5319);class s extends c.w{constructor(le,W){super(),this.subject=le,this.subscriber=W,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const le=this.subject,W=le.observers;if(this.subject=null,!W||0===W.length||le.isStopped||le.closed)return;const x=W.indexOf(this.subscriber);-1!==x&&W.splice(x,1)}}},7393:(yt,De,m)=>{"use strict";m.d(De,{L:()=>S});var c=m(9105),s=m(6490),z=m(5319),le=m(9181),W=m(2494),x=m(4449);class S extends z.w{constructor(F,Y,V){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=s.c;break;case 1:if(!F){this.destination=s.c;break}if("object"==typeof F){F instanceof S?(this.syncErrorThrowable=F.syncErrorThrowable,this.destination=F,F.add(this)):(this.syncErrorThrowable=!0,this.destination=new B(this,F));break}default:this.syncErrorThrowable=!0,this.destination=new B(this,F,Y,V)}}[le.b](){return this}static create(F,Y,V){const be=new S(F,Y,V);return be.syncErrorThrowable=!1,be}next(F){this.isStopped||this._next(F)}error(F){this.isStopped||(this.isStopped=!0,this._error(F))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(F){this.destination.next(F)}_error(F){this.destination.error(F),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:F}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=F,this}}class B extends S{constructor(F,Y,V,be){super(),this._parentSubscriber=F;let je,Ke=this;(0,c.m)(Y)?je=Y:Y&&(je=Y.next,V=Y.error,be=Y.complete,Y!==s.c&&(Ke=Object.create(Y),(0,c.m)(Ke.unsubscribe)&&this.add(Ke.unsubscribe.bind(Ke)),Ke.unsubscribe=this.unsubscribe.bind(this))),this._context=Ke,this._next=je,this._error=V,this._complete=be}next(F){if(!this.isStopped&&this._next){const{_parentSubscriber:Y}=this;W.v.useDeprecatedSynchronousErrorHandling&&Y.syncErrorThrowable?this.__tryOrSetError(Y,this._next,F)&&this.unsubscribe():this.__tryOrUnsub(this._next,F)}}error(F){if(!this.isStopped){const{_parentSubscriber:Y}=this,{useDeprecatedSynchronousErrorHandling:V}=W.v;if(this._error)V&&Y.syncErrorThrowable?(this.__tryOrSetError(Y,this._error,F),this.unsubscribe()):(this.__tryOrUnsub(this._error,F),this.unsubscribe());else if(Y.syncErrorThrowable)V?(Y.syncErrorValue=F,Y.syncErrorThrown=!0):(0,x.z)(F),this.unsubscribe();else{if(this.unsubscribe(),V)throw F;(0,x.z)(F)}}}complete(){if(!this.isStopped){const{_parentSubscriber:F}=this;if(this._complete){const Y=()=>this._complete.call(this._context);W.v.useDeprecatedSynchronousErrorHandling&&F.syncErrorThrowable?(this.__tryOrSetError(F,Y),this.unsubscribe()):(this.__tryOrUnsub(Y),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(F,Y){try{F.call(this._context,Y)}catch(V){if(this.unsubscribe(),W.v.useDeprecatedSynchronousErrorHandling)throw V;(0,x.z)(V)}}__tryOrSetError(F,Y,V){if(!W.v.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{Y.call(this._context,V)}catch(be){return W.v.useDeprecatedSynchronousErrorHandling?(F.syncErrorValue=be,F.syncErrorThrown=!0,!0):((0,x.z)(be),!0)}return!1}_unsubscribe(){const{_parentSubscriber:F}=this;this._context=null,this._parentSubscriber=null,F.unsubscribe()}}},5319:(yt,De,m)=>{"use strict";m.d(De,{w:()=>x});var c=m(9796),s=m(1555),z=m(9105);const W=(()=>{function B(U){return Error.call(this),this.message=U?`${U.length} errors occurred during unsubscription:\n${U.map((F,Y)=>`${Y+1}) ${F.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=U,this}return B.prototype=Object.create(Error.prototype),B})();class x{constructor(U){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,U&&(this._ctorUnsubscribe=!0,this._unsubscribe=U)}unsubscribe(){let U;if(this.closed)return;let{_parentOrParents:F,_ctorUnsubscribe:Y,_unsubscribe:V,_subscriptions:be}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,F instanceof x)F.remove(this);else if(null!==F)for(let je=0;je<F.length;++je)F[je].remove(this);if((0,z.m)(V)){Y&&(this._unsubscribe=void 0);try{V.call(this)}catch(je){U=je instanceof W?S(je.errors):[je]}}if((0,c.k)(be)){let je=-1,Ke=be.length;for(;++je<Ke;){const $e=be[je];if((0,s.K)($e))try{$e.unsubscribe()}catch(nt){U=U||[],nt instanceof W?U=U.concat(S(nt.errors)):U.push(nt)}}}if(U)throw new W(U)}add(U){let F=U;if(!U)return x.EMPTY;switch(typeof U){case"function":F=new x(U);case"object":if(F===this||F.closed||"function"!=typeof F.unsubscribe)return F;if(this.closed)return F.unsubscribe(),F;if(!(F instanceof x)){const be=F;F=new x,F._subscriptions=[be]}break;default:throw new Error("unrecognized teardown "+U+" added to Subscription.")}let{_parentOrParents:Y}=F;if(null===Y)F._parentOrParents=this;else if(Y instanceof x){if(Y===this)return F;F._parentOrParents=[Y,this]}else{if(-1!==Y.indexOf(this))return F;Y.push(this)}const V=this._subscriptions;return null===V?this._subscriptions=[F]:V.push(F),F}remove(U){const F=this._subscriptions;if(F){const Y=F.indexOf(U);-1!==Y&&F.splice(Y,1)}}}var B;function S(B){return B.reduce((U,F)=>U.concat(F instanceof W?F.errors:F),[])}x.EMPTY=((B=new x).closed=!0,B)},2494:(yt,De,m)=>{"use strict";m.d(De,{v:()=>s});let c=!1;const s={Promise:void 0,set useDeprecatedSynchronousErrorHandling(z){if(z){const le=new Error;console.warn("DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n"+le.stack)}else c&&console.log("RxJS: Back to a better error behavior. Thank you. <3");c=z},get useDeprecatedSynchronousErrorHandling(){return c}}},5345:(yt,De,m)=>{"use strict";m.d(De,{IY:()=>le,Ds:()=>x,ft:()=>B});var c=m(7393),s=m(8891),z=m(7444);class le extends c.L{constructor(F){super(),this.parent=F}_next(F){this.parent.notifyNext(F)}_error(F){this.parent.notifyError(F),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class x extends c.L{notifyNext(F){this.destination.next(F)}notifyError(F){this.destination.error(F)}notifyComplete(){this.destination.complete()}}function B(U,F){if(F.closed)return;if(U instanceof s.y)return U.subscribe(F);let Y;try{Y=(0,z.s)(U)(F)}catch(V){F.error(V)}return Y}},2441:(yt,De,m)=>{"use strict";m.d(De,{c:()=>W,N:()=>x});var c=m(9765),s=m(8891),z=m(5319),le=m(1307);class W extends s.y{constructor(Y,V){super(),this.source=Y,this.subjectFactory=V,this._refCount=0,this._isComplete=!1}_subscribe(Y){return this.getSubject().subscribe(Y)}getSubject(){const Y=this._subject;return(!Y||Y.isStopped)&&(this._subject=this.subjectFactory()),this._subject}connect(){let Y=this._connection;return Y||(this._isComplete=!1,Y=this._connection=new z.w,Y.add(this.source.subscribe(new S(this.getSubject(),this))),Y.closed&&(this._connection=null,Y=z.w.EMPTY)),Y}refCount(){return(0,le.x)()(this)}}const x=(()=>{const F=W.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:F._subscribe},_isComplete:{value:F._isComplete,writable:!0},getSubject:{value:F.getSubject},connect:{value:F.connect},refCount:{value:F.refCount}}})();class S extends c.Yc{constructor(Y,V){super(Y),this.connectable=V}_error(Y){this._unsubscribe(),super._error(Y)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const Y=this.connectable;if(Y){this.connectable=null;const V=Y._connection;Y._refCount=0,Y._subject=null,Y._connection=null,V&&V.unsubscribe()}}}},9112:(yt,De,m)=>{"use strict";m.d(De,{aj:()=>S});var c=m(4869),s=m(9796),z=m(5197),le=m(509),W=m(6693);const x={};function S(...F){let Y,V;return(0,c.K)(F[F.length-1])&&(V=F.pop()),"function"==typeof F[F.length-1]&&(Y=F.pop()),1===F.length&&(0,s.k)(F[0])&&(F=F[0]),(0,W.n)(F,V).lift(new B(Y))}class B{constructor(Y){this.resultSelector=Y}call(Y,V){return V.subscribe(new U(Y,this.resultSelector))}}class U extends z.L{constructor(Y,V){super(Y),this.resultSelector=V,this.active=0,this.values=[],this.observables=[]}_next(Y){this.values.push(x),this.observables.push(Y)}_complete(){const Y=this.observables,V=Y.length;if(0===V)this.destination.complete();else{this.active=V,this.toRespond=V;for(let be=0;be<V;be++)this.add((0,le.D)(this,Y[be],void 0,be))}}notifyComplete(Y){0==(this.active-=1)&&this.destination.complete()}notifyNext(Y,V,be){const je=this.values,$e=this.toRespond?je[be]===x?--this.toRespond:this.toRespond:0;je[be]=V,0===$e&&(this.resultSelector?this._tryResultSelector(je):this.destination.next(je.slice()))}_tryResultSelector(Y){let V;try{V=this.resultSelector.apply(this,Y)}catch(be){return void this.destination.error(be)}this.destination.next(V)}}},9923:(yt,De,m)=>{"use strict";m.d(De,{z:()=>z});var c=m(5917),s=m(5766);function z(...le){return(0,s.u)()((0,c.of)(...le))}},1439:(yt,De,m)=>{"use strict";m.d(De,{P:()=>le});var c=m(8891),s=m(4402),z=m(9193);function le(W){return new c.y(x=>{let S;try{S=W()}catch(U){return void x.error(U)}return(S?(0,s.D)(S):(0,z.c)()).subscribe(x)})}},9193:(yt,De,m)=>{"use strict";m.d(De,{E:()=>s,c:()=>z});var c=m(8891);const s=new c.y(W=>W.complete());function z(W){return W?function(W){return new c.y(x=>W.schedule(()=>x.complete()))}(W):s}},4402:(yt,De,m)=>{"use strict";m.d(De,{D:()=>Ke});var c=m(8891),s=m(7444),z=m(5319),le=m(6554),S=m(4087),B=m(377),Y=m(4072),V=m(9489);function Ke($e,nt){return nt?function($e,nt){if(null!=$e){if(function($e){return $e&&"function"==typeof $e[le.L]}($e))return function($e,nt){return new c.y(ut=>{const tt=new z.w;return tt.add(nt.schedule(()=>{const Ft=$e[le.L]();tt.add(Ft.subscribe({next(We){tt.add(nt.schedule(()=>ut.next(We)))},error(We){tt.add(nt.schedule(()=>ut.error(We)))},complete(){tt.add(nt.schedule(()=>ut.complete()))}}))})),tt})}($e,nt);if((0,Y.t)($e))return function($e,nt){return new c.y(ut=>{const tt=new z.w;return tt.add(nt.schedule(()=>$e.then(Ft=>{tt.add(nt.schedule(()=>{ut.next(Ft),tt.add(nt.schedule(()=>ut.complete()))}))},Ft=>{tt.add(nt.schedule(()=>ut.error(Ft)))}))),tt})}($e,nt);if((0,V.z)($e))return(0,S.r)($e,nt);if(function($e){return $e&&"function"==typeof $e[B.hZ]}($e)||"string"==typeof $e)return function($e,nt){if(!$e)throw new Error("Iterable cannot be null");return new c.y(ut=>{const tt=new z.w;let Ft;return tt.add(()=>{Ft&&"function"==typeof Ft.return&&Ft.return()}),tt.add(nt.schedule(()=>{Ft=$e[B.hZ](),tt.add(nt.schedule(function(){if(ut.closed)return;let We,Re;try{const Ze=Ft.next();We=Ze.value,Re=Ze.done}catch(Ze){return void ut.error(Ze)}Re?ut.complete():(ut.next(We),this.schedule())}))})),tt})}($e,nt)}throw new TypeError((null!==$e&&typeof $e||$e)+" is not observable")}($e,nt):$e instanceof c.y?$e:new c.y((0,s.s)($e))}},6693:(yt,De,m)=>{"use strict";m.d(De,{n:()=>le});var c=m(8891),s=m(5015),z=m(4087);function le(W,x){return x?(0,z.r)(W,x):new c.y((0,s.V)(W))}},2759:(yt,De,m)=>{"use strict";m.d(De,{R:()=>x});var c=m(8891),s=m(9796),z=m(9105),le=m(8002);function x(Y,V,be,je){return(0,z.m)(be)&&(je=be,be=void 0),je?x(Y,V,be).pipe((0,le.U)(Ke=>(0,s.k)(Ke)?je(...Ke):je(Ke))):new c.y(Ke=>{S(Y,V,function(nt){Ke.next(arguments.length>1?Array.prototype.slice.call(arguments):nt)},Ke,be)})}function S(Y,V,be,je,Ke){let $e;if(function(Y){return Y&&"function"==typeof Y.addEventListener&&"function"==typeof Y.removeEventListener}(Y)){const nt=Y;Y.addEventListener(V,be,Ke),$e=()=>nt.removeEventListener(V,be,Ke)}else if(function(Y){return Y&&"function"==typeof Y.on&&"function"==typeof Y.off}(Y)){const nt=Y;Y.on(V,be),$e=()=>nt.off(V,be)}else if(function(Y){return Y&&"function"==typeof Y.addListener&&"function"==typeof Y.removeListener}(Y)){const nt=Y;Y.addListener(V,be),$e=()=>nt.removeListener(V,be)}else{if(!Y||!Y.length)throw new TypeError("Invalid event target");for(let nt=0,ut=Y.length;nt<ut;nt++)S(Y[nt],V,be,je,Ke)}je.add($e)}},6682:(yt,De,m)=>{"use strict";m.d(De,{T:()=>W});var c=m(8891),s=m(4869),z=m(3282),le=m(6693);function W(...x){let S=Number.POSITIVE_INFINITY,B=null,U=x[x.length-1];return(0,s.K)(U)?(B=x.pop(),x.length>1&&"number"==typeof x[x.length-1]&&(S=x.pop())):"number"==typeof U&&(S=x.pop()),null===B&&1===x.length&&x[0]instanceof c.y?x[0]:(0,z.J)(S)((0,le.n)(x,B))}},5917:(yt,De,m)=>{"use strict";m.d(De,{of:()=>le});var c=m(4869),s=m(6693),z=m(4087);function le(...W){let x=W[W.length-1];return(0,c.K)(x)?(W.pop(),(0,z.r)(W,x)):(0,s.n)(W)}},205:(yt,De,m)=>{"use strict";m.d(De,{_:()=>s});var c=m(8891);function s(le,W){return new c.y(W?x=>W.schedule(z,0,{error:le,subscriber:x}):x=>x.error(le))}function z({error:le,subscriber:W}){W.error(le)}},6797:(yt,De,m)=>{"use strict";m.d(De,{H:()=>W});var c=m(8891),s=m(3637),z=m(6561),le=m(4869);function W(S=0,B,U){let F=-1;return(0,z.k)(B)?F=Number(B)<1?1:Number(B):(0,le.K)(B)&&(U=B),(0,le.K)(U)||(U=s.P),new c.y(Y=>{const V=(0,z.k)(S)?S:+S-U.now();return U.schedule(x,V,{index:0,period:F,subscriber:Y})})}function x(S){const{index:B,period:U,subscriber:F}=S;if(F.next(B),!F.closed){if(-1===U)return F.complete();S.index=B+1,this.schedule(S,U)}}},13:(yt,De,m)=>{"use strict";m.d(De,{e:()=>S});var c=m(3637),s=m(5345);class le{constructor(U){this.durationSelector=U}call(U,F){return F.subscribe(new W(U,this.durationSelector))}}class W extends s.Ds{constructor(U,F){super(U),this.durationSelector=F,this.hasValue=!1}_next(U){if(this.value=U,this.hasValue=!0,!this.throttled){let F;try{const{durationSelector:V}=this;F=V(U)}catch(V){return this.destination.error(V)}const Y=(0,s.ft)(F,new s.IY(this));!Y||Y.closed?this.clearThrottle():this.add(this.throttled=Y)}}clearThrottle(){const{value:U,hasValue:F,throttled:Y}=this;Y&&(this.remove(Y),this.throttled=void 0,Y.unsubscribe()),F&&(this.value=void 0,this.hasValue=!1,this.destination.next(U))}notifyNext(){this.clearThrottle()}notifyComplete(){this.clearThrottle()}}var x=m(6797);function S(B,U=c.P){return function(B){return function(F){return F.lift(new le(B))}}(()=>(0,x.H)(B,U))}},5304:(yt,De,m)=>{"use strict";m.d(De,{K:()=>s});var c=m(5345);function s(W){return function(S){const B=new z(W),U=S.lift(B);return B.caught=U}}class z{constructor(x){this.selector=x}call(x,S){return S.subscribe(new le(x,this.selector,this.caught))}}class le extends c.Ds{constructor(x,S,B){super(x),this.selector=S,this.caught=B}error(x){if(!this.isStopped){let S;try{S=this.selector(x,this.caught)}catch(F){return void super.error(F)}this._unsubscribeAndRecycle();const B=new c.IY(this);this.add(B);const U=(0,c.ft)(S,B);U!==B&&this.add(U)}}}},5766:(yt,De,m)=>{"use strict";m.d(De,{u:()=>s});var c=m(3282);function s(){return(0,c.J)(1)}},4612:(yt,De,m)=>{"use strict";m.d(De,{b:()=>s});var c=m(9773);function s(z,le){return(0,c.zg)(z,le,1)}},4395:(yt,De,m)=>{"use strict";m.d(De,{b:()=>z});var c=m(7393),s=m(3637);function z(S,B=s.P){return U=>U.lift(new le(S,B))}class le{constructor(B,U){this.dueTime=B,this.scheduler=U}call(B,U){return U.subscribe(new W(B,this.dueTime,this.scheduler))}}class W extends c.L{constructor(B,U,F){super(B),this.dueTime=U,this.scheduler=F,this.debouncedSubscription=null,this.lastValue=null,this.hasValue=!1}_next(B){this.clearDebounce(),this.lastValue=B,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(x,this.dueTime,this))}_complete(){this.debouncedNext(),this.destination.complete()}debouncedNext(){if(this.clearDebounce(),this.hasValue){const{lastValue:B}=this;this.lastValue=null,this.hasValue=!1,this.destination.next(B)}}clearDebounce(){const B=this.debouncedSubscription;null!==B&&(this.remove(B),B.unsubscribe(),this.debouncedSubscription=null)}}function x(S){S.debouncedNext()}},1289:(yt,De,m)=>{"use strict";m.d(De,{g:()=>W});var c=m(3637),z=m(7393),le=m(3098);function W(U,F=c.P){const V=function(U){return U instanceof Date&&!isNaN(+U)}(U)?+U-F.now():Math.abs(U);return be=>be.lift(new x(V,F))}class x{constructor(F,Y){this.delay=F,this.scheduler=Y}call(F,Y){return Y.subscribe(new S(F,this.delay,this.scheduler))}}class S extends z.L{constructor(F,Y,V){super(F),this.delay=Y,this.scheduler=V,this.queue=[],this.active=!1,this.errored=!1}static dispatch(F){const Y=F.source,V=Y.queue,be=F.scheduler,je=F.destination;for(;V.length>0&&V[0].time-be.now()<=0;)V.shift().notification.observe(je);if(V.length>0){const Ke=Math.max(0,V[0].time-be.now());this.schedule(F,Ke)}else this.unsubscribe(),Y.active=!1}_schedule(F){this.active=!0,this.destination.add(F.schedule(S.dispatch,this.delay,{source:this,destination:this.destination,scheduler:F}))}scheduleNotification(F){if(!0===this.errored)return;const Y=this.scheduler,V=new B(Y.now()+this.delay,F);this.queue.push(V),!1===this.active&&this._schedule(Y)}_next(F){this.scheduleNotification(le.P.createNext(F))}_error(F){this.errored=!0,this.queue=[],this.destination.error(F),this.unsubscribe()}_complete(){this.scheduleNotification(le.P.createComplete()),this.unsubscribe()}}class B{constructor(F,Y){this.time=F,this.notification=Y}}},7519:(yt,De,m)=>{"use strict";m.d(De,{x:()=>s});var c=m(7393);function s(W,x){return S=>S.lift(new z(W,x))}class z{constructor(x,S){this.compare=x,this.keySelector=S}call(x,S){return S.subscribe(new le(x,this.compare,this.keySelector))}}class le extends c.L{constructor(x,S,B){super(x),this.keySelector=B,this.hasKey=!1,"function"==typeof S&&(this.compare=S)}compare(x,S){return x===S}_next(x){let S;try{const{keySelector:U}=this;S=U?U(x):x}catch(U){return this.destination.error(U)}let B=!1;if(this.hasKey)try{const{compare:U}=this;B=U(this.key,S)}catch(U){return this.destination.error(U)}else this.hasKey=!0;B||(this.key=S,this.destination.next(x))}}},5435:(yt,De,m)=>{"use strict";m.d(De,{h:()=>s});var c=m(7393);function s(W,x){return function(B){return B.lift(new z(W,x))}}class z{constructor(x,S){this.predicate=x,this.thisArg=S}call(x,S){return S.subscribe(new le(x,this.predicate,this.thisArg))}}class le extends c.L{constructor(x,S,B){super(x),this.predicate=S,this.thisArg=B,this.count=0}_next(x){let S;try{S=this.predicate.call(this.thisArg,x,this.count++)}catch(B){return void this.destination.error(B)}S&&this.destination.next(x)}}},8939:(yt,De,m)=>{"use strict";m.d(De,{x:()=>z});var c=m(7393),s=m(5319);function z(x){return S=>S.lift(new le(x))}class le{constructor(S){this.callback=S}call(S,B){return B.subscribe(new W(S,this.callback))}}class W extends c.L{constructor(S,B){super(S),this.add(new s.w(B))}}},8002:(yt,De,m)=>{"use strict";m.d(De,{U:()=>s});var c=m(7393);function s(W,x){return function(B){if("function"!=typeof W)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return B.lift(new z(W,x))}}class z{constructor(x,S){this.project=x,this.thisArg=S}call(x,S){return S.subscribe(new le(x,this.project,this.thisArg))}}class le extends c.L{constructor(x,S,B){super(x),this.project=S,this.count=0,this.thisArg=B||this}_next(x){let S;try{S=this.project.call(this.thisArg,x,this.count++)}catch(B){return void this.destination.error(B)}this.destination.next(S)}}},6736:(yt,De,m)=>{"use strict";m.d(De,{h:()=>s});var c=m(7393);function s(W){return x=>x.lift(new z(W))}class z{constructor(x){this.value=x}call(x,S){return S.subscribe(new le(x,this.value))}}class le extends c.L{constructor(x,S){super(x),this.value=S}_next(x){this.destination.next(this.value)}}},3282:(yt,De,m)=>{"use strict";m.d(De,{J:()=>z});var c=m(9773),s=m(4487);function z(le=Number.POSITIVE_INFINITY){return(0,c.zg)(s.y,le)}},9773:(yt,De,m)=>{"use strict";m.d(De,{zg:()=>le});var c=m(8002),s=m(4402),z=m(5345);function le(B,U,F=Number.POSITIVE_INFINITY){return"function"==typeof U?Y=>Y.pipe(le((V,be)=>(0,s.D)(B(V,be)).pipe((0,c.U)((je,Ke)=>U(V,je,be,Ke))),F)):("number"==typeof U&&(F=U),Y=>Y.lift(new W(B,F)))}class W{constructor(U,F=Number.POSITIVE_INFINITY){this.project=U,this.concurrent=F}call(U,F){return F.subscribe(new x(U,this.project,this.concurrent))}}class x extends z.Ds{constructor(U,F,Y=Number.POSITIVE_INFINITY){super(U),this.project=F,this.concurrent=Y,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(U){this.active<this.concurrent?this._tryNext(U):this.buffer.push(U)}_tryNext(U){let F;const Y=this.index++;try{F=this.project(U,Y)}catch(V){return void this.destination.error(V)}this.active++,this._innerSub(F)}_innerSub(U){const F=new z.IY(this),Y=this.destination;Y.add(F);const V=(0,z.ft)(U,F);V!==F&&Y.add(V)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(U){this.destination.next(U)}notifyComplete(){const U=this.buffer;this.active--,U.length>0?this._next(U.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}},4458:(yt,De,m)=>{"use strict";m.d(De,{O:()=>s});var c=m(2441);function s(le,W){return function(S){let B;if(B="function"==typeof le?le:function(){return le},"function"==typeof W)return S.lift(new z(B,W));const U=Object.create(S,c.N);return U.source=S,U.subjectFactory=B,U}}class z{constructor(W,x){this.subjectFactory=W,this.selector=x}call(W,x){const{selector:S}=this,B=this.subjectFactory(),U=S(B).subscribe(W);return U.add(x.subscribe(B)),U}}},9746:(yt,De,m)=>{"use strict";m.d(De,{QV:()=>z,ht:()=>W});var c=m(7393),s=m(3098);function z(S,B=0){return function(F){return F.lift(new le(S,B))}}class le{constructor(B,U=0){this.scheduler=B,this.delay=U}call(B,U){return U.subscribe(new W(B,this.scheduler,this.delay))}}class W extends c.L{constructor(B,U,F=0){super(B),this.scheduler=U,this.delay=F}static dispatch(B){const{notification:U,destination:F}=B;U.observe(F),this.unsubscribe()}scheduleMessage(B){this.destination.add(this.scheduler.schedule(W.dispatch,this.delay,new x(B,this.destination)))}_next(B){this.scheduleMessage(s.P.createNext(B))}_error(B){this.scheduleMessage(s.P.createError(B)),this.unsubscribe()}_complete(){this.scheduleMessage(s.P.createComplete()),this.unsubscribe()}}class x{constructor(B,U){this.notification=B,this.destination=U}}},1307:(yt,De,m)=>{"use strict";m.d(De,{x:()=>s});var c=m(7393);function s(){return function(x){return x.lift(new z(x))}}class z{constructor(x){this.connectable=x}call(x,S){const{connectable:B}=this;B._refCount++;const U=new le(x,B),F=S.subscribe(U);return U.closed||(U.connection=B.connect()),F}}class le extends c.L{constructor(x,S){super(x),this.connectable=S}_unsubscribe(){const{connectable:x}=this;if(!x)return void(this.connection=null);this.connectable=null;const S=x._refCount;if(S<=0)return void(this.connection=null);if(x._refCount=S-1,S>1)return void(this.connection=null);const{connection:B}=this,U=x._connection;this.connection=null,U&&(!B||U===B)&&U.unsubscribe()}}},2145:(yt,De,m)=>{"use strict";m.d(De,{R:()=>s});var c=m(7393);function s(W,x){let S=!1;return arguments.length>=2&&(S=!0),function(U){return U.lift(new z(W,x,S))}}class z{constructor(x,S,B=!1){this.accumulator=x,this.seed=S,this.hasSeed=B}call(x,S){return S.subscribe(new le(x,this.accumulator,this.seed,this.hasSeed))}}class le extends c.L{constructor(x,S,B,U){super(x),this.accumulator=S,this._seed=B,this.hasSeed=U,this.index=0}get seed(){return this._seed}set seed(x){this.hasSeed=!0,this._seed=x}_next(x){if(this.hasSeed)return this._tryNext(x);this.seed=x,this.destination.next(x)}_tryNext(x){const S=this.index++;let B;try{B=this.accumulator(this.seed,x,S)}catch(U){this.destination.error(U)}this.seed=B,this.destination.next(B)}}},8345:(yt,De,m)=>{"use strict";m.d(De,{B:()=>W});var c=m(4458),s=m(1307),z=m(9765);function le(){return new z.xQ}function W(){return x=>(0,s.x)()((0,c.O)(le)(x))}},7349:(yt,De,m)=>{"use strict";m.d(De,{d:()=>s});var c=m(226);function s(le,W,x){let S;return S=le&&"object"==typeof le?le:{bufferSize:le,windowTime:W,refCount:!1,scheduler:x},B=>B.lift(function({bufferSize:le=Number.POSITIVE_INFINITY,windowTime:W=Number.POSITIVE_INFINITY,refCount:x,scheduler:S}){let B,F,U=0,Y=!1,V=!1;return function(je){let Ke;U++,!B||Y?(Y=!1,B=new c.t(le,W,S),Ke=B.subscribe(this),F=je.subscribe({next($e){B.next($e)},error($e){Y=!0,B.error($e)},complete(){V=!0,F=void 0,B.complete()}}),V&&(F=void 0)):Ke=B.subscribe(this),this.add(()=>{U--,Ke.unsubscribe(),Ke=void 0,F&&!V&&x&&0===U&&(F.unsubscribe(),F=void 0,B=void 0)})}}(S))}},3653:(yt,De,m)=>{"use strict";m.d(De,{T:()=>s});var c=m(7393);function s(W){return x=>x.lift(new z(W))}class z{constructor(x){this.total=x}call(x,S){return S.subscribe(new le(x,this.total))}}class le extends c.L{constructor(x,S){super(x),this.total=S,this.count=0}_next(x){++this.count>this.total&&this.destination.next(x)}}},9761:(yt,De,m)=>{"use strict";m.d(De,{O:()=>z});var c=m(9923),s=m(4869);function z(...le){const W=le[le.length-1];return(0,s.K)(W)?(le.pop(),x=>(0,c.z)(le,x,W)):x=>(0,c.z)(le,x)}},3190:(yt,De,m)=>{"use strict";m.d(De,{w:()=>le});var c=m(8002),s=m(4402),z=m(5345);function le(S,B){return"function"==typeof B?U=>U.pipe(le((F,Y)=>(0,s.D)(S(F,Y)).pipe((0,c.U)((V,be)=>B(F,V,Y,be))))):U=>U.lift(new W(S))}class W{constructor(B){this.project=B}call(B,U){return U.subscribe(new x(B,this.project))}}class x extends z.Ds{constructor(B,U){super(B),this.project=U,this.index=0}_next(B){let U;const F=this.index++;try{U=this.project(B,F)}catch(Y){return void this.destination.error(Y)}this._innerSub(U)}_innerSub(B){const U=this.innerSubscription;U&&U.unsubscribe();const F=new z.IY(this),Y=this.destination;Y.add(F),this.innerSubscription=(0,z.ft)(B,F),this.innerSubscription!==F&&Y.add(this.innerSubscription)}_complete(){const{innerSubscription:B}=this;(!B||B.closed)&&super._complete(),this.unsubscribe()}_unsubscribe(){this.innerSubscription=void 0}notifyComplete(){this.innerSubscription=void 0,this.isStopped&&super._complete()}notifyNext(B){this.destination.next(B)}}},5257:(yt,De,m)=>{"use strict";m.d(De,{q:()=>le});var c=m(7393),s=m(7108),z=m(9193);function le(S){return B=>0===S?(0,z.c)():B.lift(new W(S))}class W{constructor(B){if(this.total=B,this.total<0)throw new s.W}call(B,U){return U.subscribe(new x(B,this.total))}}class x extends c.L{constructor(B,U){super(B),this.total=U,this.count=0}_next(B){const U=this.total,F=++this.count;F<=U&&(this.destination.next(B),F===U&&(this.destination.complete(),this.unsubscribe()))}}},6782:(yt,De,m)=>{"use strict";m.d(De,{R:()=>s});var c=m(5345);function s(W){return x=>x.lift(new z(W))}class z{constructor(x){this.notifier=x}call(x,S){const B=new le(x),U=(0,c.ft)(this.notifier,new c.IY(B));return U&&!B.seenValue?(B.add(U),S.subscribe(B)):B}}class le extends c.Ds{constructor(x){super(x),this.seenValue=!1}notifyNext(){this.seenValue=!0,this.complete()}notifyComplete(){}}},8307:(yt,De,m)=>{"use strict";m.d(De,{b:()=>le});var c=m(7393),s=m(8640),z=m(9105);function le(S,B,U){return function(Y){return Y.lift(new W(S,B,U))}}class W{constructor(B,U,F){this.nextOrObserver=B,this.error=U,this.complete=F}call(B,U){return U.subscribe(new x(B,this.nextOrObserver,this.error,this.complete))}}class x extends c.L{constructor(B,U,F,Y){super(B),this._tapNext=s.Z,this._tapError=s.Z,this._tapComplete=s.Z,this._tapError=F||s.Z,this._tapComplete=Y||s.Z,(0,z.m)(U)?(this._context=this,this._tapNext=U):U&&(this._context=U,this._tapNext=U.next||s.Z,this._tapError=U.error||s.Z,this._tapComplete=U.complete||s.Z)}_next(B){try{this._tapNext.call(this._context,B)}catch(U){return void this.destination.error(U)}this.destination.next(B)}_error(B){try{this._tapError.call(this._context,B)}catch(U){return void this.destination.error(U)}this.destination.error(B)}_complete(){try{this._tapComplete.call(this._context)}catch(B){return void this.destination.error(B)}return this.destination.complete()}}},4087:(yt,De,m)=>{"use strict";m.d(De,{r:()=>z});var c=m(8891),s=m(5319);function z(le,W){return new c.y(x=>{const S=new s.w;let B=0;return S.add(W.schedule(function(){B!==le.length?(x.next(le[B++]),x.closed||S.add(this.schedule())):x.complete()})),S})}},6465:(yt,De,m)=>{"use strict";m.d(De,{o:()=>z});var c=m(5319);class s extends c.w{constructor(W,x){super()}schedule(W,x=0){return this}}class z extends s{constructor(W,x){super(W,x),this.scheduler=W,this.work=x,this.pending=!1}schedule(W,x=0){if(this.closed)return this;this.state=W;const S=this.id,B=this.scheduler;return null!=S&&(this.id=this.recycleAsyncId(B,S,x)),this.pending=!0,this.delay=x,this.id=this.id||this.requestAsyncId(B,this.id,x),this}requestAsyncId(W,x,S=0){return setInterval(W.flush.bind(W,this),S)}recycleAsyncId(W,x,S=0){if(null!==S&&this.delay===S&&!1===this.pending)return x;clearInterval(x)}execute(W,x){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const S=this._execute(W,x);if(S)return S;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(W,x){let B,S=!1;try{this.work(W)}catch(U){S=!0,B=!!U&&U||new Error(U)}if(S)return this.unsubscribe(),B}_unsubscribe(){const W=this.id,x=this.scheduler,S=x.actions,B=S.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==B&&S.splice(B,1),null!=W&&(this.id=this.recycleAsyncId(x,W,null)),this.delay=null}}},6102:(yt,De,m)=>{"use strict";m.d(De,{v:()=>s});let c=(()=>{class z{constructor(W,x=z.now){this.SchedulerAction=W,this.now=x}schedule(W,x=0,S){return new this.SchedulerAction(this,W).schedule(S,x)}}return z.now=()=>Date.now(),z})();class s extends c{constructor(le,W=c.now){super(le,()=>s.delegate&&s.delegate!==this?s.delegate.now():W()),this.actions=[],this.active=!1,this.scheduled=void 0}schedule(le,W=0,x){return s.delegate&&s.delegate!==this?s.delegate.schedule(le,W,x):super.schedule(le,W,x)}flush(le){const{actions:W}=this;if(this.active)return void W.push(le);let x;this.active=!0;do{if(x=le.execute(le.state,le.delay))break}while(le=W.shift());if(this.active=!1,x){for(;le=W.shift();)le.unsubscribe();throw x}}}},3637:(yt,De,m)=>{"use strict";m.d(De,{z:()=>z,P:()=>le});var c=m(6465);const z=new(m(6102).v)(c.o),le=z},377:(yt,De,m)=>{"use strict";m.d(De,{hZ:()=>s});const s="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"},6554:(yt,De,m)=>{"use strict";m.d(De,{L:()=>c});const c="function"==typeof Symbol&&Symbol.observable||"@@observable"},9181:(yt,De,m)=>{"use strict";m.d(De,{b:()=>c});const c="function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random()},7108:(yt,De,m)=>{"use strict";m.d(De,{W:()=>s});const s=(()=>{function z(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return z.prototype=Object.create(Error.prototype),z})()},7971:(yt,De,m)=>{"use strict";m.d(De,{N:()=>s});const s=(()=>{function z(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return z.prototype=Object.create(Error.prototype),z})()},4449:(yt,De,m)=>{"use strict";function c(s){setTimeout(()=>{throw s},0)}m.d(De,{z:()=>c})},4487:(yt,De,m)=>{"use strict";function c(s){return s}m.d(De,{y:()=>c})},9796:(yt,De,m)=>{"use strict";m.d(De,{k:()=>c});const c=Array.isArray||(s=>s&&"number"==typeof s.length)},9489:(yt,De,m)=>{"use strict";m.d(De,{z:()=>c});const c=s=>s&&"number"==typeof s.length&&"function"!=typeof s},9105:(yt,De,m)=>{"use strict";function c(s){return"function"==typeof s}m.d(De,{m:()=>c})},6561:(yt,De,m)=>{"use strict";m.d(De,{k:()=>s});var c=m(9796);function s(z){return!(0,c.k)(z)&&z-parseFloat(z)+1>=0}},1555:(yt,De,m)=>{"use strict";function c(s){return null!==s&&"object"==typeof s}m.d(De,{K:()=>c})},4072:(yt,De,m)=>{"use strict";function c(s){return!!s&&"function"!=typeof s.subscribe&&"function"==typeof s.then}m.d(De,{t:()=>c})},4869:(yt,De,m)=>{"use strict";function c(s){return s&&"function"==typeof s.schedule}m.d(De,{K:()=>c})},8640:(yt,De,m)=>{"use strict";function c(){}m.d(De,{Z:()=>c})},4022:(yt,De,m)=>{"use strict";m.d(De,{z:()=>s,U:()=>z});var c=m(4487);function s(...le){return z(le)}function z(le){return 0===le.length?c.y:1===le.length?le[0]:function(x){return le.reduce((S,B)=>B(S),x)}}},7444:(yt,De,m)=>{"use strict";m.d(De,{s:()=>Y});var c=m(5015),s=m(4449),le=m(377),x=m(6554),B=m(9489),U=m(4072),F=m(1555);const Y=V=>{if(V&&"function"==typeof V[x.L])return(V=>be=>{const je=V[x.L]();if("function"!=typeof je.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return je.subscribe(be)})(V);if((0,B.z)(V))return(0,c.V)(V);if((0,U.t)(V))return(V=>be=>(V.then(je=>{be.closed||(be.next(je),be.complete())},je=>be.error(je)).then(null,s.z),be))(V);if(V&&"function"==typeof V[le.hZ])return(V=>be=>{const je=V[le.hZ]();for(;;){let Ke;try{Ke=je.next()}catch($e){return be.error($e),be}if(Ke.done){be.complete();break}if(be.next(Ke.value),be.closed)break}return"function"==typeof je.return&&be.add(()=>{je.return&&je.return()}),be})(V);{const je=`You provided ${(0,F.K)(V)?"an invalid object":`'${V}'`} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`;throw new TypeError(je)}}},5015:(yt,De,m)=>{"use strict";m.d(De,{V:()=>c});const c=s=>z=>{for(let le=0,W=s.length;le<W&&!z.closed;le++)z.next(s[le]);z.complete()}},509:(yt,De,m)=>{"use strict";m.d(De,{D:()=>W});var c=m(7393);class s extends c.L{constructor(S,B,U){super(),this.parent=S,this.outerValue=B,this.outerIndex=U,this.index=0}_next(S){this.parent.notifyNext(this.outerValue,S,this.outerIndex,this.index++,this)}_error(S){this.parent.notifyError(S,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}var z=m(7444),le=m(8891);function W(x,S,B,U,F=new s(x,B,U)){if(!F.closed)return S instanceof le.y?S.subscribe(F):(0,z.s)(S)(F)}},4704:(yt,De,m)=>{"use strict";m.d(De,{g:()=>c});var c=(()=>{return(s=c||(c={})).KEEP_POSITION="KEEP_POSITION",s.GO_TO_TOP="GO_TO_TOP",c;var s})()},2323:(yt,De,m)=>{"use strict";m.d(De,{V:()=>s});var c=m(7716);let s=(()=>{class z{constructor(){this.impl=localStorage}hasData(W){return null!==this.getData(W)}getData(W){return this.impl.getItem(W)}setData(W,x){this.impl.setItem(W,x)}removeData(W){this.impl.removeItem(W)}clearData(){this.impl.clear()}}return z.\u0275fac=function(W){return new(W||z)},z.\u0275prov=c.Yz7({token:z,factory:z.\u0275fac,providedIn:"root"}),z})()},2340:(yt,De,m)=>{"use strict";m.d(De,{N:()=>s});const s={production:!0,apiUrl:"",webSocketUrl:"",ngxLoggerLevel:m(7158)._z.DEBUG,traceRouterScrolling:!1}},8877:(yt,De,m)=>{"use strict";var c=m(9075),s=m(7716),z=m(665),le=m(1841),W=m(5072),x=m(6237),S=m(8583),B=m(5068),U=m.n(B),F=m(1439),Y=m(205),V=m(2759),be=m(5917),je=m(9923),Ke=m(9765),$e=m(8891),nt=m(8640);const ut=new $e.y(nt.Z);var Ft=m(6682),We=m(8002),Re=m(5435),Ze=m(3190),Pe=m(4458),Be=m(5257),se=m(8307),Se=m(1289);const oe="Service workers are disabled or not supported by this browser";class Oe{constructor(k){if(this.serviceWorker=k,k){const re=(0,V.R)(k,"controllerchange").pipe((0,We.U)(()=>k.controller)),Ye=(0,F.P)(()=>(0,be.of)(k.controller)),ot=(0,je.z)(Ye,re);this.worker=ot.pipe((0,Re.h)(ni=>!!ni)),this.registration=this.worker.pipe((0,Ze.w)(()=>k.getRegistration()));const yn=(0,V.R)(k,"message").pipe((0,We.U)(ni=>ni.data)).pipe((0,Re.h)(ni=>ni&&ni.type)).pipe((0,Pe.O)(new Ke.xQ));yn.connect(),this.events=yn}else this.worker=this.events=this.registration=(oe,(0,F.P)(()=>(0,Y._)(new Error("Service workers are disabled or not supported by this browser"))))}postMessage(k,_){return this.worker.pipe((0,Be.q)(1),(0,se.b)(re=>{re.postMessage(Object.assign({action:k},_))})).toPromise().then(()=>{})}postMessageWithStatus(k,_,re){const Ye=this.waitForStatus(re),ot=this.postMessage(k,_);return Promise.all([Ye,ot]).then(()=>{})}generateNonce(){return Math.round(1e7*Math.random())}eventsOfType(k){return this.events.pipe((0,Re.h)(re=>re.type===k))}nextEventOfType(k){return this.eventsOfType(k).pipe((0,Be.q)(1))}waitForStatus(k){return this.eventsOfType("STATUS").pipe((0,Re.h)(_=>_.nonce===k),(0,Be.q)(1),(0,We.U)(_=>{if(!_.status)throw new Error(_.error)})).toPromise()}get isEnabled(){return!!this.serviceWorker}}let pe=(()=>{class M{constructor(_){if(this.sw=_,this.subscriptionChanges=new Ke.xQ,!_.isEnabled)return this.messages=ut,this.notificationClicks=ut,void(this.subscription=ut);this.messages=this.sw.eventsOfType("PUSH").pipe((0,We.U)(Ye=>Ye.data)),this.notificationClicks=this.sw.eventsOfType("NOTIFICATION_CLICK").pipe((0,We.U)(Ye=>Ye.data)),this.pushManager=this.sw.registration.pipe((0,We.U)(Ye=>Ye.pushManager));const re=this.pushManager.pipe((0,Ze.w)(Ye=>Ye.getSubscription()));this.subscription=(0,Ft.T)(re,this.subscriptionChanges)}get isEnabled(){return this.sw.isEnabled}requestSubscription(_){if(!this.sw.isEnabled)return Promise.reject(new Error(oe));const re={userVisibleOnly:!0};let Ye=this.decodeBase64(_.serverPublicKey.replace(/_/g,"/").replace(/-/g,"+")),ot=new Uint8Array(new ArrayBuffer(Ye.length));for(let zt=0;zt<Ye.length;zt++)ot[zt]=Ye.charCodeAt(zt);return re.applicationServerKey=ot,this.pushManager.pipe((0,Ze.w)(zt=>zt.subscribe(re)),(0,Be.q)(1)).toPromise().then(zt=>(this.subscriptionChanges.next(zt),zt))}unsubscribe(){return this.sw.isEnabled?this.subscription.pipe((0,Be.q)(1),(0,Ze.w)(re=>{if(null===re)throw new Error("Not subscribed to push notifications.");return re.unsubscribe().then(Ye=>{if(!Ye)throw new Error("Unsubscribe failed!");this.subscriptionChanges.next(null)})})).toPromise():Promise.reject(new Error(oe))}decodeBase64(_){return atob(_)}}return M.\u0275fac=function(_){return new(_||M)(s.LFG(Oe))},M.\u0275prov=s.Yz7({token:M,factory:M.\u0275fac}),M})(),Ue=(()=>{class M{constructor(_){if(this.sw=_,!_.isEnabled)return this.available=ut,this.activated=ut,void(this.unrecoverable=ut);this.available=this.sw.eventsOfType("UPDATE_AVAILABLE"),this.activated=this.sw.eventsOfType("UPDATE_ACTIVATED"),this.unrecoverable=this.sw.eventsOfType("UNRECOVERABLE_STATE")}get isEnabled(){return this.sw.isEnabled}checkForUpdate(){if(!this.sw.isEnabled)return Promise.reject(new Error(oe));const _=this.sw.generateNonce();return this.sw.postMessageWithStatus("CHECK_FOR_UPDATES",{statusNonce:_},_)}activateUpdate(){if(!this.sw.isEnabled)return Promise.reject(new Error(oe));const _=this.sw.generateNonce();return this.sw.postMessageWithStatus("ACTIVATE_UPDATE",{statusNonce:_},_)}}return M.\u0275fac=function(_){return new(_||M)(s.LFG(Oe))},M.\u0275prov=s.Yz7({token:M,factory:M.\u0275fac}),M})();class Ne{}const Ie=new s.OlP("NGSW_REGISTER_SCRIPT");function he(M,k,_,re){return()=>{if(!(0,S.NF)(re)||!("serviceWorker"in navigator)||!1===_.enabled)return;let ot;if(navigator.serviceWorker.addEventListener("controllerchange",()=>{null!==navigator.serviceWorker.controller&&navigator.serviceWorker.controller.postMessage({action:"INITIALIZE"})}),"function"==typeof _.registrationStrategy)ot=_.registrationStrategy();else{const[Vt,...Kt]=(_.registrationStrategy||"registerWhenStable:30000").split(":");switch(Vt){case"registerImmediately":ot=(0,be.of)(null);break;case"registerWithDelay":ot=we(+Kt[0]||0);break;case"registerWhenStable":ot=Kt[0]?(0,Ft.T)(Ge(M),we(+Kt[0])):Ge(M);break;default:throw new Error(`Unknown ServiceWorker registration strategy: ${_.registrationStrategy}`)}}M.get(s.R0b).runOutsideAngular(()=>ot.pipe((0,Be.q)(1)).subscribe(()=>navigator.serviceWorker.register(k,{scope:_.scope}).catch(Vt=>console.error("Service worker registration failed with:",Vt))))}}function we(M){return(0,be.of)(null).pipe((0,Se.g)(M))}function Ge(M){return M.get(s.z2F).isStable.pipe((0,Re.h)(_=>_))}function Ve(M,k){return new Oe((0,S.NF)(k)&&!1!==M.enabled?navigator.serviceWorker:void 0)}let ft=(()=>{class M{static register(_,re={}){return{ngModule:M,providers:[{provide:Ie,useValue:_},{provide:Ne,useValue:re},{provide:Oe,useFactory:Ve,deps:[Ne,s.Lbi]},{provide:s.ip1,useFactory:he,deps:[s.zs3,Ie,Ne,s.Lbi],multi:!0}]}}}return M.\u0275fac=function(_){return new(_||M)},M.\u0275mod=s.oAB({type:M}),M.\u0275inj=s.cJS({providers:[pe,Ue]}),M})();var Tt=m(7158),rt=m(6756),St=m(946),lt=m(6782),Dt=m(4762),Ht=m(521),un=m(4226),en=m(6182),wn=m(3730),It=m(464);const tn=["*"];function rn(M,k){if(1&M){const _=s.EpF();s.TgZ(0,"div",2),s.NdJ("click",function(){s.CHM(_);const Ye=s.oxw();return Ye.setCollapsed(!Ye.nzCollapsed)}),s.qZA()}if(2&M){const _=s.oxw();s.Q6J("matchBreakPoint",_.matchBreakPoint)("nzCollapsedWidth",_.nzCollapsedWidth)("nzCollapsed",_.nzCollapsed)("nzBreakpoint",_.nzBreakpoint)("nzReverseArrow",_.nzReverseArrow)("nzTrigger",_.nzTrigger)("nzZeroTrigger",_.nzZeroTrigger)("siderWidth",_.widthSetting)}}const cn=["nz-sider-trigger",""];function kt(M,k){}function bn(M,k){if(1&M&&(s.ynx(0),s.YNc(1,kt,0,0,"ng-template",3),s.BQk()),2&M){const _=s.oxw(),re=s.MAs(5);s.xp6(1),s.Q6J("ngTemplateOutlet",_.nzZeroTrigger||re)}}function pt(M,k){}function xe(M,k){if(1&M&&(s.ynx(0),s.YNc(1,pt,0,0,"ng-template",3),s.BQk()),2&M){const _=s.oxw(),re=s.MAs(3);s.xp6(1),s.Q6J("ngTemplateOutlet",_.nzTrigger||re)}}function Ae(M,k){if(1&M&&s._UZ(0,"i",5),2&M){const _=s.oxw(2);s.Q6J("nzType",_.nzCollapsed?"right":"left")}}function Ct(M,k){if(1&M&&s._UZ(0,"i",5),2&M){const _=s.oxw(2);s.Q6J("nzType",_.nzCollapsed?"left":"right")}}function ae(M,k){if(1&M&&(s.YNc(0,Ae,1,1,"i",4),s.YNc(1,Ct,1,1,"i",4)),2&M){const _=s.oxw();s.Q6J("ngIf",!_.nzReverseArrow),s.xp6(1),s.Q6J("ngIf",_.nzReverseArrow)}}function I(M,k){1&M&&s._UZ(0,"i",6)}let ne=(()=>{class M{constructor(_,re){this.elementRef=_,this.renderer=re,this.renderer.addClass(this.elementRef.nativeElement,"ant-layout-content")}}return M.\u0275fac=function(_){return new(_||M)(s.Y36(s.SBq),s.Y36(s.Qsj))},M.\u0275cmp=s.Xpm({type:M,selectors:[["nz-content"]],exportAs:["nzContent"],ngContentSelectors:tn,decls:1,vars:0,template:function(_,re){1&_&&(s.F$t(),s.Hsn(0))},encapsulation:2,changeDetection:0}),M})(),G=(()=>{class M{constructor(_,re){this.elementRef=_,this.renderer=re,this.renderer.addClass(this.elementRef.nativeElement,"ant-layout-header")}}return M.\u0275fac=function(_){return new(_||M)(s.Y36(s.SBq),s.Y36(s.Qsj))},M.\u0275cmp=s.Xpm({type:M,selectors:[["nz-header"]],exportAs:["nzHeader"],ngContentSelectors:tn,decls:1,vars:0,template:function(_,re){1&_&&(s.F$t(),s.Hsn(0))},encapsulation:2,changeDetection:0}),M})(),_e=(()=>{class M{constructor(_,re,Ye,ot){this.platform=_,this.cdr=re,this.breakpointService=Ye,this.elementRef=ot,this.destroy$=new Ke.xQ,this.nzMenuDirective=null,this.nzCollapsedChange=new s.vpe,this.nzWidth=200,this.nzTheme="dark",this.nzCollapsedWidth=80,this.nzBreakpoint=null,this.nzZeroTrigger=null,this.nzTrigger=void 0,this.nzReverseArrow=!1,this.nzCollapsible=!1,this.nzCollapsed=!1,this.matchBreakPoint=!1,this.flexSetting=null,this.widthSetting=null,this.elementRef.nativeElement.classList.add("ant-layout-sider")}updateStyleMap(){this.widthSetting=this.nzCollapsed?`${this.nzCollapsedWidth}px`:(0,en.WX)(this.nzWidth),this.flexSetting=`0 0 ${this.widthSetting}`,this.cdr.markForCheck()}updateMenuInlineCollapsed(){this.nzMenuDirective&&"inline"===this.nzMenuDirective.nzMode&&0!==this.nzCollapsedWidth&&this.nzMenuDirective.setInlineCollapsed(this.nzCollapsed)}setCollapsed(_){_!==this.nzCollapsed&&(this.nzCollapsed=_,this.nzCollapsedChange.emit(_),this.updateMenuInlineCollapsed(),this.updateStyleMap(),this.cdr.markForCheck())}ngOnInit(){this.updateStyleMap(),this.platform.isBrowser&&this.breakpointService.subscribe(un.ow,!0).pipe((0,lt.R)(this.destroy$)).subscribe(_=>{const re=this.nzBreakpoint;re&&(0,en.ov)().subscribe(()=>{this.matchBreakPoint=!_[re],this.setCollapsed(this.matchBreakPoint),this.cdr.markForCheck()})})}ngOnChanges(_){const{nzCollapsed:re,nzCollapsedWidth:Ye,nzWidth:ot}=_;(re||Ye||ot)&&this.updateStyleMap(),re&&this.updateMenuInlineCollapsed()}ngAfterContentInit(){this.updateMenuInlineCollapsed()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return M.\u0275fac=function(_){return new(_||M)(s.Y36(Ht.t4),s.Y36(s.sBO),s.Y36(un.r3),s.Y36(s.SBq))},M.\u0275cmp=s.Xpm({type:M,selectors:[["nz-sider"]],contentQueries:function(_,re,Ye){if(1&_&&s.Suo(Ye,wn.wO,5),2&_){let ot;s.iGM(ot=s.CRH())&&(re.nzMenuDirective=ot.first)}},hostVars:16,hostBindings:function(_,re){2&_&&(s.Udp("flex",re.flexSetting)("max-width",re.widthSetting)("min-width",re.widthSetting)("width",re.widthSetting),s.ekj("ant-layout-sider-zero-width",re.nzCollapsed&&0===re.nzCollapsedWidth)("ant-layout-sider-light","light"===re.nzTheme)("ant-layout-sider-dark","dark"===re.nzTheme)("ant-layout-sider-collapsed",re.nzCollapsed))},inputs:{nzWidth:"nzWidth",nzTheme:"nzTheme",nzCollapsedWidth:"nzCollapsedWidth",nzBreakpoint:"nzBreakpoint",nzZeroTrigger:"nzZeroTrigger",nzTrigger:"nzTrigger",nzReverseArrow:"nzReverseArrow",nzCollapsible:"nzCollapsible",nzCollapsed:"nzCollapsed"},outputs:{nzCollapsedChange:"nzCollapsedChange"},exportAs:["nzSider"],features:[s.TTD],ngContentSelectors:tn,decls:3,vars:1,consts:[[1,"ant-layout-sider-children"],["nz-sider-trigger","",3,"matchBreakPoint","nzCollapsedWidth","nzCollapsed","nzBreakpoint","nzReverseArrow","nzTrigger","nzZeroTrigger","siderWidth","click",4,"ngIf"],["nz-sider-trigger","",3,"matchBreakPoint","nzCollapsedWidth","nzCollapsed","nzBreakpoint","nzReverseArrow","nzTrigger","nzZeroTrigger","siderWidth","click"]],template:function(_,re){1&_&&(s.F$t(),s.TgZ(0,"div",0),s.Hsn(1),s.qZA(),s.YNc(2,rn,1,8,"div",1)),2&_&&(s.xp6(2),s.Q6J("ngIf",re.nzCollapsible&&null!==re.nzTrigger))},directives:function(){return[S.O5,Ce]},encapsulation:2,changeDetection:0}),(0,Dt.gn)([(0,en.yF)()],M.prototype,"nzReverseArrow",void 0),(0,Dt.gn)([(0,en.yF)()],M.prototype,"nzCollapsible",void 0),(0,Dt.gn)([(0,en.yF)()],M.prototype,"nzCollapsed",void 0),M})(),ve=(()=>{class M{constructor(_,re){this.elementRef=_,this.directionality=re,this.dir="ltr",this.destroy$=new Ke.xQ,this.elementRef.nativeElement.classList.add("ant-layout")}ngOnInit(){var _;this.dir=this.directionality.value,null===(_=this.directionality.change)||void 0===_||_.pipe((0,lt.R)(this.destroy$)).subscribe(re=>{this.dir=re})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}}return M.\u0275fac=function(_){return new(_||M)(s.Y36(s.SBq),s.Y36(St.Is,8))},M.\u0275cmp=s.Xpm({type:M,selectors:[["nz-layout"]],contentQueries:function(_,re,Ye){if(1&_&&s.Suo(Ye,_e,4),2&_){let ot;s.iGM(ot=s.CRH())&&(re.listOfNzSiderComponent=ot)}},hostVars:4,hostBindings:function(_,re){2&_&&s.ekj("ant-layout-rtl","rtl"===re.dir)("ant-layout-has-sider",re.listOfNzSiderComponent.length>0)},exportAs:["nzLayout"],ngContentSelectors:tn,decls:1,vars:0,template:function(_,re){1&_&&(s.F$t(),s.Hsn(0))},encapsulation:2,changeDetection:0}),M})(),Ce=(()=>{class M{constructor(){this.nzCollapsed=!1,this.nzReverseArrow=!1,this.nzZeroTrigger=null,this.nzTrigger=void 0,this.matchBreakPoint=!1,this.nzCollapsedWidth=null,this.siderWidth=null,this.nzBreakpoint=null,this.isZeroTrigger=!1,this.isNormalTrigger=!1}updateTriggerType(){this.isZeroTrigger=0===this.nzCollapsedWidth&&(this.nzBreakpoint&&this.matchBreakPoint||!this.nzBreakpoint),this.isNormalTrigger=0!==this.nzCollapsedWidth}ngOnInit(){this.updateTriggerType()}ngOnChanges(){this.updateTriggerType()}}return M.\u0275fac=function(_){return new(_||M)},M.\u0275cmp=s.Xpm({type:M,selectors:[["","nz-sider-trigger",""]],hostVars:10,hostBindings:function(_,re){2&_&&(s.Udp("width",re.isNormalTrigger?re.siderWidth:null),s.ekj("ant-layout-sider-trigger",re.isNormalTrigger)("ant-layout-sider-zero-width-trigger",re.isZeroTrigger)("ant-layout-sider-zero-width-trigger-right",re.isZeroTrigger&&re.nzReverseArrow)("ant-layout-sider-zero-width-trigger-left",re.isZeroTrigger&&!re.nzReverseArrow))},inputs:{nzCollapsed:"nzCollapsed",nzReverseArrow:"nzReverseArrow",nzZeroTrigger:"nzZeroTrigger",nzTrigger:"nzTrigger",matchBreakPoint:"matchBreakPoint",nzCollapsedWidth:"nzCollapsedWidth",siderWidth:"siderWidth",nzBreakpoint:"nzBreakpoint"},exportAs:["nzSiderTrigger"],features:[s.TTD],attrs:cn,decls:6,vars:2,consts:[[4,"ngIf"],["defaultTrigger",""],["defaultZeroTrigger",""],[3,"ngTemplateOutlet"],["nz-icon","",3,"nzType",4,"ngIf"],["nz-icon","",3,"nzType"],["nz-icon","","nzType","bars"]],template:function(_,re){1&_&&(s.YNc(0,bn,2,1,"ng-container",0),s.YNc(1,xe,2,1,"ng-container",0),s.YNc(2,ae,2,2,"ng-template",null,1,s.W1O),s.YNc(4,I,1,0,"ng-template",null,2,s.W1O)),2&_&&(s.Q6J("ngIf",re.isZeroTrigger),s.xp6(1),s.Q6J("ngIf",re.isNormalTrigger))},directives:[S.O5,S.tP,It.Ls],encapsulation:2,changeDetection:0}),M})(),H=(()=>{class M{}return M.\u0275fac=function(_){return new(_||M)},M.\u0275mod=s.oAB({type:M}),M.\u0275inj=s.cJS({imports:[[St.vT,S.ez,It.PV,W.xu,Ht.ud]]}),M})();var ce=m(3721),Je=m(7420);m(7393),m(3637),m(7070),m(2729);let Tn=(()=>{class M{}return M.\u0275fac=function(_){return new(_||M)},M.\u0275mod=s.oAB({type:M}),M.\u0275inj=s.cJS({imports:[[St.vT,S.ez,Ht.ud,It.PV]]}),M})();var zn=m(1729),Jn=m(8058),Wn=m(3080),pn=m(6983);let vn=(()=>{class M{constructor(){}ngOnInit(){}}return M.\u0275fac=function(_){return new(_||M)},M.\u0275cmp=s.Xpm({type:M,selectors:[["app-page-not-found"]],decls:5,vars:0,consts:[[1,"content"],["src","assets/images/bili-404.png","all","\u80a5\u80a0\u62b1\u6b49\uff0c\u4f60\u8981\u627e\u7684\u9875\u9762\u4e0d\u89c1\u4e86"],[1,"btn-wrapper"],["href","/",1,"goback-btn"]],template:function(_,re){1&_&&(s.TgZ(0,"div",0),s._UZ(1,"img",1),s.TgZ(2,"div",2),s.TgZ(3,"a",3),s._uU(4,"\u8fd4\u56de\u9996\u9875"),s.qZA(),s.qZA(),s.qZA())},styles:[".content[_ngcontent-%COMP%]{height:100%;width:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.content[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:980px}.content[_ngcontent-%COMP%] .btn-wrapper[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center}.content[_ngcontent-%COMP%] .btn-wrapper[_ngcontent-%COMP%] .goback-btn[_ngcontent-%COMP%]{display:inline-block;padding:0 20px;border-radius:4px;font-size:16px;line-height:40px;text-align:center;vertical-align:middle;color:#fff;background:#00a1d6;transition:.3s;cursor:pointer}.content[_ngcontent-%COMP%] .btn-wrapper[_ngcontent-%COMP%] .goback-btn[_ngcontent-%COMP%]:hover{background:#00b5e5}"],changeDetection:0}),M})();const xn=[{path:"tasks",loadChildren:()=>Promise.all([m.e(954),m.e(198),m.e(80)]).then(m.bind(m,5080)).then(M=>M.TasksModule)},{path:"settings",loadChildren:()=>Promise.all([m.e(954),m.e(198),m.e(592),m.e(51)]).then(m.bind(m,2051)).then(M=>M.SettingsModule),data:{scrollBehavior:m(4704).g.KEEP_POSITION}},{path:"about",loadChildren:()=>Promise.all([m.e(954),m.e(592),m.e(659)]).then(m.bind(m,9659)).then(M=>M.AboutModule)},{path:"",pathMatch:"full",redirectTo:"/tasks"},{path:"**",component:vn}];let _i=(()=>{class M{}return M.\u0275fac=function(_){return new(_||M)},M.\u0275mod=s.oAB({type:M}),M.\u0275inj=s.cJS({imports:[[pn.Bz.forRoot(xn,{preloadingStrategy:pn.wm})],pn.Bz]}),M})();function Nn(M,k){if(1&M&&s.GkF(0,11),2&M){s.oxw();const _=s.MAs(3);s.Q6J("ngTemplateOutlet",_)}}function Ot(M,k){if(1&M){const _=s.EpF();s.TgZ(0,"nz-sider",12),s.NdJ("nzCollapsedChange",function(Ye){return s.CHM(_),s.oxw().collapsed=Ye}),s.TgZ(1,"a",13),s.TgZ(2,"div",14),s.TgZ(3,"div",15),s._UZ(4,"img",16),s.qZA(),s.TgZ(5,"h1",17),s._uU(6),s.qZA(),s.qZA(),s.qZA(),s.TgZ(7,"nav",18),s.TgZ(8,"ul",19),s.TgZ(9,"li",20),s._UZ(10,"i",21),s.TgZ(11,"span"),s.TgZ(12,"a",22),s._uU(13,"\u4efb\u52a1"),s.qZA(),s.qZA(),s.qZA(),s.TgZ(14,"li",20),s._UZ(15,"i",23),s.TgZ(16,"span"),s.TgZ(17,"a",24),s._uU(18,"\u8bbe\u7f6e"),s.qZA(),s.qZA(),s.qZA(),s.TgZ(19,"li",20),s._UZ(20,"i",25),s.TgZ(21,"span"),s.TgZ(22,"a",26),s._uU(23,"\u5173\u4e8e"),s.qZA(),s.qZA(),s.qZA(),s.qZA(),s.qZA(),s.qZA()}if(2&M){const _=s.oxw();s.Q6J("nzTheme",_.theme)("nzTrigger",null)("nzCollapsedWidth",65)("nzCollapsed",_.collapsed),s.xp6(2),s.ekj("collapsed",_.collapsed),s.xp6(4),s.Oqu(_.title),s.xp6(2),s.Q6J("nzTheme",_.theme)("nzInlineCollapsed",_.collapsed),s.xp6(1),s.Q6J("nzTooltipTitle",_.collapsed?"\u4efb\u52a1":""),s.xp6(5),s.Q6J("nzTooltipTitle",_.collapsed?"\u8bbe\u7f6e":""),s.xp6(5),s.Q6J("nzTooltipTitle",_.collapsed?"\u5173\u4e8e":"")}}function Qt(M,k){if(1&M&&s._UZ(0,"nz-spin",27),2&M){const _=s.oxw();s.Q6J("nzSize","large")("nzSpinning",_.loading)}}function _n(M,k){if(1&M&&(s.ynx(0),s.TgZ(1,"nz-layout"),s.GkF(2,11),s.qZA(),s.BQk()),2&M){s.oxw(2);const _=s.MAs(3);s.xp6(2),s.Q6J("ngTemplateOutlet",_)}}const oi=function(){return{padding:"0",overflow:"hidden"}};function ci(M,k){if(1&M){const _=s.EpF();s.TgZ(0,"nz-drawer",28),s.NdJ("nzOnClose",function(){return s.CHM(_),s.oxw().collapsed=!0}),s.YNc(1,_n,3,1,"ng-container",29),s.qZA()}if(2&M){const _=s.oxw();s.Q6J("nzBodyStyle",s.DdM(3,oi))("nzClosable",!1)("nzVisible",!_.collapsed)}}let Bn=(()=>{class M{constructor(_,re,Ye){this.title="B \u7ad9\u76f4\u64ad\u5f55\u5236",this.theme="light",this.loading=!1,this.collapsed=!1,this.useDrawer=!1,this.destroyed=new Ke.xQ,_.events.subscribe(ot=>{ot instanceof pn.OD?(this.loading=!0,this.useDrawer&&(this.collapsed=!0)):ot instanceof pn.m2&&(this.loading=!1)}),Ye.observe(W.u3.XSmall).pipe((0,lt.R)(this.destroyed)).subscribe(ot=>{this.useDrawer=ot.matches,this.useDrawer&&(this.collapsed=!0),re.markForCheck()}),Ye.observe("(max-width: 1036px)").pipe((0,lt.R)(this.destroyed)).subscribe(ot=>{this.collapsed=ot.matches,re.markForCheck()})}ngOnDestroy(){this.destroyed.next(),this.destroyed.complete()}}return M.\u0275fac=function(_){return new(_||M)(s.Y36(pn.F0),s.Y36(s.sBO),s.Y36(W.Yg))},M.\u0275cmp=s.Xpm({type:M,selectors:[["app-root"]],decls:15,vars:4,consts:[[3,"ngTemplateOutlet",4,"ngIf"],["sider",""],[1,"app-header"],[1,"sidebar-trigger"],["nz-icon","",3,"nzType","click"],[1,"icon-actions"],["href","https://github.com/acgnhiki/blrec","title","GitHub","target","_blank",1,"external-link"],["nz-icon","","nzType","github"],[1,"main-content"],["class","spinner",3,"nzSize","nzSpinning",4,"ngIf"],["nzWidth","200px","nzPlacement","left",3,"nzBodyStyle","nzClosable","nzVisible","nzOnClose",4,"ngIf"],[3,"ngTemplateOutlet"],["nzCollapsible","",1,"sidebar",3,"nzTheme","nzTrigger","nzCollapsedWidth","nzCollapsed","nzCollapsedChange"],["href","/","title","Home","alt","Home"],[1,"sidebar-header"],[1,"app-logo-container"],["alt","Logo","src","assets/images/logo.png",1,"app-logo"],[1,"app-title"],[1,"sidebar-menu"],["nz-menu","","nzMode","inline",3,"nzTheme","nzInlineCollapsed"],["nz-menu-item","","nzMatchRouter","true","nz-tooltip","","nzTooltipPlacement","right",3,"nzTooltipTitle"],["nz-icon","","nzType","unordered-list","nzTheme","outline"],["routerLink","/tasks"],["nz-icon","","nzType","setting","nzTheme","outline"],["routerLink","/settings"],["nz-icon","","nzType","info-circle","nzTheme","outline"],["routerLink","/about"],[1,"spinner",3,"nzSize","nzSpinning"],["nzWidth","200px","nzPlacement","left",3,"nzBodyStyle","nzClosable","nzVisible","nzOnClose"],[4,"nzDrawerContent"]],template:function(_,re){1&_&&(s.TgZ(0,"nz-layout"),s.YNc(1,Nn,1,1,"ng-container",0),s.YNc(2,Ot,24,12,"ng-template",null,1,s.W1O),s.TgZ(4,"nz-layout"),s.TgZ(5,"nz-header",2),s.TgZ(6,"div",3),s.TgZ(7,"i",4),s.NdJ("click",function(){return re.collapsed=!re.collapsed}),s.qZA(),s.qZA(),s.TgZ(8,"div",5),s.TgZ(9,"a",6),s._UZ(10,"i",7),s.qZA(),s.qZA(),s.qZA(),s.TgZ(11,"nz-content",8),s.YNc(12,Qt,1,2,"nz-spin",9),s._UZ(13,"router-outlet"),s.qZA(),s.qZA(),s.qZA(),s.YNc(14,ci,2,4,"nz-drawer",10)),2&_&&(s.xp6(1),s.Q6J("ngIf",!re.useDrawer),s.xp6(6),s.Q6J("nzType",re.collapsed?"menu-unfold":"menu-fold"),s.xp6(5),s.Q6J("ngIf",re.loading),s.xp6(2),s.Q6J("ngIf",re.useDrawer))},directives:[ve,S.O5,G,It.Ls,ne,pn.lC,S.tP,_e,wn.wO,wn.r9,Je.SY,pn.yS,zn.W,ce.Vz,ce.SQ],styles:[".spinner[_ngcontent-%COMP%]{height:100%;width:100%}[_nghost-%COMP%]{--app-header-height: 64px;--app-logo-size: 32px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[_nghost-%COMP%] > nz-layout[_ngcontent-%COMP%]{height:100%;width:100%}.sidebar[_ngcontent-%COMP%]{--app-header-height: 64px;--app-logo-size: 32px;position:relative;z-index:10;min-height:100vh;border-right:1px solid #f0f0f0}.sidebar[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%]{display:flex;align-items:center;height:var(--app-header-height);overflow:hidden}.sidebar[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%] .app-logo-container[_ngcontent-%COMP%]{flex:none;width:var(--app-header-height);height:var(--app-header-height);display:flex;align-items:center;justify-content:center}.sidebar[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%] .app-logo-container[_ngcontent-%COMP%] .app-logo[_ngcontent-%COMP%]{width:var(--app-logo-size);height:var(--app-logo-size)}.sidebar[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%] .app-title[_ngcontent-%COMP%]{font-family:Avenir,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:1rem;font-weight:600;margin:0;overflow:hidden;white-space:nowrap;text-overflow:clip;opacity:1;transition-property:width,opacity;transition-duration:.3s;transition-timing-function:cubic-bezier(.645,.045,.355,1)}.sidebar[_ngcontent-%COMP%] .sidebar-header.collapsed[_ngcontent-%COMP%] .app-title[_ngcontent-%COMP%]{opacity:0}.sidebar[_ngcontent-%COMP%] .sidebar-menu[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{width:100%}.app-header[_ngcontent-%COMP%]{display:flex;align-items:center;position:relative;width:100%;height:var(--app-header-height);margin:0;padding:0;z-index:2;background:#fff;box-shadow:0 1px 4px #00152914}.app-header[_ngcontent-%COMP%] .sidebar-trigger[_ngcontent-%COMP%]{--icon-size: 20px;display:flex;align-items:center;justify-content:center;height:100%;width:var(--app-header-height);cursor:pointer;transition:all .3s,padding 0s}.app-header[_ngcontent-%COMP%] .sidebar-trigger[_ngcontent-%COMP%]:hover{color:#1890ff}.app-header[_ngcontent-%COMP%] .sidebar-trigger[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:var(--icon-size)}.app-header[_ngcontent-%COMP%] .icon-actions[_ngcontent-%COMP%]{--icon-size: 24px;display:flex;align-items:center;justify-content:center;height:100%;margin-left:auto;margin-right:calc((var(--app-header-height) - var(--icon-size)) / 2)}.app-header[_ngcontent-%COMP%] .icon-actions[_ngcontent-%COMP%] .external-link[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;color:#000}.app-header[_ngcontent-%COMP%] .icon-actions[_ngcontent-%COMP%] .external-link[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:var(--icon-size)}.main-content[_ngcontent-%COMP%]{overflow:hidden}"],changeDetection:0}),M})(),si=(()=>{class M{constructor(_){if(_)throw new Error("You should import core module only in the root module")}}return M.\u0275fac=function(_){return new(_||M)(s.LFG(M,12))},M.\u0275mod=s.oAB({type:M}),M.\u0275inj=s.cJS({imports:[[S.ez]]}),M})();var Fn=m(6390);const jt=[Fn.LBP,Fn._ry,Fn.Ej7,Fn.WH2];let li=(()=>{class M{}return M.\u0275fac=function(_){return new(_||M)},M.\u0275mod=s.oAB({type:M}),M.\u0275inj=s.cJS({providers:[{provide:It.sV,useValue:jt}],imports:[[It.PV],It.PV]}),M})();var $t=m(2340),Qe=m(5304),ke=m(2323);const ue="app-api-key";let qe=(()=>{class M{constructor(_){this.storage=_}getApiKey(){var _;return null!==(_=this.storage.getData(ue))&&void 0!==_?_:""}setApiKey(_){this.storage.setData(ue,_)}}return M.\u0275fac=function(_){return new(_||M)(s.LFG(ke.V))},M.\u0275prov=s.Yz7({token:M,factory:M.\u0275fac,providedIn:"root"}),M})();const Rt=[{provide:le.TP,useClass:(()=>{class M{constructor(_){this.auth=_}intercept(_,re){return re.handle(_.clone({setHeaders:{"X-API-KEY":this.auth.getApiKey()}})).pipe((0,Qe.K)(Ye=>{var ot;if(401===Ye.status){const zt=null!==(ot=window.prompt("API Key:"))&&void 0!==ot?ot:"";this.auth.setApiKey(zt)}throw Ye}))}}return M.\u0275fac=function(_){return new(_||M)(s.LFG(qe))},M.\u0275prov=s.Yz7({token:M,factory:M.\u0275fac}),M})(),multi:!0}];(0,S.qS)(U());let Ut=(()=>{class M{}return M.\u0275fac=function(_){return new(_||M)},M.\u0275mod=s.oAB({type:M,bootstrap:[Bn]}),M.\u0275inj=s.cJS({providers:[{provide:rt.u7,useValue:rt.bF},Rt],imports:[[c.b2,_i,z.u5,le.JF,W.xu,x.PW,ft.register("ngsw-worker.js",{enabled:$t.N.production,registrationStrategy:"registerWhenStable:30000"}),H,ce.BL,wn.ip,Je.cg,Tn,zn.j,Jn.gR,Wn.L8,li,Tt.f9.forRoot({level:$t.N.ngxLoggerLevel}),si]]}),M})();$t.N.production&&(0,s.G48)(),c.q6().bootstrapModule(Ut).catch(M=>console.error(M))},4762:(yt,De,m)=>{"use strict";function le(se,Se){var oe={};for(var fe in se)Object.prototype.hasOwnProperty.call(se,fe)&&Se.indexOf(fe)<0&&(oe[fe]=se[fe]);if(null!=se&&"function"==typeof Object.getOwnPropertySymbols){var Oe=0;for(fe=Object.getOwnPropertySymbols(se);Oe<fe.length;Oe++)Se.indexOf(fe[Oe])<0&&Object.prototype.propertyIsEnumerable.call(se,fe[Oe])&&(oe[fe[Oe]]=se[fe[Oe]])}return oe}function W(se,Se,oe,fe){var Ue,Oe=arguments.length,pe=Oe<3?Se:null===fe?fe=Object.getOwnPropertyDescriptor(Se,oe):fe;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)pe=Reflect.decorate(se,Se,oe,fe);else for(var Ne=se.length-1;Ne>=0;Ne--)(Ue=se[Ne])&&(pe=(Oe<3?Ue(pe):Oe>3?Ue(Se,oe,pe):Ue(Se,oe))||pe);return Oe>3&&pe&&Object.defineProperty(Se,oe,pe),pe}function B(se,Se,oe,fe){return new(oe||(oe=Promise))(function(pe,Ue){function Ne(we){try{he(fe.next(we))}catch(Ge){Ue(Ge)}}function Ie(we){try{he(fe.throw(we))}catch(Ge){Ue(Ge)}}function he(we){we.done?pe(we.value):function(pe){return pe instanceof oe?pe:new oe(function(Ue){Ue(pe)})}(we.value).then(Ne,Ie)}he((fe=fe.apply(se,Se||[])).next())})}m.d(De,{_T:()=>le,gn:()=>W,mG:()=>B})}},yt=>{yt(yt.s=8877)}]); \ No newline at end of file diff --git a/src/blrec/data/webapp/manifest.webmanifest b/src/blrec/data/webapp/manifest.webmanifest new file mode 100644 index 0000000..b25cc60 --- /dev/null +++ b/src/blrec/data/webapp/manifest.webmanifest @@ -0,0 +1,59 @@ +{ + "name": "blrec", + "short_name": "blrec", + "theme_color": "#1976d2", + "background_color": "#fafafa", + "display": "standalone", + "scope": "./", + "start_url": "./", + "icons": [ + { + "src": "assets/icons/icon-72x72.png", + "sizes": "72x72", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-96x96.png", + "sizes": "96x96", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-128x128.png", + "sizes": "128x128", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-144x144.png", + "sizes": "144x144", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-152x152.png", + "sizes": "152x152", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-384x384.png", + "sizes": "384x384", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable any" + } + ] +} diff --git a/src/blrec/data/webapp/ngsw-worker.js b/src/blrec/data/webapp/ngsw-worker.js new file mode 100644 index 0000000..9ad1273 --- /dev/null +++ b/src/blrec/data/webapp/ngsw-worker.js @@ -0,0 +1,2969 @@ +(function () { + 'use strict'; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { + step(generator.next(value)); + } + catch (e) { + reject(e); + } } + function rejected(value) { try { + step(generator["throw"](value)); + } + catch (e) { + reject(e); + } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + } + + /** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + /** + * A wrapper around `CacheStorage` to allow interacting with caches more easily and consistently by: + * - Adding a `name` property to all opened caches, which can be used to easily perform other + * operations that require the cache name. + * - Name-spacing cache names to avoid conflicts with other caches on the same domain. + */ + class NamedCacheStorage { + constructor(original, cacheNamePrefix) { + this.original = original; + this.cacheNamePrefix = cacheNamePrefix; + } + delete(cacheName) { + return this.original.delete(`${this.cacheNamePrefix}:${cacheName}`); + } + has(cacheName) { + return this.original.has(`${this.cacheNamePrefix}:${cacheName}`); + } + keys() { + return __awaiter(this, void 0, void 0, function* () { + const prefix = `${this.cacheNamePrefix}:`; + const allCacheNames = yield this.original.keys(); + const ownCacheNames = allCacheNames.filter(name => name.startsWith(prefix)); + return ownCacheNames.map(name => name.slice(prefix.length)); + }); + } + match(request, options) { + return this.original.match(request, options); + } + open(cacheName) { + return __awaiter(this, void 0, void 0, function* () { + const cache = yield this.original.open(`${this.cacheNamePrefix}:${cacheName}`); + return Object.assign(cache, { name: cacheName }); + }); + } + } + + /** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + /** + * Adapts the service worker to its runtime environment. + * + * Mostly, this is used to mock out identifiers which are otherwise read + * from the global scope. + */ + class Adapter { + constructor(scopeUrl, caches) { + this.scopeUrl = scopeUrl; + const parsedScopeUrl = this.parseUrl(this.scopeUrl); + // Determine the origin from the registration scope. This is used to differentiate between + // relative and absolute URLs. + this.origin = parsedScopeUrl.origin; + // Use the baseHref in the cache name prefix to avoid clash of cache names for SWs with + // different scopes on the same domain. + this.caches = new NamedCacheStorage(caches, `ngsw:${parsedScopeUrl.path}`); + } + /** + * Wrapper around the `Request` constructor. + */ + newRequest(input, init) { + return new Request(input, init); + } + /** + * Wrapper around the `Response` constructor. + */ + newResponse(body, init) { + return new Response(body, init); + } + /** + * Wrapper around the `Headers` constructor. + */ + newHeaders(headers) { + return new Headers(headers); + } + /** + * Test if a given object is an instance of `Client`. + */ + isClient(source) { + return (source instanceof Client); + } + /** + * Read the current UNIX time in milliseconds. + */ + get time() { + return Date.now(); + } + /** + * Get a normalized representation of a URL such as those found in the ServiceWorker's `ngsw.json` + * configuration. + * + * More specifically: + * 1. Resolve the URL relative to the ServiceWorker's scope. + * 2. If the URL is relative to the ServiceWorker's own origin, then only return the path part. + * Otherwise, return the full URL. + * + * @param url The raw request URL. + * @return A normalized representation of the URL. + */ + normalizeUrl(url) { + // Check the URL's origin against the ServiceWorker's. + const parsed = this.parseUrl(url, this.scopeUrl); + return (parsed.origin === this.origin ? parsed.path : url); + } + /** + * Parse a URL into its different parts, such as `origin`, `path` and `search`. + */ + parseUrl(url, relativeTo) { + // Workaround a Safari bug, see + // https://github.com/angular/angular/issues/31061#issuecomment-503637978 + const parsed = !relativeTo ? new URL(url) : new URL(url, relativeTo); + return { origin: parsed.origin, path: parsed.pathname, search: parsed.search }; + } + /** + * Wait for a given amount of time before completing a Promise. + */ + timeout(ms) { + return new Promise(resolve => { + setTimeout(() => resolve(), ms); + }); + } + } + + /** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + /** + * An error returned in rejected promises if the given key is not found in the table. + */ + class NotFound { + constructor(table, key) { + this.table = table; + this.key = key; + } + } + + /** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + /** + * An implementation of a `Database` that uses the `CacheStorage` API to serialize + * state within mock `Response` objects. + */ + class CacheDatabase { + constructor(adapter) { + this.adapter = adapter; + this.cacheNamePrefix = 'db'; + this.tables = new Map(); + } + 'delete'(name) { + if (this.tables.has(name)) { + this.tables.delete(name); + } + return this.adapter.caches.delete(`${this.cacheNamePrefix}:${name}`); + } + list() { + return __awaiter(this, void 0, void 0, function* () { + const prefix = `${this.cacheNamePrefix}:`; + const allCacheNames = yield this.adapter.caches.keys(); + const dbCacheNames = allCacheNames.filter(name => name.startsWith(prefix)); + // Return the un-prefixed table names, so they can be used with other `CacheDatabase` methods + // (for example, for opening/deleting a table). + return dbCacheNames.map(name => name.slice(prefix.length)); + }); + } + open(name, cacheQueryOptions) { + return __awaiter(this, void 0, void 0, function* () { + if (!this.tables.has(name)) { + const cache = yield this.adapter.caches.open(`${this.cacheNamePrefix}:${name}`); + const table = new CacheTable(name, cache, this.adapter, cacheQueryOptions); + this.tables.set(name, table); + } + return this.tables.get(name); + }); + } + } + /** + * A `Table` backed by a `Cache`. + */ + class CacheTable { + constructor(name, cache, adapter, cacheQueryOptions) { + this.name = name; + this.cache = cache; + this.adapter = adapter; + this.cacheQueryOptions = cacheQueryOptions; + this.cacheName = this.cache.name; + } + request(key) { + return this.adapter.newRequest('/' + key); + } + 'delete'(key) { + return this.cache.delete(this.request(key), this.cacheQueryOptions); + } + keys() { + return this.cache.keys().then(requests => requests.map(req => req.url.substr(1))); + } + read(key) { + return this.cache.match(this.request(key), this.cacheQueryOptions).then(res => { + if (res === undefined) { + return Promise.reject(new NotFound(this.name, key)); + } + return res.json(); + }); + } + write(key, value) { + return this.cache.put(this.request(key), this.adapter.newResponse(JSON.stringify(value))); + } + } + + /** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + var UpdateCacheStatus = /*@__PURE__*/ (function (UpdateCacheStatus) { + UpdateCacheStatus[UpdateCacheStatus["NOT_CACHED"] = 0] = "NOT_CACHED"; + UpdateCacheStatus[UpdateCacheStatus["CACHED_BUT_UNUSED"] = 1] = "CACHED_BUT_UNUSED"; + UpdateCacheStatus[UpdateCacheStatus["CACHED"] = 2] = "CACHED"; + return UpdateCacheStatus; + })({}); + + /** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + class SwCriticalError extends Error { + constructor() { + super(...arguments); + this.isCritical = true; + } + } + function errorToString(error) { + if (error instanceof Error) { + return `${error.message}\n${error.stack}`; + } + else { + return `${error}`; + } + } + class SwUnrecoverableStateError extends SwCriticalError { + constructor() { + super(...arguments); + this.isUnrecoverableState = true; + } + } + + /** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + /** + * Compute the SHA1 of the given string + * + * see https://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf + * + * WARNING: this function has not been designed not tested with security in mind. + * DO NOT USE IT IN A SECURITY SENSITIVE CONTEXT. + * + * Borrowed from @angular/compiler/src/i18n/digest.ts + */ + function sha1(str) { + const utf8 = str; + const words32 = stringToWords32(utf8, Endian.Big); + return _sha1(words32, utf8.length * 8); + } + function sha1Binary(buffer) { + const words32 = arrayBufferToWords32(buffer, Endian.Big); + return _sha1(words32, buffer.byteLength * 8); + } + function _sha1(words32, len) { + const w = []; + let [a, b, c, d, e] = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]; + words32[len >> 5] |= 0x80 << (24 - len % 32); + words32[((len + 64 >> 9) << 4) + 15] = len; + for (let i = 0; i < words32.length; i += 16) { + const [h0, h1, h2, h3, h4] = [a, b, c, d, e]; + for (let j = 0; j < 80; j++) { + if (j < 16) { + w[j] = words32[i + j]; + } + else { + w[j] = rol32(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1); + } + const [f, k] = fk(j, b, c, d); + const temp = [rol32(a, 5), f, e, k, w[j]].reduce(add32); + [e, d, c, b, a] = [d, c, rol32(b, 30), a, temp]; + } + [a, b, c, d, e] = [add32(a, h0), add32(b, h1), add32(c, h2), add32(d, h3), add32(e, h4)]; + } + return byteStringToHexString(words32ToByteString([a, b, c, d, e])); + } + function add32(a, b) { + return add32to64(a, b)[1]; + } + function add32to64(a, b) { + const low = (a & 0xffff) + (b & 0xffff); + const high = (a >>> 16) + (b >>> 16) + (low >>> 16); + return [high >>> 16, (high << 16) | (low & 0xffff)]; + } + // Rotate a 32b number left `count` position + function rol32(a, count) { + return (a << count) | (a >>> (32 - count)); + } + var Endian = /*@__PURE__*/ (function (Endian) { + Endian[Endian["Little"] = 0] = "Little"; + Endian[Endian["Big"] = 1] = "Big"; + return Endian; + })({}); + function fk(index, b, c, d) { + if (index < 20) { + return [(b & c) | (~b & d), 0x5a827999]; + } + if (index < 40) { + return [b ^ c ^ d, 0x6ed9eba1]; + } + if (index < 60) { + return [(b & c) | (b & d) | (c & d), 0x8f1bbcdc]; + } + return [b ^ c ^ d, 0xca62c1d6]; + } + function stringToWords32(str, endian) { + const size = (str.length + 3) >>> 2; + const words32 = []; + for (let i = 0; i < size; i++) { + words32[i] = wordAt(str, i * 4, endian); + } + return words32; + } + function arrayBufferToWords32(buffer, endian) { + const size = (buffer.byteLength + 3) >>> 2; + const words32 = []; + const view = new Uint8Array(buffer); + for (let i = 0; i < size; i++) { + words32[i] = wordAt(view, i * 4, endian); + } + return words32; + } + function byteAt(str, index) { + if (typeof str === 'string') { + return index >= str.length ? 0 : str.charCodeAt(index) & 0xff; + } + else { + return index >= str.byteLength ? 0 : str[index] & 0xff; + } + } + function wordAt(str, index, endian) { + let word = 0; + if (endian === Endian.Big) { + for (let i = 0; i < 4; i++) { + word += byteAt(str, index + i) << (24 - 8 * i); + } + } + else { + for (let i = 0; i < 4; i++) { + word += byteAt(str, index + i) << 8 * i; + } + } + return word; + } + function words32ToByteString(words32) { + return words32.reduce((str, word) => str + word32ToByteString(word), ''); + } + function word32ToByteString(word) { + let str = ''; + for (let i = 0; i < 4; i++) { + str += String.fromCharCode((word >>> 8 * (3 - i)) & 0xff); + } + return str; + } + function byteStringToHexString(str) { + let hex = ''; + for (let i = 0; i < str.length; i++) { + const b = byteAt(str, i); + hex += (b >>> 4).toString(16) + (b & 0x0f).toString(16); + } + return hex.toLowerCase(); + } + + /** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + /** + * A group of assets that are cached in a `Cache` and managed by a given policy. + * + * Concrete classes derive from this base and specify the exact caching policy. + */ + class AssetGroup { + constructor(scope, adapter, idle, config, hashes, db, cacheNamePrefix) { + this.scope = scope; + this.adapter = adapter; + this.idle = idle; + this.config = config; + this.hashes = hashes; + this.db = db; + /** + * A deduplication cache, to make sure the SW never makes two network requests + * for the same resource at once. Managed by `fetchAndCacheOnce`. + */ + this.inFlightRequests = new Map(); + /** + * Normalized resource URLs. + */ + this.urls = []; + /** + * Regular expression patterns. + */ + this.patterns = []; + this.name = config.name; + // Normalize the config's URLs to take the ServiceWorker's scope into account. + this.urls = config.urls.map(url => adapter.normalizeUrl(url)); + // Patterns in the config are regular expressions disguised as strings. Breathe life into them. + this.patterns = config.patterns.map(pattern => new RegExp(pattern)); + // This is the primary cache, which holds all of the cached requests for this group. If a + // resource isn't in this cache, it hasn't been fetched yet. + this.cache = adapter.caches.open(`${cacheNamePrefix}:${config.name}:cache`); + // This is the metadata table, which holds specific information for each cached URL, such as + // the timestamp of when it was added to the cache. + this.metadata = + this.db.open(`${cacheNamePrefix}:${config.name}:meta`, config.cacheQueryOptions); + } + cacheStatus(url) { + return __awaiter(this, void 0, void 0, function* () { + const cache = yield this.cache; + const meta = yield this.metadata; + const req = this.adapter.newRequest(url); + const res = yield cache.match(req, this.config.cacheQueryOptions); + if (res === undefined) { + return UpdateCacheStatus.NOT_CACHED; + } + try { + const data = yield meta.read(req.url); + if (!data.used) { + return UpdateCacheStatus.CACHED_BUT_UNUSED; + } + } + catch (_) { + // Error on the side of safety and assume cached. + } + return UpdateCacheStatus.CACHED; + }); + } + /** + * Return a list of the names of all caches used by this group. + */ + getCacheNames() { + return __awaiter(this, void 0, void 0, function* () { + const [cache, metadata] = yield Promise.all([ + this.cache, + this.metadata, + ]); + return [cache.name, metadata.cacheName]; + }); + } + /** + * Process a request for a given resource and return it, or return null if it's not available. + */ + handleFetch(req, _event) { + return __awaiter(this, void 0, void 0, function* () { + const url = this.adapter.normalizeUrl(req.url); + // Either the request matches one of the known resource URLs, one of the patterns for + // dynamically matched URLs, or neither. Determine which is the case for this request in + // order to decide how to handle it. + if (this.urls.indexOf(url) !== -1 || this.patterns.some(pattern => pattern.test(url))) { + // This URL matches a known resource. Either it's been cached already or it's missing, in + // which case it needs to be loaded from the network. + // Open the cache to check whether this resource is present. + const cache = yield this.cache; + // Look for a cached response. If one exists, it can be used to resolve the fetch + // operation. + const cachedResponse = yield cache.match(req, this.config.cacheQueryOptions); + if (cachedResponse !== undefined) { + // A response has already been cached (which presumably matches the hash for this + // resource). Check whether it's safe to serve this resource from cache. + if (this.hashes.has(url)) { + // This resource has a hash, and thus is versioned by the manifest. It's safe to return + // the response. + return cachedResponse; + } + else { + // This resource has no hash, and yet exists in the cache. Check how old this request is + // to make sure it's still usable. + if (yield this.needToRevalidate(req, cachedResponse)) { + this.idle.schedule(`revalidate(${cache.name}): ${req.url}`, () => __awaiter(this, void 0, void 0, function* () { + yield this.fetchAndCacheOnce(req); + })); + } + // In either case (revalidation or not), the cached response must be good. + return cachedResponse; + } + } + // No already-cached response exists, so attempt a fetch/cache operation. The original request + // may specify things like credential inclusion, but for assets these are not honored in order + // to avoid issues with opaque responses. The SW requests the data itself. + const res = yield this.fetchAndCacheOnce(this.adapter.newRequest(req.url)); + // If this is successful, the response needs to be cloned as it might be used to respond to + // multiple fetch operations at the same time. + return res.clone(); + } + else { + return null; + } + }); + } + /** + * Some resources are cached without a hash, meaning that their expiration is controlled + * by HTTP caching headers. Check whether the given request/response pair is still valid + * per the caching headers. + */ + needToRevalidate(req, res) { + return __awaiter(this, void 0, void 0, function* () { + // Three different strategies apply here: + // 1) The request has a Cache-Control header, and thus expiration needs to be based on its age. + // 2) The request has an Expires header, and expiration is based on the current timestamp. + // 3) The request has no applicable caching headers, and must be revalidated. + if (res.headers.has('Cache-Control')) { + // Figure out if there is a max-age directive in the Cache-Control header. + const cacheControl = res.headers.get('Cache-Control'); + const cacheDirectives = cacheControl + // Directives are comma-separated within the Cache-Control header value. + .split(',') + // Make sure each directive doesn't have extraneous whitespace. + .map(v => v.trim()) + // Some directives have values (like maxage and s-maxage) + .map(v => v.split('=')); + // Lowercase all the directive names. + cacheDirectives.forEach(v => v[0] = v[0].toLowerCase()); + // Find the max-age directive, if one exists. + const maxAgeDirective = cacheDirectives.find(v => v[0] === 'max-age'); + const cacheAge = maxAgeDirective ? maxAgeDirective[1] : undefined; + if (!cacheAge) { + // No usable TTL defined. Must assume that the response is stale. + return true; + } + try { + const maxAge = 1000 * parseInt(cacheAge); + // Determine the origin time of this request. If the SW has metadata on the request (which + // it + // should), it will have the time the request was added to the cache. If it doesn't for some + // reason, the request may have a Date header which will serve the same purpose. + let ts; + try { + // Check the metadata table. If a timestamp is there, use it. + const metaTable = yield this.metadata; + ts = (yield metaTable.read(req.url)).ts; + } + catch (_a) { + // Otherwise, look for a Date header. + const date = res.headers.get('Date'); + if (date === null) { + // Unable to determine when this response was created. Assume that it's stale, and + // revalidate it. + return true; + } + ts = Date.parse(date); + } + const age = this.adapter.time - ts; + return age < 0 || age > maxAge; + } + catch (_b) { + // Assume stale. + return true; + } + } + else if (res.headers.has('Expires')) { + // Determine if the expiration time has passed. + const expiresStr = res.headers.get('Expires'); + try { + // The request needs to be revalidated if the current time is later than the expiration + // time, if it parses correctly. + return this.adapter.time > Date.parse(expiresStr); + } + catch (_c) { + // The expiration date failed to parse, so revalidate as a precaution. + return true; + } + } + else { + // No way to evaluate staleness, so assume the response is already stale. + return true; + } + }); + } + /** + * Fetch the complete state of a cached resource, or return null if it's not found. + */ + fetchFromCacheOnly(url) { + return __awaiter(this, void 0, void 0, function* () { + const cache = yield this.cache; + const metaTable = yield this.metadata; + // Lookup the response in the cache. + const request = this.adapter.newRequest(url); + const response = yield cache.match(request, this.config.cacheQueryOptions); + if (response === undefined) { + // It's not found, return null. + return null; + } + // Next, lookup the cached metadata. + let metadata = undefined; + try { + metadata = yield metaTable.read(request.url); + } + catch (_a) { + // Do nothing, not found. This shouldn't happen, but it can be handled. + } + // Return both the response and any available metadata. + return { response, metadata }; + }); + } + /** + * Lookup all resources currently stored in the cache which have no associated hash. + */ + unhashedResources() { + return __awaiter(this, void 0, void 0, function* () { + const cache = yield this.cache; + // Start with the set of all cached requests. + return (yield cache.keys()) + // Normalize their URLs. + .map(request => this.adapter.normalizeUrl(request.url)) + // Exclude the URLs which have hashes. + .filter(url => !this.hashes.has(url)); + }); + } + /** + * Fetch the given resource from the network, and cache it if able. + */ + fetchAndCacheOnce(req, used = true) { + return __awaiter(this, void 0, void 0, function* () { + // The `inFlightRequests` map holds information about which caching operations are currently + // underway for known resources. If this request appears there, another "thread" is already + // in the process of caching it, and this work should not be duplicated. + if (this.inFlightRequests.has(req.url)) { + // There is a caching operation already in progress for this request. Wait for it to + // complete, and hopefully it will have yielded a useful response. + return this.inFlightRequests.get(req.url); + } + // No other caching operation is being attempted for this resource, so it will be owned here. + // Go to the network and get the correct version. + const fetchOp = this.fetchFromNetwork(req); + // Save this operation in `inFlightRequests` so any other "thread" attempting to cache it + // will block on this chain instead of duplicating effort. + this.inFlightRequests.set(req.url, fetchOp); + // Make sure this attempt is cleaned up properly on failure. + try { + // Wait for a response. If this fails, the request will remain in `inFlightRequests` + // indefinitely. + const res = yield fetchOp; + // It's very important that only successful responses are cached. Unsuccessful responses + // should never be cached as this can completely break applications. + if (!res.ok) { + throw new Error(`Response not Ok (fetchAndCacheOnce): request for ${req.url} returned response ${res.status} ${res.statusText}`); + } + try { + // This response is safe to cache (as long as it's cloned). Wait until the cache operation + // is complete. + const cache = yield this.cache; + yield cache.put(req, res.clone()); + // If the request is not hashed, update its metadata, especially the timestamp. This is + // needed for future determination of whether this cached response is stale or not. + if (!this.hashes.has(this.adapter.normalizeUrl(req.url))) { + // Metadata is tracked for requests that are unhashed. + const meta = { ts: this.adapter.time, used }; + const metaTable = yield this.metadata; + yield metaTable.write(req.url, meta); + } + return res; + } + catch (err) { + // Among other cases, this can happen when the user clears all data through the DevTools, + // but the SW is still running and serving another tab. In that case, trying to write to the + // caches throws an `Entry was not found` error. + // If this happens the SW can no longer work correctly. This situation is unrecoverable. + throw new SwCriticalError(`Failed to update the caches for request to '${req.url}' (fetchAndCacheOnce): ${errorToString(err)}`); + } + } + finally { + // Finally, it can be removed from `inFlightRequests`. This might result in a double-remove + // if some other chain was already making this request too, but that won't hurt anything. + this.inFlightRequests.delete(req.url); + } + }); + } + fetchFromNetwork(req, redirectLimit = 3) { + return __awaiter(this, void 0, void 0, function* () { + // Make a cache-busted request for the resource. + const res = yield this.cacheBustedFetchFromNetwork(req); + // Check for redirected responses, and follow the redirects. + if (res['redirected'] && !!res.url) { + // If the redirect limit is exhausted, fail with an error. + if (redirectLimit === 0) { + throw new SwCriticalError(`Response hit redirect limit (fetchFromNetwork): request redirected too many times, next is ${res.url}`); + } + // Unwrap the redirect directly. + return this.fetchFromNetwork(this.adapter.newRequest(res.url), redirectLimit - 1); + } + return res; + }); + } + /** + * Load a particular asset from the network, accounting for hash validation. + */ + cacheBustedFetchFromNetwork(req) { + return __awaiter(this, void 0, void 0, function* () { + const url = this.adapter.normalizeUrl(req.url); + // If a hash is available for this resource, then compare the fetched version with the + // canonical hash. Otherwise, the network version will have to be trusted. + if (this.hashes.has(url)) { + // It turns out this resource does have a hash. Look it up. Unless the fetched version + // matches this hash, it's invalid and the whole manifest may need to be thrown out. + const canonicalHash = this.hashes.get(url); + // Ideally, the resource would be requested with cache-busting to guarantee the SW gets + // the freshest version. However, doing this would eliminate any chance of the response + // being in the HTTP cache. Given that the browser has recently actively loaded the page, + // it's likely that many of the responses the SW needs to cache are in the HTTP cache and + // are fresh enough to use. In the future, this could be done by setting cacheMode to + // *only* check the browser cache for a cached version of the resource, when cacheMode is + // fully supported. For now, the resource is fetched directly, without cache-busting, and + // if the hash test fails a cache-busted request is tried before concluding that the + // resource isn't correct. This gives the benefit of acceleration via the HTTP cache + // without the risk of stale data, at the expense of a duplicate request in the event of + // a stale response. + // Fetch the resource from the network (possibly hitting the HTTP cache). + let response = yield this.safeFetch(req); + // Decide whether a cache-busted request is necessary. A cache-busted request is necessary + // only if the request was successful but the hash of the retrieved contents does not match + // the canonical hash from the manifest. + let makeCacheBustedRequest = response.ok; + if (makeCacheBustedRequest) { + // The request was successful. A cache-busted request is only necessary if the hashes + // don't match. + // (Make sure to clone the response so it can be used later if it proves to be valid.) + const fetchedHash = sha1Binary(yield response.clone().arrayBuffer()); + makeCacheBustedRequest = (fetchedHash !== canonicalHash); + } + // Make a cache busted request to the network, if necessary. + if (makeCacheBustedRequest) { + // Hash failure, the version that was retrieved under the default URL did not have the + // hash expected. This could be because the HTTP cache got in the way and returned stale + // data, or because the version on the server really doesn't match. A cache-busting + // request will differentiate these two situations. + // TODO: handle case where the URL has parameters already (unlikely for assets). + const cacheBustReq = this.adapter.newRequest(this.cacheBust(req.url)); + response = yield this.safeFetch(cacheBustReq); + // If the response was successful, check the contents against the canonical hash. + if (response.ok) { + // Hash the contents. + // (Make sure to clone the response so it can be used later if it proves to be valid.) + const cacheBustedHash = sha1Binary(yield response.clone().arrayBuffer()); + // If the cache-busted version doesn't match, then the manifest is not an accurate + // representation of the server's current set of files, and the SW should give up. + if (canonicalHash !== cacheBustedHash) { + throw new SwCriticalError(`Hash mismatch (cacheBustedFetchFromNetwork): ${req.url}: expected ${canonicalHash}, got ${cacheBustedHash} (after cache busting)`); + } + } + } + // At this point, `response` is either successful with a matching hash or is unsuccessful. + // Before returning it, check whether it failed with a 404 status. This would signify an + // unrecoverable state. + if (!response.ok && (response.status === 404)) { + throw new SwUnrecoverableStateError(`Failed to retrieve hashed resource from the server. (AssetGroup: ${this.config.name} | URL: ${url})`); + } + // Return the response (successful or unsuccessful). + return response; + } + else { + // This URL doesn't exist in our hash database, so it must be requested directly. + return this.safeFetch(req); + } + }); + } + /** + * Possibly update a resource, if it's expired and needs to be updated. A no-op otherwise. + */ + maybeUpdate(updateFrom, req, cache) { + return __awaiter(this, void 0, void 0, function* () { + const url = this.adapter.normalizeUrl(req.url); + // Check if this resource is hashed and already exists in the cache of a prior version. + if (this.hashes.has(url)) { + const hash = this.hashes.get(url); + // Check the caches of prior versions, using the hash to ensure the correct version of + // the resource is loaded. + const res = yield updateFrom.lookupResourceWithHash(url, hash); + // If a previously cached version was available, copy it over to this cache. + if (res !== null) { + // Copy to this cache. + yield cache.put(req, res); + // No need to do anything further with this resource, it's now cached properly. + return true; + } + } + // No up-to-date version of this resource could be found. + return false; + }); + } + /** + * Construct a cache-busting URL for a given URL. + */ + cacheBust(url) { + return url + (url.indexOf('?') === -1 ? '?' : '&') + 'ngsw-cache-bust=' + Math.random(); + } + safeFetch(req) { + return __awaiter(this, void 0, void 0, function* () { + try { + return yield this.scope.fetch(req); + } + catch (_a) { + return this.adapter.newResponse('', { + status: 504, + statusText: 'Gateway Timeout', + }); + } + }); + } + } + /** + * An `AssetGroup` that prefetches all of its resources during initialization. + */ + class PrefetchAssetGroup extends AssetGroup { + initializeFully(updateFrom) { + return __awaiter(this, void 0, void 0, function* () { + // Open the cache which actually holds requests. + const cache = yield this.cache; + // Cache all known resources serially. As this reduce proceeds, each Promise waits + // on the last before starting the fetch/cache operation for the next request. Any + // errors cause fall-through to the final Promise which rejects. + yield this.urls.reduce((previous, url) => __awaiter(this, void 0, void 0, function* () { + // Wait on all previous operations to complete. + yield previous; + // Construct the Request for this url. + const req = this.adapter.newRequest(url); + // First, check the cache to see if there is already a copy of this resource. + const alreadyCached = (yield cache.match(req, this.config.cacheQueryOptions)) !== undefined; + // If the resource is in the cache already, it can be skipped. + if (alreadyCached) { + return; + } + // If an update source is available. + if (updateFrom !== undefined && (yield this.maybeUpdate(updateFrom, req, cache))) { + return; + } + // Otherwise, go to the network and hopefully cache the response (if successful). + yield this.fetchAndCacheOnce(req, false); + }), Promise.resolve()); + // Handle updating of unknown (unhashed) resources. This is only possible if there's + // a source to update from. + if (updateFrom !== undefined) { + const metaTable = yield this.metadata; + // Select all of the previously cached resources. These are cached unhashed resources + // from previous versions of the app, in any asset group. + yield (yield updateFrom.previouslyCachedResources()) + // First, narrow down the set of resources to those which are handled by this group. + // Either it's a known URL, or it matches a given pattern. + .filter(url => this.urls.indexOf(url) !== -1 || this.patterns.some(pattern => pattern.test(url))) + // Finally, process each resource in turn. + .reduce((previous, url) => __awaiter(this, void 0, void 0, function* () { + yield previous; + const req = this.adapter.newRequest(url); + // It's possible that the resource in question is already cached. If so, + // continue to the next one. + const alreadyCached = ((yield cache.match(req, this.config.cacheQueryOptions)) !== undefined); + if (alreadyCached) { + return; + } + // Get the most recent old version of the resource. + const res = yield updateFrom.lookupResourceWithoutHash(url); + if (res === null || res.metadata === undefined) { + // Unexpected, but not harmful. + return; + } + // Write it into the cache. It may already be expired, but it can still serve + // traffic until it's updated (stale-while-revalidate approach). + yield cache.put(req, res.response); + yield metaTable.write(req.url, Object.assign(Object.assign({}, res.metadata), { used: false })); + }), Promise.resolve()); + } + }); + } + } + class LazyAssetGroup extends AssetGroup { + initializeFully(updateFrom) { + return __awaiter(this, void 0, void 0, function* () { + // No action necessary if no update source is available - resources managed in this group + // are all lazily loaded, so there's nothing to initialize. + if (updateFrom === undefined) { + return; + } + // Open the cache which actually holds requests. + const cache = yield this.cache; + // Loop through the listed resources, caching any which are available. + yield this.urls.reduce((previous, url) => __awaiter(this, void 0, void 0, function* () { + // Wait on all previous operations to complete. + yield previous; + // Construct the Request for this url. + const req = this.adapter.newRequest(url); + // First, check the cache to see if there is already a copy of this resource. + const alreadyCached = (yield cache.match(req, this.config.cacheQueryOptions)) !== undefined; + // If the resource is in the cache already, it can be skipped. + if (alreadyCached) { + return; + } + const updated = yield this.maybeUpdate(updateFrom, req, cache); + if (this.config.updateMode === 'prefetch' && !updated) { + // If the resource was not updated, either it was not cached before or + // the previously cached version didn't match the updated hash. In that + // case, prefetch update mode dictates that the resource will be updated, + // except if it was not previously utilized. Check the status of the + // cached resource to see. + const cacheStatus = yield updateFrom.recentCacheStatus(url); + // If the resource is not cached, or was cached but unused, then it will be + // loaded lazily. + if (cacheStatus !== UpdateCacheStatus.CACHED) { + return; + } + // Update from the network. + yield this.fetchAndCacheOnce(req, false); + } + }), Promise.resolve()); + }); + } + } + + /** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + /** + * Manages an instance of `LruState` and moves URLs to the head of the + * chain when requested. + */ + class LruList { + constructor(state) { + if (state === undefined) { + state = { + head: null, + tail: null, + map: {}, + count: 0, + }; + } + this.state = state; + } + /** + * The current count of URLs in the list. + */ + get size() { + return this.state.count; + } + /** + * Remove the tail. + */ + pop() { + // If there is no tail, return null. + if (this.state.tail === null) { + return null; + } + const url = this.state.tail; + this.remove(url); + // This URL has been successfully evicted. + return url; + } + remove(url) { + const node = this.state.map[url]; + if (node === undefined) { + return false; + } + // Special case if removing the current head. + if (this.state.head === url) { + // The node is the current head. Special case the removal. + if (node.next === null) { + // This is the only node. Reset the cache to be empty. + this.state.head = null; + this.state.tail = null; + this.state.map = {}; + this.state.count = 0; + return true; + } + // There is at least one other node. Make the next node the new head. + const next = this.state.map[node.next]; + next.previous = null; + this.state.head = next.url; + node.next = null; + delete this.state.map[url]; + this.state.count--; + return true; + } + // The node is not the head, so it has a previous. It may or may not be the tail. + // If it is not, then it has a next. First, grab the previous node. + const previous = this.state.map[node.previous]; + // Fix the forward pointer to skip over node and go directly to node.next. + previous.next = node.next; + // node.next may or may not be set. If it is, fix the back pointer to skip over node. + // If it's not set, then this node happened to be the tail, and the tail needs to be + // updated to point to the previous node (removing the tail). + if (node.next !== null) { + // There is a next node, fix its back pointer to skip this node. + this.state.map[node.next].previous = node.previous; + } + else { + // There is no next node - the accessed node must be the tail. Move the tail pointer. + this.state.tail = node.previous; + } + node.next = null; + node.previous = null; + delete this.state.map[url]; + // Count the removal. + this.state.count--; + return true; + } + accessed(url) { + // When a URL is accessed, its node needs to be moved to the head of the chain. + // This is accomplished in two steps: + // + // 1) remove the node from its position within the chain. + // 2) insert the node as the new head. + // + // Sometimes, a URL is accessed which has not been seen before. In this case, step 1 can + // be skipped completely (which will grow the chain by one). Of course, if the node is + // already the head, this whole operation can be skipped. + if (this.state.head === url) { + // The URL is already in the head position, accessing it is a no-op. + return; + } + // Look up the node in the map, and construct a new entry if it's + const node = this.state.map[url] || { url, next: null, previous: null }; + // Step 1: remove the node from its position within the chain, if it is in the chain. + if (this.state.map[url] !== undefined) { + this.remove(url); + } + // Step 2: insert the node at the head of the chain. + // First, check if there's an existing head node. If there is, it has previous: null. + // Its previous pointer should be set to the node we're inserting. + if (this.state.head !== null) { + this.state.map[this.state.head].previous = url; + } + // The next pointer of the node being inserted gets set to the old head, before the head + // pointer is updated to this node. + node.next = this.state.head; + // The new head is the new node. + this.state.head = url; + // If there is no tail, then this is the first node, and is both the head and the tail. + if (this.state.tail === null) { + this.state.tail = url; + } + // Set the node in the map of nodes (if the URL has been seen before, this is a no-op) + // and count the insertion. + this.state.map[url] = node; + this.state.count++; + } + } + /** + * A group of cached resources determined by a set of URL patterns which follow a LRU policy + * for caching. + */ + class DataGroup { + constructor(scope, adapter, config, db, debugHandler, cacheNamePrefix) { + this.scope = scope; + this.adapter = adapter; + this.config = config; + this.db = db; + this.debugHandler = debugHandler; + /** + * Tracks the LRU state of resources in this cache. + */ + this._lru = null; + this.patterns = config.patterns.map(pattern => new RegExp(pattern)); + this.cache = adapter.caches.open(`${cacheNamePrefix}:${config.name}:cache`); + this.lruTable = this.db.open(`${cacheNamePrefix}:${config.name}:lru`, config.cacheQueryOptions); + this.ageTable = this.db.open(`${cacheNamePrefix}:${config.name}:age`, config.cacheQueryOptions); + } + /** + * Lazily initialize/load the LRU chain. + */ + lru() { + return __awaiter(this, void 0, void 0, function* () { + if (this._lru === null) { + const table = yield this.lruTable; + try { + this._lru = new LruList(yield table.read('lru')); + } + catch (_a) { + this._lru = new LruList(); + } + } + return this._lru; + }); + } + /** + * Sync the LRU chain to non-volatile storage. + */ + syncLru() { + return __awaiter(this, void 0, void 0, function* () { + if (this._lru === null) { + return; + } + const table = yield this.lruTable; + try { + return table.write('lru', this._lru.state); + } + catch (err) { + // Writing lru cache table failed. This could be a result of a full storage. + // Continue serving clients as usual. + this.debugHandler.log(err, `DataGroup(${this.config.name}@${this.config.version}).syncLru()`); + // TODO: Better detect/handle full storage; e.g. using + // [navigator.storage](https://developer.mozilla.org/en-US/docs/Web/API/NavigatorStorage/storage). + } + }); + } + /** + * Process a fetch event and return a `Response` if the resource is covered by this group, + * or `null` otherwise. + */ + handleFetch(req, event) { + return __awaiter(this, void 0, void 0, function* () { + // Do nothing + if (!this.patterns.some(pattern => pattern.test(req.url))) { + return null; + } + // Lazily initialize the LRU cache. + const lru = yield this.lru(); + // The URL matches this cache. First, check whether this is a mutating request or not. + switch (req.method) { + case 'OPTIONS': + // Don't try to cache this - it's non-mutating, but is part of a mutating request. + // Most likely SWs don't even see this, but this guard is here just in case. + return null; + case 'GET': + case 'HEAD': + // Handle the request with whatever strategy was selected. + switch (this.config.strategy) { + case 'freshness': + return this.handleFetchWithFreshness(req, event, lru); + case 'performance': + return this.handleFetchWithPerformance(req, event, lru); + default: + throw new Error(`Unknown strategy: ${this.config.strategy}`); + } + default: + // This was a mutating request. Assume the cache for this URL is no longer valid. + const wasCached = lru.remove(req.url); + // If there was a cached entry, remove it. + if (wasCached) { + yield this.clearCacheForUrl(req.url); + } + // Sync the LRU chain to non-volatile storage. + yield this.syncLru(); + // Finally, fall back on the network. + return this.safeFetch(req); + } + }); + } + handleFetchWithPerformance(req, event, lru) { + return __awaiter(this, void 0, void 0, function* () { + let res = null; + // Check the cache first. If the resource exists there (and is not expired), the cached + // version can be used. + const fromCache = yield this.loadFromCache(req, lru); + if (fromCache !== null) { + res = fromCache.res; + // Check the age of the resource. + if (this.config.refreshAheadMs !== undefined && fromCache.age >= this.config.refreshAheadMs) { + event.waitUntil(this.safeCacheResponse(req, this.safeFetch(req), lru)); + } + } + if (res !== null) { + return res; + } + // No match from the cache. Go to the network. Note that this is not an 'await' + // call, networkFetch is the actual Promise. This is due to timeout handling. + const [timeoutFetch, networkFetch] = this.networkFetchWithTimeout(req); + res = yield timeoutFetch; + // Since fetch() will always return a response, undefined indicates a timeout. + if (res === undefined) { + // The request timed out. Return a Gateway Timeout error. + res = this.adapter.newResponse(null, { status: 504, statusText: 'Gateway Timeout' }); + // Cache the network response eventually. + event.waitUntil(this.safeCacheResponse(req, networkFetch, lru)); + } + else { + // The request completed in time, so cache it inline with the response flow. + yield this.safeCacheResponse(req, res, lru); + } + return res; + }); + } + handleFetchWithFreshness(req, event, lru) { + return __awaiter(this, void 0, void 0, function* () { + // Start with a network fetch. + const [timeoutFetch, networkFetch] = this.networkFetchWithTimeout(req); + let res; + // If that fetch errors, treat it as a timed out request. + try { + res = yield timeoutFetch; + } + catch (_a) { + res = undefined; + } + // If the network fetch times out or errors, fall back on the cache. + if (res === undefined) { + event.waitUntil(this.safeCacheResponse(req, networkFetch, lru, true)); + // Ignore the age, the network response will be cached anyway due to the + // behavior of freshness. + const fromCache = yield this.loadFromCache(req, lru); + res = (fromCache !== null) ? fromCache.res : null; + } + else { + yield this.safeCacheResponse(req, res, lru, true); + } + // Either the network fetch didn't time out, or the cache yielded a usable response. + // In either case, use it. + if (res !== null) { + return res; + } + // No response in the cache. No choice but to fall back on the full network fetch. + return networkFetch; + }); + } + networkFetchWithTimeout(req) { + // If there is a timeout configured, race a timeout Promise with the network fetch. + // Otherwise, just fetch from the network directly. + if (this.config.timeoutMs !== undefined) { + const networkFetch = this.scope.fetch(req); + const safeNetworkFetch = (() => __awaiter(this, void 0, void 0, function* () { + try { + return yield networkFetch; + } + catch (_a) { + return this.adapter.newResponse(null, { + status: 504, + statusText: 'Gateway Timeout', + }); + } + }))(); + const networkFetchUndefinedError = (() => __awaiter(this, void 0, void 0, function* () { + try { + return yield networkFetch; + } + catch (_b) { + return undefined; + } + }))(); + // Construct a Promise<undefined> for the timeout. + const timeout = this.adapter.timeout(this.config.timeoutMs); + // Race that with the network fetch. This will either be a Response, or `undefined` + // in the event that the request errored or timed out. + return [Promise.race([networkFetchUndefinedError, timeout]), safeNetworkFetch]; + } + else { + const networkFetch = this.safeFetch(req); + // Do a plain fetch. + return [networkFetch, networkFetch]; + } + } + safeCacheResponse(req, resOrPromise, lru, okToCacheOpaque) { + return __awaiter(this, void 0, void 0, function* () { + try { + const res = yield resOrPromise; + try { + yield this.cacheResponse(req, res, lru, okToCacheOpaque); + } + catch (err) { + // Saving the API response failed. This could be a result of a full storage. + // Since this data is cached lazily and temporarily, continue serving clients as usual. + this.debugHandler.log(err, `DataGroup(${this.config.name}@${this.config.version}).safeCacheResponse(${req.url}, status: ${res.status})`); + // TODO: Better detect/handle full storage; e.g. using + // [navigator.storage](https://developer.mozilla.org/en-US/docs/Web/API/NavigatorStorage/storage). + } + } + catch (_a) { + // Request failed + // TODO: Handle this error somehow? + } + }); + } + loadFromCache(req, lru) { + return __awaiter(this, void 0, void 0, function* () { + // Look for a response in the cache. If one exists, return it. + const cache = yield this.cache; + let res = yield cache.match(req, this.config.cacheQueryOptions); + if (res !== undefined) { + // A response was found in the cache, but its age is not yet known. Look it up. + try { + const ageTable = yield this.ageTable; + const age = this.adapter.time - (yield ageTable.read(req.url)).age; + // If the response is young enough, use it. + if (age <= this.config.maxAge) { + // Successful match from the cache. Use the response, after marking it as having + // been accessed. + lru.accessed(req.url); + return { res, age }; + } + // Otherwise, or if there was an error, assume the response is expired, and evict it. + } + catch (_a) { + // Some error getting the age for the response. Assume it's expired. + } + lru.remove(req.url); + yield this.clearCacheForUrl(req.url); + // TODO: avoid duplicate in event of network timeout, maybe. + yield this.syncLru(); + } + return null; + }); + } + /** + * Operation for caching the response from the server. This has to happen all + * at once, so that the cache and LRU tracking remain in sync. If the network request + * completes before the timeout, this logic will be run inline with the response flow. + * If the request times out on the server, an error will be returned but the real network + * request will still be running in the background, to be cached when it completes. + */ + cacheResponse(req, res, lru, okToCacheOpaque = false) { + return __awaiter(this, void 0, void 0, function* () { + // Only cache successful responses. + if (!(res.ok || (okToCacheOpaque && res.type === 'opaque'))) { + return; + } + // If caching this response would make the cache exceed its maximum size, evict something + // first. + if (lru.size >= this.config.maxSize) { + // The cache is too big, evict something. + const evictedUrl = lru.pop(); + if (evictedUrl !== null) { + yield this.clearCacheForUrl(evictedUrl); + } + } + // TODO: evaluate for possible race conditions during flaky network periods. + // Mark this resource as having been accessed recently. This ensures it won't be evicted + // until enough other resources are requested that it falls off the end of the LRU chain. + lru.accessed(req.url); + // Store the response in the cache (cloning because the browser will consume + // the body during the caching operation). + yield (yield this.cache).put(req, res.clone()); + // Store the age of the cache. + const ageTable = yield this.ageTable; + yield ageTable.write(req.url, { age: this.adapter.time }); + // Sync the LRU chain to non-volatile storage. + yield this.syncLru(); + }); + } + /** + * Delete all of the saved state which this group uses to track resources. + */ + cleanup() { + return __awaiter(this, void 0, void 0, function* () { + // Remove both the cache and the database entries which track LRU stats. + yield Promise.all([ + this.cache.then(cache => this.adapter.caches.delete(cache.name)), + this.ageTable.then(table => this.db.delete(table.name)), + this.lruTable.then(table => this.db.delete(table.name)), + ]); + }); + } + /** + * Return a list of the names of all caches used by this group. + */ + getCacheNames() { + return __awaiter(this, void 0, void 0, function* () { + const [cache, ageTable, lruTable] = yield Promise.all([ + this.cache, + this.ageTable, + this.lruTable, + ]); + return [cache.name, ageTable.cacheName, lruTable.cacheName]; + }); + } + /** + * Clear the state of the cache for a particular resource. + * + * This doesn't remove the resource from the LRU table, that is assumed to have + * been done already. This clears the GET and HEAD versions of the request from + * the cache itself, as well as the metadata stored in the age table. + */ + clearCacheForUrl(url) { + return __awaiter(this, void 0, void 0, function* () { + const [cache, ageTable] = yield Promise.all([this.cache, this.ageTable]); + yield Promise.all([ + cache.delete(this.adapter.newRequest(url, { method: 'GET' }), this.config.cacheQueryOptions), + cache.delete(this.adapter.newRequest(url, { method: 'HEAD' }), this.config.cacheQueryOptions), + ageTable.delete(url), + ]); + }); + } + safeFetch(req) { + return __awaiter(this, void 0, void 0, function* () { + try { + return this.scope.fetch(req); + } + catch (_a) { + return this.adapter.newResponse(null, { + status: 504, + statusText: 'Gateway Timeout', + }); + } + }); + } + } + + /** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + const BACKWARDS_COMPATIBILITY_NAVIGATION_URLS = [ + { positive: true, regex: '^/.*$' }, + { positive: false, regex: '^/.*\\.[^/]*$' }, + { positive: false, regex: '^/.*__' }, + ]; + /** + * A specific version of the application, identified by a unique manifest + * as determined by its hash. + * + * Each `AppVersion` can be thought of as a published version of the app + * that can be installed as an update to any previously installed versions. + */ + class AppVersion { + constructor(scope, adapter, database, idle, debugHandler, manifest, manifestHash) { + this.scope = scope; + this.adapter = adapter; + this.database = database; + this.debugHandler = debugHandler; + this.manifest = manifest; + this.manifestHash = manifestHash; + /** + * A Map of absolute URL paths (`/foo.txt`) to the known hash of their contents (if available). + */ + this.hashTable = new Map(); + /** + * The normalized URL to the file that serves as the index page to satisfy navigation requests. + * Usually this is `/index.html`. + */ + this.indexUrl = this.adapter.normalizeUrl(this.manifest.index); + /** + * Tracks whether the manifest has encountered any inconsistencies. + */ + this._okay = true; + // The hashTable within the manifest is an Object - convert it to a Map for easier lookups. + Object.keys(manifest.hashTable).forEach(url => { + this.hashTable.set(adapter.normalizeUrl(url), manifest.hashTable[url]); + }); + // Process each `AssetGroup` declared in the manifest. Each declared group gets an `AssetGroup` + // instance created for it, of a type that depends on the configuration mode. + const assetCacheNamePrefix = `${manifestHash}:assets`; + this.assetGroups = (manifest.assetGroups || []).map(config => { + // Check the caching mode, which determines when resources will be fetched/updated. + switch (config.installMode) { + case 'prefetch': + return new PrefetchAssetGroup(scope, adapter, idle, config, this.hashTable, database, assetCacheNamePrefix); + case 'lazy': + return new LazyAssetGroup(scope, adapter, idle, config, this.hashTable, database, assetCacheNamePrefix); + } + }); + // Process each `DataGroup` declared in the manifest. + this.dataGroups = + (manifest.dataGroups || []) + .map(config => new DataGroup(scope, adapter, config, database, debugHandler, `${config.version}:data`)); + // This keeps backwards compatibility with app versions without navigation urls. + // Fix: https://github.com/angular/angular/issues/27209 + manifest.navigationUrls = manifest.navigationUrls || BACKWARDS_COMPATIBILITY_NAVIGATION_URLS; + // Create `include`/`exclude` RegExps for the `navigationUrls` declared in the manifest. + const includeUrls = manifest.navigationUrls.filter(spec => spec.positive); + const excludeUrls = manifest.navigationUrls.filter(spec => !spec.positive); + this.navigationUrls = { + include: includeUrls.map(spec => new RegExp(spec.regex)), + exclude: excludeUrls.map(spec => new RegExp(spec.regex)), + }; + } + get okay() { + return this._okay; + } + /** + * Fully initialize this version of the application. If this Promise resolves successfully, all + * required + * data has been safely downloaded. + */ + initializeFully(updateFrom) { + return __awaiter(this, void 0, void 0, function* () { + try { + // Fully initialize each asset group, in series. Starts with an empty Promise, + // and waits for the previous groups to have been initialized before initializing + // the next one in turn. + yield this.assetGroups.reduce((previous, group) => __awaiter(this, void 0, void 0, function* () { + // Wait for the previous groups to complete initialization. If there is a + // failure, this will throw, and each subsequent group will throw, until the + // whole sequence fails. + yield previous; + // Initialize this group. + return group.initializeFully(updateFrom); + }), Promise.resolve()); + } + catch (err) { + this._okay = false; + throw err; + } + }); + } + handleFetch(req, event) { + return __awaiter(this, void 0, void 0, function* () { + // Check the request against each `AssetGroup` in sequence. If an `AssetGroup` can't handle the + // request, + // it will return `null`. Thus, the first non-null response is the SW's answer to the request. + // So reduce + // the group list, keeping track of a possible response. If there is one, it gets passed + // through, and if + // not the next group is consulted to produce a candidate response. + const asset = yield this.assetGroups.reduce((potentialResponse, group) => __awaiter(this, void 0, void 0, function* () { + // Wait on the previous potential response. If it's not null, it should just be passed + // through. + const resp = yield potentialResponse; + if (resp !== null) { + return resp; + } + // No response has been found yet. Maybe this group will have one. + return group.handleFetch(req, event); + }), Promise.resolve(null)); + // The result of the above is the asset response, if there is any, or null otherwise. Return the + // asset + // response if there was one. If not, check with the data caching groups. + if (asset !== null) { + return asset; + } + // Perform the same reduction operation as above, but this time processing + // the data caching groups. + const data = yield this.dataGroups.reduce((potentialResponse, group) => __awaiter(this, void 0, void 0, function* () { + const resp = yield potentialResponse; + if (resp !== null) { + return resp; + } + return group.handleFetch(req, event); + }), Promise.resolve(null)); + // If the data caching group returned a response, go with it. + if (data !== null) { + return data; + } + // Next, check if this is a navigation request for a route. Detect circular + // navigations by checking if the request URL is the same as the index URL. + if (this.adapter.normalizeUrl(req.url) !== this.indexUrl && this.isNavigationRequest(req)) { + if (this.manifest.navigationRequestStrategy === 'freshness') { + // For navigation requests the freshness was configured. The request will always go trough + // the network and fallback to default `handleFetch` behavior in case of failure. + try { + return yield this.scope.fetch(req); + } + catch (_a) { + // Navigation request failed - application is likely offline. + // Proceed forward to the default `handleFetch` behavior, where + // `indexUrl` will be requested and it should be available in the cache. + } + } + // This was a navigation request. Re-enter `handleFetch` with a request for + // the URL. + return this.handleFetch(this.adapter.newRequest(this.indexUrl), event); + } + return null; + }); + } + /** + * Determine whether the request is a navigation request. + * Takes into account: Request mode, `Accept` header, `navigationUrls` patterns. + */ + isNavigationRequest(req) { + if (req.mode !== 'navigate') { + return false; + } + if (!this.acceptsTextHtml(req)) { + return false; + } + const urlPrefix = this.scope.registration.scope.replace(/\/$/, ''); + const url = req.url.startsWith(urlPrefix) ? req.url.substr(urlPrefix.length) : req.url; + const urlWithoutQueryOrHash = url.replace(/[?#].*$/, ''); + return this.navigationUrls.include.some(regex => regex.test(urlWithoutQueryOrHash)) && + !this.navigationUrls.exclude.some(regex => regex.test(urlWithoutQueryOrHash)); + } + /** + * Check this version for a given resource with a particular hash. + */ + lookupResourceWithHash(url, hash) { + return __awaiter(this, void 0, void 0, function* () { + // Verify that this version has the requested resource cached. If not, + // there's no point in trying. + if (!this.hashTable.has(url)) { + return null; + } + // Next, check whether the resource has the correct hash. If not, any cached + // response isn't usable. + if (this.hashTable.get(url) !== hash) { + return null; + } + const cacheState = yield this.lookupResourceWithoutHash(url); + return cacheState && cacheState.response; + }); + } + /** + * Check this version for a given resource regardless of its hash. + */ + lookupResourceWithoutHash(url) { + // Limit the search to asset groups, and only scan the cache, don't + // load resources from the network. + return this.assetGroups.reduce((potentialResponse, group) => __awaiter(this, void 0, void 0, function* () { + const resp = yield potentialResponse; + if (resp !== null) { + return resp; + } + // fetchFromCacheOnly() avoids any network fetches, and returns the + // full set of cache data, not just the Response. + return group.fetchFromCacheOnly(url); + }), Promise.resolve(null)); + } + /** + * List all unhashed resources from all asset groups. + */ + previouslyCachedResources() { + return this.assetGroups.reduce((resources, group) => __awaiter(this, void 0, void 0, function* () { return (yield resources).concat(yield group.unhashedResources()); }), Promise.resolve([])); + } + recentCacheStatus(url) { + return __awaiter(this, void 0, void 0, function* () { + return this.assetGroups.reduce((current, group) => __awaiter(this, void 0, void 0, function* () { + const status = yield current; + if (status === UpdateCacheStatus.CACHED) { + return status; + } + const groupStatus = yield group.cacheStatus(url); + if (groupStatus === UpdateCacheStatus.NOT_CACHED) { + return status; + } + return groupStatus; + }), Promise.resolve(UpdateCacheStatus.NOT_CACHED)); + }); + } + /** + * Return a list of the names of all caches used by this version. + */ + getCacheNames() { + return __awaiter(this, void 0, void 0, function* () { + const allGroupCacheNames = yield Promise.all([ + ...this.assetGroups.map(group => group.getCacheNames()), + ...this.dataGroups.map(group => group.getCacheNames()), + ]); + return [].concat(...allGroupCacheNames); + }); + } + /** + * Get the opaque application data which was provided with the manifest. + */ + get appData() { + return this.manifest.appData || null; + } + /** + * Check whether a request accepts `text/html` (based on the `Accept` header). + */ + acceptsTextHtml(req) { + const accept = req.headers.get('Accept'); + if (accept === null) { + return false; + } + const values = accept.split(','); + return values.some(value => value.trim().toLowerCase() === 'text/html'); + } + } + + /** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + const SW_VERSION = '12.2.0'; + const DEBUG_LOG_BUFFER_SIZE = 100; + class DebugHandler { + constructor(driver, adapter) { + this.driver = driver; + this.adapter = adapter; + // There are two debug log message arrays. debugLogA records new debugging messages. + // Once it reaches DEBUG_LOG_BUFFER_SIZE, the array is moved to debugLogB and a new + // array is assigned to debugLogA. This ensures that insertion to the debug log is + // always O(1) no matter the number of logged messages, and that the total number + // of messages in the log never exceeds 2 * DEBUG_LOG_BUFFER_SIZE. + this.debugLogA = []; + this.debugLogB = []; + } + handleFetch(req) { + return __awaiter(this, void 0, void 0, function* () { + const [state, versions, idle] = yield Promise.all([ + this.driver.debugState(), + this.driver.debugVersions(), + this.driver.debugIdleState(), + ]); + const msgState = `NGSW Debug Info: + +Driver version: ${SW_VERSION} +Driver state: ${state.state} (${state.why}) +Latest manifest hash: ${state.latestHash || 'none'} +Last update check: ${this.since(state.lastUpdateCheck)}`; + const msgVersions = versions + .map(version => `=== Version ${version.hash} === + +Clients: ${version.clients.join(', ')}`) + .join('\n\n'); + const msgIdle = `=== Idle Task Queue === +Last update tick: ${this.since(idle.lastTrigger)} +Last update run: ${this.since(idle.lastRun)} +Task queue: +${idle.queue.map(v => ' * ' + v).join('\n')} + +Debug log: +${this.formatDebugLog(this.debugLogB)} +${this.formatDebugLog(this.debugLogA)} +`; + return this.adapter.newResponse(`${msgState} + +${msgVersions} + +${msgIdle}`, { headers: this.adapter.newHeaders({ 'Content-Type': 'text/plain' }) }); + }); + } + since(time) { + if (time === null) { + return 'never'; + } + let age = this.adapter.time - time; + const days = Math.floor(age / 86400000); + age = age % 86400000; + const hours = Math.floor(age / 3600000); + age = age % 3600000; + const minutes = Math.floor(age / 60000); + age = age % 60000; + const seconds = Math.floor(age / 1000); + const millis = age % 1000; + return '' + (days > 0 ? `${days}d` : '') + (hours > 0 ? `${hours}h` : '') + + (minutes > 0 ? `${minutes}m` : '') + (seconds > 0 ? `${seconds}s` : '') + + (millis > 0 ? `${millis}u` : ''); + } + log(value, context = '') { + // Rotate the buffers if debugLogA has grown too large. + if (this.debugLogA.length === DEBUG_LOG_BUFFER_SIZE) { + this.debugLogB = this.debugLogA; + this.debugLogA = []; + } + // Convert errors to string for logging. + if (typeof value !== 'string') { + value = this.errorToString(value); + } + // Log the message. + this.debugLogA.push({ value, time: this.adapter.time, context }); + } + errorToString(err) { + return `${err.name}(${err.message}, ${err.stack})`; + } + formatDebugLog(log) { + return log.map(entry => `[${this.since(entry.time)}] ${entry.value} ${entry.context}`) + .join('\n'); + } + } + + /** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + class IdleScheduler { + constructor(adapter, delay, maxDelay, debug) { + this.adapter = adapter; + this.delay = delay; + this.maxDelay = maxDelay; + this.debug = debug; + this.queue = []; + this.scheduled = null; + this.empty = Promise.resolve(); + this.emptyResolve = null; + this.lastTrigger = null; + this.lastRun = null; + this.oldestScheduledAt = null; + } + trigger() { + var _a; + return __awaiter(this, void 0, void 0, function* () { + this.lastTrigger = this.adapter.time; + if (this.queue.length === 0) { + return; + } + if (this.scheduled !== null) { + this.scheduled.cancel = true; + } + const scheduled = { + cancel: false, + }; + this.scheduled = scheduled; + // Ensure that no task remains pending for longer than `this.maxDelay` ms. + const now = this.adapter.time; + const maxDelay = Math.max(0, ((_a = this.oldestScheduledAt) !== null && _a !== void 0 ? _a : now) + this.maxDelay - now); + const delay = Math.min(maxDelay, this.delay); + yield this.adapter.timeout(delay); + if (scheduled.cancel) { + return; + } + this.scheduled = null; + yield this.execute(); + }); + } + execute() { + return __awaiter(this, void 0, void 0, function* () { + this.lastRun = this.adapter.time; + while (this.queue.length > 0) { + const queue = this.queue; + this.queue = []; + yield queue.reduce((previous, task) => __awaiter(this, void 0, void 0, function* () { + yield previous; + try { + yield task.run(); + } + catch (err) { + this.debug.log(err, `while running idle task ${task.desc}`); + } + }), Promise.resolve()); + } + if (this.emptyResolve !== null) { + this.emptyResolve(); + this.emptyResolve = null; + } + this.empty = Promise.resolve(); + this.oldestScheduledAt = null; + }); + } + schedule(desc, run) { + this.queue.push({ desc, run }); + if (this.emptyResolve === null) { + this.empty = new Promise(resolve => { + this.emptyResolve = resolve; + }); + } + if (this.oldestScheduledAt === null) { + this.oldestScheduledAt = this.adapter.time; + } + } + get size() { + return this.queue.length; + } + get taskDescriptions() { + return this.queue.map(task => task.desc); + } + } + + /** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + function hashManifest(manifest) { + return sha1(JSON.stringify(manifest)); + } + + /** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + function isMsgCheckForUpdates(msg) { + return msg.action === 'CHECK_FOR_UPDATES'; + } + function isMsgActivateUpdate(msg) { + return msg.action === 'ACTIVATE_UPDATE'; + } + + /** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + const IDLE_DELAY = 5000; + const MAX_IDLE_DELAY = 30000; + const SUPPORTED_CONFIG_VERSION = 1; + const NOTIFICATION_OPTION_NAMES = [ + 'actions', 'badge', 'body', 'data', 'dir', 'icon', 'image', 'lang', 'renotify', + 'requireInteraction', 'silent', 'tag', 'timestamp', 'title', 'vibrate' + ]; + var DriverReadyState = /*@__PURE__*/ (function (DriverReadyState) { + // The SW is operating in a normal mode, responding to all traffic. + DriverReadyState[DriverReadyState["NORMAL"] = 0] = "NORMAL"; + // The SW does not have a clean installation of the latest version of the app, but older + // cached versions are safe to use so long as they don't try to fetch new dependencies. + // This is a degraded state. + DriverReadyState[DriverReadyState["EXISTING_CLIENTS_ONLY"] = 1] = "EXISTING_CLIENTS_ONLY"; + // The SW has decided that caching is completely unreliable, and is forgoing request + // handling until the next restart. + DriverReadyState[DriverReadyState["SAFE_MODE"] = 2] = "SAFE_MODE"; + return DriverReadyState; + })({}); + class Driver { + constructor(scope, adapter, db) { + // Set up all the event handlers that the SW needs. + this.scope = scope; + this.adapter = adapter; + this.db = db; + /** + * Tracks the current readiness condition under which the SW is operating. This controls + * whether the SW attempts to respond to some or all requests. + */ + this.state = DriverReadyState.NORMAL; + this.stateMessage = '(nominal)'; + /** + * Tracks whether the SW is in an initialized state or not. Before initialization, + * it's not legal to respond to requests. + */ + this.initialized = null; + /** + * Maps client IDs to the manifest hash of the application version being used to serve + * them. If a client ID is not present here, it has not yet been assigned a version. + * + * If a ManifestHash appears here, it is also present in the `versions` map below. + */ + this.clientVersionMap = new Map(); + /** + * Maps manifest hashes to instances of `AppVersion` for those manifests. + */ + this.versions = new Map(); + /** + * The latest version fetched from the server. + * + * Valid after initialization has completed. + */ + this.latestHash = null; + this.lastUpdateCheck = null; + /** + * Whether there is a check for updates currently scheduled due to navigation. + */ + this.scheduledNavUpdateCheck = false; + /** + * Keep track of whether we have logged an invalid `only-if-cached` request. + * (See `.onFetch()` for details.) + */ + this.loggedInvalidOnlyIfCachedRequest = false; + this.ngswStatePath = this.adapter.parseUrl('ngsw/state', this.scope.registration.scope).path; + // A promise resolving to the control DB table. + this.controlTable = this.db.open('control'); + // The install event is triggered when the service worker is first installed. + this.scope.addEventListener('install', (event) => { + // SW code updates are separate from application updates, so code updates are + // almost as straightforward as restarting the SW. Because of this, it's always + // safe to skip waiting until application tabs are closed, and activate the new + // SW version immediately. + event.waitUntil(this.scope.skipWaiting()); + }); + // The activate event is triggered when this version of the service worker is + // first activated. + this.scope.addEventListener('activate', (event) => { + event.waitUntil((() => __awaiter(this, void 0, void 0, function* () { + // As above, it's safe to take over from existing clients immediately, since the new SW + // version will continue to serve the old application. + yield this.scope.clients.claim(); + // Once all clients have been taken over, we can delete caches used by old versions of + // `@angular/service-worker`, which are no longer needed. This can happen in the background. + this.idle.schedule('activate: cleanup-old-sw-caches', () => __awaiter(this, void 0, void 0, function* () { + try { + yield this.cleanupOldSwCaches(); + } + catch (err) { + // Nothing to do - cleanup failed. Just log it. + this.debugger.log(err, 'cleanupOldSwCaches @ activate: cleanup-old-sw-caches'); + } + })); + }))()); + // Rather than wait for the first fetch event, which may not arrive until + // the next time the application is loaded, the SW takes advantage of the + // activation event to schedule initialization. However, if this were run + // in the context of the 'activate' event, waitUntil() here would cause fetch + // events to block until initialization completed. Thus, the SW does a + // postMessage() to itself, to schedule a new event loop iteration with an + // entirely separate event context. The SW will be kept alive by waitUntil() + // within that separate context while initialization proceeds, while at the + // same time the activation event is allowed to resolve and traffic starts + // being served. + if (this.scope.registration.active !== null) { + this.scope.registration.active.postMessage({ action: 'INITIALIZE' }); + } + }); + // Handle the fetch, message, and push events. + this.scope.addEventListener('fetch', (event) => this.onFetch(event)); + this.scope.addEventListener('message', (event) => this.onMessage(event)); + this.scope.addEventListener('push', (event) => this.onPush(event)); + this.scope.addEventListener('notificationclick', (event) => this.onClick(event)); + // The debugger generates debug pages in response to debugging requests. + this.debugger = new DebugHandler(this, this.adapter); + // The IdleScheduler will execute idle tasks after a given delay. + this.idle = new IdleScheduler(this.adapter, IDLE_DELAY, MAX_IDLE_DELAY, this.debugger); + } + /** + * The handler for fetch events. + * + * This is the transition point between the synchronous event handler and the + * asynchronous execution that eventually resolves for respondWith() and waitUntil(). + */ + onFetch(event) { + const req = event.request; + const scopeUrl = this.scope.registration.scope; + const requestUrlObj = this.adapter.parseUrl(req.url, scopeUrl); + if (req.headers.has('ngsw-bypass') || /[?&]ngsw-bypass(?:[=&]|$)/i.test(requestUrlObj.search)) { + return; + } + // The only thing that is served unconditionally is the debug page. + if (requestUrlObj.path === this.ngswStatePath) { + // Allow the debugger to handle the request, but don't affect SW state in any other way. + event.respondWith(this.debugger.handleFetch(req)); + return; + } + // If the SW is in a broken state where it's not safe to handle requests at all, + // returning causes the request to fall back on the network. This is preferred over + // `respondWith(fetch(req))` because the latter still shows in DevTools that the + // request was handled by the SW. + if (this.state === DriverReadyState.SAFE_MODE) { + // Even though the worker is in safe mode, idle tasks still need to happen so + // things like update checks, etc. can take place. + event.waitUntil(this.idle.trigger()); + return; + } + // Although "passive mixed content" (like images) only produces a warning without a + // ServiceWorker, fetching it via a ServiceWorker results in an error. Let such requests be + // handled by the browser, since handling with the ServiceWorker would fail anyway. + // See https://github.com/angular/angular/issues/23012#issuecomment-376430187 for more details. + if (requestUrlObj.origin.startsWith('http:') && scopeUrl.startsWith('https:')) { + // Still, log the incident for debugging purposes. + this.debugger.log(`Ignoring passive mixed content request: Driver.fetch(${req.url})`); + return; + } + // When opening DevTools in Chrome, a request is made for the current URL (and possibly related + // resources, e.g. scripts) with `cache: 'only-if-cached'` and `mode: 'no-cors'`. These request + // will eventually fail, because `only-if-cached` is only allowed to be used with + // `mode: 'same-origin'`. + // This is likely a bug in Chrome DevTools. Avoid handling such requests. + // (See also https://github.com/angular/angular/issues/22362.) + // TODO(gkalpak): Remove once no longer necessary (i.e. fixed in Chrome DevTools). + if (req.cache === 'only-if-cached' && req.mode !== 'same-origin') { + // Log the incident only the first time it happens, to avoid spamming the logs. + if (!this.loggedInvalidOnlyIfCachedRequest) { + this.loggedInvalidOnlyIfCachedRequest = true; + this.debugger.log(`Ignoring invalid request: 'only-if-cached' can be set only with 'same-origin' mode`, `Driver.fetch(${req.url}, cache: ${req.cache}, mode: ${req.mode})`); + } + return; + } + // Past this point, the SW commits to handling the request itself. This could still + // fail (and result in `state` being set to `SAFE_MODE`), but even in that case the + // SW will still deliver a response. + event.respondWith(this.handleFetch(event)); + } + /** + * The handler for message events. + */ + onMessage(event) { + // Ignore message events when the SW is in safe mode, for now. + if (this.state === DriverReadyState.SAFE_MODE) { + return; + } + // If the message doesn't have the expected signature, ignore it. + const data = event.data; + if (!data || !data.action) { + return; + } + event.waitUntil((() => __awaiter(this, void 0, void 0, function* () { + // Initialization is the only event which is sent directly from the SW to itself, and thus + // `event.source` is not a `Client`. Handle it here, before the check for `Client` sources. + if (data.action === 'INITIALIZE') { + return this.ensureInitialized(event); + } + // Only messages from true clients are accepted past this point. + // This is essentially a typecast. + if (!this.adapter.isClient(event.source)) { + return; + } + // Handle the message and keep the SW alive until it's handled. + yield this.ensureInitialized(event); + yield this.handleMessage(data, event.source); + }))()); + } + onPush(msg) { + // Push notifications without data have no effect. + if (!msg.data) { + return; + } + // Handle the push and keep the SW alive until it's handled. + msg.waitUntil(this.handlePush(msg.data.json())); + } + onClick(event) { + // Handle the click event and keep the SW alive until it's handled. + event.waitUntil(this.handleClick(event.notification, event.action)); + } + ensureInitialized(event) { + return __awaiter(this, void 0, void 0, function* () { + // Since the SW may have just been started, it may or may not have been initialized already. + // `this.initialized` will be `null` if initialization has not yet been attempted, or will be a + // `Promise` which will resolve (successfully or unsuccessfully) if it has. + if (this.initialized !== null) { + return this.initialized; + } + // Initialization has not yet been attempted, so attempt it. This should only ever happen once + // per SW instantiation. + try { + this.initialized = this.initialize(); + yield this.initialized; + } + catch (error) { + // If initialization fails, the SW needs to enter a safe state, where it declines to respond + // to network requests. + this.state = DriverReadyState.SAFE_MODE; + this.stateMessage = `Initialization failed due to error: ${errorToString(error)}`; + throw error; + } + finally { + // Regardless if initialization succeeded, background tasks still need to happen. + event.waitUntil(this.idle.trigger()); + } + }); + } + handleMessage(msg, from) { + return __awaiter(this, void 0, void 0, function* () { + if (isMsgCheckForUpdates(msg)) { + const action = (() => __awaiter(this, void 0, void 0, function* () { + yield this.checkForUpdate(); + }))(); + yield this.reportStatus(from, action, msg.statusNonce); + } + else if (isMsgActivateUpdate(msg)) { + yield this.reportStatus(from, this.updateClient(from), msg.statusNonce); + } + }); + } + handlePush(data) { + return __awaiter(this, void 0, void 0, function* () { + yield this.broadcast({ + type: 'PUSH', + data, + }); + if (!data.notification || !data.notification.title) { + return; + } + const desc = data.notification; + let options = {}; + NOTIFICATION_OPTION_NAMES.filter(name => desc.hasOwnProperty(name)) + .forEach(name => options[name] = desc[name]); + yield this.scope.registration.showNotification(desc['title'], options); + }); + } + handleClick(notification, action) { + var _a, _b; + return __awaiter(this, void 0, void 0, function* () { + notification.close(); + const options = {}; + // The filter uses `name in notification` because the properties are on the prototype so + // hasOwnProperty does not work here + NOTIFICATION_OPTION_NAMES.filter(name => name in notification) + .forEach(name => options[name] = notification[name]); + const notificationAction = action === '' || action === undefined ? 'default' : action; + const onActionClick = (_a = notification === null || notification === void 0 ? void 0 : notification.data) === null || _a === void 0 ? void 0 : _a.onActionClick[notificationAction]; + const urlToOpen = new URL((_b = onActionClick === null || onActionClick === void 0 ? void 0 : onActionClick.url) !== null && _b !== void 0 ? _b : '', this.scope.registration.scope).href; + switch (onActionClick === null || onActionClick === void 0 ? void 0 : onActionClick.operation) { + case 'openWindow': + yield this.scope.clients.openWindow(urlToOpen); + break; + case 'focusLastFocusedOrOpen': { + let matchingClient = yield this.getLastFocusedMatchingClient(this.scope); + if (matchingClient) { + yield (matchingClient === null || matchingClient === void 0 ? void 0 : matchingClient.focus()); + } + else { + yield this.scope.clients.openWindow(urlToOpen); + } + break; + } + case 'navigateLastFocusedOrOpen': { + let matchingClient = yield this.getLastFocusedMatchingClient(this.scope); + if (matchingClient) { + matchingClient = yield matchingClient.navigate(urlToOpen); + yield (matchingClient === null || matchingClient === void 0 ? void 0 : matchingClient.focus()); + } + else { + yield this.scope.clients.openWindow(urlToOpen); + } + break; + } + } + yield this.broadcast({ + type: 'NOTIFICATION_CLICK', + data: { action, notification: options }, + }); + }); + } + getLastFocusedMatchingClient(scope) { + return __awaiter(this, void 0, void 0, function* () { + const windowClients = yield scope.clients.matchAll({ type: 'window' }); + // As per the spec windowClients are `sorted in the most recently focused order` + return windowClients[0]; + }); + } + reportStatus(client, promise, nonce) { + return __awaiter(this, void 0, void 0, function* () { + const response = { type: 'STATUS', nonce, status: true }; + try { + yield promise; + client.postMessage(response); + } + catch (e) { + client.postMessage(Object.assign(Object.assign({}, response), { status: false, error: e.toString() })); + } + }); + } + updateClient(client) { + return __awaiter(this, void 0, void 0, function* () { + // Figure out which version the client is on. If it's not on the latest, + // it needs to be moved. + const existing = this.clientVersionMap.get(client.id); + if (existing === this.latestHash) { + // Nothing to do, this client is already on the latest version. + return; + } + // Switch the client over. + let previous = undefined; + // Look up the application data associated with the existing version. If there + // isn't any, fall back on using the hash. + if (existing !== undefined) { + const existingVersion = this.versions.get(existing); + previous = this.mergeHashWithAppData(existingVersion.manifest, existing); + } + // Set the current version used by the client, and sync the mapping to disk. + this.clientVersionMap.set(client.id, this.latestHash); + yield this.sync(); + // Notify the client about this activation. + const current = this.versions.get(this.latestHash); + const notice = { + type: 'UPDATE_ACTIVATED', + previous, + current: this.mergeHashWithAppData(current.manifest, this.latestHash), + }; + client.postMessage(notice); + }); + } + handleFetch(event) { + return __awaiter(this, void 0, void 0, function* () { + try { + // Ensure the SW instance has been initialized. + yield this.ensureInitialized(event); + } + catch (_a) { + // Since the SW is already committed to responding to the currently active request, + // respond with a network fetch. + return this.safeFetch(event.request); + } + // On navigation requests, check for new updates. + if (event.request.mode === 'navigate' && !this.scheduledNavUpdateCheck) { + this.scheduledNavUpdateCheck = true; + this.idle.schedule('check-updates-on-navigation', () => __awaiter(this, void 0, void 0, function* () { + this.scheduledNavUpdateCheck = false; + yield this.checkForUpdate(); + })); + } + // Decide which version of the app to use to serve this request. This is asynchronous as in + // some cases, a record will need to be written to disk about the assignment that is made. + const appVersion = yield this.assignVersion(event); + let res = null; + try { + if (appVersion !== null) { + try { + // Handle the request. First try the AppVersion. If that doesn't work, fall back on the + // network. + res = yield appVersion.handleFetch(event.request, event); + } + catch (err) { + if (err.isUnrecoverableState) { + yield this.notifyClientsAboutUnrecoverableState(appVersion, err.message); + } + if (err.isCritical) { + // Something went wrong with the activation of this version. + yield this.versionFailed(appVersion, err); + return this.safeFetch(event.request); + } + throw err; + } + } + // The response will be `null` only if no `AppVersion` can be assigned to the request or if + // the assigned `AppVersion`'s manifest doesn't specify what to do about the request. + // In that case, just fall back on the network. + if (res === null) { + return this.safeFetch(event.request); + } + // The `AppVersion` returned a usable response, so return it. + return res; + } + finally { + // Trigger the idle scheduling system. The Promise returned by `trigger()` will resolve after + // a specific amount of time has passed. If `trigger()` hasn't been called again by then (e.g. + // on a subsequent request), the idle task queue will be drained and the `Promise` won't + // be resolved until that operation is complete as well. + event.waitUntil(this.idle.trigger()); + } + }); + } + /** + * Attempt to quickly reach a state where it's safe to serve responses. + */ + initialize() { + return __awaiter(this, void 0, void 0, function* () { + // On initialization, all of the serialized state is read out of the 'control' + // table. This includes: + // - map of hashes to manifests of currently loaded application versions + // - map of client IDs to their pinned versions + // - record of the most recently fetched manifest hash + // + // If these values don't exist in the DB, then this is the either the first time + // the SW has run or the DB state has been wiped or is inconsistent. In that case, + // load a fresh copy of the manifest and reset the state from scratch. + const table = yield this.controlTable; + // Attempt to load the needed state from the DB. If this fails, the catch {} block + // will populate these variables with freshly constructed values. + let manifests, assignments, latest; + try { + // Read them from the DB simultaneously. + [manifests, assignments, latest] = yield Promise.all([ + table.read('manifests'), + table.read('assignments'), + table.read('latest'), + ]); + // Make sure latest manifest is correctly installed. If not (e.g. corrupted data), + // it could stay locked in EXISTING_CLIENTS_ONLY or SAFE_MODE state. + if (!this.versions.has(latest.latest) && !manifests.hasOwnProperty(latest.latest)) { + this.debugger.log(`Missing manifest for latest version hash ${latest.latest}`, 'initialize: read from DB'); + throw new Error(`Missing manifest for latest hash ${latest.latest}`); + } + // Successfully loaded from saved state. This implies a manifest exists, so + // the update check needs to happen in the background. + this.idle.schedule('init post-load (update)', () => __awaiter(this, void 0, void 0, function* () { + yield this.checkForUpdate(); + })); + } + catch (_) { + // Something went wrong. Try to start over by fetching a new manifest from the + // server and building up an empty initial state. + const manifest = yield this.fetchLatestManifest(); + const hash = hashManifest(manifest); + manifests = { [hash]: manifest }; + assignments = {}; + latest = { latest: hash }; + // Save the initial state to the DB. + yield Promise.all([ + table.write('manifests', manifests), + table.write('assignments', assignments), + table.write('latest', latest), + ]); + } + // At this point, either the state has been loaded successfully, or fresh state + // with a new copy of the manifest has been produced. At this point, the `Driver` + // can have its internals hydrated from the state. + // Schedule cleaning up obsolete caches in the background. + this.idle.schedule('init post-load (cleanup)', () => __awaiter(this, void 0, void 0, function* () { + yield this.cleanupCaches(); + })); + // Initialize the `versions` map by setting each hash to a new `AppVersion` instance + // for that manifest. + Object.keys(manifests).forEach((hash) => { + const manifest = manifests[hash]; + // If the manifest is newly initialized, an AppVersion may have already been + // created for it. + if (!this.versions.has(hash)) { + this.versions.set(hash, new AppVersion(this.scope, this.adapter, this.db, this.idle, this.debugger, manifest, hash)); + } + }); + // Map each client ID to its associated hash. Along the way, verify that the hash + // is still valid for that client ID. It should not be possible for a client to + // still be associated with a hash that was since removed from the state. + Object.keys(assignments).forEach((clientId) => { + const hash = assignments[clientId]; + if (this.versions.has(hash)) { + this.clientVersionMap.set(clientId, hash); + } + else { + this.clientVersionMap.set(clientId, latest.latest); + this.debugger.log(`Unknown version ${hash} mapped for client ${clientId}, using latest instead`, `initialize: map assignments`); + } + }); + // Set the latest version. + this.latestHash = latest.latest; + // Finally, assert that the latest version is in fact loaded. + if (!this.versions.has(latest.latest)) { + throw new Error(`Invariant violated (initialize): latest hash ${latest.latest} has no known manifest`); + } + // Finally, wait for the scheduling of initialization of all versions in the + // manifest. Ordinarily this just schedules the initializations to happen during + // the next idle period, but in development mode this might actually wait for the + // full initialization. + // If any of these initializations fail, versionFailed() will be called either + // synchronously or asynchronously to handle the failure and re-map clients. + yield Promise.all(Object.keys(manifests).map((hash) => __awaiter(this, void 0, void 0, function* () { + try { + // Attempt to schedule or initialize this version. If this operation is + // successful, then initialization either succeeded or was scheduled. If + // it fails, then full initialization was attempted and failed. + yield this.scheduleInitialization(this.versions.get(hash)); + } + catch (err) { + this.debugger.log(err, `initialize: schedule init of ${hash}`); + return false; + } + }))); + }); + } + lookupVersionByHash(hash, debugName = 'lookupVersionByHash') { + // The version should exist, but check just in case. + if (!this.versions.has(hash)) { + throw new Error(`Invariant violated (${debugName}): want AppVersion for ${hash} but not loaded`); + } + return this.versions.get(hash); + } + /** + * Decide which version of the manifest to use for the event. + */ + assignVersion(event) { + return __awaiter(this, void 0, void 0, function* () { + // First, check whether the event has a (non empty) client ID. If it does, the version may + // already be associated. + // + // NOTE: For navigation requests, we care about the `resultingClientId`. If it is undefined or + // the empty string (which is the case for sub-resource requests), we look at `clientId`. + const clientId = event.resultingClientId || event.clientId; + if (clientId) { + // Check if there is an assigned client id. + if (this.clientVersionMap.has(clientId)) { + // There is an assignment for this client already. + const hash = this.clientVersionMap.get(clientId); + let appVersion = this.lookupVersionByHash(hash, 'assignVersion'); + // Ordinarily, this client would be served from its assigned version. But, if this + // request is a navigation request, this client can be updated to the latest + // version immediately. + if (this.state === DriverReadyState.NORMAL && hash !== this.latestHash && + appVersion.isNavigationRequest(event.request)) { + // Update this client to the latest version immediately. + if (this.latestHash === null) { + throw new Error(`Invariant violated (assignVersion): latestHash was null`); + } + const client = yield this.scope.clients.get(clientId); + if (client) { + yield this.updateClient(client); + } + appVersion = this.lookupVersionByHash(this.latestHash, 'assignVersion'); + } + // TODO: make sure the version is valid. + return appVersion; + } + else { + // This is the first time this client ID has been seen. Whether the SW is in a + // state to handle new clients depends on the current readiness state, so check + // that first. + if (this.state !== DriverReadyState.NORMAL) { + // It's not safe to serve new clients in the current state. It's possible that + // this is an existing client which has not been mapped yet (see below) but + // even if that is the case, it's invalid to make an assignment to a known + // invalid version, even if that assignment was previously implicit. Return + // undefined here to let the caller know that no assignment is possible at + // this time. + return null; + } + // It's safe to handle this request. Two cases apply. Either: + // 1) the browser assigned a client ID at the time of the navigation request, and + // this is truly the first time seeing this client, or + // 2) a navigation request came previously from the same client, but with no client + // ID attached. Browsers do this to avoid creating a client under the origin in + // the event the navigation request is just redirected. + // + // In case 1, the latest version can safely be used. + // In case 2, the latest version can be used, with the assumption that the previous + // navigation request was answered under the same version. This assumption relies + // on the fact that it's unlikely an update will come in between the navigation + // request and requests for subsequent resources on that page. + // First validate the current state. + if (this.latestHash === null) { + throw new Error(`Invariant violated (assignVersion): latestHash was null`); + } + // Pin this client ID to the current latest version, indefinitely. + this.clientVersionMap.set(clientId, this.latestHash); + yield this.sync(); + // Return the latest `AppVersion`. + return this.lookupVersionByHash(this.latestHash, 'assignVersion'); + } + } + else { + // No client ID was associated with the request. This must be a navigation request + // for a new client. First check that the SW is accepting new clients. + if (this.state !== DriverReadyState.NORMAL) { + return null; + } + // Serve it with the latest version, and assume that the client will actually get + // associated with that version on the next request. + // First validate the current state. + if (this.latestHash === null) { + throw new Error(`Invariant violated (assignVersion): latestHash was null`); + } + // Return the latest `AppVersion`. + return this.lookupVersionByHash(this.latestHash, 'assignVersion'); + } + }); + } + fetchLatestManifest(ignoreOfflineError = false) { + return __awaiter(this, void 0, void 0, function* () { + const res = yield this.safeFetch(this.adapter.newRequest('ngsw.json?ngsw-cache-bust=' + Math.random())); + if (!res.ok) { + if (res.status === 404) { + yield this.deleteAllCaches(); + yield this.scope.registration.unregister(); + } + else if ((res.status === 503 || res.status === 504) && ignoreOfflineError) { + return null; + } + throw new Error(`Manifest fetch failed! (status: ${res.status})`); + } + this.lastUpdateCheck = this.adapter.time; + return res.json(); + }); + } + deleteAllCaches() { + return __awaiter(this, void 0, void 0, function* () { + const cacheNames = yield this.adapter.caches.keys(); + yield Promise.all(cacheNames.map(name => this.adapter.caches.delete(name))); + }); + } + /** + * Schedule the SW's attempt to reach a fully prefetched state for the given AppVersion + * when the SW is not busy and has connectivity. This returns a Promise which must be + * awaited, as under some conditions the AppVersion might be initialized immediately. + */ + scheduleInitialization(appVersion) { + return __awaiter(this, void 0, void 0, function* () { + const initialize = () => __awaiter(this, void 0, void 0, function* () { + try { + yield appVersion.initializeFully(); + } + catch (err) { + this.debugger.log(err, `initializeFully for ${appVersion.manifestHash}`); + yield this.versionFailed(appVersion, err); + } + }); + // TODO: better logic for detecting localhost. + if (this.scope.registration.scope.indexOf('://localhost') > -1) { + return initialize(); + } + this.idle.schedule(`initialization(${appVersion.manifestHash})`, initialize); + }); + } + versionFailed(appVersion, err) { + return __awaiter(this, void 0, void 0, function* () { + // This particular AppVersion is broken. First, find the manifest hash. + const broken = Array.from(this.versions.entries()).find(([hash, version]) => version === appVersion); + if (broken === undefined) { + // This version is no longer in use anyway, so nobody cares. + return; + } + const brokenHash = broken[0]; + const affectedClients = Array.from(this.clientVersionMap.entries()) + .filter(([clientId, hash]) => hash === brokenHash) + .map(([clientId]) => clientId); + // TODO: notify affected apps. + // The action taken depends on whether the broken manifest is the active (latest) or not. + // If so, the SW cannot accept new clients, but can continue to service old ones. + if (this.latestHash === brokenHash) { + // The latest manifest is broken. This means that new clients are at the mercy of the + // network, but caches continue to be valid for previous versions. This is + // unfortunate but unavoidable. + this.state = DriverReadyState.EXISTING_CLIENTS_ONLY; + this.stateMessage = `Degraded due to: ${errorToString(err)}`; + // Cancel the binding for the affected clients. + affectedClients.forEach(clientId => this.clientVersionMap.delete(clientId)); + } + else { + // The latest version is viable, but this older version isn't. The only + // possible remedy is to stop serving the older version and go to the network. + // Put the affected clients on the latest version. + affectedClients.forEach(clientId => this.clientVersionMap.set(clientId, this.latestHash)); + } + try { + yield this.sync(); + } + catch (err2) { + // We are already in a bad state. No need to make things worse. + // Just log the error and move on. + this.debugger.log(err2, `Driver.versionFailed(${err.message || err})`); + } + }); + } + setupUpdate(manifest, hash) { + return __awaiter(this, void 0, void 0, function* () { + const newVersion = new AppVersion(this.scope, this.adapter, this.db, this.idle, this.debugger, manifest, hash); + // Firstly, check if the manifest version is correct. + if (manifest.configVersion !== SUPPORTED_CONFIG_VERSION) { + yield this.deleteAllCaches(); + yield this.scope.registration.unregister(); + throw new Error(`Invalid config version: expected ${SUPPORTED_CONFIG_VERSION}, got ${manifest.configVersion}.`); + } + // Cause the new version to become fully initialized. If this fails, then the + // version will not be available for use. + yield newVersion.initializeFully(this); + // Install this as an active version of the app. + this.versions.set(hash, newVersion); + // Future new clients will use this hash as the latest version. + this.latestHash = hash; + // If we are in `EXISTING_CLIENTS_ONLY` mode (meaning we didn't have a clean copy of the last + // latest version), we can now recover to `NORMAL` mode and start accepting new clients. + if (this.state === DriverReadyState.EXISTING_CLIENTS_ONLY) { + this.state = DriverReadyState.NORMAL; + this.stateMessage = '(nominal)'; + } + yield this.sync(); + yield this.notifyClientsAboutUpdate(newVersion); + }); + } + checkForUpdate() { + return __awaiter(this, void 0, void 0, function* () { + let hash = '(unknown)'; + try { + const manifest = yield this.fetchLatestManifest(true); + if (manifest === null) { + // Client or server offline. Unable to check for updates at this time. + // Continue to service clients (existing and new). + this.debugger.log('Check for update aborted. (Client or server offline.)'); + return false; + } + hash = hashManifest(manifest); + // Check whether this is really an update. + if (this.versions.has(hash)) { + return false; + } + yield this.setupUpdate(manifest, hash); + return true; + } + catch (err) { + this.debugger.log(err, `Error occurred while updating to manifest ${hash}`); + this.state = DriverReadyState.EXISTING_CLIENTS_ONLY; + this.stateMessage = `Degraded due to failed initialization: ${errorToString(err)}`; + return false; + } + }); + } + /** + * Synchronize the existing state to the underlying database. + */ + sync() { + return __awaiter(this, void 0, void 0, function* () { + const table = yield this.controlTable; + // Construct a serializable map of hashes to manifests. + const manifests = {}; + this.versions.forEach((version, hash) => { + manifests[hash] = version.manifest; + }); + // Construct a serializable map of client ids to version hashes. + const assignments = {}; + this.clientVersionMap.forEach((hash, clientId) => { + assignments[clientId] = hash; + }); + // Record the latest entry. Since this is a sync which is necessarily happening after + // initialization, latestHash should always be valid. + const latest = { + latest: this.latestHash, + }; + // Synchronize all of these. + yield Promise.all([ + table.write('manifests', manifests), + table.write('assignments', assignments), + table.write('latest', latest), + ]); + }); + } + cleanupCaches() { + return __awaiter(this, void 0, void 0, function* () { + try { + // Query for all currently active clients, and list the client IDs. This may skip some clients + // in the browser back-forward cache, but not much can be done about that. + const activeClients = new Set((yield this.scope.clients.matchAll()).map(client => client.id)); + // A simple list of client IDs that the SW has kept track of. Subtracting `activeClients` from + // this list will result in the set of client IDs which are being tracked but are no longer + // used in the browser, and thus can be cleaned up. + const knownClients = Array.from(this.clientVersionMap.keys()); + // Remove clients in the `clientVersionMap` that are no longer active. + const obsoleteClients = knownClients.filter(id => !activeClients.has(id)); + obsoleteClients.forEach(id => this.clientVersionMap.delete(id)); + // Next, determine the set of versions which are still used. All others can be removed. + const usedVersions = new Set(this.clientVersionMap.values()); + // Collect all obsolete versions by filtering out used versions from the set of all versions. + const obsoleteVersions = Array.from(this.versions.keys()) + .filter(version => !usedVersions.has(version) && version !== this.latestHash); + // Remove all the versions which are no longer used. + obsoleteVersions.forEach(version => this.versions.delete(version)); + // Commit all the changes to the saved state. + yield this.sync(); + // Delete all caches that are no longer needed. + const allCaches = yield this.adapter.caches.keys(); + const usedCaches = new Set(yield this.getCacheNames()); + const cachesToDelete = allCaches.filter(name => !usedCaches.has(name)); + yield Promise.all(cachesToDelete.map(name => this.adapter.caches.delete(name))); + } + catch (err) { + // Oh well? Not much that can be done here. These caches will be removed on the next attempt + // or when the SW revs its format version, which happens from time to time. + this.debugger.log(err, 'cleanupCaches'); + } + }); + } + /** + * Delete caches that were used by older versions of `@angular/service-worker` to avoid running + * into storage quota limitations imposed by browsers. + * (Since at this point the SW has claimed all clients, it is safe to remove those caches.) + */ + cleanupOldSwCaches() { + return __awaiter(this, void 0, void 0, function* () { + // This is an exceptional case, where we need to interact with caches that would not be + // generated by this ServiceWorker (but by old versions of it). Use the native `CacheStorage` + // directly. + const caches = this.adapter.caches.original; + const cacheNames = yield caches.keys(); + const oldSwCacheNames = cacheNames.filter(name => /^ngsw:(?!\/)/.test(name)); + yield Promise.all(oldSwCacheNames.map(name => caches.delete(name))); + }); + } + /** + * Determine if a specific version of the given resource is cached anywhere within the SW, + * and fetch it if so. + */ + lookupResourceWithHash(url, hash) { + return Array + // Scan through the set of all cached versions, valid or otherwise. It's safe to do such + // lookups even for invalid versions as the cached version of a resource will have the + // same hash regardless. + .from(this.versions.values()) + // Reduce the set of versions to a single potential result. At any point along the + // reduction, if a response has already been identified, then pass it through, as no + // future operation could change the response. If no response has been found yet, keep + // checking versions until one is or until all versions have been exhausted. + .reduce((prev, version) => __awaiter(this, void 0, void 0, function* () { + // First, check the previous result. If a non-null result has been found already, just + // return it. + if ((yield prev) !== null) { + return prev; + } + // No result has been found yet. Try the next `AppVersion`. + return version.lookupResourceWithHash(url, hash); + }), Promise.resolve(null)); + } + lookupResourceWithoutHash(url) { + return __awaiter(this, void 0, void 0, function* () { + yield this.initialized; + const version = this.versions.get(this.latestHash); + return version ? version.lookupResourceWithoutHash(url) : null; + }); + } + previouslyCachedResources() { + return __awaiter(this, void 0, void 0, function* () { + yield this.initialized; + const version = this.versions.get(this.latestHash); + return version ? version.previouslyCachedResources() : []; + }); + } + recentCacheStatus(url) { + return __awaiter(this, void 0, void 0, function* () { + const version = this.versions.get(this.latestHash); + return version ? version.recentCacheStatus(url) : UpdateCacheStatus.NOT_CACHED; + }); + } + mergeHashWithAppData(manifest, hash) { + return { + hash, + appData: manifest.appData, + }; + } + notifyClientsAboutUnrecoverableState(appVersion, reason) { + return __awaiter(this, void 0, void 0, function* () { + const broken = Array.from(this.versions.entries()).find(([hash, version]) => version === appVersion); + if (broken === undefined) { + // This version is no longer in use anyway, so nobody cares. + return; + } + const brokenHash = broken[0]; + const affectedClients = Array.from(this.clientVersionMap.entries()) + .filter(([clientId, hash]) => hash === brokenHash) + .map(([clientId]) => clientId); + yield Promise.all(affectedClients.map((clientId) => __awaiter(this, void 0, void 0, function* () { + const client = yield this.scope.clients.get(clientId); + if (client) { + client.postMessage({ type: 'UNRECOVERABLE_STATE', reason }); + } + }))); + }); + } + notifyClientsAboutUpdate(next) { + return __awaiter(this, void 0, void 0, function* () { + yield this.initialized; + const clients = yield this.scope.clients.matchAll(); + yield Promise.all(clients.map((client) => __awaiter(this, void 0, void 0, function* () { + // Firstly, determine which version this client is on. + const version = this.clientVersionMap.get(client.id); + if (version === undefined) { + // Unmapped client - assume it's the latest. + return; + } + if (version === this.latestHash) { + // Client is already on the latest version, no need for a notification. + return; + } + const current = this.versions.get(version); + // Send a notice. + const notice = { + type: 'UPDATE_AVAILABLE', + current: this.mergeHashWithAppData(current.manifest, version), + available: this.mergeHashWithAppData(next.manifest, this.latestHash), + }; + client.postMessage(notice); + }))); + }); + } + broadcast(msg) { + return __awaiter(this, void 0, void 0, function* () { + const clients = yield this.scope.clients.matchAll(); + clients.forEach(client => { + client.postMessage(msg); + }); + }); + } + debugState() { + return __awaiter(this, void 0, void 0, function* () { + return { + state: DriverReadyState[this.state], + why: this.stateMessage, + latestHash: this.latestHash, + lastUpdateCheck: this.lastUpdateCheck, + }; + }); + } + debugVersions() { + return __awaiter(this, void 0, void 0, function* () { + // Build list of versions. + return Array.from(this.versions.keys()).map(hash => { + const version = this.versions.get(hash); + const clients = Array.from(this.clientVersionMap.entries()) + .filter(([clientId, version]) => version === hash) + .map(([clientId, version]) => clientId); + return { + hash, + manifest: version.manifest, + clients, + status: '', + }; + }); + }); + } + debugIdleState() { + return __awaiter(this, void 0, void 0, function* () { + return { + queue: this.idle.taskDescriptions, + lastTrigger: this.idle.lastTrigger, + lastRun: this.idle.lastRun, + }; + }); + } + safeFetch(req) { + return __awaiter(this, void 0, void 0, function* () { + try { + return yield this.scope.fetch(req); + } + catch (err) { + this.debugger.log(err, `Driver.fetch(${req.url})`); + return this.adapter.newResponse(null, { + status: 504, + statusText: 'Gateway Timeout', + }); + } + }); + } + getCacheNames() { + return __awaiter(this, void 0, void 0, function* () { + const controlTable = yield this.controlTable; + const appVersions = Array.from(this.versions.values()); + const appVersionCacheNames = yield Promise.all(appVersions.map(version => version.getCacheNames())); + return [controlTable.cacheName].concat(...appVersionCacheNames); + }); + } + } + + /** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + const scope = self; + const adapter = new Adapter(scope.registration.scope, self.caches); + new Driver(scope, adapter, new CacheDatabase(adapter)); + +}()); diff --git a/src/blrec/data/webapp/ngsw.json b/src/blrec/data/webapp/ngsw.json new file mode 100644 index 0000000..560dc4e --- /dev/null +++ b/src/blrec/data/webapp/ngsw.json @@ -0,0 +1,3257 @@ +{ + "configVersion": 1, + "timestamp": 1628613033243, + "index": "/index.html", + "assetGroups": [ + { + "name": "app", + "installMode": "prefetch", + "updateMode": "prefetch", + "cacheQueryOptions": { + "ignoreVary": true + }, + "urls": [ + "/198.20d927ba29c55516dd2e.js", + "/51.560338ef5c3689b822f9.js", + "/659.4923e830b3feb2abcce2.js", + "/80.78cb9b41766e5c57d657.js", + "/954.05cbcc74da25eb3ef2a9.js", + "/common.fa68e1b34f0baff6ccad.js", + "/index.html", + "/main.22f06d53efe81d9df3a8.js", + "/manifest.webmanifest", + "/polyfills.a427f031f0f7196ffda1.js", + "/runtime.9c55e9c0a6d0459b5e96.js", + "/styles.09c5ed83b6748436b293.css" + ], + "patterns": [] + }, + { + "name": "assets", + "installMode": "lazy", + "updateMode": "prefetch", + "cacheQueryOptions": { + "ignoreVary": true + }, + "urls": [ + "/assets/animal/panda.js", + "/assets/animal/panda.svg", + "/assets/fill/.gitkeep", + "/assets/fill/account-book.js", + "/assets/fill/account-book.svg", + "/assets/fill/alert.js", + "/assets/fill/alert.svg", + "/assets/fill/alipay-circle.js", + "/assets/fill/alipay-circle.svg", + "/assets/fill/alipay-square.js", + "/assets/fill/alipay-square.svg", + "/assets/fill/aliwangwang.js", + "/assets/fill/aliwangwang.svg", + "/assets/fill/amazon-circle.js", + "/assets/fill/amazon-circle.svg", + "/assets/fill/amazon-square.js", + "/assets/fill/amazon-square.svg", + "/assets/fill/android.js", + "/assets/fill/android.svg", + "/assets/fill/api.js", + "/assets/fill/api.svg", + "/assets/fill/apple.js", + "/assets/fill/apple.svg", + "/assets/fill/appstore.js", + "/assets/fill/appstore.svg", + "/assets/fill/audio.js", + "/assets/fill/audio.svg", + "/assets/fill/backward.js", + "/assets/fill/backward.svg", + "/assets/fill/bank.js", + "/assets/fill/bank.svg", + "/assets/fill/behance-circle.js", + "/assets/fill/behance-circle.svg", + "/assets/fill/behance-square.js", + "/assets/fill/behance-square.svg", + "/assets/fill/bell.js", + "/assets/fill/bell.svg", + "/assets/fill/book.js", + "/assets/fill/book.svg", + "/assets/fill/box-plot.js", + "/assets/fill/box-plot.svg", + "/assets/fill/bug.js", + "/assets/fill/bug.svg", + "/assets/fill/build.js", + "/assets/fill/build.svg", + "/assets/fill/bulb.js", + "/assets/fill/bulb.svg", + "/assets/fill/calculator.js", + "/assets/fill/calculator.svg", + "/assets/fill/calendar.js", + "/assets/fill/calendar.svg", + "/assets/fill/camera.js", + "/assets/fill/camera.svg", + "/assets/fill/car.js", + "/assets/fill/car.svg", + "/assets/fill/caret-down.js", + "/assets/fill/caret-down.svg", + "/assets/fill/caret-left.js", + "/assets/fill/caret-left.svg", + "/assets/fill/caret-right.js", + "/assets/fill/caret-right.svg", + "/assets/fill/caret-up.js", + "/assets/fill/caret-up.svg", + "/assets/fill/carry-out.js", + "/assets/fill/carry-out.svg", + "/assets/fill/check-circle.js", + "/assets/fill/check-circle.svg", + "/assets/fill/check-square.js", + "/assets/fill/check-square.svg", + "/assets/fill/chrome.js", + "/assets/fill/chrome.svg", + "/assets/fill/ci-circle.js", + "/assets/fill/ci-circle.svg", + "/assets/fill/clock-circle.js", + "/assets/fill/clock-circle.svg", + "/assets/fill/close-circle.js", + "/assets/fill/close-circle.svg", + "/assets/fill/close-square.js", + "/assets/fill/close-square.svg", + "/assets/fill/cloud.js", + "/assets/fill/cloud.svg", + "/assets/fill/code-sandbox-circle.js", + "/assets/fill/code-sandbox-circle.svg", + "/assets/fill/code-sandbox-square.js", + "/assets/fill/code-sandbox-square.svg", + "/assets/fill/code.js", + "/assets/fill/code.svg", + "/assets/fill/codepen-circle.js", + "/assets/fill/codepen-circle.svg", + "/assets/fill/codepen-square.js", + "/assets/fill/codepen-square.svg", + "/assets/fill/compass.js", + "/assets/fill/compass.svg", + "/assets/fill/contacts.js", + "/assets/fill/contacts.svg", + "/assets/fill/container.js", + "/assets/fill/container.svg", + "/assets/fill/control.js", + "/assets/fill/control.svg", + "/assets/fill/copy.js", + "/assets/fill/copy.svg", + "/assets/fill/copyright-circle.js", + "/assets/fill/copyright-circle.svg", + "/assets/fill/credit-card.js", + "/assets/fill/credit-card.svg", + "/assets/fill/crown.js", + "/assets/fill/crown.svg", + "/assets/fill/customer-service.js", + "/assets/fill/customer-service.svg", + "/assets/fill/dashboard.js", + "/assets/fill/dashboard.svg", + "/assets/fill/database.js", + "/assets/fill/database.svg", + "/assets/fill/delete.js", + "/assets/fill/delete.svg", + "/assets/fill/diff.js", + "/assets/fill/diff.svg", + "/assets/fill/dingtalk-circle.js", + "/assets/fill/dingtalk-circle.svg", + "/assets/fill/dingtalk-square.js", + "/assets/fill/dingtalk-square.svg", + "/assets/fill/dislike.js", + "/assets/fill/dislike.svg", + "/assets/fill/dollar-circle.js", + "/assets/fill/dollar-circle.svg", + "/assets/fill/down-circle.js", + "/assets/fill/down-circle.svg", + "/assets/fill/down-square.js", + "/assets/fill/down-square.svg", + "/assets/fill/dribbble-circle.js", + "/assets/fill/dribbble-circle.svg", + "/assets/fill/dribbble-square.js", + "/assets/fill/dribbble-square.svg", + "/assets/fill/dropbox-circle.js", + "/assets/fill/dropbox-circle.svg", + "/assets/fill/dropbox-square.js", + "/assets/fill/dropbox-square.svg", + "/assets/fill/edit.js", + "/assets/fill/edit.svg", + "/assets/fill/environment.js", + "/assets/fill/environment.svg", + "/assets/fill/euro-circle.js", + "/assets/fill/euro-circle.svg", + "/assets/fill/exclamation-circle.js", + "/assets/fill/exclamation-circle.svg", + "/assets/fill/experiment.js", + "/assets/fill/experiment.svg", + "/assets/fill/eye-invisible.js", + "/assets/fill/eye-invisible.svg", + "/assets/fill/eye.js", + "/assets/fill/eye.svg", + "/assets/fill/facebook.js", + "/assets/fill/facebook.svg", + "/assets/fill/fast-backward.js", + "/assets/fill/fast-backward.svg", + "/assets/fill/fast-forward.js", + "/assets/fill/fast-forward.svg", + "/assets/fill/file-add.js", + "/assets/fill/file-add.svg", + "/assets/fill/file-excel.js", + "/assets/fill/file-excel.svg", + "/assets/fill/file-exclamation.js", + "/assets/fill/file-exclamation.svg", + "/assets/fill/file-image.js", + "/assets/fill/file-image.svg", + "/assets/fill/file-markdown.js", + "/assets/fill/file-markdown.svg", + "/assets/fill/file-pdf.js", + "/assets/fill/file-pdf.svg", + "/assets/fill/file-ppt.js", + "/assets/fill/file-ppt.svg", + "/assets/fill/file-text.js", + "/assets/fill/file-text.svg", + "/assets/fill/file-unknown.js", + "/assets/fill/file-unknown.svg", + "/assets/fill/file-word.js", + "/assets/fill/file-word.svg", + "/assets/fill/file-zip.js", + "/assets/fill/file-zip.svg", + "/assets/fill/file.js", + "/assets/fill/file.svg", + "/assets/fill/filter.js", + "/assets/fill/filter.svg", + "/assets/fill/fire.js", + "/assets/fill/fire.svg", + "/assets/fill/flag.js", + "/assets/fill/flag.svg", + "/assets/fill/folder-add.js", + "/assets/fill/folder-add.svg", + "/assets/fill/folder-open.js", + "/assets/fill/folder-open.svg", + "/assets/fill/folder.js", + "/assets/fill/folder.svg", + "/assets/fill/format-painter.js", + "/assets/fill/format-painter.svg", + "/assets/fill/forward.js", + "/assets/fill/forward.svg", + "/assets/fill/frown.js", + "/assets/fill/frown.svg", + "/assets/fill/fund.js", + "/assets/fill/fund.svg", + "/assets/fill/funnel-plot.js", + "/assets/fill/funnel-plot.svg", + "/assets/fill/gift.js", + "/assets/fill/gift.svg", + "/assets/fill/github.js", + "/assets/fill/github.svg", + "/assets/fill/gitlab.js", + "/assets/fill/gitlab.svg", + "/assets/fill/gold.js", + "/assets/fill/gold.svg", + "/assets/fill/golden.js", + "/assets/fill/golden.svg", + "/assets/fill/google-circle.js", + "/assets/fill/google-circle.svg", + "/assets/fill/google-plus-circle.js", + "/assets/fill/google-plus-circle.svg", + "/assets/fill/google-plus-square.js", + "/assets/fill/google-plus-square.svg", + "/assets/fill/google-square.js", + "/assets/fill/google-square.svg", + "/assets/fill/hdd.js", + "/assets/fill/hdd.svg", + "/assets/fill/heart.js", + "/assets/fill/heart.svg", + "/assets/fill/highlight.js", + "/assets/fill/highlight.svg", + "/assets/fill/home.js", + "/assets/fill/home.svg", + "/assets/fill/hourglass.js", + "/assets/fill/hourglass.svg", + "/assets/fill/html5.js", + "/assets/fill/html5.svg", + "/assets/fill/idcard.js", + "/assets/fill/idcard.svg", + "/assets/fill/ie-circle.js", + "/assets/fill/ie-circle.svg", + "/assets/fill/ie-square.js", + "/assets/fill/ie-square.svg", + "/assets/fill/info-circle.js", + "/assets/fill/info-circle.svg", + "/assets/fill/instagram.js", + "/assets/fill/instagram.svg", + "/assets/fill/insurance.js", + "/assets/fill/insurance.svg", + "/assets/fill/interaction.js", + "/assets/fill/interaction.svg", + "/assets/fill/layout.js", + "/assets/fill/layout.svg", + "/assets/fill/left-circle.js", + "/assets/fill/left-circle.svg", + "/assets/fill/left-square.js", + "/assets/fill/left-square.svg", + "/assets/fill/like.js", + "/assets/fill/like.svg", + "/assets/fill/linkedin.js", + "/assets/fill/linkedin.svg", + "/assets/fill/lock.js", + "/assets/fill/lock.svg", + "/assets/fill/mac-command.js", + "/assets/fill/mac-command.svg", + "/assets/fill/mail.js", + "/assets/fill/mail.svg", + "/assets/fill/medicine-box.js", + "/assets/fill/medicine-box.svg", + "/assets/fill/medium-circle.js", + "/assets/fill/medium-circle.svg", + "/assets/fill/medium-square.js", + "/assets/fill/medium-square.svg", + "/assets/fill/meh.js", + "/assets/fill/meh.svg", + "/assets/fill/message.js", + "/assets/fill/message.svg", + "/assets/fill/minus-circle.js", + "/assets/fill/minus-circle.svg", + "/assets/fill/minus-square.js", + "/assets/fill/minus-square.svg", + "/assets/fill/mobile.js", + "/assets/fill/mobile.svg", + "/assets/fill/money-collect.js", + "/assets/fill/money-collect.svg", + "/assets/fill/notification.js", + "/assets/fill/notification.svg", + "/assets/fill/pause-circle.js", + "/assets/fill/pause-circle.svg", + "/assets/fill/pay-circle.js", + "/assets/fill/pay-circle.svg", + "/assets/fill/phone.js", + "/assets/fill/phone.svg", + "/assets/fill/picture.js", + "/assets/fill/picture.svg", + "/assets/fill/pie-chart.js", + "/assets/fill/pie-chart.svg", + "/assets/fill/play-circle.js", + "/assets/fill/play-circle.svg", + "/assets/fill/play-square.js", + "/assets/fill/play-square.svg", + "/assets/fill/plus-circle.js", + "/assets/fill/plus-circle.svg", + "/assets/fill/plus-square.js", + "/assets/fill/plus-square.svg", + "/assets/fill/pound-circle.js", + "/assets/fill/pound-circle.svg", + "/assets/fill/printer.js", + "/assets/fill/printer.svg", + "/assets/fill/profile.js", + "/assets/fill/profile.svg", + "/assets/fill/project.js", + "/assets/fill/project.svg", + "/assets/fill/property-safety.js", + "/assets/fill/property-safety.svg", + "/assets/fill/pushpin.js", + "/assets/fill/pushpin.svg", + "/assets/fill/qq-circle.js", + "/assets/fill/qq-circle.svg", + "/assets/fill/qq-square.js", + "/assets/fill/qq-square.svg", + "/assets/fill/question-circle.js", + "/assets/fill/question-circle.svg", + "/assets/fill/read.js", + "/assets/fill/read.svg", + "/assets/fill/reconciliation.js", + "/assets/fill/reconciliation.svg", + "/assets/fill/red-envelope.js", + "/assets/fill/red-envelope.svg", + "/assets/fill/reddit-circle.js", + "/assets/fill/reddit-circle.svg", + "/assets/fill/reddit-square.js", + "/assets/fill/reddit-square.svg", + "/assets/fill/rest.js", + "/assets/fill/rest.svg", + "/assets/fill/right-circle.js", + "/assets/fill/right-circle.svg", + "/assets/fill/right-square.js", + "/assets/fill/right-square.svg", + "/assets/fill/robot.js", + "/assets/fill/robot.svg", + "/assets/fill/rocket.js", + "/assets/fill/rocket.svg", + "/assets/fill/safety-certificate.js", + "/assets/fill/safety-certificate.svg", + "/assets/fill/save.js", + "/assets/fill/save.svg", + "/assets/fill/schedule.js", + "/assets/fill/schedule.svg", + "/assets/fill/security-scan.js", + "/assets/fill/security-scan.svg", + "/assets/fill/setting.js", + "/assets/fill/setting.svg", + "/assets/fill/shop.js", + "/assets/fill/shop.svg", + "/assets/fill/shopping.js", + "/assets/fill/shopping.svg", + "/assets/fill/signal.js", + "/assets/fill/signal.svg", + "/assets/fill/sketch-circle.js", + "/assets/fill/sketch-circle.svg", + "/assets/fill/sketch-square.js", + "/assets/fill/sketch-square.svg", + "/assets/fill/skin.js", + "/assets/fill/skin.svg", + "/assets/fill/skype.js", + "/assets/fill/skype.svg", + "/assets/fill/slack-circle.js", + "/assets/fill/slack-circle.svg", + "/assets/fill/slack-square.js", + "/assets/fill/slack-square.svg", + "/assets/fill/sliders.js", + "/assets/fill/sliders.svg", + "/assets/fill/smile.js", + "/assets/fill/smile.svg", + "/assets/fill/snippets.js", + "/assets/fill/snippets.svg", + "/assets/fill/sound.js", + "/assets/fill/sound.svg", + "/assets/fill/star.js", + "/assets/fill/star.svg", + "/assets/fill/step-backward.js", + "/assets/fill/step-backward.svg", + "/assets/fill/step-forward.js", + "/assets/fill/step-forward.svg", + "/assets/fill/stop.js", + "/assets/fill/stop.svg", + "/assets/fill/switcher.js", + "/assets/fill/switcher.svg", + "/assets/fill/tablet.js", + "/assets/fill/tablet.svg", + "/assets/fill/tag.js", + "/assets/fill/tag.svg", + "/assets/fill/tags.js", + "/assets/fill/tags.svg", + "/assets/fill/taobao-circle.js", + "/assets/fill/taobao-circle.svg", + "/assets/fill/taobao-square.js", + "/assets/fill/taobao-square.svg", + "/assets/fill/thunderbolt.js", + "/assets/fill/thunderbolt.svg", + "/assets/fill/tool.js", + "/assets/fill/tool.svg", + "/assets/fill/trademark-circle.js", + "/assets/fill/trademark-circle.svg", + "/assets/fill/trophy.js", + "/assets/fill/trophy.svg", + "/assets/fill/twitter-circle.js", + "/assets/fill/twitter-circle.svg", + "/assets/fill/twitter-square.js", + "/assets/fill/twitter-square.svg", + "/assets/fill/unlock.js", + "/assets/fill/unlock.svg", + "/assets/fill/up-circle.js", + "/assets/fill/up-circle.svg", + "/assets/fill/up-square.js", + "/assets/fill/up-square.svg", + "/assets/fill/usb.js", + "/assets/fill/usb.svg", + "/assets/fill/video-camera.js", + "/assets/fill/video-camera.svg", + "/assets/fill/wallet.js", + "/assets/fill/wallet.svg", + "/assets/fill/warning.js", + "/assets/fill/warning.svg", + "/assets/fill/wechat.js", + "/assets/fill/wechat.svg", + "/assets/fill/weibo-circle.js", + "/assets/fill/weibo-circle.svg", + "/assets/fill/weibo-square.js", + "/assets/fill/weibo-square.svg", + "/assets/fill/windows.js", + "/assets/fill/windows.svg", + "/assets/fill/yahoo.js", + "/assets/fill/yahoo.svg", + "/assets/fill/youtube.js", + "/assets/fill/youtube.svg", + "/assets/fill/yuque.js", + "/assets/fill/yuque.svg", + "/assets/fill/zhihu-circle.js", + "/assets/fill/zhihu-circle.svg", + "/assets/fill/zhihu-square.js", + "/assets/fill/zhihu-square.svg", + "/assets/icons/icon-128x128.png", + "/assets/icons/icon-144x144.png", + "/assets/icons/icon-152x152.png", + "/assets/icons/icon-192x192.png", + "/assets/icons/icon-384x384.png", + "/assets/icons/icon-512x512.png", + "/assets/icons/icon-72x72.png", + "/assets/icons/icon-96x96.png", + "/assets/images/bili-404.png", + "/assets/images/logo.png", + "/assets/outline/.gitkeep", + "/assets/outline/account-book.js", + "/assets/outline/account-book.svg", + "/assets/outline/aim.js", + "/assets/outline/aim.svg", + "/assets/outline/alert.js", + "/assets/outline/alert.svg", + "/assets/outline/alibaba.js", + "/assets/outline/alibaba.svg", + "/assets/outline/align-center.js", + "/assets/outline/align-center.svg", + "/assets/outline/align-left.js", + "/assets/outline/align-left.svg", + "/assets/outline/align-right.js", + "/assets/outline/align-right.svg", + "/assets/outline/alipay-circle.js", + "/assets/outline/alipay-circle.svg", + "/assets/outline/alipay.js", + "/assets/outline/alipay.svg", + "/assets/outline/aliwangwang.js", + "/assets/outline/aliwangwang.svg", + "/assets/outline/aliyun.js", + "/assets/outline/aliyun.svg", + "/assets/outline/amazon.js", + "/assets/outline/amazon.svg", + "/assets/outline/android.js", + "/assets/outline/android.svg", + "/assets/outline/ant-cloud.js", + "/assets/outline/ant-cloud.svg", + "/assets/outline/ant-design.js", + "/assets/outline/ant-design.svg", + "/assets/outline/apartment.js", + "/assets/outline/apartment.svg", + "/assets/outline/api.js", + "/assets/outline/api.svg", + "/assets/outline/apple.js", + "/assets/outline/apple.svg", + "/assets/outline/appstore-add.js", + "/assets/outline/appstore-add.svg", + "/assets/outline/appstore.js", + "/assets/outline/appstore.svg", + "/assets/outline/area-chart.js", + "/assets/outline/area-chart.svg", + "/assets/outline/arrow-down.js", + "/assets/outline/arrow-down.svg", + "/assets/outline/arrow-left.js", + "/assets/outline/arrow-left.svg", + "/assets/outline/arrow-right.js", + "/assets/outline/arrow-right.svg", + "/assets/outline/arrow-up.js", + "/assets/outline/arrow-up.svg", + "/assets/outline/arrows-alt.js", + "/assets/outline/arrows-alt.svg", + "/assets/outline/audio-muted.js", + "/assets/outline/audio-muted.svg", + "/assets/outline/audio.js", + "/assets/outline/audio.svg", + "/assets/outline/audit.js", + "/assets/outline/audit.svg", + "/assets/outline/backward.js", + "/assets/outline/backward.svg", + "/assets/outline/bank.js", + "/assets/outline/bank.svg", + "/assets/outline/bar-chart.js", + "/assets/outline/bar-chart.svg", + "/assets/outline/barcode.js", + "/assets/outline/barcode.svg", + "/assets/outline/bars.js", + "/assets/outline/bars.svg", + "/assets/outline/behance-square.js", + "/assets/outline/behance-square.svg", + "/assets/outline/behance.js", + "/assets/outline/behance.svg", + "/assets/outline/bell.js", + "/assets/outline/bell.svg", + "/assets/outline/bg-colors.js", + "/assets/outline/bg-colors.svg", + "/assets/outline/block.js", + "/assets/outline/block.svg", + "/assets/outline/bold.js", + "/assets/outline/bold.svg", + "/assets/outline/book.js", + "/assets/outline/book.svg", + "/assets/outline/border-bottom.js", + "/assets/outline/border-bottom.svg", + "/assets/outline/border-horizontal.js", + "/assets/outline/border-horizontal.svg", + "/assets/outline/border-inner.js", + "/assets/outline/border-inner.svg", + "/assets/outline/border-left.js", + "/assets/outline/border-left.svg", + "/assets/outline/border-outer.js", + "/assets/outline/border-outer.svg", + "/assets/outline/border-right.js", + "/assets/outline/border-right.svg", + "/assets/outline/border-top.js", + "/assets/outline/border-top.svg", + "/assets/outline/border-verticle.js", + "/assets/outline/border-verticle.svg", + "/assets/outline/border.js", + "/assets/outline/border.svg", + "/assets/outline/borderless-table.js", + "/assets/outline/borderless-table.svg", + "/assets/outline/box-plot.js", + "/assets/outline/box-plot.svg", + "/assets/outline/branches.js", + "/assets/outline/branches.svg", + "/assets/outline/bug.js", + "/assets/outline/bug.svg", + "/assets/outline/build.js", + "/assets/outline/build.svg", + "/assets/outline/bulb.js", + "/assets/outline/bulb.svg", + "/assets/outline/calculator.js", + "/assets/outline/calculator.svg", + "/assets/outline/calendar.js", + "/assets/outline/calendar.svg", + "/assets/outline/camera.js", + "/assets/outline/camera.svg", + "/assets/outline/car.js", + "/assets/outline/car.svg", + "/assets/outline/caret-down.js", + "/assets/outline/caret-down.svg", + "/assets/outline/caret-left.js", + "/assets/outline/caret-left.svg", + "/assets/outline/caret-right.js", + "/assets/outline/caret-right.svg", + "/assets/outline/caret-up.js", + "/assets/outline/caret-up.svg", + "/assets/outline/carry-out.js", + "/assets/outline/carry-out.svg", + "/assets/outline/check-circle.js", + "/assets/outline/check-circle.svg", + "/assets/outline/check-square.js", + "/assets/outline/check-square.svg", + "/assets/outline/check.js", + "/assets/outline/check.svg", + "/assets/outline/chrome.js", + "/assets/outline/chrome.svg", + "/assets/outline/ci-circle.js", + "/assets/outline/ci-circle.svg", + "/assets/outline/ci.js", + "/assets/outline/ci.svg", + "/assets/outline/clear.js", + "/assets/outline/clear.svg", + "/assets/outline/clock-circle.js", + "/assets/outline/clock-circle.svg", + "/assets/outline/close-circle.js", + "/assets/outline/close-circle.svg", + "/assets/outline/close-square.js", + "/assets/outline/close-square.svg", + "/assets/outline/close.js", + "/assets/outline/close.svg", + "/assets/outline/cloud-download.js", + "/assets/outline/cloud-download.svg", + "/assets/outline/cloud-server.js", + "/assets/outline/cloud-server.svg", + "/assets/outline/cloud-sync.js", + "/assets/outline/cloud-sync.svg", + "/assets/outline/cloud-upload.js", + "/assets/outline/cloud-upload.svg", + "/assets/outline/cloud.js", + "/assets/outline/cloud.svg", + "/assets/outline/cluster.js", + "/assets/outline/cluster.svg", + "/assets/outline/code-sandbox.js", + "/assets/outline/code-sandbox.svg", + "/assets/outline/code.js", + "/assets/outline/code.svg", + "/assets/outline/codepen-circle.js", + "/assets/outline/codepen-circle.svg", + "/assets/outline/codepen.js", + "/assets/outline/codepen.svg", + "/assets/outline/coffee.js", + "/assets/outline/coffee.svg", + "/assets/outline/column-height.js", + "/assets/outline/column-height.svg", + "/assets/outline/column-width.js", + "/assets/outline/column-width.svg", + "/assets/outline/comment.js", + "/assets/outline/comment.svg", + "/assets/outline/compass.js", + "/assets/outline/compass.svg", + "/assets/outline/compress.js", + "/assets/outline/compress.svg", + "/assets/outline/console-sql.js", + "/assets/outline/console-sql.svg", + "/assets/outline/contacts.js", + "/assets/outline/contacts.svg", + "/assets/outline/container.js", + "/assets/outline/container.svg", + "/assets/outline/control.js", + "/assets/outline/control.svg", + "/assets/outline/copy.js", + "/assets/outline/copy.svg", + "/assets/outline/copyright-circle.js", + "/assets/outline/copyright-circle.svg", + "/assets/outline/copyright.js", + "/assets/outline/copyright.svg", + "/assets/outline/credit-card.js", + "/assets/outline/credit-card.svg", + "/assets/outline/crown.js", + "/assets/outline/crown.svg", + "/assets/outline/customer-service.js", + "/assets/outline/customer-service.svg", + "/assets/outline/dash.js", + "/assets/outline/dash.svg", + "/assets/outline/dashboard.js", + "/assets/outline/dashboard.svg", + "/assets/outline/database.js", + "/assets/outline/database.svg", + "/assets/outline/delete-column.js", + "/assets/outline/delete-column.svg", + "/assets/outline/delete-row.js", + "/assets/outline/delete-row.svg", + "/assets/outline/delete.js", + "/assets/outline/delete.svg", + "/assets/outline/delivered-procedure.js", + "/assets/outline/delivered-procedure.svg", + "/assets/outline/deployment-unit.js", + "/assets/outline/deployment-unit.svg", + "/assets/outline/desktop.js", + "/assets/outline/desktop.svg", + "/assets/outline/diff.js", + "/assets/outline/diff.svg", + "/assets/outline/dingding.js", + "/assets/outline/dingding.svg", + "/assets/outline/dingtalk.js", + "/assets/outline/dingtalk.svg", + "/assets/outline/disconnect.js", + "/assets/outline/disconnect.svg", + "/assets/outline/dislike.js", + "/assets/outline/dislike.svg", + "/assets/outline/dollar-circle.js", + "/assets/outline/dollar-circle.svg", + "/assets/outline/dollar.js", + "/assets/outline/dollar.svg", + "/assets/outline/dot-chart.js", + "/assets/outline/dot-chart.svg", + "/assets/outline/double-left.js", + "/assets/outline/double-left.svg", + "/assets/outline/double-right.js", + "/assets/outline/double-right.svg", + "/assets/outline/down-circle.js", + "/assets/outline/down-circle.svg", + "/assets/outline/down-square.js", + "/assets/outline/down-square.svg", + "/assets/outline/down.js", + "/assets/outline/down.svg", + "/assets/outline/download.js", + "/assets/outline/download.svg", + "/assets/outline/drag.js", + "/assets/outline/drag.svg", + "/assets/outline/dribbble-square.js", + "/assets/outline/dribbble-square.svg", + "/assets/outline/dribbble.js", + "/assets/outline/dribbble.svg", + "/assets/outline/dropbox.js", + "/assets/outline/dropbox.svg", + "/assets/outline/edit.js", + "/assets/outline/edit.svg", + "/assets/outline/ellipsis.js", + "/assets/outline/ellipsis.svg", + "/assets/outline/enter.js", + "/assets/outline/enter.svg", + "/assets/outline/environment.js", + "/assets/outline/environment.svg", + "/assets/outline/euro-circle.js", + "/assets/outline/euro-circle.svg", + "/assets/outline/euro.js", + "/assets/outline/euro.svg", + "/assets/outline/exception.js", + "/assets/outline/exception.svg", + "/assets/outline/exclamation-circle.js", + "/assets/outline/exclamation-circle.svg", + "/assets/outline/exclamation.js", + "/assets/outline/exclamation.svg", + "/assets/outline/expand-alt.js", + "/assets/outline/expand-alt.svg", + "/assets/outline/expand.js", + "/assets/outline/expand.svg", + "/assets/outline/experiment.js", + "/assets/outline/experiment.svg", + "/assets/outline/export.js", + "/assets/outline/export.svg", + "/assets/outline/eye-invisible.js", + "/assets/outline/eye-invisible.svg", + "/assets/outline/eye.js", + "/assets/outline/eye.svg", + "/assets/outline/facebook.js", + "/assets/outline/facebook.svg", + "/assets/outline/fall.js", + "/assets/outline/fall.svg", + "/assets/outline/fast-backward.js", + "/assets/outline/fast-backward.svg", + "/assets/outline/fast-forward.js", + "/assets/outline/fast-forward.svg", + "/assets/outline/field-binary.js", + "/assets/outline/field-binary.svg", + "/assets/outline/field-number.js", + "/assets/outline/field-number.svg", + "/assets/outline/field-string.js", + "/assets/outline/field-string.svg", + "/assets/outline/field-time.js", + "/assets/outline/field-time.svg", + "/assets/outline/file-add.js", + "/assets/outline/file-add.svg", + "/assets/outline/file-done.js", + "/assets/outline/file-done.svg", + "/assets/outline/file-excel.js", + "/assets/outline/file-excel.svg", + "/assets/outline/file-exclamation.js", + "/assets/outline/file-exclamation.svg", + "/assets/outline/file-gif.js", + "/assets/outline/file-gif.svg", + "/assets/outline/file-image.js", + "/assets/outline/file-image.svg", + "/assets/outline/file-jpg.js", + "/assets/outline/file-jpg.svg", + "/assets/outline/file-markdown.js", + "/assets/outline/file-markdown.svg", + "/assets/outline/file-pdf.js", + "/assets/outline/file-pdf.svg", + "/assets/outline/file-ppt.js", + "/assets/outline/file-ppt.svg", + "/assets/outline/file-protect.js", + "/assets/outline/file-protect.svg", + "/assets/outline/file-search.js", + "/assets/outline/file-search.svg", + "/assets/outline/file-sync.js", + "/assets/outline/file-sync.svg", + "/assets/outline/file-text.js", + "/assets/outline/file-text.svg", + "/assets/outline/file-unknown.js", + "/assets/outline/file-unknown.svg", + "/assets/outline/file-word.js", + "/assets/outline/file-word.svg", + "/assets/outline/file-zip.js", + "/assets/outline/file-zip.svg", + "/assets/outline/file.js", + "/assets/outline/file.svg", + "/assets/outline/filter.js", + "/assets/outline/filter.svg", + "/assets/outline/fire.js", + "/assets/outline/fire.svg", + "/assets/outline/flag.js", + "/assets/outline/flag.svg", + "/assets/outline/folder-add.js", + "/assets/outline/folder-add.svg", + "/assets/outline/folder-open.js", + "/assets/outline/folder-open.svg", + "/assets/outline/folder-view.js", + "/assets/outline/folder-view.svg", + "/assets/outline/folder.js", + "/assets/outline/folder.svg", + "/assets/outline/font-colors.js", + "/assets/outline/font-colors.svg", + "/assets/outline/font-size.js", + "/assets/outline/font-size.svg", + "/assets/outline/fork.js", + "/assets/outline/fork.svg", + "/assets/outline/form.js", + "/assets/outline/form.svg", + "/assets/outline/format-painter.js", + "/assets/outline/format-painter.svg", + "/assets/outline/forward.js", + "/assets/outline/forward.svg", + "/assets/outline/frown.js", + "/assets/outline/frown.svg", + "/assets/outline/fullscreen-exit.js", + "/assets/outline/fullscreen-exit.svg", + "/assets/outline/fullscreen.js", + "/assets/outline/fullscreen.svg", + "/assets/outline/function.js", + "/assets/outline/function.svg", + "/assets/outline/fund-projection-screen.js", + "/assets/outline/fund-projection-screen.svg", + "/assets/outline/fund-view.js", + "/assets/outline/fund-view.svg", + "/assets/outline/fund.js", + "/assets/outline/fund.svg", + "/assets/outline/funnel-plot.js", + "/assets/outline/funnel-plot.svg", + "/assets/outline/gateway.js", + "/assets/outline/gateway.svg", + "/assets/outline/gif.js", + "/assets/outline/gif.svg", + "/assets/outline/gift.js", + "/assets/outline/gift.svg", + "/assets/outline/github.js", + "/assets/outline/github.svg", + "/assets/outline/gitlab.js", + "/assets/outline/gitlab.svg", + "/assets/outline/global.js", + "/assets/outline/global.svg", + "/assets/outline/gold.js", + "/assets/outline/gold.svg", + "/assets/outline/google-plus.js", + "/assets/outline/google-plus.svg", + "/assets/outline/google.js", + "/assets/outline/google.svg", + "/assets/outline/group.js", + "/assets/outline/group.svg", + "/assets/outline/hdd.js", + "/assets/outline/hdd.svg", + "/assets/outline/heart.js", + "/assets/outline/heart.svg", + "/assets/outline/heat-map.js", + "/assets/outline/heat-map.svg", + "/assets/outline/highlight.js", + "/assets/outline/highlight.svg", + "/assets/outline/history.js", + "/assets/outline/history.svg", + "/assets/outline/home.js", + "/assets/outline/home.svg", + "/assets/outline/hourglass.js", + "/assets/outline/hourglass.svg", + "/assets/outline/html5.js", + "/assets/outline/html5.svg", + "/assets/outline/idcard.js", + "/assets/outline/idcard.svg", + "/assets/outline/ie.js", + "/assets/outline/ie.svg", + "/assets/outline/import.js", + "/assets/outline/import.svg", + "/assets/outline/inbox.js", + "/assets/outline/inbox.svg", + "/assets/outline/info-circle.js", + "/assets/outline/info-circle.svg", + "/assets/outline/info.js", + "/assets/outline/info.svg", + "/assets/outline/insert-row-above.js", + "/assets/outline/insert-row-above.svg", + "/assets/outline/insert-row-below.js", + "/assets/outline/insert-row-below.svg", + "/assets/outline/insert-row-left.js", + "/assets/outline/insert-row-left.svg", + "/assets/outline/insert-row-right.js", + "/assets/outline/insert-row-right.svg", + "/assets/outline/instagram.js", + "/assets/outline/instagram.svg", + "/assets/outline/insurance.js", + "/assets/outline/insurance.svg", + "/assets/outline/interaction.js", + "/assets/outline/interaction.svg", + "/assets/outline/issues-close.js", + "/assets/outline/issues-close.svg", + "/assets/outline/italic.js", + "/assets/outline/italic.svg", + "/assets/outline/key.js", + "/assets/outline/key.svg", + "/assets/outline/laptop.js", + "/assets/outline/laptop.svg", + "/assets/outline/layout.js", + "/assets/outline/layout.svg", + "/assets/outline/left-circle.js", + "/assets/outline/left-circle.svg", + "/assets/outline/left-square.js", + "/assets/outline/left-square.svg", + "/assets/outline/left.js", + "/assets/outline/left.svg", + "/assets/outline/like.js", + "/assets/outline/like.svg", + "/assets/outline/line-chart.js", + "/assets/outline/line-chart.svg", + "/assets/outline/line-height.js", + "/assets/outline/line-height.svg", + "/assets/outline/line.js", + "/assets/outline/line.svg", + "/assets/outline/link.js", + "/assets/outline/link.svg", + "/assets/outline/linkedin.js", + "/assets/outline/linkedin.svg", + "/assets/outline/loading-3-quarters.js", + "/assets/outline/loading-3-quarters.svg", + "/assets/outline/loading.js", + "/assets/outline/loading.svg", + "/assets/outline/lock.js", + "/assets/outline/lock.svg", + "/assets/outline/login.js", + "/assets/outline/login.svg", + "/assets/outline/logout.js", + "/assets/outline/logout.svg", + "/assets/outline/mac-command.js", + "/assets/outline/mac-command.svg", + "/assets/outline/mail.js", + "/assets/outline/mail.svg", + "/assets/outline/man.js", + "/assets/outline/man.svg", + "/assets/outline/medicine-box.js", + "/assets/outline/medicine-box.svg", + "/assets/outline/medium-workmark.js", + "/assets/outline/medium-workmark.svg", + "/assets/outline/medium.js", + "/assets/outline/medium.svg", + "/assets/outline/meh.js", + "/assets/outline/meh.svg", + "/assets/outline/menu-fold.js", + "/assets/outline/menu-fold.svg", + "/assets/outline/menu-unfold.js", + "/assets/outline/menu-unfold.svg", + "/assets/outline/menu.js", + "/assets/outline/menu.svg", + "/assets/outline/merge-cells.js", + "/assets/outline/merge-cells.svg", + "/assets/outline/message.js", + "/assets/outline/message.svg", + "/assets/outline/minus-circle.js", + "/assets/outline/minus-circle.svg", + "/assets/outline/minus-square.js", + "/assets/outline/minus-square.svg", + "/assets/outline/minus.js", + "/assets/outline/minus.svg", + "/assets/outline/mobile.js", + "/assets/outline/mobile.svg", + "/assets/outline/money-collect.js", + "/assets/outline/money-collect.svg", + "/assets/outline/monitor.js", + "/assets/outline/monitor.svg", + "/assets/outline/more.js", + "/assets/outline/more.svg", + "/assets/outline/node-collapse.js", + "/assets/outline/node-collapse.svg", + "/assets/outline/node-expand.js", + "/assets/outline/node-expand.svg", + "/assets/outline/node-index.js", + "/assets/outline/node-index.svg", + "/assets/outline/notification.js", + "/assets/outline/notification.svg", + "/assets/outline/number.js", + "/assets/outline/number.svg", + "/assets/outline/one-to-one.js", + "/assets/outline/one-to-one.svg", + "/assets/outline/ordered-list.js", + "/assets/outline/ordered-list.svg", + "/assets/outline/paper-clip.js", + "/assets/outline/paper-clip.svg", + "/assets/outline/partition.js", + "/assets/outline/partition.svg", + "/assets/outline/pause-circle.js", + "/assets/outline/pause-circle.svg", + "/assets/outline/pause.js", + "/assets/outline/pause.svg", + "/assets/outline/pay-circle.js", + "/assets/outline/pay-circle.svg", + "/assets/outline/percentage.js", + "/assets/outline/percentage.svg", + "/assets/outline/phone.js", + "/assets/outline/phone.svg", + "/assets/outline/pic-center.js", + "/assets/outline/pic-center.svg", + "/assets/outline/pic-left.js", + "/assets/outline/pic-left.svg", + "/assets/outline/pic-right.js", + "/assets/outline/pic-right.svg", + "/assets/outline/picture.js", + "/assets/outline/picture.svg", + "/assets/outline/pie-chart.js", + "/assets/outline/pie-chart.svg", + "/assets/outline/play-circle.js", + "/assets/outline/play-circle.svg", + "/assets/outline/play-square.js", + "/assets/outline/play-square.svg", + "/assets/outline/plus-circle.js", + "/assets/outline/plus-circle.svg", + "/assets/outline/plus-square.js", + "/assets/outline/plus-square.svg", + "/assets/outline/plus.js", + "/assets/outline/plus.svg", + "/assets/outline/pound-circle.js", + "/assets/outline/pound-circle.svg", + "/assets/outline/pound.js", + "/assets/outline/pound.svg", + "/assets/outline/poweroff.js", + "/assets/outline/poweroff.svg", + "/assets/outline/printer.js", + "/assets/outline/printer.svg", + "/assets/outline/profile.js", + "/assets/outline/profile.svg", + "/assets/outline/project.js", + "/assets/outline/project.svg", + "/assets/outline/property-safety.js", + "/assets/outline/property-safety.svg", + "/assets/outline/pull-request.js", + "/assets/outline/pull-request.svg", + "/assets/outline/pushpin.js", + "/assets/outline/pushpin.svg", + "/assets/outline/qq.js", + "/assets/outline/qq.svg", + "/assets/outline/qrcode.js", + "/assets/outline/qrcode.svg", + "/assets/outline/question-circle.js", + "/assets/outline/question-circle.svg", + "/assets/outline/question.js", + "/assets/outline/question.svg", + "/assets/outline/radar-chart.js", + "/assets/outline/radar-chart.svg", + "/assets/outline/radius-bottomleft.js", + "/assets/outline/radius-bottomleft.svg", + "/assets/outline/radius-bottomright.js", + "/assets/outline/radius-bottomright.svg", + "/assets/outline/radius-setting.js", + "/assets/outline/radius-setting.svg", + "/assets/outline/radius-upleft.js", + "/assets/outline/radius-upleft.svg", + "/assets/outline/radius-upright.js", + "/assets/outline/radius-upright.svg", + "/assets/outline/read.js", + "/assets/outline/read.svg", + "/assets/outline/reconciliation.js", + "/assets/outline/reconciliation.svg", + "/assets/outline/red-envelope.js", + "/assets/outline/red-envelope.svg", + "/assets/outline/reddit.js", + "/assets/outline/reddit.svg", + "/assets/outline/redo.js", + "/assets/outline/redo.svg", + "/assets/outline/reload.js", + "/assets/outline/reload.svg", + "/assets/outline/rest.js", + "/assets/outline/rest.svg", + "/assets/outline/retweet.js", + "/assets/outline/retweet.svg", + "/assets/outline/right-circle.js", + "/assets/outline/right-circle.svg", + "/assets/outline/right-square.js", + "/assets/outline/right-square.svg", + "/assets/outline/right.js", + "/assets/outline/right.svg", + "/assets/outline/rise.js", + "/assets/outline/rise.svg", + "/assets/outline/robot.js", + "/assets/outline/robot.svg", + "/assets/outline/rocket.js", + "/assets/outline/rocket.svg", + "/assets/outline/rollback.js", + "/assets/outline/rollback.svg", + "/assets/outline/rotate-left.js", + "/assets/outline/rotate-left.svg", + "/assets/outline/rotate-right.js", + "/assets/outline/rotate-right.svg", + "/assets/outline/safety-certificate.js", + "/assets/outline/safety-certificate.svg", + "/assets/outline/safety.js", + "/assets/outline/safety.svg", + "/assets/outline/save.js", + "/assets/outline/save.svg", + "/assets/outline/scan.js", + "/assets/outline/scan.svg", + "/assets/outline/schedule.js", + "/assets/outline/schedule.svg", + "/assets/outline/scissor.js", + "/assets/outline/scissor.svg", + "/assets/outline/search.js", + "/assets/outline/search.svg", + "/assets/outline/security-scan.js", + "/assets/outline/security-scan.svg", + "/assets/outline/select.js", + "/assets/outline/select.svg", + "/assets/outline/send.js", + "/assets/outline/send.svg", + "/assets/outline/setting.js", + "/assets/outline/setting.svg", + "/assets/outline/shake.js", + "/assets/outline/shake.svg", + "/assets/outline/share-alt.js", + "/assets/outline/share-alt.svg", + "/assets/outline/shop.js", + "/assets/outline/shop.svg", + "/assets/outline/shopping-cart.js", + "/assets/outline/shopping-cart.svg", + "/assets/outline/shopping.js", + "/assets/outline/shopping.svg", + "/assets/outline/shrink.js", + "/assets/outline/shrink.svg", + "/assets/outline/sisternode.js", + "/assets/outline/sisternode.svg", + "/assets/outline/sketch.js", + "/assets/outline/sketch.svg", + "/assets/outline/skin.js", + "/assets/outline/skin.svg", + "/assets/outline/skype.js", + "/assets/outline/skype.svg", + "/assets/outline/slack-square.js", + "/assets/outline/slack-square.svg", + "/assets/outline/slack.js", + "/assets/outline/slack.svg", + "/assets/outline/sliders.js", + "/assets/outline/sliders.svg", + "/assets/outline/small-dash.js", + "/assets/outline/small-dash.svg", + "/assets/outline/smile.js", + "/assets/outline/smile.svg", + "/assets/outline/snippets.js", + "/assets/outline/snippets.svg", + "/assets/outline/solution.js", + "/assets/outline/solution.svg", + "/assets/outline/sort-ascending.js", + "/assets/outline/sort-ascending.svg", + "/assets/outline/sort-descending.js", + "/assets/outline/sort-descending.svg", + "/assets/outline/sound.js", + "/assets/outline/sound.svg", + "/assets/outline/split-cells.js", + "/assets/outline/split-cells.svg", + "/assets/outline/star.js", + "/assets/outline/star.svg", + "/assets/outline/step-backward.js", + "/assets/outline/step-backward.svg", + "/assets/outline/step-forward.js", + "/assets/outline/step-forward.svg", + "/assets/outline/stock.js", + "/assets/outline/stock.svg", + "/assets/outline/stop.js", + "/assets/outline/stop.svg", + "/assets/outline/strikethrough.js", + "/assets/outline/strikethrough.svg", + "/assets/outline/subnode.js", + "/assets/outline/subnode.svg", + "/assets/outline/swap-left.js", + "/assets/outline/swap-left.svg", + "/assets/outline/swap-right.js", + "/assets/outline/swap-right.svg", + "/assets/outline/swap.js", + "/assets/outline/swap.svg", + "/assets/outline/switcher.js", + "/assets/outline/switcher.svg", + "/assets/outline/sync.js", + "/assets/outline/sync.svg", + "/assets/outline/table.js", + "/assets/outline/table.svg", + "/assets/outline/tablet.js", + "/assets/outline/tablet.svg", + "/assets/outline/tag.js", + "/assets/outline/tag.svg", + "/assets/outline/tags.js", + "/assets/outline/tags.svg", + "/assets/outline/taobao-circle.js", + "/assets/outline/taobao-circle.svg", + "/assets/outline/taobao.js", + "/assets/outline/taobao.svg", + "/assets/outline/team.js", + "/assets/outline/team.svg", + "/assets/outline/thunderbolt.js", + "/assets/outline/thunderbolt.svg", + "/assets/outline/to-top.js", + "/assets/outline/to-top.svg", + "/assets/outline/tool.js", + "/assets/outline/tool.svg", + "/assets/outline/trademark-circle.js", + "/assets/outline/trademark-circle.svg", + "/assets/outline/trademark.js", + "/assets/outline/trademark.svg", + "/assets/outline/transaction.js", + "/assets/outline/transaction.svg", + "/assets/outline/translation.js", + "/assets/outline/translation.svg", + "/assets/outline/trophy.js", + "/assets/outline/trophy.svg", + "/assets/outline/twitter.js", + "/assets/outline/twitter.svg", + "/assets/outline/underline.js", + "/assets/outline/underline.svg", + "/assets/outline/undo.js", + "/assets/outline/undo.svg", + "/assets/outline/ungroup.js", + "/assets/outline/ungroup.svg", + "/assets/outline/unlock.js", + "/assets/outline/unlock.svg", + "/assets/outline/unordered-list.js", + "/assets/outline/unordered-list.svg", + "/assets/outline/up-circle.js", + "/assets/outline/up-circle.svg", + "/assets/outline/up-square.js", + "/assets/outline/up-square.svg", + "/assets/outline/up.js", + "/assets/outline/up.svg", + "/assets/outline/upload.js", + "/assets/outline/upload.svg", + "/assets/outline/usb.js", + "/assets/outline/usb.svg", + "/assets/outline/user-add.js", + "/assets/outline/user-add.svg", + "/assets/outline/user-delete.js", + "/assets/outline/user-delete.svg", + "/assets/outline/user-switch.js", + "/assets/outline/user-switch.svg", + "/assets/outline/user.js", + "/assets/outline/user.svg", + "/assets/outline/usergroup-add.js", + "/assets/outline/usergroup-add.svg", + "/assets/outline/usergroup-delete.js", + "/assets/outline/usergroup-delete.svg", + "/assets/outline/verified.js", + "/assets/outline/verified.svg", + "/assets/outline/vertical-align-bottom.js", + "/assets/outline/vertical-align-bottom.svg", + "/assets/outline/vertical-align-middle.js", + "/assets/outline/vertical-align-middle.svg", + "/assets/outline/vertical-align-top.js", + "/assets/outline/vertical-align-top.svg", + "/assets/outline/vertical-left.js", + "/assets/outline/vertical-left.svg", + "/assets/outline/vertical-right.js", + "/assets/outline/vertical-right.svg", + "/assets/outline/video-camera-add.js", + "/assets/outline/video-camera-add.svg", + "/assets/outline/video-camera.js", + "/assets/outline/video-camera.svg", + "/assets/outline/wallet.js", + "/assets/outline/wallet.svg", + "/assets/outline/warning.js", + "/assets/outline/warning.svg", + "/assets/outline/wechat.js", + "/assets/outline/wechat.svg", + "/assets/outline/weibo-circle.js", + "/assets/outline/weibo-circle.svg", + "/assets/outline/weibo-square.js", + "/assets/outline/weibo-square.svg", + "/assets/outline/weibo.js", + "/assets/outline/weibo.svg", + "/assets/outline/whats-app.js", + "/assets/outline/whats-app.svg", + "/assets/outline/wifi.js", + "/assets/outline/wifi.svg", + "/assets/outline/windows.js", + "/assets/outline/windows.svg", + "/assets/outline/woman.js", + "/assets/outline/woman.svg", + "/assets/outline/yahoo.js", + "/assets/outline/yahoo.svg", + "/assets/outline/youtube.js", + "/assets/outline/youtube.svg", + "/assets/outline/yuque.js", + "/assets/outline/yuque.svg", + "/assets/outline/zhihu.js", + "/assets/outline/zhihu.svg", + "/assets/outline/zoom-in.js", + "/assets/outline/zoom-in.svg", + "/assets/outline/zoom-out.js", + "/assets/outline/zoom-out.svg", + "/assets/twotone/.gitkeep", + "/assets/twotone/account-book.js", + "/assets/twotone/account-book.svg", + "/assets/twotone/alert.js", + "/assets/twotone/alert.svg", + "/assets/twotone/api.js", + "/assets/twotone/api.svg", + "/assets/twotone/appstore.js", + "/assets/twotone/appstore.svg", + "/assets/twotone/audio.js", + "/assets/twotone/audio.svg", + "/assets/twotone/bank.js", + "/assets/twotone/bank.svg", + "/assets/twotone/bell.js", + "/assets/twotone/bell.svg", + "/assets/twotone/book.js", + "/assets/twotone/book.svg", + "/assets/twotone/box-plot.js", + "/assets/twotone/box-plot.svg", + "/assets/twotone/bug.js", + "/assets/twotone/bug.svg", + "/assets/twotone/build.js", + "/assets/twotone/build.svg", + "/assets/twotone/bulb.js", + "/assets/twotone/bulb.svg", + "/assets/twotone/calculator.js", + "/assets/twotone/calculator.svg", + "/assets/twotone/calendar.js", + "/assets/twotone/calendar.svg", + "/assets/twotone/camera.js", + "/assets/twotone/camera.svg", + "/assets/twotone/car.js", + "/assets/twotone/car.svg", + "/assets/twotone/carry-out.js", + "/assets/twotone/carry-out.svg", + "/assets/twotone/check-circle.js", + "/assets/twotone/check-circle.svg", + "/assets/twotone/check-square.js", + "/assets/twotone/check-square.svg", + "/assets/twotone/ci-circle.js", + "/assets/twotone/ci-circle.svg", + "/assets/twotone/ci.js", + "/assets/twotone/ci.svg", + "/assets/twotone/clock-circle.js", + "/assets/twotone/clock-circle.svg", + "/assets/twotone/close-circle.js", + "/assets/twotone/close-circle.svg", + "/assets/twotone/close-square.js", + "/assets/twotone/close-square.svg", + "/assets/twotone/cloud.js", + "/assets/twotone/cloud.svg", + "/assets/twotone/code.js", + "/assets/twotone/code.svg", + "/assets/twotone/compass.js", + "/assets/twotone/compass.svg", + "/assets/twotone/contacts.js", + "/assets/twotone/contacts.svg", + "/assets/twotone/container.js", + "/assets/twotone/container.svg", + "/assets/twotone/control.js", + "/assets/twotone/control.svg", + "/assets/twotone/copy.js", + "/assets/twotone/copy.svg", + "/assets/twotone/copyright-circle.js", + "/assets/twotone/copyright-circle.svg", + "/assets/twotone/copyright.js", + "/assets/twotone/copyright.svg", + "/assets/twotone/credit-card.js", + "/assets/twotone/credit-card.svg", + "/assets/twotone/crown.js", + "/assets/twotone/crown.svg", + "/assets/twotone/customer-service.js", + "/assets/twotone/customer-service.svg", + "/assets/twotone/dashboard.js", + "/assets/twotone/dashboard.svg", + "/assets/twotone/database.js", + "/assets/twotone/database.svg", + "/assets/twotone/delete.js", + "/assets/twotone/delete.svg", + "/assets/twotone/diff.js", + "/assets/twotone/diff.svg", + "/assets/twotone/dislike.js", + "/assets/twotone/dislike.svg", + "/assets/twotone/dollar-circle.js", + "/assets/twotone/dollar-circle.svg", + "/assets/twotone/dollar.js", + "/assets/twotone/dollar.svg", + "/assets/twotone/down-circle.js", + "/assets/twotone/down-circle.svg", + "/assets/twotone/down-square.js", + "/assets/twotone/down-square.svg", + "/assets/twotone/edit.js", + "/assets/twotone/edit.svg", + "/assets/twotone/environment.js", + "/assets/twotone/environment.svg", + "/assets/twotone/euro-circle.js", + "/assets/twotone/euro-circle.svg", + "/assets/twotone/euro.js", + "/assets/twotone/euro.svg", + "/assets/twotone/exclamation-circle.js", + "/assets/twotone/exclamation-circle.svg", + "/assets/twotone/experiment.js", + "/assets/twotone/experiment.svg", + "/assets/twotone/eye-invisible.js", + "/assets/twotone/eye-invisible.svg", + "/assets/twotone/eye.js", + "/assets/twotone/eye.svg", + "/assets/twotone/file-add.js", + "/assets/twotone/file-add.svg", + "/assets/twotone/file-excel.js", + "/assets/twotone/file-excel.svg", + "/assets/twotone/file-exclamation.js", + "/assets/twotone/file-exclamation.svg", + "/assets/twotone/file-image.js", + "/assets/twotone/file-image.svg", + "/assets/twotone/file-markdown.js", + "/assets/twotone/file-markdown.svg", + "/assets/twotone/file-pdf.js", + "/assets/twotone/file-pdf.svg", + "/assets/twotone/file-ppt.js", + "/assets/twotone/file-ppt.svg", + "/assets/twotone/file-text.js", + "/assets/twotone/file-text.svg", + "/assets/twotone/file-unknown.js", + "/assets/twotone/file-unknown.svg", + "/assets/twotone/file-word.js", + "/assets/twotone/file-word.svg", + "/assets/twotone/file-zip.js", + "/assets/twotone/file-zip.svg", + "/assets/twotone/file.js", + "/assets/twotone/file.svg", + "/assets/twotone/filter.js", + "/assets/twotone/filter.svg", + "/assets/twotone/fire.js", + "/assets/twotone/fire.svg", + "/assets/twotone/flag.js", + "/assets/twotone/flag.svg", + "/assets/twotone/folder-add.js", + "/assets/twotone/folder-add.svg", + "/assets/twotone/folder-open.js", + "/assets/twotone/folder-open.svg", + "/assets/twotone/folder.js", + "/assets/twotone/folder.svg", + "/assets/twotone/frown.js", + "/assets/twotone/frown.svg", + "/assets/twotone/fund.js", + "/assets/twotone/fund.svg", + "/assets/twotone/funnel-plot.js", + "/assets/twotone/funnel-plot.svg", + "/assets/twotone/gift.js", + "/assets/twotone/gift.svg", + "/assets/twotone/gold.js", + "/assets/twotone/gold.svg", + "/assets/twotone/hdd.js", + "/assets/twotone/hdd.svg", + "/assets/twotone/heart.js", + "/assets/twotone/heart.svg", + "/assets/twotone/highlight.js", + "/assets/twotone/highlight.svg", + "/assets/twotone/home.js", + "/assets/twotone/home.svg", + "/assets/twotone/hourglass.js", + "/assets/twotone/hourglass.svg", + "/assets/twotone/html5.js", + "/assets/twotone/html5.svg", + "/assets/twotone/idcard.js", + "/assets/twotone/idcard.svg", + "/assets/twotone/info-circle.js", + "/assets/twotone/info-circle.svg", + "/assets/twotone/insurance.js", + "/assets/twotone/insurance.svg", + "/assets/twotone/interaction.js", + "/assets/twotone/interaction.svg", + "/assets/twotone/layout.js", + "/assets/twotone/layout.svg", + "/assets/twotone/left-circle.js", + "/assets/twotone/left-circle.svg", + "/assets/twotone/left-square.js", + "/assets/twotone/left-square.svg", + "/assets/twotone/like.js", + "/assets/twotone/like.svg", + "/assets/twotone/lock.js", + "/assets/twotone/lock.svg", + "/assets/twotone/mail.js", + "/assets/twotone/mail.svg", + "/assets/twotone/medicine-box.js", + "/assets/twotone/medicine-box.svg", + "/assets/twotone/meh.js", + "/assets/twotone/meh.svg", + "/assets/twotone/message.js", + "/assets/twotone/message.svg", + "/assets/twotone/minus-circle.js", + "/assets/twotone/minus-circle.svg", + "/assets/twotone/minus-square.js", + "/assets/twotone/minus-square.svg", + "/assets/twotone/mobile.js", + "/assets/twotone/mobile.svg", + "/assets/twotone/money-collect.js", + "/assets/twotone/money-collect.svg", + "/assets/twotone/notification.js", + "/assets/twotone/notification.svg", + "/assets/twotone/pause-circle.js", + "/assets/twotone/pause-circle.svg", + "/assets/twotone/phone.js", + "/assets/twotone/phone.svg", + "/assets/twotone/picture.js", + "/assets/twotone/picture.svg", + "/assets/twotone/pie-chart.js", + "/assets/twotone/pie-chart.svg", + "/assets/twotone/play-circle.js", + "/assets/twotone/play-circle.svg", + "/assets/twotone/play-square.js", + "/assets/twotone/play-square.svg", + "/assets/twotone/plus-circle.js", + "/assets/twotone/plus-circle.svg", + "/assets/twotone/plus-square.js", + "/assets/twotone/plus-square.svg", + "/assets/twotone/pound-circle.js", + "/assets/twotone/pound-circle.svg", + "/assets/twotone/printer.js", + "/assets/twotone/printer.svg", + "/assets/twotone/profile.js", + "/assets/twotone/profile.svg", + "/assets/twotone/project.js", + "/assets/twotone/project.svg", + "/assets/twotone/property-safety.js", + "/assets/twotone/property-safety.svg", + "/assets/twotone/pushpin.js", + "/assets/twotone/pushpin.svg", + "/assets/twotone/question-circle.js", + "/assets/twotone/question-circle.svg", + "/assets/twotone/reconciliation.js", + "/assets/twotone/reconciliation.svg", + "/assets/twotone/red-envelope.js", + "/assets/twotone/red-envelope.svg", + "/assets/twotone/rest.js", + "/assets/twotone/rest.svg", + "/assets/twotone/right-circle.js", + "/assets/twotone/right-circle.svg", + "/assets/twotone/right-square.js", + "/assets/twotone/right-square.svg", + "/assets/twotone/rocket.js", + "/assets/twotone/rocket.svg", + "/assets/twotone/safety-certificate.js", + "/assets/twotone/safety-certificate.svg", + "/assets/twotone/save.js", + "/assets/twotone/save.svg", + "/assets/twotone/schedule.js", + "/assets/twotone/schedule.svg", + "/assets/twotone/security-scan.js", + "/assets/twotone/security-scan.svg", + "/assets/twotone/setting.js", + "/assets/twotone/setting.svg", + "/assets/twotone/shop.js", + "/assets/twotone/shop.svg", + "/assets/twotone/shopping.js", + "/assets/twotone/shopping.svg", + "/assets/twotone/skin.js", + "/assets/twotone/skin.svg", + "/assets/twotone/sliders.js", + "/assets/twotone/sliders.svg", + "/assets/twotone/smile.js", + "/assets/twotone/smile.svg", + "/assets/twotone/snippets.js", + "/assets/twotone/snippets.svg", + "/assets/twotone/sound.js", + "/assets/twotone/sound.svg", + "/assets/twotone/star.js", + "/assets/twotone/star.svg", + "/assets/twotone/stop.js", + "/assets/twotone/stop.svg", + "/assets/twotone/switcher.js", + "/assets/twotone/switcher.svg", + "/assets/twotone/tablet.js", + "/assets/twotone/tablet.svg", + "/assets/twotone/tag.js", + "/assets/twotone/tag.svg", + "/assets/twotone/tags.js", + "/assets/twotone/tags.svg", + "/assets/twotone/thunderbolt.js", + "/assets/twotone/thunderbolt.svg", + "/assets/twotone/tool.js", + "/assets/twotone/tool.svg", + "/assets/twotone/trademark-circle.js", + "/assets/twotone/trademark-circle.svg", + "/assets/twotone/trophy.js", + "/assets/twotone/trophy.svg", + "/assets/twotone/unlock.js", + "/assets/twotone/unlock.svg", + "/assets/twotone/up-circle.js", + "/assets/twotone/up-circle.svg", + "/assets/twotone/up-square.js", + "/assets/twotone/up-square.svg", + "/assets/twotone/usb.js", + "/assets/twotone/usb.svg", + "/assets/twotone/video-camera.js", + "/assets/twotone/video-camera.svg", + "/assets/twotone/wallet.js", + "/assets/twotone/wallet.svg", + "/assets/twotone/warning.js", + "/assets/twotone/warning.svg" + ], + "patterns": [] + } + ], + "dataGroups": [], + "hashTable": { + "/198.20d927ba29c55516dd2e.js": "93bf87b6cc89e0a67c508c5c232d50d73c659057", + "/51.560338ef5c3689b822f9.js": "c31964ceca4ec203c3a60de2e75667ac4bfd5528", + "/659.4923e830b3feb2abcce2.js": "e74b2b9b53cd108ab7e91f765ca0926c42b3fd1f", + "/80.78cb9b41766e5c57d657.js": "ae52bd0e9cf819763e1f843ead3fb5adc10afffa", + "/954.05cbcc74da25eb3ef2a9.js": "38c071c377d3a6d98902e679340d6a609996b717", + "/assets/animal/panda.js": "fec2868bb3053dd2da45f96bbcb86d5116ed72b1", + "/assets/animal/panda.svg": "bebd302cdc601e0ead3a6d2710acf8753f3d83b1", + "/assets/fill/.gitkeep": "da39a3ee5e6b4b0d3255bfef95601890afd80709", + "/assets/fill/account-book.js": "c6a2adc0b81ab28492ec9eb07dcefb44e1a896b2", + "/assets/fill/account-book.svg": "3c24bb718d26ae9ab6faf5f846e5c556eadcd5b9", + "/assets/fill/alert.js": "198c5c59155e52985f6ff9114e8e02b5bf01c00c", + "/assets/fill/alert.svg": "ce732f4717076d6827a709aac4a37a3a333f334c", + "/assets/fill/alipay-circle.js": "305a90a8c8934c7058f24ae28e1fae897bd36dde", + "/assets/fill/alipay-circle.svg": "5978e11e6e755600c4c4f233973b4e5d6ad907ce", + "/assets/fill/alipay-square.js": "d655b94082d8af272c22b596e0f4e00331010d0d", + "/assets/fill/alipay-square.svg": "16c46e2c097c8cdde0448c43639431eeccc518bd", + "/assets/fill/aliwangwang.js": "a6fef2c72cf8382cba2914a8bf96fceee2ba011b", + "/assets/fill/aliwangwang.svg": "14ca67950f8cea0cd2e5ea0767941ecf2e32a6a1", + "/assets/fill/amazon-circle.js": "060b4e849ea05c12bd16a7fba40429bcb79ec4f1", + "/assets/fill/amazon-circle.svg": "039cf26ea4d8bd002b88a174ecc2a153f62c7ede", + "/assets/fill/amazon-square.js": "4c15239d4889db9ad4bd5b144f4ae7370b0d4be6", + "/assets/fill/amazon-square.svg": "7e2dbf26a773704219420031df5ac0bef809d3c5", + "/assets/fill/android.js": "ee09ecf95f6c1527e9b7ff2e6284e99245840d9f", + "/assets/fill/android.svg": "25eca787601bbe0bdbeb8e063084cb6d6abba56a", + "/assets/fill/api.js": "ff87374b651e5879fa69dbad2b112fb59fec8d68", + "/assets/fill/api.svg": "65adb34f510ee545175e1501267f55a4d529406b", + "/assets/fill/apple.js": "edd8eb4bef5e04062953040eb760f7487a92de85", + "/assets/fill/apple.svg": "46bd8d8d4922fcd56d49f091e78020c2eeb8c509", + "/assets/fill/appstore.js": "a1e2d70f68768b8a020c1476960ba41a335143f1", + "/assets/fill/appstore.svg": "dde6807db7b86b6eca678628497c0e036c69c289", + "/assets/fill/audio.js": "427fc84e9e6bd6be40693e0aa84998c3bfe0ce8c", + "/assets/fill/audio.svg": "24b251c264db8232a5cce826af79fe45c6f13614", + "/assets/fill/backward.js": "ccb19dfdbd0dd22e47af3021514c973f14b02a4f", + "/assets/fill/backward.svg": "210affe174d92a1721b016100c36e472b3bbb6f3", + "/assets/fill/bank.js": "da99476afd22c5d1f12b3a76c7d1df36df7357b2", + "/assets/fill/bank.svg": "56f897f09f31522c6f6dd21efdfdf7344d1eca09", + "/assets/fill/behance-circle.js": "c0e951405b3b06421e3b05ae1af55757c7e45340", + "/assets/fill/behance-circle.svg": "da876f512b82052c12325726e349c9f7a6e94069", + "/assets/fill/behance-square.js": "fe4c97be254eec9c249b85e682fadb3c11f39361", + "/assets/fill/behance-square.svg": "73712866d6ad8970a374f197d789c666c485f11d", + "/assets/fill/bell.js": "1e68efa330c0d5b77dfe02a67ee4ef21b5864a98", + "/assets/fill/bell.svg": "278bbd8a389ef1a638ad71406ffa60170a69ab93", + "/assets/fill/book.js": "88038b56e2d73fe99fa293aec4b4cd96ff810015", + "/assets/fill/book.svg": "de560e23bdddb2bc3adcf462db4fa2b64ef85670", + "/assets/fill/box-plot.js": "4836bc21231a7d3b29448cb5a7d64d3badca5557", + "/assets/fill/box-plot.svg": "26c67f4ed059565c877d10c1f7498ea639f986c5", + "/assets/fill/bug.js": "c8fd83a0b717570230dfe90cdc6f65bbd1c6611d", + "/assets/fill/bug.svg": "6bd17d250691673a0a81aece33e89607e961f82e", + "/assets/fill/build.js": "3acf4d27a665ab06ed25ba1a8cd18215bf4f9769", + "/assets/fill/build.svg": "fde04b09ee5cf0f5e5d95943bb62ee665521f7c2", + "/assets/fill/bulb.js": "0e21fa42dc4b36832dadcd9e9d73bc5707273e0c", + "/assets/fill/bulb.svg": "2ece21b8d974adcfc4c494c0dbc3de5e5fbe2b0e", + "/assets/fill/calculator.js": "8359890f720b8018df6d6c30be115fc4013d7b99", + "/assets/fill/calculator.svg": "31f90a286d494e7fd9777ff98159bc9d755df563", + "/assets/fill/calendar.js": "c59bc0eeb8fcd6dbc2ddb527c4481231e89a37d3", + "/assets/fill/calendar.svg": "8a924d2502163f87c40f5d450643901f1692b037", + "/assets/fill/camera.js": "7c93bed4f1de5bd4833745eecd81d79e57add2f9", + "/assets/fill/camera.svg": "17f94146e59933cb7237618e7da94a9023165da7", + "/assets/fill/car.js": "c589f2f4b9633eacc9ce6612201698fdc64a2d40", + "/assets/fill/car.svg": "f6e37e2a2dec5c4bf86e259ef66c9dd6c82b9ba8", + "/assets/fill/caret-down.js": "79eced75afcf876a1b6278167f8c674ea540ba77", + "/assets/fill/caret-down.svg": "50bd0aa2b17526454555b423578953936b4bd096", + "/assets/fill/caret-left.js": "15ee530cf7a5e4eaf2ea82f24a827fbd2c55144c", + "/assets/fill/caret-left.svg": "3ca7e4d837441a7c5b9008433ef5c345f1800985", + "/assets/fill/caret-right.js": "c05045d5b99e9e7b82475bd4b92774c37c8ed157", + "/assets/fill/caret-right.svg": "cde3b6f36cdb19c552931b675a65377fb91e2fac", + "/assets/fill/caret-up.js": "2fa5035f0790bfd1cc6af564fe4d66b664fb26cf", + "/assets/fill/caret-up.svg": "c1e849b5119c7ed0a637a1405277ce02469986a6", + "/assets/fill/carry-out.js": "64993a52e0f37890e1babccf1bc16b37e3a0a222", + "/assets/fill/carry-out.svg": "d0e9f7e142c09404078b2f8f74f78130147792a4", + "/assets/fill/check-circle.js": "f51cf0da35f32d490a511ddd8cd7d4b44fcc1a0f", + "/assets/fill/check-circle.svg": "abb746c395d9f7355150ccfea50f6e7891c57abf", + "/assets/fill/check-square.js": "d3797e6c300ee33a8732777cff4059e8b1429979", + "/assets/fill/check-square.svg": "8b36a024176c3542f7329fe973e057209ba83e9f", + "/assets/fill/chrome.js": "164c72ffd6a068fd9c089a10523fad0e8358869b", + "/assets/fill/chrome.svg": "b3c8ba20ca49b35bf191179cfd4ec2f4f0ab5762", + "/assets/fill/ci-circle.js": "914edf3452994ac83a04b465c6efac8fd1c7e9e6", + "/assets/fill/ci-circle.svg": "dccd036758f5c713c3eb5b4e8c6c26541ee5a85a", + "/assets/fill/clock-circle.js": "a0c8405d5d56f44952fcd2e54ab192b7be07d44c", + "/assets/fill/clock-circle.svg": "cfa0fbd769d84fb2f26970ff68db5886e08fdeae", + "/assets/fill/close-circle.js": "49ad6a009975163cae0fc2879f9749ddddce4d91", + "/assets/fill/close-circle.svg": "69800011706f99bdb29b75791707c58626ed398d", + "/assets/fill/close-square.js": "6c68ad56887c3b4c45d843f3d7d104cd453b9e9f", + "/assets/fill/close-square.svg": "4ff5eaf4988ea2823b44a7c968683a3c294894e9", + "/assets/fill/cloud.js": "0ca2e7daca21220b3f796848f5e3110c43f5c029", + "/assets/fill/cloud.svg": "58ffd740fcb54aa8d29050b2effd785646a9c013", + "/assets/fill/code-sandbox-circle.js": "3e2475f53a5acdfa9512f2c34a5d12af52bf64d1", + "/assets/fill/code-sandbox-circle.svg": "493575ce3ea8ebee696ad37bc558feb53425c827", + "/assets/fill/code-sandbox-square.js": "cc4aeb0ad44fb701a335d00703f8bf372dce4238", + "/assets/fill/code-sandbox-square.svg": "25e6a2c89d7435e2ae538aec1faac163bb55b409", + "/assets/fill/code.js": "662784e3a667fc1bf091a64a0bc1ade9cd67b71e", + "/assets/fill/code.svg": "c817c8dc1cddc97ed34bd13353e7bce81329c224", + "/assets/fill/codepen-circle.js": "276326dbd3aeea04219bed04c4838b2968ca50c9", + "/assets/fill/codepen-circle.svg": "1195e7ac4f8d628b510a5aa5afac098e345481d5", + "/assets/fill/codepen-square.js": "25cb64be84d830334d302850762f18d3a740a142", + "/assets/fill/codepen-square.svg": "c72ddafffad97a10e15ca8ad724c87ab993b6d34", + "/assets/fill/compass.js": "ebb3ae50df468c617fb9887bd1b16a98d95009ca", + "/assets/fill/compass.svg": "9a8680b5b12ffb5eca72f37e73f239f5d2bb66c8", + "/assets/fill/contacts.js": "05692448914120fb0961a7af376ac1dc616fb34e", + "/assets/fill/contacts.svg": "3e049a89f5026d3fa202f81a5bb703c89c55ef44", + "/assets/fill/container.js": "701d3114b418321eebbed7414ee3ffbcf99df444", + "/assets/fill/container.svg": "ce0ba6ad418457da473c0d87e856ccc6db113369", + "/assets/fill/control.js": "b3691b730a2729fae863a270a24c1cdf80a69252", + "/assets/fill/control.svg": "31261400e44b5f6fff9867ac9b68a4222085725d", + "/assets/fill/copy.js": "4b8942b951bb5bc5cbba891593330f5cb9d41338", + "/assets/fill/copy.svg": "cb6d259ba7de291ecd5133963a1e3451d4e204c2", + "/assets/fill/copyright-circle.js": "eef939a3e8dc747299643b6636087fe9a8fe56e5", + "/assets/fill/copyright-circle.svg": "013ebbb9b50277f6e9214dfd8eab531c8c4d1031", + "/assets/fill/credit-card.js": "89be0d00ab9ec87bc27112f986bb2355cf354202", + "/assets/fill/credit-card.svg": "f61c7389ef61d65326be1001180a08d685c00150", + "/assets/fill/crown.js": "2f3e8ec72ba530fc97ccb550a432830889968bac", + "/assets/fill/crown.svg": "d399927ec4058e69c66558f95e050c0ecad52ee2", + "/assets/fill/customer-service.js": "5122aaf43835242fa2f83283356765282b965c50", + "/assets/fill/customer-service.svg": "247ebbf349ca6bd41a12167453d6ae3139fee0d3", + "/assets/fill/dashboard.js": "b34b331b1362ea3dc6a5cd3233867885a1122c95", + "/assets/fill/dashboard.svg": "6f0549b07f6b72362a54fd60869617e34aef6bb9", + "/assets/fill/database.js": "dfbe00bba70fe2524f02ade70202d64745e090e4", + "/assets/fill/database.svg": "05b9bae51e73cf94d04e5d9faa1953c10b68d936", + "/assets/fill/delete.js": "c2e1ee380eefdecebfcb0d19add69f6959f233bd", + "/assets/fill/delete.svg": "4268cf825edc014fbf3748fa630ab52c1cd16939", + "/assets/fill/diff.js": "c61a116b16dfa18fecdbc1762943fba4200be922", + "/assets/fill/diff.svg": "d4807a65379464d811153278c01ce28d67ae8892", + "/assets/fill/dingtalk-circle.js": "1ddc493b1a5f4d67d886d61dcc328da664bbd33e", + "/assets/fill/dingtalk-circle.svg": "890baaf416e89c0c09b87f857b1f425e2ec0f5ec", + "/assets/fill/dingtalk-square.js": "206966629fd35a6eb0532db9070b1dea20f34096", + "/assets/fill/dingtalk-square.svg": "529fd1184ce4f13ee4df374329987d990cf1395d", + "/assets/fill/dislike.js": "151426def8248a3efa634bd407e9ea20cc9cc7f5", + "/assets/fill/dislike.svg": "07c7f2fed7baeb5cdf87d3fdc07b444d1b303376", + "/assets/fill/dollar-circle.js": "01d1c4d982c6875d578865a1b174a775c1a36a80", + "/assets/fill/dollar-circle.svg": "b51ba6ed6b9ed4654ce82bed2f0834a2d3b2c4ed", + "/assets/fill/down-circle.js": "56c6e05093d4bdcd79f95614e2b0047303928119", + "/assets/fill/down-circle.svg": "1771189e76e1a059fbe0fb1d1c58dcb58baf3abc", + "/assets/fill/down-square.js": "ee88fb27f4e05ef4142ab447ad2c0967c2632991", + "/assets/fill/down-square.svg": "8bbf036a237da096f5bac9f124483bad44e358e4", + "/assets/fill/dribbble-circle.js": "7ad4f7f1f32d36d3013a69a58b66e638e5994e88", + "/assets/fill/dribbble-circle.svg": "904bd6183dfaf9030a70bc1270e74732d111be35", + "/assets/fill/dribbble-square.js": "c045497e0608c26c57ae4c60eb71dc15174c1c69", + "/assets/fill/dribbble-square.svg": "59f4d610b84e408805902484c63a9b50700d2a98", + "/assets/fill/dropbox-circle.js": "e2aaba9bbb5d64671ebe392e84a7bc2a6d6e74ff", + "/assets/fill/dropbox-circle.svg": "498709523d9b2a50bc82e2aa968b117e7fac77ae", + "/assets/fill/dropbox-square.js": "3bd6d0f02c308bc83a65c4bb50696274134da251", + "/assets/fill/dropbox-square.svg": "c369ae6d57cfa58c1a79343765b0dccd484c4cc6", + "/assets/fill/edit.js": "d01f94811f0b3b4a9dd34bf82bb9df54481f2b6c", + "/assets/fill/edit.svg": "9ebb09a24c5b85a95b11be48dc6930865cd5b915", + "/assets/fill/environment.js": "fb0a6ac2d2108591501fcc0e7f9a764fb0645f31", + "/assets/fill/environment.svg": "8e37a44660f697ef7dc85ac4d9a2d06cd81ba35d", + "/assets/fill/euro-circle.js": "5a07537f768b38b581c0e801a2a4c4046576630d", + "/assets/fill/euro-circle.svg": "69b8857f274cc8ce9f26ff4a47d579fd1e4c9122", + "/assets/fill/exclamation-circle.js": "ec7218cbcf618c8a068439208802eebcd5c72887", + "/assets/fill/exclamation-circle.svg": "5bcb4d6a428a0bb8d4a8f4d41a62ba44e2aa6d6d", + "/assets/fill/experiment.js": "8d05b680da7bf4a1394cef49783d4b2a1bde71b1", + "/assets/fill/experiment.svg": "bc91bc400aff825b06b1d9eb8f0491d3b8422e61", + "/assets/fill/eye-invisible.js": "44530c1e1890e667ba4f618fd4a23472588c3f9f", + "/assets/fill/eye-invisible.svg": "650078bd57cffeac6072b3bfe2055072acae1589", + "/assets/fill/eye.js": "bcff22258efdf7d5fbe94bf655f1776eabeaa6f6", + "/assets/fill/eye.svg": "5e29a58be93aad824f9e5a01c366a064dcc92ace", + "/assets/fill/facebook.js": "e63de71f3b5601d41cbda7b1ce760240dd42a5c6", + "/assets/fill/facebook.svg": "b15e98e86a6b952542af41b71e88458b31b5a778", + "/assets/fill/fast-backward.js": "ed3e90d812af08282698df6efdf5a33668e70458", + "/assets/fill/fast-backward.svg": "9472cb0d3a9646375c21a56612edec62a86f8411", + "/assets/fill/fast-forward.js": "13bf2f4c38860e63cc679826a721747519805145", + "/assets/fill/fast-forward.svg": "43715d7ce1eaa43abcb1dc96a74f89db01019552", + "/assets/fill/file-add.js": "79df36f31be9ebb709eb60bbcc9f80dcae4510e2", + "/assets/fill/file-add.svg": "044747195637b1d95c3f35c1362a403c3167cd00", + "/assets/fill/file-excel.js": "79e31301f2b2955f8c038234e5218828d050af86", + "/assets/fill/file-excel.svg": "de0bd8fe577427563b3d23b227f42a75960c6e99", + "/assets/fill/file-exclamation.js": "58ba338a83c7589fb219b7b699b2174050261d12", + "/assets/fill/file-exclamation.svg": "5f9af602518d45814c8b88e384ebea126235789b", + "/assets/fill/file-image.js": "9b669806117ebf3523f0d897dbc0ef5e2be61bf1", + "/assets/fill/file-image.svg": "2d13e0c17115b5e585e1d8a2483e977b226c2a35", + "/assets/fill/file-markdown.js": "2e8f5f410b62b2029f79dacb2edabc882e18f7b4", + "/assets/fill/file-markdown.svg": "a3ac15e1ad479acd9fe30c0b806c92e8cd808ab0", + "/assets/fill/file-pdf.js": "287390109c6563e1bae1b814a4e75a8141c241b0", + "/assets/fill/file-pdf.svg": "613a342afa6d39e95fb414779cc32058352114af", + "/assets/fill/file-ppt.js": "8d480069aedebbae47388ce6596eca8aa26d87a9", + "/assets/fill/file-ppt.svg": "e017e56e50d437ce24f4e8dd02ca75d000b6140e", + "/assets/fill/file-text.js": "c7e614f8e52653baa3539fb1b9af406b8eba4d2a", + "/assets/fill/file-text.svg": "5b7a4ea37b05e1b8cfdfd87845c2479a651bba91", + "/assets/fill/file-unknown.js": "0838e2c1a7955c472364de9b91558bb0f2ff9a70", + "/assets/fill/file-unknown.svg": "b48acea52485f92e9e33a259423e8c6f206816e1", + "/assets/fill/file-word.js": "e328b405b75b793fcf6ee6ae59340f744c695a4a", + "/assets/fill/file-word.svg": "438f015d7dd561b5ec1009ba11ae9e0175d40ca2", + "/assets/fill/file-zip.js": "c85d114ad5a0b89d84242646c256e44802be57f6", + "/assets/fill/file-zip.svg": "4b155edc0f1484b2aaa28558b5036b418ada79ff", + "/assets/fill/file.js": "7807c62580fb72aa3a3e2bf02fc44193968c92dd", + "/assets/fill/file.svg": "a1354d487136c4ef0ccba77b5ff9d23248ee71ca", + "/assets/fill/filter.js": "7d4288743e700d274a535c70d80320e2205eea79", + "/assets/fill/filter.svg": "8c976ca2e523b6409a7f8ca2988de5b2a1d3f074", + "/assets/fill/fire.js": "f7bfaf0be48be0afcb7f9ce92f84e772d8e82201", + "/assets/fill/fire.svg": "884c6bd9f29ccad83e53fd93fc26480991f0e2ea", + "/assets/fill/flag.js": "9c1bddd77a8bc59ca11d89c84b236ecb729422d9", + "/assets/fill/flag.svg": "adaa172e256d4d09ef6a5f1807e2d58df01866c3", + "/assets/fill/folder-add.js": "74f23ed790b5af859797c835ac8a8f7459e465fa", + "/assets/fill/folder-add.svg": "becc5002ded8ac7cca85bf594810b8b928247dd0", + "/assets/fill/folder-open.js": "9d9862fe1396c85ad866573df5d465bbcf591ada", + "/assets/fill/folder-open.svg": "0c5e935d141b498bbf1cbeb0cf87322c50146874", + "/assets/fill/folder.js": "8a4dfe0f6dcbc57f9c70da65c855cd68639b609c", + "/assets/fill/folder.svg": "9b08949554ddc6ef95e85811472ffe66f971c6f2", + "/assets/fill/format-painter.js": "2fa0c0fe32057759dace76b8054e614a2a89be4d", + "/assets/fill/format-painter.svg": "baaa2977f310d974623aa2cf48a2e8ebb1048693", + "/assets/fill/forward.js": "c345edb96b6d5eb8aa8c4d07dee1376d4ce5dc65", + "/assets/fill/forward.svg": "582c058547b923370e487896e18928ecfcf63c76", + "/assets/fill/frown.js": "9b8df9e3e136b5e11b795d8609df6219cb37be4d", + "/assets/fill/frown.svg": "4d5c2e22b7f764cdb52d4d22d37d1d8e6de0e8fb", + "/assets/fill/fund.js": "65ec91b79313ecb9d593900699e67fe1c19012ed", + "/assets/fill/fund.svg": "6c612598309e75d045d70ad5ce9ab637c642c811", + "/assets/fill/funnel-plot.js": "fce0afe1c0fc8f6d68a945ccc47236d8ffcdf2e2", + "/assets/fill/funnel-plot.svg": "2b727c8c0da650463c1cb81b688fb7fa70f8dbc1", + "/assets/fill/gift.js": "f463f7148ff22e0700a8631e9df48c924c9d2a90", + "/assets/fill/gift.svg": "d4623731d262f96cd8d66a3d50b2621d74b4d148", + "/assets/fill/github.js": "a03b516ea37741719975a65f03bf79e98922de66", + "/assets/fill/github.svg": "0a2e23bf5570ed06813f2db99721bb9c5396be91", + "/assets/fill/gitlab.js": "99f657f44df55ad4fbe406842ae54e2afbace2dd", + "/assets/fill/gitlab.svg": "361fd6f289aa8c900e4a3ebe1f63369631628466", + "/assets/fill/gold.js": "dd5dee27ec2a449a40d041abbe0d1475bb6d3049", + "/assets/fill/gold.svg": "b23d706923cb8d714d04ef92fcaef560539ec055", + "/assets/fill/golden.js": "fc4bf573f16513802aa16083acb34aa77f1a942d", + "/assets/fill/golden.svg": "b23d706923cb8d714d04ef92fcaef560539ec055", + "/assets/fill/google-circle.js": "d259e7dfb262e95c5ef7b850a149ea65b328474b", + "/assets/fill/google-circle.svg": "e7e48c7eb863871930eaa7a8a6ae8bdd8bb1b643", + "/assets/fill/google-plus-circle.js": "a285370f0318f147db1f94fd2aa2cf587798880c", + "/assets/fill/google-plus-circle.svg": "642d3c2d8b5f9ac7fa683b30a8a1fab187e64152", + "/assets/fill/google-plus-square.js": "ed346436f309144a13a7d2f18c1473c909af5f23", + "/assets/fill/google-plus-square.svg": "060fe991a4d5cb91a957630bf24baf3cbd9f50bb", + "/assets/fill/google-square.js": "f0b03eaa90cb49ed5513d263bc20ae7240d11cec", + "/assets/fill/google-square.svg": "46a8f5dd67dded6fb4c0685520a6d2462f58e9c7", + "/assets/fill/hdd.js": "f21ec961eaa44f670fee272016508ef8b5ee3be3", + "/assets/fill/hdd.svg": "fc47bf6677b5d8826a8387884139f6694512c765", + "/assets/fill/heart.js": "8400ae3e8cd4a340a54cec8b9d17c2d709d10701", + "/assets/fill/heart.svg": "1754ecd346c3d5fdb5e8cb0a9065f881d49cbab0", + "/assets/fill/highlight.js": "246df0d7d3e137b89a34f818b7b11aca93905610", + "/assets/fill/highlight.svg": "fe13ea59066aeb9586a73ed706163d459a71fbbc", + "/assets/fill/home.js": "599bf058b4a89156cb022a653158ead72a54d3f7", + "/assets/fill/home.svg": "986152807fca5e518ff4dfec2c250d36ffccab90", + "/assets/fill/hourglass.js": "6ae18db2fce32e681fb8a878781dc6e9af635828", + "/assets/fill/hourglass.svg": "8324dc77e0d439a89a105c1610f462a5913a7a85", + "/assets/fill/html5.js": "e1822798eec32bdecb0f91844e0189373007a37f", + "/assets/fill/html5.svg": "f0f706c95069d1ba0189f75a4708ca5af0c359e6", + "/assets/fill/idcard.js": "0b4e2867c77e53ab9bfd0879578231654e2de58c", + "/assets/fill/idcard.svg": "bccdea7fb640df0ae3214fb31bf510c434bd23f0", + "/assets/fill/ie-circle.js": "b2e5b9380194a63626267014609f9c954bc7e5de", + "/assets/fill/ie-circle.svg": "f7fbb217aebed7c3324891b27261d324515cf45b", + "/assets/fill/ie-square.js": "071c94ac2455099f13e7c51744c2b3f8fd316de0", + "/assets/fill/ie-square.svg": "3d4f203e49a02369ffa1368c3f204573ebd89423", + "/assets/fill/info-circle.js": "7e993ff4ebc207f2194f1df14a437ae665c3f219", + "/assets/fill/info-circle.svg": "c43f7d3af3e56560ef2609a93f8e4cc7625cc98b", + "/assets/fill/instagram.js": "97ffa6a2912a99b428b7afc18c56fec5a36ad492", + "/assets/fill/instagram.svg": "ce9852960ee4ed193d9f058ea680cef90d2747c2", + "/assets/fill/insurance.js": "04d896f06ab02cc6bde57e09405d397dfce08e16", + "/assets/fill/insurance.svg": "06f7a051f904c69b1d638131fd4b66e8947ffab6", + "/assets/fill/interaction.js": "65e19142ad9ff29f68f7f066077587af8dd4b94c", + "/assets/fill/interaction.svg": "26a53c0f32c5515e97a536e79cc047c906884026", + "/assets/fill/layout.js": "2356ce44cb0668589f0281f1b4be5d8cbf64a254", + "/assets/fill/layout.svg": "76ef248b0fbd5b81ebcee07429f3019d08ec99a0", + "/assets/fill/left-circle.js": "953755a928c99463640b7d7d63eefba4a65a30c5", + "/assets/fill/left-circle.svg": "8cce49f943c71c524a1d106a7a24cd2693a90060", + "/assets/fill/left-square.js": "688f66bbd0461fd02bc5dcfa391be4104fcf93f8", + "/assets/fill/left-square.svg": "c2c1b20d0502650d753e75b566f2dd76dd84fd81", + "/assets/fill/like.js": "3edaa4d0f8d5a414c2d5797ef16991462253f0a5", + "/assets/fill/like.svg": "aa8448ac9a10a75e833093b55b84c5e4329a8620", + "/assets/fill/linkedin.js": "9b8eafa7badc2b56534ef82580196ca770c5a9e2", + "/assets/fill/linkedin.svg": "705336561b9bf4958abbf4e35da988fea691e47e", + "/assets/fill/lock.js": "96da8d55593437dca617638bc7b9e57fc4f68aab", + "/assets/fill/lock.svg": "0767936e09a92384a4f754950712bb338e459dd5", + "/assets/fill/mac-command.js": "d29a5b72de45163228af9bf612aaa3f24463945a", + "/assets/fill/mac-command.svg": "d43b8eed4e824ea750ba3b76c56e05b4309852fa", + "/assets/fill/mail.js": "d46437e98cd284fcf3c216e12e073ca4d35266c6", + "/assets/fill/mail.svg": "aeedff09dab0aea0fa522ed45feafacb554adddf", + "/assets/fill/medicine-box.js": "ce88a8d3a59cbd6443aab650725473401b13c210", + "/assets/fill/medicine-box.svg": "8a84f9f20d01e75c65f9d2712e83cba6c787a526", + "/assets/fill/medium-circle.js": "7dc59cc5a628b505d08cc4b123924435b272aa04", + "/assets/fill/medium-circle.svg": "6750a47a2276b6361b1478cf7d6845d0808fe3bf", + "/assets/fill/medium-square.js": "5ddf3b0cb4f73f4c56c24ef258ef6b92ceb70152", + "/assets/fill/medium-square.svg": "5661af7451f9a5699ae44e0e32826de1f8676635", + "/assets/fill/meh.js": "1fe1f1a875ce8f82aaa71dcd55b657539ce3a9e9", + "/assets/fill/meh.svg": "df32ecd2c944ec78797fc6cd4635e12e7f8c3399", + "/assets/fill/message.js": "20e31a9a0f4b8503583a811f51e36e8024f7624c", + "/assets/fill/message.svg": "97bd1e85d3233be7ba8d1c53ef6ca60ad8e13fe3", + "/assets/fill/minus-circle.js": "5e2b7e858f95e5af6a93201dc8dae270ffa75924", + "/assets/fill/minus-circle.svg": "5110bcb599d71b01aaf1452889fabcd5a8ca6efd", + "/assets/fill/minus-square.js": "411de59608d11b107b7f90872ee6059d958f9886", + "/assets/fill/minus-square.svg": "bedea810bd8e7b9a483d797ce9ac2b3048ba7521", + "/assets/fill/mobile.js": "7f2e5426a96a612efd0dab13aa8451071678829d", + "/assets/fill/mobile.svg": "cecfff44bc4fe226158aaa04246bd8b87544248f", + "/assets/fill/money-collect.js": "4fd968327cd27b80aa307d70d323ecf8461d3585", + "/assets/fill/money-collect.svg": "e96b4a2e2ecae71243bb699494fb365cf88abe72", + "/assets/fill/notification.js": "d0f3f5c0b15ae24403d675bc67bede66e3ddb879", + "/assets/fill/notification.svg": "f32126b88d0962697e194c8249317b08edf7b30c", + "/assets/fill/pause-circle.js": "42bba68cb1545f4121fbe21eef3612204a1f0d22", + "/assets/fill/pause-circle.svg": "9e98aa6bde50f90939a012b4a9583f2fdbd274ce", + "/assets/fill/pay-circle.js": "c75e00a7be6ddfc2ae7db862dc0393dcc1364b78", + "/assets/fill/pay-circle.svg": "2d8f2da45af32e59e8b7204a769f57e6b72c142a", + "/assets/fill/phone.js": "908a686f4dbe59c8e2e955bb3af743e9f5ff285b", + "/assets/fill/phone.svg": "62053199ed46f850a1607615f51810c1be7f9d7f", + "/assets/fill/picture.js": "ff89b154211f42c03ff84d68690a27c2afec4256", + "/assets/fill/picture.svg": "3580fdd62af60c82ca6dde07395cf4bbc31d5ce4", + "/assets/fill/pie-chart.js": "24be6470519f423f2d6ed83c4def510132f6ca03", + "/assets/fill/pie-chart.svg": "4a1ada30a8e5491e2363b9b414bb5facc9e90620", + "/assets/fill/play-circle.js": "5cb39651935040ad759f99a1b5ced25c459e9b2d", + "/assets/fill/play-circle.svg": "0fecdb2acf18002cf2ce3bbea36afcdddd2334f6", + "/assets/fill/play-square.js": "e7574325bffc7b4dc8b096e318cfda62a99a3736", + "/assets/fill/play-square.svg": "dd8cc386842f90c9a0f85992e6e6204ef9e2f1dd", + "/assets/fill/plus-circle.js": "c0ac7a552360934d8f5c651d0c62acd3db5e02c7", + "/assets/fill/plus-circle.svg": "2c79e839aeddfcf69ace8410838fd62292ee3ec7", + "/assets/fill/plus-square.js": "ef03d32079b0c050290594cc3c64d07c1117821e", + "/assets/fill/plus-square.svg": "4e8309e79ca8b9770c1737843a4262edde515b91", + "/assets/fill/pound-circle.js": "7942700e75c041fc2b4de5e9d427d274fea26b78", + "/assets/fill/pound-circle.svg": "f5b933f9c9f86702dee2a9b0c60b04f6b699ed50", + "/assets/fill/printer.js": "637c60c0e7c5105200d0c01b571c2864ab93ecd5", + "/assets/fill/printer.svg": "e936636be16f7ebeec548f5629af77f3dd645fb5", + "/assets/fill/profile.js": "fb78adf0a759ff8d10b98785c56852670f5c8a99", + "/assets/fill/profile.svg": "f2a906a1a2a048bf91d5ca54e55b1ca5a5272b46", + "/assets/fill/project.js": "ba93e143c992eb153ab8476da8a9f307406a46fc", + "/assets/fill/project.svg": "79e370ad0eee20189766b6174ea3b28d3051fd1e", + "/assets/fill/property-safety.js": "7addfebaeb5d7c585a6a2b202716f4c534e82ada", + "/assets/fill/property-safety.svg": "cd42384431b85f9510836e9ac8e60b2f8669b673", + "/assets/fill/pushpin.js": "352455192696bc4c15d8e5c687c922f2961e1b97", + "/assets/fill/pushpin.svg": "b64e1ce7b9e4f995c483b192e397d9eb8e754c04", + "/assets/fill/qq-circle.js": "e8065bf8a2047241909e7b4be53f34c627cef30f", + "/assets/fill/qq-circle.svg": "7ac435052e6ba21f2feae38d67a4dea3a8156a01", + "/assets/fill/qq-square.js": "06cb7eea5243e235cbe60e4543a17f91331834d5", + "/assets/fill/qq-square.svg": "cbeaa56988c94a5b317429590933f53bb962a3af", + "/assets/fill/question-circle.js": "4940ca1d46bcbd2cdbd1db54e26ed306724d43ca", + "/assets/fill/question-circle.svg": "082130d1646fc25f9f973409ab0c89d366919636", + "/assets/fill/read.js": "c1a8726af506a322329b99dcf89a23bda4e9b040", + "/assets/fill/read.svg": "874febf999a965106707858fb0a0eec57d586375", + "/assets/fill/reconciliation.js": "13f316d4c399d561c02b59856e8b90853a6082da", + "/assets/fill/reconciliation.svg": "ac243a0f37e901f3feebb3af1a2cacccb012de5e", + "/assets/fill/red-envelope.js": "c02388fe6be9112af9dd5249e29d378e74f2db41", + "/assets/fill/red-envelope.svg": "bc0e1502b09f79812c747b544fa78c6201de9b70", + "/assets/fill/reddit-circle.js": "9f0a7ca6de3498c2a07d2b9b866f525de5d782a4", + "/assets/fill/reddit-circle.svg": "065fbec8b0f6c12063ebccb20d05057fc13abca5", + "/assets/fill/reddit-square.js": "33aae91efa8baa764ccdca545c31aa2acb6a6659", + "/assets/fill/reddit-square.svg": "83d2abbc58c7a633c37f651fc96be08c98f255aa", + "/assets/fill/rest.js": "ed1a4e919e583f5b7976cc58a82cb1f7133346bf", + "/assets/fill/rest.svg": "cf692e95f740ec175b55f55de520f5de6a6e5ccd", + "/assets/fill/right-circle.js": "9efbcf539175f1612a97f036d8bc2a42881723ac", + "/assets/fill/right-circle.svg": "c45a0e1939d15e6209be8a800b415f59ab12177b", + "/assets/fill/right-square.js": "01faf2181923e6e9b2d078b516847b99cea763b3", + "/assets/fill/right-square.svg": "ff298e132a36a361f272bc942d3228769815f5e1", + "/assets/fill/robot.js": "7257dfc7065f7312361a1142279dd30f75e0da07", + "/assets/fill/robot.svg": "d28dad761917ee9d77790083e3b41f211ff98313", + "/assets/fill/rocket.js": "af304200abedef70ace6a18ef778dd57afd11248", + "/assets/fill/rocket.svg": "28f181d5f13ded89a3581122f1e18e5dbb5f9ca9", + "/assets/fill/safety-certificate.js": "98c26dddf372c568ad90cd65845ed178c6276d32", + "/assets/fill/safety-certificate.svg": "ee8abfcf2f1a19c7e5db8a536825ffa7bab6733c", + "/assets/fill/save.js": "dc0b39bbd186e50b4fb2e4a64617b36e6e4fc2ce", + "/assets/fill/save.svg": "2f4ee93902e829f796a245b551953512a6d834ad", + "/assets/fill/schedule.js": "17f788ab9d58e8af2cfc1eac4c3e6c2092647a7d", + "/assets/fill/schedule.svg": "3769877cada47793124dd745c6986d83a14ce8fd", + "/assets/fill/security-scan.js": "2434cd9faabc2780cf80502bc66fd9a5bf054e5b", + "/assets/fill/security-scan.svg": "0d4a91cf7129adbf8a1d6751e13ae1a47b3022c2", + "/assets/fill/setting.js": "3f4ca484834139f03db81c7182fadcd6a59450dd", + "/assets/fill/setting.svg": "30bd340e032b507f2f9f74f609d8d9d60cb3edf5", + "/assets/fill/shop.js": "f6f9bc6f1b4215109c6808217337602b38305402", + "/assets/fill/shop.svg": "aa99935af3ee72af817fceb6d3799365ee3c69c9", + "/assets/fill/shopping.js": "fb12f097b2c79e64f849ba84b5f3ab8d5c405562", + "/assets/fill/shopping.svg": "b8d68ed9887814bbf53d06b848f28cda1d144322", + "/assets/fill/signal.js": "6cdc99349e105d1240949fb5e8b9bda41e88a41c", + "/assets/fill/signal.svg": "9fcbf7cb4fcbc4b2fe3babd4b116bd2c82ed3693", + "/assets/fill/sketch-circle.js": "f8e9e358e9f781d886aa2a443b142c10ed467974", + "/assets/fill/sketch-circle.svg": "0b67213328a1977383c4e35644a8d5354d04c316", + "/assets/fill/sketch-square.js": "f6aa2992fda0165af6356ba72c9dbb35788c92f6", + "/assets/fill/sketch-square.svg": "1fa5f1d6dbf0ea6f51d855851eddb6f0e666ca78", + "/assets/fill/skin.js": "9b3561fe8bd5d5b9353bcaf693564030085fd91a", + "/assets/fill/skin.svg": "c3817a91ac4bfa8c422c87ec1e2009521f8f911b", + "/assets/fill/skype.js": "1034e79ddf186d845763166ebc8db5ff013e11eb", + "/assets/fill/skype.svg": "3f493443fde38d90540ef6999da58733db63b6b8", + "/assets/fill/slack-circle.js": "b3ce9d39edcc67bde40cbd41e30686d9b0e0aaec", + "/assets/fill/slack-circle.svg": "39435d61f1be54a5cc23e35cc3093c55871674ac", + "/assets/fill/slack-square.js": "300c553bad9708321b84a39ba746080acb36b1d8", + "/assets/fill/slack-square.svg": "a399206f3035f4199dddd1381922e3454355fc69", + "/assets/fill/sliders.js": "d6a69ba15800c406240c0678563835cf986ea46a", + "/assets/fill/sliders.svg": "e33ff822d1c52aefb5998d4ab6af85facdedb0cb", + "/assets/fill/smile.js": "9ead8154c8e7ed5febea5efb09faeff420204389", + "/assets/fill/smile.svg": "2f469136d6babc164cb403e32945b07dd22badbb", + "/assets/fill/snippets.js": "1e9e874bb64f55dc7dad55c89556e8612a3647c3", + "/assets/fill/snippets.svg": "c22d568b3cd54f97af2ef6aa15a6a18a61ad0c6a", + "/assets/fill/sound.js": "12fea76187fc104ef2495aed5f929a0081c3d367", + "/assets/fill/sound.svg": "95c42fba246a7b0b48fb0d1dffebe23def5a85cb", + "/assets/fill/star.js": "23186406db18d515c762215ec617d939c4ef8e01", + "/assets/fill/star.svg": "8a8d5679e53224c21648b1bc9ffc18045f42e4eb", + "/assets/fill/step-backward.js": "6c13fd029b6f2f9f0613c44084bc11ac5ec00139", + "/assets/fill/step-backward.svg": "fb4b1304a9e2fe9bdbb2fe076db025ddf77a5559", + "/assets/fill/step-forward.js": "6de3435cbaba2dc531ced6f8c4cd98a19b07ee25", + "/assets/fill/step-forward.svg": "995b4daf9c47ca864115bc3c2630ef5c5ddd7c59", + "/assets/fill/stop.js": "fd0896fd1ed9326ead2493ce2806492e5ba124e3", + "/assets/fill/stop.svg": "816ee7fcaa7a580823beea16d660c6990a544c37", + "/assets/fill/switcher.js": "49128c36089632b002f39d7e505333cba8ba9eec", + "/assets/fill/switcher.svg": "c693071b1e198d6342e88ab22822b58d1f23fd04", + "/assets/fill/tablet.js": "02cd4ab6655635f665cc532fd22b2397e3f2c0c0", + "/assets/fill/tablet.svg": "62704bd582e753849d632ad951af19edd34dc128", + "/assets/fill/tag.js": "ed738abf4be8b2e61e5cd79514f2260cad028dbe", + "/assets/fill/tag.svg": "362dc8b47fac62f16df9110fd0d5f8515061c52b", + "/assets/fill/tags.js": "5988c5e97f6a65b002f2375261197a9ca29e372c", + "/assets/fill/tags.svg": "be125641ec0987f17fd4c5300f21fd25bfda0d0e", + "/assets/fill/taobao-circle.js": "27e59a091eb6c242bee3eea909a207fd852acaaf", + "/assets/fill/taobao-circle.svg": "16fa59d448240a8d2df2e1e15b69844a65803366", + "/assets/fill/taobao-square.js": "4123df24e635ba1cb0f666d1cea192558c46e073", + "/assets/fill/taobao-square.svg": "27211ef932333f5686a3ace4322d616c9d10fa5d", + "/assets/fill/thunderbolt.js": "3d335c2df9e77bde41c3120744a80e2b57a98425", + "/assets/fill/thunderbolt.svg": "31fb233429dffd0e7a4e9d4afc209faa63625afe", + "/assets/fill/tool.js": "82b0a9ec7be9d110bab75d41725dad77f1450908", + "/assets/fill/tool.svg": "ca6822b9ba5905db69cd02293b55579701029848", + "/assets/fill/trademark-circle.js": "8e50328cb7884b5e94c9a3848f8b0a1762c029d8", + "/assets/fill/trademark-circle.svg": "2ddbc1dae3a5050e92893929c1ad2ffb9f1d59df", + "/assets/fill/trophy.js": "fb7a2d0883dab78da8cf070a16d160ac5fd4f7da", + "/assets/fill/trophy.svg": "96577728db64e45df06090b37fd62a2150fb201d", + "/assets/fill/twitter-circle.js": "d401a2c3d9f18c6efa114360338d473115cb60e4", + "/assets/fill/twitter-circle.svg": "738a206fcfd1fe7e81de995220e0635fdcc09366", + "/assets/fill/twitter-square.js": "94427d18e5165a47f12e1da2bca52ee9ad1c6e81", + "/assets/fill/twitter-square.svg": "3545203139e0948b4bad7657eaed0ef6975d83ba", + "/assets/fill/unlock.js": "07380a2335669a5415fe7940a4e4d56ace158447", + "/assets/fill/unlock.svg": "a32d583cbf7ec47fbcfbfbbf4ed0b1bdbd181c7f", + "/assets/fill/up-circle.js": "42cacbc17e966ab1bb40d23c845b76331f07ce4d", + "/assets/fill/up-circle.svg": "7e2bc46f2ee3106cd303d3ad8b1affd93586c148", + "/assets/fill/up-square.js": "41aa510ac7879e2b05985f43b5f88142c81eead1", + "/assets/fill/up-square.svg": "28aee8fcce3f9fa9cc2542d90f7168d604cb41a6", + "/assets/fill/usb.js": "a57c90565b7fb447f62d140e47b38a00378af32b", + "/assets/fill/usb.svg": "9c15d534ea58a7208cd8a6b58e330cb00853605e", + "/assets/fill/video-camera.js": "9c2efdf57a0137c9ef52084c32391b232107f157", + "/assets/fill/video-camera.svg": "a582a627293b3e129434c2466be3c39efbe36fa7", + "/assets/fill/wallet.js": "f536d876aa7aa23b79781538da18a4bcff64e0c7", + "/assets/fill/wallet.svg": "831b604f793c3db3a85ef27e8df17a08af91e402", + "/assets/fill/warning.js": "39134837500e729149ca0b9d45abbd8b4fe2b080", + "/assets/fill/warning.svg": "ce4f9860bd0e595b4632f3d6d662d441e168aa2b", + "/assets/fill/wechat.js": "6f19890b7c1b6b20465d1d33a7476db07eda7544", + "/assets/fill/wechat.svg": "3a84c2457238aa166329712a5a681a17380eee0d", + "/assets/fill/weibo-circle.js": "5a8cfa83c98bd5188c1ac37003ade8e939855b5b", + "/assets/fill/weibo-circle.svg": "a1aba62600f1015e2fa46c9fc86a4491c8fa7520", + "/assets/fill/weibo-square.js": "d7da35f31c17a875b6236b88f805117061fb06b4", + "/assets/fill/weibo-square.svg": "52b5a78b30ed33e08f6961e12e8e16f420d324db", + "/assets/fill/windows.js": "030c54cc65b3c1cdd756bda1f6f4d74cb04f6695", + "/assets/fill/windows.svg": "f85bbe7fe8b7ee86c973144dabca0b4cfb12b84a", + "/assets/fill/yahoo.js": "915e62a6b66a21dae8cf7cb8332242a80a939906", + "/assets/fill/yahoo.svg": "5407c42c68255abac04cafd0fa6ecf92ac35c388", + "/assets/fill/youtube.js": "28f22d89a6a6d79b598d209fe6c57135c609e71f", + "/assets/fill/youtube.svg": "2da519a723319ad2113e3c10692b1937993d4fe6", + "/assets/fill/yuque.js": "c7c3d4701078cc696292b8086e764ced4490332a", + "/assets/fill/yuque.svg": "13602a80d7afea7b292c8815c0fb3af1f23592f8", + "/assets/fill/zhihu-circle.js": "43202fa87726ecf8aaf55bb17c6bb71207b427a2", + "/assets/fill/zhihu-circle.svg": "be6280fa4e203b9ad098c82fa7e600257eb6058a", + "/assets/fill/zhihu-square.js": "be7961c908ea2b910c9189519e120ca55daac42e", + "/assets/fill/zhihu-square.svg": "116dde19e8e3275d1920e425031d120a51f18fa1", + "/assets/icons/icon-128x128.png": "f758f65e0157fd8225426fc55a89d5d50912722b", + "/assets/icons/icon-144x144.png": "53d4c730ff461126126fa3e26a307f6ff0565da5", + "/assets/icons/icon-152x152.png": "0dded264ab00f4869a98552c17451c15a8728013", + "/assets/icons/icon-192x192.png": "bffa026268b88269edbfe237f0bc2d122a0f850f", + "/assets/icons/icon-384x384.png": "88a00c6fd5adfbb6e6ea82546e53b22824fccc31", + "/assets/icons/icon-512x512.png": "a83d06c5a2c90fd0984439a3d6ed46217f40ab2d", + "/assets/icons/icon-72x72.png": "11d8d3fa96ef44e5c81f89cebc1cc93e9ec37829", + "/assets/icons/icon-96x96.png": "67c034db677caf88a9a86d86002b4437bd2ecedc", + "/assets/images/bili-404.png": "9a55012023be37a8bb24cf4e09fb180be41df390", + "/assets/images/logo.png": "62325f84f1b8ee93dbf6eff5daf46192fdf1675c", + "/assets/outline/.gitkeep": "da39a3ee5e6b4b0d3255bfef95601890afd80709", + "/assets/outline/account-book.js": "f6e496aa659fde136105e24d498b378a3965c8c7", + "/assets/outline/account-book.svg": "f14702eb21d5a1db9bf67a62ea4c9600fd44b64b", + "/assets/outline/aim.js": "f781a844368ce470b8a3a723ba827a8c7ccbbee7", + "/assets/outline/aim.svg": "1e99223a917f338ba5e968c0e3d7b8668904182a", + "/assets/outline/alert.js": "9f40c7b6b40e277e12db3dab210e26032f1b1b39", + "/assets/outline/alert.svg": "38ac0104768615202c7f39c0538e74429e05ec64", + "/assets/outline/alibaba.js": "2bb401149476a01d649a23669027e33882e7ec46", + "/assets/outline/alibaba.svg": "820a4550764d93d3b5cf39ddd661db6cafb7f643", + "/assets/outline/align-center.js": "ec2538d7590e24e574fbdf6705e3a664d5251974", + "/assets/outline/align-center.svg": "c35d472e62bcdce6dae472a8048722a9b4da1727", + "/assets/outline/align-left.js": "ead819f6862585bd6adc192f6be6d226710db60c", + "/assets/outline/align-left.svg": "2cec58c606947219bfd9514b8bd65b928ab5b5d1", + "/assets/outline/align-right.js": "d68858e50cf08fc16bf26bb5eb44888eeb0567a7", + "/assets/outline/align-right.svg": "d503a234dae23c72e514c8aa580ea382d760f24a", + "/assets/outline/alipay-circle.js": "13ff3fd08d33135418f080e34af873ea2e013a9b", + "/assets/outline/alipay-circle.svg": "5978e11e6e755600c4c4f233973b4e5d6ad907ce", + "/assets/outline/alipay.js": "b241f010512d6702068871a14861250d91fb7e33", + "/assets/outline/alipay.svg": "2ab55aff86d96dc01ea213c3343dc5399fc96d86", + "/assets/outline/aliwangwang.js": "d4cbd907f85f296a99c30b71cb059ea5ce62ad46", + "/assets/outline/aliwangwang.svg": "96badc794584a4559d9a8a5fdefe58c3bd9198d2", + "/assets/outline/aliyun.js": "b129c18659357bfb72783b842edec783ef0296ce", + "/assets/outline/aliyun.svg": "59d45e4a6b636f66e723a686807eaefd5e78278a", + "/assets/outline/amazon.js": "b2dc7e5835893c19aabecaeb7baa2b731818027d", + "/assets/outline/amazon.svg": "407d7b2d1d39d5300f7de2fed7674b75c37e9468", + "/assets/outline/android.js": "d510ececcc760f207d7904c010cc74faa2abf3a0", + "/assets/outline/android.svg": "29a6914b3cba3359abbc26d33cb6f0bb73d3ec5f", + "/assets/outline/ant-cloud.js": "39d7270eab5d1c27a41d661ddc597c01fd0a528f", + "/assets/outline/ant-cloud.svg": "824b339504a6783a6feb5783bd342db6504f572e", + "/assets/outline/ant-design.js": "d660ca3f1a369ee8b263309a334e54732aaac39a", + "/assets/outline/ant-design.svg": "9e9146050487052ca394ae789b8b7cc4ab9900c1", + "/assets/outline/apartment.js": "2aacbdf4d6e9b717cbce01203d1a8a41b12eeb6c", + "/assets/outline/apartment.svg": "4228e3662b08c9501036d5be9f013f652cb1fa63", + "/assets/outline/api.js": "5df24aacfe304a54aeab2447fe3e8f38d242d2c0", + "/assets/outline/api.svg": "1f3de287d2b1ad75759b5b6c3c8de063f83f4b7e", + "/assets/outline/apple.js": "e355f54c6819035bfc65f8c464aaf535e317a1e1", + "/assets/outline/apple.svg": "890d2f16d495044e553730877f59762d386cdd95", + "/assets/outline/appstore-add.js": "2bb26e5d98f5d33e5311ca3997a91198177b9ed3", + "/assets/outline/appstore-add.svg": "186618c1512b87013bcb10355412b0010fee4117", + "/assets/outline/appstore.js": "f1a1c343b45aa926b1c6ced9ff35ba0efe6c5d3e", + "/assets/outline/appstore.svg": "fc0530b34ef9633373ed86c81d15786c4e0cb247", + "/assets/outline/area-chart.js": "3016a337c6d0dbb9a4352f05601aedffff94ee46", + "/assets/outline/area-chart.svg": "73d8cdd50c0005d138f5d034e08a192167ae1d1c", + "/assets/outline/arrow-down.js": "a50506c301c421e965aba5103189556c2c908438", + "/assets/outline/arrow-down.svg": "4b7241a2bd182f529f7f74cbea6398024fdd8f2d", + "/assets/outline/arrow-left.js": "01b51d2c940de0ddf7d5a7acfb0d58ef950096ab", + "/assets/outline/arrow-left.svg": "1efbbca3b4a2b6fcdb63ae709337c1388e61eb5a", + "/assets/outline/arrow-right.js": "6e73df90acddaac09859701e5b4bd3506eae11e5", + "/assets/outline/arrow-right.svg": "81d163bb03bd61a1f9c2cab4cfebde16100798d9", + "/assets/outline/arrow-up.js": "6f0044887a6e6fd489a6b831e98b0c00b69f7fac", + "/assets/outline/arrow-up.svg": "dc2dbe1d4cb84c8efc572a2ef6506cf97b5dd456", + "/assets/outline/arrows-alt.js": "950026c5707d139119cfa776a590071c5ac8dd5e", + "/assets/outline/arrows-alt.svg": "9cc10f90f7836b58ea1589bb4fd2b48e1dc8ceb4", + "/assets/outline/audio-muted.js": "5a48650703e478735f9e4e2640a4e2dc08ca5425", + "/assets/outline/audio-muted.svg": "ac3b67331ca5ac0bc4e797dfd96c6ff6278aac74", + "/assets/outline/audio.js": "09fc8bd3d32f7a73811f31eee5af7d3e353257a8", + "/assets/outline/audio.svg": "53136803fd9aa22ff55afa26f42f1958d2a27eaa", + "/assets/outline/audit.js": "833ca38a75ec7e59c8b69ec1e92a54ab878ac357", + "/assets/outline/audit.svg": "0b7eaeac0d334242403ebfad6b0ed64c10367633", + "/assets/outline/backward.js": "6790365c50d18a0ab72dcf57c34412fefafc7137", + "/assets/outline/backward.svg": "210affe174d92a1721b016100c36e472b3bbb6f3", + "/assets/outline/bank.js": "fb5e05841c2e5d3394cda9e8e16fb8d3e6427821", + "/assets/outline/bank.svg": "f8ccb3073e574ae941b4b516e1930f4ce0882297", + "/assets/outline/bar-chart.js": "00ced277a5955184bac81c75c8243ec4874e6f4b", + "/assets/outline/bar-chart.svg": "b4af6a710d6fe8655edc3d0dd98fb527d27fd648", + "/assets/outline/barcode.js": "68bb6acd8a132f63b155b8452814e4aeaa711922", + "/assets/outline/barcode.svg": "77c7d998c1eaf1a53cb067ce2ad56410a7965d8c", + "/assets/outline/bars.js": "71fc89ba07c302509c4bcca750f1d607dff923be", + "/assets/outline/bars.svg": "1f6fb6c741daf94609877841b075842bdcd6e917", + "/assets/outline/behance-square.js": "7837951fba7e6dffd377b48684d901df76fedc08", + "/assets/outline/behance-square.svg": "73712866d6ad8970a374f197d789c666c485f11d", + "/assets/outline/behance.js": "071c07b29bd8d799d10c306858da24f86a43cdd7", + "/assets/outline/behance.svg": "b6ab0cf05876fa87398434f711e5486f936c9cf1", + "/assets/outline/bell.js": "d2f20290b4746d33c162071015c76c88a34d03e8", + "/assets/outline/bell.svg": "980637c0d65fedcb20f679600c9115ceaad43d67", + "/assets/outline/bg-colors.js": "a1019a723be8fefe143e9b82818e6d8627f75eb3", + "/assets/outline/bg-colors.svg": "fd3829d38337987087d94c8bff748e5e58351644", + "/assets/outline/block.js": "3f50be960efb556fdd3e3f922ab60c9803e955c0", + "/assets/outline/block.svg": "f2db4072449ad0acece89bf6f969823fa243eefc", + "/assets/outline/bold.js": "d5576c47fdc1617d4e981aa311f6d801b127ffd2", + "/assets/outline/bold.svg": "1ab57ac8d0ee4415e877b5221cb3a35b5f80d19f", + "/assets/outline/book.js": "0b89c4d9e51b53a777a62f2caa501f69d7cae0b9", + "/assets/outline/book.svg": "135927780be6c6f8c4610d22b598787465648cfb", + "/assets/outline/border-bottom.js": "813d02bbec819aeaf7f57d80b5c5934ba4b3f549", + "/assets/outline/border-bottom.svg": "e1df1ca9c1931b135242603e2654db0238070ae3", + "/assets/outline/border-horizontal.js": "91c526bd776946258b737c109f162eb52e91ac9b", + "/assets/outline/border-horizontal.svg": "f592126a2a91a94f6896921d44289c15c2cd270e", + "/assets/outline/border-inner.js": "d77165b25d77483ce0d20f85643bc75f9e949132", + "/assets/outline/border-inner.svg": "604bde1e732425ada3048e6287a1fc550e2cf4cd", + "/assets/outline/border-left.js": "0378535adc0791f2439df428f65065a9e7e870ba", + "/assets/outline/border-left.svg": "8f0137bd6950d90a76c2727e0520ef4deb70830b", + "/assets/outline/border-outer.js": "8db97ff19560c180fd1963738b87a5811f49bb3d", + "/assets/outline/border-outer.svg": "0ed8fdb9d7c09e9b4ffe42be7bbc80357684f1f6", + "/assets/outline/border-right.js": "03ca372048831852b55ad5a118e6f4d1736ec91b", + "/assets/outline/border-right.svg": "c78df4c3fe2d72cbbaca88ae7940c7023ef1f39c", + "/assets/outline/border-top.js": "934bf9e24636ab4aa744ed3edd7087ffe6c4e88b", + "/assets/outline/border-top.svg": "c5fbea1329e30a50a1656d3b8af28e40fdd49fe9", + "/assets/outline/border-verticle.js": "82b7e49a1d1cfaafc280a7940f4a58bdff5f17a7", + "/assets/outline/border-verticle.svg": "ed9785645c4ca9860827ea997df4c32b9bad63ce", + "/assets/outline/border.js": "b495d630c819864b46ba0bf18e34383f0f661423", + "/assets/outline/border.svg": "455aaff6ab5d293ff2c947e11b1138301b0695e2", + "/assets/outline/borderless-table.js": "616ed401d27bf8f510ee9bc8bbd32c8f93f1fb32", + "/assets/outline/borderless-table.svg": "e2338ffd30ccac115ecf18e36222fdc0cdfc9198", + "/assets/outline/box-plot.js": "99107694a4c4d456040721bb02083b5a62edd9d2", + "/assets/outline/box-plot.svg": "b21d0bbb287142d146ef278b664572e6ff9cc30c", + "/assets/outline/branches.js": "5fa704b5aa71068978a5c62278869f617d241d2d", + "/assets/outline/branches.svg": "a171ea34e0781be9acaf0a0161df7869dfbeb3e8", + "/assets/outline/bug.js": "0f26a48d15065cac237cadafe8d3b39435cafad4", + "/assets/outline/bug.svg": "32789dc7f9d9361d47c0fd9b2e32995a9b3127e6", + "/assets/outline/build.js": "df28530d602f1fd24b1a43c5348737feec18c8fa", + "/assets/outline/build.svg": "47a8e7db7755abe08e6aa98494a82d42dd8c5016", + "/assets/outline/bulb.js": "dc3e3a1f0f14f7b67a4fa24708412fea8e082664", + "/assets/outline/bulb.svg": "afde987a30db5f1f0838ae52afaee83c0d8c5c05", + "/assets/outline/calculator.js": "5323d203903eaeca2d64513188986838d324fb75", + "/assets/outline/calculator.svg": "75a7a2d41f84f4be6fb4410599d259344c03b6c7", + "/assets/outline/calendar.js": "a2749fce1904909d13c7cf9f6040404771a7d328", + "/assets/outline/calendar.svg": "8088845727a8979c29c30086315857b4d37e5c40", + "/assets/outline/camera.js": "dc4dbb7e7d24a28d4731fe8d846e1bb253909b65", + "/assets/outline/camera.svg": "2a4ec2186324a4d544dd0dc6acb0b0b68431eea3", + "/assets/outline/car.js": "c13bb588319f0b4fa62417cfbd72a73f5d7d6902", + "/assets/outline/car.svg": "cd259c7987055c610b8c5148debe635625c2a457", + "/assets/outline/caret-down.js": "d5e115193e4d61ae02edc92e2212ff976794c6b8", + "/assets/outline/caret-down.svg": "50bd0aa2b17526454555b423578953936b4bd096", + "/assets/outline/caret-left.js": "3cbf65818ad47922fb1d79a4a1974c2978307f3e", + "/assets/outline/caret-left.svg": "3ca7e4d837441a7c5b9008433ef5c345f1800985", + "/assets/outline/caret-right.js": "be4934d68b28b64457f10551cee7ff8d97b02bda", + "/assets/outline/caret-right.svg": "cde3b6f36cdb19c552931b675a65377fb91e2fac", + "/assets/outline/caret-up.js": "205064052a10ec57426f37f01f96f20abf175a32", + "/assets/outline/caret-up.svg": "c1e849b5119c7ed0a637a1405277ce02469986a6", + "/assets/outline/carry-out.js": "1bb7e58758286671930bad2c7607608f8fe31ee5", + "/assets/outline/carry-out.svg": "9e81f37e6641585e18343efcb776e4ee2da5d830", + "/assets/outline/check-circle.js": "798dad3d71f3123c125588f367235e359d2d0d57", + "/assets/outline/check-circle.svg": "e607e2307b9a4e63f6eeabe36ee67e0b2707a872", + "/assets/outline/check-square.js": "86600101ac7f3f8a6729b6a14ba10be01c318511", + "/assets/outline/check-square.svg": "296b18d2b69cd4be0c5336299a4a423a329bf8ca", + "/assets/outline/check.js": "fc571055fb1e8c27c36b4d7cc6208710c56fd28f", + "/assets/outline/check.svg": "cd670b7297d76a46931b0dfc3fff2c8808c341d1", + "/assets/outline/chrome.js": "50582ad80eb59c448876b7e81b91d81ef3736762", + "/assets/outline/chrome.svg": "eef13b8ccc7e3806e2096ca2fd6b6e83fa1f798b", + "/assets/outline/ci-circle.js": "30e44fb0840a0944947d2a8771b25b68e65a1754", + "/assets/outline/ci-circle.svg": "c33f1c1420cd82303a630edfaa7e093ffa4ff9b7", + "/assets/outline/ci.js": "8f64beb317a30bcb93524678a7181377001795c7", + "/assets/outline/ci.svg": "c33f1c1420cd82303a630edfaa7e093ffa4ff9b7", + "/assets/outline/clear.js": "b59d401a1ccb84c9f52d309ee7c247dc961dea5e", + "/assets/outline/clear.svg": "4bdd7826f16854b04c3aa5f32964181e04e55595", + "/assets/outline/clock-circle.js": "2c7a656d9a51ef9049f0f6b680c46d6dccb01b52", + "/assets/outline/clock-circle.svg": "5b6473cf1bfedcf66bd2018c9a163ffc86e62492", + "/assets/outline/close-circle.js": "7409365df6746fb537a9c1808ef3407e7c400946", + "/assets/outline/close-circle.svg": "328839a2483b094fe7c3205a232e8790457210bf", + "/assets/outline/close-square.js": "97c3d82d3c2dc190396c2f52f85d300de06c6219", + "/assets/outline/close-square.svg": "ced80aa5d99cdbd47e665e48a30ba061de70f407", + "/assets/outline/close.js": "a4af219eb7b4786f09136c79ebd839fbef25f687", + "/assets/outline/close.svg": "c074d0f7e5b2e564e97f03f4c783720c8e167b56", + "/assets/outline/cloud-download.js": "452ca584b915001dfbe88a4573f76b44990a9f96", + "/assets/outline/cloud-download.svg": "4964462fef7096ff52e18dfb4d5ab5e36ba4390b", + "/assets/outline/cloud-server.js": "2be5795c67ba25c7c9853f77b22a26f32f4e3455", + "/assets/outline/cloud-server.svg": "4c23795f3b1179b12f1da88674571da1ef57ed1f", + "/assets/outline/cloud-sync.js": "737435da8a22785a50b9d157385991efd6f799a5", + "/assets/outline/cloud-sync.svg": "f60521948e53ca94d6a269aa7485c51fd76cc522", + "/assets/outline/cloud-upload.js": "dfe84227de64e6fc3b8249cd3fd20a2620abecd4", + "/assets/outline/cloud-upload.svg": "b32d94ab426b25d7a629a3f1829add2e2dc3e2d4", + "/assets/outline/cloud.js": "93456024b2492ce515fb3d1aa34a3cc2c568042c", + "/assets/outline/cloud.svg": "359300e28542e56ab19e28dd49c897b9a90d9b03", + "/assets/outline/cluster.js": "418d74a81e00b83dcfad0e3297df617e8ef4781c", + "/assets/outline/cluster.svg": "7eda45e119f99a62161b7724f136bd30f841ecf4", + "/assets/outline/code-sandbox.js": "3dd0df1e0d27a1fed257e1a2036957dec642e146", + "/assets/outline/code-sandbox.svg": "590d5692768efe1c3d443bc31409aefa053cbc84", + "/assets/outline/code.js": "77fed5892cd37b09646dcb5cf5fb5b4027d8b69b", + "/assets/outline/code.svg": "3a6dbe481260e9cf2e193d9b0b5e6748d8a5fbab", + "/assets/outline/codepen-circle.js": "d67bc75146685602686d850d80b9ee7972bbd3bc", + "/assets/outline/codepen-circle.svg": "1195e7ac4f8d628b510a5aa5afac098e345481d5", + "/assets/outline/codepen.js": "c701a20f6dfbfb190ee7cf1aa7f71d2e82bc3597", + "/assets/outline/codepen.svg": "b102fb8f1469ec542505a8cac82f55a63144c13a", + "/assets/outline/coffee.js": "955ef447398eafd39b61a1e64654146939ea6b0f", + "/assets/outline/coffee.svg": "5f4d5223e161a0e8268724c6cb2acd546fc0dedf", + "/assets/outline/column-height.js": "cbe8d615ee14309d32eac68fb1dbf7860c5936a1", + "/assets/outline/column-height.svg": "ea17d99e883a5a5745aa7e3987a58a5743524b0c", + "/assets/outline/column-width.js": "3f7e933f869c04ed9b2d3217e444030a7d65c69b", + "/assets/outline/column-width.svg": "d73c7e4e91ba4c8469c9b23e4bd4d65e4ef2519c", + "/assets/outline/comment.js": "b82a297b1a8ce985aa4ed05bdf50fedff2dff201", + "/assets/outline/comment.svg": "a71cf511f28521df5b31fee4e6c120af5b315748", + "/assets/outline/compass.js": "c12ef7af2359ce52218703636248096becdc396c", + "/assets/outline/compass.svg": "7cb055c554815566d7ffd65188fbf9d887d05af1", + "/assets/outline/compress.js": "dedcc3d5220e4685165bba4b4e553bebb4a4f741", + "/assets/outline/compress.svg": "6133129029fd4134a7096b7aee9742eaa3f69222", + "/assets/outline/console-sql.js": "d7947835439bd77c93986be957ef2327bfeb908d", + "/assets/outline/console-sql.svg": "53dc9f71c351f3a5eae6496cdcda14d4729d2290", + "/assets/outline/contacts.js": "6384bc44504dc87d9ca3f90c42c022d494da58fc", + "/assets/outline/contacts.svg": "492cdcd36c15282a6f47604c974b3a8d0ab87bcb", + "/assets/outline/container.js": "af710fe68d3578cb66b15039ca6fb40b21c4f9ba", + "/assets/outline/container.svg": "173113cd91dc79973b6a7e7fece57d55f3e26ea6", + "/assets/outline/control.js": "8289c24bc7d61f22b50568235b1b1a3dcf1ac898", + "/assets/outline/control.svg": "eae314f0c75c1e1672541e4f59b40bcff89ee6f7", + "/assets/outline/copy.js": "640a3f5481b362070f28801b8c96fec84648083d", + "/assets/outline/copy.svg": "559394fff79fe68aaadf7f8ea6c40bb64018c91d", + "/assets/outline/copyright-circle.js": "58a15fa5eb23b29b82b76b34c192bc04aece5832", + "/assets/outline/copyright-circle.svg": "e8c6838f41d6ed5c98fdb8aea1e251df61558a68", + "/assets/outline/copyright.js": "3168e850f52d4aef24ffdf6f2d257a89c926ad4a", + "/assets/outline/copyright.svg": "e8c6838f41d6ed5c98fdb8aea1e251df61558a68", + "/assets/outline/credit-card.js": "d3e6d7cb9e78592503b38ebd13d27cc448967130", + "/assets/outline/credit-card.svg": "340d659b35cb0617f9033469fffb58aaa1f9b469", + "/assets/outline/crown.js": "0da1a1de749aa04137943330758860830bac29be", + "/assets/outline/crown.svg": "768e917f1e11d14de5b9ff9f3476a3a2d708ba5d", + "/assets/outline/customer-service.js": "09715765b90adbab97d245de7b858223c6c21b5b", + "/assets/outline/customer-service.svg": "a39f05182486c90c81f0ebb2dfbe67e596c15544", + "/assets/outline/dash.js": "b73dd4ea8d03ed0a4dc115579071e9e109ec4833", + "/assets/outline/dash.svg": "0d20a7b9cdd6de83a433053ac2b1573562346052", + "/assets/outline/dashboard.js": "1bb14e27d30f63927961be2313421d80fe4ee120", + "/assets/outline/dashboard.svg": "ee57a74821cddd0751220ed42e076b8093ab5aa2", + "/assets/outline/database.js": "27ded4090b50122598e17c09859a783d89642964", + "/assets/outline/database.svg": "37ebf82e2cfd3bd6c9b7a9fd1ac8fc962ea053bc", + "/assets/outline/delete-column.js": "43fa5e38390a8f6c61903839eed5058ebc9ecb96", + "/assets/outline/delete-column.svg": "c21db59b364aef5ba159f8e995c6c553a10391b6", + "/assets/outline/delete-row.js": "01cf4c6ac96077416a06b33bfb4b7083cdccee14", + "/assets/outline/delete-row.svg": "ce269ad91491cd5aa08f7e3d5e8145d4a06d8194", + "/assets/outline/delete.js": "9b98435e3170debc4458d1caf5837d07816b0b03", + "/assets/outline/delete.svg": "e74d2917485570f436bc504b337a789063b15cdb", + "/assets/outline/delivered-procedure.js": "e554c2aa9461566ca9915040d460ff6e98487426", + "/assets/outline/delivered-procedure.svg": "9bf258cd5573638df3b646c4d3294a1ad20dac54", + "/assets/outline/deployment-unit.js": "5efea95e58fe66ae9bb60a2e58a48c752f47656e", + "/assets/outline/deployment-unit.svg": "f492b3c6c4536ed3100a3398636444beb6f4562a", + "/assets/outline/desktop.js": "51f8455e2001f8359f090b36ddbb85b139c031ab", + "/assets/outline/desktop.svg": "56231f80e6e3d0d12a7ce83fb9e71bef585988f1", + "/assets/outline/diff.js": "dba5efc897bf86a580ac9a8da56ff5e6acf3f8c9", + "/assets/outline/diff.svg": "a4a70160189cd9fcd1fbfcaa38456989d710b492", + "/assets/outline/dingding.js": "0a37a3f7efb019d5f5e135dfa53fa496c4036f5c", + "/assets/outline/dingding.svg": "b25f69b5ace12e153a6b95eb781d310637d9f1a9", + "/assets/outline/dingtalk.js": "50fc911c160f4a0085b54b3682804cc05b3e0cbd", + "/assets/outline/dingtalk.svg": "b25f69b5ace12e153a6b95eb781d310637d9f1a9", + "/assets/outline/disconnect.js": "fd696112e65ae07470ce4538ef4c3ea5c09192cc", + "/assets/outline/disconnect.svg": "ccf8557f96a845ffa867fe45e53cdb685990aff0", + "/assets/outline/dislike.js": "6ec44d5501f25d6c5e03960c0b5755ae53899fec", + "/assets/outline/dislike.svg": "595ba5b53656faa574dd3bdab9268234dffdd691", + "/assets/outline/dollar-circle.js": "2bf4f4380bf49239206ee2d14e11a67e52af5080", + "/assets/outline/dollar-circle.svg": "080bd7dafc5a7fe6a9b59dadcf4b105cc92b5325", + "/assets/outline/dollar.js": "b5bcc0464ac5be806b09d1c19bacb9f93f7825c4", + "/assets/outline/dollar.svg": "080bd7dafc5a7fe6a9b59dadcf4b105cc92b5325", + "/assets/outline/dot-chart.js": "86187a5675692105f1a04703466275549376d7ef", + "/assets/outline/dot-chart.svg": "5d6d4faf96fa2207ee2f93b54c8ed901765dec39", + "/assets/outline/double-left.js": "17f04c37419a50c92c18b94c810c13e115818479", + "/assets/outline/double-left.svg": "913ee86a598eceedea5266d2fe957e891293faea", + "/assets/outline/double-right.js": "23ea83762e39fa5f29c8d3fe3bf4e897a4e73afd", + "/assets/outline/double-right.svg": "2c8e9a6e1ce25d145bf6c1c3e18c818870d197e6", + "/assets/outline/down-circle.js": "66ee2a9ae82aa6ef19440fe7f3b6123e43c01a8e", + "/assets/outline/down-circle.svg": "b1d303fa890d7fc2f3a3f5f666dfdc8d34c8db82", + "/assets/outline/down-square.js": "f289ebdd59d192ef87ff1abd78889924fc99b9d1", + "/assets/outline/down-square.svg": "bcee698ea4d2b7976d9d4eb907ac622de4e1094f", + "/assets/outline/down.js": "2fbd6dd80a13697ab72474860dc6bd301308eb08", + "/assets/outline/down.svg": "19ddf7473454b84413b2b1d1e6dfd964987083b3", + "/assets/outline/download.js": "a2a270d585f30aeae87c0454b2c294acddab3756", + "/assets/outline/download.svg": "d474f1b03e1db2f1cc15191a737dc46c6e1c4a73", + "/assets/outline/drag.js": "c4dbb385dd2df7988595d3e929254d22071c2f64", + "/assets/outline/drag.svg": "3a043736af6bd4aae2a3e3d404e5b6c2d77acd66", + "/assets/outline/dribbble-square.js": "b3c24a4276debc8d7127bab9652fa9de89e062f5", + "/assets/outline/dribbble-square.svg": "59f4d610b84e408805902484c63a9b50700d2a98", + "/assets/outline/dribbble.js": "29c52f1e564d2e2a4d5afa0651885bbb4bc63586", + "/assets/outline/dribbble.svg": "793c770c9f41c63c75594a4c39830be572183fe9", + "/assets/outline/dropbox.js": "106e930e507b4b6e42c9f8f733e4664a0adb517a", + "/assets/outline/dropbox.svg": "f6add0cac0d3520ffc9de852eec40ba52838d840", + "/assets/outline/edit.js": "b9bb37c79ba65d5e10ae39136681147cb31d5c62", + "/assets/outline/edit.svg": "a3fbaf4ce01f79c5cbacc517b71a521b9f47bcc1", + "/assets/outline/ellipsis.js": "a0d2eec87b2a8066870f6659a0345c0bc8a44761", + "/assets/outline/ellipsis.svg": "9c23b0cc9caeb581b92aa5ebc00a8bb665517532", + "/assets/outline/enter.js": "db97a05958f38e240bd1f5bc15f2636689f62966", + "/assets/outline/enter.svg": "d0bc54ef136fbf9d40600f2e8dfbddc85fe4c246", + "/assets/outline/environment.js": "d1b9b81af1073e87690ee8664a5442d546482eb0", + "/assets/outline/environment.svg": "b8c3877a76bd7fcf6dab2301c4be01b863d06680", + "/assets/outline/euro-circle.js": "9d8f7c371e0ca0771795ac8f8648c0c23dd94db2", + "/assets/outline/euro-circle.svg": "e9452ac45f793cad147d27797362ad781b22a50d", + "/assets/outline/euro.js": "942c0691b828bd596875dddce6a5a711eebdb2e9", + "/assets/outline/euro.svg": "e9452ac45f793cad147d27797362ad781b22a50d", + "/assets/outline/exception.js": "ef439c8496be4e4d89664eab190d6458118ff363", + "/assets/outline/exception.svg": "865927822835b10602535df8a82adab91fb3249c", + "/assets/outline/exclamation-circle.js": "890efce49ded80d13d75bd50c3ffa268cceb99d7", + "/assets/outline/exclamation-circle.svg": "a7347fde595b2a3b1c8f3d470fb9af6714788b04", + "/assets/outline/exclamation.js": "6a2e8ea33c53ca8acad30446864c33833b5f11b0", + "/assets/outline/exclamation.svg": "09e9aa482c69ee44039b370251684c233c995d61", + "/assets/outline/expand-alt.js": "76905bccb8909109a013dc1d47ad8595ef6df283", + "/assets/outline/expand-alt.svg": "9cc10f90f7836b58ea1589bb4fd2b48e1dc8ceb4", + "/assets/outline/expand.js": "1cf3875334183b0acac39c499ed05526399ac318", + "/assets/outline/expand.svg": "ac458668a7bea821aad268337db23f77f4474f8b", + "/assets/outline/experiment.js": "84a5f9ed4933693e2f19cae54c569645132297e0", + "/assets/outline/experiment.svg": "a5c20ffeda4d7483df9eb7f5b6d5fff61cfefe56", + "/assets/outline/export.js": "2df5925a56cb91e100d384360c288e140e88ff93", + "/assets/outline/export.svg": "dad8ffa2349ce9f4de1dadb8b3e9082b82c0cee3", + "/assets/outline/eye-invisible.js": "4be8caef129d6af4733fcdbc247c1417e1bf2f1e", + "/assets/outline/eye-invisible.svg": "9678097f3646e90c931f341ddae42eea9d44abc4", + "/assets/outline/eye.js": "d98b825f667e9df2c63bf9107e2c6c4cc0b7abd0", + "/assets/outline/eye.svg": "ba6e4ab3151a13a176744eedf9a9f4c52ee29fb3", + "/assets/outline/facebook.js": "cbfdee20629a154bb60a30bddb4e4efea1c39032", + "/assets/outline/facebook.svg": "2fd6a184be2248215ee5bf21a08434a73457bd2a", + "/assets/outline/fall.js": "91a9ba093d922a93e655e736383488bc028fcbfd", + "/assets/outline/fall.svg": "b08efa574260ed507c569083b5c15f7b2faacc71", + "/assets/outline/fast-backward.js": "48dd7266f8d3d994c2decc14f5c6f108c64bf2cf", + "/assets/outline/fast-backward.svg": "9472cb0d3a9646375c21a56612edec62a86f8411", + "/assets/outline/fast-forward.js": "bb968ee4db2f3e6b3a6f9161a770fa41c6be041c", + "/assets/outline/fast-forward.svg": "43715d7ce1eaa43abcb1dc96a74f89db01019552", + "/assets/outline/field-binary.js": "f83c11db643d05980a81916d874e55807f2b046e", + "/assets/outline/field-binary.svg": "80b9a44e32f0ce7d8b9600c31b600c125d8d497f", + "/assets/outline/field-number.js": "d8cb1cfca3099f85829d57eb0d45a37775b8ead0", + "/assets/outline/field-number.svg": "6eae674cd258bc3fefee5fcf955d992afb8aa519", + "/assets/outline/field-string.js": "b3f16ea7582af55239f9432e07a6e272b7c344be", + "/assets/outline/field-string.svg": "3cb82973fc5f14a4585a78d13b85eb9c8efd39f0", + "/assets/outline/field-time.js": "ea1671402010c6f78909d1be358d5e42d8434af0", + "/assets/outline/field-time.svg": "7d4d450ab2b74788dfd4668e3556a2899b88a1b4", + "/assets/outline/file-add.js": "d68d628c3bb12e396d7c224ed277396c20f00390", + "/assets/outline/file-add.svg": "fe37c3e5518b9949e5c3e84df72c93c6a3d2c6e7", + "/assets/outline/file-done.js": "32db44026190c24f79b041eec04d58d4cef54618", + "/assets/outline/file-done.svg": "90026b078806b852e5d8a38e452e112d288267ca", + "/assets/outline/file-excel.js": "01d399075f2ac5e00214815f42ab36723b3fd1c8", + "/assets/outline/file-excel.svg": "337b5f1075fb14603fb673f18f07e70cc9f651f4", + "/assets/outline/file-exclamation.js": "ef8aeeed08acf4d2f350131924f6912679ea510f", + "/assets/outline/file-exclamation.svg": "e678b6d35e41b2d740d3e806f2932293a4cf2afe", + "/assets/outline/file-gif.js": "0c3f15c973f12ad27e8d42312614727a80dfbdd2", + "/assets/outline/file-gif.svg": "e7569d08e0268510cb00f2a2ac9627171b196d09", + "/assets/outline/file-image.js": "db1b1c3d8c1ccb2810c1c460fe23b7207641871c", + "/assets/outline/file-image.svg": "a335bae75ac71d506223c69486f4547f152965b8", + "/assets/outline/file-jpg.js": "ef91369228baae43a1a848830725d7e8d3a5b767", + "/assets/outline/file-jpg.svg": "6136917dad97203d42683c6ca8f1a61fd0cf45e1", + "/assets/outline/file-markdown.js": "730b375fcf4848b022374ac4d9fe77a9140fa268", + "/assets/outline/file-markdown.svg": "f0591b5c1352be5dcb49334134904393bb0ff9fb", + "/assets/outline/file-pdf.js": "6b786e81deaac82e29b3aaab1c5b0d647daf57f0", + "/assets/outline/file-pdf.svg": "bd3a34d611401c95ff5a41bec180bf6028722c54", + "/assets/outline/file-ppt.js": "61d65e39c0ab13cb3ef4f61cff810b81b1cb1b2d", + "/assets/outline/file-ppt.svg": "b05c19690eff3a77b529bddf7ef99920f3dae405", + "/assets/outline/file-protect.js": "0ea45ec3c8081da738364570f6bad06dc0f24beb", + "/assets/outline/file-protect.svg": "5122bc4f2801af7dc79b4e0c17649284e21aef2c", + "/assets/outline/file-search.js": "d32d4ef7d63b83266901a45c36f28a6433c9d728", + "/assets/outline/file-search.svg": "3608219e4033950bd1b2a3d5a8b6aae2d8e0d81b", + "/assets/outline/file-sync.js": "2b24175a17107d505054bde249a7c3acc3e3b96d", + "/assets/outline/file-sync.svg": "3c53adf594f8ad031efae5019f71f857af4fdd62", + "/assets/outline/file-text.js": "859882819da01e5ff85d0972e2a8dbef54ca9a55", + "/assets/outline/file-text.svg": "c3539a94a6f344029ad8a777b7604d4ca5fb1376", + "/assets/outline/file-unknown.js": "ce5d99e8d88700fa523e442cdd4bca8510285ae8", + "/assets/outline/file-unknown.svg": "8f44a27196aa6cb004f5b478406d5ae030411eac", + "/assets/outline/file-word.js": "469d3fa0f2ffd59a78255c33efb1ff59d1ef4c77", + "/assets/outline/file-word.svg": "c06a1eaf5a1a942f853f16bf7e94cf73ea3fc363", + "/assets/outline/file-zip.js": "910de9eb6284bfb700306213a8111581b28f986b", + "/assets/outline/file-zip.svg": "00907a49fad06937411b5699e2a6665d4d2e375a", + "/assets/outline/file.js": "37b48249b98333087f42435b298ae4908a03b901", + "/assets/outline/file.svg": "8adf5e0c01644384825e321a904402c3ca7d74d4", + "/assets/outline/filter.js": "f8b93f9153751346d5cb187412e2746df0e6aaff", + "/assets/outline/filter.svg": "d3273e5504345731c3bfc381b59f99c84c28071a", + "/assets/outline/fire.js": "2c3b20b4f5bfc2230a04d5b757777db86b058c30", + "/assets/outline/fire.svg": "920d5fbbc4165ee7557130a1a0cf23251cd113ba", + "/assets/outline/flag.js": "f9489a6aef7679203aa4ee3a705651c2da212fed", + "/assets/outline/flag.svg": "96e8e4184e366806c121c20aeb3f560f26593ec0", + "/assets/outline/folder-add.js": "519b2a858209aecc982e34b762d61d35a0e6c075", + "/assets/outline/folder-add.svg": "f89485b8b7b561ef8fa84758a1120b2f54a28683", + "/assets/outline/folder-open.js": "12e5519394ed1893ccac6dd656fcfcbb2985822d", + "/assets/outline/folder-open.svg": "48792bfe7a80169df72a88cce2054f71d36c47c3", + "/assets/outline/folder-view.js": "d224727403188e5508ec8cea0458425202f240e3", + "/assets/outline/folder-view.svg": "ac79197d1c5db6954638b5894811a8d06ba55faf", + "/assets/outline/folder.js": "543e5521f3b018577eb3702d778510c340b59855", + "/assets/outline/folder.svg": "2072f1efef2e4e41cea31436d91ec6e46ed1f32d", + "/assets/outline/font-colors.js": "f5f2f31d323a7a65592f28ffc2edcf05606308bc", + "/assets/outline/font-colors.svg": "5ab51c8b83c9e9e94579f388416798c70592f6ca", + "/assets/outline/font-size.js": "1ac74873eb91cfaa2f3b880ce4d0b72a5db14e2c", + "/assets/outline/font-size.svg": "2fd6e830be7525efb86254435640918b084dbeeb", + "/assets/outline/fork.js": "af589cc71ec9dcaab75ad87303702291ffdf2dcf", + "/assets/outline/fork.svg": "2d8341889aa6d9ac797ba3383b3a96fbecd06ffe", + "/assets/outline/form.js": "54ad466c706f9ce12b1aa181b577d0166fd6e507", + "/assets/outline/form.svg": "4305731a4688dcc9418b9ccb08a39c75910772cd", + "/assets/outline/format-painter.js": "adff5542bde7d7b8f9bd41693873ec0c600c21d2", + "/assets/outline/format-painter.svg": "38fea8cc0b146a58339a6fd80f7ca6b19d35ed4a", + "/assets/outline/forward.js": "6f9291b7c329a2e97d5743e7cc6a058dbd14aa83", + "/assets/outline/forward.svg": "582c058547b923370e487896e18928ecfcf63c76", + "/assets/outline/frown.js": "f4103cd75839e0261be5112c8f585598ba5a07b9", + "/assets/outline/frown.svg": "e8c6a404ef0ba5ea94d775c1105d5063cd8e03e3", + "/assets/outline/fullscreen-exit.js": "bf4b9f79041996b1642db6c911d5399fe958e26a", + "/assets/outline/fullscreen-exit.svg": "c34505566b464f71e0e1d8bee4c6c38f3e2c6fb7", + "/assets/outline/fullscreen.js": "24615c9225f6e8674e64d891e90f9400b12895b6", + "/assets/outline/fullscreen.svg": "da32bc7cfcf16aabafba7c1496ed9840e5906c76", + "/assets/outline/function.js": "2db28696c73d1060ac652bccb6d45e015a58ea49", + "/assets/outline/function.svg": "3ac8e172be5f1052092ff2db6a7e98e441612ac8", + "/assets/outline/fund-projection-screen.js": "41b31812c106c186a0cf939f68a4f4bbbadcf542", + "/assets/outline/fund-projection-screen.svg": "12419720104157328f29a22b9806a2c14e7dabf6", + "/assets/outline/fund-view.js": "c8186b8b7ce66bce51238bb921fde8a546ab261c", + "/assets/outline/fund-view.svg": "d1d8949b7000b664111d6f29bc30cc162b274a38", + "/assets/outline/fund.js": "6a4e253e141a8118c1eab9d38d2ffb9b4a46ec2b", + "/assets/outline/fund.svg": "1e04e58c3a3b7e68752656fe8d63868175bc5666", + "/assets/outline/funnel-plot.js": "5cde014b48cfdb011b637f14ee08c7e9fee2ad90", + "/assets/outline/funnel-plot.svg": "4a9847693ccd9b3fffc7c338d8d2a4be630a5a80", + "/assets/outline/gateway.js": "cb26c5aafc40d197bca9ff3c2abd521fd17bc29d", + "/assets/outline/gateway.svg": "6ad321e772deb3989ecd9de8310354f4f04bf3ba", + "/assets/outline/gif.js": "d4ef8e13857702b8fa4f2db7aa2c65003a177385", + "/assets/outline/gif.svg": "4cad0a70707d382fc4404b15d8f4091769d1d979", + "/assets/outline/gift.js": "194847b1cc6e9697464a5fd8dd1f62d37245aa0d", + "/assets/outline/gift.svg": "11dc56f0d613ebbb2e52665fad755dcecf18edb2", + "/assets/outline/github.js": "d9b288bdcd5a996c378ecb0c8675374b26757119", + "/assets/outline/github.svg": "0a2e23bf5570ed06813f2db99721bb9c5396be91", + "/assets/outline/gitlab.js": "57a16ad9b67b80da64d449426b502ae837fc91fb", + "/assets/outline/gitlab.svg": "11803e34286ffadda852cadc67c3d301b3fa7ecf", + "/assets/outline/global.js": "ed178fc4d55519867798ad9a3855f726f1a3120d", + "/assets/outline/global.svg": "4e3490c346d1a83405b35b9be30a0490b0f4d60e", + "/assets/outline/gold.js": "17819c70c0999634408c863179b119243c4d4673", + "/assets/outline/gold.svg": "53346fcac7593373c4212878e13876cfa6904020", + "/assets/outline/google-plus.js": "a044c4d13cf18198ca00b85674fbc699a0460a2c", + "/assets/outline/google-plus.svg": "56ae0430841247e5af714bea9f2ff2aa3dc3b64c", + "/assets/outline/google.js": "e5799512fe86b82057013f291e9657ac4152490e", + "/assets/outline/google.svg": "d4200f5de544c40ece2e6b6e03faa522983ff4db", + "/assets/outline/group.js": "84c9a7ecf7855cea8232349240b3437a4273b153", + "/assets/outline/group.svg": "425f2ef01f53280b875ebd7502f0aac2653a63c6", + "/assets/outline/hdd.js": "338fa35e9fcdcbcdad6bc92d4758ab624bba1b76", + "/assets/outline/hdd.svg": "9d4c1bb09297e0b710397da58c3f6a53f559bfac", + "/assets/outline/heart.js": "9598f81c0e04004079fcff0454e7761ec3ef8e1b", + "/assets/outline/heart.svg": "a913e46e01bba04a3cedb154153dbb7f71dbcde3", + "/assets/outline/heat-map.js": "e3cdefd447568f56cdb58385ad501f1009f9170f", + "/assets/outline/heat-map.svg": "424d3a6f063b9eded050ecc67a028f09d0bad0ec", + "/assets/outline/highlight.js": "ee193af002a5f87614d9162e2c4e46ba33541cde", + "/assets/outline/highlight.svg": "10c38de2ab624a0553f16c4a1b243844406f8e67", + "/assets/outline/history.js": "90d398576fce8a67c0b9d62469373b1e58de3eba", + "/assets/outline/history.svg": "7c95f0dcb033b0b8fc07a78f3dba9bc3b2dfba47", + "/assets/outline/home.js": "9305d1873e04b856ae96d9a71e1c6c4f76b5a7c4", + "/assets/outline/home.svg": "3bf3a951726be554ee5bd28215b3aace7bbcd269", + "/assets/outline/hourglass.js": "1a06d6e7f637bebadb642e3189ef0a0c0f538c8d", + "/assets/outline/hourglass.svg": "714436a639f14f55f72ad2aff706e053ac0a21d4", + "/assets/outline/html5.js": "63cdcec264497663a6555957810165e504d7d00d", + "/assets/outline/html5.svg": "23a6d37a4c0ee56efece38df845765b4257a37bf", + "/assets/outline/idcard.js": "76c31ba1b78c51d8149f42704241aef1c9d64aef", + "/assets/outline/idcard.svg": "5c6aaaf335f5c04e7ad287054bd09cf5cf8fb542", + "/assets/outline/ie.js": "5763494dc247af0e75ca2454eb8bcdd237ab6c21", + "/assets/outline/ie.svg": "60efa764909af2b035db441b24509e235dfad499", + "/assets/outline/import.js": "72d1a1cb999b17a975881290114f1bbec6281474", + "/assets/outline/import.svg": "bfd58147db8c856de76a84a2213763c1563769c6", + "/assets/outline/inbox.js": "32d48c731f1f9868032825d96c20f3f92a7acfab", + "/assets/outline/inbox.svg": "e1478b57ea17314d99b96900655b24b538902ba3", + "/assets/outline/info-circle.js": "0aca2c66a25a3a5f9ec81ce4013e855bdb0783fd", + "/assets/outline/info-circle.svg": "0fb378cab40569382fc7c353140dbe94e531024c", + "/assets/outline/info.js": "685bf5c3047d15c5ea5c06e39ca6f861c8401d28", + "/assets/outline/info.svg": "b7d31b745861f7085011bb5756d2755881c5e562", + "/assets/outline/insert-row-above.js": "b29bfa0c32be53d893a5b178b50535a3300e2b77", + "/assets/outline/insert-row-above.svg": "ffb6d4fae7da68251f2e583f520185e344a614f2", + "/assets/outline/insert-row-below.js": "c4054525a31b8ceeb3de0e94a45ed27234bba467", + "/assets/outline/insert-row-below.svg": "a8e897f5546bf3d3f18ccff359a7325607b6d777", + "/assets/outline/insert-row-left.js": "491fd0a218fa94ac548e6d4808cb9ac21b7127ee", + "/assets/outline/insert-row-left.svg": "afa183a9c12b25c4a908ab9b6c5f317474102251", + "/assets/outline/insert-row-right.js": "21f87f96f1ce15ea44aa6c4ea9c0022a92b74862", + "/assets/outline/insert-row-right.svg": "af96ed9d9d0bc7dd33ef0a91248de5a40fb78ad0", + "/assets/outline/instagram.js": "3c14917dd35d7170c7410b28b7d36524b2f0b060", + "/assets/outline/instagram.svg": "c60060c5c52a4beefb61e7c5c0edd437ae2f3aa1", + "/assets/outline/insurance.js": "326849ec1dbc648e4b92e3a92d62e35e616109b6", + "/assets/outline/insurance.svg": "b7ff59ea43c9e0d7907cb7c1e6471fbff48b05ad", + "/assets/outline/interaction.js": "0fa926915406ea78c45761e6df925a261dbb7b28", + "/assets/outline/interaction.svg": "f913a50963d1fbbe7a071bae844aa9be4fe8050b", + "/assets/outline/issues-close.js": "11b239124d81fa42c4953cd371618b96d105fbc1", + "/assets/outline/issues-close.svg": "0b0d2e8cc4e62b717edb00021da081df17b1f16f", + "/assets/outline/italic.js": "bc04f1b6f0ba7a90f248adc77951648d42de5894", + "/assets/outline/italic.svg": "b5b7b72ea75ed9111f152831daafcfc6ad0b07d0", + "/assets/outline/key.js": "31708128e727d8c17fa582131360330f37f02d2c", + "/assets/outline/key.svg": "6856dff2bf39a6cb238292908a98aef17ded5799", + "/assets/outline/laptop.js": "34b591477db53c8f5ca89528d9874097dab3f980", + "/assets/outline/laptop.svg": "03ba626eed95b7bf2ba56e505e3150a9b2780b5b", + "/assets/outline/layout.js": "1cbbea5048832e82ba94e0e0ab1262f2342f9f13", + "/assets/outline/layout.svg": "8f7cc12d382d15b0746a01465f742305174b514f", + "/assets/outline/left-circle.js": "23961d60e2cf8f243101bc68688c749011837855", + "/assets/outline/left-circle.svg": "6d83b7e376a2df9f6e760e40f4ae644f0ba93166", + "/assets/outline/left-square.js": "920dfd893e7219c3e67c9b2b4e540d97b8ebaefb", + "/assets/outline/left-square.svg": "fdc7b099bcf71be152830cf165efd04faf5e8bf5", + "/assets/outline/left.js": "22d7ea3d741b32d2597b86cdf62cfd18f87e935c", + "/assets/outline/left.svg": "5f1a1baa46f255d193ecd1412eed9a3dd2bd218b", + "/assets/outline/like.js": "57c2d42f06e67b681748539a236b724f998a6365", + "/assets/outline/like.svg": "a609460e10d710d4fcf3f689a845014b9b4c19d6", + "/assets/outline/line-chart.js": "78b1ffea7e681a84d80b85ed201e66b79ce06a5d", + "/assets/outline/line-chart.svg": "58ad09fc74cc2a5cca6a29fdc65bb6b1901d636e", + "/assets/outline/line-height.js": "f4725834dc14350c036a26913e9005545c672db7", + "/assets/outline/line-height.svg": "65a3fc7a2f04af6cbd95fcd0633ddc42ee941453", + "/assets/outline/line.js": "9aacf7206ca98d07827838708915c4036739564b", + "/assets/outline/line.svg": "3997114644257b1262e7bd4ac04003d07722564a", + "/assets/outline/link.js": "a11b5f5159a244cd34d10ee7c9297708af85f0fd", + "/assets/outline/link.svg": "78e874cc451673ebac90ddb194870429397aafe9", + "/assets/outline/linkedin.js": "de956e6385605311361d5494c17025927e1faa73", + "/assets/outline/linkedin.svg": "207874f5ca221f9d07aa799036f8d133ae0fb23e", + "/assets/outline/loading-3-quarters.js": "8370fd368a2b6c2589ceb9ba69281baf775fae38", + "/assets/outline/loading-3-quarters.svg": "7004e97d136e3f6236a6c353ccf4737f89f7143c", + "/assets/outline/loading.js": "f81a08630616fa45fba34a08cba931be63be0510", + "/assets/outline/loading.svg": "52b06fbdd6a09244a59431a84defccca136bd0ce", + "/assets/outline/lock.js": "95483e0b71407ea75bb26dd0ac749cc1492fa5f7", + "/assets/outline/lock.svg": "f6e2b913427090fac8f49d5f81e1fbb4a9874537", + "/assets/outline/login.js": "8aa28a318fe50bb1bc8b6c78590e3635b1952f29", + "/assets/outline/login.svg": "39299423200fc9ce6dea32ef597cda996c4aa508", + "/assets/outline/logout.js": "4e481f72f6896cd96322c041da7af35c88e04e76", + "/assets/outline/logout.svg": "621eebb51edc774541b45ae334d42916d2bd83c7", + "/assets/outline/mac-command.js": "a3fcec637912069152f56f66108241bf60332d82", + "/assets/outline/mac-command.svg": "7e5e1de9bf6fc46f758f960cbfed35a15c840dcf", + "/assets/outline/mail.js": "584756d5dc7d613db8e23ad56fca05d02da8344f", + "/assets/outline/mail.svg": "371f64976ae7fcdb52de50f31243c23f22c49ad0", + "/assets/outline/man.js": "2fb8f0c58514aece63cac3225b9efc0e37f4f74e", + "/assets/outline/man.svg": "62b48fb0fc5991544c137bc7c2aa2e39a668545c", + "/assets/outline/medicine-box.js": "b22398e6b9d66c8443b1ed4405bf1fd893088172", + "/assets/outline/medicine-box.svg": "43f2036ad5114befdf3153a6c81b91608eb2ea99", + "/assets/outline/medium-workmark.js": "76b7b62969c969cb8ef0b296ea3d7cc20701c58d", + "/assets/outline/medium-workmark.svg": "3e42b3da84e0d3914aae2fe3716731bac84c18c0", + "/assets/outline/medium.js": "574bb84ca3e891cec76cffb59a0406f3057809fe", + "/assets/outline/medium.svg": "b06ba564885ca8124ec39b49aade4025271276c3", + "/assets/outline/meh.js": "481b7876fffb8365bb7267e2a0712535650044e3", + "/assets/outline/meh.svg": "118bdc1bab9468a2e1b6f1735357771d430abb90", + "/assets/outline/menu-fold.js": "8ae500b95b7d4ad2a74f119753506d3f9a303d92", + "/assets/outline/menu-fold.svg": "852ffd416a134fa339a632701e8f94ff4bb06191", + "/assets/outline/menu-unfold.js": "aa44cb914cd25b4ef14929c0151e35bd9a7cd3de", + "/assets/outline/menu-unfold.svg": "0569e5b1cac3b42b319e0d71b0fb19fc3413a920", + "/assets/outline/menu.js": "680edacfa920aad580b056d15e9cb3b815ab401f", + "/assets/outline/menu.svg": "75f5c9e92724a20f8e299cfddb956c031a6d6d6a", + "/assets/outline/merge-cells.js": "b18951ed14bdf5f549098212f0c03f2c4dc54d99", + "/assets/outline/merge-cells.svg": "6aa67088e5621179c79b9d223a2e27a433ae34e4", + "/assets/outline/message.js": "f8ee9eecad1770b8b429ac4453bd729e94b41d51", + "/assets/outline/message.svg": "89c9a15a1a80ae127de1c9671d5f64a06b18e53d", + "/assets/outline/minus-circle.js": "82273d620db5cf8d34209f89ec562b2393cb9df5", + "/assets/outline/minus-circle.svg": "ddbf77a844bc80b431b565d5a75b52944ca56cbb", + "/assets/outline/minus-square.js": "d562bc633886fedf4bc2011848f0e24ee2fb1382", + "/assets/outline/minus-square.svg": "a498eef931a6d56732567d689610517e3ba61e11", + "/assets/outline/minus.js": "7a5034bb1c628eb091bb7bd16aed3b8089fde8cb", + "/assets/outline/minus.svg": "28cc92f2e215d0e86b1e9f4f3bb9e7e5b2112044", + "/assets/outline/mobile.js": "3376a782848a4e25dd69ea04527e059c1755829e", + "/assets/outline/mobile.svg": "804f91351f60a86cb6611cece1d392db8ae8f3c7", + "/assets/outline/money-collect.js": "39f50c6b48f6f75f71842eb7d6e7f5b40cb73b04", + "/assets/outline/money-collect.svg": "9adb547156bcc2d39aec95d602e8e45061e5cc09", + "/assets/outline/monitor.js": "00ec16faa51db99e6bee2d666b0ea57b75d4a37c", + "/assets/outline/monitor.svg": "0842deb92d139ca9c439ff24a60a8ebf796e6c23", + "/assets/outline/more.js": "172abead4a62f4e927daae93e0af0e4b2765c21f", + "/assets/outline/more.svg": "75aec0544a3ab6686cfb7f9c8d57dd59a3d0266f", + "/assets/outline/node-collapse.js": "dc411ee2e14055db843ec9265e573dadc601f1bb", + "/assets/outline/node-collapse.svg": "c62bb1df2d133fd81110375e170f59d9620c7bd7", + "/assets/outline/node-expand.js": "4fa059e117c5cd22c0a1deaaa5416bfba20d966f", + "/assets/outline/node-expand.svg": "a049f98ec67e3a03ed1e23176dea7c7d3c0db7e2", + "/assets/outline/node-index.js": "525b0076b6e1eff44593bdf1a36ca37dcc52ebe8", + "/assets/outline/node-index.svg": "edc4d0f5933c990d8f88dc61d73b46bdbc564ee5", + "/assets/outline/notification.js": "ecb446866627723f1677c2ae6e6e80e7f99628a0", + "/assets/outline/notification.svg": "3107f3594a601049900a93e556e6c439936b41aa", + "/assets/outline/number.js": "3e5f94005761b82b564eeb258e4cf2e0a0b67af3", + "/assets/outline/number.svg": "db01f667ec185e19b7d912a22144d14c097ae472", + "/assets/outline/one-to-one.js": "36c2aef4b5140765472140ea539660a84d1d7572", + "/assets/outline/one-to-one.svg": "111e7fc2c9c40b4ece41db5cec650fb289afe218", + "/assets/outline/ordered-list.js": "3dd79a232eba2ae766836a08190312c4ca431d28", + "/assets/outline/ordered-list.svg": "aa8d15ee92a2474b0a55be86fe9038e342cbc22b", + "/assets/outline/paper-clip.js": "05fbb3e3983765b067cd5d2a4fc33f79cf3d0ecc", + "/assets/outline/paper-clip.svg": "bb0f701f787d8d544a64fad2ec32d05d3abf72f2", + "/assets/outline/partition.js": "7b72c1a3c31cec712c14950f38ecd557d4111d79", + "/assets/outline/partition.svg": "5da61aa27bc4fef5c4e8ba611b7739b1f6d92b66", + "/assets/outline/pause-circle.js": "ee2eebb92a0f35ab35b527bbba1559f7938db5a4", + "/assets/outline/pause-circle.svg": "107b667e9d8beb2f19e11ff66f3f87a705e8ed66", + "/assets/outline/pause.js": "26484f9cca722b859c6e52b069dd7b868e33d5bf", + "/assets/outline/pause.svg": "aac4b06142beacd7fbc5082be52ab1e5202579ad", + "/assets/outline/pay-circle.js": "7096253a9c139ca6cec5118b21616cbaf7209bf0", + "/assets/outline/pay-circle.svg": "f809a0125e6058378dcf611c0649ba2a26188a9e", + "/assets/outline/percentage.js": "5c2c2044e7f71acaf9c53a4567e3e312986cda56", + "/assets/outline/percentage.svg": "39c437d4f07e94fe6346c70f6e641740f2bd5045", + "/assets/outline/phone.js": "ade0dbfde0307cbcc251ace52647d2fb0b80ac22", + "/assets/outline/phone.svg": "dfa821d614f67f2587ad9fef55aaf4514217b8a1", + "/assets/outline/pic-center.js": "f944cf3231ca51de8a8107ec2fac4086cd011d5b", + "/assets/outline/pic-center.svg": "5c4fe09ec268549f4b2d440db1fed02840f38579", + "/assets/outline/pic-left.js": "82cd29de117b9770bb300f29505004f02ab3a272", + "/assets/outline/pic-left.svg": "df0664d71762c2ad66c240b3698fa23f34dd73be", + "/assets/outline/pic-right.js": "7e1aa121fdd7dd7bf6a05cb9907e46b8ed9c1d2a", + "/assets/outline/pic-right.svg": "c147c21e3b03082bf2bfe7966ee336f397c09efb", + "/assets/outline/picture.js": "cda37c148a48238fc5c0e718cfe0f56e0403429c", + "/assets/outline/picture.svg": "d8c9a8ffe5f70f3c39ed9d8863ad25a7d6b54187", + "/assets/outline/pie-chart.js": "3e08266ffdeebdea9009366028a2c94ddbdc6191", + "/assets/outline/pie-chart.svg": "86dd6ae088ddb1d03ef7ac843e0d586d6a5c9ee8", + "/assets/outline/play-circle.js": "715f5c865edb77c6b4cee66b70eb9dfec03a3bd1", + "/assets/outline/play-circle.svg": "54114ea104c3b0f1355ae8cc47e7bf845253f036", + "/assets/outline/play-square.js": "7dcb05d9b3789d24c4df7370291fb236acd7e0fc", + "/assets/outline/play-square.svg": "d977aead603248af4cae9b5d662edfd6b441a8f7", + "/assets/outline/plus-circle.js": "1e42d2dff7f8fc6a29e9917fc71e9c206dbce543", + "/assets/outline/plus-circle.svg": "c8c783a0ee92bd8a83b38176a4c61fddbc8ac2b1", + "/assets/outline/plus-square.js": "0b1047708bf002c7341dd0f158a27ca67ac59dd9", + "/assets/outline/plus-square.svg": "5d02bd6691d5eb4097ec1ca9fde0aaab1aac828f", + "/assets/outline/plus.js": "e5ef5c3f9bb6404568f01e7e67812ad97444fc4c", + "/assets/outline/plus.svg": "2c2d52957777367b71cab3035e8badf5a1b6b48f", + "/assets/outline/pound-circle.js": "0707b23edb440586d5e66f92d67cc24e1343e289", + "/assets/outline/pound-circle.svg": "fab3722f3626ea5d7b41f73348d8ef24fba4d619", + "/assets/outline/pound.js": "6133f553da1dffde6b1c284955dd1e4b2f45b744", + "/assets/outline/pound.svg": "fab3722f3626ea5d7b41f73348d8ef24fba4d619", + "/assets/outline/poweroff.js": "1ecb28b40ba5b82533832aa9444d851b38f06f6a", + "/assets/outline/poweroff.svg": "302d1f936d20da9d1cf23f6ac531b0f6ef9675b6", + "/assets/outline/printer.js": "19738f0ef0e92fae456fc458e36982710308de3f", + "/assets/outline/printer.svg": "546e70a299ec11ff8d47d1f7a01d2b8c7cc59310", + "/assets/outline/profile.js": "2ab5224a910cb1ea6cfabc7e5fdcc6be0501b7d8", + "/assets/outline/profile.svg": "b321a64db0bb31f6c1c1bb4fb98f16bd351ec14e", + "/assets/outline/project.js": "79da8d3cf9653606c3795c0d209a557e182139c6", + "/assets/outline/project.svg": "21877d01cf14d46976be8008e395b601831ffa42", + "/assets/outline/property-safety.js": "70b4ce6552d32272b50f233370b45dda405a75b4", + "/assets/outline/property-safety.svg": "0d20110728e78fa714e5fbfdb19499d2f5b373b9", + "/assets/outline/pull-request.js": "4985398a4c2b312f751e0fa871b57b405f943f03", + "/assets/outline/pull-request.svg": "3c68ac66c0392fe752cd8f8bfa817981fb13ca1a", + "/assets/outline/pushpin.js": "bac6800159cfebc5bd7bb9ba6478a31b10e923b5", + "/assets/outline/pushpin.svg": "4868d89fa011f0084fdc59fd5beba9fd4972fd74", + "/assets/outline/qq.js": "73030e8e1b71d72d3b39dfae72dc29af9904aa5c", + "/assets/outline/qq.svg": "10ea1314618b3c0fab8f522aeab8ea17d533e851", + "/assets/outline/qrcode.js": "b9390fbfcbcc42e9720fa77e79623dedc09c03e9", + "/assets/outline/qrcode.svg": "23169ddd9eb78386e3a3903d2a8a55c7cff8dc09", + "/assets/outline/question-circle.js": "26b6c97fe70915a86026d24043956ec01c36173b", + "/assets/outline/question-circle.svg": "2dae17e602f66f8a7dfc475e33ebf5e649e3b378", + "/assets/outline/question.js": "e4aafbc20dbf37c62f0b2c9ee6df01a35428998d", + "/assets/outline/question.svg": "15417086703ff15aa14593274278f0a9a163851f", + "/assets/outline/radar-chart.js": "4e2353e18a45a079dfc4a2ad5952293d749596a9", + "/assets/outline/radar-chart.svg": "590980199637fb65bafbb2275950e56d12bf2198", + "/assets/outline/radius-bottomleft.js": "2ff980222be545982deb14e8681393169fb2971d", + "/assets/outline/radius-bottomleft.svg": "1ac7b25ad9919cb418b499a01dc673ad5cd1c995", + "/assets/outline/radius-bottomright.js": "4984faa896daab84cfee05b38d7d52e6190c88f7", + "/assets/outline/radius-bottomright.svg": "005d12ceb57ce665d92e140a57d9f09e14e61445", + "/assets/outline/radius-setting.js": "9508d46fe2da1ecef874511269def3433f99bcdc", + "/assets/outline/radius-setting.svg": "c6ed6b28181161857109669f66ff6eee9f0ec5eb", + "/assets/outline/radius-upleft.js": "a8b45e8869959ca4c8dde6339d7bddd8b090fa0a", + "/assets/outline/radius-upleft.svg": "04cb04a50c297b04c4586867a59975b9f47e48ec", + "/assets/outline/radius-upright.js": "6c1bd942c1d95fbc634600c3783d9e48ad636626", + "/assets/outline/radius-upright.svg": "62fada738f4f1aaf7419d2fa1246b0f852b23679", + "/assets/outline/read.js": "4605eaa49041eb0800a82ec412da98476f0b575d", + "/assets/outline/read.svg": "89435d7f976b929a0374aaea0fcc10382cc976c0", + "/assets/outline/reconciliation.js": "f5a375422a4650e2fa5ce32e6f70726007c3d82a", + "/assets/outline/reconciliation.svg": "d89a14c5f9016f1eaaea9ccea2b561913d75fc77", + "/assets/outline/red-envelope.js": "d821cc8463284d69233a29fd2e09c74e808341e3", + "/assets/outline/red-envelope.svg": "9b0684244def3233716b6635c7297a526c2f7828", + "/assets/outline/reddit.js": "4559f4d1e3e4d7bff3ba1fa5e7eb5dc140864f23", + "/assets/outline/reddit.svg": "ba5f3442ab9095da4be21800771177b711a1ef9e", + "/assets/outline/redo.js": "a04674463d0adc5a56008505c1cc2676dcb55cd2", + "/assets/outline/redo.svg": "20468dc446fd2e2d901c1d06612e1a8ca430f268", + "/assets/outline/reload.js": "442bb3ee75f136d8b33910a8a83ef50888419037", + "/assets/outline/reload.svg": "6ce222102cbe7d1e2250cb245131fc942b01a961", + "/assets/outline/rest.js": "37ccb50d77d403d1c55430e95488d292f5eef21c", + "/assets/outline/rest.svg": "b20500a195cf7b595b9c336c5a0452bb705008ad", + "/assets/outline/retweet.js": "7175d9232bf92e64ca246d712af6d1b97d190514", + "/assets/outline/retweet.svg": "faef6aaeab2eddeba6fbec57276aa0099d62c195", + "/assets/outline/right-circle.js": "1138ca5f839dad6bf479c26a335cb4f0e3116dbd", + "/assets/outline/right-circle.svg": "42e7cbf5b252bfb8623443b219dc3d1b9539ae64", + "/assets/outline/right-square.js": "178e94cd3d7ac6d2b9fdc8febae93f92f04e187a", + "/assets/outline/right-square.svg": "4461e32b7dcca0fcee04f73637a58f40e83024a6", + "/assets/outline/right.js": "c68895a11538ddeaba669028b658516d84e30d59", + "/assets/outline/right.svg": "9daf2ad931bdb118172f680dcf84ffe204063ae4", + "/assets/outline/rise.js": "ad7738f64a8b5fde7564a466e87222c7ced95132", + "/assets/outline/rise.svg": "634f2c165558e78039b0a15a8ad0919d433c691e", + "/assets/outline/robot.js": "16ff61bc8ffa9bd9966912bcb4273125e0c4d1cf", + "/assets/outline/robot.svg": "47f96f9583d18fdc5632920a647f355fddbbbcc0", + "/assets/outline/rocket.js": "aa3c2adcb0af90cf0c119d4bbe09722aeb3d871d", + "/assets/outline/rocket.svg": "4b367f6570637bb314c0235da8c8626fab351c8d", + "/assets/outline/rollback.js": "61a5adc788a4c3fa4b32ff6bdbfaf5fe698b5665", + "/assets/outline/rollback.svg": "bc8299d93b8904cae04adf48386b52b60738422d", + "/assets/outline/rotate-left.js": "f4b5019c3e1d591652d8fb662b44fc3f1a387752", + "/assets/outline/rotate-left.svg": "b0d4445967738f42ddf0d3e8fc7bff63b2afca0d", + "/assets/outline/rotate-right.js": "517a2ccdc7b0a10ed0e0e07a15397248bfb3ffcd", + "/assets/outline/rotate-right.svg": "0f549d4e3e9b0d4d84fb158f6d4d69e33d3a6f57", + "/assets/outline/safety-certificate.js": "a14c7368406d3bd61951ff214a2da255487d2a5f", + "/assets/outline/safety-certificate.svg": "f6d01ea2e1bb5122f8cae819e96a7cb537f94e0e", + "/assets/outline/safety.js": "643a952d323a5e9d9b79138a2718a638752baea2", + "/assets/outline/safety.svg": "092a0372a2a2087c1d9381e0dd25e9e62539fe0a", + "/assets/outline/save.js": "cbd957bfe61697d99ef78ca2f00e0ce7211f5d1e", + "/assets/outline/save.svg": "5b37c5b486a0b134fe5d5f7050e65a7041521a05", + "/assets/outline/scan.js": "e9010e639492434dfed0b97eaaabdfd9c6f94680", + "/assets/outline/scan.svg": "c9e7675c37699e5a66929d276fc33d1ec04dc858", + "/assets/outline/schedule.js": "7a93e37384dfac09fdd9d32d754d010ba824e8d7", + "/assets/outline/schedule.svg": "ef755088fa64172942397fff86205267c6be8e16", + "/assets/outline/scissor.js": "c7e9e888329da433163b585e26fe8bb65d812b5d", + "/assets/outline/scissor.svg": "ec4edbfdaac64eab2f38d6b887f04fa528f5446f", + "/assets/outline/search.js": "3fcfaca0667b72f5e02db1abe020f904ff345d91", + "/assets/outline/search.svg": "727827cfdac9b48d96baf5267d7f78fba7af39a9", + "/assets/outline/security-scan.js": "62d310948ad77b0fc23df61f8285d057d5e143fa", + "/assets/outline/security-scan.svg": "f88dd59d0f2a7e56211a70dcdab3297d2b3c82a1", + "/assets/outline/select.js": "c55b562f747dad7b4843c8872a7ed3000f4963ec", + "/assets/outline/select.svg": "dbb0b354db7de478fa3ce59116b3a9d86bd4eb0a", + "/assets/outline/send.js": "6db7cd34cf06110d61227c1388957869d997ceba", + "/assets/outline/send.svg": "7bd6030d311173934506800aec3136afe77003a7", + "/assets/outline/setting.js": "441a2e8cecd500bd5a9c608d56604ee9c1b3dbc9", + "/assets/outline/setting.svg": "a619130ec64c8fd0a174e0abc2fa479dc0f219cd", + "/assets/outline/shake.js": "ab9a18ec7b87cd37fb0e9703b0d0ffbcf0eb7e12", + "/assets/outline/shake.svg": "a0007f6c08f101133e199c4a75af01b0350a9606", + "/assets/outline/share-alt.js": "359b516485ae9f0ce602dfaf8e5f9a0dea979b63", + "/assets/outline/share-alt.svg": "fadb63ca0c07bf12c4e61517e7e3f457c05f6ded", + "/assets/outline/shop.js": "eb120564a926adb68b6f2004274ae0d59d325a1f", + "/assets/outline/shop.svg": "892dcce61d02c6fe5adb5f53d0b287ee38cb3503", + "/assets/outline/shopping-cart.js": "078af001e2214fc5bb7204ab17acb7761ef5f8e8", + "/assets/outline/shopping-cart.svg": "ac4e0d2c7267ffa1d53f704bbb7c1b3666c39131", + "/assets/outline/shopping.js": "f8b90c181b4e2a8c850570c0dffce5d772657aa8", + "/assets/outline/shopping.svg": "3a2cd4a7416587c0bb12c50a87f758db3e783675", + "/assets/outline/shrink.js": "678c6a38b32fb7d271555c391d5c5984ecc3d069", + "/assets/outline/shrink.svg": "3b26d2e5c6647f30c2f4c1fb27d4ab0f50142ddf", + "/assets/outline/sisternode.js": "a9d842c5978f8da8a93039bc5562ba95618d9ea0", + "/assets/outline/sisternode.svg": "5f87b65ec7a36a4a8c8de9b30c83b4813f9757be", + "/assets/outline/sketch.js": "4afd4b3b947b05a3828208cc53750719c2998777", + "/assets/outline/sketch.svg": "5cede9ef9ff419717625b59f80f237aaff91ea1e", + "/assets/outline/skin.js": "553155987297717182674f8ae623e2d81dffb993", + "/assets/outline/skin.svg": "dc2294c6b4bdd2049dbe16aed5965c2fdd201608", + "/assets/outline/skype.js": "5baff0ebc68d844b17cda9f90e417d3fd67084ac", + "/assets/outline/skype.svg": "2ae6605105f7a2aed8b47f7f771f7d6674d4ca0c", + "/assets/outline/slack-square.js": "cd106d342a5df5a2fa15234781a38e5a18bdedda", + "/assets/outline/slack-square.svg": "a399206f3035f4199dddd1381922e3454355fc69", + "/assets/outline/slack.js": "43f8b66281ae76f0dddd53e257518c8c1ee6be96", + "/assets/outline/slack.svg": "1186c6b103c3fa0510adb185eec9990042267743", + "/assets/outline/sliders.js": "1edf71155ca5561c08f1554f6ff7b03d183fec54", + "/assets/outline/sliders.svg": "a9023163e3feea6fba178fee1c56996598c4ecf9", + "/assets/outline/small-dash.js": "b70ccbd0e5486a128dfeed866e183a750fe388b9", + "/assets/outline/small-dash.svg": "850d66909ff7e0a4d6fae2e5b1da6859a7c9550f", + "/assets/outline/smile.js": "d2882657960d43ce3208dd08013a8a34bf0c74ba", + "/assets/outline/smile.svg": "e7e1b9145e28da1c720cd6c9bbb317b7d4372b84", + "/assets/outline/snippets.js": "1eda6c5275c5b8d02a8bee57a97aa7e764268b68", + "/assets/outline/snippets.svg": "1d3e7266645569ec8175d266ba2425a48a2fc4bd", + "/assets/outline/solution.js": "f8405a923ac7ee1b104fd1fcc5b280f94fed3035", + "/assets/outline/solution.svg": "5cd72863c18f1a3b9b63e298549f6c20867b5ae6", + "/assets/outline/sort-ascending.js": "f5d7328a614f7bb8e7ba346ed8ae349f5c5dee83", + "/assets/outline/sort-ascending.svg": "1a54f6aa9a3da9aa76966018f7b43cd1ec3d08ab", + "/assets/outline/sort-descending.js": "d492d7f49958f406d79f33730a6463258da675f5", + "/assets/outline/sort-descending.svg": "4ddd95246ca0690bfc7d2f6d8b8bc84f5d8f55af", + "/assets/outline/sound.js": "a64c8c2f718a501a8f381c73304f000895e38cec", + "/assets/outline/sound.svg": "d18afd7278682df9a4b9fbb000e1290cdd3a5cdb", + "/assets/outline/split-cells.js": "9858d32c066db89b6562c4c30376f8f4bd087924", + "/assets/outline/split-cells.svg": "2a4044c2da2f346f413faefe6c43a3fdd78f0b64", + "/assets/outline/star.js": "ebc29ba6a003a587a878c4d67e387e50a66ffeef", + "/assets/outline/star.svg": "84594da1a9078a1ba70ce0a6c83d495b29b32c7d", + "/assets/outline/step-backward.js": "d735d0d220f5b65ec673156568d4139ed0fc84bf", + "/assets/outline/step-backward.svg": "fb4b1304a9e2fe9bdbb2fe076db025ddf77a5559", + "/assets/outline/step-forward.js": "b096ec2e38a233a1b927e1627d0cc6a5a6566039", + "/assets/outline/step-forward.svg": "995b4daf9c47ca864115bc3c2630ef5c5ddd7c59", + "/assets/outline/stock.js": "9b07e863f84919bb7e4c12f28c39163ee33e36be", + "/assets/outline/stock.svg": "b5171f2f569def9234e86a151118120a51d2947c", + "/assets/outline/stop.js": "2ae70de436c796ac6f3ff255e1561154005bbc6a", + "/assets/outline/stop.svg": "7601c9f362df1749659d37d355259810cbc70351", + "/assets/outline/strikethrough.js": "5af101b3e14fd1de870f8e8c089c90c1bb3baca6", + "/assets/outline/strikethrough.svg": "8ec9e1895028d0561eef3f8b3a15ee0dc1096cf6", + "/assets/outline/subnode.js": "4cc16d67b70ca1b46ac1f8654c9772e111e316bd", + "/assets/outline/subnode.svg": "c75261212e08379dd82d15a9e9ea8985799dae54", + "/assets/outline/swap-left.js": "c32fcdd43a2afdf1d049b4d8c5726e03c4b15231", + "/assets/outline/swap-left.svg": "ed5b3c0c3362fc766834f271df434a7b27393a7e", + "/assets/outline/swap-right.js": "ca24b4b5887003d2c5c46ea25833ba628a968ba3", + "/assets/outline/swap-right.svg": "f7d8cea9beef2b76de6dc9708f8e84dac39fc218", + "/assets/outline/swap.js": "2aa3408f8f67d40314752f2fb6185883758a70f9", + "/assets/outline/swap.svg": "c7c44a04e102ffe95d2d83b6e8a8aabbef4a8850", + "/assets/outline/switcher.js": "f866258c788729173f23631c6267d5876622017a", + "/assets/outline/switcher.svg": "1a3856a08155a0c248b8c03d7d3711cdcb3e6ead", + "/assets/outline/sync.js": "d119cb7f5482cba8b36fcfd9fc8fb95c7b4b1094", + "/assets/outline/sync.svg": "2875702c439a1d3a0fef91ee7b69146934a997cf", + "/assets/outline/table.js": "aac317223b9a25747fbc276137d89c00d793058d", + "/assets/outline/table.svg": "55958795fdc3f07b342158bff6e161efa708a1fe", + "/assets/outline/tablet.js": "0f7966909a732d14d6610afc8a8c8c88748fb599", + "/assets/outline/tablet.svg": "fe6a7685c3a0057d92b18838a26cc8d0b89b787d", + "/assets/outline/tag.js": "88e18a664061130fb6436da9e8e35af96dadddbd", + "/assets/outline/tag.svg": "6e415d6de186e595ec9be8ca16c300f7c47453a4", + "/assets/outline/tags.js": "3b79cfb1c505af567663486c95ef3c5e7d8f9679", + "/assets/outline/tags.svg": "29d133b72664d065d6a533d5cbb89fa3f8cff132", + "/assets/outline/taobao-circle.js": "0048b37b36c582c9811fcf418467884c3d45172e", + "/assets/outline/taobao-circle.svg": "16fa59d448240a8d2df2e1e15b69844a65803366", + "/assets/outline/taobao.js": "b4fe1dbcd1420399c29f241974fa61f68e2b5920", + "/assets/outline/taobao.svg": "999856a7091fcfe6d57fc013425d19667692ca40", + "/assets/outline/team.js": "e8ccc7b139725fbb908fd926fdae319de7852f34", + "/assets/outline/team.svg": "701434c6a0272b38b8e0d6e504dff403af428286", + "/assets/outline/thunderbolt.js": "ae613eaca76d2195cb842c9cab31f85df4ff8935", + "/assets/outline/thunderbolt.svg": "36f35a2397124034d789d4d42891a0e15099f8c4", + "/assets/outline/to-top.js": "37d90c82b5aea77a429017f3888f0bdc8a420f84", + "/assets/outline/to-top.svg": "fb76e567af51093837c71d754c3f863cafeb5de0", + "/assets/outline/tool.js": "23521d4ab1ea5acd62f890418ade688d13df5ff7", + "/assets/outline/tool.svg": "6e4f1e4e90d3dbccca9f0df2aebc044ff80d8c5f", + "/assets/outline/trademark-circle.js": "4da282a5844909acefb0eb767fa6f7fbf72bcb9e", + "/assets/outline/trademark-circle.svg": "bf9d0f347909f699264201ed67a1afa59414bb8c", + "/assets/outline/trademark.js": "809f18b910655e0c60160c6fb3611ecffa396ec4", + "/assets/outline/trademark.svg": "bf9d0f347909f699264201ed67a1afa59414bb8c", + "/assets/outline/transaction.js": "1c580fd498087750fe7b69aaa33195aa98d02c3b", + "/assets/outline/transaction.svg": "025cadce036ec6f7f4227d366bf480161c382dba", + "/assets/outline/translation.js": "9a6e3398151248d46e70921a06802b9f5f674baf", + "/assets/outline/translation.svg": "7654de6f4becb4d07d37532636700299343a1805", + "/assets/outline/trophy.js": "1b5b16fee9de7684918227d3b8e46d7f27a5b338", + "/assets/outline/trophy.svg": "53ba3120f8323ab2bea5bc853771c603ce171814", + "/assets/outline/twitter.js": "8f91da280d2a7b0abf07abbce9706dfe57a5d4db", + "/assets/outline/twitter.svg": "46d478f0b2a23e863ee19a0925ed41e78df48d40", + "/assets/outline/underline.js": "24315140cd2980632d9b5ea7a81a13582c471a8c", + "/assets/outline/underline.svg": "c42d9799f8ddcf27bb7bb40006d6533184373265", + "/assets/outline/undo.js": "e26679946a0a9e0140dfc5eb1a46f9f555fd9c21", + "/assets/outline/undo.svg": "94af888d0d68693c505454e935d58205b5cfbaa4", + "/assets/outline/ungroup.js": "dba5674468ee893ae1d989a05415f42ff2db9105", + "/assets/outline/ungroup.svg": "bce50429228539de62585a9af6db62fa320b49f1", + "/assets/outline/unlock.js": "a674b71e3ef3a99daf8aec236a7d01d0338a4d55", + "/assets/outline/unlock.svg": "142c19a8ebdfc338317ebc5b18e7334d751dda23", + "/assets/outline/unordered-list.js": "077d35299813233bd15c0818294f27549c41be1a", + "/assets/outline/unordered-list.svg": "db5c92012baef6de27da97feee0bbe46a56444d2", + "/assets/outline/up-circle.js": "e10d3f9ff7d0fbae322bb46265e1693145c726ba", + "/assets/outline/up-circle.svg": "fd9f88d3b8536311e8055e558344643fbf021304", + "/assets/outline/up-square.js": "054bd78eef20914706ad35befa57da61f6396933", + "/assets/outline/up-square.svg": "df3dd1f263fe4df9c1503d1ccde3c18146dd7c2a", + "/assets/outline/up.js": "3d2fa8fb90ff56272477a79547e6e8c2640c9f89", + "/assets/outline/up.svg": "391d876a4a758adc29c1cdf621ddae0ce3465104", + "/assets/outline/upload.js": "9cc01c04f5ecff3eb483888930fc90f649a48a4a", + "/assets/outline/upload.svg": "ac4523997677e08e9d5ae4777861d76615ca08f0", + "/assets/outline/usb.js": "a9711cf8843336764eac8ce0755a3736d2f4fe6d", + "/assets/outline/usb.svg": "b2698eae57763626f6242ebf1b7cf43bc9cf314c", + "/assets/outline/user-add.js": "5f425ff97a0e842d637a607019d51979432f0c2b", + "/assets/outline/user-add.svg": "706406230db39d36401b975b8cc28098178c6260", + "/assets/outline/user-delete.js": "1e89cf22c3ef681c999fcedf69db27b5e32f28ef", + "/assets/outline/user-delete.svg": "efe0fc6c5f9d8cb713b568ccae884de75991b762", + "/assets/outline/user-switch.js": "d46d901130e1d126b3cda52aad84edd909a605c1", + "/assets/outline/user-switch.svg": "9ce6cc303fa001c3fce437e25e689b6200881fc3", + "/assets/outline/user.js": "02b6efc704655b840279a4e355178ec793b4966e", + "/assets/outline/user.svg": "ce94768e04e02f3e137353237ba02a9a62c6e562", + "/assets/outline/usergroup-add.js": "d2be67a48cae3cc55342103c68c8fedc5d1884f6", + "/assets/outline/usergroup-add.svg": "ded76cb72f13a65e26ba313e2aab35f1e00c5e0d", + "/assets/outline/usergroup-delete.js": "c414ab7e8613ee8a72e6295c592ed1e01614dff1", + "/assets/outline/usergroup-delete.svg": "34f28aea66d701b56fd58000a29d802af514f8d1", + "/assets/outline/verified.js": "a11862c49bd49d0bc2ad1b8f9d8ed2a3e85ee068", + "/assets/outline/verified.svg": "dc547a5066342879cddb03f4bdaa6a411e6b6cff", + "/assets/outline/vertical-align-bottom.js": "f5d86a96dff904395bb9718c7ee93369abfe89e4", + "/assets/outline/vertical-align-bottom.svg": "3b09adca5a17b08679574fcf46d06c1025057b87", + "/assets/outline/vertical-align-middle.js": "b2cdcc2b1c2d6ae4d9d7a5f6825211ca006a9a5b", + "/assets/outline/vertical-align-middle.svg": "24b83f1ecfaaea7c1937308c1a4ebefbdc8d4c81", + "/assets/outline/vertical-align-top.js": "d87597ceda0a248b941f54e103904c6cc063064f", + "/assets/outline/vertical-align-top.svg": "6243e6ba8a7d622edd3e115f0c9a7d3fc90fa25a", + "/assets/outline/vertical-left.js": "e1b7613a9bb7fbfaae73c8361a4ab7337fdf4713", + "/assets/outline/vertical-left.svg": "9079398a1e8db2baf65e735b357818ec3484efdd", + "/assets/outline/vertical-right.js": "76394a60b0540ae0364f6eb64b5a3fe0adc93fe3", + "/assets/outline/vertical-right.svg": "d7d7baacf9f36c5fd803186a4dc3defef894e5d9", + "/assets/outline/video-camera-add.js": "53841b6522494d2747da0a7547fab0c2de752c9d", + "/assets/outline/video-camera-add.svg": "6cfe78e1fd661d13079d641642611ccfe6ed7576", + "/assets/outline/video-camera.js": "e86fbb5f2c5b7322dbfb303ce5e7f7147d1442cc", + "/assets/outline/video-camera.svg": "70bb89aea20a871b8fd45d045f1b67f777b0a38c", + "/assets/outline/wallet.js": "7b79d4f98eb481213b12e423cdcc4d8f4bb9e8b5", + "/assets/outline/wallet.svg": "9c5ff68fb64296eca7d674a71aa45ca2185aeb1c", + "/assets/outline/warning.js": "11f99f6cbb57fcf51565ab35ae0dcdbd220edac7", + "/assets/outline/warning.svg": "9955be3063ebba05649581991904bb16a108fd6a", + "/assets/outline/wechat.js": "4e738c25c79c7ff89b6e2e12f2d8ea7c4f4a001e", + "/assets/outline/wechat.svg": "3a84c2457238aa166329712a5a681a17380eee0d", + "/assets/outline/weibo-circle.js": "497f895edb9ea451831d1fac4e6e7dc62f832e06", + "/assets/outline/weibo-circle.svg": "a1aba62600f1015e2fa46c9fc86a4491c8fa7520", + "/assets/outline/weibo-square.js": "f59811d20fe0a6beadf12aad9812fcb361b68343", + "/assets/outline/weibo-square.svg": "52b5a78b30ed33e08f6961e12e8e16f420d324db", + "/assets/outline/weibo.js": "33e09fae6d6e28eddaeaaaf451a60eaaa89fc5c8", + "/assets/outline/weibo.svg": "ef6625fa911a11be835365a1cadbb010578f4b89", + "/assets/outline/whats-app.js": "d22987a23a512727bddc1d35e406949bf0a98075", + "/assets/outline/whats-app.svg": "99fb97000bdf48241122cbf5e9f4147822573927", + "/assets/outline/wifi.js": "a58c3dbb1cabd9fbb0303d54479a022785409ec9", + "/assets/outline/wifi.svg": "dd429325ffc89ab88c1ffed1a704a5e8807b2e1f", + "/assets/outline/windows.js": "8f09e540a799f1b5bfb83ddee66337c7d8a997de", + "/assets/outline/windows.svg": "623d1f4fb436b5b16b47e4397e485d477fe6a19e", + "/assets/outline/woman.js": "41f031f0e4da64ddf9d112ed0a1f405871a493f8", + "/assets/outline/woman.svg": "20465c3451bab7af81599ca2d84d0b46d8a7b866", + "/assets/outline/yahoo.js": "0a255dbe9313c229ed508abb5e4cb4c6b51de9a0", + "/assets/outline/yahoo.svg": "792b36e900dc8721be52fccd104ab578ef8f884f", + "/assets/outline/youtube.js": "6197260ce8a971e9ed048120b6ef3a685020de6e", + "/assets/outline/youtube.svg": "545817f50a8dc655f1026ba75315b01aa91f2896", + "/assets/outline/yuque.js": "4682d25dedabad7633dcfe94aa01c0bf0ff50133", + "/assets/outline/yuque.svg": "825363d7063466f865218c79fd7473edbc548db9", + "/assets/outline/zhihu.js": "ded34b8ae0ae036f5bd21f0abd315842fba63006", + "/assets/outline/zhihu.svg": "4063a77dc222d8eb82c94bee7803b1091373c5f8", + "/assets/outline/zoom-in.js": "c2381fdc73ef727b83c9c1f14a748968b7f62bb8", + "/assets/outline/zoom-in.svg": "d9f4e5a91d04a1bd7966ca88bd0195c53e01dd68", + "/assets/outline/zoom-out.js": "926711787cbafafe7ef8c109a4765d2fa4ccc2bb", + "/assets/outline/zoom-out.svg": "de6dad5fe336da98b1ae8e4381e714d785a01c3e", + "/assets/twotone/.gitkeep": "da39a3ee5e6b4b0d3255bfef95601890afd80709", + "/assets/twotone/account-book.js": "8b871f42253fa319c26bf70d77eb629ba81d9db1", + "/assets/twotone/account-book.svg": "203d8366f9537efc7a19957e53168908467eb16e", + "/assets/twotone/alert.js": "34323e7a3440cf5d6ef21c5ecfc72324e863717c", + "/assets/twotone/alert.svg": "550be6d7bc8729a8e7acd680e0f984bdab5e7349", + "/assets/twotone/api.js": "5f14f7820b76bc310f4a6abbe62bbdabb01f4094", + "/assets/twotone/api.svg": "1c8697144d3b7744f3c5bc22619d792da9e172ac", + "/assets/twotone/appstore.js": "2acd5b0727424106f24e65116a5f9ddd57b6dd4e", + "/assets/twotone/appstore.svg": "b122f516b457a791a6decf1e891ebc9175a2bf3e", + "/assets/twotone/audio.js": "edbf1c050a9802b1b8b4132426ffcbfa991fbfb8", + "/assets/twotone/audio.svg": "9dd01ba9a133b134b2cfe408a7f08d9bff68f380", + "/assets/twotone/bank.js": "1a636bbf1257dab6b93eb2e80f11a1bc5d0ca2eb", + "/assets/twotone/bank.svg": "9fbf1e7e9b14b5e93548ffa9b03250eb4b3ee17e", + "/assets/twotone/bell.js": "8d4be87255d464a9b3e3d7a6a8829c45cff27619", + "/assets/twotone/bell.svg": "96583d2bada72d3531d6fe46ad7cc0ca5076eabf", + "/assets/twotone/book.js": "16b335f6584ebd1e33d1f68ef91d8c52a4668794", + "/assets/twotone/book.svg": "ff54b43818465ace45078dd43f698a259a01b96a", + "/assets/twotone/box-plot.js": "d4b31e19501554f61583204357056e597022c219", + "/assets/twotone/box-plot.svg": "365386b58bcd9433c0f1234880563da96a4184a0", + "/assets/twotone/bug.js": "7dbfc6eacaf80e72751c05d180e67d38dc026500", + "/assets/twotone/bug.svg": "f64990450c605baa7f8b56987d1aae464ad1d796", + "/assets/twotone/build.js": "ff813a38d0d2ca685ba7eb8c82e4ce0c8cc9ecb6", + "/assets/twotone/build.svg": "426c14af170ac8d02e88c5e0c1526472f228e714", + "/assets/twotone/bulb.js": "9c52dad1a353f3af938c9ee383dc1557f12464f8", + "/assets/twotone/bulb.svg": "3ea8f994929b9d1730762bf73f759af44827349f", + "/assets/twotone/calculator.js": "e4792bdbaee89ae0f2f3a89256e61b84cf19dacc", + "/assets/twotone/calculator.svg": "fb643f5fe1b1853b8e20946027c83626d10c51c1", + "/assets/twotone/calendar.js": "3cf637a608a0ab79d51cc052e47cdd1528c0c34b", + "/assets/twotone/calendar.svg": "eec5bac4f63bf2f93b2153768d6f75650a4d1010", + "/assets/twotone/camera.js": "1ad62a56422f1279327425bd72181ccca089e9dd", + "/assets/twotone/camera.svg": "16f4d9891cebf9657e6a69054c0579b5fddaad2f", + "/assets/twotone/car.js": "a388586d3c3182672b13e52ef53eca2f5af422e1", + "/assets/twotone/car.svg": "2f20d736f15973bec8d70ee18697807054e8367d", + "/assets/twotone/carry-out.js": "e114ad9731fdc7db1d524d7b8aca3f3227936ab0", + "/assets/twotone/carry-out.svg": "f1035f985926c941d0d2009c212e09f163fd2fb0", + "/assets/twotone/check-circle.js": "5eac8845186e6e9fa6e59b815c7918d5896f378b", + "/assets/twotone/check-circle.svg": "324fa69a8d636340ebd3d48560c55d0e192fcf17", + "/assets/twotone/check-square.js": "6264fd2f29587aabd48cc63c7d591bb2ffee7df7", + "/assets/twotone/check-square.svg": "0c549a8a5691aa17e914055f781c73b404108ce2", + "/assets/twotone/ci-circle.js": "6e05c0891a5433d991e6d5b8395b22eb6406cff8", + "/assets/twotone/ci-circle.svg": "e9d83ea521ffe565d707041a21fe5b08ed1d98f3", + "/assets/twotone/ci.js": "2b6895b27bc6cb67d97d0b67da08176be7448e57", + "/assets/twotone/ci.svg": "e9d83ea521ffe565d707041a21fe5b08ed1d98f3", + "/assets/twotone/clock-circle.js": "448b70d570cfdf159596fc48f006fbfd996f368c", + "/assets/twotone/clock-circle.svg": "9281b3786b896012d7c09d16a8e4d3f3864a62e1", + "/assets/twotone/close-circle.js": "612b7c73a506a57af1017767263ac1ae87df7498", + "/assets/twotone/close-circle.svg": "dafdebaa6095d34677032f5f81bdcb3a6a92ae7a", + "/assets/twotone/close-square.js": "09fece364445539801daba65c5f1e7c2446b474e", + "/assets/twotone/close-square.svg": "f6ec69c694e014155a2516333b8be333fdaff608", + "/assets/twotone/cloud.js": "29d1aabc58ff2cfdb6fa866b23e29be231cb4f25", + "/assets/twotone/cloud.svg": "cff4fa9d512d8490abf7fc47c63244d182665734", + "/assets/twotone/code.js": "ef429ec6d2429e4a673d974cdb474cf76a713e06", + "/assets/twotone/code.svg": "ba8f25a4597048d0ea230187822ee20bfbf26dfc", + "/assets/twotone/compass.js": "b717600fc3755f32142129e9d08e4dba80e30e41", + "/assets/twotone/compass.svg": "d224317a5f025a94000f8e4b3b991e9ae34d793e", + "/assets/twotone/contacts.js": "6218ef2797e4a310c77a5fb47ea21952974801f5", + "/assets/twotone/contacts.svg": "9cee98705f181e066aa9aff919d58d97dea8d73f", + "/assets/twotone/container.js": "6811f9c07d476dd990a51added97fa52bbdd1f8e", + "/assets/twotone/container.svg": "888c915c091d1aad69d4f401e3a0c4d8bdd86227", + "/assets/twotone/control.js": "023386e982b1f91734f52fdb34810a10414b7ff2", + "/assets/twotone/control.svg": "ec8f0ab3b73214c05e1e979ae662a9e0c6aa6de7", + "/assets/twotone/copy.js": "3148c3340969bc3c08acd00dbc13c6385cb8d04c", + "/assets/twotone/copy.svg": "f09ce7be3e67c27af737b92ff1c75f05ea059169", + "/assets/twotone/copyright-circle.js": "0ad3a073fa777cc847c1337e6e45f8e31ea86082", + "/assets/twotone/copyright-circle.svg": "3cdfd338b94c3e103bde01ef25f04fd59e018e30", + "/assets/twotone/copyright.js": "c6b842275d81d2afd4d20b89074360f820b4ac92", + "/assets/twotone/copyright.svg": "3cdfd338b94c3e103bde01ef25f04fd59e018e30", + "/assets/twotone/credit-card.js": "a7ef17de1a11f77b9fefe638d5c6a7e3456681fc", + "/assets/twotone/credit-card.svg": "875051dd2a87e03d2ef30c55d731c74b2bce9826", + "/assets/twotone/crown.js": "5f60afb35b678aa117a00b7fd140fd3e4bcc9717", + "/assets/twotone/crown.svg": "f8aa34abfebfd465db6677d9e072ea1f6c081fab", + "/assets/twotone/customer-service.js": "43a7892851381c3539ca2b112e912163ded3f3b3", + "/assets/twotone/customer-service.svg": "4f294af58d1955245cad5a6633a1d417b8448cbb", + "/assets/twotone/dashboard.js": "81e6af5fb5fe2cf7ebc9cde957b69576db252e79", + "/assets/twotone/dashboard.svg": "fc322ed367418aa8e8d293359a27b88c080e17f0", + "/assets/twotone/database.js": "15e0c243cfa2a5eff8b13a21b11c66a9929f2976", + "/assets/twotone/database.svg": "6e8239fe017bf644eb1a7332147dae4e7c277dae", + "/assets/twotone/delete.js": "8b70c8a558662f68315ca9d8ca93db99cf21fc41", + "/assets/twotone/delete.svg": "e0f4adacb4f73d995cc5cd6095422d071d2e02d1", + "/assets/twotone/diff.js": "f5d3a34ebdddd5ffd61efe6d8e544050859e7d5c", + "/assets/twotone/diff.svg": "bb64e8e7f574d44b55c189633137936c8fdc9d8e", + "/assets/twotone/dislike.js": "1fd242c5147a4ef38b2dd8c6127813819d716713", + "/assets/twotone/dislike.svg": "e953aa80a91a2e37cab453db67e054f0f72d6658", + "/assets/twotone/dollar-circle.js": "dbb2637a51cf0470a7bfe1e7cade56358a2c6032", + "/assets/twotone/dollar-circle.svg": "5ecc7c1771be5ec8f785897ae42c4c0aa3aa7b5d", + "/assets/twotone/dollar.js": "42cbae57c28d07e3fe4e2b2c259a01b72fdca6ae", + "/assets/twotone/dollar.svg": "5ecc7c1771be5ec8f785897ae42c4c0aa3aa7b5d", + "/assets/twotone/down-circle.js": "37c2f396f95c3c41f743e2b8c2b9d990230731b1", + "/assets/twotone/down-circle.svg": "f91ad66c33d7dcd1593dbb0946d44217b886bfb8", + "/assets/twotone/down-square.js": "2317a39d30413fe4b048a5b476587f9007f0c1e2", + "/assets/twotone/down-square.svg": "72bdda3c11f311cc8efc50a8cf72113b0a5b8cb9", + "/assets/twotone/edit.js": "d1d95e7e939f0731e9cb03fb6a84a33594cdd669", + "/assets/twotone/edit.svg": "f0589455672eede6d8e34f72ff70716f9d85eb06", + "/assets/twotone/environment.js": "764c81cb9a55d6a436e202e640e8e2010f32bacf", + "/assets/twotone/environment.svg": "8cebb582e347111643f12714348bdcb077f00931", + "/assets/twotone/euro-circle.js": "946d57734a6e5e5eca28715d0ef6baa6546911d6", + "/assets/twotone/euro-circle.svg": "1239e39d142ebc084f4e5fbb0394cf71bcc9aece", + "/assets/twotone/euro.js": "828c6c2a880d293e9df8b7b92989a6a6a3e14c66", + "/assets/twotone/euro.svg": "1239e39d142ebc084f4e5fbb0394cf71bcc9aece", + "/assets/twotone/exclamation-circle.js": "dffc184cac2bdff685234b44814f501fc64a4b94", + "/assets/twotone/exclamation-circle.svg": "a4d19d984a2a98cf1d5a04111b22c3d3f14f0e1c", + "/assets/twotone/experiment.js": "80b018003a6159a08c6e9829e0bf057483955af0", + "/assets/twotone/experiment.svg": "398b0e4d92f2c9a0ffd361c9d29190001511b904", + "/assets/twotone/eye-invisible.js": "6ff28dfb87b4db16890825e508b914ca050905f7", + "/assets/twotone/eye-invisible.svg": "a1d31bb0b769b32b73fb286b0c5422825b558fb0", + "/assets/twotone/eye.js": "433b32a831e8a793d1580c5ed7c50c98db529d16", + "/assets/twotone/eye.svg": "3e24454cde65367962c51619b030304108f4e5d8", + "/assets/twotone/file-add.js": "544fb00169b998d1216045974f8dd04d7664cd5e", + "/assets/twotone/file-add.svg": "7c223a1e00a2e9e57a450bfc920b5cf43ee13174", + "/assets/twotone/file-excel.js": "78913a5241eae630dfece4b0dd81bbd21e47d070", + "/assets/twotone/file-excel.svg": "ebdba0b05272d1a9da9dae8360d4eb7c9c351300", + "/assets/twotone/file-exclamation.js": "924269dd3930acf8457151558d21766a4bf16cc0", + "/assets/twotone/file-exclamation.svg": "ea5f69102502b877154315e335b8270f97eed64c", + "/assets/twotone/file-image.js": "4b063326ed57f9f0039512e8c79b136f604de3ff", + "/assets/twotone/file-image.svg": "9cba27407b0d7d5624f5a9ca562cd8563786e832", + "/assets/twotone/file-markdown.js": "062bea51828f1a355b490791d6c4d89bf5b339ab", + "/assets/twotone/file-markdown.svg": "6f7670f03069d5accaae61ae2f86b46f268c199d", + "/assets/twotone/file-pdf.js": "c85d639f6ca2f89e1b010afbd70eab7faf753bea", + "/assets/twotone/file-pdf.svg": "21984c013dbb57ab04923a641246ed0e73ced613", + "/assets/twotone/file-ppt.js": "28ece4f13faf493458e10754e3c76434d07b71d9", + "/assets/twotone/file-ppt.svg": "cbd7cf2eac36a201a658e2e220224e0175c3593d", + "/assets/twotone/file-text.js": "2aadf6d5b00d883c90f1430d07c87e6514481eee", + "/assets/twotone/file-text.svg": "f7756361b7eb9f5f70e0f4c1e56277b3a53b0b32", + "/assets/twotone/file-unknown.js": "4b8e7324b5bfec24a1cc3b6d3c53f86d08084868", + "/assets/twotone/file-unknown.svg": "85d9f8865fcc9b08f371bef96d149df035912175", + "/assets/twotone/file-word.js": "25c38114e9104b326dcdb07346dfe078a257b248", + "/assets/twotone/file-word.svg": "a07f3f02a1a6dbee618c3e5f36027e21eeb59f10", + "/assets/twotone/file-zip.js": "b63298b6855511cb7b70b30b4453961f1806c81e", + "/assets/twotone/file-zip.svg": "db60cc445181b2081b1108b10502488a19745514", + "/assets/twotone/file.js": "4799839d878c8017324e8ae649677bf96f5e05de", + "/assets/twotone/file.svg": "1b8646ac76aa4fb0eef85da2e71bbd20fcaa25e0", + "/assets/twotone/filter.js": "fa35b6a39d734c11661528914b22c53a0048e4a0", + "/assets/twotone/filter.svg": "216861afa45f48d36f89c23534bd62752aed11ac", + "/assets/twotone/fire.js": "7f9413f88f9dfffac045384d6aa95bd77606e2a6", + "/assets/twotone/fire.svg": "ed4cee5a6544e00130dca94c60c9048b896d4991", + "/assets/twotone/flag.js": "8f4e01c10330d78b2938224eeae7f1ea77177b3e", + "/assets/twotone/flag.svg": "f7a270327c427d172a88c50c7370ad8f03563b19", + "/assets/twotone/folder-add.js": "b1ef790ddb006172928e99e0879ce30300b39f75", + "/assets/twotone/folder-add.svg": "e47ce94708cf5d8ee5a9404c0eb3f0a38e3e72e2", + "/assets/twotone/folder-open.js": "2740dc666851781f676f573402173ee9fbe0ed2a", + "/assets/twotone/folder-open.svg": "63feedcf729fdd2f33377a159f5b6058fbfb6b73", + "/assets/twotone/folder.js": "a14b45514bb9ade58df775d6c097372344d2b20c", + "/assets/twotone/folder.svg": "63fd998d4ec453a3bb43ef7dd1413a4ec7d4874f", + "/assets/twotone/frown.js": "61057b4b6ad7fcbf0ce889002ba2b8f79646225f", + "/assets/twotone/frown.svg": "59b655fdcf792cd0133a35a7c4cf632ba19fa088", + "/assets/twotone/fund.js": "18b79f357869710fac5c6675ddc1bb8db27a61e9", + "/assets/twotone/fund.svg": "2e161f594902f5f9f3a2495c4abd6f440faf160e", + "/assets/twotone/funnel-plot.js": "0a9b8150110ab8c2a1dc7aa9caed646197970c4a", + "/assets/twotone/funnel-plot.svg": "5a792f092141f2abae2f7172e9cf119ea3bd5ffd", + "/assets/twotone/gift.js": "1e0ec83e5c9748f31b408c1458d7717542f80231", + "/assets/twotone/gift.svg": "0708a28c7d5472892d2b735bda76975274731be7", + "/assets/twotone/gold.js": "07716af3614fec4d03f4974fd1f9038bce99510c", + "/assets/twotone/gold.svg": "367d6c6380ac93e157b144949fdb0dacb658cf2f", + "/assets/twotone/hdd.js": "a97e3c1c1d7494d4d1a71f3b556cf8f5d6f05c39", + "/assets/twotone/hdd.svg": "16b0ae46d82ae74aa9824c2da1d7f1c7d10d3e0e", + "/assets/twotone/heart.js": "373e846757857f55db4f576d3720744d9c477a7f", + "/assets/twotone/heart.svg": "8677757c11d0c0dacb4373903f56e53c7ee4ab8f", + "/assets/twotone/highlight.js": "5315a3636247205f033e2d8dda689cc9e5b99f65", + "/assets/twotone/highlight.svg": "a1ab36aa8e09d78eccc9796574cab8b7784a2990", + "/assets/twotone/home.js": "d293100b66113b7aff24bcc2630f7d5cf3a8b20e", + "/assets/twotone/home.svg": "9c2e326f2877fe7aca059d76749c6f079ebf5688", + "/assets/twotone/hourglass.js": "4efa3c497a481b44b8857ee99256ccb2b0931d09", + "/assets/twotone/hourglass.svg": "df5316bd235ff5014f62ed1e4bf7d6b37fa2cbd1", + "/assets/twotone/html5.js": "ad2ee206f640f040bc7f8082d293618ff6aa44c8", + "/assets/twotone/html5.svg": "15ce6e899c09ca08f804d64e3be47ee351a25cd3", + "/assets/twotone/idcard.js": "e977ba4dbabf1a22ed99d5664a2dabb67d77d154", + "/assets/twotone/idcard.svg": "8eacf5bb2c281af36bed43e815f2398651cd2634", + "/assets/twotone/info-circle.js": "8ddf69452552612ccadae7b7115292b58480f6aa", + "/assets/twotone/info-circle.svg": "f3cccb250b8a652a3f3901f534dd49871697fd89", + "/assets/twotone/insurance.js": "3dfbace4ae63a5254bd0cf9731e6c575a9b8430f", + "/assets/twotone/insurance.svg": "63b89add660ccbae54b5dcfa0de05cc7a288b8dc", + "/assets/twotone/interaction.js": "080dd15b86f47be38e9329ce0d823ce0a29bf130", + "/assets/twotone/interaction.svg": "0e4aee050f3fbf163086ceb2265312abb7e372aa", + "/assets/twotone/layout.js": "7616ae5e3bf9233077b03d916ef4f8cf3786ca44", + "/assets/twotone/layout.svg": "e4beecd4989c513ea219710add586acab77b2445", + "/assets/twotone/left-circle.js": "9b3b7e55211c94d0f3ab7a388b17d8ca1057147c", + "/assets/twotone/left-circle.svg": "9834d72ed54463752bde4d122f3494d4cf41d1f5", + "/assets/twotone/left-square.js": "c5b57e83d9bcaf96bb15d12015ab1e9ae4aff583", + "/assets/twotone/left-square.svg": "a758a0e8e66b1e0bd0da15baf5fd453c242880e1", + "/assets/twotone/like.js": "3d8fb4002b5e0e8e638ac724bf63f14d17ddbce9", + "/assets/twotone/like.svg": "94ec5784203486a2de523942aad2562dd3742821", + "/assets/twotone/lock.js": "a58f66a6a990ded552b57bd1d66b896a0a543c04", + "/assets/twotone/lock.svg": "dd8d66a388d3f1e6c7908b605ddb74209d108950", + "/assets/twotone/mail.js": "6dd8071d9926a31a880f522d6551ec213432b8fb", + "/assets/twotone/mail.svg": "34f36b2cda7ba0aab1c41d8bca594b5d3d6529af", + "/assets/twotone/medicine-box.js": "2db6e6ed33daea87a98302469a72d2936cea491b", + "/assets/twotone/medicine-box.svg": "55d60c566543267df3e0980dfaa5c27103d96c65", + "/assets/twotone/meh.js": "d31a205f84d65faa9b4d26ad51cfe1f3049712d6", + "/assets/twotone/meh.svg": "c35e8ce90ca540fab19c6d1729028847db528200", + "/assets/twotone/message.js": "2449ed34ecdb1a23d6f80e33f86417b15344079d", + "/assets/twotone/message.svg": "345667917498520df7cf78b530d6a05d55fd16cc", + "/assets/twotone/minus-circle.js": "0f1e5fcee127ea909f233e7cb3b38521c424bb5d", + "/assets/twotone/minus-circle.svg": "40c8cfb969bf24d8ae1c24e05490a0b7140f87ac", + "/assets/twotone/minus-square.js": "1f55f3d6107b042c01de004bde04cd4179cb77b3", + "/assets/twotone/minus-square.svg": "a1aadffb4687fe13dec52ba10c9656267a921907", + "/assets/twotone/mobile.js": "2737268ed860483d9c4510ffd2263341348ed87d", + "/assets/twotone/mobile.svg": "7ff549530140ec8a7da112bf8fc757994ea68288", + "/assets/twotone/money-collect.js": "03fb1a79dfef0cf4566c43822056114419b10372", + "/assets/twotone/money-collect.svg": "4513c7be6c6d5880f8e522768e0bb5c9eb8c0fc7", + "/assets/twotone/notification.js": "af040cfda9ff8e96ac6b98fcfd0d66163ac1ae2c", + "/assets/twotone/notification.svg": "9765cd1f209acdf9e9a6bdbaf99e2c504dfec469", + "/assets/twotone/pause-circle.js": "c4f1592b4da8e2bad446a0cd32327ad1cddd7237", + "/assets/twotone/pause-circle.svg": "590399c0622b090e8fb10ec78cc50898820e9da0", + "/assets/twotone/phone.js": "61b4df88f1953a81a1f0cd397bc181e0032cf545", + "/assets/twotone/phone.svg": "4aa22dd0068b719371734f6c70e614b58e045f0f", + "/assets/twotone/picture.js": "e529f6808dfb0edb84891e75be2aefe86f276658", + "/assets/twotone/picture.svg": "0d9a457741713dfb963d05c7ccd520b1a5459447", + "/assets/twotone/pie-chart.js": "77b44cc04268208134d48c5658b3d6fb2a6f3f4a", + "/assets/twotone/pie-chart.svg": "7cd50f859710143cafafe0ea54d9e2a904677f7a", + "/assets/twotone/play-circle.js": "f1f7662d118e456c011b33dff882407e0c3a3330", + "/assets/twotone/play-circle.svg": "def15996336c9ef1bee9118213b5b76ba6b46a30", + "/assets/twotone/play-square.js": "7ba64e6e7522648d72b9867e18ca1a954d9fbba2", + "/assets/twotone/play-square.svg": "1167ea2847ac73a2ddfc377df2699a49bc31888b", + "/assets/twotone/plus-circle.js": "c91f88c5ae3ffc23ec79bac2e93077f6125e87ac", + "/assets/twotone/plus-circle.svg": "f366d77e5cf986b7104eda61617d99a2c8117cef", + "/assets/twotone/plus-square.js": "12ca387b767377a9651f7c5796030abb45feda95", + "/assets/twotone/plus-square.svg": "619d0d7f8a922b59529534e009be634021ce6462", + "/assets/twotone/pound-circle.js": "21add2e199725e7ac658b14a1349a348b6ac3d64", + "/assets/twotone/pound-circle.svg": "7691f37a31b0855eb9edaa60de399c3dbd99e495", + "/assets/twotone/printer.js": "954862845968895153c38f69a0bac20275749382", + "/assets/twotone/printer.svg": "625f6ea6efa76f9a714578f1f16428dcbf4cb1f2", + "/assets/twotone/profile.js": "3fb3f4cacb7733caf2a73a40902b63ca0a9ca5f9", + "/assets/twotone/profile.svg": "9c619b721e13331681f70b14c8701385b103a6f8", + "/assets/twotone/project.js": "0900f1f86c3b60a11a2c9617e838ccc4bc25f55d", + "/assets/twotone/project.svg": "084139e2b48b88a39cd855d8663ac1c0c3985dfa", + "/assets/twotone/property-safety.js": "7c5e58e2d66c5d12ae9683906fc67f28ebe3ab75", + "/assets/twotone/property-safety.svg": "2118d9a047993d2a18098390e02baf1e0e2ba0ec", + "/assets/twotone/pushpin.js": "9706a3e69d1dca4f4286d099b53ff459a79d18ff", + "/assets/twotone/pushpin.svg": "a786edbedaa905f1f88b358a79e911e4bad949c1", + "/assets/twotone/question-circle.js": "9e17cc4360f36c0d5bf392ca0cf365cc2f8d0bbe", + "/assets/twotone/question-circle.svg": "458e85a926e30f929bcda915ceae7b40512dcf11", + "/assets/twotone/reconciliation.js": "7c662adb6e5e29186f6af46bb9901fc56fb577cb", + "/assets/twotone/reconciliation.svg": "bd5bc3a0b71828ae6d7d48ba8495476a2c9dfeab", + "/assets/twotone/red-envelope.js": "50a8f025de1d54c5eb8214c410315c3e0d5d21a8", + "/assets/twotone/red-envelope.svg": "873c1677071ea01543459830f23a6cdec04656a9", + "/assets/twotone/rest.js": "5d07a97446773a9e4cc15a81084fe3497e60510a", + "/assets/twotone/rest.svg": "56484d51625245d05ef41a261187a552ac937a3c", + "/assets/twotone/right-circle.js": "71165c7804c52ff84dcc09d22062f8196f611f6f", + "/assets/twotone/right-circle.svg": "be371a49ac6d5fb0ca6e815d70ba3142d3f8ea9e", + "/assets/twotone/right-square.js": "d2a1a1e8de62de56cd7a99ade7121e33ac3e7929", + "/assets/twotone/right-square.svg": "8f01412e17472650ffb890e2571b981444a955df", + "/assets/twotone/rocket.js": "f797a36a151e42a222d97f3108fa9d71cca5527a", + "/assets/twotone/rocket.svg": "c8bdf1399604f48e3a86d0593a5f6647e0f40e86", + "/assets/twotone/safety-certificate.js": "5c367c39800fdc7cf7dfc6cf8b6d19cb6337f7b4", + "/assets/twotone/safety-certificate.svg": "2edb7c329e483a43f02ba6434d04aa5c2cc82f61", + "/assets/twotone/save.js": "a1e267c856db315a325db73fab2d790634429dad", + "/assets/twotone/save.svg": "da2b8b5577be40229741a3ac21d958050cfb26ff", + "/assets/twotone/schedule.js": "bd59f6bb82eaace4f9db5bdec8fc301ffd28a1a9", + "/assets/twotone/schedule.svg": "b9bf0517d6524acd040f689d61e5ffd97ac79d92", + "/assets/twotone/security-scan.js": "938f03c34755bc91b104101d878bdf5a7d5f926d", + "/assets/twotone/security-scan.svg": "00e7d70fb59134ce5b56f03bc4b28bb0ee3afaa0", + "/assets/twotone/setting.js": "8a183f12be2621b736bf9830174b95307137db66", + "/assets/twotone/setting.svg": "fe195c504e2fba1c216abf00990b69251624bc93", + "/assets/twotone/shop.js": "4430452d77f0f2a68c6ebb34895ce7e4ab7d73b1", + "/assets/twotone/shop.svg": "c3b85b3cef6772291c24fa0e6176c488e4ce3083", + "/assets/twotone/shopping.js": "fcf5f5d53b3ee412f75d52c5fddc04e677e7640b", + "/assets/twotone/shopping.svg": "856e1fc8e16cd8f1fc29cba3e88625ffd5f36055", + "/assets/twotone/skin.js": "4dfdfc04a02cc0b59ae29333636af641b4a4e975", + "/assets/twotone/skin.svg": "6a67d058ced322347a790e97b37277969b5e7462", + "/assets/twotone/sliders.js": "59545f44d28816b929d89475dc615ebc7b4817fa", + "/assets/twotone/sliders.svg": "7727607daaee1223e110823b2c50bca76d019187", + "/assets/twotone/smile.js": "7e8fef82c74b5bd9f6112640a3debd85c9bc5e69", + "/assets/twotone/smile.svg": "32d920d29accb4bb1ead94f125502922972d831d", + "/assets/twotone/snippets.js": "47cdbbd089baadf9bef315c3535c944f5b406201", + "/assets/twotone/snippets.svg": "3b42912500ec5dca179b23c303a05f90431b62fc", + "/assets/twotone/sound.js": "54429d94c2e0bde521808015297a468569c92996", + "/assets/twotone/sound.svg": "c7697791d9ae0838c184f868e9ec079736e1c7a7", + "/assets/twotone/star.js": "e14ab82f6f21d5d705d8712b98eb2674327c9b9e", + "/assets/twotone/star.svg": "5ca12e2b077400500936240b8d69a51dbdad6937", + "/assets/twotone/stop.js": "ff79e12f16483e8d475a14b9d5fe8c42106fedd5", + "/assets/twotone/stop.svg": "dd5417414fb26af4098766ca8d025de878659ab5", + "/assets/twotone/switcher.js": "fed1819a9fab9d525fc1ce4e4486a03f9525a814", + "/assets/twotone/switcher.svg": "2a99d925daae57cd3521a12bfd3cfa69e59df64a", + "/assets/twotone/tablet.js": "49d0315ea0365ac03d024f05a57e372e53d80cb6", + "/assets/twotone/tablet.svg": "4a4bad3bafd16601f396693baef18e4c3d9795c1", + "/assets/twotone/tag.js": "93f11be6a12748a50a4bf19724f372269224fccc", + "/assets/twotone/tag.svg": "afe48361e2a87cb5a822a9e1b789fa72e4b47505", + "/assets/twotone/tags.js": "d26a8dc81b4c9846c458d58cc2af6a34e11983e6", + "/assets/twotone/tags.svg": "d2f26949c6d7fcf4d325b5215194c8dd4aa888ee", + "/assets/twotone/thunderbolt.js": "03d012ab410898781c3479f5ba94dcbeb598bf46", + "/assets/twotone/thunderbolt.svg": "aeffdc604b7ce5e105692660eb9c9d8c57e2d41c", + "/assets/twotone/tool.js": "1b56df534e3aa68280fa218e85b52d475cebe8fe", + "/assets/twotone/tool.svg": "04c7ed472083a7c304e8123f29249196e48a4a42", + "/assets/twotone/trademark-circle.js": "397074b812e88bc997ceb5dde1d6fe73b4dca8e7", + "/assets/twotone/trademark-circle.svg": "c250da39d3d8f4f45f6eaf6e009eb6f5a76e63b6", + "/assets/twotone/trophy.js": "2852022fa39437ffa521fb884aacfa227db1d408", + "/assets/twotone/trophy.svg": "dd7674b5b4df4da5026240917f897270f026128a", + "/assets/twotone/unlock.js": "e80930ba2b5b901b0aeaf81a84c1162497d30156", + "/assets/twotone/unlock.svg": "21509f5f30de4e0e68e8368b22600255fa3d3e8e", + "/assets/twotone/up-circle.js": "37c0fa66a0af8799b5a317f481233a5dcdc26fc7", + "/assets/twotone/up-circle.svg": "215a18c56a37f347eaaa0093c4fe4eb80eac7af7", + "/assets/twotone/up-square.js": "2adfc5c69728c4c31a6b357e979d89d47c7b3d70", + "/assets/twotone/up-square.svg": "f8d5c717455b0044f274b2a7c03e1d6e58122ce7", + "/assets/twotone/usb.js": "8ab3a05c85137591fc2ce1af4c23ff3644d85edd", + "/assets/twotone/usb.svg": "54ae323b52abd1a844445f6ba0e31ed6f61a7384", + "/assets/twotone/video-camera.js": "54260c21719ba9f6efaf9ce090bfddb24c1883cf", + "/assets/twotone/video-camera.svg": "75ce8e4db7518a338903ef0b1ac440bacccf97b6", + "/assets/twotone/wallet.js": "77352bff5809adabba5e3c011d8b07b8c817f0a7", + "/assets/twotone/wallet.svg": "11e915efff832b47aa4bd5885af72e55014f59e6", + "/assets/twotone/warning.js": "fb2d7ea232f3a99bf8f080dbc94c65699232ac01", + "/assets/twotone/warning.svg": "8c7a2d3e765a2e7dd58ac674870c6655cecb0068", + "/common.fa68e1b34f0baff6ccad.js": "8e62b9aa49dde6486f74c6c94b97054743f1cc1b", + "/index.html": "cdd5b6a2184b9d03b7afeea5e2721c4c63d6772a", + "/main.22f06d53efe81d9df3a8.js": "edb0ba67f76a4a734eaf210655790ca4926f45a6", + "/manifest.webmanifest": "0c4534b4c868d756691b1b4372cecb2efce47c6d", + "/polyfills.a427f031f0f7196ffda1.js": "3e4560be48cd30e30bcbf51ca131a37d8c224fdc", + "/runtime.9c55e9c0a6d0459b5e96.js": "514cd785b41aa8c04d9925e4b5313d48d7404612", + "/styles.09c5ed83b6748436b293.css": "c08136817a63dadd53de8cb2df2d56ba95e5905a" + }, + "navigationUrls": [ + { + "positive": true, + "regex": "^\\/.*$" + }, + { + "positive": false, + "regex": "^\\/(?:.+\\/)?[^/]*\\.[^/]*$" + }, + { + "positive": false, + "regex": "^\\/(?:.+\\/)?[^/]*__[^/]*$" + }, + { + "positive": false, + "regex": "^\\/(?:.+\\/)?[^/]*__[^/]*\\/.*$" + } + ], + "navigationRequestStrategy": "performance" +} \ No newline at end of file diff --git a/src/blrec/data/webapp/polyfills.a427f031f0f7196ffda1.js b/src/blrec/data/webapp/polyfills.a427f031f0f7196ffda1.js new file mode 100644 index 0000000..9269b2c --- /dev/null +++ b/src/blrec/data/webapp/polyfills.a427f031f0f7196ffda1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkblrec=self.webpackChunkblrec||[]).push([[429],{7277:()=>{!function(e){const n=e.performance;function i(I){n&&n.mark&&n.mark(I)}function r(I,p){n&&n.measure&&n.measure(I,p)}i("Zone");const c=e.__Zone_symbol_prefix||"__zone_symbol__";function u(I){return c+I}const f=!0===e[u("forceDuplicateZoneCheck")];if(e.Zone){if(f||"function"!=typeof e.Zone.__symbol__)throw new Error("Zone already loaded.");return e.Zone}let _=(()=>{class I{constructor(t,o){this._parent=t,this._name=o?o.name||"unnamed":"<root>",this._properties=o&&o.properties||{},this._zoneDelegate=new T(this,this._parent&&this._parent._zoneDelegate,o)}static assertZonePatched(){if(e.Promise!==J.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let t=I.current;for(;t.parent;)t=t.parent;return t}static get current(){return G.zone}static get currentTask(){return te}static __load_patch(t,o,y=!1){if(J.hasOwnProperty(t)){if(!y&&f)throw Error("Already loaded patch: "+t)}else if(!e["__Zone_disable_"+t]){const P="Zone:"+t;i(P),J[t]=o(e,I,le),r(P,P)}}get parent(){return this._parent}get name(){return this._name}get(t){const o=this.getZoneWith(t);if(o)return o._properties[t]}getZoneWith(t){let o=this;for(;o;){if(o._properties.hasOwnProperty(t))return o;o=o._parent}return null}fork(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)}wrap(t,o){if("function"!=typeof t)throw new Error("Expecting function got: "+t);const y=this._zoneDelegate.intercept(this,t,o),P=this;return function(){return P.runGuarded(y,this,arguments,o)}}run(t,o,y,P){G={parent:G,zone:this};try{return this._zoneDelegate.invoke(this,t,o,y,P)}finally{G=G.parent}}runGuarded(t,o=null,y,P){G={parent:G,zone:this};try{try{return this._zoneDelegate.invoke(this,t,o,y,P)}catch(K){if(this._zoneDelegate.handleError(this,K))throw K}}finally{G=G.parent}}runTask(t,o,y){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||z).name+"; Execution: "+this.name+")");if(t.state===j&&(t.type===R||t.type===M))return;const P=t.state!=X;P&&t._transitionTo(X,O),t.runCount++;const K=te;te=t,G={parent:G,zone:this};try{t.type==M&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,o,y)}catch(l){if(this._zoneDelegate.handleError(this,l))throw l}}finally{t.state!==j&&t.state!==Y&&(t.type==R||t.data&&t.data.isPeriodic?P&&t._transitionTo(O,X):(t.runCount=0,this._updateTaskCount(t,-1),P&&t._transitionTo(j,X,j))),G=G.parent,te=K}}scheduleTask(t){if(t.zone&&t.zone!==this){let y=this;for(;y;){if(y===t.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${t.zone.name}`);y=y.parent}}t._transitionTo(q,j);const o=[];t._zoneDelegates=o,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(y){throw t._transitionTo(Y,q,j),this._zoneDelegate.handleError(this,y),y}return t._zoneDelegates===o&&this._updateTaskCount(t,1),t.state==q&&t._transitionTo(O,q),t}scheduleMicroTask(t,o,y,P){return this.scheduleTask(new m(v,t,o,y,P,void 0))}scheduleMacroTask(t,o,y,P,K){return this.scheduleTask(new m(M,t,o,y,P,K))}scheduleEventTask(t,o,y,P,K){return this.scheduleTask(new m(R,t,o,y,P,K))}cancelTask(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||z).name+"; Execution: "+this.name+")");t._transitionTo(A,O,X);try{this._zoneDelegate.cancelTask(this,t)}catch(o){throw t._transitionTo(Y,A),this._zoneDelegate.handleError(this,o),o}return this._updateTaskCount(t,-1),t._transitionTo(j,A),t.runCount=0,t}_updateTaskCount(t,o){const y=t._zoneDelegates;-1==o&&(t._zoneDelegates=null);for(let P=0;P<y.length;P++)y[P]._updateTaskCount(t.type,o)}}return I.__symbol__=u,I})();const g={name:"",onHasTask:(I,p,t,o)=>I.hasTask(t,o),onScheduleTask:(I,p,t,o)=>I.scheduleTask(t,o),onInvokeTask:(I,p,t,o,y,P)=>I.invokeTask(t,o,y,P),onCancelTask:(I,p,t,o)=>I.cancelTask(t,o)};class T{constructor(p,t,o){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=p,this._parentDelegate=t,this._forkZS=o&&(o&&o.onFork?o:t._forkZS),this._forkDlgt=o&&(o.onFork?t:t._forkDlgt),this._forkCurrZone=o&&(o.onFork?this.zone:t._forkCurrZone),this._interceptZS=o&&(o.onIntercept?o:t._interceptZS),this._interceptDlgt=o&&(o.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=o&&(o.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=o&&(o.onInvoke?o:t._invokeZS),this._invokeDlgt=o&&(o.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=o&&(o.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=o&&(o.onHandleError?o:t._handleErrorZS),this._handleErrorDlgt=o&&(o.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=o&&(o.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=o&&(o.onScheduleTask?o:t._scheduleTaskZS),this._scheduleTaskDlgt=o&&(o.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=o&&(o.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=o&&(o.onInvokeTask?o:t._invokeTaskZS),this._invokeTaskDlgt=o&&(o.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=o&&(o.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=o&&(o.onCancelTask?o:t._cancelTaskZS),this._cancelTaskDlgt=o&&(o.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=o&&(o.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const y=o&&o.onHasTask;(y||t&&t._hasTaskZS)&&(this._hasTaskZS=y?o:g,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=p,o.onScheduleTask||(this._scheduleTaskZS=g,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),o.onInvokeTask||(this._invokeTaskZS=g,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),o.onCancelTask||(this._cancelTaskZS=g,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(p,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,p,t):new _(p,t)}intercept(p,t,o){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,p,t,o):t}invoke(p,t,o,y,P){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,p,t,o,y,P):t.apply(o,y)}handleError(p,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,p,t)}scheduleTask(p,t){let o=t;if(this._scheduleTaskZS)this._hasTaskZS&&o._zoneDelegates.push(this._hasTaskDlgtOwner),o=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,p,t),o||(o=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=v)throw new Error("Task is missing scheduleFn.");d(t)}return o}invokeTask(p,t,o,y){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,p,t,o,y):t.callback.apply(o,y)}cancelTask(p,t){let o;if(this._cancelTaskZS)o=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,p,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");o=t.cancelFn(t)}return o}hasTask(p,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,p,t)}catch(o){this.handleError(p,o)}}_updateTaskCount(p,t){const o=this._taskCounts,y=o[p],P=o[p]=y+t;if(P<0)throw new Error("More tasks executed then were scheduled.");0!=y&&0!=P||this.hasTask(this.zone,{microTask:o.microTask>0,macroTask:o.macroTask>0,eventTask:o.eventTask>0,change:p})}}class m{constructor(p,t,o,y,P,K){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=p,this.source=t,this.data=y,this.scheduleFn=P,this.cancelFn=K,!o)throw new Error("callback is not defined");this.callback=o;const l=this;this.invoke=p===R&&y&&y.useG?m.invokeTask:function(){return m.invokeTask.call(e,l,this,arguments)}}static invokeTask(p,t,o){p||(p=this),re++;try{return p.runCount++,p.zone.runTask(p,t,o)}finally{1==re&&L(),re--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(j,q)}_transitionTo(p,t,o){if(this._state!==t&&this._state!==o)throw new Error(`${this.type} '${this.source}': can not transition to '${p}', expecting state '${t}'${o?" or '"+o+"'":""}, was '${this._state}'.`);this._state=p,p==j&&(this._zoneDelegates=null)}toString(){return this.data&&void 0!==this.data.handleId?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const S=u("setTimeout"),D=u("Promise"),Z=u("then");let E,B=[],V=!1;function d(I){if(0===re&&0===B.length)if(E||e[D]&&(E=e[D].resolve(0)),E){let p=E[Z];p||(p=E.then),p.call(E,L)}else e[S](L,0);I&&B.push(I)}function L(){if(!V){for(V=!0;B.length;){const I=B;B=[];for(let p=0;p<I.length;p++){const t=I[p];try{t.zone.runTask(t,null,null)}catch(o){le.onUnhandledError(o)}}}le.microtaskDrainDone(),V=!1}}const z={name:"NO ZONE"},j="notScheduled",q="scheduling",O="scheduled",X="running",A="canceling",Y="unknown",v="microTask",M="macroTask",R="eventTask",J={},le={symbol:u,currentZoneFrame:()=>G,onUnhandledError:F,microtaskDrainDone:F,scheduleMicroTask:d,showUncaughtError:()=>!_[u("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:F,patchMethod:()=>F,bindArguments:()=>[],patchThen:()=>F,patchMacroTask:()=>F,patchEventPrototype:()=>F,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>F,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>F,wrapWithCurrentZone:()=>F,filterProperties:()=>[],attachOriginToPatched:()=>F,_redefineProperty:()=>F,patchCallbacks:()=>F};let G={parent:null,zone:new _(null,null)},te=null,re=0;function F(){}r("Zone","Zone"),e.Zone=_}("undefined"!=typeof window&&window||"undefined"!=typeof self&&self||global);const ue=Object.getOwnPropertyDescriptor,he=Object.defineProperty,de=Object.getPrototypeOf,Be=Object.create,ut=Array.prototype.slice,Se="addEventListener",Oe="removeEventListener",Ze=Zone.__symbol__(Se),Ie=Zone.__symbol__(Oe),se="true",ie="false",ke=Zone.__symbol__("");function Le(e,n){return Zone.current.wrap(e,n)}function Me(e,n,i,r,c){return Zone.current.scheduleMacroTask(e,n,i,r,c)}const x=Zone.__symbol__,Pe="undefined"!=typeof window,pe=Pe?window:void 0,$=Pe&&pe||"object"==typeof self&&self||global,ht=[null];function Ae(e,n){for(let i=e.length-1;i>=0;i--)"function"==typeof e[i]&&(e[i]=Le(e[i],n+"_"+i));return e}function Fe(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&void 0===e.set)}const Ue="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,Re=!("nw"in $)&&void 0!==$.process&&"[object process]"==={}.toString.call($.process),je=!Re&&!Ue&&!(!Pe||!pe.HTMLElement),We=void 0!==$.process&&"[object process]"==={}.toString.call($.process)&&!Ue&&!(!Pe||!pe.HTMLElement),Ce={},qe=function(e){if(!(e=e||$.event))return;let n=Ce[e.type];n||(n=Ce[e.type]=x("ON_PROPERTY"+e.type));const i=this||e.target||$,r=i[n];let c;if(je&&i===pe&&"error"===e.type){const u=e;c=r&&r.call(this,u.message,u.filename,u.lineno,u.colno,u.error),!0===c&&e.preventDefault()}else c=r&&r.apply(this,arguments),null!=c&&!c&&e.preventDefault();return c};function Xe(e,n,i){let r=ue(e,n);if(!r&&i&&ue(i,n)&&(r={enumerable:!0,configurable:!0}),!r||!r.configurable)return;const c=x("on"+n+"patched");if(e.hasOwnProperty(c)&&e[c])return;delete r.writable,delete r.value;const u=r.get,f=r.set,_=n.substr(2);let g=Ce[_];g||(g=Ce[_]=x("ON_PROPERTY"+_)),r.set=function(T){let m=this;!m&&e===$&&(m=$),m&&(m[g]&&m.removeEventListener(_,qe),f&&f.apply(m,ht),"function"==typeof T?(m[g]=T,m.addEventListener(_,qe,!1)):m[g]=null)},r.get=function(){let T=this;if(!T&&e===$&&(T=$),!T)return null;const m=T[g];if(m)return m;if(u){let S=u&&u.call(this);if(S)return r.set.call(this,S),"function"==typeof T.removeAttribute&&T.removeAttribute(n),S}return null},he(e,n,r),e[c]=!0}function Ye(e,n,i){if(n)for(let r=0;r<n.length;r++)Xe(e,"on"+n[r],i);else{const r=[];for(const c in e)"on"==c.substr(0,2)&&r.push(c);for(let c=0;c<r.length;c++)Xe(e,r[c],i)}}const ne=x("originalInstance");function ve(e){const n=$[e];if(!n)return;$[x(e)]=n,$[e]=function(){const c=Ae(arguments,e);switch(c.length){case 0:this[ne]=new n;break;case 1:this[ne]=new n(c[0]);break;case 2:this[ne]=new n(c[0],c[1]);break;case 3:this[ne]=new n(c[0],c[1],c[2]);break;case 4:this[ne]=new n(c[0],c[1],c[2],c[3]);break;default:throw new Error("Arg list too long.")}},ae($[e],n);const i=new n(function(){});let r;for(r in i)"XMLHttpRequest"===e&&"responseBlob"===r||function(c){"function"==typeof i[c]?$[e].prototype[c]=function(){return this[ne][c].apply(this[ne],arguments)}:he($[e].prototype,c,{set:function(u){"function"==typeof u?(this[ne][c]=Le(u,e+"."+c),ae(this[ne][c],u)):this[ne][c]=u},get:function(){return this[ne][c]}})}(r);for(r in n)"prototype"!==r&&n.hasOwnProperty(r)&&($[e][r]=n[r])}function ce(e,n,i){let r=e;for(;r&&!r.hasOwnProperty(n);)r=de(r);!r&&e[n]&&(r=e);const c=x(n);let u=null;if(r&&(!(u=r[c])||!r.hasOwnProperty(c))&&(u=r[c]=r[n],Fe(r&&ue(r,n)))){const _=i(u,c,n);r[n]=function(){return _(this,arguments)},ae(r[n],u)}return u}function _t(e,n,i){let r=null;function c(u){const f=u.data;return f.args[f.cbIdx]=function(){u.invoke.apply(this,arguments)},r.apply(f.target,f.args),u}r=ce(e,n,u=>function(f,_){const g=i(f,_);return g.cbIdx>=0&&"function"==typeof _[g.cbIdx]?Me(g.name,_[g.cbIdx],g,c):u.apply(f,_)})}function ae(e,n){e[x("OriginalDelegate")]=n}let $e=!1,He=!1;function mt(){if($e)return He;$e=!0;try{const e=pe.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(He=!0)}catch(e){}return He}Zone.__load_patch("ZoneAwarePromise",(e,n,i)=>{const r=Object.getOwnPropertyDescriptor,c=Object.defineProperty,f=i.symbol,_=[],g=!0===e[f("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],T=f("Promise"),m=f("then");i.onUnhandledError=l=>{if(i.showUncaughtError()){const s=l&&l.rejection;s?console.error("Unhandled Promise rejection:",s instanceof Error?s.message:s,"; Zone:",l.zone.name,"; Task:",l.task&&l.task.source,"; Value:",s,s instanceof Error?s.stack:void 0):console.error(l)}},i.microtaskDrainDone=()=>{for(;_.length;){const l=_.shift();try{l.zone.runGuarded(()=>{throw l.throwOriginal?l.rejection:l})}catch(s){Z(s)}}};const D=f("unhandledPromiseRejectionHandler");function Z(l){i.onUnhandledError(l);try{const s=n[D];"function"==typeof s&&s.call(this,l)}catch(s){}}function B(l){return l&&l.then}function V(l){return l}function E(l){return t.reject(l)}const d=f("state"),L=f("value"),z=f("finally"),j=f("parentPromiseValue"),q=f("parentPromiseState"),X=null,A=!0,Y=!1;function M(l,s){return a=>{try{G(l,s,a)}catch(h){G(l,!1,h)}}}const le=f("currentTaskTrace");function G(l,s,a){const h=function(){let l=!1;return function(a){return function(){l||(l=!0,a.apply(null,arguments))}}}();if(l===a)throw new TypeError("Promise resolved with itself");if(l[d]===X){let w=null;try{("object"==typeof a||"function"==typeof a)&&(w=a&&a.then)}catch(C){return h(()=>{G(l,!1,C)})(),l}if(s!==Y&&a instanceof t&&a.hasOwnProperty(d)&&a.hasOwnProperty(L)&&a[d]!==X)re(a),G(l,a[d],a[L]);else if(s!==Y&&"function"==typeof w)try{w.call(a,h(M(l,s)),h(M(l,!1)))}catch(C){h(()=>{G(l,!1,C)})()}else{l[d]=s;const C=l[L];if(l[L]=a,l[z]===z&&s===A&&(l[d]=l[q],l[L]=l[j]),s===Y&&a instanceof Error){const k=n.currentTask&&n.currentTask.data&&n.currentTask.data.__creationTrace__;k&&c(a,le,{configurable:!0,enumerable:!1,writable:!0,value:k})}for(let k=0;k<C.length;)F(l,C[k++],C[k++],C[k++],C[k++]);if(0==C.length&&s==Y){l[d]=0;let k=a;try{throw new Error("Uncaught (in promise): "+function(l){return l&&l.toString===Object.prototype.toString?(l.constructor&&l.constructor.name||"")+": "+JSON.stringify(l):l?l.toString():Object.prototype.toString.call(l)}(a)+(a&&a.stack?"\n"+a.stack:""))}catch(b){k=b}g&&(k.throwOriginal=!0),k.rejection=a,k.promise=l,k.zone=n.current,k.task=n.currentTask,_.push(k),i.scheduleMicroTask()}}}return l}const te=f("rejectionHandledHandler");function re(l){if(0===l[d]){try{const s=n[te];s&&"function"==typeof s&&s.call(this,{rejection:l[L],promise:l})}catch(s){}l[d]=Y;for(let s=0;s<_.length;s++)l===_[s].promise&&_.splice(s,1)}}function F(l,s,a,h,w){re(l);const C=l[d],k=C?"function"==typeof h?h:V:"function"==typeof w?w:E;s.scheduleMicroTask("Promise.then",()=>{try{const b=l[L],N=!!a&&z===a[z];N&&(a[j]=b,a[q]=C);const H=s.run(k,void 0,N&&k!==E&&k!==V?[]:[b]);G(a,!0,H)}catch(b){G(a,!1,b)}},a)}const p=function(){};class t{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(s){return G(new this(null),A,s)}static reject(s){return G(new this(null),Y,s)}static race(s){let a,h,w=new this((b,N)=>{a=b,h=N});function C(b){a(b)}function k(b){h(b)}for(let b of s)B(b)||(b=this.resolve(b)),b.then(C,k);return w}static all(s){return t.allWithCallback(s)}static allSettled(s){return(this&&this.prototype instanceof t?this:t).allWithCallback(s,{thenCallback:h=>({status:"fulfilled",value:h}),errorCallback:h=>({status:"rejected",reason:h})})}static allWithCallback(s,a){let h,w,C=new this((H,U)=>{h=H,w=U}),k=2,b=0;const N=[];for(let H of s){B(H)||(H=this.resolve(H));const U=b;try{H.then(Q=>{N[U]=a?a.thenCallback(Q):Q,k--,0===k&&h(N)},Q=>{a?(N[U]=a.errorCallback(Q),k--,0===k&&h(N)):w(Q)})}catch(Q){w(Q)}k++,b++}return k-=2,0===k&&h(N),C}constructor(s){const a=this;if(!(a instanceof t))throw new Error("Must be an instanceof Promise.");a[d]=X,a[L]=[];try{s&&s(M(a,A),M(a,Y))}catch(h){G(a,!1,h)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return t}then(s,a){let h=this.constructor[Symbol.species];(!h||"function"!=typeof h)&&(h=this.constructor||t);const w=new h(p),C=n.current;return this[d]==X?this[L].push(C,w,s,a):F(this,C,w,s,a),w}catch(s){return this.then(null,s)}finally(s){let a=this.constructor[Symbol.species];(!a||"function"!=typeof a)&&(a=t);const h=new a(p);h[z]=z;const w=n.current;return this[d]==X?this[L].push(w,h,s,s):F(this,w,h,s,s),h}}t.resolve=t.resolve,t.reject=t.reject,t.race=t.race,t.all=t.all;const o=e[T]=e.Promise;e.Promise=t;const y=f("thenPatched");function P(l){const s=l.prototype,a=r(s,"then");if(a&&(!1===a.writable||!a.configurable))return;const h=s.then;s[m]=h,l.prototype.then=function(w,C){return new t((b,N)=>{h.call(this,b,N)}).then(w,C)},l[y]=!0}return i.patchThen=P,o&&(P(o),ce(e,"fetch",l=>function(l){return function(s,a){let h=l.apply(s,a);if(h instanceof t)return h;let w=h.constructor;return w[y]||P(w),h}}(l))),Promise[n.__symbol__("uncaughtPromiseErrors")]=_,t}),Zone.__load_patch("toString",e=>{const n=Function.prototype.toString,i=x("OriginalDelegate"),r=x("Promise"),c=x("Error"),u=function(){if("function"==typeof this){const T=this[i];if(T)return"function"==typeof T?n.call(T):Object.prototype.toString.call(T);if(this===Promise){const m=e[r];if(m)return n.call(m)}if(this===Error){const m=e[c];if(m)return n.call(m)}}return n.call(this)};u[i]=n,Function.prototype.toString=u;const f=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":f.call(this)}});let me=!1;if("undefined"!=typeof window)try{const e=Object.defineProperty({},"passive",{get:function(){me=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch(e){me=!1}const Et={useG:!0},ee={},Ke={},Je=new RegExp("^"+ke+"(\\w+)(true|false)$"),xe=x("propagationStopped");function Qe(e,n){const i=(n?n(e):e)+ie,r=(n?n(e):e)+se,c=ke+i,u=ke+r;ee[e]={},ee[e][ie]=c,ee[e][se]=u}function Tt(e,n,i){const r=i&&i.add||Se,c=i&&i.rm||Oe,u=i&&i.listeners||"eventListeners",f=i&&i.rmAll||"removeAllListeners",_=x(r),g="."+r+":",S=function(E,d,L){if(E.isRemoved)return;const z=E.callback;"object"==typeof z&&z.handleEvent&&(E.callback=q=>z.handleEvent(q),E.originalDelegate=z),E.invoke(E,d,[L]);const j=E.options;j&&"object"==typeof j&&j.once&&d[c].call(d,L.type,E.originalDelegate?E.originalDelegate:E.callback,j)},D=function(E){if(!(E=E||e.event))return;const d=this||E.target||e,L=d[ee[E.type][ie]];if(L)if(1===L.length)S(L[0],d,E);else{const z=L.slice();for(let j=0;j<z.length&&(!E||!0!==E[xe]);j++)S(z[j],d,E)}},Z=function(E){if(!(E=E||e.event))return;const d=this||E.target||e,L=d[ee[E.type][se]];if(L)if(1===L.length)S(L[0],d,E);else{const z=L.slice();for(let j=0;j<z.length&&(!E||!0!==E[xe]);j++)S(z[j],d,E)}};function B(E,d){if(!E)return!1;let L=!0;d&&void 0!==d.useG&&(L=d.useG);const z=d&&d.vh;let j=!0;d&&void 0!==d.chkDup&&(j=d.chkDup);let q=!1;d&&void 0!==d.rt&&(q=d.rt);let O=E;for(;O&&!O.hasOwnProperty(r);)O=de(O);if(!O&&E[r]&&(O=E),!O||O[_])return!1;const X=d&&d.eventNameToString,A={},Y=O[_]=O[r],v=O[x(c)]=O[c],M=O[x(u)]=O[u],R=O[x(f)]=O[f];let J;function le(s,a){return!me&&"object"==typeof s&&s?!!s.capture:me&&a?"boolean"==typeof s?{capture:s,passive:!0}:s?"object"==typeof s&&!1!==s.passive?Object.assign(Object.assign({},s),{passive:!0}):s:{passive:!0}:s}d&&d.prepend&&(J=O[x(d.prepend)]=O[d.prepend]);const p=L?function(s){if(!A.isExisting)return Y.call(A.target,A.eventName,A.capture?Z:D,A.options)}:function(s){return Y.call(A.target,A.eventName,s.invoke,A.options)},t=L?function(s){if(!s.isRemoved){const a=ee[s.eventName];let h;a&&(h=a[s.capture?se:ie]);const w=h&&s.target[h];if(w)for(let C=0;C<w.length;C++)if(w[C]===s){w.splice(C,1),s.isRemoved=!0,0===w.length&&(s.allRemoved=!0,s.target[h]=null);break}}if(s.allRemoved)return v.call(s.target,s.eventName,s.capture?Z:D,s.options)}:function(s){return v.call(s.target,s.eventName,s.invoke,s.options)},y=d&&d.diff?d.diff:function(s,a){const h=typeof a;return"function"===h&&s.callback===a||"object"===h&&s.originalDelegate===a},P=Zone[x("UNPATCHED_EVENTS")],K=e[x("PASSIVE_EVENTS")],l=function(s,a,h,w,C=!1,k=!1){return function(){const b=this||e;let N=arguments[0];d&&d.transferEventName&&(N=d.transferEventName(N));let H=arguments[1];if(!H)return s.apply(this,arguments);if(Re&&"uncaughtException"===N)return s.apply(this,arguments);let U=!1;if("function"!=typeof H){if(!H.handleEvent)return s.apply(this,arguments);U=!0}if(z&&!z(s,H,b,arguments))return;const Q=me&&!!K&&-1!==K.indexOf(N),oe=le(arguments[2],Q);if(P)for(let _e=0;_e<P.length;_e++)if(N===P[_e])return Q?s.call(b,N,H,oe):s.apply(this,arguments);const Ge=!!oe&&("boolean"==typeof oe||oe.capture),st=!(!oe||"object"!=typeof oe)&&oe.once,At=Zone.current;let ze=ee[N];ze||(Qe(N,X),ze=ee[N]);const it=ze[Ge?se:ie];let De,ge=b[it],ct=!1;if(ge){if(ct=!0,j)for(let _e=0;_e<ge.length;_e++)if(y(ge[_e],H))return}else ge=b[it]=[];const at=b.constructor.name,lt=Ke[at];lt&&(De=lt[N]),De||(De=at+a+(X?X(N):N)),A.options=oe,st&&(A.options.once=!1),A.target=b,A.capture=Ge,A.eventName=N,A.isExisting=ct;const be=L?Et:void 0;be&&(be.taskData=A);const fe=At.scheduleEventTask(De,H,be,h,w);return A.target=null,be&&(be.taskData=null),st&&(oe.once=!0),!me&&"boolean"==typeof fe.options||(fe.options=oe),fe.target=b,fe.capture=Ge,fe.eventName=N,U&&(fe.originalDelegate=H),k?ge.unshift(fe):ge.push(fe),C?b:void 0}};return O[r]=l(Y,g,p,t,q),J&&(O.prependListener=l(J,".prependListener:",function(s){return J.call(A.target,A.eventName,s.invoke,A.options)},t,q,!0)),O[c]=function(){const s=this||e;let a=arguments[0];d&&d.transferEventName&&(a=d.transferEventName(a));const h=arguments[2],w=!!h&&("boolean"==typeof h||h.capture),C=arguments[1];if(!C)return v.apply(this,arguments);if(z&&!z(v,C,s,arguments))return;const k=ee[a];let b;k&&(b=k[w?se:ie]);const N=b&&s[b];if(N)for(let H=0;H<N.length;H++){const U=N[H];if(y(U,C))return N.splice(H,1),U.isRemoved=!0,0===N.length&&(U.allRemoved=!0,s[b]=null,"string"==typeof a)&&(s[ke+"ON_PROPERTY"+a]=null),U.zone.cancelTask(U),q?s:void 0}return v.apply(this,arguments)},O[u]=function(){const s=this||e;let a=arguments[0];d&&d.transferEventName&&(a=d.transferEventName(a));const h=[],w=et(s,X?X(a):a);for(let C=0;C<w.length;C++){const k=w[C];h.push(k.originalDelegate?k.originalDelegate:k.callback)}return h},O[f]=function(){const s=this||e;let a=arguments[0];if(a){d&&d.transferEventName&&(a=d.transferEventName(a));const h=ee[a];if(h){const k=s[h[ie]],b=s[h[se]];if(k){const N=k.slice();for(let H=0;H<N.length;H++){const U=N[H];this[c].call(this,a,U.originalDelegate?U.originalDelegate:U.callback,U.options)}}if(b){const N=b.slice();for(let H=0;H<N.length;H++){const U=N[H];this[c].call(this,a,U.originalDelegate?U.originalDelegate:U.callback,U.options)}}}}else{const h=Object.keys(s);for(let w=0;w<h.length;w++){const k=Je.exec(h[w]);let b=k&&k[1];b&&"removeListener"!==b&&this[f].call(this,b)}this[f].call(this,"removeListener")}if(q)return this},ae(O[r],Y),ae(O[c],v),R&&ae(O[f],R),M&&ae(O[u],M),!0}let V=[];for(let E=0;E<n.length;E++)V[E]=B(n[E],i);return V}function et(e,n){if(!n){const u=[];for(let f in e){const _=Je.exec(f);let g=_&&_[1];if(g&&(!n||g===n)){const T=e[f];if(T)for(let m=0;m<T.length;m++)u.push(T[m])}}return u}let i=ee[n];i||(Qe(n),i=ee[n]);const r=e[i[ie]],c=e[i[se]];return r?c?r.concat(c):r.slice():c?c.slice():[]}function yt(e,n){const i=e.Event;i&&i.prototype&&n.patchMethod(i.prototype,"stopImmediatePropagation",r=>function(c,u){c[xe]=!0,r&&r.apply(c,u)})}function gt(e,n,i,r,c){const u=Zone.__symbol__(r);if(n[u])return;const f=n[u]=n[r];n[r]=function(_,g,T){return g&&g.prototype&&c.forEach(function(m){const S=`${i}.${r}::`+m,D=g.prototype;if(D.hasOwnProperty(m)){const Z=e.ObjectGetOwnPropertyDescriptor(D,m);Z&&Z.value?(Z.value=e.wrapWithCurrentZone(Z.value,S),e._redefineProperty(g.prototype,m,Z)):D[m]&&(D[m]=e.wrapWithCurrentZone(D[m],S))}else D[m]&&(D[m]=e.wrapWithCurrentZone(D[m],S))}),f.call(n,_,g,T)},e.attachOriginToPatched(n[r],f)}const Ve=["absolutedeviceorientation","afterinput","afterprint","appinstalled","beforeinstallprompt","beforeprint","beforeunload","devicelight","devicemotion","deviceorientation","deviceorientationabsolute","deviceproximity","hashchange","languagechange","message","mozbeforepaint","offline","online","paint","pageshow","pagehide","popstate","rejectionhandled","storage","unhandledrejection","unload","userproximity","vrdisplayconnected","vrdisplaydisconnected","vrdisplaypresentchange"],wt=["encrypted","waitingforkey","msneedkey","mozinterruptbegin","mozinterruptend"],tt=["load"],nt=["blur","error","focus","load","resize","scroll","messageerror"],Dt=["bounce","finish","start"],rt=["loadstart","progress","abort","error","load","progress","timeout","loadend","readystatechange"],Ee=["upgradeneeded","complete","abort","success","error","blocked","versionchange","close"],St=["close","error","open","message"],Ot=["error","message"],Te=["abort","animationcancel","animationend","animationiteration","auxclick","beforeinput","blur","cancel","canplay","canplaythrough","change","compositionstart","compositionupdate","compositionend","cuechange","click","close","contextmenu","curechange","dblclick","drag","dragend","dragenter","dragexit","dragleave","dragover","drop","durationchange","emptied","ended","error","focus","focusin","focusout","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadstart","loadeddata","loadedmetadata","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","orientationchange","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointerlockchange","mozpointerlockchange","webkitpointerlockerchange","pointerlockerror","mozpointerlockerror","webkitpointerlockerror","pointermove","pointout","pointerover","pointerup","progress","ratechange","reset","resize","scroll","seeked","seeking","select","selectionchange","selectstart","show","sort","stalled","submit","suspend","timeupdate","volumechange","touchcancel","touchmove","touchstart","touchend","transitioncancel","transitionend","waiting","wheel"].concat(["webglcontextrestored","webglcontextlost","webglcontextcreationerror"],["autocomplete","autocompleteerror"],["toggle"],["afterscriptexecute","beforescriptexecute","DOMContentLoaded","freeze","fullscreenchange","mozfullscreenchange","webkitfullscreenchange","msfullscreenchange","fullscreenerror","mozfullscreenerror","webkitfullscreenerror","msfullscreenerror","readystatechange","visibilitychange","resume"],Ve,["beforecopy","beforecut","beforepaste","copy","cut","paste","dragstart","loadend","animationstart","search","transitionrun","transitionstart","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend"],["activate","afterupdate","ariarequest","beforeactivate","beforedeactivate","beforeeditfocus","beforeupdate","cellchange","controlselect","dataavailable","datasetchanged","datasetcomplete","errorupdate","filterchange","layoutcomplete","losecapture","move","moveend","movestart","propertychange","resizeend","resizestart","rowenter","rowexit","rowsdelete","rowsinserted","command","compassneedscalibration","deactivate","help","mscontentzoom","msmanipulationstatechanged","msgesturechange","msgesturedoubletap","msgestureend","msgesturehold","msgesturestart","msgesturetap","msgotpointercapture","msinertiastart","mslostpointercapture","mspointercancel","mspointerdown","mspointerenter","mspointerhover","mspointerleave","mspointermove","mspointerout","mspointerover","mspointerup","pointerout","mssitemodejumplistitemremoved","msthumbnailclick","stop","storagecommit"]);function ot(e,n,i){if(!i||0===i.length)return n;const r=i.filter(u=>u.target===e);if(!r||0===r.length)return n;const c=r[0].ignoreProperties;return n.filter(u=>-1===c.indexOf(u))}function W(e,n,i,r){e&&Ye(e,ot(e,n,i),r)}Zone.__load_patch("util",(e,n,i)=>{i.patchOnProperties=Ye,i.patchMethod=ce,i.bindArguments=Ae,i.patchMacroTask=_t;const r=n.__symbol__("BLACK_LISTED_EVENTS"),c=n.__symbol__("UNPATCHED_EVENTS");e[c]&&(e[r]=e[c]),e[r]&&(n[r]=n[c]=e[r]),i.patchEventPrototype=yt,i.patchEventTarget=Tt,i.isIEOrEdge=mt,i.ObjectDefineProperty=he,i.ObjectGetOwnPropertyDescriptor=ue,i.ObjectCreate=Be,i.ArraySlice=ut,i.patchClass=ve,i.wrapWithCurrentZone=Le,i.filterProperties=ot,i.attachOriginToPatched=ae,i._redefineProperty=Object.defineProperty,i.patchCallbacks=gt,i.getGlobalObjects=()=>({globalSources:Ke,zoneSymbolEventNames:ee,eventNames:Te,isBrowser:je,isMix:We,isNode:Re,TRUE_STR:se,FALSE_STR:ie,ZONE_SYMBOL_PREFIX:ke,ADD_EVENT_LISTENER_STR:Se,REMOVE_EVENT_LISTENER_STR:Oe})});const Ne=x("zoneTask");function ye(e,n,i,r){let c=null,u=null;i+=r;const f={};function _(T){const m=T.data;return m.args[0]=function(){return T.invoke.apply(this,arguments)},m.handleId=c.apply(e,m.args),T}function g(T){return u.call(e,T.data.handleId)}c=ce(e,n+=r,T=>function(m,S){if("function"==typeof S[0]){const D={isPeriodic:"Interval"===r,delay:"Timeout"===r||"Interval"===r?S[1]||0:void 0,args:S},Z=S[0];S[0]=function(){try{return Z.apply(this,arguments)}finally{D.isPeriodic||("number"==typeof D.handleId?delete f[D.handleId]:D.handleId&&(D.handleId[Ne]=null))}};const B=Me(n,S[0],D,_,g);if(!B)return B;const V=B.data.handleId;return"number"==typeof V?f[V]=B:V&&(V[Ne]=B),V&&V.ref&&V.unref&&"function"==typeof V.ref&&"function"==typeof V.unref&&(B.ref=V.ref.bind(V),B.unref=V.unref.bind(V)),"number"==typeof V||V?V:B}return T.apply(e,S)}),u=ce(e,i,T=>function(m,S){const D=S[0];let Z;"number"==typeof D?Z=f[D]:(Z=D&&D[Ne],Z||(Z=D)),Z&&"string"==typeof Z.type?"notScheduled"!==Z.state&&(Z.cancelFn&&Z.data.isPeriodic||0===Z.runCount)&&("number"==typeof D?delete f[D]:D&&(D[Ne]=null),Z.zone.cancelTask(Z)):T.apply(e,S)})}Zone.__load_patch("legacy",e=>{const n=e[Zone.__symbol__("legacyPatch")];n&&n()}),Zone.__load_patch("queueMicrotask",(e,n,i)=>{i.patchMethod(e,"queueMicrotask",r=>function(c,u){n.current.scheduleMicroTask("queueMicrotask",u[0])})}),Zone.__load_patch("timers",e=>{const n="set",i="clear";ye(e,n,i,"Timeout"),ye(e,n,i,"Interval"),ye(e,n,i,"Immediate")}),Zone.__load_patch("requestAnimationFrame",e=>{ye(e,"request","cancel","AnimationFrame"),ye(e,"mozRequest","mozCancel","AnimationFrame"),ye(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(e,n)=>{const i=["alert","prompt","confirm"];for(let r=0;r<i.length;r++)ce(e,i[r],(u,f,_)=>function(g,T){return n.current.run(u,e,T,_)})}),Zone.__load_patch("EventTarget",(e,n,i)=>{(function(e,n){n.patchEventPrototype(e,n)})(e,i),function(e,n){if(Zone[n.symbol("patchEventTarget")])return;const{eventNames:i,zoneSymbolEventNames:r,TRUE_STR:c,FALSE_STR:u,ZONE_SYMBOL_PREFIX:f}=n.getGlobalObjects();for(let g=0;g<i.length;g++){const T=i[g],D=f+(T+u),Z=f+(T+c);r[T]={},r[T][u]=D,r[T][c]=Z}const _=e.EventTarget;_&&_.prototype&&n.patchEventTarget(e,[_&&_.prototype])}(e,i);const r=e.XMLHttpRequestEventTarget;r&&r.prototype&&i.patchEventTarget(e,[r.prototype])}),Zone.__load_patch("MutationObserver",(e,n,i)=>{ve("MutationObserver"),ve("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(e,n,i)=>{ve("IntersectionObserver")}),Zone.__load_patch("FileReader",(e,n,i)=>{ve("FileReader")}),Zone.__load_patch("on_property",(e,n,i)=>{!function(e,n){if(Re&&!We||Zone[e.symbol("patchEvents")])return;const i="undefined"!=typeof WebSocket,r=n.__Zone_ignore_on_properties;if(je){const f=window,_=function(){try{const e=pe.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch(e){}return!1}()?[{target:f,ignoreProperties:["error"]}]:[];W(f,Te.concat(["messageerror"]),r&&r.concat(_),de(f)),W(Document.prototype,Te,r),void 0!==f.SVGElement&&W(f.SVGElement.prototype,Te,r),W(Element.prototype,Te,r),W(HTMLElement.prototype,Te,r),W(HTMLMediaElement.prototype,wt,r),W(HTMLFrameSetElement.prototype,Ve.concat(nt),r),W(HTMLBodyElement.prototype,Ve.concat(nt),r),W(HTMLFrameElement.prototype,tt,r),W(HTMLIFrameElement.prototype,tt,r);const g=f.HTMLMarqueeElement;g&&W(g.prototype,Dt,r);const T=f.Worker;T&&W(T.prototype,Ot,r)}const c=n.XMLHttpRequest;c&&W(c.prototype,rt,r);const u=n.XMLHttpRequestEventTarget;u&&W(u&&u.prototype,rt,r),"undefined"!=typeof IDBIndex&&(W(IDBIndex.prototype,Ee,r),W(IDBRequest.prototype,Ee,r),W(IDBOpenDBRequest.prototype,Ee,r),W(IDBDatabase.prototype,Ee,r),W(IDBTransaction.prototype,Ee,r),W(IDBCursor.prototype,Ee,r)),i&&W(WebSocket.prototype,St,r)}(i,e)}),Zone.__load_patch("customElements",(e,n,i)=>{!function(e,n){const{isBrowser:i,isMix:r}=n.getGlobalObjects();(i||r)&&e.customElements&&"customElements"in e&&n.patchCallbacks(n,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(e,i)}),Zone.__load_patch("XHR",(e,n)=>{!function(T){const m=T.XMLHttpRequest;if(!m)return;const S=m.prototype;let Z=S[Ze],B=S[Ie];if(!Z){const v=T.XMLHttpRequestEventTarget;if(v){const M=v.prototype;Z=M[Ze],B=M[Ie]}}const V="readystatechange",E="scheduled";function d(v){const M=v.data,R=M.target;R[u]=!1,R[_]=!1;const J=R[c];Z||(Z=R[Ze],B=R[Ie]),J&&B.call(R,V,J);const le=R[c]=()=>{if(R.readyState===R.DONE)if(!M.aborted&&R[u]&&v.state===E){const te=R[n.__symbol__("loadfalse")];if(0!==R.status&&te&&te.length>0){const re=v.invoke;v.invoke=function(){const F=R[n.__symbol__("loadfalse")];for(let I=0;I<F.length;I++)F[I]===v&&F.splice(I,1);!M.aborted&&v.state===E&&re.call(v)},te.push(v)}else v.invoke()}else!M.aborted&&!1===R[u]&&(R[_]=!0)};return Z.call(R,V,le),R[i]||(R[i]=v),A.apply(R,M.args),R[u]=!0,v}function L(){}function z(v){const M=v.data;return M.aborted=!0,Y.apply(M.target,M.args)}const j=ce(S,"open",()=>function(v,M){return v[r]=0==M[2],v[f]=M[1],j.apply(v,M)}),O=x("fetchTaskAborting"),X=x("fetchTaskScheduling"),A=ce(S,"send",()=>function(v,M){if(!0===n.current[X]||v[r])return A.apply(v,M);{const R={target:v,url:v[f],isPeriodic:!1,args:M,aborted:!1},J=Me("XMLHttpRequest.send",L,R,d,z);v&&!0===v[_]&&!R.aborted&&J.state===E&&J.invoke()}}),Y=ce(S,"abort",()=>function(v,M){const R=function(v){return v[i]}(v);if(R&&"string"==typeof R.type){if(null==R.cancelFn||R.data&&R.data.aborted)return;R.zone.cancelTask(R)}else if(!0===n.current[O])return Y.apply(v,M)})}(e);const i=x("xhrTask"),r=x("xhrSync"),c=x("xhrListener"),u=x("xhrScheduled"),f=x("xhrURL"),_=x("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",e=>{e.navigator&&e.navigator.geolocation&&function(e,n){const i=e.constructor.name;for(let r=0;r<n.length;r++){const c=n[r],u=e[c];if(u){if(!Fe(ue(e,c)))continue;e[c]=(_=>{const g=function(){return _.apply(this,Ae(arguments,i+"."+c))};return ae(g,_),g})(u)}}}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(e,n)=>{function i(r){return function(c){et(e,r).forEach(f=>{const _=e.PromiseRejectionEvent;if(_){const g=new _(r,{promise:c.promise,reason:c.rejection});f.invoke(g)}})}}e.PromiseRejectionEvent&&(n[x("unhandledPromiseRejectionHandler")]=i("unhandledrejection"),n[x("rejectionHandledHandler")]=i("rejectionhandled"))})},7435:(we,ue,he)=>{he(7277)}},we=>{we(we.s=7435)}]); \ No newline at end of file diff --git a/src/blrec/data/webapp/runtime.9c55e9c0a6d0459b5e96.js b/src/blrec/data/webapp/runtime.9c55e9c0a6d0459b5e96.js new file mode 100644 index 0000000..7737ee8 --- /dev/null +++ b/src/blrec/data/webapp/runtime.9c55e9c0a6d0459b5e96.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,v={},m={};function r(e){var n=m[e];if(void 0!==n)return n.exports;var t=m[e]={exports:{}};return v[e].call(t.exports,t,t.exports,r),t.exports}r.m=v,e=[],r.O=(n,t,i,o)=>{if(!t){var a=1/0;for(f=0;f<e.length;f++){for(var[t,i,o]=e[f],d=!0,l=0;l<t.length;l++)(!1&o||a>=o)&&Object.keys(r.O).every(p=>r.O[p](t[l]))?t.splice(l--,1):(d=!1,o<a&&(a=o));if(d){e.splice(f--,1);var c=i();void 0!==c&&(n=c)}}return n}o=o||0;for(var f=e.length;f>0&&e[f-1][2]>o;f--)e[f]=e[f-1];e[f]=[t,i,o]},r.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return r.d(n,{a:n}),n},r.d=(e,n)=>{for(var t in n)r.o(n,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((n,t)=>(r.f[t](e,n),n),[])),r.u=e=>(592===e?"common":e)+"."+{51:"560338ef5c3689b822f9",80:"78cb9b41766e5c57d657",198:"20d927ba29c55516dd2e",592:"fa68e1b34f0baff6ccad",659:"4923e830b3feb2abcce2",954:"05cbcc74da25eb3ef2a9"}[e]+".js",r.miniCssF=e=>"styles.09c5ed83b6748436b293.css",r.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),(()=>{var e={},n="blrec:";r.l=(t,i,o,f)=>{if(e[t])e[t].push(i);else{var a,d;if(void 0!==o)for(var l=document.getElementsByTagName("script"),c=0;c<l.length;c++){var u=l[c];if(u.getAttribute("src")==t||u.getAttribute("data-webpack")==n+o){a=u;break}}a||(d=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,r.nc&&a.setAttribute("nonce",r.nc),a.setAttribute("data-webpack",n+o),a.src=r.tu(t)),e[t]=[i];var s=(g,p)=>{a.onerror=a.onload=null,clearTimeout(b);var _=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),_&&_.forEach(h=>h(p)),g)return g(p)},b=setTimeout(s.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=s.bind(null,a.onerror),a.onload=s.bind(null,a.onload),d&&document.head.appendChild(a)}}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tu=n=>(void 0===e&&(e={createScriptURL:t=>t},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e.createScriptURL(n))})(),r.p="",(()=>{var e={666:0};r.f.j=(i,o)=>{var f=r.o(e,i)?e[i]:void 0;if(0!==f)if(f)o.push(f[2]);else if(666!=i){var a=new Promise((u,s)=>f=e[i]=[u,s]);o.push(f[2]=a);var d=r.p+r.u(i),l=new Error;r.l(d,u=>{if(r.o(e,i)&&(0!==(f=e[i])&&(e[i]=void 0),f)){var s=u&&("load"===u.type?"missing":u.type),b=u&&u.target&&u.target.src;l.message="Loading chunk "+i+" failed.\n("+s+": "+b+")",l.name="ChunkLoadError",l.type=s,l.request=b,f[1](l)}},"chunk-"+i,i)}else e[i]=0},r.O.j=i=>0===e[i];var n=(i,o)=>{var l,c,[f,a,d]=o,u=0;for(l in a)r.o(a,l)&&(r.m[l]=a[l]);if(d)var s=d(r);for(i&&i(o);u<f.length;u++)r.o(e,c=f[u])&&e[c]&&e[c][0](),e[f[u]]=0;return r.O(s)},t=self.webpackChunkblrec=self.webpackChunkblrec||[];t.forEach(n.bind(null,0)),t.push=n.bind(null,t.push.bind(t))})()})(); \ No newline at end of file diff --git a/src/blrec/data/webapp/safety-worker.js b/src/blrec/data/webapp/safety-worker.js new file mode 100644 index 0000000..e960603 --- /dev/null +++ b/src/blrec/data/webapp/safety-worker.js @@ -0,0 +1,20 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +// tslint:disable:no-console + +self.addEventListener('install', event => { + self.skipWaiting(); +}); + +self.addEventListener('activate', event => { + event.waitUntil(self.clients.claim()); + self.registration.unregister().then(() => { + console.log('NGSW Safety Worker - unregistered old service worker'); + }); +}); diff --git a/src/blrec/data/webapp/styles.09c5ed83b6748436b293.css b/src/blrec/data/webapp/styles.09c5ed83b6748436b293.css new file mode 100644 index 0000000..4e6b585 --- /dev/null +++ b/src/blrec/data/webapp/styles.09c5ed83b6748436b293.css @@ -0,0 +1,2 @@ +[class*=ant-]::-ms-clear,[class*=ant-] input::-ms-clear,[class*=ant-] input::-ms-reveal,[class^=ant-]::-ms-clear,[class^=ant-] input::-ms-clear,[class^=ant-] input::-ms-reveal{display:none}body,html{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{margin:0;color:#000000d9;font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variant:tabular-nums;line-height:1.5715;background-color:#fff;font-feature-settings:"tnum","tnum"}[tabindex="-1"]:focus{outline:none!important}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;color:#000000d9;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-top:0;margin-bottom:1em}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}a{color:#1890ff;text-decoration:none;background-color:initial;outline:none;cursor:pointer;transition:color .3s;-webkit-text-decoration-skip:objects}a:hover{color:#40a9ff}a:active{color:#096dd9}a:active,a:focus,a:hover{text-decoration:none;outline:0}a[disabled]{color:#00000040;cursor:not-allowed}code,kbd,pre,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;color:#00000073;text-align:left;caption-side:bottom}button,input,optgroup,select,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}::selection{color:#fff;background:#1890ff}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}.anticon{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.anticon>*{line-height:1}.anticon svg{display:inline-block}.anticon:before{display:none}.anticon .anticon-icon{display:block}.anticon[tabindex]{cursor:pointer}.anticon-spin,.anticon-spin:before{display:inline-block;animation:loadingCircle 1s linear infinite}.ant-fade-appear,.ant-fade-enter,.ant-fade-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-fade-appear.ant-fade-appear-active,.ant-fade-enter.ant-fade-enter-active{animation-name:antFadeIn;animation-play-state:running}.ant-fade-leave.ant-fade-leave-active{animation-name:antFadeOut;animation-play-state:running;pointer-events:none}.ant-fade-appear,.ant-fade-enter{opacity:0;animation-timing-function:linear}.ant-fade-leave{animation-timing-function:linear}@keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@keyframes antFadeOut{0%{opacity:1}to{opacity:0}}.ant-move-up-appear,.ant-move-up-enter,.ant-move-up-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-move-up-appear.ant-move-up-appear-active,.ant-move-up-enter.ant-move-up-enter-active{animation-name:antMoveUpIn;animation-play-state:running}.ant-move-up-leave.ant-move-up-leave-active{animation-name:antMoveUpOut;animation-play-state:running;pointer-events:none}.ant-move-up-appear,.ant-move-up-enter{opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-move-up-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-down-appear,.ant-move-down-enter,.ant-move-down-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-move-down-appear.ant-move-down-appear-active,.ant-move-down-enter.ant-move-down-enter-active{animation-name:antMoveDownIn;animation-play-state:running}.ant-move-down-leave.ant-move-down-leave-active{animation-name:antMoveDownOut;animation-play-state:running;pointer-events:none}.ant-move-down-appear,.ant-move-down-enter{opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-move-down-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-left-appear,.ant-move-left-enter,.ant-move-left-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-move-left-appear.ant-move-left-appear-active,.ant-move-left-enter.ant-move-left-enter-active{animation-name:antMoveLeftIn;animation-play-state:running}.ant-move-left-leave.ant-move-left-leave-active{animation-name:antMoveLeftOut;animation-play-state:running;pointer-events:none}.ant-move-left-appear,.ant-move-left-enter{opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-move-left-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.ant-move-right-appear,.ant-move-right-enter,.ant-move-right-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-move-right-appear.ant-move-right-appear-active,.ant-move-right-enter.ant-move-right-enter-active{animation-name:antMoveRightIn;animation-play-state:running}.ant-move-right-leave.ant-move-right-leave-active{animation-name:antMoveRightOut;animation-play-state:running;pointer-events:none}.ant-move-right-appear,.ant-move-right-enter{opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-move-right-leave{animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@keyframes antMoveDownIn{0%{transform:translateY(100%);transform-origin:0 0;opacity:0}to{transform:translateY(0);transform-origin:0 0;opacity:1}}@keyframes antMoveDownOut{0%{transform:translateY(0);transform-origin:0 0;opacity:1}to{transform:translateY(100%);transform-origin:0 0;opacity:0}}@keyframes antMoveLeftIn{0%{transform:translateX(-100%);transform-origin:0 0;opacity:0}to{transform:translateX(0);transform-origin:0 0;opacity:1}}@keyframes antMoveLeftOut{0%{transform:translateX(0);transform-origin:0 0;opacity:1}to{transform:translateX(-100%);transform-origin:0 0;opacity:0}}@keyframes antMoveRightIn{0%{transform:translateX(100%);transform-origin:0 0;opacity:0}to{transform:translateX(0);transform-origin:0 0;opacity:1}}@keyframes antMoveRightOut{0%{transform:translateX(0);transform-origin:0 0;opacity:1}to{transform:translateX(100%);transform-origin:0 0;opacity:0}}@keyframes antMoveUpIn{0%{transform:translateY(-100%);transform-origin:0 0;opacity:0}to{transform:translateY(0);transform-origin:0 0;opacity:1}}@keyframes antMoveUpOut{0%{transform:translateY(0);transform-origin:0 0;opacity:1}to{transform:translateY(-100%);transform-origin:0 0;opacity:0}}@keyframes loadingCircle{to{transform:rotate(1turn)}}[ant-click-animating-without-extra-node=true],[ant-click-animating=true]{position:relative}html{--antd-wave-shadow-color:#1890ff;--scroll-bar:0}.ant-click-animating-node,[ant-click-animating-without-extra-node=true]:after{position:absolute;top:0;right:0;bottom:0;left:0;display:block;border-radius:inherit;box-shadow:0 0 0 0 #1890ff;box-shadow:0 0 0 0 var(--antd-wave-shadow-color);opacity:.2;animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);animation-fill-mode:forwards;content:"";pointer-events:none}@keyframes waveEffect{to{box-shadow:0 0 0 #1890ff;box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@keyframes fadeEffect{to{opacity:0}}.ant-slide-up-appear,.ant-slide-up-enter,.ant-slide-up-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-slide-up-appear.ant-slide-up-appear-active,.ant-slide-up-enter.ant-slide-up-enter-active{animation-name:antSlideUpIn;animation-play-state:running}.ant-slide-up-leave.ant-slide-up-leave-active{animation-name:antSlideUpOut;animation-play-state:running;pointer-events:none}.ant-slide-up-appear,.ant-slide-up-enter{opacity:0;animation-timing-function:cubic-bezier(.23,1,.32,1)}.ant-slide-up-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-down-appear,.ant-slide-down-enter,.ant-slide-down-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-slide-down-appear.ant-slide-down-appear-active,.ant-slide-down-enter.ant-slide-down-enter-active{animation-name:antSlideDownIn;animation-play-state:running}.ant-slide-down-leave.ant-slide-down-leave-active{animation-name:antSlideDownOut;animation-play-state:running;pointer-events:none}.ant-slide-down-appear,.ant-slide-down-enter{opacity:0;animation-timing-function:cubic-bezier(.23,1,.32,1)}.ant-slide-down-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-left-appear,.ant-slide-left-enter,.ant-slide-left-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-slide-left-appear.ant-slide-left-appear-active,.ant-slide-left-enter.ant-slide-left-enter-active{animation-name:antSlideLeftIn;animation-play-state:running}.ant-slide-left-leave.ant-slide-left-leave-active{animation-name:antSlideLeftOut;animation-play-state:running;pointer-events:none}.ant-slide-left-appear,.ant-slide-left-enter{opacity:0;animation-timing-function:cubic-bezier(.23,1,.32,1)}.ant-slide-left-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.ant-slide-right-appear,.ant-slide-right-enter,.ant-slide-right-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-slide-right-appear.ant-slide-right-appear-active,.ant-slide-right-enter.ant-slide-right-enter-active{animation-name:antSlideRightIn;animation-play-state:running}.ant-slide-right-leave.ant-slide-right-leave-active{animation-name:antSlideRightOut;animation-play-state:running;pointer-events:none}.ant-slide-right-appear,.ant-slide-right-enter{opacity:0;animation-timing-function:cubic-bezier(.23,1,.32,1)}.ant-slide-right-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@keyframes antSlideUpIn{0%{transform:scaleY(.8);transform-origin:0 0;opacity:0}to{transform:scaleY(1);transform-origin:0 0;opacity:1}}@keyframes antSlideUpOut{0%{transform:scaleY(1);transform-origin:0 0;opacity:1}to{transform:scaleY(.8);transform-origin:0 0;opacity:0}}@keyframes antSlideDownIn{0%{transform:scaleY(.8);transform-origin:100% 100%;opacity:0}to{transform:scaleY(1);transform-origin:100% 100%;opacity:1}}@keyframes antSlideDownOut{0%{transform:scaleY(1);transform-origin:100% 100%;opacity:1}to{transform:scaleY(.8);transform-origin:100% 100%;opacity:0}}@keyframes antSlideLeftIn{0%{transform:scaleX(.8);transform-origin:0 0;opacity:0}to{transform:scaleX(1);transform-origin:0 0;opacity:1}}@keyframes antSlideLeftOut{0%{transform:scaleX(1);transform-origin:0 0;opacity:1}to{transform:scaleX(.8);transform-origin:0 0;opacity:0}}@keyframes antSlideRightIn{0%{transform:scaleX(.8);transform-origin:100% 0;opacity:0}to{transform:scaleX(1);transform-origin:100% 0;opacity:1}}@keyframes antSlideRightOut{0%{transform:scaleX(1);transform-origin:100% 0;opacity:1}to{transform:scaleX(.8);transform-origin:100% 0;opacity:0}}.ant-zoom-appear,.ant-zoom-enter,.ant-zoom-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-appear.ant-zoom-appear-active,.ant-zoom-enter.ant-zoom-enter-active{animation-name:antZoomIn;animation-play-state:running}.ant-zoom-leave.ant-zoom-leave-active{animation-name:antZoomOut;animation-play-state:running;pointer-events:none}.ant-zoom-appear,.ant-zoom-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-appear-prepare,.ant-zoom-enter-prepare{transform:none}.ant-zoom-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-big-appear,.ant-zoom-big-enter,.ant-zoom-big-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-big-appear.ant-zoom-big-appear-active,.ant-zoom-big-enter.ant-zoom-big-enter-active{animation-name:antZoomBigIn;animation-play-state:running}.ant-zoom-big-leave.ant-zoom-big-leave-active{animation-name:antZoomBigOut;animation-play-state:running;pointer-events:none}.ant-zoom-big-appear,.ant-zoom-big-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-big-appear-prepare,.ant-zoom-big-enter-prepare{transform:none}.ant-zoom-big-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-big-fast-appear,.ant-zoom-big-fast-enter,.ant-zoom-big-fast-leave{animation-duration:.1s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-big-fast-appear.ant-zoom-big-fast-appear-active,.ant-zoom-big-fast-enter.ant-zoom-big-fast-enter-active{animation-name:antZoomBigIn;animation-play-state:running}.ant-zoom-big-fast-leave.ant-zoom-big-fast-leave-active{animation-name:antZoomBigOut;animation-play-state:running;pointer-events:none}.ant-zoom-big-fast-appear,.ant-zoom-big-fast-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-big-fast-appear-prepare,.ant-zoom-big-fast-enter-prepare{transform:none}.ant-zoom-big-fast-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-up-appear,.ant-zoom-up-enter,.ant-zoom-up-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-up-appear.ant-zoom-up-appear-active,.ant-zoom-up-enter.ant-zoom-up-enter-active{animation-name:antZoomUpIn;animation-play-state:running}.ant-zoom-up-leave.ant-zoom-up-leave-active{animation-name:antZoomUpOut;animation-play-state:running;pointer-events:none}.ant-zoom-up-appear,.ant-zoom-up-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-up-appear-prepare,.ant-zoom-up-enter-prepare{transform:none}.ant-zoom-up-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-down-appear,.ant-zoom-down-enter,.ant-zoom-down-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-down-appear.ant-zoom-down-appear-active,.ant-zoom-down-enter.ant-zoom-down-enter-active{animation-name:antZoomDownIn;animation-play-state:running}.ant-zoom-down-leave.ant-zoom-down-leave-active{animation-name:antZoomDownOut;animation-play-state:running;pointer-events:none}.ant-zoom-down-appear,.ant-zoom-down-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-down-appear-prepare,.ant-zoom-down-enter-prepare{transform:none}.ant-zoom-down-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-left-appear,.ant-zoom-left-enter,.ant-zoom-left-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-left-appear.ant-zoom-left-appear-active,.ant-zoom-left-enter.ant-zoom-left-enter-active{animation-name:antZoomLeftIn;animation-play-state:running}.ant-zoom-left-leave.ant-zoom-left-leave-active{animation-name:antZoomLeftOut;animation-play-state:running;pointer-events:none}.ant-zoom-left-appear,.ant-zoom-left-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-left-appear-prepare,.ant-zoom-left-enter-prepare{transform:none}.ant-zoom-left-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.ant-zoom-right-appear,.ant-zoom-right-enter,.ant-zoom-right-leave{animation-duration:.2s;animation-fill-mode:both;animation-play-state:paused}.ant-zoom-right-appear.ant-zoom-right-appear-active,.ant-zoom-right-enter.ant-zoom-right-enter-active{animation-name:antZoomRightIn;animation-play-state:running}.ant-zoom-right-leave.ant-zoom-right-leave-active{animation-name:antZoomRightOut;animation-play-state:running;pointer-events:none}.ant-zoom-right-appear,.ant-zoom-right-enter{transform:scale(0);opacity:0;animation-timing-function:cubic-bezier(.08,.82,.17,1)}.ant-zoom-right-appear-prepare,.ant-zoom-right-enter-prepare{transform:none}.ant-zoom-right-leave{animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@keyframes antZoomIn{0%{transform:scale(.2);opacity:0}to{transform:scale(1);opacity:1}}@keyframes antZoomOut{0%{transform:scale(1)}to{transform:scale(.2);opacity:0}}@keyframes antZoomBigIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes antZoomBigOut{0%{transform:scale(1)}to{transform:scale(.8);opacity:0}}@keyframes antZoomUpIn{0%{transform:scale(.8);transform-origin:50% 0;opacity:0}to{transform:scale(1);transform-origin:50% 0}}@keyframes antZoomUpOut{0%{transform:scale(1);transform-origin:50% 0}to{transform:scale(.8);transform-origin:50% 0;opacity:0}}@keyframes antZoomLeftIn{0%{transform:scale(.8);transform-origin:0 50%;opacity:0}to{transform:scale(1);transform-origin:0 50%}}@keyframes antZoomLeftOut{0%{transform:scale(1);transform-origin:0 50%}to{transform:scale(.8);transform-origin:0 50%;opacity:0}}@keyframes antZoomRightIn{0%{transform:scale(.8);transform-origin:100% 50%;opacity:0}to{transform:scale(1);transform-origin:100% 50%}}@keyframes antZoomRightOut{0%{transform:scale(1);transform-origin:100% 50%}to{transform:scale(.8);transform-origin:100% 50%;opacity:0}}@keyframes antZoomDownIn{0%{transform:scale(.8);transform-origin:50% 100%;opacity:0}to{transform:scale(1);transform-origin:50% 100%}}@keyframes antZoomDownOut{0%{transform:scale(1);transform-origin:50% 100%}to{transform:scale(.8);transform-origin:50% 100%;opacity:0}}.ant-motion-collapse-legacy{overflow:hidden}.ant-motion-collapse,.ant-motion-collapse-legacy-active{transition:height .2s cubic-bezier(.645,.045,.355,1),opacity .2s cubic-bezier(.645,.045,.355,1)!important}.ant-motion-collapse{overflow:hidden}.cdk-overlay-container{pointer-events:none;top:0;left:0;height:100%;width:100%;position:fixed;z-index:1000}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;outline:0;-webkit-appearance:none;-moz-appearance:none}.cdk-overlay-backdrop{top:0;bottom:0;left:0;right:0;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0;position:absolute;pointer-events:auto;z-index:1000}.cdk-overlay-backdrop.ant-modal-mask{opacity:1}.cdk-overlay-pane{position:absolute;pointer-events:auto;z-index:1000}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-global-scrollblock body{overflow-x:visible}.nz-overlay-transparent-backdrop,.nz-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0}.nz-animate-disabled.ant-drawer.ant-drawer-open .ant-drawer-mask,.nz-animate-disabled.ant-scroll-number-only{animation:none;transition:none}.nz-animate-disabled.ant-drawer>*{transition:none}.nz-animate-disabled .ant-modal,.nz-animate-disabled .ant-modal-mask,.nz-animate-disabled .ant-modal-mask.zoom-enter,.nz-animate-disabled .ant-modal-mask.zoom-enter-active,.nz-animate-disabled .ant-modal-mask.zoom-leave,.nz-animate-disabled .ant-modal-mask.zoom-leave-active,.nz-animate-disabled .ant-modal.zoom-enter,.nz-animate-disabled .ant-modal.zoom-enter-active,.nz-animate-disabled .ant-modal.zoom-leave,.nz-animate-disabled .ant-modal.zoom-leave-active{animation:none;transition:none}.nz-animate-disabled.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg,.nz-animate-disabled.ant-menu,.nz-animate-disabled.ant-menu .ant-menu-item,.nz-animate-disabled.ant-menu .ant-menu-item .anticon,.nz-animate-disabled.ant-menu .ant-menu-item .anticon+span,.nz-animate-disabled.ant-menu .ant-menu-submenu-title,.nz-animate-disabled.ant-menu .ant-menu-submenu-title .anticon,.nz-animate-disabled.ant-menu .ant-menu-submenu-title .anticon+span,.nz-animate-disabled.ant-tabs .ant-tabs-bottom-content.ant-tabs-content-animated,.nz-animate-disabled.ant-tabs .ant-tabs-bottom-content>.ant-tabs-tabpane,.nz-animate-disabled.ant-tabs.ant-tabs-bottom .ant-tabs-ink-bar-animated,.nz-animate-disabled.ant-tabs.ant-tabs-left .ant-tabs-ink-bar-animated,.nz-animate-disabled.ant-tabs.ant-tabs-right .ant-tabs-ink-bar-animated,.nz-animate-disabled.ant-tabs .ant-tabs-top-content.ant-tabs-content-animated,.nz-animate-disabled.ant-tabs .ant-tabs-top-content>.ant-tabs-tabpane,.nz-animate-disabled.ant-tabs.ant-tabs-top .ant-tabs-ink-bar-animated{transition:none}.ant-affix{position:fixed;z-index:10}nz-affix{display:block}.ant-alert{box-sizing:border-box;margin:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:relative;display:flex;align-items:center;padding:8px 15px;word-wrap:break-word;border-radius:2px}.ant-alert-content{flex:1;min-width:0}.ant-alert-icon{margin-right:8px}.ant-alert-description{display:none;font-size:14px;line-height:22px}.ant-alert-success{background-color:#f6ffed;border:1px solid #b7eb8f}.ant-alert-success .ant-alert-icon{color:#52c41a}.ant-alert-info{background-color:#e6f7ff;border:1px solid #91d5ff}.ant-alert-info .ant-alert-icon{color:#1890ff}.ant-alert-warning{background-color:#fffbe6;border:1px solid #ffe58f}.ant-alert-warning .ant-alert-icon{color:#faad14}.ant-alert-error{background-color:#fff2f0;border:1px solid #ffccc7}.ant-alert-error .ant-alert-icon{color:#ff4d4f}.ant-alert-error .ant-alert-description>pre{margin:0;padding:0}.ant-alert-action{margin-left:8px}.ant-alert-close-icon{margin-left:8px;padding:0;overflow:hidden;font-size:12px;line-height:12px;background-color:initial;border:none;outline:none;cursor:pointer}.ant-alert-close-icon .anticon-close{color:#00000073;transition:color .3s}.ant-alert-close-icon .anticon-close:hover{color:#000000bf}.ant-alert-close-text{color:#00000073;transition:color .3s}.ant-alert-close-text:hover{color:#000000bf}.ant-alert-with-description{align-items:flex-start;padding:15px 15px 15px 24px}.ant-alert-with-description.ant-alert-no-icon{padding:15px}.ant-alert-with-description .ant-alert-icon{margin-right:15px;font-size:24px}.ant-alert-with-description .ant-alert-message{display:block;margin-bottom:4px;color:#000000d9;font-size:16px}.ant-alert-message{color:#000000d9}.ant-alert-with-description .ant-alert-description{display:block}.ant-alert.ant-alert-motion-leave{overflow:hidden;opacity:1;transition:max-height .3s cubic-bezier(.78,.14,.15,.86),opacity .3s cubic-bezier(.78,.14,.15,.86),padding-top .3s cubic-bezier(.78,.14,.15,.86),padding-bottom .3s cubic-bezier(.78,.14,.15,.86),margin-bottom .3s cubic-bezier(.78,.14,.15,.86)}.ant-alert.ant-alert-motion-leave-active{max-height:0;margin-bottom:0!important;padding-top:0;padding-bottom:0;opacity:0}.ant-alert-banner{margin-bottom:0;border:0;border-radius:0}.ant-alert.ant-alert-rtl{direction:rtl}.ant-alert-rtl.ant-alert.ant-alert-no-icon{padding:8px 15px}.ant-alert-rtl .ant-alert-icon{margin-right:auto;margin-left:8px}.ant-alert-rtl .ant-alert-action,.ant-alert-rtl .ant-alert-close-icon{margin-right:8px;margin-left:auto}.ant-alert-rtl.ant-alert-with-description .ant-alert-icon{margin-right:auto;margin-left:15px}nz-alert{display:block}.ant-anchor{box-sizing:border-box;margin:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:relative;padding:0 0 0 2px}.ant-anchor-wrapper{margin-left:-4px;padding-left:4px;overflow:auto;background-color:initial}.ant-anchor-ink{position:absolute;top:0;left:0;height:100%}.ant-anchor-ink:before{position:relative;display:block;width:2px;height:100%;margin:0 auto;background-color:#f0f0f0;content:" "}.ant-anchor-ink-ball{position:absolute;left:50%;display:none;width:8px;height:8px;background-color:#fff;border:2px solid #1890ff;border-radius:8px;transform:translateX(-50%);transition:top .3s ease-in-out}.ant-anchor-ink-ball.visible{display:inline-block}.ant-anchor.fixed .ant-anchor-ink .ant-anchor-ink-ball{display:none}.ant-anchor-link{padding:7px 0 7px 16px;line-height:1.143}.ant-anchor-link-title{position:relative;display:block;margin-bottom:6px;overflow:hidden;color:#000000d9;white-space:nowrap;text-overflow:ellipsis;transition:all .3s}.ant-anchor-link-title:only-child{margin-bottom:0}.ant-anchor-link-active>.ant-anchor-link-title{color:#1890ff}.ant-anchor-link .ant-anchor-link{padding-top:5px;padding-bottom:5px}.ant-anchor-rtl{direction:rtl}.ant-anchor-rtl.ant-anchor-wrapper{margin-right:-4px;margin-left:0;padding-right:4px;padding-left:0}.ant-anchor-rtl .ant-anchor-ink{right:0;left:auto}.ant-anchor-rtl .ant-anchor-ink-ball{right:50%;left:0;transform:translateX(50%)}.ant-anchor-rtl .ant-anchor-link{padding:7px 16px 7px 0}nz-link{display:block}.ant-avatar{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:relative;display:inline-block;overflow:hidden;color:#fff;white-space:nowrap;text-align:center;vertical-align:middle;background:#ccc;width:32px;height:32px;line-height:32px;border-radius:50%}.ant-avatar-image{background:#0000}.ant-avatar .ant-image-img{display:block}.ant-avatar-string{position:absolute;left:50%;transform-origin:0 center}.ant-avatar.ant-avatar-icon{font-size:18px}.ant-avatar.ant-avatar-icon>.anticon{margin:0}.ant-avatar-lg{width:40px;height:40px;line-height:40px;border-radius:50%}.ant-avatar-lg-string{position:absolute;left:50%;transform-origin:0 center}.ant-avatar-lg.ant-avatar-icon{font-size:24px}.ant-avatar-lg.ant-avatar-icon>.anticon{margin:0}.ant-avatar-sm{width:24px;height:24px;line-height:24px;border-radius:50%}.ant-avatar-sm-string{position:absolute;left:50%;transform-origin:0 center}.ant-avatar-sm.ant-avatar-icon{font-size:14px}.ant-avatar-sm.ant-avatar-icon>.anticon{margin:0}.ant-avatar-square{border-radius:2px}.ant-avatar>img{display:block;width:100%;height:100%;object-fit:cover}.ant-avatar-group{display:inline-flex}.ant-avatar-group .ant-avatar{border:1px solid #fff}.ant-avatar-group .ant-avatar:not(:first-child){margin-left:-8px}.ant-avatar-group-popover .ant-avatar+.ant-avatar{margin-left:3px}.ant-avatar-group-rtl .ant-avatar:not(:first-child){margin-right:-8px;margin-left:0}.ant-avatar-group-popover.ant-popover-rtl .ant-avatar+.ant-avatar{margin-right:3px;margin-left:0}.ant-back-top{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:fixed;right:100px;bottom:50px;z-index:10;width:40px;height:40px;cursor:pointer}.ant-back-top:empty{display:none}.ant-back-top-rtl{right:auto;left:100px;direction:rtl}.ant-back-top-content{width:40px;height:40px;overflow:hidden;color:#fff;text-align:center;background-color:#00000073;border-radius:20px;transition:all .3s}.ant-back-top-content:hover{background-color:#000000d9;transition:all .3s}.ant-back-top-icon{font-size:24px;line-height:40px}@media screen and (max-width: 768px){.ant-back-top{right:60px}}@media screen and (max-width: 480px){.ant-back-top{right:20px}}.ant-badge{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:relative;display:inline-block;line-height:1}.ant-badge-count{z-index:auto;min-width:20px;height:20px;padding:0 6px;color:#fff;font-weight:400;font-size:12px;line-height:20px;white-space:nowrap;text-align:center;background:#ff4d4f;border-radius:10px;box-shadow:0 0 0 1px #fff}.ant-badge-count a,.ant-badge-count a:hover{color:#fff}.ant-badge-count-sm{min-width:14px;height:14px;padding:0;font-size:12px;line-height:14px;border-radius:7px}.ant-badge-multiple-words{padding:0 8px}.ant-badge-dot{z-index:auto;width:6px;min-width:6px;height:6px;background:#ff4d4f;border-radius:100%;box-shadow:0 0 0 1px #fff}.ant-badge-count,.ant-badge-dot,.ant-badge .ant-scroll-number-custom-component{position:absolute;top:0;right:0;transform:translate(50%,-50%);transform-origin:100% 0}.ant-badge-count.anticon-spin,.ant-badge-dot.anticon-spin,.ant-badge .ant-scroll-number-custom-component.anticon-spin{animation:antBadgeLoadingCircle 1s linear infinite}.ant-badge-status{line-height:inherit;vertical-align:initial}.ant-badge-status-dot{position:relative;top:-1px;display:inline-block;width:6px;height:6px;vertical-align:middle;border-radius:50%}.ant-badge-status-success{background-color:#52c41a}.ant-badge-status-processing{position:relative;background-color:#1890ff}.ant-badge-status-processing:after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #1890ff;border-radius:50%;animation:antStatusProcessing 1.2s ease-in-out infinite;content:""}.ant-badge-status-default{background-color:#d9d9d9}.ant-badge-status-error{background-color:#ff4d4f}.ant-badge-status-warning{background-color:#faad14}.ant-badge-status-magenta,.ant-badge-status-pink{background:#eb2f96}.ant-badge-status-red{background:#f5222d}.ant-badge-status-volcano{background:#fa541c}.ant-badge-status-orange{background:#fa8c16}.ant-badge-status-yellow{background:#fadb14}.ant-badge-status-gold{background:#faad14}.ant-badge-status-cyan{background:#13c2c2}.ant-badge-status-lime{background:#a0d911}.ant-badge-status-green{background:#52c41a}.ant-badge-status-blue{background:#1890ff}.ant-badge-status-geekblue{background:#2f54eb}.ant-badge-status-purple{background:#722ed1}.ant-badge-status-text{margin-left:8px;color:#000000d9;font-size:14px}.ant-badge-zoom-appear,.ant-badge-zoom-enter{animation:antZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46);animation-fill-mode:both}.ant-badge-zoom-leave{animation:antZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6);animation-fill-mode:both}.ant-badge-not-a-wrapper .ant-badge-zoom-appear,.ant-badge-not-a-wrapper .ant-badge-zoom-enter{animation:antNoWrapperZoomBadgeIn .3s cubic-bezier(.12,.4,.29,1.46)}.ant-badge-not-a-wrapper .ant-badge-zoom-leave{animation:antNoWrapperZoomBadgeOut .3s cubic-bezier(.71,-.46,.88,.6)}.ant-badge-not-a-wrapper:not(.ant-badge-status){vertical-align:middle}.ant-badge-not-a-wrapper .ant-scroll-number-custom-component{transform:none}.ant-badge-not-a-wrapper .ant-scroll-number,.ant-badge-not-a-wrapper .ant-scroll-number-custom-component{position:relative;top:auto;display:block;transform-origin:50% 50%}@keyframes antStatusProcessing{0%{transform:scale(.8);opacity:.5}to{transform:scale(2.4);opacity:0}}.ant-scroll-number{overflow:hidden}.ant-scroll-number-only{position:relative;display:inline-block;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-scroll-number-only,.ant-scroll-number-only>p.ant-scroll-number-only-unit{height:20px;-webkit-transform-style:preserve-3d;-webkit-backface-visibility:hidden}.ant-scroll-number-only>p.ant-scroll-number-only-unit{margin:0}.ant-scroll-number-symbol{vertical-align:top}@keyframes antZoomBadgeIn{0%{transform:scale(0) translate(50%,-50%);opacity:0}to{transform:scale(1) translate(50%,-50%)}}@keyframes antZoomBadgeOut{0%{transform:scale(1) translate(50%,-50%)}to{transform:scale(0) translate(50%,-50%);opacity:0}}@keyframes antNoWrapperZoomBadgeIn{0%{transform:scale(0);opacity:0}to{transform:scale(1)}}@keyframes antNoWrapperZoomBadgeOut{0%{transform:scale(1)}to{transform:scale(0);opacity:0}}@keyframes antBadgeLoadingCircle{0%{transform-origin:50%}to{transform:translate(50%,-50%) rotate(1turn);transform-origin:50%}}.ant-ribbon-wrapper{position:relative}.ant-ribbon{box-sizing:border-box;margin:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:absolute;top:8px;height:22px;padding:0 8px;color:#fff;line-height:22px;white-space:nowrap;background-color:#1890ff;border-radius:2px}.ant-ribbon-text{color:#fff}.ant-ribbon-corner{position:absolute;top:100%;width:8px;height:8px;color:currentColor;border:4px solid;transform:scaleY(.75);transform-origin:top}.ant-ribbon-corner:after{position:absolute;top:-4px;left:-4px;width:inherit;height:inherit;color:#00000040;border:inherit;content:""}.ant-ribbon-color-magenta,.ant-ribbon-color-pink{color:#eb2f96;background:#eb2f96}.ant-ribbon-color-red{color:#f5222d;background:#f5222d}.ant-ribbon-color-volcano{color:#fa541c;background:#fa541c}.ant-ribbon-color-orange{color:#fa8c16;background:#fa8c16}.ant-ribbon-color-yellow{color:#fadb14;background:#fadb14}.ant-ribbon-color-gold{color:#faad14;background:#faad14}.ant-ribbon-color-cyan{color:#13c2c2;background:#13c2c2}.ant-ribbon-color-lime{color:#a0d911;background:#a0d911}.ant-ribbon-color-green{color:#52c41a;background:#52c41a}.ant-ribbon-color-blue{color:#1890ff;background:#1890ff}.ant-ribbon-color-geekblue{color:#2f54eb;background:#2f54eb}.ant-ribbon-color-purple{color:#722ed1;background:#722ed1}.ant-ribbon.ant-ribbon-placement-end{right:-8px;border-bottom-right-radius:0}.ant-ribbon.ant-ribbon-placement-end .ant-ribbon-corner{right:0;border-color:currentColor #0000 #0000 currentColor}.ant-ribbon.ant-ribbon-placement-start{left:-8px;border-bottom-left-radius:0}.ant-ribbon.ant-ribbon-placement-start .ant-ribbon-corner{left:0;border-color:currentColor currentColor #0000 #0000}.ant-badge-rtl{direction:rtl}.ant-badge-rtl .ant-badge-count,.ant-badge-rtl .ant-badge-dot,.ant-badge-rtl .ant-badge .ant-scroll-number-custom-component{right:auto;left:0;direction:ltr;transform:translate(-50%,-50%);transform-origin:0 0}.ant-badge-rtl.ant-badge .ant-scroll-number-custom-component{right:auto;left:0;transform:translate(-50%,-50%);transform-origin:0 0}.ant-badge-rtl .ant-badge-status-text{margin-right:8px;margin-left:0}.ant-badge-rtl .ant-badge-zoom-appear,.ant-badge-rtl .ant-badge-zoom-enter{animation-name:antZoomBadgeInRtl}.ant-badge-rtl .ant-badge-zoom-leave{animation-name:antZoomBadgeOutRtl}.ant-badge-not-a-wrapper .ant-badge-count{transform:none}.ant-ribbon-rtl{direction:rtl}.ant-ribbon-rtl.ant-ribbon-placement-end{right:unset;left:-8px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner{right:unset;left:0;border-color:currentColor currentColor #0000 #0000}.ant-ribbon-rtl.ant-ribbon-placement-end .ant-ribbon-corner:after{border-color:currentColor currentColor #0000 #0000}.ant-ribbon-rtl.ant-ribbon-placement-start{right:-8px;left:unset;border-bottom-right-radius:0;border-bottom-left-radius:2px}.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner{right:0;left:unset;border-color:currentColor #0000 #0000 currentColor}.ant-ribbon-rtl.ant-ribbon-placement-start .ant-ribbon-corner:after{border-color:currentColor #0000 #0000 currentColor}@keyframes antZoomBadgeInRtl{0%{transform:scale(0) translate(-50%,-50%);opacity:0}to{transform:scale(1) translate(-50%,-50%)}}@keyframes antZoomBadgeOutRtl{0%{transform:scale(1) translate(-50%,-50%)}to{transform:scale(0) translate(-50%,-50%);opacity:0}}.ant-badge .ant-scroll-number:only-child{position:relative;top:auto;display:block}.ant-badge .ant-badge-count:only-child{transform:none}nz-ribbon{display:block}.ant-breadcrumb{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";color:#00000073;font-size:14px}.ant-breadcrumb .anticon{font-size:14px}.ant-breadcrumb a{color:#00000073;transition:color .3s}.ant-breadcrumb a:hover{color:#40a9ff}.ant-breadcrumb>span:last-child,.ant-breadcrumb>span:last-child a{color:#000000d9}.ant-breadcrumb>span:last-child .ant-breadcrumb-separator{display:none}.ant-breadcrumb-separator{margin:0 8px;color:#00000073}.ant-breadcrumb-link>.anticon+a,.ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-overlay-link>.anticon{margin-left:4px}.ant-breadcrumb-rtl{direction:rtl}.ant-breadcrumb-rtl:before{display:table;content:""}.ant-breadcrumb-rtl:after{display:table;clear:both;content:""}.ant-breadcrumb-rtl>span{float:right}.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+a,.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-rtl .ant-breadcrumb-overlay-link>.anticon{margin-right:4px;margin-left:0}.ant-breadcrumb-link .anticon+span{margin-left:4px}.ant-breadcrumb>nz-breadcrumb-item:last-child,.ant-breadcrumb>nz-breadcrumb-item:last-child a{color:#000000d9}.ant-breadcrumb-rtl>nz-breadcrumb-item{float:right}nz-breadcrumb{display:block}nz-breadcrumb-item:last-child .ant-breadcrumb-separator{display:none}.ant-btn{line-height:1.5715;position:relative;display:inline-block;font-weight:400;white-space:nowrap;text-align:center;background-image:none;box-shadow:0 2px 0 rgba(0,0,0,.015);cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;user-select:none;touch-action:manipulation;height:32px;padding:4px 15px;font-size:14px;border-radius:2px;color:#000000d9;background:#fff;border:1px solid #d9d9d9}.ant-btn>.anticon{line-height:1}.ant-btn,.ant-btn:active,.ant-btn:focus{outline:0}.ant-btn:not([disabled]):hover{text-decoration:none}.ant-btn:not([disabled]):active{outline:0;box-shadow:none}.ant-btn[disabled]{cursor:not-allowed}.ant-btn[disabled]>*{pointer-events:none}.ant-btn-lg{height:40px;padding:6.4px 15px;font-size:16px;border-radius:2px}.ant-btn-sm{height:24px;padding:0 7px;font-size:14px;border-radius:2px}.ant-btn>a:only-child{color:currentColor}.ant-btn>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn:focus,.ant-btn:hover{color:#40a9ff;background:#fff;border-color:#40a9ff}.ant-btn:focus>a:only-child,.ant-btn:hover>a:only-child{color:currentColor}.ant-btn:focus>a:only-child:after,.ant-btn:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn:active{color:#096dd9;background:#fff;border-color:#096dd9}.ant-btn:active>a:only-child{color:currentColor}.ant-btn:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn[disabled],.ant-btn[disabled]:active,.ant-btn[disabled]:focus,.ant-btn[disabled]:hover{color:#00000040;background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn[disabled]:active>a:only-child,.ant-btn[disabled]:focus>a:only-child,.ant-btn[disabled]:hover>a:only-child,.ant-btn[disabled]>a:only-child{color:currentColor}.ant-btn[disabled]:active>a:only-child:after,.ant-btn[disabled]:focus>a:only-child:after,.ant-btn[disabled]:hover>a:only-child:after,.ant-btn[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn:active,.ant-btn:focus,.ant-btn:hover{text-decoration:none;background:#fff}.ant-btn>span{display:inline-block}.ant-btn-primary{color:#fff;background:#1890ff;border-color:#1890ff;text-shadow:0 -1px 0 #0000001f;box-shadow:0 2px 0 rgba(0,0,0,.045)}.ant-btn-primary>a:only-child{color:currentColor}.ant-btn-primary>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-primary:focus,.ant-btn-primary:hover{color:#fff;background:#40a9ff;border-color:#40a9ff}.ant-btn-primary:focus>a:only-child,.ant-btn-primary:hover>a:only-child{color:currentColor}.ant-btn-primary:focus>a:only-child:after,.ant-btn-primary:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-primary:active{color:#fff;background:#096dd9;border-color:#096dd9}.ant-btn-primary:active>a:only-child{color:currentColor}.ant-btn-primary:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-primary[disabled],.ant-btn-primary[disabled]:active,.ant-btn-primary[disabled]:focus,.ant-btn-primary[disabled]:hover{color:#00000040;background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-primary[disabled]>a:only-child{color:currentColor}.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-primary[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-right-color:#40a9ff;border-left-color:#40a9ff}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled{border-color:#d9d9d9}.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#40a9ff}.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled]{border-right-color:#d9d9d9}.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#40a9ff}.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-left-color:#d9d9d9}.ant-btn-ghost{color:#000000d9;background:#0000;border-color:#d9d9d9}.ant-btn-ghost>a:only-child{color:currentColor}.ant-btn-ghost>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-ghost:focus,.ant-btn-ghost:hover{color:#40a9ff;background:#0000;border-color:#40a9ff}.ant-btn-ghost:focus>a:only-child,.ant-btn-ghost:hover>a:only-child{color:currentColor}.ant-btn-ghost:focus>a:only-child:after,.ant-btn-ghost:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-ghost:active{color:#096dd9;background:#0000;border-color:#096dd9}.ant-btn-ghost:active>a:only-child{color:currentColor}.ant-btn-ghost:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-ghost[disabled],.ant-btn-ghost[disabled]:active,.ant-btn-ghost[disabled]:focus,.ant-btn-ghost[disabled]:hover{color:#00000040;background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-ghost[disabled]:active>a:only-child,.ant-btn-ghost[disabled]:focus>a:only-child,.ant-btn-ghost[disabled]:hover>a:only-child,.ant-btn-ghost[disabled]>a:only-child{color:currentColor}.ant-btn-ghost[disabled]:active>a:only-child:after,.ant-btn-ghost[disabled]:focus>a:only-child:after,.ant-btn-ghost[disabled]:hover>a:only-child:after,.ant-btn-ghost[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-dashed{color:#000000d9;background:#fff;border-color:#d9d9d9;border-style:dashed}.ant-btn-dashed>a:only-child{color:currentColor}.ant-btn-dashed>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-dashed:focus,.ant-btn-dashed:hover{color:#40a9ff;background:#fff;border-color:#40a9ff}.ant-btn-dashed:focus>a:only-child,.ant-btn-dashed:hover>a:only-child{color:currentColor}.ant-btn-dashed:focus>a:only-child:after,.ant-btn-dashed:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-dashed:active{color:#096dd9;background:#fff;border-color:#096dd9}.ant-btn-dashed:active>a:only-child{color:currentColor}.ant-btn-dashed:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-dashed[disabled],.ant-btn-dashed[disabled]:active,.ant-btn-dashed[disabled]:focus,.ant-btn-dashed[disabled]:hover{color:#00000040;background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-dashed[disabled]:active>a:only-child,.ant-btn-dashed[disabled]:focus>a:only-child,.ant-btn-dashed[disabled]:hover>a:only-child,.ant-btn-dashed[disabled]>a:only-child{color:currentColor}.ant-btn-dashed[disabled]:active>a:only-child:after,.ant-btn-dashed[disabled]:focus>a:only-child:after,.ant-btn-dashed[disabled]:hover>a:only-child:after,.ant-btn-dashed[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-danger{color:#fff;background:#ff4d4f;border-color:#ff4d4f;text-shadow:0 -1px 0 #0000001f;box-shadow:0 2px 0 rgba(0,0,0,.045)}.ant-btn-danger>a:only-child{color:currentColor}.ant-btn-danger>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-danger:focus,.ant-btn-danger:hover{color:#fff;background:#ff7875;border-color:#ff7875}.ant-btn-danger:focus>a:only-child,.ant-btn-danger:hover>a:only-child{color:currentColor}.ant-btn-danger:focus>a:only-child:after,.ant-btn-danger:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-danger:active{color:#fff;background:#d9363e;border-color:#d9363e}.ant-btn-danger:active>a:only-child{color:currentColor}.ant-btn-danger:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-danger[disabled],.ant-btn-danger[disabled]:active,.ant-btn-danger[disabled]:focus,.ant-btn-danger[disabled]:hover{color:#00000040;background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-danger[disabled]>a:only-child{color:currentColor}.ant-btn-danger[disabled]:active>a:only-child:after,.ant-btn-danger[disabled]:focus>a:only-child:after,.ant-btn-danger[disabled]:hover>a:only-child:after,.ant-btn-danger[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-link{color:#1890ff;background:#0000;border-color:#0000;box-shadow:none}.ant-btn-link>a:only-child{color:currentColor}.ant-btn-link>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-link:focus,.ant-btn-link:hover{color:#40a9ff;background:#0000;border-color:#40a9ff}.ant-btn-link:focus>a:only-child,.ant-btn-link:hover>a:only-child{color:currentColor}.ant-btn-link:focus>a:only-child:after,.ant-btn-link:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-link:active{color:#096dd9;background:#0000;border-color:#096dd9}.ant-btn-link:active>a:only-child{color:currentColor}.ant-btn-link:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-link[disabled],.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9}.ant-btn-link:hover{background:#0000}.ant-btn-link:active,.ant-btn-link:focus,.ant-btn-link:hover{border-color:#0000}.ant-btn-link[disabled],.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{color:#00000040;background:#0000;border-color:#0000;text-shadow:none;box-shadow:none}.ant-btn-link[disabled]:active>a:only-child,.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-link[disabled]>a:only-child{color:currentColor}.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-link[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-text{color:#000000d9;background:#0000;border-color:#0000;box-shadow:none}.ant-btn-text>a:only-child{color:currentColor}.ant-btn-text>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-text:focus,.ant-btn-text:hover{color:#40a9ff;background:#0000;border-color:#40a9ff}.ant-btn-text:focus>a:only-child,.ant-btn-text:hover>a:only-child{color:currentColor}.ant-btn-text:focus>a:only-child:after,.ant-btn-text:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-text:active{color:#096dd9;background:#0000;border-color:#096dd9}.ant-btn-text:active>a:only-child{color:currentColor}.ant-btn-text:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-text[disabled],.ant-btn-text[disabled]:active,.ant-btn-text[disabled]:focus,.ant-btn-text[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9}.ant-btn-text:focus,.ant-btn-text:hover{color:#000000d9;background:rgba(0,0,0,.018);border-color:#0000}.ant-btn-text:active{color:#000000d9;background:rgba(0,0,0,.028);border-color:#0000}.ant-btn-text[disabled],.ant-btn-text[disabled]:active,.ant-btn-text[disabled]:focus,.ant-btn-text[disabled]:hover{color:#00000040;background:#0000;border-color:#0000;text-shadow:none;box-shadow:none}.ant-btn-text[disabled]:active>a:only-child,.ant-btn-text[disabled]:focus>a:only-child,.ant-btn-text[disabled]:hover>a:only-child,.ant-btn-text[disabled]>a:only-child{color:currentColor}.ant-btn-text[disabled]:active>a:only-child:after,.ant-btn-text[disabled]:focus>a:only-child:after,.ant-btn-text[disabled]:hover>a:only-child:after,.ant-btn-text[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-dangerous{color:#ff4d4f;background:#fff;border-color:#ff4d4f}.ant-btn-dangerous>a:only-child{color:currentColor}.ant-btn-dangerous>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-dangerous:focus,.ant-btn-dangerous:hover{color:#ff7875;background:#fff;border-color:#ff7875}.ant-btn-dangerous:focus>a:only-child,.ant-btn-dangerous:hover>a:only-child{color:currentColor}.ant-btn-dangerous:focus>a:only-child:after,.ant-btn-dangerous:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-dangerous:active{color:#d9363e;background:#fff;border-color:#d9363e}.ant-btn-dangerous:active>a:only-child{color:currentColor}.ant-btn-dangerous:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-dangerous[disabled],.ant-btn-dangerous[disabled]:active,.ant-btn-dangerous[disabled]:focus,.ant-btn-dangerous[disabled]:hover{color:#00000040;background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-dangerous[disabled]:active>a:only-child,.ant-btn-dangerous[disabled]:focus>a:only-child,.ant-btn-dangerous[disabled]:hover>a:only-child,.ant-btn-dangerous[disabled]>a:only-child{color:currentColor}.ant-btn-dangerous[disabled]:active>a:only-child:after,.ant-btn-dangerous[disabled]:focus>a:only-child:after,.ant-btn-dangerous[disabled]:hover>a:only-child:after,.ant-btn-dangerous[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-dangerous.ant-btn-primary{color:#fff;background:#ff4d4f;border-color:#ff4d4f;text-shadow:0 -1px 0 #0000001f;box-shadow:0 2px 0 rgba(0,0,0,.045)}.ant-btn-dangerous.ant-btn-primary>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-primary>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-dangerous.ant-btn-primary:focus,.ant-btn-dangerous.ant-btn-primary:hover{color:#fff;background:#ff7875;border-color:#ff7875}.ant-btn-dangerous.ant-btn-primary:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary:hover>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-primary:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-primary:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-dangerous.ant-btn-primary:active{color:#fff;background:#d9363e;border-color:#d9363e}.ant-btn-dangerous.ant-btn-primary:active>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-primary:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-dangerous.ant-btn-primary[disabled],.ant-btn-dangerous.ant-btn-primary[disabled]:active,.ant-btn-dangerous.ant-btn-primary[disabled]:focus,.ant-btn-dangerous.ant-btn-primary[disabled]:hover{color:#00000040;background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-dangerous.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-dangerous.ant-btn-link{color:#ff4d4f;background:#0000;border-color:#0000;box-shadow:none}.ant-btn-dangerous.ant-btn-link>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-link>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-dangerous.ant-btn-link:hover{color:#40a9ff;border-color:#40a9ff}.ant-btn-dangerous.ant-btn-link:active{color:#096dd9;border-color:#096dd9}.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-dangerous.ant-btn-link[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9}.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-dangerous.ant-btn-link:hover{color:#ff7875;background:#0000;border-color:#0000}.ant-btn-dangerous.ant-btn-link:focus>a:only-child,.ant-btn-dangerous.ant-btn-link:hover>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-link:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-link:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-dangerous.ant-btn-link:active{color:#d9363e;background:#0000;border-color:#0000}.ant-btn-dangerous.ant-btn-link:active>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-link:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-dangerous.ant-btn-link[disabled]:hover{color:#00000040;background:#0000;border-color:#0000;text-shadow:none;box-shadow:none}.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-dangerous.ant-btn-text{color:#ff4d4f;background:#0000;border-color:#0000;box-shadow:none}.ant-btn-dangerous.ant-btn-text>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-text>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-dangerous.ant-btn-text:focus,.ant-btn-dangerous.ant-btn-text:hover{color:#40a9ff;background:#0000;border-color:#40a9ff}.ant-btn-dangerous.ant-btn-text:active{color:#096dd9;background:#0000;border-color:#096dd9}.ant-btn-dangerous.ant-btn-text[disabled],.ant-btn-dangerous.ant-btn-text[disabled]:active,.ant-btn-dangerous.ant-btn-text[disabled]:focus,.ant-btn-dangerous.ant-btn-text[disabled]:hover{background:#f5f5f5;border-color:#d9d9d9}.ant-btn-dangerous.ant-btn-text:focus,.ant-btn-dangerous.ant-btn-text:hover{color:#ff7875;background:rgba(0,0,0,.018);border-color:#0000}.ant-btn-dangerous.ant-btn-text:focus>a:only-child,.ant-btn-dangerous.ant-btn-text:hover>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-text:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-text:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-dangerous.ant-btn-text:active{color:#d9363e;background:rgba(0,0,0,.028);border-color:#0000}.ant-btn-dangerous.ant-btn-text:active>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-text:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-dangerous.ant-btn-text[disabled],.ant-btn-dangerous.ant-btn-text[disabled]:active,.ant-btn-dangerous.ant-btn-text[disabled]:focus,.ant-btn-dangerous.ant-btn-text[disabled]:hover{color:#00000040;background:#0000;border-color:#0000;text-shadow:none;box-shadow:none}.ant-btn-dangerous.ant-btn-text[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-text[disabled]>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-text[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-text[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-icon-only{width:32px;height:32px;padding:2.4px 0;font-size:16px;border-radius:2px;vertical-align:-1px}.ant-btn-icon-only>*{font-size:16px}.ant-btn-icon-only.ant-btn-lg{width:40px;height:40px;padding:4.9px 0;font-size:18px;border-radius:2px}.ant-btn-icon-only.ant-btn-lg>*{font-size:18px}.ant-btn-icon-only.ant-btn-sm{width:24px;height:24px;padding:0;font-size:14px;border-radius:2px}.ant-btn-icon-only.ant-btn-sm>*{font-size:14px}.ant-btn-round{height:32px;padding:4px 16px;font-size:14px;border-radius:32px}.ant-btn-round.ant-btn-lg{height:40px;padding:6.4px 20px;font-size:16px;border-radius:40px}.ant-btn-round.ant-btn-sm{height:24px;padding:0 12px;font-size:14px;border-radius:24px}.ant-btn-round.ant-btn-icon-only{width:auto}.ant-btn-circle{min-width:32px;padding-right:0;padding-left:0;text-align:center;border-radius:50%}.ant-btn-circle.ant-btn-lg{min-width:40px;border-radius:50%}.ant-btn-circle.ant-btn-sm{min-width:24px;border-radius:50%}.ant-btn:before{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;z-index:1;display:none;background:#fff;border-radius:inherit;opacity:.35;transition:opacity .2s;content:"";pointer-events:none}.ant-btn .anticon{transition:margin-left .3s cubic-bezier(.645,.045,.355,1)}.ant-btn .anticon.anticon-minus>svg,.ant-btn .anticon.anticon-plus>svg{shape-rendering:optimizeSpeed}.ant-btn.ant-btn-loading{position:relative}.ant-btn.ant-btn-loading:not([disabled]){pointer-events:none}.ant-btn.ant-btn-loading:before{display:block}.ant-btn>.ant-btn-loading-icon{transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-btn>.ant-btn-loading-icon .anticon{padding-right:8px;animation:none}.ant-btn>.ant-btn-loading-icon .anticon svg{animation:loadingCircle 1s linear infinite}.ant-btn-group{display:inline-flex}.ant-btn-group,.ant-btn-group>.ant-btn,.ant-btn-group>span>.ant-btn{position:relative}.ant-btn-group>.ant-btn:active,.ant-btn-group>.ant-btn:focus,.ant-btn-group>.ant-btn:hover,.ant-btn-group>span>.ant-btn:active,.ant-btn-group>span>.ant-btn:focus,.ant-btn-group>span>.ant-btn:hover{z-index:2}.ant-btn-group>.ant-btn[disabled],.ant-btn-group>span>.ant-btn[disabled]{z-index:0}.ant-btn-group .ant-btn-icon-only{font-size:14px}.ant-btn-group-lg>.ant-btn,.ant-btn-group-lg>span>.ant-btn{height:40px;padding:6.4px 15px;font-size:16px;border-radius:0}.ant-btn-group-lg .ant-btn.ant-btn-icon-only{width:40px;height:40px;padding-right:0;padding-left:0}.ant-btn-group-sm>.ant-btn,.ant-btn-group-sm>span>.ant-btn{height:24px;padding:0 7px;font-size:14px;border-radius:0}.ant-btn-group-sm>.ant-btn>.anticon,.ant-btn-group-sm>span>.ant-btn>.anticon{font-size:14px}.ant-btn-group-sm .ant-btn.ant-btn-icon-only{width:24px;height:24px;padding-right:0;padding-left:0}.ant-btn+.ant-btn-group,.ant-btn-group+.ant-btn,.ant-btn-group+.ant-btn-group,.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group .ant-btn+span,.ant-btn-group>span+span,.ant-btn-group span+.ant-btn{margin-left:-1px}.ant-btn-group .ant-btn-primary+.ant-btn:not(.ant-btn-primary):not([disabled]){border-left-color:#0000}.ant-btn-group .ant-btn{border-radius:0}.ant-btn-group>.ant-btn:first-child,.ant-btn-group>span:first-child>.ant-btn{margin-left:0}.ant-btn-group>.ant-btn:only-child,.ant-btn-group>span:only-child>.ant-btn{border-radius:2px}.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-btn-group-sm>.ant-btn:only-child,.ant-btn-group-sm>span:only-child>.ant-btn{border-radius:2px}.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-btn-group>.ant-btn-group{float:left}.ant-btn-group>.ant-btn-group:not(:first-child):not(:last-child)>.ant-btn{border-radius:0}.ant-btn-group>.ant-btn-group:first-child:not(:last-child)>.ant-btn:last-child{padding-right:8px;border-top-right-radius:0;border-bottom-right-radius:0}.ant-btn-group>.ant-btn-group:last-child:not(:first-child)>.ant-btn:first-child{padding-left:8px;border-top-left-radius:0;border-bottom-left-radius:0}.ant-btn-group-rtl.ant-btn+.ant-btn-group,.ant-btn-group-rtl.ant-btn-group+.ant-btn,.ant-btn-group-rtl.ant-btn-group+.ant-btn-group,.ant-btn-group-rtl.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group-rtl.ant-btn-group .ant-btn+span,.ant-btn-group-rtl.ant-btn-group>span+span,.ant-btn-group-rtl.ant-btn-group span+.ant-btn,.ant-btn-rtl.ant-btn+.ant-btn-group,.ant-btn-rtl.ant-btn-group+.ant-btn,.ant-btn-rtl.ant-btn-group+.ant-btn-group,.ant-btn-rtl.ant-btn-group .ant-btn+.ant-btn,.ant-btn-rtl.ant-btn-group .ant-btn+span,.ant-btn-rtl.ant-btn-group>span+span,.ant-btn-rtl.ant-btn-group span+.ant-btn{margin-right:-1px;margin-left:auto}.ant-btn-group.ant-btn-group-rtl{direction:rtl}.ant-btn-group-rtl.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group-rtl.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.ant-btn-group-rtl.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group-rtl.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.ant-btn-group-rtl.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-rtl.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.ant-btn-group-rtl.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-rtl.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.ant-btn:active>span,.ant-btn:focus>span{position:relative}.ant-btn>.anticon+span,.ant-btn>span+.anticon{margin-left:8px}.ant-btn-background-ghost{color:#fff;background:#0000!important;border-color:#fff}.ant-btn-background-ghost.ant-btn-primary{color:#1890ff;background:#0000;border-color:#1890ff;text-shadow:none}.ant-btn-background-ghost.ant-btn-primary>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-background-ghost.ant-btn-primary:focus,.ant-btn-background-ghost.ant-btn-primary:hover{color:#40a9ff;background:#0000;border-color:#40a9ff}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-background-ghost.ant-btn-primary:active{color:#096dd9;background:#0000;border-color:#096dd9}.ant-btn-background-ghost.ant-btn-primary:active>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-background-ghost.ant-btn-primary[disabled],.ant-btn-background-ghost.ant-btn-primary[disabled]:active,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover{color:#00000040;background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-background-ghost.ant-btn-danger{color:#ff4d4f;background:#0000;border-color:#ff4d4f;text-shadow:none}.ant-btn-background-ghost.ant-btn-danger>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-background-ghost.ant-btn-danger:focus,.ant-btn-background-ghost.ant-btn-danger:hover{color:#ff7875;background:#0000;border-color:#ff7875}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-background-ghost.ant-btn-danger:active{color:#d9363e;background:#0000;border-color:#d9363e}.ant-btn-background-ghost.ant-btn-danger:active>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-background-ghost.ant-btn-danger[disabled],.ant-btn-background-ghost.ant-btn-danger[disabled]:active,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover{color:#00000040;background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-background-ghost.ant-btn-dangerous{color:#ff4d4f;background:#0000;border-color:#ff4d4f;text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-background-ghost.ant-btn-dangerous:focus,.ant-btn-background-ghost.ant-btn-dangerous:hover{color:#ff7875;background:#0000;border-color:#ff7875}.ant-btn-background-ghost.ant-btn-dangerous:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-background-ghost.ant-btn-dangerous:active{color:#d9363e;background:#0000;border-color:#d9363e}.ant-btn-background-ghost.ant-btn-dangerous:active>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-background-ghost.ant-btn-dangerous[disabled],.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover{color:#00000040;background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link{color:#ff4d4f;background:#0000;border-color:#0000;text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover{color:#ff7875;background:#0000;border-color:#0000}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active{color:#d9363e;background:#0000;border-color:#0000}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover{color:#00000040;background:#f5f5f5;border-color:#d9d9d9;text-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;content:""}.ant-btn-two-chinese-chars:first-letter{letter-spacing:.34em}.ant-btn-two-chinese-chars>:not(.anticon){margin-right:-.34em;letter-spacing:.34em}.ant-btn-block{width:100%}.ant-btn:empty{display:inline-block;width:0;visibility:hidden;content:"\a0"}a.ant-btn{padding-top:.01px!important;line-height:30px}a.ant-btn-lg{line-height:38px}a.ant-btn-sm{line-height:22px}.ant-btn-rtl{direction:rtl}.ant-btn-group-rtl.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-right-color:#40a9ff;border-left-color:#d9d9d9}.ant-btn-group-rtl.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-right-color:#d9d9d9;border-left-color:#40a9ff}.ant-btn-rtl.ant-btn>.ant-btn-loading-icon .anticon{padding-right:0;padding-left:8px}.ant-btn>.ant-btn-loading-icon:only-child .anticon{padding-right:0;padding-left:0}.ant-btn-rtl.ant-btn>.anticon+span,.ant-btn-rtl.ant-btn>span+.anticon{margin-right:8px;margin-left:0}.ant-card{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:relative;background:#fff;border-radius:2px}.ant-card-rtl{direction:rtl}.ant-card-hoverable{cursor:pointer;transition:box-shadow .3s,border-color .3s}.ant-card-hoverable:hover{border-color:#0000;box-shadow:0 1px 2px -2px #00000029,0 3px 6px 0 #0000001f,0 5px 12px 4px #00000017}.ant-card-bordered{border:1px solid #f0f0f0}.ant-card-head{min-height:48px;margin-bottom:-1px;padding:0 24px;color:#000000d9;font-weight:500;font-size:16px;background:#0000;border-bottom:1px solid #f0f0f0;border-radius:2px 2px 0 0}.ant-card-head:after,.ant-card-head:before{display:table;content:""}.ant-card-head:after{clear:both}.ant-card-head-wrapper{display:flex;align-items:center}.ant-card-head-title{display:inline-block;flex:1;padding:16px 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-card-head-title>.ant-typography,.ant-card-head-title>.ant-typography-edit-content{left:0;margin-top:0;margin-bottom:0}.ant-card-head .ant-tabs{clear:both;margin-bottom:-17px;color:#000000d9;font-weight:400;font-size:14px}.ant-card-head .ant-tabs-bar{border-bottom:1px solid #f0f0f0}.ant-card-extra{float:right;margin-left:auto;padding:16px 0;color:#000000d9;font-weight:400;font-size:14px}.ant-card-rtl .ant-card-extra{margin-right:auto;margin-left:0}.ant-card-body{padding:24px}.ant-card-body:after,.ant-card-body:before{display:table;content:""}.ant-card-body:after{clear:both}.ant-card-contain-grid:not(.ant-card-loading) .ant-card-body{margin:-1px 0 0 -1px;padding:0}.ant-card-grid{float:left;width:33.33%;padding:24px;border:0;border-radius:0;box-shadow:1px 0 0 0 #f0f0f0,0 1px 0 0 #f0f0f0,1px 1px 0 0 #f0f0f0,inset 1px 0 0 0 #f0f0f0,inset 0 1px 0 0 #f0f0f0;transition:all .3s}.ant-card-rtl .ant-card-grid{float:right}.ant-card-grid-hoverable:hover{position:relative;z-index:1;box-shadow:0 1px 2px -2px #00000029,0 3px 6px 0 #0000001f,0 5px 12px 4px #00000017}.ant-card-contain-tabs>.ant-card-head .ant-card-head-title{min-height:32px;padding-bottom:0}.ant-card-contain-tabs>.ant-card-head .ant-card-extra{padding-bottom:0}.ant-card-bordered .ant-card-cover{margin-top:-1px;margin-right:-1px;margin-left:-1px}.ant-card-cover>*{display:block;width:100%}.ant-card-cover img{border-radius:2px 2px 0 0}.ant-card-actions{margin:0;padding:0;list-style:none;background:#fff;border-top:1px solid #f0f0f0}.ant-card-actions:after,.ant-card-actions:before{display:table;content:""}.ant-card-actions:after{clear:both}.ant-card-actions>li{float:left;margin:12px 0;color:#00000073;text-align:center}.ant-card-rtl .ant-card-actions>li{float:right}.ant-card-actions>li>span{position:relative;display:block;min-width:32px;font-size:14px;line-height:1.5715;cursor:pointer}.ant-card-actions>li>span:hover{color:#1890ff;transition:color .3s}.ant-card-actions>li>span>.anticon,.ant-card-actions>li>span a:not(.ant-btn){display:inline-block;width:100%;color:#00000073;line-height:22px;transition:color .3s}.ant-card-actions>li>span>.anticon:hover,.ant-card-actions>li>span a:not(.ant-btn):hover{color:#1890ff}.ant-card-actions>li>span>.anticon{font-size:16px;line-height:22px}.ant-card-actions>li:not(:last-child){border-right:1px solid #f0f0f0}.ant-card-rtl .ant-card-actions>li:not(:last-child){border-right:none;border-left:1px solid #f0f0f0}.ant-card-type-inner .ant-card-head{padding:0 24px;background:#fafafa}.ant-card-type-inner .ant-card-head-title{padding:12px 0;font-size:14px}.ant-card-type-inner .ant-card-body{padding:16px 24px}.ant-card-type-inner .ant-card-extra{padding:13.5px 0}.ant-card-meta{margin:-4px 0}.ant-card-meta:after,.ant-card-meta:before{display:table;content:""}.ant-card-meta:after{clear:both}.ant-card-meta-avatar{float:left;padding-right:16px}.ant-card-rtl .ant-card-meta-avatar{float:right;padding-right:0;padding-left:16px}.ant-card-meta-detail{overflow:hidden}.ant-card-meta-detail>div:not(:last-child){margin-bottom:8px}.ant-card-meta-title{overflow:hidden;color:#000000d9;font-weight:500;font-size:16px;white-space:nowrap;text-overflow:ellipsis}.ant-card-meta-description{color:#00000073}.ant-card-loading{overflow:hidden}.ant-card-loading .ant-card-body{-webkit-user-select:none;user-select:none}.ant-card-loading-content p{margin:0}.ant-card-loading-block{height:14px;margin:4px 0;background:linear-gradient(90deg,#cfd8dc33,#cfd8dc66,#cfd8dc33);background-size:600% 600%;border-radius:2px;animation:card-loading 1.4s ease infinite}@keyframes card-loading{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.ant-card-small>.ant-card-head{min-height:36px;padding:0 12px;font-size:14px}.ant-card-small>.ant-card-head>.ant-card-head-wrapper>.ant-card-head-title{padding:8px 0}.ant-card-small>.ant-card-head>.ant-card-head-wrapper>.ant-card-extra{padding:8px 0;font-size:14px}.ant-card-small>.ant-card-body{padding:12px}.ant-card-rtl .ant-skeleton-header{padding:0 0 0 16px}nz-card,nz-card-loading,nz-card-meta{display:block}.ant-carousel{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum"}.ant-carousel .slick-slider{position:relative;display:block;box-sizing:border-box;touch-action:pan-y;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.ant-carousel .slick-list{position:relative;display:block;margin:0;padding:0;overflow:hidden}.ant-carousel .slick-list:focus{outline:none}.ant-carousel .slick-list.dragging{cursor:pointer}.ant-carousel .slick-list .slick-slide{pointer-events:none}.ant-carousel .slick-list .slick-slide input.ant-checkbox-input,.ant-carousel .slick-list .slick-slide input.ant-radio-input{visibility:hidden}.ant-carousel .slick-list .slick-slide.slick-active{pointer-events:auto}.ant-carousel .slick-list .slick-slide.slick-active input.ant-checkbox-input,.ant-carousel .slick-list .slick-slide.slick-active input.ant-radio-input{visibility:visible}.ant-carousel .slick-list .slick-slide>div>div{vertical-align:bottom}.ant-carousel .slick-slider .slick-list,.ant-carousel .slick-slider .slick-track{transform:translateZ(0);touch-action:pan-y}.ant-carousel .slick-track{position:relative;top:0;left:0;display:block}.ant-carousel .slick-track:after,.ant-carousel .slick-track:before{display:table;content:""}.ant-carousel .slick-track:after{clear:both}.slick-loading .ant-carousel .slick-track{visibility:hidden}.ant-carousel .slick-slide{display:none;float:left;height:100%;min-height:1px}.ant-carousel .slick-slide img{display:block}.ant-carousel .slick-slide.slick-loading img{display:none}.ant-carousel .slick-slide.dragging img{pointer-events:none}.ant-carousel .slick-initialized .slick-slide{display:block}.ant-carousel .slick-loading .slick-slide{visibility:hidden}.ant-carousel .slick-vertical .slick-slide{display:block;height:auto}.ant-carousel .slick-arrow.slick-hidden{display:none}.ant-carousel .slick-next,.ant-carousel .slick-prev{position:absolute;top:50%;display:block;width:20px;height:20px;margin-top:-10px;padding:0;color:#0000;font-size:0;line-height:0;background:#0000;border:0;outline:none;cursor:pointer}.ant-carousel .slick-next:focus,.ant-carousel .slick-next:hover,.ant-carousel .slick-prev:focus,.ant-carousel .slick-prev:hover{color:#0000;background:#0000;outline:none}.ant-carousel .slick-next:focus:before,.ant-carousel .slick-next:hover:before,.ant-carousel .slick-prev:focus:before,.ant-carousel .slick-prev:hover:before{opacity:1}.ant-carousel .slick-next.slick-disabled:before,.ant-carousel .slick-prev.slick-disabled:before{opacity:.25}.ant-carousel .slick-prev{left:-25px}.ant-carousel .slick-prev:before{content:"←"}.ant-carousel .slick-next{right:-25px}.ant-carousel .slick-next:before{content:"→"}.ant-carousel .slick-dots{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex!important;justify-content:center;margin-right:15%;margin-left:15%;padding-left:0;list-style:none}.ant-carousel .slick-dots-bottom{bottom:12px}.ant-carousel .slick-dots-top{top:12px;bottom:auto}.ant-carousel .slick-dots li{position:relative;display:inline-block;flex:0 1 auto;box-sizing:initial;width:16px;height:3px;margin:0 3px;padding:0;text-align:center;text-indent:-999px;vertical-align:top;transition:all .5s}.ant-carousel .slick-dots li button{display:block;width:100%;height:3px;padding:0;color:#0000;font-size:0;background:#fff;border:0;border-radius:1px;outline:none;cursor:pointer;opacity:.3;transition:all .5s}.ant-carousel .slick-dots li button:focus,.ant-carousel .slick-dots li button:hover{opacity:.75}.ant-carousel .slick-dots li.slick-active{width:24px}.ant-carousel .slick-dots li.slick-active button{background:#fff;opacity:1}.ant-carousel .slick-dots li.slick-active:focus,.ant-carousel .slick-dots li.slick-active:hover{opacity:1}.ant-carousel-vertical .slick-dots{top:50%;bottom:auto;flex-direction:column;width:3px;height:auto;margin:0;transform:translateY(-50%)}.ant-carousel-vertical .slick-dots-left{right:auto;left:12px}.ant-carousel-vertical .slick-dots-right{right:12px;left:auto}.ant-carousel-vertical .slick-dots li{width:3px;height:16px;margin:4px 2px;vertical-align:initial}.ant-carousel-vertical .slick-dots li button{width:3px;height:16px}.ant-carousel-vertical .slick-dots li.slick-active,.ant-carousel-vertical .slick-dots li.slick-active button{width:3px;height:24px}.ant-carousel-rtl{direction:rtl}.ant-carousel-rtl .ant-carousel .slick-track{right:0;left:auto}.ant-carousel-rtl .ant-carousel .slick-prev{right:-25px;left:auto}.ant-carousel-rtl .ant-carousel .slick-prev:before{content:"→"}.ant-carousel-rtl .ant-carousel .slick-next{right:auto;left:-25px}.ant-carousel-rtl .ant-carousel .slick-next:before{content:"←"}.ant-carousel-rtl.ant-carousel .slick-dots{flex-direction:row-reverse}.ant-carousel-rtl.ant-carousel-vertical .slick-dots{flex-direction:column}nz-carousel{position:relative;overflow:hidden;width:100%;height:100%}.slick-dots,nz-carousel{display:block}.slick-track{opacity:1}.slick-list{direction:ltr}@keyframes antCheckboxEffect{0%{transform:scale(1);opacity:.5}to{transform:scale(1.6);opacity:0}}.ant-checkbox{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:relative;top:.2em;line-height:1;white-space:nowrap;outline:none;cursor:pointer}.ant-checkbox-input:focus+.ant-checkbox-inner,.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner{border-color:#1890ff}.ant-checkbox-checked:after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #1890ff;border-radius:2px;visibility:hidden;animation:antCheckboxEffect .36s ease-in-out;animation-fill-mode:backwards;content:""}.ant-checkbox-wrapper:hover .ant-checkbox:after,.ant-checkbox:hover:after{visibility:visible}.ant-checkbox-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;direction:ltr;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:initial;transition:all .3s}.ant-checkbox-inner:after{position:absolute;top:50%;left:22%;display:table;width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;content:" "}.ant-checkbox-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;cursor:pointer;opacity:0}.ant-checkbox-checked .ant-checkbox-inner:after{position:absolute;display:table;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;content:" "}.ant-checkbox-checked .ant-checkbox-inner{background-color:#1890ff;border-color:#1890ff}.ant-checkbox-disabled{cursor:not-allowed}.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner:after{border-color:#00000040;animation-name:none}.ant-checkbox-disabled .ant-checkbox-input{cursor:not-allowed}.ant-checkbox-disabled .ant-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-checkbox-disabled .ant-checkbox-inner:after{border-color:#f5f5f5;border-collapse:initial;animation-name:none}.ant-checkbox-disabled+span{color:#00000040;cursor:not-allowed}.ant-checkbox-disabled:hover:after,.ant-checkbox-wrapper:hover .ant-checkbox-disabled:after{visibility:hidden}.ant-checkbox-wrapper{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";display:inline-flex;align-items:baseline;line-height:unset;cursor:pointer}.ant-checkbox-wrapper:after{display:inline-block;width:0;overflow:hidden;content:"\a0"}.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled{cursor:not-allowed}.ant-checkbox-wrapper+.ant-checkbox-wrapper{margin-left:8px}.ant-checkbox+span{padding-right:8px;padding-left:8px}.ant-checkbox-group{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";display:inline-block}.ant-checkbox-group-item{margin-right:8px}.ant-checkbox-group-item:last-child{margin-right:0}.ant-checkbox-group-item+.ant-checkbox-group-item{margin-left:0}.ant-checkbox-indeterminate .ant-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-checkbox-indeterminate .ant-checkbox-inner:after{top:50%;left:50%;width:8px;height:8px;background-color:#1890ff;border:0;transform:translate(-50%,-50%) scale(1);opacity:1;content:" "}.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner:after{background-color:#00000040;border-color:#00000040}.ant-checkbox-rtl{direction:rtl}.ant-checkbox-group-rtl .ant-checkbox-group-item{margin-right:0;margin-left:8px}.ant-checkbox-group-rtl .ant-checkbox-group-item:last-child{margin-left:0!important}.ant-checkbox-group-rtl .ant-checkbox-group-item+.ant-checkbox-group-item{margin-left:8px}.ant-checkbox+span:empty{display:none}.ant-collapse{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";background-color:#fafafa;border:1px solid #d9d9d9;border-bottom:0;border-radius:2px}.ant-collapse>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse>.ant-collapse-item:last-child,.ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header{border-radius:0 0 2px 2px}.ant-collapse>.ant-collapse-item>.ant-collapse-header{position:relative;padding:12px 16px;color:#000000d9;line-height:1.5715;cursor:pointer;transition:all .3s,visibility 0s}.ant-collapse>.ant-collapse-item>.ant-collapse-header:before{display:table;content:""}.ant-collapse>.ant-collapse-item>.ant-collapse-header:after{display:table;clear:both;content:""}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{display:inline-block;margin-right:12px;font-size:12px;vertical-align:-1px}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{transition:transform .24s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{float:right}.ant-collapse>.ant-collapse-item>.ant-collapse-header:focus{outline:none}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only{cursor:default}.ant-collapse>.ant-collapse-item .ant-collapse-header-collapsible-only .ant-collapse-header-text{cursor:pointer}.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-left:12px}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header{padding:12px 40px 12px 16px}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{position:absolute;top:50%;right:16px;left:auto;margin:0;transform:translateY(-50%)}.ant-collapse-content{color:#000000d9;background-color:#fff;border-top:1px solid #d9d9d9}.ant-collapse-content>.ant-collapse-content-box{padding:16px}.ant-collapse-content-hidden{display:none}.ant-collapse-item:last-child>.ant-collapse-content{border-radius:0 0 2px 2px}.ant-collapse-borderless{background-color:#fafafa;border:0}.ant-collapse-borderless>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse-borderless>.ant-collapse-item:last-child,.ant-collapse-borderless>.ant-collapse-item:last-child .ant-collapse-header{border-radius:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content{background-color:initial;border-top:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding-top:4px}.ant-collapse-ghost{background-color:initial;border:0}.ant-collapse-ghost>.ant-collapse-item{border-bottom:0}.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content{background-color:initial;border-top:0}.ant-collapse-ghost>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding-top:12px;padding-bottom:12px}.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header,.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header>.arrow{color:#00000040;cursor:not-allowed}.ant-collapse-rtl{direction:rtl}.ant-collapse-rtl .ant-collapse>.ant-collapse-item>.ant-collapse-header{padding:12px 40px 12px 16px}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{transform:rotate(180deg)}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{float:left}.ant-collapse-rtl.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-right:12px;padding-left:0}nz-collapse,nz-collapse-panel{display:block}.ant-comment{position:relative;background-color:inherit}.ant-comment-inner{display:flex;padding:16px 0}.ant-comment-avatar{position:relative;flex-shrink:0;margin-right:12px;cursor:pointer}.ant-comment-avatar img{width:32px;height:32px;border-radius:50%}.ant-comment-content{position:relative;flex:1 1 auto;min-width:1px;font-size:14px;word-wrap:break-word}.ant-comment-content-author{display:flex;flex-wrap:wrap;justify-content:flex-start;margin-bottom:4px;font-size:14px}.ant-comment-content-author>a,.ant-comment-content-author>span{padding-right:8px;font-size:12px;line-height:18px}.ant-comment-content-author-name{color:#00000073;font-size:14px;transition:color .3s}.ant-comment-content-author-name>*,.ant-comment-content-author-name>:hover{color:#00000073}.ant-comment-content-author-time{color:#ccc;white-space:nowrap;cursor:auto}.ant-comment-content-detail p{margin-bottom:inherit;white-space:pre-wrap}.ant-comment-actions{margin-top:12px;margin-bottom:inherit;padding-left:0}.ant-comment-actions>li{display:inline-block;color:#00000073}.ant-comment-actions>li>span{margin-right:10px;color:#00000073;font-size:12px;cursor:pointer;transition:color .3s;-webkit-user-select:none;user-select:none}.ant-comment-actions>li>span:hover{color:#595959}.ant-comment-nested{margin-left:44px}.ant-comment-rtl{direction:rtl}.ant-comment-rtl .ant-comment-avatar{margin-right:0;margin-left:12px}.ant-comment-rtl .ant-comment-content-author>a,.ant-comment-rtl .ant-comment-content-author>span{padding-right:0;padding-left:8px}.ant-comment-rtl .ant-comment-actions{padding-right:0}.ant-comment-rtl .ant-comment-actions>li>span{margin-right:0;margin-left:10px}.ant-comment-rtl .ant-comment-nested{margin-right:44px;margin-left:0}nz-comment,nz-comment-content{display:block}.ant-picker{box-sizing:border-box;margin:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";padding:4px 11px;position:relative;display:inline-flex;align-items:center;background:#fff;border:1px solid #d9d9d9;border-radius:2px;transition:border .3s,box-shadow .3s}.ant-picker-focused,.ant-picker:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-input-rtl .ant-picker-focused,.ant-input-rtl .ant-picker:hover{border-right-width:0;border-left-width:1px!important}.ant-picker-focused{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #1890ff33}.ant-input-rtl .ant-picker-focused{border-right-width:0;border-left-width:1px!important}.ant-picker.ant-picker-disabled{background:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-picker.ant-picker-disabled .ant-picker-suffix{color:#00000040}.ant-picker.ant-picker-borderless{background-color:initial!important;border-color:#0000!important;box-shadow:none!important}.ant-picker-input{position:relative;display:inline-flex;align-items:center;width:100%}.ant-picker-input>input{position:relative;display:inline-block;width:100%;min-width:0;color:#000000d9;font-size:14px;line-height:1.5715;background-color:#fff;background-image:none;border-radius:2px;transition:all .3s;flex:auto;min-width:1px;height:auto;padding:0;background:#0000;border:0}.ant-picker-input>input::placeholder{color:#bfbfbf}.ant-picker-input>input:placeholder-shown{text-overflow:ellipsis}.ant-picker-input>input:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-input-rtl .ant-picker-input>input:hover{border-right-width:0;border-left-width:1px!important}.ant-picker-input>input-focused,.ant-picker-input>input:focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #1890ff33}.ant-input-rtl .ant-picker-input>input-focused,.ant-input-rtl .ant-picker-input>input:focus{border-right-width:0;border-left-width:1px!important}.ant-picker-input>input-disabled{color:#00000040;background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-picker-input>input-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-picker-input>input[disabled]{color:#00000040;background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-picker-input>input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-picker-input>input-borderless,.ant-picker-input>input-borderless-disabled,.ant-picker-input>input-borderless-focused,.ant-picker-input>input-borderless:focus,.ant-picker-input>input-borderless:hover,.ant-picker-input>input-borderless[disabled]{background-color:initial;border:none;box-shadow:none}textarea.ant-picker-input>input{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;transition:all .3s,height 0s}.ant-picker-input>input-lg{padding:6.5px 11px;font-size:16px}.ant-picker-input>input-sm{padding:0 7px}.ant-picker-input>input-rtl{direction:rtl}.ant-picker-input>input:focus{box-shadow:none}.ant-picker-input>input[disabled]{background:#0000}.ant-picker-input:hover .ant-picker-clear{opacity:1}.ant-picker-input-placeholder>input{color:#bfbfbf}.ant-picker-large{padding:6.5px 11px}.ant-picker-large .ant-picker-input>input{font-size:16px}.ant-picker-small{padding:0 7px}.ant-picker-suffix{align-self:center;margin-left:4px;color:#00000040;line-height:1;pointer-events:none}.ant-picker-suffix>*{vertical-align:top}.ant-picker-clear{position:absolute;top:50%;right:0;color:#00000040;line-height:1;background:#fff;transform:translateY(-50%);cursor:pointer;opacity:0;transition:opacity .3s,color .3s}.ant-picker-clear>*{vertical-align:top}.ant-picker-clear:hover{color:#00000073}.ant-picker-separator{position:relative;display:inline-block;width:1em;height:16px;color:#00000040;font-size:16px;vertical-align:top;cursor:default}.ant-picker-focused .ant-picker-separator{color:#00000073}.ant-picker-disabled .ant-picker-range-separator .ant-picker-separator{cursor:not-allowed}.ant-picker-range{position:relative;display:inline-flex}.ant-picker-range .ant-picker-clear{right:11px}.ant-picker-range:hover .ant-picker-clear{opacity:1}.ant-picker-range .ant-picker-active-bar{bottom:-1px;height:2px;margin-left:11px;background:#1890ff;opacity:0;transition:all .3s ease-out;pointer-events:none}.ant-picker-range.ant-picker-focused .ant-picker-active-bar{opacity:1}.ant-picker-range-separator{align-items:center;padding:0 8px;line-height:1}.ant-picker-range.ant-picker-small .ant-picker-clear{right:7px}.ant-picker-range.ant-picker-small .ant-picker-active-bar{margin-left:7px}.ant-picker-dropdown{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:absolute;z-index:1050}.ant-picker-dropdown-hidden{display:none}.ant-picker-dropdown-placement-bottomLeft .ant-picker-range-arrow{top:1.66666667px;display:block;transform:rotate(-45deg)}.ant-picker-dropdown-placement-topLeft .ant-picker-range-arrow{bottom:1.66666667px;display:block;transform:rotate(135deg)}.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-topRight,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-topRight{animation-name:antSlideDownIn}.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-picker-dropdown-placement-bottomRight,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-picker-dropdown-placement-bottomRight{animation-name:antSlideUpIn}.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-topLeft,.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-topRight{animation-name:antSlideDownOut}.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-bottomLeft,.ant-picker-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-picker-dropdown-placement-bottomRight{animation-name:antSlideUpOut}.ant-picker-dropdown-range{padding:6.66666667px 0}.ant-picker-dropdown-range-hidden{display:none}.ant-picker-dropdown .ant-picker-panel>.ant-picker-time-panel{padding-top:4px}.ant-picker-ranges{margin-bottom:0;padding:4px 12px;overflow:hidden;line-height:34px;text-align:left;list-style:none}.ant-picker-ranges>li{display:inline-block}.ant-picker-ranges .ant-picker-preset>.ant-tag-blue{color:#1890ff;background:#e6f7ff;border-color:#91d5ff;cursor:pointer}.ant-picker-ranges .ant-picker-ok{float:right;margin-left:8px}.ant-picker-range-wrapper{display:flex}.ant-picker-range-arrow{position:absolute;z-index:1;display:none;width:10px;height:10px;margin-left:16.5px;box-shadow:2px -2px 6px #0000000f;transition:left .3s ease-out}.ant-picker-range-arrow:after{position:absolute;top:1px;right:1px;width:10px;height:10px;border-color:#fff #fff #0000 #0000;border-style:solid;border-width:5px;content:""}.ant-picker-panel-container{overflow:hidden;vertical-align:top;background:#fff;border-radius:2px;box-shadow:0 3px 6px -4px #0000001f,0 6px 16px 0 #00000014,0 9px 28px 8px #0000000d;transition:margin .3s}.ant-picker-panel-container .ant-picker-panels{display:inline-flex;flex-wrap:nowrap;direction:ltr}.ant-picker-panel-container .ant-picker-panel{vertical-align:top;background:#0000;border-width:0 0 1px;border-radius:0}.ant-picker-panel-container .ant-picker-panel-focused{border-color:#f0f0f0}.ant-picker-panel{display:inline-flex;flex-direction:column;text-align:center;background:#fff;border:1px solid #f0f0f0;border-radius:2px;outline:none}.ant-picker-panel-focused{border-color:#1890ff}.ant-picker-date-panel,.ant-picker-decade-panel,.ant-picker-month-panel,.ant-picker-quarter-panel,.ant-picker-time-panel,.ant-picker-week-panel,.ant-picker-year-panel{display:flex;flex-direction:column;width:280px}.ant-picker-header{display:flex;padding:0 8px;color:#000000d9;border-bottom:1px solid #f0f0f0}.ant-picker-header>*{flex:none}.ant-picker-header button{padding:0;color:#00000040;line-height:40px;background:#0000;border:0;cursor:pointer;transition:color .3s}.ant-picker-header>button{min-width:1.6em;font-size:14px}.ant-picker-header>button:hover{color:#000000d9}.ant-picker-header-view{flex:auto;font-weight:500;line-height:40px}.ant-picker-header-view button{color:inherit;font-weight:inherit}.ant-picker-header-view button:not(:first-child){margin-left:8px}.ant-picker-header-view button:hover{color:#1890ff}.ant-picker-next-icon,.ant-picker-prev-icon,.ant-picker-super-next-icon,.ant-picker-super-prev-icon{position:relative;display:inline-block;width:7px;height:7px}.ant-picker-next-icon:before,.ant-picker-prev-icon:before,.ant-picker-super-next-icon:before,.ant-picker-super-prev-icon:before{position:absolute;top:0;left:0;display:inline-block;width:7px;height:7px;border:0 solid;border-width:1.5px 0 0 1.5px;content:""}.ant-picker-super-next-icon:after,.ant-picker-super-prev-icon:after{position:absolute;top:4px;left:4px;display:inline-block;width:7px;height:7px;border:0 solid;border-width:1.5px 0 0 1.5px;content:""}.ant-picker-prev-icon,.ant-picker-super-prev-icon{transform:rotate(-45deg)}.ant-picker-next-icon,.ant-picker-super-next-icon{transform:rotate(135deg)}.ant-picker-content{width:100%;table-layout:fixed;border-collapse:collapse}.ant-picker-content td,.ant-picker-content th{position:relative;min-width:24px;font-weight:400}.ant-picker-content th{height:30px;color:#000000d9;line-height:30px}.ant-picker-cell{padding:3px 0;color:#00000040;cursor:pointer}.ant-picker-cell-in-view{color:#000000d9}.ant-picker-cell-disabled{cursor:not-allowed}.ant-picker-cell:before{position:absolute;top:50%;right:0;left:0;z-index:1;height:24px;transform:translateY(-50%);content:""}.ant-picker-cell:hover:not(.ant-picker-cell-in-view) .ant-picker-cell-inner,.ant-picker-cell:hover:not(.ant-picker-cell-selected):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):not(.ant-picker-cell-range-hover-start):not(.ant-picker-cell-range-hover-end) .ant-picker-cell-inner{background:#f5f5f5}.ant-picker-cell-in-view.ant-picker-cell-today .ant-picker-cell-inner:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;border:1px solid #1890ff;border-radius:2px;content:""}.ant-picker-cell-in-view.ant-picker-cell-in-range{position:relative}.ant-picker-cell-in-view.ant-picker-cell-in-range:before{background:#e6f7ff}.ant-picker-cell-in-view.ant-picker-cell-range-end .ant-picker-cell-inner,.ant-picker-cell-in-view.ant-picker-cell-range-start .ant-picker-cell-inner,.ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner{color:#fff;background:#1890ff}.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single):before,.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single):before{background:#e6f7ff}.ant-picker-cell-in-view.ant-picker-cell-range-start:before{left:50%}.ant-picker-cell-in-view.ant-picker-cell-range-end:before{right:50%}.ant-picker-cell-in-view.ant-picker-cell-range-hover-end.ant-picker-cell-range-end-single:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-end.ant-picker-cell-range-start.ant-picker-cell-range-end.ant-picker-cell-range-start-near-hover:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:not(.ant-picker-cell-in-range):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-start.ant-picker-cell-range-start-single:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-start.ant-picker-cell-range-start.ant-picker-cell-range-end.ant-picker-cell-range-end-near-hover:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:not(.ant-picker-cell-in-range):not(.ant-picker-cell-range-start):not(.ant-picker-cell-range-end):after,.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-in-range):after{position:absolute;top:50%;z-index:0;height:24px;border-top:1px dashed #7ec1ff;border-bottom:1px dashed #7ec1ff;transform:translateY(-50%);content:""}.ant-picker-cell-range-hover-end:after,.ant-picker-cell-range-hover-start:after,.ant-picker-cell-range-hover:after{right:0;left:2px}.ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover:before,.ant-picker-cell-in-view.ant-picker-cell-range-end.ant-picker-cell-range-hover:before,.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single).ant-picker-cell-range-hover-end:before,.ant-picker-cell-in-view.ant-picker-cell-range-start.ant-picker-cell-range-hover:before,.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single).ant-picker-cell-range-hover-start:before,.ant-picker-panel>:not(.ant-picker-date-panel) .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end:before,.ant-picker-panel>:not(.ant-picker-date-panel) .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start:before{background:#cbe6ff}.ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single):not(.ant-picker-cell-range-end) .ant-picker-cell-inner{border-radius:2px 0 0 2px}.ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single):not(.ant-picker-cell-range-start) .ant-picker-cell-inner{border-radius:0 2px 2px 0}.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner:after,.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner:after{position:absolute;top:0;bottom:0;z-index:-1;background:#cbe6ff;content:""}.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner:after{right:-6px;left:0}.ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner:after{right:0;left:-6px}.ant-picker-cell-range-hover.ant-picker-cell-range-start:after{right:50%}.ant-picker-cell-range-hover.ant-picker-cell-range-end:after{left:50%}.ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover-edge-start-near-range):after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:after,.ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start.ant-picker-cell-range-hover-edge-start-near-range:after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:first-child:after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:first-child:after{left:6px;border-left:1px dashed #7ec1ff;border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-edge-end.ant-picker-cell-range-hover-edge-end-near-range:after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover-edge-end-near-range):after,.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child:after,tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:last-child:after{right:6px;border-right:1px dashed #7ec1ff;border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-picker-cell-disabled{pointer-events:none}.ant-picker-cell-disabled .ant-picker-cell-inner{color:#00000040;background:#0000}.ant-picker-cell-disabled:before{background:#f5f5f5}.ant-picker-cell-disabled.ant-picker-cell-today .ant-picker-cell-inner:before{border-color:#00000040}.ant-picker-decade-panel .ant-picker-content,.ant-picker-month-panel .ant-picker-content,.ant-picker-quarter-panel .ant-picker-content,.ant-picker-year-panel .ant-picker-content{height:264px}.ant-picker-decade-panel .ant-picker-cell-inner,.ant-picker-month-panel .ant-picker-cell-inner,.ant-picker-quarter-panel .ant-picker-cell-inner,.ant-picker-year-panel .ant-picker-cell-inner{padding:0 8px}.ant-picker-decade-panel .ant-picker-cell-disabled .ant-picker-cell-inner,.ant-picker-month-panel .ant-picker-cell-disabled .ant-picker-cell-inner,.ant-picker-quarter-panel .ant-picker-cell-disabled .ant-picker-cell-inner,.ant-picker-year-panel .ant-picker-cell-disabled .ant-picker-cell-inner{background:#f5f5f5}.ant-picker-quarter-panel .ant-picker-content{height:56px}.ant-picker-footer{width:-webkit-min-content;width:min-content;min-width:100%;line-height:38px;text-align:center;border-bottom:1px solid #0000}.ant-picker-panel .ant-picker-footer{border-top:1px solid #f0f0f0}.ant-picker-footer-extra{padding:0 12px;line-height:38px;text-align:left}.ant-picker-footer-extra:not(:last-child){border-bottom:1px solid #f0f0f0}.ant-picker-now{text-align:left}.ant-picker-today-btn{color:#1890ff}.ant-picker-today-btn:hover{color:#40a9ff}.ant-picker-today-btn:active{color:#096dd9}.ant-picker-today-btn.ant-picker-today-btn-disabled{color:#00000040;cursor:not-allowed}.ant-picker-decade-panel .ant-picker-cell-inner{padding:0 4px}.ant-picker-decade-panel .ant-picker-cell:before{display:none}.ant-picker-month-panel .ant-picker-body,.ant-picker-quarter-panel .ant-picker-body,.ant-picker-year-panel .ant-picker-body{padding:0 8px}.ant-picker-month-panel .ant-picker-cell-inner,.ant-picker-quarter-panel .ant-picker-cell-inner,.ant-picker-year-panel .ant-picker-cell-inner{width:60px}.ant-picker-month-panel .ant-picker-cell-range-hover-start:after,.ant-picker-quarter-panel .ant-picker-cell-range-hover-start:after,.ant-picker-year-panel .ant-picker-cell-range-hover-start:after{left:14px;border-left:1px dashed #7ec1ff;border-radius:2px 0 0 2px}.ant-picker-month-panel .ant-picker-cell-range-hover-end:after,.ant-picker-panel-rtl .ant-picker-month-panel .ant-picker-cell-range-hover-start:after,.ant-picker-panel-rtl .ant-picker-quarter-panel .ant-picker-cell-range-hover-start:after,.ant-picker-panel-rtl .ant-picker-year-panel .ant-picker-cell-range-hover-start:after,.ant-picker-quarter-panel .ant-picker-cell-range-hover-end:after,.ant-picker-year-panel .ant-picker-cell-range-hover-end:after{right:14px;border-right:1px dashed #7ec1ff;border-radius:0 2px 2px 0}.ant-picker-panel-rtl .ant-picker-month-panel .ant-picker-cell-range-hover-end:after,.ant-picker-panel-rtl .ant-picker-quarter-panel .ant-picker-cell-range-hover-end:after,.ant-picker-panel-rtl .ant-picker-year-panel .ant-picker-cell-range-hover-end:after{left:14px;border-left:1px dashed #7ec1ff;border-radius:2px 0 0 2px}.ant-picker-week-panel .ant-picker-body{padding:8px 12px}.ant-picker-week-panel .ant-picker-cell-selected .ant-picker-cell-inner,.ant-picker-week-panel .ant-picker-cell .ant-picker-cell-inner,.ant-picker-week-panel .ant-picker-cell:hover .ant-picker-cell-inner{background:#0000!important}.ant-picker-week-panel-row td{transition:background .3s}.ant-picker-week-panel-row:hover td{background:#f5f5f5}.ant-picker-week-panel-row-selected:hover td,.ant-picker-week-panel-row-selected td{background:#1890ff}.ant-picker-week-panel-row-selected:hover td.ant-picker-cell-week,.ant-picker-week-panel-row-selected td.ant-picker-cell-week{color:#ffffff80}.ant-picker-week-panel-row-selected:hover td.ant-picker-cell-today .ant-picker-cell-inner:before,.ant-picker-week-panel-row-selected td.ant-picker-cell-today .ant-picker-cell-inner:before{border-color:#fff}.ant-picker-week-panel-row-selected:hover td .ant-picker-cell-inner,.ant-picker-week-panel-row-selected td .ant-picker-cell-inner{color:#fff}.ant-picker-date-panel .ant-picker-body{padding:8px 12px}.ant-picker-date-panel .ant-picker-content{width:252px}.ant-picker-date-panel .ant-picker-content th{width:36px}.ant-picker-datetime-panel{display:flex}.ant-picker-datetime-panel .ant-picker-time-panel{border-left:1px solid #f0f0f0}.ant-picker-datetime-panel .ant-picker-date-panel,.ant-picker-datetime-panel .ant-picker-time-panel{transition:opacity .3s}.ant-picker-datetime-panel-active .ant-picker-date-panel,.ant-picker-datetime-panel-active .ant-picker-time-panel{opacity:.3}.ant-picker-datetime-panel-active .ant-picker-date-panel-active,.ant-picker-datetime-panel-active .ant-picker-time-panel-active{opacity:1}.ant-picker-time-panel{width:auto;min-width:auto}.ant-picker-time-panel .ant-picker-content{display:flex;flex:auto;height:224px}.ant-picker-time-panel-column{flex:1 0 auto;width:56px;margin:0;padding:0;overflow-y:hidden;text-align:left;list-style:none;transition:background .3s}.ant-picker-time-panel-column:after{display:block;height:196px;content:""}.ant-picker-datetime-panel .ant-picker-time-panel-column:after{height:198px}.ant-picker-time-panel-column:not(:first-child){border-left:1px solid #f0f0f0}.ant-picker-time-panel-column-active{background:#e6f7ff33}.ant-picker-time-panel-column:hover{overflow-y:auto}.ant-picker-time-panel-column>li{margin:0;padding:0}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner{display:block;width:100%;height:28px;margin:0;padding:0 0 0 14px;color:#000000d9;line-height:28px;border-radius:0;cursor:pointer;transition:background .3s}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell .ant-picker-time-panel-cell-inner:hover{background:#f5f5f5}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner{background:#e6f7ff}.ant-picker-time-panel-column>li.ant-picker-time-panel-cell-disabled .ant-picker-time-panel-cell-inner{color:#00000040;background:#0000;cursor:not-allowed}:root .ant-picker-range-wrapper .ant-picker-month-panel .ant-picker-cell,:root .ant-picker-range-wrapper .ant-picker-year-panel .ant-picker-cell,_:-ms-fullscreen .ant-picker-range-wrapper .ant-picker-month-panel .ant-picker-cell,_:-ms-fullscreen .ant-picker-range-wrapper .ant-picker-year-panel .ant-picker-cell{padding:21px 0}.ant-picker-rtl{direction:rtl}.ant-picker-rtl .ant-picker-suffix{margin-right:4px;margin-left:0}.ant-picker-rtl .ant-picker-clear{right:auto;left:0}.ant-picker-rtl .ant-picker-separator{transform:rotate(180deg)}.ant-picker-panel-rtl .ant-picker-header-view button:not(:first-child){margin-right:8px;margin-left:0}.ant-picker-rtl.ant-picker-range .ant-picker-clear{right:auto;left:11px}.ant-picker-rtl.ant-picker-range .ant-picker-active-bar{margin-right:11px;margin-left:0}.ant-picker-rtl.ant-picker-range.ant-picker-small .ant-picker-active-bar{margin-right:7px}.ant-picker-dropdown-rtl .ant-picker-ranges{text-align:right}.ant-picker-dropdown-rtl .ant-picker-ranges .ant-picker-ok{float:left;margin-right:8px;margin-left:0}.ant-picker-panel-rtl{direction:rtl}.ant-picker-panel-rtl .ant-picker-prev-icon,.ant-picker-panel-rtl .ant-picker-super-prev-icon{transform:rotate(135deg)}.ant-picker-panel-rtl .ant-picker-next-icon,.ant-picker-panel-rtl .ant-picker-super-next-icon{transform:rotate(-45deg)}.ant-picker-cell .ant-picker-cell-inner{position:relative;z-index:2;display:inline-block;min-width:24px;height:24px;line-height:24px;border-radius:2px;transition:background .3s,border .3s}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start:before{right:50%;left:0}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-end:before{right:0;left:50%}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start.ant-picker-cell-range-end:before{right:50%;left:50%}.ant-picker-panel-rtl .ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-start .ant-picker-cell-inner:after{right:0;left:-6px}.ant-picker-panel-rtl .ant-picker-date-panel .ant-picker-cell-in-view.ant-picker-cell-in-range.ant-picker-cell-range-hover-end .ant-picker-cell-inner:after{right:-6px;left:0}.ant-picker-panel-rtl .ant-picker-cell-range-hover.ant-picker-cell-range-start:after{right:0;left:50%}.ant-picker-panel-rtl .ant-picker-cell-range-hover.ant-picker-cell-range-end:after{right:50%;left:0}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-start:not(.ant-picker-cell-range-start-single):not(.ant-picker-cell-range-end) .ant-picker-cell-inner{border-radius:0 2px 2px 0}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-end:not(.ant-picker-cell-range-end-single):not(.ant-picker-cell-range-start) .ant-picker-cell-inner{border-radius:2px 0 0 2px}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover-edge-start-near-range):after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start.ant-picker-cell-range-hover-edge-start-near-range:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-selected):first-child:after{right:6px;left:0;border-right:1px dashed #7ec1ff;border-left:none;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-edge-end.ant-picker-cell-range-hover-edge-end-near-range:after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover-edge-end-near-range):after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-range-hover-end:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover:not(.ant-picker-cell-selected):last-child:after{right:0;left:6px;border-right:none;border-left:1px dashed #7ec1ff;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover-start.ant-picker-cell-range-hover-edge-end:not(.ant-picker-cell-range-hover):after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover):after,.ant-picker-panel-rtl .ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover-end.ant-picker-cell-range-hover-edge-start:not(.ant-picker-cell-range-hover):after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-end.ant-picker-cell-range-hover.ant-picker-cell-range-hover-edge-end:first-child:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-end:first-child:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child:after,.ant-picker-panel-rtl tr>.ant-picker-cell-in-view.ant-picker-cell-start.ant-picker-cell-range-hover.ant-picker-cell-range-hover-edge-start:last-child:after{right:6px;left:6px;border-right:1px dashed #7ec1ff;border-left:1px dashed #7ec1ff;border-radius:2px}.ant-picker-dropdown-rtl .ant-picker-footer-extra{direction:rtl;text-align:right}.ant-picker-panel-rtl .ant-picker-time-panel{direction:ltr}.ant-picker-inline{border:none;padding:0}.ant-picker-inline .ant-picker-range-arrow{display:none!important}.ant-descriptions-header{display:flex;align-items:center;margin-bottom:20px}.ant-descriptions-title{flex:auto;overflow:hidden;color:#000000d9;font-weight:700;font-size:16px;line-height:1.5715;white-space:nowrap;text-overflow:ellipsis}.ant-descriptions-extra{margin-left:auto;color:#000000d9;font-size:14px}.ant-descriptions-view{width:100%;overflow:hidden;border-radius:2px}.ant-descriptions-view table{width:100%;table-layout:fixed}.ant-descriptions-row>td,.ant-descriptions-row>th{padding-bottom:16px}.ant-descriptions-row:last-child{border-bottom:none}.ant-descriptions-item-label{color:#000000d9;font-weight:400;font-size:14px;line-height:1.5715;text-align:start}.ant-descriptions-item-label:after{content:":";position:relative;top:-.5px;margin:0 8px 0 2px}.ant-descriptions-item-label.ant-descriptions-item-no-colon:after{content:" "}.ant-descriptions-item-no-label:after{margin:0;content:""}.ant-descriptions-item-content{display:table-cell;flex:1;color:#000000d9;font-size:14px;line-height:1.5715;word-break:break-word;overflow-wrap:break-word}.ant-descriptions-item{padding-bottom:0;vertical-align:top}.ant-descriptions-item-container{display:flex}.ant-descriptions-item-container .ant-descriptions-item-content,.ant-descriptions-item-container .ant-descriptions-item-label{display:inline-flex;align-items:baseline}.ant-descriptions-middle .ant-descriptions-row>td,.ant-descriptions-middle .ant-descriptions-row>th{padding-bottom:12px}.ant-descriptions-small .ant-descriptions-row>td,.ant-descriptions-small .ant-descriptions-row>th{padding-bottom:8px}.ant-descriptions-bordered .ant-descriptions-view{border:1px solid #f0f0f0}.ant-descriptions-bordered .ant-descriptions-view>table{table-layout:auto}.ant-descriptions-bordered .ant-descriptions-item-content,.ant-descriptions-bordered .ant-descriptions-item-label{padding:16px 24px;border-right:1px solid #f0f0f0}.ant-descriptions-bordered .ant-descriptions-item-content:last-child,.ant-descriptions-bordered .ant-descriptions-item-label:last-child{border-right:none}.ant-descriptions-bordered .ant-descriptions-item-label{background-color:#fafafa}.ant-descriptions-bordered .ant-descriptions-item-label:after{display:none}.ant-descriptions-bordered .ant-descriptions-row{border-bottom:1px solid #f0f0f0}.ant-descriptions-bordered .ant-descriptions-row:last-child{border-bottom:none}.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-content,.ant-descriptions-bordered.ant-descriptions-middle .ant-descriptions-item-label{padding:12px 24px}.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-content,.ant-descriptions-bordered.ant-descriptions-small .ant-descriptions-item-label{padding:8px 16px}.ant-descriptions-rtl{direction:rtl}.ant-descriptions-rtl .ant-descriptions-item-label:after{margin:0 2px 0 8px}.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-content,.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-label{border-right:none;border-left:1px solid #f0f0f0}.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-content:last-child,.ant-descriptions-rtl.ant-descriptions-bordered .ant-descriptions-item-label:last-child{border-left:none}nz-descriptions{display:block}.ant-divider{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";border-top:1px solid #0000000f}.ant-divider-vertical{position:relative;top:-.06em;display:inline-block;height:.9em;margin:0 8px;vertical-align:middle;border-top:0;border-left:1px solid #0000000f}.ant-divider-horizontal{display:flex;clear:both;width:100%;min-width:100%;margin:24px 0}.ant-divider-horizontal.ant-divider-with-text{display:flex;margin:16px 0;color:#000000d9;font-weight:500;font-size:16px;white-space:nowrap;text-align:center;border-top:0;border-top-color:#0000000f}.ant-divider-horizontal.ant-divider-with-text:after,.ant-divider-horizontal.ant-divider-with-text:before{position:relative;top:50%;width:50%;border-top:1px solid #0000;border-top-color:inherit;border-bottom:0;transform:translateY(50%);content:""}.ant-divider-horizontal.ant-divider-with-text-left:before{top:50%;width:5%}.ant-divider-horizontal.ant-divider-with-text-left:after,.ant-divider-horizontal.ant-divider-with-text-right:before{top:50%;width:95%}.ant-divider-horizontal.ant-divider-with-text-right:after{top:50%;width:5%}.ant-divider-inner-text{display:inline-block;padding:0 1em}.ant-divider-dashed{background:none;border:dashed #0000000f;border-width:1px 0 0}.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed{border-top:0}.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed:after,.ant-divider-horizontal.ant-divider-with-text.ant-divider-dashed:before{border-style:dashed none none}.ant-divider-vertical.ant-divider-dashed{border-width:0 0 0 1px}.ant-divider-plain.ant-divider-with-text{color:#000000d9;font-weight:400;font-size:14px}.ant-divider-rtl{direction:rtl}.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-left:before{width:95%}.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-left:after,.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-right:before{width:5%}.ant-divider-rtl.ant-divider-horizontal.ant-divider-with-text-right:after{width:95%}.ant-drawer{position:fixed;z-index:1000;width:0;height:100%;transition:transform .3s cubic-bezier(.7,.3,.1,1),height 0s ease .3s,width 0s ease .3s}.ant-drawer>*{transition:transform .3s cubic-bezier(.7,.3,.1,1),box-shadow .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer-content-wrapper{position:absolute;width:100%;height:100%}.ant-drawer .ant-drawer-content{width:100%;height:100%}.ant-drawer-left,.ant-drawer-right{top:0;width:0;height:100%}.ant-drawer-left .ant-drawer-content-wrapper,.ant-drawer-right .ant-drawer-content-wrapper{height:100%}.ant-drawer-left.ant-drawer-open,.ant-drawer-right.ant-drawer-open{width:100%;transition:transform .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer-left,.ant-drawer-left .ant-drawer-content-wrapper{left:0}.ant-drawer-left.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:6px 0 16px -8px #00000014,9px 0 28px 0 #0000000d,12px 0 48px 16px #00000008}.ant-drawer-right,.ant-drawer-right .ant-drawer-content-wrapper{right:0}.ant-drawer-right.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:-6px 0 16px -8px #00000014,-9px 0 28px 0 #0000000d,-12px 0 48px 16px #00000008}.ant-drawer-right.ant-drawer-open.no-mask{right:1px;transform:translateX(1px)}.ant-drawer-bottom,.ant-drawer-top{left:0;width:100%;height:0%}.ant-drawer-bottom .ant-drawer-content-wrapper,.ant-drawer-top .ant-drawer-content-wrapper{width:100%}.ant-drawer-bottom.ant-drawer-open,.ant-drawer-top.ant-drawer-open{height:100%;transition:transform .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer-top{top:0}.ant-drawer-top.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:0 6px 16px -8px #00000014,0 9px 28px 0 #0000000d,0 12px 48px 16px #00000008}.ant-drawer-bottom,.ant-drawer-bottom .ant-drawer-content-wrapper{bottom:0}.ant-drawer-bottom.ant-drawer-open .ant-drawer-content-wrapper{box-shadow:0 -6px 16px -8px #00000014,0 -9px 28px 0 #0000000d,0 -12px 48px 16px #00000008}.ant-drawer-bottom.ant-drawer-open.no-mask{bottom:1px;transform:translateY(1px)}.ant-drawer.ant-drawer-open .ant-drawer-mask{height:100%;opacity:1;transition:none;animation:antdDrawerFadeIn .3s cubic-bezier(.7,.3,.1,1);pointer-events:auto}.ant-drawer-title{margin:0;color:#000000d9;font-weight:500;font-size:16px;line-height:22px}.ant-drawer-content{position:relative;z-index:1;overflow:auto;background-color:#fff;background-clip:padding-box;border:0}.ant-drawer-close{position:absolute;top:0;right:0;z-index:10;display:block;padding:20px;color:#00000073;font-weight:700;font-size:16px;font-style:normal;line-height:1;text-align:center;text-transform:none;text-decoration:none;background:#0000;border:0;outline:0;cursor:pointer;transition:color .3s;text-rendering:auto}.ant-drawer-close:focus,.ant-drawer-close:hover{color:#000000bf;text-decoration:none}.ant-drawer-header-no-title .ant-drawer-close{margin-right:var(--scroll-bar);padding-right:calc(20px - var(--scroll-bar))}.ant-drawer-header{position:relative;padding:16px 24px;border-bottom:1px solid #f0f0f0;border-radius:2px 2px 0 0}.ant-drawer-header,.ant-drawer-header-no-title{color:#000000d9;background:#fff}.ant-drawer-wrapper-body{display:flex;flex-direction:column;flex-wrap:nowrap;width:100%;height:100%}.ant-drawer-body{flex-grow:1;padding:24px;overflow:auto;font-size:14px;line-height:1.5715;word-wrap:break-word}.ant-drawer-footer{flex-shrink:0;padding:10px 16px;border-top:1px solid #f0f0f0}.ant-drawer-mask{position:absolute;top:0;left:0;width:100%;height:0;background-color:#00000073;opacity:0;filter:alpha(opacity=45);transition:opacity .3s linear,height 0s ease .3s;pointer-events:none}.ant-drawer-open-content{box-shadow:0 3px 6px -4px #0000001f,0 6px 16px 0 #00000014,0 9px 28px 8px #0000000d}.ant-drawer .ant-picker-clear{background:#fff}@keyframes antdDrawerFadeIn{0%{opacity:0}to{opacity:1}}.ant-drawer-rtl{direction:rtl}.ant-drawer-rtl .ant-drawer-close{right:auto;left:0}.ant-dropdown-menu-item.ant-dropdown-menu-item-danger{color:#ff4d4f}.ant-dropdown-menu-item.ant-dropdown-menu-item-danger:hover{color:#fff;background-color:#ff4d4f}.ant-dropdown{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:absolute;top:-9999px;left:-9999px;z-index:1050;display:block}.ant-dropdown:before{position:absolute;top:-4px;right:0;bottom:-4px;left:-7px;z-index:-9999;opacity:.0001;content:" "}.ant-dropdown-wrap{position:relative}.ant-dropdown-wrap .ant-btn>.anticon-down{font-size:10px}.ant-dropdown-wrap .anticon-down:before{transition:transform .2s}.ant-dropdown-wrap-open .anticon-down:before{transform:rotate(180deg)}.ant-dropdown-hidden,.ant-dropdown-menu-hidden,.ant-dropdown-menu-submenu-hidden{display:none}.ant-dropdown-show-arrow.ant-dropdown-placement-topCenter,.ant-dropdown-show-arrow.ant-dropdown-placement-topLeft,.ant-dropdown-show-arrow.ant-dropdown-placement-topRight{padding-bottom:10px}.ant-dropdown-show-arrow.ant-dropdown-placement-bottomCenter,.ant-dropdown-show-arrow.ant-dropdown-placement-bottomLeft,.ant-dropdown-show-arrow.ant-dropdown-placement-bottomRight{padding-top:10px}.ant-dropdown-arrow{position:absolute;z-index:1;display:block;width:8.48528137px;height:8.48528137px;background:#0000;border-style:solid;border-width:4.24264069px;transform:rotate(45deg)}.ant-dropdown-placement-topCenter>.ant-dropdown-arrow,.ant-dropdown-placement-topLeft>.ant-dropdown-arrow,.ant-dropdown-placement-topRight>.ant-dropdown-arrow{bottom:6.2px;border-color:#0000 #fff #fff #0000;box-shadow:3px 3px 7px #00000012}.ant-dropdown-placement-topCenter>.ant-dropdown-arrow{left:50%;transform:translateX(-50%) rotate(45deg)}.ant-dropdown-placement-topLeft>.ant-dropdown-arrow{left:16px}.ant-dropdown-placement-topRight>.ant-dropdown-arrow{right:16px}.ant-dropdown-placement-bottomCenter>.ant-dropdown-arrow,.ant-dropdown-placement-bottomLeft>.ant-dropdown-arrow,.ant-dropdown-placement-bottomRight>.ant-dropdown-arrow{top:6px;border-color:#fff #0000 #0000 #fff;box-shadow:-2px -2px 5px #0000000f}.ant-dropdown-placement-bottomCenter>.ant-dropdown-arrow{left:50%;transform:translateX(-50%) rotate(45deg)}.ant-dropdown-placement-bottomLeft>.ant-dropdown-arrow{left:16px}.ant-dropdown-placement-bottomRight>.ant-dropdown-arrow{right:16px}.ant-dropdown-menu{position:relative;margin:0;padding:4px 0;text-align:left;list-style-type:none;background-color:#fff;background-clip:padding-box;border-radius:2px;outline:none;box-shadow:0 3px 6px -4px #0000001f,0 6px 16px 0 #00000014,0 9px 28px 8px #0000000d}.ant-dropdown-menu-item-group-title{padding:5px 12px;color:#00000073;transition:all .3s}.ant-dropdown-menu-submenu-popup{position:absolute;z-index:1050;background:#0000;box-shadow:none;transform-origin:0 0}.ant-dropdown-menu-submenu-popup li,.ant-dropdown-menu-submenu-popup ul{list-style:none}.ant-dropdown-menu-submenu-popup ul{margin-right:.3em;margin-left:.3em}.ant-dropdown-menu-item{position:relative;display:flex;align-items:center}.ant-dropdown-menu-item-icon{min-width:12px;margin-right:8px;font-size:12px}.ant-dropdown-menu-title-content{flex:auto}.ant-dropdown-menu-title-content>a{color:inherit;transition:all .3s}.ant-dropdown-menu-title-content>a:hover{color:inherit}.ant-dropdown-menu-title-content>a:after{position:absolute;top:0;right:0;bottom:0;left:0;content:""}.ant-dropdown-menu-item,.ant-dropdown-menu-submenu-title{clear:both;margin:0;padding:5px 12px;color:#000000d9;font-weight:400;font-size:14px;line-height:22px;white-space:nowrap;cursor:pointer;transition:all .3s}.ant-dropdown-menu-item-selected,.ant-dropdown-menu-submenu-title-selected{color:#1890ff;background-color:#e6f7ff}.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background-color:#f5f5f5}.ant-dropdown-menu-item-disabled,.ant-dropdown-menu-submenu-title-disabled{color:#00000040;cursor:not-allowed}.ant-dropdown-menu-item-disabled:hover,.ant-dropdown-menu-submenu-title-disabled:hover{color:#00000040;background-color:#fff;cursor:not-allowed}.ant-dropdown-menu-item-disabled a,.ant-dropdown-menu-submenu-title-disabled a{pointer-events:none}.ant-dropdown-menu-item-divider,.ant-dropdown-menu-submenu-title-divider{height:1px;margin:4px 0;overflow:hidden;line-height:0;background-color:#f0f0f0}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon{position:absolute;right:8px}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon{margin-right:0!important;color:#00000073;font-size:10px;font-style:normal}.ant-dropdown-menu-item-group-list{margin:0 8px;padding:0;list-style:none}.ant-dropdown-menu-submenu-title{padding-right:24px}.ant-dropdown-menu-submenu-vertical{position:relative}.ant-dropdown-menu-submenu-vertical>.ant-dropdown-menu{position:absolute;top:0;left:100%;min-width:100%;margin-left:4px;transform-origin:0 0}.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{color:#00000040;background-color:#fff;cursor:not-allowed}.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:#1890ff}.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomRight,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomRight{animation-name:antSlideUpIn}.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topCenter,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topRight,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topCenter,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topRight{animation-name:antSlideDownIn}.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomRight{animation-name:antSlideUpOut}.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topCenter,.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topRight{animation-name:antSlideDownOut}.ant-dropdown-button>.anticon.anticon-down,.ant-dropdown-link>.anticon.anticon-down,.ant-dropdown-trigger>.anticon.anticon-down{font-size:10px;vertical-align:initial}.ant-dropdown-button{white-space:nowrap}.ant-dropdown-button.ant-btn-group>.ant-btn:last-child:not(:first-child):not(.ant-btn-icon-only){padding-right:8px;padding-left:8px}.ant-dropdown-menu-dark,.ant-dropdown-menu-dark .ant-dropdown-menu{background:#001529}.ant-dropdown-menu-dark .ant-dropdown-menu-item,.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow:after{color:#ffffffa6}.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover{color:#fff;background:#0000}.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{color:#fff;background:#1890ff}.ant-dropdown-rtl{direction:rtl}.ant-dropdown-rtl.ant-dropdown:before{right:-7px;left:0}.ant-dropdown-menu.ant-dropdown-menu-rtl,.ant-dropdown-rtl .ant-dropdown-menu-item-group-title{direction:rtl;text-align:right}.ant-dropdown-menu-submenu-popup.ant-dropdown-menu-submenu-rtl{transform-origin:100% 0}.ant-dropdown-rtl .ant-dropdown-menu-item,.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup li,.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup ul,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title{text-align:right}.ant-dropdown-rtl .ant-dropdown-menu-item>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-item>span>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title>span>.anticon:first-child{margin-right:0;margin-left:8px}.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow{right:auto;left:8px}.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{margin-left:0!important;transform:scaleX(-1)}.ant-dropdown-rtl .ant-dropdown-menu-submenu-title{padding-right:12px;padding-left:24px}.ant-dropdown-rtl .ant-dropdown-menu-submenu-vertical>.ant-dropdown-menu{right:100%;left:0;margin-right:4px;margin-left:0}.ant-dropdown-menu>ul{list-style:inherit;margin:0;padding:0}.ant-dropdown{top:0;left:0;position:relative;width:100%;margin-top:6px;margin-bottom:6px}.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow{transform:rotate(180deg)}.ant-empty{margin:0 8px;font-size:14px;line-height:1.5715;text-align:center}.ant-empty-image{height:100px;margin-bottom:8px}.ant-empty-image img{height:100%}.ant-empty-image svg{height:100%;margin:auto}.ant-empty-footer{margin-top:16px}.ant-empty-normal{margin:32px 0;color:#00000040}.ant-empty-normal .ant-empty-image{height:40px}.ant-empty-small{margin:8px 0;color:#00000040}.ant-empty-small .ant-empty-image{height:35px}.ant-empty-img-default-ellipse{fill:#f5f5f5;fill-opacity:.8}.ant-empty-img-default-path-1{fill:#aeb8c2}.ant-empty-img-default-path-2{fill:url(#linearGradient-1)}.ant-empty-img-default-path-3{fill:#f5f5f7}.ant-empty-img-default-path-4,.ant-empty-img-default-path-5{fill:#dce0e6}.ant-empty-img-default-g{fill:#fff}.ant-empty-img-simple-ellipse{fill:#f5f5f5}.ant-empty-img-simple-g{stroke:#d9d9d9}.ant-empty-img-simple-path{fill:#fafafa}.ant-empty-rtl{direction:rtl}nz-empty{display:block}.ant-row{flex-flow:row wrap}.ant-row,.ant-row:after,.ant-row:before{display:flex}.ant-row-no-wrap{flex-wrap:nowrap}.ant-row-start{justify-content:flex-start}.ant-row-center{justify-content:center}.ant-row-end{justify-content:flex-end}.ant-row-space-between{justify-content:space-between}.ant-row-space-around{justify-content:space-around}.ant-row-top{align-items:flex-start}.ant-row-middle{align-items:center}.ant-row-bottom{align-items:flex-end}.ant-col{position:relative;max-width:100%;min-height:1px}.ant-col-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-push-24{left:100%}.ant-col-pull-24{right:100%}.ant-col-offset-24{margin-left:100%}.ant-col-order-24{order:24}.ant-col-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-push-23{left:95.83333333%}.ant-col-pull-23{right:95.83333333%}.ant-col-offset-23{margin-left:95.83333333%}.ant-col-order-23{order:23}.ant-col-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-push-22{left:91.66666667%}.ant-col-pull-22{right:91.66666667%}.ant-col-offset-22{margin-left:91.66666667%}.ant-col-order-22{order:22}.ant-col-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-push-21{left:87.5%}.ant-col-pull-21{right:87.5%}.ant-col-offset-21{margin-left:87.5%}.ant-col-order-21{order:21}.ant-col-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-push-20{left:83.33333333%}.ant-col-pull-20{right:83.33333333%}.ant-col-offset-20{margin-left:83.33333333%}.ant-col-order-20{order:20}.ant-col-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-push-19{left:79.16666667%}.ant-col-pull-19{right:79.16666667%}.ant-col-offset-19{margin-left:79.16666667%}.ant-col-order-19{order:19}.ant-col-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-push-18{left:75%}.ant-col-pull-18{right:75%}.ant-col-offset-18{margin-left:75%}.ant-col-order-18{order:18}.ant-col-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-push-17{left:70.83333333%}.ant-col-pull-17{right:70.83333333%}.ant-col-offset-17{margin-left:70.83333333%}.ant-col-order-17{order:17}.ant-col-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-push-16{left:66.66666667%}.ant-col-pull-16{right:66.66666667%}.ant-col-offset-16{margin-left:66.66666667%}.ant-col-order-16{order:16}.ant-col-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-push-15{left:62.5%}.ant-col-pull-15{right:62.5%}.ant-col-offset-15{margin-left:62.5%}.ant-col-order-15{order:15}.ant-col-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-push-14{left:58.33333333%}.ant-col-pull-14{right:58.33333333%}.ant-col-offset-14{margin-left:58.33333333%}.ant-col-order-14{order:14}.ant-col-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-push-13{left:54.16666667%}.ant-col-pull-13{right:54.16666667%}.ant-col-offset-13{margin-left:54.16666667%}.ant-col-order-13{order:13}.ant-col-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-push-12{left:50%}.ant-col-pull-12{right:50%}.ant-col-offset-12{margin-left:50%}.ant-col-order-12{order:12}.ant-col-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-push-11{left:45.83333333%}.ant-col-pull-11{right:45.83333333%}.ant-col-offset-11{margin-left:45.83333333%}.ant-col-order-11{order:11}.ant-col-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-push-10{left:41.66666667%}.ant-col-pull-10{right:41.66666667%}.ant-col-offset-10{margin-left:41.66666667%}.ant-col-order-10{order:10}.ant-col-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-push-9{left:37.5%}.ant-col-pull-9{right:37.5%}.ant-col-offset-9{margin-left:37.5%}.ant-col-order-9{order:9}.ant-col-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-push-8{left:33.33333333%}.ant-col-pull-8{right:33.33333333%}.ant-col-offset-8{margin-left:33.33333333%}.ant-col-order-8{order:8}.ant-col-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-push-7{left:29.16666667%}.ant-col-pull-7{right:29.16666667%}.ant-col-offset-7{margin-left:29.16666667%}.ant-col-order-7{order:7}.ant-col-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-push-6{left:25%}.ant-col-pull-6{right:25%}.ant-col-offset-6{margin-left:25%}.ant-col-order-6{order:6}.ant-col-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-push-5{left:20.83333333%}.ant-col-pull-5{right:20.83333333%}.ant-col-offset-5{margin-left:20.83333333%}.ant-col-order-5{order:5}.ant-col-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-push-4{left:16.66666667%}.ant-col-pull-4{right:16.66666667%}.ant-col-offset-4{margin-left:16.66666667%}.ant-col-order-4{order:4}.ant-col-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-push-3{left:12.5%}.ant-col-pull-3{right:12.5%}.ant-col-offset-3{margin-left:12.5%}.ant-col-order-3{order:3}.ant-col-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-push-2{left:8.33333333%}.ant-col-pull-2{right:8.33333333%}.ant-col-offset-2{margin-left:8.33333333%}.ant-col-order-2{order:2}.ant-col-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-push-1{left:4.16666667%}.ant-col-pull-1{right:4.16666667%}.ant-col-offset-1{margin-left:4.16666667%}.ant-col-order-1{order:1}.ant-col-0{display:none}.ant-col-offset-0{margin-left:0}.ant-col-order-0{order:0}.ant-col-offset-0.ant-col-rtl{margin-right:0}.ant-col-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}.ant-col-xs-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-xs-push-24{left:100%}.ant-col-xs-pull-24{right:100%}.ant-col-xs-offset-24{margin-left:100%}.ant-col-xs-order-24{order:24}.ant-col-xs-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-xs-push-23{left:95.83333333%}.ant-col-xs-pull-23{right:95.83333333%}.ant-col-xs-offset-23{margin-left:95.83333333%}.ant-col-xs-order-23{order:23}.ant-col-xs-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-xs-push-22{left:91.66666667%}.ant-col-xs-pull-22{right:91.66666667%}.ant-col-xs-offset-22{margin-left:91.66666667%}.ant-col-xs-order-22{order:22}.ant-col-xs-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-xs-push-21{left:87.5%}.ant-col-xs-pull-21{right:87.5%}.ant-col-xs-offset-21{margin-left:87.5%}.ant-col-xs-order-21{order:21}.ant-col-xs-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-xs-push-20{left:83.33333333%}.ant-col-xs-pull-20{right:83.33333333%}.ant-col-xs-offset-20{margin-left:83.33333333%}.ant-col-xs-order-20{order:20}.ant-col-xs-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-xs-push-19{left:79.16666667%}.ant-col-xs-pull-19{right:79.16666667%}.ant-col-xs-offset-19{margin-left:79.16666667%}.ant-col-xs-order-19{order:19}.ant-col-xs-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-xs-push-18{left:75%}.ant-col-xs-pull-18{right:75%}.ant-col-xs-offset-18{margin-left:75%}.ant-col-xs-order-18{order:18}.ant-col-xs-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-xs-push-17{left:70.83333333%}.ant-col-xs-pull-17{right:70.83333333%}.ant-col-xs-offset-17{margin-left:70.83333333%}.ant-col-xs-order-17{order:17}.ant-col-xs-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-xs-push-16{left:66.66666667%}.ant-col-xs-pull-16{right:66.66666667%}.ant-col-xs-offset-16{margin-left:66.66666667%}.ant-col-xs-order-16{order:16}.ant-col-xs-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-xs-push-15{left:62.5%}.ant-col-xs-pull-15{right:62.5%}.ant-col-xs-offset-15{margin-left:62.5%}.ant-col-xs-order-15{order:15}.ant-col-xs-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-xs-push-14{left:58.33333333%}.ant-col-xs-pull-14{right:58.33333333%}.ant-col-xs-offset-14{margin-left:58.33333333%}.ant-col-xs-order-14{order:14}.ant-col-xs-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-xs-push-13{left:54.16666667%}.ant-col-xs-pull-13{right:54.16666667%}.ant-col-xs-offset-13{margin-left:54.16666667%}.ant-col-xs-order-13{order:13}.ant-col-xs-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-xs-push-12{left:50%}.ant-col-xs-pull-12{right:50%}.ant-col-xs-offset-12{margin-left:50%}.ant-col-xs-order-12{order:12}.ant-col-xs-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-xs-push-11{left:45.83333333%}.ant-col-xs-pull-11{right:45.83333333%}.ant-col-xs-offset-11{margin-left:45.83333333%}.ant-col-xs-order-11{order:11}.ant-col-xs-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-xs-push-10{left:41.66666667%}.ant-col-xs-pull-10{right:41.66666667%}.ant-col-xs-offset-10{margin-left:41.66666667%}.ant-col-xs-order-10{order:10}.ant-col-xs-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-xs-push-9{left:37.5%}.ant-col-xs-pull-9{right:37.5%}.ant-col-xs-offset-9{margin-left:37.5%}.ant-col-xs-order-9{order:9}.ant-col-xs-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-xs-push-8{left:33.33333333%}.ant-col-xs-pull-8{right:33.33333333%}.ant-col-xs-offset-8{margin-left:33.33333333%}.ant-col-xs-order-8{order:8}.ant-col-xs-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-xs-push-7{left:29.16666667%}.ant-col-xs-pull-7{right:29.16666667%}.ant-col-xs-offset-7{margin-left:29.16666667%}.ant-col-xs-order-7{order:7}.ant-col-xs-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-xs-push-6{left:25%}.ant-col-xs-pull-6{right:25%}.ant-col-xs-offset-6{margin-left:25%}.ant-col-xs-order-6{order:6}.ant-col-xs-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-xs-push-5{left:20.83333333%}.ant-col-xs-pull-5{right:20.83333333%}.ant-col-xs-offset-5{margin-left:20.83333333%}.ant-col-xs-order-5{order:5}.ant-col-xs-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-xs-push-4{left:16.66666667%}.ant-col-xs-pull-4{right:16.66666667%}.ant-col-xs-offset-4{margin-left:16.66666667%}.ant-col-xs-order-4{order:4}.ant-col-xs-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-xs-push-3{left:12.5%}.ant-col-xs-pull-3{right:12.5%}.ant-col-xs-offset-3{margin-left:12.5%}.ant-col-xs-order-3{order:3}.ant-col-xs-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-xs-push-2{left:8.33333333%}.ant-col-xs-pull-2{right:8.33333333%}.ant-col-xs-offset-2{margin-left:8.33333333%}.ant-col-xs-order-2{order:2}.ant-col-xs-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xs-push-1{left:4.16666667%}.ant-col-xs-pull-1{right:4.16666667%}.ant-col-xs-offset-1{margin-left:4.16666667%}.ant-col-xs-order-1{order:1}.ant-col-xs-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xs-push-0{left:auto}.ant-col-xs-pull-0{right:auto}.ant-col-xs-offset-0{margin-left:0}.ant-col-xs-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-xs-push-0.ant-col-rtl{right:auto}.ant-col-xs-pull-0.ant-col-rtl{left:auto}.ant-col-xs-offset-0.ant-col-rtl{margin-right:0}.ant-col-xs-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-xs-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-xs-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-xs-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-xs-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-xs-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-xs-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-xs-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-xs-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-xs-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-xs-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-xs-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-xs-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-xs-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-xs-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-xs-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-xs-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-xs-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-xs-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-xs-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-xs-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-xs-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-xs-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-xs-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-xs-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-xs-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-xs-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-xs-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-xs-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-xs-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-xs-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-xs-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-xs-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-xs-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-xs-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-xs-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-xs-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-xs-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-xs-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-xs-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-xs-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-xs-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-xs-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-xs-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-xs-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-xs-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-xs-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-xs-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-xs-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-xs-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-xs-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-xs-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-xs-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-xs-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-xs-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-xs-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-xs-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-xs-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-xs-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-xs-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-xs-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-xs-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-xs-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-xs-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-xs-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-xs-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-xs-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-xs-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-xs-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-xs-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-xs-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-xs-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}@media (min-width: 576px){.ant-col-sm-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-sm-push-24{left:100%}.ant-col-sm-pull-24{right:100%}.ant-col-sm-offset-24{margin-left:100%}.ant-col-sm-order-24{order:24}.ant-col-sm-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-sm-push-23{left:95.83333333%}.ant-col-sm-pull-23{right:95.83333333%}.ant-col-sm-offset-23{margin-left:95.83333333%}.ant-col-sm-order-23{order:23}.ant-col-sm-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-sm-push-22{left:91.66666667%}.ant-col-sm-pull-22{right:91.66666667%}.ant-col-sm-offset-22{margin-left:91.66666667%}.ant-col-sm-order-22{order:22}.ant-col-sm-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-sm-push-21{left:87.5%}.ant-col-sm-pull-21{right:87.5%}.ant-col-sm-offset-21{margin-left:87.5%}.ant-col-sm-order-21{order:21}.ant-col-sm-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-sm-push-20{left:83.33333333%}.ant-col-sm-pull-20{right:83.33333333%}.ant-col-sm-offset-20{margin-left:83.33333333%}.ant-col-sm-order-20{order:20}.ant-col-sm-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-sm-push-19{left:79.16666667%}.ant-col-sm-pull-19{right:79.16666667%}.ant-col-sm-offset-19{margin-left:79.16666667%}.ant-col-sm-order-19{order:19}.ant-col-sm-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-sm-push-18{left:75%}.ant-col-sm-pull-18{right:75%}.ant-col-sm-offset-18{margin-left:75%}.ant-col-sm-order-18{order:18}.ant-col-sm-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-sm-push-17{left:70.83333333%}.ant-col-sm-pull-17{right:70.83333333%}.ant-col-sm-offset-17{margin-left:70.83333333%}.ant-col-sm-order-17{order:17}.ant-col-sm-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-sm-push-16{left:66.66666667%}.ant-col-sm-pull-16{right:66.66666667%}.ant-col-sm-offset-16{margin-left:66.66666667%}.ant-col-sm-order-16{order:16}.ant-col-sm-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-sm-push-15{left:62.5%}.ant-col-sm-pull-15{right:62.5%}.ant-col-sm-offset-15{margin-left:62.5%}.ant-col-sm-order-15{order:15}.ant-col-sm-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-sm-push-14{left:58.33333333%}.ant-col-sm-pull-14{right:58.33333333%}.ant-col-sm-offset-14{margin-left:58.33333333%}.ant-col-sm-order-14{order:14}.ant-col-sm-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-sm-push-13{left:54.16666667%}.ant-col-sm-pull-13{right:54.16666667%}.ant-col-sm-offset-13{margin-left:54.16666667%}.ant-col-sm-order-13{order:13}.ant-col-sm-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-sm-push-12{left:50%}.ant-col-sm-pull-12{right:50%}.ant-col-sm-offset-12{margin-left:50%}.ant-col-sm-order-12{order:12}.ant-col-sm-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-sm-push-11{left:45.83333333%}.ant-col-sm-pull-11{right:45.83333333%}.ant-col-sm-offset-11{margin-left:45.83333333%}.ant-col-sm-order-11{order:11}.ant-col-sm-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-sm-push-10{left:41.66666667%}.ant-col-sm-pull-10{right:41.66666667%}.ant-col-sm-offset-10{margin-left:41.66666667%}.ant-col-sm-order-10{order:10}.ant-col-sm-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-sm-push-9{left:37.5%}.ant-col-sm-pull-9{right:37.5%}.ant-col-sm-offset-9{margin-left:37.5%}.ant-col-sm-order-9{order:9}.ant-col-sm-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-sm-push-8{left:33.33333333%}.ant-col-sm-pull-8{right:33.33333333%}.ant-col-sm-offset-8{margin-left:33.33333333%}.ant-col-sm-order-8{order:8}.ant-col-sm-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-sm-push-7{left:29.16666667%}.ant-col-sm-pull-7{right:29.16666667%}.ant-col-sm-offset-7{margin-left:29.16666667%}.ant-col-sm-order-7{order:7}.ant-col-sm-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-sm-push-6{left:25%}.ant-col-sm-pull-6{right:25%}.ant-col-sm-offset-6{margin-left:25%}.ant-col-sm-order-6{order:6}.ant-col-sm-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-sm-push-5{left:20.83333333%}.ant-col-sm-pull-5{right:20.83333333%}.ant-col-sm-offset-5{margin-left:20.83333333%}.ant-col-sm-order-5{order:5}.ant-col-sm-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-sm-push-4{left:16.66666667%}.ant-col-sm-pull-4{right:16.66666667%}.ant-col-sm-offset-4{margin-left:16.66666667%}.ant-col-sm-order-4{order:4}.ant-col-sm-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-sm-push-3{left:12.5%}.ant-col-sm-pull-3{right:12.5%}.ant-col-sm-offset-3{margin-left:12.5%}.ant-col-sm-order-3{order:3}.ant-col-sm-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-sm-push-2{left:8.33333333%}.ant-col-sm-pull-2{right:8.33333333%}.ant-col-sm-offset-2{margin-left:8.33333333%}.ant-col-sm-order-2{order:2}.ant-col-sm-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-sm-push-1{left:4.16666667%}.ant-col-sm-pull-1{right:4.16666667%}.ant-col-sm-offset-1{margin-left:4.16666667%}.ant-col-sm-order-1{order:1}.ant-col-sm-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-sm-push-0{left:auto}.ant-col-sm-pull-0{right:auto}.ant-col-sm-offset-0{margin-left:0}.ant-col-sm-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-sm-push-0.ant-col-rtl{right:auto}.ant-col-sm-pull-0.ant-col-rtl{left:auto}.ant-col-sm-offset-0.ant-col-rtl{margin-right:0}.ant-col-sm-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-sm-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-sm-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-sm-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-sm-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-sm-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-sm-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-sm-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-sm-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-sm-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-sm-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-sm-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-sm-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-sm-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-sm-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-sm-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-sm-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-sm-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-sm-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-sm-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-sm-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-sm-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-sm-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-sm-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-sm-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-sm-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-sm-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-sm-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-sm-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-sm-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-sm-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-sm-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-sm-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-sm-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-sm-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-sm-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-sm-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-sm-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-sm-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-sm-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-sm-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-sm-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-sm-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-sm-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-sm-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-sm-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-sm-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-sm-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-sm-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-sm-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-sm-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-sm-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-sm-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-sm-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-sm-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-sm-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-sm-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-sm-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-sm-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-sm-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-sm-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-sm-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-sm-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-sm-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-sm-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-sm-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-sm-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-sm-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-sm-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-sm-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-sm-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-sm-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}}@media (min-width: 768px){.ant-col-md-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-md-push-24{left:100%}.ant-col-md-pull-24{right:100%}.ant-col-md-offset-24{margin-left:100%}.ant-col-md-order-24{order:24}.ant-col-md-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-md-push-23{left:95.83333333%}.ant-col-md-pull-23{right:95.83333333%}.ant-col-md-offset-23{margin-left:95.83333333%}.ant-col-md-order-23{order:23}.ant-col-md-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-md-push-22{left:91.66666667%}.ant-col-md-pull-22{right:91.66666667%}.ant-col-md-offset-22{margin-left:91.66666667%}.ant-col-md-order-22{order:22}.ant-col-md-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-md-push-21{left:87.5%}.ant-col-md-pull-21{right:87.5%}.ant-col-md-offset-21{margin-left:87.5%}.ant-col-md-order-21{order:21}.ant-col-md-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-md-push-20{left:83.33333333%}.ant-col-md-pull-20{right:83.33333333%}.ant-col-md-offset-20{margin-left:83.33333333%}.ant-col-md-order-20{order:20}.ant-col-md-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-md-push-19{left:79.16666667%}.ant-col-md-pull-19{right:79.16666667%}.ant-col-md-offset-19{margin-left:79.16666667%}.ant-col-md-order-19{order:19}.ant-col-md-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-md-push-18{left:75%}.ant-col-md-pull-18{right:75%}.ant-col-md-offset-18{margin-left:75%}.ant-col-md-order-18{order:18}.ant-col-md-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-md-push-17{left:70.83333333%}.ant-col-md-pull-17{right:70.83333333%}.ant-col-md-offset-17{margin-left:70.83333333%}.ant-col-md-order-17{order:17}.ant-col-md-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-md-push-16{left:66.66666667%}.ant-col-md-pull-16{right:66.66666667%}.ant-col-md-offset-16{margin-left:66.66666667%}.ant-col-md-order-16{order:16}.ant-col-md-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-md-push-15{left:62.5%}.ant-col-md-pull-15{right:62.5%}.ant-col-md-offset-15{margin-left:62.5%}.ant-col-md-order-15{order:15}.ant-col-md-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-md-push-14{left:58.33333333%}.ant-col-md-pull-14{right:58.33333333%}.ant-col-md-offset-14{margin-left:58.33333333%}.ant-col-md-order-14{order:14}.ant-col-md-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-md-push-13{left:54.16666667%}.ant-col-md-pull-13{right:54.16666667%}.ant-col-md-offset-13{margin-left:54.16666667%}.ant-col-md-order-13{order:13}.ant-col-md-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-md-push-12{left:50%}.ant-col-md-pull-12{right:50%}.ant-col-md-offset-12{margin-left:50%}.ant-col-md-order-12{order:12}.ant-col-md-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-md-push-11{left:45.83333333%}.ant-col-md-pull-11{right:45.83333333%}.ant-col-md-offset-11{margin-left:45.83333333%}.ant-col-md-order-11{order:11}.ant-col-md-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-md-push-10{left:41.66666667%}.ant-col-md-pull-10{right:41.66666667%}.ant-col-md-offset-10{margin-left:41.66666667%}.ant-col-md-order-10{order:10}.ant-col-md-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-md-push-9{left:37.5%}.ant-col-md-pull-9{right:37.5%}.ant-col-md-offset-9{margin-left:37.5%}.ant-col-md-order-9{order:9}.ant-col-md-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-md-push-8{left:33.33333333%}.ant-col-md-pull-8{right:33.33333333%}.ant-col-md-offset-8{margin-left:33.33333333%}.ant-col-md-order-8{order:8}.ant-col-md-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-md-push-7{left:29.16666667%}.ant-col-md-pull-7{right:29.16666667%}.ant-col-md-offset-7{margin-left:29.16666667%}.ant-col-md-order-7{order:7}.ant-col-md-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-md-push-6{left:25%}.ant-col-md-pull-6{right:25%}.ant-col-md-offset-6{margin-left:25%}.ant-col-md-order-6{order:6}.ant-col-md-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-md-push-5{left:20.83333333%}.ant-col-md-pull-5{right:20.83333333%}.ant-col-md-offset-5{margin-left:20.83333333%}.ant-col-md-order-5{order:5}.ant-col-md-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-md-push-4{left:16.66666667%}.ant-col-md-pull-4{right:16.66666667%}.ant-col-md-offset-4{margin-left:16.66666667%}.ant-col-md-order-4{order:4}.ant-col-md-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-md-push-3{left:12.5%}.ant-col-md-pull-3{right:12.5%}.ant-col-md-offset-3{margin-left:12.5%}.ant-col-md-order-3{order:3}.ant-col-md-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-md-push-2{left:8.33333333%}.ant-col-md-pull-2{right:8.33333333%}.ant-col-md-offset-2{margin-left:8.33333333%}.ant-col-md-order-2{order:2}.ant-col-md-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-md-push-1{left:4.16666667%}.ant-col-md-pull-1{right:4.16666667%}.ant-col-md-offset-1{margin-left:4.16666667%}.ant-col-md-order-1{order:1}.ant-col-md-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-md-push-0{left:auto}.ant-col-md-pull-0{right:auto}.ant-col-md-offset-0{margin-left:0}.ant-col-md-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-md-push-0.ant-col-rtl{right:auto}.ant-col-md-pull-0.ant-col-rtl{left:auto}.ant-col-md-offset-0.ant-col-rtl{margin-right:0}.ant-col-md-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-md-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-md-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-md-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-md-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-md-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-md-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-md-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-md-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-md-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-md-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-md-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-md-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-md-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-md-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-md-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-md-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-md-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-md-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-md-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-md-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-md-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-md-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-md-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-md-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-md-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-md-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-md-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-md-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-md-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-md-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-md-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-md-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-md-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-md-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-md-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-md-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-md-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-md-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-md-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-md-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-md-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-md-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-md-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-md-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-md-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-md-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-md-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-md-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-md-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-md-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-md-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-md-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-md-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-md-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-md-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-md-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-md-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-md-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-md-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-md-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-md-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-md-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-md-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-md-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-md-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-md-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-md-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-md-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-md-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-md-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-md-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}}@media (min-width: 992px){.ant-col-lg-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-lg-push-24{left:100%}.ant-col-lg-pull-24{right:100%}.ant-col-lg-offset-24{margin-left:100%}.ant-col-lg-order-24{order:24}.ant-col-lg-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-lg-push-23{left:95.83333333%}.ant-col-lg-pull-23{right:95.83333333%}.ant-col-lg-offset-23{margin-left:95.83333333%}.ant-col-lg-order-23{order:23}.ant-col-lg-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-lg-push-22{left:91.66666667%}.ant-col-lg-pull-22{right:91.66666667%}.ant-col-lg-offset-22{margin-left:91.66666667%}.ant-col-lg-order-22{order:22}.ant-col-lg-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-lg-push-21{left:87.5%}.ant-col-lg-pull-21{right:87.5%}.ant-col-lg-offset-21{margin-left:87.5%}.ant-col-lg-order-21{order:21}.ant-col-lg-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-lg-push-20{left:83.33333333%}.ant-col-lg-pull-20{right:83.33333333%}.ant-col-lg-offset-20{margin-left:83.33333333%}.ant-col-lg-order-20{order:20}.ant-col-lg-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-lg-push-19{left:79.16666667%}.ant-col-lg-pull-19{right:79.16666667%}.ant-col-lg-offset-19{margin-left:79.16666667%}.ant-col-lg-order-19{order:19}.ant-col-lg-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-lg-push-18{left:75%}.ant-col-lg-pull-18{right:75%}.ant-col-lg-offset-18{margin-left:75%}.ant-col-lg-order-18{order:18}.ant-col-lg-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-lg-push-17{left:70.83333333%}.ant-col-lg-pull-17{right:70.83333333%}.ant-col-lg-offset-17{margin-left:70.83333333%}.ant-col-lg-order-17{order:17}.ant-col-lg-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-lg-push-16{left:66.66666667%}.ant-col-lg-pull-16{right:66.66666667%}.ant-col-lg-offset-16{margin-left:66.66666667%}.ant-col-lg-order-16{order:16}.ant-col-lg-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-lg-push-15{left:62.5%}.ant-col-lg-pull-15{right:62.5%}.ant-col-lg-offset-15{margin-left:62.5%}.ant-col-lg-order-15{order:15}.ant-col-lg-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-lg-push-14{left:58.33333333%}.ant-col-lg-pull-14{right:58.33333333%}.ant-col-lg-offset-14{margin-left:58.33333333%}.ant-col-lg-order-14{order:14}.ant-col-lg-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-lg-push-13{left:54.16666667%}.ant-col-lg-pull-13{right:54.16666667%}.ant-col-lg-offset-13{margin-left:54.16666667%}.ant-col-lg-order-13{order:13}.ant-col-lg-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-lg-push-12{left:50%}.ant-col-lg-pull-12{right:50%}.ant-col-lg-offset-12{margin-left:50%}.ant-col-lg-order-12{order:12}.ant-col-lg-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-lg-push-11{left:45.83333333%}.ant-col-lg-pull-11{right:45.83333333%}.ant-col-lg-offset-11{margin-left:45.83333333%}.ant-col-lg-order-11{order:11}.ant-col-lg-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-lg-push-10{left:41.66666667%}.ant-col-lg-pull-10{right:41.66666667%}.ant-col-lg-offset-10{margin-left:41.66666667%}.ant-col-lg-order-10{order:10}.ant-col-lg-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-lg-push-9{left:37.5%}.ant-col-lg-pull-9{right:37.5%}.ant-col-lg-offset-9{margin-left:37.5%}.ant-col-lg-order-9{order:9}.ant-col-lg-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-lg-push-8{left:33.33333333%}.ant-col-lg-pull-8{right:33.33333333%}.ant-col-lg-offset-8{margin-left:33.33333333%}.ant-col-lg-order-8{order:8}.ant-col-lg-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-lg-push-7{left:29.16666667%}.ant-col-lg-pull-7{right:29.16666667%}.ant-col-lg-offset-7{margin-left:29.16666667%}.ant-col-lg-order-7{order:7}.ant-col-lg-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-lg-push-6{left:25%}.ant-col-lg-pull-6{right:25%}.ant-col-lg-offset-6{margin-left:25%}.ant-col-lg-order-6{order:6}.ant-col-lg-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-lg-push-5{left:20.83333333%}.ant-col-lg-pull-5{right:20.83333333%}.ant-col-lg-offset-5{margin-left:20.83333333%}.ant-col-lg-order-5{order:5}.ant-col-lg-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-lg-push-4{left:16.66666667%}.ant-col-lg-pull-4{right:16.66666667%}.ant-col-lg-offset-4{margin-left:16.66666667%}.ant-col-lg-order-4{order:4}.ant-col-lg-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-lg-push-3{left:12.5%}.ant-col-lg-pull-3{right:12.5%}.ant-col-lg-offset-3{margin-left:12.5%}.ant-col-lg-order-3{order:3}.ant-col-lg-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-lg-push-2{left:8.33333333%}.ant-col-lg-pull-2{right:8.33333333%}.ant-col-lg-offset-2{margin-left:8.33333333%}.ant-col-lg-order-2{order:2}.ant-col-lg-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-lg-push-1{left:4.16666667%}.ant-col-lg-pull-1{right:4.16666667%}.ant-col-lg-offset-1{margin-left:4.16666667%}.ant-col-lg-order-1{order:1}.ant-col-lg-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-lg-push-0{left:auto}.ant-col-lg-pull-0{right:auto}.ant-col-lg-offset-0{margin-left:0}.ant-col-lg-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-lg-push-0.ant-col-rtl{right:auto}.ant-col-lg-pull-0.ant-col-rtl{left:auto}.ant-col-lg-offset-0.ant-col-rtl{margin-right:0}.ant-col-lg-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-lg-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-lg-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-lg-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-lg-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-lg-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-lg-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-lg-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-lg-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-lg-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-lg-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-lg-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-lg-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-lg-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-lg-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-lg-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-lg-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-lg-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-lg-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-lg-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-lg-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-lg-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-lg-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-lg-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-lg-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-lg-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-lg-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-lg-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-lg-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-lg-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-lg-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-lg-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-lg-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-lg-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-lg-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-lg-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-lg-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-lg-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-lg-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-lg-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-lg-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-lg-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-lg-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-lg-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-lg-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-lg-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-lg-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-lg-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-lg-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-lg-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-lg-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-lg-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-lg-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-lg-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-lg-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-lg-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-lg-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-lg-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-lg-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-lg-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-lg-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-lg-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-lg-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-lg-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-lg-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-lg-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-lg-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-lg-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-lg-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-lg-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-lg-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-lg-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}}@media (min-width: 1200px){.ant-col-xl-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-xl-push-24{left:100%}.ant-col-xl-pull-24{right:100%}.ant-col-xl-offset-24{margin-left:100%}.ant-col-xl-order-24{order:24}.ant-col-xl-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-xl-push-23{left:95.83333333%}.ant-col-xl-pull-23{right:95.83333333%}.ant-col-xl-offset-23{margin-left:95.83333333%}.ant-col-xl-order-23{order:23}.ant-col-xl-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-xl-push-22{left:91.66666667%}.ant-col-xl-pull-22{right:91.66666667%}.ant-col-xl-offset-22{margin-left:91.66666667%}.ant-col-xl-order-22{order:22}.ant-col-xl-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-xl-push-21{left:87.5%}.ant-col-xl-pull-21{right:87.5%}.ant-col-xl-offset-21{margin-left:87.5%}.ant-col-xl-order-21{order:21}.ant-col-xl-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-xl-push-20{left:83.33333333%}.ant-col-xl-pull-20{right:83.33333333%}.ant-col-xl-offset-20{margin-left:83.33333333%}.ant-col-xl-order-20{order:20}.ant-col-xl-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-xl-push-19{left:79.16666667%}.ant-col-xl-pull-19{right:79.16666667%}.ant-col-xl-offset-19{margin-left:79.16666667%}.ant-col-xl-order-19{order:19}.ant-col-xl-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-xl-push-18{left:75%}.ant-col-xl-pull-18{right:75%}.ant-col-xl-offset-18{margin-left:75%}.ant-col-xl-order-18{order:18}.ant-col-xl-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-xl-push-17{left:70.83333333%}.ant-col-xl-pull-17{right:70.83333333%}.ant-col-xl-offset-17{margin-left:70.83333333%}.ant-col-xl-order-17{order:17}.ant-col-xl-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-xl-push-16{left:66.66666667%}.ant-col-xl-pull-16{right:66.66666667%}.ant-col-xl-offset-16{margin-left:66.66666667%}.ant-col-xl-order-16{order:16}.ant-col-xl-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-xl-push-15{left:62.5%}.ant-col-xl-pull-15{right:62.5%}.ant-col-xl-offset-15{margin-left:62.5%}.ant-col-xl-order-15{order:15}.ant-col-xl-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-xl-push-14{left:58.33333333%}.ant-col-xl-pull-14{right:58.33333333%}.ant-col-xl-offset-14{margin-left:58.33333333%}.ant-col-xl-order-14{order:14}.ant-col-xl-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-xl-push-13{left:54.16666667%}.ant-col-xl-pull-13{right:54.16666667%}.ant-col-xl-offset-13{margin-left:54.16666667%}.ant-col-xl-order-13{order:13}.ant-col-xl-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-xl-push-12{left:50%}.ant-col-xl-pull-12{right:50%}.ant-col-xl-offset-12{margin-left:50%}.ant-col-xl-order-12{order:12}.ant-col-xl-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-xl-push-11{left:45.83333333%}.ant-col-xl-pull-11{right:45.83333333%}.ant-col-xl-offset-11{margin-left:45.83333333%}.ant-col-xl-order-11{order:11}.ant-col-xl-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-xl-push-10{left:41.66666667%}.ant-col-xl-pull-10{right:41.66666667%}.ant-col-xl-offset-10{margin-left:41.66666667%}.ant-col-xl-order-10{order:10}.ant-col-xl-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-xl-push-9{left:37.5%}.ant-col-xl-pull-9{right:37.5%}.ant-col-xl-offset-9{margin-left:37.5%}.ant-col-xl-order-9{order:9}.ant-col-xl-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-xl-push-8{left:33.33333333%}.ant-col-xl-pull-8{right:33.33333333%}.ant-col-xl-offset-8{margin-left:33.33333333%}.ant-col-xl-order-8{order:8}.ant-col-xl-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-xl-push-7{left:29.16666667%}.ant-col-xl-pull-7{right:29.16666667%}.ant-col-xl-offset-7{margin-left:29.16666667%}.ant-col-xl-order-7{order:7}.ant-col-xl-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-xl-push-6{left:25%}.ant-col-xl-pull-6{right:25%}.ant-col-xl-offset-6{margin-left:25%}.ant-col-xl-order-6{order:6}.ant-col-xl-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-xl-push-5{left:20.83333333%}.ant-col-xl-pull-5{right:20.83333333%}.ant-col-xl-offset-5{margin-left:20.83333333%}.ant-col-xl-order-5{order:5}.ant-col-xl-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-xl-push-4{left:16.66666667%}.ant-col-xl-pull-4{right:16.66666667%}.ant-col-xl-offset-4{margin-left:16.66666667%}.ant-col-xl-order-4{order:4}.ant-col-xl-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-xl-push-3{left:12.5%}.ant-col-xl-pull-3{right:12.5%}.ant-col-xl-offset-3{margin-left:12.5%}.ant-col-xl-order-3{order:3}.ant-col-xl-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-xl-push-2{left:8.33333333%}.ant-col-xl-pull-2{right:8.33333333%}.ant-col-xl-offset-2{margin-left:8.33333333%}.ant-col-xl-order-2{order:2}.ant-col-xl-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xl-push-1{left:4.16666667%}.ant-col-xl-pull-1{right:4.16666667%}.ant-col-xl-offset-1{margin-left:4.16666667%}.ant-col-xl-order-1{order:1}.ant-col-xl-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xl-push-0{left:auto}.ant-col-xl-pull-0{right:auto}.ant-col-xl-offset-0{margin-left:0}.ant-col-xl-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-xl-push-0.ant-col-rtl{right:auto}.ant-col-xl-pull-0.ant-col-rtl{left:auto}.ant-col-xl-offset-0.ant-col-rtl{margin-right:0}.ant-col-xl-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-xl-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-xl-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-xl-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-xl-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-xl-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-xl-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-xl-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-xl-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-xl-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-xl-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-xl-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-xl-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-xl-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-xl-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-xl-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-xl-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-xl-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-xl-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-xl-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-xl-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-xl-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-xl-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-xl-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-xl-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-xl-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-xl-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-xl-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-xl-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-xl-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-xl-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-xl-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-xl-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-xl-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-xl-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-xl-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-xl-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-xl-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-xl-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-xl-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-xl-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-xl-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-xl-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-xl-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-xl-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-xl-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-xl-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-xl-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-xl-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-xl-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-xl-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-xl-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-xl-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-xl-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-xl-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-xl-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-xl-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-xl-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-xl-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-xl-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-xl-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-xl-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-xl-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-xl-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-xl-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-xl-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-xl-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-xl-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-xl-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-xl-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-xl-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-xl-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}}@media (min-width: 1600px){.ant-col-xxl-24{display:block;flex:0 0 100%;max-width:100%}.ant-col-xxl-push-24{left:100%}.ant-col-xxl-pull-24{right:100%}.ant-col-xxl-offset-24{margin-left:100%}.ant-col-xxl-order-24{order:24}.ant-col-xxl-23{display:block;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-xxl-push-23{left:95.83333333%}.ant-col-xxl-pull-23{right:95.83333333%}.ant-col-xxl-offset-23{margin-left:95.83333333%}.ant-col-xxl-order-23{order:23}.ant-col-xxl-22{display:block;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-xxl-push-22{left:91.66666667%}.ant-col-xxl-pull-22{right:91.66666667%}.ant-col-xxl-offset-22{margin-left:91.66666667%}.ant-col-xxl-order-22{order:22}.ant-col-xxl-21{display:block;flex:0 0 87.5%;max-width:87.5%}.ant-col-xxl-push-21{left:87.5%}.ant-col-xxl-pull-21{right:87.5%}.ant-col-xxl-offset-21{margin-left:87.5%}.ant-col-xxl-order-21{order:21}.ant-col-xxl-20{display:block;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-xxl-push-20{left:83.33333333%}.ant-col-xxl-pull-20{right:83.33333333%}.ant-col-xxl-offset-20{margin-left:83.33333333%}.ant-col-xxl-order-20{order:20}.ant-col-xxl-19{display:block;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-xxl-push-19{left:79.16666667%}.ant-col-xxl-pull-19{right:79.16666667%}.ant-col-xxl-offset-19{margin-left:79.16666667%}.ant-col-xxl-order-19{order:19}.ant-col-xxl-18{display:block;flex:0 0 75%;max-width:75%}.ant-col-xxl-push-18{left:75%}.ant-col-xxl-pull-18{right:75%}.ant-col-xxl-offset-18{margin-left:75%}.ant-col-xxl-order-18{order:18}.ant-col-xxl-17{display:block;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-xxl-push-17{left:70.83333333%}.ant-col-xxl-pull-17{right:70.83333333%}.ant-col-xxl-offset-17{margin-left:70.83333333%}.ant-col-xxl-order-17{order:17}.ant-col-xxl-16{display:block;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-xxl-push-16{left:66.66666667%}.ant-col-xxl-pull-16{right:66.66666667%}.ant-col-xxl-offset-16{margin-left:66.66666667%}.ant-col-xxl-order-16{order:16}.ant-col-xxl-15{display:block;flex:0 0 62.5%;max-width:62.5%}.ant-col-xxl-push-15{left:62.5%}.ant-col-xxl-pull-15{right:62.5%}.ant-col-xxl-offset-15{margin-left:62.5%}.ant-col-xxl-order-15{order:15}.ant-col-xxl-14{display:block;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-xxl-push-14{left:58.33333333%}.ant-col-xxl-pull-14{right:58.33333333%}.ant-col-xxl-offset-14{margin-left:58.33333333%}.ant-col-xxl-order-14{order:14}.ant-col-xxl-13{display:block;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-xxl-push-13{left:54.16666667%}.ant-col-xxl-pull-13{right:54.16666667%}.ant-col-xxl-offset-13{margin-left:54.16666667%}.ant-col-xxl-order-13{order:13}.ant-col-xxl-12{display:block;flex:0 0 50%;max-width:50%}.ant-col-xxl-push-12{left:50%}.ant-col-xxl-pull-12{right:50%}.ant-col-xxl-offset-12{margin-left:50%}.ant-col-xxl-order-12{order:12}.ant-col-xxl-11{display:block;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-xxl-push-11{left:45.83333333%}.ant-col-xxl-pull-11{right:45.83333333%}.ant-col-xxl-offset-11{margin-left:45.83333333%}.ant-col-xxl-order-11{order:11}.ant-col-xxl-10{display:block;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-xxl-push-10{left:41.66666667%}.ant-col-xxl-pull-10{right:41.66666667%}.ant-col-xxl-offset-10{margin-left:41.66666667%}.ant-col-xxl-order-10{order:10}.ant-col-xxl-9{display:block;flex:0 0 37.5%;max-width:37.5%}.ant-col-xxl-push-9{left:37.5%}.ant-col-xxl-pull-9{right:37.5%}.ant-col-xxl-offset-9{margin-left:37.5%}.ant-col-xxl-order-9{order:9}.ant-col-xxl-8{display:block;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-xxl-push-8{left:33.33333333%}.ant-col-xxl-pull-8{right:33.33333333%}.ant-col-xxl-offset-8{margin-left:33.33333333%}.ant-col-xxl-order-8{order:8}.ant-col-xxl-7{display:block;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-xxl-push-7{left:29.16666667%}.ant-col-xxl-pull-7{right:29.16666667%}.ant-col-xxl-offset-7{margin-left:29.16666667%}.ant-col-xxl-order-7{order:7}.ant-col-xxl-6{display:block;flex:0 0 25%;max-width:25%}.ant-col-xxl-push-6{left:25%}.ant-col-xxl-pull-6{right:25%}.ant-col-xxl-offset-6{margin-left:25%}.ant-col-xxl-order-6{order:6}.ant-col-xxl-5{display:block;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-xxl-push-5{left:20.83333333%}.ant-col-xxl-pull-5{right:20.83333333%}.ant-col-xxl-offset-5{margin-left:20.83333333%}.ant-col-xxl-order-5{order:5}.ant-col-xxl-4{display:block;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-xxl-push-4{left:16.66666667%}.ant-col-xxl-pull-4{right:16.66666667%}.ant-col-xxl-offset-4{margin-left:16.66666667%}.ant-col-xxl-order-4{order:4}.ant-col-xxl-3{display:block;flex:0 0 12.5%;max-width:12.5%}.ant-col-xxl-push-3{left:12.5%}.ant-col-xxl-pull-3{right:12.5%}.ant-col-xxl-offset-3{margin-left:12.5%}.ant-col-xxl-order-3{order:3}.ant-col-xxl-2{display:block;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-xxl-push-2{left:8.33333333%}.ant-col-xxl-pull-2{right:8.33333333%}.ant-col-xxl-offset-2{margin-left:8.33333333%}.ant-col-xxl-order-2{order:2}.ant-col-xxl-1{display:block;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xxl-push-1{left:4.16666667%}.ant-col-xxl-pull-1{right:4.16666667%}.ant-col-xxl-offset-1{margin-left:4.16666667%}.ant-col-xxl-order-1{order:1}.ant-col-xxl-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xxl-push-0{left:auto}.ant-col-xxl-pull-0{right:auto}.ant-col-xxl-offset-0{margin-left:0}.ant-col-xxl-order-0{order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-xxl-push-0.ant-col-rtl{right:auto}.ant-col-xxl-pull-0.ant-col-rtl{left:auto}.ant-col-xxl-offset-0.ant-col-rtl{margin-right:0}.ant-col-xxl-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-xxl-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-xxl-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-xxl-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-xxl-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-xxl-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-xxl-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-xxl-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-xxl-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-xxl-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-xxl-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-xxl-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-xxl-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-xxl-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-xxl-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-xxl-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-xxl-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-xxl-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-xxl-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-xxl-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-xxl-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-xxl-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-xxl-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-xxl-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-xxl-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-xxl-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-xxl-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-xxl-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-xxl-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-xxl-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-xxl-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-xxl-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-xxl-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-xxl-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-xxl-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-xxl-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-xxl-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-xxl-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-xxl-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-xxl-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-xxl-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-xxl-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-xxl-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-xxl-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-xxl-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-xxl-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-xxl-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-xxl-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-xxl-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-xxl-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-xxl-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-xxl-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-xxl-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-xxl-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-xxl-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-xxl-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-xxl-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-xxl-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-xxl-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-xxl-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-xxl-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-xxl-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-xxl-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-xxl-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-xxl-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-xxl-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-xxl-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-xxl-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-xxl-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-xxl-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-xxl-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-xxl-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}}.ant-row-rtl{direction:rtl}.ant-input-affix-wrapper{position:relative;display:inline-block;width:100%;min-width:0;padding:4px 11px;color:#000000d9;font-size:14px;line-height:1.5715;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;transition:all .3s;display:inline-flex}.ant-input-affix-wrapper::placeholder{color:#bfbfbf}.ant-input-affix-wrapper:placeholder-shown{text-overflow:ellipsis}.ant-input-affix-wrapper:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-input-rtl .ant-input-affix-wrapper:hover{border-right-width:0;border-left-width:1px!important}.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #1890ff33}.ant-input-rtl .ant-input-affix-wrapper-focused,.ant-input-rtl .ant-input-affix-wrapper:focus{border-right-width:0;border-left-width:1px!important}.ant-input-affix-wrapper-disabled{color:#00000040;background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-input-affix-wrapper-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-affix-wrapper[disabled]{color:#00000040;background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-input-affix-wrapper[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-affix-wrapper-borderless,.ant-input-affix-wrapper-borderless-disabled,.ant-input-affix-wrapper-borderless-focused,.ant-input-affix-wrapper-borderless:focus,.ant-input-affix-wrapper-borderless:hover,.ant-input-affix-wrapper-borderless[disabled]{background-color:initial;border:none;box-shadow:none}textarea.ant-input-affix-wrapper{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;transition:all .3s,height 0s}.ant-input-affix-wrapper-lg{padding:6.5px 11px;font-size:16px}.ant-input-affix-wrapper-sm{padding:0 7px}.ant-input-affix-wrapper-rtl{direction:rtl}.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-color:#40a9ff;border-right-width:1px!important;z-index:1}.ant-input-rtl .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{border-right-width:0;border-left-width:1px!important}.ant-input-search-with-button .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover{z-index:0}.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus{z-index:1}.ant-input-affix-wrapper-disabled .ant-input[disabled]{background:#0000}.ant-input-affix-wrapper>input.ant-input{padding:0;border:none;outline:none}.ant-input-affix-wrapper>input.ant-input:focus{box-shadow:none}.ant-input-affix-wrapper:before{width:0;visibility:hidden;content:"\a0"}.ant-input-prefix,.ant-input-suffix{display:flex;flex:none;align-items:center}.ant-input-prefix{margin-right:4px}.ant-input-suffix{margin-left:4px}.ant-input-clear-icon{margin:0 4px;color:#00000040;font-size:12px;vertical-align:-1px;cursor:pointer;transition:color .3s}.ant-input-clear-icon:hover{color:#00000073}.ant-input-clear-icon:active{color:#000000d9}.ant-input-clear-icon-hidden{visibility:hidden}.ant-input-clear-icon:last-child{margin-right:0}.ant-input-affix-wrapper-textarea-with-clear-btn{padding:0!important;border:0!important}.ant-input-affix-wrapper-textarea-with-clear-btn .ant-input-clear-icon{position:absolute;top:8px;right:8px;z-index:1}.ant-input{box-sizing:border-box;margin:0;font-variant:tabular-nums;list-style:none;font-feature-settings:"tnum","tnum";position:relative;display:inline-block;width:100%;min-width:0;padding:4px 11px;color:#000000d9;font-size:14px;line-height:1.5715;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;transition:all .3s}.ant-input::placeholder{color:#bfbfbf}.ant-input:placeholder-shown{text-overflow:ellipsis}.ant-input:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-input-rtl .ant-input:hover{border-right-width:0;border-left-width:1px!important}.ant-input-focused,.ant-input:focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #1890ff33}.ant-input-rtl .ant-input-focused,.ant-input-rtl .ant-input:focus{border-right-width:0;border-left-width:1px!important}.ant-input-disabled{color:#00000040;background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input[disabled]{color:#00000040;background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-borderless,.ant-input-borderless-disabled,.ant-input-borderless-focused,.ant-input-borderless:focus,.ant-input-borderless:hover,.ant-input-borderless[disabled]{background-color:initial;border:none;box-shadow:none}textarea.ant-input{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;transition:all .3s,height 0s}.ant-input-lg{padding:6.5px 11px;font-size:16px}.ant-input-sm{padding:0 7px}.ant-input-rtl{direction:rtl}.ant-input-group{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:relative;display:table;width:100%;border-collapse:initial;border-spacing:0}.ant-input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.ant-input-group>[class*=col-]{padding-right:8px}.ant-input-group>[class*=col-]:last-child{padding-right:0}.ant-input-group-addon,.ant-input-group-wrap,.ant-input-group>.ant-input{display:table-cell}.ant-input-group-addon:not(:first-child):not(:last-child),.ant-input-group-wrap:not(:first-child):not(:last-child),.ant-input-group>.ant-input:not(:first-child):not(:last-child){border-radius:0}.ant-input-group-addon,.ant-input-group-wrap{width:1px;white-space:nowrap;vertical-align:middle}.ant-input-group-wrap>*{display:block!important}.ant-input-group .ant-input{float:left;width:100%;margin-bottom:0;text-align:inherit}.ant-input-group .ant-input:focus,.ant-input-group .ant-input:hover{z-index:1;border-right-width:1px}.ant-input-search-with-button .ant-input-group .ant-input:hover{z-index:0}.ant-input-group-addon{position:relative;padding:0 11px;color:#000000d9;font-weight:400;font-size:14px;text-align:center;background-color:#fafafa;border:1px solid #d9d9d9;border-radius:2px;transition:all .3s}.ant-input-group-addon .ant-select{margin:-5px -11px}.ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{background-color:inherit;border:1px solid #0000;box-shadow:none}.ant-input-group-addon .ant-select-focused .ant-select-selector,.ant-input-group-addon .ant-select-open .ant-select-selector{color:#1890ff}.ant-input-group-addon:first-child,.ant-input-group-addon:first-child .ant-select .ant-select-selector,.ant-input-group>.ant-input:first-child,.ant-input-group>.ant-input:first-child .ant-select .ant-select-selector{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:first-child) .ant-input{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:last-child) .ant-input{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group-addon:first-child{border-right:0}.ant-input-group-addon:last-child{border-left:0}.ant-input-group-addon:last-child,.ant-input-group-addon:last-child .ant-select .ant-select-selector,.ant-input-group>.ant-input:last-child,.ant-input-group>.ant-input:last-child .ant-select .ant-select-selector{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group-lg .ant-input,.ant-input-group-lg>.ant-input-group-addon{padding:6.5px 11px;font-size:16px}.ant-input-group-sm .ant-input,.ant-input-group-sm>.ant-input-group-addon{padding:0 7px}.ant-input-group-lg .ant-select-single .ant-select-selector{height:40px}.ant-input-group-sm .ant-select-single .ant-select-selector{height:24px}.ant-input-group .ant-input-affix-wrapper:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group .ant-input-affix-wrapper:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-search .ant-input-group .ant-input-affix-wrapper:not(:last-child){border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-input-group.ant-input-group-compact{display:block}.ant-input-group.ant-input-group-compact:before{display:table;content:""}.ant-input-group.ant-input-group-compact:after{display:table;clear:both;content:""}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child){border-right-width:1px}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):hover,.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):hover,.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child):hover{z-index:1}.ant-input-group.ant-input-group-compact>*{display:inline-block;float:none;vertical-align:top;border-radius:0}.ant-input-group.ant-input-group-compact>.ant-input-affix-wrapper,.ant-input-group.ant-input-group-compact>.ant-picker-range{display:inline-flex}.ant-input-group.ant-input-group-compact>:not(:last-child){margin-right:-1px;border-right-width:1px}.ant-input-group.ant-input-group-compact .ant-input{float:none}.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector{border-right-width:1px;border-radius:0}.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select-focused,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-arrow,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector:focus,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector:hover{z-index:1}.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selector,.ant-input-group.ant-input-group-compact>:first-child{border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selector,.ant-input-group.ant-input-group-compact>:last-child{border-right-width:1px;border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input{vertical-align:top}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper{margin-left:-1px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper+.ant-input-group-wrapper .ant-input-affix-wrapper,.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input-group-addon>.ant-input-search-button{border-radius:0}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:2px 0 0 2px}.ant-input-group-rtl .ant-input-group-addon:first-child,.ant-input-group>.ant-input-rtl:first-child{border-radius:0 2px 2px 0}.ant-input-group-rtl .ant-input-group-addon:first-child{border-right:1px solid #d9d9d9;border-left:0}.ant-input-group-rtl .ant-input-group-addon:last-child{border-right:0;border-left:1px solid #d9d9d9}.ant-input-group-rtl.ant-input-group-addon:last-child,.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:first-child),.ant-input-group-rtl.ant-input-group>.ant-input:last-child{border-radius:2px 0 0 2px}.ant-input-group-rtl.ant-input-group .ant-input-affix-wrapper:not(:last-child){border-radius:0 2px 2px 0}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:not(:last-child){margin-right:0;margin-left:-1px;border-left-width:1px}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selector,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:first-child{border-radius:0 2px 2px 0}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selector,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:last-child{border-left-width:1px;border-radius:2px 0 0 2px}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl+.ant-input-group-wrapper-rtl{margin-right:-1px;margin-left:0}.ant-input-group.ant-input-group-compact .ant-input-group-wrapper-rtl:not(:last-child).ant-input-search>.ant-input-group>.ant-input{border-radius:0 2px 2px 0}.ant-input-group-wrapper{display:inline-block;width:100%;text-align:start;vertical-align:top}.ant-input-password-icon{color:#00000073;cursor:pointer;transition:all .3s}.ant-input-password-icon:hover{color:#000000d9}.ant-input[type=color]{height:32px}.ant-input[type=color].ant-input-lg{height:40px}.ant-input[type=color].ant-input-sm{height:24px;padding-top:3px;padding-bottom:3px}.ant-input-textarea-show-count:after{float:right;color:#00000073;white-space:nowrap;content:attr(data-count);pointer-events:none}.ant-input-search .ant-input:focus,.ant-input-search .ant-input:hover{border-color:#40a9ff}.ant-input-search .ant-input:focus+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),.ant-input-search .ant-input:hover+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary){border-left-color:#40a9ff}.ant-input-search .ant-input-affix-wrapper{border-radius:0}.ant-input-search .ant-input-lg{line-height:1.5713}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child{left:-1px;padding:0;border:0}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button{padding-top:0;padding-bottom:0;border-radius:0 2px 2px 0}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary){color:#00000073}.ant-input-search>.ant-input-group>.ant-input-group-addon:last-child .ant-input-search-button:not(.ant-btn-primary).ant-btn-loading:before{top:0;right:0;bottom:0;left:0}.ant-input-search-button{height:32px}.ant-input-search-button:focus,.ant-input-search-button:hover{z-index:1}.ant-input-search-large .ant-input-search-button{height:40px}.ant-input-search-small .ant-input-search-button{height:24px}.ant-input-group-rtl,.ant-input-group-wrapper-rtl{direction:rtl}.ant-input-affix-wrapper.ant-input-affix-wrapper-rtl>input.ant-input{border:none;outline:none}.ant-input-affix-wrapper-rtl .ant-input-prefix{margin:0 0 0 4px}.ant-input-affix-wrapper-rtl .ant-input-suffix{margin:0 4px 0 0}.ant-input-textarea-rtl{direction:rtl}.ant-input-textarea-rtl.ant-input-textarea-show-count:after{text-align:left}.ant-input-affix-wrapper-rtl .ant-input-clear-icon:last-child{margin-right:4px;margin-left:0}.ant-input-affix-wrapper-rtl .ant-input-clear-icon{right:auto;left:8px}.ant-input-search-rtl{direction:rtl}.ant-input-search-rtl .ant-input:focus+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary),.ant-input-search-rtl .ant-input:hover+.ant-input-group-addon .ant-input-search-button:not(.ant-btn-primary){border-right-color:#40a9ff;border-left-color:#d9d9d9}.ant-input-search-rtl>.ant-input-group>.ant-input-affix-wrapper-focused,.ant-input-search-rtl>.ant-input-group>.ant-input-affix-wrapper:hover{border-right-color:#40a9ff}.ant-input-search-rtl>.ant-input-group>.ant-input-group-addon{right:-1px;left:auto}.ant-input-search-rtl>.ant-input-group>.ant-input-group-addon .ant-input-search-button{border-radius:2px 0 0 2px}@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none){.ant-input{height:32px}.ant-input-lg{height:40px}.ant-input-sm{height:24px}.ant-input-affix-wrapper>input.ant-input{height:auto}}textarea.nz-textarea-autosize-measuring{height:auto!important;overflow:hidden!important;padding:2px 0!important;box-sizing:initial!important}.ant-input-search-rtl.ant-input-search-enter-button+.ant-input-group-addon .ant-input-search-button.ant-btn-icon-only,.ant-input-search-rtl.ant-input-search-enter-button input+.ant-input-group-addon .ant-input-search-button.ant-btn-icon-only{width:32px;height:32px}.ant-input-search-rtl.ant-input-search-enter-button+.ant-input-group-addon .ant-input-search-button.ant-btn-icon-only.ant-btn-sm,.ant-input-search-rtl.ant-input-search-enter-button input+.ant-input-group-addon .ant-input-search-button.ant-btn-icon-only.ant-btn-sm{width:24px;height:24px}.ant-input-search-rtl.ant-input-search-enter-button+.ant-input-group-addon .ant-input-search-button.ant-btn-icon-only.ant-btn-lg,.ant-input-search-rtl.ant-input-search-enter-button input+.ant-input-group-addon .ant-input-search-button.ant-btn-icon-only.ant-btn-lg{width:40px;height:40px}.ant-input-number{box-sizing:border-box;font-variant:tabular-nums;list-style:none;font-feature-settings:"tnum","tnum";position:relative;width:100%;min-width:0;color:#000000d9;font-size:14px;line-height:1.5715;background-color:#fff;background-image:none;transition:all .3s;display:inline-block;width:90px;margin:0;padding:0;border:1px solid #d9d9d9;border-radius:2px}.ant-input-number::placeholder{color:#bfbfbf}.ant-input-number:placeholder-shown{text-overflow:ellipsis}.ant-input-rtl .ant-input-number:hover{border-right-width:0;border-left-width:1px!important}.ant-input-number-focused,.ant-input-number:focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #1890ff33}.ant-input-rtl .ant-input-number-focused,.ant-input-rtl .ant-input-number:focus{border-right-width:0;border-left-width:1px!important}.ant-input-number[disabled]{color:#00000040;background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-input-number[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-number-borderless,.ant-input-number-borderless-disabled,.ant-input-number-borderless-focused,.ant-input-number-borderless:focus,.ant-input-number-borderless:hover,.ant-input-number-borderless[disabled]{background-color:initial;border:none;box-shadow:none}textarea.ant-input-number{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;transition:all .3s,height 0s}.ant-input-number-lg{padding:6.5px 11px}.ant-input-number-sm{padding:0 7px}.ant-input-number-handler{position:relative;display:block;width:100%;height:50%;overflow:hidden;color:#00000073;font-weight:700;line-height:0;text-align:center;transition:all .1s linear}.ant-input-number-handler:active{background:#f4f4f4}.ant-input-number-handler:hover .ant-input-number-handler-down-inner,.ant-input-number-handler:hover .ant-input-number-handler-up-inner{color:#40a9ff}.ant-input-number-handler-down-inner,.ant-input-number-handler-up-inner{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;right:4px;width:12px;height:12px;color:#00000073;line-height:12px;transition:all .1s linear;-webkit-user-select:none;user-select:none}.ant-input-number-handler-down-inner>*,.ant-input-number-handler-up-inner>*{line-height:1}.ant-input-number-handler-down-inner svg,.ant-input-number-handler-up-inner svg{display:inline-block}.ant-input-number-handler-down-inner:before,.ant-input-number-handler-up-inner:before{display:none}.ant-input-number-handler-down-inner .ant-input-number-handler-down-inner-icon,.ant-input-number-handler-down-inner .ant-input-number-handler-up-inner-icon,.ant-input-number-handler-up-inner .ant-input-number-handler-down-inner-icon,.ant-input-number-handler-up-inner .ant-input-number-handler-up-inner-icon{display:block}.ant-input-number:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-input-number:hover+.ant-form-item-children-icon{opacity:0;transition:opacity .24s linear .24s}.ant-input-number-focused{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #1890ff33}.ant-input-rtl .ant-input-number-focused{border-right-width:0;border-left-width:1px!important}.ant-input-number-disabled{color:#00000040;background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-input-number-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-number-disabled .ant-input-number-input{cursor:not-allowed}.ant-input-number-disabled .ant-input-number-handler-wrap,.ant-input-number-readonly .ant-input-number-handler-wrap{display:none}.ant-input-number-input{width:100%;height:30px;padding:0 11px;text-align:left;background-color:initial;border:0;border-radius:2px;outline:0;transition:all .3s linear;-moz-appearance:textfield!important}.ant-input-number-input::placeholder{color:#bfbfbf}.ant-input-number-input:placeholder-shown{text-overflow:ellipsis}.ant-input-number-input[type=number]::-webkit-inner-spin-button,.ant-input-number-input[type=number]::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.ant-input-number-lg{padding:0;font-size:16px}.ant-input-number-lg input{height:38px}.ant-input-number-sm{padding:0}.ant-input-number-sm input{height:22px;padding:0 7px}.ant-input-number-handler-wrap{position:absolute;top:0;right:0;width:22px;height:100%;background:#fff;border-left:1px solid #d9d9d9;border-radius:0 2px 2px 0;opacity:0;transition:opacity .24s linear .1s}.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner,.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner{min-width:auto;margin-right:0;font-size:7px}.ant-input-number-borderless .ant-input-number-handler-wrap{border-left-width:0}.ant-input-number-handler-wrap:hover .ant-input-number-handler{height:40%}.ant-input-number:hover .ant-input-number-handler-wrap{opacity:1}.ant-input-number-handler-up{border-top-right-radius:2px;cursor:pointer}.ant-input-number-handler-up-inner{top:50%;margin-top:-5px;text-align:center}.ant-input-number-handler-up:hover{height:60%!important}.ant-input-number-handler-down{top:0;border-top:1px solid #d9d9d9;border-bottom-right-radius:2px;cursor:pointer}.ant-input-number-handler-down-inner{top:50%;text-align:center;transform:translateY(-50%)}.ant-input-number-handler-down:hover{height:60%!important}.ant-input-number-borderless .ant-input-number-handler-down{border-top-width:0}.ant-input-number-handler-down-disabled,.ant-input-number-handler-up-disabled{cursor:not-allowed}.ant-input-number-handler-down-disabled:hover .ant-input-number-handler-down-inner,.ant-input-number-handler-up-disabled:hover .ant-input-number-handler-up-inner{color:#00000040}.ant-input-number-borderless{box-shadow:none}.ant-input-number-out-of-range input{color:#ff4d4f}.ant-input-number-rtl{direction:rtl}.ant-input-number-rtl .ant-input-number-handler-wrap{right:auto;left:0;border-right:1px solid #d9d9d9;border-left:0;border-radius:2px 0 0 2px}.ant-input-number-rtl.ant-input-number-borderless .ant-input-number-handler-wrap{border-right-width:0}.ant-input-number-rtl .ant-input-number-input{direction:ltr;text-align:right}.ant-layout{display:flex;flex:auto;flex-direction:column;min-height:0;background:#f0f2f5}.ant-layout,.ant-layout *{box-sizing:border-box}.ant-layout.ant-layout-has-sider{flex-direction:row}.ant-layout.ant-layout-has-sider>.ant-layout,.ant-layout.ant-layout-has-sider>.ant-layout-content{width:0}.ant-layout-footer,.ant-layout-header{flex:0 0 auto}.ant-layout-header{height:64px;padding:0 50px;color:#000000d9;line-height:64px;background:#001529}.ant-layout-footer{padding:24px 50px;color:#000000d9;font-size:14px;background:#f0f2f5}.ant-layout-content{flex:auto;min-height:0}.ant-layout-sider{position:relative;min-width:0;background:#001529;transition:all .2s}.ant-layout-sider-children{height:100%;margin-top:-.1px;padding-top:.1px}.ant-layout-sider-children .ant-menu.ant-menu-inline-collapsed{width:auto}.ant-layout-sider-has-trigger{padding-bottom:48px}.ant-layout-sider-right{order:1}.ant-layout-sider-trigger{position:fixed;bottom:0;z-index:1;height:48px;color:#fff;line-height:48px;text-align:center;background:#002140;cursor:pointer;transition:all .2s}.ant-layout-sider-zero-width>*{overflow:hidden}.ant-layout-sider-zero-width-trigger{position:absolute;top:64px;right:-36px;z-index:1;width:36px;height:42px;color:#fff;font-size:18px;line-height:42px;text-align:center;background:#001529;border-radius:0 2px 2px 0;cursor:pointer;transition:background .3s ease}.ant-layout-sider-zero-width-trigger:after{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;transition:all .3s;content:""}.ant-layout-sider-zero-width-trigger:hover:after{background:#ffffff1a}.ant-layout-sider-zero-width-trigger-right{left:-36px;border-radius:2px 0 0 2px}.ant-layout-sider-light{background:#fff}.ant-layout-sider-light .ant-layout-sider-trigger,.ant-layout-sider-light .ant-layout-sider-zero-width-trigger{color:#000000d9;background:#fff}.ant-layout-rtl{direction:rtl}nz-content,nz-footer,nz-header{display:block}.ant-form-item .ant-mentions,.ant-form-item textarea.ant-input{height:auto}.ant-form-item .ant-upload{background:#0000}.ant-form-item .ant-upload.ant-upload-drag{background:#fafafa}.ant-form-item input[type=checkbox],.ant-form-item input[type=radio]{width:14px;height:14px}.ant-form-item .ant-checkbox-inline,.ant-form-item .ant-radio-inline{display:inline-block;margin-left:8px;font-weight:400;vertical-align:middle;cursor:pointer}.ant-form-item .ant-checkbox-inline:first-child,.ant-form-item .ant-radio-inline:first-child{margin-left:0}.ant-form-item .ant-checkbox-vertical,.ant-form-item .ant-radio-vertical{display:block}.ant-form-item .ant-checkbox-vertical+.ant-checkbox-vertical,.ant-form-item .ant-radio-vertical+.ant-radio-vertical{margin-left:0}.ant-form-item .ant-input-number+.ant-form-text{margin-left:8px}.ant-form-item .ant-input-number-handler-wrap{z-index:2}.ant-form-item .ant-cascader-picker,.ant-form-item .ant-select{width:100%}.ant-form-item .ant-input-group .ant-cascader-picker,.ant-form-item .ant-input-group .ant-select,.ant-form-item .ant-picker-calendar-month-select,.ant-form-item .ant-picker-calendar-year-select{width:auto}.ant-form-inline{display:flex;flex-wrap:wrap}.ant-form-inline .ant-form-item{flex:none;flex-wrap:nowrap;margin-right:16px;margin-bottom:0}.ant-form-inline .ant-form-item-with-help{margin-bottom:24px}.ant-form-inline .ant-form-item>.ant-form-item-control,.ant-form-inline .ant-form-item>.ant-form-item-label{display:inline-block;vertical-align:top}.ant-form-inline .ant-form-item>.ant-form-item-label{flex:none}.ant-form-inline .ant-form-item .ant-form-item-has-feedback,.ant-form-inline .ant-form-item .ant-form-text{display:inline-block}.ant-form-horizontal .ant-form-item-label{flex-grow:0}.ant-form-horizontal .ant-form-item-control{flex:1 1 0}.ant-form-vertical .ant-form-item{flex-direction:column}.ant-form-vertical .ant-form-item-label>label{height:auto}.ant-col-24.ant-form-item-label,.ant-col-xl-24.ant-form-item-label,.ant-form-vertical .ant-form-item-label{padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-col-24.ant-form-item-label>label,.ant-col-xl-24.ant-form-item-label>label,.ant-form-vertical .ant-form-item-label>label{margin:0}.ant-col-24.ant-form-item-label>label:after,.ant-col-xl-24.ant-form-item-label>label:after,.ant-form-vertical .ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-24.ant-form-item-label,.ant-form-rtl.ant-col-xl-24.ant-form-item-label,.ant-form-rtl.ant-form-vertical .ant-form-item-label{text-align:right}@media (max-width: 575px){.ant-form-item .ant-form-item-label{padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-form-item .ant-form-item-label>label{margin:0}.ant-form-item .ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-form-item .ant-form-item-label{text-align:right}.ant-form .ant-form-item{flex-wrap:wrap}.ant-form .ant-form-item .ant-form-item-control,.ant-form .ant-form-item .ant-form-item-label{flex:0 0 100%;max-width:100%}.ant-col-xs-24.ant-form-item-label{padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-col-xs-24.ant-form-item-label>label{margin:0}.ant-col-xs-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-xs-24.ant-form-item-label{text-align:right}}@media (max-width: 767px){.ant-col-sm-24.ant-form-item-label{padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-col-sm-24.ant-form-item-label>label{margin:0}.ant-col-sm-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-sm-24.ant-form-item-label{text-align:right}}@media (max-width: 991px){.ant-col-md-24.ant-form-item-label{padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-col-md-24.ant-form-item-label>label{margin:0}.ant-col-md-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-md-24.ant-form-item-label{text-align:right}}@media (max-width: 1199px){.ant-col-lg-24.ant-form-item-label{padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-col-lg-24.ant-form-item-label>label{margin:0}.ant-col-lg-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-lg-24.ant-form-item-label{text-align:right}}@media (max-width: 1599px){.ant-col-xl-24.ant-form-item-label{padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-col-xl-24.ant-form-item-label>label{margin:0}.ant-col-xl-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-xl-24.ant-form-item-label{text-align:right}}.ant-form-item-explain.ant-form-item-explain-error{color:#ff4d4f}.ant-form-item-explain.ant-form-item-explain-warning{color:#faad14}.ant-form-item-has-feedback .ant-input{padding-right:24px}.ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input-suffix{padding-right:18px}.ant-form-item-has-feedback .ant-input-search:not(.ant-input-search-enter-button) .ant-input-suffix{right:28px}.ant-form-item-has-feedback .ant-switch{margin:2px 0 4px}.ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-arrow,.ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-clear,.ant-form-item-has-feedback>.ant-select .ant-select-arrow,.ant-form-item-has-feedback>.ant-select .ant-select-clear{right:32px}.ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-item-has-feedback>.ant-select .ant-select-selection-selected-value{padding-right:42px}.ant-form-item-has-feedback .ant-cascader-picker-arrow{margin-right:19px}.ant-form-item-has-feedback .ant-cascader-picker-clear{right:32px}.ant-form-item-has-feedback .ant-picker,.ant-form-item-has-feedback .ant-picker-large{padding-right:29.2px}.ant-form-item-has-feedback .ant-picker-small{padding-right:25.2px}.ant-form-item-has-feedback.ant-form-item-has-error .ant-form-item-children-icon,.ant-form-item-has-feedback.ant-form-item-has-success .ant-form-item-children-icon,.ant-form-item-has-feedback.ant-form-item-has-warning .ant-form-item-children-icon,.ant-form-item-has-feedback.ant-form-item-is-validating .ant-form-item-children-icon{position:absolute;top:50%;right:0;z-index:1;width:32px;height:20px;margin-top:-10px;font-size:14px;line-height:20px;text-align:center;visibility:visible;animation:zoomIn .3s cubic-bezier(.12,.4,.29,1.46);pointer-events:none}.ant-form-item-has-success.ant-form-item-has-feedback .ant-form-item-children-icon{color:#52c41a;animation-name:diffZoomIn1!important}.ant-form-item-has-warning .ant-form-item-split{color:#faad14}.ant-form-item-has-warning .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled),.ant-form-item-has-warning .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover,.ant-form-item-has-warning .ant-input:not(.ant-input-disabled),.ant-form-item-has-warning .ant-input:not(.ant-input-disabled):hover{background-color:#fff;border-color:#faad14}.ant-form-item-has-warning .ant-calendar-picker-open .ant-calendar-picker-input,.ant-form-item-has-warning .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled)-focused,.ant-form-item-has-warning .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):focus,.ant-form-item-has-warning .ant-input:not(.ant-input-disabled)-focused,.ant-form-item-has-warning .ant-input:not(.ant-input-disabled):focus{border-color:#ffc53d;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #faad1433}.ant-form-item-has-warning .ant-input-prefix{color:#faad14}.ant-form-item-has-warning .ant-input-group-addon{color:#faad14;border-color:#faad14}.ant-form-item-has-warning .has-feedback{color:#faad14}.ant-form-item-has-warning.ant-form-item-has-feedback .ant-form-item-children-icon{color:#faad14;animation-name:diffZoomIn3!important}.ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input) .ant-select-selector{background-color:#fff;border-color:#faad14!important}.ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-focused .ant-select-selector,.ant-form-item-has-warning .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-open .ant-select-selector{border-color:#ffc53d;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #faad1433}.ant-form-item-has-warning .ant-input-number,.ant-form-item-has-warning .ant-picker{background-color:#fff;border-color:#faad14}.ant-form-item-has-warning .ant-input-number-focused,.ant-form-item-has-warning .ant-input-number:focus,.ant-form-item-has-warning .ant-picker-focused,.ant-form-item-has-warning .ant-picker:focus{border-color:#ffc53d;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #faad1433}.ant-form-item-has-warning .ant-input-number:not([disabled]):hover,.ant-form-item-has-warning .ant-picker:not([disabled]):hover{background-color:#fff;border-color:#faad14}.ant-form-item-has-warning .ant-cascader-picker:focus .ant-cascader-input{border-color:#ffc53d;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #faad1433}.ant-form-item-has-error .ant-form-item-split{color:#ff4d4f}.ant-form-item-has-error .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled),.ant-form-item-has-error .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover,.ant-form-item-has-error .ant-input:not(.ant-input-disabled),.ant-form-item-has-error .ant-input:not(.ant-input-disabled):hover{background-color:#fff;border-color:#ff4d4f}.ant-form-item-has-error .ant-calendar-picker-open .ant-calendar-picker-input,.ant-form-item-has-error .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled)-focused,.ant-form-item-has-error .ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):focus,.ant-form-item-has-error .ant-input:not(.ant-input-disabled)-focused,.ant-form-item-has-error .ant-input:not(.ant-input-disabled):focus{border-color:#ff7875;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #ff4d4f33}.ant-form-item-has-error .ant-input-prefix{color:#ff4d4f}.ant-form-item-has-error .ant-input-group-addon{color:#ff4d4f;border-color:#ff4d4f}.ant-form-item-has-error .has-feedback{color:#ff4d4f}.ant-form-item-has-error.ant-form-item-has-feedback .ant-form-item-children-icon{color:#ff4d4f;animation-name:diffZoomIn2!important}.ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input) .ant-select-selector{background-color:#fff;border-color:#ff4d4f!important}.ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-focused .ant-select-selector,.ant-form-item-has-error .ant-select:not(.ant-select-disabled):not(.ant-select-customize-input).ant-select-open .ant-select-selector{border-color:#ff7875;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #ff4d4f33}.ant-form-item-has-error .ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{background-color:inherit;border:0;box-shadow:none}.ant-form-item-has-error .ant-select.ant-select-auto-complete .ant-input:focus{border-color:#ff4d4f}.ant-form-item-has-error .ant-input-number,.ant-form-item-has-error .ant-picker{background-color:#fff;border-color:#ff4d4f}.ant-form-item-has-error .ant-input-number-focused,.ant-form-item-has-error .ant-input-number:focus,.ant-form-item-has-error .ant-picker-focused,.ant-form-item-has-error .ant-picker:focus{border-color:#ff7875;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #ff4d4f33}.ant-form-item-has-error .ant-input-number:not([disabled]):hover,.ant-form-item-has-error .ant-mention-wrapper .ant-mention-editor,.ant-form-item-has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):hover,.ant-form-item-has-error .ant-picker:not([disabled]):hover{background-color:#fff;border-color:#ff4d4f}.ant-form-item-has-error .ant-mention-wrapper.ant-mention-active:not([disabled]) .ant-mention-editor,.ant-form-item-has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):focus{border-color:#ff7875;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #ff4d4f33}.ant-form-item-has-error .ant-cascader-picker:hover .ant-cascader-picker-label:hover+.ant-cascader-input.ant-input{border-color:#ff4d4f}.ant-form-item-has-error .ant-cascader-picker:focus .ant-cascader-input{background-color:#fff;border-color:#ff7875;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #ff4d4f33}.ant-form-item-has-error .ant-transfer-list{border-color:#ff4d4f}.ant-form-item-has-error .ant-transfer-list-search:not([disabled]){border-color:#d9d9d9}.ant-form-item-has-error .ant-transfer-list-search:not([disabled]):hover{border-color:#40a9ff;border-right-width:1px!important}.ant-input-rtl .ant-form-item-has-error .ant-transfer-list-search:not([disabled]):hover{border-right-width:0;border-left-width:1px!important}.ant-form-item-has-error .ant-transfer-list-search:not([disabled]):focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #1890ff33}.ant-input-rtl .ant-form-item-has-error .ant-transfer-list-search:not([disabled]):focus{border-right-width:0;border-left-width:1px!important}.ant-form-item-has-error .ant-radio-button-wrapper{border-color:#ff4d4f!important}.ant-form-item-has-error .ant-radio-button-wrapper:not(:first-child):before{background-color:#ff4d4f}.ant-form-item-is-validating.ant-form-item-has-feedback .ant-form-item-children-icon{display:inline-block;color:#1890ff}.ant-form{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum"}.ant-form legend{display:block;width:100%;margin-bottom:20px;padding:0;color:#00000073;font-size:16px;line-height:inherit;border:0;border-bottom:1px solid #d9d9d9}.ant-form label{font-size:14px}.ant-form input[type=search]{box-sizing:border-box}.ant-form input[type=checkbox],.ant-form input[type=radio]{line-height:normal}.ant-form input[type=file]{display:block}.ant-form input[type=range]{display:block;width:100%}.ant-form select[multiple],.ant-form select[size]{height:auto}.ant-form input[type=checkbox]:focus,.ant-form input[type=file]:focus,.ant-form input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.ant-form output{display:block;padding-top:15px;color:#000000d9;font-size:14px;line-height:1.5715}.ant-form .ant-form-text{display:inline-block;padding-right:8px}.ant-form-small .ant-form-item-label>label{height:24px}.ant-form-small .ant-form-item-control-input{min-height:24px}.ant-form-large .ant-form-item-label>label{height:40px}.ant-form-large .ant-form-item-control-input{min-height:40px}.ant-form-item{box-sizing:border-box;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";margin:0 0 24px;vertical-align:top}.ant-form-item-with-help{margin-bottom:0}.ant-form-item-hidden,.ant-form-item-hidden.ant-row{display:none}.ant-form-item-label{display:inline-block;flex-grow:0;overflow:hidden;white-space:nowrap;text-align:right;vertical-align:middle}.ant-form-item-label-left{text-align:left}.ant-form-item-label>label{position:relative;display:inline-flex;align-items:center;height:32px;color:#000000d9;font-size:14px}.ant-form-item-label>label>.anticon{font-size:14px;vertical-align:top}.ant-form-item-label>label.ant-form-item-required:not(.ant-form-item-required-mark-optional):before{display:inline-block;margin-right:4px;color:#ff4d4f;font-size:14px;font-family:SimSun,sans-serif;line-height:1;content:"*"}.ant-form-hide-required-mark .ant-form-item-label>label.ant-form-item-required:not(.ant-form-item-required-mark-optional):before{display:none}.ant-form-item-label>label .ant-form-item-optional{display:inline-block;margin-left:4px;color:#00000073}.ant-form-hide-required-mark .ant-form-item-label>label .ant-form-item-optional{display:none}.ant-form-item-label>label .ant-form-item-tooltip{color:#00000073;cursor:help;writing-mode:horizontal-tb;margin-inline-start:4px}.ant-form-item-label>label:after{content:":";position:relative;top:-.5px;margin:0 8px 0 2px}.ant-form-item-label>label.ant-form-item-no-colon:after{content:" "}.ant-form-item-control{display:flex;flex-direction:column;flex-grow:1}.ant-form-item-control:first-child:not([class^=ant-col-]):not([class*=" ant-col-"]){width:100%}.ant-form-item-control-input{position:relative;display:flex;align-items:center;min-height:32px}.ant-form-item-control-input-content{flex:auto;max-width:100%}.ant-form-item-explain,.ant-form-item-extra{clear:both;min-height:24px;color:#00000073;font-size:14px;line-height:1.5715;transition:color .3s cubic-bezier(.215,.61,.355,1)}.ant-form-item .ant-input-textarea-show-count:after{margin-bottom:-22px}.ant-show-help-appear,.ant-show-help-enter,.ant-show-help-leave{animation-duration:.3s;animation-fill-mode:both;animation-play-state:paused}.ant-show-help-appear.ant-show-help-appear-active,.ant-show-help-enter.ant-show-help-enter-active{animation-name:antShowHelpIn;animation-play-state:running}.ant-show-help-leave.ant-show-help-leave-active{animation-name:antShowHelpOut;animation-play-state:running;pointer-events:none}.ant-show-help-appear,.ant-show-help-enter{opacity:0}.ant-show-help-appear,.ant-show-help-enter,.ant-show-help-leave{animation-timing-function:cubic-bezier(.645,.045,.355,1)}@keyframes antShowHelpIn{0%{transform:translateY(-5px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes antShowHelpOut{to{transform:translateY(-5px);opacity:0}}@keyframes diffZoomIn1{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes diffZoomIn2{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes diffZoomIn3{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.ant-form-rtl{direction:rtl}.ant-form-rtl .ant-form-item-label{text-align:left}.ant-form-rtl .ant-form-item-label>label.ant-form-item-required:before{margin-right:0;margin-left:4px}.ant-form-rtl .ant-form-item-label>label:after{margin:0 2px 0 8px}.ant-form-rtl .ant-form-item-label>label .ant-form-item-optional{margin-right:4px;margin-left:0}.ant-col-rtl .ant-form-item-control:first-child{width:100%}.ant-form-rtl .ant-form-item-has-feedback .ant-input{padding-right:11px;padding-left:24px}.ant-form-rtl .ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input-suffix{padding-right:11px;padding-left:18px}.ant-form-rtl .ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input{padding:0}.ant-form-rtl .ant-form-item-has-feedback .ant-input-search:not(.ant-input-search-enter-button) .ant-input-suffix{right:auto;left:28px}.ant-form-rtl .ant-form-item-has-feedback .ant-input-number{padding-left:18px}.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-arrow,.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-clear,.ant-form-rtl .ant-form-item-has-feedback>.ant-select .ant-select-arrow,.ant-form-rtl .ant-form-item-has-feedback>.ant-select .ant-select-clear{right:auto;left:32px}.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-rtl .ant-form-item-has-feedback>.ant-select .ant-select-selection-selected-value{padding-right:0;padding-left:42px}.ant-form-rtl .ant-form-item-has-feedback .ant-cascader-picker-arrow{margin-right:0;margin-left:19px}.ant-form-rtl .ant-form-item-has-feedback .ant-cascader-picker-clear{right:auto;left:32px}.ant-form-rtl .ant-form-item-has-feedback .ant-picker,.ant-form-rtl .ant-form-item-has-feedback .ant-picker-large{padding-right:11px;padding-left:29.2px}.ant-form-rtl .ant-form-item-has-feedback .ant-picker-small{padding-right:7px;padding-left:25.2px}.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-error .ant-form-item-children-icon,.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-success .ant-form-item-children-icon,.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-warning .ant-form-item-children-icon,.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-is-validating .ant-form-item-children-icon{right:auto;left:0}.ant-form-rtl.ant-form-inline .ant-form-item{margin-right:0;margin-left:16px}.ant-list{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:relative}.ant-list *{outline:none}.ant-list-pagination{margin-top:24px;text-align:right}.ant-list-pagination .ant-pagination-options{text-align:left}.ant-list-more{margin-top:12px;text-align:center}.ant-list-more button{padding-right:32px;padding-left:32px}.ant-list-spin{min-height:40px;text-align:center}.ant-list-empty-text{padding:16px;color:#00000040;font-size:14px;text-align:center}.ant-list-items{margin:0;padding:0;list-style:none}.ant-list-item{display:flex;align-items:center;justify-content:space-between;padding:12px 0;color:#000000d9}.ant-list-item-meta{display:flex;flex:1;align-items:flex-start;max-width:100%}.ant-list-item-meta-avatar{margin-right:16px}.ant-list-item-meta-content{flex:1 0;width:0;color:#000000d9}.ant-list-item-meta-title{margin-bottom:4px;color:#000000d9;font-size:14px;line-height:1.5715}.ant-list-item-meta-title>a{color:#000000d9;transition:all .3s}.ant-list-item-meta-title>a:hover{color:#1890ff}.ant-list-item-meta-description{color:#00000073;font-size:14px;line-height:1.5715}.ant-list-item-action{flex:0 0 auto;margin-left:48px;padding:0;font-size:0;list-style:none}.ant-list-item-action>li{position:relative;display:inline-block;padding:0 8px;color:#00000073;font-size:14px;line-height:1.5715;text-align:center}.ant-list-item-action>li:first-child{padding-left:0}.ant-list-item-action-split{position:absolute;top:50%;right:0;width:1px;height:14px;margin-top:-7px;background-color:#f0f0f0}.ant-list-footer,.ant-list-header{background:#0000}.ant-list-footer,.ant-list-header{padding-top:12px;padding-bottom:12px}.ant-list-empty{padding:16px 0;color:#00000073;font-size:12px;text-align:center}.ant-list-split .ant-list-item{border-bottom:1px solid #f0f0f0}.ant-list-split .ant-list-item:last-child{border-bottom:none}.ant-list-split .ant-list-header{border-bottom:1px solid #f0f0f0}.ant-list-split.ant-list-empty .ant-list-footer{border-top:1px solid #f0f0f0}.ant-list-loading .ant-list-spin-nested-loading{min-height:32px}.ant-list-split.ant-list-something-after-last-item .ant-spin-container>.ant-list-items>.ant-list-item:last-child{border-bottom:1px solid #f0f0f0}.ant-list-lg .ant-list-item{padding:16px 24px}.ant-list-sm .ant-list-item{padding:8px 16px}.ant-list-vertical .ant-list-item{align-items:normal}.ant-list-vertical .ant-list-item-main{display:block;flex:1}.ant-list-vertical .ant-list-item-extra{margin-left:40px}.ant-list-vertical .ant-list-item-meta{margin-bottom:16px}.ant-list-vertical .ant-list-item-meta-title{margin-bottom:12px;color:#000000d9;font-size:16px;line-height:24px}.ant-list-vertical .ant-list-item-action{margin-top:16px;margin-left:auto}.ant-list-vertical .ant-list-item-action>li{padding:0 16px}.ant-list-vertical .ant-list-item-action>li:first-child{padding-left:0}.ant-list-grid .ant-col>.ant-list-item{display:block;max-width:100%;margin-bottom:16px;padding-top:0;padding-bottom:0;border-bottom:none}.ant-list-item-no-flex{display:block}.ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action{float:right}.ant-list-bordered{border:1px solid #d9d9d9;border-radius:2px}.ant-list-bordered .ant-list-footer,.ant-list-bordered .ant-list-header,.ant-list-bordered .ant-list-item{padding-right:24px;padding-left:24px}.ant-list-bordered .ant-list-pagination{margin:16px 24px}.ant-list-bordered.ant-list-sm .ant-list-footer,.ant-list-bordered.ant-list-sm .ant-list-header,.ant-list-bordered.ant-list-sm .ant-list-item{padding:8px 16px}.ant-list-bordered.ant-list-lg .ant-list-footer,.ant-list-bordered.ant-list-lg .ant-list-header,.ant-list-bordered.ant-list-lg .ant-list-item{padding:16px 24px}@media screen and (max-width: 768px){.ant-list-item-action,.ant-list-vertical .ant-list-item-extra{margin-left:24px}}@media screen and (max-width: 576px){.ant-list-item{flex-wrap:wrap}.ant-list-item-action{margin-left:12px}.ant-list-vertical .ant-list-item{flex-wrap:wrap-reverse}.ant-list-vertical .ant-list-item-main{min-width:220px}.ant-list-vertical .ant-list-item-extra{margin:auto auto 16px}}.ant-list-rtl{direction:rtl;text-align:right}.ant-list-rtl .ReactVirtualized__List .ant-list-item{direction:rtl}.ant-list-rtl .ant-list-pagination{text-align:left}.ant-list-rtl .ant-list-item-meta-avatar{margin-right:0;margin-left:16px}.ant-list-rtl .ant-list-item-action{margin-right:48px;margin-left:0}.ant-list.ant-list-rtl .ant-list-item-action>li:first-child{padding-right:0;padding-left:16px}.ant-list-rtl .ant-list-item-action-split{right:auto;left:0}.ant-list-rtl.ant-list-vertical .ant-list-item-extra{margin-right:40px;margin-left:0}.ant-list-rtl.ant-list-vertical .ant-list-item-action{margin-right:auto}.ant-list-rtl .ant-list-vertical .ant-list-item-action>li:first-child{padding-right:0;padding-left:16px}.ant-list-rtl .ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action{float:left}@media screen and (max-width: 768px){.ant-list-rtl .ant-list-item-action,.ant-list-rtl .ant-list-vertical .ant-list-item-extra{margin-right:24px;margin-left:0}}@media screen and (max-width: 576px){.ant-list-rtl .ant-list-item-action{margin-right:22px;margin-left:0}.ant-list-rtl.ant-list-vertical .ant-list-item-extra{margin:auto auto 16px}}nz-list,nz-list-empty,nz-list-footer,nz-list-header,nz-list-item-extra,nz-list-pagination,nz-list nz-spin{display:block}.ant-menu-item-danger.ant-menu-item,.ant-menu-item-danger.ant-menu-item-active,.ant-menu-item-danger.ant-menu-item:hover{color:#ff4d4f}.ant-menu-item-danger.ant-menu-item:active{background:#fff1f0}.ant-menu-item-danger.ant-menu-item-selected,.ant-menu-item-danger.ant-menu-item-selected>a,.ant-menu-item-danger.ant-menu-item-selected>a:hover{color:#ff4d4f}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected{background-color:#fff1f0}.ant-menu-inline .ant-menu-item-danger.ant-menu-item:after{border-right-color:#ff4d4f}.ant-menu-dark .ant-menu-item-danger.ant-menu-item,.ant-menu-dark .ant-menu-item-danger.ant-menu-item:hover,.ant-menu-dark .ant-menu-item-danger.ant-menu-item>a{color:#ff4d4f}.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-danger.ant-menu-item-selected{color:#fff;background-color:#ff4d4f}.ant-menu{box-sizing:border-box;font-variant:tabular-nums;line-height:1.5715;font-feature-settings:"tnum","tnum";margin:0;padding:0;color:#000000d9;font-size:14px;line-height:0;text-align:left;list-style:none;background:#fff;outline:none;box-shadow:0 3px 6px -4px #0000001f,0 6px 16px 0 #00000014,0 9px 28px 8px #0000000d;transition:background .3s,width .3s cubic-bezier(.2,0,0,1) 0s}.ant-menu:after,.ant-menu:before{display:table;content:""}.ant-menu:after{clear:both}.ant-menu.ant-menu-root:focus-visible{box-shadow:0 0 0 2px #1890ff33}.ant-menu ol,.ant-menu ul{margin:0;padding:0;list-style:none}.ant-menu-overflow{display:flex}.ant-menu-overflow-item{flex:none}.ant-menu-hidden,.ant-menu-submenu-hidden{display:none}.ant-menu-item-group-title{height:1.5715;padding:8px 16px;color:#00000073;font-size:14px;line-height:1.5715;transition:all .3s}.ant-menu-horizontal .ant-menu-submenu{transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu,.ant-menu-submenu-inline{transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1),padding .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-selected{color:#1890ff}.ant-menu-item:active,.ant-menu-submenu-title:active{background:#e6f7ff}.ant-menu-submenu .ant-menu-sub{cursor:auto;transition:background .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-item a{color:#000000d9}.ant-menu-item a:hover{color:#1890ff}.ant-menu-item a:before{position:absolute;top:0;right:0;bottom:0;left:0;background-color:initial;content:""}.ant-menu-item>.ant-badge a{color:#000000d9}.ant-menu-item>.ant-badge a:hover{color:#1890ff}.ant-menu-item-divider{height:1px;overflow:hidden;line-height:0;background-color:#f0f0f0}.ant-menu-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu{margin-top:-1px}.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu .ant-menu-submenu-title:hover{background-color:initial}.ant-menu-item-selected,.ant-menu-item-selected a,.ant-menu-item-selected a:hover{color:#1890ff}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#e6f7ff}.ant-menu-inline,.ant-menu-vertical,.ant-menu-vertical-left{border-right:1px solid #f0f0f0}.ant-menu-vertical-right{border-left:1px solid #f0f0f0}.ant-menu-vertical-left.ant-menu-sub,.ant-menu-vertical-right.ant-menu-sub,.ant-menu-vertical.ant-menu-sub{min-width:160px;max-height:calc(100vh - 100px);padding:0;overflow:hidden;border-right:0}.ant-menu-vertical-left.ant-menu-sub:not([class*=-active]),.ant-menu-vertical-right.ant-menu-sub:not([class*=-active]),.ant-menu-vertical.ant-menu-sub:not([class*=-active]){overflow-x:hidden;overflow-y:auto}.ant-menu-vertical-left.ant-menu-sub .ant-menu-item,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item,.ant-menu-vertical.ant-menu-sub .ant-menu-item{left:0;margin-left:0;border-right:0}.ant-menu-vertical-left.ant-menu-sub .ant-menu-item:after,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item:after,.ant-menu-vertical.ant-menu-sub .ant-menu-item:after{border-right:0}.ant-menu-vertical-left.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-left.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical.ant-menu-sub>.ant-menu-item,.ant-menu-vertical.ant-menu-sub>.ant-menu-submenu{transform-origin:0 0}.ant-menu-horizontal.ant-menu-sub{min-width:114px}.ant-menu-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu-title{transition:border-color .3s,background .3s}.ant-menu-item,.ant-menu-submenu-title{position:relative;display:block;margin:0;padding:0 20px;white-space:nowrap;cursor:pointer;transition:border-color .3s,background .3s,padding .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-item .ant-menu-item-icon,.ant-menu-item .anticon,.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu-submenu-title .anticon{min-width:14px;font-size:14px;transition:font-size .15s cubic-bezier(.215,.61,.355,1),margin .3s cubic-bezier(.645,.045,.355,1),color .3s}.ant-menu-item .ant-menu-item-icon+span,.ant-menu-item .anticon+span,.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu-submenu-title .anticon+span{margin-left:10px;opacity:1;transition:opacity .3s cubic-bezier(.645,.045,.355,1),margin .3s,color .3s}.ant-menu-item .ant-menu-item-icon.svg,.ant-menu-submenu-title .ant-menu-item-icon.svg{vertical-align:-.125em}.ant-menu-item.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-item.ant-menu-item-only-child>.anticon,.ant-menu-submenu-title.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-submenu-title.ant-menu-item-only-child>.anticon{margin-right:0}.ant-menu-item:focus-visible,.ant-menu-submenu-title:focus-visible{box-shadow:0 0 0 2px #1890ff33}.ant-menu>.ant-menu-item-divider{height:1px;margin:1px 0;padding:0;overflow:hidden;line-height:0;background-color:#f0f0f0}.ant-menu-submenu-popup{position:absolute;z-index:1050;background:#0000;border-radius:2px;box-shadow:none;transform-origin:0 0}.ant-menu-submenu-popup:before{position:absolute;top:-7px;right:0;bottom:0;left:0;z-index:-1;width:100%;height:100%;opacity:.0001;content:" "}.ant-menu-submenu-placement-rightTop:before{top:0;left:-7px}.ant-menu-submenu>.ant-menu{background-color:#fff;border-radius:2px}.ant-menu-submenu>.ant-menu-submenu-title:after{transition:transform .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-popup>.ant-menu{background-color:#fff}.ant-menu-submenu-arrow,.ant-menu-submenu-expand-icon{position:absolute;top:50%;right:16px;width:10px;color:#000000d9;transform:translateY(-50%);transition:transform .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-arrow:after,.ant-menu-submenu-arrow:before{position:absolute;width:6px;height:1.5px;background-color:currentColor;border-radius:2px;transition:background .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),color .3s cubic-bezier(.645,.045,.355,1);content:""}.ant-menu-submenu-arrow:before{transform:rotate(45deg) translateY(-2.5px)}.ant-menu-submenu-arrow:after{transform:rotate(-45deg) translateY(2.5px)}.ant-menu-submenu:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-submenu:hover>.ant-menu-submenu-title>.ant-menu-submenu-expand-icon{color:#1890ff}.ant-menu-inline-collapsed .ant-menu-submenu-arrow:before,.ant-menu-submenu-inline .ant-menu-submenu-arrow:before{transform:rotate(-45deg) translateX(2.5px)}.ant-menu-inline-collapsed .ant-menu-submenu-arrow:after,.ant-menu-submenu-inline .ant-menu-submenu-arrow:after{transform:rotate(45deg) translateX(-2.5px)}.ant-menu-submenu-horizontal .ant-menu-submenu-arrow{display:none}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow{transform:translateY(-2px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after{transform:rotate(-45deg) translateX(-2.5px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{transform:rotate(45deg) translateX(2.5px)}.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected,.ant-menu-vertical .ant-menu-submenu-selected{color:#1890ff}.ant-menu-horizontal{line-height:46px;border:0;border-bottom:1px solid #f0f0f0;box-shadow:none}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu{margin-top:-1px;margin-bottom:0;padding:0 20px}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-active,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-open,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item:hover,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-active,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu:hover{color:#1890ff}.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-active:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-open:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item-selected:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-item:hover:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-active:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-open:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu-selected:after,.ant-menu-horizontal:not(.ant-menu-dark)>.ant-menu-submenu:hover:after{border-bottom:2px solid #1890ff}.ant-menu-horizontal>.ant-menu-item,.ant-menu-horizontal>.ant-menu-submenu{position:relative;top:1px;display:inline-block;vertical-align:bottom}.ant-menu-horizontal>.ant-menu-item:after,.ant-menu-horizontal>.ant-menu-submenu:after{position:absolute;right:20px;bottom:0;left:20px;border-bottom:2px solid #0000;transition:border-color .3s cubic-bezier(.645,.045,.355,1);content:""}.ant-menu-horizontal>.ant-menu-submenu>.ant-menu-submenu-title{padding:0}.ant-menu-horizontal>.ant-menu-item a{color:#000000d9}.ant-menu-horizontal>.ant-menu-item a:hover{color:#1890ff}.ant-menu-horizontal>.ant-menu-item a:before{bottom:-2px}.ant-menu-horizontal>.ant-menu-item-selected a{color:#1890ff}.ant-menu-horizontal:after{display:block;clear:both;height:0;content:"\20"}.ant-menu-inline .ant-menu-item,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-right .ant-menu-item,.ant-menu-vertical .ant-menu-item{position:relative}.ant-menu-inline .ant-menu-item:after,.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-vertical-right .ant-menu-item:after,.ant-menu-vertical .ant-menu-item:after{position:absolute;top:0;right:0;bottom:0;border-right:3px solid #1890ff;transform:scaleY(.0001);opacity:0;transition:transform .15s cubic-bezier(.215,.61,.355,1),opacity .15s cubic-bezier(.215,.61,.355,1);content:""}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-vertical-right .ant-menu-item,.ant-menu-vertical-right .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-item,.ant-menu-vertical .ant-menu-submenu-title{height:40px;margin-top:4px;margin-bottom:4px;padding:0 16px;overflow:hidden;line-height:40px;text-overflow:ellipsis}.ant-menu-inline .ant-menu-submenu,.ant-menu-vertical-left .ant-menu-submenu,.ant-menu-vertical-right .ant-menu-submenu,.ant-menu-vertical .ant-menu-submenu{padding-bottom:.02px}.ant-menu-inline .ant-menu-item:not(:last-child),.ant-menu-vertical-left .ant-menu-item:not(:last-child),.ant-menu-vertical-right .ant-menu-item:not(:last-child),.ant-menu-vertical .ant-menu-item:not(:last-child){margin-bottom:8px}.ant-menu-inline>.ant-menu-item,.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-left>.ant-menu-item,.ant-menu-vertical-left>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-right>.ant-menu-item,.ant-menu-vertical-right>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical>.ant-menu-item,.ant-menu-vertical>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px}.ant-menu-vertical .ant-menu-item-group-list .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-submenu-title{padding-right:34px}.ant-menu-inline{width:100%}.ant-menu-inline .ant-menu-item-selected:after,.ant-menu-inline .ant-menu-selected:after{transform:scaleY(1);opacity:1;transition:transform .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title{width:calc(100% + 1px)}.ant-menu-inline .ant-menu-item-group-list .ant-menu-submenu-title,.ant-menu-inline .ant-menu-submenu-title{padding-right:34px}.ant-menu-inline.ant-menu-root .ant-menu-item,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title{display:flex;align-items:center;transition:border-color .3s,background .3s,padding .1s cubic-bezier(.215,.61,.355,1)}.ant-menu-inline.ant-menu-root .ant-menu-item>.ant-menu-title-content,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title>.ant-menu-title-content{flex:auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.ant-menu-inline.ant-menu-root .ant-menu-item>*,.ant-menu-inline.ant-menu-root .ant-menu-submenu-title>*{flex:none}.ant-menu.ant-menu-inline-collapsed{width:80px}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title{left:0;padding:0 calc(50% - 16px / 2);text-overflow:clip}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow{opacity:0}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .anticon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon{margin:0;font-size:16px;line-height:40px}.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-item .anticon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-item-icon+span,.ant-menu.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span{display:inline-block;opacity:0}.ant-menu.ant-menu-inline-collapsed .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed .anticon{display:inline-block}.ant-menu.ant-menu-inline-collapsed-tooltip{pointer-events:none}.ant-menu.ant-menu-inline-collapsed-tooltip .ant-menu-item-icon,.ant-menu.ant-menu-inline-collapsed-tooltip .anticon{display:none}.ant-menu.ant-menu-inline-collapsed-tooltip a{color:#ffffffd9}.ant-menu.ant-menu-inline-collapsed .ant-menu-item-group-title{padding-right:4px;padding-left:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-menu-item-group-list{margin:0;padding:0}.ant-menu-item-group-list .ant-menu-item,.ant-menu-item-group-list .ant-menu-submenu-title{padding:0 16px 0 28px}.ant-menu-root.ant-menu-inline,.ant-menu-root.ant-menu-vertical,.ant-menu-root.ant-menu-vertical-left,.ant-menu-root.ant-menu-vertical-right{box-shadow:none}.ant-menu-root.ant-menu-inline-collapsed .ant-menu-item>.ant-menu-inline-collapsed-noicon,.ant-menu-root.ant-menu-inline-collapsed .ant-menu-submenu .ant-menu-submenu-title>.ant-menu-inline-collapsed-noicon{font-size:16px;text-align:center}.ant-menu-sub.ant-menu-inline{padding:0;background:#fafafa;border-radius:0;box-shadow:none}.ant-menu-sub.ant-menu-inline>.ant-menu-item,.ant-menu-sub.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px;list-style-position:inside;list-style-type:disc}.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title{padding-left:32px}.ant-menu-item-disabled,.ant-menu-submenu-disabled{color:#00000040!important;background:none;cursor:not-allowed}.ant-menu-item-disabled:after,.ant-menu-submenu-disabled:after{border-color:#0000!important}.ant-menu-item-disabled a,.ant-menu-submenu-disabled a{color:#00000040!important;pointer-events:none}.ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-submenu-disabled>.ant-menu-submenu-title{color:#00000040!important;cursor:not-allowed}.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:#00000040!important}.ant-layout-header .ant-menu{line-height:inherit}.ant-menu-light .ant-menu-item-active,.ant-menu-light .ant-menu-item:hover,.ant-menu-light .ant-menu-submenu-active,.ant-menu-light .ant-menu-submenu-title:hover,.ant-menu-light .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open{color:#1890ff}.ant-menu-dark .ant-menu-sub,.ant-menu.ant-menu-dark,.ant-menu.ant-menu-dark .ant-menu-sub{color:#ffffffa6;background:#001529}.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow{opacity:.45;transition:all .3s}.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:before{background:#fff}.ant-menu-dark.ant-menu-submenu-popup{background:#0000}.ant-menu-dark .ant-menu-inline.ant-menu-sub{background:#000c17}.ant-menu-dark.ant-menu-horizontal{border-bottom:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item,.ant-menu-dark.ant-menu-horizontal>.ant-menu-submenu{top:0;margin-top:0;padding:0 20px;border-color:#001529;border-bottom:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item:hover{background-color:#1890ff}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item>a:before{bottom:0}.ant-menu-dark .ant-menu-item,.ant-menu-dark .ant-menu-item-group-title,.ant-menu-dark .ant-menu-item>a,.ant-menu-dark .ant-menu-item>span>a{color:#ffffffa6}.ant-menu-dark.ant-menu-inline,.ant-menu-dark.ant-menu-vertical,.ant-menu-dark.ant-menu-vertical-left,.ant-menu-dark.ant-menu-vertical-right{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item,.ant-menu-dark.ant-menu-vertical .ant-menu-item{left:0;margin-left:0;border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical .ant-menu-item:after{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-inline .ant-menu-submenu-title{width:100%}.ant-menu-dark .ant-menu-item-active,.ant-menu-dark .ant-menu-item:hover,.ant-menu-dark .ant-menu-submenu-active,.ant-menu-dark .ant-menu-submenu-open,.ant-menu-dark .ant-menu-submenu-selected,.ant-menu-dark .ant-menu-submenu-title:hover{color:#fff;background-color:initial}.ant-menu-dark .ant-menu-item-active>a,.ant-menu-dark .ant-menu-item-active>span>a,.ant-menu-dark .ant-menu-item:hover>a,.ant-menu-dark .ant-menu-item:hover>span>a,.ant-menu-dark .ant-menu-submenu-active>a,.ant-menu-dark .ant-menu-submenu-active>span>a,.ant-menu-dark .ant-menu-submenu-open>a,.ant-menu-dark .ant-menu-submenu-open>span>a,.ant-menu-dark .ant-menu-submenu-selected>a,.ant-menu-dark .ant-menu-submenu-selected>span>a,.ant-menu-dark .ant-menu-submenu-title:hover>a,.ant-menu-dark .ant-menu-submenu-title:hover>span>a{color:#fff}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow{opacity:1}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:#fff}.ant-menu-dark .ant-menu-item:hover{background-color:initial}.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#1890ff}.ant-menu-dark .ant-menu-item-selected{color:#fff;border-right:0}.ant-menu-dark .ant-menu-item-selected:after{border-right:0}.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon,.ant-menu-dark .ant-menu-item-selected .ant-menu-item-icon+span,.ant-menu-dark .ant-menu-item-selected .anticon,.ant-menu-dark .ant-menu-item-selected .anticon+span,.ant-menu-dark .ant-menu-item-selected>a,.ant-menu-dark .ant-menu-item-selected>a:hover,.ant-menu-dark .ant-menu-item-selected>span>a,.ant-menu-dark .ant-menu-item-selected>span>a:hover{color:#fff}.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected,.ant-menu.ant-menu-dark .ant-menu-item-selected{background-color:#1890ff}.ant-menu-dark .ant-menu-item-disabled,.ant-menu-dark .ant-menu-item-disabled>a,.ant-menu-dark .ant-menu-item-disabled>span>a,.ant-menu-dark .ant-menu-submenu-disabled,.ant-menu-dark .ant-menu-submenu-disabled>a,.ant-menu-dark .ant-menu-submenu-disabled>span>a{color:#ffffff59!important;opacity:.8}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title{color:#ffffff59!important}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:#ffffff59!important}.ant-menu.ant-menu-rtl{direction:rtl;text-align:right}.ant-menu-rtl .ant-menu-item-group-title{text-align:right}.ant-menu-rtl.ant-menu-inline,.ant-menu-rtl.ant-menu-vertical{border-right:none;border-left:1px solid #f0f0f0}.ant-menu-rtl.ant-menu-dark.ant-menu-inline,.ant-menu-rtl.ant-menu-dark.ant-menu-vertical{border-left:none}.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub>.ant-menu-submenu,.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub>.ant-menu-submenu,.ant-menu-rtl.ant-menu-vertical.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical.ant-menu-sub>.ant-menu-submenu{transform-origin:top right}.ant-menu-rtl .ant-menu-item .ant-menu-item-icon,.ant-menu-rtl .ant-menu-item .anticon,.ant-menu-rtl .ant-menu-submenu-title .ant-menu-item-icon,.ant-menu-rtl .ant-menu-submenu-title .anticon{margin-right:auto;margin-left:10px}.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child>.anticon,.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child>.ant-menu-item-icon,.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child>.anticon{margin-left:0}.ant-menu-submenu-rtl.ant-menu-submenu-popup{transform-origin:100% 0}.ant-menu-rtl .ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow{right:auto;left:16px}.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:before{transform:rotate(-45deg) translateY(-2px)}.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:after{transform:rotate(45deg) translateY(2px)}.ant-menu-rtl.ant-menu-inline .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical .ant-menu-item:after{right:auto;left:0}.ant-menu-rtl.ant-menu-inline .ant-menu-item,.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical .ant-menu-item,.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title{text-align:right}.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title{padding-right:0;padding-left:34px}.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title{padding-right:16px;padding-left:34px}.ant-menu-rtl.ant-menu-inline-collapsed.ant-menu-vertical .ant-menu-submenu-title{padding:0 calc(50% - 16px / 2)}.ant-menu-rtl .ant-menu-item-group-list .ant-menu-item,.ant-menu-rtl .ant-menu-item-group-list .ant-menu-submenu-title{padding:0 28px 0 16px}.ant-menu-sub.ant-menu-inline{border:0}.ant-menu-rtl.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title{padding-right:32px;padding-left:0}.ant-menu-submenu.ant-menu-submenu-placement-bottom{top:6px;position:relative}.ant-menu-submenu.ant-menu-submenu-placement-right{left:4px;position:relative}.ant-menu-submenu.ant-menu-submenu-placement-right.ant-menu-submenu-rtl{left:auto;right:4px}.ant-menu-submenu.ant-menu-submenu-placement-left{right:4px;position:relative}.ant-menu-submenu.ant-menu-submenu-placement-left.ant-menu-submenu-rtl{right:auto;left:4px}.ant-mention-wrapper{box-sizing:border-box;margin:0;font-size:14px;font-variant:tabular-nums;list-style:none;font-feature-settings:"tnum","tnum";vertical-align:middle}.ant-mention-wrapper,.ant-mention-wrapper .ant-mention-editor{padding:0;color:#000000d9;line-height:1.5715;position:relative;display:inline-block;width:100%}.ant-mention-wrapper .ant-mention-editor{min-width:0;font-size:14px;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;transition:all .3s;display:block;height:auto;min-height:32px}.ant-mention-wrapper .ant-mention-editor::placeholder{color:#bfbfbf}.ant-mention-wrapper .ant-mention-editor:placeholder-shown{text-overflow:ellipsis}.ant-mention-wrapper .ant-mention-editor:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-input-rtl .ant-mention-wrapper .ant-mention-editor:hover{border-right-width:0;border-left-width:1px!important}.ant-mention-wrapper .ant-mention-editor-focused,.ant-mention-wrapper .ant-mention-editor:focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #1890ff33}.ant-input-rtl .ant-mention-wrapper .ant-mention-editor-focused,.ant-input-rtl .ant-mention-wrapper .ant-mention-editor:focus{border-right-width:0;border-left-width:1px!important}.ant-mention-wrapper .ant-mention-editor-disabled{color:#00000040;background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-mention-wrapper .ant-mention-editor-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-mention-wrapper .ant-mention-editor[disabled]{color:#00000040;background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-mention-wrapper .ant-mention-editor[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-mention-wrapper .ant-mention-editor-borderless,.ant-mention-wrapper .ant-mention-editor-borderless-disabled,.ant-mention-wrapper .ant-mention-editor-borderless-focused,.ant-mention-wrapper .ant-mention-editor-borderless:focus,.ant-mention-wrapper .ant-mention-editor-borderless:hover,.ant-mention-wrapper .ant-mention-editor-borderless[disabled]{background-color:initial;border:none;box-shadow:none}textarea.ant-mention-wrapper .ant-mention-editor{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;transition:all .3s,height 0s}.ant-mention-wrapper .ant-mention-editor-lg{padding:6.5px 11px;font-size:16px}.ant-mention-wrapper .ant-mention-editor-sm{padding:0 7px}.ant-mention-wrapper .ant-mention-editor-rtl{direction:rtl}.ant-mention-wrapper .ant-mention-editor-wrapper{height:auto;overflow-y:auto}.ant-mention-wrapper.ant-mention-active:not(.disabled) .ant-mention-editor{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #1890ff33}.ant-input-rtl .ant-mention-wrapper.ant-mention-active:not(.disabled) .ant-mention-editor{border-right-width:0;border-left-width:1px!important}.ant-mention-wrapper.disabled .ant-mention-editor{color:#00000040;background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-mention-wrapper.disabled .ant-mention-editor:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-mention-wrapper .public-DraftEditorPlaceholder-root{position:absolute;pointer-events:none}.ant-mention-wrapper .public-DraftEditorPlaceholder-root .public-DraftEditorPlaceholder-inner{height:auto;padding:5px 11px;color:#bfbfbf;white-space:pre-wrap;word-wrap:break-word;outline:none;opacity:1}.ant-mention-wrapper .DraftEditor-editorContainer .public-DraftEditor-content{height:auto;padding:5px 11px}.ant-mention-dropdown{box-sizing:border-box;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:absolute;top:-9999px;left:-9999px;z-index:1050;min-width:120px;max-height:250px;margin:1.5em 0 0;overflow-x:hidden;overflow-y:auto;background-color:#fff;border-radius:2px;outline:none;box-shadow:0 3px 6px -4px #0000001f,0 6px 16px 0 #00000014,0 9px 28px 8px #0000000d}.ant-mention-dropdown-placement-top{margin-top:-.1em}.ant-mention-dropdown-notfound.ant-mention-dropdown-item{color:#00000040}.ant-mention-dropdown-notfound.ant-mention-dropdown-item .anticon-loading{display:block;color:#1890ff;text-align:center}.ant-mention-dropdown-item{position:relative;display:block;padding:5px 12px;overflow:hidden;color:#000000d9;font-weight:400;line-height:22px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:background .3s}.ant-mention-dropdown-item:hover{background-color:#f5f5f5}.ant-mention-dropdown-item-active,.ant-mention-dropdown-item.focus{background-color:#e6f7ff}.ant-mention-dropdown-item-disabled{color:#00000040;cursor:not-allowed}.ant-mention-dropdown-item-disabled:hover{color:#00000040;background-color:#fff;cursor:not-allowed}.ant-mention-dropdown-item-selected,.ant-mention-dropdown-item-selected:hover{color:#000000d9;font-weight:700;background-color:#f5f5f5}.ant-mention-dropdown-item-divider{height:1px;margin:1px 0;overflow:hidden;line-height:0;background-color:#f0f0f0}.ant-mention-dropdown{top:100%;left:0;position:relative;width:100%;margin-top:4px;margin-bottom:4px}.ant-message{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:fixed;top:8px;left:0;z-index:1010;width:100%;pointer-events:none}.ant-message-notice{padding:8px;text-align:center}.ant-message-notice-content{display:inline-block;padding:10px 16px;background:#fff;border-radius:2px;box-shadow:0 3px 6px -4px #0000001f,0 6px 16px 0 #00000014,0 9px 28px 8px #0000000d;pointer-events:all}.ant-message-success .anticon{color:#52c41a}.ant-message-error .anticon{color:#ff4d4f}.ant-message-warning .anticon{color:#faad14}.ant-message-info .anticon,.ant-message-loading .anticon{color:#1890ff}.ant-message .anticon{position:relative;top:1px;margin-right:8px;font-size:16px}.ant-message-notice.ant-move-up-leave.ant-move-up-leave-active{animation-name:MessageMoveOut;animation-duration:.3s}@keyframes MessageMoveOut{0%{max-height:150px;padding:8px;opacity:1}to{max-height:0;padding:0;opacity:0}}.ant-message-rtl,.ant-message-rtl span{direction:rtl}.ant-message-rtl .anticon{margin-right:0;margin-left:8px}.ant-modal{box-sizing:border-box;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";pointer-events:none;position:relative;top:100px;width:auto;max-width:calc(100vw - 32px);margin:0 auto;padding:0 0 24px}.ant-modal.ant-zoom-enter,.ant-modal.antzoom-appear{transform:none;opacity:0;animation-duration:.3s;-webkit-user-select:none;user-select:none}.ant-modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;height:100%;background-color:#00000073}.ant-modal-mask-hidden{display:none}.ant-modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;outline:0;-webkit-overflow-scrolling:touch;z-index:1000}.ant-modal-title{margin:0;color:#000000d9;font-weight:500;font-size:16px;line-height:22px;word-wrap:break-word}.ant-modal-content{position:relative;background-color:#fff;background-clip:padding-box;border:0;border-radius:2px;box-shadow:0 3px 6px -4px #0000001f,0 6px 16px 0 #00000014,0 9px 28px 8px #0000000d;pointer-events:auto}.ant-modal-close{position:absolute;top:0;right:0;z-index:10;padding:0;color:#00000073;font-weight:700;line-height:1;text-decoration:none;background:#0000;border:0;outline:0;cursor:pointer;transition:color .3s}.ant-modal-close-x{display:block;width:56px;height:56px;font-size:16px;font-style:normal;line-height:56px;text-align:center;text-transform:none;text-rendering:auto}.ant-modal-close:focus,.ant-modal-close:hover{color:#000000bf;text-decoration:none}.ant-modal-header{padding:16px 24px;color:#000000d9;background:#fff;border-bottom:1px solid #f0f0f0;border-radius:2px 2px 0 0}.ant-modal-body{padding:24px;font-size:14px;line-height:1.5715;word-wrap:break-word}.ant-modal-footer{padding:10px 16px;text-align:right;background:#0000;border-top:1px solid #f0f0f0;border-radius:0 0 2px 2px}.ant-modal-footer .ant-btn+.ant-btn:not(.ant-dropdown-trigger){margin-bottom:0;margin-left:8px}.ant-modal-open{overflow:hidden}.ant-modal-centered{text-align:center}.ant-modal-centered:before{display:inline-block;width:0;height:100%;vertical-align:middle;content:""}.ant-modal-centered .ant-modal{top:0;display:inline-block;text-align:left;vertical-align:middle}@media (max-width: 767px){.ant-modal{max-width:calc(100vw - 16px);margin:8px auto}.ant-modal-centered .ant-modal{flex:1}}.ant-modal-confirm .ant-modal-header{display:none}.ant-modal-confirm .ant-modal-body{padding:32px 32px 24px}.ant-modal-confirm-body-wrapper:before{display:table;content:""}.ant-modal-confirm-body-wrapper:after{display:table;clear:both;content:""}.ant-modal-confirm-body .ant-modal-confirm-title{display:block;overflow:hidden;color:#000000d9;font-weight:500;font-size:16px;line-height:1.4}.ant-modal-confirm-body .ant-modal-confirm-content{margin-top:8px;color:#000000d9;font-size:14px}.ant-modal-confirm-body>.anticon{float:left;margin-right:16px;font-size:22px}.ant-modal-confirm-body>.anticon+.ant-modal-confirm-title+.ant-modal-confirm-content{margin-left:38px}.ant-modal-confirm .ant-modal-confirm-btns{float:right;margin-top:24px}.ant-modal-confirm .ant-modal-confirm-btns .ant-btn+.ant-btn{margin-bottom:0;margin-left:8px}.ant-modal-confirm-error .ant-modal-confirm-body>.anticon{color:#ff4d4f}.ant-modal-confirm-confirm .ant-modal-confirm-body>.anticon,.ant-modal-confirm-warning .ant-modal-confirm-body>.anticon{color:#faad14}.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#1890ff}.ant-modal-confirm-success .ant-modal-confirm-body>.anticon{color:#52c41a}.ant-modal-wrap-rtl{direction:rtl}.ant-modal-wrap-rtl .ant-modal-close{right:auto;left:0}.ant-modal-wrap-rtl .ant-modal-footer{text-align:left}.ant-modal-wrap-rtl .ant-modal-footer .ant-btn+.ant-btn{margin-right:8px;margin-left:0}.ant-modal-wrap-rtl .ant-modal-confirm-body{direction:rtl}.ant-modal-wrap-rtl .ant-modal-confirm-body>.anticon{float:right;margin-right:0;margin-left:16px}.ant-modal-wrap-rtl .ant-modal-confirm-body>.anticon+.ant-modal-confirm-title+.ant-modal-confirm-content{margin-right:38px;margin-left:0}.ant-modal-wrap-rtl .ant-modal-confirm-btns{float:left}.ant-modal-wrap-rtl .ant-modal-confirm-btns .ant-btn+.ant-btn{margin-right:8px;margin-left:0}.ant-modal-wrap-rtl.ant-modal-centered .ant-modal{text-align:right}.ant-notification{box-sizing:border-box;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:fixed;z-index:1010;margin:0 24px 0 0}.ant-notification-bottomLeft,.ant-notification-topLeft{margin-right:0;margin-left:24px}.ant-notification-bottomLeft .ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-bottomLeft .ant-notification-fade-enter.ant-notification-fade-enter-active,.ant-notification-topLeft .ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-topLeft .ant-notification-fade-enter.ant-notification-fade-enter-active{animation-name:NotificationLeftFadeIn}.ant-notification-close-icon{font-size:14px;cursor:pointer}.ant-notification-hook-holder{position:relative}.ant-notification-notice{position:relative;width:384px;max-width:calc(100vw - 24px * 2);margin-bottom:16px;margin-left:auto;padding:16px 24px;overflow:hidden;line-height:1.5715;word-wrap:break-word;background:#fff;border-radius:2px;box-shadow:0 3px 6px -4px #0000001f,0 6px 16px 0 #00000014,0 9px 28px 8px #0000000d}.ant-notification-bottomLeft .ant-notification-notice,.ant-notification-topLeft .ant-notification-notice{margin-right:auto;margin-left:0}.ant-notification-notice-message{margin-bottom:8px;color:#000000d9;font-size:16px;line-height:24px}.ant-notification-notice-message-single-line-auto-margin{display:block;width:calc(384px - 24px * 2 - 24px - 48px - 100%);max-width:4px;background-color:initial;pointer-events:none}.ant-notification-notice-message-single-line-auto-margin:before{display:block;content:""}.ant-notification-notice-description{font-size:14px}.ant-notification-notice-closable .ant-notification-notice-message{padding-right:24px}.ant-notification-notice-with-icon .ant-notification-notice-message{margin-bottom:4px;margin-left:48px;font-size:16px}.ant-notification-notice-with-icon .ant-notification-notice-description{margin-left:48px;font-size:14px}.ant-notification-notice-icon{position:absolute;margin-left:4px;font-size:24px;line-height:24px}.anticon.ant-notification-notice-icon-success{color:#52c41a}.anticon.ant-notification-notice-icon-info{color:#1890ff}.anticon.ant-notification-notice-icon-warning{color:#faad14}.anticon.ant-notification-notice-icon-error{color:#ff4d4f}.ant-notification-notice-close{position:absolute;top:16px;right:22px;color:#00000073;outline:none}.ant-notification-notice-close:hover{color:#000000ab}.ant-notification-notice-btn{float:right;margin-top:16px}.ant-notification .notification-fade-effect{animation-duration:.24s;animation-timing-function:cubic-bezier(.645,.045,.355,1);animation-fill-mode:both}.ant-notification-fade-appear,.ant-notification-fade-enter{opacity:0;animation-play-state:paused}.ant-notification-fade-appear,.ant-notification-fade-enter,.ant-notification-fade-leave{animation-duration:.24s;animation-timing-function:cubic-bezier(.645,.045,.355,1);animation-fill-mode:both}.ant-notification-fade-leave{animation-duration:.2s;animation-play-state:paused}.ant-notification-fade-appear.ant-notification-fade-appear-active,.ant-notification-fade-enter.ant-notification-fade-enter-active{animation-name:NotificationFadeIn;animation-play-state:running}.ant-notification-fade-leave.ant-notification-fade-leave-active{animation-name:NotificationFadeOut;animation-play-state:running}@keyframes NotificationFadeIn{0%{left:384px;opacity:0}to{left:0;opacity:1}}@keyframes NotificationLeftFadeIn{0%{right:384px;opacity:0}to{right:0;opacity:1}}@keyframes NotificationFadeOut{0%{max-height:150px;margin-bottom:16px;opacity:1}to{max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0;opacity:0}}.ant-notification-rtl{direction:rtl}.ant-notification-rtl .ant-notification-notice-closable .ant-notification-notice-message{padding-right:0;padding-left:24px}.ant-notification-rtl .ant-notification-notice-with-icon .ant-notification-notice-description,.ant-notification-rtl .ant-notification-notice-with-icon .ant-notification-notice-message{margin-right:48px;margin-left:0}.ant-notification-rtl .ant-notification-notice-icon{margin-right:4px;margin-left:0}.ant-notification-rtl .ant-notification-notice-close{right:auto;left:22px}.ant-notification-rtl .ant-notification-notice-btn{float:left}.ant-page-header{box-sizing:border-box;margin:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:relative;padding:16px 24px;background-color:#fff}.ant-page-header-ghost{background-color:inherit}.ant-page-header.has-breadcrumb{padding-top:12px}.ant-page-header.has-footer{padding-bottom:0}.ant-page-header-back{margin-right:16px;font-size:16px;line-height:1}.ant-page-header-back-button{color:#1890ff;text-decoration:none;outline:none;transition:color .3s;color:#000;cursor:pointer}.ant-page-header-back-button:focus,.ant-page-header-back-button:hover{color:#40a9ff}.ant-page-header-back-button:active{color:#096dd9}.ant-page-header .ant-divider-vertical{height:14px;margin:0 12px;vertical-align:middle}.ant-breadcrumb+.ant-page-header-heading{margin-top:8px}.ant-page-header-heading{display:flex;justify-content:space-between}.ant-page-header-heading-left{display:flex;align-items:center;margin:4px 0;overflow:hidden}.ant-page-header-heading-title{margin-right:12px;margin-bottom:0;color:#000000d9;font-weight:600;font-size:20px;line-height:32px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-page-header-heading .ant-avatar{margin-right:12px}.ant-page-header-heading-sub-title{margin-right:12px;color:#00000073;font-size:14px;line-height:1.5715;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-page-header-heading-extra{margin:4px 0;white-space:nowrap}.ant-page-header-heading-extra>*{margin-left:12px;white-space:unset}.ant-page-header-heading-extra>:first-child{margin-left:0}.ant-page-header-content{padding-top:12px}.ant-page-header-footer{margin-top:16px}.ant-page-header-footer .ant-tabs>.ant-tabs-nav{margin:0}.ant-page-header-footer .ant-tabs>.ant-tabs-nav:before{border:none}.ant-page-header-footer .ant-tabs .ant-tabs-tab{padding-top:8px;padding-bottom:8px;font-size:16px}.ant-page-header-compact .ant-page-header-heading{flex-wrap:wrap}.ant-page-header-rtl{direction:rtl}.ant-page-header-rtl .ant-page-header-back{float:right;margin-right:0;margin-left:16px}.ant-page-header-rtl .ant-page-header-heading-title,.ant-page-header-rtl .ant-page-header-heading .ant-avatar{margin-right:0;margin-left:12px}.ant-page-header-rtl .ant-page-header-heading-sub-title{float:right;margin-right:0;margin-left:12px}.ant-page-header-rtl .ant-page-header-heading-tags{float:right}.ant-page-header-rtl .ant-page-header-heading-extra{float:left}.ant-page-header-rtl .ant-page-header-heading-extra>*{margin-right:12px;margin-left:0}.ant-page-header-rtl .ant-page-header-heading-extra>:first-child{margin-right:0}.ant-page-header-rtl .ant-page-header-footer .ant-tabs-bar .ant-tabs-nav{float:right}.ant-page-header-back-button{border:0;background:#0000;padding:0;line-height:inherit;display:inline-block}nz-page-header,nz-page-header-content,nz-page-header-footer{display:block}.ant-pagination{box-sizing:border-box;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;font-feature-settings:"tnum","tnum"}.ant-pagination,.ant-pagination ol,.ant-pagination ul{margin:0;padding:0;list-style:none}.ant-pagination:after{display:block;clear:both;height:0;overflow:hidden;visibility:hidden;content:" "}.ant-pagination-item,.ant-pagination-total-text{display:inline-block;height:32px;margin-right:8px;line-height:30px;vertical-align:middle}.ant-pagination-item{min-width:32px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;text-align:center;list-style:none;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;outline:0;cursor:pointer;-webkit-user-select:none;user-select:none}.ant-pagination-item a{display:block;padding:0 6px;color:#000000d9;transition:none}.ant-pagination-item a:hover{text-decoration:none}.ant-pagination-item:focus-visible,.ant-pagination-item:hover{border-color:#1890ff;transition:all .3s}.ant-pagination-item:focus-visible a,.ant-pagination-item:hover a{color:#1890ff}.ant-pagination-item-active{font-weight:500;background:#fff;border-color:#1890ff}.ant-pagination-item-active a{color:#1890ff}.ant-pagination-item-active:focus-visible,.ant-pagination-item-active:hover{border-color:#40a9ff}.ant-pagination-item-active:focus-visible a,.ant-pagination-item-active:hover a{color:#40a9ff}.ant-pagination-jump-next,.ant-pagination-jump-prev{outline:0}.ant-pagination-jump-next .ant-pagination-item-container,.ant-pagination-jump-prev .ant-pagination-item-container{position:relative}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{color:#1890ff;font-size:12px;letter-spacing:-1px;opacity:0;transition:all .2s}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon-svg,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon-svg{top:0;right:0;bottom:0;left:0;margin:auto}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis{position:absolute;top:0;right:0;bottom:0;left:0;display:block;margin:auto;color:#00000040;font-family:Arial,Helvetica,sans-serif;letter-spacing:2px;text-align:center;text-indent:.13em;opacity:1;transition:all .2s}.ant-pagination-jump-next:focus-visible .ant-pagination-item-link-icon,.ant-pagination-jump-next:hover .ant-pagination-item-link-icon,.ant-pagination-jump-prev:focus-visible .ant-pagination-item-link-icon,.ant-pagination-jump-prev:hover .ant-pagination-item-link-icon{opacity:1}.ant-pagination-jump-next:focus-visible .ant-pagination-item-ellipsis,.ant-pagination-jump-next:hover .ant-pagination-item-ellipsis,.ant-pagination-jump-prev:focus-visible .ant-pagination-item-ellipsis,.ant-pagination-jump-prev:hover .ant-pagination-item-ellipsis{opacity:0}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-prev{margin-right:8px}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-next,.ant-pagination-prev{display:inline-block;min-width:32px;height:32px;color:#000000d9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:32px;text-align:center;vertical-align:middle;list-style:none;border-radius:2px;cursor:pointer;transition:all .3s}.ant-pagination-next,.ant-pagination-prev{font-family:Arial,Helvetica,sans-serif;outline:0}.ant-pagination-next button,.ant-pagination-prev button{color:#000000d9;cursor:pointer;-webkit-user-select:none;user-select:none}.ant-pagination-next:hover button,.ant-pagination-prev:hover button{border-color:#40a9ff}.ant-pagination-next .ant-pagination-item-link,.ant-pagination-prev .ant-pagination-item-link{display:block;width:100%;height:100%;padding:0;font-size:12px;text-align:center;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;outline:none;transition:all .3s}.ant-pagination-next:focus-visible .ant-pagination-item-link,.ant-pagination-next:hover .ant-pagination-item-link,.ant-pagination-prev:focus-visible .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link{color:#1890ff;border-color:#1890ff}.ant-pagination-disabled,.ant-pagination-disabled:focus-visible,.ant-pagination-disabled:hover{cursor:not-allowed}.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination-disabled:focus-visible .ant-pagination-item-link,.ant-pagination-disabled:hover .ant-pagination-item-link{color:#00000040;border-color:#d9d9d9;cursor:not-allowed}.ant-pagination-slash{margin:0 10px 0 5px}.ant-pagination-options{display:inline-block;margin-left:16px;vertical-align:middle}@media all and (-ms-high-contrast: none){.ant-pagination-options,.ant-pagination-options ::-ms-backdrop{vertical-align:top}}.ant-pagination-options-size-changer.ant-select{display:inline-block;width:auto}.ant-pagination-options-quick-jumper{display:inline-block;height:32px;margin-left:8px;line-height:32px;vertical-align:top}.ant-pagination-options-quick-jumper input{position:relative;display:inline-block;width:100%;min-width:0;padding:4px 11px;color:#000000d9;font-size:14px;line-height:1.5715;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;transition:all .3s;width:50px;height:32px;margin:0 8px}.ant-pagination-options-quick-jumper input::placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input:placeholder-shown{text-overflow:ellipsis}.ant-pagination-options-quick-jumper input:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-input-rtl .ant-pagination-options-quick-jumper input:hover{border-right-width:0;border-left-width:1px!important}.ant-pagination-options-quick-jumper input-focused,.ant-pagination-options-quick-jumper input:focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #1890ff33}.ant-input-rtl .ant-pagination-options-quick-jumper input-focused,.ant-input-rtl .ant-pagination-options-quick-jumper input:focus{border-right-width:0;border-left-width:1px!important}.ant-pagination-options-quick-jumper input-disabled{color:#00000040;background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-pagination-options-quick-jumper input-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-pagination-options-quick-jumper input[disabled]{color:#00000040;background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-pagination-options-quick-jumper input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-pagination-options-quick-jumper input-borderless,.ant-pagination-options-quick-jumper input-borderless-disabled,.ant-pagination-options-quick-jumper input-borderless-focused,.ant-pagination-options-quick-jumper input-borderless:focus,.ant-pagination-options-quick-jumper input-borderless:hover,.ant-pagination-options-quick-jumper input-borderless[disabled]{background-color:initial;border:none;box-shadow:none}textarea.ant-pagination-options-quick-jumper input{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;transition:all .3s,height 0s}.ant-pagination-options-quick-jumper input-lg{padding:6.5px 11px;font-size:16px}.ant-pagination-options-quick-jumper input-sm{padding:0 7px}.ant-pagination-options-quick-jumper input-rtl{direction:rtl}.ant-pagination-simple .ant-pagination-next,.ant-pagination-simple .ant-pagination-prev{height:24px;line-height:24px;vertical-align:top}.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link,.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link{height:24px;background-color:initial;border:0}.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link:after,.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link:after{height:24px;line-height:24px}.ant-pagination-simple .ant-pagination-simple-pager{display:inline-block;height:24px;margin-right:8px}.ant-pagination-simple .ant-pagination-simple-pager input{box-sizing:border-box;height:100%;margin-right:8px;padding:0 6px;text-align:center;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;outline:none;transition:border-color .3s}.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:#1890ff}.ant-pagination-simple .ant-pagination-simple-pager input[disabled]{color:#00000040;background:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-pagination.mini .ant-pagination-simple-pager,.ant-pagination.mini .ant-pagination-total-text{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-item{min-width:24px;height:24px;margin:0;line-height:22px}.ant-pagination.mini .ant-pagination-item:not(.ant-pagination-item-active){background:#0000;border-color:#0000}.ant-pagination.mini .ant-pagination-next,.ant-pagination.mini .ant-pagination-prev{min-width:24px;height:24px;margin:0;line-height:24px}.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link,.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link{background:#0000;border-color:#0000}.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link:after,.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link:after{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-jump-next,.ant-pagination.mini .ant-pagination-jump-prev{height:24px;margin-right:0;line-height:24px}.ant-pagination.mini .ant-pagination-options{margin-left:2px}.ant-pagination.mini .ant-pagination-options-size-changer{top:0}.ant-pagination.mini .ant-pagination-options-quick-jumper{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-options-quick-jumper input{padding:0 7px;width:44px;height:24px}.ant-pagination.ant-pagination-disabled{cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item{background:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item a{color:#00000040;background:#0000;border:none;cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active{background:#dbdbdb;border-color:#0000}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active a{color:#fff}.ant-pagination.ant-pagination-disabled .ant-pagination-item-link{color:#00000040;background:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-pagination-simple.ant-pagination.ant-pagination-disabled .ant-pagination-item-link{background:#0000}.ant-pagination.ant-pagination-disabled .ant-pagination-item-link-icon{opacity:0}.ant-pagination.ant-pagination-disabled .ant-pagination-item-ellipsis{opacity:1}.ant-pagination.ant-pagination-disabled .ant-pagination-simple-pager{color:#00000040}@media only screen and (max-width: 992px){.ant-pagination-item-after-jump-prev,.ant-pagination-item-before-jump-next{display:none}}@media only screen and (max-width: 576px){.ant-pagination-options{display:none}}.ant-pagination-rtl .ant-pagination-item,.ant-pagination-rtl .ant-pagination-jump-next,.ant-pagination-rtl .ant-pagination-jump-prev,.ant-pagination-rtl .ant-pagination-prev,.ant-pagination-rtl .ant-pagination-total-text{margin-right:0;margin-left:8px}.ant-pagination-rtl .ant-pagination-slash{margin:0 5px 0 10px}.ant-pagination-rtl .ant-pagination-options{margin-right:16px;margin-left:0}.ant-pagination-rtl .ant-pagination-options .ant-pagination-options-size-changer.ant-select{margin-right:0;margin-left:8px}.ant-pagination-rtl .ant-pagination-options .ant-pagination-options-quick-jumper{margin-left:0}.ant-pagination-rtl.ant-pagination-simple .ant-pagination-simple-pager,.ant-pagination-rtl.ant-pagination-simple .ant-pagination-simple-pager input{margin-right:0;margin-left:8px}.ant-pagination-rtl.ant-pagination.mini .ant-pagination-options{margin-right:2px;margin-left:0}nz-pagination{display:block}.ant-popover{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:absolute;top:0;left:0;z-index:1030;font-weight:400;white-space:normal;text-align:left;cursor:auto;-webkit-user-select:text;user-select:text}.ant-popover:after{position:absolute;background:#ffffff03;content:""}.ant-popover-hidden{display:none}.ant-popover-placement-top,.ant-popover-placement-topLeft,.ant-popover-placement-topRight{padding-bottom:10px}.ant-popover-placement-right,.ant-popover-placement-rightBottom,.ant-popover-placement-rightTop{padding-left:10px}.ant-popover-placement-bottom,.ant-popover-placement-bottomLeft,.ant-popover-placement-bottomRight{padding-top:10px}.ant-popover-placement-left,.ant-popover-placement-leftBottom,.ant-popover-placement-leftTop{padding-right:10px}.ant-popover-inner{background-color:#fff;background-clip:padding-box;border-radius:2px;box-shadow:0 3px 6px -4px #0000001f,0 6px 16px 0 #00000014,0 9px 28px 8px #0000000d;box-shadow:0 0 8px #00000026\9}@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none){.ant-popover-inner{box-shadow:0 3px 6px -4px #0000001f,0 6px 16px 0 #00000014,0 9px 28px 8px #0000000d}}.ant-popover-title{min-width:177px;min-height:32px;margin:0;padding:5px 16px 4px;color:#000000d9;font-weight:500;border-bottom:1px solid #f0f0f0}.ant-popover-inner-content{padding:12px 16px;color:#000000d9}.ant-popover-message{position:relative;padding:4px 0 12px;color:#000000d9;font-size:14px}.ant-popover-message>.anticon{position:absolute;top:8.0005px;color:#faad14;font-size:14px}.ant-popover-message-title{padding-left:22px}.ant-popover-buttons{margin-bottom:4px;text-align:right}.ant-popover-buttons button{margin-left:8px}.ant-popover-arrow{position:absolute;display:block;width:8.48528137px;height:8.48528137px;overflow:hidden;background:#0000;pointer-events:none}.ant-popover-arrow-content{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:6px;height:6px;margin:auto;background-color:#fff;content:"";pointer-events:auto}.ant-popover-placement-top .ant-popover-arrow,.ant-popover-placement-topLeft .ant-popover-arrow,.ant-popover-placement-topRight .ant-popover-arrow{bottom:1.51471863px}.ant-popover-placement-top .ant-popover-arrow-content,.ant-popover-placement-topLeft .ant-popover-arrow-content,.ant-popover-placement-topRight .ant-popover-arrow-content{box-shadow:3px 3px 7px #00000012;transform:translateY(-4.24264069px) rotate(45deg)}.ant-popover-placement-top .ant-popover-arrow{left:50%;transform:translateX(-50%)}.ant-popover-placement-topLeft .ant-popover-arrow{left:16px}.ant-popover-placement-topRight .ant-popover-arrow{right:16px}.ant-popover-placement-right .ant-popover-arrow,.ant-popover-placement-rightBottom .ant-popover-arrow,.ant-popover-placement-rightTop .ant-popover-arrow{left:1.51471863px}.ant-popover-placement-right .ant-popover-arrow-content,.ant-popover-placement-rightBottom .ant-popover-arrow-content,.ant-popover-placement-rightTop .ant-popover-arrow-content{box-shadow:-3px 3px 7px #00000012;transform:translateX(4.24264069px) rotate(45deg)}.ant-popover-placement-right .ant-popover-arrow{top:50%;transform:translateY(-50%)}.ant-popover-placement-rightTop .ant-popover-arrow{top:12px}.ant-popover-placement-rightBottom .ant-popover-arrow{bottom:12px}.ant-popover-placement-bottom .ant-popover-arrow,.ant-popover-placement-bottomLeft .ant-popover-arrow,.ant-popover-placement-bottomRight .ant-popover-arrow{top:1.51471863px}.ant-popover-placement-bottom .ant-popover-arrow-content,.ant-popover-placement-bottomLeft .ant-popover-arrow-content,.ant-popover-placement-bottomRight .ant-popover-arrow-content{box-shadow:-2px -2px 5px #0000000f;transform:translateY(4.24264069px) rotate(45deg)}.ant-popover-placement-bottom .ant-popover-arrow{left:50%;transform:translateX(-50%)}.ant-popover-placement-bottomLeft .ant-popover-arrow{left:16px}.ant-popover-placement-bottomRight .ant-popover-arrow{right:16px}.ant-popover-placement-left .ant-popover-arrow,.ant-popover-placement-leftBottom .ant-popover-arrow,.ant-popover-placement-leftTop .ant-popover-arrow{right:1.51471863px}.ant-popover-placement-left .ant-popover-arrow-content,.ant-popover-placement-leftBottom .ant-popover-arrow-content,.ant-popover-placement-leftTop .ant-popover-arrow-content{box-shadow:3px -3px 7px #00000012;transform:translateX(-4.24264069px) rotate(45deg)}.ant-popover-placement-left .ant-popover-arrow{top:50%;transform:translateY(-50%)}.ant-popover-placement-leftTop .ant-popover-arrow{top:12px}.ant-popover-placement-leftBottom .ant-popover-arrow{bottom:12px}.ant-popover-magenta .ant-popover-arrow-content,.ant-popover-magenta .ant-popover-inner,.ant-popover-pink .ant-popover-arrow-content,.ant-popover-pink .ant-popover-inner{background-color:#eb2f96}.ant-popover-red .ant-popover-arrow-content,.ant-popover-red .ant-popover-inner{background-color:#f5222d}.ant-popover-volcano .ant-popover-arrow-content,.ant-popover-volcano .ant-popover-inner{background-color:#fa541c}.ant-popover-orange .ant-popover-arrow-content,.ant-popover-orange .ant-popover-inner{background-color:#fa8c16}.ant-popover-yellow .ant-popover-arrow-content,.ant-popover-yellow .ant-popover-inner{background-color:#fadb14}.ant-popover-gold .ant-popover-arrow-content,.ant-popover-gold .ant-popover-inner{background-color:#faad14}.ant-popover-cyan .ant-popover-arrow-content,.ant-popover-cyan .ant-popover-inner{background-color:#13c2c2}.ant-popover-lime .ant-popover-arrow-content,.ant-popover-lime .ant-popover-inner{background-color:#a0d911}.ant-popover-green .ant-popover-arrow-content,.ant-popover-green .ant-popover-inner{background-color:#52c41a}.ant-popover-blue .ant-popover-arrow-content,.ant-popover-blue .ant-popover-inner{background-color:#1890ff}.ant-popover-geekblue .ant-popover-arrow-content,.ant-popover-geekblue .ant-popover-inner{background-color:#2f54eb}.ant-popover-purple .ant-popover-arrow-content,.ant-popover-purple .ant-popover-inner{background-color:#722ed1}.ant-popover-rtl{direction:rtl;text-align:right}.ant-popover-rtl .ant-popover-message-title{padding-right:22px;padding-left:16px}.ant-popover-rtl .ant-popover-buttons{text-align:left}.ant-popover-rtl .ant-popover-buttons button{margin-right:8px;margin-left:0}.ant-popover{position:relative}.ant-progress{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";display:inline-block}.ant-progress-line{position:relative;width:100%;font-size:14px}.ant-progress-steps{display:inline-block}.ant-progress-steps-outer{display:flex;flex-direction:row;align-items:center}.ant-progress-steps-item{flex-shrink:0;min-width:2px;margin-right:2px;background:#f3f3f3;transition:all .3s}.ant-progress-steps-item-active{background:#1890ff}.ant-progress-small.ant-progress-line,.ant-progress-small.ant-progress-line .ant-progress-text .anticon{font-size:12px}.ant-progress-outer{display:inline-block;width:100%;margin-right:0;padding-right:0}.ant-progress-show-info .ant-progress-outer{margin-right:calc(-2em - 8px);padding-right:calc(2em + 8px)}.ant-progress-inner{position:relative;display:inline-block;width:100%;overflow:hidden;vertical-align:middle;background-color:#f5f5f5;border-radius:100px}.ant-progress-circle-trail{stroke:#f5f5f5}.ant-progress-circle-path{animation:ant-progress-appear .3s}.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#1890ff}.ant-progress-bg,.ant-progress-success-bg{position:relative;background-color:#1890ff;border-radius:100px;transition:all .4s cubic-bezier(.08,.82,.17,1) 0s}.ant-progress-success-bg{position:absolute;top:0;left:0;background-color:#52c41a}.ant-progress-text{display:inline-block;width:2em;margin-left:8px;color:#000000d9;font-size:1em;line-height:1;white-space:nowrap;text-align:left;vertical-align:middle;word-break:normal}.ant-progress-text .anticon{font-size:14px}.ant-progress-status-active .ant-progress-bg:before{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;border-radius:10px;opacity:0;animation:ant-progress-active 2.4s cubic-bezier(.23,1,.32,1) infinite;content:""}.ant-progress-status-exception .ant-progress-bg{background-color:#ff4d4f}.ant-progress-status-exception .ant-progress-text{color:#ff4d4f}.ant-progress-status-exception .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#ff4d4f}.ant-progress-status-success .ant-progress-bg{background-color:#52c41a}.ant-progress-status-success .ant-progress-text{color:#52c41a}.ant-progress-status-success .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#52c41a}.ant-progress-circle .ant-progress-inner{position:relative;line-height:1;background-color:initial}.ant-progress-circle .ant-progress-text{position:absolute;top:50%;left:50%;width:100%;margin:0;padding:0;color:#000000d9;font-size:1em;line-height:1;white-space:normal;text-align:center;transform:translate(-50%,-50%)}.ant-progress-circle .ant-progress-text .anticon{font-size:1.16666667em}.ant-progress-circle.ant-progress-status-exception .ant-progress-text{color:#ff4d4f}.ant-progress-circle.ant-progress-status-success .ant-progress-text{color:#52c41a}@keyframes ant-progress-active{0%{transform:translateX(-100%) scaleX(0);opacity:.1}20%{transform:translateX(-100%) scaleX(0);opacity:.5}to{transform:translateX(0) scaleX(1);opacity:0}}.ant-progress-rtl{direction:rtl}.ant-progress-rtl.ant-progress-show-info .ant-progress-outer{margin-right:0;margin-left:calc(-2em - 8px);padding-right:0;padding-left:calc(2em + 8px)}.ant-progress-rtl .ant-progress-success-bg{right:0;left:auto}.ant-progress-rtl.ant-progress-line .ant-progress-text,.ant-progress-rtl.ant-progress-steps .ant-progress-text{margin-right:8px;margin-left:0;text-align:right}.ant-radio-group{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";display:inline-block;font-size:0;line-height:unset}.ant-radio-group .ant-badge-count{z-index:1}.ant-radio-group>.ant-badge:not(:first-child)>.ant-radio-button-wrapper{border-left:none}.ant-radio-wrapper{box-sizing:border-box;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:relative;display:inline-flex;align-items:baseline;margin:0 8px 0 0;cursor:pointer}.ant-radio-wrapper:after{display:inline-block;width:0;overflow:hidden;content:"\a0"}.ant-radio{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:relative;top:.2em;display:inline-block;outline:none;cursor:pointer}.ant-radio-input:focus+.ant-radio-inner,.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner{border-color:#1890ff}.ant-radio-input:focus+.ant-radio-inner{box-shadow:0 0 0 3px #1890ff14}.ant-radio-checked:after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #1890ff;border-radius:50%;visibility:hidden;animation:antRadioEffect .36s ease-in-out;animation-fill-mode:both;content:""}.ant-radio-wrapper:hover .ant-radio:after,.ant-radio:hover:after{visibility:visible}.ant-radio-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;background-color:#fff;border:1px solid #d9d9d9;border-radius:50%;transition:all .3s}.ant-radio-inner:after{position:absolute;top:3px;left:3px;display:block;width:8px;height:8px;background-color:#1890ff;border-top:0;border-left:0;border-radius:8px;transform:scale(0);opacity:0;transition:all .3s cubic-bezier(.78,.14,.15,.86);content:" "}.ant-radio-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;cursor:pointer;opacity:0}.ant-radio-checked .ant-radio-inner{border-color:#1890ff}.ant-radio-checked .ant-radio-inner:after{transform:scale(1);opacity:1;transition:all .3s cubic-bezier(.78,.14,.15,.86)}.ant-radio-disabled{cursor:not-allowed}.ant-radio-disabled .ant-radio-inner{background-color:#f5f5f5;border-color:#d9d9d9!important;cursor:not-allowed}.ant-radio-disabled .ant-radio-inner:after{background-color:#0003}.ant-radio-disabled .ant-radio-input{cursor:not-allowed}.ant-radio-disabled+span{color:#00000040;cursor:not-allowed}span.ant-radio+*{padding-right:8px;padding-left:8px}.ant-radio-button-wrapper{position:relative;display:inline-block;height:32px;margin:0;padding:0 15px;color:#000000d9;font-size:14px;line-height:30px;background:#fff;border-color:#d9d9d9;border-style:solid;border-width:1.02px 1px 1px 0;cursor:pointer;transition:color .3s,background .3s,border-color .3s,box-shadow .3s}.ant-radio-button-wrapper a{color:#000000d9}.ant-radio-button-wrapper>.ant-radio-button{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%}.ant-radio-group-large .ant-radio-button-wrapper{height:40px;font-size:16px;line-height:38px}.ant-radio-group-small .ant-radio-button-wrapper{height:24px;padding:0 7px;line-height:22px}.ant-radio-button-wrapper:not(:first-child):before{position:absolute;top:-1px;left:-1px;display:block;box-sizing:initial;width:1px;height:100%;padding:1px 0;background-color:#d9d9d9;transition:background-color .3s;content:""}.ant-radio-button-wrapper:first-child{border-left:1px solid #d9d9d9;border-radius:2px 0 0 2px}.ant-radio-button-wrapper:last-child{border-radius:0 2px 2px 0}.ant-radio-button-wrapper:first-child:last-child{border-radius:2px}.ant-radio-button-wrapper:hover{position:relative;color:#1890ff}.ant-radio-button-wrapper:focus-within{box-shadow:0 0 0 3px #1890ff14}.ant-radio-button-wrapper .ant-radio-inner,.ant-radio-button-wrapper input[type=checkbox],.ant-radio-button-wrapper input[type=radio]{width:0;height:0;opacity:0;pointer-events:none}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){z-index:1;color:#1890ff;background:#fff;border-color:#1890ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):before{background-color:#1890ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child{border-color:#1890ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#40a9ff;border-color:#40a9ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover:before{background-color:#40a9ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#096dd9;border-color:#096dd9}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active:before{background-color:#096dd9}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{box-shadow:0 0 0 3px #1890ff14}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#fff;background:#1890ff;border-color:#1890ff}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#fff;background:#40a9ff;border-color:#40a9ff}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#fff;background:#096dd9;border-color:#096dd9}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{box-shadow:0 0 0 3px #1890ff14}.ant-radio-button-wrapper-disabled{cursor:not-allowed}.ant-radio-button-wrapper-disabled,.ant-radio-button-wrapper-disabled:first-child,.ant-radio-button-wrapper-disabled:hover{color:#00000040;background-color:#f5f5f5;border-color:#d9d9d9}.ant-radio-button-wrapper-disabled:first-child{border-left-color:#d9d9d9}.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked{color:#00000040;background-color:#e6e6e6;border-color:#d9d9d9;box-shadow:none}@keyframes antRadioEffect{0%{transform:scale(1);opacity:.5}to{transform:scale(1.6);opacity:0}}.ant-radio-group.ant-radio-group-rtl{direction:rtl}.ant-radio-wrapper.ant-radio-wrapper-rtl{margin-right:0;margin-left:8px;direction:rtl}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl{border-right-width:0;border-left-width:1px}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:not(:first-child):before{right:-1px;left:0}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:first-child{border-right:1px solid #d9d9d9;border-radius:0 2px 2px 0}.ant-radio-button-wrapper-checked:not([class*=" ant-radio-button-wrapper-disabled"]).ant-radio-button-wrapper:first-child{border-right-color:#40a9ff}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:last-child{border-radius:2px 0 0 2px}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper-disabled:first-child{border-right-color:#d9d9d9}.ant-radio+span:empty{display:none}.ant-rate{box-sizing:border-box;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;font-feature-settings:"tnum","tnum";display:inline-block;margin:0;padding:0;color:#fadb14;font-size:20px;line-height:unset;list-style:none;outline:none}.ant-rate-disabled .ant-rate-star{cursor:default}.ant-rate-disabled .ant-rate-star:hover{transform:scale(1)}.ant-rate-star{position:relative;display:inline-block;color:inherit;cursor:pointer}.ant-rate-star:not(:last-child){margin-right:8px}.ant-rate-star>div{transition:all .3s}.ant-rate-star>div:focus-visible,.ant-rate-star>div:hover{transform:scale(1.1)}.ant-rate-star>div:focus:not(:focus-visible){outline:0}.ant-rate-star-first,.ant-rate-star-second{color:#f0f0f0;transition:all .3s;-webkit-user-select:none;user-select:none}.ant-rate-star-first .anticon,.ant-rate-star-second .anticon{vertical-align:middle}.ant-rate-star-first{position:absolute;top:0;left:0;width:50%;height:100%;overflow:hidden;opacity:0}.ant-rate-star-half .ant-rate-star-first,.ant-rate-star-half .ant-rate-star-second{opacity:1}.ant-rate-star-full .ant-rate-star-second,.ant-rate-star-half .ant-rate-star-first{color:inherit}.ant-rate-text{display:inline-block;margin:0 8px;font-size:14px}.ant-rate-rtl{direction:rtl}.ant-rate-rtl .ant-rate-star:not(:last-child){margin-right:0;margin-left:8px}.ant-rate-rtl .ant-rate-star-first{right:0;left:auto}.ant-select-single .ant-select-selector{display:flex}.ant-select-single .ant-select-selector .ant-select-selection-search{position:absolute;top:0;right:11px;bottom:0;left:11px}.ant-select-single .ant-select-selector .ant-select-selection-search-input{width:100%}.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-single .ant-select-selector .ant-select-selection-placeholder{padding:0;line-height:30px;transition:all .3s}@supports (-moz-appearance: meterbar){.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-single .ant-select-selector .ant-select-selection-placeholder{line-height:30px}}.ant-select-single .ant-select-selector .ant-select-selection-item{position:relative;-webkit-user-select:none;user-select:none}.ant-select-single .ant-select-selector .ant-select-selection-placeholder{pointer-events:none}.ant-select-single .ant-select-selector .ant-select-selection-item:after,.ant-select-single .ant-select-selector .ant-select-selection-placeholder:after,.ant-select-single .ant-select-selector:after{display:inline-block;width:0;visibility:hidden;content:"\a0"}.ant-select-single.ant-select-show-arrow .ant-select-selection-search{right:25px}.ant-select-single.ant-select-show-arrow .ant-select-selection-item,.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder{padding-right:18px}.ant-select-single.ant-select-open .ant-select-selection-item{color:#bfbfbf}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{width:100%;height:32px;padding:0 11px}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{height:30px}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector:after{line-height:30px}.ant-select-single.ant-select-customize-input .ant-select-selector:after{display:none}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-search{position:static;width:100%}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder{position:absolute;right:0;left:0;padding:0 11px}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder:after{display:none}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector{height:40px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder,.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector:after{line-height:38px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input{height:38px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{height:24px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder,.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector:after{line-height:22px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input{height:22px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selection-search{right:7px;left:7px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{padding:0 7px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search{right:28px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder{padding-right:21px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector{padding:0 11px}.ant-select-selection-overflow{position:relative;display:flex;flex:auto;flex-wrap:wrap;max-width:100%}.ant-select-selection-overflow-item{flex:none;align-self:center;max-width:100%}.ant-select-multiple .ant-select-selector{display:flex;flex-wrap:wrap;align-items:center;padding:1px 4px}.ant-select-show-search.ant-select-multiple .ant-select-selector{cursor:text}.ant-select-disabled.ant-select-multiple .ant-select-selector{background:#f5f5f5;cursor:not-allowed}.ant-select-multiple .ant-select-selector:after{display:inline-block;width:0;margin:2px 0;line-height:24px;content:"\a0"}.ant-select-multiple.ant-select-allow-clear .ant-select-selector,.ant-select-multiple.ant-select-show-arrow .ant-select-selector{padding-right:24px}.ant-select-multiple .ant-select-selection-item{position:relative;display:flex;flex:none;box-sizing:border-box;max-width:100%;height:24px;margin-top:2px;margin-bottom:2px;line-height:22px;background:#f5f5f5;border:1px solid #f0f0f0;border-radius:2px;cursor:default;transition:font-size .3s,line-height .3s,height .3s;-webkit-user-select:none;user-select:none;margin-inline-end:4px;padding-inline-start:8px;padding-inline-end:4px}.ant-select-disabled.ant-select-multiple .ant-select-selection-item{color:#bfbfbf;border-color:#d9d9d9;cursor:not-allowed}.ant-select-multiple .ant-select-selection-item-content{display:inline-block;margin-right:4px;overflow:hidden;white-space:pre;text-overflow:ellipsis}.ant-select-multiple .ant-select-selection-item-remove{color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;color:#00000073;font-weight:700;font-size:10px;line-height:inherit;cursor:pointer}.ant-select-multiple .ant-select-selection-item-remove>*{line-height:1}.ant-select-multiple .ant-select-selection-item-remove svg{display:inline-block}.ant-select-multiple .ant-select-selection-item-remove:before{display:none}.ant-select-multiple .ant-select-selection-item-remove .ant-select-multiple .ant-select-selection-item-remove-icon{display:block}.ant-select-multiple .ant-select-selection-item-remove>.anticon{vertical-align:-.2em}.ant-select-multiple .ant-select-selection-item-remove:hover{color:#000000bf}.ant-select-multiple .ant-select-selection-overflow-item+.ant-select-selection-overflow-item .ant-select-selection-search{margin-inline-start:0}.ant-select-multiple .ant-select-selection-search{position:relative;max-width:100%;margin-top:2px;margin-bottom:2px;margin-inline-start:7px}.ant-select-multiple .ant-select-selection-search-input,.ant-select-multiple .ant-select-selection-search-mirror{height:24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:24px;transition:all .3s}.ant-select-multiple .ant-select-selection-search-input{width:100%;min-width:4.1px}.ant-select-multiple .ant-select-selection-search-mirror{position:absolute;top:0;left:0;z-index:999;white-space:pre;visibility:hidden}.ant-select-multiple .ant-select-selection-placeholder{position:absolute;top:50%;right:11px;left:11px;transform:translateY(-50%);transition:all .3s}.ant-select-multiple.ant-select-lg .ant-select-selector:after{line-height:32px}.ant-select-multiple.ant-select-lg .ant-select-selection-item{line-height:30px}.ant-select-multiple.ant-select-lg .ant-select-selection-search{height:32px;line-height:32px}.ant-select-multiple.ant-select-lg .ant-select-selection-search-input,.ant-select-multiple.ant-select-lg .ant-select-selection-search-mirror{height:32px;line-height:30px}.ant-select-multiple.ant-select-sm .ant-select-selector:after{line-height:16px}.ant-select-multiple.ant-select-sm .ant-select-selection-item{height:16px;line-height:14px}.ant-select-multiple.ant-select-sm .ant-select-selection-search{height:16px;line-height:16px}.ant-select-multiple.ant-select-sm .ant-select-selection-search-input,.ant-select-multiple.ant-select-sm .ant-select-selection-search-mirror{height:16px;line-height:14px}.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder{left:7px}.ant-select-multiple.ant-select-sm .ant-select-selection-search{margin-inline-start:3px}.ant-select-multiple.ant-select-lg .ant-select-selection-item{height:32px;line-height:32px}.ant-select-disabled .ant-select-selection-item-remove{display:none}.ant-select{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:relative;display:inline-block;cursor:pointer}.ant-select:not(.ant-select-customize-input) .ant-select-selector{position:relative;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:pointer}.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector{cursor:text}.ant-select-show-search.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:auto}.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #1890ff33}.ant-input-rtl .ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{border-right-width:0;border-left-width:1px!important}.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector{color:#00000040;background:#f5f5f5;cursor:not-allowed}.ant-select-multiple.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector{background:#f5f5f5}.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector input{cursor:not-allowed}.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{margin:0;padding:0;background:#0000;border:none;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input::-webkit-search-cancel-button{display:none;-webkit-appearance:none}.ant-select:not(.ant-select-disabled):hover .ant-select-selector{border-color:#40a9ff;border-right-width:1px!important}.ant-input-rtl .ant-select:not(.ant-select-disabled):hover .ant-select-selector{border-right-width:0;border-left-width:1px!important}.ant-select-selection-item{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media all and (-ms-high-contrast: none){.ant-select-selection-item,.ant-select-selection-item ::-ms-backdrop{flex:auto}}.ant-select-selection-placeholder{flex:1;overflow:hidden;color:#bfbfbf;white-space:nowrap;text-overflow:ellipsis;pointer-events:none}@media all and (-ms-high-contrast: none){.ant-select-selection-placeholder,.ant-select-selection-placeholder ::-ms-backdrop{flex:auto}}.ant-select-arrow{display:inline-block;color:inherit;font-style:normal;line-height:0;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:53%;right:11px;width:12px;height:12px;margin-top:-6px;color:#00000040;font-size:12px;line-height:1;text-align:center;pointer-events:none}.ant-select-arrow>*{line-height:1}.ant-select-arrow svg{display:inline-block}.ant-select-arrow:before{display:none}.ant-select-arrow .ant-select-arrow-icon{display:block}.ant-select-arrow .anticon{vertical-align:top;transition:transform .3s}.ant-select-arrow .anticon>svg{vertical-align:top}.ant-select-arrow .anticon:not(.ant-select-suffix){pointer-events:auto}.ant-select-disabled .ant-select-arrow{cursor:not-allowed}.ant-select-clear{position:absolute;top:50%;right:11px;z-index:1;display:inline-block;width:12px;height:12px;margin-top:-6px;color:#00000040;font-size:12px;font-style:normal;line-height:1;text-align:center;text-transform:none;background:#fff;cursor:pointer;opacity:0;transition:color .3s ease,opacity .15s ease;text-rendering:auto}.ant-select-clear:before{display:block}.ant-select-clear:hover{color:#00000073}.ant-select:hover .ant-select-clear{opacity:1}.ant-select-dropdown{margin:0;color:#000000d9;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum",;position:absolute;top:-9999px;left:-9999px;z-index:1050;box-sizing:border-box;padding:4px 0;overflow:hidden;font-size:14px;font-variant:normal;background-color:#fff;border-radius:2px;outline:none;box-shadow:0 3px 6px -4px #0000001f,0 6px 16px 0 #00000014,0 9px 28px 8px #0000000d}.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-bottomLeft,.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-bottomLeft{animation-name:antSlideUpIn}.ant-select-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-select-dropdown-placement-topLeft,.ant-select-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-select-dropdown-placement-topLeft{animation-name:antSlideDownIn}.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-bottomLeft{animation-name:antSlideUpOut}.ant-select-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-select-dropdown-placement-topLeft{animation-name:antSlideDownOut}.ant-select-dropdown-empty{color:#00000040}.ant-select-item-empty{color:#000000d9;color:#00000040}.ant-select-item,.ant-select-item-empty{position:relative;display:block;min-height:32px;padding:5px 12px;font-weight:400;font-size:14px;line-height:22px}.ant-select-item{color:#000000d9;cursor:pointer;transition:background .3s ease}.ant-select-item-group{color:#00000073;font-size:12px;cursor:default}.ant-select-item-option{display:flex}.ant-select-item-option-content{flex:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-select-item-option-state{flex:none}.ant-select-item-option-active:not(.ant-select-item-option-disabled){background-color:#f5f5f5}.ant-select-item-option-selected:not(.ant-select-item-option-disabled){color:#000000d9;font-weight:600;background-color:#e6f7ff}.ant-select-item-option-selected:not(.ant-select-item-option-disabled) .ant-select-item-option-state{color:#1890ff}.ant-select-item-option-disabled{color:#00000040;cursor:not-allowed}.ant-select-item-option-grouped{padding-left:24px}.ant-select-lg{font-size:16px}.ant-select-borderless .ant-select-selector{background-color:initial!important;border-color:#0000!important;box-shadow:none!important}.ant-select-rtl{direction:rtl}.ant-select-rtl .ant-select-arrow,.ant-select-rtl .ant-select-clear{right:auto;left:11px}.ant-select-dropdown-rtl{direction:rtl}.ant-select-dropdown-rtl .ant-select-item-option-grouped{padding-right:24px;padding-left:12px}.ant-select-rtl.ant-select-multiple.ant-select-allow-clear .ant-select-selector,.ant-select-rtl.ant-select-multiple.ant-select-show-arrow .ant-select-selector{padding-right:4px;padding-left:24px}.ant-select-rtl.ant-select-multiple .ant-select-selection-item{text-align:right}.ant-select-rtl.ant-select-multiple .ant-select-selection-item-content{margin-right:0;margin-left:4px;text-align:right}.ant-select-rtl.ant-select-multiple .ant-select-selection-search-mirror{right:0;left:auto}.ant-select-rtl.ant-select-multiple .ant-select-selection-placeholder{right:11px;left:auto}.ant-select-rtl.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder{right:7px}.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-placeholder{right:0;left:9px;text-align:right}.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-search{right:11px;left:25px}.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-item,.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder{padding-right:0;padding-left:18px}.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search{right:6px}.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder{padding-right:0;padding-left:21px}.ant-select-dropdown{top:100%;left:0;position:relative;width:100%;margin-top:4px;margin-bottom:4px;display:block}.ant-select-dropdown .cdk-virtual-scroll-content-wrapper{right:0}.ant-select-dropdown .full-width{contain:none}.ant-select-dropdown .full-width .cdk-virtual-scroll-content-wrapper{position:static}.ant-skeleton{display:table;width:100%}.ant-skeleton-header{display:table-cell;padding-right:16px;vertical-align:top}.ant-skeleton-header .ant-skeleton-avatar{display:inline-block;vertical-align:top;background:#bebebe33;width:32px;height:32px;line-height:32px}.ant-skeleton-header .ant-skeleton-avatar.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-header .ant-skeleton-avatar-lg{width:40px;height:40px;line-height:40px}.ant-skeleton-header .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-header .ant-skeleton-avatar-sm{width:24px;height:24px;line-height:24px}.ant-skeleton-header .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-content{display:table-cell;width:100%;vertical-align:top}.ant-skeleton-content .ant-skeleton-title{width:100%;height:16px;margin-top:16px;background:#bebebe33;border-radius:4px}.ant-skeleton-content .ant-skeleton-title+.ant-skeleton-paragraph{margin-top:24px}.ant-skeleton-content .ant-skeleton-paragraph{padding:0}.ant-skeleton-content .ant-skeleton-paragraph>li{width:100%;height:16px;list-style:none;background:#bebebe33;border-radius:4px}.ant-skeleton-content .ant-skeleton-paragraph>li:last-child:not(:first-child):not(:nth-child(2)){width:61%}.ant-skeleton-content .ant-skeleton-paragraph>li+li{margin-top:16px}.ant-skeleton-with-avatar .ant-skeleton-content .ant-skeleton-title{margin-top:12px}.ant-skeleton-with-avatar .ant-skeleton-content .ant-skeleton-title+.ant-skeleton-paragraph{margin-top:28px}.ant-skeleton-round .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton-round .ant-skeleton-content .ant-skeleton-title{border-radius:100px}.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar,.ant-skeleton.ant-skeleton-active .ant-skeleton-button,.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title,.ant-skeleton.ant-skeleton-active .ant-skeleton-image,.ant-skeleton.ant-skeleton-active .ant-skeleton-input{background:linear-gradient(90deg,#bebebe33 25%,#8181813d 37%,#bebebe33 63%);background-size:400% 100%;animation:ant-skeleton-loading 1.4s ease infinite}.ant-skeleton-element{display:inline-block;width:auto}.ant-skeleton-element .ant-skeleton-button{display:inline-block;vertical-align:top;background:#bebebe33;border-radius:2px;width:64px;height:32px;line-height:32px}.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-circle{width:32px;border-radius:50%}.ant-skeleton-element .ant-skeleton-button.ant-skeleton-button-round{border-radius:32px}.ant-skeleton-element .ant-skeleton-button-lg{width:80px;height:40px;line-height:40px}.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-circle{width:40px;border-radius:50%}.ant-skeleton-element .ant-skeleton-button-lg.ant-skeleton-button-round{border-radius:40px}.ant-skeleton-element .ant-skeleton-button-sm{width:48px;height:24px;line-height:24px}.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-circle{width:24px;border-radius:50%}.ant-skeleton-element .ant-skeleton-button-sm.ant-skeleton-button-round{border-radius:24px}.ant-skeleton-element .ant-skeleton-avatar{display:inline-block;vertical-align:top;background:#bebebe33;width:32px;height:32px;line-height:32px}.ant-skeleton-element .ant-skeleton-avatar.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-avatar-lg{width:40px;height:40px;line-height:40px}.ant-skeleton-element .ant-skeleton-avatar-lg.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-avatar-sm{width:24px;height:24px;line-height:24px}.ant-skeleton-element .ant-skeleton-avatar-sm.ant-skeleton-avatar-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-input{display:inline-block;vertical-align:top;background:#bebebe33;width:100%;height:32px;line-height:32px}.ant-skeleton-element .ant-skeleton-input-lg{width:100%;height:40px;line-height:40px}.ant-skeleton-element .ant-skeleton-input-sm{width:100%;height:24px;line-height:24px}.ant-skeleton-element .ant-skeleton-image{display:flex;align-items:center;justify-content:center;vertical-align:top;background:#bebebe33;width:96px;height:96px;line-height:96px}.ant-skeleton-element .ant-skeleton-image.ant-skeleton-image-circle{border-radius:50%}.ant-skeleton-element .ant-skeleton-image-path{fill:#bfbfbf}.ant-skeleton-element .ant-skeleton-image-svg{width:48px;height:48px;line-height:48px;max-width:192px;max-height:192px}.ant-skeleton-element .ant-skeleton-image-svg.ant-skeleton-image-circle{border-radius:50%}@keyframes ant-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.ant-skeleton-rtl{direction:rtl}.ant-skeleton-rtl .ant-skeleton-header{padding-right:0;padding-left:16px}.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-avatar,.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-paragraph>li,.ant-skeleton-rtl.ant-skeleton.ant-skeleton-active .ant-skeleton-content .ant-skeleton-title{animation-name:ant-skeleton-loading-rtl}@keyframes ant-skeleton-loading-rtl{0%{background-position:0 50%}to{background-position:100% 50%}}.ant-slider{box-sizing:border-box;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:relative;height:12px;margin:10px 6px;padding:4px 0;cursor:pointer;touch-action:none}.ant-slider-vertical{width:12px;height:100%;margin:6px 10px;padding:0 4px}.ant-slider-vertical .ant-slider-rail{width:4px;height:100%}.ant-slider-vertical .ant-slider-track{width:4px}.ant-slider-vertical .ant-slider-handle{margin-top:-6px;margin-left:-5px}.ant-slider-vertical .ant-slider-mark{top:0;left:12px;width:18px;height:100%}.ant-slider-vertical .ant-slider-mark-text{left:4px;white-space:nowrap}.ant-slider-vertical .ant-slider-step{width:4px;height:100%}.ant-slider-vertical .ant-slider-dot{top:auto;left:2px;margin-bottom:-4px}.ant-slider-tooltip .ant-tooltip-inner{min-width:unset}.ant-slider-rtl.ant-slider-vertical .ant-slider-handle{margin-right:-5px;margin-left:0}.ant-slider-rtl.ant-slider-vertical .ant-slider-mark{right:12px;left:auto}.ant-slider-rtl.ant-slider-vertical .ant-slider-mark-text{right:4px;left:auto}.ant-slider-rtl.ant-slider-vertical .ant-slider-dot{right:2px;left:auto}.ant-slider-with-marks{margin-bottom:28px}.ant-slider-rail{width:100%;background-color:#f5f5f5}.ant-slider-rail,.ant-slider-track{position:absolute;height:4px;border-radius:2px;transition:background-color .3s}.ant-slider-track{background-color:#91d5ff}.ant-slider-handle{position:absolute;width:14px;height:14px;margin-top:-5px;background-color:#fff;border:2px solid #91d5ff;border-radius:50%;box-shadow:0;cursor:pointer;transition:border-color .3s,box-shadow .6s,transform .3s cubic-bezier(.18,.89,.32,1.28)}.ant-slider-handle-dragging.ant-slider-handle-dragging.ant-slider-handle-dragging,.ant-slider-handle:focus{border-color:#46a6ff;box-shadow:0 0 0 5px #1890ff1f}.ant-slider-handle:focus{outline:none}.ant-slider-handle.ant-tooltip-open{border-color:#1890ff}.ant-slider:hover .ant-slider-rail{background-color:#e1e1e1}.ant-slider:hover .ant-slider-track{background-color:#69c0ff}.ant-slider:hover .ant-slider-handle:not(.ant-tooltip-open){border-color:#69c0ff}.ant-slider-mark{position:absolute;top:14px;left:0;width:100%;font-size:14px}.ant-slider-mark-text{position:absolute;display:inline-block;color:#00000073;text-align:center;word-break:keep-all;cursor:pointer;-webkit-user-select:none;user-select:none}.ant-slider-mark-text-active{color:#000000d9}.ant-slider-step{position:absolute;width:100%;height:4px;background:#0000}.ant-slider-dot{position:absolute;top:-2px;width:8px;height:8px;background-color:#fff;border:2px solid #f0f0f0;border-radius:50%;cursor:pointer}.ant-slider-dot,.ant-slider-dot:first-child,.ant-slider-dot:last-child{margin-left:-4px}.ant-slider-dot-active{border-color:#8cc8ff}.ant-slider-disabled{cursor:not-allowed}.ant-slider-disabled .ant-slider-track{background-color:#00000040!important}.ant-slider-disabled .ant-slider-dot,.ant-slider-disabled .ant-slider-handle{background-color:#fff;border-color:#00000040!important;box-shadow:none;cursor:not-allowed}.ant-slider-disabled .ant-slider-dot,.ant-slider-disabled .ant-slider-mark-text{cursor:not-allowed!important}.ant-slider-rtl{direction:rtl}.ant-slider-rtl .ant-slider-mark{right:0;left:auto}.ant-slider-rtl .ant-slider-dot,.ant-slider-rtl .ant-slider-dot:first-child,.ant-slider-rtl .ant-slider-dot:last-child{margin-right:-4px;margin-left:0}.ant-spin{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:absolute;display:none;color:#1890ff;text-align:center;vertical-align:middle;opacity:0;transition:transform .3s cubic-bezier(.78,.14,.15,.86)}.ant-spin-spinning{position:static;display:inline-block;opacity:1}.ant-spin-nested-loading{position:relative}.ant-spin-nested-loading>div>.ant-spin{position:absolute;top:0;left:0;z-index:4;display:block;width:100%;height:100%;max-height:400px}.ant-spin-nested-loading>div>.ant-spin .ant-spin-dot{position:absolute;top:50%;left:50%;margin:-10px}.ant-spin-nested-loading>div>.ant-spin .ant-spin-text{position:absolute;top:50%;width:100%;padding-top:5px;text-shadow:0 1px 2px #fff}.ant-spin-nested-loading>div>.ant-spin.ant-spin-show-text .ant-spin-dot{margin-top:-20px}.ant-spin-nested-loading>div>.ant-spin-sm .ant-spin-dot{margin:-7px}.ant-spin-nested-loading>div>.ant-spin-sm .ant-spin-text{padding-top:2px}.ant-spin-nested-loading>div>.ant-spin-sm.ant-spin-show-text .ant-spin-dot{margin-top:-17px}.ant-spin-nested-loading>div>.ant-spin-lg .ant-spin-dot{margin:-16px}.ant-spin-nested-loading>div>.ant-spin-lg .ant-spin-text{padding-top:11px}.ant-spin-nested-loading>div>.ant-spin-lg.ant-spin-show-text .ant-spin-dot{margin-top:-26px}.ant-spin-container{position:relative;transition:opacity .3s}.ant-spin-container:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:none\9;width:100%;height:100%;background:#fff;opacity:0;transition:all .3s;content:"";pointer-events:none}.ant-spin-blur{clear:both;overflow:hidden;opacity:.5;-webkit-user-select:none;user-select:none;pointer-events:none}.ant-spin-blur:after{opacity:.4;pointer-events:auto}.ant-spin-tip{color:#00000073}.ant-spin-dot{position:relative;display:inline-block;font-size:20px;width:1em;height:1em}.ant-spin-dot-item{position:absolute;display:block;width:9px;height:9px;background-color:#1890ff;border-radius:100%;transform:scale(.75);transform-origin:50% 50%;opacity:.3;animation:antSpinMove 1s linear infinite alternate}.ant-spin-dot-item:first-child{top:0;left:0}.ant-spin-dot-item:nth-child(2){top:0;right:0;animation-delay:.4s}.ant-spin-dot-item:nth-child(3){right:0;bottom:0;animation-delay:.8s}.ant-spin-dot-item:nth-child(4){bottom:0;left:0;animation-delay:1.2s}.ant-spin-dot-spin{transform:rotate(45deg);animation:antRotate 1.2s linear infinite}.ant-spin-sm .ant-spin-dot{font-size:14px}.ant-spin-sm .ant-spin-dot i{width:6px;height:6px}.ant-spin-lg .ant-spin-dot{font-size:32px}.ant-spin-lg .ant-spin-dot i{width:14px;height:14px}.ant-spin.ant-spin-show-text .ant-spin-text{display:block}@media all and (-ms-high-contrast: none), (-ms-high-contrast: active){.ant-spin-blur{background:#fff;opacity:.5}}@keyframes antSpinMove{to{opacity:1}}@keyframes antRotate{to{transform:rotate(405deg)}}.ant-spin-rtl{direction:rtl}.ant-spin-rtl .ant-spin-dot-spin{transform:rotate(-45deg);animation-name:antRotateRtl}@keyframes antRotateRtl{to{transform:rotate(-405deg)}}nz-spin{display:block}.ant-statistic{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum"}.ant-statistic-title{margin-bottom:4px;color:#00000073;font-size:14px}.ant-statistic-content{color:#000000d9;font-size:24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.ant-statistic-content-value{display:inline-block;direction:ltr}.ant-statistic-content-prefix,.ant-statistic-content-suffix{display:inline-block}.ant-statistic-content-prefix{margin-right:4px}.ant-statistic-content-suffix{margin-left:4px}.ant-statistic-rtl{direction:rtl}.ant-statistic-rtl .ant-statistic-content-prefix{margin-right:0;margin-left:4px}.ant-statistic-rtl .ant-statistic-content-suffix{margin-right:4px;margin-left:0}.ant-steps{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";display:flex;width:100%;font-size:0;text-align:initial}.ant-steps-item{position:relative;display:inline-block;flex:1;overflow:hidden;vertical-align:top}.ant-steps-item-container{outline:none}.ant-steps-item:last-child{flex:none}.ant-steps-item:last-child>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after,.ant-steps-item:last-child>.ant-steps-item-container>.ant-steps-item-tail{display:none}.ant-steps-item-content,.ant-steps-item-icon{display:inline-block;vertical-align:top}.ant-steps-item-icon{width:32px;height:32px;margin:0 8px 0 0;font-size:16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:32px;text-align:center;border:1px solid #00000040;border-radius:32px;transition:background-color .3s,border-color .3s}.ant-steps-item-icon .ant-steps-icon{position:relative;top:-.5px;color:#1890ff;line-height:1}.ant-steps-item-tail{position:absolute;top:12px;left:0;width:100%;padding:0 10px}.ant-steps-item-tail:after{display:inline-block;width:100%;height:1px;background:#f0f0f0;border-radius:1px;transition:background .3s;content:""}.ant-steps-item-title{position:relative;display:inline-block;padding-right:16px;color:#000000d9;font-size:16px;line-height:32px}.ant-steps-item-title:after{position:absolute;top:16px;left:100%;display:block;width:9999px;height:1px;background:#f0f0f0;content:""}.ant-steps-item-subtitle{display:inline;margin-left:8px;font-weight:400}.ant-steps-item-description,.ant-steps-item-subtitle{color:#00000073;font-size:14px}.ant-steps-item-wait .ant-steps-item-icon{background-color:#fff;border-color:#00000040}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon{color:#00000040}.ant-steps-item-wait .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#00000040}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:#00000073}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#f0f0f0}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:#00000073}.ant-steps-item-wait>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#f0f0f0}.ant-steps-item-process .ant-steps-item-icon{background-color:#fff;border-color:#1890ff}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#1890ff}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:#000000d9}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#f0f0f0}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:#000000d9}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#f0f0f0}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-icon{background:#1890ff}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-icon .ant-steps-icon{color:#fff}.ant-steps-item-process>.ant-steps-item-container>.ant-steps-item-title{font-weight:500}.ant-steps-item-finish .ant-steps-item-icon{background-color:#fff;border-color:#1890ff}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}.ant-steps-item-finish .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#1890ff}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:#000000d9}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#1890ff}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:#00000073}.ant-steps-item-finish>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#1890ff}.ant-steps-item-error .ant-steps-item-icon{background-color:#fff;border-color:#ff4d4f}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon{color:#ff4d4f}.ant-steps-item-error .ant-steps-item-icon>.ant-steps-icon .ant-steps-icon-dot{background:#ff4d4f}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title{color:#ff4d4f}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{background-color:#f0f0f0}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-description{color:#ff4d4f}.ant-steps-item-error>.ant-steps-item-container>.ant-steps-item-tail:after{background-color:#f0f0f0}.ant-steps-item.ant-steps-next-error .ant-steps-item-title:after{background:#ff4d4f}.ant-steps-item-disabled{cursor:not-allowed}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]{cursor:pointer}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-description,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-icon .ant-steps-icon,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button] .ant-steps-item-title{transition:color .3s}.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-description,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-subtitle,.ant-steps .ant-steps-item:not(.ant-steps-item-active)>.ant-steps-item-container[role=button]:hover .ant-steps-item-title{color:#1890ff}.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon{border-color:#1890ff}.ant-steps .ant-steps-item:not(.ant-steps-item-active):not(.ant-steps-item-process)>.ant-steps-item-container[role=button]:hover .ant-steps-item-icon .ant-steps-icon{color:#1890ff}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-left:16px;white-space:nowrap}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-left:0}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child .ant-steps-item-title{padding-right:0}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-tail{display:none}.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item-description{max-width:140px;white-space:normal}.ant-steps-item-custom>.ant-steps-item-container>.ant-steps-item-icon{height:auto;background:none;border:0}.ant-steps-item-custom>.ant-steps-item-container>.ant-steps-item-icon>.ant-steps-icon{top:0;left:.5px;width:32px;height:32px;font-size:24px;line-height:32px}.ant-steps-item-custom.ant-steps-item-process .ant-steps-item-icon>.ant-steps-icon{color:#1890ff}.ant-steps:not(.ant-steps-vertical) .ant-steps-item-custom .ant-steps-item-icon{width:auto;background:none}.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-left:12px}.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-left:0}.ant-steps-small .ant-steps-item-icon{width:24px;height:24px;margin:0 8px 0 0;font-size:12px;line-height:24px;text-align:center;border-radius:24px}.ant-steps-small .ant-steps-item-title{padding-right:12px;font-size:14px;line-height:24px}.ant-steps-small .ant-steps-item-title:after{top:12px}.ant-steps-small .ant-steps-item-description{color:#00000073;font-size:14px}.ant-steps-small .ant-steps-item-tail{top:8px}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon{width:inherit;height:inherit;line-height:inherit;background:none;border:0;border-radius:0}.ant-steps-small .ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{font-size:24px;line-height:24px;transform:none}.ant-steps-vertical{display:flex;flex-direction:column}.ant-steps-vertical>.ant-steps-item{display:block;flex:1 0 auto;padding-left:0;overflow:visible}.ant-steps-vertical>.ant-steps-item .ant-steps-item-icon{float:left;margin-right:16px}.ant-steps-vertical>.ant-steps-item .ant-steps-item-content{display:block;min-height:48px;overflow:hidden}.ant-steps-vertical>.ant-steps-item .ant-steps-item-title{line-height:32px}.ant-steps-vertical>.ant-steps-item .ant-steps-item-description{padding-bottom:12px}.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{position:absolute;top:0;left:16px;width:1px;height:100%;padding:38px 0 6px}.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail:after{width:1px;height:100%}.ant-steps-vertical>.ant-steps-item:not(:last-child)>.ant-steps-item-container>.ant-steps-item-tail{display:block}.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-content>.ant-steps-item-title:after{display:none}.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-tail{position:absolute;top:0;left:12px;padding:30px 0 6px}.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-title{line-height:24px}.ant-steps-label-vertical .ant-steps-item{overflow:visible}.ant-steps-label-vertical .ant-steps-item-tail{margin-left:58px;padding:3.5px 24px}.ant-steps-label-vertical .ant-steps-item-content{display:block;width:116px;margin-top:8px;text-align:center}.ant-steps-label-vertical .ant-steps-item-icon{display:inline-block;margin-left:42px}.ant-steps-label-vertical .ant-steps-item-title{padding-right:0;padding-left:0}.ant-steps-label-vertical .ant-steps-item-title:after{display:none}.ant-steps-label-vertical .ant-steps-item-subtitle{display:block;margin-bottom:4px;margin-left:0;line-height:1.5715}.ant-steps-label-vertical.ant-steps-small:not(.ant-steps-dot) .ant-steps-item-icon{margin-left:46px}.ant-steps-dot .ant-steps-item-title,.ant-steps-dot.ant-steps-small .ant-steps-item-title{line-height:1.5715}.ant-steps-dot .ant-steps-item-tail,.ant-steps-dot.ant-steps-small .ant-steps-item-tail{top:2px;width:100%;margin:0 0 0 70px;padding:0}.ant-steps-dot .ant-steps-item-tail:after,.ant-steps-dot.ant-steps-small .ant-steps-item-tail:after{width:calc(100% - 20px);height:3px;margin-left:12px}.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item:first-child .ant-steps-icon-dot{left:2px}.ant-steps-dot .ant-steps-item-icon,.ant-steps-dot.ant-steps-small .ant-steps-item-icon{width:8px;height:8px;margin-left:67px;padding-right:0;line-height:8px;background:#0000;border:0}.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot{position:relative;float:left;width:100%;height:100%;border-radius:100px;transition:all .3s}.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot:after,.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot:after{position:absolute;top:-12px;left:-26px;width:60px;height:32px;background:rgba(0,0,0,.001);content:""}.ant-steps-dot .ant-steps-item-content,.ant-steps-dot.ant-steps-small .ant-steps-item-content{width:140px}.ant-steps-dot .ant-steps-item-process .ant-steps-item-icon,.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-item-icon{position:relative;top:-1px;width:10px;height:10px;line-height:10px;background:none}.ant-steps-dot .ant-steps-item-process .ant-steps-icon:first-child .ant-steps-icon-dot,.ant-steps-dot.ant-steps-small .ant-steps-item-process .ant-steps-icon:first-child .ant-steps-icon-dot{left:0}.ant-steps-vertical.ant-steps-dot .ant-steps-item-icon{margin-top:8px;margin-left:0;background:none}.ant-steps-vertical.ant-steps-dot .ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{top:2px;left:-9px;margin:0;padding:22px 0 4px}.ant-steps-vertical.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot{left:0}.ant-steps-vertical.ant-steps-dot .ant-steps-item-content{width:inherit}.ant-steps-vertical.ant-steps-dot .ant-steps-item-process .ant-steps-item-container .ant-steps-item-icon .ant-steps-icon-dot{left:-2px}.ant-steps-navigation{padding-top:12px}.ant-steps-navigation.ant-steps-small .ant-steps-item-container{margin-left:-12px}.ant-steps-navigation .ant-steps-item{overflow:visible;text-align:center}.ant-steps-navigation .ant-steps-item-container{display:inline-block;height:100%;margin-left:-16px;padding-bottom:12px;text-align:left;transition:opacity .3s}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-content{max-width:auto}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title{max-width:100%;padding-right:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title:after{display:none}.ant-steps-navigation .ant-steps-item:not(.ant-steps-item-active) .ant-steps-item-container[role=button]{cursor:pointer}.ant-steps-navigation .ant-steps-item:not(.ant-steps-item-active) .ant-steps-item-container[role=button]:hover{opacity:.85}.ant-steps-navigation .ant-steps-item:last-child{flex:1}.ant-steps-navigation .ant-steps-item:last-child:after{display:none}.ant-steps-navigation .ant-steps-item:after{position:absolute;top:50%;left:100%;display:inline-block;width:12px;height:12px;margin-top:-14px;margin-left:-2px;border:1px solid #00000040;border-bottom:none;border-left:none;transform:rotate(45deg);content:""}.ant-steps-navigation .ant-steps-item:before{position:absolute;bottom:0;left:50%;display:inline-block;width:0;height:2px;background-color:#1890ff;transition:width .3s,left .3s;transition-timing-function:ease-out;content:""}.ant-steps-navigation .ant-steps-item.ant-steps-item-active:before{left:0;width:100%}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item{margin-right:0!important}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item:before{display:none}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item.ant-steps-item-active:before{top:0;right:0;left:unset;display:block;width:3px;height:calc(100% - 24px)}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item:after{position:relative;top:-2px;left:50%;display:block;width:8px;height:8px;margin-bottom:8px;text-align:center;transform:rotate(135deg)}.ant-steps-navigation.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{visibility:hidden}.ant-steps-rtl{direction:rtl}.ant-steps.ant-steps-rtl .ant-steps-item-icon{margin-right:0;margin-left:8px}.ant-steps-rtl .ant-steps-item-tail{right:0;left:auto}.ant-steps-rtl .ant-steps-item-title{padding-right:0;padding-left:16px}.ant-steps-rtl .ant-steps-item-title:after{right:100%;left:auto}.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-right:16px;padding-left:0}.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-right:0}.ant-steps-rtl.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:last-child .ant-steps-item-title{padding-left:0}.ant-steps-rtl .ant-steps-item-custom .ant-steps-item-icon>.ant-steps-icon{right:.5px;left:auto}.ant-steps-rtl.ant-steps-navigation.ant-steps-small .ant-steps-item-container{margin-right:-12px;margin-left:0}.ant-steps-rtl.ant-steps-navigation .ant-steps-item-container{margin-right:-16px;margin-left:0;text-align:right}.ant-steps-rtl.ant-steps-navigation .ant-steps-item-container .ant-steps-item-title{padding-left:0}.ant-steps-rtl.ant-steps-navigation .ant-steps-item:after{right:100%;left:auto;margin-right:-2px;margin-left:0;transform:rotate(225deg)}.ant-steps-rtl.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item{padding-right:12px;padding-left:0}.ant-steps-rtl.ant-steps-small.ant-steps-horizontal:not(.ant-steps-label-vertical) .ant-steps-item:first-child{padding-right:0}.ant-steps-rtl.ant-steps-small .ant-steps-item-title{padding-right:0;padding-left:12px}.ant-steps-rtl.ant-steps-vertical>.ant-steps-item .ant-steps-item-icon{float:right;margin-right:0;margin-left:16px}.ant-steps-rtl.ant-steps-vertical>.ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{right:16px;left:auto}.ant-steps-rtl.ant-steps-vertical.ant-steps-small .ant-steps-item-container .ant-steps-item-tail{right:12px;left:auto}.ant-steps-rtl.ant-steps-label-vertical .ant-steps-item-title{padding-left:0}.ant-steps-rtl.ant-steps-dot .ant-steps-item-tail,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-tail{margin:0 70px 0 0}.ant-steps-rtl.ant-steps-dot .ant-steps-item-tail:after,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-tail:after{margin-right:12px;margin-left:0}.ant-steps-rtl.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item:first-child .ant-steps-icon-dot{right:2px;left:auto}.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon{margin-right:67px;margin-left:0}.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot{float:right}.ant-steps-rtl.ant-steps-dot .ant-steps-item-icon .ant-steps-icon-dot:after,.ant-steps-rtl.ant-steps-dot.ant-steps-small .ant-steps-item-icon .ant-steps-icon-dot:after{right:-26px;left:auto}.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item-icon{margin-right:0;margin-left:16px}.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item>.ant-steps-item-container>.ant-steps-item-tail{right:-9px;left:auto}.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item:first-child .ant-steps-icon-dot{right:0;left:auto}.ant-steps-rtl.ant-steps-vertical.ant-steps-dot .ant-steps-item-process .ant-steps-icon-dot{right:-2px;left:auto}.ant-steps-rtl.ant-steps-with-progress.ant-steps-horizontal.ant-steps-label-horizontal .ant-steps-item:first-child.ant-steps-item-active{padding-right:4px}.ant-steps-with-progress .ant-steps-item{padding-top:4px}.ant-steps-with-progress .ant-steps-item .ant-steps-item-tail{top:4px!important}.ant-steps-with-progress.ant-steps-horizontal .ant-steps-item:first-child{padding-bottom:4px;padding-left:4px}.ant-steps-with-progress .ant-steps-item-icon{position:relative}.ant-steps-with-progress .ant-steps-item-icon .ant-progress{position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px}.ant-switch{margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:relative;display:inline-block;box-sizing:border-box;min-width:44px;height:22px;line-height:22px;vertical-align:middle;background-color:#00000040;border:0;border-radius:100px;cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none}.ant-switch:focus{outline:0;box-shadow:0 0 0 2px #0000001a}.ant-switch-checked:focus{box-shadow:0 0 0 2px #1890ff33}.ant-switch:focus:hover{box-shadow:none}.ant-switch-checked{background-color:#1890ff}.ant-switch-disabled,.ant-switch-loading{cursor:not-allowed;opacity:.4}.ant-switch-disabled *,.ant-switch-loading *{box-shadow:none;cursor:not-allowed}.ant-switch-inner{display:block;margin:0 7px 0 25px;color:#fff;font-size:12px;transition:margin .2s}.ant-switch-checked .ant-switch-inner{margin:0 25px 0 7px}.ant-switch-handle{top:2px;left:2px;width:18px;height:18px}.ant-switch-handle,.ant-switch-handle:before{position:absolute;transition:all .2s ease-in-out}.ant-switch-handle:before{top:0;right:0;bottom:0;left:0;background-color:#fff;border-radius:9px;box-shadow:0 2px 4px 0 #00230b33;content:""}.ant-switch-checked .ant-switch-handle{left:calc(100% - 18px - 2px)}.ant-switch:not(.ant-switch-disabled):active .ant-switch-handle:before{right:-30%;left:0}.ant-switch:not(.ant-switch-disabled):active.ant-switch-checked .ant-switch-handle:before{right:0;left:-30%}.ant-switch-loading-icon{position:relative;top:2px;color:#000000a6;vertical-align:top}.ant-switch-checked .ant-switch-loading-icon{color:#1890ff}.ant-switch-small{min-width:28px;height:16px;line-height:16px}.ant-switch-small .ant-switch-inner{margin:0 5px 0 18px;font-size:12px}.ant-switch-small .ant-switch-handle{width:12px;height:12px}.ant-switch-small .ant-switch-loading-icon{top:1.5px;font-size:9px}.ant-switch-small.ant-switch-checked .ant-switch-inner{margin:0 18px 0 5px}.ant-switch-small.ant-switch-checked .ant-switch-handle{left:calc(100% - 12px - 2px)}.ant-switch-rtl{direction:rtl}.ant-switch-rtl .ant-switch-inner{margin:0 25px 0 7px}.ant-switch-rtl .ant-switch-handle{right:2px;left:auto}.ant-switch-rtl:not(.ant-switch-rtl-disabled):active .ant-switch-handle:before{right:0;left:-30%}.ant-switch-rtl:not(.ant-switch-rtl-disabled):active.ant-switch-checked .ant-switch-handle:before{right:-30%;left:0}.ant-switch-rtl.ant-switch-checked .ant-switch-inner{margin:0 7px 0 25px}.ant-switch-rtl.ant-switch-checked .ant-switch-handle{right:calc(100% - 18px - 2px)}.ant-switch-rtl.ant-switch-small.ant-switch-checked .ant-switch-handle{right:calc(100% - 12px - 2px)}nz-switch{display:inline-block}.ant-table.ant-table-middle{font-size:14px}.ant-table.ant-table-middle .ant-table-footer,.ant-table.ant-table-middle .ant-table-tbody>tr>td,.ant-table.ant-table-middle .ant-table-thead>tr>th,.ant-table.ant-table-middle .ant-table-title,.ant-table.ant-table-middle tfoot>tr>td,.ant-table.ant-table-middle tfoot>tr>th{padding:12px 8px}.ant-table.ant-table-middle .ant-table-filter-trigger{margin-right:-4px}.ant-table.ant-table-middle .ant-table-expanded-row-fixed{margin:-12px -8px}.ant-table.ant-table-middle .ant-table-tbody .ant-table-wrapper:only-child .ant-table{margin:-12px -8px -12px 25px}.ant-table.ant-table-small{font-size:14px}.ant-table.ant-table-small .ant-table-footer,.ant-table.ant-table-small .ant-table-tbody>tr>td,.ant-table.ant-table-small .ant-table-thead>tr>th,.ant-table.ant-table-small .ant-table-title,.ant-table.ant-table-small tfoot>tr>td,.ant-table.ant-table-small tfoot>tr>th{padding:8px}.ant-table.ant-table-small .ant-table-filter-trigger{margin-right:-4px}.ant-table.ant-table-small .ant-table-expanded-row-fixed{margin:-8px}.ant-table.ant-table-small .ant-table-tbody .ant-table-wrapper:only-child .ant-table{margin:-8px -8px -8px 25px}.ant-table-small .ant-table-thead>tr>th{background-color:#fafafa}.ant-table-small .ant-table-selection-column{width:46px;min-width:46px}.ant-table.ant-table-bordered>.ant-table-title{border:1px solid #f0f0f0;border-bottom:0}.ant-table.ant-table-bordered>.ant-table-container{border:1px solid #f0f0f0;border-right:0;border-bottom:0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>th{border-right:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr:not(:last-child)>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr:not(:last-child)>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr:not(:last-child)>th,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr:not(:last-child)>th{border-bottom:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr>th:before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr>th:before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr>th:before,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>th:before{background-color:initial!important}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>thead>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>thead>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>thead>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>thead>tr>.ant-table-cell-fix-right-first:after{border-right:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-16px -17px}.ant-table.ant-table-bordered>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-header>table>tbody>tr>td>.ant-table-expanded-row-fixed:after,.ant-table.ant-table-bordered>.ant-table-container>.ant-table-summary>table>tbody>tr>td>.ant-table-expanded-row-fixed:after{position:absolute;top:0;right:1px;bottom:0;border-right:1px solid #f0f0f0;content:""}.ant-table.ant-table-bordered.ant-table-scroll-horizontal>.ant-table-container>.ant-table-body>table>tbody>tr.ant-table-expanded-row>td,.ant-table.ant-table-bordered.ant-table-scroll-horizontal>.ant-table-container>.ant-table-body>table>tbody>tr.ant-table-placeholder>td{border-right:0}.ant-table.ant-table-bordered.ant-table-middle>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered.ant-table-middle>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-12px -9px}.ant-table.ant-table-bordered.ant-table-small>.ant-table-container>.ant-table-body>table>tbody>tr>td>.ant-table-expanded-row-fixed,.ant-table.ant-table-bordered.ant-table-small>.ant-table-container>.ant-table-content>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-8px -9px}.ant-table.ant-table-bordered>.ant-table-footer{border:1px solid #f0f0f0;border-top:0}.ant-table-cell .ant-table-container:first-child{border-top:0}.ant-table-cell-scrollbar{box-shadow:0 1px 0 1px #fafafa}.ant-table-wrapper{clear:both;max-width:100%}.ant-table-wrapper:before{display:table;content:""}.ant-table-wrapper:after{display:table;clear:both;content:""}.ant-table{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:relative;font-size:14px;background:#fff;border-radius:2px}.ant-table table{width:100%;text-align:left;border-radius:2px 2px 0 0;border-collapse:initial;border-spacing:0}.ant-table-tbody>tr>td,.ant-table-thead>tr>th,.ant-table tfoot>tr>td,.ant-table tfoot>tr>th{position:relative;padding:16px;overflow-wrap:break-word}.ant-table-cell-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.ant-table-cell-ellipsis.ant-table-cell-fix-left-last,.ant-table-cell-ellipsis.ant-table-cell-fix-right-first{overflow:visible}.ant-table-cell-ellipsis.ant-table-cell-fix-left-last .ant-table-cell-content,.ant-table-cell-ellipsis.ant-table-cell-fix-right-first .ant-table-cell-content{display:block;overflow:hidden;text-overflow:ellipsis}.ant-table-cell-ellipsis .ant-table-column-title{overflow:hidden;text-overflow:ellipsis;word-break:keep-all}.ant-table-title{padding:16px}.ant-table-footer{padding:16px;color:#000000d9;background:#fafafa}.ant-table-thead>tr>th{position:relative;color:#000000d9;font-weight:500;text-align:left;background:#fafafa;border-bottom:1px solid #f0f0f0;transition:background .3s ease}.ant-table-thead>tr>th[colspan]:not([colspan="1"]){text-align:center}.ant-table-thead>tr>th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan]):before{position:absolute;top:50%;right:0;width:1px;height:1.6em;background-color:#0000000f;transform:translateY(-50%);transition:background-color .3s;content:""}.ant-table-thead>tr:not(:last-child)>th[colspan]{border-bottom:0}.ant-table-tbody>tr>td{border-bottom:1px solid #f0f0f0;transition:background .3s}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table{margin:-16px -16px -16px 33px}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td{border-bottom:0}.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:first-child,.ant-table-tbody>tr>td>.ant-table-expanded-row-fixed>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:last-child,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:first-child,.ant-table-tbody>tr>td>.ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:last-child{border-radius:0}.ant-table-tbody>tr.ant-table-row:hover>td{background:#fafafa}.ant-table-tbody>tr.ant-table-row-selected>td{background:#e6f7ff;border-color:#00000008}.ant-table-tbody>tr.ant-table-row-selected:hover>td{background:#dcf4ff}.ant-table-summary{background:#fff}div.ant-table-summary{box-shadow:0 -1px 0 #f0f0f0}.ant-table-summary>tr>td,.ant-table-summary>tr>th{border-bottom:1px solid #f0f0f0}.ant-table-pagination.ant-pagination{margin:16px 0}.ant-table-pagination{display:flex;flex-wrap:wrap;grid-row-gap:8px;row-gap:8px}.ant-table-pagination>*{flex:none}.ant-table-pagination-left{justify-content:flex-start}.ant-table-pagination-center{justify-content:center}.ant-table-pagination-right{justify-content:flex-end}.ant-table-thead th.ant-table-column-has-sorters{cursor:pointer;transition:all .3s}.ant-table-thead th.ant-table-column-has-sorters:hover{background:#0000000a}.ant-table-thead th.ant-table-column-has-sorters:hover:before{background-color:initial!important}.ant-table-thead th.ant-table-column-has-sorters.ant-table-cell-fix-left:hover,.ant-table-thead th.ant-table-column-has-sorters.ant-table-cell-fix-right:hover,.ant-table-thead th.ant-table-column-sort{background:#f5f5f5}.ant-table-thead th.ant-table-column-sort:before{background-color:initial!important}td.ant-table-column-sort{background:#fafafa}.ant-table-column-title{position:relative;z-index:1;flex:1}.ant-table-column-sorters{display:flex;flex:auto;align-items:center;justify-content:space-between}.ant-table-column-sorters:after{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;content:""}.ant-table-column-sorter{color:#bfbfbf;font-size:0;transition:color .3s}.ant-table-column-sorter-inner{display:inline-flex;flex-direction:column;align-items:center}.ant-table-column-sorter-down,.ant-table-column-sorter-up{font-size:11px}.ant-table-column-sorter-down.active,.ant-table-column-sorter-up.active{color:#1890ff}.ant-table-column-sorter-up+.ant-table-column-sorter-down{margin-top:-.3em}.ant-table-column-sorters:hover .ant-table-column-sorter{color:#a6a6a6}.ant-table-filter-column{display:flex;justify-content:space-between}.ant-table-filter-trigger{position:relative;display:flex;align-items:center;margin:-4px -8px -4px 4px;padding:0 4px;color:#bfbfbf;font-size:12px;border-radius:2px;cursor:pointer;transition:all .3s}.ant-table-filter-trigger:hover{color:#00000073;background:#0000000a}.ant-table-filter-trigger.active{color:#1890ff}.ant-table-filter-dropdown{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";min-width:120px;background-color:#fff;border-radius:2px;box-shadow:0 3px 6px -4px #0000001f,0 6px 16px 0 #00000014,0 9px 28px 8px #0000000d}.ant-table-filter-dropdown .ant-dropdown-menu{max-height:264px;overflow-x:hidden;border:0;box-shadow:none}.ant-table-filter-dropdown-submenu>ul{max-height:calc(100vh - 130px);overflow-x:hidden;overflow-y:auto}.ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span,.ant-table-filter-dropdown .ant-checkbox-wrapper+span{padding-left:8px}.ant-table-filter-dropdown-btns{display:flex;justify-content:space-between;padding:7px 8px 7px 3px;overflow:hidden;background-color:inherit;border-top:1px solid #f0f0f0}.ant-table-selection-col{width:32px}.ant-table-bordered .ant-table-selection-col{width:50px}table tr td.ant-table-selection-column,table tr th.ant-table-selection-column{padding-right:8px;padding-left:8px;text-align:center}table tr td.ant-table-selection-column .ant-radio-wrapper,table tr th.ant-table-selection-column .ant-radio-wrapper{margin-right:0}table tr th.ant-table-selection-column:after{background-color:initial!important}.ant-table-selection{position:relative;display:inline-flex;flex-direction:column}.ant-table-selection-extra{position:absolute;top:0;z-index:1;cursor:pointer;transition:all .3s;margin-inline-start:100%;padding-inline-start:4px}.ant-table-selection-extra .anticon{color:#bfbfbf;font-size:10px}.ant-table-selection-extra .anticon:hover{color:#a6a6a6}.ant-table-expand-icon-col{width:48px}.ant-table-row-expand-icon-cell{text-align:center}.ant-table-row-indent{float:left;height:1px}.ant-table-row-expand-icon{color:#1890ff;text-decoration:none;cursor:pointer;transition:color .3s;position:relative;display:inline-flex;float:left;box-sizing:border-box;width:17px;height:17px;padding:0;color:inherit;line-height:17px;background:#fff;border:1px solid #f0f0f0;border-radius:2px;outline:none;transform:scale(.94117647);transition:all .3s;-webkit-user-select:none;user-select:none}.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{color:#40a9ff}.ant-table-row-expand-icon:active{color:#096dd9}.ant-table-row-expand-icon:active,.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{border-color:currentColor}.ant-table-row-expand-icon:after,.ant-table-row-expand-icon:before{position:absolute;background:currentColor;transition:transform .3s ease-out;content:""}.ant-table-row-expand-icon:before{top:7px;right:3px;left:3px;height:1px}.ant-table-row-expand-icon:after{top:3px;bottom:3px;left:7px;width:1px;transform:rotate(90deg)}.ant-table-row-expand-icon-collapsed:before{transform:rotate(-180deg)}.ant-table-row-expand-icon-collapsed:after{transform:rotate(0deg)}.ant-table-row-expand-icon-spaced{background:#0000;border:0;visibility:hidden}.ant-table-row-expand-icon-spaced:after,.ant-table-row-expand-icon-spaced:before{display:none;content:none}.ant-table-row-indent+.ant-table-row-expand-icon{margin-top:2.5005px;margin-right:8px}tr.ant-table-expanded-row:hover>td,tr.ant-table-expanded-row>td{background:#fbfbfb}tr.ant-table-expanded-row .ant-descriptions-view{display:flex}tr.ant-table-expanded-row .ant-descriptions-view table{flex:auto;width:auto}.ant-table .ant-table-expanded-row-fixed{position:relative;margin:-16px;padding:16px}.ant-table-tbody>tr.ant-table-placeholder{text-align:center}.ant-table-empty .ant-table-tbody>tr.ant-table-placeholder{color:#00000040}.ant-table-tbody>tr.ant-table-placeholder:hover>td{background:#fff}.ant-table-cell-fix-left,.ant-table-cell-fix-right{position:sticky!important;z-index:2;background:#fff}.ant-table-cell-fix-left-first:after,.ant-table-cell-fix-left-last:after{position:absolute;top:0;right:0;bottom:-1px;width:30px;transform:translateX(100%);transition:box-shadow .3s;content:"";pointer-events:none}.ant-table-cell-fix-right-first:after,.ant-table-cell-fix-right-last:after{position:absolute;top:0;bottom:-1px;left:0;width:30px;transform:translateX(-100%);transition:box-shadow .3s;content:"";pointer-events:none}.ant-table .ant-table-container:after,.ant-table .ant-table-container:before{position:absolute;top:0;bottom:0;z-index:1;width:30px;transition:box-shadow .3s;content:"";pointer-events:none}.ant-table .ant-table-container:before{left:0}.ant-table .ant-table-container:after{right:0}.ant-table-ping-left:not(.ant-table-has-fix-left) .ant-table-container{position:relative}.ant-table-ping-left .ant-table-cell-fix-left-first:after,.ant-table-ping-left .ant-table-cell-fix-left-last:after,.ant-table-ping-left:not(.ant-table-has-fix-left) .ant-table-container:before{box-shadow:inset 10px 0 8px -8px #00000026}.ant-table-ping-left .ant-table-cell-fix-left-last:before{background-color:initial!important}.ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container{position:relative}.ant-table-ping-right .ant-table-cell-fix-right-first:after,.ant-table-ping-right .ant-table-cell-fix-right-last:after,.ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container:after{box-shadow:inset -10px 0 8px -8px #00000026}.ant-table-sticky-holder,.ant-table-sticky-scroll{position:sticky;z-index:3}.ant-table-sticky-scroll{bottom:0;display:flex;align-items:center;background:#fff;border-top:1px solid #f0f0f0;opacity:.6}.ant-table-sticky-scroll:hover{transform-origin:center bottom}.ant-table-sticky-scroll-bar{height:8px;background-color:#00000059;border-radius:4px}.ant-table-sticky-scroll-bar-active,.ant-table-sticky-scroll-bar:hover{background-color:#000c}@media all and (-ms-high-contrast: none){.ant-table-ping-left .ant-table-cell-fix-left-last:after,.ant-table-ping-right .ant-table-cell-fix-right-first:after{box-shadow:none!important}}.ant-table-title{border-radius:2px 2px 0 0}.ant-table-title+.ant-table-container{border-top-left-radius:0;border-top-right-radius:0}.ant-table-title+.ant-table-container table>thead>tr:first-child th:first-child,.ant-table-title+.ant-table-container table>thead>tr:first-child th:last-child{border-radius:0}.ant-table-container{border-top-right-radius:2px}.ant-table-container,.ant-table-container table>thead>tr:first-child th:first-child{border-top-left-radius:2px}.ant-table-container table>thead>tr:first-child th:last-child{border-top-right-radius:2px}.ant-table-footer{border-radius:0 0 2px 2px}.ant-table-rtl,.ant-table-wrapper-rtl{direction:rtl}.ant-table-wrapper-rtl .ant-table table{text-align:right}.ant-table-wrapper-rtl .ant-table-thead>tr>th[colspan]:not([colspan="1"]){text-align:center}.ant-table-wrapper-rtl .ant-table-thead>tr>th{text-align:right}.ant-table-tbody>tr .ant-table-wrapper:only-child .ant-table.ant-table-rtl{margin:-16px 33px -16px -16px}.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-left{justify-content:flex-end}.ant-table-wrapper.ant-table-wrapper-rtl .ant-table-pagination-right{justify-content:flex-start}.ant-table-wrapper-rtl .ant-table-column-sorter{margin-right:8px;margin-left:0}.ant-table-wrapper-rtl .ant-table-filter-column-title{padding:16px 16px 16px 2.3em}.ant-table-rtl .ant-table-thead tr th.ant-table-column-has-sorters .ant-table-filter-column-title{padding:0 0 0 2.3em}.ant-table-wrapper-rtl .ant-table-filter-trigger-container{right:auto;left:0}.ant-dropdown-menu-submenu-rtl.ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span,.ant-dropdown-menu-submenu-rtl.ant-table-filter-dropdown .ant-checkbox-wrapper+span,.ant-dropdown-rtl .ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span,.ant-dropdown-rtl .ant-table-filter-dropdown .ant-checkbox-wrapper+span{padding-right:8px;padding-left:0}.ant-table-wrapper-rtl .ant-table-selection{text-align:center}.ant-table-wrapper-rtl .ant-table-row-expand-icon,.ant-table-wrapper-rtl .ant-table-row-indent{float:right}.ant-table-wrapper-rtl .ant-table-row-indent+.ant-table-row-expand-icon{margin-right:0;margin-left:8px}.ant-table-wrapper-rtl .ant-table-row-expand-icon:after{transform:rotate(-90deg)}.ant-table-wrapper-rtl .ant-table-row-expand-icon-collapsed:before{transform:rotate(180deg)}.ant-table-wrapper-rtl .ant-table-row-expand-icon-collapsed:after{transform:rotate(0deg)}nz-table,nz-table-inner-default,nz-table-inner-scroll,nz-table-selection,nz-table-title-footer{display:block}nz-filter-trigger{display:inline-flex}.nz-table-out-bordered>.ant-table-container,.nz-table-out-bordered>.ant-table-title{border:1px solid #f0f0f0;border-bottom:0}.nz-table-out-bordered>.ant-table-footer{border:1px solid #f0f0f0;border-top:0}cdk-virtual-scroll-viewport.ant-table-body{overflow-y:scroll}.nz-table-hide-scrollbar{scrollbar-color:#fafafa #fafafa}.nz-table-hide-scrollbar::-webkit-scrollbar{background-color:#fafafa}.ant-table.ant-table-small .nz-table-hide-scrollbar{scrollbar-color:#fafafa #fafafa}.ant-table.ant-table-small .nz-table-hide-scrollbar::-webkit-scrollbar{background-color:initial}.ant-table-wrapper-rtl .ant-table thead>tr>th.ant-table-selection-column{text-align:center}.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tfoot>tr>td,.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tfoot>tr>th,.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>thead>tr>th{border-right:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>thead>tr:not(:last-child)>th{border-bottom:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tfoot>tr>.ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>thead>tr>.ant-table-cell-fix-right-first:after{border-right:1px solid #f0f0f0}.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-16px -17px}.ant-table.ant-table-bordered>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr>td>.ant-table-expanded-row-fixed:after{position:absolute;top:0;right:1px;bottom:0;border-right:1px solid #f0f0f0;content:""}.ant-table.ant-table-bordered.ant-table-scroll-horizontal>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr.ant-table-expanded-row>td,.ant-table.ant-table-bordered.ant-table-scroll-horizontal>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr.ant-table-placeholder>td{border-right:0}.ant-table.ant-table-bordered.ant-table-middle>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-12px -9px}.ant-table.ant-table-bordered.ant-table-small>.ant-table-container>.cdk-virtual-scroll-viewport>.cdk-virtual-scroll-content-wrapper>table>tbody>tr>td>.ant-table-expanded-row-fixed{margin:-8px -9px}.ant-tabs-small>.ant-tabs-nav .ant-tabs-tab{padding:8px 0;font-size:14px}.ant-tabs-large>.ant-tabs-nav .ant-tabs-tab{padding:16px 0;font-size:16px}.ant-tabs-card.ant-tabs-small>.ant-tabs-nav .ant-tabs-tab{padding:6px 16px}.ant-tabs-card.ant-tabs-large>.ant-tabs-nav .ant-tabs-tab{padding:7px 16px 6px}.ant-tabs-rtl{direction:rtl}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab{margin:0 0 0 32px}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab:last-of-type{margin-left:0}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .anticon{margin-right:0;margin-left:12px}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .ant-tabs-tab-remove{margin-right:8px;margin-left:-4px}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .ant-tabs-tab-remove .anticon{margin:0}.ant-tabs-rtl.ant-tabs-left>.ant-tabs-nav{order:1}.ant-tabs-rtl.ant-tabs-left>.ant-tabs-content-holder,.ant-tabs-rtl.ant-tabs-right>.ant-tabs-nav{order:0}.ant-tabs-rtl.ant-tabs-right>.ant-tabs-content-holder{order:1}.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-rtl.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-right:0;margin-left:2px}.ant-tabs-dropdown-rtl{direction:rtl}.ant-tabs-dropdown-rtl .ant-tabs-dropdown-menu-item{text-align:right}.ant-tabs-bottom,.ant-tabs-top{flex-direction:column}.ant-tabs-bottom>.ant-tabs-nav,.ant-tabs-bottom>div>.ant-tabs-nav,.ant-tabs-top>.ant-tabs-nav,.ant-tabs-top>div>.ant-tabs-nav{margin:0 0 16px}.ant-tabs-bottom>.ant-tabs-nav:before,.ant-tabs-bottom>div>.ant-tabs-nav:before,.ant-tabs-top>.ant-tabs-nav:before,.ant-tabs-top>div>.ant-tabs-nav:before{position:absolute;right:0;left:0;border-bottom:1px solid #f0f0f0;content:""}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar{height:2px}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar-animated{transition:width .3s,left .3s,right .3s}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{top:0;bottom:0;width:30px}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{left:0;box-shadow:inset 10px 0 8px -8px #00000014}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap:after{right:0;box-shadow:inset -10px 0 8px -8px #00000014}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left:before,.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right:after,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left:before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right:after,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left:before,.ant-tabs-top>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right:after,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-left:before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-right:after{opacity:1}.ant-tabs-top>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>.ant-tabs-nav:before,.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-top>div>.ant-tabs-nav:before{bottom:0}.ant-tabs-bottom>.ant-tabs-nav,.ant-tabs-bottom>div>.ant-tabs-nav{order:1;margin-top:16px;margin-bottom:0}.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>.ant-tabs-nav:before,.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-bottom>div>.ant-tabs-nav:before{top:0}.ant-tabs-bottom>.ant-tabs-content-holder,.ant-tabs-bottom>div>.ant-tabs-content-holder{order:0}.ant-tabs-left>.ant-tabs-nav,.ant-tabs-left>div>.ant-tabs-nav,.ant-tabs-right>.ant-tabs-nav,.ant-tabs-right>div>.ant-tabs-nav{flex-direction:column;min-width:50px}.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab{padding:8px 24px;text-align:center}.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin:16px 0 0}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap{flex-direction:column}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{right:0;left:0;height:30px}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{top:0;box-shadow:inset 0 10px 8px -8px #00000014}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap:after{bottom:0;box-shadow:inset 0 -10px 8px -8px #00000014}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom:after,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top:before,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom:after,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top:before,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom:after,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top:before,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-bottom:after,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-wrap.ant-tabs-nav-wrap-ping-top:before{opacity:1}.ant-tabs-left>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-right>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-ink-bar{width:2px}.ant-tabs-left>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-right>.ant-tabs-nav .ant-tabs-ink-bar-animated,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-ink-bar-animated{transition:height .3s,top .3s}.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-left>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-right>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-nav-operations{flex:1 0 auto;flex-direction:column}.ant-tabs-left>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-ink-bar{right:0}.ant-tabs-left>.ant-tabs-content-holder,.ant-tabs-left>div>.ant-tabs-content-holder{margin-left:-1px;border-left:1px solid #f0f0f0}.ant-tabs-left>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane,.ant-tabs-left>div>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane{padding-left:24px}.ant-tabs-right>.ant-tabs-nav,.ant-tabs-right>div>.ant-tabs-nav{order:1}.ant-tabs-right>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-ink-bar{left:0}.ant-tabs-right>.ant-tabs-content-holder,.ant-tabs-right>div>.ant-tabs-content-holder{order:0;margin-right:-1px;border-right:1px solid #f0f0f0}.ant-tabs-right>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane,.ant-tabs-right>div>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane{padding-right:24px}.ant-tabs-dropdown{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:absolute;top:-9999px;left:-9999px;z-index:1050;display:block}.ant-tabs-dropdown-hidden{display:none}.ant-tabs-dropdown-menu{max-height:200px;margin:0;padding:4px 0;overflow-x:hidden;overflow-y:auto;text-align:left;list-style-type:none;background-color:#fff;background-clip:padding-box;border-radius:2px;outline:none;box-shadow:0 3px 6px -4px #0000001f,0 6px 16px 0 #00000014,0 9px 28px 8px #0000000d}.ant-tabs-dropdown-menu-item{min-width:120px;margin:0;padding:5px 12px;overflow:hidden;color:#000000d9;font-weight:400;font-size:14px;line-height:22px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:all .3s}.ant-tabs-dropdown-menu-item:hover{background:#f5f5f5}.ant-tabs-dropdown-menu-item-disabled,.ant-tabs-dropdown-menu-item-disabled:hover{color:#00000040;background:#0000;cursor:not-allowed}.ant-tabs-card>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card>div>.ant-tabs-nav .ant-tabs-tab{margin:0;padding:8px 16px;background:#fafafa;border:1px solid #f0f0f0;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs-card>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card>div>.ant-tabs-nav .ant-tabs-tab-active{color:#1890ff;background:#fff}.ant-tabs-card>.ant-tabs-nav .ant-tabs-ink-bar,.ant-tabs-card>div>.ant-tabs-nav .ant-tabs-ink-bar{visibility:hidden}.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-left:2px}.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab{border-radius:2px 2px 0 0}.ant-tabs-card.ant-tabs-top>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card.ant-tabs-top>div>.ant-tabs-nav .ant-tabs-tab-active{border-bottom-color:#fff}.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab{border-radius:0 0 2px 2px}.ant-tabs-card.ant-tabs-bottom>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card.ant-tabs-bottom>div>.ant-tabs-nav .ant-tabs-tab-active{border-top-color:#fff}.ant-tabs-card.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab,.ant-tabs-card.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab+.ant-tabs-tab{margin-top:2px}.ant-tabs-card.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab{border-radius:2px 0 0 2px}.ant-tabs-card.ant-tabs-left>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card.ant-tabs-left>div>.ant-tabs-nav .ant-tabs-tab-active{border-right-color:#fff}.ant-tabs-card.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab,.ant-tabs-card.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab{border-radius:0 2px 2px 0}.ant-tabs-card.ant-tabs-right>.ant-tabs-nav .ant-tabs-tab-active,.ant-tabs-card.ant-tabs-right>div>.ant-tabs-nav .ant-tabs-tab-active{border-left-color:#fff}.ant-tabs{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";display:flex;overflow:hidden}.ant-tabs>.ant-tabs-nav,.ant-tabs>div>.ant-tabs-nav{position:relative;display:flex;flex:none;align-items:center}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-wrap,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-wrap{position:relative;display:inline-block;display:flex;flex:auto;align-self:stretch;overflow:hidden;white-space:nowrap;transform:translate(0)}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs>.ant-tabs-nav .ant-tabs-nav-wrap:before,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-wrap:after,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-wrap:before{position:absolute;z-index:1;opacity:0;transition:opacity .3s;content:"";pointer-events:none}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-list,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-list{position:relative;display:flex;transition:transform .3s}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-operations,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-operations{display:flex;align-self:stretch}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-operations-hidden,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-operations-hidden{position:absolute;visibility:hidden;pointer-events:none}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-more,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-more{position:relative;padding:8px 16px;background:#0000;border:0}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-more:after,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-more:after{position:absolute;right:0;bottom:0;left:0;height:5px;transform:translateY(100%);content:""}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add{min-width:40px;padding:0 8px;background:#fafafa;border:1px solid #f0f0f0;border-radius:2px 2px 0 0;outline:none;cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add:hover,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add:hover{color:#40a9ff}.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add:active,.ant-tabs>.ant-tabs-nav .ant-tabs-nav-add:focus,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add:active,.ant-tabs>div>.ant-tabs-nav .ant-tabs-nav-add:focus{color:#096dd9}.ant-tabs-extra-content{flex:none}.ant-tabs-centered>.ant-tabs-nav .ant-tabs-nav-wrap:not([class*=ant-tabs-nav-wrap-ping]),.ant-tabs-centered>div>.ant-tabs-nav .ant-tabs-nav-wrap:not([class*=ant-tabs-nav-wrap-ping]){justify-content:center}.ant-tabs-ink-bar{position:absolute;background:#1890ff;pointer-events:none}.ant-tabs-tab{position:relative;display:inline-flex;align-items:center;padding:12px 0;font-size:14px;background:#0000;border:0;outline:none;cursor:pointer}.ant-tabs-tab-btn:active,.ant-tabs-tab-btn:focus,.ant-tabs-tab-remove:active,.ant-tabs-tab-remove:focus{color:#096dd9}.ant-tabs-tab-btn,.ant-tabs-tab-remove{outline:none;transition:all .3s}.ant-tabs-tab-remove{flex:none;margin-right:-4px;margin-left:8px;color:#00000073;font-size:12px;background:#0000;border:none;cursor:pointer}.ant-tabs-tab-remove:hover{color:#000000d9}.ant-tabs-tab:hover{color:#40a9ff}.ant-tabs-tab.ant-tabs-tab-active .ant-tabs-tab-btn{color:#1890ff;text-shadow:0 0 .25px currentColor}.ant-tabs-tab.ant-tabs-tab-disabled{color:#00000040;cursor:not-allowed}.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-btn:active,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-btn:focus,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-remove:active,.ant-tabs-tab.ant-tabs-tab-disabled .ant-tabs-tab-remove:focus{color:#00000040}.ant-tabs-tab .ant-tabs-tab-remove .anticon{margin:0}.ant-tabs-tab .anticon{margin-right:12px}.ant-tabs-tab+.ant-tabs-tab{margin:0 0 0 32px}.ant-tabs-content{display:flex;width:100%}.ant-tabs-content-holder{flex:auto;min-width:0;min-height:0}.ant-tabs-content-animated{transition:margin .3s}.ant-tabs-tabpane{flex:none;width:100%;outline:none}.ant-tabs-dropdown-menu-item a[nz-tab-link]{position:relative}a[nz-tab-link]:before{position:absolute;top:0;left:0;right:0;bottom:0;background-color:initial;content:""}a[nz-tab-link]~*{position:relative}nz-tab-nav-operation,nz-tabs-nav,nz-tabset{display:block}.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu{max-height:200px;margin:0;padding:4px 0;overflow-x:hidden;overflow-y:auto;text-align:left;list-style-type:none;background-color:#fff;background-clip:padding-box;border-radius:2px;outline:none;box-shadow:0 3px 6px -4px #0000001f,0 6px 16px 0 #00000014,0 9px 28px 8px #0000000d}.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item{min-width:120px;margin:0;padding:5px 12px;overflow:hidden;color:#000000d9;font-weight:400;font-size:14px;line-height:22px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:all .3s}.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item:hover{background:#f5f5f5}.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item-disabled,.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item-disabled:hover{color:#00000040;background:#0000;cursor:not-allowed}.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item-disabled:hover a,.nz-tabs-dropdown.ant-dropdown .ant-dropdown-menu-item-disabled a{pointer-events:none;color:#00000040}.ant-tabs-rtl .ant-tabs-rtl-tab-next{right:auto;left:2px}.ant-tabs-tab-disabled a{pointer-events:none;color:#00000040}.ant-tag{box-sizing:border-box;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";display:inline-block;height:auto;margin:0 8px 0 0;padding:0 7px;font-size:12px;line-height:20px;white-space:nowrap;background:#fafafa;border:1px solid #d9d9d9;border-radius:2px;opacity:1;transition:all .3s}.ant-tag,.ant-tag a,.ant-tag a:hover{color:#000000d9}.ant-tag>a:first-child:last-child{display:inline-block;margin:0 -8px;padding:0 8px}.ant-tag-close-icon{margin-left:3px;color:#00000073;font-size:10px;cursor:pointer;transition:all .3s}.ant-tag-close-icon:hover{color:#000000d9}.ant-tag-has-color{border-color:#0000}.ant-tag-has-color,.ant-tag-has-color .anticon-close,.ant-tag-has-color .anticon-close:hover,.ant-tag-has-color a,.ant-tag-has-color a:hover{color:#fff}.ant-tag-checkable{background-color:initial;border-color:#0000;cursor:pointer}.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:#1890ff}.ant-tag-checkable-checked,.ant-tag-checkable:active{color:#fff}.ant-tag-checkable-checked{background-color:#1890ff}.ant-tag-checkable:active{background-color:#096dd9}.ant-tag-hidden{display:none}.ant-tag-pink{color:#c41d7f;background:#fff0f6;border-color:#ffadd2}.ant-tag-pink-inverse{color:#fff;background:#eb2f96;border-color:#eb2f96}.ant-tag-magenta{color:#c41d7f;background:#fff0f6;border-color:#ffadd2}.ant-tag-magenta-inverse{color:#fff;background:#eb2f96;border-color:#eb2f96}.ant-tag-red{color:#cf1322;background:#fff1f0;border-color:#ffa39e}.ant-tag-red-inverse{color:#fff;background:#f5222d;border-color:#f5222d}.ant-tag-volcano{color:#d4380d;background:#fff2e8;border-color:#ffbb96}.ant-tag-volcano-inverse{color:#fff;background:#fa541c;border-color:#fa541c}.ant-tag-orange{color:#d46b08;background:#fff7e6;border-color:#ffd591}.ant-tag-orange-inverse{color:#fff;background:#fa8c16;border-color:#fa8c16}.ant-tag-yellow{color:#d4b106;background:#feffe6;border-color:#fffb8f}.ant-tag-yellow-inverse{color:#fff;background:#fadb14;border-color:#fadb14}.ant-tag-gold{color:#d48806;background:#fffbe6;border-color:#ffe58f}.ant-tag-gold-inverse{color:#fff;background:#faad14;border-color:#faad14}.ant-tag-cyan{color:#08979c;background:#e6fffb;border-color:#87e8de}.ant-tag-cyan-inverse{color:#fff;background:#13c2c2;border-color:#13c2c2}.ant-tag-lime{color:#7cb305;background:#fcffe6;border-color:#eaff8f}.ant-tag-lime-inverse{color:#fff;background:#a0d911;border-color:#a0d911}.ant-tag-green{color:#389e0d;background:#f6ffed;border-color:#b7eb8f}.ant-tag-green-inverse{color:#fff;background:#52c41a;border-color:#52c41a}.ant-tag-blue{color:#096dd9;background:#e6f7ff;border-color:#91d5ff}.ant-tag-blue-inverse{color:#fff;background:#1890ff;border-color:#1890ff}.ant-tag-geekblue{color:#1d39c4;background:#f0f5ff;border-color:#adc6ff}.ant-tag-geekblue-inverse{color:#fff;background:#2f54eb;border-color:#2f54eb}.ant-tag-purple{color:#531dab;background:#f9f0ff;border-color:#d3adf7}.ant-tag-purple-inverse{color:#fff;background:#722ed1;border-color:#722ed1}.ant-tag-success{color:#52c41a;background:#f6ffed;border-color:#b7eb8f}.ant-tag-processing{color:#1890ff;background:#e6f7ff;border-color:#91d5ff}.ant-tag-error{color:#f5222d;background:#fff1f0;border-color:#ffa39e}.ant-tag-warning{color:#fa8c16;background:#fff7e6;border-color:#ffd591}.ant-tag>.anticon+span,.ant-tag>span+.anticon{margin-left:7px}.ant-tag.ant-tag-rtl{margin-right:0;margin-left:8px;direction:rtl;text-align:right}.ant-tag-rtl .ant-tag-close-icon{margin-right:3px;margin-left:0}.ant-tag-rtl.ant-tag>.anticon+span,.ant-tag-rtl.ant-tag>span+.anticon{margin-right:7px;margin-left:0}.ant-timeline{box-sizing:border-box;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;font-feature-settings:"tnum","tnum";margin:0;padding:0;list-style:none}.ant-timeline-item{position:relative;margin:0;padding-bottom:20px;font-size:14px;list-style:none}.ant-timeline-item-tail{position:absolute;top:10px;left:4px;height:calc(100% - 10px);border-left:2px solid #f0f0f0}.ant-timeline-item-pending .ant-timeline-item-head{font-size:12px;background-color:initial}.ant-timeline-item-pending .ant-timeline-item-tail{display:none}.ant-timeline-item-head{position:absolute;width:10px;height:10px;background-color:#fff;border:2px solid #0000;border-radius:100px}.ant-timeline-item-head-blue{color:#1890ff;border-color:#1890ff}.ant-timeline-item-head-red{color:#ff4d4f;border-color:#ff4d4f}.ant-timeline-item-head-green{color:#52c41a;border-color:#52c41a}.ant-timeline-item-head-gray{color:#00000040;border-color:#00000040}.ant-timeline-item-head-custom{position:absolute;top:5.5px;left:5px;width:auto;height:auto;margin-top:0;padding:3px 1px;line-height:1;text-align:center;border:0;border-radius:0;transform:translate(-50%,-50%)}.ant-timeline-item-content{position:relative;top:-7.001px;margin:0 0 0 26px;word-break:break-word}.ant-timeline-item-last>.ant-timeline-item-tail{display:none}.ant-timeline-item-last>.ant-timeline-item-content{min-height:48px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-label .ant-timeline-item-tail,.ant-timeline.ant-timeline-right .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-tail{left:50%}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-head{margin-left:-4px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom{margin-left:1px}.ant-timeline.ant-timeline-alternate .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline.ant-timeline-label .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline.ant-timeline-right .ant-timeline-item-left .ant-timeline-item-content{left:calc(50% - 4px);width:calc(50% - 14px);text-align:left}.ant-timeline.ant-timeline-alternate .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{width:calc(50% - 12px);margin:0;text-align:right}.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom,.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail{left:calc(100% - 4px - 2px)}.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{width:calc(100% - 18px)}.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail{display:block;height:calc(100% - 14px);border-left:2px dotted #f0f0f0}.ant-timeline.ant-timeline-reverse .ant-timeline-item-last .ant-timeline-item-tail{display:none}.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail{top:15px;display:block;height:calc(100% - 15px);border-left:2px dotted #f0f0f0}.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-content{min-height:48px}.ant-timeline.ant-timeline-label .ant-timeline-item-label{position:absolute;top:-7.001px;width:calc(50% - 12px);text-align:right}.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-label{left:calc(50% + 14px);width:calc(50% - 14px);text-align:left}.ant-timeline-rtl{direction:rtl}.ant-timeline-rtl .ant-timeline-item-tail{right:4px;left:auto;border-right:2px solid #f0f0f0;border-left:none}.ant-timeline-rtl .ant-timeline-item-head-custom{right:5px;left:auto;transform:translate(50%,-50%)}.ant-timeline-rtl .ant-timeline-item-content{margin:0 18px 0 0}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-tail,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-tail,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-tail{right:50%;left:auto}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head{margin-right:-4px;margin-left:0}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-head-custom{margin-right:1px;margin-left:0}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-left .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-left .ant-timeline-item-content{right:calc(50% - 4px);left:auto;text-align:right}.ant-timeline-rtl.ant-timeline.ant-timeline-alternate .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-content,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{text-align:left}.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-head-custom,.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-tail{right:0;left:auto}.ant-timeline-rtl.ant-timeline.ant-timeline-right .ant-timeline-item-right .ant-timeline-item-content{width:100%;margin-right:18px;text-align:right}.ant-timeline-rtl.ant-timeline.ant-timeline-pending .ant-timeline-item-last .ant-timeline-item-tail,.ant-timeline-rtl.ant-timeline.ant-timeline-reverse .ant-timeline-item-pending .ant-timeline-item-tail{border-right:2px dotted #f0f0f0;border-left:none}.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-label{text-align:left}.ant-timeline-rtl.ant-timeline.ant-timeline-label .ant-timeline-item-right .ant-timeline-item-label{right:calc(50% + 14px);text-align:right}.ant-tooltip{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:absolute;z-index:1070;display:block;width:-webkit-max-content;width:max-content;max-width:250px;visibility:visible}.ant-tooltip-hidden{display:none}.ant-tooltip-placement-top,.ant-tooltip-placement-topLeft,.ant-tooltip-placement-topRight{padding-bottom:8px}.ant-tooltip-placement-right,.ant-tooltip-placement-rightBottom,.ant-tooltip-placement-rightTop{padding-left:8px}.ant-tooltip-placement-bottom,.ant-tooltip-placement-bottomLeft,.ant-tooltip-placement-bottomRight{padding-top:8px}.ant-tooltip-placement-left,.ant-tooltip-placement-leftBottom,.ant-tooltip-placement-leftTop{padding-right:8px}.ant-tooltip-inner{min-width:30px;min-height:32px;padding:6px 8px;color:#fff;text-align:left;text-decoration:none;word-wrap:break-word;background-color:#000000bf;border-radius:2px;box-shadow:0 3px 6px -4px #0000001f,0 6px 16px 0 #00000014,0 9px 28px 8px #0000000d}.ant-tooltip-arrow{position:absolute;display:block;width:13.07106781px;height:13.07106781px;overflow:hidden;background:#0000;pointer-events:none}.ant-tooltip-arrow-content{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:5px;height:5px;margin:auto;background-color:#000000bf;content:"";pointer-events:auto}.ant-tooltip-placement-top .ant-tooltip-arrow,.ant-tooltip-placement-topLeft .ant-tooltip-arrow,.ant-tooltip-placement-topRight .ant-tooltip-arrow{bottom:-5.07106781px}.ant-tooltip-placement-top .ant-tooltip-arrow-content,.ant-tooltip-placement-topLeft .ant-tooltip-arrow-content,.ant-tooltip-placement-topRight .ant-tooltip-arrow-content{box-shadow:3px 3px 7px #00000012;transform:translateY(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-top .ant-tooltip-arrow{left:50%;transform:translateX(-50%)}.ant-tooltip-placement-topLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-topRight .ant-tooltip-arrow{right:13px}.ant-tooltip-placement-right .ant-tooltip-arrow,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow,.ant-tooltip-placement-rightTop .ant-tooltip-arrow{left:-5.07106781px}.ant-tooltip-placement-right .ant-tooltip-arrow-content,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow-content,.ant-tooltip-placement-rightTop .ant-tooltip-arrow-content{box-shadow:-3px 3px 7px #00000012;transform:translateX(6.53553391px) rotate(45deg)}.ant-tooltip-placement-right .ant-tooltip-arrow{top:50%;transform:translateY(-50%)}.ant-tooltip-placement-rightTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-rightBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-left .ant-tooltip-arrow,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow,.ant-tooltip-placement-leftTop .ant-tooltip-arrow{right:-5.07106781px}.ant-tooltip-placement-left .ant-tooltip-arrow-content,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow-content,.ant-tooltip-placement-leftTop .ant-tooltip-arrow-content{box-shadow:3px -3px 7px #00000012;transform:translateX(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-left .ant-tooltip-arrow{top:50%;transform:translateY(-50%)}.ant-tooltip-placement-leftTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-leftBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-bottom .ant-tooltip-arrow,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{top:-5.07106781px}.ant-tooltip-placement-bottom .ant-tooltip-arrow-content,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow-content,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow-content{box-shadow:-3px -3px 7px #00000012;transform:translateY(6.53553391px) rotate(45deg)}.ant-tooltip-placement-bottom .ant-tooltip-arrow{left:50%;transform:translateX(-50%)}.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{right:13px}.ant-tooltip-magenta .ant-tooltip-arrow-content,.ant-tooltip-magenta .ant-tooltip-inner,.ant-tooltip-pink .ant-tooltip-arrow-content,.ant-tooltip-pink .ant-tooltip-inner{background-color:#eb2f96}.ant-tooltip-red .ant-tooltip-arrow-content,.ant-tooltip-red .ant-tooltip-inner{background-color:#f5222d}.ant-tooltip-volcano .ant-tooltip-arrow-content,.ant-tooltip-volcano .ant-tooltip-inner{background-color:#fa541c}.ant-tooltip-orange .ant-tooltip-arrow-content,.ant-tooltip-orange .ant-tooltip-inner{background-color:#fa8c16}.ant-tooltip-yellow .ant-tooltip-arrow-content,.ant-tooltip-yellow .ant-tooltip-inner{background-color:#fadb14}.ant-tooltip-gold .ant-tooltip-arrow-content,.ant-tooltip-gold .ant-tooltip-inner{background-color:#faad14}.ant-tooltip-cyan .ant-tooltip-arrow-content,.ant-tooltip-cyan .ant-tooltip-inner{background-color:#13c2c2}.ant-tooltip-lime .ant-tooltip-arrow-content,.ant-tooltip-lime .ant-tooltip-inner{background-color:#a0d911}.ant-tooltip-green .ant-tooltip-arrow-content,.ant-tooltip-green .ant-tooltip-inner{background-color:#52c41a}.ant-tooltip-blue .ant-tooltip-arrow-content,.ant-tooltip-blue .ant-tooltip-inner{background-color:#1890ff}.ant-tooltip-geekblue .ant-tooltip-arrow-content,.ant-tooltip-geekblue .ant-tooltip-inner{background-color:#2f54eb}.ant-tooltip-purple .ant-tooltip-arrow-content,.ant-tooltip-purple .ant-tooltip-inner{background-color:#722ed1}.ant-tooltip-rtl{direction:rtl}.ant-tooltip-rtl .ant-tooltip-inner{text-align:right}.ant-tooltip{position:relative}.ant-transfer-customize-list .ant-transfer-list{flex:1 1 50%;width:auto;height:auto;min-height:200px}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small{border:0;border-radius:0}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content>.ant-table-body>table>.ant-table-thead>tr>th{background:#fafafa}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small>.ant-table-content .ant-table-row:last-child td{border-bottom:1px solid #f0f0f0}.ant-transfer-customize-list .ant-table-wrapper .ant-table-small .ant-table-body{margin:0}.ant-transfer-customize-list .ant-table-wrapper .ant-table-pagination.ant-pagination{margin:16px 0 4px}.ant-transfer-customize-list .ant-input[disabled]{background-color:initial}.ant-transfer{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:relative;display:flex;align-items:stretch}.ant-transfer-disabled .ant-transfer-list{background:#f5f5f5}.ant-transfer-list{display:flex;flex-direction:column;width:180px;height:200px;border:1px solid #d9d9d9;border-radius:2px}.ant-transfer-list-with-pagination{width:250px;height:auto}.ant-transfer-list-search{padding-right:24px;padding-left:8px}.ant-transfer-list-search-action{position:absolute;top:12px;right:12px;bottom:12px;width:28px;color:#00000040;line-height:32px;text-align:center}.ant-transfer-list-search-action .anticon{color:#00000040;transition:all .3s}.ant-transfer-list-search-action .anticon:hover{color:#00000073}span.ant-transfer-list-search-action{pointer-events:none}.ant-transfer-list-header{display:flex;flex:none;align-items:center;height:40px;padding:8px 12px 9px;color:#000000d9;background:#fff;border-bottom:1px solid #f0f0f0;border-radius:2px 2px 0 0}.ant-transfer-list-header>:not(:last-child){margin-right:4px}.ant-transfer-list-header>*{flex:none}.ant-transfer-list-header-title{flex:auto;overflow:hidden;white-space:nowrap;text-align:right;text-overflow:ellipsis}.ant-transfer-list-header-dropdown{font-size:10px;transform:translateY(10%);cursor:pointer}.ant-transfer-list-header-dropdown[disabled]{cursor:not-allowed}.ant-transfer-list-body{display:flex;flex:auto;flex-direction:column;overflow:hidden;font-size:14px}.ant-transfer-list-body-search-wrapper{position:relative;flex:none;padding:12px}.ant-transfer-list-content{flex:auto;margin:0;padding:0;overflow:auto;list-style:none}.ant-transfer-list-content-item{display:flex;align-items:center;min-height:32px;padding:6px 12px;line-height:20px;transition:all .3s}.ant-transfer-list-content-item>:not(:last-child){margin-right:8px}.ant-transfer-list-content-item>*{flex:none}.ant-transfer-list-content-item-text{flex:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-transfer-list-content-item-remove{color:#1890ff;text-decoration:none;outline:none;cursor:pointer;transition:color .3s;position:relative;color:#d9d9d9}.ant-transfer-list-content-item-remove:focus,.ant-transfer-list-content-item-remove:hover{color:#40a9ff}.ant-transfer-list-content-item-remove:active{color:#096dd9}.ant-transfer-list-content-item-remove:after{position:absolute;top:-6px;right:-50%;bottom:-6px;left:-50%;content:""}.ant-transfer-list-content-item-remove:hover{color:#40a9ff}.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background-color:#f5f5f5;cursor:pointer}.ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled).ant-transfer-list-content-item-checked:hover{background-color:#dcf4ff}.ant-transfer-list-content-show-remove .ant-transfer-list-content-item:not(.ant-transfer-list-content-item-disabled):hover{background:#0000;cursor:default}.ant-transfer-list-content-item-checked{background-color:#e6f7ff}.ant-transfer-list-content-item-disabled{color:#00000040;cursor:not-allowed}.ant-transfer-list-pagination{padding:8px 0;text-align:right;border-top:1px solid #f0f0f0}.ant-transfer-list-body-not-found{flex:none;width:100%;margin:auto 0;color:#00000040;text-align:center}.ant-transfer-list-footer{border-top:1px solid #f0f0f0}.ant-transfer-operation{display:flex;flex:none;flex-direction:column;align-self:center;margin:0 8px;vertical-align:middle}.ant-transfer-operation .ant-btn{display:block}.ant-transfer-operation .ant-btn:first-child{margin-bottom:4px}.ant-transfer-operation .ant-btn .anticon{font-size:12px}.ant-transfer .ant-empty-image{max-height:-2px}.ant-transfer-rtl{direction:rtl}.ant-transfer-rtl .ant-transfer-list-search{padding-right:8px;padding-left:24px}.ant-transfer-rtl .ant-transfer-list-search-action{right:auto;left:12px}.ant-transfer-rtl .ant-transfer-list-header>:not(:last-child){margin-right:0;margin-left:4px}.ant-transfer-rtl .ant-transfer-list-header{right:0;left:auto}.ant-transfer-rtl .ant-transfer-list-header-title{text-align:left}.ant-transfer-rtl .ant-transfer-list-content-item>:not(:last-child){margin-right:0;margin-left:8px}.ant-transfer-rtl .ant-transfer-list-pagination{text-align:left}.ant-transfer-rtl .ant-transfer-list-footer{right:0;left:auto}.ant-typography{color:#000000d9;overflow-wrap:break-word}.ant-typography.ant-typography-secondary{color:#00000073}.ant-typography.ant-typography-success{color:#52c41a}.ant-typography.ant-typography-warning{color:#faad14}.ant-typography.ant-typography-danger{color:#ff4d4f}a.ant-typography.ant-typography-danger:active,a.ant-typography.ant-typography-danger:focus,a.ant-typography.ant-typography-danger:hover{color:#ff7875}.ant-typography.ant-typography-disabled{color:#00000040;cursor:not-allowed;-webkit-user-select:none;user-select:none}.ant-typography p,div.ant-typography{margin-bottom:1em}.ant-typography h1,h1.ant-typography{margin-bottom:.5em;color:#000000d9;font-weight:600;font-size:38px;line-height:1.23}.ant-typography h2,h2.ant-typography{margin-bottom:.5em;color:#000000d9;font-weight:600;font-size:30px;line-height:1.35}.ant-typography h3,h3.ant-typography{margin-bottom:.5em;color:#000000d9;font-weight:600;font-size:24px;line-height:1.35}.ant-typography h4,h4.ant-typography{margin-bottom:.5em;color:#000000d9;font-weight:600;font-size:20px;line-height:1.4}.ant-typography h5,h5.ant-typography{margin-bottom:.5em;color:#000000d9;font-weight:600;font-size:16px;line-height:1.5}.ant-typography+h1.ant-typography,.ant-typography+h2.ant-typography,.ant-typography+h3.ant-typography,.ant-typography+h4.ant-typography,.ant-typography+h5.ant-typography,.ant-typography div+h1,.ant-typography div+h2,.ant-typography div+h3,.ant-typography div+h4,.ant-typography div+h5,.ant-typography h1+h1,.ant-typography h1+h2,.ant-typography h1+h3,.ant-typography h1+h4,.ant-typography h1+h5,.ant-typography h2+h1,.ant-typography h2+h2,.ant-typography h2+h3,.ant-typography h2+h4,.ant-typography h2+h5,.ant-typography h3+h1,.ant-typography h3+h2,.ant-typography h3+h3,.ant-typography h3+h4,.ant-typography h3+h5,.ant-typography h4+h1,.ant-typography h4+h2,.ant-typography h4+h3,.ant-typography h4+h4,.ant-typography h4+h5,.ant-typography h5+h1,.ant-typography h5+h2,.ant-typography h5+h3,.ant-typography h5+h4,.ant-typography h5+h5,.ant-typography li+h1,.ant-typography li+h2,.ant-typography li+h3,.ant-typography li+h4,.ant-typography li+h5,.ant-typography p+h1,.ant-typography p+h2,.ant-typography p+h3,.ant-typography p+h4,.ant-typography p+h5,.ant-typography ul+h1,.ant-typography ul+h2,.ant-typography ul+h3,.ant-typography ul+h4,.ant-typography ul+h5{margin-top:1.2em}a.ant-typography-ellipsis,span.ant-typography-ellipsis{display:inline-block}.ant-typography a,a.ant-typography{color:#1890ff;outline:none;cursor:pointer;transition:color .3s;text-decoration:none}.ant-typography a:focus,.ant-typography a:hover,a.ant-typography:focus,a.ant-typography:hover{color:#40a9ff}.ant-typography a:active,a.ant-typography:active{color:#096dd9}.ant-typography a:active,.ant-typography a:hover,a.ant-typography:active,a.ant-typography:hover{text-decoration:none}.ant-typography a.ant-typography-disabled,.ant-typography a[disabled],a.ant-typography.ant-typography-disabled,a.ant-typography[disabled]{color:#00000040;cursor:not-allowed}.ant-typography a.ant-typography-disabled:active,.ant-typography a.ant-typography-disabled:hover,.ant-typography a[disabled]:active,.ant-typography a[disabled]:hover,a.ant-typography.ant-typography-disabled:active,a.ant-typography.ant-typography-disabled:hover,a.ant-typography[disabled]:active,a.ant-typography[disabled]:hover{color:#00000040}.ant-typography a.ant-typography-disabled:active,.ant-typography a[disabled]:active,a.ant-typography.ant-typography-disabled:active,a.ant-typography[disabled]:active{pointer-events:none}.ant-typography code{margin:0 .2em;padding:.2em .4em .1em;font-size:85%;background:#9696961a;border:1px solid #64646433;border-radius:3px}.ant-typography kbd{margin:0 .2em;padding:.15em .4em .1em;font-size:90%;background:#9696960f;border:solid #64646433;border-width:1px 1px 2px;border-radius:3px}.ant-typography mark{padding:0;background-color:#ffe58f}.ant-typography ins,.ant-typography u{text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}.ant-typography del,.ant-typography s{text-decoration:line-through}.ant-typography strong{font-weight:600}.ant-typography-copy,.ant-typography-edit,.ant-typography-expand{color:#1890ff;text-decoration:none;outline:none;cursor:pointer;transition:color .3s;margin-left:4px}.ant-typography-copy:focus,.ant-typography-copy:hover,.ant-typography-edit:focus,.ant-typography-edit:hover,.ant-typography-expand:focus,.ant-typography-expand:hover{color:#40a9ff}.ant-typography-copy:active,.ant-typography-edit:active,.ant-typography-expand:active{color:#096dd9}.ant-typography-copy-success,.ant-typography-copy-success:focus,.ant-typography-copy-success:hover{color:#52c41a}.ant-typography-edit-content{position:relative}div.ant-typography-edit-content{left:-12px;margin-top:-5px;margin-bottom:calc(1em - 4px - 1px)}.ant-typography-edit-content-confirm{position:absolute;right:10px;bottom:8px;color:#00000073;pointer-events:none}.ant-typography-edit-content textarea{-moz-transition:none}.ant-typography ol,.ant-typography ul{margin:0 0 1em;padding:0}.ant-typography ol li,.ant-typography ul li{margin:0 0 0 20px;padding:0 0 0 4px}.ant-typography ul{list-style-type:circle}.ant-typography ul ul{list-style-type:disc}.ant-typography ol{list-style-type:decimal}.ant-typography blockquote,.ant-typography pre{margin:1em 0}.ant-typography pre{padding:.4em .6em;white-space:pre-wrap;word-wrap:break-word;background:#9696961a;border:1px solid #64646433;border-radius:3px}.ant-typography pre code{display:inline;margin:0;padding:0;font-size:inherit;font-family:inherit;background:#0000;border:0}.ant-typography blockquote{padding:0 0 0 .6em;border-left:4px solid #64646433;opacity:.85}.ant-typography-single-line{white-space:nowrap}.ant-typography-ellipsis-single-line{overflow:hidden;text-overflow:ellipsis}a.ant-typography-ellipsis-single-line,span.ant-typography-ellipsis-single-line{vertical-align:bottom}.ant-typography-ellipsis-multiple-line{display:-webkit-box;overflow:hidden;-webkit-line-clamp:3; + /*! autoprefixer: ignore next */-webkit-box-orient:vertical}.ant-typography-rtl{direction:rtl}.ant-typography-rtl .ant-typography-copy,.ant-typography-rtl .ant-typography-edit,.ant-typography-rtl .ant-typography-expand{margin-right:4px;margin-left:0}.ant-typography-rtl .ant-typography-expand{float:left}div.ant-typography-edit-content.ant-typography-rtl{right:-12px;left:auto}.ant-typography-rtl .ant-typography-edit-content-confirm{right:auto;left:10px}.ant-typography-rtl.ant-typography ol li,.ant-typography-rtl.ant-typography ul li{margin:0 20px 0 0;padding:0 4px 0 0}.ant-upload{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";outline:0}.ant-upload p{margin:0}.ant-upload-btn{display:block;width:100%;outline:none}.ant-upload input[type=file]{cursor:pointer}.ant-upload.ant-upload-select{display:inline-block}.ant-upload.ant-upload-disabled{cursor:not-allowed}.ant-upload.ant-upload-select-picture-card{width:104px;height:104px;margin-right:8px;margin-bottom:8px;text-align:center;vertical-align:top;background-color:#fafafa;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;transition:border-color .3s}.ant-upload.ant-upload-select-picture-card>.ant-upload{display:flex;align-items:center;justify-content:center;height:100%;text-align:center}.ant-upload.ant-upload-select-picture-card:hover{border-color:#1890ff}.ant-upload-disabled.ant-upload.ant-upload-select-picture-card:hover{border-color:#d9d9d9}.ant-upload.ant-upload-drag{position:relative;width:100%;height:100%;text-align:center;background:#fafafa;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;transition:border-color .3s}.ant-upload.ant-upload-drag .ant-upload{padding:16px 0}.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:#096dd9}.ant-upload.ant-upload-drag.ant-upload-disabled{cursor:not-allowed}.ant-upload.ant-upload-drag .ant-upload-btn{display:table;height:100%}.ant-upload.ant-upload-drag .ant-upload-drag-container{display:table-cell;vertical-align:middle}.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#40a9ff}.ant-upload.ant-upload-drag p.ant-upload-drag-icon{margin-bottom:20px}.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:#40a9ff;font-size:48px}.ant-upload.ant-upload-drag p.ant-upload-text{margin:0 0 4px;color:#000000d9;font-size:16px}.ant-upload.ant-upload-drag p.ant-upload-hint{color:#00000073;font-size:14px}.ant-upload.ant-upload-drag .anticon-plus{color:#00000040;font-size:30px;transition:all .3s}.ant-upload.ant-upload-drag .anticon-plus:hover,.ant-upload.ant-upload-drag:hover .anticon-plus{color:#00000073}.ant-upload-picture-card-wrapper{display:inline-block;width:100%}.ant-upload-picture-card-wrapper:before{display:table;content:""}.ant-upload-picture-card-wrapper:after{display:table;clear:both;content:""}.ant-upload-list{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;list-style:none;font-feature-settings:"tnum","tnum";line-height:1.5715}.ant-upload-list:after,.ant-upload-list:before{display:table;content:""}.ant-upload-list:after{clear:both}.ant-upload-list-item{position:relative;height:22.001px;margin-top:8px;font-size:14px}.ant-upload-list-item-name{display:inline-block;width:100%;padding-left:22px;overflow:hidden;line-height:1.5715;white-space:nowrap;text-overflow:ellipsis}.ant-upload-list-item-card-actions{position:absolute;right:0}.ant-upload-list-item-card-actions-btn{opacity:0}.ant-upload-list-item-card-actions-btn.ant-btn-sm{height:20px;line-height:1}.ant-upload-list-item-card-actions.picture{top:22px;line-height:0}.ant-upload-list-item-card-actions-btn:focus,.ant-upload-list-item-card-actions.picture .ant-upload-list-item-card-actions-btn{opacity:1}.ant-upload-list-item-card-actions .anticon{color:#00000073}.ant-upload-list-item-info{height:100%;padding:0 4px;transition:background-color .3s}.ant-upload-list-item-info>span{display:block;width:100%;height:100%}.ant-upload-list-item-info .ant-upload-text-icon .anticon,.ant-upload-list-item-info .anticon-loading .anticon{position:absolute;top:5px;color:#00000073;font-size:14px}.ant-upload-list-item .anticon-close{position:absolute;top:6px;right:4px;color:#00000073;font-size:10px;line-height:0;cursor:pointer;opacity:0;transition:all .3s}.ant-upload-list-item .anticon-close:hover{color:#000000d9}.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#f5f5f5}.ant-upload-list-item:hover .ant-upload-list-item-card-actions-btn,.ant-upload-list-item:hover .anticon-close{opacity:1}.ant-upload-list-item-error,.ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon,.ant-upload-list-item-error .ant-upload-list-item-name,.ant-upload-list-item-error .ant-upload-text-icon>.anticon{color:#ff4d4f}.ant-upload-list-item-error .ant-upload-list-item-card-actions-btn{opacity:1}.ant-upload-list-item-progress{position:absolute;bottom:-12px;width:100%;padding-left:26px;font-size:14px;line-height:0}.ant-upload-list-picture-card .ant-upload-list-item,.ant-upload-list-picture .ant-upload-list-item{position:relative;height:66px;padding:8px;border:1px solid #d9d9d9;border-radius:2px}.ant-upload-list-picture-card .ant-upload-list-item:hover,.ant-upload-list-picture .ant-upload-list-item:hover{background:#0000}.ant-upload-list-picture-card .ant-upload-list-item-error,.ant-upload-list-picture .ant-upload-list-item-error{border-color:#ff4d4f}.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info,.ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info{background:#0000}.ant-upload-list-picture-card .ant-upload-list-item-uploading,.ant-upload-list-picture .ant-upload-list-item-uploading{border-style:dashed}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,.ant-upload-list-picture .ant-upload-list-item-thumbnail{width:48px;height:48px;line-height:54px;text-align:center;opacity:.8}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail .anticon,.ant-upload-list-picture .ant-upload-list-item-thumbnail .anticon{font-size:26px}.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#e6f7ff"],.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#e6f7ff"]{fill:#fff2f0}.ant-upload-list-picture-card .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#1890ff"],.ant-upload-list-picture .ant-upload-list-item-error .ant-upload-list-item-thumbnail .anticon svg path[fill="#1890ff"]{fill:#ff4d4f}.ant-upload-list-picture-card .ant-upload-list-item-icon,.ant-upload-list-picture .ant-upload-list-item-icon{position:absolute;top:50%;left:50%;font-size:26px;transform:translate(-50%,-50%)}.ant-upload-list-picture-card .ant-upload-list-item-icon .anticon,.ant-upload-list-picture .ant-upload-list-item-icon .anticon{font-size:26px}.ant-upload-list-picture-card .ant-upload-list-item-image,.ant-upload-list-picture .ant-upload-list-item-image{max-width:100%}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img,.ant-upload-list-picture .ant-upload-list-item-thumbnail img{display:block;width:48px;height:48px;overflow:hidden}.ant-upload-list-picture-card .ant-upload-list-item-name,.ant-upload-list-picture .ant-upload-list-item-name{display:inline-block;box-sizing:border-box;max-width:100%;margin:0 0 0 8px;padding-right:8px;padding-left:48px;overflow:hidden;line-height:44px;white-space:nowrap;text-overflow:ellipsis;transition:all .3s}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-name,.ant-upload-list-picture .ant-upload-list-item-uploading .ant-upload-list-item-name{line-height:28px}.ant-upload-list-picture-card .ant-upload-list-item-progress,.ant-upload-list-picture .ant-upload-list-item-progress{bottom:14px;width:calc(100% - 24px);margin-top:0;padding-left:56px}.ant-upload-list-picture-card .anticon-close,.ant-upload-list-picture .anticon-close{position:absolute;top:8px;right:8px;line-height:1;opacity:1}.ant-upload-list-picture-card-container{display:inline-block;width:104px;height:104px;margin:0 8px 8px 0;vertical-align:top}.ant-upload-list-picture-card.ant-upload-list:after{display:none}.ant-upload-list-picture-card .ant-upload-list-item{height:100%;margin:0}.ant-upload-list-picture-card .ant-upload-list-item-info{position:relative;height:100%;overflow:hidden}.ant-upload-list-picture-card .ant-upload-list-item-info:before{position:absolute;z-index:1;width:100%;height:100%;background-color:#00000080;opacity:0;transition:all .3s;content:" "}.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info:before{opacity:1}.ant-upload-list-picture-card .ant-upload-list-item-actions{position:absolute;top:50%;left:50%;z-index:10;white-space:nowrap;transform:translate(-50%,-50%);opacity:0;transition:all .3s}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye{z-index:10;width:16px;margin:0 4px;color:#ffffffd9;font-size:16px;cursor:pointer;transition:all .3s}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye:hover{color:#fff}.ant-upload-list-picture-card .ant-upload-list-item-actions:hover,.ant-upload-list-picture-card .ant-upload-list-item-info:hover+.ant-upload-list-item-actions{opacity:1}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img{position:static;display:block;width:100%;height:100%;object-fit:contain}.ant-upload-list-picture-card .ant-upload-list-item-name{display:none;margin:8px 0 0;padding:0;line-height:1.5715;text-align:center}.ant-upload-list-picture-card .ant-upload-list-item-file+.ant-upload-list-item-name{position:absolute;bottom:10px;display:block}.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item{background-color:#fafafa}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info{height:auto}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-eye,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info:before{display:none}.ant-upload-list-picture-card .ant-upload-list-item-progress{bottom:32px;width:calc(100% - 14px);padding-left:0}.ant-upload-list-picture-container,.ant-upload-list-text-container{transition:opacity .3s,height .3s}.ant-upload-list-picture-container:before,.ant-upload-list-text-container:before{display:table;width:0;height:0;content:""}.ant-upload-list-picture-container .ant-upload-span,.ant-upload-list-text-container .ant-upload-span{display:block;flex:auto}.ant-upload-list-picture .ant-upload-span,.ant-upload-list-text .ant-upload-span{display:flex;align-items:center}.ant-upload-list-picture .ant-upload-span>*,.ant-upload-list-text .ant-upload-span>*{flex:none}.ant-upload-list-picture .ant-upload-list-item-name,.ant-upload-list-text .ant-upload-list-item-name{flex:auto;padding:0 8px}.ant-upload-list-picture .ant-upload-list-item-card-actions,.ant-upload-list-text .ant-upload-list-item-card-actions,.ant-upload-list-text .ant-upload-text-icon .anticon{position:static}.ant-upload-list .ant-upload-animate-inline-appear,.ant-upload-list .ant-upload-animate-inline-enter,.ant-upload-list .ant-upload-animate-inline-leave{animation-duration:.3s;animation-fill-mode:cubic-bezier(.78,.14,.15,.86)}.ant-upload-list .ant-upload-animate-inline-appear,.ant-upload-list .ant-upload-animate-inline-enter{animation-name:uploadAnimateInlineIn}.ant-upload-list .ant-upload-animate-inline-leave{animation-name:uploadAnimateInlineOut}@keyframes uploadAnimateInlineIn{0%{width:0;height:0;margin:0;padding:0;opacity:0}}@keyframes uploadAnimateInlineOut{to{width:0;height:0;margin:0;padding:0;opacity:0}}.ant-upload-rtl{direction:rtl}.ant-upload-rtl.ant-upload.ant-upload-select-picture-card{margin-right:auto;margin-left:8px}.ant-upload-list-rtl{direction:rtl}.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-1{padding-right:22px;padding-left:14px}.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-2{padding-right:22px;padding-left:28px}.ant-upload-list-rtl .ant-upload-list-item-name{padding-right:22px;padding-left:0}.ant-upload-list-rtl .ant-upload-list-item-name-icon-count-1{padding-left:14px}.ant-upload-list-rtl .ant-upload-list-item-card-actions{right:auto;left:0}.ant-upload-list-rtl .ant-upload-list-item-card-actions .anticon{padding-right:0;padding-left:5px}.ant-upload-list-rtl .ant-upload-list-item-info{padding:0 4px 0 12px}.ant-upload-list-rtl .ant-upload-list-item .anticon-close{right:auto;left:4px}.ant-upload-list-rtl .ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon{padding-right:0;padding-left:5px}.ant-upload-list-rtl .ant-upload-list-item-progress{padding-right:26px;padding-left:0}.ant-upload-list-picture-card .ant-upload-list-item-info,.ant-upload-list-picture .ant-upload-list-item-info{padding:0}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-thumbnail{right:8px;left:auto}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-icon,.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-icon{right:50%;left:auto;transform:translate(50%,-50%)}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name,.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name{margin:0 8px 0 0;padding-right:48px;padding-left:8px}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-1,.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-1{padding-right:48px;padding-left:18px}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-2,.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-2{padding-right:48px;padding-left:36px}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-progress,.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-progress{padding-right:0;padding-left:0}.ant-upload-list-rtl.ant-upload-list-picture-card .anticon-close,.ant-upload-list-rtl.ant-upload-list-picture .anticon-close{right:auto;left:8px}.ant-upload-list-rtl .ant-upload-list-picture-card-container{margin:0 0 8px 8px}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-actions{right:50%;left:auto;transform:translate(50%,-50%)}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-file+.ant-upload-list-item-name{margin:8px 0 0;padding:0}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item{float:unset}.ant-select-auto-complete{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum"}.ant-select-auto-complete .ant-select-clear{right:13px}.ant-select-dropdown-hidden{display:none}.ant-cascader{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum"}.ant-cascader-input.ant-input{position:static;width:100%;padding-right:24px;background-color:initial!important;cursor:pointer}.ant-cascader-picker-show-search .ant-cascader-input.ant-input{position:relative}.ant-cascader-picker{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:relative;display:inline-block;background-color:#fff;border-radius:2px;outline:0;cursor:pointer;transition:color .3s}.ant-cascader-picker-with-value .ant-cascader-picker-label{color:#0000}.ant-cascader-picker-disabled{color:#00000040;background:#f5f5f5;cursor:not-allowed}.ant-cascader-picker-disabled .ant-cascader-input{cursor:not-allowed}.ant-cascader-picker:focus .ant-cascader-input{border-color:#40a9ff;border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px #1890ff33}.ant-input-rtl .ant-cascader-picker:focus .ant-cascader-input{border-right-width:0;border-left-width:1px!important}.ant-cascader-picker-borderless .ant-cascader-input{border-color:#0000!important;box-shadow:none!important}.ant-cascader-picker-show-search.ant-cascader-picker-focused{color:#00000040}.ant-cascader-picker-label{position:absolute;top:50%;left:0;width:100%;height:20px;margin-top:-10px;padding:0 20px 0 12px;overflow:hidden;line-height:20px;white-space:nowrap;text-overflow:ellipsis}.ant-cascader-picker-clear{position:absolute;top:50%;right:12px;z-index:2;width:12px;height:12px;margin-top:-6px;color:#00000040;font-size:12px;line-height:12px;background:#fff;cursor:pointer;opacity:0;transition:color .3s ease,opacity .15s ease}.ant-cascader-picker-clear:hover{color:#00000073}.ant-cascader-picker:hover .ant-cascader-picker-clear{opacity:1}.ant-cascader-picker-arrow{position:absolute;top:50%;right:12px;z-index:1;width:12px;height:12px;margin-top:-6px;color:#00000040;font-size:12px;line-height:12px}.ant-cascader-picker-label:hover+.ant-cascader-input:not(.ant-cascader-picker-disabled .ant-cascader-picker-label:hover+.ant-cascader-input){border-color:#40a9ff;border-right-width:1px!important}.ant-input-rtl .ant-cascader-picker-label:hover+.ant-cascader-input:not(.ant-cascader-picker-disabled .ant-cascader-picker-label:hover+.ant-cascader-input){border-right-width:0;border-left-width:1px!important}.ant-cascader-picker-small .ant-cascader-picker-arrow,.ant-cascader-picker-small .ant-cascader-picker-clear{right:8px}.ant-cascader-menus{position:absolute;z-index:1050;font-size:14px;white-space:nowrap;background:#fff;border-radius:2px;box-shadow:0 3px 6px -4px #0000001f,0 6px 16px 0 #00000014,0 9px 28px 8px #0000000d}.ant-cascader-menus ol,.ant-cascader-menus ul{margin:0;list-style:none}.ant-cascader-menus-empty,.ant-cascader-menus-hidden{display:none}.ant-cascader-menus.ant-slide-up-appear.ant-slide-up-appear-active.ant-cascader-menus-placement-bottomLeft,.ant-cascader-menus.ant-slide-up-enter.ant-slide-up-enter-active.ant-cascader-menus-placement-bottomLeft{animation-name:antSlideUpIn}.ant-cascader-menus.ant-slide-up-appear.ant-slide-up-appear-active.ant-cascader-menus-placement-topLeft,.ant-cascader-menus.ant-slide-up-enter.ant-slide-up-enter-active.ant-cascader-menus-placement-topLeft{animation-name:antSlideDownIn}.ant-cascader-menus.ant-slide-up-leave.ant-slide-up-leave-active.ant-cascader-menus-placement-bottomLeft{animation-name:antSlideUpOut}.ant-cascader-menus.ant-slide-up-leave.ant-slide-up-leave-active.ant-cascader-menus-placement-topLeft{animation-name:antSlideDownOut}.ant-cascader-menu{display:inline-block;min-width:111px;height:180px;margin:0;padding:4px 0;overflow:auto;vertical-align:top;list-style:none;border-right:1px solid #f0f0f0;-ms-overflow-style:-ms-autohiding-scrollbar}.ant-cascader-menu:first-child{border-radius:2px 0 0 2px}.ant-cascader-menu:last-child{margin-right:-1px;border-right-color:#0000;border-radius:0 2px 2px 0}.ant-cascader-menu:only-child{border-radius:2px}.ant-cascader-menu-item{padding:5px 12px;overflow:hidden;line-height:22px;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:all .3s}.ant-cascader-menu-item:hover{background:#f5f5f5}.ant-cascader-menu-item-disabled{color:#00000040;cursor:not-allowed}.ant-cascader-menu-item-disabled:hover{background:#0000}.ant-cascader-menu-empty .ant-cascader-menu-item{color:#00000040;cursor:default;pointer-events:none}.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled),.ant-cascader-menu-item-active:not(.ant-cascader-menu-item-disabled):hover{font-weight:600;background-color:#e6f7ff}.ant-cascader-menu-item-expand{position:relative;padding-right:24px}.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,.ant-cascader-menu-item-loading-icon{position:absolute;right:12px;color:#00000073;font-size:10px}.ant-cascader-menu-item-disabled.ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,.ant-cascader-menu-item-disabled.ant-cascader-menu-item-loading-icon{color:#00000040}.ant-cascader-menu-item .ant-cascader-menu-item-keyword{color:#ff4d4f}.ant-cascader-picker-rtl .ant-cascader-input.ant-input{padding-right:11px;padding-left:24px;text-align:right}.ant-cascader-picker-rtl{direction:rtl}.ant-cascader-picker-rtl .ant-cascader-picker-label{padding:0 12px 0 20px;text-align:right}.ant-cascader-picker-rtl .ant-cascader-picker-arrow,.ant-cascader-picker-rtl .ant-cascader-picker-clear{right:auto;left:12px}.ant-cascader-picker-rtl.ant-cascader-picker-small .ant-cascader-picker-arrow,.ant-cascader-picker-rtl.ant-cascader-picker-small .ant-cascader-picker-clear{right:auto;left:8px}.ant-cascader-menu-rtl .ant-cascader-menu{direction:rtl;border-right:none;border-left:1px solid #f0f0f0}.ant-cascader-menu-rtl .ant-cascader-menu:first-child{border-radius:0 2px 2px 0}.ant-cascader-menu-rtl .ant-cascader-menu:last-child{margin-right:0;margin-left:-1px;border-left-color:#0000;border-radius:2px 0 0 2px}.ant-cascader-menu-rtl .ant-cascader-menu:only-child{border-radius:2px}.ant-cascader-menu-rtl .ant-cascader-menu-item-expand{padding-right:12px;padding-left:24px}.ant-cascader-menu-rtl .ant-cascader-menu-item-expand .ant-cascader-menu-item-expand-icon,.ant-cascader-menu-rtl .ant-cascader-menu-item-loading-icon{right:auto;left:12px}.ant-cascader-menu-rtl .ant-cascader-menu-item-loading-icon{transform:scaleY(-1)}.ant-cascader-menus{position:relative;margin-top:2px;margin-bottom:2px}nz-tree-virtual-scroll-view{display:block;position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;-webkit-overflow-scrolling:touch}nz-tree-virtual-scroll-view .ant-tree-list,nz-tree-virtual-scroll-view .ant-tree-list-holder{height:100%}nz-tree-view .ant-tree-switcher+.ant-tree-switcher.nz-tree-leaf-line-icon,nz-tree-virtual-scroll-view .ant-tree-switcher+.ant-tree-switcher.nz-tree-leaf-line-icon{display:none}nz-tree-view .ant-tree-list-holder-inner{display:flex;flex-direction:column}.ant-tree-treenode-leaf-last .ant-tree-switcher-leaf-line:before{top:auto!important;bottom:auto!important;height:14px!important}.ant-tree.ant-tree-directory .ant-tree-treenode{position:relative}.ant-tree.ant-tree-directory .ant-tree-treenode:before{position:absolute;top:0;right:0;bottom:4px;left:0;transition:background-color .3s;content:"";pointer-events:none}.ant-tree.ant-tree-directory .ant-tree-treenode:hover:before{background:#f5f5f5}.ant-tree.ant-tree-directory .ant-tree-treenode>*{z-index:1}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-switcher{transition:color .3s}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper{border-radius:0;-webkit-user-select:none;user-select:none}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper:hover{background:#0000}.ant-tree.ant-tree-directory .ant-tree-treenode .ant-tree-node-content-wrapper.ant-tree-node-selected{color:#fff;background:#0000}.ant-tree.ant-tree-directory .ant-tree-treenode-selected:before,.ant-tree.ant-tree-directory .ant-tree-treenode-selected:hover:before{background:#1890ff}.ant-tree.ant-tree-directory .ant-tree-treenode-selected .ant-tree-switcher{color:#fff}.ant-tree.ant-tree-directory .ant-tree-treenode-selected .ant-tree-node-content-wrapper{color:#fff;background:#0000}.ant-tree-checkbox{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:relative;top:.2em;line-height:1;white-space:nowrap;outline:none;cursor:pointer}.ant-tree-checkbox-input:focus+.ant-tree-checkbox-inner,.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-inner,.ant-tree-checkbox:hover .ant-tree-checkbox-inner{border-color:#1890ff}.ant-tree-checkbox-checked:after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #1890ff;border-radius:2px;visibility:hidden;animation:antCheckboxEffect .36s ease-in-out;animation-fill-mode:backwards;content:""}.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox:after,.ant-tree-checkbox:hover:after{visibility:visible}.ant-tree-checkbox-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;direction:ltr;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:initial;transition:all .3s}.ant-tree-checkbox-inner:after{position:absolute;top:50%;left:22%;display:table;width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;content:" "}.ant-tree-checkbox-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;cursor:pointer;opacity:0}.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after{position:absolute;display:table;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;content:" "}.ant-tree-checkbox-checked .ant-tree-checkbox-inner{background-color:#1890ff;border-color:#1890ff}.ant-tree-checkbox-disabled{cursor:not-allowed}.ant-tree-checkbox-disabled.ant-tree-checkbox-checked .ant-tree-checkbox-inner:after{border-color:#00000040;animation-name:none}.ant-tree-checkbox-disabled .ant-tree-checkbox-input{cursor:not-allowed}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-tree-checkbox-disabled .ant-tree-checkbox-inner:after{border-color:#f5f5f5;border-collapse:initial;animation-name:none}.ant-tree-checkbox-disabled+span{color:#00000040;cursor:not-allowed}.ant-tree-checkbox-disabled:hover:after,.ant-tree-checkbox-wrapper:hover .ant-tree-checkbox-disabled:after{visibility:hidden}.ant-tree-checkbox-wrapper{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";display:inline-flex;align-items:baseline;line-height:unset;cursor:pointer}.ant-tree-checkbox-wrapper:after{display:inline-block;width:0;overflow:hidden;content:"\a0"}.ant-tree-checkbox-wrapper.ant-tree-checkbox-wrapper-disabled{cursor:not-allowed}.ant-tree-checkbox-wrapper+.ant-tree-checkbox-wrapper{margin-left:8px}.ant-tree-checkbox+span{padding-right:8px;padding-left:8px}.ant-tree-checkbox-group{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";display:inline-block}.ant-tree-checkbox-group-item{margin-right:8px}.ant-tree-checkbox-group-item:last-child{margin-right:0}.ant-tree-checkbox-group-item+.ant-tree-checkbox-group-item{margin-left:0}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-tree-checkbox-indeterminate .ant-tree-checkbox-inner:after{top:50%;left:50%;width:8px;height:8px;background-color:#1890ff;border:0;transform:translate(-50%,-50%) scale(1);opacity:1;content:" "}.ant-tree-checkbox-indeterminate.ant-tree-checkbox-disabled .ant-tree-checkbox-inner:after{background-color:#00000040;border-color:#00000040}.ant-tree-checkbox-rtl{direction:rtl}.ant-tree-checkbox-group-rtl .ant-tree-checkbox-group-item{margin-right:0;margin-left:8px}.ant-tree-checkbox-group-rtl .ant-tree-checkbox-group-item:last-child{margin-left:0!important}.ant-tree-checkbox-group-rtl .ant-tree-checkbox-group-item+.ant-tree-checkbox-group-item{margin-left:8px}.ant-tree{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";background:#fff;border-radius:2px;transition:background-color .3s}.ant-tree-focused:not(:hover):not(.ant-tree-active-focused){background:#e6f7ff}.ant-tree-list-holder-inner{align-items:flex-start}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner{align-items:stretch}.ant-tree.ant-tree-block-node .ant-tree-list-holder-inner .ant-tree-node-content-wrapper{flex:auto}.ant-tree .ant-tree-treenode{display:flex;align-items:flex-start;padding:0 0 4px;outline:none}.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper{color:#00000040;cursor:not-allowed}.ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper:hover{background:#0000}.ant-tree .ant-tree-treenode-active .ant-tree-node-content-wrapper{background:#f5f5f5}.ant-tree .ant-tree-treenode:not(.ant-tree .ant-tree-treenode-disabled).filter-node .ant-tree-title{color:inherit;font-weight:500}.ant-tree-indent{align-self:stretch;white-space:nowrap;-webkit-user-select:none;user-select:none}.ant-tree-indent-unit{display:inline-block;width:24px}.ant-tree-switcher{position:relative;flex:none;align-self:stretch;width:24px;margin:0;line-height:24px;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none}.ant-tree-switcher .ant-select-tree-switcher-icon,.ant-tree-switcher .ant-tree-switcher-icon{display:inline-block;font-size:10px;vertical-align:initial}.ant-tree-switcher .ant-select-tree-switcher-icon svg,.ant-tree-switcher .ant-tree-switcher-icon svg{transition:transform .3s}.ant-tree-switcher-noop{cursor:default}.ant-tree-switcher_close .ant-tree-switcher-icon svg{transform:rotate(-90deg)}.ant-tree-switcher-loading-icon{color:#1890ff}.ant-tree-switcher-leaf-line{position:relative;z-index:1;display:inline-block;width:100%;height:100%}.ant-tree-switcher-leaf-line:before{position:absolute;top:0;bottom:-4px;margin-left:-1px;border-left:1px solid #d9d9d9;content:" "}.ant-tree-switcher-leaf-line:after{position:absolute;width:10px;height:14px;margin-left:-1px;border-bottom:1px solid #d9d9d9;content:" "}.ant-tree-checkbox{top:auto;margin:4px 8px 0 0}.ant-tree .ant-tree-node-content-wrapper{position:relative;z-index:auto;min-height:24px;margin:0;padding:0 4px;color:inherit;line-height:24px;background:#0000;border-radius:2px;cursor:pointer;transition:all .3s,border 0s,line-height 0s,box-shadow 0s}.ant-tree .ant-tree-node-content-wrapper:hover{background-color:#f5f5f5}.ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:#bae7ff}.ant-tree .ant-tree-node-content-wrapper .ant-tree-iconEle{display:inline-block;width:24px;height:24px;line-height:24px;text-align:center;vertical-align:top}.ant-tree .ant-tree-node-content-wrapper .ant-tree-iconEle:empty{display:none}.ant-tree-unselectable .ant-tree-node-content-wrapper:hover{background-color:initial}.ant-tree-node-content-wrapper[draggable=true]{line-height:24px;-webkit-user-select:none;user-select:none}.ant-tree-node-content-wrapper[draggable=true] .ant-tree-drop-indicator{position:absolute;z-index:1;height:2px;background-color:#1890ff;border-radius:1px;pointer-events:none}.ant-tree-node-content-wrapper[draggable=true] .ant-tree-drop-indicator:after{position:absolute;top:-3px;left:-6px;width:8px;height:8px;background-color:initial;border:2px solid #1890ff;border-radius:50%;content:""}.ant-tree .ant-tree-treenode.drop-container>[draggable]{box-shadow:0 0 0 2px #1890ff}.ant-tree-show-line .ant-tree-indent-unit{position:relative;height:100%}.ant-tree-show-line .ant-tree-indent-unit:before{position:absolute;top:0;right:12px;bottom:-4px;border-right:1px solid #d9d9d9;content:""}.ant-tree-show-line .ant-tree-indent-unit-end:before{display:none}.ant-tree-show-line .ant-tree-switcher{background:#fff}.ant-tree-show-line .ant-tree-switcher-line-icon{vertical-align:-.225em}.ant-tree-rtl{direction:rtl}.ant-tree-rtl .ant-tree-node-content-wrapper[draggable=true] .ant-tree-drop-indicator:after{right:-6px;left:unset}.ant-tree .ant-tree-treenode-rtl{direction:rtl}.ant-tree-rtl .ant-tree-switcher_close .ant-tree-switcher-icon svg{transform:rotate(90deg)}.ant-tree-rtl.ant-tree-show-line .ant-tree-indent-unit:before{right:auto;left:-13px;border-right:none;border-left:1px solid #d9d9d9}.ant-tree-rtl.ant-tree-checkbox,.ant-tree-select-dropdown-rtl .ant-select-tree-checkbox{margin:4px 0 0 8px}.font-highlight{color:#ff4d4f}.ant-tree-child-tree{overflow:hidden}nz-tree{display:block}.ant-select-tree-checkbox{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";position:relative;top:.2em;line-height:1;white-space:nowrap;outline:none;cursor:pointer}.ant-select-tree-checkbox-input:focus+.ant-select-tree-checkbox-inner,.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-inner,.ant-select-tree-checkbox:hover .ant-select-tree-checkbox-inner{border-color:#1890ff}.ant-select-tree-checkbox-checked:after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #1890ff;border-radius:2px;visibility:hidden;animation:antCheckboxEffect .36s ease-in-out;animation-fill-mode:backwards;content:""}.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox:after,.ant-select-tree-checkbox:hover:after{visibility:visible}.ant-select-tree-checkbox-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;direction:ltr;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:initial;transition:all .3s}.ant-select-tree-checkbox-inner:after{position:absolute;top:50%;left:22%;display:table;width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;content:" "}.ant-select-tree-checkbox-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;cursor:pointer;opacity:0}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner:after{position:absolute;display:table;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;content:" "}.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner{background-color:#1890ff;border-color:#1890ff}.ant-select-tree-checkbox-disabled{cursor:not-allowed}.ant-select-tree-checkbox-disabled.ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner:after{border-color:#00000040;animation-name:none}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-input{cursor:not-allowed}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner:after{border-color:#f5f5f5;border-collapse:initial;animation-name:none}.ant-select-tree-checkbox-disabled+span{color:#00000040;cursor:not-allowed}.ant-select-tree-checkbox-disabled:hover:after,.ant-select-tree-checkbox-wrapper:hover .ant-select-tree-checkbox-disabled:after{visibility:hidden}.ant-select-tree-checkbox-wrapper{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";display:inline-flex;align-items:baseline;line-height:unset;cursor:pointer}.ant-select-tree-checkbox-wrapper:after{display:inline-block;width:0;overflow:hidden;content:"\a0"}.ant-select-tree-checkbox-wrapper.ant-select-tree-checkbox-wrapper-disabled{cursor:not-allowed}.ant-select-tree-checkbox-wrapper+.ant-select-tree-checkbox-wrapper{margin-left:8px}.ant-select-tree-checkbox+span{padding-right:8px;padding-left:8px}.ant-select-tree-checkbox-group{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";display:inline-block}.ant-select-tree-checkbox-group-item{margin-right:8px}.ant-select-tree-checkbox-group-item:last-child{margin-right:0}.ant-select-tree-checkbox-group-item+.ant-select-tree-checkbox-group-item{margin-left:0}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner:after{top:50%;left:50%;width:8px;height:8px;background-color:#1890ff;border:0;transform:translate(-50%,-50%) scale(1);opacity:1;content:" "}.ant-select-tree-checkbox-indeterminate.ant-select-tree-checkbox-disabled .ant-select-tree-checkbox-inner:after{background-color:#00000040;border-color:#00000040}.ant-select-tree-checkbox-rtl{direction:rtl}.ant-select-tree-checkbox-group-rtl .ant-select-tree-checkbox-group-item{margin-right:0;margin-left:8px}.ant-select-tree-checkbox-group-rtl .ant-select-tree-checkbox-group-item:last-child{margin-left:0!important}.ant-select-tree-checkbox-group-rtl .ant-select-tree-checkbox-group-item+.ant-select-tree-checkbox-group-item{margin-left:8px}.ant-tree-select-dropdown{padding:8px 4px 0}.ant-tree-select-dropdown-rtl{direction:rtl}.ant-tree-select-dropdown .ant-select-tree{border-radius:0}.ant-tree-select-dropdown .ant-select-tree-list-holder-inner{align-items:stretch}.ant-tree-select-dropdown .ant-select-tree-list-holder-inner .ant-select-tree-treenode{padding-bottom:8px}.ant-tree-select-dropdown .ant-select-tree-list-holder-inner .ant-select-tree-treenode .ant-select-tree-node-content-wrapper{flex:auto}.ant-select-tree{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";background:#fff;border-radius:2px;transition:background-color .3s}.ant-select-tree-focused:not(:hover):not(.ant-select-tree-active-focused){background:#e6f7ff}.ant-select-tree-list-holder-inner{align-items:flex-start}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner{align-items:stretch}.ant-select-tree.ant-select-tree-block-node .ant-select-tree-list-holder-inner .ant-select-tree-node-content-wrapper{flex:auto}.ant-select-tree .ant-select-tree-treenode{display:flex;align-items:flex-start;padding:0 0 4px;outline:none}.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper{color:#00000040;cursor:not-allowed}.ant-select-tree .ant-select-tree-treenode-disabled .ant-select-tree-node-content-wrapper:hover{background:#0000}.ant-select-tree .ant-select-tree-treenode-active .ant-select-tree-node-content-wrapper{background:#f5f5f5}.ant-select-tree .ant-select-tree-treenode:not(.ant-select-tree .ant-select-tree-treenode-disabled).filter-node .ant-select-tree-title{color:inherit;font-weight:500}.ant-select-tree-indent{align-self:stretch;white-space:nowrap;-webkit-user-select:none;user-select:none}.ant-select-tree-indent-unit{display:inline-block;width:24px}.ant-select-tree-switcher{position:relative;flex:none;align-self:stretch;width:24px;margin:0;line-height:24px;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none}.ant-select-tree-switcher .ant-select-tree-switcher-icon,.ant-select-tree-switcher .ant-tree-switcher-icon{display:inline-block;font-size:10px;vertical-align:initial}.ant-select-tree-switcher .ant-select-tree-switcher-icon svg,.ant-select-tree-switcher .ant-tree-switcher-icon svg{transition:transform .3s}.ant-select-tree-switcher-noop{cursor:default}.ant-select-tree-switcher_close .ant-select-tree-switcher-icon svg{transform:rotate(-90deg)}.ant-select-tree-switcher-loading-icon{color:#1890ff}.ant-select-tree-switcher-leaf-line{position:relative;z-index:1;display:inline-block;width:100%;height:100%}.ant-select-tree-switcher-leaf-line:before{position:absolute;top:0;bottom:-4px;margin-left:-1px;border-left:1px solid #d9d9d9;content:" "}.ant-select-tree-switcher-leaf-line:after{position:absolute;width:10px;height:14px;margin-left:-1px;border-bottom:1px solid #d9d9d9;content:" "}.ant-select-tree-checkbox{top:auto;margin:4px 8px 0 0}.ant-select-tree .ant-select-tree-node-content-wrapper{position:relative;z-index:auto;min-height:24px;margin:0;padding:0 4px;color:inherit;line-height:24px;background:#0000;border-radius:2px;cursor:pointer;transition:all .3s,border 0s,line-height 0s,box-shadow 0s}.ant-select-tree .ant-select-tree-node-content-wrapper:hover{background-color:#f5f5f5}.ant-select-tree .ant-select-tree-node-content-wrapper.ant-select-tree-node-selected{background-color:#bae7ff}.ant-select-tree .ant-select-tree-node-content-wrapper .ant-select-tree-iconEle{display:inline-block;width:24px;height:24px;line-height:24px;text-align:center;vertical-align:top}.ant-select-tree .ant-select-tree-node-content-wrapper .ant-select-tree-iconEle:empty{display:none}.ant-select-tree-unselectable .ant-select-tree-node-content-wrapper:hover{background-color:initial}.ant-select-tree-node-content-wrapper[draggable=true]{line-height:24px;-webkit-user-select:none;user-select:none}.ant-select-tree-node-content-wrapper[draggable=true] .ant-tree-drop-indicator{position:absolute;z-index:1;height:2px;background-color:#1890ff;border-radius:1px;pointer-events:none}.ant-select-tree-node-content-wrapper[draggable=true] .ant-tree-drop-indicator:after{position:absolute;top:-3px;left:-6px;width:8px;height:8px;background-color:initial;border:2px solid #1890ff;border-radius:50%;content:""}.ant-select-tree .ant-select-tree-treenode.drop-container>[draggable]{box-shadow:0 0 0 2px #1890ff}.ant-select-tree-show-line .ant-select-tree-indent-unit{position:relative;height:100%}.ant-select-tree-show-line .ant-select-tree-indent-unit:before{position:absolute;top:0;right:12px;bottom:-4px;border-right:1px solid #d9d9d9;content:""}.ant-select-tree-show-line .ant-select-tree-indent-unit-end:before{display:none}.ant-select-tree-show-line .ant-select-tree-switcher{background:#fff}.ant-select-tree-show-line .ant-select-tree-switcher-line-icon{vertical-align:-.225em}.ant-tree-select-dropdown-rtl .ant-select-tree .ant-select-tree-switcher_close .ant-select-tree-switcher-icon svg{transform:rotate(90deg)}.ant-tree-select-dropdown-rtl .ant-select-tree .ant-select-tree-switcher-loading-icon{transform:scaleY(-1)}.ant-tree.ant-select-tree.ant-tree-show-line nz-tree-node[builtin]:not(:last-child)>li:before{content:" ";width:1px;border-left:1px solid #d9d9d9;height:calc(100% - 16px);position:absolute;left:12px;margin:26px 0}.ant-select-dropdown.ant-select-tree-dropdown{top:100%;left:0;position:relative;width:100%;margin-top:4px;margin-bottom:4px;overflow:auto}.ant-picker-calendar{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;font-feature-settings:"tnum","tnum";background:#fff}.ant-picker-calendar-header{display:flex;justify-content:flex-end;padding:12px 0}.ant-picker-calendar-header .ant-picker-calendar-year-select{min-width:80px}.ant-picker-calendar-header .ant-picker-calendar-month-select{min-width:70px;margin-left:8px}.ant-picker-calendar-header .ant-picker-calendar-mode-switch{margin-left:8px}.ant-picker-calendar .ant-picker-panel{background:#fff;border:0;border-top:1px solid #f0f0f0;border-radius:0}.ant-picker-calendar .ant-picker-panel .ant-picker-date-panel,.ant-picker-calendar .ant-picker-panel .ant-picker-month-panel{width:auto}.ant-picker-calendar .ant-picker-panel .ant-picker-body{padding:8px 0}.ant-picker-calendar .ant-picker-panel .ant-picker-content{width:100%}.ant-picker-calendar-mini{border-radius:2px}.ant-picker-calendar-mini .ant-picker-calendar-header{padding-right:8px;padding-left:8px}.ant-picker-calendar-mini .ant-picker-panel{border-radius:0 0 2px 2px}.ant-picker-calendar-mini .ant-picker-content{height:256px}.ant-picker-calendar-mini .ant-picker-content th{height:auto;padding:0;line-height:18px}.ant-picker-calendar-full .ant-picker-panel{display:block;width:100%;text-align:right;background:#fff;border:0}.ant-picker-calendar-full .ant-picker-panel .ant-picker-body td,.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th{padding:0}.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th{height:auto;padding:0 12px 5px 0;line-height:18px}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell:before{display:none}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell:hover .ant-picker-calendar-date{background:#f5f5f5}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell .ant-picker-calendar-date-today:before{display:none}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date-today,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date-today{background:#e6f7ff}.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date-today .ant-picker-calendar-date-value,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected .ant-picker-calendar-date .ant-picker-calendar-date-value,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date-today .ant-picker-calendar-date-value,.ant-picker-calendar-full .ant-picker-panel .ant-picker-cell-selected:hover .ant-picker-calendar-date .ant-picker-calendar-date-value{color:#1890ff}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date{display:block;width:auto;height:auto;margin:0 4px;padding:4px 8px 0;border:0;border-top:2px solid #f0f0f0;border-radius:0;transition:background .3s}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-value{line-height:24px;transition:color .3s}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-content{position:static;width:auto;height:86px;overflow-y:auto;color:#000000d9;line-height:1.5715;text-align:left}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-today{border-color:#1890ff}.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-today .ant-picker-calendar-date-value{color:#000000d9}@media only screen and (max-width: 480px){.ant-picker-calendar-header{display:block}.ant-picker-calendar-header .ant-picker-calendar-year-select{width:50%}.ant-picker-calendar-header .ant-picker-calendar-month-select{width:calc(50% - 8px)}.ant-picker-calendar-header .ant-picker-calendar-mode-switch{width:100%;margin-top:8px;margin-left:0}.ant-picker-calendar-header .ant-picker-calendar-mode-switch>label{width:50%;text-align:center}}.ant-picker-calendar-rtl{direction:rtl}.ant-picker-calendar-rtl .ant-picker-calendar-header .ant-picker-calendar-mode-switch,.ant-picker-calendar-rtl .ant-picker-calendar-header .ant-picker-calendar-month-select{margin-right:8px;margin-left:0}.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel{text-align:left}.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel .ant-picker-body th{padding:0 0 5px 12px}.ant-picker-calendar-rtl.ant-picker-calendar-full .ant-picker-panel .ant-picker-calendar-date-content{text-align:right}.ant-result{padding:48px 32px}.ant-result-success .ant-result-icon>.anticon{color:#52c41a}.ant-result-error .ant-result-icon>.anticon{color:#ff4d4f}.ant-result-info .ant-result-icon>.anticon{color:#1890ff}.ant-result-warning .ant-result-icon>.anticon{color:#faad14}.ant-result-image{width:250px;height:295px;margin:auto}.ant-result-icon{margin-bottom:24px;text-align:center}.ant-result-icon>.anticon{font-size:72px}.ant-result-title{color:#000000d9;font-size:24px;line-height:1.8;text-align:center}.ant-result-subtitle{color:#00000073;font-size:14px;line-height:1.6;text-align:center}.ant-result-extra{margin:24px 0 0;text-align:center}.ant-result-extra>*{margin-right:8px}.ant-result-extra>:last-child{margin-right:0}.ant-result-content{margin-top:24px;padding:24px 40px;background-color:#fafafa}.ant-result-rtl{direction:rtl}.ant-result-rtl .ant-result-extra>*{margin-right:0;margin-left:8px}.ant-result-rtl .ant-result-extra>:last-child{margin-left:0}nz-result{display:block}.ant-space{display:inline-flex}.ant-space-vertical{flex-direction:column}.ant-space-align-center{align-items:center}.ant-space-align-start{align-items:flex-start}.ant-space-align-end{align-items:flex-end}.ant-space-align-baseline{align-items:baseline}.ant-space-item:empty{display:none}.ant-space-rtl{direction:rtl}nz-space-item{display:block}.ant-image{position:relative;display:inline-block}.ant-image-img{display:block;width:100%;height:auto}.ant-image-img-placeholder{background-color:#f5f5f5;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=);background-repeat:no-repeat;background-position:50%;background-size:30%}.ant-image-mask{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#fff;background:#00000080;cursor:pointer;opacity:0;transition:opacity .3s}.ant-image-mask-info .anticon{margin-inline-end:4px}.ant-image-mask:hover{opacity:1}.ant-image-placeholder{position:absolute;top:0;right:0;bottom:0;left:0}.ant-image-preview{pointer-events:none;height:100%;text-align:center}.ant-image-preview.ant-zoom-enter,.ant-image-preview.antzoom-appear{transform:none;opacity:0;animation-duration:.3s;-webkit-user-select:none;user-select:none}.ant-image-preview-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;height:100%;background-color:#00000073}.ant-image-preview-mask-hidden{display:none}.ant-image-preview-wrap{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;outline:0;-webkit-overflow-scrolling:touch}.ant-image-preview-body{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.ant-image-preview-img{max-width:100%;max-height:100%;vertical-align:middle;transform:scaleX(1);cursor:grab;-webkit-user-select:none;user-select:none;pointer-events:auto}.ant-image-preview-img,.ant-image-preview-img-wrapper{transition:transform .3s cubic-bezier(.215,.61,.355,1) 0s}.ant-image-preview-img-wrapper{position:absolute;top:0;right:0;bottom:0;left:0}.ant-image-preview-img-wrapper:before{display:inline-block;width:1px;height:50%;margin-right:-1px;content:""}.ant-image-preview-moving .ant-image-preview-img{cursor:grabbing}.ant-image-preview-moving .ant-image-preview-img-wrapper{transition-duration:0s}.ant-image-preview-wrap{z-index:1080}.ant-image-preview-operations{box-sizing:border-box;margin:0;padding:0;color:#000000d9;font-size:14px;font-variant:tabular-nums;line-height:1.5715;font-feature-settings:"tnum","tnum";position:absolute;top:0;right:0;z-index:1;display:flex;flex-direction:row-reverse;align-items:center;width:100%;color:#ffffffd9;list-style:none;background:#0000001a;pointer-events:auto}.ant-image-preview-operations-operation{margin-left:12px;padding:12px;cursor:pointer}.ant-image-preview-operations-operation-disabled{color:#ffffff40;pointer-events:none}.ant-image-preview-operations-operation:last-of-type{margin-left:0}.ant-image-preview-operations-icon{font-size:18px}.ant-image-preview-switch-left,.ant-image-preview-switch-right{position:absolute;top:50%;right:10px;z-index:1;display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-top:-22px;color:#ffffffd9;background:#0000001a;border-radius:50%;cursor:pointer;pointer-events:auto}.ant-image-preview-switch-left-disabled,.ant-image-preview-switch-right-disabled{color:#ffffff40;cursor:not-allowed}.ant-image-preview-switch-left-disabled>.anticon,.ant-image-preview-switch-right-disabled>.anticon{cursor:not-allowed}.ant-image-preview-switch-left>.anticon,.ant-image-preview-switch-right>.anticon{font-size:18px}.ant-image-preview-switch-left{left:10px}.ant-image-preview-switch-right{right:10px}.cdk-overlay-backdrop.ant-image-preview-mask{opacity:1}@media screen and (min-width: 768px){::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#c1c1c1}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}} \ No newline at end of file diff --git a/src/blrec/data/webapp/worker-basic.min.js b/src/blrec/data/webapp/worker-basic.min.js new file mode 100644 index 0000000..e960603 --- /dev/null +++ b/src/blrec/data/webapp/worker-basic.min.js @@ -0,0 +1,20 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +// tslint:disable:no-console + +self.addEventListener('install', event => { + self.skipWaiting(); +}); + +self.addEventListener('activate', event => { + event.waitUntil(self.clients.claim()); + self.registration.unregister().then(() => { + console.log('NGSW Safety Worker - unregistered old service worker'); + }); +}); diff --git a/src/blrec/disk_space/__init__.py b/src/blrec/disk_space/__init__.py new file mode 100644 index 0000000..ba82766 --- /dev/null +++ b/src/blrec/disk_space/__init__.py @@ -0,0 +1,15 @@ +from .space_monitor import SpaceMonitor, SpaceEventListener +from .space_reclaimer import SpaceReclaimer +from .models import DiskUsage +from .helpers import is_space_enough, delete_file + + +__all__ = ( + 'SpaceMonitor', + 'SpaceEventListener', + 'SpaceReclaimer', + 'DiskUsage', + + 'is_space_enough', + 'delete_file', +) diff --git a/src/blrec/disk_space/helpers.py b/src/blrec/disk_space/helpers.py new file mode 100644 index 0000000..9e996ff --- /dev/null +++ b/src/blrec/disk_space/helpers.py @@ -0,0 +1,25 @@ +import os +import shutil +import logging +import asyncio +from typing import Literal + + +logger = logging.getLogger(__name__) + + +def is_space_enough(path: str, size: int) -> bool: + return shutil.disk_usage(path).free > size + + +async def delete_file( + path: str, log_level: Literal['INFO', 'DEBUG'] = 'INFO' +) -> None: + loop = asyncio.get_running_loop() + + try: + await loop.run_in_executor(None, os.remove, path) + except Exception as e: + logger.error(f'Failed to delete {path!r}, due to: {repr(e)}') + else: + logger.log(logging.getLevelName(log_level), f'Deleted {path!r}') diff --git a/src/blrec/disk_space/models.py b/src/blrec/disk_space/models.py new file mode 100644 index 0000000..b77262b --- /dev/null +++ b/src/blrec/disk_space/models.py @@ -0,0 +1,9 @@ + +import attr + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class DiskUsage: + total: int + used: int + free: int diff --git a/src/blrec/disk_space/space_monitor.py b/src/blrec/disk_space/space_monitor.py new file mode 100644 index 0000000..8271152 --- /dev/null +++ b/src/blrec/disk_space/space_monitor.py @@ -0,0 +1,83 @@ +import logging +import asyncio +import shutil +from contextlib import suppress + + +from .models import DiskUsage +from .helpers import is_space_enough +from ..event.event_emitter import EventListener, EventEmitter +from ..exception import exception_callback +from ..utils.mixins import SwitchableMixin +from ..logging.room_id import aio_task_with_room_id + + +__all__ = 'SpaceMonitor', 'SpaceEventListener' + + +logger = logging.getLogger(__name__) + + +class SpaceEventListener(EventListener): + async def on_space_no_enough( + self, path: str, threshold: int, disk_usage: DiskUsage + ) -> None: + ... + + +class SpaceMonitor(EventEmitter[SpaceEventListener], SwitchableMixin): + def __init__( + self, + path: str, + *, + check_interval: int = 60, # seconds + space_threshold: int = 1073741824, # 1GB + ) -> None: + super().__init__() + self.path = path + self.check_interval = check_interval + self.space_threshold = space_threshold + self._monitoring: bool = False + + def _do_enable(self) -> None: + asyncio.create_task(self._start()) + logger.debug('Enabled space monitor') + + def _do_disable(self) -> None: + asyncio.create_task(self._stop()) + logger.debug('Disabled space monitor') + + async def _start(self) -> None: + if self._monitoring: + return + self._create_polling_task() + self._monitoring = True + + async def _stop(self) -> None: + if not self._monitoring: + return + await self._cancel_polling_task() + self._monitoring = False + + def _create_polling_task(self) -> None: + self._polling_task = asyncio.create_task(self._polling_loop()) + self._polling_task.add_done_callback(exception_callback) + + async def _cancel_polling_task(self) -> None: + self._polling_task.cancel() + with suppress(asyncio.CancelledError): + await self._polling_task + + @aio_task_with_room_id + async def _polling_loop(self) -> None: + while True: + if not is_space_enough(self.path, self.space_threshold): + logger.warning('No enough disk space left') + await self._emit_space_no_enough() + await asyncio.sleep(self.check_interval) + + async def _emit_space_no_enough(self) -> None: + usage = DiskUsage(*shutil.disk_usage(self.path)) + await self._emit( + 'space_no_enough', self.path, self.space_threshold, usage + ) diff --git a/src/blrec/disk_space/space_reclaimer.py b/src/blrec/disk_space/space_reclaimer.py new file mode 100644 index 0000000..86a7a93 --- /dev/null +++ b/src/blrec/disk_space/space_reclaimer.py @@ -0,0 +1,77 @@ +import os +import glob +from datetime import datetime +from pathlib import Path +import logging +import asyncio +from functools import partial +from typing import Iterable, List + + +from .helpers import delete_file, is_space_enough +from .space_monitor import SpaceMonitor, DiskUsage, SpaceEventListener +from ..utils.mixins import SwitchableMixin + + +__all__ = 'SpaceReclaimer', + + +logger = logging.getLogger(__name__) + + +class SpaceReclaimer(SpaceEventListener, SwitchableMixin): + _SUFFIX_SET = frozenset(('.flv', '.mp4', '.xml', '.meta')) + + def __init__( + self, + space_monitor: SpaceMonitor, + path: str, + *, + recycle_records: bool = False, + ) -> None: + super().__init__() + self._space_monitor = space_monitor + self.path = path + self.recycle_records = recycle_records + + async def on_space_no_enough( + self, path: str, threshold: int, disk_usage: DiskUsage + ) -> None: + await self._free_space(threshold) + + def _do_enable(self) -> None: + self._space_monitor.add_listener(self) + logger.debug('Enabled space reclaimer') + + def _do_disable(self) -> None: + self._space_monitor.remove_listener(self) + logger.debug('Disabled space reclaimer') + + async def _free_space(self, size: int) -> bool: + if is_space_enough(self.path, size): + return True + if self.recycle_records: + if await self._free_space_from_records(size): + return True + return False + + async def _free_space_from_records(self, size: int) -> bool: + logger.info('Free space from records ...') + # only delete files created 24 hours ago + max_ctime = datetime.now().timestamp() - 60 * 60 * 24 + for path in await self._get_record_file_paths(max_ctime): + await delete_file(path) + if is_space_enough(self.path, size): + return True + return False + + async def _get_record_file_paths(self, max_ctime: float) -> List[str]: + glob_path = os.path.join(self.path, '*/**/*.*') + paths: Iterable[Path] + paths = map(lambda p: Path(p), glob.iglob(glob_path, recursive=True)) + paths = filter(lambda p: p.suffix in self._SUFFIX_SET, paths) + paths = filter(lambda p: p.stat().st_ctime <= max_ctime, paths) + func = partial(sorted, paths, key=lambda p: p.stat().st_ctime) + loop = asyncio.get_running_loop() + path_list = await loop.run_in_executor(None, func) + return list(map(str, path_list)) diff --git a/src/blrec/event/__init__.py b/src/blrec/event/__init__.py new file mode 100644 index 0000000..a139a39 --- /dev/null +++ b/src/blrec/event/__init__.py @@ -0,0 +1,40 @@ +from .event_center import EventCenter +from .event_emitter import EventEmitter, EventListener +from .models import ( + BaseEvent, + BaseEventData, + LiveBeganEvent, + LiveBeganEventData, + LiveEndedEvent, + LiveEndedEventData, + RoomChangeEvent, + RoomChangeEventData, + SpaceNoEnoughEvent, + SpaceNoEnoughEventData, + FileCompletedEvent, + FileCompletedEventData, + Error, + ErrorData, +) + + +__all__ = ( + 'EventCenter', + 'EventEmitter', + 'EventListener', + + 'BaseEvent', + 'BaseEventData', + 'LiveBeganEvent', + 'LiveBeganEventData', + 'LiveEndedEvent', + 'LiveEndedEventData', + 'RoomChangeEvent', + 'RoomChangeEventData', + 'SpaceNoEnoughEvent', + 'SpaceNoEnoughEventData', + 'FileCompletedEvent', + 'FileCompletedEventData', + 'Error', + 'ErrorData', +) diff --git a/src/blrec/event/event_center.py b/src/blrec/event/event_center.py new file mode 100644 index 0000000..a6b60bf --- /dev/null +++ b/src/blrec/event/event_center.py @@ -0,0 +1,22 @@ + +from rx.subject import Subject +from rx.core import Observable + +from .typing import Event +from ..utils.patterns import Singleton + + +__all__ = 'EventCenter', + + +class EventCenter(Singleton): + def __init__(self) -> None: + super().__init__() + self._source = Subject() + + @property + def events(self) -> Observable: + return self._source + + def submit(self, event: Event) -> None: + self._source.on_next(event) diff --git a/src/blrec/event/event_emitter.py b/src/blrec/event/event_emitter.py new file mode 100644 index 0000000..c1bc4a9 --- /dev/null +++ b/src/blrec/event/event_emitter.py @@ -0,0 +1,41 @@ +from __future__ import annotations +from abc import ABC +from contextlib import suppress +from typing import Any, List, Generic, TypeVar + + +from ..exception import ExceptionSubmitter + + +__all__ = 'EventListener', 'EventEmitter' + + +class EventListener(ABC): + ... + + +_T = TypeVar('_T', bound=EventListener) + + +class EventEmitter(Generic[_T]): + def __init__(self) -> None: + super().__init__() + self._listeners: List[_T] = [] + + def add_listener(self, listener: _T) -> None: + if listener not in self._listeners: + self._listeners.append(listener) + + def remove_listener(self, listener: _T) -> None: + with suppress(ValueError): + self._listeners.remove(listener) + + # Python's type system is nowhere near Typescript's 😔 + # https://www.typescriptlang.org/docs/handbook/2/template-literal-types.html#string-unions-in-types + # https://news.ycombinator.com/item?id=20824938 + # https://github.com/python/typing/issues/685 + async def _emit(self, name: str, *args: Any, **kwds: Any) -> None: + for listener in self._listeners: + with ExceptionSubmitter(): + coro = getattr(listener, 'on_' + name) + await coro(*args, **kwds) diff --git a/src/blrec/event/event_submitters.py b/src/blrec/event/event_submitters.py new file mode 100644 index 0000000..d611913 --- /dev/null +++ b/src/blrec/event/event_submitters.py @@ -0,0 +1,74 @@ +from __future__ import annotations +from typing import TYPE_CHECKING + +from .event_center import EventCenter +from .models import ( + LiveBeganEvent, + LiveBeganEventData, + LiveEndedEvent, + LiveEndedEventData, + RoomChangeEvent, + RoomChangeEventData, + FileCompletedEvent, + FileCompletedEventData, + SpaceNoEnoughEvent, + SpaceNoEnoughEventData, +) +from ..bili.live import Live +from ..bili.models import RoomInfo +from ..bili.live_monitor import LiveEventListener +from ..disk_space import SpaceEventListener +from ..postprocess import PostprocessorEventListener +if TYPE_CHECKING: + from ..bili.live_monitor import LiveMonitor + from ..disk_space import SpaceMonitor, DiskUsage + from ..postprocess import Postprocessor + + +__all__ = ( + 'LiveEventSubmitter', + 'SpaceEventSubmitter', + 'PostprocessorEventSubmitter', +) + +event_center = EventCenter.get_instance() + + +class LiveEventSubmitter(LiveEventListener): + def __init__(self, live_monitor: LiveMonitor) -> None: + super().__init__() + live_monitor.add_listener(self) + + async def on_live_began(self, live: Live) -> None: + data = LiveBeganEventData(live.user_info, live.room_info) + event_center.submit(LiveBeganEvent.from_data(data)) + + async def on_live_ended(self, live: Live) -> None: + data = LiveEndedEventData(live.user_info, live.room_info) + event_center.submit(LiveEndedEvent.from_data(data)) + + async def on_room_changed(self, room_info: RoomInfo) -> None: + data = RoomChangeEventData(room_info) + event_center.submit(RoomChangeEvent.from_data(data)) + + +class SpaceEventSubmitter(SpaceEventListener): + def __init__(self, space_monitor: SpaceMonitor) -> None: + super().__init__() + space_monitor.add_listener(self) + + async def on_space_no_enough( + self, path: str, threshold: int, disk_usage: DiskUsage + ) -> None: + data = SpaceNoEnoughEventData(path, threshold, disk_usage) + event_center.submit(SpaceNoEnoughEvent.from_data(data)) + + +class PostprocessorEventSubmitter(PostprocessorEventListener): + def __init__(self, postprocessor: Postprocessor) -> None: + super().__init__() + postprocessor.add_listener(self) + + async def on_file_completed(self, room_id: int, path: str) -> None: + data = FileCompletedEventData(room_id, path) + event_center.submit(FileCompletedEvent.from_data(data)) diff --git a/src/blrec/event/models.py b/src/blrec/event/models.py new file mode 100644 index 0000000..72391cd --- /dev/null +++ b/src/blrec/event/models.py @@ -0,0 +1,117 @@ +from __future__ import annotations +from abc import ABC +import uuid +from datetime import datetime, timedelta, timezone +from typing import Any, Dict, Generic, TYPE_CHECKING, Type, TypeVar + +import attr + +if TYPE_CHECKING: + from ..bili.models import UserInfo, RoomInfo + from ..disk_space.space_monitor import DiskUsage + + +_D = TypeVar('_D', bound='BaseEventData') +_E = TypeVar('_E') +# XXX error: Invalid self argument ... +# _E = TypeVar('_E', bound='BaseEvent[BaseEventData]') + + +class BaseEventData(ABC): + pass + + +@attr.s(auto_attribs=True, slots=True, frozen=True, kw_only=True) +class BaseEvent(Generic[_D]): + type: str + id: uuid.UUID + date: datetime + data: _D + + @classmethod + def from_data(cls: Type[_E], data: _D) -> _E: + return cls( # type: ignore + id=uuid.uuid1(), + date=datetime.now(timezone(timedelta(hours=8))), + data=data, + ) + + def asdict(self) -> Dict[str, Any]: + return attr.asdict(self, value_serializer=value_serializer) + + +def value_serializer(instance, attribute, value): # type: ignore + if isinstance(value, (uuid.UUID, datetime)): + return str(value) + return value + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class LiveBeganEventData(BaseEventData): + user_info: UserInfo + room_info: RoomInfo + + +@attr.s(auto_attribs=True, slots=True, frozen=True, kw_only=True) +class LiveBeganEvent(BaseEvent[LiveBeganEventData]): + type: str = 'LiveBeganEvent' + data: LiveBeganEventData + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class LiveEndedEventData(LiveBeganEventData): + pass + + +@attr.s(auto_attribs=True, slots=True, frozen=True, kw_only=True) +class LiveEndedEvent(BaseEvent[LiveEndedEventData]): + type: str = 'LiveEndedEvent' + data: LiveEndedEventData + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class RoomChangeEventData(BaseEventData): + room_info: RoomInfo + + +@attr.s(auto_attribs=True, slots=True, frozen=True, kw_only=True) +class RoomChangeEvent(BaseEvent[RoomChangeEventData]): + type: str = 'RoomChangeEvent' + data: RoomChangeEventData + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class SpaceNoEnoughEventData(BaseEventData): + path: str + threshold: int + usage: DiskUsage + + +@attr.s(auto_attribs=True, slots=True, frozen=True, kw_only=True) +class SpaceNoEnoughEvent(BaseEvent[SpaceNoEnoughEventData]): + type: str = 'SpaceNoEnoughEvent' + data: SpaceNoEnoughEventData + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class FileCompletedEventData(BaseEventData): + room_id: int + path: str + + +@attr.s(auto_attribs=True, slots=True, frozen=True, kw_only=True) +class FileCompletedEvent(BaseEvent[FileCompletedEventData]): + type: str = 'FileCompletedEvent' + data: FileCompletedEventData + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class ErrorData(BaseEventData): + name: str + detail: str + + +@attr.s(auto_attribs=True, slots=True, frozen=True, kw_only=True) +class Error(BaseEvent[ErrorData]): + type: str = 'Error' + data: ErrorData diff --git a/src/blrec/event/typing.py b/src/blrec/event/typing.py new file mode 100644 index 0000000..ae27584 --- /dev/null +++ b/src/blrec/event/typing.py @@ -0,0 +1,36 @@ +from typing import Union + + +from .models import ( + LiveBeganEvent, + LiveBeganEventData, + LiveEndedEvent, + LiveEndedEventData, + RoomChangeEvent, + RoomChangeEventData, + SpaceNoEnoughEvent, + SpaceNoEnoughEventData, + FileCompletedEvent, + FileCompletedEventData, + Error, + ErrorData, +) + + +Event = Union[ + LiveBeganEvent, + LiveEndedEvent, + RoomChangeEvent, + SpaceNoEnoughEvent, + FileCompletedEvent, + Error, +] + +EventData = Union[ + LiveBeganEventData, + LiveEndedEventData, + RoomChangeEventData, + SpaceNoEnoughEventData, + FileCompletedEventData, + ErrorData, +] diff --git a/src/blrec/exception/__init__.py b/src/blrec/exception/__init__.py new file mode 100644 index 0000000..8cb3fd1 --- /dev/null +++ b/src/blrec/exception/__init__.py @@ -0,0 +1,27 @@ +from .exceptions import ( + ExistsError, + NotFoundError, +) +from .exception_center import ExceptionCenter +from .exception_handler import ExceptionHandler +from .exception_submiter import ( + ExceptionSubmitter, + submit_exception, + exception_callback, +) +from .helpers import format_exception + + +__all__ = ( + 'ExistsError', + 'NotFoundError', + + 'ExceptionCenter', + 'ExceptionSubmitter', + 'submit_exception', + 'exception_callback', + + 'ExceptionHandler', + + 'format_exception', +) diff --git a/src/blrec/exception/exception_center.py b/src/blrec/exception/exception_center.py new file mode 100644 index 0000000..5fbf513 --- /dev/null +++ b/src/blrec/exception/exception_center.py @@ -0,0 +1,21 @@ + +from rx.subject import Subject +from rx.core import Observable + +from ..utils.patterns import Singleton + + +__all__ = 'ExceptionCenter', + + +class ExceptionCenter(Singleton): + def __init__(self) -> None: + super().__init__() + self._source = Subject() + + @property + def exceptions(self) -> Observable: + return self._source + + def submit(self, exc: BaseException) -> None: + self._source.on_next(exc) diff --git a/src/blrec/exception/exception_handler.py b/src/blrec/exception/exception_handler.py new file mode 100644 index 0000000..d14302f --- /dev/null +++ b/src/blrec/exception/exception_handler.py @@ -0,0 +1,30 @@ +import logging + + +from .exception_center import ExceptionCenter +from ..utils.mixins import SwitchableMixin + + +logger = logging.getLogger(__name__) + + +__all__ = 'ExceptionHandler', + + +class ExceptionHandler(SwitchableMixin): + def _do_enable(self) -> None: + exceptions = ExceptionCenter.get_instance().exceptions + self._subscription = exceptions.subscribe(self._handle_exception) + logger.debug('Enabled Exception Handler') + + def _do_disable(self) -> None: + self._subscription.dispose() + logger.debug('Disabled Exception Handler') + + def _handle_exception(self, exc: BaseException) -> None: + self._log_exception(exc) + + def _log_exception(self, exc: BaseException) -> None: + exc_info = (type(exc), exc, exc.__traceback__) + msg = 'Unhandled Exception' + logger.critical(msg, exc_info=exc_info) diff --git a/src/blrec/exception/exception_submiter.py b/src/blrec/exception/exception_submiter.py new file mode 100644 index 0000000..3c787d4 --- /dev/null +++ b/src/blrec/exception/exception_submiter.py @@ -0,0 +1,32 @@ + +import asyncio + +from .exception_center import ExceptionCenter + + +__all__ = ( + 'ExceptionSubmitter', + 'submit_exception', + 'exception_callback', +) + + +class ExceptionSubmitter: + def __enter__(self): # type: ignore + pass + + def __exit__(self, exc_type, exc_val, exc_tb): # type: ignore + if exc_val is not None: + submit_exception(exc_val) + return True + + +def submit_exception(exc: BaseException) -> None: + ExceptionCenter.get_instance().submit(exc) + + +def exception_callback(future: asyncio.Future) -> None: # type: ignore + if not future.done() or future.cancelled(): + return + if (exc := future.exception()): + submit_exception(exc) diff --git a/src/blrec/exception/exceptions.py b/src/blrec/exception/exceptions.py new file mode 100644 index 0000000..6c83c12 --- /dev/null +++ b/src/blrec/exception/exceptions.py @@ -0,0 +1,8 @@ + + +class NotFoundError(ValueError): + pass + + +class ExistsError(ValueError): + pass diff --git a/src/blrec/exception/helpers.py b/src/blrec/exception/helpers.py new file mode 100644 index 0000000..ec0cf4b --- /dev/null +++ b/src/blrec/exception/helpers.py @@ -0,0 +1,8 @@ +import traceback + + +def format_exception(exc: BaseException) -> str: + exc_info = (type(exc), exc, exc.__traceback__) + errmsg = 'Unhandled exception in event loop\n' + errmsg += ''.join(traceback.format_exception(*exc_info)) + return errmsg diff --git a/src/blrec/flv/__init__.py b/src/blrec/flv/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/blrec/flv/amf.py b/src/blrec/flv/amf.py new file mode 100644 index 0000000..6c91cf9 --- /dev/null +++ b/src/blrec/flv/amf.py @@ -0,0 +1,215 @@ +from enum import IntEnum +from datetime import datetime +from collections import OrderedDict +from typing import Any, BinaryIO, Dict, Final, List, Tuple + + +from .struct_io import StructWriter, StructReader + + +__all__ = ( + 'Undefined', + 'AMFReader', + 'AMFWriter', +) + + +class ScriptDataValueType(IntEnum): + NUMBER = 0 + BOOLEAN = 1 + STRING = 2 + OBJECT = 3 + MOVIE_CLIP = 4 + NULL = 5 + UNDEFINED = 6 + REFERENCE = 7 + ECMA_ARRAY = 8 + OBJECT_END_MARKER = 9 + STRICT_ARRAY = 10 + DATE = 11 + LONG_STRING = 12 + + +Undefined: Final[object] = object() + + +class AMFReader: + def __init__(self, stream: BinaryIO) -> None: + self._reader = StructReader(stream) + + def read_value(self) -> Any: + value_type = self._read_value_type() + if value_type == ScriptDataValueType.NUMBER: + return self._read_number() + elif value_type == ScriptDataValueType.BOOLEAN: + return self._read_boolean() + elif value_type == ScriptDataValueType.STRING: + return self._read_string() + elif value_type == ScriptDataValueType.OBJECT: + return self._read_object() + elif value_type == ScriptDataValueType.MOVIE_CLIP: # reserved + raise NotImplementedError(value_type) + elif value_type == ScriptDataValueType.NULL: + return None + elif value_type == ScriptDataValueType.UNDEFINED: + return Undefined + elif value_type == ScriptDataValueType.REFERENCE: + raise NotImplementedError(value_type) + elif value_type == ScriptDataValueType.ECMA_ARRAY: + return self._read_ecma_array() + elif value_type == ScriptDataValueType.OBJECT_END_MARKER: + return value_type + elif value_type == ScriptDataValueType.STRICT_ARRAY: + return self._read_strict_array() + elif value_type == ScriptDataValueType.DATE: + return self._read_date() + elif value_type == ScriptDataValueType.LONG_STRING: + return self._read_long_string() + else: + raise ValueError(value_type) + + def _read_value_type(self) -> ScriptDataValueType: + return ScriptDataValueType(self._reader.read_ui8()) + + def _read_number(self) -> float: + return self._reader.read_f64() + + def _read_boolean(self) -> bool: + return self._reader.read_ui8() != 0 + + def _read_string(self) -> str: + size = self._reader.read_ui16() + if size == 0: + return '' + data = self._reader.read(size) + return data.decode() + + def _read_long_string(self) -> str: + size = self._reader.read_ui32() + if size == 0: + return '' + data = self._reader.read(size) + return data.decode() + + def _read_object_property(self) -> Tuple[str, Any]: + key = self._read_string() + value = self.read_value() + return key, value + + def _read_object(self) -> Dict[str, Any]: + result = {} + while True: + key, value = self._read_object_property() + if key == '' and value == ScriptDataValueType.OBJECT_END_MARKER: + break + result[key] = value + return result + + def _read_ecma_array(self) -> 'OrderedDict[str, Any]': + count = self._reader.read_ui32() + result = OrderedDict(self._read_object()) + assert len(result) == count + return result + + def _read_strict_array(self) -> List[Any]: + count = self._reader.read_ui32() + result = list(self.read_value() for _ in range(count)) + assert len(result) == count + return result + + def _read_date(self) -> datetime: + # the number of milliseconds + timestamp = self._reader.read_f64() / 1000 + # reserved, should be set to 0x0000 + time_zone = self._reader.read_si16() + assert time_zone == 0x0000 + return datetime.fromtimestamp(timestamp) + + +class AMFWriter: + def __init__(self, stream: BinaryIO) -> None: + self._writer = StructWriter(stream) + + def write_value(self, value: Any) -> None: + if value is None: + self._write_value_type(ScriptDataValueType.NULL) + elif value is Undefined: + self._write_value_type(ScriptDataValueType.UNDEFINED) + elif isinstance(value, bool): + self._write_value_type(ScriptDataValueType.BOOLEAN) + self._write_boolean(value) + elif isinstance(value, float): + self._write_value_type(ScriptDataValueType.NUMBER) + self._write_number(value) + elif isinstance(value, str): + if len(value.encode()) > 65535: # XXX + self._write_value_type(ScriptDataValueType.LONG_STRING) + self._write_long_string(value) + else: + self._write_value_type(ScriptDataValueType.STRING) + self._write_string(value) + elif isinstance(value, list): + self._write_value_type(ScriptDataValueType.STRICT_ARRAY) + self._write_strict_array(value) + elif isinstance(value, OrderedDict): + self._write_value_type(ScriptDataValueType.ECMA_ARRAY) + self._write_ecma_array(value) + elif isinstance(value, dict): + self._write_value_type(ScriptDataValueType.OBJECT) + self._write_object(value) + elif isinstance(value, datetime): + self._write_value_type(ScriptDataValueType.DATE) + self._write_date(value) + else: + raise TypeError(type(value)) + + def _write_value_type(self, value_type: ScriptDataValueType) -> None: + self._writer.write_ui8(value_type.value) + + def _write_number(self, number: float) -> None: + self._writer.write_f64(number) + + def _write_boolean(self, boolean: bool) -> None: + self._writer.write_ui8(int(boolean)) + + def _write_string(self, string: str) -> None: + data = string.encode() + size = len(data) + self._writer.write_ui16(size) + if size > 0: + self._writer.write(data) + + def _write_long_string(self, string: str) -> None: + data = string.encode() + size = len(data) + self._writer.write_ui32(size) + if size > 0: + self._writer.write(data) + + def _write_object_property(self, key: str, value: Any) -> None: + self._write_string(key) + self.write_value(value) + + def _finalize_write_object(self) -> None: + self._write_string('') + self._write_value_type(ScriptDataValueType.OBJECT_END_MARKER) + + def _write_object(self, obj: Dict[str, Any]) -> None: + for key, value in obj.items(): + self._write_object_property(key, value) + self._finalize_write_object() + + def _write_ecma_array(self, array: 'OrderedDict[str, Any]') -> None: + self._writer.write_ui32(len(array)) + self._write_object(array) + + def _write_strict_array(self, array: List[Any]) -> None: + self._writer.write_ui32(len(array)) + for item in array: + self.write_value(item) + + def _write_date(self, date_time: datetime) -> None: + # the number of milliseconds + self._writer.write_f64(date_time.timestamp() * 1000) + # reserved, should be set to 0x0000 + self._writer.write_si16(0x0000) diff --git a/src/blrec/flv/avc.py b/src/blrec/flv/avc.py new file mode 100644 index 0000000..c0be34f --- /dev/null +++ b/src/blrec/flv/avc.py @@ -0,0 +1,521 @@ +from __future__ import annotations +import io +import math +from typing import Final, List, Tuple + +import attr +from bitarray import bitarray + +from .struct_io import StructReader +from .bits_io import BitsReader +from .utils import OffsetRepositor + + +__all__ = ( + 'AVCDecoderConfigurationRecord', + 'SequenceParameterSet', + 'PictureParameterSet', + 'AVCSequenceHeaderParser', + 'NalUnit', + 'NalUnitParser', + 'SequenceParameterSetData', + 'SequenceParameterSetRBSPParser', + 'extract_resolution', +) + + +# ISO/IEC 14496-15:2010(E) +# 5.2.4.1.1 Syntax +# 5.2.4.1.2 Semantics + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class AVCDecoderConfigurationRecord: + configuration_Version: int + avc_profile_indication: int + profile_compatibility: int + avc_level_indication: int + length_size_minus_one: int + num_of_sequence_parameter_sets: int + sequence_parameter_sets: List[SequenceParameterSet] + num_of_picture_parameter_sets: int + picture_parameter_sets: List[PictureParameterSet] + # extensions ignored + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class SequenceParameterSet: + sequence_parameter_set_length: int + sequence_parameter_set_nal_unit: bytes + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class PictureParameterSet: + picture_parameter_set_length: int + picture_parameter_set_nal_unit: bytes + + +class AVCSequenceHeaderParser: + def parse(self, data: bytes) -> AVCDecoderConfigurationRecord: + reader = StructReader(io.BytesIO(data)) + + configuration_Version = reader.read_ui8() + avc_profile_indication = reader.read_ui8() + profile_compatibility = reader.read_ui8() + avc_level_indication = reader.read_ui8() + length_size_minus_one = reader.read_ui8() & ~0b1111_1100 + + num_of_sequence_parameter_sets = reader.read_ui8() & ~0b1110_0000 + sequence_parameter_sets: List[SequenceParameterSet] = [] + + for _ in range(num_of_sequence_parameter_sets): + sequence_parameter_set_length = reader.read_ui16() + sequence_parameter_set_nal_unit = reader.read( + sequence_parameter_set_length + ) + sequence_parameter_sets.append( + SequenceParameterSet( + sequence_parameter_set_length, + sequence_parameter_set_nal_unit, + ) + ) + + num_of_picture_parameter_sets = reader.read_ui8() + picture_parameter_sets: List[PictureParameterSet] = [] + + for _ in range(num_of_picture_parameter_sets): + picture_parameter_set_length = reader.read_ui16() + picture_parameter_set_nal_unit = reader.read( + picture_parameter_set_length + ) + picture_parameter_sets.append( + PictureParameterSet( + picture_parameter_set_length, + picture_parameter_set_nal_unit, + ) + ) + + # extensions ignored + + return AVCDecoderConfigurationRecord( + configuration_Version, + avc_profile_indication, + profile_compatibility, + avc_level_indication, + length_size_minus_one, + num_of_sequence_parameter_sets, + sequence_parameter_sets, + num_of_picture_parameter_sets, + picture_parameter_sets, + ) + + +# ISO/IEC 14496-10:2020(E) +# 7.3.1 NAL unit syntax +# 7.4.1 NAL unit semantics + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class NalUnit: + forbidden_zero_bit: int + nal_ref_idc: int + nal_unit_type: int + # extensions ignored + rbsp_bytes: bytes + + +class NalUnitParser: + def parse(self, data: bytes) -> NalUnit: + stream = io.BytesIO(data) + reader = StructReader(stream) + + byte = reader.read_ui8() + forbidden_zero_bit = byte >> 7 + nal_ref_idc = (byte >> 5) & 0b0000_0011 + nal_unit_type = byte & 0b0001_1111 + + # extensions ignored + if nal_unit_type in (14, 20, 21): + raise NotImplementedError() + nal_unit_header_bytes = 1 + + i = nal_unit_header_bytes + num_bytes_in_nal_unit = len(data) + rbsp_bytes_io = io.BytesIO() + + while i < num_bytes_in_nal_unit: + with OffsetRepositor(stream): + try: + next_24_bits = reader.read(3) + except EOFError: + next_24_bits = b'0' + + if i + 2 < num_bytes_in_nal_unit and next_24_bits == 0x000003: + rbsp_bytes_io.write(reader.read(2)) + emulation_prevention_three_byte = reader.read(1) + assert emulation_prevention_three_byte == 0x03 + i += 3 + else: + rbsp_bytes_io.write(reader.read(1)) + i += 1 + + rbsp_bytes = rbsp_bytes_io.getvalue() + + return NalUnit( + forbidden_zero_bit, + nal_ref_idc, + nal_unit_type, + rbsp_bytes, + ) + + +# ISO/IEC 14496-10:2020(E) +# 7.3.2.1.1 Sequence parameter set data syntax +# 7.4.2.1.1 Sequence parameter set data semantics + +# Table 6-1 – SubWidthC, and SubHeightC values derived from +# chroma_format_idc and separate_colour_plane_flag +SUB_WIDTH_HEIGHT_MAPPING: Final = { + 1: (2, 2), + 2: (2, 1), + 3: (1, 1), +} + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class SequenceParameterSetData: + profile_idc: int + constraint_set0_flag: int + constraint_set1_flag: int + constraint_set2_flag: int + constraint_set3_flag: int + constraint_set4_flag: int + constraint_set5_flag: int + level_idc: int + seq_parameter_set_id: int + chroma_format_idc: int + separate_colour_plane_flag: int + bit_depth_luma_minus8: int + bit_depth_chroma_minus8: int + qpprime_y_zero_transform_bypass_flag: int + seq_scaling_matrix_present_flag: int + seq_scaling_list_present_flag: List[int] + log2_max_frame_num_minus4: int + pic_order_cnt_type: int + log2_max_pic_order_cnt_lsb_minus4: int + delta_pic_order_always_zero_flag: int + offset_for_non_ref_pic: int + offset_for_top_to_bottom_field: int + num_ref_frames_in_pic_order_cnt_cycle: int + offset_for_ref_frame: List[int] + max_num_ref_frames: int + gaps_in_frame_num_value_allowed_flag: int + pic_width_in_mbs_minus1: int + pic_height_in_map_units_minus1: int + frame_mbs_only_flag: int + mb_adaptive_frame_field_flag: int + direct_8x8_inference_flag: int + frame_cropping_flag: int + frame_crop_left_offset: int + frame_crop_right_offset: int + frame_crop_top_offset: int + frame_crop_bottom_offset: int + vui_parameters_present_flag: int + + @property + def chroma_array_type(self) -> int: + if self.separate_colour_plane_flag == 0: + return self.chroma_format_idc + return 0 + + @property + def sub_width_c(self) -> int: + assert ( + self.chroma_format_idc in (1, 2, 3) and + self.separate_colour_plane_flag == 0 + ), 'SubWidthC undefined!' + return SUB_WIDTH_HEIGHT_MAPPING[self.chroma_format_idc][0] + + @property + def sub_height_c(self) -> int: + assert ( + self.chroma_format_idc in (1, 2, 3) and + self.separate_colour_plane_flag == 0 + ), 'SubHeightC undefined!' + return SUB_WIDTH_HEIGHT_MAPPING[self.chroma_format_idc][1] + + @property + def mb_width_c(self) -> int: + if self.chroma_format_idc == 0 or self.separate_colour_plane_flag == 1: + return 0 + return 16 // self.sub_width_c + + @property + def mb_height_c(self) -> int: + if self.chroma_format_idc == 0 or self.separate_colour_plane_flag == 1: + return 0 + return 16 // self.sub_height_c + + @property + def pic_width_in_mbs(self) -> int: + return self.pic_width_in_mbs_minus1 + 1 + + @property + def pic_width_in_samples_l(self) -> int: + return self.pic_width_in_mbs * 16 + + @property + def pic_width_in_samples_c(self) -> int: + return self.pic_width_in_mbs * self.mb_width_c + + @property + def pic_height_in_map_units(self) -> int: + return self.pic_height_in_map_units_minus1 + 1 + + @property + def pic_size_in_map_units(self) -> int: + return self.pic_width_in_mbs * self.pic_height_in_map_units + + @property + def frame_height_in_mbs(self) -> int: + return (2 - self.frame_mbs_only_flag) * self.pic_height_in_map_units + + @property + def crop_unit_x(self) -> int: + if self.chroma_array_type == 0: + return 1 + return self.sub_width_c + + @property + def crop_unit_y(self) -> int: + if self.chroma_array_type == 0: + return 2 - self.frame_mbs_only_flag + return self.sub_height_c * (2 - self.frame_mbs_only_flag) + + @property + def frame_width(self) -> int: + x0 = self.crop_unit_x * self.frame_crop_left_offset + x1 = self.pic_width_in_samples_l - \ + (self.crop_unit_x * self.frame_crop_right_offset + 1) + return x1 - x0 + 1 # x1 inclusive + + @property + def frame_height(self) -> int: + y0 = self.crop_unit_y * self.frame_crop_top_offset + y1 = 16 * self.frame_height_in_mbs - \ + (self.crop_unit_y * self.frame_crop_bottom_offset + 1) + return y1 - y0 + 1 # y1 inclusive + + +class SequenceParameterSetRBSPParser: + def parse(self, rbsp: bytes) -> SequenceParameterSetData: + bits = bitarray() + bits.frombytes(rbsp) + bits_reader = BitsReader(bits) + egc_reader = ExpGolombCodeReader(bits_reader) + + profile_idc = bits_reader.read_bits_as_int(8) + constraint_set0_flag = bits_reader.read_bits_as_int(1) + constraint_set1_flag = bits_reader.read_bits_as_int(1) + constraint_set2_flag = bits_reader.read_bits_as_int(1) + constraint_set3_flag = bits_reader.read_bits_as_int(1) + constraint_set4_flag = bits_reader.read_bits_as_int(1) + constraint_set5_flag = bits_reader.read_bits_as_int(1) + reserved_zero_2bits = bits_reader.read_bits_as_int(2) + assert reserved_zero_2bits == 0 + level_idc = bits_reader.read_bits_as_int(8) + seq_parameter_set_id = egc_reader.read_ue() + + # 7.4.2.1.1 Sequence parameter set data semantics + # When chroma_format_idc is not present, it shall be inferred to be + # equal to 1 (4:2:0 chroma format). + chroma_format_idc = 1 + # When separate_colour_plane_flag is not present, it shall be + # inferred to be equal to 0. + separate_colour_plane_flag = 0 + # When bit_depth_luma_minus8 is not present, it shall be inferred to be + # equal to 0. bit_depth_luma_minus8 shall be in the range of 0 to 6, + # inclusive. + bit_depth_luma_minus8 = 0 + # When bit_depth_chroma_minus8 is not present, it shall be inferred to + # be equal to 0. bit_depth_chroma_minus8 shall be in the range of 0 to + # 6, inclusive. + bit_depth_chroma_minus8 = 0 + # When qpprime_y_zero_transform_bypass_flag is not present, it shall be + # inferred to be equal to 0. + qpprime_y_zero_transform_bypass_flag = 0 + # When seq_scaling_matrix_present_flag is not present, it shall be + # inferred to be equal to 0. + seq_scaling_matrix_present_flag = 0 + seq_scaling_list_present_flag = [] + + if profile_idc in ( + 100, 110, 122, 244, 44, 83, 86, 118, 128, 138, 139, 134, 135 + ): + chroma_format_idc = egc_reader.read_ue() + if chroma_format_idc == 3: + separate_colour_plane_flag = bits_reader.read_bits_as_int(1) + bit_depth_luma_minus8 = egc_reader.read_ue() + bit_depth_chroma_minus8 = egc_reader.read_ue() + qpprime_y_zero_transform_bypass_flag = \ + bits_reader.read_bits_as_int(1) + seq_scaling_matrix_present_flag = bits_reader.read_bits_as_int(1) + if seq_scaling_matrix_present_flag: + for i in range(8 if chroma_format_idc != 3 else 12): + flag = bits_reader.read_bits_as_int(1) + seq_scaling_list_present_flag.append(flag) + if not flag: + continue + self._scaling_list(egc_reader, 16 if i < 6 else 64) + + log2_max_frame_num_minus4 = egc_reader.read_ue() + pic_order_cnt_type = egc_reader.read_ue() + + log2_max_pic_order_cnt_lsb_minus4 = 0 + delta_pic_order_always_zero_flag = 1 + offset_for_non_ref_pic = 0 + offset_for_top_to_bottom_field = 0 + num_ref_frames_in_pic_order_cnt_cycle = 0 + offset_for_ref_frame = [] + + if pic_order_cnt_type == 0: + log2_max_pic_order_cnt_lsb_minus4 = egc_reader.read_ue() + elif pic_order_cnt_type == 1: + delta_pic_order_always_zero_flag = bits_reader.read_bits_as_int(1) + offset_for_non_ref_pic = egc_reader.read_se() + offset_for_top_to_bottom_field = egc_reader.read_se() + num_ref_frames_in_pic_order_cnt_cycle = egc_reader.read_ue() + offset_for_ref_frame = [ + egc_reader.read_se() + for _ in range(num_ref_frames_in_pic_order_cnt_cycle) + ] + + max_num_ref_frames = egc_reader.read_ue() + gaps_in_frame_num_value_allowed_flag = bits_reader.read_bits_as_int(1) + pic_width_in_mbs_minus1 = egc_reader.read_ue() + pic_height_in_map_units_minus1 = egc_reader.read_ue() + frame_mbs_only_flag = bits_reader.read_bits_as_int(1) + + # When mb_adaptive_frame_field_flag is not present, it shall be + # inferred to be equal to 0. + mb_adaptive_frame_field_flag = 0 + + if not frame_mbs_only_flag: + mb_adaptive_frame_field_flag = bits_reader.read_bits_as_int(1) + + direct_8x8_inference_flag = bits_reader.read_bits_as_int(1) + frame_cropping_flag = bits_reader.read_bits_as_int(1) + + # When frame_cropping_flag is equal to 0, the values of + # frame_crop_left_offset, frame_crop_right_offset, + # frame_crop_top_offset, and frame_crop_bottom_offset shall be + # inferred to be equal to 0. + frame_crop_left_offset = 0 + frame_crop_right_offset = 0 + frame_crop_top_offset = 0 + frame_crop_bottom_offset = 0 + + if frame_cropping_flag: + frame_crop_left_offset = egc_reader.read_ue() + frame_crop_right_offset = egc_reader.read_ue() + frame_crop_top_offset = egc_reader.read_ue() + frame_crop_bottom_offset = egc_reader.read_ue() + + vui_parameters_present_flag = bits_reader.read_bits_as_int(1) + + if vui_parameters_present_flag: + # vui_parameters ignored + pass + + # rbsp_trailing_bits ignored + + return SequenceParameterSetData( + profile_idc, + constraint_set0_flag, + constraint_set1_flag, + constraint_set2_flag, + constraint_set3_flag, + constraint_set4_flag, + constraint_set5_flag, + level_idc, + seq_parameter_set_id, + chroma_format_idc, + separate_colour_plane_flag, + bit_depth_luma_minus8, + bit_depth_chroma_minus8, + qpprime_y_zero_transform_bypass_flag, + seq_scaling_matrix_present_flag, + seq_scaling_list_present_flag, + log2_max_frame_num_minus4, + pic_order_cnt_type, + log2_max_pic_order_cnt_lsb_minus4, + delta_pic_order_always_zero_flag, + offset_for_non_ref_pic, + offset_for_top_to_bottom_field, + num_ref_frames_in_pic_order_cnt_cycle, + offset_for_ref_frame, + max_num_ref_frames, + gaps_in_frame_num_value_allowed_flag, + pic_width_in_mbs_minus1, + pic_height_in_map_units_minus1, + frame_mbs_only_flag, + mb_adaptive_frame_field_flag, + direct_8x8_inference_flag, + frame_cropping_flag, + frame_crop_left_offset, + frame_crop_right_offset, + frame_crop_top_offset, + frame_crop_bottom_offset, + vui_parameters_present_flag, + ) + + def _scaling_list( + self, egc_reader: ExpGolombCodeReader, list_size: int + ) -> None: + # 7.3.2.1.1.1 Scaling list syntax + # scalingList and useDefaultScalingMatrixFlag ignored + last_scale = next_scale = 8 + for _ in range(list_size): + if next_scale != 0: + delta_scale = egc_reader.read_se() + next_scale = (last_scale + delta_scale + 256) % 256 + if next_scale != 0: + last_scale = next_scale + + +# ISO/IEC 14496-10:2020(E) +# 9.1 Parsing process for Exp-Golomb codes +# 9.1.1 Mapping process for signed Exp-Golomb codes + +class ExpGolombCodeReader: + def __init__(self, reader: BitsReader) -> None: + self._reader = reader + + def read_ue(self) -> int: + zero_bit = bitarray('0') + leading_zero_bits = 0 + + while True: + bit = self._reader.read_bits(1) + if bit == zero_bit: + leading_zero_bits += 1 + else: + break + + return ( + 2 ** leading_zero_bits - 1 + + self._reader.read_bits_as_int(leading_zero_bits) + ) + + def read_se(self) -> int: + code_num = self.read_ue() + value = -1 ** (code_num + 1) * math.ceil(code_num / 2) + result = value if code_num % 2 == 0 else abs(value) + return result + + +def extract_resolution(packet: bytes) -> Tuple[int, int]: + """Extract resolution from AVCDecoderConfigurationRecord packet.""" + record = AVCSequenceHeaderParser().parse(packet) + sps = record.sequence_parameter_sets[0] + nal_unit = NalUnitParser().parse(sps.sequence_parameter_set_nal_unit) + sps_data = SequenceParameterSetRBSPParser().parse(nal_unit.rbsp_bytes) + return sps_data.frame_width, sps_data.frame_height diff --git a/src/blrec/flv/bits_io.py b/src/blrec/flv/bits_io.py new file mode 100644 index 0000000..e36ae77 --- /dev/null +++ b/src/blrec/flv/bits_io.py @@ -0,0 +1,27 @@ +from __future__ import annotations + +from bitarray import bitarray +from bitarray.util import ba2int + + +__all__ = 'BitsReader', + + +class BitsReader: + def __init__(self, bits: bitarray) -> None: + self._bits = bits + self._ptr = 0 + + def read_bits_as_int(self, n: int) -> int: + return ba2int(self.read_bits(n)) + + def read_bits(self, n: int) -> bitarray: + result = self.next_bits(n) + self._ptr += n + return result + + def next_bits(self, n: int) -> bitarray: + assert n >= 0 + if n == 0: + return bitarray('0') + return self._bits[self._ptr:self._ptr + n] diff --git a/src/blrec/flv/common.py b/src/blrec/flv/common.py new file mode 100644 index 0000000..fbebf37 --- /dev/null +++ b/src/blrec/flv/common.py @@ -0,0 +1,257 @@ +from __future__ import annotations +from typing import Any, Dict, Iterable, Iterator, Mapping, Optional, Union +from typing_extensions import TypeGuard + +import attr + +from .io import FlvReader +from .io_protocols import RandomIO +from . import scriptdata +from .avc import extract_resolution +from .utils import OffsetRepositor +from .models import ( + AVCPacketType, FlvTag, AudioTag, ScriptTag, TagType, VideoTag +) + + +def read_tags( + reader: FlvReader, count: int, *, no_body: bool = False +) -> Iterator[FlvTag]: + assert count > 0, 'count must greater than 0' + for c, tag in enumerate(reader.read_tags(no_body=no_body), start=1): + yield tag + if c >= count: + break + + +def rread_tags( + reader: FlvReader, count: int, *, no_body: bool = False +) -> Iterator[FlvTag]: + assert count > 0, 'count must greater than 0' + for c, tag in enumerate(reader.rread_tags(no_body=no_body), start=1): + yield tag + if c >= count: + break + + +def read_tags_in_duration( + reader: FlvReader, duration: int, *, no_body: bool = False +) -> Iterator[FlvTag]: + for tag in reader.read_tags(no_body=no_body): + yield tag + if tag.timestamp > 0: + break + + start = tag.timestamp + end = start + duration + + for tag in reader.read_tags(no_body=no_body): + yield tag + if tag.timestamp >= end: + break + + +def peek_tags( + file: RandomIO, reader: FlvReader, count: int, *, no_body: bool = False, +) -> Iterator[FlvTag]: + with OffsetRepositor(file): + yield from read_tags(reader, count, no_body=no_body) + + +def rpeek_tags( + file: RandomIO, reader: FlvReader, count: int, *, no_body: bool = False, +) -> Iterator[FlvTag]: + with OffsetRepositor(file): + yield from rread_tags(reader, count, no_body=no_body) + + +def find_metadata_tag(tags: Iterable[FlvTag]) -> Optional[ScriptTag]: + for tag in tags: + if is_script_tag(tag): + return tag + return None + + +def find_header_tag( + tags: Iterable[FlvTag] +) -> Optional[Union[AudioTag, VideoTag]]: + for tag in tags: + if is_sequence_header(tag): + return tag + return None + + +def find_avc_header_tag(tags: Iterable[FlvTag]) -> Optional[VideoTag]: + for tag in tags: + if is_video_sequence_header(tag): + return tag + return None + + +def find_aac_header_tag(tags: Iterable[FlvTag]) -> Optional[AudioTag]: + for tag in tags: + if is_audio_sequence_header(tag): + return tag + return None + + +def find_nalu_keyframe_tag(tags: Iterable[FlvTag]) -> Optional[VideoTag]: + for tag in tags: + if is_video_nalu_keyframe(tag): + return tag + return None + + +def find_aac_raw_tag(tags: Iterable[FlvTag]) -> Optional[AudioTag]: + for tag in tags: + if is_audio_tag(tag) and tag.is_aac_raw(): + return tag + return None + + +def is_audio_tag(tag: FlvTag) -> TypeGuard[AudioTag]: + return tag.tag_type == TagType.AUDIO + + +def is_video_tag(tag: FlvTag) -> TypeGuard[VideoTag]: + return tag.tag_type == TagType.VIDEO + + +def is_script_tag(tag: FlvTag) -> TypeGuard[ScriptTag]: + return tag.tag_type == TagType.SCRIPT + + +def is_metadata_tag(tag: FlvTag) -> TypeGuard[ScriptTag]: + if is_script_tag(tag): + script_data = parse_scriptdata(tag) + return script_data['name'] == 'onMetaData' + return False + + +def is_data_tag(tag: FlvTag) -> TypeGuard[Union[AudioTag, VideoTag]]: + return ( + (is_video_tag(tag) and tag.is_avc_nalu()) or + (is_audio_tag(tag) and tag.is_aac_raw()) + ) + + +def is_sequence_header(tag: FlvTag) -> TypeGuard[Union[AudioTag, VideoTag]]: + return is_audio_sequence_header(tag) or is_video_sequence_header(tag) + + +def is_audio_sequence_header(tag: FlvTag) -> TypeGuard[AudioTag]: + return is_audio_tag(tag) and tag.is_aac_header() + + +def is_video_sequence_header(tag: FlvTag) -> TypeGuard[VideoTag]: + return is_video_tag(tag) and tag.is_avc_header() + + +def is_video_nalu_keyframe(tag: FlvTag) -> TypeGuard[VideoTag]: + return is_video_tag(tag) and tag.is_keyframe() and tag.is_avc_nalu() + + +def parse_scriptdata(script_tag: ScriptTag) -> scriptdata.ScriptData: + assert script_tag.body is not None + return scriptdata.load(script_tag.body) + + +def unparse_scriptdata( + script_tag: ScriptTag, script_data: scriptdata.ScriptData, **changes: Any +) -> ScriptTag: + body = scriptdata.dump(script_data) + return script_tag.evolve(body=body, **changes) + + +def create_script_tag( + script_data: scriptdata.ScriptData, offset: int = 0, timestamp: int = 0 +) -> ScriptTag: + body = scriptdata.dump(script_data) + return ScriptTag( + filtered=False, + tag_type=TagType.SCRIPT, + data_size=len(body), + timestamp=timestamp, + stream_id=0, + offset=offset, + body=body, + ) + + +def create_metadata_tag( + metadata: Dict[str, Any], offset: int = 0, timestamp: int = 0 +) -> ScriptTag: + script_data = scriptdata.ScriptData(name='onMetaData', value=metadata) + return create_script_tag(script_data, offset, timestamp) + + +def parse_metadata(metadata_tag: ScriptTag) -> Dict[str, Any]: + script_data = parse_scriptdata(metadata_tag) + assert script_data['name'] == 'onMetaData' + return script_data['value'] + + +def unparse_metadata( + metadata_tag: ScriptTag, metadata: Dict[str, Any], **changes: Any +) -> ScriptTag: + script_data = scriptdata.ScriptData(name='onMetaData', value=metadata) + return unparse_scriptdata(metadata_tag, script_data, **changes) + + +def enrich_metadata( + metadata_tag: ScriptTag, + extra_metadata: Mapping[str, Any], + offset: Optional[int] = None, +) -> ScriptTag: + metadata = parse_metadata(metadata_tag) + metadata.update(extra_metadata) + metadata = ensure_order(metadata) + + if offset is None: + return unparse_metadata(metadata_tag, metadata) + else: + return unparse_metadata(metadata_tag, metadata, offset=offset) + + +def update_metadata( + metadata_tag: ScriptTag, + metadata: Mapping[str, Any], + offset: Optional[int] = None, +) -> ScriptTag: + original_tag_size = metadata_tag.tag_size + new_tag = enrich_metadata(metadata_tag, metadata, offset) + assert new_tag.tag_size == original_tag_size, 'tag size must unchanged' + return new_tag + + +def ensure_order(metadata: Dict[str, Any]) -> Dict[str, Any]: + # the order of metadata property matters!!! + # some typical properties such as 'keyframes' must be before some custom + # properties such as 'Comment' otherwise, it won't take effect in some + # players! + from .data_analyser import MetaData + typical_props = attr.fields_dict(MetaData).keys() + return { + **{k: v for k, v in metadata.items() if k in typical_props}, + **{k: v for k, v in metadata.items() if k not in typical_props}, + } + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class Resolution: + width: int + height: int + + @classmethod + def from_metadata(cls, metadata: Dict[str, Any]) -> Resolution: + return cls( + width=metadata.get('width') or metadata['displayWidth'], + height=metadata.get('height') or metadata['displayHeight'], + ) + + @classmethod + def from_aac_sequence_header(cls, tag: VideoTag) -> Resolution: + assert tag.avc_packet_type == AVCPacketType.AVC_SEQUENCE_HEADER + assert tag.body is not None + width, height = extract_resolution(tag.body) + return cls(width, height) diff --git a/src/blrec/flv/data_analyser.py b/src/blrec/flv/data_analyser.py new file mode 100644 index 0000000..b05c919 --- /dev/null +++ b/src/blrec/flv/data_analyser.py @@ -0,0 +1,231 @@ +""" +Analyse FLV file to make MetaData +ref: https://github.com/ioppermann/yamdi/blob/master/yamdi.c +""" +from __future__ import annotations +from typing import List, Optional + +import attr + +from .models import ( + AudioTag, FlvHeader, FlvTag, SoundType, VideoTag, ScriptTag, + BACK_POINTER_SIZE +) +from .common import Resolution, is_audio_tag, is_script_tag, is_video_tag + + +__all__ = 'DataAnalyser', + + +@attr.s(auto_attribs=True, slots=True, frozen=True, kw_only=True) +class KeyFrames: + times: List[float] + filepositions: List[float] + + +@attr.s(auto_attribs=True, slots=True, frozen=True, kw_only=True) +class MetaData: + hasAudio: bool + hasVideo: bool + hasMetadata: bool + hasKeyframes: bool + canSeekToEnd: bool + duration: float + datasize: float + filesize: float + + audiosize: Optional[float] = None + audiocodecid: Optional[float] = None + audiodatarate: Optional[float] = None + audiosamplerate: Optional[float] = None + audiosamplesize: Optional[float] = None + stereo: Optional[bool] = None + + videosize: float + framerate: float + videocodecid: float + videodatarate: float + width: float + height: float + + lasttimestamp: float + lastkeyframelocation: float + lastkeyframetimestamp: float + keyframes: KeyFrames + + +class DataAnalyser: + def __init__(self) -> None: + self.reset() + + def reset(self) -> None: + self._num_of_tags = 0 + self._num_of_audio_tags = 0 + self._num_of_video_tags = 0 + self._size_of_tags = 0 + self._size_of_audio_tags = 0 + self._size_of_video_tags = 0 + self._size_of_data = 0 + self._size_of_audio_data = 0 + self._size_of_video_data = 0 + self._last_timestamp = 0 + self._last_timestamp_of_audio = 0 + self._last_timestamp_of_video = 0 + self._keyframe_timestamps: List[int] = [] + self._keyframe_filepositions: List[int] = [] + self._resolution: Optional[Resolution] = None + + self._header_analysed = False + self._audio_analysed = False + self._video_analysed = False + + def analyse_header(self, header: FlvHeader) -> None: + assert not self._header_analysed + self._header_analysed = True + self._size_of_flv_header = header.size + self._has_audio = header.has_audio() + self._has_video = header.has_video() + + def analyse_tag(self, tag: FlvTag) -> None: + if is_audio_tag(tag): + self._analyse_audio_tag(tag) + elif is_video_tag(tag): + self._analyse_video_tag(tag) + elif is_script_tag(tag): + self._analyse_script_tag(tag) + else: + raise ValueError('Invalid tag type') + + self._num_of_tags += 1 + self._size_of_tags += tag.tag_size + self._size_of_data += tag.data_size + self._last_timestamp = tag.timestamp + + def get_real_resolution(self) -> Optional[Resolution]: + return self._resolution + + def calc_frame_rate(self) -> float: + try: + return ( + self._num_of_video_tags / self._last_timestamp_of_video * 1000 + ) + except ZeroDivisionError: + return 0.0 + + def calc_audio_data_rate(self) -> float: + try: + return self._size_of_audio_data * 8 / self._last_timestamp_of_audio + except ZeroDivisionError: + return 0.0 + + def calc_video_data_rate(self) -> float: + try: + return self._size_of_video_data * 8 / self._last_timestamp_of_video + except ZeroDivisionError: + return 0.0 + + def calc_data_size(self) -> int: + return ( + self._size_of_audio_tags + + self._num_of_audio_tags * BACK_POINTER_SIZE + + self._size_of_video_tags + + self._num_of_video_tags * BACK_POINTER_SIZE + ) + + def calc_file_size(self) -> int: + return ( + self._size_of_flv_header + BACK_POINTER_SIZE + + self._size_of_tags + self._num_of_tags * BACK_POINTER_SIZE + ) + + def make_keyframes(self) -> KeyFrames: + return KeyFrames( + times=list(map(lambda t: t / 1000, self._keyframe_timestamps)), + filepositions=list(map(float, self._keyframe_filepositions)), + ) + + def make_metadata(self) -> MetaData: + assert self._header_analysed + assert self._has_audio == self._audio_analysed + assert self._has_video and self._video_analysed + assert self._resolution is not None + + if not self._has_audio: + audiosize = None + audiocodecid = None + audiodatarate = None + audiosamplerate = None + audiosamplesize = None + stereo = None + else: + audiosize = float(self._size_of_audio_tags) + audiocodecid = float(self._audio_codec_id) + audiodatarate = self.calc_audio_data_rate() + audiosamplerate = float(self._audio_sample_rate) + audiosamplesize = float(self._audio_sample_size) + stereo = self._stereo + + keyframes = self.make_keyframes() + + return MetaData( + hasAudio=self._has_audio, + hasVideo=self._has_video, + hasMetadata=True, + hasKeyframes=len(self._keyframe_timestamps) != 0, + canSeekToEnd=( + self._last_timestamp_of_video == self._keyframe_timestamps[-1] + ), + duration=self._last_timestamp / 1000, + datasize=float(self.calc_data_size()), + filesize=float(self.calc_file_size()), + audiosize=audiosize, + audiocodecid=audiocodecid, + audiodatarate=audiodatarate, + audiosamplerate=audiosamplerate, + audiosamplesize=audiosamplesize, + stereo=stereo, + videosize=float(self._size_of_video_tags), + framerate=self.calc_frame_rate(), + videocodecid=float(self._video_codec_id), + videodatarate=self.calc_video_data_rate(), + width=float(self._resolution.width), + height=float(self._resolution.height), + lasttimestamp=self._last_timestamp / 1000, + lastkeyframelocation=keyframes.filepositions[-1], + lastkeyframetimestamp=keyframes.times[-1], + keyframes=keyframes, + ) + + def _analyse_audio_tag(self, tag: AudioTag) -> None: + if not self._audio_analysed: + self._audio_analysed = True + self._audio_codec_id = tag.sound_format.value + self._audio_sample_rate = tag.sound_rate.value + self._audio_sample_size = tag.sound_size.value + self._stereo = tag.sound_type == SoundType.STEREO + + self._num_of_audio_tags += 1 + self._size_of_audio_tags += tag.tag_size + self._size_of_audio_data += tag.data_size + self._last_timestamp_of_audio = tag.timestamp + + def _analyse_video_tag(self, tag: VideoTag) -> None: + if tag.is_keyframe(): + self._keyframe_timestamps.append(tag.timestamp) + self._keyframe_filepositions.append(tag.offset) + if tag.is_avc_header(): + self._resolution = Resolution.from_aac_sequence_header(tag) + else: + pass + + if not self._video_analysed: + self._video_analysed = True + self._video_codec_id = tag.codec_id.value + + self._num_of_video_tags += 1 + self._size_of_video_tags += tag.tag_size + self._size_of_video_data += tag.data_size + self._last_timestamp_of_video = tag.timestamp + + def _analyse_script_tag(self, tag: ScriptTag) -> None: + pass diff --git a/src/blrec/flv/exceptions.py b/src/blrec/flv/exceptions.py new file mode 100644 index 0000000..58f2f6d --- /dev/null +++ b/src/blrec/flv/exceptions.py @@ -0,0 +1,24 @@ + + +class FlvStreamCorruptedError(Exception): + ... + + +class FlvFileCorruptedError(Exception): + ... + + +class AudioParametersChanged(Exception): + ... + + +class VideoParametersChanged(Exception): + ... + + +class FileSizeOverLimit(Exception): + ... + + +class DurationOverLimit(Exception): + ... diff --git a/src/blrec/flv/format.py b/src/blrec/flv/format.py new file mode 100644 index 0000000..0973adb --- /dev/null +++ b/src/blrec/flv/format.py @@ -0,0 +1,185 @@ +from typing import cast + +import attr + +from .struct_io import StructReader, StructWriter +from .io_protocols import RandomIO +from .models import ( + FlvTag, + TagType, + FlvHeader, + FlvTagHeader, + + AudioTag, + AudioTagHeader, + SoundFormat, + SoundRate, + SoundSize, + SoundType, + AACPacketType, + + VideoTag, + VideoTagHeader, + CodecID, + FrameType, + AVCPacketType, + + ScriptTag, +) + + +__all__ = 'FlvParser', 'FlvDumper' + + +class FlvParser: + def __init__(self, stream: RandomIO) -> None: + self._stream = stream + self._reader = StructReader(stream) + + def parse_header(self) -> FlvHeader: + signature = self._reader.read(3).decode() + assert signature == 'FLV', 'Not a FLV file' + version = self._reader.read_ui8() + type_flag = self._reader.read_ui8() + data_offset = self._reader.read_ui32() + return FlvHeader(signature, version, type_flag, data_offset) + + def parse_previous_tag_size(self) -> int: + return self._reader.read_ui32() + + def parse_tag(self, *, no_body: bool = False) -> FlvTag: + offset = self._stream.tell() + tag_header = self.parse_flv_tag_header() + + tag: FlvTag + arguments = dict(attr.asdict(tag_header), offset=offset) + + if tag_header.tag_type == TagType.AUDIO: + audio_tag_header = self.parse_audio_tag_header() + arguments.update(attr.asdict(audio_tag_header)) + tag = AudioTag(**arguments) + elif tag_header.tag_type == TagType.VIDEO: + video_tag_header = self.parse_video_tag_header() + arguments.update(attr.asdict(video_tag_header)) + tag = VideoTag(**arguments) + elif tag_header.tag_type == TagType.SCRIPT: + tag = ScriptTag(**arguments) + else: + raise ValueError(tag_header.tag_type) + + if no_body: + self._stream.seek(tag.tag_end_offset) + else: + body = self._reader.read(tag.body_size) + tag = tag.evolve(body=body) + + return tag + + def parse_flv_tag_header(self) -> FlvTagHeader: + flag = self._reader.read_ui8() + filtered = bool(flag & 0b0010_0000) + assert not filtered, 'Unsupported Filtered FLV Tag' + tag_type = TagType(flag & 0b0001_1111) + data_size = self._reader.read_ui24() + assert data_size > 0, 'Invalid Tag' + timestamp = self._reader.read_ui24() + timestamp_extended = self._reader.read_ui8() + timestamp = timestamp_extended << 24 | timestamp + stream_id = self._reader.read_ui24() + return FlvTagHeader( + filtered, tag_type, data_size, timestamp, stream_id + ) + + def parse_audio_tag_header(self) -> AudioTagHeader: + flag = self._reader.read_ui8() + sound_format = SoundFormat(flag >> 4) + sound_rate = SoundRate((flag >> 2) & 0b0000_0011) + sound_size = SoundSize((flag >> 1) & 0b0000_0001) + sound_type = SoundType(flag & 0b0000_0001) + + if sound_format != SoundFormat.AAC: + aac_packet_type = None + else: + aac_packet_type = AACPacketType(self._reader.read_ui8()) + + return AudioTagHeader( + sound_format, sound_rate, sound_size, sound_type, aac_packet_type + ) + + def parse_video_tag_header(self) -> VideoTagHeader: + flag = self._reader.read_ui8() + frame_type = FrameType(flag >> 4) + codec_id = CodecID(flag & 0b0000_1111) + + if codec_id != CodecID.AVC: + avc_packet_type = None + composition_time = None + else: + avc_packet_type = AVCPacketType(self._reader.read_ui8()) + composition_time = self._reader.read_ui24() + + return VideoTagHeader( + frame_type, codec_id, avc_packet_type, composition_time + ) + + +class FlvDumper: + def __init__(self, stream: RandomIO) -> None: + self._stream = stream + self._writer = StructWriter(stream) + + def dump_header(self, flv_header: FlvHeader) -> None: + self._writer.write(flv_header.signature.encode()) + self._writer.write_ui8(flv_header.version) + self._writer.write_ui8(flv_header.type_flag) + self._writer.write_ui32(flv_header.data_offset) + + def dump_previous_tag_size(self, size: int) -> None: + self._writer.write_ui32(size) + + def dump_tag(self, tag: FlvTag) -> None: + self.dump_flv_tag_header(tag) + + if tag.is_audio_tag(): + audio_tag = cast(AudioTag, tag) + self.dump_audio_tag_header(audio_tag) + elif tag.is_video_tag(): + video_tag = cast(VideoTag, tag) + self.dump_video_tag_header(video_tag) + elif tag.is_script_tag(): + pass + else: + raise ValueError(tag.tag_type) + + if tag.body is None: + self._stream.seek(tag.tag_end_offset) + else: + self._writer.write(tag.body) + + def dump_flv_tag_header(self, tag: FlvTag) -> None: + self._writer.write_ui8((int(tag.filtered) << 5) | tag.tag_type.value) + self._writer.write_ui24(tag.data_size) + self._writer.write_ui24(tag.timestamp & 0x00ffffff) + self._writer.write_ui8(tag.timestamp >> 24) + self._writer.write_ui24(tag.stream_id) + + def dump_audio_tag_header(self, tag: AudioTag) -> None: + self._writer.write_ui8( + (tag.sound_format.value << 4) | + (tag.sound_rate.value << 2) | + (tag.sound_size.value << 1) | + tag.sound_type.value + ) + if tag.aac_packet_type is not None: + assert tag.sound_format == SoundFormat.AAC + self._writer.write_ui8(tag.aac_packet_type) + + def dump_video_tag_header(self, tag: VideoTag) -> None: + self._writer.write_ui8( + (tag.frame_type.value << 4) | tag.codec_id.value + ) + if tag.codec_id == CodecID.AVC: + assert tag.avc_packet_type is not None + assert tag.composition_time is not None + self._writer.write_ui8(tag.avc_packet_type.value) + self._writer.write_ui24(tag.composition_time) diff --git a/src/blrec/flv/helpers.py b/src/blrec/flv/helpers.py new file mode 100644 index 0000000..b9e4571 --- /dev/null +++ b/src/blrec/flv/helpers.py @@ -0,0 +1,90 @@ +import json +from typing import Any, Dict, Iterable + + +from .io import FlvReader +from .common import ( + is_audio_tag, is_metadata_tag, is_script_tag, is_video_tag, read_tags, + parse_metadata, find_metadata_tag, +) +from .stream_processor import JoinPoint +from .utils import format_timestamp +from ..path import extra_metadata_path + + +def get_metadata(path: str) -> Dict[str, Any]: + with open(path, mode='rb') as file: + reader = FlvReader(file) + reader.read_header() + if (tag := find_metadata_tag(reversed(list(read_tags(reader, 5))))): + return parse_metadata(tag) + raise EOFError + + +def get_extra_metadata(flv_path: str) -> Dict[str, Any]: + path = extra_metadata_path(flv_path) + with open(path, 'rt', encoding='utf8') as file: + return json.load(file) + + +def make_comment_for_joinpoints(join_points: Iterable[JoinPoint]) -> str: + return ( + '流中断拼接详情\n' + + '\n'.join(( + '时间戳:{}, 无缝拼接:{}'.format( + format_timestamp(p.timestamp), + '是' if p.seamless else '否', + ) + for p in join_points + )) + ) + + +def is_valid(path: str) -> bool: + with open(path, mode='rb') as file: + reader = FlvReader(file) + + try: + flv_header = reader.read_header() + except EOFError: + return False + + MAX_TAGS_TO_FIND = 50 + has_metadata_tag = False + has_audio_header_tag = False + has_audio_data_tag = False + has_video_header_tag = False + has_video_data_tag = False + + for tag in read_tags(reader, MAX_TAGS_TO_FIND, no_body=True): + if is_script_tag(tag): + tag = tag.evolve(body=reader.read_body(tag)) + if is_metadata_tag(tag): + has_metadata_tag = True + elif is_audio_tag(tag): + if tag.is_aac_header(): + has_audio_header_tag = True + elif tag.is_aac_raw(): + has_audio_data_tag = True + elif is_video_tag(tag): + if tag.is_avc_header(): + has_video_header_tag = True + elif tag.is_avc_nalu(): + has_video_data_tag = True + else: + pass + + if ( + has_metadata_tag and ( + flv_header.has_video() == + has_video_header_tag == + has_video_data_tag + ) and ( + flv_header.has_audio() == + has_audio_header_tag == + has_audio_data_tag + ) + ): + return True + + return False diff --git a/src/blrec/flv/io.py b/src/blrec/flv/io.py new file mode 100644 index 0000000..2c10f87 --- /dev/null +++ b/src/blrec/flv/io.py @@ -0,0 +1,85 @@ +from io import SEEK_CUR +import logging +from typing import Iterable, Iterator + + +from .format import FlvParser, FlvDumper +from .models import FlvHeader, FlvTag, BACK_POINTER_SIZE +from .utils import OffsetRepositor, AutoRollbacker +from .io_protocols import RandomIO + + +__all__ = 'FlvReader', 'FlvWriter' + + +logger = logging.getLogger(__name__) + + +class FlvReader: + def __init__(self, stream: RandomIO) -> None: + self._stream = stream + self._parser = FlvParser(stream) + + def read_header(self) -> FlvHeader: + header = self._parser.parse_header() + previous_tag_size = self._parser.parse_previous_tag_size() + assert previous_tag_size == 0 + return header + + def read_tag(self, *, no_body: bool = False) -> FlvTag: + tag = self._parser.parse_tag(no_body=no_body) + previous_tag_size = self._parser.parse_previous_tag_size() + assert previous_tag_size == tag.tag_size + return tag + + def read_tags(self, *, no_body: bool = False) -> Iterator[FlvTag]: + while True: + try: + yield self.read_tag(no_body=no_body) + except EOFError: + break + + def rread_tag(self, *, no_body: bool = False) -> FlvTag: + self._seek_to_previous_tag() + with OffsetRepositor(self._stream): + return self.read_tag(no_body=no_body) + + def rread_tags( + self, *, no_body: bool = False + ) -> Iterator[FlvTag]: + while True: + try: + yield self.rread_tag(no_body=no_body) + except EOFError: + break + + def read_body(self, tag: FlvTag) -> bytes: + with OffsetRepositor(self._stream): + self._stream.seek(tag.body_offset) + return self._stream.read(tag.body_size) + + def _seek_to_previous_tag(self) -> int: + self._stream.seek(-BACK_POINTER_SIZE, SEEK_CUR) + previous_tag_size = self._parser.parse_previous_tag_size() + return self._stream.seek(-(4 + previous_tag_size), SEEK_CUR) + + +class FlvWriter: + def __init__(self, stream: RandomIO) -> None: + self._stream = stream + self._dumper = FlvDumper(stream) + + def write_header(self, header: FlvHeader) -> int: + with AutoRollbacker(self._stream): + self._dumper.dump_header(header) + self._dumper.dump_previous_tag_size(0) + return header.size + BACK_POINTER_SIZE + + def write_tag(self, tag: FlvTag) -> int: + with AutoRollbacker(self._stream): + self._dumper.dump_tag(tag) + self._dumper.dump_previous_tag_size(tag.tag_size) + return tag.tag_size + BACK_POINTER_SIZE + + def write_tags(self, tags: Iterable[FlvTag]) -> int: + return sum(map(self.write_tag, tags)) diff --git a/src/blrec/flv/io_protocols.py b/src/blrec/flv/io_protocols.py new file mode 100644 index 0000000..80fb2c7 --- /dev/null +++ b/src/blrec/flv/io_protocols.py @@ -0,0 +1,59 @@ +from typing import Protocol, runtime_checkable + + +__all__ = ( + 'ReadableStream', + 'AsyncReadableStream', + 'WritableStream', + 'AsyncWritableStream', + 'RandomIO', + 'AsyncRandomIO', +) + + +@runtime_checkable +class ReadableStream(Protocol): + def read(self, size: int = -1) -> bytes: + ... + + +@runtime_checkable +class AsyncReadableStream(Protocol): + async def read(self, size: int = -1) -> bytes: + ... + + +@runtime_checkable +class WritableStream(Protocol): + def write(self, data: bytes) -> int: + ... + + +@runtime_checkable +class AsyncWritableStream(Protocol): + async def write(self, data: bytes) -> int: + ... + + +@runtime_checkable +class RandomIO(ReadableStream, WritableStream, Protocol): + def tell(self) -> int: + ... + + def seek(self, offset: int, whence: int = 0) -> int: + ... + + def truncate(self, size: int = None) -> int: + ... + + +@runtime_checkable +class AsyncRandomIO(AsyncReadableStream, AsyncWritableStream, Protocol): + async def tell(self) -> int: + ... + + async def seek(self, offset: int, whence: int = 0) -> int: + ... + + async def truncate(self, size: int = None) -> int: + ... diff --git a/src/blrec/flv/limit_checker.py b/src/blrec/flv/limit_checker.py new file mode 100644 index 0000000..87ed22b --- /dev/null +++ b/src/blrec/flv/limit_checker.py @@ -0,0 +1,84 @@ +from __future__ import annotations +import logging +from typing import Optional + + +from .models import FlvHeader, FlvTag, BACK_POINTER_SIZE, VideoTag +from .exceptions import FileSizeOverLimit, DurationOverLimit +from .common import is_video_nalu_keyframe + + +__all__ = 'LimitChecker', + + +logger = logging.getLogger(__name__) + + +class LimitChecker: + def __init__( + self, + filesize_limit: int = 0, # file size in bytes, no limit by default. + duration_limit: int = 0, # duration in seconds, no limit by default. + ) -> None: + self.filesize_limit = filesize_limit + self.duration_limit = duration_limit + self.reset() + + def is_filesize_over_limit(self) -> bool: + return ( + self._filesize + self._max_size_between_keyframes >= + self.filesize_limit + ) + + def is_duration_over_limit(self) -> bool: + return ( + self._duration + self._max_duration_between_keyframes >= + self.duration_limit + ) + + @property + def last_keyframe_tag(self) -> Optional[VideoTag]: + return self._last_keyframe_tag + + def reset(self) -> None: + self._filesize = 0 + self._duration = 0.0 + self._max_size_between_keyframes = 0 + self._max_duration_between_keyframes = 0.0 + self._header_checked = False + self._last_keyframe_tag: Optional[VideoTag] = None + + def check_header(self, header: FlvHeader) -> None: + assert not self._header_checked + self._header_checked = True + self._filesize += header.size + BACK_POINTER_SIZE + + def check_tag(self, tag: FlvTag) -> None: + self._filesize += tag.tag_size + BACK_POINTER_SIZE + self._duration = tag.timestamp / 1000 + + if not is_video_nalu_keyframe(tag): + return + + if self._last_keyframe_tag is not None: + self._max_size_between_keyframes = max( + self._max_size_between_keyframes, + tag.offset - self._last_keyframe_tag.offset, + ) + self._max_duration_between_keyframes = max( + self._max_duration_between_keyframes, + (tag.timestamp - self._last_keyframe_tag.timestamp) / 1000, + ) + self._last_keyframe_tag = tag + + if self.filesize_limit > 0 and self.is_filesize_over_limit(): + logger.debug('File size will be over the limit: {} + {}'.format( + self._filesize, self._max_size_between_keyframes, + )) + raise FileSizeOverLimit() + + if self.duration_limit > 0 and self.is_duration_over_limit(): + logger.debug('Duration will be over the limit: {} + {}'.format( + self._duration, self._max_duration_between_keyframes, + )) + raise DurationOverLimit() diff --git a/src/blrec/flv/metadata_injector.py b/src/blrec/flv/metadata_injector.py new file mode 100644 index 0000000..c7937a4 --- /dev/null +++ b/src/blrec/flv/metadata_injector.py @@ -0,0 +1,141 @@ +import os +import logging +from typing import Any, Dict, Optional + +import attr +from rx import create, operators as op +from rx.subject import Subject +from rx.core import Observable +from rx.core.typing import Observer, Scheduler, Disposable +from rx.scheduler.currentthreadscheduler import CurrentThreadScheduler +from tqdm import tqdm + +from .stream_processor import StreamProcessor, BaseOutputFileManager, JoinPoint +from .helpers import get_metadata, make_comment_for_joinpoints +from ..logging.room_id import with_room_id + + +__all__ = 'MetadataInjector', 'InjectProgress', 'inject_metadata' + + +logger = logging.getLogger(__name__) + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class InjectProgress: + time: int + duration: int + + +class MetadataInjector: + def __init__(self, in_path: str, out_path: str) -> None: + self._in_path = in_path + self._file_manager = OutputFileManager(out_path) + self._duration: int = 0 + self._progress_updates = Subject() + + @property + def progress_updates(self) -> Observable: + return self._progress_updates + + def inject(self, in_metadata: Dict[str, Any]) -> None: + metadata = get_metadata(self._in_path) + metadata.update(in_metadata) + + self._duration = int(float(metadata['duration']) * 1000) + self._progress_updates.on_next(InjectProgress(0, self._duration)) + + self._append_comment_for_joinpoints(metadata) + + processor = StreamProcessor( + self._file_manager, + metadata=metadata, + disable_limit=True, + ) + + def update_progress(time: int) -> None: + progress = InjectProgress(time, self._duration) + self._progress_updates.on_next(progress) + + processor.time_updates.subscribe(update_progress) + + with open(self._in_path, 'rb') as in_file: + processor.process_stream(in_file) + processor.finalize() + + progress = InjectProgress(self._duration, self._duration) + self._progress_updates.on_next(progress) + + @staticmethod + def _append_comment_for_joinpoints(metadata: Dict[str, Any]) -> None: + if (join_points := metadata.get('joinpoints')): + join_points = map(JoinPoint.from_metadata_value, join_points) + if 'Comment' in metadata: + metadata['Comment'] += '\n\n' + \ + make_comment_for_joinpoints(join_points) + else: + metadata['Comment'] = make_comment_for_joinpoints(join_points) + + +class OutputFileManager(BaseOutputFileManager): + def __init__(self, out_path: str) -> None: + super().__init__() + self._out_path = out_path + + def _make_path(self) -> str: + return self._out_path + + +def inject_metadata( + path: str, + metadata: Dict[str, Any], + *, + report_progress: bool = False, + room_id: Optional[int] = None, +) -> Observable: + def subscribe( + observer: Observer[InjectProgress], + scheduler: Optional[Scheduler] = None, + ) -> Disposable: + _scheduler = scheduler or CurrentThreadScheduler.singleton() + + def action(scheduler, state): # type: ignore + root, ext = os.path.splitext(path) + out_path = f'{root}_inject_metadata{ext}' + injector = MetadataInjector(path, out_path) + file_name = os.path.basename(path) + + with tqdm(desc='Injecting', unit='ms', postfix=file_name) as pbar: + def reset(progress: InjectProgress) -> None: + pbar.reset(progress.duration) + + def update(progress: InjectProgress) -> None: + pbar.update(progress.time - pbar.n) + + injector.progress_updates.pipe(op.first()).subscribe(reset) + injector.progress_updates.pipe(op.skip(1)).subscribe(update) + + if report_progress: + injector.progress_updates.subscribe( + lambda p: observer.on_next(p) + ) + + try: + logger.info(f"Injecting metadata for '{path}' ...") + injector.inject(metadata) + except Exception as e: + logger.error( + f"Failed to inject metadata for '{path}': {repr(e)}" + ) + observer.on_error(e) + else: + logger.info(f"Successfully inject metadata for '{path}'") + os.replace(out_path, path) + observer.on_completed() + + if room_id is not None: + return _scheduler.schedule(with_room_id(room_id)(action)) + else: + return _scheduler.schedule(action) + + return create(subscribe) diff --git a/src/blrec/flv/models.py b/src/blrec/flv/models.py new file mode 100644 index 0000000..5941682 --- /dev/null +++ b/src/blrec/flv/models.py @@ -0,0 +1,248 @@ +from __future__ import annotations +from abc import ABC, abstractmethod +from enum import IntEnum +from typing import Any, Final, Optional, TypeVar, cast +from typing_extensions import TypeGuard + +import attr + +from ..utils.hash import cksum + + +class TagType(IntEnum): + AUDIO = 8 + VIDEO = 9 + SCRIPT = 18 + + +class FrameType(IntEnum): + KEY_FRAME = 1 + INNER_FRAME = 2 + DISPOSABLE_INNER_FRAME = 3 + GENERATED_KEY_FRAME = 4 + VIDEO_INFO = 5 + + +class CodecID(IntEnum): + SORENSON_H263 = 2 + SCREEN_VIDEO = 3 + ON2_VP6 = 4 + ON2_VP6_WITH_ALPHA_CHANNEL = 5 + SCREEN_VIDEO_V2 = 6 + AVC = 7 + + +class AVCPacketType(IntEnum): + AVC_SEQUENCE_HEADER = 0 + AVC_NALU = 1 + AVC_END_OF_SEQENCE = 2 + + +class SoundFormat(IntEnum): + LINEAR_PCM_PLATFORM_ENDIAN = 0 + ADPCM = 1 + MP3 = 2 + LINEAR_PCM_LITTLE_ENDIAN = 3 + NELLYMOSER_16KHZ_MONO = 4 + NELLYMOSER_8KHZ_MONO = 5 + NELLYMOSER = 6 + G711_A_LAW_LOGARITHMIC_PCM = 7 + G711_MU_LAW_LOGARITHMIC_PCM = 8 + AAC = 10 + SPEEX = 11 + MP3_8KHZ = 14 + DEVICE_SPECIFIC_SOUND = 15 + + +class SoundRate(IntEnum): + F_5_5KHZ = 0 + F_11KHZ = 1 + F_22KHZ = 2 + F_44KHZ = 3 + + +class SoundSize(IntEnum): + SAMPLES_8BIT = 0 + SAMPLES_16BIT = 1 + + +class SoundType(IntEnum): + MONO = 0 + STEREO = 1 + + +class AACPacketType(IntEnum): + AAC_SEQUENCE_HEADER = 0 + AAC_RAW = 1 + + +def non_negative_integer_validator(instance, attribute, value): # type: ignore + if not isinstance(value, int) or value < 0: + raise ValueError(f"'{attribute}' has to be a non negative integer!") + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class FlvHeader: + signature: str + version: int + type_flag: int + data_offset: int = attr.ib(validator=[non_negative_integer_validator]) + + def has_video(self) -> bool: + return bool(self.type_flag & 0b0000_0001) + + def has_audio(self) -> bool: + return bool(self.type_flag & 0b0000_0100) + + @property + def size(self) -> int: + return self.data_offset + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class FlvTagHeader: + filtered: bool + tag_type: TagType + data_size: int = attr.ib(validator=[non_negative_integer_validator]) + timestamp: int = attr.ib(validator=[non_negative_integer_validator]) + stream_id: int = attr.ib(validator=[non_negative_integer_validator]) + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class AudioTagHeader: + sound_format: SoundFormat + sound_rate: SoundRate + sound_size: SoundSize + sound_type: SoundType + aac_packet_type: Optional[AACPacketType] + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class VideoTagHeader: + frame_type: FrameType + codec_id: CodecID + avc_packet_type: Optional[AVCPacketType] + composition_time: Optional[int] + + +TAG_HEADER_SIZE: Final[int] = 11 +BACK_POINTER_SIZE: Final[int] = 4 + + +_T = TypeVar('_T', bound='FlvTag') + + +@attr.s(auto_attribs=True, slots=True, frozen=True, kw_only=True) +class FlvTag(ABC, FlvTagHeader): + offset: int = attr.ib(validator=[non_negative_integer_validator]) + body: Optional[bytes] = attr.ib(default=None, repr=cksum) + + @property + @abstractmethod + def header_size(self) -> int: + ... + + @property + def tag_size(self) -> int: + return TAG_HEADER_SIZE + self.data_size + + @property + def body_offset(self) -> int: + return self.offset + TAG_HEADER_SIZE + self.header_size + + @property + def body_size(self) -> int: + return self.data_size - self.header_size + + @property + def tag_end_offset(self) -> int: + return self.offset + self.tag_size + + @property + def next_tag_offset(self) -> int: + return self.tag_end_offset + BACK_POINTER_SIZE + + def is_audio_tag(self) -> TypeGuard[AudioTag]: + return self.tag_type == TagType.AUDIO + + def is_video_tag(self) -> TypeGuard[VideoTag]: + return self.tag_type == TagType.VIDEO + + def is_script_tag(self) -> TypeGuard[ScriptTag]: + return self.tag_type == TagType.SCRIPT + + def is_the_same_as(self, another: FlvTag) -> bool: + return ( + self.tag_type == another.tag_type and + self.data_size == another.data_size and + self.body == another.body + ) + + def evolve(self: _T, **changes: Any) -> _T: + if 'body' in changes: + body = cast(bytes, changes.get('body')) + changes['data_size'] = self.header_size + len(body) + return attr.evolve(self, **changes) + + +# it’s not possible to inherit from more than one class that has attributes in +# __slots__ +# ref: https://www.attrs.org/en/stable/glossary.html +# ref: https://docs.python.org/3/reference/datamodel.html#notes-on-using-slots +@attr.s(auto_attribs=True, slots=True, frozen=True, kw_only=True) +class AudioTag(FlvTag): + sound_format: SoundFormat + sound_rate: SoundRate + sound_size: SoundSize + sound_type: SoundType + aac_packet_type: Optional[AACPacketType] + + @property + def header_size(self) -> int: + if self.sound_format != SoundFormat.AAC: + return 1 + else: + return 2 + + def is_aac_format(self) -> bool: + return self.sound_format == SoundFormat.AAC + + def is_aac_header(self) -> bool: + return self.aac_packet_type == AACPacketType.AAC_SEQUENCE_HEADER + + def is_aac_raw(self) -> bool: + return self.aac_packet_type == AACPacketType.AAC_RAW + + +@attr.s(auto_attribs=True, slots=True, frozen=True, kw_only=True) +class VideoTag(FlvTag): + frame_type: FrameType + codec_id: CodecID + avc_packet_type: Optional[AVCPacketType] + composition_time: Optional[int] + + @property + def header_size(self) -> int: + if self.codec_id != CodecID.AVC: + return 1 + else: + return 5 + + def is_avc_header(self) -> bool: + return self.avc_packet_type == AVCPacketType.AVC_SEQUENCE_HEADER + + def is_avc_nalu(self) -> bool: + return self.avc_packet_type == AVCPacketType.AVC_NALU + + def is_avc_end(self) -> bool: + return self.avc_packet_type == AVCPacketType.AVC_END_OF_SEQENCE + + def is_keyframe(self) -> bool: + return self.frame_type == FrameType.KEY_FRAME + + +@attr.s(auto_attribs=True, slots=True, frozen=True, kw_only=True) +class ScriptTag(FlvTag): + @property + def header_size(self) -> int: + return 0 diff --git a/src/blrec/flv/parameters_checker.py b/src/blrec/flv/parameters_checker.py new file mode 100644 index 0000000..7b1ea4b --- /dev/null +++ b/src/blrec/flv/parameters_checker.py @@ -0,0 +1,58 @@ +from __future__ import annotations +import logging +from typing import Optional + + +from .models import AudioTag, FlvTag, ScriptTag, VideoTag +from .common import ( + is_audio_sequence_header, is_video_sequence_header, is_metadata_tag +) +from .exceptions import AudioParametersChanged, VideoParametersChanged + + +__all__ = 'ParametersChecker', + + +logger = logging.getLogger(__name__) + + +class ParametersChecker: + def __init__(self) -> None: + self.reset() + + @property + def last_metadata_tag(self) -> Optional[ScriptTag]: + return self._last_metadata_tag + + @property + def last_audio_header_tag(self) -> Optional[AudioTag]: + return self._last_audio_header_tag + + @property + def last_video_header_tag(self) -> Optional[VideoTag]: + return self._last_video_header_tag + + def reset(self) -> None: + self._last_metadata_tag: Optional[ScriptTag] = None + self._last_audio_header_tag: Optional[AudioTag] = None + self._last_video_header_tag: Optional[VideoTag] = None + + def check_tag(self, tag: FlvTag) -> None: + if is_audio_sequence_header(tag): + if self._last_audio_header_tag is not None: + if not tag.is_the_same_as(self._last_audio_header_tag): + logger.warning('Audio parameters changed') + self._last_audio_header_tag = tag + raise AudioParametersChanged() + self._last_audio_header_tag = tag + elif is_video_sequence_header(tag): + if self._last_video_header_tag is not None: + if not tag.is_the_same_as(self._last_video_header_tag): + logger.warning('Video parameters changed') + self._last_video_header_tag = tag + raise VideoParametersChanged() + self._last_video_header_tag = tag + elif is_metadata_tag(tag): + self._last_metadata_tag = tag + else: + pass diff --git a/src/blrec/flv/scriptdata.py b/src/blrec/flv/scriptdata.py new file mode 100644 index 0000000..a1d9bd8 --- /dev/null +++ b/src/blrec/flv/scriptdata.py @@ -0,0 +1,76 @@ +from io import BytesIO +from typing import Any, BinaryIO, Dict, Mapping, TypedDict + + +from .amf import AMFReader, AMFWriter + + +__all__ = ( + 'load', + 'loads', + 'dump', + 'dumps', + + 'ScriptData', + + 'ScriptDataParser', + 'ScriptDataDumper', +) + + +class ScriptData(TypedDict): + name: str + value: Dict[str, Any] + + +class ScriptDataParser: + def __init__(self, stream: BinaryIO) -> None: + self._reader = AMFReader(stream) + + def parse(self) -> ScriptData: + name = self._parse_name() + value = self._parse_value() + return ScriptData(name=name, value=value) + + def _parse_name(self) -> str: + value = self._reader.read_value() + assert isinstance(value, str) + return value + + def _parse_value(self) -> Dict[str, Any]: + value = self._reader.read_value() + assert isinstance(value, dict) + return value + + +class ScriptDataDumper: + def __init__(self, stream: BinaryIO) -> None: + self._writer = AMFWriter(stream) + + def dump(self, script_data: ScriptData) -> None: + self._dump_name(script_data['name']) + self._dump_value(script_data['value']) + + def _dump_name(self, name: str) -> None: + self._writer.write_value(name) + + def _dump_value(self, value: Mapping[str, Any]) -> None: + self._writer.write_value(value) + + +def load(data: bytes) -> ScriptData: + return loads(BytesIO(data)) + + +def loads(stream: BinaryIO) -> ScriptData: + return ScriptDataParser(stream).parse() + + +def dump(script_data: ScriptData) -> bytes: + stream = BytesIO() + dumps(script_data, stream) + return stream.getvalue() + + +def dumps(script_data: ScriptData, stream: BinaryIO) -> None: + ScriptDataDumper(stream).dump(script_data) diff --git a/src/blrec/flv/stream_processor.py b/src/blrec/flv/stream_processor.py new file mode 100644 index 0000000..d9fc62f --- /dev/null +++ b/src/blrec/flv/stream_processor.py @@ -0,0 +1,756 @@ +from __future__ import annotations +import io +import math +from abc import ABC, abstractmethod +import json +import logging +from typing import ( + Any, BinaryIO, Dict, List, Final, Iterable, Iterator, Optional, Tuple, + Protocol, TypedDict, Union, cast +) + +import attr +from rx.subject import Subject +from rx.core import Observable + +from .models import FlvHeader, FlvTag, ScriptTag, VideoTag, AudioTag +from .data_analyser import DataAnalyser +from .limit_checker import LimitChecker +from .parameters_checker import ParametersChecker +from .io import FlvReader, FlvWriter +from .io_protocols import RandomIO +from .utils import format_offest, format_timestamp +from .exceptions import ( + FlvStreamCorruptedError, + AudioParametersChanged, + VideoParametersChanged, + FileSizeOverLimit, + DurationOverLimit, +) +from .common import ( + is_audio_tag, is_metadata_tag, is_video_tag, parse_metadata, rpeek_tags, + enrich_metadata, update_metadata, is_data_tag, read_tags_in_duration, + is_sequence_header +) +from ..path import extra_metadata_path + + +__all__ = 'StreamProcessor', 'BaseOutputFileManager', 'JoinPoint' + + +logger = logging.getLogger(__name__) + + +class StreamProcessor: + # Number of tags for determining whether or not tags are duplicated + _TAG_SEQUENCE_COUNT: Final[int] = 3 + # Max duration in milliseconds the duplicated tags might last + _MAX_DURATION: Final[int] = 20000 + + def __init__( + self, + file_manager: OutputFileManager, + *, + metadata: Optional[Dict[str, Any]] = None, + filesize_limit: int = 0, + duration_limit: int = 0, + disable_limit: bool = False, + analyse_data: bool = False, + dedup_join: bool = False, + save_extra_metadata: bool = False, + ) -> None: + self._file_manager = file_manager + self._parameters_checker = ParametersChecker() + if not disable_limit: + self._limit_checker = LimitChecker(filesize_limit, duration_limit) + if analyse_data: + self._data_analyser = DataAnalyser() + + self._metadata = metadata.copy() if metadata else {} + + self._disable_limit = disable_limit + self._analyse_data = analyse_data + self._dedup_join = dedup_join + self._save_x_metadata = save_extra_metadata + + self._cancelled: bool = False + self._finalized: bool = False + self._stream_count: int = 0 + self._size_updates = Subject() + self._time_updates = Subject() + + self._delta: int = 0 + self._has_audio: bool = False + self._metadata_tag: ScriptTag + self._last_ts: int = 0 + self._last_tags: List[FlvTag] = [] + self._join_points: List[JoinPoint] = [] + + @property + def filesize_limit(self) -> int: + if self._disable_limit: + return 0 + return self._limit_checker.filesize_limit + + @filesize_limit.setter + def filesize_limit(self, value: int) -> None: + if not self._disable_limit: + self._limit_checker.filesize_limit = value + + @property + def duration_limit(self) -> int: + if self._disable_limit: + return 0 + return self._limit_checker.duration_limit + + @duration_limit.setter + def duration_limit(self, value: int) -> None: + if not self._disable_limit: + self._limit_checker.duration_limit = value + + @property + def join_points(self) -> Iterator[JoinPoint]: + for point in self._join_points: + yield point + + @property + def size_updates(self) -> Observable: + return self._size_updates + + @property + def time_updates(self) -> Observable: + return self._time_updates + + @property + def cancelled(self) -> bool: + return self._cancelled + + @property + def finalized(self) -> bool: + return self._finalized + + def cancel(self) -> None: + self._cancelled = True + + def process_stream(self, stream: RandomIO) -> None: + assert not self._cancelled and not self._finalized, \ + 'should not be called after the processing cancelled or finalized' + self._stream_count += 1 + self._process_stream(stream) + + def finalize(self) -> None: + assert not self._finalized, \ + 'should not be called after the processing finalized' + self._finalized = True + + if not self._need_to_finalize(): + logger.debug('No need to finalize stream processing') + return + + self._complete_file() + logger.debug('Finalized stream processing') + + def _need_to_finalize(self) -> bool: + return self._stream_count > 0 and len(self._last_tags) > 0 + + def _new_file(self) -> None: + if not self._disable_limit: + self._limit_checker.reset() + + self._out_file = self._file_manager.create_file() + self._out_reader = FlvReader(self._out_file) + self._out_writer = FlvWriter(self._out_file) + + logger.debug(f'new file: {self._file_manager.curr_path}') + + def _complete_file(self) -> None: + curr_path = self._file_manager.curr_path + + if self._save_x_metadata: + self._save_extra_metadata() + + self._update_metadata_tag() + self._file_manager.close_file() + + if self._analyse_data: + self._data_analyser.reset() + + logger.debug(f'complete file: {curr_path}') + + def _discard_file(self) -> None: + curr_path = self._file_manager.curr_path + self._file_manager.close_file() + logger.debug(f'discard file: {curr_path}') + + def _reset(self) -> None: + self._discard_file() + self._stream_count = 0 + logger.debug('Reset stream processing') + + def _process_stream(self, stream: RandomIO) -> None: + logger.debug(f'Processing the {self._stream_count}th stream...') + + self._in_reader = FlvReaderWithTimestampFix(stream) + flv_header = self._read_header() + self._has_audio = flv_header.has_audio() + assert flv_header.has_video(), 'no video in the stream!' + + try: + first_data_tag = self._read_first_data_tag() + if self._stream_count == 1: + self._process_initial_stream(flv_header, first_data_tag) + else: + self._process_subsequent_stream(first_data_tag) + except ( + AudioParametersChanged, VideoParametersChanged, + FileSizeOverLimit, DurationOverLimit, + ): + self._process_split_stream(flv_header) + + logger.debug(f'Completed processing the {self._stream_count}th stream') + + def _process_initial_stream( + self, flv_header: FlvHeader, first_data_tag: FlvTag + ) -> None: + self._new_file() + + try: + self._write_header(flv_header) + self._transfer_meta_tags() + self._transfer_first_data_tag(first_data_tag) + except Exception: + self._reset() + raise + del first_data_tag + self._transfer_tags_until_complete() + + def _process_subsequent_stream(self, first_data_tag: FlvTag) -> None: + tags: List[FlvTag] = [] + + if self._dedup_join: + tags, exc = self._read_tags_for_deduplication() + + if (index := self._find_last_duplicated_tag(tags)) >= 0: + seamless = True + self._delta = self._calc_delta_duplicated(tags[index]) + tags = tags[index + 1:] + if not tags: + tags = [self._read_first_data_tag()] + + if not self._dedup_join or index == -1: + seamless = False + self._delta = self._calc_delta_no_duplicated(first_data_tag) + tags.insert(0, first_data_tag) + + offset = self._out_file.tell() + timestamp = tags[0].timestamp + self._delta + self._add_join_point(offset, timestamp, seamless) + + self._transfer_tags(tags) + del first_data_tag, tags + + if self._dedup_join and exc: + raise exc + + self._transfer_tags_until_complete() + + def _process_split_stream(self, flv_header: FlvHeader) -> None: + self._complete_file() + + first_data_tag: FlvTag + if ( + not self._disable_limit and ( + self._limit_checker.is_filesize_over_limit() or + self._limit_checker.is_duration_over_limit() + ) + ): + assert self._limit_checker.last_keyframe_tag is not None + last_keyframe_tag = self._limit_checker.last_keyframe_tag + original_ts = last_keyframe_tag.timestamp - self._delta + first_data_tag = last_keyframe_tag.evolve(timestamp=original_ts) + else: + first_data_tag = self._read_first_data_tag() + + try: + self._process_initial_stream(flv_header, first_data_tag) + except ( + AudioParametersChanged, VideoParametersChanged, + FileSizeOverLimit, DurationOverLimit, + ): + self._process_split_stream(flv_header) + + def _transfer_meta_tags(self) -> None: + logger.debug('Transfering meta tags...') + + if self._parameters_checker.last_metadata_tag is None: + raise FlvStreamCorruptedError('No metadata tag in the stream') + if self._parameters_checker.last_video_header_tag is None: + raise FlvStreamCorruptedError('No video header tag in the stream') + if self._has_audio: + if self._parameters_checker.last_audio_header_tag is None: + raise FlvStreamCorruptedError( + 'No audio header tag in the stream' + ) + metadata_tag = self._parameters_checker.last_metadata_tag + video_header_tag = self._parameters_checker.last_video_header_tag + audio_header_tag = self._parameters_checker.last_audio_header_tag + + offset = self._out_file.tell() + self._metadata_tag = self._enrich_metadata(metadata_tag, offset) + + offset_delta = self._metadata_tag.tag_size - metadata_tag.tag_size + self._update_injected_metadata(offset_delta) + + self._write_tag( + self._correct_ts(self._metadata_tag, -self._metadata_tag.timestamp) + ) + self._write_tag( + self._correct_ts(video_header_tag, -video_header_tag.timestamp) + ) + if audio_header_tag is not None: + self._write_tag( + self._correct_ts(audio_header_tag, -audio_header_tag.timestamp) + ) + + logger.debug('Meta tags have been transfered') + + def _transfer_first_data_tag(self, tag: FlvTag) -> None: + logger.debug(f'Transfer the first data tag: {tag}') + self._delta = -tag.timestamp + self._transfer_tags([tag]) + logger.debug('The first data tag has been transfered') + + def _read_tags_for_deduplication( + self + ) -> Tuple[List[FlvTag], Optional[Exception]]: + logger.debug('Reading tags for tag deduplication...') + tags: List[FlvTag] = [] + try: + for tag in read_tags_in_duration( + self._in_reader, self._MAX_DURATION + ): + tags.append(tag) + except Exception as exc: + logger.debug(f'Failed to read data, due to: {repr(exc)}') + return tags, exc + else: + return tags, None + finally: + logger.debug('Read {} tags, total size: {}'.format( + len(tags), sum(t.tag_size for t in tags) + )) + + def _transfer_tags_until_complete(self) -> None: + logger.debug('Transfering tags until complete...') + self._transfer_tags(self._read_tags_from_in_stream()) + + def _read_tags_from_in_stream(self) -> Iterator[FlvTag]: + while not self._cancelled: + try: + tag = self._in_reader.read_tag() + self._parameters_checker.check_tag(tag) + yield tag + except EOFError: + logger.debug('The input stream exhausted') + break + except Exception as e: + logger.debug(f'Failed to read data, due to: {repr(e)}') + raise + else: + logger.debug('Cancelled reading tags from the input stream') + + def _transfer_tags(self, tags: Iterable[FlvTag]) -> None: + logger.debug(f'Transfering tags... timestamp delta: {self._delta}') + + try: + count: int = 0 + for tag in filter(lambda t: not is_sequence_header(t), tags): + self._ensure_ts_correct(tag) + self._write_tag(self._correct_ts(tag, self._delta)) + count += 1 + finally: + logger.debug(f'{count} tags have been transfered') + + if count > 0: + self._update_last_out_tags() + + def _add_join_point( + self, offset: int, timestamp: int, seamless: bool + ) -> None: + join_point = JoinPoint(offset, timestamp, seamless) + self._join_points.append(join_point) + logger.debug(f'{repr(join_point)}; {join_point}') + + def _update_last_out_tags(self) -> None: + self._last_tags = list(rpeek_tags( + self._out_file, self._out_reader, self._TAG_SEQUENCE_COUNT + )) + + def _find_last_duplicated_tag(self, tags: List[FlvTag]) -> int: + logger.debug('Finding duplicated tags...') + + last_out_tag = self._last_tags[0] + logger.debug(f'The last output tag is {last_out_tag}') + + for idx, tag in enumerate(tags): + if not tag.is_the_same_as(last_out_tag): + continue + + if not all( + map( + lambda t: t[0].is_the_same_as(t[1]), + zip(reversed(tags[:idx]), self._last_tags[1:]) + ) + ): + continue + + logger.debug(f'The last duplicated tag found at {idx} is {tag}') + return idx + + logger.debug('No duplicated tags found') + return -1 + + def _read_header(self) -> FlvHeader: + try: + return self._in_reader.read_header() + except Exception as exc: + raise FlvStreamCorruptedError(repr(exc)) + + def _read_first_data_tag(self) -> Union[AudioTag, VideoTag]: + for tag in self._read_tags_from_in_stream(): + if is_data_tag(tag): + return tag + raise FlvStreamCorruptedError('No data tag found in the stream!') + + def _read_tags(self, count: int) -> Iterator[FlvTag]: + assert count > 0, 'count must greater than 0' + for c, tag in enumerate(self._read_tags_from_in_stream(), start=1): + yield tag + if c >= count: + break + + def _write_header(self, header: FlvHeader) -> None: + try: + size = self._out_writer.write_header(header) + logger.debug('The flv header has been copied') + except Exception as exc: + logger.debug(f'Failed to write data, due to: {repr(exc)}') + raise + + if not self._disable_limit: + self._limit_checker.check_header(header) + if self._analyse_data: + self._data_analyser.analyse_header(header) + self._size_updates.on_next(size) + + def _write_tag(self, tag: FlvTag) -> None: + if self._analyse_data: + offset = self._out_file.tell() + tag = tag.evolve(offset=offset) + + try: + size = self._out_writer.write_tag(tag) + except Exception as exc: + logger.debug(f'Failed to write data, due to: {repr(exc)}') + raise + + self._last_ts = tag.timestamp + + if not self._disable_limit: + self._limit_checker.check_tag(tag) + + if self._analyse_data: + self._data_analyser.analyse_tag(tag) + + self._size_updates.on_next(size) + self._time_updates.on_next(tag.timestamp) + + def _ensure_ts_correct(self, tag: FlvTag) -> None: + if tag.timestamp + self._delta < 0: + self._delta = -tag.timestamp + logger.warning('Incorrect timestamp: {}, new delta: {}'.format( + tag, self._delta + )) + + def _correct_ts(self, tag: FlvTag, delta: int) -> FlvTag: + if delta == 0: + return tag + return tag.evolve(timestamp=tag.timestamp + delta) + + def _calc_delta_duplicated(self, last_duplicated_tag: FlvTag) -> int: + return self._last_tags[0].timestamp - last_duplicated_tag.timestamp + + def _calc_delta_no_duplicated(self, first_data_tag: FlvTag) -> int: + return ( + self._last_tags[0].timestamp - first_data_tag.timestamp + + self._in_reader.calc_interval(first_data_tag) + ) + + def _enrich_metadata( + self, old_metadata_tag: ScriptTag, offset: int + ) -> ScriptTag: + # ensure the duration and filesize property exists in the metadata and + # init them. + self._metadata.update({'duration': 0.0, 'filesize': 0.0}) + # merge the metadata into the metadata tag + return enrich_metadata(old_metadata_tag, self._metadata, offset) + + def _update_injected_metadata(self, offset_delta: int) -> None: + updated = False + + if (keyframes := self._metadata.get('keyframes')): + keyframes['filepositions'] = list( + map(lambda p: p + offset_delta, keyframes['filepositions']) + ) + if 'lastkeyframelocation' in self._metadata: + self._metadata['lastkeyframelocation'] = \ + keyframes['filepositions'][-1] + updated = True + + if (join_points := self._metadata.get('joinpoints')): + join_points = cast(List[JoinPointData], join_points) + self._metadata['joinpoints'] = list( + {**p, 'offset': p['offset'] + offset_delta} + for p in join_points + ) + updated = True + + if updated: + self._metadata_tag = \ + update_metadata(self._metadata_tag, self._metadata) + + def _update_metadata_tag(self) -> None: + last_tag = self._last_tags[0] + duration = last_tag.timestamp / 1000 + filesize = float(last_tag.next_tag_offset) + updates = dict(duration=duration, filesize=filesize) + self._metadata_tag = update_metadata(self._metadata_tag, updates) + self._out_file.seek(self._metadata_tag.offset) + self._out_writer.write_tag(self._metadata_tag) + logger.debug('The metadata tag has been updated') + + def _save_extra_metadata(self) -> None: + if self._analyse_data: + metadata = attr.asdict( + self._data_analyser.make_metadata(), + filter=lambda a, v: v is not None, + ) + else: + metadata = {} + + metadata['joinpoints'] = list( + map(lambda p: p.to_metadata_value(), self._join_points) + ) + + path = extra_metadata_path(self._file_manager.curr_path) + with open(path, 'wt', encoding='utf8') as file: + json.dump(metadata, file) + + logger.debug('The extra metadata has been saved') + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class JoinPoint: + offset: int + timestamp: int # milliseconds + seamless: bool + + @classmethod + def from_metadata_value(cls, value: JoinPointData) -> JoinPoint: + return cls( + offset=int(value['offset']), + timestamp=int(value['timestamp']), + seamless=value['seamless'], + ) + + def to_metadata_value(self) -> JoinPointData: + return dict( + offset=float(self.offset), + timestamp=float(self.timestamp), + seamless=self.seamless, + ) + + def __str__(self) -> str: + return 'offset: {}, timestamp: {}, seamless: {}'.format( + format_offest(self.offset), + format_timestamp(self.timestamp), + 'yes' if self.seamless else 'no', + ) + + +class JoinPointData(TypedDict): + offset: float + timestamp: float + seamless: bool + + +class OutputFileManager(Protocol): + @property + def curr_path(self) -> str: + ... + + @property + def curr_file(self) -> Optional[BinaryIO]: + ... + + def create_file(self) -> BinaryIO: + ... + + def close_file(self) -> None: + ... + + +class BaseOutputFileManager(ABC): + def __init__(self, buffer_size: Optional[int] = None) -> None: + super().__init__() + self.buffer_size = buffer_size or io.DEFAULT_BUFFER_SIZE # bytes + self._paths: List[str] = [] + self._curr_path = '' + self._curr_file: Optional[BinaryIO] = None + + @property + def curr_path(self) -> str: + return self._curr_path + + @property + def curr_file(self) -> Optional[BinaryIO]: + return self._curr_file + + def has_file(self) -> bool: + return len(self._paths) > 1 + + def get_files(self) -> Iterator[str]: + for file in self._paths: + yield file + + def clear_files(self) -> None: + self._paths.clear() + + def create_file(self) -> BinaryIO: + assert self._curr_file is None + path = self._make_path() + file = open(path, mode='w+b', buffering=self.buffer_size) + self._paths.append(path) + self._curr_path = path + self._curr_file = file + return file + + def close_file(self) -> None: + assert self._curr_file is not None + self._curr_file.close() + self._curr_path = '' + self._curr_file = None + + @abstractmethod + def _make_path(self) -> str: + ... + + +class FlvReaderWithTimestampFix(FlvReader): + def __init__(self, stream: RandomIO) -> None: + super().__init__(stream) + self._last_tag: Optional[FlvTag] = None + self._delta = 0 + # 15 is probably the minimal frame rate + self._frame_rate = 15.0 + self._video_frame_interval = math.ceil(1000 / self._frame_rate) + # AAC SoundRate always is 44 KHz + self._sound_sample_interval = math.ceil(1000 / 44) + + @property + def frame_rate(self) -> float: + return self._frame_rate + + @property + def sound_sample_interval(self) -> int: + return self._sound_sample_interval + + @property + def video_frame_interval(self) -> int: + return self._video_frame_interval + + def read_tag(self, *, no_body: bool = False) -> FlvTag: + while True: + tag = super().read_tag(no_body=no_body) + + if self._last_tag is None: + if is_data_tag(tag): + self._update_last_tag(tag) + elif is_metadata_tag(tag): + self._update_parameters(tag) + return tag + + if self._is_ts_rebounded(tag): + self._update_delta(tag) + logger.warning( + f'Timestamp rebounded, updated delta: {self._delta}\n' + f'last tag: {self._last_tag}\n' + f'current tag: {tag}' + ) + + if self._is_ts_jumped(tag): + self._update_delta(tag) + logger.warning( + f'Timestamp jumped, updated delta: {self._delta}\n' + f'last tag: {self._last_tag}\n' + f'current tag: {tag}' + ) + + self._update_last_tag(tag) + + return self._correct_ts(tag) + + def rread_tag(self, *, no_body: bool = False) -> FlvTag: + raise NotImplementedError() + + def read_body(self, tag: FlvTag) -> bytes: + raise NotImplementedError() + + def calc_interval(self, tag: FlvTag) -> int: + if is_audio_tag(tag): + return self._sound_sample_interval + elif is_video_tag(tag): + return self._video_frame_interval + else: + logger.warning(f'Unexpected tag type: {tag}') + return min(self._sound_sample_interval, self._video_frame_interval) + + def _is_ts_rebounded(self, tag: FlvTag) -> bool: + assert self._last_tag is not None + return tag.timestamp < self._last_tag.timestamp + + def _is_ts_jumped(self, tag: FlvTag) -> bool: + assert self._last_tag is not None + return ( + tag.timestamp - self._last_tag.timestamp > + max(self._sound_sample_interval, self._video_frame_interval) + ) + + def _update_last_tag(self, tag: FlvTag) -> None: + self._last_tag = tag + + def _update_parameters(self, tag: ScriptTag) -> None: + metadata = parse_metadata(tag) + frame_rate = metadata.get('fps') or metadata.get('framerate') + + if not frame_rate: + return + + self._frame_rate = frame_rate + self._video_frame_interval = math.ceil(1000 / frame_rate) + + logger.debug('frame rate: {}, video frame interval: {}'.format( + frame_rate, self._video_frame_interval + )) + + def _update_delta(self, tag: FlvTag) -> None: + assert self._last_tag is not None + self._delta = ( + self._last_tag.timestamp + self._delta - tag.timestamp + + self.calc_interval(tag) + ) + + def _correct_ts(self, tag: FlvTag) -> FlvTag: + if self._delta == 0: + return tag + return tag.evolve(timestamp=tag.timestamp + self._delta) diff --git a/src/blrec/flv/struct_io.py b/src/blrec/flv/struct_io.py new file mode 100644 index 0000000..a67444b --- /dev/null +++ b/src/blrec/flv/struct_io.py @@ -0,0 +1,62 @@ +import struct + + +from .io_protocols import RandomIO + + +__all__ = 'StructReader', 'StructWriter' + + +class StructReader: + def __init__(self, stream: RandomIO) -> None: + self._stream = stream + + def read(self, size: int) -> bytes: + data = self._stream.read(size) + if len(data) != size: + raise EOFError + return data + + def read_ui8(self) -> int: + return struct.unpack('B', self.read(1))[0] + + def read_ui16(self) -> int: + return struct.unpack('>H', self.read(2))[0] + + def read_ui24(self) -> int: + return struct.unpack('>I', b'\x00' + self.read(3))[0] + + def read_ui32(self) -> int: + return struct.unpack('>I', self.read(4))[0] + + def read_si16(self) -> int: + return struct.unpack('>h', self.read(2))[0] + + def read_f64(self) -> float: + return struct.unpack('>d', self.read(8))[0] + + +class StructWriter: + def __init__(self, stream: RandomIO) -> None: + self._stream = stream + + def write(self, data: bytes) -> int: + return self._stream.write(data) + + def write_ui8(self, number: int) -> int: + return self.write(struct.pack('B', number)) + + def write_ui16(self, number: int) -> int: + return self.write(struct.pack('>H', number)) + + def write_ui24(self, number: int) -> int: + return self.write(struct.pack('>I', number)[1:]) + + def write_ui32(self, number: int) -> int: + return self.write(struct.pack('>I', number)) + + def write_si16(self, number: int) -> int: + return self.write(struct.pack('>h', number)) + + def write_f64(self, number: float) -> int: + return self.write(struct.pack('>d', number)) diff --git a/src/blrec/flv/utils.py b/src/blrec/flv/utils.py new file mode 100644 index 0000000..3acf692 --- /dev/null +++ b/src/blrec/flv/utils.py @@ -0,0 +1,39 @@ + + +from .io_protocols import RandomIO + + +def format_timestamp(ts: int) -> str: + milliseconds = ts % 1000 + seconds = ts // 1000 % 60 + minutes = ts // 1000 // 60 % 60 + hours = ts // 1000 // 60 // 60 % 60 + return f'{hours:0>2}:{minutes:0>2}:{seconds:0>2}.{milliseconds:0>3}' + + +def format_offest(offset: int) -> str: + return f'0x{offset:0>8x}' + + +class OffsetRepositor: + def __init__(self, file: RandomIO): + self._file = file + + def __enter__(self): # type: ignore + self._offset = self._file.tell() + + def __exit__(self, exc_type, exc_val, exc_tb): # type: ignore + self._file.seek(self._offset) + + +class AutoRollbacker: + def __init__(self, file: RandomIO): + self._file = file + + def __enter__(self): # type: ignore + self._offset = self._file.tell() + + def __exit__(self, exc_type, exc_val, exc_tb): # type: ignore + if exc_type is not None: + self._file.seek(self._offset) + self._file.truncate() diff --git a/src/blrec/logging/__init__.py b/src/blrec/logging/__init__.py new file mode 100644 index 0000000..694db11 --- /dev/null +++ b/src/blrec/logging/__init__.py @@ -0,0 +1,8 @@ +from .configure import configure_logger, TqdmOutputStream, ConsoleHandler + + +__all__ = ( + 'configure_logger', + 'TqdmOutputStream', + 'ConsoleHandler', +) \ No newline at end of file diff --git a/src/blrec/logging/configure.py b/src/blrec/logging/configure.py new file mode 100644 index 0000000..a28918e --- /dev/null +++ b/src/blrec/logging/configure.py @@ -0,0 +1,133 @@ +import os +import logging +from logging import LogRecord, Handler +from logging.handlers import RotatingFileHandler +from datetime import datetime +import asyncio +import threading +import atexit +from typing import Any, List, Optional + +from colorama import init, deinit, Fore, Back, Style +from tqdm import tqdm + +from .typing import LOG_LEVEL + + +__all__ = 'configure_logger', 'ConsoleHandler', 'TqdmOutputStream' + + +class TqdmOutputStream: + def write(self, string: str = '') -> None: + tqdm.write(string, end='') + + +class ConsoleHandler(logging.StreamHandler): + def __init__(self, stream=None) -> None: # type: ignore + super().__init__(stream) + + def format(self, record: LogRecord) -> str: + msg = super().format(record) + + level = record.levelno + if level == logging.DEBUG: + style = Fore.GREEN + elif level == logging.WARNING: + style = Fore.YELLOW + elif level == logging.ERROR: + style = Fore.RED + elif level == logging.CRITICAL: + style = Fore.WHITE + Back.RED + Style.BRIGHT + else: + style = '' + + return style + msg + Style.RESET_ALL if style else msg + + +_old_factory = logging.getLogRecordFactory() + + +def obtain_room_id() -> str: + try: + task = asyncio.current_task() + assert task is not None + except Exception: + name = threading.current_thread().getName() + else: + name = task.get_name() + + if '::' in name: + if (room_id := name.split('::')[-1]): + return room_id + + return '' + + +def record_factory(*args: Any, **kwargs: Any) -> LogRecord: + record = _old_factory(*args, **kwargs) + + if (room_id := obtain_room_id()): + record.roomid = '[' + room_id + '] ' # type: ignore + else: + record.roomid = '' # type: ignore + + return record + + +logging.setLogRecordFactory(record_factory) + + +_old_handlers: List[Handler] = [] + + +def configure_logger( + out_dir: str, + *, + console_log_level: LOG_LEVEL = 'INFO', + max_bytes: Optional[int] = None, + backup_count: Optional[int] = None, +) -> None: + # config root logger + logger = logging.getLogger() + logger.setLevel(logging.DEBUG) + + # config formatter + formatter = logging.Formatter( + '[%(asctime)s] [%(levelname)s] [%(module)s] %(roomid)s%(message)s' + ) + + # logging to console + console_handler = ConsoleHandler(TqdmOutputStream()) + console_handler.setLevel(logging.getLevelName(console_log_level)) + console_handler.setFormatter(formatter) + logger.addHandler(console_handler) + + # logging to file + file_handler = RotatingFileHandler( + make_log_file_path(out_dir), + maxBytes=max_bytes or 1024 ** 2 * 10, + backupCount=backup_count or 1, + encoding='utf-8', + ) + file_handler.setLevel(logging.DEBUG) + file_handler.setFormatter(formatter) + logger.addHandler(file_handler) + + # remove old handlers after re-configured + for handler in _old_handlers: + logger.removeHandler(handler) + + # retain old handlers for the removing + _old_handlers.append(console_handler) + _old_handlers.append(file_handler) + + +def make_log_file_path(out_dir: str) -> str: + data_time_string = datetime.now().strftime("%Y-%m-%d-%H%M%S") + filename = f'blrec_{data_time_string}.log' + path = os.path.join(out_dir, filename) + return path + + +init() +atexit.register(deinit) diff --git a/src/blrec/logging/room_id.py b/src/blrec/logging/room_id.py new file mode 100644 index 0000000..e41b31c --- /dev/null +++ b/src/blrec/logging/room_id.py @@ -0,0 +1,43 @@ +import threading +import asyncio +from functools import wraps +from typing import Any, Awaitable, Callable, TypeVar + + +_T = TypeVar('_T') + + +def with_room_id(room_id: int): # type: ignore + def decorate(func: Callable[..., _T]) -> Callable[..., _T]: + @wraps(func) + def wrapper(*arg: Any, **kwargs: Any) -> _T: + curr_thread = threading.current_thread() + old_name = curr_thread.getName() + curr_thread.setName(f'{func.__qualname__}::{room_id}') + try: + return func(*arg, **kwargs) + finally: + curr_thread.setName(old_name) + return wrapper + return decorate + + +def aio_task_with_room_id( + func: Callable[..., Awaitable[_T]] +) -> Callable[..., Awaitable[_T]]: + @wraps(func) + async def wrapper(obj: Any, *arg: Any, **kwargs: Any) -> _T: + if hasattr(obj, '_room_id'): + room_id = obj._room_id + elif hasattr(obj, '_live'): + room_id = obj._live.room_id + else: + room_id = '' + + curr_task = asyncio.current_task() + assert curr_task is not None + curr_task.set_name(f'{func.__qualname__}::{room_id}') + + return await func(obj, *arg, **kwargs) + + return wrapper diff --git a/src/blrec/logging/typing.py b/src/blrec/logging/typing.py new file mode 100644 index 0000000..b211714 --- /dev/null +++ b/src/blrec/logging/typing.py @@ -0,0 +1,20 @@ +from typing import Literal + +# CRITICAL = 50 +# FATAL = CRITICAL +# ERROR = 40 +# WARNING = 30 +# WARN = WARNING +# INFO = 20 +# DEBUG = 10 +# NOTSET = 0 + +LOG_LEVEL = Literal[ + 'CRITICAL', + 'FATAL', + 'ERROR', + 'WARNING', + 'INFO', + 'DEBUG', + 'NOTSET', # equivalent to verbose +] diff --git a/src/blrec/notification/__init__.py b/src/blrec/notification/__init__.py new file mode 100644 index 0000000..539736c --- /dev/null +++ b/src/blrec/notification/__init__.py @@ -0,0 +1,27 @@ +from .notifiers import ( + Notifier, + MessageNotifier, + EmailNotifier, + ServerchanNotifier, + PushplusNotifier, +) +from .providers import ( + MessagingProvider, + EmailService, + Serverchan, + Pushplus, +) + + +__all__ = ( + 'MessagingProvider', + 'EmailService', + 'Serverchan', + 'Pushplus', + + 'Notifier', + 'MessageNotifier', + 'EmailNotifier', + 'ServerchanNotifier', + 'PushplusNotifier', +) diff --git a/src/blrec/notification/message.py b/src/blrec/notification/message.py new file mode 100644 index 0000000..ca52e26 --- /dev/null +++ b/src/blrec/notification/message.py @@ -0,0 +1,61 @@ + +import humanize + +from ..event import SpaceNoEnoughEventData + +from ..bili.models import UserInfo, RoomInfo +from ..exception import format_exception + + +live_info_template = """ +主播: {user_name} + +标题: {room_title} + +分区: {area_name} + +房间: {room_id} +""" + +disk_usage_template = """ +路径: {path} + +阈值: {threshold} + +硬盘容量: {usage_total} + +已用空间: {usage_used} + +可用空间: {usage_free} +""" + +exception_template = """ +异常信息: + +{exception_message} +""" + + +def make_live_info_content(user_info: UserInfo, room_info: RoomInfo) -> str: + return live_info_template.format( + user_name=user_info.name, + room_title=room_info.title, + area_name=room_info.area_name, + room_id=room_info.room_id, + ) + + +def make_disk_usage_content(data: SpaceNoEnoughEventData) -> str: + return disk_usage_template.format( + path=data.path, + threshold=humanize.naturalsize(data.threshold), + usage_total=humanize.naturalsize(data.usage.total), + usage_used=humanize.naturalsize(data.usage.used), + usage_free=humanize.naturalsize(data.usage.free), + ) + + +def make_exception_content(exc: BaseException) -> str: + return exception_template.format( + exception_message=format_exception(exc), + ) diff --git a/src/blrec/notification/notifiers.py b/src/blrec/notification/notifiers.py new file mode 100644 index 0000000..1c47c3c --- /dev/null +++ b/src/blrec/notification/notifiers.py @@ -0,0 +1,200 @@ +import logging +import asyncio +from abc import ABC, abstractmethod + +from tenacity import ( + AsyncRetrying, + wait_exponential, + stop_after_delay, + retry_if_exception, +) + +from .providers import ( + EmailService, + MessagingProvider, + Serverchan, + Pushplus, +) +from .message import ( + make_live_info_content, + make_disk_usage_content, + make_exception_content, +) +from ..utils.mixins import SwitchableMixin +from ..exception import ExceptionCenter +from ..event import ( + EventCenter, + LiveBeganEvent, + LiveEndedEvent, + SpaceNoEnoughEvent, +) +from ..event.typing import Event + + +__all__ = ( + 'Notifier', + 'MessageNotifier', + 'EmailNotifier', + 'ServerchanNotifier', + 'PushplusNotifier' +) + + +logger = logging.getLogger(__name__) + + +class Notifier(SwitchableMixin, ABC): + def __init__( + self, + *, + notify_began: bool = False, + notify_ended: bool = False, + notify_space: bool = False, + notify_error: bool = False, + ) -> None: + super().__init__() + self.notify_began = notify_began + self.notify_ended = notify_ended + self.notify_space = notify_space + self.notify_error = notify_error + + def _do_enable(self) -> None: + events = EventCenter.get_instance().events + self._event_subscription = events.subscribe(self._on_event) + exceptions = ExceptionCenter.get_instance().exceptions + self._exc_subscription = exceptions.subscribe(self._on_exception) + + def _do_disable(self) -> None: + self._event_subscription.dispose() + self._exc_subscription.dispose() + + def _on_event(self, event: Event) -> None: + if isinstance(event, LiveBeganEvent): + if self._should_notify_live_began(event): + self._notify_live_began(event) + elif isinstance(event, LiveEndedEvent): + if self._should_notify_live_ended(event): + self._notify_live_ended(event) + elif isinstance(event, SpaceNoEnoughEvent): + if self._should_notify_space_no_enough(event): + self._notify_space_no_enough(event) + else: + pass + + def _on_exception(self, exc: BaseException) -> None: + if self._should_notify_exception(exc): + self._notify_exception(exc) + + def _should_notify_live_began(self, event: LiveBeganEvent) -> bool: + return self.notify_began + + def _should_notify_live_ended(self, event: LiveEndedEvent) -> bool: + return self.notify_ended + + def _should_notify_space_no_enough( + self, event: SpaceNoEnoughEvent + ) -> bool: + return self.notify_space + + def _should_notify_exception(self, exc: BaseException) -> bool: + return self.notify_error + + @abstractmethod + def _notify_live_began(self, event: LiveBeganEvent) -> None: + raise NotImplementedError + + @abstractmethod + def _notify_live_ended(self, event: LiveEndedEvent) -> None: + raise NotImplementedError + + @abstractmethod + def _notify_space_no_enough(self, event: SpaceNoEnoughEvent) -> None: + raise NotImplementedError + + @abstractmethod + def _notify_exception(self, exc: BaseException) -> None: + raise NotImplementedError + + +class MessageNotifier(Notifier, ABC): + provider: MessagingProvider + + def _notify_live_began(self, event: LiveBeganEvent) -> None: + title = f'{event.data.user_info.name} 开播啦' + content = make_live_info_content( + event.data.user_info, event.data.room_info + ) + self._send_message(title, content) + + def _notify_live_ended(self, event: LiveEndedEvent) -> None: + title = f'{event.data.user_info.name} 下播了' + content = make_live_info_content( + event.data.user_info, event.data.room_info + ) + self._send_message(title, content) + + def _notify_space_no_enough(self, event: SpaceNoEnoughEvent) -> None: + title = '空间不足!' + content = make_disk_usage_content(event.data) + self._send_message(title, content) + + def _notify_exception(self, exc: BaseException) -> None: + title = '出错了~' + content = make_exception_content(exc) + self._send_message(title, content) + + def _send_message(self, title: str, content: str) -> None: + asyncio.create_task(self._send_message_async(title, content)) + + async def _send_message_async(self, title: str, content: str) -> None: + try: + async for attempt in AsyncRetrying( + reraise=True, + stop=stop_after_delay(300), + wait=wait_exponential(multiplier=0.1, max=10), + retry=retry_if_exception( + lambda e: not isinstance(e, ValueError) + ), + ): + with attempt: + await self.provider.send_message(title, content) + except Exception as e: + logger.warning('Failed to send a message via {}: {}'.format( + self.provider.__class__.__name__, repr(e) + )) + + +class EmailNotifier(MessageNotifier): + provider = EmailService.get_instance() + + def _do_enable(self) -> None: + super()._do_enable() + logger.debug('Enabled Email notifier') + + def _do_disable(self) -> None: + super()._do_disable() + logger.debug('Disabled Email notifier') + + +class ServerchanNotifier(MessageNotifier): + provider = Serverchan.get_instance() + + def _do_enable(self) -> None: + super()._do_enable() + logger.debug('Enabled Serverchan notifier') + + def _do_disable(self) -> None: + super()._do_disable() + logger.debug('Disabled Serverchan notifier') + + +class PushplusNotifier(MessageNotifier): + provider = Pushplus.get_instance() + + def _do_enable(self) -> None: + super()._do_enable() + logger.debug('Enabled Pushplus notifier') + + def _do_disable(self) -> None: + super()._do_disable() + logger.debug('Disabled Pushplus notifier') diff --git a/src/blrec/notification/providers.py b/src/blrec/notification/providers.py new file mode 100644 index 0000000..6c2c744 --- /dev/null +++ b/src/blrec/notification/providers.py @@ -0,0 +1,136 @@ +import logging +import asyncio +import smtplib +from abc import ABC, abstractmethod +from typing import TypedDict, cast, Literal +from email.message import EmailMessage +from http.client import HTTPException + +import aiohttp + +from ..utils.patterns import Singleton + + +__all__ = 'MessagingProvider', 'EmailService', 'Serverchan', 'Pushplus' + + +logger = logging.getLogger(__name__) + + +class MessagingProvider(Singleton, ABC): + def __init__(self) -> None: + super().__init__() + + @abstractmethod + async def send_message(self, title: str, content: str) -> None: + ... + + +MSG_TYPE = Literal['plain', 'html'] + + +class EmailService(MessagingProvider): + def __init__( + self, + src_addr: str = '', + dst_addr: str = '', + auth_code: str = '', + smtp_host: str = 'smtp.163.com', + smtp_port: int = 465, + ) -> None: + super().__init__() + self.src_addr = src_addr + self.dst_addr = dst_addr + self.auth_code = auth_code + self.smtp_host = smtp_host + self.smtp_port = smtp_port + + async def send_message( + self, subject: str, content: str, msg_type: MSG_TYPE = 'plain' + ) -> None: + self._check_parameters() + await asyncio.get_running_loop().run_in_executor( + None, self._send_email, subject, content, msg_type + ) + + def _send_email( + self, subject: str, content: str, msg_type: MSG_TYPE = 'plain' + ) -> None: + msg = EmailMessage() + msg['Subject'] = subject + msg['From'] = self.src_addr + msg['To'] = self.dst_addr + msg.set_content(content, subtype=msg_type, charset='utf-8') + + with smtplib.SMTP_SSL(self.smtp_host, self.smtp_port) as smtp: + # smtp.set_debuglevel(1) + smtp.login(self.src_addr, self.auth_code) + smtp.send_message(msg, self.src_addr, self.dst_addr) + + def _check_parameters(self) -> None: + if not self.src_addr: + raise ValueError('No source email address supplied') + if not self.dst_addr: + raise ValueError('No destination email address supplied') + if not self.auth_code: + raise ValueError('No auth code supplied') + + +class Serverchan(MessagingProvider): + def __init__(self, sendkey: str = '') -> None: + super().__init__() + self.sendkey = sendkey + + async def send_message(self, title: str, content: str) -> None: + self._check_parameters() + await self._post_message(title, content) + + def _check_parameters(self) -> None: + if not self.sendkey: + raise ValueError('No sendkey supplied') + + async def _post_message(self, title: str, content: str) -> None: + url = f'https://sctapi.ftqq.com/{self.sendkey}.send' + payload = {'text': title, 'desp': content} + + async with aiohttp.ClientSession(raise_for_status=True) as session: + async with session.post(url, data=payload): + pass + + +class PushplusResponse(TypedDict): + code: int + msg: str + data: str + + +class Pushplus(MessagingProvider): + url = 'http://pushplus.hxtrip.com/send' + + def __init__(self, token: str = '', topic: str = '') -> None: + super().__init__() + self.token = token + self.topic = topic + + async def send_message(self, title: str, content: str) -> None: + self._check_parameters() + await self._post_message(title, content) + + def _check_parameters(self) -> None: + if not self.token: + raise ValueError('No token supplied') + + async def _post_message(self, title: str, content: str) -> None: + payload = { + 'title': title, + 'content': content, + 'token': self.token, + 'topic': self.topic, + 'template': 'html', + } + + async with aiohttp.ClientSession(raise_for_status=True) as session: + async with session.post(self.url, json=payload) as res: + response = cast(PushplusResponse, await res.json()) + if response['code'] != 200: + raise HTTPException(response['code'], response['msg']) diff --git a/src/blrec/path/__init__.py b/src/blrec/path/__init__.py new file mode 100644 index 0000000..40b8537 --- /dev/null +++ b/src/blrec/path/__init__.py @@ -0,0 +1,14 @@ +from .helpers import ( + file_exists, + create_file, + danmaku_path, + extra_metadata_path, +) + + +__all__ = ( + 'file_exists', + 'create_file', + 'danmaku_path', + 'extra_metadata_path', +) diff --git a/src/blrec/path/helpers.py b/src/blrec/path/helpers.py new file mode 100644 index 0000000..9d5dd5f --- /dev/null +++ b/src/blrec/path/helpers.py @@ -0,0 +1,28 @@ +import os +from pathlib import PurePath + + +__all__ = ( + 'file_exists', + 'create_file', + 'danmaku_path', + 'extra_metadata_path', +) + + +def file_exists(path: str) -> bool: + return os.path.isfile(path) + + +def create_file(path: str) -> None: + os.makedirs(os.path.dirname(path), exist_ok=True) + with open(path, 'x'): + pass + + +def danmaku_path(video_path: str) -> str: + return str(PurePath(video_path).with_suffix('.xml')) + + +def extra_metadata_path(video_path: str) -> str: + return video_path + '.meta.json' diff --git a/src/blrec/postprocess/__init__.py b/src/blrec/postprocess/__init__.py new file mode 100644 index 0000000..f3e348e --- /dev/null +++ b/src/blrec/postprocess/__init__.py @@ -0,0 +1,10 @@ +from .postprocessor import Postprocessor, PostprocessorEventListener +from .models import ProcessStatus, DeleteStrategy + + +__all__ = ( + 'Postprocessor', + 'PostprocessorEventListener', + 'ProcessStatus', + 'DeleteStrategy', +) diff --git a/src/blrec/postprocess/ffmpeg_metadata.py b/src/blrec/postprocess/ffmpeg_metadata.py new file mode 100644 index 0000000..90e98c0 --- /dev/null +++ b/src/blrec/postprocess/ffmpeg_metadata.py @@ -0,0 +1,67 @@ +import json +from typing import Iterable, cast + +import aiofiles + +from .helpers import get_metadata, get_extra_metadata +from ..flv.stream_processor import JoinPoint +from ..flv.helpers import make_comment_for_joinpoints + + +async def make_metadata_file(flv_path: str) -> str: + path = flv_path + '.meta' + async with aiofiles.open(path, 'wb') as f: + content = await _make_metadata_content(flv_path) + await f.write(content.encode(encoding='utf8')) + return path + + +async def _make_metadata_content(flv_path: str) -> str: + metadata = await get_metadata(flv_path) + extra_metadata = await get_extra_metadata(flv_path) + + comment = cast(str, metadata.get('Comment', '')) + chapters = '' + + if (join_points := extra_metadata.get('joinpoints')): + join_points = list(map(JoinPoint.from_metadata_value, join_points)) + comment += '\n\n' + make_comment_for_joinpoints(join_points) + duration = int(cast(float, metadata['duration']) * 1000) + chapters = _make_chapters(join_points, duration) + + comment = '\\\n'.join(comment.splitlines()) + + # ref: https://ffmpeg.org/ffmpeg-formats.html#Metadata-1 + return f"""\ +;FFMETADATA1 +Title={metadata['Title']} +Artist={metadata['Artist']} +Date={metadata['Date']} +# Description may be truncated! +Description={json.dumps(metadata['description'], ensure_ascii=False)} +Comment={comment} + +{chapters} +""" + + +def _make_chapters( + join_points: Iterable[JoinPoint], duration: int +) -> str: + join_points = filter(lambda p: not p.seamless, join_points) + timestamps = list(map(lambda p: p.timestamp, join_points)) + if not timestamps: + return '' + timestamps.insert(0, 0) + timestamps.append(duration) + + result = '' + for i in range(1, len(timestamps)): + result += f"""\ +[CHAPTER] +TIMEBASE=1/1000 +START={timestamps[i-1]} +END={timestamps[i]} +title=segment \\#{i} +""" + return result diff --git a/src/blrec/postprocess/helpers.py b/src/blrec/postprocess/helpers.py new file mode 100644 index 0000000..2fe267d --- /dev/null +++ b/src/blrec/postprocess/helpers.py @@ -0,0 +1,31 @@ +import asyncio +from typing import Any, Dict, Iterable, Literal + +from ..flv.helpers import get_metadata as _get_metadata +from ..flv.helpers import get_extra_metadata as _get_extra_metadata + + +async def discard_files( + paths: Iterable[str], + log_level: Literal['INFO', 'DEBUG'] = 'INFO', +) -> None: + for path in paths: + await discard_file(path, log_level) + + +async def discard_file( + path: str, + log_level: Literal['INFO', 'DEBUG'] = 'INFO', +) -> None: + from ..disk_space import delete_file + await delete_file(path, log_level) + + +async def get_metadata(flv_path: str) -> Dict[str, Any]: + loop = asyncio.get_running_loop() + return await loop.run_in_executor(None, _get_metadata, flv_path) + + +async def get_extra_metadata(flv_path: str) -> Dict[str, Any]: + loop = asyncio.get_running_loop() + return await loop.run_in_executor(None, _get_extra_metadata, flv_path) diff --git a/src/blrec/postprocess/models.py b/src/blrec/postprocess/models.py new file mode 100644 index 0000000..b3958fa --- /dev/null +++ b/src/blrec/postprocess/models.py @@ -0,0 +1,23 @@ + +from enum import Enum + + +class ProcessStatus(Enum): + WAITING = 'waiting' + REMUXING = 'remuxing' + INJECTING = 'injecting' + + def __str__(self) -> str: + return self.value + + +class DeleteStrategy(Enum): + AUTO = 'auto' + NEVER = 'never' + + def __str__(self) -> str: + return self.value + + # workaround for value serialization + def __repr__(self) -> str: + return str(self) diff --git a/src/blrec/postprocess/postprocessor.py b/src/blrec/postprocess/postprocessor.py new file mode 100644 index 0000000..dc1f55a --- /dev/null +++ b/src/blrec/postprocess/postprocessor.py @@ -0,0 +1,266 @@ +import asyncio +import logging +from pathlib import PurePath +from typing import ( + Any, Awaitable, Dict, Iterable, Iterator, List, Optional, Sequence, Set, + Tuple, Union, +) + +from rx.core.typing import Scheduler +from rx.scheduler.threadpoolscheduler import ThreadPoolScheduler + +from .models import ProcessStatus, DeleteStrategy +from .typing import Progress +from .remuxer import remux_video, RemuxProgress, RemuxResult +from .helpers import discard_file, discard_files, get_extra_metadata +from .ffmpeg_metadata import make_metadata_file +from ..event.event_emitter import EventListener, EventEmitter +from ..bili.live import Live +from ..core import Recorder, RecorderEventListener +from ..exception import exception_callback +from ..utils.mixins import SwitchableMixin, AsyncCooperationMix +from ..path import danmaku_path, extra_metadata_path +from ..flv.metadata_injector import inject_metadata, InjectProgress +from ..flv.helpers import is_valid +from ..logging.room_id import aio_task_with_room_id + + +__all__ = ( + 'Postprocessor', + 'PostprocessorEventListener', + 'ProcessStatus', + 'DeleteStrategy', +) + + +logger = logging.getLogger(__name__) + + +class PostprocessorEventListener(EventListener): + async def on_file_completed(self, room_id: int, path: str) -> None: + ... + + +class Postprocessor( + EventEmitter[PostprocessorEventListener], + RecorderEventListener, + SwitchableMixin, + AsyncCooperationMix, +): + def __init__( + self, + live: Live, + recorder: Recorder, + *, + remux_to_mp4: bool = False, + delete_source: DeleteStrategy = DeleteStrategy.AUTO, + ) -> None: + super().__init__() + + self._live = live + self._recorder = recorder + + self.remux_to_mp4 = remux_to_mp4 + self.delete_source = delete_source + + self._status = ProcessStatus.WAITING + self._postprocessing_path: Optional[str] = None + self._postprocessing_progress: Optional[Progress] = None + self._files: List[str] = [] + + @property + def status(self) -> ProcessStatus: + return self._status + + @property + def postprocessing_path(self) -> Optional[str]: + return self._postprocessing_path + + @property + def postprocessing_progress(self) -> Optional[Progress]: + return self._postprocessing_progress + + def get_final_files(self) -> Iterator[str]: + yield from iter(self._files) + + async def wait(self) -> None: + await self._wait_processing_task() + + async def on_recording_finished(self, recorder: Recorder) -> None: + self._create_processing_task(recorder) + + async def on_recording_cancelled(self, recorder: Recorder) -> None: + self._create_processing_task(recorder) + + def _do_enable(self) -> None: + self._recorder.add_listener(self) + logger.debug('Enabled postprocessor') + + def _do_disable(self) -> None: + self._recorder.remove_listener(self) + logger.debug('Disabled postprocessor') + + def _create_processing_task(self, recorder: Recorder) -> None: + raw_videos = list(recorder.get_video_files()) + raw_danmaku = list(recorder.get_danmaku_files()) + self._processing_task = asyncio.create_task( + self._process(raw_videos, raw_danmaku), + ) + self._processing_task.add_done_callback(exception_callback) + + async def _wait_processing_task(self) -> None: + if hasattr(self, '_processing_task'): + await self._processing_task + + @aio_task_with_room_id + async def _process( + self, raw_videos: Sequence[str], raw_danmaku: Sequence[str] + ) -> None: + raw_videos, raw_danmaku = await self._discard_invaild_files( + raw_videos, raw_danmaku + ) + + self._files.clear() + + if self.remux_to_mp4: + self._status = ProcessStatus.REMUXING + final_videos = await self._remux_videos(raw_videos) + else: + self._status = ProcessStatus.INJECTING + await self._inject_extra_metadata(raw_videos) + final_videos = raw_danmaku + + self._files.extend(final_videos) + self._files.extend(raw_danmaku) + + self._status = ProcessStatus.WAITING + self._postprocessing_path = None + self._postprocessing_progress = None + + async def _discard_invaild_files( + self, raw_videos: Sequence[str], raw_danmaku: Sequence[str] + ) -> Tuple[List[str], List[str]]: + loop = asyncio.get_running_loop() + valid_video_set: Set[str] = await loop.run_in_executor( + None, set, filter(is_valid, raw_videos) + ) + invalid_video_set = set(raw_videos) - valid_video_set + + if invalid_video_set: + logger.info('Discarding invalid files ...') + await discard_files(invalid_video_set) + await discard_files(map(danmaku_path, invalid_video_set)) + + return list(valid_video_set), list(map(danmaku_path, valid_video_set)) + + async def _inject_extra_metadata(self, video_paths: Iterable[str]) -> None: + scheduler = ThreadPoolScheduler() + for path in video_paths: + metadata = await get_extra_metadata(path) + await self._inject_metadata(path, metadata, scheduler) + await discard_file(extra_metadata_path(path), 'DEBUG') + await self._emit('file_completed', self._live.room_id, path) + + async def _remux_videos(self, video_paths: Iterable[str]) -> List[str]: + results = [] + scheduler = ThreadPoolScheduler() + + for in_path in video_paths: + out_path = str(PurePath(in_path).with_suffix('.mp4')) + logger.info(f"Remuxing '{in_path}' to '{out_path}' ...") + + metadata_path = await make_metadata_file(in_path) + remux_result = await self._remux_video( + in_path, out_path, metadata_path, scheduler + ) + + if remux_result.is_successful(): + logger.info(f"Successfully remux '{in_path}' to '{out_path}'") + result_path = out_path + elif remux_result.is_warned(): + logger.warning('Remuxing done, but ran into problems.') + result_path = out_path + elif remux_result.is_failed: + logger.error(f"Failed to remux '{in_path}' to '{out_path}'") + result_path = in_path + else: + pass + + logger.debug(f'ffmpeg output:\n{remux_result.output}') + + if self._should_delete_source_files(remux_result): + await discard_file(in_path) + await discard_files( + [metadata_path, extra_metadata_path(in_path)], 'DEBUG' + ) + + results.append(result_path) + await self._emit('file_completed', self._live.room_id, result_path) + + return results + + def _inject_metadata( + self, + path: str, + metadata: Dict[str, Any], + scheduler: Scheduler, + ) -> Awaitable[None]: + future: asyncio.Future[None] = asyncio.Future() + self._postprocessing_path = path + + def on_next(value: InjectProgress) -> None: + self._postprocessing_progress = value + + inject_metadata( + path, + metadata, + report_progress=True, + room_id=self._live.room_id, + ).subscribe( + on_next, + lambda e: future.set_exception(e), + lambda: future.set_result(None), + scheduler=scheduler, + ) + + return future + + def _remux_video( + self, + in_path: str, + out_path: str, + metadata_path: str, + scheduler: Scheduler, + ) -> Awaitable[RemuxResult]: + future: asyncio.Future[RemuxResult] = asyncio.Future() + self._postprocessing_path = in_path + + def on_next(value: Union[RemuxProgress, RemuxResult]) -> None: + if isinstance(value, RemuxProgress): + self._postprocessing_progress = value + elif isinstance(value, RemuxResult): + future.set_result(value) + + remux_video( + in_path, + out_path, + metadata_path, + report_progress=True, + ).subscribe( + on_next, + lambda e: future.set_exception(e), + scheduler=scheduler, + ) + + return future + + def _should_delete_source_files( + self, remux_result: RemuxResult + ) -> bool: + if self.delete_source == DeleteStrategy.AUTO: + if not remux_result.is_failed(): + return True + elif self.delete_source == DeleteStrategy.NEVER: + return False + + return False diff --git a/src/blrec/postprocess/remuxer.py b/src/blrec/postprocess/remuxer.py new file mode 100644 index 0000000..11bde5f --- /dev/null +++ b/src/blrec/postprocess/remuxer.py @@ -0,0 +1,179 @@ +import os +import re +import shlex +from subprocess import Popen, PIPE +from typing import Final, List, Match, Optional, Union + +import attr +from rx import create, operators as op +from rx.subject import Subject +from rx.core import Observable +from rx.core.typing import Observer, Scheduler, Disposable +from rx.scheduler.currentthreadscheduler import CurrentThreadScheduler +from tqdm import tqdm + + +__all__ = 'VideoRemuxer', 'RemuxResult', 'remux_video' + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class RemuxProgress: + time: int + duration: int + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class RemuxResult: + return_code: int + output: str + + def is_done(self) -> bool: + return self.return_code == 0 + + def is_successful(self) -> bool: + return self.is_done() and not self.may_timestamps_incorrect() + + def is_warned(self) -> bool: + return self.is_done() and self.may_timestamps_incorrect() + + def is_failed(self) -> bool: + return not self.is_done() + + def may_timestamps_incorrect(self) -> bool: + return 'Non-monotonous DTS in output stream' in self.output + + +class VideoRemuxer: + _TIME_PATTERN: Final = re.compile( + r'(?P<hour>\d+):(?P<minute>\d+):(?P<second>\d+).(?P<millisecond>\d+)' + ) + + def __init__(self) -> None: + self._duration: int = 0 + self._progress_updates = Subject() + + @property + def progress_updates(self) -> Observable: + return self._progress_updates + + def remux( + self, + in_path: str, + out_path: str, + metadata_path: Optional[str] = None, + ) -> RemuxResult: + if metadata_path is not None: + cmd = f'ffmpeg -i "{in_path}" -i "{metadata_path}" ' \ + f'-map_metadata 1 -codec copy "{out_path}" -y' + else: + cmd = f'ffmpeg -i "{in_path}" -codec copy "{out_path}" -y' + + args = shlex.split(cmd) + out_lines: List[str] = [] + + with Popen( + args, stderr=PIPE, encoding='utf8', errors='backslashreplace' + ) as process: + assert process.stderr is not None + while True: + line = process.stderr.readline() + if not line: + if process.poll() is not None: + break + else: + continue + self._parse_line(line) + if self._should_output_line(line): + out_lines.append(line) + + if process.returncode == 0: + self._complete_progress_updates() + + return RemuxResult(process.returncode, ''.join(out_lines)) + + def _parse_line(self, line: str) -> None: + line = line.strip() + if line.startswith('frame='): + self._parse_time(line) + elif line.startswith('Duration:'): + self._parse_duration(line) + else: + pass + + def _parse_duration(self, line: str) -> None: + match = self._TIME_PATTERN.search(line) + if match is not None: + self._duration = self._calc_time(match) + self._progress_updates.on_next(RemuxProgress(0, self._duration)) + + def _parse_time(self, line: str) -> None: + match = self._TIME_PATTERN.search(line) + if match is not None: + progress = RemuxProgress(self._calc_time(match), self._duration) + self._progress_updates.on_next(progress) + + def _complete_progress_updates(self) -> None: + progress = RemuxProgress(self._duration, self._duration) + self._progress_updates.on_next(progress) + self._progress_updates.on_completed() + + def _calc_time(self, match: Match[str]) -> int: + result = match.groupdict() + return ( + int(result['hour']) * 60 * 60 * 1000 + + int(result['minute']) * 60 * 1000 + + int(result['second']) * 1000 + + int(result['millisecond']) + ) + + def _should_output_line(self, line: str) -> bool: + line = line.strip() + return not ( + line.startswith('frame=') or + line.startswith('Press [q]') + ) + + +def remux_video( + in_path: str, + out_path: str, + metadata_path: Optional[str] = None, + *, + report_progress: bool = False, +) -> Observable: + def subscribe( + observer: Observer[Union[RemuxProgress, RemuxResult]], + scheduler: Optional[Scheduler] = None, + ) -> Disposable: + _scheduler = scheduler or CurrentThreadScheduler.singleton() + + def action(scheduler, state): # type: ignore + remuxer = VideoRemuxer() + file_name = os.path.basename(in_path) + + with tqdm(desc='Remuxing', unit='ms', postfix=file_name) as pbar: + def reset(progress: RemuxProgress) -> None: + pbar.reset(progress.duration) + + def update(progress: RemuxProgress) -> None: + pbar.update(progress.time - pbar.n) + + remuxer.progress_updates.pipe(op.first()).subscribe(reset) + remuxer.progress_updates.pipe(op.skip(1)).subscribe(update) + + if report_progress: + remuxer.progress_updates.subscribe( + lambda p: observer.on_next(p) + ) + + try: + result = remuxer.remux(in_path, out_path, metadata_path) + except Exception as e: + observer.on_error(e) + else: + observer.on_next(result) + observer.on_completed() + + return _scheduler.schedule(action) + + return create(subscribe) diff --git a/src/blrec/postprocess/typing.py b/src/blrec/postprocess/typing.py new file mode 100644 index 0000000..5bdba55 --- /dev/null +++ b/src/blrec/postprocess/typing.py @@ -0,0 +1,9 @@ + +from typing import Union + + +from .remuxer import RemuxProgress +from ..flv.metadata_injector import InjectProgress + + +Progress = Union[RemuxProgress, InjectProgress] diff --git a/src/blrec/setting/__init__.py b/src/blrec/setting/__init__.py new file mode 100644 index 0000000..da04d32 --- /dev/null +++ b/src/blrec/setting/__init__.py @@ -0,0 +1,76 @@ +from .models import ( + DEFAULT_SETTINGS_PATH, + + EnvSettings, + Settings, + SettingsIn, + SettingsOut, + + HeaderOptions, + HeaderSettings, + DanmakuOptions, + DanmakuSettings, + RecorderOptions, + RecorderSettings, + PostprocessingSettings, + PostprocessingOptions, + + TaskOptions, + TaskSettings, + OutputSettings, + LoggingSettings, + SpaceSettings, + EmailSettings, + ServerchanSettings, + PushplusSettings, + NotifierSettings, + NotificationSettings, + EmailNotificationSettings, + ServerchanNotificationSettings, + PushplusNotificationSettings, + WebHookSettings, +) +from .typing import KeyOfSettings, KeySetOfSettings +from .helpers import update_settings, shadow_settings +from .setting_manager import SettingsManager + + +__all__ = ( + 'DEFAULT_SETTINGS_PATH', + + 'EnvSettings', + 'Settings', + 'SettingsIn', + 'SettingsOut', + + 'KeyOfSettings', + 'KeySetOfSettings', + + 'HeaderOptions', + 'HeaderSettings', + 'DanmakuOptions', + 'DanmakuSettings', + 'RecorderOptions', + 'RecorderSettings', + 'PostprocessingSettings', + 'PostprocessingOptions', + + 'TaskOptions', + 'TaskSettings', + 'OutputSettings', + 'LoggingSettings', + 'SpaceSettings', + 'EmailSettings', + 'ServerchanSettings', + 'PushplusSettings', + 'NotifierSettings', + 'NotificationSettings', + 'EmailNotificationSettings', + 'ServerchanNotificationSettings', + 'PushplusNotificationSettings', + 'WebHookSettings', + + 'update_settings', + 'shadow_settings', + 'SettingsManager', +) diff --git a/src/blrec/setting/helpers.py b/src/blrec/setting/helpers.py new file mode 100644 index 0000000..0d4be69 --- /dev/null +++ b/src/blrec/setting/helpers.py @@ -0,0 +1,42 @@ +from typing import TypeVar + +from pydantic.main import BaseModel + + +__all__ = 'update_settings', 'shadow_settings' + + +_T = TypeVar('_T', bound=BaseModel) + + +def update_settings(src: _T, dst: _T) -> None: + overwrite_settings(src, dst, exclude_unset=True) + + +def shadow_settings(src: _T, dst: _T) -> None: + overwrite_settings(src, dst, exclude_none=True) + + +def overwrite_settings( + src: _T, dst: _T, exclude_unset: bool = False, exclude_none: bool = False +) -> None: + # XXX Caution! the src and dst should be the same model type + assert isinstance(src, BaseModel) and isinstance(dst, BaseModel) + + fields = src.__fields_set__ if exclude_unset else src.__fields__ + + for name in fields: + if not hasattr(dst, name): + continue + value = getattr(src, name) + if exclude_none and value is None: + continue + if not isinstance(value, BaseModel): + setattr(dst, name, value) + else: + overwrite_settings( + value, + getattr(dst, name), + exclude_unset=exclude_unset, + exclude_none=exclude_none, + ) diff --git a/src/blrec/setting/models.py b/src/blrec/setting/models.py new file mode 100644 index 0000000..3c7b6d6 --- /dev/null +++ b/src/blrec/setting/models.py @@ -0,0 +1,434 @@ +from __future__ import annotations +import os +import re +import logging +from typing_extensions import Annotated +from typing import ( + ClassVar, + Collection, + Final, + List, + Optional, + TypeVar, +) + + +import toml +from pydantic import BaseModel as PydanticBaseModel +from pydantic import Field, BaseSettings, validator, PrivateAttr, DirectoryPath +from pydantic.networks import HttpUrl, EmailStr + +import typer + +from ..bili.typing import QualityNumber +from ..postprocess import DeleteStrategy +from ..logging.typing import LOG_LEVEL +from ..utils.string import camel_case +from ..path.helpers import file_exists, create_file + + +logger = logging.getLogger(__name__) + + +__all__ = ( + 'DEFAULT_SETTINGS_PATH', + + 'EnvSettings', + 'Settings', + 'SettingsIn', + 'SettingsOut', + + 'HeaderOptions', + 'HeaderSettings', + 'DanmakuOptions', + 'DanmakuSettings', + 'RecorderOptions', + 'RecorderSettings', + 'PostprocessingSettings', + 'PostprocessingOptions', + + 'TaskOptions', + 'TaskSettings', + 'OutputSettings', + 'LoggingSettings', + 'SpaceSettings', + 'EmailSettings', + 'ServerchanSettings', + 'PushplusSettings', + 'NotifierSettings', + 'NotificationSettings', + 'EmailNotificationSettings', + 'ServerchanNotificationSettings', + 'PushplusNotificationSettings', + 'WebHookSettings', +) + + +DEFAULT_SETTINGS_PATH: Final[str] = '~/.blrec/settings.toml' + + +def settings_file_factory() -> str: + path = os.path.abspath(os.path.expanduser(DEFAULT_SETTINGS_PATH)) + if not file_exists(path): + create_file(path) + typer.secho( + f"Created setting file: '{path}'", + fg=typer.colors.BRIGHT_MAGENTA, + bold=True, + ) + return path + + +class EnvSettings(BaseSettings): + settings_file: Annotated[ + str, Field(env='config', default_factory=settings_file_factory) + ] + out_dir: Optional[str] = None + api_key: Annotated[ + Optional[str], + Field(min_length=8, max_length=80, regex=r'[a-zA-Z\d\-]{8,80}'), + ] = None + + class Config: + anystr_strip_whitespace = True + + +_V = TypeVar('_V') + + +class BaseModel(PydanticBaseModel): + class Config: + extra = 'forbid' + validate_assignment = True + anystr_strip_whitespace = True + allow_population_by_field_name = True + + @classmethod + def alias_generator(cls, string: str) -> str: + return camel_case(string) + + @staticmethod + def _validate_with_collection( + value: _V, allowed_values: Collection[_V] + ) -> None: + if value not in allowed_values: + raise ValueError( + f'the value {value} does not be allowed, ' + f'must be one of {", ".join(map(str, allowed_values))}' + ) + + +class HeaderOptions(BaseModel): + user_agent: Optional[str] + cookie: Optional[str] + + +class HeaderSettings(HeaderOptions): + user_agent: str = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ' \ + 'AppleWebKit/537.36 (KHTML, like Gecko) ' \ + 'Chrome/89.0.4389.114 Safari/537.36' + cookie: str = '' + + +class DanmakuOptions(BaseModel): + danmu_uname: Optional[bool] + + +class DanmakuSettings(DanmakuOptions): + danmu_uname: bool = False + + +class RecorderOptions(BaseModel): + quality_number: Optional[QualityNumber] + read_timeout: Optional[int] # seconds + buffer_size: Annotated[ # bytes + Optional[int], Field(ge=4096, le=1024 ** 2 * 512, multiple_of=2) + ] + + @validator('read_timeout') + def _validate_read_timeout(cls, value: Optional[int]) -> Optional[int]: + if value is not None: + allowed_values = frozenset((3, 5, 10, 30, 60, 180, 300, 600)) + cls._validate_with_collection(value, allowed_values) + return value + + +class RecorderSettings(RecorderOptions): + quality_number: QualityNumber = 20000 # 4K, the highest quality. + read_timeout: int = 3 + buffer_size: Annotated[ + int, Field(ge=4096, le=1024 ** 2 * 512, multiple_of=2) + ] = 8192 + + +class PostprocessingOptions(BaseModel): + remux_to_mp4: Optional[bool] + delete_source: Optional[DeleteStrategy] + + +class PostprocessingSettings(PostprocessingOptions): + remux_to_mp4: bool = False + delete_source: DeleteStrategy = DeleteStrategy.AUTO + + +class OutputOptions(BaseModel): + path_template: Optional[str] + filesize_limit: Optional[int] # file size in bytes + duration_limit: Optional[int] # duration in seconds + + @validator('path_template') + def _validate_path_template(cls, value: Optional[str]) -> Optional[str]: + if value is not None: + pattern = r'''^ + (?: + [^\\/:*?"<>|\t\n\r\f\v\{\}]*? + \{ + (?: + roomid|uname|title|area|parent_area| + year|month|day|hour|minute|second + ) + \} + [^\\/:*?"<>|\t\n\r\f\v\{\}]*? + )+? + (?: + / + (?: + [^\\/:*?"<>|\t\n\r\f\v\{\}]*? + \{ + (?: + roomid|uname|title|area|parent_area| + year|month|day|hour|minute|second + ) + \} + [^\\/:*?"<>|\t\n\r\f\v\{\}]*? + )+? + )* + $''' + if not re.fullmatch(pattern, value, re.VERBOSE): + raise ValueError(f"invalid path template: '{value}'") + return value + + @validator('filesize_limit') + def _validate_filesize_limit(cls, value: Optional[int]) -> Optional[int]: + # allowed 1 ~ 20 GB, 0 indicates not limit. + if value is not None: + allowed_values = frozenset(1024 ** 3 * i for i in range(0, 21)) + cls._validate_with_collection(value, allowed_values) + return value + + @validator('duration_limit') + def _validate_duration_limit(cls, value: Optional[int]) -> Optional[int]: + # allowed 1 ~ 24 hours, 0 indicates not limit. + if value is not None: + allowed_values = frozenset(3600 * i for i in range(0, 25)) + cls._validate_with_collection(value, allowed_values) + return value + + +class OutputSettings(OutputOptions): + out_dir: Annotated[str, DirectoryPath] = '.' + path_template: str = ( + '{roomid} - {uname}/' + 'blive_{roomid}_{year}-{month}-{day}-{hour}{minute}{second}' + ) + filesize_limit: int = 0 # no limit by default + duration_limit: int = 0 # no limit by default + + @validator('out_dir') + def _validate_dir(cls, path: str) -> str: + if not os.path.isdir(os.path.expanduser(path)): + raise ValueError(f"'{path}' not a directory") + return path + + +class TaskOptions(BaseModel): + output: OutputOptions = OutputOptions() + header: HeaderOptions = HeaderOptions() + danmaku: DanmakuOptions = DanmakuOptions() + recorder: RecorderOptions = RecorderOptions() + postprocessing: PostprocessingOptions = PostprocessingOptions() + + @classmethod + def from_settings(cls, settings: TaskSettings) -> TaskOptions: + return cls(**settings.dict( + include={ + 'output', 'header', 'danmaku', 'recorder', 'postprocessing' + } + )) + + +class TaskSettings(TaskOptions): + # must use the real room id rather than the short room id! + room_id: Annotated[int, Field(ge=1, le=99999999)] + enable_monitor: bool = True + enable_recorder: bool = True + + +class LoggingSettings(BaseModel): + console_log_level: LOG_LEVEL = 'INFO' + max_bytes: Annotated[ + int, Field(ge=1024 ** 2, le=1024 ** 2 * 10, multiple_of=1024 ** 2) + ] = 1024 ** 2 * 10 # allowed 1 ~ 10 MB + backup_count: Annotated[int, Field(ge=1, le=30)] = 30 + + +class SpaceSettings(BaseModel): + check_interval: int = 60 # 1 minutes + space_threshold: int = 1024 ** 3 # 1 GB + recycle_records: bool = False + + @validator('check_interval') + def _validate_interval(cls, value: int) -> int: + allowed_values = frozenset(60 * i for i in (1, 3, 5, 10)) + cls._validate_with_collection(value, allowed_values) + return value + + @validator('space_threshold') + def _validate_threshold(cls, value: int) -> int: + allowed_values = frozenset(1024 ** 3 * i for i in (1, 3, 5, 10)) + cls._validate_with_collection(value, allowed_values) + return value + + +class EmailSettings(BaseModel): + src_addr: Annotated[str, EmailStr] = '' + dst_addr: Annotated[str, EmailStr] = '' + auth_code: str = '' + smtp_host: str = 'smtp.163.com' + smtp_port: int = 465 + + +class ServerchanSettings(BaseModel): + sendkey: str = '' + + @validator('sendkey') + def _validate_sendkey(cls, value: str) -> str: + if value != '' and not re.fullmatch(r'[a-zA-Z\d]+', value): + raise ValueError('sendkey is invalid') + return value + + +class PushplusSettings(BaseModel): + token: str = '' + topic: str = '' + + @validator('token') + def _validate_token(cls, value: str) -> str: + if value != '' and not re.fullmatch(r'[a-z\d]{32}', value): + raise ValueError('token is invalid') + return value + + +class NotifierSettings(BaseModel): + enabled: bool = False + + +class NotificationSettings(BaseModel): + notify_began: bool = True + notify_ended: bool = True + notify_error: bool = True + notify_space: bool = True + + +class EmailNotificationSettings( + EmailSettings, NotifierSettings, NotificationSettings +): + pass + + +class ServerchanNotificationSettings( + ServerchanSettings, NotifierSettings, NotificationSettings +): + pass + + +class PushplusNotificationSettings( + PushplusSettings, NotifierSettings, NotificationSettings +): + pass + + +class WebHookEventSettings(BaseModel): + live_began: bool = True + live_ended: bool = True + room_change: bool = True + space_no_enough: bool = True + file_completed: bool = True + error_occurred: bool = True + + +class WebHookSettings(WebHookEventSettings): + url: Annotated[str, HttpUrl] + + +class Settings(BaseModel): + _MAX_TASKS: ClassVar[int] = 100 + _MAX_WEBHOOKS: ClassVar[int] = 50 + + _path: str = PrivateAttr() + version: str = '1.0' + + tasks: Annotated[List[TaskSettings], Field(max_items=100)] = [] + output: OutputSettings = OutputSettings() + logging: LoggingSettings = LoggingSettings() + header: HeaderSettings = HeaderSettings() + danmaku: DanmakuSettings = DanmakuSettings() + recorder: RecorderSettings = RecorderSettings() + postprocessing: PostprocessingSettings = PostprocessingSettings() + space: SpaceSettings = SpaceSettings() + email_notification: EmailNotificationSettings = EmailNotificationSettings() + serverchan_notification: ServerchanNotificationSettings = \ + ServerchanNotificationSettings() + pushplus_notification: PushplusNotificationSettings = \ + PushplusNotificationSettings() + webhooks: Annotated[List[WebHookSettings], Field(max_items=50)] = [] + + @classmethod + def load(cls, path: str) -> Settings: + settings = cls.parse_obj(toml.load(path)) + settings._path = path + return settings + + def update_from_env_settings(self, env_settings: EnvSettings) -> None: + if (out_dir := env_settings.out_dir) is not None: + self.output.out_dir = out_dir + + def dump(self) -> None: + assert self._path + with open(self._path, 'wt', encoding='utf8') as file: + toml.dump(self.dict(exclude_none=True), file) + + @validator('tasks') + def _validate_tasks(cls, tasks: List[TaskSettings]) -> List[TaskSettings]: + if len(tasks) >= cls._MAX_TASKS: + raise ValueError(f'Out of max tasks limits: {cls._MAX_TASKS}') + return tasks + + @validator('webhooks') + def _validate_webhooks( + cls, webhooks: List[WebHookSettings] + ) -> List[WebHookSettings]: + if len(webhooks) >= cls._MAX_WEBHOOKS: + raise ValueError( + f'Out of max webhooks limits: {cls._MAX_WEBHOOKS}' + ) + return webhooks + + +class SettingsIn(BaseModel): + output: Optional[OutputSettings] = None + logging: Optional[LoggingSettings] = None + header: Optional[HeaderSettings] = None + danmaku: Optional[DanmakuSettings] = None + recorder: Optional[RecorderSettings] = None + postprocessing: Optional[PostprocessingSettings] = None + space: Optional[SpaceSettings] = None + email_notification: Optional[EmailNotificationSettings] = None + serverchan_notification: Optional[ServerchanNotificationSettings] = None + pushplus_notification: Optional[PushplusNotificationSettings] = None + webhooks: Optional[List[WebHookSettings]] = None + + +class SettingsOut(SettingsIn): + version: Optional[str] = None + tasks: Optional[List[TaskSettings]] = None diff --git a/src/blrec/setting/setting_manager.py b/src/blrec/setting/setting_manager.py new file mode 100644 index 0000000..676c57f --- /dev/null +++ b/src/blrec/setting/setting_manager.py @@ -0,0 +1,359 @@ +from __future__ import annotations +import os +import asyncio +from typing import Optional, TYPE_CHECKING, cast + +from .helpers import update_settings, shadow_settings +from .models import ( + OutputOptions, + Settings, + SettingsIn, + SettingsOut, + + HeaderOptions, + DanmakuOptions, + RecorderOptions, + PostprocessingOptions, + + TaskOptions, + TaskSettings, + NotifierSettings, + NotificationSettings, +) +from .typing import KeySetOfSettings +from ..webhook import WebHook +from ..notification import Notifier, EmailService, Serverchan, Pushplus +from ..logging import configure_logger +from ..exception import NotFoundError +if TYPE_CHECKING: + from ..application import Application + + +class SettingsManager: + def __init__(self, app: Application, settings: Settings) -> None: + self._app = app + self._settings = settings + + def get_settings( + self, + include: Optional[KeySetOfSettings] = None, + exclude: Optional[KeySetOfSettings] = None, + ) -> SettingsOut: + return SettingsOut( + **self._settings.dict(include=include, exclude=exclude) + ) + + async def change_settings(self, settings: SettingsIn) -> SettingsOut: + changed = False + + for name in settings.__fields_set__: + src_sub_settings = getattr(settings, name) + dst_sub_settings = getattr(self._settings, name) + + if src_sub_settings == dst_sub_settings: + continue + + if isinstance(src_sub_settings, list): + assert isinstance(dst_sub_settings, list) + setattr(self._settings, name, src_sub_settings) + else: + update_settings(src_sub_settings, dst_sub_settings) + changed = True + + func = getattr(self, f'apply_{name}_settings') + if asyncio.iscoroutinefunction(func): + await func() + else: + func() + + if changed: + await self.dump_settings() + + return self.get_settings( + cast(KeySetOfSettings, settings.__fields_set__) + ) + + def get_task_options(self, room_id: int) -> TaskOptions: + if (settings := self.find_task_settings(room_id)): + return TaskOptions.from_settings(settings) + raise NotFoundError(f'task settings of room {room_id} not found') + + async def change_task_options( + self, + room_id: int, + options: TaskOptions, + ) -> TaskOptions: + settings = self.find_task_settings(room_id) + assert settings is not None + + changed = False + + for name in options.__fields_set__: + src_opts = getattr(options, name) + dst_opts = getattr(settings, name) + + if src_opts == dst_opts: + continue + + update_settings(src_opts, dst_opts) + changed = True + + func = getattr(self, f'apply_task_{name}_settings') + if asyncio.iscoroutinefunction(func): + await func(room_id, dst_opts) + else: + func(room_id, dst_opts) + + if changed: + await self.dump_settings() + + return TaskOptions.from_settings(settings) + + async def dump_settings(self) -> None: + loop = asyncio.get_running_loop() + await loop.run_in_executor(None, self._settings.dump) + + def has_task_settings(self, room_id: int) -> bool: + return self.find_task_settings(room_id) is not None + + def find_task_settings(self, room_id: int) -> Optional[TaskSettings]: + for settings in self._settings.tasks: + if settings.room_id == room_id: + return settings + return None + + async def add_task_settings(self, room_id: int) -> TaskSettings: + settings = TaskSettings(room_id=room_id) + self._settings.tasks = [*self._settings.tasks, settings] + await self.dump_settings() + return settings.copy(deep=True) + + async def remove_task_settings(self, room_id: int) -> None: + settings = self.find_task_settings(room_id) + if settings is None: + raise NotFoundError(f"The room {room_id} is not existed") + self._settings.tasks.remove(settings) + await self.dump_settings() + + async def remove_all_task_settings(self) -> None: + self._settings.tasks.clear() + await self.dump_settings() + + async def mark_task_enabled(self, room_id: int) -> None: + settings = self.find_task_settings(room_id) + assert settings is not None + settings.enable_monitor = True + settings.enable_recorder = True + await self.dump_settings() + + async def mark_task_disabled(self, room_id: int) -> None: + settings = self.find_task_settings(room_id) + assert settings is not None + settings.enable_monitor = False + settings.enable_recorder = False + await self.dump_settings() + + async def mark_all_tasks_enabled(self) -> None: + for settings in self._settings.tasks: + settings.enable_monitor = True + settings.enable_recorder = True + await self.dump_settings() + + async def mark_all_tasks_disabled(self) -> None: + for settings in self._settings.tasks: + settings.enable_monitor = False + settings.enable_recorder = False + await self.dump_settings() + + async def mark_task_recorder_enabled(self, room_id: int) -> None: + settings = self.find_task_settings(room_id) + assert settings is not None + settings.enable_recorder = True + await self.dump_settings() + + async def mark_task_recorder_disabled(self, room_id: int) -> None: + settings = self.find_task_settings(room_id) + assert settings is not None + settings.enable_recorder = False + await self.dump_settings() + + async def mark_all_task_recorders_enabled(self) -> None: + for settings in self._settings.tasks: + settings.enable_recorder = True + await self.dump_settings() + + async def mark_all_task_recorders_disabled(self) -> None: + for settings in self._settings.tasks: + settings.enable_recorder = False + await self.dump_settings() + + async def apply_task_header_settings( + self, + room_id: int, + options: HeaderOptions, + *, + update_session: bool = True, + ) -> None: + final_settings = self._settings.header.copy() + shadow_settings(options, final_settings) + await self._app._task_manager.apply_task_header_settings( + room_id, final_settings, update_session=update_session + ) + + def apply_task_danmaku_settings( + self, + room_id: int, + options: DanmakuOptions, + ) -> None: + final_settings = self._settings.danmaku.copy() + shadow_settings(options, final_settings) + self._app._task_manager.apply_task_danmaku_settings( + room_id, final_settings + ) + + def apply_task_recorder_settings( + self, + room_id: int, + options: RecorderOptions, + ) -> None: + final_settings = self._settings.recorder.copy() + shadow_settings(options, final_settings) + self._app._task_manager.apply_task_recorder_settings( + room_id, final_settings + ) + + def apply_task_output_settings( + self, + room_id: int, + options: OutputOptions, + ) -> None: + final_settings = self._settings.output.copy() + shadow_settings(options, final_settings) + self._app._task_manager.apply_task_output_settings( + room_id, final_settings + ) + + def apply_task_postprocessing_settings( + self, + room_id: int, + options: PostprocessingOptions, + ) -> None: + final_settings = self._settings.postprocessing.copy() + shadow_settings(options, final_settings) + self._app._task_manager.apply_task_postprocessing_settings( + room_id, final_settings + ) + + async def apply_output_settings(self) -> None: + for settings in self._settings.tasks: + self.apply_task_output_settings(settings.room_id, settings.output) + + out_dir = self._settings.output.out_dir + self._app._space_monitor.path = out_dir + self._app._space_reclaimer.path = out_dir + + prev_out_dir = self._app._out_dir + self._app._out_dir = out_dir + + if not os.path.samefile(out_dir, prev_out_dir): + self.apply_logging_settings() + + def apply_logging_settings(self) -> None: + configure_logger( + self._app._out_dir, + console_log_level=self._settings.logging.console_log_level, + max_bytes=self._settings.logging.max_bytes, + backup_count=self._settings.logging.backup_count, + ) + + async def apply_header_settings(self) -> None: + for settings in self._settings.tasks: + await self.apply_task_header_settings( + settings.room_id, settings.header + ) + + def apply_danmaku_settings(self) -> None: + for settings in self._settings.tasks: + self.apply_task_danmaku_settings( + settings.room_id, settings.danmaku + ) + + def apply_recorder_settings(self) -> None: + for settings in self._settings.tasks: + self.apply_task_recorder_settings( + settings.room_id, settings.recorder + ) + + def apply_postprocessing_settings(self) -> None: + for settings in self._settings.tasks: + self.apply_task_postprocessing_settings( + settings.room_id, settings.postprocessing + ) + + def apply_space_settings(self) -> None: + self.apply_space_monitor_settings() + self.apply_space_reclaimer_settings() + + def apply_space_monitor_settings(self) -> None: + settings = self._settings.space + self._app._space_monitor.check_interval = settings.check_interval + self._app._space_monitor.space_threshold = settings.space_threshold + + def apply_space_reclaimer_settings(self) -> None: + settings = self._settings.space + self._app._space_reclaimer.recycle_records = settings.recycle_records + + def apply_email_notification_settings(self) -> None: + notifier = self._app._email_notifier + settings = self._settings.email_notification + self._apply_email_settings(notifier.provider) + self._apply_notifier_settings(notifier, settings) + self._apply_notification_settings(notifier, settings) + + def apply_serverchan_notification_settings(self) -> None: + notifier = self._app._serverchan_notifier + settings = self._settings.serverchan_notification + self._apply_serverchan_settings(notifier.provider) + self._apply_notifier_settings(notifier, settings) + self._apply_notification_settings(notifier, settings) + + def apply_pushplus_notification_settings(self) -> None: + notifier = self._app._pushplus_notifier + settings = self._settings.pushplus_notification + self._apply_pushplus_settings(notifier.provider) + self._apply_notifier_settings(notifier, settings) + self._apply_notification_settings(notifier, settings) + + def apply_webhooks_settings(self) -> None: + webhooks = [WebHook.from_settings(s) for s in self._settings.webhooks] + self._app._webhook_emitter.webhooks = webhooks + + def _apply_email_settings(self, email_service: EmailService) -> None: + email_service.src_addr = self._settings.email_notification.src_addr + email_service.dst_addr = self._settings.email_notification.dst_addr + email_service.auth_code = self._settings.email_notification.auth_code + email_service.smtp_host = self._settings.email_notification.smtp_host + email_service.smtp_port = self._settings.email_notification.smtp_port + + def _apply_serverchan_settings(self, serverchan: Serverchan) -> None: + serverchan.sendkey = self._settings.serverchan_notification.sendkey + + def _apply_pushplus_settings(self, pushplus: Pushplus) -> None: + pushplus.token = self._settings.pushplus_notification.token + pushplus.topic = self._settings.pushplus_notification.topic + + def _apply_notifier_settings( + self, notifier: Notifier, settings: NotifierSettings + ) -> None: + if settings.enabled: + notifier.enable() + else: + notifier.disable() + + def _apply_notification_settings( + self, notifier: Notifier, settings: NotificationSettings + ) -> None: + notifier.notify_began = settings.notify_began + notifier.notify_ended = settings.notify_ended + notifier.notify_error = settings.notify_error + notifier.notify_space = settings.notify_space diff --git a/src/blrec/setting/typing.py b/src/blrec/setting/typing.py new file mode 100644 index 0000000..ae219f6 --- /dev/null +++ b/src/blrec/setting/typing.py @@ -0,0 +1,20 @@ +from typing import AbstractSet, Literal + + +KeyOfSettings = Literal[ + 'version', + 'tasks', + 'output', + 'logging', + 'header', + 'danmaku', + 'recorder', + 'postprocessing', + 'space', + 'email_notification', + 'serverchan_notification', + 'pushplus_notification', + 'webhooks', +] + +KeySetOfSettings = AbstractSet[KeyOfSettings] diff --git a/src/blrec/task/__init__.py b/src/blrec/task/__init__.py new file mode 100644 index 0000000..cbeddaf --- /dev/null +++ b/src/blrec/task/__init__.py @@ -0,0 +1,13 @@ +from .task_manager import RecordTaskManager +from .models import TaskStatus, TaskParam, FileDetail, RunningStatus, TaskData + + +__all__ = ( + 'RecordTaskManager', + + 'TaskStatus', + 'TaskParam', + 'TaskData', + 'FileDetail', + 'RunningStatus', +) diff --git a/src/blrec/task/models.py b/src/blrec/task/models.py new file mode 100644 index 0000000..83736ed --- /dev/null +++ b/src/blrec/task/models.py @@ -0,0 +1,76 @@ +from __future__ import annotations +import os +from enum import Enum +from typing import Optional + +import attr + +from ..bili.models import RoomInfo, UserInfo +from ..bili.typing import QualityNumber +from ..postprocess import DeleteStrategy +from ..postprocess.typing import Progress + + +class RunningStatus(str, Enum): + STOPPED = 'stopped' + WAITING = 'waiting' + RECORDING = 'recording' + REMUXING = 'remuxing' + INJECTING = 'injecting' + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class TaskStatus: + monitor_enabled: bool + recorder_enabled: bool + running_status: RunningStatus + elapsed: float # time elapsed + data_count: int # Number of Bytes in total + data_rate: float # Number of Bytes per second + danmu_count: int # Number of Danmu in total + danmu_rate: float # Number of Danmu per minutes + real_quality_number: QualityNumber + postprocessing_path: Optional[str] = None + postprocessing_progress: Optional[Progress] = None + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class TaskParam: + # OutputSettings + out_dir: str + path_template: str + filesize_limit: int + duration_limit: int + # HeaderSettings + user_agent: str + cookie: str + # DanmakuSettings + danmu_uname: bool + # RecorderSettings + quality_number: QualityNumber + read_timeout: int + buffer_size: int + # PostprocessingOptions + remux_to_mp4: bool + delete_source: DeleteStrategy + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class TaskData: + user_info: UserInfo + room_info: RoomInfo + task_status: TaskStatus + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class FileDetail: + exists: bool + path: str + size: int + + @classmethod + def from_path(cls, path: str) -> FileDetail: + try: + return cls(True, path, os.path.getsize(path)) + except FileNotFoundError: + return cls(False, path, 0) diff --git a/src/blrec/task/task.py b/src/blrec/task/task.py new file mode 100644 index 0000000..163e6d2 --- /dev/null +++ b/src/blrec/task/task.py @@ -0,0 +1,365 @@ +import logging +from typing import List, Optional + + +from .models import RunningStatus, TaskStatus +from ..bili.live import Live +from ..bili.models import RoomInfo, UserInfo +from ..bili.danmaku_client import DanmakuClient +from ..bili.live_monitor import LiveMonitor +from ..bili.typing import QualityNumber +from ..core import Recorder +from ..postprocess import Postprocessor, ProcessStatus, DeleteStrategy +from ..event.event_submitters import ( + LiveEventSubmitter, PostprocessorEventSubmitter +) +from ..logging.room_id import aio_task_with_room_id + + +__all__ = 'RecordTask', + + +logger = logging.getLogger(__name__) + + +class RecordTask: + def __init__( + self, + room_id: int, + *, + out_dir: str = '', + path_template: str = '', + cookie: str = '', + user_agent: str = '', + danmu_uname: bool = False, + buffer_size: Optional[int] = None, + read_timeout: Optional[int] = None, + filesize_limit: int = 0, + duration_limit: int = 0, + remux_to_mp4: bool = False, + delete_source: DeleteStrategy = DeleteStrategy.AUTO, + ) -> None: + super().__init__() + + self._live = Live(room_id, user_agent, cookie) + + self._room_id = room_id + self._out_dir = out_dir + self._path_template = path_template + self._cookie = cookie + self._user_agent = user_agent + self._danmu_uname = danmu_uname + self._buffer_size = buffer_size + self._read_timeout = read_timeout + self._filesize_limit = filesize_limit + self._duration_limit = duration_limit + self._remux_to_mp4 = remux_to_mp4 + self._delete_source = delete_source + + self._ready = False + self._monitor_enabled: bool = False + self._recorder_enabled: bool = False + + @property + def ready(self) -> bool: + return self._ready + + @property + def room_info(self) -> RoomInfo: + return self._live.room_info + + @property + def user_info(self) -> UserInfo: + return self._live.user_info + + @property + def running_status(self) -> RunningStatus: + if not self._monitor_enabled and not self._recorder_enabled: + return RunningStatus.STOPPED + elif self._recorder.recording: + return RunningStatus.RECORDING + elif self._postprocessor.status == ProcessStatus.REMUXING: + return RunningStatus.REMUXING + elif self._postprocessor.status == ProcessStatus.INJECTING: + return RunningStatus.INJECTING + else: + return RunningStatus.WAITING + + @property + def monitor_enabled(self) -> bool: + return self._monitor_enabled + + @property + def recorder_enabled(self) -> bool: + return self._recorder_enabled + + @property + def status(self) -> TaskStatus: + return TaskStatus( + monitor_enabled=self.monitor_enabled, + recorder_enabled=self.recorder_enabled, + running_status=self.running_status, + elapsed=self._recorder.elapsed, + data_count=self._recorder.data_count, + data_rate=self._recorder.data_rate, + danmu_count=self._recorder.danmu_count, + danmu_rate=self._recorder.danmu_rate, + real_quality_number=self._recorder.real_quality_number, + postprocessing_path=self._postprocessor.postprocessing_path, + postprocessing_progress=( + self._postprocessor.postprocessing_progress + ), + ) + + @property + def files(self) -> List[str]: + if self.running_status == RunningStatus.STOPPED: + return [] + if ( + self.running_status == RunningStatus.RECORDING or + not self._postprocessor.enabled + ): + return [ + *self._recorder.get_video_files(), + *self._recorder.get_danmaku_files(), + ] + return [*self._postprocessor.get_final_files()] + + @property + def user_agent(self) -> str: + return self._live.user_agent + + @user_agent.setter + def user_agent(self, value: str) -> None: + self._live.user_agent = value + + @property + def cookie(self) -> str: + return self._live.cookie + + @cookie.setter + def cookie(self, value: str) -> None: + self._live.cookie = value + + @property + def danmu_uname(self) -> bool: + return self._recorder.danmu_uname + + @danmu_uname.setter + def danmu_uname(self, value: bool) -> None: + self._recorder.danmu_uname = value + + @property + def quality_number(self) -> QualityNumber: + return self._recorder.quality_number + + @quality_number.setter + def quality_number(self, value: QualityNumber) -> None: + self._recorder.quality_number = value + + @property + def real_quality_number(self) -> QualityNumber: + return self._recorder.real_quality_number + + @property + def buffer_size(self) -> int: + return self._recorder.buffer_size + + @buffer_size.setter + def buffer_size(self, value: int) -> None: + self._recorder.buffer_size = value + + @property + def read_timeout(self) -> int: + return self._recorder.read_timeout + + @read_timeout.setter + def read_timeout(self, value: int) -> None: + self._recorder.read_timeout = value + + @property + def out_dir(self) -> str: + return self._recorder.out_dir + + @out_dir.setter + def out_dir(self, value: str) -> None: + self._recorder.out_dir = value + + @property + def path_template(self) -> str: + return self._recorder.path_template + + @path_template.setter + def path_template(self, value: str) -> None: + self._recorder.path_template = value + + @property + def filesize_limit(self) -> int: + return self._recorder.filesize_limit + + @filesize_limit.setter + def filesize_limit(self, value: int) -> None: + self._recorder.filesize_limit = value + + @property + def duration_limit(self) -> int: + return self._recorder.duration_limit + + @duration_limit.setter + def duration_limit(self, value: int) -> None: + self._recorder.duration_limit = value + + @property + def remux_to_mp4(self) -> bool: + return self._postprocessor.remux_to_mp4 + + @remux_to_mp4.setter + def remux_to_mp4(self, value: bool) -> None: + self._postprocessor.remux_to_mp4 = value + + @property + def delete_source(self) -> DeleteStrategy: + return self._postprocessor.delete_source + + @delete_source.setter + def delete_source(self, value: DeleteStrategy) -> None: + self._postprocessor.delete_source = value + + @aio_task_with_room_id + async def setup(self) -> None: + await self._live.init() + await self._setup() + self._ready = True + + @aio_task_with_room_id + async def destroy(self) -> None: + await self._destroy() + await self._live.deinit() + self._ready = False + + @aio_task_with_room_id + async def enable_monitor(self) -> None: + if self._monitor_enabled: + return + self._monitor_enabled = True + + await self._danmaku_client.start() + self._live_monitor.enable() + + @aio_task_with_room_id + async def disable_monitor(self) -> None: + if not self._monitor_enabled: + return + self._monitor_enabled = False + + self._live_monitor.disable() + await self._danmaku_client.stop() + + @aio_task_with_room_id + async def enable_recorder(self) -> None: + if self._recorder_enabled: + return + self._recorder_enabled = True + + self._postprocessor.enable() + await self._recorder.start() + + @aio_task_with_room_id + async def disable_recorder(self, force: bool = False) -> None: + if not self._recorder_enabled: + return + self._recorder_enabled = False + + if force: + self._postprocessor.disable() + await self._recorder.stop() + else: + await self._recorder.stop() + await self._postprocessor.wait() + self._postprocessor.disable() + + async def update_info(self) -> None: + await self._live.update_info() + + @aio_task_with_room_id + async def update_session(self) -> None: + if self._monitor_enabled: + await self._danmaku_client.stop() + + await self._live.deinit() + await self._live.init() + self._danmaku_client.session = self._live.session + + if self._monitor_enabled: + await self._danmaku_client.start() + + async def _setup(self) -> None: + self._setup_danmaku_client() + self._setup_live_monitor() + self._setup_live_event_submitter() + self._setup_recorder() + self._setup_postprocessor() + self._setup_postprocessor_event_submitter() + + def _setup_danmaku_client(self) -> None: + self._danmaku_client = DanmakuClient( + self._live.session, self._live.room_id + ) + + def _setup_live_monitor(self) -> None: + self._live_monitor = LiveMonitor(self._danmaku_client, self._live) + + def _setup_live_event_submitter(self) -> None: + self._live_event_submitter = LiveEventSubmitter(self._live_monitor) + + def _setup_recorder(self) -> None: + self._recorder = Recorder( + self._live, + self._danmaku_client, + self._live_monitor, + self._out_dir, + self._path_template, + buffer_size=self._buffer_size, + read_timeout=self._read_timeout, + danmu_uname=self._danmu_uname, + filesize_limit=self._filesize_limit, + duration_limit=self._duration_limit, + ) + + def _setup_postprocessor_event_submitter(self) -> None: + self._postprocessor_event_submitter = \ + PostprocessorEventSubmitter(self._postprocessor) + + def _setup_postprocessor(self) -> None: + self._postprocessor = Postprocessor( + self._live, + self._recorder, + remux_to_mp4=self._remux_to_mp4, + delete_source=self._delete_source, + ) + + async def _destroy(self) -> None: + self._destroy_postprocessor_event_submitter() + self._destroy_postprocessor() + self._destroy_recorder() + self._destroy_live_event_submitter() + self._destroy_live_monitor() + self._destroy_danmaku_client() + + def _destroy_danmaku_client(self) -> None: + del self._danmaku_client + + def _destroy_live_monitor(self) -> None: + del self._live_monitor + + def _destroy_live_event_submitter(self) -> None: + del self._live_event_submitter + + def _destroy_recorder(self) -> None: + del self._recorder + + def _destroy_postprocessor_event_submitter(self) -> None: + del self._postprocessor_event_submitter + + def _destroy_postprocessor(self) -> None: + del self._postprocessor diff --git a/src/blrec/task/task_manager.py b/src/blrec/task/task_manager.py new file mode 100644 index 0000000..2ab38bf --- /dev/null +++ b/src/blrec/task/task_manager.py @@ -0,0 +1,251 @@ +from __future__ import annotations +import asyncio +from typing import Dict, Iterator, TYPE_CHECKING + +from blrec.setting.models import OutputSettings + +from .task import RecordTask +from .models import TaskData, TaskParam, FileDetail +from ..exception import NotFoundError +if TYPE_CHECKING: + from ..setting import SettingsManager +from ..setting import ( + HeaderSettings, + DanmakuSettings, + RecorderSettings, + PostprocessingSettings, + TaskSettings, +) + + +__all__ = 'RecordTaskManager', + + +class RecordTaskManager: + def __init__(self, settings_manager: SettingsManager) -> None: + self._settings_manager = settings_manager + self._tasks: Dict[int, RecordTask] = {} + import threading + self._lock = threading.Lock() + + async def load_all_tasks(self) -> None: + settings_list = self._settings_manager.get_settings({'tasks'}).tasks + assert settings_list is not None + + for settings in settings_list: + await self.add_task(settings) + + async def destroy_all_tasks(self) -> None: + if not self._tasks: + return + await asyncio.wait([t.destroy() for t in self._tasks.values()]) + self._tasks.clear() + + def has_task(self, room_id: int) -> bool: + return room_id in self._tasks + + async def add_task(self, settings: TaskSettings) -> None: + task = RecordTask(settings.room_id) + self._tasks[settings.room_id] = task + + await self._settings_manager.apply_task_header_settings( + settings.room_id, settings.header, update_session=False + ) + await task.setup() + + self._settings_manager.apply_task_output_settings( + settings.room_id, settings.output + ) + self._settings_manager.apply_task_danmaku_settings( + settings.room_id, settings.danmaku + ) + self._settings_manager.apply_task_recorder_settings( + settings.room_id, settings.recorder + ) + self._settings_manager.apply_task_postprocessing_settings( + settings.room_id, settings.postprocessing + ) + + if settings.enable_monitor: + await task.enable_monitor() + if settings.enable_recorder: + await task.enable_recorder() + + async def remove_task(self, room_id: int) -> None: + task = self._get_task(room_id) + await task.disable_recorder(force=True) + await task.disable_monitor() + await task.destroy() + del self._tasks[room_id] + + async def remove_all_tasks(self) -> None: + coros = [self.remove_task(i) for i in self._tasks] + if coros: + await asyncio.wait(coros) + + async def start_task(self, room_id: int) -> None: + task = self._get_task(room_id) + await task.update_info() + await task.enable_monitor() + await task.enable_recorder() + + async def stop_task(self, room_id: int, force: bool = False) -> None: + task = self._get_task(room_id) + await task.disable_recorder(force) + await task.disable_monitor() + + async def start_all_tasks(self) -> None: + await self.update_all_task_infos() + await self.enable_all_task_monitors() + await self.enable_all_task_recorders() + + async def stop_all_tasks(self, force: bool = False) -> None: + await self.disable_all_task_recorders(force) + await self.disable_all_task_monitors() + + async def enable_task_monitor(self, room_id: int) -> None: + task = self._get_task(room_id) + await task.enable_monitor() + + async def disable_task_monitor(self, room_id: int) -> None: + task = self._get_task(room_id) + await task.disable_monitor() + + async def enable_all_task_monitors(self) -> None: + coros = [t.enable_monitor() for t in self._tasks.values()] + if coros: + await asyncio.wait(coros) + + async def disable_all_task_monitors(self) -> None: + coros = [t.disable_monitor() for t in self._tasks.values()] + if coros: + await asyncio.wait(coros) + + async def enable_task_recorder(self, room_id: int) -> None: + task = self._get_task(room_id) + await task.enable_recorder() + + async def disable_task_recorder( + self, room_id: int, force: bool = False + ) -> None: + task = self._get_task(room_id) + await task.disable_recorder(force) + + async def enable_all_task_recorders(self) -> None: + coros = [t.enable_recorder() for t in self._tasks.values()] + if coros: + await asyncio.wait(coros) + + async def disable_all_task_recorders(self, force: bool = False) -> None: + coros = [t.disable_recorder(force) for t in self._tasks.values()] + if coros: + await asyncio.wait(coros) + + def get_task_data(self, room_id: int) -> TaskData: + task = self._get_task(room_id) + assert task.ready, "the task isn't ready yet, couldn't get task data!" + return self._make_task_data(task) + + def get_all_task_data(self) -> Iterator[TaskData]: + for task in filter(lambda t: t.ready, self._tasks.values()): + yield self._make_task_data(task) + + def get_task_param(self, room_id: int) -> TaskParam: + task = self._get_task(room_id) + return self._make_task_param(task) + + def get_task_file_details(self, room_id: int) -> Iterator[FileDetail]: + task = self._get_task(room_id) + for path in task.files: + yield FileDetail.from_path(path) + + async def update_task_info(self, room_id: int) -> None: + task = self._get_task(room_id) + await task.update_info() + + async def update_all_task_infos(self) -> None: + coros = [t.update_info() for t in self._tasks.values()] + if coros: + await asyncio.wait(coros) + + async def apply_task_header_settings( + self, + room_id: int, + settings: HeaderSettings, + *, + update_session: bool = True, + ) -> None: + task = self._get_task(room_id) + + # avoid unnecessary updates that will interrupt connections + if ( + task.user_agent == settings.user_agent and + task.cookie == settings.cookie + ): + return + + task.user_agent = settings.user_agent + task.cookie = settings.cookie + + if update_session: + # update task session to take the effect + await task.update_session() + + def apply_task_output_settings( + self, room_id: int, settings: OutputSettings + ) -> None: + task = self._get_task(room_id) + task.out_dir = settings.out_dir + task.path_template = settings.path_template + task.filesize_limit = settings.filesize_limit + task.duration_limit = settings.duration_limit + + def apply_task_danmaku_settings( + self, room_id: int, settings: DanmakuSettings + ) -> None: + task = self._get_task(room_id) + task.danmu_uname = settings.danmu_uname + + def apply_task_recorder_settings( + self, room_id: int, settings: RecorderSettings + ) -> None: + task = self._get_task(room_id) + task.quality_number = settings.quality_number + task.read_timeout = settings.read_timeout + task.buffer_size = settings.buffer_size + + def apply_task_postprocessing_settings( + self, room_id: int, settings: PostprocessingSettings + ) -> None: + task = self._get_task(room_id) + task.remux_to_mp4 = settings.remux_to_mp4 + task.delete_source = settings.delete_source + + def _get_task(self, room_id: int) -> RecordTask: + try: + return self._tasks[room_id] + except KeyError: + raise NotFoundError(f'no task for the room {room_id}') + + def _make_task_param(self, task: RecordTask) -> TaskParam: + return TaskParam( + out_dir=task.out_dir, + path_template=task.path_template, + filesize_limit=task.filesize_limit, + duration_limit=task.duration_limit, + user_agent=task.user_agent, + cookie=task.cookie, + danmu_uname=task.danmu_uname, + quality_number=task.quality_number, + read_timeout=task.read_timeout, + buffer_size=task.buffer_size, + remux_to_mp4=task.remux_to_mp4, + delete_source=task.delete_source, + ) + + def _make_task_data(self, task: RecordTask) -> TaskData: + return TaskData( + user_info=task.user_info, + room_info=task.room_info, + task_status=task.status, + ) diff --git a/src/blrec/update/__init__.py b/src/blrec/update/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/blrec/update/api.py b/src/blrec/update/api.py new file mode 100644 index 0000000..7ef9c7c --- /dev/null +++ b/src/blrec/update/api.py @@ -0,0 +1,54 @@ +from http import HTTPStatus +from typing import Any, Final, Optional + +import aiohttp +from tenacity import ( + retry, + wait_exponential, + stop_after_delay, +) + +from .typing import JsonResponse, Metadata + + +__all__ = 'PypiApi', + + +class PypiApi: + BASE_URL: Final[str] = 'https://pypi.org/pypi' + + def __init__(self, session: aiohttp.ClientSession): + self._session = session + + @classmethod + def _make_url(cls, path: str) -> str: + return cls.BASE_URL + path + + @retry( + reraise=True, + stop=stop_after_delay(5), + wait=wait_exponential(0.1), + ) + async def _get(self, *args: Any, **kwds: Any) -> Optional[JsonResponse]: + try: + async with self._session.get( + *args, raise_for_status=True, timeout=10, **kwds + ) as res: + return await res.json() + except aiohttp.ClientResponseError as e: + if e.status == HTTPStatus.NOT_FOUND: + return None + else: + raise + + async def get_project_metadata( + self, project_name: str + ) -> Optional[Metadata]: + url = self._make_url(f'/{project_name}/json') + return await self._get(url) + + async def get_release_metadata( + self, project_name: str, version: str + ) -> Optional[Metadata]: + url = self._make_url(f'/{project_name}/{version}/json') + return await self._get(url) diff --git a/src/blrec/update/helpers.py b/src/blrec/update/helpers.py new file mode 100644 index 0000000..9c74bab --- /dev/null +++ b/src/blrec/update/helpers.py @@ -0,0 +1,35 @@ +from typing import Optional + +import aiohttp + + +from .api import PypiApi +from .typing import Metadata + + +__all__ = ( + 'get_project_metadata', + 'get_release_metadata', + 'get_latest_version_string', +) + + +async def get_project_metadata(project_name: str) -> Optional[Metadata]: + async with aiohttp.ClientSession(raise_for_status=True) as session: + api = PypiApi(session) + return await api.get_project_metadata(project_name) + + +async def get_release_metadata( + project_name: str, version: str +) -> Optional[Metadata]: + async with aiohttp.ClientSession(raise_for_status=True) as session: + api = PypiApi(session) + return await api.get_release_metadata(project_name, version) + + +async def get_latest_version_string(project_name: str) -> Optional[str]: + metadata = await get_project_metadata(project_name) + if not metadata: + return None + return metadata['info']['version'] diff --git a/src/blrec/update/typing.py b/src/blrec/update/typing.py new file mode 100644 index 0000000..436090b --- /dev/null +++ b/src/blrec/update/typing.py @@ -0,0 +1,5 @@ +from typing import Any, Dict + + +JsonResponse = Dict[str, Any] +Metadata = Dict[str, Any] diff --git a/src/blrec/utils/__init__.py b/src/blrec/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/blrec/utils/hash.py b/src/blrec/utils/hash.py new file mode 100644 index 0000000..c491462 --- /dev/null +++ b/src/blrec/utils/hash.py @@ -0,0 +1,103 @@ +import os +import zlib +import hashlib +from typing import Final, Union + +from tqdm import tqdm + + +__all__ = 'cksum', 'md5sum', 'sha1sum' + + +CHUNK_SIZE: Final[int] = 8192 + + +def cksum(data_or_path: Union[bytes, str], nopbar: bool = True) -> str: + """Compute CRC32 checksum. + + data_or_path: can be bytes of binary data or a file path. + """ + if isinstance(data_or_path, bytes): + value = zlib.crc32(data_or_path, 0) + return hex(value & 0xffffffff)[2:] + + with open(data_or_path, 'rb') as f, tqdm( + desc='Computing CRC32', + total=os.path.getsize(data_or_path), + unit='B', unit_scale=True, unit_divisor=1024, + disable=nopbar, + ) as pbar: + value = 0 + + while True: + data = f.read(CHUNK_SIZE) + + if not data: + break + + value = zlib.crc32(data, value) + pbar.update(len(data)) + + return hex(value & 0xffffffff)[2:] + + +def md5sum(data_or_path: Union[bytes, str], nopbar: bool = True) -> str: + """Compute MD5 message digest. + + data_or_path: can be bytes of binary data or a file path. + """ + if isinstance(data_or_path, bytes): + return hashlib.md5(data_or_path).hexdigest() + + with open(data_or_path, 'rb') as f, tqdm( + desc='Computing MD5', + total=os.path.getsize(data_or_path), + postfix=os.path.basename(data_or_path), + unit='B', unit_scale=True, unit_divisor=1024, + disable=nopbar, + ) as pbar: + m = hashlib.md5() + + while True: + data = f.read(CHUNK_SIZE) + + if not data: + break + + m.update(data) + pbar.update(len(data)) + + md5 = m.hexdigest() + + return md5 + + +def sha1sum(data_or_path: Union[bytes, str], nopbar: bool = True) -> str: + """Compute SHA1 message digest. + + data_or_path: can be bytes of binary data or a file path. + """ + if isinstance(data_or_path, bytes): + return hashlib.sha1(data_or_path).hexdigest() + + with open(data_or_path, 'rb') as f, tqdm( + desc='Computing SHA1', + total=os.path.getsize(data_or_path), + postfix=os.path.basename(data_or_path), + unit='B', unit_scale=True, unit_divisor=1024, + disable=nopbar, + ) as pbar: + s = hashlib.sha1() + + while True: + data = f.read(CHUNK_SIZE) + + if not data: + break + + s.update(data) + pbar.update(len(data)) + + sha1 = s.hexdigest() + + return sha1 diff --git a/src/blrec/utils/mixins.py b/src/blrec/utils/mixins.py new file mode 100644 index 0000000..ce6aa66 --- /dev/null +++ b/src/blrec/utils/mixins.py @@ -0,0 +1,119 @@ +from abc import ABC, abstractmethod +import asyncio +from typing import Awaitable, TypeVar, final + + +class SwitchableMixin(ABC): + def __init__(self) -> None: + super().__init__() + self._enabled = False + + @property + def enabled(self) -> bool: + return self._enabled + + @final + def enable(self) -> None: + if self._enabled: + return + self._enabled = True + self._do_enable() + + @final + def disable(self) -> None: + if not self._enabled: + return + self._enabled = False + self._do_disable() + + @abstractmethod + def _do_enable(self) -> None: + ... + + @abstractmethod + def _do_disable(self) -> None: + ... + + +class StoppableMixin(ABC): + def __init__(self) -> None: + super().__init__() + self._stopped = True + + @property + def stopped(self) -> bool: + return self._stopped + + @final + def start(self) -> None: + if not self._stopped: + return + self._stopped = False + self._do_start() + + @final + def stop(self) -> None: + if self._stopped: + return + self._stopped = True + self._do_stop() + + @abstractmethod + def _do_start(self) -> None: + ... + + @abstractmethod + def _do_stop(self) -> None: + ... + + +class AsyncStoppableMixin(ABC): + def __init__(self) -> None: + super().__init__() + self._stopped = True + + @property + def stopped(self) -> bool: + return self._stopped + + @final + async def start(self) -> None: + if not self._stopped: + return + self._stopped = False + await self._do_start() + + @final + async def stop(self) -> None: + if self._stopped: + return + self._stopped = True + await self._do_stop() + + @abstractmethod + async def _do_start(self) -> None: + ... + + @abstractmethod + async def _do_stop(self) -> None: + ... + + +_T = TypeVar('_T') + + +class AsyncCooperationMix(ABC): + def __init__(self) -> None: + super().__init__() + self._loop = asyncio.get_running_loop() + + def _handle_exception(self, exc: BaseException) -> None: + from ..exception import submit_exception # XXX circular import + + async def wrapper() -> None: + submit_exception(exc) + self._run_coroutine(wrapper()) + + def _run_coroutine(self, coro: Awaitable[_T]) -> _T: + future = asyncio.run_coroutine_threadsafe(coro, self._loop) + return future.result() diff --git a/src/blrec/utils/patterns.py b/src/blrec/utils/patterns.py new file mode 100644 index 0000000..bf86009 --- /dev/null +++ b/src/blrec/utils/patterns.py @@ -0,0 +1,25 @@ +from abc import ABC +from typing import TypeVar, Type, final + + +__all__ = 'Singleton', + + +_T = TypeVar('_T', bound='Singleton') + + +class Singleton(ABC): + __instance = None + + @final + def __new__(cls, *args, **kwargs): # type: ignore + raise SyntaxWarning(f'{cls.__name__} is a singleton!') + + @final + @classmethod + def get_instance(cls: Type[_T]) -> _T: + assert cls is not Singleton and issubclass(cls, Singleton) + if cls.__instance is None: + cls.__instance = super().__new__(cls) + cls.__instance.__init__() + return cls.__instance diff --git a/src/blrec/utils/string.py b/src/blrec/utils/string.py new file mode 100644 index 0000000..2b0c643 --- /dev/null +++ b/src/blrec/utils/string.py @@ -0,0 +1,16 @@ +import re + + +def snake_case(string: str) -> str: + return re.sub( + r'([a-z])([A-Z])', + lambda m: m.group(1) + '_' + m.group(2).lower(), + string + ) + + +def camel_case(string: str) -> str: + words = string.split('_') + return ''.join( + [words[0].casefold()] + [word.capitalize() for word in words[1:]] + ) diff --git a/src/blrec/web/__init__.py b/src/blrec/web/__init__.py new file mode 100644 index 0000000..2f2f8e9 --- /dev/null +++ b/src/blrec/web/__init__.py @@ -0,0 +1,4 @@ +from .main import api as app + + +__all__ = 'app', diff --git a/src/blrec/web/dependencies.py b/src/blrec/web/dependencies.py new file mode 100644 index 0000000..518aa6f --- /dev/null +++ b/src/blrec/web/dependencies.py @@ -0,0 +1,76 @@ +from functools import partial +from typing import Callable, Iterable, Iterator, List, Optional, cast + +from fastapi import Query + +from blrec.setting import KeyOfSettings, KeySetOfSettings + +from .schemas import DataSelection, AliasKeyOfSettings +from ..bili.models import LiveStatus +from ..task import RunningStatus, TaskData +from ..utils.string import snake_case + + +TaskDataFilter = Callable[[Iterable[TaskData]], Iterator[TaskData]] + + +def task_data_filter( + select: DataSelection = Query('all'), +) -> TaskDataFilter: + if select == DataSelection.ALL: + def func(data: TaskData) -> bool: + return True + # live status + elif select == DataSelection.PREPARING: + def func(data: TaskData) -> bool: + return data.room_info.live_status == LiveStatus.PREPARING + elif select == DataSelection.LIVING: + def func(data: TaskData) -> bool: + return data.room_info.live_status == LiveStatus.LIVE + elif select == DataSelection.ROUNDING: + def func(data: TaskData) -> bool: + return data.room_info.live_status == LiveStatus.ROUND + # task status + elif select == DataSelection.MONITOR_ENABLED: + def func(data: TaskData) -> bool: + return data.task_status.monitor_enabled + elif select == DataSelection.MONITOR_DISABLED: + def func(data: TaskData) -> bool: + return not data.task_status.monitor_enabled + elif select == DataSelection.RECORDER_ENABLED: + def func(data: TaskData) -> bool: + return data.task_status.recorder_enabled + elif select == DataSelection.RECORDER_DISABLED: + def func(data: TaskData) -> bool: + return not data.task_status.recorder_enabled + # task running status + elif select == DataSelection.STOPPED: + def func(data: TaskData) -> bool: + return data.task_status.running_status == RunningStatus.STOPPED + elif select == DataSelection.WAITTING: + def func(data: TaskData) -> bool: + return data.task_status.running_status == RunningStatus.WAITING + elif select == DataSelection.RECORDING: + def func(data: TaskData) -> bool: + return data.task_status.running_status == RunningStatus.RECORDING + elif select == DataSelection.REMUXING: + def func(data: TaskData) -> bool: + return data.task_status.running_status == RunningStatus.REMUXING + + return partial(filter, func) # type: ignore + + +def settings_include_set( + include: Optional[List[AliasKeyOfSettings]] = Query(None), +) -> Optional[KeySetOfSettings]: + return frozenset(map(key_of_settings, include)) if include else None + + +def settings_exclude_set( + exclude: Optional[List[AliasKeyOfSettings]] = Query(None), +) -> Optional[KeySetOfSettings]: + return frozenset(map(key_of_settings, exclude)) if exclude else None + + +def key_of_settings(key: AliasKeyOfSettings) -> KeyOfSettings: + return cast(KeyOfSettings, snake_case(key)) diff --git a/src/blrec/web/main.py b/src/blrec/web/main.py new file mode 100644 index 0000000..701c271 --- /dev/null +++ b/src/blrec/web/main.py @@ -0,0 +1,141 @@ +import os +import logging +import secrets +from typing import Optional, Tuple + +from fastapi import FastAPI, status, Request, Depends, Header +from fastapi.responses import JSONResponse +from fastapi.exceptions import HTTPException +from fastapi.middleware.cors import CORSMiddleware +from fastapi.staticfiles import StaticFiles +from pydantic import ValidationError +from pkg_resources import resource_filename + +from .routers import ( + tasks, settings, application, validation, websockets, update +) +from .schemas import ResponseMessage +from ..setting import EnvSettings, Settings +from ..application import Application +from ..exception import NotFoundError, ExistsError + + +logger = logging.getLogger(__name__) + + +_env_settings = EnvSettings() +_settings = Settings.load(_env_settings.settings_file) +_settings.update_from_env_settings(_env_settings) +app = Application(_settings) + +if _env_settings.api_key is None: + _dependencies = None +else: + async def validate_api_key( + x_api_key: Optional[str] = Header(None) + ) -> None: + assert _env_settings.api_key is not None + if ( + x_api_key is None or + not secrets.compare_digest(x_api_key, _env_settings.api_key) + ): + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail='API key is missing or invalid', + ) + + _dependencies = [Depends(validate_api_key)] + +api = FastAPI( + title='Bilibili live streaming recorder web API', + description='Web API to communicate with the backend application', + version='v1', + dependencies=_dependencies, +) + +api.add_middleware( + CORSMiddleware, + allow_origins=[ + 'http://localhost:4200', # angular development + ], + allow_credentials=True, + allow_methods=['*'], + allow_headers=['*'], +) + + +@api.exception_handler(NotFoundError) +async def not_found_error_handler( + request: Request, exc: NotFoundError +) -> JSONResponse: + return JSONResponse( + status_code=status.HTTP_404_NOT_FOUND, + content=dict(ResponseMessage( + code=status.HTTP_404_NOT_FOUND, + message=str(exc), + )), + ) + + +@api.exception_handler(ExistsError) +async def exists_error_handler( + request: Request, exc: ExistsError +) -> JSONResponse: + return JSONResponse( + status_code=status.HTTP_409_CONFLICT, + content=dict(ResponseMessage( + code=status.HTTP_409_CONFLICT, + message=str(exc), + )), + ) + + +@api.exception_handler(ValidationError) +async def validation_error_handler( + request: Request, exc: ValidationError +) -> JSONResponse: + return JSONResponse( + status_code=status.HTTP_406_NOT_ACCEPTABLE, + content=dict(ResponseMessage( + code=status.HTTP_406_NOT_ACCEPTABLE, + message=str(exc), + )), + ) + + +@api.on_event('startup') +async def on_startup() -> None: + await app.launch() + + +@api.on_event('shutdown') +async def on_shuntdown() -> None: + _settings.dump() + await app.exit() + + +tasks.app = app +settings.app = app +application.app = app +validation.app = app +websockets.app = app +update.app = app +api.include_router(tasks.router) +api.include_router(settings.router) +api.include_router(application.router) +api.include_router(validation.router) +api.include_router(websockets.router) +api.include_router(update.router) + + +class WebAppFiles(StaticFiles): + async def lookup_path( + self, path: str + ) -> Tuple[str, Optional[os.stat_result]]: + if path == '404.html': + path = 'index.html' + return await super().lookup_path(path) + + +directory = resource_filename(__name__, '../data/webapp') +api.mount('/', WebAppFiles(directory=directory, html=True), name='webapp') diff --git a/src/blrec/web/responses.py b/src/blrec/web/responses.py new file mode 100644 index 0000000..8f046ba --- /dev/null +++ b/src/blrec/web/responses.py @@ -0,0 +1,43 @@ +from http import HTTPStatus +from typing import Any, Dict, Union + + +from .schemas import ResponseMessage + + +ResponseDescriptor = Dict[Union[int, str], Dict[str, Any]] + +not_found_responses: ResponseDescriptor = { + HTTPStatus.NOT_FOUND.value: { + 'description': HTTPStatus.NOT_FOUND.phrase, + 'model': ResponseMessage, + }, +} + +forbidden_responses: ResponseDescriptor = { + HTTPStatus.FORBIDDEN.value: { + 'description': HTTPStatus.FORBIDDEN.phrase, + 'model': ResponseMessage, + }, +} + +confict_responses: ResponseDescriptor = { + HTTPStatus.CONFLICT.value: { + 'description': HTTPStatus.CONFLICT.phrase, + 'model': ResponseMessage, + }, +} + +created_responses: ResponseDescriptor = { + HTTPStatus.CREATED.value: { + 'description': HTTPStatus.CREATED.phrase, + 'model': ResponseMessage, + }, +} + +accepted_responses: ResponseDescriptor = { + HTTPStatus.ACCEPTED.value: { + 'description': HTTPStatus.ACCEPTED.phrase, + 'model': ResponseMessage, + }, +} diff --git a/src/blrec/web/routers/__init__.py b/src/blrec/web/routers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/blrec/web/routers/application.py b/src/blrec/web/routers/application.py new file mode 100644 index 0000000..3ca4bef --- /dev/null +++ b/src/blrec/web/routers/application.py @@ -0,0 +1,48 @@ + +import signal +from typing import Any, Dict + +import attr +from fastapi import APIRouter, status + +from ..schemas import ResponseMessage +from ...application import Application + + +app: Application = None # type: ignore # bypass flake8 F821 + +router = APIRouter( + prefix='/api/v1/app', + tags=['application'], +) + + +@router.get( + '/status', +) +async def get_app_status() -> Dict[str, Any]: + return attr.asdict(app.status) + + +@router.get( + '/info', +) +async def get_app_info() -> Dict[str, Any]: + return attr.asdict(app.info) + + +@router.post( + '/restart', + response_model=ResponseMessage, +) +async def restart_app() -> ResponseMessage: + await app.restart() + return ResponseMessage(message='Application has been restarted') + + +@router.post( + '/exit', + status_code=status.HTTP_204_NO_CONTENT, +) +async def exit_app() -> None: + signal.raise_signal(signal.SIGINT) diff --git a/src/blrec/web/routers/settings.py b/src/blrec/web/routers/settings.py new file mode 100644 index 0000000..126654c --- /dev/null +++ b/src/blrec/web/routers/settings.py @@ -0,0 +1,76 @@ +from typing import Optional + +from fastapi import APIRouter, Depends + +from ..responses import not_found_responses +from ..dependencies import settings_include_set, settings_exclude_set +from ...setting import ( + SettingsIn, + SettingsOut, + KeySetOfSettings, + TaskOptions, +) +from ...application import Application + + +app: Application = None # type: ignore # bypass flake8 F821 + +router = APIRouter( + prefix='/api/v1/settings', + tags=['settings'], +) + + +@router.get( + '', + response_model=SettingsOut, + response_model_exclude_unset=True, +) +async def get_settings( + include: Optional[KeySetOfSettings] = Depends(settings_include_set), + exclude: Optional[KeySetOfSettings] = Depends(settings_exclude_set), +) -> SettingsOut: + return app.get_settings(include, exclude) + + +@router.patch( + '', + response_model=SettingsOut, + response_model_exclude_unset=True, +) +async def change_settings(settings: SettingsIn) -> SettingsOut: + """Change settings of the application + + Change network request headers will cause + **all** the Danmaku client be **reconnected**! + """ + return await app.change_settings(settings) + + +@router.get( + '/tasks/{room_id}', + response_model=TaskOptions, + response_model_exclude_unset=True, + responses={**not_found_responses}, +) +async def get_task_options(room_id: int) -> TaskOptions: + return app.get_task_options(room_id) + + +@router.patch( + '/tasks/{room_id}', + response_model=TaskOptions, + responses={**not_found_responses}, +) +async def change_task_options( + room_id: int, options: TaskOptions +) -> TaskOptions: + """Change task-specific options + + Task-specific options will shadow the corresponding global settings. + Explicitly set options to **null** will remove the value shadowing. + + Change network request headers will cause + the Danmaku client be **reconnected**! + """ + return await app.change_task_options(room_id, options) diff --git a/src/blrec/web/routers/tasks.py b/src/blrec/web/routers/tasks.py new file mode 100644 index 0000000..b3a13dd --- /dev/null +++ b/src/blrec/web/routers/tasks.py @@ -0,0 +1,251 @@ +from typing import Any, Dict, List + +import attr +from fastapi import ( + APIRouter, + status, + Body, + Depends, + BackgroundTasks, +) + +from ..dependencies import task_data_filter, TaskDataFilter +from ..schemas import ResponseMessage +from ..responses import ( + not_found_responses, + forbidden_responses, + confict_responses, + accepted_responses, + created_responses, +) +from ...exception import NotFoundError +from ...application import Application + + +app: Application = None # type: ignore # bypass flake8 F821 + +router = APIRouter( + prefix='/api/v1/tasks', + tags=['tasks'], +) + + +@router.get('/data') +async def get_all_task_data( + filter: TaskDataFilter = Depends(task_data_filter) +) -> List[Dict[str, Any]]: + return [attr.asdict(d) for d in filter(app.get_all_task_data())] + + +@router.get( + '/{room_id}/data', + responses={**not_found_responses}, +) +async def get_task_data(room_id: int) -> Dict[str, Any]: + return attr.asdict(app.get_task_data(room_id)) + + +@router.get( + '/{room_id}/param', + responses={**not_found_responses}, +) +async def get_task_param(room_id: int) -> Dict[str, Any]: + return attr.asdict(app.get_task_param(room_id)) + + +@router.get( + '/{room_id}/files', + responses={**not_found_responses}, +) +async def get_task_file_details(room_id: int) -> List[Dict[str, Any]]: + return [attr.asdict(d) for d in app.get_task_file_details(room_id)] + + +@router.post( + '/info', + response_model=ResponseMessage, + responses={**not_found_responses}, +) +async def update_all_task_infos() -> ResponseMessage: + await app.update_all_task_infos() + return ResponseMessage(message='All task infos have been updated') + + +@router.post( + '/{room_id}/info', + response_model=ResponseMessage, + responses={**not_found_responses}, +) +async def update_task_info(room_id: int) -> ResponseMessage: + await app.update_task_info(room_id) + return ResponseMessage(message='The task info has been updated') + + +@router.post( + '/start', + response_model=ResponseMessage, + responses={**not_found_responses}, +) +async def start_all_tasks() -> ResponseMessage: + await app.start_all_tasks() + return ResponseMessage(message='All tasks have been started') + + +@router.post( + '/{room_id}/start', + response_model=ResponseMessage, + responses={**not_found_responses}, +) +async def start_task(room_id: int) -> ResponseMessage: + await app.start_task(room_id) + return ResponseMessage(message='The task has been started') + + +@router.post( + '/stop', + response_model=ResponseMessage, + status_code=status.HTTP_202_ACCEPTED, + responses={**accepted_responses}, +) +async def stop_all_tasks( + background_tasks: BackgroundTasks, + force: bool = Body(False), + background: bool = Body(False), +) -> ResponseMessage: + if background: + background_tasks.add_task(app.stop_all_tasks, force) + return ResponseMessage(message='Stopping all tasks on the background') + + await app.stop_all_tasks(force) + return ResponseMessage(message='All tasks have been stopped') + + +@router.post( + '/{room_id}/stop', + response_model=ResponseMessage, + status_code=status.HTTP_202_ACCEPTED, + responses={**not_found_responses, **accepted_responses}, +) +async def stop_task( + background_tasks: BackgroundTasks, + room_id: int, + force: bool = Body(False), + background: bool = Body(False), +) -> ResponseMessage: + if not app.has_task(room_id): + raise NotFoundError(f'No task for the room {room_id}') + + if background: + background_tasks.add_task(app.stop_task, room_id, force) + return ResponseMessage(message='Stopping the task on the background') + + await app.stop_task(room_id, force) + return ResponseMessage(message='The task has been stopped') + + +@router.post( + '/recorder/enable', + response_model=ResponseMessage, +) +async def enable_all_task_recorders() -> ResponseMessage: + await app.enable_all_task_recorders() + return ResponseMessage(message='All task recorders have been enabled') + + +@router.post( + '/{room_id}/recorder/enable', + response_model=ResponseMessage, + responses={**not_found_responses}, +) +async def enable_task_recorder(room_id: int) -> ResponseMessage: + await app.enable_task_recorder(room_id) + return ResponseMessage(message='The task recorder has been enabled') + + +@router.post( + '/recorder/disable', + response_model=ResponseMessage, + status_code=status.HTTP_202_ACCEPTED, + responses={**accepted_responses}, +) +async def disable_all_task_recorders( + background_tasks: BackgroundTasks, + force: bool = Body(False), + background: bool = Body(False), +) -> ResponseMessage: + if background: + background_tasks.add_task(app.disable_all_task_recorders, force) + return ResponseMessage( + message='Disabling all task recorders on the background' + ) + + await app.disable_all_task_recorders(force) + return ResponseMessage(message='All task recorders have been disabled') + + +@router.post( + '/{room_id}/recorder/disable', + response_model=ResponseMessage, + status_code=status.HTTP_202_ACCEPTED, + responses={**not_found_responses, **accepted_responses}, +) +async def disable_task_recorder( + background_tasks: BackgroundTasks, + room_id: int, + force: bool = Body(False), + background: bool = Body(False), +) -> ResponseMessage: + if not app.has_task(room_id): + raise NotFoundError(f'No task for the room {room_id}') + + if background: + background_tasks.add_task(app.disable_task_recorder, room_id, force) + return ResponseMessage( + message='Disabling the task recorder on the background' + ) + + await app.disable_task_recorder(room_id, force) + return ResponseMessage(message='The task recorder has been disabled') + + +@router.post( + '/{room_id}', + response_model=ResponseMessage, + status_code=status.HTTP_201_CREATED, + responses={ + **created_responses, **confict_responses, **forbidden_responses + }, +) +async def add_task(room_id: int) -> ResponseMessage: + """Add a task for a room. + + the room_id argument can be both the real room id or the short room id. + + only use the real room id for task management. + the short room id should be considered as a shorthand + only for adding tasks conveniently. + """ + real_room_id = await app.add_task(room_id) + return ResponseMessage( + message='Added Task Successfully', + data={'room_id': real_room_id}, + ) + + +@router.delete( + '', + response_model=ResponseMessage, +) +async def remove_all_tasks() -> ResponseMessage: + await app.remove_all_tasks() + return ResponseMessage(message='All tasks have been removed') + + +@router.delete( + '/{room_id}', + response_model=ResponseMessage, + responses={**not_found_responses}, +) +async def remove_task(room_id: int) -> ResponseMessage: + await app.remove_task(room_id) + return ResponseMessage(message='The task has been removed') diff --git a/src/blrec/web/routers/update.py b/src/blrec/web/routers/update.py new file mode 100644 index 0000000..54754e1 --- /dev/null +++ b/src/blrec/web/routers/update.py @@ -0,0 +1,32 @@ +import asyncio +import logging + +from fastapi import APIRouter + +from ... import __prog__ +from ...application import Application +from ...update.helpers import get_latest_version_string + + +logger = logging.getLogger(__name__) + + +app: Application = None # type: ignore # bypass flake8 F821 + +router = APIRouter( + prefix='/api/v1/update', + tags=['update'], +) + + +@router.get( + '/version/latest', +) +async def get_latest_version() -> str: + try: + return await get_latest_version_string(__prog__) or '' + except asyncio.TimeoutError: + logger.warning( + 'Timeout error occurred while getting the latest version string' + ) + return '' diff --git a/src/blrec/web/routers/validation.py b/src/blrec/web/routers/validation.py new file mode 100644 index 0000000..f3d37e6 --- /dev/null +++ b/src/blrec/web/routers/validation.py @@ -0,0 +1,30 @@ +import os +import errno + +from fastapi import APIRouter, Body + +from ..schemas import ResponseMessage +from ...application import Application + + +app: Application = None # type: ignore # bypass flake8 F821 + +router = APIRouter( + prefix='/api/v1/validation', + tags=['validation'], +) + + +@router.post( + '/dir', + response_model=ResponseMessage, +) +async def validate_dir(path: str = Body(..., embed=True)) -> ResponseMessage: + """Check if the path is a directory and grants the read, write permissions + """ + if not os.path.isdir(path): + return ResponseMessage(code=errno.ENOTDIR, message='not a directory') + elif not os.access(path, os.F_OK | os.R_OK | os.W_OK): + return ResponseMessage(code=errno.EACCES, message='no permissions') + else: + return ResponseMessage(code=0, message='ok') diff --git a/src/blrec/web/routers/websockets.py b/src/blrec/web/routers/websockets.py new file mode 100644 index 0000000..5f31b86 --- /dev/null +++ b/src/blrec/web/routers/websockets.py @@ -0,0 +1,79 @@ +import logging +import asyncio + +from fastapi import ( + APIRouter, + WebSocket, + WebSocketDisconnect, +) +from websockets import ConnectionClosed # type: ignore + +from ...event import EventCenter +from ...event.typing import Event +from ...exception import ExceptionCenter, format_exception +from ...application import Application + + +logger = logging.getLogger(__name__) +logging.getLogger('websockets').setLevel(logging.WARNING) + +app: Application = None # type: ignore # bypass flake8 F821 + +router = APIRouter( + tags=['websockets'], +) + + +@router.websocket('/ws/v1/events') +async def receive_events(websocket: WebSocket) -> None: + await websocket.accept() + logger.debug('Events websocket accepted') + + future = asyncio.Future() # type: ignore + + async def send_event(event: Event) -> None: + try: + await websocket.send_json(event.asdict()) + except (WebSocketDisconnect, ConnectionClosed) as e: + logger.debug(f'Events websocket closed: {repr(e)}') + subscription.dispose() + future.set_result(None) + except Exception as e: + logger.error(f'Error occurred on events websocket: {repr(e)}') + subscription.dispose() + future.set_exception(e) + + def on_event(event: Event) -> None: + asyncio.create_task(send_event(event)) + + subscription = EventCenter.get_instance().events.subscribe(on_event) + + await future + + +@router.websocket('/ws/v1/exceptions') +async def receive_exception(websocket: WebSocket) -> None: + await websocket.accept() + logger.debug('Exceptions websocket accepted') + + future = asyncio.Future() # type: ignore + + async def send_exception(exc: BaseException) -> None: + try: + await websocket.send_text(format_exception(exc)) + except (WebSocketDisconnect, ConnectionClosed) as e: + logger.debug(f'Exceptions websocket closed: {repr(e)}') + subscription.dispose() + future.set_result(None) + except Exception as e: + logger.error(f'Error occurred on exceptions websocket: {repr(e)}') + subscription.dispose() + future.set_exception(e) + + def on_exception(exc: BaseException) -> None: + asyncio.create_task(send_exception(exc)) + + subscription = ExceptionCenter.get_instance().exceptions \ + .subscribe(on_exception) + + await future diff --git a/src/blrec/web/schemas.py b/src/blrec/web/schemas.py new file mode 100644 index 0000000..50211f3 --- /dev/null +++ b/src/blrec/web/schemas.py @@ -0,0 +1,56 @@ +from enum import Enum +from typing import Any, Dict, Literal, Optional + +from pydantic import BaseModel + + +__all__ = ( + 'ResponseMessage', + 'DataSelection', + 'AliasKeyOfSettings', +) + + +class ResponseMessage(BaseModel): + code: int = 0 + message: str = '' + data: Optional[Dict[str, Any]] = None + + +class DataSelection(str, Enum): + ALL = 'all' + + # live status + PREPARING = 'preparing' + LIVING = 'living' + ROUNDING = 'rounding' + + # task status + MONITOR_ENABLED = 'monitor_enabled' + MONITOR_DISABLED = 'monitor_disabled' + RECORDER_ENABLED = 'recorder_enabled' + RECORDER_DISABLED = 'recorder_disabled' + + # task running status + STOPPED = 'stopped' + WAITTING = 'waitting' + RECORDING = 'recording' + REMUXING = 'remuxing' + INJECTING = 'injecting' + + +AliasKeyOfSettings = Literal[ + 'version', + 'tasks', + 'output', + 'logging', + 'header', + 'danmaku', + 'recorder', + 'postprocessing', + 'space', + 'emailNotification', + 'serverchanNotification', + 'pushplusNotification', + 'webhooks', +] diff --git a/src/blrec/webhook/__init__.py b/src/blrec/webhook/__init__.py new file mode 100644 index 0000000..9aaf07d --- /dev/null +++ b/src/blrec/webhook/__init__.py @@ -0,0 +1,7 @@ +from .models import WebHook +from .webhook_emitter import WebHookEmitter + +__all__ = ( + 'WebHook', + 'WebHookEmitter', +) diff --git a/src/blrec/webhook/models.py b/src/blrec/webhook/models.py new file mode 100644 index 0000000..b457cb2 --- /dev/null +++ b/src/blrec/webhook/models.py @@ -0,0 +1,49 @@ +from __future__ import annotations +import logging +from typing import Set, Tuple, Type + +import attr + +from ..setting import WebHookSettings +from ..event import ( + LiveBeganEvent, + LiveEndedEvent, + RoomChangeEvent, + SpaceNoEnoughEvent, + FileCompletedEvent, +) +from ..event.typing import Event + + +__all__ = 'WebHook', + + +logger = logging.getLogger(__name__) + + +@attr.s(auto_attribs=True, slots=True, frozen=True) +class WebHook: + url: str + event_types: Tuple[Type[Event], ...] + receive_exception: bool + + @classmethod + def from_settings(cls, settings: WebHookSettings) -> WebHook: + types: Set[Type[Event]] = set() + + if settings.live_began: + types.add(LiveBeganEvent) + if settings.live_ended: + types.add(LiveEndedEvent) + if settings.room_change: + types.add(RoomChangeEvent) + if settings.file_completed: + types.add(FileCompletedEvent) + if settings.space_no_enough: + types.add(SpaceNoEnoughEvent) + + return cls( + url=settings.url, + event_types=tuple(types), + receive_exception=settings.error_occurred, + ) diff --git a/src/blrec/webhook/webhook_emitter.py b/src/blrec/webhook/webhook_emitter.py new file mode 100644 index 0000000..aa77118 --- /dev/null +++ b/src/blrec/webhook/webhook_emitter.py @@ -0,0 +1,91 @@ +import logging +import asyncio +from typing import Any, Dict, List + +import aiohttp +from tenacity import ( + AsyncRetrying, + wait_exponential, + stop_after_delay, +) + +from .models import WebHook +from ..utils.mixins import SwitchableMixin +from ..exception import ExceptionCenter, format_exception +from ..event import EventCenter, Error, ErrorData +from ..event.typing import Event +from .. import __prog__, __version__ + + +__all__ = 'WebHookEmitter', + + +logger = logging.getLogger(__name__) + + +class WebHookEmitter(SwitchableMixin): + def __init__( + self, webhooks: List[WebHook] = [] + ) -> None: + super().__init__() + self.webhooks = webhooks + self.headers = { + 'User-Agent': f'{__prog__}/{__version__}' + } + + def _do_enable(self) -> None: + events = EventCenter.get_instance().events + self._event_subscription = events.subscribe(self._on_event) + exceptions = ExceptionCenter.get_instance().exceptions + self._exc_subscription = exceptions.subscribe(self._on_exception) + + def _do_disable(self) -> None: + self._event_subscription.dispose() + self._exc_subscription.dispose() + + def _on_event(self, event: Event) -> None: + for webhook in self.webhooks: + if isinstance(event, webhook.event_types): + self._send_event(webhook.url, event) + + def _on_exception(self, exc: BaseException) -> None: + for webhook in self.webhooks: + if webhook.receive_exception: + self._send_exception(webhook.url, exc) + + def _send_event(self, url: str, event: Event) -> None: + self._send_request(url, event.asdict()) + + def _send_exception(self, url: str, exc: BaseException) -> None: + data = ErrorData( + name=type(exc).__name__, + detail=format_exception(exc), + ) + payload = Error.from_data(data).asdict() + self._send_request(url, payload) + + def _send_request(self, url: str, payload: Dict[str, Any]) -> None: + asyncio.create_task(self._send_request_async(url, payload)) + + async def _send_request_async( + self, url: str, payload: Dict[str, Any] + ) -> None: + try: + async for attempt in AsyncRetrying( + stop=stop_after_delay(180), + wait=wait_exponential(max=15), + ): + with attempt: + await self._post(url, payload) + except Exception as e: + logger.warning('Failed to send a request to {}: {}'.format( + url, repr(e) + )) + + async def _post(self, url: str, payload: Dict[str, Any]) -> None: + async with aiohttp.ClientSession( + headers=self.headers, + raise_for_status=True, + ) as session: + async with session.post(url, json=payload): + pass diff --git a/webapp/.browserslistrc b/webapp/.browserslistrc new file mode 100644 index 0000000..427441d --- /dev/null +++ b/webapp/.browserslistrc @@ -0,0 +1,17 @@ +# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. +# For additional information regarding the format and rule options, please see: +# https://github.com/browserslist/browserslist#queries + +# For the full list of supported browsers by the Angular framework, please see: +# https://angular.io/guide/browser-support + +# You can see what browsers were selected by your queries by running: +# npx browserslist + +last 1 Chrome version +last 1 Firefox version +last 2 Edge major versions +last 2 Safari major versions +last 2 iOS major versions +Firefox ESR +not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line. diff --git a/webapp/.editorconfig b/webapp/.editorconfig new file mode 100644 index 0000000..59d9a3a --- /dev/null +++ b/webapp/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/webapp/.eslintrc.json b/webapp/.eslintrc.json new file mode 100644 index 0000000..b036bf6 --- /dev/null +++ b/webapp/.eslintrc.json @@ -0,0 +1,51 @@ +{ + "root": true, + "ignorePatterns": [ + "projects/**/*" + ], + "overrides": [ + { + "files": [ + "*.ts" + ], + "parserOptions": { + "project": [ + "tsconfig.json", + "e2e/tsconfig.json" + ], + "createDefaultProgram": true + }, + "extends": [ + "plugin:@angular-eslint/recommended", + "plugin:@angular-eslint/template/process-inline-templates" + ], + "rules": { + "@angular-eslint/directive-selector": [ + "error", + { + "type": "attribute", + "prefix": "app", + "style": "camelCase" + } + ], + "@angular-eslint/component-selector": [ + "error", + { + "type": "element", + "prefix": "app", + "style": "kebab-case" + } + ] + } + }, + { + "files": [ + "*.html" + ], + "extends": [ + "plugin:@angular-eslint/template/recommended" + ], + "rules": {} + } + ] +} diff --git a/webapp/.gitignore b/webapp/.gitignore new file mode 100644 index 0000000..de51f68 --- /dev/null +++ b/webapp/.gitignore @@ -0,0 +1,45 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/dist +/tmp +/out-tsc +# Only exists if Bazel was run +/bazel-out + +# dependencies +/node_modules + +# profiling files +chrome-profiler-events*.json + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +yarn-error.log +testem.log +/typings + +# System Files +.DS_Store +Thumbs.db diff --git a/webapp/README.md b/webapp/README.md new file mode 100644 index 0000000..5fee64f --- /dev/null +++ b/webapp/README.md @@ -0,0 +1,27 @@ +# Webapp + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.0.0. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via a platform of your choice. + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/webapp/angular.json b/webapp/angular.json new file mode 100644 index 0000000..5c5cc60 --- /dev/null +++ b/webapp/angular.json @@ -0,0 +1,133 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "blrec": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + }, + "@schematics/angular:application": { + "strict": true + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "../src/blrec/data/webapp", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.app.json", + "inlineStyleLanguage": "scss", + "assets": [ + "src/favicon.ico", + "src/assets", + { + "glob": "**/*", + "input": "./node_modules/@ant-design/icons-angular/src/inline-svg/", + "output": "/assets/" + }, + "src/manifest.webmanifest" + ], + "styles": [ + "src/theme.less", + "src/styles.scss" + ], + "scripts": [], + "serviceWorker": true, + "ngswConfigPath": "ngsw-config.json" + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kb", + "maximumError": "2mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kb", + "maximumError": "4kb" + } + ], + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "outputHashing": "all" + }, + "development": { + "buildOptimizer": false, + "optimization": false, + "vendorChunk": true, + "extractLicenses": false, + "sourceMap": true, + "namedChunks": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "browserTarget": "blrec:build:production" + }, + "development": { + "browserTarget": "blrec:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "blrec:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "src/test.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.spec.json", + "karmaConfig": "karma.conf.js", + "inlineStyleLanguage": "scss", + "assets": [ + "src/favicon.ico", + "src/assets", + "src/manifest.webmanifest" + ], + "styles": [ + "src/styles.scss" + ], + "scripts": [] + } + }, + "lint": { + "builder": "@angular-eslint/builder:lint", + "options": { + "lintFilePatterns": [ + "src/**/*.ts", + "src/**/*.html" + ] + } + } + } + } + }, + "defaultProject": "blrec", + "cli": { + "defaultCollection": "@angular-eslint/schematics" + } +} diff --git a/webapp/karma.conf.js b/webapp/karma.conf.js new file mode 100644 index 0000000..5a7c94f --- /dev/null +++ b/webapp/karma.conf.js @@ -0,0 +1,44 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + jasmine: { + // you can add configuration options for Jasmine here + // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html + // for example, you can disable the random execution with `random: false` + // or set a specific seed with `seed: 4321` + }, + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + jasmineHtmlReporter: { + suppressAll: true // removes the duplicated traces + }, + coverageReporter: { + dir: require('path').join(__dirname, './coverage/webapp'), + subdir: '.', + reporters: [ + { type: 'html' }, + { type: 'text-summary' } + ] + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/webapp/ngsw-config.json b/webapp/ngsw-config.json new file mode 100644 index 0000000..607ab33 --- /dev/null +++ b/webapp/ngsw-config.json @@ -0,0 +1,30 @@ +{ + "$schema": "./node_modules/@angular/service-worker/config/schema.json", + "index": "/index.html", + "assetGroups": [ + { + "name": "app", + "installMode": "prefetch", + "resources": { + "files": [ + "/favicon.ico", + "/index.html", + "/manifest.webmanifest", + "/*.css", + "/*.js" + ] + } + }, + { + "name": "assets", + "installMode": "lazy", + "updateMode": "prefetch", + "resources": { + "files": [ + "/assets/**", + "/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)" + ] + } + } + ] +} diff --git a/webapp/package-lock.json b/webapp/package-lock.json new file mode 100644 index 0000000..00c474c --- /dev/null +++ b/webapp/package-lock.json @@ -0,0 +1,15156 @@ +{ + "name": "blrec", + "version": "0.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@ampproject/remapping": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-1.0.1.tgz", + "integrity": "sha512-Ta9bMA3EtUHDaZJXqUoT5cn/EecwOp+SXpKJqxDbDuMbLvEMu6YTyDDuvTWeStODfdmXyfMo7LymQyPkN3BicA==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "1.0.0", + "sourcemap-codec": "1.4.8" + } + }, + "@angular-devkit/architect": { + "version": "0.1202.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.0.tgz", + "integrity": "sha512-99O8iLO9LEVTPYN6kj6XINHxjw13ofTS48hm3D0i44QMEyq3SRH1ctH6HcUAtbgPF3VjOUFr5vRYpQN1OdOCXw==", + "dev": true, + "requires": { + "@angular-devkit/core": "12.2.0", + "rxjs": "6.6.7" + } + }, + "@angular-devkit/build-angular": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-12.2.0.tgz", + "integrity": "sha512-hcnlTZo1iWVVDiq2MSwbEJtc2E4rf7tSvsBvSVQLH1GILtVvN64L3YW0wVThNctWL8nicHWjtGQ+z3kjCOhxYw==", + "dev": true, + "requires": { + "@ampproject/remapping": "1.0.1", + "@angular-devkit/architect": "0.1202.0", + "@angular-devkit/build-optimizer": "0.1202.0", + "@angular-devkit/build-webpack": "0.1202.0", + "@angular-devkit/core": "12.2.0", + "@babel/core": "7.14.8", + "@babel/generator": "7.14.8", + "@babel/helper-annotate-as-pure": "7.14.5", + "@babel/plugin-proposal-async-generator-functions": "7.14.7", + "@babel/plugin-transform-async-to-generator": "7.14.5", + "@babel/plugin-transform-runtime": "7.14.5", + "@babel/preset-env": "7.14.8", + "@babel/runtime": "7.14.8", + "@babel/template": "7.14.5", + "@discoveryjs/json-ext": "0.5.3", + "@jsdevtools/coverage-istanbul-loader": "3.0.5", + "@ngtools/webpack": "12.2.0", + "ansi-colors": "4.1.1", + "babel-loader": "8.2.2", + "browserslist": "^4.9.1", + "cacache": "15.2.0", + "caniuse-lite": "^1.0.30001032", + "circular-dependency-plugin": "5.2.2", + "copy-webpack-plugin": "9.0.1", + "core-js": "3.16.0", + "critters": "0.0.10", + "css-loader": "6.2.0", + "css-minimizer-webpack-plugin": "3.0.2", + "esbuild": "0.12.17", + "find-cache-dir": "3.3.1", + "glob": "7.1.7", + "https-proxy-agent": "5.0.0", + "inquirer": "8.1.2", + "karma-source-map-support": "1.4.0", + "less": "4.1.1", + "less-loader": "10.0.1", + "license-webpack-plugin": "2.3.20", + "loader-utils": "2.0.0", + "mini-css-extract-plugin": "2.1.0", + "minimatch": "3.0.4", + "open": "8.2.1", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "6.0.1", + "piscina": "3.1.0", + "postcss": "8.3.6", + "postcss-import": "14.0.2", + "postcss-loader": "6.1.1", + "postcss-preset-env": "6.7.0", + "regenerator-runtime": "0.13.9", + "resolve-url-loader": "4.0.0", + "rxjs": "6.6.7", + "sass": "1.36.0", + "sass-loader": "12.1.0", + "semver": "7.3.5", + "source-map-loader": "3.0.0", + "source-map-support": "0.5.19", + "style-loader": "3.2.1", + "stylus": "0.54.8", + "stylus-loader": "6.1.0", + "terser": "5.7.1", + "terser-webpack-plugin": "5.1.4", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "tslib": "2.3.0", + "webpack": "5.47.1", + "webpack-dev-middleware": "5.0.0", + "webpack-dev-server": "3.11.2", + "webpack-merge": "5.8.0", + "webpack-subresource-integrity": "1.5.2" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/compat-data": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", + "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", + "dev": true + }, + "@babel/core": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.8.tgz", + "integrity": "sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.14.8", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-module-transforms": "^7.14.8", + "@babel/helpers": "^7.14.8", + "@babel/parser": "^7.14.8", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.8", + "@babel/types": "^7.14.8", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.8.tgz", + "integrity": "sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg==", + "dev": true, + "requires": { + "@babel/types": "^7.14.8", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz", + "integrity": "sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.15.0", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.16.6", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz", + "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==", + "dev": true, + "requires": { + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz", + "integrity": "sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-replace-supers": "^7.15.0", + "@babel/helper-simple-access": "^7.14.8", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", + "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-replace-supers": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz", + "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.15.0", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz", + "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==", + "dev": true, + "requires": { + "@babel/types": "^7.14.8" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "dev": true + }, + "@babel/helpers": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.8.tgz", + "integrity": "sha512-ZRDmI56pnV+p1dH6d+UN6GINGz7Krps3+270qqI9UJ4wxYThfAIcI5i7j5vXC4FJ3Wap+S9qcebxeYiqn87DZw==", + "dev": true, + "requires": { + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.8", + "@babel/types": "^7.14.8" + } + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.15.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.2.tgz", + "integrity": "sha512-bMJXql1Ss8lFnvr11TZDH4ArtwlAS5NG9qBmdiFW2UHHm6MVoR+GDc5XE2b9K938cyjc9O6/+vjjcffLDtfuDg==", + "dev": true + }, + "@babel/runtime": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.8.tgz", + "integrity": "sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/traverse": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", + "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.15.0", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.15.0", + "@babel/types": "^7.15.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/generator": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", + "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", + "dev": true, + "requires": { + "@babel/types": "^7.15.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + } + } + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", + "dev": true + } + } + }, + "@angular-devkit/build-optimizer": { + "version": "0.1202.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1202.0.tgz", + "integrity": "sha512-ORZGPrBTlzfSUzAZTrbpMgTbx1TaMcJ+nEFDj0hVBK+DUgf7GnaRjltlIqfKKphh7c6h3OKZAu3k2Lo57WqcIA==", + "dev": true, + "requires": { + "source-map": "0.7.3", + "tslib": "2.3.0", + "typescript": "4.3.5" + }, + "dependencies": { + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", + "dev": true + }, + "typescript": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", + "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", + "dev": true + } + } + }, + "@angular-devkit/build-webpack": { + "version": "0.1202.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1202.0.tgz", + "integrity": "sha512-G2Iljb8Vpu5+N6jWUii2m8p5NRJe84pgiQbIOxQvegEYkdmbISQYmW3ubFjWDQgjArCpZyWJQ/AIwhmkRef5xQ==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1202.0", + "rxjs": "6.6.7" + } + }, + "@angular-devkit/core": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.0.tgz", + "integrity": "sha512-9H2NfE4eazpMPwbAx4ZbtTNijo6419DZsmQzlzwQWzTInO3+CAjQuyW53W5Nt/IoauNVOgOEsC8/YbYjNmN0Aw==", + "dev": true, + "requires": { + "ajv": "8.6.2", + "ajv-formats": "2.1.0", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.7", + "source-map": "0.7.3" + }, + "dependencies": { + "ajv": { + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", + "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + } + } + }, + "@angular-devkit/schematics": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-12.2.0.tgz", + "integrity": "sha512-C+eutMKtOLROk/2zs1NkXeLZJpFtvZm7ctWmcns0Yh83Di2sCgGiSqdqNZFyDplxkt5W5lF2cdBSGyP8ZH+/ug==", + "dev": true, + "requires": { + "@angular-devkit/core": "12.2.0", + "ora": "5.4.1", + "rxjs": "6.6.7" + } + }, + "@angular-eslint/builder": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-12.0.0.tgz", + "integrity": "sha512-gvvXQDXXi0gsWZ25KyMqF/1b3AaX+CJbpVgTPqxJdEx4euvmG/m3993ynmpf+Kc+F+aI2O9W4TUbDbbLWoCjIA==", + "dev": true + }, + "@angular-eslint/eslint-plugin": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-12.0.0.tgz", + "integrity": "sha512-osdJdMu8bYFv9WGhC04AwRcbeKq4sxCQnShV7NiF0xkgNG9KqDaStytVhPjJFn2Ja1QhfiTGlcFFk4D/9aruog==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "4.23.0" + } + }, + "@angular-eslint/eslint-plugin-template": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-12.0.0.tgz", + "integrity": "sha512-RF8PwN2A3U4ihd7sKYUM8wgPj46M30reziLl8CPPhN3H5Hn46nksmKmHRbPNakH2gW0Ba7NIxy+ocqUy0fQpcQ==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "4.23.0", + "aria-query": "^4.2.2", + "axobject-query": "^2.2.0" + } + }, + "@angular-eslint/schematics": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-12.0.0.tgz", + "integrity": "sha512-AwYEVuAQLJfyIF5vxBL98a67ecF9U25pQSIg0xCY6DeDpIaGdORr4yg2rGYy8fTlzDQo6BctKZQOTiVX3Y3uew==", + "dev": true, + "requires": { + "@angular-eslint/eslint-plugin": "12.0.0", + "@angular-eslint/eslint-plugin-template": "12.0.0", + "ignore": "5.1.8", + "strip-json-comments": "3.1.1", + "tmp": "0.2.1" + }, + "dependencies": { + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + } + } + }, + "@angular-eslint/template-parser": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-12.0.0.tgz", + "integrity": "sha512-gl5ansA2a8LY6TEjhe0k8NiQJJdEQPjjqpysO1Rpt3NWUYQkFMt+1+AnUyokHB1TU3/11dHRUjVWXj+pMtTIAA==", + "dev": true, + "requires": { + "eslint-scope": "^5.1.0" + } + }, + "@angular/animations": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-12.2.0.tgz", + "integrity": "sha512-BCta/HT0VaM0hzsyRyb24UIaV7vlpo2jJjSwnBhO5RosH+bAaA3Faa3ps3AjCDCEXo9z99dvxJFm8WqdunPYyw==", + "requires": { + "tslib": "^2.2.0" + } + }, + "@angular/cdk": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-12.2.0.tgz", + "integrity": "sha512-Dts+KIMz6EdzQxaWBFcNwgWAHVPkI5pnOGMidKKVOmjezSUN6mhfBKq8emgsddJMRAqz/1VHMAEaRkp0VoBKiA==", + "requires": { + "parse5": "^5.0.0", + "tslib": "^2.2.0" + }, + "dependencies": { + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "optional": true + } + } + }, + "@angular/cli": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-12.2.0.tgz", + "integrity": "sha512-gxw4e3Wb1YgNE+f9sX90xea5vXatqvlYq3mOWFUWVKYcayAgnt9z97a1ULEkSytS1aVjyL44zzkU/QFufPpadQ==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1202.0", + "@angular-devkit/core": "12.2.0", + "@angular-devkit/schematics": "12.2.0", + "@schematics/angular": "12.2.0", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "4.3.2", + "ini": "2.0.0", + "inquirer": "8.1.2", + "jsonc-parser": "3.0.0", + "npm-package-arg": "8.1.5", + "npm-pick-manifest": "6.1.1", + "open": "8.2.1", + "ora": "5.4.1", + "pacote": "11.3.5", + "resolve": "1.20.0", + "semver": "7.3.5", + "symbol-observable": "4.0.0", + "uuid": "8.3.2" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + } + } + }, + "@angular/common": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-12.2.0.tgz", + "integrity": "sha512-9OaqH5WhfJ/YpN9b4TmiGHdOar/3NiGjktwG1/5jV4mTO+tOP25yNO4zCd4RuaRURipWUEa8mSaesgUgTb3jmQ==", + "requires": { + "tslib": "^2.2.0" + } + }, + "@angular/compiler": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-12.2.0.tgz", + "integrity": "sha512-24G1joE699gbAHRAIESVQBI797Q506MZ/LWyFHRjfdlfXgltDN63j5dpNJzb/rUK1/uHGGAJaEH+OE60ZK2q9Q==", + "requires": { + "tslib": "^2.2.0" + } + }, + "@angular/compiler-cli": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-12.2.0.tgz", + "integrity": "sha512-VjGb4gty8JSkmcBvdc4QzQx6mPT7cXs42Hu8IDK7dQma3nTRmwbX0BF1m7i+kbrjWHK8I85FbsYbSzfzZid2NA==", + "dev": true, + "requires": { + "@babel/core": "^7.8.6", + "@babel/types": "^7.8.6", + "canonical-path": "1.0.0", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.11.0", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "semver": "^7.0.0", + "source-map": "^0.6.1", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.2.0", + "yargs": "^17.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.0.tgz", + "integrity": "sha512-SQr7qqmQ2sNijjJGHL4u7t8vyDZdZ3Ahkmo4sc1w5xI9TBX0QDdG/g4SFnxtWOsGLjwHQue57eFALfwFCnixgg==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, + "@angular/core": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-12.2.0.tgz", + "integrity": "sha512-zy/gqSlSEmi85HVbpoQ0nhC74xoL+aoofvbkKPgdgyEcnqzBt4IFzH++0EZ+GMeZ2pVoNfiXklUhAy2OBAiR/g==", + "requires": { + "tslib": "^2.2.0" + } + }, + "@angular/forms": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-12.2.0.tgz", + "integrity": "sha512-lhKin5IHElH5qk2Su/o0YMF9JYb84grz0WMIHYmt3EASw/EGvzZwUBd76anJWWwFig6GLw/ZdNC9zLW2Leh06Q==", + "requires": { + "tslib": "^2.2.0" + } + }, + "@angular/platform-browser": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-12.2.0.tgz", + "integrity": "sha512-MIoWBhhMmPBFfuOPBgEG21uqCZVudTj4YMGxQH4iVlI9GD9ZAht8XgopN9Vw4cytPNfKWsspLoruhIWRNSJlNA==", + "requires": { + "tslib": "^2.2.0" + } + }, + "@angular/platform-browser-dynamic": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.2.0.tgz", + "integrity": "sha512-mvUo1WEI8PrJxIer0RLXSW9raYDrKarUQ9T2Q0/R3ZgS6Y1WvoJe+qSZ7K/hCbErH4zd+64TuJHlj+g2WHPLug==", + "requires": { + "tslib": "^2.2.0" + } + }, + "@angular/router": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-12.2.0.tgz", + "integrity": "sha512-C5S0bU8KtU/2wBQ76AZVFivWbGYJCDwkVg2Lk4ddjqs/pKWb0vg2Baa3DfJrIz3esqfYUJl00HMYQVM9+QtZQA==", + "requires": { + "tslib": "^2.2.0" + } + }, + "@angular/service-worker": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-12.2.0.tgz", + "integrity": "sha512-pTDUAwTCkoRZO2E3nIvJJ3Sur921oc7djBfcKiqB0+L10xvlwiPZ+jTLWndgKPfnNzbw/izZquvXjZElDazRIA==", + "requires": { + "tslib": "^2.2.0" + } + }, + "@ant-design/colors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-5.1.1.tgz", + "integrity": "sha512-Txy4KpHrp3q4XZdfgOBqLl+lkQIc3tEvHXOimRN1giX1AEC7mGtyrO9p8iRGJ3FLuVMGa2gNEzQyghVymLttKQ==", + "requires": { + "@ctrl/tinycolor": "^3.3.1" + } + }, + "@ant-design/icons-angular": { + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/@ant-design/icons-angular/-/icons-angular-12.0.3.tgz", + "integrity": "sha512-Jl/O7fQiFGsFHuesOp7Oo/TKTPSlWAqMa2DBQdgQbNzv2c3v1ijQWd54ymDC6ftIHMsKD30nJ6bekCiqdbfZuA==", + "requires": { + "@ant-design/colors": "^5.0.0", + "tslib": "^2.0.0" + } + }, + "@assemblyscript/loader": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", + "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", + "dev": true + }, + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/compat-data": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.0.tgz", + "integrity": "sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==", + "dev": true + }, + "@babel/core": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.0.tgz", + "integrity": "sha512-8YqpRig5NmIHlMLw09zMlPTvUVMILjqCOtVgu+TVNWEBvy9b5I3RRyhqnrV4hjgEK7n8P9OqvkWJAFmEL6Wwfw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.14.0", + "@babel/helper-compilation-targets": "^7.13.16", + "@babel/helper-module-transforms": "^7.14.0", + "@babel/helpers": "^7.14.0", + "@babel/parser": "^7.14.0", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.14.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.14.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.1.tgz", + "integrity": "sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.1", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", + "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz", + "integrity": "sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz", + "integrity": "sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.15", + "@babel/helper-validator-option": "^7.12.17", + "browserslist": "^4.14.5", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.0.tgz", + "integrity": "sha512-MdmDXgvTIi4heDVX/e9EFfeGpugqm9fobBVg/iioE8kueXrOHdRDe36FAY7SnE9xXLVeYCoJR/gdrBEIHRC83Q==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-member-expression-to-functions": "^7.15.0", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/helper-replace-supers": "^7.15.0", + "@babel/helper-split-export-declaration": "^7.14.5" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/generator": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", + "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", + "dev": true, + "requires": { + "@babel/types": "^7.15.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz", + "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==", + "dev": true, + "requires": { + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", + "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-replace-supers": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz", + "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.15.0", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.15.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.2.tgz", + "integrity": "sha512-bMJXql1Ss8lFnvr11TZDH4ArtwlAS5NG9qBmdiFW2UHHm6MVoR+GDc5XE2b9K938cyjc9O6/+vjjcffLDtfuDg==", + "dev": true + }, + "@babel/template": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/traverse": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", + "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.15.0", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.15.0", + "@babel/types": "^7.15.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz", + "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz", + "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz", + "integrity": "sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-function-name": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz", + "integrity": "sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.14.2" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", + "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", + "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", + "dev": true, + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-module-imports": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", + "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", + "dev": true, + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-module-transforms": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz", + "integrity": "sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-replace-supers": "^7.13.12", + "@babel/helper-simple-access": "^7.13.12", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.14.0", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.14.2", + "@babel/types": "^7.14.2" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz", + "integrity": "sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-wrap-function": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-replace-supers": { + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.3.tgz", + "integrity": "sha512-Rlh8qEWZSTfdz+tgNV/N4gz1a0TMNwCUcENhMjHTHKp3LseYH5Jha0NSlyTQWMnjbYcwFt+bqAMqSLHVXkQ6UA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.13.12", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.14.2", + "@babel/types": "^7.14.2" + } + }, + "@babel/helper-simple-access": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", + "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", + "dev": true, + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz", + "integrity": "sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz", + "integrity": "sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/generator": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", + "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", + "dev": true, + "requires": { + "@babel/types": "^7.15.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.15.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.2.tgz", + "integrity": "sha512-bMJXql1Ss8lFnvr11TZDH4ArtwlAS5NG9qBmdiFW2UHHm6MVoR+GDc5XE2b9K938cyjc9O6/+vjjcffLDtfuDg==", + "dev": true + }, + "@babel/template": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/traverse": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", + "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.15.0", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.15.0", + "@babel/types": "^7.15.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helpers": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", + "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", + "dev": true, + "requires": { + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.14.0" + } + }, + "@babel/highlight": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", + "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.3.tgz", + "integrity": "sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ==", + "dev": true + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz", + "integrity": "sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz", + "integrity": "sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.14.5", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", + "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz", + "integrity": "sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz", + "integrity": "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz", + "integrity": "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz", + "integrity": "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz", + "integrity": "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", + "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz", + "integrity": "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz", + "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.14.7", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.14.5" + }, + "dependencies": { + "@babel/compat-data": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", + "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", + "dev": true + }, + "@babel/helper-compilation-targets": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz", + "integrity": "sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.15.0", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.16.6", + "semver": "^6.3.0" + } + }, + "@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz", + "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz", + "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz", + "integrity": "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz", + "integrity": "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", + "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", + "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.14.5" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", + "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz", + "integrity": "sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.9.tgz", + "integrity": "sha512-NfZpTcxU3foGWbl4wxmZ35mTsYJy8oQocbeIMoDAGGFarAmSQlL+LWMkDx/tj6pNotpbX3rltIA4dprgAPOq5A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/generator": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", + "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", + "dev": true, + "requires": { + "@babel/types": "^7.15.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz", + "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==", + "dev": true, + "requires": { + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", + "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-replace-supers": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz", + "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.15.0", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.15.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.2.tgz", + "integrity": "sha512-bMJXql1Ss8lFnvr11TZDH4ArtwlAS5NG9qBmdiFW2UHHm6MVoR+GDc5XE2b9K938cyjc9O6/+vjjcffLDtfuDg==", + "dev": true + }, + "@babel/template": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/traverse": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", + "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.15.0", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.15.0", + "@babel/types": "^7.15.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz", + "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz", + "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz", + "integrity": "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz", + "integrity": "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", + "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz", + "integrity": "sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz", + "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/helper-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.15.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.2.tgz", + "integrity": "sha512-bMJXql1Ss8lFnvr11TZDH4ArtwlAS5NG9qBmdiFW2UHHm6MVoR+GDc5XE2b9K938cyjc9O6/+vjjcffLDtfuDg==", + "dev": true + }, + "@babel/template": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-literals": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz", + "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz", + "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz", + "integrity": "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/generator": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", + "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", + "dev": true, + "requires": { + "@babel/types": "^7.15.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz", + "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==", + "dev": true, + "requires": { + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz", + "integrity": "sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-replace-supers": "^7.15.0", + "@babel/helper-simple-access": "^7.14.8", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", + "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-replace-supers": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz", + "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.15.0", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz", + "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==", + "dev": true, + "requires": { + "@babel/types": "^7.14.8" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.15.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.2.tgz", + "integrity": "sha512-bMJXql1Ss8lFnvr11TZDH4ArtwlAS5NG9qBmdiFW2UHHm6MVoR+GDc5XE2b9K938cyjc9O6/+vjjcffLDtfuDg==", + "dev": true + }, + "@babel/template": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/traverse": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", + "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.15.0", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.15.0", + "@babel/types": "^7.15.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.0.tgz", + "integrity": "sha512-3H/R9s8cXcOGE8kgMlmjYYC9nqr5ELiPkJn4q0mypBrjhYQoc+5/Maq69vV4xRPWnkzZuwJPf5rArxpB/35Cig==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.15.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-simple-access": "^7.14.8", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/generator": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", + "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", + "dev": true, + "requires": { + "@babel/types": "^7.15.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz", + "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==", + "dev": true, + "requires": { + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz", + "integrity": "sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-replace-supers": "^7.15.0", + "@babel/helper-simple-access": "^7.14.8", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", + "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-replace-supers": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz", + "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.15.0", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz", + "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==", + "dev": true, + "requires": { + "@babel/types": "^7.14.8" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.15.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.2.tgz", + "integrity": "sha512-bMJXql1Ss8lFnvr11TZDH4ArtwlAS5NG9qBmdiFW2UHHm6MVoR+GDc5XE2b9K938cyjc9O6/+vjjcffLDtfuDg==", + "dev": true + }, + "@babel/template": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/traverse": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", + "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.15.0", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.15.0", + "@babel/types": "^7.15.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz", + "integrity": "sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/generator": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", + "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", + "dev": true, + "requires": { + "@babel/types": "^7.15.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz", + "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==", + "dev": true, + "requires": { + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz", + "integrity": "sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-replace-supers": "^7.15.0", + "@babel/helper-simple-access": "^7.14.8", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", + "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-replace-supers": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz", + "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.15.0", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz", + "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==", + "dev": true, + "requires": { + "@babel/types": "^7.14.8" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.15.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.2.tgz", + "integrity": "sha512-bMJXql1Ss8lFnvr11TZDH4ArtwlAS5NG9qBmdiFW2UHHm6MVoR+GDc5XE2b9K938cyjc9O6/+vjjcffLDtfuDg==", + "dev": true + }, + "@babel/template": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/traverse": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", + "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.15.0", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.15.0", + "@babel/types": "^7.15.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz", + "integrity": "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/generator": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", + "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", + "dev": true, + "requires": { + "@babel/types": "^7.15.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz", + "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==", + "dev": true, + "requires": { + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz", + "integrity": "sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-replace-supers": "^7.15.0", + "@babel/helper-simple-access": "^7.14.8", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.9", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", + "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-replace-supers": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz", + "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.15.0", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz", + "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==", + "dev": true, + "requires": { + "@babel/types": "^7.14.8" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.15.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.2.tgz", + "integrity": "sha512-bMJXql1Ss8lFnvr11TZDH4ArtwlAS5NG9qBmdiFW2UHHm6MVoR+GDc5XE2b9K938cyjc9O6/+vjjcffLDtfuDg==", + "dev": true + }, + "@babel/template": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/traverse": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", + "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.15.0", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.15.0", + "@babel/types": "^7.15.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz", + "integrity": "sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz", + "integrity": "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz", + "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/generator": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", + "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", + "dev": true, + "requires": { + "@babel/types": "^7.15.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz", + "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==", + "dev": true, + "requires": { + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", + "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-replace-supers": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz", + "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.15.0", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/traverse": "^7.15.0", + "@babel/types": "^7.15.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.15.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.2.tgz", + "integrity": "sha512-bMJXql1Ss8lFnvr11TZDH4ArtwlAS5NG9qBmdiFW2UHHm6MVoR+GDc5XE2b9K938cyjc9O6/+vjjcffLDtfuDg==", + "dev": true + }, + "@babel/template": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + } + }, + "@babel/traverse": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", + "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.15.0", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.15.0", + "@babel/types": "^7.15.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz", + "integrity": "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz", + "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz", + "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz", + "integrity": "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.5.tgz", + "integrity": "sha512-fPMBhh1AV8ZyneiCIA+wYYUH1arzlXR1UMcApjvchDhfKxhy2r2lReJv8uHEyihi4IFIGlr1Pdx7S5fkESDQsg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "babel-plugin-polyfill-corejs2": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-regenerator": "^0.2.2", + "semver": "^6.3.0" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz", + "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", + "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz", + "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz", + "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz", + "integrity": "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz", + "integrity": "sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz", + "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/preset-env": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.8.tgz", + "integrity": "sha512-a9aOppDU93oArQ51H+B8M1vH+tayZbuBqzjOhntGetZVa+4tTu5jp+XTwqHGG2lxslqomPYVSjIxQkFwXzgnxg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.14.7", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-async-generator-functions": "^7.14.7", + "@babel/plugin-proposal-class-properties": "^7.14.5", + "@babel/plugin-proposal-class-static-block": "^7.14.5", + "@babel/plugin-proposal-dynamic-import": "^7.14.5", + "@babel/plugin-proposal-export-namespace-from": "^7.14.5", + "@babel/plugin-proposal-json-strings": "^7.14.5", + "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", + "@babel/plugin-proposal-numeric-separator": "^7.14.5", + "@babel/plugin-proposal-object-rest-spread": "^7.14.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-private-methods": "^7.14.5", + "@babel/plugin-proposal-private-property-in-object": "^7.14.5", + "@babel/plugin-proposal-unicode-property-regex": "^7.14.5", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.14.5", + "@babel/plugin-transform-async-to-generator": "^7.14.5", + "@babel/plugin-transform-block-scoped-functions": "^7.14.5", + "@babel/plugin-transform-block-scoping": "^7.14.5", + "@babel/plugin-transform-classes": "^7.14.5", + "@babel/plugin-transform-computed-properties": "^7.14.5", + "@babel/plugin-transform-destructuring": "^7.14.7", + "@babel/plugin-transform-dotall-regex": "^7.14.5", + "@babel/plugin-transform-duplicate-keys": "^7.14.5", + "@babel/plugin-transform-exponentiation-operator": "^7.14.5", + "@babel/plugin-transform-for-of": "^7.14.5", + "@babel/plugin-transform-function-name": "^7.14.5", + "@babel/plugin-transform-literals": "^7.14.5", + "@babel/plugin-transform-member-expression-literals": "^7.14.5", + "@babel/plugin-transform-modules-amd": "^7.14.5", + "@babel/plugin-transform-modules-commonjs": "^7.14.5", + "@babel/plugin-transform-modules-systemjs": "^7.14.5", + "@babel/plugin-transform-modules-umd": "^7.14.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.7", + "@babel/plugin-transform-new-target": "^7.14.5", + "@babel/plugin-transform-object-super": "^7.14.5", + "@babel/plugin-transform-parameters": "^7.14.5", + "@babel/plugin-transform-property-literals": "^7.14.5", + "@babel/plugin-transform-regenerator": "^7.14.5", + "@babel/plugin-transform-reserved-words": "^7.14.5", + "@babel/plugin-transform-shorthand-properties": "^7.14.5", + "@babel/plugin-transform-spread": "^7.14.6", + "@babel/plugin-transform-sticky-regex": "^7.14.5", + "@babel/plugin-transform-template-literals": "^7.14.5", + "@babel/plugin-transform-typeof-symbol": "^7.14.5", + "@babel/plugin-transform-unicode-escapes": "^7.14.5", + "@babel/plugin-transform-unicode-regex": "^7.14.5", + "@babel/preset-modules": "^0.1.4", + "@babel/types": "^7.14.8", + "babel-plugin-polyfill-corejs2": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-regenerator": "^0.2.2", + "core-js-compat": "^3.15.0", + "semver": "^6.3.0" + }, + "dependencies": { + "@babel/compat-data": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", + "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", + "dev": true + }, + "@babel/helper-compilation-targets": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz", + "integrity": "sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.15.0", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.16.6", + "semver": "^6.3.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "dev": true + }, + "@babel/types": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.9", + "to-fast-properties": "^2.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz", + "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs3": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.14.0.tgz", + "integrity": "sha512-0R0HTZWHLk6G8jIk0FtoX+AatCtKnswS98VhXwGImFc759PJRp4Tru0PQYZofyijTFUr+gT8Mu7sgXVJLQ0ceg==", + "dev": true, + "requires": { + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", + "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.14.2", + "@babel/helper-function-name": "^7.14.2", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.14.2", + "@babel/types": "^7.14.2", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/generator": { + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz", + "integrity": "sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.2", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.2.tgz", + "integrity": "sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.0", + "to-fast-properties": "^2.0.0" + } + }, + "@csstools/convert-colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", + "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==", + "dev": true + }, + "@ctrl/tinycolor": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.4.0.tgz", + "integrity": "sha512-JZButFdZ1+/xAfpguQHoabIXkcqRRKpMrWKBkpEZZyxfY9C1DpADFB8PEqGSTeFr135SaTRfKqGKx5xSCLI7ZQ==" + }, + "@discoveryjs/json-ext": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz", + "integrity": "sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "globals": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "dev": true + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-1.0.0.tgz", + "integrity": "sha512-9oLAnygRMi8Q5QkYEU4XWK04B+nuoXoxjRvRxgjuChkLZFBja0YPSgdZ7dZtwhncLBcQe/I/E+fLuk5qxcYVJA==", + "dev": true + }, + "@jsdevtools/coverage-istanbul-loader": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz", + "integrity": "sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA==", + "dev": true, + "requires": { + "convert-source-map": "^1.7.0", + "istanbul-lib-instrument": "^4.0.3", + "loader-utils": "^2.0.0", + "merge-source-map": "^1.1.0", + "schema-utils": "^2.7.0" + } + }, + "@ngtools/webpack": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-12.2.0.tgz", + "integrity": "sha512-EocGfCbpPAnanDlagtlbVHpgSWE0a5NyWOY6RCw0pAxj1zL9SYMMId4X+ZJ21C23m6JqNXnWNZ4ib+LaXBIOBg==", + "dev": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + } + }, + "@npmcli/git": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", + "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", + "dev": true, + "requires": { + "@npmcli/promise-spawn": "^1.3.2", + "lru-cache": "^6.0.0", + "mkdirp": "^1.0.4", + "npm-pick-manifest": "^6.1.1", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^2.0.2" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "@npmcli/installed-package-contents": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "dev": true, + "requires": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, + "@npmcli/node-gyp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.2.tgz", + "integrity": "sha512-yrJUe6reVMpktcvagumoqD9r08fH1iRo01gn1u0zoCApa9lnZGEigVKUd2hzsCId4gdtkZZIVscLhNxMECKgRg==", + "dev": true + }, + "@npmcli/promise-spawn": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", + "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", + "dev": true, + "requires": { + "infer-owner": "^1.0.4" + } + }, + "@npmcli/run-script": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.5.tgz", + "integrity": "sha512-NQspusBCpTjNwNRFMtz2C5MxoxyzlbuJ4YEhxAKrIonTiirKDtatsZictx9RgamQIx6+QuHMNmPl0wQdoESs9A==", + "dev": true, + "requires": { + "@npmcli/node-gyp": "^1.0.2", + "@npmcli/promise-spawn": "^1.3.2", + "infer-owner": "^1.0.4", + "node-gyp": "^7.1.0", + "read-package-json-fast": "^2.0.1" + } + }, + "@schematics/angular": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-12.2.0.tgz", + "integrity": "sha512-2NolT/PNKgjINIHvz6o4sYFj4D4ai7Usf+HspQCi9W30qtLV4Z6hRXoEhmDxrGSlF67vJdwUwDM3sP+6Tg8XEw==", + "dev": true, + "requires": { + "@angular-devkit/core": "12.2.0", + "@angular-devkit/schematics": "12.2.0", + "jsonc-parser": "3.0.0" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, + "@trysound/sax": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.1.1.tgz", + "integrity": "sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow==", + "dev": true + }, + "@types/component-emitter": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz", + "integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==", + "dev": true + }, + "@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", + "dev": true + }, + "@types/eslint": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", + "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "dev": true + }, + "@types/glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/jasmine": { + "version": "3.6.11", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.6.11.tgz", + "integrity": "sha512-S6pvzQDvMZHrkBz2Mcn/8Du7cpr76PlRJBAoHnSDNbulULsH5dp0Gns+WRyNX5LHejz/ljxK4/vIHK/caHt6SQ==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "dev": true + }, + "@types/lodash": { + "version": "4.14.170", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.170.tgz", + "integrity": "sha512-bpcvu/MKHHeYX+qeEN8GE7DIravODWdACVA1ctevD8CN24RhPZIKMn9ntfAsrvLfSX3cR5RrBKAbYm9bGs0A+Q==", + "dev": true + }, + "@types/lodash-es": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.4.tgz", + "integrity": "sha512-BBz79DCJbD2CVYZH67MBeHZRX++HF+5p8Mo5MzjZi64Wac39S3diedJYHZtScbRVf4DjZyN6LzA0SB0zy+HSSQ==", + "dev": true, + "requires": { + "@types/lodash": "*" + } + }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "@types/node": { + "version": "12.20.19", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.19.tgz", + "integrity": "sha512-niAuZrwrjKck4+XhoCw6AAVQBENHftpXw9F4ryk66fTgYaKQ53R4FI7c9vUGGw5vQis1HKBHDR1gcYI/Bq1xvw==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "@types/webpack-sources": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.9.tgz", + "integrity": "sha512-bvzMnzqoK16PQIC8AYHNdW45eREJQMd6WG/msQWX5V2+vZmODCOPb4TJcbgRljTZZTwTM4wUMcsI8FftNA7new==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.23.0.tgz", + "integrity": "sha512-tGK1y3KIvdsQEEgq6xNn1DjiFJtl+wn8JJQiETtCbdQxw1vzjXyAaIkEmO2l6Nq24iy3uZBMFQjZ6ECf1QdgGw==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "4.23.0", + "@typescript-eslint/scope-manager": "4.23.0", + "debug": "^4.1.1", + "functional-red-black-tree": "^1.0.1", + "lodash": "^4.17.15", + "regexpp": "^3.0.0", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.23.0.tgz", + "integrity": "sha512-WAFNiTDnQfrF3Z2fQ05nmCgPsO5o790vOhmWKXbbYQTO9erE1/YsFot5/LnOUizLzU2eeuz6+U/81KV5/hFTGA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/scope-manager": "4.23.0", + "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/typescript-estree": "4.23.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.23.0.tgz", + "integrity": "sha512-wsvjksHBMOqySy/Pi2Q6UuIuHYbgAMwLczRl4YanEPKW5KVxI9ZzDYh3B5DtcZPQTGRWFJrfcbJ6L01Leybwug==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "4.23.0", + "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/typescript-estree": "4.23.0", + "debug": "^4.1.1" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.23.0.tgz", + "integrity": "sha512-ZZ21PCFxPhI3n0wuqEJK9omkw51wi2bmeKJvlRZPH5YFkcawKOuRMQMnI8mH6Vo0/DoHSeZJnHiIx84LmVQY+w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/visitor-keys": "4.23.0" + } + }, + "@typescript-eslint/types": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.23.0.tgz", + "integrity": "sha512-oqkNWyG2SLS7uTWLZf6Sr7Dm02gA5yxiz1RP87tvsmDsguVATdpVguHr4HoGOcFOpCvx9vtCSCyQUGfzq28YCw==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.23.0.tgz", + "integrity": "sha512-5Sty6zPEVZF5fbvrZczfmLCOcby3sfrSPu30qKoY1U3mca5/jvU5cwsPb/CO6Q3ByRjixTMIVsDkqwIxCf/dMw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.23.0", + "@typescript-eslint/visitor-keys": "4.23.0", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-glob": "^4.0.1", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.23.0.tgz", + "integrity": "sha512-5PNe5cmX9pSifit0H+nPoQBXdbNzi5tOEec+3riK+ku4e3er37pKxMKDH5Ct5Y4fhWxcD4spnlYjxi9vXbSpwg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.23.0", + "eslint-visitor-keys": "^2.0.0" + } + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", + "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true + }, + "adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + } + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "agentkeepalive": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", + "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.2.0.tgz", + "integrity": "sha512-WSNGFuyWd//XO8n/m/EaOlNLtO0yL8EXT/74LqT4khdhpZjP7lkj/kT5uwRmGitKEVp/Oj7ZUHeGfPtgHhQ5CA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-formats": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.0.tgz", + "integrity": "sha512-USH2jBb+C/hIpwD2iRjp0pe0k+MvzG0mlSn/FIdCgQhUb9ALPRjt2KIQdfZDS9r0ZIeUAg7gOu9KL0PFqGqr5Q==", + "dev": true, + "requires": { + "ajv": "^8.0.0" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", + "dev": true + }, + "babel-loader": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", + "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz", + "integrity": "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.2.2", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz", + "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.2", + "core-js-compat": "^3.14.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz", + "integrity": "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.2" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-arraybuffer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + } + }, + "btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "dev": true + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "cacache": { + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.2.0.tgz", + "integrity": "sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw==", + "dev": true, + "requires": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001228", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz", + "integrity": "sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A==", + "dev": true + }, + "canonical-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", + "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "circular-dependency-plugin": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", + "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", + "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==", + "dev": true + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colord": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.6.0.tgz", + "integrity": "sha512-8yMrtE20ZxH1YWvvSoeJFtvqY+GIAOfU+mZ3jx7ZSiEMasnAmNqD1BKUP3CuCWcy/XHgcXkLW6YU8C35nhOYVg==", + "dev": true + }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-anything": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz", + "integrity": "sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==", + "dev": true, + "requires": { + "is-what": "^3.12.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-webpack-plugin": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-9.0.1.tgz", + "integrity": "sha512-14gHKKdYIxF84jCEgPgYXCPpldbwpxxLbCmA7LReY7gvbaT555DgeBWBgBZM116tv/fO6RRJrsivBqRyRlukhw==", + "dev": true, + "requires": { + "fast-glob": "^3.2.5", + "glob-parent": "^6.0.0", + "globby": "^11.0.3", + "normalize-path": "^3.0.0", + "p-limit": "^3.1.0", + "schema-utils": "^3.0.0", + "serialize-javascript": "^6.0.0" + }, + "dependencies": { + "@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "glob-parent": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.1.tgz", + "integrity": "sha512-kEVjS71mQazDBHKcsq4E9u/vUzaLcw1A8EtUeydawvIWQCJM0qQ08G1H7/XTjFUulla6XQiDOG6MXSaG0HDKog==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "core-js": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.16.0.tgz", + "integrity": "sha512-5+5VxRFmSf97nM8Jr2wzOwLqRo6zphH2aX+7KsAUONObyzakDNq2G/bgbhinxB4PoV9L3aXQYhiDKyIKWd2c8g==", + "dev": true + }, + "core-js-compat": { + "version": "3.16.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.16.1.tgz", + "integrity": "sha512-NHXQXvRbd4nxp9TEmooTJLUf94ySUG6+DSsscBpTftN1lQLQ4LjnWvc7AoIo4UjDsFF3hB8Uh5LLCRRdaiT5MQ==", + "dev": true, + "requires": { + "browserslist": "^4.16.7", + "semver": "7.0.0" + }, + "dependencies": { + "browserslist": { + "version": "4.16.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.7.tgz", + "integrity": "sha512-7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001248", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.793", + "escalade": "^3.1.1", + "node-releases": "^1.1.73" + } + }, + "caniuse-lite": { + "version": "1.0.30001249", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001249.tgz", + "integrity": "sha512-vcX4U8lwVXPdqzPWi6cAJ3FnQaqXbBqy/GZseKNQzRj37J7qZdGcBtxq/QLFNLLlfsoXLUdHw8Iwenri86Tagw==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.799", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.799.tgz", + "integrity": "sha512-V2rbYWdGvSqrg+95KjkVuSi41bGfrhrOzjl1tSi2VLnm0mRe3FsSvhiqidSiSll9WiMhrQAhpDcW/wcqK3c+Yw==", + "dev": true + }, + "node-releases": { + "version": "1.1.73", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", + "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", + "dev": true + }, + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-js-pure": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.13.1.tgz", + "integrity": "sha512-wVlh0IAi2t1iOEh16y4u1TRk6ubd4KvLE8dlMi+3QUI6SfKphQUh7tAwihGGSQ8affxEXpVIPpOdf9kjR4v4Pw==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "critters": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.10.tgz", + "integrity": "sha512-p5VKhP1803+f+0Jq5P03w1SbiHtpAKm+1EpJHkiPxQPq0Vu9QLZHviJ02GRrWi0dlcJqrmzMWInbwp4d22RsGw==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "css": "^3.0.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "pretty-bytes": "^5.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-blank-pseudo": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", + "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==", + "dev": true, + "requires": { + "postcss": "^7.0.5" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "css-color-names": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-1.0.1.tgz", + "integrity": "sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA==", + "dev": true + }, + "css-declaration-sorter": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.1.tgz", + "integrity": "sha512-BZ1aOuif2Sb7tQYY1GeCjG7F++8ggnwUkH5Ictw0mrdpqpEd+zWmcPdstnH2TItlb74FqR0DrVEieon221T/1Q==", + "dev": true, + "requires": { + "timsort": "^0.3.0" + } + }, + "css-has-pseudo": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", + "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^5.0.0-rc.4" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "dev": true + }, + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dev": true, + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "css-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.2.0.tgz", + "integrity": "sha512-/rvHfYRjIpymZblf49w8jYcRo2y9gj6rV8UroHGmBxKrIyGLokpycyKzp9OkitvqT29ZSpzJ0Ic7SpnJX3sC8g==", + "dev": true, + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.2.15", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.1.0", + "semver": "^7.3.5" + } + }, + "css-minimizer-webpack-plugin": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.0.2.tgz", + "integrity": "sha512-B3I5e17RwvKPJwsxjjWcdgpU/zqylzK1bPVghcmpFHRL48DXiBgrtqz1BJsn68+t/zzaLp9kYAaEDvQ7GyanFQ==", + "dev": true, + "requires": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "p-limit": "^3.0.2", + "postcss": "^8.3.5", + "schema-utils": "^3.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", + "dev": true, + "requires": { + "css": "^2.0.0" + }, + "dependencies": { + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + } + } + }, + "css-prefers-color-scheme": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", + "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==", + "dev": true, + "requires": { + "postcss": "^7.0.5" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "css-select": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", + "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^5.0.0", + "domhandler": "^4.2.0", + "domutils": "^2.6.0", + "nth-check": "^2.0.0" + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-what": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", + "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==", + "dev": true + }, + "cssdb": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", + "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.7.tgz", + "integrity": "sha512-7C0tbb298hef3rq+TtBbMuezBQ9VrFtrQEsPNuBKNVgWny/67vdRsnq8EoNu7TRjAHURgYvWlRIpCUmcMZkRzw==", + "dev": true, + "requires": { + "cssnano-preset-default": "^5.1.3", + "is-resolvable": "^1.1.0", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + } + }, + "cssnano-preset-default": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.3.tgz", + "integrity": "sha512-qo9tX+t4yAAZ/yagVV3b+QBKeLklQbmgR3wI7mccrDcR+bEk9iHgZN1E7doX68y9ThznLya3RDmR+nc7l6/2WQ==", + "dev": true, + "requires": { + "css-declaration-sorter": "^6.0.3", + "cssnano-utils": "^2.0.1", + "postcss-calc": "^8.0.0", + "postcss-colormin": "^5.2.0", + "postcss-convert-values": "^5.0.1", + "postcss-discard-comments": "^5.0.1", + "postcss-discard-duplicates": "^5.0.1", + "postcss-discard-empty": "^5.0.1", + "postcss-discard-overridden": "^5.0.1", + "postcss-merge-longhand": "^5.0.2", + "postcss-merge-rules": "^5.0.2", + "postcss-minify-font-values": "^5.0.1", + "postcss-minify-gradients": "^5.0.1", + "postcss-minify-params": "^5.0.1", + "postcss-minify-selectors": "^5.1.0", + "postcss-normalize-charset": "^5.0.1", + "postcss-normalize-display-values": "^5.0.1", + "postcss-normalize-positions": "^5.0.1", + "postcss-normalize-repeat-style": "^5.0.1", + "postcss-normalize-string": "^5.0.1", + "postcss-normalize-timing-functions": "^5.0.1", + "postcss-normalize-unicode": "^5.0.1", + "postcss-normalize-url": "^5.0.2", + "postcss-normalize-whitespace": "^5.0.1", + "postcss-ordered-values": "^5.0.2", + "postcss-reduce-initial": "^5.0.1", + "postcss-reduce-transforms": "^5.0.1", + "postcss-svgo": "^5.0.2", + "postcss-unique-selectors": "^5.0.1" + } + }, + "cssnano-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz", + "integrity": "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==", + "dev": true + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + } + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-fns": { + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.23.0.tgz", + "integrity": "sha512-5ycpauovVyAk0kXNZz6ZoB9AYMZB4DObse7P3BPWmyEjXNORTI8EJ6X0uaSAq4sCHzM1uajzrkr6HnsLQpxGXA==" + }, + "date-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", + "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", + "dev": true + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "requires": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "dev": true + }, + "domhandler": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz", + "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz", + "integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "ejs": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", + "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", + "dev": true, + "requires": { + "jake": "^10.6.1" + } + }, + "electron-to-chromium": { + "version": "1.3.732", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.732.tgz", + "integrity": "sha512-qKD5Pbq+QMk4nea4lMuncUMhpEiQwaJyCW7MrvissnRcBDENhVfDmAqQYRQ3X525oTzhar9Zh1cK0L2d1UKYcw==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", + "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~4.0.0", + "ws": "~7.4.2" + }, + "dependencies": { + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "dev": true + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true + } + } + }, + "engine.io-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", + "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", + "dev": true, + "requires": { + "base64-arraybuffer": "0.1.4" + } + }, + "enhanced-resolve": { + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", + "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true + }, + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-module-lexer": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz", + "integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==", + "dev": true + }, + "esbuild": { + "version": "0.12.17", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.17.tgz", + "integrity": "sha512-GshKJyVYUnlSXIZj/NheC2O0Kblh42CS7P1wJyTbbIHevTG4jYMS9NNw8EOd8dDWD0dzydYHS01MpZoUcQXB4g==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "globals": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "eventemitter-asyncresource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", + "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "eventsource": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", + "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", + "dev": true, + "requires": { + "original": "^1.0.0" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", + "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "filelist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", + "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "filesize": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.4.0.tgz", + "integrity": "sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "dev": true + }, + "flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", + "dev": true + }, + "follow-redirects": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", + "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", + "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "requires": { + "duplexer": "^0.1.2" + } + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hdr-histogram-js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.1.tgz", + "integrity": "sha512-uPZxl1dAFnjUFHWLZmt93vUUvtHeaBay9nVNHu38SdOjMSF/4KqJUqa1Seuj08ptU1rEb6AHvB41X8n/zFZ74Q==", + "dev": true, + "requires": { + "@assemblyscript/loader": "^0.10.1", + "base64-js": "^1.2.0", + "pako": "^1.0.3" + } + }, + "hdr-histogram-percentiles-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", + "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", + "dev": true + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "hosted-git-info": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "http-parser-js": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", + "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", + "dev": true + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", + "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true + }, + "inquirer": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.1.2.tgz", + "integrity": "sha512-DHLKJwLPNgkfwNmsuEUKSejJFbkv0FMO9SMiQbjI3n5NQuCrSIBqP66ggqyz2a6t2qEolKrMjhQ3+W/xXgUQ+Q==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.3.0", + "run-async": "^2.4.0", + "rxjs": "^7.2.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "rxjs": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.3.0.tgz", + "integrity": "sha512-p2yuGIg9S1epc3vrjKf6iVb3RCaAYjYskkO+jHIaV0IjOPlJop4UnodOoFb2xeNwlguqLYvGw1b1McillYb5Gw==", + "dev": true, + "requires": { + "tslib": "~2.1.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", + "dev": true + } + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + }, + "dependencies": { + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + } + } + }, + "is-core-module": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", + "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isbinaryfile": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", + "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jake": { + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", + "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", + "dev": true, + "requires": { + "async": "0.9.x", + "chalk": "^2.4.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + } + } + }, + "jasmine-core": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.7.1.tgz", + "integrity": "sha512-DH3oYDS/AUvvr22+xUBW62m1Xoy7tUlY1tsxKEJvl5JeJ7q8zd1K5bUwiOxdH+erj6l2vAMM3hV25Xs9/WrmuQ==", + "dev": true + }, + "jest-worker": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz", + "integrity": "sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "karma": { + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.4.tgz", + "integrity": "sha512-hbhRogUYIulfkBTZT7xoPrCYhRBnBoqbbL4fszWD0ReFGUxU+LYBr3dwKdAluaDQ/ynT9/7C+Lf7pPNW4gSx4Q==", + "dev": true, + "requires": { + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "colors": "^1.4.0", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.3.0", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^3.1.0", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.28", + "yargs": "^16.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, + "karma-chrome-launcher": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", + "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", + "dev": true, + "requires": { + "which": "^1.2.1" + } + }, + "karma-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.0.3.tgz", + "integrity": "sha512-atDvLQqvPcLxhED0cmXYdsPMCQuh6Asa9FMZW1bhNqlVEhJoB9qyZ2BY1gu7D/rr5GLGb5QzYO4siQskxaWP/g==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.1", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.0", + "minimatch": "^3.0.4" + } + }, + "karma-jasmine": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz", + "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", + "dev": true, + "requires": { + "jasmine-core": "^3.6.0" + } + }, + "karma-jasmine-html-reporter": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.7.0.tgz", + "integrity": "sha512-pzum1TL7j90DTE86eFt48/s12hqwQuiD+e5aXx2Dc9wDEn2LfGq6RoAxEZZjFiN0RDSCOnosEKRZWxbQ+iMpQQ==", + "dev": true + }, + "karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "requires": { + "source-map-support": "^0.5.5" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "klona": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", + "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", + "dev": true + }, + "less": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.1.tgz", + "integrity": "sha512-w09o8tZFPThBscl5d0Ggp3RcrKIouBoQscnOMgFH3n5V3kN/CXGHNfCkRPtxJk6nKryDXaV9aHLK55RXuH4sAw==", + "dev": true, + "requires": { + "copy-anything": "^2.0.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^2.5.2", + "parse-node-version": "^1.0.1", + "source-map": "~0.6.0", + "tslib": "^1.10.0" + }, + "dependencies": { + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "optional": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "less-loader": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.0.1.tgz", + "integrity": "sha512-Crln//HpW9M5CbtdfWm3IO66Cvx1WhZQvNybXgfB2dD/6Sav9ppw+IWqs/FQKPBFO4B6X0X28Z0WNznshgwUzA==", + "dev": true, + "requires": { + "klona": "^2.0.4" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "license-webpack-plugin": { + "version": "2.3.20", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.3.20.tgz", + "integrity": "sha512-AHVueg9clOKACSHkhmEI+PCC9x8+qsQVuKECZD3ETxETK5h/PCv5/MUzyG1gm8OMcip/s1tcNxqo9Qb7WhjGsg==", + "dev": true, + "requires": { + "@types/webpack-sources": "^0.1.5", + "webpack-sources": "^1.2.0" + } + }, + "lilconfig": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz", + "integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==", + "dev": true + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "dev": true + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "log4js": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", + "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", + "dev": true, + "requires": { + "date-format": "^3.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.1", + "rfdc": "^1.1.4", + "streamroller": "^2.2.4" + }, + "dependencies": { + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + } + } + }, + "loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "make-fetch-happen": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.0.4.tgz", + "integrity": "sha512-sQWNKMYqSmbAGXqJg2jZ+PmHh5JAybvwu0xM8mZR/bsTjGiTASj3ldXJV7KFHy1k/IJIBkjxQFoWIVsv9+PQMg==", + "dev": true, + "requires": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "mem": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz", + "integrity": "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + }, + "dependencies": { + "mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "dev": true + } + } + }, + "memfs": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.2.2.tgz", + "integrity": "sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q==", + "dev": true, + "requires": { + "fs-monkey": "1.0.3" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", + "dev": true + }, + "mime-types": { + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "dev": true, + "requires": { + "mime-db": "1.49.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.1.0.tgz", + "integrity": "sha512-SV1GgjMcfqy6hW07rAniUbQE4qS3inh3v4rZEUySkPRWy3vMbS3jUCjMOvNI4lUnDlQYJEmuUqKktTCNY5koFQ==", + "dev": true, + "requires": { + "schema-utils": "^3.0.0" + }, + "dependencies": { + "@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-fetch": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.4.tgz", + "integrity": "sha512-TielGogIzbUEtd1LsjZFs47RWuHHfhl6TiCx1InVxApBAmQ8bL0dL5ilkLGcRvuyW/A9nE+Lvn855Ewz8S0PnQ==", + "dev": true, + "requires": { + "encoding": "^0.1.12", + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "requires": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "nanoid": { + "version": "3.1.23", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "needle": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.8.0.tgz", + "integrity": "sha512-ZTq6WYkN/3782H1393me3utVYdq2XyqNUFBsprEE3VMAT0+hP/cItpnITpqsY6ep2yeFE4Tqtqwc74VqUlUYtw==", + "dev": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "ng-zorro-antd": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/ng-zorro-antd/-/ng-zorro-antd-12.0.1.tgz", + "integrity": "sha512-3TDqKlLD3bYuBVF4cncfyGfWWHmEmN+I2Kr6RbLfIfyNHZL3VJbtKM9rWaXD3PTrPnGoSYnOwHbOCWvSN9kocw==", + "requires": { + "@angular/cdk": "^12.1.0", + "@ant-design/icons-angular": "^12.0.3", + "date-fns": "^2.10.0", + "tslib": "^2.2.0" + } + }, + "ngx-logger": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/ngx-logger/-/ngx-logger-4.3.3.tgz", + "integrity": "sha512-LvHBt0OWIyjwVroecgxmZVDH+9lCYYd3gSiup9wNgtK0a3f+D+h2LCb8p9RI16wqCVFqYe/QChqJA8PGJzZTcw==", + "requires": { + "tslib": "^2.0.0", + "vlq": "^1.0.0" + } + }, + "nice-napi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", + "dev": true, + "optional": true, + "requires": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" + } + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true, + "optional": true + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true + }, + "node-gyp": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", + "dev": true, + "requires": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.3", + "nopt": "^5.0.0", + "npmlog": "^4.1.2", + "request": "^2.88.2", + "rimraf": "^3.0.2", + "semver": "^7.3.2", + "tar": "^6.0.2", + "which": "^2.0.2" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "node-gyp-build": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", + "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==", + "dev": true, + "optional": true + }, + "node-releases": { + "version": "1.1.72", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.72.tgz", + "integrity": "sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==", + "dev": true + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true + }, + "npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "dev": true, + "requires": { + "semver": "^7.1.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "npm-package-arg": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "semver": "^7.3.4", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-packlist": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz", + "integrity": "sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==", + "dev": true, + "requires": { + "glob": "^7.1.6", + "ignore-walk": "^3.0.3", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", + "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", + "dev": true, + "requires": { + "npm-install-checks": "^4.0.0", + "npm-normalize-package-bin": "^1.0.1", + "npm-package-arg": "^8.1.2", + "semver": "^7.3.4" + } + }, + "npm-registry-fetch": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", + "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", + "dev": true, + "requires": { + "make-fetch-happen": "^9.0.1", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nth-check": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", + "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/open/-/open-8.2.1.tgz", + "integrity": "sha512-rXILpcQlkF/QuFez2BJDf3GsqpjGKbkUUToAIGo9A0Q6ZkoSGogZJulrUdwRkrAsoQvoZsrjCYt8+zblOk7JQQ==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + }, + "dependencies": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + } + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pacote": { + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.3.5.tgz", + "integrity": "sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg==", + "dev": true, + "requires": { + "@npmcli/git": "^2.1.0", + "@npmcli/installed-package-contents": "^1.0.6", + "@npmcli/promise-spawn": "^1.2.0", + "@npmcli/run-script": "^1.8.2", + "cacache": "^15.0.5", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "minipass": "^3.1.3", + "mkdirp": "^1.0.3", + "npm-package-arg": "^8.0.1", + "npm-packlist": "^2.1.4", + "npm-pick-manifest": "^6.0.0", + "npm-registry-fetch": "^11.0.0", + "promise-retry": "^2.0.1", + "read-package-json-fast": "^2.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.1.0" + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "parse5-html-rewriting-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", + "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", + "dev": true, + "requires": { + "parse5": "^6.0.1", + "parse5-sax-parser": "^6.0.1" + } + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + } + }, + "parse5-sax-parser": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", + "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picomatch": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", + "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "piscina": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.1.0.tgz", + "integrity": "sha512-KTW4sjsCD34MHrUbx9eAAbuUSpVj407hQSgk/6Epkg0pbRBmv4a3UX7Sr8wxm9xYqQLnsN4mFOjqGDzHAdgKQg==", + "dev": true, + "requires": { + "eventemitter-asyncresource": "^1.0.0", + "hdr-histogram-js": "^2.0.1", + "hdr-histogram-percentiles-obj": "^3.0.0", + "nice-napi": "^1.0.2" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", + "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", + "dev": true, + "requires": { + "colorette": "^1.2.2", + "nanoid": "^3.1.23", + "source-map-js": "^0.6.2" + } + }, + "postcss-attribute-case-insensitive": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", + "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^6.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-calc": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.0.0.tgz", + "integrity": "sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-color-functional-notation": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", + "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-color-gray": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", + "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", + "dev": true, + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-color-hex-alpha": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", + "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", + "dev": true, + "requires": { + "postcss": "^7.0.14", + "postcss-values-parser": "^2.0.1" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-color-mod-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", + "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", + "dev": true, + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-color-rebeccapurple": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", + "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-colormin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.0.tgz", + "integrity": "sha512-+HC6GfWU3upe5/mqmxuqYZ9B2Wl4lcoUUNkoaX59nEWV4EtADCMiBqui111Bu8R8IvaZTmqmxrqOAqjbHIwXPw==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-convert-values": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz", + "integrity": "sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-custom-media": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", + "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", + "dev": true, + "requires": { + "postcss": "^7.0.14" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-custom-properties": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", + "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", + "dev": true, + "requires": { + "postcss": "^7.0.17", + "postcss-values-parser": "^2.0.1" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-custom-selectors": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", + "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "dev": true + }, + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dev": true, + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-dir-pseudo-class": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", + "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "dev": true + }, + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dev": true, + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-comments": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz", + "integrity": "sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg==", + "dev": true + }, + "postcss-discard-duplicates": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz", + "integrity": "sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA==", + "dev": true + }, + "postcss-discard-empty": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz", + "integrity": "sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw==", + "dev": true + }, + "postcss-discard-overridden": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz", + "integrity": "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==", + "dev": true + }, + "postcss-double-position-gradients": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", + "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", + "dev": true, + "requires": { + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-env-function": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", + "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-focus-visible": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", + "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-focus-within": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", + "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-font-variant": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz", + "integrity": "sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-gap-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", + "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-image-set-function": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", + "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-import": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.2.tgz", + "integrity": "sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-initial": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.4.tgz", + "integrity": "sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-lab-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", + "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", + "dev": true, + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-loader": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.1.1.tgz", + "integrity": "sha512-lBmJMvRh1D40dqpWKr9Rpygwxn8M74U9uaCSeYGNKLGInbk9mXBt1ultHf2dH9Ghk6Ue4UXlXWwGMH9QdUJ5ug==", + "dev": true, + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.4", + "semver": "^7.3.5" + } + }, + "postcss-logical": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", + "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-media-minmax": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", + "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-merge-longhand": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz", + "integrity": "sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw==", + "dev": true, + "requires": { + "css-color-names": "^1.0.1", + "postcss-value-parser": "^4.1.0", + "stylehacks": "^5.0.1" + } + }, + "postcss-merge-rules": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz", + "integrity": "sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^2.0.1", + "postcss-selector-parser": "^6.0.5", + "vendors": "^1.0.3" + } + }, + "postcss-minify-font-values": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz", + "integrity": "sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-minify-gradients": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.1.tgz", + "integrity": "sha512-odOwBFAIn2wIv+XYRpoN2hUV3pPQlgbJ10XeXPq8UY2N+9ZG42xu45lTn/g9zZ+d70NKSQD6EOi6UiCMu3FN7g==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "is-color-stop": "^1.1.0", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-minify-params": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz", + "integrity": "sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "browserslist": "^4.16.0", + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0", + "uniqs": "^2.0.0" + } + }, + "postcss-minify-selectors": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz", + "integrity": "sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-nesting": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", + "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-charset": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz", + "integrity": "sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg==", + "dev": true + }, + "postcss-normalize-display-values": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz", + "integrity": "sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-positions": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz", + "integrity": "sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz", + "integrity": "sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-string": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz", + "integrity": "sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz", + "integrity": "sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-unicode": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz", + "integrity": "sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA==", + "dev": true, + "requires": { + "browserslist": "^4.16.0", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-url": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.2.tgz", + "integrity": "sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ==", + "dev": true, + "requires": { + "is-absolute-url": "^3.0.3", + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-whitespace": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz", + "integrity": "sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-ordered-values": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz", + "integrity": "sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-overflow-shorthand": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", + "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-page-break": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", + "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-place": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", + "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-preset-env": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", + "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==", + "dev": true, + "requires": { + "autoprefixer": "^9.6.1", + "browserslist": "^4.6.4", + "caniuse-lite": "^1.0.30000981", + "css-blank-pseudo": "^0.1.4", + "css-has-pseudo": "^0.10.0", + "css-prefers-color-scheme": "^3.1.1", + "cssdb": "^4.4.0", + "postcss": "^7.0.17", + "postcss-attribute-case-insensitive": "^4.0.1", + "postcss-color-functional-notation": "^2.0.1", + "postcss-color-gray": "^5.0.0", + "postcss-color-hex-alpha": "^5.0.3", + "postcss-color-mod-function": "^3.0.3", + "postcss-color-rebeccapurple": "^4.0.1", + "postcss-custom-media": "^7.0.8", + "postcss-custom-properties": "^8.0.11", + "postcss-custom-selectors": "^5.1.2", + "postcss-dir-pseudo-class": "^5.0.0", + "postcss-double-position-gradients": "^1.0.0", + "postcss-env-function": "^2.0.2", + "postcss-focus-visible": "^4.0.0", + "postcss-focus-within": "^3.0.0", + "postcss-font-variant": "^4.0.0", + "postcss-gap-properties": "^2.0.0", + "postcss-image-set-function": "^3.0.1", + "postcss-initial": "^3.0.0", + "postcss-lab-function": "^2.0.1", + "postcss-logical": "^3.0.0", + "postcss-media-minmax": "^4.0.0", + "postcss-nesting": "^7.0.0", + "postcss-overflow-shorthand": "^2.0.0", + "postcss-page-break": "^2.0.0", + "postcss-place": "^4.0.1", + "postcss-pseudo-class-any-link": "^6.0.0", + "postcss-replace-overflow-wrap": "^3.0.0", + "postcss-selector-matches": "^4.0.0", + "postcss-selector-not": "^4.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-pseudo-class-any-link": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", + "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", + "dev": true, + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "dev": true + }, + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dev": true, + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-reduce-initial": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz", + "integrity": "sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw==", + "dev": true, + "requires": { + "browserslist": "^4.16.0", + "caniuse-api": "^3.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz", + "integrity": "sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-replace-overflow-wrap": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", + "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", + "dev": true, + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-selector-matches": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", + "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-selector-not": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz", + "integrity": "sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-selector-parser": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", + "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.2.tgz", + "integrity": "sha512-YzQuFLZu3U3aheizD+B1joQ94vzPfE6BNUcSYuceNxlVnKKsOtdo6hL9/zyC168Q8EwfLSgaDSalsUGa9f2C0A==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0", + "svgo": "^2.3.0" + } + }, + "postcss-unique-selectors": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz", + "integrity": "sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "postcss-selector-parser": "^6.0.5", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "postcss-values-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", + "dev": true, + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "requires": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + } + } + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "requires": { + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "read-package-json-fast": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", + "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", + "dev": true, + "requires": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", + "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "dev": true, + "requires": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "dependencies": { + "postcss": { + "version": "7.0.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", + "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass": { + "version": "1.36.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.36.0.tgz", + "integrity": "sha512-fQzEjipfOv5kh930nu3Imzq3ie/sGDc/4KtQMJlt7RRdrkQSfe37Bwi/Rf/gfuYHsIuE1fIlDMvpyMcEwjnPvg==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0" + } + }, + "sass-loader": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.1.0.tgz", + "integrity": "sha512-FVJZ9kxVRYNZTIe2xhw93n3xJNYZADr+q69/s98l9nTCrWASo+DR2Ot0s5xTKQDDEosUkatsGeHxcH4QBp5bSg==", + "dev": true, + "requires": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + } + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selfsigned": { + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", + "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", + "dev": true, + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socket.io": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", + "integrity": "sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==", + "dev": true, + "requires": { + "@types/cookie": "^0.4.0", + "@types/cors": "^2.8.8", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.1", + "engine.io": "~4.1.0", + "socket.io-adapter": "~2.1.0", + "socket.io-parser": "~4.0.3" + } + }, + "socket.io-adapter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", + "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==", + "dev": true + }, + "socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "dev": true, + "requires": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + } + }, + "sockjs": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", + "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", + "dev": true, + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^3.4.0", + "websocket-driver": "^0.7.4" + } + }, + "sockjs-client": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz", + "integrity": "sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ==", + "dev": true, + "requires": { + "debug": "^3.2.6", + "eventsource": "^1.0.7", + "faye-websocket": "^0.11.3", + "inherits": "^2.0.4", + "json3": "^3.3.3", + "url-parse": "^1.5.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "socks": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", + "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "dev": true, + "requires": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", + "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", + "dev": true, + "requires": { + "agent-base": "^6.0.2", + "debug": "4", + "socks": "^2.3.3" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + }, + "source-map-explorer": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/source-map-explorer/-/source-map-explorer-2.5.2.tgz", + "integrity": "sha512-gBwOyCcHPHcdLbgw6Y6kgoH1uLKL6hN3zz0xJcNI2lpnElZliIlmSYAjUVwAWnc7+HscoTyh1ScR7ITtFuEnxg==", + "dev": true, + "requires": { + "btoa": "^1.2.1", + "chalk": "^4.1.0", + "convert-source-map": "^1.7.0", + "ejs": "^3.1.5", + "escape-html": "^1.0.3", + "glob": "^7.1.6", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "open": "^7.3.1", + "source-map": "^0.7.3", + "temp": "^0.9.4", + "yargs": "^16.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.7", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", + "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", + "dev": true + } + } + }, + "source-map-js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "dev": true + }, + "source-map-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.0.tgz", + "integrity": "sha512-GKGWqWvYr04M7tn8dryIWvb0s8YM41z82iQv01yBtIylgxax0CwvSy6gc2Y02iuXwEfGWRlMicH0nvms9UZphw==", + "dev": true, + "requires": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.2", + "source-map-js": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "streamroller": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", + "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", + "dev": true, + "requires": { + "date-format": "^2.1.0", + "debug": "^4.1.1", + "fs-extra": "^8.1.0" + }, + "dependencies": { + "date-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", + "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "dev": true + } + } + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "style-loader": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.2.1.tgz", + "integrity": "sha512-1k9ZosJCRFaRbY6hH49JFlRB0fVSbmnyq1iTPjNxUmGVjBNEmwrrHPenhlp+Lgo51BojHSf6pl2FcqYaN3PfVg==", + "dev": true + }, + "stylehacks": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.1.tgz", + "integrity": "sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA==", + "dev": true, + "requires": { + "browserslist": "^4.16.0", + "postcss-selector-parser": "^6.0.4" + } + }, + "stylus": { + "version": "0.54.8", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", + "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", + "dev": true, + "requires": { + "css-parse": "~2.0.0", + "debug": "~3.1.0", + "glob": "^7.1.6", + "mkdirp": "~1.0.4", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.3.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "stylus-loader": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-6.1.0.tgz", + "integrity": "sha512-qKO34QCsOtSJrXxQQmXsPeaVHh6hMumBAFIoJTcsSr2VzrA6o/CW9HCGR8spCjzJhN8oKQHdj/Ytx0wwXyElkw==", + "dev": true, + "requires": { + "fast-glob": "^3.2.5", + "klona": "^2.0.4", + "normalize-path": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "svgo": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.3.1.tgz", + "integrity": "sha512-riDDIQgXpEnn0BEl9Gvhh1LNLIyiusSpt64IR8upJu7MwxnzetmF/Y57pXQD2NMX2lVyMRzXt5f2M5rO4wG7Dw==", + "dev": true, + "requires": { + "@trysound/sax": "0.1.1", + "chalk": "^4.1.0", + "commander": "^7.1.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.2", + "csso": "^4.2.0", + "stable": "^0.1.8" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true + }, + "table": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", + "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0" + } + }, + "tapable": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", + "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", + "dev": true + }, + "tar": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.6.tgz", + "integrity": "sha512-oaWyu5dQbHaYcyZCTfyPpC+VmI62/OM2RTUYavTk1MDr1cwW5Boi3baeYQKiZbY2uSQJGr+iMOzb/JFxLrft+g==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "temp": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz", + "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1", + "rimraf": "~2.6.2" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "terser": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz", + "integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz", + "integrity": "sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==", + "dev": true, + "requires": { + "jest-worker": "^27.0.2", + "p-limit": "^3.1.0", + "schema-utils": "^3.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.0" + }, + "dependencies": { + "@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true + }, + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typescript": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", + "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.28", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.28.tgz", + "integrity": "sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-parse": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", + "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vlq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", + "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==" + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, + "watchpack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz", + "integrity": "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webpack": { + "version": "5.47.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.47.1.tgz", + "integrity": "sha512-cW+Mzy9SCDapFV4OrkHuP6EFV2mAsiQd+gOa3PKtHNoKg6qPqQXZzBlHH+CnQG1osplBCqwsJZ8CfGO6XWah0g==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.50", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.8.0", + "es-module-lexer": "^0.7.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.4", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.2.0", + "webpack-sources": "^3.1.1" + }, + "dependencies": { + "@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "webpack-sources": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.0.tgz", + "integrity": "sha512-fahN08Et7P9trej8xz/Z7eRu8ltyiygEo/hnRi9KqBUs80KeDcnf96ZJo++ewWd84fEf3xSX9bp4ZS9hbw0OBw==", + "dev": true + } + } + }, + "webpack-dev-middleware": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.0.0.tgz", + "integrity": "sha512-9zng2Z60pm6A98YoRcA0wSxw1EYn7B7y5owX/Tckyt9KGyULTkLtiavjaXlWqOMkM0YtqGgL3PvMOFgyFLq8vw==", + "dev": true, + "requires": { + "colorette": "^1.2.2", + "mem": "^8.1.1", + "memfs": "^3.2.2", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "webpack-dev-server": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", + "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.8", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "sockjs-client": "^1.5.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "webpack-dev-middleware": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", + "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + } + } + }, + "webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "webpack-subresource-integrity": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.2.tgz", + "integrity": "sha512-GBWYBoyalbo5YClwWop9qe6Zclp8CIXYGIz12OPclJhIrSplDxs1Ls1JDMH8xBPPrg1T6ISaTW9Y6zOrwEiAzw==", + "dev": true, + "requires": { + "webpack-sources": "^1.3.0" + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + }, + "zone.js": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.4.tgz", + "integrity": "sha512-DDh2Ab+A/B+9mJyajPjHFPWfYU1H+pdun4wnnk0OcQTNjem1XQSZ2CDW+rfZEUDjv5M19SBqAkjZi0x5wuB5Qw==", + "requires": { + "tslib": "^2.0.0" + } + } + } +} diff --git a/webapp/package.json b/webapp/package.json new file mode 100644 index 0000000..2671c1e --- /dev/null +++ b/webapp/package.json @@ -0,0 +1,55 @@ +{ + "name": "blrec", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test" + }, + "private": true, + "dependencies": { + "@angular/animations": "^12.2.0", + "@angular/cdk": "~12.2.0", + "@angular/common": "~12.2.0", + "@angular/compiler": "^12.2.0", + "@angular/core": "^12.2.0", + "@angular/forms": "~12.2.0", + "@angular/platform-browser": "~12.2.0", + "@angular/platform-browser-dynamic": "^12.2.0", + "@angular/router": "^12.2.0", + "@angular/service-worker": "~12.2.0", + "filesize": "^6.4.0", + "lodash-es": "^4.17.21", + "ng-zorro-antd": "^12.0.1", + "ngx-logger": "^4.2.2", + "rxjs": "~6.6.0", + "tslib": "^2.3.0", + "zone.js": "~0.11.4" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^12.2.0", + "@angular-eslint/builder": "12.0.0", + "@angular-eslint/eslint-plugin": "12.0.0", + "@angular-eslint/eslint-plugin-template": "12.0.0", + "@angular-eslint/schematics": "12.0.0", + "@angular-eslint/template-parser": "12.0.0", + "@angular/cli": "^12.2.0", + "@angular/compiler-cli": "^12.2.0", + "@types/jasmine": "~3.6.0", + "@types/lodash-es": "^4.17.4", + "@types/node": "^12.20.19", + "@typescript-eslint/eslint-plugin": "4.23.0", + "@typescript-eslint/parser": "4.23.0", + "eslint": "^7.32.0", + "jasmine-core": "~3.7.0", + "karma": "^6.3.4", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage": "~2.0.3", + "karma-jasmine": "~4.0.0", + "karma-jasmine-html-reporter": "^1.7.0", + "source-map-explorer": "^2.5.2", + "typescript": "~4.2.3" + } +} diff --git a/webapp/src/app/about/about-routing.module.ts b/webapp/src/app/about/about-routing.module.ts new file mode 100644 index 0000000..f3d3551 --- /dev/null +++ b/webapp/src/app/about/about-routing.module.ts @@ -0,0 +1,20 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { AboutComponent } from './about.component'; +import { AppInfoResolver } from './shared/services/app-info.resolver'; + +const routes: Routes = [ + { + path: '', + component: AboutComponent, + resolve: { + appInfo: AppInfoResolver, + }, + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class AboutRoutingModule {} diff --git a/webapp/src/app/about/about.component.html b/webapp/src/app/about/about.component.html new file mode 100644 index 0000000..62991f2 --- /dev/null +++ b/webapp/src/app/about/about.component.html @@ -0,0 +1,7 @@ +<div class="inner-content"> + <div class="about-page"> + <app-page-section> + <app-info-list [appInfo]="appInfo"></app-info-list> + </app-page-section> + </div> +</div> diff --git a/webapp/src/app/about/about.component.scss b/webapp/src/app/about/about.component.scss new file mode 100644 index 0000000..19e55ec --- /dev/null +++ b/webapp/src/app/about/about.component.scss @@ -0,0 +1,10 @@ +@use '../shared/styles/layout'; +@use '../shared/styles/list'; + +.inner-content { + @extend %inner-content; + + .about-page { + @extend %inner-page; + } +} diff --git a/webapp/src/app/about/about.component.spec.ts b/webapp/src/app/about/about.component.spec.ts new file mode 100644 index 0000000..0e0d812 --- /dev/null +++ b/webapp/src/app/about/about.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AboutComponent } from './about.component'; + +describe('AboutComponent', () => { + let component: AboutComponent; + let fixture: ComponentFixture<AboutComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ AboutComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(AboutComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/about/about.component.ts b/webapp/src/app/about/about.component.ts new file mode 100644 index 0000000..c957f53 --- /dev/null +++ b/webapp/src/app/about/about.component.ts @@ -0,0 +1,24 @@ +import { Component, OnInit, ChangeDetectorRef } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; + +import { AppInfo } from '../core/models/app.models'; + +@Component({ + selector: 'app-about', + templateUrl: './about.component.html', + styleUrls: ['./about.component.scss'], +}) +export class AboutComponent implements OnInit { + appInfo!: AppInfo; + + constructor( + private changeDetector: ChangeDetectorRef, + private route: ActivatedRoute + ) {} + ngOnInit(): void { + this.route.data.subscribe((data) => { + this.appInfo = data.appInfo; + this.changeDetector.markForCheck(); + }); + } +} diff --git a/webapp/src/app/about/about.module.ts b/webapp/src/app/about/about.module.ts new file mode 100644 index 0000000..872083c --- /dev/null +++ b/webapp/src/app/about/about.module.ts @@ -0,0 +1,25 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { AboutRoutingModule } from './about-routing.module'; +import { SharedModule } from '../shared/shared.module'; +import { AboutComponent } from './about.component'; +import { InfoListComponent } from './info-list/info-list.component'; +import { AppInfoResolver } from './shared/services/app-info.resolver'; + +@NgModule({ + declarations: [ + AboutComponent, + InfoListComponent, + ], + imports: [ + CommonModule, + AboutRoutingModule, + + SharedModule, + ], + providers: [ + AppInfoResolver, + ] +}) +export class AboutModule { } diff --git a/webapp/src/app/about/info-list/info-list.component.html b/webapp/src/app/about/info-list/info-list.component.html new file mode 100644 index 0000000..5ac8746 --- /dev/null +++ b/webapp/src/app/about/info-list/info-list.component.html @@ -0,0 +1,50 @@ +<ul class="info-list"> + <li class="info-item"> + <span class="label">当前版本</span + ><span class="desc">{{ appInfo.version }}</span> + </li> + <li class="info-item"> + <span class="label">最新版本</span + ><span class="desc">{{ latestVesion$ | async }}</span> + </li> + <li class="info-item"> + <span class="label">项目主页</span + ><span class="desc" + ><a href="https://github.com/acgnhiki/blrec" target="_blank" + >https://github.com/acgnhiki/blrec</a + ></span + > + </li> + <li class="info-item"> + <span class="label">问题反馈</span + ><span class="desc" + ><a href="https://github.com/acgnhiki/blrec/issues" target="_blank" + >https://github.com/acgnhiki/blrec/issues</a + ></span + > + </li> + <li class="info-item"> + <span class="label">许可协议</span + ><span class="desc" + ><a href="https://choosealicense.com/licenses/gpl-3.0" target="_blank" + >GNU GPLv3</a + ></span + > + </li> + <li class="info-item"> + <span class="label">联系方式</span + ><span class="desc" + ><a href="mailto:acgnhiki@outlook.com" target="_blank" + >acgnhiki@outlook.com</a + ></span + > + </li> + <li class="info-item"> + <span class="label">投喂赞助</span + ><span class="desc" + ><a href="https://afdian.net/@acgnhiki" target="_blank" + >https://afdian.net/@acgnhiki</a + ></span + > + </li> +</ul> diff --git a/webapp/src/app/about/info-list/info-list.component.scss b/webapp/src/app/about/info-list/info-list.component.scss new file mode 100644 index 0000000..1985aac --- /dev/null +++ b/webapp/src/app/about/info-list/info-list.component.scss @@ -0,0 +1,13 @@ +@use '../../shared/styles/list'; + +.info-list { + @include list.reset-list; + + .info-item { + @extend %list-item; + + .label { + @extend %item-label; + } + } +} diff --git a/webapp/src/app/about/info-list/info-list.component.spec.ts b/webapp/src/app/about/info-list/info-list.component.spec.ts new file mode 100644 index 0000000..978761f --- /dev/null +++ b/webapp/src/app/about/info-list/info-list.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { InfoListComponent } from './info-list.component'; + +describe('InfoListComponent', () => { + let component: InfoListComponent; + let fixture: ComponentFixture<InfoListComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ InfoListComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(InfoListComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/about/info-list/info-list.component.ts b/webapp/src/app/about/info-list/info-list.component.ts new file mode 100644 index 0000000..f243850 --- /dev/null +++ b/webapp/src/app/about/info-list/info-list.component.ts @@ -0,0 +1,22 @@ +import { Component, ChangeDetectionStrategy, Input } from '@angular/core'; + +import { Observable } from 'rxjs'; + +import { AppInfo } from 'src/app/core/models/app.models'; +import { UpdateService } from 'src/app/core/services/update.service'; + +@Component({ + selector: 'app-info-list', + templateUrl: './info-list.component.html', + styleUrls: ['./info-list.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class InfoListComponent { + @Input() appInfo!: AppInfo; + + latestVesion$: Observable<string>; + + constructor(updateService: UpdateService) { + this.latestVesion$ = updateService.getLatestVerisonString(); + } +} diff --git a/webapp/src/app/about/shared/services/app-info.resolver.spec.ts b/webapp/src/app/about/shared/services/app-info.resolver.spec.ts new file mode 100644 index 0000000..c8f356c --- /dev/null +++ b/webapp/src/app/about/shared/services/app-info.resolver.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { AppInfoResolver } from './app-info.resolver'; + +describe('AppInfoResolver', () => { + let resolver: AppInfoResolver; + + beforeEach(() => { + TestBed.configureTestingModule({}); + resolver = TestBed.inject(AppInfoResolver); + }); + + it('should be created', () => { + expect(resolver).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/about/shared/services/app-info.resolver.ts b/webapp/src/app/about/shared/services/app-info.resolver.ts new file mode 100644 index 0000000..427d9d5 --- /dev/null +++ b/webapp/src/app/about/shared/services/app-info.resolver.ts @@ -0,0 +1,40 @@ +import { Injectable } from '@angular/core'; +import { HttpErrorResponse } from '@angular/common/http'; +import { + Resolve, + RouterStateSnapshot, + ActivatedRouteSnapshot, +} from '@angular/router'; + +import { Observable } from 'rxjs'; +import { catchError } from 'rxjs/operators'; +import { NGXLogger } from 'ngx-logger'; +import { NzNotificationService } from 'ng-zorro-antd/notification'; + +import { AppInfo } from 'src/app/core/models/app.models'; +import { AppService } from 'src/app/core/services/app.service'; +import { retry } from 'src/app/shared/rx-operators'; + +@Injectable() +export class AppInfoResolver implements Resolve<AppInfo> { + constructor( + private logger: NGXLogger, + private notification: NzNotificationService, + private appService: AppService + ) {} + resolve( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot + ): Observable<AppInfo> { + return this.appService.getAppInfo().pipe( + retry(3, 300), + catchError((error: HttpErrorResponse) => { + this.logger.error('Failed to get app info:', error); + this.notification.error('获取后端应用信息出错', error.message, { + nzDuration: 0, + }); + throw error; + }) + ); + } +} diff --git a/webapp/src/app/app-routing.module.ts b/webapp/src/app/app-routing.module.ts new file mode 100644 index 0000000..0daa4f3 --- /dev/null +++ b/webapp/src/app/app-routing.module.ts @@ -0,0 +1,38 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule, PreloadAllModules } from '@angular/router'; + +import { PageNotFoundComponent } from './page-not-found/page-not-found.component'; +import { RouteScrollBehaviour } from './core/services/router-scroll.service.intf'; + +const routes: Routes = [ + { + path: 'tasks', + loadChildren: () => + import('./tasks/tasks.module').then((m) => m.TasksModule), + }, + { + path: 'settings', + loadChildren: () => + import('./settings/settings.module').then((m) => m.SettingsModule), + data: { + scrollBehavior: RouteScrollBehaviour.KEEP_POSITION, + }, + }, + { + path: 'about', + loadChildren: () => + import('./about/about.module').then((m) => m.AboutModule), + }, + { path: '', pathMatch: 'full', redirectTo: '/tasks' }, + { path: '**', component: PageNotFoundComponent }, +]; + +@NgModule({ + imports: [ + RouterModule.forRoot(routes, { + preloadingStrategy: PreloadAllModules, + }), + ], + exports: [RouterModule], +}) +export class AppRoutingModule {} diff --git a/webapp/src/app/app.component.html b/webapp/src/app/app.component.html new file mode 100644 index 0000000..9bf812a --- /dev/null +++ b/webapp/src/app/app.component.html @@ -0,0 +1,108 @@ +<nz-layout> + <ng-container *ngIf="!useDrawer" [ngTemplateOutlet]="sider"></ng-container> + + <ng-template #sider> + <nz-sider + class="sidebar" + [nzTheme]="theme" + [nzTrigger]="null" + nzCollapsible + [nzCollapsedWidth]="65" + [(nzCollapsed)]="collapsed" + > + <a href="/" title="Home" alt="Home"> + <div class="sidebar-header" [class.collapsed]="collapsed"> + <div class="app-logo-container"> + <img class="app-logo" alt="Logo" src="assets/images/logo.png" /> + </div> + <h1 class="app-title">{{ title }}</h1> + </div> + </a> + <nav class="sidebar-menu"> + <ul + nz-menu + nzMode="inline" + [nzTheme]="theme" + [nzInlineCollapsed]="collapsed" + > + <li + nz-menu-item + nzMatchRouter="true" + nz-tooltip + nzTooltipPlacement="right" + [nzTooltipTitle]="collapsed ? '任务' : ''" + > + <i nz-icon nzType="unordered-list" nzTheme="outline"></i> + <span><a routerLink="/tasks">任务</a></span> + </li> + <li + nz-menu-item + nzMatchRouter="true" + nz-tooltip + nzTooltipPlacement="right" + [nzTooltipTitle]="collapsed ? '设置' : ''" + > + <i nz-icon nzType="setting" nzTheme="outline"></i> + <span><a routerLink="/settings">设置</a></span> + </li> + <li + nz-menu-item + nzMatchRouter="true" + nz-tooltip + nzTooltipPlacement="right" + [nzTooltipTitle]="collapsed ? '关于' : ''" + > + <i nz-icon nzType="info-circle" nzTheme="outline"></i> + <span><a routerLink="/about">关于</a></span> + </li> + </ul> + </nav> + </nz-sider> + </ng-template> + + <nz-layout> + <nz-header class="app-header"> + <div class="sidebar-trigger"> + <i + nz-icon + [nzType]="collapsed ? 'menu-unfold' : 'menu-fold'" + (click)="collapsed = !collapsed" + ></i> + </div> + <div class="icon-actions"> + <a + class="external-link" + href="https://github.com/acgnhiki/blrec" + title="GitHub" + target="_blank" + ><i nz-icon nzType="github"></i + ></a> + </div> + </nz-header> + <nz-content class="main-content"> + <nz-spin + class="spinner" + [nzSize]="'large'" + [nzSpinning]="loading" + *ngIf="loading" + ></nz-spin> + <router-outlet></router-outlet> + </nz-content> + </nz-layout> +</nz-layout> + +<nz-drawer + *ngIf="useDrawer" + nzWidth="200px" + nzPlacement="left" + [nzBodyStyle]="{ padding: '0', overflow: 'hidden' }" + [nzClosable]="false" + [nzVisible]="!collapsed" + (nzOnClose)="collapsed = true" +> + <ng-container *nzDrawerContent> + <nz-layout> + <ng-container [ngTemplateOutlet]="sider"></ng-container> + </nz-layout> + </ng-container> +</nz-drawer> diff --git a/webapp/src/app/app.component.scss b/webapp/src/app/app.component.scss new file mode 100644 index 0000000..d947254 --- /dev/null +++ b/webapp/src/app/app.component.scss @@ -0,0 +1,136 @@ +@use './shared/styles/layout'; +@use './shared/styles/common'; + +$app-header-height: 64px; +$app-logo-size: 32px; + +:host { + --app-header-height: #{$app-header-height}; + --app-logo-size: #{$app-logo-size}; + + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + & > nz-layout { + @include layout.full-width-height; + } +} + +.sidebar { + --app-header-height: #{$app-header-height}; + --app-logo-size: #{$app-logo-size}; + + @mixin transition($property) { + transition-property: #{$property}; + transition-duration: 0.3s; + transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1); + } + + position: relative; + z-index: 10; + min-height: 100vh; + border-right: 1px solid #f0f0f0; + + .sidebar-header { + display: flex; + align-items: center; + height: var(--app-header-height); + overflow: hidden; + + .app-logo-container { + flex: none; + width: var(--app-header-height); + height: var(--app-header-height); + + @include layout.center-content; + + .app-logo { + width: var(--app-logo-size); + height: var(--app-logo-size); + } + } + + .app-title { + font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif; + font-size: 1rem; + font-weight: 600; + margin: 0; + overflow: hidden; + white-space: nowrap; + text-overflow: clip; + opacity: 1; + + @include transition("width, opacity"); + } + + &.collapsed { + .app-title { + opacity: 0; + } + } + } + + .sidebar-menu { + ul { + width: 100%; + } + } +} + +.app-header { + display: flex; + align-items: center; + position: relative; + width: 100%; + height: var(--app-header-height); + margin: 0; + padding: 0; + z-index: 2; + background: #fff; + box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); + + .sidebar-trigger { + --icon-size: 20px; + + @include layout.center-content; + + height: 100%; + width: var(--app-header-height); + + cursor: pointer; + transition: all 0.3s, padding 0s; + + &:hover { + color: #1890ff; + } + + i { + font-size: var(--icon-size); + } + } + + .icon-actions { + --icon-size: 24px; + + @include layout.center-content; + + height: 100%; + margin-left: auto; + margin-right: calc((var(--app-header-height) - var(--icon-size)) / 2); + + .external-link { + @include layout.center-content; + + color: black; + + i { + font-size: var(--icon-size); + } + } + } +} + +.main-content { + overflow: hidden; +} diff --git a/webapp/src/app/app.component.spec.ts b/webapp/src/app/app.component.spec.ts new file mode 100644 index 0000000..b582e5e --- /dev/null +++ b/webapp/src/app/app.component.spec.ts @@ -0,0 +1,35 @@ +import { TestBed } from '@angular/core/testing'; +import { RouterTestingModule } from '@angular/router/testing'; +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [ + RouterTestingModule + ], + declarations: [ + AppComponent + ], + }).compileComponents(); + }); + + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app).toBeTruthy(); + }); + + it(`should have as title 'B 站直播录制'`, () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app.title).toEqual('B 站直播录制'); + }); + + it('should render title', () => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.nativeElement; + expect(compiled.querySelector('.app-title').textContent).toContain('B 站直播录制'); + }); +}); diff --git a/webapp/src/app/app.component.ts b/webapp/src/app/app.component.ts new file mode 100644 index 0000000..356da25 --- /dev/null +++ b/webapp/src/app/app.component.ts @@ -0,0 +1,73 @@ +import { + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + OnDestroy, +} from '@angular/core'; +import { Router, NavigationEnd, NavigationStart } from '@angular/router'; +import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout'; + +import { Subject } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; + +@Component({ + selector: 'app-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class AppComponent implements OnDestroy { + title = 'B 站直播录制'; + theme: 'light' | 'dark' = 'light'; + + loading = false; + collapsed = false; + useDrawer = false; + destroyed = new Subject<void>(); + + constructor( + router: Router, + changeDetector: ChangeDetectorRef, + breakpointObserver: BreakpointObserver + ) { + router.events.subscribe((event) => { + if (event instanceof NavigationStart) { + this.loading = true; + // close the drawer + if (this.useDrawer) { + this.collapsed = true; + } + } else if (event instanceof NavigationEnd) { + this.loading = false; + } + }); + + // use drawer as side nav for x-small device + breakpointObserver + .observe(Breakpoints.XSmall) + .pipe(takeUntil(this.destroyed)) + .subscribe((state) => { + this.useDrawer = state.matches; + // ensure the drawer is closed + if (this.useDrawer) { + this.collapsed = true; + } + changeDetector.markForCheck(); + }); + + // display task cards as many as possible + // max-width: card-width(400px) * 2 + gutter(12px) + padding(12px) * 2 + sidenav(200px) + breakpointObserver + .observe('(max-width: 1036px)') + .pipe(takeUntil(this.destroyed)) + .subscribe((state) => { + this.collapsed = state.matches; + changeDetector.markForCheck(); + }); + } + + ngOnDestroy() { + this.destroyed.next(); + this.destroyed.complete(); + } +} diff --git a/webapp/src/app/app.module.ts b/webapp/src/app/app.module.ts new file mode 100644 index 0000000..7d6abe6 --- /dev/null +++ b/webapp/src/app/app.module.ts @@ -0,0 +1,69 @@ +import { NgModule } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; +import { FormsModule } from '@angular/forms'; +import { HttpClientModule } from '@angular/common/http'; +import { LayoutModule } from '@angular/cdk/layout'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { registerLocaleData } from '@angular/common'; +import zh from '@angular/common/locales/zh'; +import { ServiceWorkerModule } from '@angular/service-worker'; + +import { LoggerModule } from 'ngx-logger'; +import { NZ_I18N } from 'ng-zorro-antd/i18n'; +import { zh_CN } from 'ng-zorro-antd/i18n'; +import { NzLayoutModule } from 'ng-zorro-antd/layout'; +import { NzDrawerModule } from 'ng-zorro-antd/drawer'; +import { NzMenuModule } from 'ng-zorro-antd/menu'; +import { NzToolTipModule } from 'ng-zorro-antd/tooltip'; +import { NzBackTopModule } from 'ng-zorro-antd/back-top'; +import { NzSpinModule } from 'ng-zorro-antd/spin'; +import { NzMessageModule } from 'ng-zorro-antd/message'; +import { NzNotificationModule } from 'ng-zorro-antd/notification'; + +import { AppRoutingModule } from './app-routing.module'; +import { AppComponent } from './app.component'; +import { CoreModule } from './core/core.module'; +import { IconsProviderModule } from './icons-provider.module'; +import { PageNotFoundComponent } from './page-not-found/page-not-found.component'; +import { environment } from '../environments/environment'; +import { httpInterceptorProviders } from './core/http-interceptors'; + +registerLocaleData(zh); + +@NgModule({ + declarations: [AppComponent, PageNotFoundComponent], + imports: [ + BrowserModule, + AppRoutingModule, + FormsModule, + HttpClientModule, + LayoutModule, + BrowserAnimationsModule, + ServiceWorkerModule.register('ngsw-worker.js', { + enabled: environment.production, + // Register the ServiceWorker as soon as the app is stable + // or after 30 seconds (whichever comes first). + registrationStrategy: 'registerWhenStable:30000', + }), + + NzLayoutModule, + NzDrawerModule, + NzMenuModule, + NzToolTipModule, + NzBackTopModule, + NzSpinModule, + NzMessageModule, + NzNotificationModule, + IconsProviderModule, + LoggerModule.forRoot({ + level: environment.ngxLoggerLevel, + // serverLoggingUrl: '/api/logs', + // serverLogLevel: NgxLoggerLevel.ERROR, + }), + + CoreModule, + ], + providers: [{ provide: NZ_I18N, useValue: zh_CN }, httpInterceptorProviders], + bootstrap: [AppComponent], +}) +export class AppModule {} diff --git a/webapp/src/app/core/core.module.ts b/webapp/src/app/core/core.module.ts new file mode 100644 index 0000000..1602fc0 --- /dev/null +++ b/webapp/src/app/core/core.module.ts @@ -0,0 +1,14 @@ +import { NgModule, Optional, SkipSelf } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +@NgModule({ + declarations: [], + imports: [CommonModule], +}) +export class CoreModule { + constructor(@Optional() @SkipSelf() core: CoreModule) { + if (core) { + throw new Error('You should import core module only in the root module'); + } + } +} diff --git a/webapp/src/app/core/http-interceptors/auth.interceptor.spec.ts b/webapp/src/app/core/http-interceptors/auth.interceptor.spec.ts new file mode 100644 index 0000000..7ab58db --- /dev/null +++ b/webapp/src/app/core/http-interceptors/auth.interceptor.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { AuthInterceptor } from './auth.interceptor'; + +describe('AuthInterceptor', () => { + beforeEach(() => TestBed.configureTestingModule({ + providers: [ + AuthInterceptor + ] + })); + + it('should be created', () => { + const interceptor: AuthInterceptor = TestBed.inject(AuthInterceptor); + expect(interceptor).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/core/http-interceptors/auth.interceptor.ts b/webapp/src/app/core/http-interceptors/auth.interceptor.ts new file mode 100644 index 0000000..f285203 --- /dev/null +++ b/webapp/src/app/core/http-interceptors/auth.interceptor.ts @@ -0,0 +1,36 @@ +import { Injectable } from '@angular/core'; +import { + HttpRequest, + HttpHandler, + HttpEvent, + HttpInterceptor, + HttpErrorResponse, +} from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { AuthService } from '../services/auth.service'; +import { catchError } from 'rxjs/operators'; + +@Injectable() +export class AuthInterceptor implements HttpInterceptor { + constructor(private auth: AuthService) {} + + intercept( + request: HttpRequest<unknown>, + next: HttpHandler + ): Observable<HttpEvent<unknown>> { + return next + .handle( + request.clone({ setHeaders: { 'X-API-KEY': this.auth.getApiKey() } }) + ) + .pipe( + catchError((error: HttpErrorResponse) => { + if (error.status === 401) { + // Unauthorized + const apiKey = window.prompt('API Key:') ?? ''; + this.auth.setApiKey(apiKey); + } + throw error; + }) + ); + } +} diff --git a/webapp/src/app/core/http-interceptors/index.ts b/webapp/src/app/core/http-interceptors/index.ts new file mode 100644 index 0000000..0c70802 --- /dev/null +++ b/webapp/src/app/core/http-interceptors/index.ts @@ -0,0 +1,9 @@ +/* "Barrel" of Http Interceptors */ +import { HTTP_INTERCEPTORS } from '@angular/common/http'; + +import { AuthInterceptor } from './auth.interceptor'; + +/** Http interceptor providers in outside-in order */ +export const httpInterceptorProviders = [ + { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true }, +]; diff --git a/webapp/src/app/core/models/app.models.ts b/webapp/src/app/core/models/app.models.ts new file mode 100644 index 0000000..504e0be --- /dev/null +++ b/webapp/src/app/core/models/app.models.ts @@ -0,0 +1,16 @@ +export interface AppInfo { + name: string; + version: string; + pid: number; + ppid: number; + create_time: number; + cwd: string; + exe: string; + cmdline: string[]; +} + +export interface appStatus { + cpu_percent: number; + memory_percent: number; + num_threads: number; +} diff --git a/webapp/src/app/core/models/event.model.ts b/webapp/src/app/core/models/event.model.ts new file mode 100644 index 0000000..6fd416c --- /dev/null +++ b/webapp/src/app/core/models/event.model.ts @@ -0,0 +1,53 @@ +import { RoomInfo, UserInfo } from 'src/app/tasks/shared/task.model'; + +export type Event = + | LiveBeganEvent + | LiveEndedEvent + | RoomChangeEvent + | SpaceNoEnoughEvent + | FilesAvailableEvent; + +export interface LiveBeganEvent { + readonly type: 'LiveBeganEvent'; + readonly data: { + readonly user_info: UserInfo; + readonly room_info: RoomInfo; + }; +} + +export interface LiveEndedEvent { + readonly type: 'LiveEndedEvent'; + readonly data: { + readonly user_info: UserInfo; + readonly room_info: RoomInfo; + }; +} + +export interface RoomChangeEvent { + readonly type: 'RoomChangeEvent'; + readonly data: { + readonly room_info: RoomInfo; + }; +} + +export interface SpaceNoEnoughEvent { + readonly type: 'SpaceNoEnoughEvent'; + readonly data: { + path: string; + threshold: number; + usage: DiskUsage; + }; +} + +export interface FilesAvailableEvent { + readonly type: 'FilesAvailableEvent'; + readonly data: { + files: string[]; + }; +} + +export interface DiskUsage { + total: number; + used: number; + free: number; +} diff --git a/webapp/src/app/core/models/validation.model.ts b/webapp/src/app/core/models/validation.model.ts new file mode 100644 index 0000000..398783f --- /dev/null +++ b/webapp/src/app/core/models/validation.model.ts @@ -0,0 +1,4 @@ +export enum ERRNO { + EACCES = 13, + ENOTDIR = 20, +} diff --git a/webapp/src/app/core/services/app.service.spec.ts b/webapp/src/app/core/services/app.service.spec.ts new file mode 100644 index 0000000..3a3b746 --- /dev/null +++ b/webapp/src/app/core/services/app.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { AppService } from './app.service'; + +describe('AppService', () => { + let service: AppService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(AppService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/core/services/app.service.ts b/webapp/src/app/core/services/app.service.ts new file mode 100644 index 0000000..afa83c0 --- /dev/null +++ b/webapp/src/app/core/services/app.service.ts @@ -0,0 +1,36 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; + +import { Observable } from 'rxjs'; + +import { environment } from 'src/environments/environment'; +import { AppInfo, appStatus } from '../models/app.models'; + +const apiUrl = environment.apiUrl; + +@Injectable({ + providedIn: 'root', +}) +export class AppService { + constructor(private http: HttpClient) {} + + getAppInfo(): Observable<AppInfo> { + const url = apiUrl + `/api/v1/app/info`; + return this.http.get<AppInfo>(url); + } + + getAppStatus(): Observable<appStatus> { + const url = apiUrl + `/api/v1/app/status`; + return this.http.get<appStatus>(url); + } + + restartApp(): Observable<undefined> { + const url = apiUrl + `/api/v1/app/restart`; + return this.http.post<undefined>(url, null); + } + + exitApp(): Observable<undefined> { + const url = apiUrl + `/api/v1/app/exit`; + return this.http.post<undefined>(url, null); + } +} diff --git a/webapp/src/app/core/services/auth.service.spec.ts b/webapp/src/app/core/services/auth.service.spec.ts new file mode 100644 index 0000000..f1251ca --- /dev/null +++ b/webapp/src/app/core/services/auth.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { AuthService } from './auth.service'; + +describe('AuthService', () => { + let service: AuthService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(AuthService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/core/services/auth.service.ts b/webapp/src/app/core/services/auth.service.ts new file mode 100644 index 0000000..13a307e --- /dev/null +++ b/webapp/src/app/core/services/auth.service.ts @@ -0,0 +1,19 @@ +import { Injectable } from '@angular/core'; +import { StorageService } from './storage.service'; + +const API_KEY_STORAGE_KEY = 'app-api-key'; + +@Injectable({ + providedIn: 'root', +}) +export class AuthService { + constructor(private storage: StorageService) {} + + getApiKey(): string { + return this.storage.getData(API_KEY_STORAGE_KEY) ?? ''; + } + + setApiKey(value: string): void { + this.storage.setData(API_KEY_STORAGE_KEY, value); + } +} diff --git a/webapp/src/app/core/services/event.service.spec.ts b/webapp/src/app/core/services/event.service.spec.ts new file mode 100644 index 0000000..df6b168 --- /dev/null +++ b/webapp/src/app/core/services/event.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { EventService } from './event.service'; + +describe('EventService', () => { + let service: EventService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(EventService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/core/services/event.service.ts b/webapp/src/app/core/services/event.service.ts new file mode 100644 index 0000000..7f95aab --- /dev/null +++ b/webapp/src/app/core/services/event.service.ts @@ -0,0 +1,24 @@ +import { Injectable } from '@angular/core'; + +import { webSocket, WebSocketSubject } from 'rxjs/webSocket'; + +import { environment } from 'src/environments/environment'; +import { Event } from '../models/event.model'; + +const webSocketUrl = environment.webSocketUrl; + +@Injectable({ + providedIn: 'root', +}) +export class EventService { + private eventSubject?: WebSocketSubject<Event>; + + constructor() {} + + get events() { + if (!this.eventSubject) { + this.eventSubject = webSocket(webSocketUrl + '/ws/v1/events'); + } + return this.eventSubject; + } +} diff --git a/webapp/src/app/core/services/exception.service.spec.ts b/webapp/src/app/core/services/exception.service.spec.ts new file mode 100644 index 0000000..7306318 --- /dev/null +++ b/webapp/src/app/core/services/exception.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { ExceptionService } from './exception.service'; + +describe('ExceptionService', () => { + let service: ExceptionService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(ExceptionService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/core/services/exception.service.ts b/webapp/src/app/core/services/exception.service.ts new file mode 100644 index 0000000..b8779b0 --- /dev/null +++ b/webapp/src/app/core/services/exception.service.ts @@ -0,0 +1,24 @@ +import { Injectable } from '@angular/core'; + +import { webSocket, WebSocketSubject } from 'rxjs/webSocket'; + +import { environment } from 'src/environments/environment'; +import { Event } from '../models/event.model'; + +const webSocketUrl = environment.webSocketUrl; + +@Injectable({ + providedIn: 'root' +}) +export class ExceptionService { + private exceptionSubject?: WebSocketSubject<Event>; + + constructor() {} + + get exceptions() { + if (!this.exceptionSubject) { + this.exceptionSubject = webSocket(webSocketUrl + '/ws/v1/exceptions'); + } + return this.exceptionSubject; + } +} diff --git a/webapp/src/app/core/services/router-scroll.service.intf.ts b/webapp/src/app/core/services/router-scroll.service.intf.ts new file mode 100644 index 0000000..cd12108 --- /dev/null +++ b/webapp/src/app/core/services/router-scroll.service.intf.ts @@ -0,0 +1,122 @@ +// from https://medium.com/front-end-weekly/handling-scrolling-on-angular-router-transitions-e7652e57d964 +import { NavigationEnd, NavigationStart } from "@angular/router"; + +/** + * Service that handles scrolling back to top if/when needed, depending on the configured strategies and route config. + * Can be configured through route data, by defining the "scrollBehavior" key and setting it to a valid {RouteScrollBehaviour} value + * References + * https://www.bennadel.com/blog/3534-restoring-and-resetting-the-scroll-position-using-the-navigationstart-event-in-angular-7-0-4.htm + * Potential for improvement from there: listen to scroll events on the DOM + * https://medium.com/angular-in-depth/reactive-scroll-position-restoration-with-rxjs-792577f842c + * https://medium.com/@samisalamiger/great-article-f4f642b134ab + */ +export interface IRouterScrollService { + /** + * Provide the DOM element corresponding to the main viewport. + * That viewport is the one that will be scrolled + */ + setCustomViewportToScroll(viewport: HTMLElement): void; + + /** + * Disable scrolling the default viewport + */ + disableScrollDefaultViewport(): void; + + /** + * Enable scrolling the default viewport (enabled by default) + */ + enableScrollDefaultViewPort(): void; + + /** + * Add a strategy that applies before navigation for a partial route + * @param partialRoute the partial route to match + * @param behaviour the desired behavior + */ + addStrategyOnceBeforeNavigationForPartialRoute(partialRoute: string, behaviour: RouteScrollBehaviour): void; + + /** + * Add a strategy for a partial route + * @param partialRoute the partial route to match + * @param behaviour the desired behavior + */ + addStrategyForPartialRoute(partialRoute: string, behaviour: RouteScrollBehaviour): void; + + /** + * Remove a strategy for a partial route + * @param partialRoute the partial route to remove strategies for + */ + removeStrategyForPartialRoute(partialRoute: string): void; +} + +/** + * Scroll position restore + */ +export interface ScrollPositionRestore { + /** + * Which event to match + */ + event: NavigationStart | NavigationEnd; + /** + * Used to keep track of the known positions. + * The key is the id of the entry (according to the route ids) + * The value is the scroll position. Any is used because there are different representations + */ + positions: Record<string, any>; + /** + * Trigger to react to + * Imperative: e.g., user clicked on a link + * Popstate: e.g., browser back button + * Hashchange: e.g., change in the URL fragment + */ + trigger: "imperative" | "popstate" | "hashchange" | undefined; + /** + * Id to restore + */ + idToRestore: number; + /** + * The route's data (if any defined) + */ + routeData?: CustomRouteData; +} + +/** + * Defines a strategy to handle route scrolling. + */ +export interface RouteScrollStrategy { + /** + * Partial route path + */ + partialRoute: string; + /** + * Associated behavior + */ + behaviour: RouteScrollBehaviour; + /** + * Whether it should be applied before navigation (default is after) + */ + onceBeforeNavigation?: boolean; +} + +/** + * Defines the possible route scroll behaviors + */ +export enum RouteScrollBehaviour { + KEEP_POSITION = "KEEP_POSITION", + GO_TO_TOP = "GO_TO_TOP", +} + +/** + * Extends the default type of Angular to be more prescriptive + */ +export interface CustomRouteData { + /** + * Scroll behavior when navigating to this route + */ + scrollBehavior?: RouteScrollBehaviour; +} + +/** + * Define a set of routes for the router. + * Usually one instance defined per module in the app. + */ +export type CustomRoutes = CustomRouteData[]; diff --git a/webapp/src/app/core/services/router-scroll.service.ts b/webapp/src/app/core/services/router-scroll.service.ts new file mode 100644 index 0000000..430bfcb --- /dev/null +++ b/webapp/src/app/core/services/router-scroll.service.ts @@ -0,0 +1,281 @@ +// from https://medium.com/front-end-weekly/handling-scrolling-on-angular-router-transitions-e7652e57d964 +import { ActivatedRoute, NavigationEnd, NavigationStart, Router } from "@angular/router"; +import { Injectable, OnDestroy } from "@angular/core"; +import { ViewportScroller } from "@angular/common"; +import { filter, observeOn, scan } from "rxjs/operators"; +import { asyncScheduler, Subscription } from "rxjs"; +import { + IRouterScrollService, + RouteScrollBehaviour, + RouteScrollStrategy, + ScrollPositionRestore, +} from "./router-scroll.service.intf"; +import { NGXLogger } from "ngx-logger"; +import { environment } from 'src/environments/environment'; + +const componentName = "RouterScrollService"; + +const defaultViewportKey = `defaultViewport`; +const customViewportKey = `customViewport`; + +@Injectable({ + providedIn: 'root', +}) +export class RouterScrollService implements IRouterScrollService, OnDestroy { + private readonly scrollPositionRestorationSubscription: Subscription | null; + + /** + * Queue of strategies to add + */ + private addQueue: RouteScrollStrategy[] = []; + /** + * Queue of strategies to add for onBeforeNavigation + */ + private addBeforeNavigationQueue: RouteScrollStrategy[] = []; + /** + * Queue of strategies to remove + */ + private removeQueue: string[] = []; + /** + * Registered strategies + */ + private routeStrategies: RouteScrollStrategy[] = []; + /** + * Whether the default viewport should be scrolled if/when needed + */ + private scrollDefaultViewport = true; + /** + * Custom viewport to scroll if/when needed + */ + private customViewportToScroll: HTMLElement | null = null; + + constructor( + private readonly router: Router, + private readonly activatedRoute: ActivatedRoute, + private readonly viewportScroller: ViewportScroller, + private readonly logger: NGXLogger, + ) { + if (environment.traceRouterScrolling) { + this.logger.trace(`${componentName}:: constructor`); + } + + if (environment.traceRouterScrolling) { + this.logger.trace(`${componentName}:: Subscribing to router events`); + } + + const scrollPositionRestore$ = this.router.events.pipe( + filter((event: any) => event instanceof NavigationStart || event instanceof NavigationEnd), + // Accumulate the scroll positions + scan<NavigationEnd | NavigationStart, ScrollPositionRestore>((acc, event) => { + if (environment.traceRouterScrolling) { + this.logger.trace(`${componentName}:: Updating the known scroll positions`); + } + const positions: Record<string, any> = { + ...acc.positions, // Keep the previously known positions + }; + + if (event instanceof NavigationStart && this.scrollDefaultViewport) { + if (environment.traceRouterScrolling) { + this.logger.trace(`${componentName}:: Storing the scroll position of the default viewport`); + } + positions[`${event.id}-${defaultViewportKey}`] = this.viewportScroller.getScrollPosition(); + } + + if (event instanceof NavigationStart && this.customViewportToScroll) { + if (environment.traceRouterScrolling) { + this.logger.trace(`${componentName}:: Storing the scroll position of the custom viewport`); + } + positions[`${event.id}-${customViewportKey}`] = this.customViewportToScroll.scrollTop; + } + + const retVal: ScrollPositionRestore = { + event, + positions, + trigger: event instanceof NavigationStart ? event.navigationTrigger : acc.trigger, + idToRestore: + (event instanceof NavigationStart && event.restoredState && event.restoredState.navigationId + 1) || + acc.idToRestore, + routeData: this.activatedRoute.firstChild?.routeConfig?.data, + }; + + return retVal; + }), + filter((scrollPositionRestore: ScrollPositionRestore) => !!scrollPositionRestore.trigger), + observeOn(asyncScheduler), + ); + + this.scrollPositionRestorationSubscription = scrollPositionRestore$.subscribe( + (scrollPositionRestore: ScrollPositionRestore) => { + const existingStrategy = this.routeStrategies.find( + (strategy) => scrollPositionRestore.event.url.indexOf(strategy.partialRoute) > -1, + ); + + const existingStrategyWithKeepScrollPositionBehavior = + (existingStrategy && existingStrategy.behaviour === RouteScrollBehaviour.KEEP_POSITION) || false; + const routeDataWithKeepScrollPositionBehavior = + (scrollPositionRestore.routeData && + scrollPositionRestore.routeData.scrollBehavior && + scrollPositionRestore.routeData.scrollBehavior === RouteScrollBehaviour.KEEP_POSITION) || + false; + + const shouldKeepScrollPosition = + existingStrategyWithKeepScrollPositionBehavior || routeDataWithKeepScrollPositionBehavior; + + if (scrollPositionRestore.event instanceof NavigationEnd) { + this.processRemoveQueue(this.removeQueue); + + // Was this an imperative navigation? This helps determine if we're moving forward through a routerLink, a back button click, etc + // Reference: https://www.bennadel.com/blog/3533-using-router-events-to-detect-back-and-forward-browser-navigation-in-angular-7-0-4.htm + const imperativeTrigger = + (scrollPositionRestore.trigger && "imperative" === scrollPositionRestore.trigger) || false; + + // Should scroll to the top if + // no strategy or strategy with behavior different than keep position + // OR no route data or route data with behavior different than keep position + // OR imperative + // Reference: https://medium.com/javascript-everyday/angular-imperative-navigation-fbab18a25d8b + + // Decide whether we should scroll back to top or not + const shouldScrollToTop = !shouldKeepScrollPosition || imperativeTrigger; + + if (environment.traceRouterScrolling) { + this.logger.trace( + `${componentName}:: Existing strategy with keep position behavior? `, + existingStrategyWithKeepScrollPositionBehavior, + ); + this.logger.trace( + `${componentName}:: Route data with keep position behavior? `, + routeDataWithKeepScrollPositionBehavior, + ); + this.logger.trace(`${componentName}:: Imperative trigger? `, imperativeTrigger); + this.logger.debug(`${componentName}:: Should scroll? `, shouldScrollToTop); + } + + if (shouldScrollToTop) { + if (this.scrollDefaultViewport) { + if (environment.traceRouterScrolling) { + this.logger.debug(`${componentName}:: Scrolling the default viewport`); + } + this.viewportScroller.scrollToPosition([0, 0]); + } + if (this.customViewportToScroll) { + if (environment.traceRouterScrolling) { + this.logger.debug(`${componentName}:: Scrolling a custom viewport: `, this.customViewportToScroll); + } + this.customViewportToScroll.scrollTop = 0; + } + } else { + if (environment.traceRouterScrolling) { + this.logger.debug(`${componentName}:: Not scrolling`); + } + + if (this.scrollDefaultViewport) { + this.viewportScroller.scrollToPosition( + scrollPositionRestore.positions[`${scrollPositionRestore.idToRestore}-${defaultViewportKey}`], + ); + } + + if (this.customViewportToScroll) { + this.customViewportToScroll.scrollTop = + scrollPositionRestore.positions[`${scrollPositionRestore.idToRestore}-${customViewportKey}`]; + } + } + + this.processRemoveQueue( + this.addBeforeNavigationQueue.map((strategy) => strategy.partialRoute), + true, + ); + this.processAddQueue(this.addQueue); + this.addQueue = []; + this.removeQueue = []; + this.addBeforeNavigationQueue = []; + } else { + this.processAddQueue(this.addBeforeNavigationQueue); + } + }, + ); + } + + addStrategyOnceBeforeNavigationForPartialRoute(partialRoute: string, behaviour: RouteScrollBehaviour): void { + if (environment.traceRouterScrolling) { + this.logger.trace( + `${componentName}:: Adding a strategy once for before navigation towards [${partialRoute}]: `, + behaviour, + ); + } + this.addBeforeNavigationQueue.push({ + partialRoute: partialRoute, + behaviour: behaviour, + onceBeforeNavigation: true, + }); + } + + addStrategyForPartialRoute(partialRoute: string, behaviour: RouteScrollBehaviour): void { + if (environment.traceRouterScrolling) { + this.logger.trace(`${componentName}:: Adding a strategy for partial route: [${partialRoute}]`, behaviour); + } + this.addQueue.push({ partialRoute: partialRoute, behaviour: behaviour }); + } + + removeStrategyForPartialRoute(partialRoute: string): void { + if (environment.traceRouterScrolling) { + this.logger.trace(`${componentName}:: Removing strategory for: [${partialRoute}]: `); + } + this.removeQueue.push(partialRoute); + } + + setCustomViewportToScroll(viewport: HTMLElement): void { + if (environment.traceRouterScrolling) { + this.logger.trace(`${componentName}:: Setting a custom viewport to scroll: `, viewport); + } + this.customViewportToScroll = viewport; + } + + disableScrollDefaultViewport(): void { + if (environment.traceRouterScrolling) { + this.logger.trace(`${componentName}:: Disabling scrolling the default viewport`); + } + this.scrollDefaultViewport = false; + } + + enableScrollDefaultViewPort(): void { + if (environment.traceRouterScrolling) { + this.logger.trace(`${componentName}:: Enabling scrolling the default viewport`); + } + this.scrollDefaultViewport = true; + } + + processAddQueue(queue: any) { + for (const partialRouteToAdd of queue) { + const pos = this.routeStrategyPosition(partialRouteToAdd.partialRoute); + if (pos === -1) { + this.routeStrategies.push(partialRouteToAdd); + } + } + } + + processRemoveQueue(queue: any, removeOnceBeforeNavigation = false) { + for (const partialRouteToRemove of queue) { + const pos = this.routeStrategyPosition(partialRouteToRemove); + if (!removeOnceBeforeNavigation && pos > -1 && this.routeStrategies[pos].onceBeforeNavigation) { + continue; + } + if (pos > -1) { + this.routeStrategies.splice(pos, 1); + } + } + } + + routeStrategyPosition(partialRoute: string) { + return this.routeStrategies.map((strategy) => strategy.partialRoute).indexOf(partialRoute); + } + + ngOnDestroy(): void { + if (environment.traceRouterScrolling) { + this.logger.trace(`${componentName}:: ngOnDestroy`); + } + if (this.scrollPositionRestorationSubscription) { + this.scrollPositionRestorationSubscription.unsubscribe(); + } + } +} diff --git a/webapp/src/app/core/services/storage.service.spec.ts b/webapp/src/app/core/services/storage.service.spec.ts new file mode 100644 index 0000000..e7fe5b5 --- /dev/null +++ b/webapp/src/app/core/services/storage.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { StorageService } from './storage.service'; + +describe('StorageService', () => { + let service: StorageService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(StorageService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/core/services/storage.service.ts b/webapp/src/app/core/services/storage.service.ts new file mode 100644 index 0000000..b67dc80 --- /dev/null +++ b/webapp/src/app/core/services/storage.service.ts @@ -0,0 +1,30 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root', +}) +export class StorageService { + private impl = localStorage; + + constructor() {} + + hasData(key: string): boolean { + return this.getData(key) !== null; + } + + getData(key: string): string | null { + return this.impl.getItem(key); + } + + setData(key: string, value: string): void { + this.impl.setItem(key, value); + } + + removeData(key: string): void { + this.impl.removeItem(key); + } + + clearData(): void { + this.impl.clear(); + } +} diff --git a/webapp/src/app/core/services/update.service.spec.ts b/webapp/src/app/core/services/update.service.spec.ts new file mode 100644 index 0000000..b51fcc8 --- /dev/null +++ b/webapp/src/app/core/services/update.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { UpdateService } from './update.service'; + +describe('UpdateService', () => { + let service: UpdateService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(UpdateService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/core/services/update.service.ts b/webapp/src/app/core/services/update.service.ts new file mode 100644 index 0000000..276f206 --- /dev/null +++ b/webapp/src/app/core/services/update.service.ts @@ -0,0 +1,20 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; + +import { Observable } from 'rxjs'; + +import { environment } from 'src/environments/environment'; + +const apiUrl = environment.apiUrl; + +@Injectable({ + providedIn: 'root', +}) +export class UpdateService { + constructor(private http: HttpClient) {} + + getLatestVerisonString(): Observable<string> { + const url = apiUrl + `/api/v1/update/version/latest`; + return this.http.get<string>(url); + } +} diff --git a/webapp/src/app/core/services/validation.service.spec.ts b/webapp/src/app/core/services/validation.service.spec.ts new file mode 100644 index 0000000..f651ef8 --- /dev/null +++ b/webapp/src/app/core/services/validation.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { ValidationService } from './validation.service'; + +describe('ValidationService', () => { + let service: ValidationService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(ValidationService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/core/services/validation.service.ts b/webapp/src/app/core/services/validation.service.ts new file mode 100644 index 0000000..3395e1a --- /dev/null +++ b/webapp/src/app/core/services/validation.service.ts @@ -0,0 +1,21 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; + +import { Observable } from 'rxjs'; + +import { environment } from 'src/environments/environment'; +import { ResponseMessage } from 'src/app/shared/api.models'; + +const apiUrl = environment.apiUrl; + +@Injectable({ + providedIn: 'root', +}) +export class ValidationService { + constructor(private http: HttpClient) {} + + validateDir(path: string): Observable<ResponseMessage> { + const url = apiUrl + `/api/v1/validation/dir`; + return this.http.post<ResponseMessage>(url, { path }); + } +} diff --git a/webapp/src/app/icons-provider.module.ts b/webapp/src/app/icons-provider.module.ts new file mode 100644 index 0000000..544ba8b --- /dev/null +++ b/webapp/src/app/icons-provider.module.ts @@ -0,0 +1,21 @@ +import { NgModule } from '@angular/core'; +import { NZ_ICONS, NzIconModule } from 'ng-zorro-antd/icon'; + +import { + MenuFoldOutline, + MenuUnfoldOutline, + FormOutline, + DashboardOutline +} from '@ant-design/icons-angular/icons'; + +const icons = [MenuFoldOutline, MenuUnfoldOutline, DashboardOutline, FormOutline]; + +@NgModule({ + imports: [NzIconModule], + exports: [NzIconModule], + providers: [ + { provide: NZ_ICONS, useValue: icons } + ] +}) +export class IconsProviderModule { +} diff --git a/webapp/src/app/page-not-found/page-not-found.component.html b/webapp/src/app/page-not-found/page-not-found.component.html new file mode 100644 index 0000000..944a089 --- /dev/null +++ b/webapp/src/app/page-not-found/page-not-found.component.html @@ -0,0 +1,6 @@ +<div class="content"> + <img src="assets/images/bili-404.png" all="肥肠抱歉,你要找的页面不见了" /> + <div class="btn-wrapper"> + <a class="goback-btn" href="/">返回首页</a> + </div> +</div> diff --git a/webapp/src/app/page-not-found/page-not-found.component.scss b/webapp/src/app/page-not-found/page-not-found.component.scss new file mode 100644 index 0000000..cdb404f --- /dev/null +++ b/webapp/src/app/page-not-found/page-not-found.component.scss @@ -0,0 +1,34 @@ +@use '../shared/styles/layout'; + +.content { + @include layout.full-width-height; + @include layout.center-content; + + flex-direction: column; + + img { + max-width: 980px; + } + + .btn-wrapper { + @include layout.center-content; + + .goback-btn { + display: inline-block; + padding: 0 20px; + border-radius: 4px; + font-size: 16px; + line-height: 40px; + text-align: center; + vertical-align: middle; + color: #fff; + background: #00a1d6; + transition: 0.3s; + cursor: pointer; + + &:hover { + background: #00b5e5; + } + } + } +} diff --git a/webapp/src/app/page-not-found/page-not-found.component.spec.ts b/webapp/src/app/page-not-found/page-not-found.component.spec.ts new file mode 100644 index 0000000..aa242a9 --- /dev/null +++ b/webapp/src/app/page-not-found/page-not-found.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PageNotFoundComponent } from './page-not-found.component'; + +describe('PageNotFoundComponent', () => { + let component: PageNotFoundComponent; + let fixture: ComponentFixture<PageNotFoundComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ PageNotFoundComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(PageNotFoundComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/page-not-found/page-not-found.component.ts b/webapp/src/app/page-not-found/page-not-found.component.ts new file mode 100644 index 0000000..86818f4 --- /dev/null +++ b/webapp/src/app/page-not-found/page-not-found.component.ts @@ -0,0 +1,16 @@ +import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core'; + +@Component({ + selector: 'app-page-not-found', + templateUrl: './page-not-found.component.html', + styleUrls: ['./page-not-found.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class PageNotFoundComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/webapp/src/app/settings/danmaku-settings/danmaku-settings.component.html b/webapp/src/app/settings/danmaku-settings/danmaku-settings.component.html new file mode 100644 index 0000000..cad3ed1 --- /dev/null +++ b/webapp/src/app/settings/danmaku-settings/danmaku-settings.component.html @@ -0,0 +1,17 @@ +<form nz-form [formGroup]="settingsForm"> + <nz-form-item class="setting-item" appSwitchActionable> + <nz-form-label + class="setting-label" + nzNoColon + nzTooltipTitle="发送者: 弹幕内容" + >弹幕加用户名</nz-form-label + > + <nz-form-control + class="setting-control switch" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]="syncStatus.danmuUname ? danmuUnameControl : 'warning'" + > + <nz-switch formControlName="danmuUname"></nz-switch> + </nz-form-control> + </nz-form-item> +</form> diff --git a/webapp/src/app/settings/danmaku-settings/danmaku-settings.component.scss b/webapp/src/app/settings/danmaku-settings/danmaku-settings.component.scss new file mode 100644 index 0000000..2499289 --- /dev/null +++ b/webapp/src/app/settings/danmaku-settings/danmaku-settings.component.scss @@ -0,0 +1 @@ +@use '../shared/styles/setting'; diff --git a/webapp/src/app/settings/danmaku-settings/danmaku-settings.component.spec.ts b/webapp/src/app/settings/danmaku-settings/danmaku-settings.component.spec.ts new file mode 100644 index 0000000..60d6a92 --- /dev/null +++ b/webapp/src/app/settings/danmaku-settings/danmaku-settings.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { DanmakuSettingsComponent } from './danmaku-settings.component'; + +describe('DanmakuSettingsComponent', () => { + let component: DanmakuSettingsComponent; + let fixture: ComponentFixture<DanmakuSettingsComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ DanmakuSettingsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(DanmakuSettingsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/danmaku-settings/danmaku-settings.component.ts b/webapp/src/app/settings/danmaku-settings/danmaku-settings.component.ts new file mode 100644 index 0000000..9b7d8e6 --- /dev/null +++ b/webapp/src/app/settings/danmaku-settings/danmaku-settings.component.ts @@ -0,0 +1,66 @@ +import { + Component, + OnInit, + ChangeDetectionStrategy, + Input, + OnChanges, + ChangeDetectorRef, +} from '@angular/core'; +import { FormBuilder, FormControl, FormGroup } from '@angular/forms'; + +import { Observable } from 'rxjs'; +import mapValues from 'lodash-es/mapValues'; + +import { DanmakuSettings } from '../shared/setting.model'; +import { + SettingsSyncService, + SyncStatus, + calcSyncStatus, +} from '../shared/services/settings-sync.service'; +import { SYNC_FAILED_WARNING_TIP } from '../shared/constants/form'; + +@Component({ + selector: 'app-danmaku-settings', + templateUrl: './danmaku-settings.component.html', + styleUrls: ['./danmaku-settings.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class DanmakuSettingsComponent implements OnInit, OnChanges { + @Input() settings!: DanmakuSettings; + syncStatus!: SyncStatus<DanmakuSettings>; + + readonly settingsForm: FormGroup; + readonly syncFailedWarningTip = SYNC_FAILED_WARNING_TIP; + + constructor( + formBuilder: FormBuilder, + private changeDetector: ChangeDetectorRef, + private settingsSyncService: SettingsSyncService + ) { + this.settingsForm = formBuilder.group({ + danmuUname: [''], + }); + } + + get danmuUnameControl() { + return this.settingsForm.get('danmuUname') as FormControl; + } + + ngOnChanges(): void { + this.syncStatus = mapValues(this.settings, () => true); + this.settingsForm.setValue(this.settings); + } + + ngOnInit(): void { + this.settingsSyncService + .syncSettings( + 'danmaku', + this.settings, + this.settingsForm.valueChanges as Observable<DanmakuSettings> + ) + .subscribe((detail) => { + this.syncStatus = { ...this.syncStatus, ...calcSyncStatus(detail) }; + this.changeDetector.markForCheck(); + }); + } +} diff --git a/webapp/src/app/settings/disk-space-settings/disk-space-settings.component.html b/webapp/src/app/settings/disk-space-settings/disk-space-settings.component.html new file mode 100644 index 0000000..563df6c --- /dev/null +++ b/webapp/src/app/settings/disk-space-settings/disk-space-settings.component.html @@ -0,0 +1,49 @@ +<form nz-form [formGroup]="settingsForm"> + <nz-form-item class="setting-item"> + <nz-form-label class="setting-label" nzNoColon + >硬盘空间检测间隔</nz-form-label + > + <nz-form-control + class="setting-control select" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + syncStatus.checkInterval ? checkIntervalControl : 'warning' + " + > + <nz-select formControlName="checkInterval" [nzOptions]="intervalOptions"> + </nz-select> + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-label class="setting-label" nzNoColon + >硬盘空间检测阈值</nz-form-label + > + <nz-form-control + class="setting-control select" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + syncStatus.spaceThreshold ? spaceThresholdControl : 'warning' + " + > + <nz-select + formControlName="spaceThreshold" + [nzOptions]="thresholdOptions" + > + </nz-select> + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item" appSwitchActionable> + <nz-form-label class="setting-label" nzNoColon + >空间不足删除旧录播文件</nz-form-label + > + <nz-form-control + class="setting-control switch" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + syncStatus.recycleRecords ? recycleRecordsControl : 'warning' + " + > + <nz-switch formControlName="recycleRecords"></nz-switch> + </nz-form-control> + </nz-form-item> +</form> diff --git a/webapp/src/app/settings/disk-space-settings/disk-space-settings.component.scss b/webapp/src/app/settings/disk-space-settings/disk-space-settings.component.scss new file mode 100644 index 0000000..2499289 --- /dev/null +++ b/webapp/src/app/settings/disk-space-settings/disk-space-settings.component.scss @@ -0,0 +1 @@ +@use '../shared/styles/setting'; diff --git a/webapp/src/app/settings/disk-space-settings/disk-space-settings.component.spec.ts b/webapp/src/app/settings/disk-space-settings/disk-space-settings.component.spec.ts new file mode 100644 index 0000000..52e0cee --- /dev/null +++ b/webapp/src/app/settings/disk-space-settings/disk-space-settings.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { DiskSpaceSettingsComponent } from './disk-space-settings.component'; + +describe('DiskSpaceSettingsComponent', () => { + let component: DiskSpaceSettingsComponent; + let fixture: ComponentFixture<DiskSpaceSettingsComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ DiskSpaceSettingsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(DiskSpaceSettingsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/disk-space-settings/disk-space-settings.component.ts b/webapp/src/app/settings/disk-space-settings/disk-space-settings.component.ts new file mode 100644 index 0000000..6f229e8 --- /dev/null +++ b/webapp/src/app/settings/disk-space-settings/disk-space-settings.component.ts @@ -0,0 +1,90 @@ +import { + Component, + OnInit, + ChangeDetectionStrategy, + Input, + OnChanges, + ChangeDetectorRef, +} from '@angular/core'; +import { FormBuilder, FormControl, FormGroup } from '@angular/forms'; + +import { Observable } from 'rxjs'; +import mapValues from 'lodash-es/mapValues'; + +import { SpaceSettings } from '../shared/setting.model'; +import { + SettingsSyncService, + SyncStatus, + calcSyncStatus, +} from '../shared/services/settings-sync.service'; +import { SYNC_FAILED_WARNING_TIP } from '../shared/constants/form'; + +@Component({ + selector: 'app-disk-space-settings', + templateUrl: './disk-space-settings.component.html', + styleUrls: ['./disk-space-settings.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class DiskSpaceSettingsComponent implements OnInit, OnChanges { + @Input() settings!: SpaceSettings; + syncStatus!: SyncStatus<SpaceSettings>; + + readonly settingsForm: FormGroup; + readonly syncFailedWarningTip = SYNC_FAILED_WARNING_TIP; + + readonly intervalOptions = [ + { label: '1 分钟', value: 60 }, + { label: '3 分钟', value: 180 }, + { label: '5 分钟', value: 300 }, + { label: '10 分钟', value: 600 }, + ]; + + readonly thresholdOptions = [ + { label: '1 GB', value: 1024 ** 3 }, + { label: '3 GB', value: 1024 ** 3 * 3 }, + { label: '5 GB', value: 1024 ** 3 * 5 }, + { label: '10 GB', value: 1024 ** 3 * 10 }, + ]; + + constructor( + formBuilder: FormBuilder, + private changeDetector: ChangeDetectorRef, + private settingsSyncService: SettingsSyncService + ) { + this.settingsForm = formBuilder.group({ + recycleRecords: [''], + checkInterval: [''], + spaceThreshold: [''], + }); + } + + get recycleRecordsControl() { + return this.settingsForm.get('recycleRecords') as FormControl; + } + + get checkIntervalControl() { + return this.settingsForm.get('checkInterval') as FormControl; + } + + get spaceThresholdControl() { + return this.settingsForm.get('spaceThreshold') as FormControl; + } + + ngOnChanges(): void { + this.syncStatus = mapValues(this.settings, () => true); + this.settingsForm.setValue(this.settings); + } + + ngOnInit(): void { + this.settingsSyncService + .syncSettings( + 'space', + this.settings, + this.settingsForm.valueChanges as Observable<SpaceSettings> + ) + .subscribe((detail) => { + this.syncStatus = { ...this.syncStatus, ...calcSyncStatus(detail) }; + this.changeDetector.markForCheck(); + }); + } +} diff --git a/webapp/src/app/settings/header-settings/cookie-edit-dialog/cookie-edit-dialog.component.html b/webapp/src/app/settings/header-settings/cookie-edit-dialog/cookie-edit-dialog.component.html new file mode 100644 index 0000000..da95e7b --- /dev/null +++ b/webapp/src/app/settings/header-settings/cookie-edit-dialog/cookie-edit-dialog.component.html @@ -0,0 +1,31 @@ +<nz-modal + nzTitle="修改 Cookie" + nzOkDanger + nzCentered + [(nzVisible)]="visible" + [nzOkDisabled]="control.invalid || control.value.trim() === value" + (nzOnOk)="handleConfirm()" + (nzOnCancel)="handleCancel()" +> + <ng-container *nzModalContent> + <form nz-form [formGroup]="settingsForm"> + <nz-form-item> + <nz-form-control + [nzWarningTip]="warningTip" + [nzValidateStatus]=" + control.valid && control.value.trim() !== value + ? 'warning' + : control + " + > + <textarea + [rows]="5" + wrap="soft" + nz-input + formControlName="cookie" + ></textarea> + </nz-form-control> + </nz-form-item> + </form> + </ng-container> +</nz-modal> diff --git a/webapp/src/app/settings/header-settings/cookie-edit-dialog/cookie-edit-dialog.component.scss b/webapp/src/app/settings/header-settings/cookie-edit-dialog/cookie-edit-dialog.component.scss new file mode 100644 index 0000000..f0227e3 --- /dev/null +++ b/webapp/src/app/settings/header-settings/cookie-edit-dialog/cookie-edit-dialog.component.scss @@ -0,0 +1 @@ +@use '../../shared/styles/setting'; diff --git a/webapp/src/app/settings/header-settings/cookie-edit-dialog/cookie-edit-dialog.component.spec.ts b/webapp/src/app/settings/header-settings/cookie-edit-dialog/cookie-edit-dialog.component.spec.ts new file mode 100644 index 0000000..d625ef5 --- /dev/null +++ b/webapp/src/app/settings/header-settings/cookie-edit-dialog/cookie-edit-dialog.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { CookieEditDialogComponent } from './cookie-edit-dialog.component'; + +describe('CookieEditDialogComponent', () => { + let component: CookieEditDialogComponent; + let fixture: ComponentFixture<CookieEditDialogComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ CookieEditDialogComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(CookieEditDialogComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/header-settings/cookie-edit-dialog/cookie-edit-dialog.component.ts b/webapp/src/app/settings/header-settings/cookie-edit-dialog/cookie-edit-dialog.component.ts new file mode 100644 index 0000000..63d0a49 --- /dev/null +++ b/webapp/src/app/settings/header-settings/cookie-edit-dialog/cookie-edit-dialog.component.ts @@ -0,0 +1,75 @@ +import { + Component, + ChangeDetectionStrategy, + Input, + Output, + ChangeDetectorRef, + EventEmitter, + OnChanges, +} from '@angular/core'; +import { FormBuilder, FormControl, FormGroup } from '@angular/forms'; + +@Component({ + selector: 'app-cookie-edit-dialog', + templateUrl: './cookie-edit-dialog.component.html', + styleUrls: ['./cookie-edit-dialog.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class CookieEditDialogComponent implements OnChanges { + @Input() value = ''; + @Input() visible = false; + @Output() visibleChange = new EventEmitter<boolean>(); + @Output() cancel = new EventEmitter<undefined>(); + @Output() confirm = new EventEmitter<string>(); + + readonly settingsForm: FormGroup; + readonly warningTip = + '全部任务都需重启弹幕客户端才能生效,正在录制的任务可能会丢失弹幕!'; + + constructor( + formBuilder: FormBuilder, + private changeDetector: ChangeDetectorRef + ) { + this.settingsForm = formBuilder.group({ + cookie: [''], + }); + } + + get control() { + return this.settingsForm.get('cookie') as FormControl; + } + + ngOnChanges(): void { + this.setValue(); + } + + open(): void { + this.setValue(); + this.setVisible(true); + } + + close(): void { + this.setVisible(false); + } + + setVisible(visible: boolean): void { + this.visible = visible; + this.visibleChange.emit(visible); + this.changeDetector.markForCheck(); + } + + setValue(): void { + this.control.setValue(this.value); + this.changeDetector.markForCheck(); + } + + handleCancel(): void { + this.cancel.emit(); + this.close(); + } + + handleConfirm(): void { + this.confirm.emit(this.control.value.trim()); + this.close(); + } +} diff --git a/webapp/src/app/settings/header-settings/header-settings.component.html b/webapp/src/app/settings/header-settings/header-settings.component.html new file mode 100644 index 0000000..7ba14c3 --- /dev/null +++ b/webapp/src/app/settings/header-settings/header-settings.component.html @@ -0,0 +1,40 @@ +<form nz-form [formGroup]="settingsForm"> + <nz-form-item + class="setting-item actionable" + (click)="userAgentEditDialog.open()" + > + <nz-form-label class="setting-label">User Agent</nz-form-label> + <nz-form-control + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]="syncStatus.userAgent ? userAgentControl : 'warning'" + > + <nz-form-text class="setting-value" + >{{ userAgentControl.value }} + </nz-form-text> + <app-user-agent-edit-dialog + #userAgentEditDialog + [value]="userAgentControl.value" + (confirm)="userAgentControl.setValue($event)" + ></app-user-agent-edit-dialog> + </nz-form-control> + </nz-form-item> + <nz-form-item + class="setting-item actionable" + (click)="cookieEditDialog.open()" + > + <nz-form-label class="setting-label">Cookie</nz-form-label> + <nz-form-control + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]="syncStatus.cookie ? cookieControl : 'warning'" + > + <nz-form-text class="setting-value" + >{{ cookieControl.value }} + </nz-form-text> + <app-cookie-edit-dialog + #cookieEditDialog + [value]="cookieControl.value" + (confirm)="cookieControl.setValue($event)" + ></app-cookie-edit-dialog> + </nz-form-control> + </nz-form-item> +</form> diff --git a/webapp/src/app/settings/header-settings/header-settings.component.scss b/webapp/src/app/settings/header-settings/header-settings.component.scss new file mode 100644 index 0000000..2499289 --- /dev/null +++ b/webapp/src/app/settings/header-settings/header-settings.component.scss @@ -0,0 +1 @@ +@use '../shared/styles/setting'; diff --git a/webapp/src/app/settings/header-settings/header-settings.component.spec.ts b/webapp/src/app/settings/header-settings/header-settings.component.spec.ts new file mode 100644 index 0000000..450f407 --- /dev/null +++ b/webapp/src/app/settings/header-settings/header-settings.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { HeaderSettingsComponent } from './header-settings.component'; + +describe('HeaderSettingsComponent', () => { + let component: HeaderSettingsComponent; + let fixture: ComponentFixture<HeaderSettingsComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ HeaderSettingsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(HeaderSettingsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/header-settings/header-settings.component.ts b/webapp/src/app/settings/header-settings/header-settings.component.ts new file mode 100644 index 0000000..7580ead --- /dev/null +++ b/webapp/src/app/settings/header-settings/header-settings.component.ts @@ -0,0 +1,76 @@ +import { + Component, + OnInit, + ChangeDetectionStrategy, + Input, + OnChanges, + ChangeDetectorRef, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; + +import { Observable } from 'rxjs'; +import mapValues from 'lodash-es/mapValues'; + +import { HeaderSettings } from '../shared/setting.model'; +import { + SettingsSyncService, + SyncStatus, + calcSyncStatus, +} from '../shared/services/settings-sync.service'; +import { SYNC_FAILED_WARNING_TIP } from '../shared/constants/form'; + +@Component({ + selector: 'app-header-settings', + templateUrl: './header-settings.component.html', + styleUrls: ['./header-settings.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class HeaderSettingsComponent implements OnInit, OnChanges { + @Input() settings!: HeaderSettings; + syncStatus!: SyncStatus<HeaderSettings>; + + readonly settingsForm: FormGroup; + readonly syncFailedWarningTip = SYNC_FAILED_WARNING_TIP; + + constructor( + formBuilder: FormBuilder, + private changeDetector: ChangeDetectorRef, + private settingsSyncService: SettingsSyncService + ) { + this.settingsForm = formBuilder.group({ + userAgent: ['', [Validators.required]], + cookie: [''], + }); + } + + get userAgentControl() { + return this.settingsForm.get('userAgent') as FormControl; + } + + get cookieControl() { + return this.settingsForm.get('cookie') as FormControl; + } + + ngOnChanges(): void { + this.syncStatus = mapValues(this.settings, () => true); + this.settingsForm.setValue(this.settings); + } + + ngOnInit(): void { + this.settingsSyncService + .syncSettings( + 'header', + this.settings, + this.settingsForm.valueChanges as Observable<HeaderSettings> + ) + .subscribe((detail) => { + this.syncStatus = { ...this.syncStatus, ...calcSyncStatus(detail) }; + this.changeDetector.markForCheck(); + }); + } +} diff --git a/webapp/src/app/settings/header-settings/user-agent-edit-dialog/user-agent-edit-dialog.component.html b/webapp/src/app/settings/header-settings/user-agent-edit-dialog/user-agent-edit-dialog.component.html new file mode 100644 index 0000000..7e84bfb --- /dev/null +++ b/webapp/src/app/settings/header-settings/user-agent-edit-dialog/user-agent-edit-dialog.component.html @@ -0,0 +1,37 @@ +<nz-modal + nzTitle="修改 User Agent" + nzOkDanger + nzCentered + [(nzVisible)]="visible" + [nzOkDisabled]="control.invalid || control.value.trim() === value" + (nzOnOk)="handleConfirm()" + (nzOnCancel)="handleCancel()" +> + <ng-container *nzModalContent> + <form nz-form [formGroup]="settingsForm"> + <nz-form-item> + <nz-form-control + [nzWarningTip]="warningTip" + [nzValidateStatus]=" + control.valid && control.value.trim() !== value + ? 'warning' + : control + " + [nzErrorTip]="errorTip" + > + <textarea + [rows]="3" + required + nz-input + formControlName="userAgent" + ></textarea> + <ng-template #errorTip let-control> + <ng-container *ngIf="control.hasError('required')"> + 请输入 User Agent + </ng-container> + </ng-template> + </nz-form-control> + </nz-form-item> + </form> + </ng-container> +</nz-modal> diff --git a/webapp/src/app/settings/header-settings/user-agent-edit-dialog/user-agent-edit-dialog.component.scss b/webapp/src/app/settings/header-settings/user-agent-edit-dialog/user-agent-edit-dialog.component.scss new file mode 100644 index 0000000..f0227e3 --- /dev/null +++ b/webapp/src/app/settings/header-settings/user-agent-edit-dialog/user-agent-edit-dialog.component.scss @@ -0,0 +1 @@ +@use '../../shared/styles/setting'; diff --git a/webapp/src/app/settings/header-settings/user-agent-edit-dialog/user-agent-edit-dialog.component.spec.ts b/webapp/src/app/settings/header-settings/user-agent-edit-dialog/user-agent-edit-dialog.component.spec.ts new file mode 100644 index 0000000..4c0505b --- /dev/null +++ b/webapp/src/app/settings/header-settings/user-agent-edit-dialog/user-agent-edit-dialog.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { UserAgentEditDialogComponent } from './user-agent-edit-dialog.component'; + +describe('UserAgentEditDialogComponent', () => { + let component: UserAgentEditDialogComponent; + let fixture: ComponentFixture<UserAgentEditDialogComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ UserAgentEditDialogComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(UserAgentEditDialogComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/header-settings/user-agent-edit-dialog/user-agent-edit-dialog.component.ts b/webapp/src/app/settings/header-settings/user-agent-edit-dialog/user-agent-edit-dialog.component.ts new file mode 100644 index 0000000..662e826 --- /dev/null +++ b/webapp/src/app/settings/header-settings/user-agent-edit-dialog/user-agent-edit-dialog.component.ts @@ -0,0 +1,80 @@ +import { + Component, + ChangeDetectionStrategy, + Input, + Output, + ChangeDetectorRef, + EventEmitter, + OnChanges, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; + +@Component({ + selector: 'app-user-agent-edit-dialog', + templateUrl: './user-agent-edit-dialog.component.html', + styleUrls: ['./user-agent-edit-dialog.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class UserAgentEditDialogComponent implements OnChanges { + @Input() value = ''; + @Input() visible = false; + @Output() visibleChange = new EventEmitter<boolean>(); + @Output() cancel = new EventEmitter<undefined>(); + @Output() confirm = new EventEmitter<string>(); + + readonly settingsForm: FormGroup; + readonly warningTip = + '全部任务都需重启弹幕客户端才能生效,正在录制的任务可能会丢失弹幕!'; + + constructor( + formBuilder: FormBuilder, + private changeDetector: ChangeDetectorRef + ) { + this.settingsForm = formBuilder.group({ + userAgent: ['', [Validators.required]], + }); + } + + get control() { + return this.settingsForm.get('userAgent') as FormControl; + } + + ngOnChanges(): void { + this.setValue(); + } + + open(): void { + this.setValue(); + this.setVisible(true); + } + + close(): void { + this.setVisible(false); + } + + setVisible(visible: boolean): void { + this.visible = visible; + this.visibleChange.emit(visible); + this.changeDetector.markForCheck(); + } + + setValue(): void { + this.control.setValue(this.value); + this.changeDetector.markForCheck(); + } + + handleCancel(): void { + this.cancel.emit(); + this.close(); + } + + handleConfirm(): void { + this.confirm.emit(this.control.value.trim()); + this.close(); + } +} diff --git a/webapp/src/app/settings/logging-settings/logging-settings.component.html b/webapp/src/app/settings/logging-settings/logging-settings.component.html new file mode 100644 index 0000000..d4afc2d --- /dev/null +++ b/webapp/src/app/settings/logging-settings/logging-settings.component.html @@ -0,0 +1,48 @@ +<form nz-form [formGroup]="settingsForm"> + <nz-form-item class="setting-item" appSwitchActionable> + <nz-form-label class="setting-label" nzNoColon + >终端日志输出级别</nz-form-label + > + <nz-form-control + class="setting-control select" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + syncStatus.consoleLogLevel ? consoleLogLevelControl : 'warning' + " + > + <nz-select + formControlName="consoleLogLevel" + [nzOptions]="logLevelOptions" + > + </nz-select> + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-label class="setting-label" nzNoColon + >日志文件分割大小</nz-form-label + > + <nz-form-control + class="setting-control select" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]="syncStatus.maxBytes ? maxBytesControl : 'warning'" + > + <nz-select formControlName="maxBytes" [nzOptions]="maxBytesOptions"> + </nz-select> + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-label class="setting-label" nzNoColon + >日志文件备份数量</nz-form-label + > + <nz-form-control + class="setting-control select" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + syncStatus.backupCount ? backupCountControl : 'warning' + " + > + <nz-select formControlName="backupCount" [nzOptions]="backupOptions"> + </nz-select> + </nz-form-control> + </nz-form-item> +</form> diff --git a/webapp/src/app/settings/logging-settings/logging-settings.component.scss b/webapp/src/app/settings/logging-settings/logging-settings.component.scss new file mode 100644 index 0000000..2499289 --- /dev/null +++ b/webapp/src/app/settings/logging-settings/logging-settings.component.scss @@ -0,0 +1 @@ +@use '../shared/styles/setting'; diff --git a/webapp/src/app/settings/logging-settings/logging-settings.component.spec.ts b/webapp/src/app/settings/logging-settings/logging-settings.component.spec.ts new file mode 100644 index 0000000..2c62de3 --- /dev/null +++ b/webapp/src/app/settings/logging-settings/logging-settings.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { LoggingSettingsComponent } from './logging-settings.component'; + +describe('LoggingSettingsComponent', () => { + let component: LoggingSettingsComponent; + let fixture: ComponentFixture<LoggingSettingsComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ LoggingSettingsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(LoggingSettingsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/logging-settings/logging-settings.component.ts b/webapp/src/app/settings/logging-settings/logging-settings.component.ts new file mode 100644 index 0000000..892bfd1 --- /dev/null +++ b/webapp/src/app/settings/logging-settings/logging-settings.component.ts @@ -0,0 +1,96 @@ +import { + Component, + OnInit, + ChangeDetectionStrategy, + Input, + OnChanges, + ChangeDetectorRef, +} from '@angular/core'; +import { FormBuilder, FormControl, FormGroup } from '@angular/forms'; + +import { Observable } from 'rxjs'; +import mapValues from 'lodash-es/mapValues'; +import range from 'lodash-es/range'; + +import { LoggingSettings } from '../shared/setting.model'; +import { + SettingsSyncService, + SyncStatus, + calcSyncStatus, +} from '../shared/services/settings-sync.service'; +import { SYNC_FAILED_WARNING_TIP } from '../shared/constants/form'; + +@Component({ + selector: 'app-logging-settings', + templateUrl: './logging-settings.component.html', + styleUrls: ['./logging-settings.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class LoggingSettingsComponent implements OnInit, OnChanges { + @Input() settings!: LoggingSettings; + syncStatus!: SyncStatus<LoggingSettings>; + + readonly settingsForm: FormGroup; + readonly syncFailedWarningTip = SYNC_FAILED_WARNING_TIP; + + readonly logLevelOptions = [ + { label: 'VERBOSE', value: 'NOTSET' }, + { label: 'DEBUG', value: 'DEBUG' }, + { label: 'INFO', value: 'INFO' }, + { label: 'WARNING', value: 'WARNING' }, + { label: 'ERROR', value: 'ERROR' }, + { label: 'CRITICAL', value: 'CRITICAL' }, + ]; + + readonly maxBytesOptions = range(1, 11).map((i) => ({ + label: `${i} MB`, + value: 1024 ** 2 * i, + })); + + readonly backupOptions = range(1, 31).map((i) => ({ + label: i.toString(), + value: i, + })); + + constructor( + formBuilder: FormBuilder, + private changeDetector: ChangeDetectorRef, + private settingsSyncService: SettingsSyncService + ) { + this.settingsForm = formBuilder.group({ + consoleLogLevel: [''], + maxBytes: [''], + backupCount: [''], + }); + } + + get consoleLogLevelControl() { + return this.settingsForm.get('consoleLogLevel') as FormControl; + } + + get maxBytesControl() { + return this.settingsForm.get('maxBytes') as FormControl; + } + + get backupCountControl() { + return this.settingsForm.get('backupCount') as FormControl; + } + + ngOnChanges(): void { + this.syncStatus = mapValues(this.settings, () => true); + this.settingsForm.setValue(this.settings); + } + + ngOnInit(): void { + this.settingsSyncService + .syncSettings( + 'logging', + this.settings, + this.settingsForm.valueChanges as Observable<LoggingSettings> + ) + .subscribe((detail) => { + this.syncStatus = { ...this.syncStatus, ...calcSyncStatus(detail) }; + this.changeDetector.markForCheck(); + }); + } +} diff --git a/webapp/src/app/settings/notification-settings/email-notification-settings/email-notification-settings.component.html b/webapp/src/app/settings/notification-settings/email-notification-settings/email-notification-settings.component.html new file mode 100644 index 0000000..49f81a9 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/email-notification-settings/email-notification-settings.component.html @@ -0,0 +1,21 @@ +<app-sub-page pageTitle="邮件通知"> + <ng-template appSubPageContent> + <app-page-section> + <app-notifier-settings + [settings]="notifierSettings" + keyOfSettings="emailNotification" + ></app-notifier-settings> + </app-page-section> + + <app-page-section name="邮箱"> + <app-email-settings [settings]="emailSettings"></app-email-settings> + </app-page-section> + + <app-page-section name="事件"> + <app-event-settings + [settings]="notificationSettings" + keyOfSettings="emailNotification" + ></app-event-settings> + </app-page-section> + </ng-template> +</app-sub-page> diff --git a/webapp/src/app/settings/notification-settings/email-notification-settings/email-notification-settings.component.scss b/webapp/src/app/settings/notification-settings/email-notification-settings/email-notification-settings.component.scss new file mode 100644 index 0000000..2dbc0c8 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/email-notification-settings/email-notification-settings.component.scss @@ -0,0 +1,2 @@ + +@use '../../shared/styles/setting'; diff --git a/webapp/src/app/settings/notification-settings/email-notification-settings/email-notification-settings.component.spec.ts b/webapp/src/app/settings/notification-settings/email-notification-settings/email-notification-settings.component.spec.ts new file mode 100644 index 0000000..a59376d --- /dev/null +++ b/webapp/src/app/settings/notification-settings/email-notification-settings/email-notification-settings.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { EmailNotificationSettingsComponent } from './email-notification-settings.component'; + +describe('EmailNotificationSettingsComponent', () => { + let component: EmailNotificationSettingsComponent; + let fixture: ComponentFixture<EmailNotificationSettingsComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ EmailNotificationSettingsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(EmailNotificationSettingsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/notification-settings/email-notification-settings/email-notification-settings.component.ts b/webapp/src/app/settings/notification-settings/email-notification-settings/email-notification-settings.component.ts new file mode 100644 index 0000000..283dbab --- /dev/null +++ b/webapp/src/app/settings/notification-settings/email-notification-settings/email-notification-settings.component.ts @@ -0,0 +1,46 @@ +import { + Component, + OnInit, + ChangeDetectionStrategy, + ChangeDetectorRef, +} from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; + +import pick from 'lodash-es/pick'; + +import { + EmailNotificationSettings, + EmailSettings, + NotifierSettings, + NotificationSettings, + KEYS_OF_EMAIL_SETTINGS, + KEYS_OF_NOTIFIER_SETTINGS, + KEYS_OF_NOTIFICATION_SETTINGS, +} from '../../shared/setting.model'; + +@Component({ + selector: 'app-email-notification-settings', + templateUrl: './email-notification-settings.component.html', + styleUrls: ['./email-notification-settings.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class EmailNotificationSettingsComponent implements OnInit { + emailSettings!: EmailSettings; + notifierSettings!: NotifierSettings; + notificationSettings!: NotificationSettings; + + constructor( + private changeDetector: ChangeDetectorRef, + private route: ActivatedRoute + ) {} + + ngOnInit(): void { + this.route.data.subscribe((data) => { + const settings = data.settings as EmailNotificationSettings; + this.emailSettings = pick(settings, KEYS_OF_EMAIL_SETTINGS); + this.notifierSettings = pick(settings, KEYS_OF_NOTIFIER_SETTINGS); + this.notificationSettings = pick(settings, KEYS_OF_NOTIFICATION_SETTINGS); + this.changeDetector.markForCheck(); + }); + } +} diff --git a/webapp/src/app/settings/notification-settings/email-notification-settings/email-settings/email-settings.component.html b/webapp/src/app/settings/notification-settings/email-notification-settings/email-settings/email-settings.component.html new file mode 100644 index 0000000..75875b8 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/email-notification-settings/email-settings/email-settings.component.html @@ -0,0 +1,159 @@ +<form nz-form [formGroup]="settingsForm"> + <nz-form-item class="setting-item"> + <nz-form-label class="setting-label" nzFor="srcAddr" nzNoColon nzRequired + >发送邮箱</nz-form-label + > + <nz-form-control + class="setting-control input" + nzHasFeedback + [nzErrorTip]="emailErrorTip" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + srcAddrControl.valid && !syncStatus.srcAddr ? 'warning' : srcAddrControl + " + > + <input + id="srcAddr" + type="email" + placeholder="发送通知的邮箱地址" + required + nz-input + formControlName="srcAddr" + /> + <ng-template #emailErrorTip let-control> + <ng-container *ngIf="control.hasError('required')"> + 请输入邮箱地址! + </ng-container> + <ng-container *ngIf="control.hasError('email')"> + 邮箱地址无效! + </ng-container> + </ng-template> + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-label class="setting-label" nzFor="authCode" nzNoColon nzRequired + >授权码</nz-form-label + > + <nz-form-control + class="setting-control input" + nzHasFeedback + [nzErrorTip]="authCodeErrorTip" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + authCodeControl.valid && !syncStatus.authCode + ? 'warning' + : authCodeControl + " + > + <input + id="authCode" + type="text" + placeholder="发送邮箱的 SMTP 授权码" + required + nz-input + formControlName="authCode" + /> + <ng-template #authCodeErrorTip let-control> + <ng-container *ngIf="control.hasError('required')"> + 请输入授权码! + </ng-container> + </ng-template> + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-label class="setting-label" nzFor="smtpHost" nzNoColon nzRequired + >SMTP 主机</nz-form-label + > + <nz-form-control + class="setting-control input" + nzHasFeedback + [nzErrorTip]="smtpHostErrorTip" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + smtpHostControl.valid && !syncStatus.smtpHost + ? 'warning' + : smtpHostControl + " + > + <input + id="smtpHost" + type="text" + placeholder="发送邮箱的 SMTP 主机,例如:smtp.163.com 。" + required + nz-input + formControlName="smtpHost" + /> + <ng-template #smtpHostErrorTip let-control> + <ng-container *ngIf="control.hasError('required')"> + 请输入 SMTP 主机! + </ng-container> + </ng-template> + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-label class="setting-label" nzFor="smtpPort" nzNoColon nzRequired + >SMTP 端口</nz-form-label + > + <nz-form-control + class="setting-control input" + nzHasFeedback + [nzErrorTip]="smtpPortErrorTip" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + smtpPortControl.valid && !syncStatus.smtpPort + ? 'warning' + : smtpPortControl + " + > + <input + id="smtpPort" + type="text" + pattern="\d+" + placeholder="发送邮箱的 SMTP 主机端口,通常为 465 。" + required + nz-input + formControlName="smtpPort" + /> + <ng-template #smtpPortErrorTip let-control> + <ng-container *ngIf="control.hasError('required')"> + 请输入 SMTP 端口! + </ng-container> + <ng-container *ngIf="control.hasError('pattern')"> + SMTP 端口无效! + </ng-container> + </ng-template> + </nz-form-control> + </nz-form-item> + + <nz-form-item class="setting-item"> + <nz-form-label class="setting-label" nzFor="dstAddr" nzNoColon nzRequired + >接收邮箱</nz-form-label + > + <nz-form-control + class="setting-control input" + nzHasFeedback + [nzErrorTip]="emailErrorTip" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + dstAddrControl.valid && !syncStatus.dstAddr ? 'warning' : dstAddrControl + " + > + <input + id="dstAddr" + type="email" + placeholder="接收通知的邮箱地址,可以和发送邮箱相同实现自发自收。" + required + nz-input + formControlName="dstAddr" + /> + <ng-template #emailErrorTip let-control> + <ng-container *ngIf="control.hasError('required')"> + 请输入邮箱地址! + </ng-container> + <ng-container *ngIf="control.hasError('email')"> + 邮箱地址无效! + </ng-container> + </ng-template> + </nz-form-control> + </nz-form-item> +</form> diff --git a/webapp/src/app/settings/notification-settings/email-notification-settings/email-settings/email-settings.component.scss b/webapp/src/app/settings/notification-settings/email-notification-settings/email-settings/email-settings.component.scss new file mode 100644 index 0000000..fa612aa --- /dev/null +++ b/webapp/src/app/settings/notification-settings/email-notification-settings/email-settings/email-settings.component.scss @@ -0,0 +1,6 @@ +@use '../../../shared/styles/setting'; + +.setting-label { + max-width: 6em !important; + width: 6em !important; +} diff --git a/webapp/src/app/settings/notification-settings/email-notification-settings/email-settings/email-settings.component.spec.ts b/webapp/src/app/settings/notification-settings/email-notification-settings/email-settings/email-settings.component.spec.ts new file mode 100644 index 0000000..e2349ec --- /dev/null +++ b/webapp/src/app/settings/notification-settings/email-notification-settings/email-settings/email-settings.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { EmailSettingsComponent } from './email-settings.component'; + +describe('EmailSettingsComponent', () => { + let component: EmailSettingsComponent; + let fixture: ComponentFixture<EmailSettingsComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ EmailSettingsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(EmailSettingsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/notification-settings/email-notification-settings/email-settings/email-settings.component.ts b/webapp/src/app/settings/notification-settings/email-notification-settings/email-settings/email-settings.component.ts new file mode 100644 index 0000000..7c8b9b8 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/email-notification-settings/email-settings/email-settings.component.ts @@ -0,0 +1,105 @@ +import { + Component, + OnInit, + ChangeDetectionStrategy, + Input, + OnChanges, + ChangeDetectorRef, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; + +import { map } from 'rxjs/operators'; +import transform from 'lodash-es/transform'; +import mapValues from 'lodash-es/mapValues'; + +import { EmailSettings } from '../../../shared/setting.model'; +import { filterValueChanges } from '../../../shared/rx-operators'; +import { + SettingsSyncService, + SyncStatus, + calcSyncStatus, +} from '../../../shared/services/settings-sync.service'; +import { SYNC_FAILED_WARNING_TIP } from 'src/app/settings/shared/constants/form'; + +@Component({ + selector: 'app-email-settings', + templateUrl: './email-settings.component.html', + styleUrls: ['./email-settings.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class EmailSettingsComponent implements OnInit, OnChanges { + @Input() settings!: EmailSettings; + syncStatus!: SyncStatus<EmailSettings>; + + readonly settingsForm: FormGroup; + readonly syncFailedWarningTip = SYNC_FAILED_WARNING_TIP; + + constructor( + formBuilder: FormBuilder, + private changeDetector: ChangeDetectorRef, + private settingsSyncService: SettingsSyncService + ) { + this.settingsForm = formBuilder.group({ + srcAddr: ['', [Validators.required, Validators.email]], + dstAddr: ['', [Validators.required, Validators.email]], + authCode: ['', [Validators.required]], + smtpHost: ['', [Validators.required]], + smtpPort: ['', [Validators.required, Validators.pattern(/\d+/)]], + }); + } + + get srcAddrControl() { + return this.settingsForm.get('srcAddr') as FormControl; + } + + get dstAddrControl() { + return this.settingsForm.get('dstAddr') as FormControl; + } + + get authCodeControl() { + return this.settingsForm.get('authCode') as FormControl; + } + + get smtpHostControl() { + return this.settingsForm.get('smtpHost') as FormControl; + } + + get smtpPortControl() { + return this.settingsForm.get('smtpPort') as FormControl; + } + + ngOnChanges(): void { + this.syncStatus = mapValues(this.settings, () => true); + this.settingsForm.setValue(this.settings); + } + + ngOnInit(): void { + this.settingsSyncService + .syncSettings( + 'emailNotification', + this.settings, + this.settingsForm.valueChanges.pipe( + filterValueChanges<EmailSettings>(this.settingsForm), + map((settings) => + transform( + settings, + (result, value, prop) => { + value = prop === 'smtpPort' ? parseInt(value as string) : value; + Reflect.set(result, prop, value); + }, + {} as EmailSettings + ) + ) + ) + ) + .subscribe((detail) => { + this.syncStatus = { ...this.syncStatus, ...calcSyncStatus(detail) }; + this.changeDetector.markForCheck(); + }); + } +} diff --git a/webapp/src/app/settings/notification-settings/notification-settings.component.html b/webapp/src/app/settings/notification-settings/notification-settings.component.html new file mode 100644 index 0000000..9317bee --- /dev/null +++ b/webapp/src/app/settings/notification-settings/notification-settings.component.html @@ -0,0 +1,12 @@ +<a class="setting-item" routerLink="email-notification" + ><span class="setting-label">邮箱通知</span + ><span class="setting-control"> <i nz-icon nzType="right"></i> </span +></a> +<a class="setting-item" routerLink="serverchan-notification" + ><span class="setting-label">ServerChan 通知</span + ><span class="setting-control"><i nz-icon nzType="right"></i></span +></a> +<a class="setting-item" routerLink="pushplus-notification" + ><span class="setting-label">pushplus 通知</span + ><span class="setting-control"><i nz-icon nzType="right"></i></span +></a> diff --git a/webapp/src/app/settings/notification-settings/notification-settings.component.scss b/webapp/src/app/settings/notification-settings/notification-settings.component.scss new file mode 100644 index 0000000..2499289 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/notification-settings.component.scss @@ -0,0 +1 @@ +@use '../shared/styles/setting'; diff --git a/webapp/src/app/settings/notification-settings/notification-settings.component.spec.ts b/webapp/src/app/settings/notification-settings/notification-settings.component.spec.ts new file mode 100644 index 0000000..cc351eb --- /dev/null +++ b/webapp/src/app/settings/notification-settings/notification-settings.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { NotificationSettingsComponent } from './notification-settings.component'; + +describe('NotificationSettingsComponent', () => { + let component: NotificationSettingsComponent; + let fixture: ComponentFixture<NotificationSettingsComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ NotificationSettingsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(NotificationSettingsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/notification-settings/notification-settings.component.ts b/webapp/src/app/settings/notification-settings/notification-settings.component.ts new file mode 100644 index 0000000..bea7534 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/notification-settings.component.ts @@ -0,0 +1,9 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; + +@Component({ + selector: 'app-notification-settings', + templateUrl: './notification-settings.component.html', + styleUrls: ['./notification-settings.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NotificationSettingsComponent {} diff --git a/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-notification-settings.component.html b/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-notification-settings.component.html new file mode 100644 index 0000000..64fcb4e --- /dev/null +++ b/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-notification-settings.component.html @@ -0,0 +1,23 @@ +<app-sub-page pageTitle="pushplus 通知"> + <ng-template appSubPageContent> + <app-page-section> + <app-notifier-settings + [settings]="notifierSettings" + keyOfSettings="pushplusNotification" + ></app-notifier-settings> + </app-page-section> + + <app-page-section name="pushplus"> + <app-pushplus-settings + [settings]="pushplusSettings" + ></app-pushplus-settings> + </app-page-section> + + <app-page-section name="事件"> + <app-event-settings + [settings]="notificationSettings" + keyOfSettings="pushplusNotification" + ></app-event-settings> + </app-page-section> + </ng-template> +</app-sub-page> diff --git a/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-notification-settings.component.scss b/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-notification-settings.component.scss new file mode 100644 index 0000000..2dbc0c8 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-notification-settings.component.scss @@ -0,0 +1,2 @@ + +@use '../../shared/styles/setting'; diff --git a/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-notification-settings.component.spec.ts b/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-notification-settings.component.spec.ts new file mode 100644 index 0000000..e150e77 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-notification-settings.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PushplusNotificationSettingsComponent } from './pushplus-notification-settings.component'; + +describe('PushplusNotificationSettingsComponent', () => { + let component: PushplusNotificationSettingsComponent; + let fixture: ComponentFixture<PushplusNotificationSettingsComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ PushplusNotificationSettingsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(PushplusNotificationSettingsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-notification-settings.component.ts b/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-notification-settings.component.ts new file mode 100644 index 0000000..b9a11b1 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-notification-settings.component.ts @@ -0,0 +1,46 @@ +import { + Component, + OnInit, + ChangeDetectionStrategy, + ChangeDetectorRef, +} from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; + +import pick from 'lodash-es/pick'; + +import { + NotificationSettings, + PushplusSettings, + NotifierSettings, + PushplusNotificationSettings, + KEYS_OF_PUSHPLUS_SETTINGS, + KEYS_OF_NOTIFIER_SETTINGS, + KEYS_OF_NOTIFICATION_SETTINGS, +} from '../../shared/setting.model'; + +@Component({ + selector: 'app-pushplus-notification-settings', + templateUrl: './pushplus-notification-settings.component.html', + styleUrls: ['./pushplus-notification-settings.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class PushplusNotificationSettingsComponent implements OnInit { + pushplusSettings!: PushplusSettings; + notifierSettings!: NotifierSettings; + notificationSettings!: NotificationSettings; + + constructor( + private changeDetector: ChangeDetectorRef, + private route: ActivatedRoute + ) {} + + ngOnInit(): void { + this.route.data.subscribe((data) => { + const settings = data.settings as PushplusNotificationSettings; + this.changeDetector.markForCheck(); + this.pushplusSettings = pick(settings, KEYS_OF_PUSHPLUS_SETTINGS); + this.notifierSettings = pick(settings, KEYS_OF_NOTIFIER_SETTINGS); + this.notificationSettings = pick(settings, KEYS_OF_NOTIFICATION_SETTINGS); + }); + } +} diff --git a/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-settings/pushplus-settings.component.html b/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-settings/pushplus-settings.component.html new file mode 100644 index 0000000..6febe30 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-settings/pushplus-settings.component.html @@ -0,0 +1,44 @@ +<form nz-form [formGroup]="settingsForm"> + <nz-form-item class="setting-item"> + <nz-form-label + class="setting-label required" + nzFor="token" + nzNoColon + nzRequired + >token</nz-form-label + > + <nz-form-control + class="setting-control input" + nzHasFeedback + [nzErrorTip]="tokenErrorTip" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + tokenControl.valid && !syncStatus.token ? 'warning' : tokenControl + " + > + <input id="token" type="text" required nz-input formControlName="token" /> + <ng-template #tokenErrorTip let-control> + <ng-container *ngIf="control.hasError('required')"> + 请输入 token! + </ng-container> + <ng-container *ngIf="control.hasError('pattern')"> + token 无效 + </ng-container> + </ng-template> + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-label class="setting-label align-required" nzFor="topic" nzNoColon + >topic</nz-form-label + > + <nz-form-control + class="setting-control input" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + topicControl.valid && !syncStatus.topic ? 'warning' : topicControl + " + > + <input id="topic" type="text" nz-input formControlName="topic" /> + </nz-form-control> + </nz-form-item> +</form> diff --git a/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-settings/pushplus-settings.component.scss b/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-settings/pushplus-settings.component.scss new file mode 100644 index 0000000..607c6b0 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-settings/pushplus-settings.component.scss @@ -0,0 +1,6 @@ +@use '../../../shared/styles/setting'; + +.setting-label { + max-width: 4em !important; + width: 4em !important; +} diff --git a/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-settings/pushplus-settings.component.spec.ts b/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-settings/pushplus-settings.component.spec.ts new file mode 100644 index 0000000..92cb170 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-settings/pushplus-settings.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PushplusSettingsComponent } from './pushplus-settings.component'; + +describe('PushplusSettingsComponent', () => { + let component: PushplusSettingsComponent; + let fixture: ComponentFixture<PushplusSettingsComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ PushplusSettingsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(PushplusSettingsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-settings/pushplus-settings.component.ts b/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-settings/pushplus-settings.component.ts new file mode 100644 index 0000000..7554c5e --- /dev/null +++ b/webapp/src/app/settings/notification-settings/pushplus-notification-settings/pushplus-settings/pushplus-settings.component.ts @@ -0,0 +1,78 @@ +import { + Component, + OnInit, + ChangeDetectionStrategy, + Input, + OnChanges, + ChangeDetectorRef, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; + +import mapValues from 'lodash-es/mapValues'; + +import { PushplusSettings } from '../../../shared/setting.model'; +import { filterValueChanges } from '../../../shared/rx-operators'; +import { + SettingsSyncService, + SyncStatus, + calcSyncStatus, +} from '../../../shared/services/settings-sync.service'; +import { SYNC_FAILED_WARNING_TIP } from 'src/app/settings/shared/constants/form'; + +@Component({ + selector: 'app-pushplus-settings', + templateUrl: './pushplus-settings.component.html', + styleUrls: ['./pushplus-settings.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class PushplusSettingsComponent implements OnInit, OnChanges { + @Input() settings!: PushplusSettings; + syncStatus!: SyncStatus<PushplusSettings>; + + readonly settingsForm: FormGroup; + readonly syncFailedWarningTip = SYNC_FAILED_WARNING_TIP; + + constructor( + formBuilder: FormBuilder, + private changeDetector: ChangeDetectorRef, + private settingsSyncService: SettingsSyncService + ) { + this.settingsForm = formBuilder.group({ + token: ['', [Validators.required, Validators.pattern(/^[a-z\d]{32}$/)]], + topic: [''], + }); + } + + get tokenControl() { + return this.settingsForm.get('token') as FormControl; + } + + get topicControl() { + return this.settingsForm.get('topic') as FormControl; + } + + ngOnChanges(): void { + this.syncStatus = mapValues(this.settings, () => true); + this.settingsForm.setValue(this.settings); + } + + ngOnInit(): void { + this.settingsSyncService + .syncSettings( + 'pushplusNotification', + this.settings, + this.settingsForm.valueChanges.pipe( + filterValueChanges<PushplusSettings>(this.settingsForm) + ) + ) + .subscribe((detail) => { + this.syncStatus = { ...this.syncStatus, ...calcSyncStatus(detail) }; + this.changeDetector.markForCheck(); + }); + } +} diff --git a/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-notification-settings.component.html b/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-notification-settings.component.html new file mode 100644 index 0000000..6abb258 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-notification-settings.component.html @@ -0,0 +1,23 @@ +<app-sub-page pageTitle="ServerChan 通知"> + <ng-template appSubPageContent> + <app-page-section> + <app-notifier-settings + [settings]="notifierSettings" + keyOfSettings="serverchanNotification" + ></app-notifier-settings> + </app-page-section> + + <app-page-section name="ServerChan"> + <app-serverchan-settings + [settings]="serverchanSettings" + ></app-serverchan-settings> + </app-page-section> + + <app-page-section name="事件"> + <app-event-settings + [settings]="notificationSettings" + keyOfSettings="serverchanNotification" + ></app-event-settings> + </app-page-section> + </ng-template> +</app-sub-page> diff --git a/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-notification-settings.component.scss b/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-notification-settings.component.scss new file mode 100644 index 0000000..2dbc0c8 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-notification-settings.component.scss @@ -0,0 +1,2 @@ + +@use '../../shared/styles/setting'; diff --git a/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-notification-settings.component.spec.ts b/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-notification-settings.component.spec.ts new file mode 100644 index 0000000..8cea672 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-notification-settings.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ServerchanNotificationSettingsComponent } from './serverchan-notification-settings.component'; + +describe('ServerchanNotificationSettingsComponent', () => { + let component: ServerchanNotificationSettingsComponent; + let fixture: ComponentFixture<ServerchanNotificationSettingsComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ServerchanNotificationSettingsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ServerchanNotificationSettingsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-notification-settings.component.ts b/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-notification-settings.component.ts new file mode 100644 index 0000000..64ce619 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-notification-settings.component.ts @@ -0,0 +1,46 @@ +import { + Component, + OnInit, + ChangeDetectionStrategy, + ChangeDetectorRef, +} from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; + +import pick from 'lodash-es/pick'; + +import { + KEYS_OF_NOTIFICATION_SETTINGS, + KEYS_OF_NOTIFIER_SETTINGS, + KEYS_OF_SERVERCHAN_SETTINGS, + NotificationSettings, + NotifierSettings, + ServerchanNotificationSettings, + ServerchanSettings, +} from '../../shared/setting.model'; + +@Component({ + selector: 'app-serverchan-notification-settings', + templateUrl: './serverchan-notification-settings.component.html', + styleUrls: ['./serverchan-notification-settings.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class ServerchanNotificationSettingsComponent implements OnInit { + serverchanSettings!: ServerchanSettings; + notifierSettings!: NotifierSettings; + notificationSettings!: NotificationSettings; + + constructor( + private changeDetector: ChangeDetectorRef, + private route: ActivatedRoute + ) {} + + ngOnInit(): void { + this.route.data.subscribe((data) => { + const settings = data.settings as ServerchanNotificationSettings; + this.serverchanSettings = pick(settings, KEYS_OF_SERVERCHAN_SETTINGS); + this.notifierSettings = pick(settings, KEYS_OF_NOTIFIER_SETTINGS); + this.notificationSettings = pick(settings, KEYS_OF_NOTIFICATION_SETTINGS); + this.changeDetector.markForCheck(); + }); + } +} diff --git a/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-settings/serverchan-settings.component.html b/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-settings/serverchan-settings.component.html new file mode 100644 index 0000000..ff9ab7f --- /dev/null +++ b/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-settings/serverchan-settings.component.html @@ -0,0 +1,32 @@ +<form nz-form [formGroup]="settingsForm"> + <nz-form-item class="setting-item"> + <nz-form-label class="setting-label" nzFor="sendkey" nzNoColon nzRequired + >sendkey</nz-form-label + > + <nz-form-control + class="setting-control input" + nzHasFeedback + [nzErrorTip]="sendkeyErrorTip" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + sendkeyControl.valid && !syncStatus.sendkey ? 'warning' : sendkeyControl + " + > + <input + id="sendkey" + type="text" + required + nz-input + formControlName="sendkey" + /> + <ng-template #sendkeyErrorTip let-control> + <ng-container *ngIf="control.hasError('required')"> + 请输入 sendkey! + </ng-container> + <ng-container *ngIf="control.hasError('pattern')"> + sendkey 无效 + </ng-container> + </ng-template> + </nz-form-control> + </nz-form-item> +</form> diff --git a/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-settings/serverchan-settings.component.scss b/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-settings/serverchan-settings.component.scss new file mode 100644 index 0000000..b8c03cf --- /dev/null +++ b/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-settings/serverchan-settings.component.scss @@ -0,0 +1,6 @@ +@use '../../../shared/styles/setting'; + +.setting-label { + max-width: 5em !important; + width: 5em !important; +} diff --git a/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-settings/serverchan-settings.component.spec.ts b/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-settings/serverchan-settings.component.spec.ts new file mode 100644 index 0000000..c2c9987 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-settings/serverchan-settings.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ServerchanSettingsComponent } from './serverchan-settings.component'; + +describe('ServerchanSettingsComponent', () => { + let component: ServerchanSettingsComponent; + let fixture: ComponentFixture<ServerchanSettingsComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ServerchanSettingsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ServerchanSettingsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-settings/serverchan-settings.component.ts b/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-settings/serverchan-settings.component.ts new file mode 100644 index 0000000..30985be --- /dev/null +++ b/webapp/src/app/settings/notification-settings/serverchan-notification-settings/serverchan-settings/serverchan-settings.component.ts @@ -0,0 +1,73 @@ +import { + Component, + OnInit, + ChangeDetectionStrategy, + Input, + OnChanges, + ChangeDetectorRef, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; + +import mapValues from 'lodash-es/mapValues'; + +import { ServerchanSettings } from '../../../shared/setting.model'; +import { filterValueChanges } from '../../../shared/rx-operators'; +import { + SettingsSyncService, + SyncStatus, + calcSyncStatus, +} from '../../../shared/services/settings-sync.service'; +import { SYNC_FAILED_WARNING_TIP } from 'src/app/settings/shared/constants/form'; + +@Component({ + selector: 'app-serverchan-settings', + templateUrl: './serverchan-settings.component.html', + styleUrls: ['./serverchan-settings.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class ServerchanSettingsComponent implements OnInit, OnChanges { + @Input() settings!: ServerchanSettings; + syncStatus!: SyncStatus<ServerchanSettings>; + + readonly settingsForm: FormGroup; + readonly syncFailedWarningTip = SYNC_FAILED_WARNING_TIP; + + constructor( + formBuilder: FormBuilder, + private changeDetector: ChangeDetectorRef, + private settingsSyncService: SettingsSyncService + ) { + this.settingsForm = formBuilder.group({ + sendkey: ['', [Validators.required, Validators.pattern(/^[a-zA-Z\d]+$/)]], + }); + } + + get sendkeyControl() { + return this.settingsForm.get('sendkey') as FormControl; + } + + ngOnChanges(): void { + this.syncStatus = mapValues(this.settings, () => true); + this.settingsForm.setValue(this.settings); + } + + ngOnInit(): void { + this.settingsSyncService + .syncSettings( + 'serverchanNotification', + this.settings, + this.settingsForm.valueChanges.pipe( + filterValueChanges<Partial<ServerchanSettings>>(this.settingsForm) + ) + ) + .subscribe((detail) => { + this.syncStatus = { ...this.syncStatus, ...calcSyncStatus(detail) }; + this.changeDetector.markForCheck(); + }); + } +} diff --git a/webapp/src/app/settings/notification-settings/shared/components/event-settings/event-settings.component.html b/webapp/src/app/settings/notification-settings/shared/components/event-settings/event-settings.component.html new file mode 100644 index 0000000..3454f15 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/shared/components/event-settings/event-settings.component.html @@ -0,0 +1,52 @@ +<form nz-form [formGroup]="settingsForm"> + <nz-form-item class="setting-item" appSwitchActionable> + <nz-form-label class="setting-label" nzNoColon>开播发送通知</nz-form-label> + <nz-form-control + class="setting-control switch" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + syncStatus.notifyBegan ? notifyBeganControl : 'warning' + " + > + <nz-switch formControlName="notifyBegan"></nz-switch> + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item" appSwitchActionable> + <nz-form-label class="setting-label" nzNoColon>下播发送通知</nz-form-label> + <nz-form-control + class="setting-control switch" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + syncStatus.notifyEnded ? notifyEndedControl : 'warning' + " + > + <nz-switch formControlName="notifyEnded"></nz-switch> + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item" appSwitchActionable> + <nz-form-label class="setting-label" nzNoColon>出错发送通知</nz-form-label> + <nz-form-control + class="setting-control switch" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + syncStatus.notifyError ? notifyErrorControl : 'warning' + " + > + <nz-switch formControlName="notifyError"></nz-switch> + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item" appSwitchActionable> + <nz-form-label class="setting-label" nzNoColon + >空间不足发送通知</nz-form-label + > + <nz-form-control + class="setting-control switch" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + syncStatus.notifySpace ? notifySpaceControl : 'warning' + " + > + <nz-switch formControlName="notifySpace"></nz-switch> + </nz-form-control> + </nz-form-item> +</form> diff --git a/webapp/src/app/settings/notification-settings/shared/components/event-settings/event-settings.component.scss b/webapp/src/app/settings/notification-settings/shared/components/event-settings/event-settings.component.scss new file mode 100644 index 0000000..57714b5 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/shared/components/event-settings/event-settings.component.scss @@ -0,0 +1 @@ +@use '../../../../shared/styles/setting'; diff --git a/webapp/src/app/settings/notification-settings/shared/components/event-settings/event-settings.component.spec.ts b/webapp/src/app/settings/notification-settings/shared/components/event-settings/event-settings.component.spec.ts new file mode 100644 index 0000000..f572ca8 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/shared/components/event-settings/event-settings.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { EventSettingsComponent } from './event-settings.component'; + +describe('EventSettingsComponent', () => { + let component: EventSettingsComponent; + let fixture: ComponentFixture<EventSettingsComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ EventSettingsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(EventSettingsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/notification-settings/shared/components/event-settings/event-settings.component.ts b/webapp/src/app/settings/notification-settings/shared/components/event-settings/event-settings.component.ts new file mode 100644 index 0000000..13ed726 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/shared/components/event-settings/event-settings.component.ts @@ -0,0 +1,86 @@ +import { + Component, + OnInit, + ChangeDetectionStrategy, + Input, + OnChanges, + ChangeDetectorRef, +} from '@angular/core'; +import { FormBuilder, FormControl, FormGroup } from '@angular/forms'; + +import mapValues from 'lodash-es/mapValues'; +import { Observable } from 'rxjs'; + +import { NotificationSettings } from '../../../../shared/setting.model'; +import { + SettingsSyncService, + SyncStatus, + calcSyncStatus, +} from '../../../../shared/services/settings-sync.service'; +import { SYNC_FAILED_WARNING_TIP } from 'src/app/settings/shared/constants/form'; + +@Component({ + selector: 'app-event-settings', + templateUrl: './event-settings.component.html', + styleUrls: ['./event-settings.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class EventSettingsComponent implements OnInit, OnChanges { + @Input() settings!: NotificationSettings; + @Input() keyOfSettings!: + | 'emailNotification' + | 'serverchanNotification' + | 'pushplusNotification'; + + syncStatus!: SyncStatus<NotificationSettings>; + + readonly settingsForm: FormGroup; + readonly syncFailedWarningTip = SYNC_FAILED_WARNING_TIP; + + constructor( + formBuilder: FormBuilder, + private changeDetector: ChangeDetectorRef, + private settingsSyncService: SettingsSyncService + ) { + this.settingsForm = formBuilder.group({ + notifyBegan: [''], + notifyEnded: [''], + notifyError: [''], + notifySpace: [''], + }); + } + + get notifyBeganControl() { + return this.settingsForm.get('notifyBegan') as FormControl; + } + + get notifyEndedControl() { + return this.settingsForm.get('notifyEnded') as FormControl; + } + + get notifyErrorControl() { + return this.settingsForm.get('notifyError') as FormControl; + } + + get notifySpaceControl() { + return this.settingsForm.get('notifySpace') as FormControl; + } + + ngOnChanges(): void { + this.syncStatus = mapValues(this.settings, () => true); + this.settingsForm.setValue(this.settings); + } + + ngOnInit(): void { + this.settingsSyncService + .syncSettings( + this.keyOfSettings, + this.settingsForm.value, + this.settingsForm.valueChanges as Observable<NotificationSettings> + ) + .subscribe((detail) => { + this.syncStatus = { ...this.syncStatus, ...calcSyncStatus(detail) }; + this.changeDetector.markForCheck(); + }); + } +} diff --git a/webapp/src/app/settings/notification-settings/shared/components/notifier-settings/notifier-settings.component.html b/webapp/src/app/settings/notification-settings/shared/components/notifier-settings/notifier-settings.component.html new file mode 100644 index 0000000..e2fdf4c --- /dev/null +++ b/webapp/src/app/settings/notification-settings/shared/components/notifier-settings/notifier-settings.component.html @@ -0,0 +1,12 @@ +<form nz-form [formGroup]="settingsForm"> + <nz-form-item class="setting-item" appSwitchActionable> + <nz-form-label class="setting-label" nzNoColon>允许通知</nz-form-label> + <nz-form-control + class="setting-control switch" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]="syncStatus.enabled ? enabledControl : 'warning'" + > + <nz-switch formControlName="enabled"></nz-switch> + </nz-form-control> + </nz-form-item> +</form> diff --git a/webapp/src/app/settings/notification-settings/shared/components/notifier-settings/notifier-settings.component.scss b/webapp/src/app/settings/notification-settings/shared/components/notifier-settings/notifier-settings.component.scss new file mode 100644 index 0000000..57714b5 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/shared/components/notifier-settings/notifier-settings.component.scss @@ -0,0 +1 @@ +@use '../../../../shared/styles/setting'; diff --git a/webapp/src/app/settings/notification-settings/shared/components/notifier-settings/notifier-settings.component.spec.ts b/webapp/src/app/settings/notification-settings/shared/components/notifier-settings/notifier-settings.component.spec.ts new file mode 100644 index 0000000..4f6346e --- /dev/null +++ b/webapp/src/app/settings/notification-settings/shared/components/notifier-settings/notifier-settings.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { NotifierSettingsComponent } from './notifier-settings.component'; + +describe('NotifierSettingsComponent', () => { + let component: NotifierSettingsComponent; + let fixture: ComponentFixture<NotifierSettingsComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ NotifierSettingsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(NotifierSettingsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/notification-settings/shared/components/notifier-settings/notifier-settings.component.ts b/webapp/src/app/settings/notification-settings/shared/components/notifier-settings/notifier-settings.component.ts new file mode 100644 index 0000000..a883d56 --- /dev/null +++ b/webapp/src/app/settings/notification-settings/shared/components/notifier-settings/notifier-settings.component.ts @@ -0,0 +1,71 @@ +import { + Component, + OnInit, + ChangeDetectionStrategy, + Input, + OnChanges, + ChangeDetectorRef, +} from '@angular/core'; +import { FormBuilder, FormControl, FormGroup } from '@angular/forms'; + +import { Observable } from 'rxjs'; +import mapValues from 'lodash-es/mapValues'; + +import { NotifierSettings } from '../../../../shared/setting.model'; +import { + SettingsSyncService, + SyncStatus, + calcSyncStatus, +} from '../../../../shared/services/settings-sync.service'; +import { SYNC_FAILED_WARNING_TIP } from 'src/app/settings/shared/constants/form'; + +@Component({ + selector: 'app-notifier-settings', + templateUrl: './notifier-settings.component.html', + styleUrls: ['./notifier-settings.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class NotifierSettingsComponent implements OnInit, OnChanges { + @Input() settings!: NotifierSettings; + @Input() keyOfSettings!: + | 'emailNotification' + | 'serverchanNotification' + | 'pushplusNotification'; + + syncStatus!: SyncStatus<NotifierSettings>; + + readonly settingsForm: FormGroup; + readonly syncFailedWarningTip = SYNC_FAILED_WARNING_TIP; + + constructor( + formBuilder: FormBuilder, + private changeDetector: ChangeDetectorRef, + private settingsSyncService: SettingsSyncService + ) { + this.settingsForm = formBuilder.group({ + enabled: [''], + }); + } + + get enabledControl() { + return this.settingsForm.get('enabled') as FormControl; + } + + ngOnChanges(): void { + this.syncStatus = mapValues(this.settings, () => true); + this.settingsForm.setValue(this.settings); + } + + ngOnInit(): void { + this.settingsSyncService + .syncSettings( + this.keyOfSettings, + this.settings, + this.settingsForm.valueChanges as Observable<NotifierSettings> + ) + .subscribe((detail) => { + this.syncStatus = { ...this.syncStatus, ...calcSyncStatus(detail) }; + this.changeDetector.markForCheck(); + }); + } +} diff --git a/webapp/src/app/settings/output-settings/outdir-edit-dialog/outdir-edit-dialog.component.html b/webapp/src/app/settings/output-settings/outdir-edit-dialog/outdir-edit-dialog.component.html new file mode 100644 index 0000000..ecf32e0 --- /dev/null +++ b/webapp/src/app/settings/output-settings/outdir-edit-dialog/outdir-edit-dialog.component.html @@ -0,0 +1,36 @@ +<nz-modal + nzTitle="修改文件保存位置" + nzCentered + [(nzVisible)]="visible" + [nzOkDisabled]="control.invalid || control.value.trim() === value" + (nzOnOk)="handleConfirm()" + (nzOnCancel)="handleCancel()" +> + <ng-container *nzModalContent> + <form nz-form [formGroup]="settingsForm"> + <nz-form-item> + <nz-form-control + nzHasFeedback + nzValidatingTip="正在校验..." + [nzErrorTip]="errorTip" + > + <input type="text" required nz-input formControlName="outDir" /> + <ng-template #errorTip let-control> + <ng-container *ngIf="control.hasError('required')"> + 请输入保存位置 + </ng-container> + <ng-container *ngIf="control.hasError('notADirectory')"> + 不是一个目录 + </ng-container> + <ng-container *ngIf="control.hasError('noPermissions')"> + 没有读写权限 + </ng-container> + <ng-container *ngIf="control.hasError('failedToValidate')"> + 未能进行校验 + </ng-container> + </ng-template> + </nz-form-control> + </nz-form-item> + </form> + </ng-container> +</nz-modal> diff --git a/webapp/src/app/settings/output-settings/outdir-edit-dialog/outdir-edit-dialog.component.scss b/webapp/src/app/settings/output-settings/outdir-edit-dialog/outdir-edit-dialog.component.scss new file mode 100644 index 0000000..f0227e3 --- /dev/null +++ b/webapp/src/app/settings/output-settings/outdir-edit-dialog/outdir-edit-dialog.component.scss @@ -0,0 +1 @@ +@use '../../shared/styles/setting'; diff --git a/webapp/src/app/settings/output-settings/outdir-edit-dialog/outdir-edit-dialog.component.spec.ts b/webapp/src/app/settings/output-settings/outdir-edit-dialog/outdir-edit-dialog.component.spec.ts new file mode 100644 index 0000000..568006f --- /dev/null +++ b/webapp/src/app/settings/output-settings/outdir-edit-dialog/outdir-edit-dialog.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { OutdirEditDialogComponent } from './outdir-edit-dialog.component'; + +describe('OutdirEditDialogComponent', () => { + let component: OutdirEditDialogComponent; + let fixture: ComponentFixture<OutdirEditDialogComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ OutdirEditDialogComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(OutdirEditDialogComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/output-settings/outdir-edit-dialog/outdir-edit-dialog.component.ts b/webapp/src/app/settings/output-settings/outdir-edit-dialog/outdir-edit-dialog.component.ts new file mode 100644 index 0000000..05cee74 --- /dev/null +++ b/webapp/src/app/settings/output-settings/outdir-edit-dialog/outdir-edit-dialog.component.ts @@ -0,0 +1,104 @@ +import { + Component, + OnChanges, + ChangeDetectionStrategy, + Input, + Output, + EventEmitter, + ChangeDetectorRef, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + ValidationErrors, + Validators, +} from '@angular/forms'; + +import { Observable, of } from 'rxjs'; +import { catchError, map } from 'rxjs/operators'; + +import { ERRNO } from 'src/app/core/models/validation.model'; +import { ValidationService } from 'src/app/core/services/validation.service'; + +@Component({ + selector: 'app-outdir-edit-dialog', + templateUrl: './outdir-edit-dialog.component.html', + styleUrls: ['./outdir-edit-dialog.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class OutdirEditDialogComponent implements OnChanges { + @Input() value = ''; + @Input() visible = false; + @Output() visibleChange = new EventEmitter<boolean>(); + @Output() cancel = new EventEmitter<undefined>(); + @Output() confirm = new EventEmitter<string>(); + + readonly settingsForm: FormGroup; + + constructor( + formBuilder: FormBuilder, + private changeDetector: ChangeDetectorRef, + private validationService: ValidationService + ) { + this.settingsForm = formBuilder.group({ + outDir: ['', [Validators.required], [this.outDirAsyncValidator]], + }); + } + + get control() { + return this.settingsForm.get('outDir') as FormControl; + } + + ngOnChanges(): void { + this.setValue(); + } + + open(): void { + this.setValue(); + this.setVisible(true); + } + + close(): void { + this.setVisible(false); + } + + setVisible(visible: boolean): void { + this.visible = visible; + this.visibleChange.emit(visible); + this.changeDetector.markForCheck(); + } + + setValue(): void { + this.control.setValue(this.value); + this.changeDetector.markForCheck(); + } + + handleCancel(): void { + this.cancel.emit(); + this.close(); + } + + handleConfirm(): void { + this.confirm.emit(this.control.value.trim()); + this.close(); + } + + private outDirAsyncValidator = ( + control: FormControl + ): Observable<ValidationErrors | null> => { + return this.validationService.validateDir(control.value).pipe( + map((result) => { + switch (result.code) { + case ERRNO.ENOTDIR: + return { error: true, notADirectory: true }; + case ERRNO.EACCES: + return { error: true, noPermissions: true }; + default: + return null; + } + }), + catchError(() => of({ error: true, failedToValidate: true })) + ); + }; +} diff --git a/webapp/src/app/settings/output-settings/output-settings.component.html b/webapp/src/app/settings/output-settings/output-settings.component.html new file mode 100644 index 0000000..0955a03 --- /dev/null +++ b/webapp/src/app/settings/output-settings/output-settings.component.html @@ -0,0 +1,85 @@ +<form nz-form [formGroup]="settingsForm"> + <nz-form-item + class="setting-item actionable" + (click)="outDirEditDialog.open()" + > + <nz-form-label class="setting-label">保存位置</nz-form-label> + <nz-form-control + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]="syncStatus.outDir ? outDirControl : 'warning'" + > + <nz-form-text class="setting-value" + >{{ outDirControl.value }} + </nz-form-text> + <app-outdir-edit-dialog + #outDirEditDialog + [value]="outDirControl.value" + (confirm)="outDirControl.setValue($event)" + ></app-outdir-edit-dialog> + </nz-form-control> + </nz-form-item> + <nz-form-item + class="setting-item actionable" + (click)="pathTemplateEditDialog.open()" + > + <nz-form-label class="setting-label">路径模板</nz-form-label> + <nz-form-control + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + syncStatus.pathTemplate ? pathTemplateControl : 'warning' + " + > + <nz-form-text class="setting-value" + >{{ pathTemplateControl.value }} + </nz-form-text> + <app-path-template-edit-dialog + #pathTemplateEditDialog + [value]="pathTemplateControl.value" + (confirm)="pathTemplateControl.setValue($event)" + > + </app-path-template-edit-dialog> + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-label + class="setting-label" + nzNoColon + [nzTooltipTitle]="splitFileTip" + >大小限制</nz-form-label + > + <nz-form-control + class="setting-control select" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + syncStatus.filesizeLimit ? filesizeLimitControl : 'warning' + " + > + <nz-select + formControlName="filesizeLimit" + [nzOptions]="filesizeLimitOptions" + > + </nz-select> + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-label + class="setting-label" + nzNoColon + [nzTooltipTitle]="splitFileTip" + >时长限制</nz-form-label + > + <nz-form-control + class="setting-control select" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + syncStatus.durationLimit ? durationLimitControl : 'warning' + " + > + <nz-select + formControlName="durationLimit" + [nzOptions]="durationLimitOptions" + > + </nz-select> + </nz-form-control> + </nz-form-item> +</form> diff --git a/webapp/src/app/settings/output-settings/output-settings.component.scss b/webapp/src/app/settings/output-settings/output-settings.component.scss new file mode 100644 index 0000000..2499289 --- /dev/null +++ b/webapp/src/app/settings/output-settings/output-settings.component.scss @@ -0,0 +1 @@ +@use '../shared/styles/setting'; diff --git a/webapp/src/app/settings/output-settings/output-settings.component.spec.ts b/webapp/src/app/settings/output-settings/output-settings.component.spec.ts new file mode 100644 index 0000000..1ec8fc3 --- /dev/null +++ b/webapp/src/app/settings/output-settings/output-settings.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { OutputSettingsComponent } from './output-settings.component'; + +describe('OutputSettingsComponent', () => { + let component: OutputSettingsComponent; + let fixture: ComponentFixture<OutputSettingsComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ OutputSettingsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(OutputSettingsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/output-settings/output-settings.component.ts b/webapp/src/app/settings/output-settings/output-settings.component.ts new file mode 100644 index 0000000..d553a4d --- /dev/null +++ b/webapp/src/app/settings/output-settings/output-settings.component.ts @@ -0,0 +1,94 @@ +import { + Component, + OnInit, + ChangeDetectionStrategy, + Input, + OnChanges, + ChangeDetectorRef, +} from '@angular/core'; +import { FormBuilder, FormControl, FormGroup } from '@angular/forms'; + +import { Observable } from 'rxjs'; +import cloneDeep from 'lodash-es/cloneDeep'; +import mapValues from 'lodash-es/mapValues'; + +import type { Mutable } from '../../shared/utility-types'; +import { OutputSettings } from '../shared/setting.model'; +import { + SettingsSyncService, + SyncStatus, + calcSyncStatus, +} from '../shared/services/settings-sync.service'; +import { + DURATION_LIMIT_OPTIONS, + FILESIZE_LIMIT_OPTIONS, + SPLIT_FILE_TIP, + SYNC_FAILED_WARNING_TIP, +} from '../shared/constants/form'; + +@Component({ + selector: 'app-output-settings', + templateUrl: './output-settings.component.html', + styleUrls: ['./output-settings.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class OutputSettingsComponent implements OnInit, OnChanges { + @Input() settings!: OutputSettings; + syncStatus!: SyncStatus<OutputSettings>; + + readonly settingsForm: FormGroup; + readonly splitFileTip = SPLIT_FILE_TIP; + readonly syncFailedWarningTip = SYNC_FAILED_WARNING_TIP; + readonly filesizeLimitOptions = cloneDeep(FILESIZE_LIMIT_OPTIONS) as Mutable< + typeof FILESIZE_LIMIT_OPTIONS + >; + readonly durationLimitOptions = cloneDeep(DURATION_LIMIT_OPTIONS) as Mutable< + typeof DURATION_LIMIT_OPTIONS + >; + + constructor( + formBuilder: FormBuilder, + private changeDetector: ChangeDetectorRef, + private settingsSyncService: SettingsSyncService + ) { + this.settingsForm = formBuilder.group({ + outDir: [''], + pathTemplate: [''], + filesizeLimit: [''], + durationLimit: [''], + }); + } + + get outDirControl() { + return this.settingsForm.get('outDir') as FormControl; + } + + get pathTemplateControl() { + return this.settingsForm.get('pathTemplate') as FormControl; + } + + get filesizeLimitControl() { + return this.settingsForm.get('filesizeLimit') as FormControl; + } + get durationLimitControl() { + return this.settingsForm.get('durationLimit') as FormControl; + } + + ngOnChanges(): void { + this.syncStatus = mapValues(this.settings, () => true); + this.settingsForm.setValue(this.settings); + } + + ngOnInit(): void { + this.settingsSyncService + .syncSettings( + 'output', + this.settings, + this.settingsForm.valueChanges as Observable<OutputSettings> + ) + .subscribe((detail) => { + this.syncStatus = { ...this.syncStatus, ...calcSyncStatus(detail) }; + this.changeDetector.markForCheck(); + }); + } +} diff --git a/webapp/src/app/settings/output-settings/path-template-edit-dialog/path-template-edit-dialog.component.html b/webapp/src/app/settings/output-settings/path-template-edit-dialog/path-template-edit-dialog.component.html new file mode 100644 index 0000000..1f9baa1 --- /dev/null +++ b/webapp/src/app/settings/output-settings/path-template-edit-dialog/path-template-edit-dialog.component.html @@ -0,0 +1,78 @@ +<nz-modal + nzTitle="修改文件路径模板" + nzCentered + [nzFooter]="modalFooter" + [(nzVisible)]="visible" +> + <ng-container *nzModalContent> + <form nz-form [formGroup]="settingsForm"> + <nz-form-item> + <nz-form-control [nzErrorTip]="errorTip"> + <input + type="text" + required + [pattern]="pathTemplatePattern" + nz-input + formControlName="pathTemplate" + /> + <ng-template #errorTip let-control> + <ng-container *ngIf="control.hasError('required')"> + 请输入路径模板 + </ng-container> + <ng-container *ngIf="control.hasError('pattern')"> + 路径模板有错误 + </ng-container> + </ng-template> + </nz-form-control> + </nz-form-item> + <nz-collapse> + <nz-collapse-panel nzHeader="模板变量说明"> + <nz-table + #table + [nzData]="pathTemplateVariables" + [nzShowPagination]="false" + [nzSize]="'small'" + > + <thead> + <tr> + <th>变量</th> + <th>说明</th> + </tr> + </thead> + <tbody> + <tr *ngFor="let item of table.data"> + <td>{{ item.name }}</td> + <td>{{ item.desc }}</td> + </tr> + </tbody> + </nz-table> + <p class="footnote"> + <strong> + 注意:变量名必须放在花括号中!使用日期时间变量以避免命名冲突! + </strong> + </p> + </nz-collapse-panel> + </nz-collapse> + </form> + </ng-container> + + <ng-template #modalFooter> + <button + nz-button + nzType="default" + (click)="restoreDefault()" + [disabled]="control.value.trim() === pathTemplateDefault" + > + 恢复默认 + </button> + <button nz-button nzType="default" (click)="handleCancel()">取消</button> + <button + nz-button + nzType="default" + (click)="handleConfirm()" + [disabled]="control.invalid || control.value.trim() === value" + > + 确定 + </button> + </ng-template> +</nz-modal> diff --git a/webapp/src/app/settings/output-settings/path-template-edit-dialog/path-template-edit-dialog.component.scss b/webapp/src/app/settings/output-settings/path-template-edit-dialog/path-template-edit-dialog.component.scss new file mode 100644 index 0000000..b80fa16 --- /dev/null +++ b/webapp/src/app/settings/output-settings/path-template-edit-dialog/path-template-edit-dialog.component.scss @@ -0,0 +1,4 @@ +.footnote { + margin-top: 1em; + margin-bottom: 0; +} diff --git a/webapp/src/app/settings/output-settings/path-template-edit-dialog/path-template-edit-dialog.component.spec.ts b/webapp/src/app/settings/output-settings/path-template-edit-dialog/path-template-edit-dialog.component.spec.ts new file mode 100644 index 0000000..c21c5cf --- /dev/null +++ b/webapp/src/app/settings/output-settings/path-template-edit-dialog/path-template-edit-dialog.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PathTemplateEditDialogComponent } from './path-template-edit-dialog.component'; + +describe('PathTemplateEditDialogComponent', () => { + let component: PathTemplateEditDialogComponent; + let fixture: ComponentFixture<PathTemplateEditDialogComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ PathTemplateEditDialogComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(PathTemplateEditDialogComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/output-settings/path-template-edit-dialog/path-template-edit-dialog.component.ts b/webapp/src/app/settings/output-settings/path-template-edit-dialog/path-template-edit-dialog.component.ts new file mode 100644 index 0000000..4980c61 --- /dev/null +++ b/webapp/src/app/settings/output-settings/path-template-edit-dialog/path-template-edit-dialog.component.ts @@ -0,0 +1,93 @@ +import { + Component, + OnChanges, + ChangeDetectionStrategy, + Input, + Output, + EventEmitter, + ChangeDetectorRef, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; +import { + PATH_TEMPLATE_DEFAULT, + PATH_TEMPLATE_PATTERN, + PATH_TEMPLATE_VARIABLES, +} from '../../shared/constants/form'; + +@Component({ + selector: 'app-path-template-edit-dialog', + templateUrl: './path-template-edit-dialog.component.html', + styleUrls: ['./path-template-edit-dialog.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class PathTemplateEditDialogComponent implements OnChanges { + @Input() value = ''; + @Input() visible = false; + @Output() visibleChange = new EventEmitter<boolean>(); + @Output() cancel = new EventEmitter<undefined>(); + @Output() confirm = new EventEmitter<string>(); + + readonly settingsForm: FormGroup; + readonly pathTemplatePattern = PATH_TEMPLATE_PATTERN; + readonly pathTemplateDefault = PATH_TEMPLATE_DEFAULT; + readonly pathTemplateVariables = PATH_TEMPLATE_VARIABLES; + + constructor( + formBuilder: FormBuilder, + private changeDetector: ChangeDetectorRef + ) { + this.settingsForm = formBuilder.group({ + pathTemplate: [ + '', + [Validators.required, Validators.pattern(this.pathTemplatePattern)], + ], + }); + } + + get control() { + return this.settingsForm.get('pathTemplate') as FormControl; + } + + ngOnChanges(): void { + this.setValue(); + } + + open(): void { + this.setValue(); + this.setVisible(true); + } + + close(): void { + this.setVisible(false); + } + + setVisible(visible: boolean): void { + this.visible = visible; + this.visibleChange.emit(visible); + this.changeDetector.markForCheck(); + } + + setValue(): void { + this.control.setValue(this.value); + this.changeDetector.markForCheck(); + } + + handleCancel(): void { + this.cancel.emit(); + this.close(); + } + + handleConfirm(): void { + this.confirm.emit(this.control.value.trim()); + this.close(); + } + + restoreDefault(): void { + this.control.setValue(this.pathTemplateDefault); + } +} diff --git a/webapp/src/app/settings/post-processing-settings/post-processing-settings.component.html b/webapp/src/app/settings/post-processing-settings/post-processing-settings.component.html new file mode 100644 index 0000000..a19b7e4 --- /dev/null +++ b/webapp/src/app/settings/post-processing-settings/post-processing-settings.component.html @@ -0,0 +1,49 @@ +<form nz-form [formGroup]="settingsForm"> + <nz-form-item class="setting-item" appSwitchActionable> + <nz-form-label + class="setting-label" + nzNoColon + nzTooltipTitle="调用 ffmpeg 进行转换,需要安装 ffmpeg 。" + >FLV 转 MP4</nz-form-label + > + <nz-form-control + class="setting-control switch" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]="syncStatus.remuxToMp4 ? remuxToMp4Control : 'warning'" + > + <nz-switch formControlName="remuxToMp4"></nz-switch> + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-label + class="setting-label" + nzNoColon + [nzTooltipTitle]="deleteSourceTip" + >源文件删除策略</nz-form-label + > + <ng-template #deleteSourceTip> + <p> + 自动: 转换成功才会删除源文件<br /> + 从不: 转换后保留源文件<br /> + </p> + </ng-template> + <nz-form-control + class="setting-control radio" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + syncStatus.deleteSource ? deleteSourceControl : 'warning' + " + > + <nz-radio-group + formControlName="deleteSource" + [nzDisabled]="!remuxToMp4Control.value" + > + <ng-container *ngFor="let strategy of deleteStrategies"> + <label nz-radio-button [nzValue]="strategy.value">{{ + strategy.label + }}</label> + </ng-container> + </nz-radio-group> + </nz-form-control> + </nz-form-item> +</form> diff --git a/webapp/src/app/settings/post-processing-settings/post-processing-settings.component.scss b/webapp/src/app/settings/post-processing-settings/post-processing-settings.component.scss new file mode 100644 index 0000000..2499289 --- /dev/null +++ b/webapp/src/app/settings/post-processing-settings/post-processing-settings.component.scss @@ -0,0 +1 @@ +@use '../shared/styles/setting'; diff --git a/webapp/src/app/settings/post-processing-settings/post-processing-settings.component.spec.ts b/webapp/src/app/settings/post-processing-settings/post-processing-settings.component.spec.ts new file mode 100644 index 0000000..be6a398 --- /dev/null +++ b/webapp/src/app/settings/post-processing-settings/post-processing-settings.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PostProcessingSettingsComponent } from './post-processing-settings.component'; + +describe('PostProcessingSettingsComponent', () => { + let component: PostProcessingSettingsComponent; + let fixture: ComponentFixture<PostProcessingSettingsComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ PostProcessingSettingsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(PostProcessingSettingsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/post-processing-settings/post-processing-settings.component.ts b/webapp/src/app/settings/post-processing-settings/post-processing-settings.component.ts new file mode 100644 index 0000000..a0f42e6 --- /dev/null +++ b/webapp/src/app/settings/post-processing-settings/post-processing-settings.component.ts @@ -0,0 +1,72 @@ +import { + Component, + OnInit, + ChangeDetectionStrategy, + Input, + OnChanges, + ChangeDetectorRef, +} from '@angular/core'; +import { FormBuilder, FormControl, FormGroup } from '@angular/forms'; + +import mapValues from 'lodash-es/mapValues'; + +import { PostprocessingSettings } from '../shared/setting.model'; +import { DELETE_STRATEGIES, SYNC_FAILED_WARNING_TIP } from '../shared/constants/form'; +import { + SettingsSyncService, + SyncStatus, + calcSyncStatus, +} from '../shared/services/settings-sync.service'; +import { Observable } from 'rxjs'; + +@Component({ + selector: 'app-post-processing-settings', + templateUrl: './post-processing-settings.component.html', + styleUrls: ['./post-processing-settings.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class PostProcessingSettingsComponent implements OnInit, OnChanges { + @Input() settings!: PostprocessingSettings; + syncStatus!: SyncStatus<PostprocessingSettings>; + + readonly settingsForm: FormGroup; + readonly deleteStrategies = DELETE_STRATEGIES; + readonly syncFailedWarningTip = SYNC_FAILED_WARNING_TIP; + + constructor( + formBuilder: FormBuilder, + private changeDetector: ChangeDetectorRef, + private settingsSyncService: SettingsSyncService + ) { + this.settingsForm = formBuilder.group({ + remuxToMp4: [''], + deleteSource: [''], + }); + } + + get remuxToMp4Control() { + return this.settingsForm.get('remuxToMp4') as FormControl; + } + + get deleteSourceControl() { + return this.settingsForm.get('deleteSource') as FormControl; + } + + ngOnChanges(): void { + this.syncStatus = mapValues(this.settings, () => true); + this.settingsForm.setValue(this.settings); + } + + ngOnInit(): void { + this.settingsSyncService + .syncSettings( + 'postprocessing', + this.settings, + this.settingsForm.valueChanges as Observable<PostprocessingSettings> + ) + .subscribe((detail) => { + this.syncStatus = { ...this.syncStatus, ...calcSyncStatus(detail) }; + this.changeDetector.markForCheck(); + }); + } +} diff --git a/webapp/src/app/settings/recorder-settings/recorder-settings.component.html b/webapp/src/app/settings/recorder-settings/recorder-settings.component.html new file mode 100644 index 0000000..797b4b7 --- /dev/null +++ b/webapp/src/app/settings/recorder-settings/recorder-settings.component.html @@ -0,0 +1,58 @@ +<form nz-form [formGroup]="settingsForm"> + <nz-form-item class="setting-item"> + <nz-form-label + class="setting-label" + nzNoColon + nzTooltipTitle="所选画质不存在将以原画代替" + >画质</nz-form-label + > + <nz-form-control + class="setting-control select" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]=" + syncStatus.qualityNumber ? qualityNumberControl : 'warning' + " + > + <nz-select formControlName="qualityNumber" [nzOptions]="qualityOptions"> + </nz-select> + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-label + class="setting-label" + nzNoColon + nzTooltipTitle="超时时间设置得比较长相对不容易因网络不稳定而出现流中断,但是一旦出现中断就无法实现无缝拼接且漏录时长越长。" + >数据读取超时</nz-form-label + > + <nz-form-control + class="setting-control select" + [nzWarningTip]=" + syncStatus.readTimeout ? '无缝拼接会失效!' : syncFailedWarningTip + " + [nzValidateStatus]=" + syncStatus.readTimeout && readTimeoutControl.value <= 3 + ? readTimeoutControl + : 'warning' + " + > + <nz-select formControlName="readTimeout" [nzOptions]="timeoutOptions"> + </nz-select> + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-label + class="setting-label" + nzNoColon + nzTooltipTitle="硬盘写入缓冲设置得比较大可以减少对硬盘的写入,但需要占用更多的内存。" + >硬盘写入缓冲</nz-form-label + > + <nz-form-control + class="setting-control select" + [nzWarningTip]="syncFailedWarningTip" + [nzValidateStatus]="syncStatus.bufferSize ? bufferSizeControl : 'warning'" + > + <nz-select formControlName="bufferSize" [nzOptions]="bufferOptions"> + </nz-select> + </nz-form-control> + </nz-form-item> +</form> diff --git a/webapp/src/app/settings/recorder-settings/recorder-settings.component.scss b/webapp/src/app/settings/recorder-settings/recorder-settings.component.scss new file mode 100644 index 0000000..2499289 --- /dev/null +++ b/webapp/src/app/settings/recorder-settings/recorder-settings.component.scss @@ -0,0 +1 @@ +@use '../shared/styles/setting'; diff --git a/webapp/src/app/settings/recorder-settings/recorder-settings.component.spec.ts b/webapp/src/app/settings/recorder-settings/recorder-settings.component.spec.ts new file mode 100644 index 0000000..730ca04 --- /dev/null +++ b/webapp/src/app/settings/recorder-settings/recorder-settings.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { RecorderSettingsComponent } from './recorder-settings.component'; + +describe('RecorderSettingsComponent', () => { + let component: RecorderSettingsComponent; + let fixture: ComponentFixture<RecorderSettingsComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ RecorderSettingsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(RecorderSettingsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/recorder-settings/recorder-settings.component.ts b/webapp/src/app/settings/recorder-settings/recorder-settings.component.ts new file mode 100644 index 0000000..5ab2874 --- /dev/null +++ b/webapp/src/app/settings/recorder-settings/recorder-settings.component.ts @@ -0,0 +1,92 @@ +import { + Component, + OnInit, + ChangeDetectionStrategy, + Input, + OnChanges, + ChangeDetectorRef, +} from '@angular/core'; +import { FormBuilder, FormControl, FormGroup } from '@angular/forms'; + +import cloneDeep from 'lodash-es/cloneDeep'; +import mapValues from 'lodash-es/mapValues'; +import { Observable } from 'rxjs'; + +import type { Mutable } from '../../shared/utility-types'; +import { + BUFFER_OPTIONS, + QUALITY_OPTIONS, + SYNC_FAILED_WARNING_TIP, + TIMEOUT_OPTIONS, +} from '../shared/constants/form'; +import { RecorderSettings } from '../shared/setting.model'; +import { + SettingsSyncService, + SyncStatus, + calcSyncStatus, +} from '../shared/services/settings-sync.service'; + +@Component({ + selector: 'app-recorder-settings', + templateUrl: './recorder-settings.component.html', + styleUrls: ['./recorder-settings.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class RecorderSettingsComponent implements OnInit, OnChanges { + @Input() settings!: RecorderSettings; + syncStatus!: SyncStatus<RecorderSettings>; + + readonly settingsForm: FormGroup; + readonly syncFailedWarningTip = SYNC_FAILED_WARNING_TIP; + readonly qualityOptions = cloneDeep(QUALITY_OPTIONS) as Mutable< + typeof QUALITY_OPTIONS + >; + readonly timeoutOptions = cloneDeep(TIMEOUT_OPTIONS) as Mutable< + typeof TIMEOUT_OPTIONS + >; + readonly bufferOptions = cloneDeep(BUFFER_OPTIONS) as Mutable< + typeof BUFFER_OPTIONS + >; + + constructor( + formBuilder: FormBuilder, + private changeDetector: ChangeDetectorRef, + private settingsSyncService: SettingsSyncService + ) { + this.settingsForm = formBuilder.group({ + qualityNumber: [''], + readTimeout: [''], + bufferSize: [''], + }); + } + + get qualityNumberControl() { + return this.settingsForm.get('qualityNumber') as FormControl; + } + + get readTimeoutControl() { + return this.settingsForm.get('readTimeout') as FormControl; + } + + get bufferSizeControl() { + return this.settingsForm.get('bufferSize') as FormControl; + } + + ngOnChanges(): void { + this.syncStatus = mapValues(this.settings, () => true); + this.settingsForm.setValue(this.settings); + } + + ngOnInit(): void { + this.settingsSyncService + .syncSettings( + 'recorder', + this.settings, + this.settingsForm.valueChanges as Observable<RecorderSettings> + ) + .subscribe((detail) => { + this.syncStatus = { ...this.syncStatus, ...calcSyncStatus(detail) }; + this.changeDetector.markForCheck(); + }); + } +} diff --git a/webapp/src/app/settings/settings-routing.module.ts b/webapp/src/app/settings/settings-routing.module.ts new file mode 100644 index 0000000..7c8e230 --- /dev/null +++ b/webapp/src/app/settings/settings-routing.module.ts @@ -0,0 +1,57 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + +import { SettingsResolver } from './shared/services/settings.resolver'; +import { EmailNotificationSettingsResolver } from './shared/services/email-notification-settings.resolver'; +import { PushplusNotificationSettingsResolver } from './shared/services/pushplus-notification-settings.resolver'; +import { ServerchanNotificationSettingsResolver } from './shared/services/serverchan-notification-settings.resolver'; +import { WebhookSettingsResolver } from './shared/services/webhook-settings.resolver'; +import { SettingsComponent } from './settings.component'; +import { EmailNotificationSettingsComponent } from './notification-settings/email-notification-settings/email-notification-settings.component'; +import { ServerchanNotificationSettingsComponent } from './notification-settings/serverchan-notification-settings/serverchan-notification-settings.component'; +import { PushplusNotificationSettingsComponent } from './notification-settings/pushplus-notification-settings/pushplus-notification-settings.component'; +import { WebhookManagerComponent } from './webhook-settings/webhook-manager/webhook-manager.component'; + +const routes: Routes = [ + { + path: 'email-notification', + component: EmailNotificationSettingsComponent, + resolve: { + settings: EmailNotificationSettingsResolver, + }, + }, + { + path: 'serverchan-notification', + component: ServerchanNotificationSettingsComponent, + resolve: { + settings: ServerchanNotificationSettingsResolver, + }, + }, + { + path: 'pushplus-notification', + component: PushplusNotificationSettingsComponent, + resolve: { + settings: PushplusNotificationSettingsResolver, + }, + }, + { + path: 'webhooks', + component: WebhookManagerComponent, + resolve: { + settings: WebhookSettingsResolver, + }, + }, + { + path: '', + component: SettingsComponent, + resolve: { + settings: SettingsResolver, + }, + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class SettingsRoutingModule {} diff --git a/webapp/src/app/settings/settings.component.html b/webapp/src/app/settings/settings.component.html new file mode 100644 index 0000000..33948ff --- /dev/null +++ b/webapp/src/app/settings/settings.component.html @@ -0,0 +1,51 @@ +<div class="inner-content" #innerContent> + <div class="main-settings settings-page"> + <div class="settings-page-content"> + <app-page-section name="文件"> + <app-output-settings [settings]="settings.output"></app-output-settings> + </app-page-section> + + <app-page-section name="录制"> + <app-recorder-settings + [settings]="settings.recorder" + ></app-recorder-settings> + </app-page-section> + + <app-page-section name="弹幕"> + <app-danmaku-settings + [settings]="settings.danmaku" + ></app-danmaku-settings> + </app-page-section> + + <app-page-section name="文件处理"> + <app-post-processing-settings + [settings]="settings.postprocessing" + ></app-post-processing-settings> + </app-page-section> + + <app-page-section name="硬盘空间"> + <app-disk-space-settings + [settings]="settings.space" + ></app-disk-space-settings> + </app-page-section> + + <app-page-section name="网络请求"> + <app-header-settings [settings]="settings.header"></app-header-settings> + </app-page-section> + + <app-page-section name="日志"> + <app-logging-settings + [settings]="settings.logging" + ></app-logging-settings> + </app-page-section> + + <app-page-section name="通知"> + <app-notification-settings></app-notification-settings> + </app-page-section> + + <app-page-section name="Webhook"> + <app-webhook-settings></app-webhook-settings> + </app-page-section> + </div> + </div> +</div> diff --git a/webapp/src/app/settings/settings.component.scss b/webapp/src/app/settings/settings.component.scss new file mode 100644 index 0000000..7326786 --- /dev/null +++ b/webapp/src/app/settings/settings.component.scss @@ -0,0 +1,6 @@ +@use '../shared/styles/layout'; +@use './shared/styles/setting'; + +.inner-content { + @extend %inner-content; +} diff --git a/webapp/src/app/settings/settings.component.spec.ts b/webapp/src/app/settings/settings.component.spec.ts new file mode 100644 index 0000000..a3a508b --- /dev/null +++ b/webapp/src/app/settings/settings.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { SettingsComponent } from './settings.component'; + +describe('SettingsComponent', () => { + let component: SettingsComponent; + let fixture: ComponentFixture<SettingsComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ SettingsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(SettingsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/settings.component.ts b/webapp/src/app/settings/settings.component.ts new file mode 100644 index 0000000..a3b6cfc --- /dev/null +++ b/webapp/src/app/settings/settings.component.ts @@ -0,0 +1,50 @@ +import { + AfterViewInit, + ChangeDetectorRef, + Component, + ElementRef, + OnInit, + ViewChild, +} from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; + +import { NGXLogger } from 'ngx-logger'; + +import { RouterScrollService } from '../core/services/router-scroll.service'; +import { Settings } from './shared/setting.model'; + +@Component({ + selector: 'app-settings', + templateUrl: './settings.component.html', + styleUrls: ['./settings.component.scss'], +}) +export class SettingsComponent implements OnInit, AfterViewInit { + settings!: Settings; + + @ViewChild('innerContent') + private innerContent!: ElementRef<HTMLElement>; + + constructor( + private changeDetector: ChangeDetectorRef, + private route: ActivatedRoute, + private logger: NGXLogger, + private routerScrollService: RouterScrollService + ) {} + + ngOnInit(): void { + this.route.data.subscribe((data) => { + this.settings = data.settings; + this.changeDetector.markForCheck(); + }); + } + + ngAfterViewInit() { + if (this.innerContent) { + this.routerScrollService.setCustomViewportToScroll( + this.innerContent.nativeElement + ); + } else { + this.logger.error('The content element could not be found!'); + } + } +} diff --git a/webapp/src/app/settings/settings.module.ts b/webapp/src/app/settings/settings.module.ts new file mode 100644 index 0000000..e9ca98b --- /dev/null +++ b/webapp/src/app/settings/settings.module.ts @@ -0,0 +1,125 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { ReactiveFormsModule } from '@angular/forms'; + +import { NzSpinModule } from 'ng-zorro-antd/spin'; +import { NzPageHeaderModule } from 'ng-zorro-antd/page-header'; +import { NzCardModule } from 'ng-zorro-antd/card'; +import { NzFormModule } from 'ng-zorro-antd/form'; +import { NzInputModule } from 'ng-zorro-antd/input'; +import { NzSwitchModule } from 'ng-zorro-antd/switch'; +import { NzCheckboxModule } from 'ng-zorro-antd/checkbox'; +import { NzRadioModule } from 'ng-zorro-antd/radio'; +import { NzSliderModule } from 'ng-zorro-antd/slider'; +import { NzSelectModule } from 'ng-zorro-antd/select'; +import { NzModalModule } from 'ng-zorro-antd/modal'; +import { NzButtonModule } from 'ng-zorro-antd/button'; +import { NzIconModule } from 'ng-zorro-antd/icon'; +import { NzListModule } from 'ng-zorro-antd/list'; +import { NzDropDownModule } from 'ng-zorro-antd/dropdown'; +import { NzToolTipModule } from 'ng-zorro-antd/tooltip'; +import { NzDividerModule } from 'ng-zorro-antd/divider'; +import { NzTableModule } from 'ng-zorro-antd/table'; +import { NzCollapseModule } from 'ng-zorro-antd/collapse'; + +import { SharedModule } from '../shared/shared.module'; +import { SettingsResolver } from './shared/services/settings.resolver'; +import { EmailNotificationSettingsResolver } from './shared/services/email-notification-settings.resolver'; +import { ServerchanNotificationSettingsResolver } from './shared/services/serverchan-notification-settings.resolver'; +import { PushplusNotificationSettingsResolver } from './shared/services/pushplus-notification-settings.resolver'; +import { WebhookSettingsResolver } from './shared/services/webhook-settings.resolver'; +import { SettingsRoutingModule } from './settings-routing.module'; +import { SettingsComponent } from './settings.component'; +import { SwitchActionableDirective } from './shared/directives/switch-actionable.directive'; +import { DiskSpaceSettingsComponent } from './disk-space-settings/disk-space-settings.component'; +import { NotificationSettingsComponent } from './notification-settings/notification-settings.component'; +import { LoggingSettingsComponent } from './logging-settings/logging-settings.component'; +import { DanmakuSettingsComponent } from './danmaku-settings/danmaku-settings.component'; +import { PostProcessingSettingsComponent } from './post-processing-settings/post-processing-settings.component'; +import { RecorderSettingsComponent } from './recorder-settings/recorder-settings.component'; +import { HeaderSettingsComponent } from './header-settings/header-settings.component'; +import { UserAgentEditDialogComponent } from './header-settings/user-agent-edit-dialog/user-agent-edit-dialog.component'; +import { CookieEditDialogComponent } from './header-settings/cookie-edit-dialog/cookie-edit-dialog.component'; +import { OutputSettingsComponent } from './output-settings/output-settings.component'; +import { WebhookSettingsComponent } from './webhook-settings/webhook-settings.component'; +import { EventSettingsComponent } from './notification-settings/shared/components/event-settings/event-settings.component'; +import { EmailNotificationSettingsComponent } from './notification-settings/email-notification-settings/email-notification-settings.component'; +import { EmailSettingsComponent } from './notification-settings/email-notification-settings/email-settings/email-settings.component'; +import { ServerchanNotificationSettingsComponent } from './notification-settings/serverchan-notification-settings/serverchan-notification-settings.component'; +import { ServerchanSettingsComponent } from './notification-settings/serverchan-notification-settings/serverchan-settings/serverchan-settings.component'; +import { PushplusNotificationSettingsComponent } from './notification-settings/pushplus-notification-settings/pushplus-notification-settings.component'; +import { PushplusSettingsComponent } from './notification-settings/pushplus-notification-settings/pushplus-settings/pushplus-settings.component'; +import { NotifierSettingsComponent } from './notification-settings/shared/components/notifier-settings/notifier-settings.component'; +import { WebhookManagerComponent } from './webhook-settings/webhook-manager/webhook-manager.component'; +import { WebhookEditDialogComponent } from './webhook-settings/webhook-edit-dialog/webhook-edit-dialog.component'; +import { WebhookListComponent } from './webhook-settings/webhook-list/webhook-list.component'; +import { OutdirEditDialogComponent } from './output-settings/outdir-edit-dialog/outdir-edit-dialog.component'; +import { PathTemplateEditDialogComponent } from './output-settings/path-template-edit-dialog/path-template-edit-dialog.component'; + +@NgModule({ + declarations: [ + SettingsComponent, + SwitchActionableDirective, + DiskSpaceSettingsComponent, + NotificationSettingsComponent, + LoggingSettingsComponent, + DanmakuSettingsComponent, + PostProcessingSettingsComponent, + RecorderSettingsComponent, + HeaderSettingsComponent, + UserAgentEditDialogComponent, + CookieEditDialogComponent, + OutputSettingsComponent, + WebhookSettingsComponent, + EventSettingsComponent, + EmailNotificationSettingsComponent, + EmailSettingsComponent, + ServerchanNotificationSettingsComponent, + ServerchanSettingsComponent, + PushplusNotificationSettingsComponent, + PushplusSettingsComponent, + NotifierSettingsComponent, + WebhookManagerComponent, + WebhookEditDialogComponent, + WebhookListComponent, + OutdirEditDialogComponent, + PathTemplateEditDialogComponent, + ], + imports: [ + CommonModule, + SettingsRoutingModule, + FormsModule, + ReactiveFormsModule, + + NzSpinModule, + NzPageHeaderModule, + NzCardModule, + NzFormModule, + NzInputModule, + NzSwitchModule, + NzCheckboxModule, + NzRadioModule, + NzSliderModule, + NzSelectModule, + NzModalModule, + NzButtonModule, + NzIconModule, + NzListModule, + NzDropDownModule, + NzToolTipModule, + NzDividerModule, + NzTableModule, + NzCollapseModule, + + SharedModule, + ], + providers: [ + SettingsResolver, + EmailNotificationSettingsResolver, + ServerchanNotificationSettingsResolver, + PushplusNotificationSettingsResolver, + WebhookSettingsResolver, + ], +}) +export class SettingsModule {} diff --git a/webapp/src/app/settings/shared/constants/form.ts b/webapp/src/app/settings/shared/constants/form.ts new file mode 100644 index 0000000..31c7fdd --- /dev/null +++ b/webapp/src/app/settings/shared/constants/form.ts @@ -0,0 +1,94 @@ +import { DeleteStrategy } from '../setting.model'; + +import range from 'lodash-es/range'; + +export const SPLIT_FILE_TIP = '会按照此限制自动分割文件'; +export const SYNC_FAILED_WARNING_TIP = '设置同步失败!'; + +export const PATH_TEMPLATE_PATTERN = + /^(?:[^\\\/:*?"<>|\t\n\r\f\v\{\}]*?\{(?:roomid|uname|title|area|parent_area|year|month|day|hour|minute|second)\}[^\\\/:*?"<>|\t\n\r\f\v\{\}]*?)+?(?:\/(?:[^\\\/:*?"<>|\t\n\r\f\v\{\}]*?\{(?:roomid|uname|title|area|parent_area|year|month|day|hour|minute|second)\}[^\\\/:*?"<>|\t\n\r\f\v\{\}]*?)+?)*$/; + +export const PATH_TEMPLATE_DEFAULT = + '{roomid} - {uname}/blive_{roomid}_{year}-{month}-{day}-{hour}{minute}{second}'; + +export type PathTemplateVariable = { + name: string; + desc: string; +}; + +export const PATH_TEMPLATE_VARIABLES: Readonly<PathTemplateVariable[]> = [ + { name: 'roomid', desc: '房间号' }, + { name: 'uname', desc: '主播用户名' }, + { name: 'title', desc: '房间标题' }, + { name: 'area', desc: '直播子分区名称' }, + { name: 'parent_area', desc: '直播主分区名称' }, + { name: 'year', desc: '文件创建日期时间之年份' }, + { name: 'month', desc: '文件创建日期时间之月份' }, + { name: 'day', desc: '文件创建日期时间之天数' }, + { name: 'hour', desc: '文件创建日期时间之小时' }, + { name: 'minute', desc: '文件创建日期时间之分钟' }, + { name: 'second', desc: '文件创建日期时间之秒数' }, +] as const; + +export const FILESIZE_LIMIT_OPTIONS = [ + { label: '不限', value: 0 }, + ...range(1, 21).map((i) => ({ + label: `${i} GB`, + value: 1024 ** 3 * i, + })), +] as const; + +export const DURATION_LIMIT_OPTIONS = [ + { label: '不限', value: 0 }, + ...range(1, 25).map((i) => ({ + label: `${i} 小时`, + value: 3600 * i, + })), +] as const; + +export const DELETE_STRATEGIES = [ + { label: '自动', value: DeleteStrategy.AUTO }, + { label: '从不', value: DeleteStrategy.NEVER }, +] as const; + +export const QUALITY_OPTIONS = [ + { label: '4K', value: 20000 }, + { label: '原画', value: 10000 }, + { label: '蓝光(杜比)', value: 401 }, + { label: '蓝光', value: 400 }, + { label: '超清', value: 250 }, + { label: '高清', value: 150 }, + { label: '流畅', value: 80 }, +] as const; + +export const TIMEOUT_OPTIONS = [ + { label: '3 秒', value: 3 }, + { label: '5 秒', value: 5 }, + { label: '10 秒', value: 10 }, + { label: '30 秒', value: 30 }, + { label: '1 分钟', value: 60 }, + { label: '3 分钟', value: 180 }, + { label: '5 分钟', value: 300 }, + { label: '10 分钟', value: 600 }, +] as const; + +export const BUFFER_OPTIONS = [ + { label: '4 KB', value: 1024 * 4 }, + { label: '8 KB', value: 1024 * 8 }, + { label: '16 KB', value: 1024 * 16 }, + { label: '32 KB', value: 1024 * 32 }, + { label: '64 KB', value: 1024 * 64 }, + { label: '128 KB', value: 1024 * 128 }, + { label: '256 KB', value: 1024 * 256 }, + { label: '512 KB', value: 1024 * 512 }, + { label: '1 MB', value: 1024 ** 2 }, + { label: '2 MB', value: 1024 ** 2 * 2 }, + { label: '4 MB', value: 1024 ** 2 * 4 }, + { label: '8 MB', value: 1024 ** 2 * 8 }, + { label: '16 MB', value: 1024 ** 2 * 16 }, + { label: '32 MB', value: 1024 ** 2 * 32 }, + { label: '64 MB', value: 1024 ** 2 * 64 }, + { label: '128 MB', value: 1024 ** 2 * 128 }, + { label: '256 MB', value: 1024 ** 2 * 256 }, + { label: '512 MB', value: 1024 ** 2 * 512 }, +] as const; diff --git a/webapp/src/app/settings/shared/directives/switch-actionable.directive.spec.ts b/webapp/src/app/settings/shared/directives/switch-actionable.directive.spec.ts new file mode 100644 index 0000000..531411f --- /dev/null +++ b/webapp/src/app/settings/shared/directives/switch-actionable.directive.spec.ts @@ -0,0 +1,8 @@ +import { SwitchActionableDirective } from './switch-actionable.directive'; + +describe('SwitchActionableDirective', () => { + it('should create an instance', () => { + const directive = new SwitchActionableDirective(); + expect(directive).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/shared/directives/switch-actionable.directive.ts b/webapp/src/app/settings/shared/directives/switch-actionable.directive.ts new file mode 100644 index 0000000..0a6c02f --- /dev/null +++ b/webapp/src/app/settings/shared/directives/switch-actionable.directive.ts @@ -0,0 +1,37 @@ +import { + ContentChild, + Directive, + HostBinding, + HostListener, +} from '@angular/core'; +import { FormControlName } from '@angular/forms'; + +import { NzSwitchComponent } from 'ng-zorro-antd/switch'; + +@Directive({ + selector: '[appSwitchActionable]', +}) +export class SwitchActionableDirective { + @ContentChild(FormControlName) directive?: FormControlName; + + @HostBinding('class.actionable') + get actionable() { + return this.directive?.valueAccessor instanceof NzSwitchComponent; + } + + constructor() {} + + @HostListener('click', ['$event']) + onClick(event: Event): void { + if (event.target !== event.currentTarget) { + return; + } + + event.preventDefault(); + event.stopPropagation(); + + if (this.directive?.valueAccessor instanceof NzSwitchComponent) { + this.directive.control.setValue(!this.directive.control.value); + } + } +} diff --git a/webapp/src/app/settings/shared/rx-operators.ts b/webapp/src/app/settings/shared/rx-operators.ts new file mode 100644 index 0000000..69010c7 --- /dev/null +++ b/webapp/src/app/settings/shared/rx-operators.ts @@ -0,0 +1,45 @@ +import { AbstractControl } from '@angular/forms'; + +import { pipe } from 'rxjs'; +import { + debounceTime, + distinctUntilChanged, + filter, + map, + tap, +} from 'rxjs/operators'; +import isEqual from 'lodash-es/isEqual'; +import isString from 'lodash-es/isString'; +import transform from 'lodash-es/transform'; + +export function filterValueChanges<T extends object>(control: AbstractControl) { + return pipe( + filter<T>(() => control.valid), + debounceTime(300), + trimString(), + distinctUntilChanged<T>(isEqual) + ); +} + +export function trimString<T extends object>() { + return pipe( + map( + (object: T) => + transform( + object, + (result, value: any, prop) => { + result[prop] = isString(value) ? value.trim() : value; + }, + {} as T + ) as T + ) + ); +} + +export function debugValueChanges<T>() { + return pipe( + tap((value: T) => { + console.debug('value change:', value); + }) + ); +} diff --git a/webapp/src/app/settings/shared/services/email-notification-settings.resolver.spec.ts b/webapp/src/app/settings/shared/services/email-notification-settings.resolver.spec.ts new file mode 100644 index 0000000..cb2cfd2 --- /dev/null +++ b/webapp/src/app/settings/shared/services/email-notification-settings.resolver.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { EmailNotificationSettingsResolver } from './email-notification-settings.resolver'; + +describe('EmailNotificationSettingsResolverService', () => { + let service: EmailNotificationSettingsResolver; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(EmailNotificationSettingsResolver); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/shared/services/email-notification-settings.resolver.ts b/webapp/src/app/settings/shared/services/email-notification-settings.resolver.ts new file mode 100644 index 0000000..46d2ab6 --- /dev/null +++ b/webapp/src/app/settings/shared/services/email-notification-settings.resolver.ts @@ -0,0 +1,43 @@ +import { Injectable } from '@angular/core'; +import { HttpErrorResponse } from '@angular/common/http'; +import { + ActivatedRouteSnapshot, + Resolve, + RouterStateSnapshot, +} from '@angular/router'; + +import { Observable } from 'rxjs'; +import { catchError, map } from 'rxjs/operators'; +import { NGXLogger } from 'ngx-logger'; +import { NzNotificationService } from 'ng-zorro-antd/notification'; + +import { retry } from '../../../shared/rx-operators'; +import { EmailNotificationSettings } from '../setting.model'; +import { SettingService } from './setting.service'; + +@Injectable() +export class EmailNotificationSettingsResolver + implements Resolve<EmailNotificationSettings> +{ + constructor( + private logger: NGXLogger, + private notification: NzNotificationService, + private settingService: SettingService + ) {} + resolve( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot + ): Observable<EmailNotificationSettings> { + return this.settingService.getSettings(['emailNotification']).pipe( + map((settings) => settings.emailNotification), + retry(3, 300), + catchError((error: HttpErrorResponse) => { + this.logger.error('Failed to get email notification settings:', error); + this.notification.error('获取邮件通知设置出错', error.message, { + nzDuration: 0, + }); + throw error; + }) + ); + } +} diff --git a/webapp/src/app/settings/shared/services/pushplus-notification-settings.resolver.spec.ts b/webapp/src/app/settings/shared/services/pushplus-notification-settings.resolver.spec.ts new file mode 100644 index 0000000..c7131ed --- /dev/null +++ b/webapp/src/app/settings/shared/services/pushplus-notification-settings.resolver.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { PushplusNotificationSettingsResolver } from './pushplus-notification-settings.resolver'; + +describe('PushplusNotificationSettingsResolverService', () => { + let service: PushplusNotificationSettingsResolver; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(PushplusNotificationSettingsResolver); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/shared/services/pushplus-notification-settings.resolver.ts b/webapp/src/app/settings/shared/services/pushplus-notification-settings.resolver.ts new file mode 100644 index 0000000..b6a8f11 --- /dev/null +++ b/webapp/src/app/settings/shared/services/pushplus-notification-settings.resolver.ts @@ -0,0 +1,46 @@ +import { Injectable } from '@angular/core'; +import { HttpErrorResponse } from '@angular/common/http'; +import { + ActivatedRouteSnapshot, + Resolve, + RouterStateSnapshot, +} from '@angular/router'; + +import { Observable } from 'rxjs'; +import { catchError, map } from 'rxjs/operators'; +import { NGXLogger } from 'ngx-logger'; +import { NzNotificationService } from 'ng-zorro-antd/notification'; + +import { retry } from '../../../shared/rx-operators'; +import { PushplusNotificationSettings } from '../setting.model'; +import { SettingService } from './setting.service'; + +@Injectable() +export class PushplusNotificationSettingsResolver + implements Resolve<PushplusNotificationSettings> +{ + constructor( + private logger: NGXLogger, + private notification: NzNotificationService, + private settingService: SettingService + ) {} + resolve( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot + ): Observable<PushplusNotificationSettings> { + return this.settingService.getSettings(['pushplusNotification']).pipe( + map((settings) => settings.pushplusNotification), + retry(3, 300), + catchError((error: HttpErrorResponse) => { + this.logger.error( + 'Failed to get pushplus notification settings:', + error + ); + this.notification.error('获取 pushplus 通知设置出错', error.message, { + nzDuration: 0, + }); + throw error; + }) + ); + } +} diff --git a/webapp/src/app/settings/shared/services/serverchan-notification-settings.resolver.spec.ts b/webapp/src/app/settings/shared/services/serverchan-notification-settings.resolver.spec.ts new file mode 100644 index 0000000..ae7899a --- /dev/null +++ b/webapp/src/app/settings/shared/services/serverchan-notification-settings.resolver.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { ServerchanNotificationSettingsResolver } from './serverchan-notification-settings.resolver'; + +describe('ServerchanNotificationSettingsResolverService', () => { + let service: ServerchanNotificationSettingsResolver; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(ServerchanNotificationSettingsResolver); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/shared/services/serverchan-notification-settings.resolver.ts b/webapp/src/app/settings/shared/services/serverchan-notification-settings.resolver.ts new file mode 100644 index 0000000..a4a0b4d --- /dev/null +++ b/webapp/src/app/settings/shared/services/serverchan-notification-settings.resolver.ts @@ -0,0 +1,46 @@ +import { Injectable } from '@angular/core'; +import { HttpErrorResponse } from '@angular/common/http'; +import { + ActivatedRouteSnapshot, + Resolve, + RouterStateSnapshot, +} from '@angular/router'; + +import { Observable } from 'rxjs'; +import { catchError, map } from 'rxjs/operators'; +import { NGXLogger } from 'ngx-logger'; +import { NzNotificationService } from 'ng-zorro-antd/notification'; + +import { retry } from '../../../shared/rx-operators'; +import { ServerchanNotificationSettings } from '../setting.model'; +import { SettingService } from './setting.service'; + +@Injectable() +export class ServerchanNotificationSettingsResolver + implements Resolve<ServerchanNotificationSettings> +{ + constructor( + private logger: NGXLogger, + private notification: NzNotificationService, + private settingService: SettingService + ) {} + resolve( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot + ): Observable<ServerchanNotificationSettings> { + return this.settingService.getSettings(['serverchanNotification']).pipe( + map((settings) => settings.serverchanNotification), + retry(3, 300), + catchError((error: HttpErrorResponse) => { + this.logger.error( + 'Failed to get ServerChan notification settings:', + error + ); + this.notification.error('获取 ServerChan 通知设置出错', error.message, { + nzDuration: 0, + }); + throw error; + }) + ); + } +} diff --git a/webapp/src/app/settings/shared/services/setting.service.spec.ts b/webapp/src/app/settings/shared/services/setting.service.spec.ts new file mode 100644 index 0000000..f3c0f71 --- /dev/null +++ b/webapp/src/app/settings/shared/services/setting.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { SettingService } from './setting.service'; + +describe('SettingService', () => { + let service: SettingService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(SettingService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/shared/services/setting.service.ts b/webapp/src/app/settings/shared/services/setting.service.ts new file mode 100644 index 0000000..5328546 --- /dev/null +++ b/webapp/src/app/settings/shared/services/setting.service.ts @@ -0,0 +1,76 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; + +import { Observable } from 'rxjs'; + +import { environment } from 'src/environments/environment'; +import { + Settings, + TaskOptions, + TaskOptionsIn, + SettingsIn, + SettingsOut, +} from '../setting.model'; + +const apiUrl = environment.apiUrl; + +@Injectable({ + providedIn: 'root', +}) +export class SettingService { + constructor(private http: HttpClient) {} + + getSettings( + include: Array<keyof Settings> | null = null, + exclude: Array<keyof Settings> | null = null + ): Observable<Settings> { + const url = apiUrl + `/api/v1/settings`; + return this.http.get<Settings>(url, { + params: { + include: include ?? [], + exclude: exclude ?? [], + }, + }); + } + + /** + * Change settings of the application + * + * Change the output directory will cause the application be **restarted**! + * + * Change network request headers will cause + * **all** the Danmaku client be **reconnected**! + * + * @param settings settings to change + * @returns settings of the application + */ + changeSettings(settings: SettingsIn): Observable<SettingsOut> { + const url = apiUrl + `/api/v1/settings`; + return this.http.patch<SettingsOut>(url, settings); + } + + getTaskOptions(roomId: number): Observable<TaskOptions> { + const url = apiUrl + `/api/v1/settings/tasks/${roomId}`; + return this.http.get<TaskOptions>(url); + } + + /** + * Change task-specific options + * + * Task-specific options will shadow the corresponding global settings. + * Explicitly set options to **null** will remove the value shadowing. + * + * Change network request headers will cause the Danmaku client be **reconnected**! + * + * @param roomId the real room id of the task + * @param options options to change + * @returns changed options + */ + changeTaskOptions( + roomId: number, + options: TaskOptionsIn + ): Observable<TaskOptions> { + const url = apiUrl + `/api/v1/settings/tasks/${roomId}`; + return this.http.patch<TaskOptions>(url, options); + } +} diff --git a/webapp/src/app/settings/shared/services/settings-sync.service.spec.ts b/webapp/src/app/settings/shared/services/settings-sync.service.spec.ts new file mode 100644 index 0000000..34dd085 --- /dev/null +++ b/webapp/src/app/settings/shared/services/settings-sync.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { SettingsSyncService } from './settings-sync.service'; + +describe('SettingsSyncService', () => { + let service: SettingsSyncService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(SettingsSyncService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/shared/services/settings-sync.service.ts b/webapp/src/app/settings/shared/services/settings-sync.service.ts new file mode 100644 index 0000000..2e9755f --- /dev/null +++ b/webapp/src/app/settings/shared/services/settings-sync.service.ts @@ -0,0 +1,92 @@ +import { Injectable } from '@angular/core'; +import { HttpErrorResponse } from '@angular/common/http'; + +import { Observable, of } from 'rxjs'; +import { catchError, filter, map, scan, switchMap, tap } from 'rxjs/operators'; +import isEmpty from 'lodash-es/isEmpty'; +import isEqual from 'lodash-es/isEqual'; +import mapValues from 'lodash-es/mapValues'; +import { NzMessageService } from 'ng-zorro-antd/message'; + +import { retry } from '../../../shared/rx-operators'; +import { difference } from '../../../shared/utils'; +import { SettingsIn } from '../setting.model'; +import { SettingService } from './setting.service'; + +type SK = keyof SettingsIn; +type SV = SettingsIn[SK]; + +export interface DetailWithResult<V extends SV> { + prev: V; + curr: V; + diff: Partial<V>; + result: V; +} + +export interface DetailWithError<V extends SV> { + prev: V; + curr: V; + diff: Partial<V>; + error: HttpErrorResponse; +} + +export type SyncStatus<Type extends SV> = { + [Property in keyof Type]: boolean; +}; + +export function calcSyncStatus<V extends SV>( + detail: DetailWithResult<V> | DetailWithError<V> +): Partial<SyncStatus<V>> { + const successful = 'result' in detail; + return mapValues(detail.diff, () => successful); +} + +@Injectable({ + providedIn: 'root', +}) +export class SettingsSyncService { + constructor( + private message: NzMessageService, + private settingService: SettingService + ) {} + + syncSettings<K extends SK, V extends SV>( + key: K, + initialValue: V, + valueChanges: Observable<V> + ): Observable<DetailWithResult<V> | DetailWithError<V>> { + return valueChanges.pipe( + scan<V, [V, V, Partial<V>]>( + ([, prev], curr) => [ + prev, + curr, + difference(curr!, prev!) as Partial<V>, + ], + [initialValue, initialValue, {} as Partial<V>] + ), + filter(([, , diff]) => !isEmpty(diff)), + switchMap(([prev, curr, diff]) => + this.settingService.changeSettings({ [key]: diff }).pipe( + retry(3, 300), + tap( + (settings) => { + console.assert( + isEqual(settings[key], curr), + 'result settings should equal current settings', + { curr, result: settings[key] } + ); + }, + (error: HttpErrorResponse) => { + this.message.error(`设置出错: ${error.message}`); + } + ), + map((settings) => ({ prev, curr, diff, result: settings[key] as V })), + catchError((error: HttpErrorResponse) => + of({ prev, curr, diff, error }) + ) + ) + ), + tap((detail) => console.debug(`${key} settings sync detail:`, detail)) + ); + } +} diff --git a/webapp/src/app/settings/shared/services/settings.resolver.spec.ts b/webapp/src/app/settings/shared/services/settings.resolver.spec.ts new file mode 100644 index 0000000..44e034c --- /dev/null +++ b/webapp/src/app/settings/shared/services/settings.resolver.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { SettingsResolver } from './settings.resolver'; + +describe('SettingsResolverService', () => { + let service: SettingsResolver; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(SettingsResolver); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/shared/services/settings.resolver.ts b/webapp/src/app/settings/shared/services/settings.resolver.ts new file mode 100644 index 0000000..e697e79 --- /dev/null +++ b/webapp/src/app/settings/shared/services/settings.resolver.ts @@ -0,0 +1,61 @@ +import { Injectable } from '@angular/core'; +import { HttpErrorResponse } from '@angular/common/http'; +import { + ActivatedRouteSnapshot, + Resolve, + RouterStateSnapshot, +} from '@angular/router'; + +import { Observable } from 'rxjs'; +import { catchError } from 'rxjs/operators'; +import { NGXLogger } from 'ngx-logger'; +import { NzNotificationService } from 'ng-zorro-antd/notification'; + +import { retry } from '../../../shared/rx-operators'; +import { Settings } from '../setting.model'; +import { SettingService } from './setting.service'; + +type PrimarySettings = Pick< + Settings, + | 'output' + | 'logging' + | 'header' + | 'danmaku' + | 'recorder' + | 'postprocessing' + | 'space' +>; + +@Injectable() +export class SettingsResolver implements Resolve<PrimarySettings> { + constructor( + private logger: NGXLogger, + private notification: NzNotificationService, + private settingService: SettingService + ) {} + resolve( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot + ): Observable<PrimarySettings> { + return this.settingService + .getSettings([ + 'output', + 'logging', + 'header', + 'danmaku', + 'recorder', + 'postprocessing', + 'space', + ]) + .pipe( + retry(3, 300), + catchError((error: HttpErrorResponse) => { + this.logger.error('Failed to get settings:', error); + this.notification.error('获取设置出错', error.message, { + nzDuration: 0, + }); + throw error; + }) + ); + } +} diff --git a/webapp/src/app/settings/shared/services/webhook-settings.resolver.spec.ts b/webapp/src/app/settings/shared/services/webhook-settings.resolver.spec.ts new file mode 100644 index 0000000..54c63a1 --- /dev/null +++ b/webapp/src/app/settings/shared/services/webhook-settings.resolver.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { WebhookSettingsResolver } from './webhook-settings.resolver'; + +describe('WebhookSettingsResolverService', () => { + let service: WebhookSettingsResolver; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(WebhookSettingsResolver); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/shared/services/webhook-settings.resolver.ts b/webapp/src/app/settings/shared/services/webhook-settings.resolver.ts new file mode 100644 index 0000000..dcd88ae --- /dev/null +++ b/webapp/src/app/settings/shared/services/webhook-settings.resolver.ts @@ -0,0 +1,41 @@ +import { Injectable } from '@angular/core'; +import { HttpErrorResponse } from '@angular/common/http'; +import { + ActivatedRouteSnapshot, + Resolve, + RouterStateSnapshot, +} from '@angular/router'; + +import { Observable } from 'rxjs'; +import { catchError, map } from 'rxjs/operators'; +import { NGXLogger } from 'ngx-logger'; +import { NzNotificationService } from 'ng-zorro-antd/notification'; + +import { retry } from '../../../shared/rx-operators'; +import { WebhookSettings } from '../setting.model'; +import { SettingService } from './setting.service'; + +@Injectable() +export class WebhookSettingsResolver implements Resolve<WebhookSettings[]> { + constructor( + private logger: NGXLogger, + private notification: NzNotificationService, + private settingService: SettingService + ) {} + resolve( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot + ): Observable<WebhookSettings[]> { + return this.settingService.getSettings(['webhooks']).pipe( + map((settings) => settings.webhooks), + retry(3, 300), + catchError((error: HttpErrorResponse) => { + this.logger.error('Failed to get webhook settings:', error); + this.notification.error('获取 Webhook 设置出错', error.message, { + nzDuration: 0, + }); + throw error; + }) + ); + } +} diff --git a/webapp/src/app/settings/shared/setting.model.ts b/webapp/src/app/settings/shared/setting.model.ts new file mode 100644 index 0000000..06cc1d0 --- /dev/null +++ b/webapp/src/app/settings/shared/setting.model.ts @@ -0,0 +1,186 @@ +import type { Nullable, PartialDeep } from 'src/app/shared/utility-types'; + +export interface HeaderSettings { + userAgent: string; + cookie: string; +} + +export type HeaderOptions = Nullable<HeaderSettings>; + +export interface DanmakuSettings { + danmuUname: boolean; +} + +export type DanmakuOptions = Nullable<DanmakuSettings>; + +export type QualityNumber = + | 20000 // 4K + | 10000 // 原画 + | 401 // 蓝光(杜比) + | 400 // 蓝光 + | 250 // 超清 + | 150 // 高清 + | 80; // 流畅 + +export interface RecorderSettings { + qualityNumber: QualityNumber; + readTimeout: number; + bufferSize: number; +} + +export type RecorderOptions = Nullable<RecorderSettings>; + +export enum DeleteStrategy { + AUTO = 'auto', + NEVER = 'never', +} + +export interface PostprocessingSettings { + remuxToMp4: boolean; + deleteSource: DeleteStrategy; +} + +export type PostprocessingOptions = Nullable<PostprocessingSettings>; + +export interface TaskOptions { + output: OutputOptions; + header: HeaderOptions; + danmaku: DanmakuOptions; + recorder: RecorderOptions; + postprocessing: PostprocessingOptions; +} + +export type TaskOptionsIn = PartialDeep<TaskOptions>; + +export interface TaskSettings extends TaskOptions { + roomId: number; + enableMonitor: boolean; + enableRecorder: boolean; +} + +export type GlobalTaskSettings = Pick< + Settings, + 'output' | 'header' | 'danmaku' | 'recorder' | 'postprocessing' +>; + +export interface OutputSettings { + outDir: string; + pathTemplate: string; + filesizeLimit: number; + durationLimit: number; +} + +export type OutputOptions = Nullable<Omit<OutputSettings, 'outDir'>>; + +export type LogLevel = + | 'CRITICAL' + | 'ERROR' + | 'WARNING' + | 'INFO' + | 'DEBUG' + | 'NOTSET'; + +export interface LoggingSettings { + consoleLogLevel: LogLevel; + maxBytes: number; + backupCount: number; +} + +export interface SpaceSettings { + checkInterval: number; + spaceThreshold: number; + recycleRecords: boolean; +} + +export interface EmailSettings { + srcAddr: string; + dstAddr: string; + authCode: string; + smtpHost: string; + smtpPort: number; +} + +export const KEYS_OF_EMAIL_SETTINGS = [ + 'srcAddr', + 'dstAddr', + 'authCode', + 'smtpHost', + 'smtpPort', +] as const; + +export interface ServerchanSettings { + sendkey: string; +} + +export const KEYS_OF_SERVERCHAN_SETTINGS = ['sendkey'] as const; + +export interface PushplusSettings { + token: string; + topic: string; +} + +export const KEYS_OF_PUSHPLUS_SETTINGS = ['token', 'topic'] as const; + +export interface NotifierSettings { + enabled: boolean; +} + +export const KEYS_OF_NOTIFIER_SETTINGS = ['enabled'] as const; + +export interface NotificationSettings { + notifyBegan: boolean; + notifyEnded: boolean; + notifyError: boolean; + notifySpace: boolean; +} + +export const KEYS_OF_NOTIFICATION_SETTINGS = [ + 'notifyBegan', + 'notifyEnded', + 'notifyError', + 'notifySpace', +] as const; + +export type EmailNotificationSettings = EmailSettings & + NotifierSettings & + NotificationSettings; + +export type ServerchanNotificationSettings = ServerchanSettings & + NotifierSettings & + NotificationSettings; + +export type PushplusNotificationSettings = PushplusSettings & + NotifierSettings & + NotificationSettings; + +export interface WebhookEventSettings { + liveBegan: boolean; + liveEnded: boolean; + roomChange: boolean; + spaceNoEnough: boolean; + fileCompleted: boolean; + errorOccurred: boolean; +} + +export interface WebhookSettings extends WebhookEventSettings { + url: string; +} + +export interface Settings { + version: string; + tasks: TaskSettings[]; + output: OutputSettings; + logging: LoggingSettings; + header: HeaderSettings; + danmaku: DanmakuSettings; + recorder: RecorderSettings; + postprocessing: PostprocessingSettings; + space: SpaceSettings; + emailNotification: EmailNotificationSettings; + serverchanNotification: ServerchanNotificationSettings; + pushplusNotification: PushplusNotificationSettings; + webhooks: WebhookSettings[]; +} + +export type SettingsIn = PartialDeep<Omit<Settings, 'version' | 'tasks'>>; +export type SettingsOut = Partial<Settings>; diff --git a/webapp/src/app/settings/shared/styles/_setting.scss b/webapp/src/app/settings/shared/styles/_setting.scss new file mode 100644 index 0000000..dae1cc5 --- /dev/null +++ b/webapp/src/app/settings/shared/styles/_setting.scss @@ -0,0 +1,111 @@ +@use '../../../shared/styles/layout'; +@use '../../../shared/styles/list'; + +.settings-page { + @extend %inner-page; +} + +.settings-page-content { + display: flex; + flex-direction: column; + width: 100%; +} + +.form-group { + h2 { + margin: 0; + font-weight: bold; + font-size: 1.2em; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + } +} + +@mixin actionable { + cursor: pointer; + + &:hover { + background-color: rgba(32, 33, 36, 0.1); + } +} + +.setting-item { + @extend %list-item; + + gap: 0.5em; + + &.actionable { + @include actionable; + } +} + +a.setting-item { + outline: none; + text-decoration: none; + color: inherit; + @include actionable; +} + +.setting-label { + padding: 0 !important; + max-width: fit-content !important; + text-align: left; + + &.align-required { + position: relative; + left: 11px; + } +} + +.setting-control, +.setting-value { + max-width: fit-content !important; + margin-left: auto !important; + + &.input { + max-width: 100% !important; + } + + &.select { + max-width: 8em !important; + width: 8em !important; + } + + &.switch { + // place sync failed warning tip on the lefthand + flex-direction: row-reverse; + align-items: center; + } + + &.checkbox { + max-width: 100% !important; + width: 100% !important; + margin-left: 0; + + label { + width: 100%; + } + } + + &.textarea { + max-width: 100% !important; + width: 100% !important; + margin-left: 0; + } + + @media screen and (max-width: 332px) { + &.radio { + margin-left: 0 !important; + } + } + + @media screen and (max-width: 319px) { + &.select { + margin-left: 0 !important; + } + } +} + +.setting-value { + color: #5f6368; + font-weight: 400; +} diff --git a/webapp/src/app/settings/webhook-settings/webhook-edit-dialog/webhook-edit-dialog.component.html b/webapp/src/app/settings/webhook-settings/webhook-edit-dialog/webhook-edit-dialog.component.html new file mode 100644 index 0000000..7d8c15f --- /dev/null +++ b/webapp/src/app/settings/webhook-settings/webhook-edit-dialog/webhook-edit-dialog.component.html @@ -0,0 +1,87 @@ +<nz-modal + [nzTitle]="title" + nzCentered + [nzOkText]="okButtonText" + [nzVisible]="visible" + [nzOkDisabled]="settingsForm.invalid" + (nzOnOk)="handleConfirm()" + (nzOnCancel)="handleCancel()" +> + <ng-container *nzModalContent> + <form nz-form [formGroup]="settingsForm"> + <nz-form-item class="setting-item"> + <nz-form-label class="setting-label" nzFor="url" nzNoColon + >URL</nz-form-label + > + <nz-form-control + class="setting-control input" + nzHasFeedback + [nzErrorTip]="urlErrorTip" + > + <input id="url" type="url" required nz-input formControlName="url" /> + <ng-template #urlErrorTip let-control> + <ng-container *ngIf="control.hasError('required')"> + 请输入 url! + </ng-container> + <ng-container *ngIf="control.hasError('pattern')"> + url 无效! + </ng-container> + </ng-template> + </nz-form-control> + </nz-form-item> + + <div class="form-group"> + <h2>事件</h2> + <nz-form-item class="setting-item"> + <nz-form-control class="setting-control checkbox check-all"> + <label + nz-checkbox + [nzChecked]="allChecked" + (nzCheckedChange)="setAllChecked($event)" + [nzIndeterminate]="indeterminate" + >全选</label + > + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-control class="setting-control checkbox"> + <label nz-checkbox formControlName="liveBegan">开播</label> + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-control class="setting-control checkbox"> + <label nz-checkbox formControlName="liveEnded">下播</label> + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-control class="setting-control checkbox"> + <label nz-checkbox formControlName="roomChange" + >直播间信息改变</label + > + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-control class="setting-control checkbox"> + <label nz-checkbox formControlName="fileCompleted" + >录播文件完成</label + > + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-control class="setting-control checkbox"> + <label nz-checkbox formControlName="spaceNoEnough" + >硬盘空间不足</label + > + </nz-form-control> + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-control class="setting-control checkbox"> + <label nz-checkbox formControlName="errorOccurred" + >程序出现异常</label + > + </nz-form-control> + </nz-form-item> + </div> + </form> + </ng-container> +</nz-modal> diff --git a/webapp/src/app/settings/webhook-settings/webhook-edit-dialog/webhook-edit-dialog.component.scss b/webapp/src/app/settings/webhook-settings/webhook-edit-dialog/webhook-edit-dialog.component.scss new file mode 100644 index 0000000..b12076c --- /dev/null +++ b/webapp/src/app/settings/webhook-settings/webhook-edit-dialog/webhook-edit-dialog.component.scss @@ -0,0 +1,23 @@ +@use '../../shared/styles/setting'; + +.setting-item { + padding: 1em 0; + border: none; + + &:first-child { + padding-top: 0; + + .setting-control { + flex: 1 1 auto; + max-width: 100% !important; + } + } + + &:last-child { + padding-bottom: 0; + } + + .check-all { + border-bottom: 1px solid rgba(0, 0, 0, 0.06); + } +} diff --git a/webapp/src/app/settings/webhook-settings/webhook-edit-dialog/webhook-edit-dialog.component.spec.ts b/webapp/src/app/settings/webhook-settings/webhook-edit-dialog/webhook-edit-dialog.component.spec.ts new file mode 100644 index 0000000..2d13a91 --- /dev/null +++ b/webapp/src/app/settings/webhook-settings/webhook-edit-dialog/webhook-edit-dialog.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { WebhookEditDialogComponent } from './webhook-edit-dialog.component'; + +describe('WebhookEditDialogComponent', () => { + let component: WebhookEditDialogComponent; + let fixture: ComponentFixture<WebhookEditDialogComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ WebhookEditDialogComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(WebhookEditDialogComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/webhook-settings/webhook-edit-dialog/webhook-edit-dialog.component.ts b/webapp/src/app/settings/webhook-settings/webhook-edit-dialog/webhook-edit-dialog.component.ts new file mode 100644 index 0000000..f250ec7 --- /dev/null +++ b/webapp/src/app/settings/webhook-settings/webhook-edit-dialog/webhook-edit-dialog.component.ts @@ -0,0 +1,123 @@ +import { + Component, + ChangeDetectionStrategy, + Input, + OnChanges, + Output, + EventEmitter, + ChangeDetectorRef, +} from '@angular/core'; +import { + AbstractControl, + FormBuilder, + FormGroup, + Validators, +} from '@angular/forms'; + +import { WebhookSettings } from '../../shared/setting.model'; + +const DEFAULT_SETTINGS = { + url: '', + liveBegan: true, + liveEnded: true, + roomChange: true, + spaceNoEnough: true, + fileCompleted: true, + errorOccurred: true, +} as const; + +@Component({ + selector: 'app-webhook-edit-dialog', + templateUrl: './webhook-edit-dialog.component.html', + styleUrls: ['./webhook-edit-dialog.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class WebhookEditDialogComponent implements OnChanges { + @Input() settings?: WebhookSettings; + @Input() title = '标题'; + @Input() okButtonText = '确定'; + @Input() visible = false; + @Output() visibleChange = new EventEmitter<boolean>(); + @Output() cancel = new EventEmitter<undefined>(); + @Output() confirm = new EventEmitter<WebhookSettings>(); + + readonly settingsForm: FormGroup; + + allChecked = false; + indeterminate = true; + + private checkboxControls: AbstractControl[]; + + constructor( + formBuilder: FormBuilder, + private changeDetector: ChangeDetectorRef + ) { + this.settingsForm = formBuilder.group({ + url: ['', [Validators.required, Validators.pattern(/^https?:\/\/.*$/)]], + liveBegan: [''], + liveEnded: [''], + roomChange: [''], + fileCompleted: [''], + spaceNoEnough: [''], + errorOccurred: [''], + }); + + this.checkboxControls = Object.entries(this.settingsForm.controls) + .filter(([n]) => n !== 'url') + .map(([, c]) => c); + + this.checkboxControls.forEach((c) => + c.valueChanges.subscribe(() => this.updateAllChecked()) + ); + } + + ngOnChanges(): void { + this.setValue(); + } + + open(): void { + this.setValue(); + this.setVisible(true); + } + + close(): void { + this.settingsForm.reset(); + this.setVisible(false); + } + + setVisible(visible: boolean): void { + this.visible = visible; + this.visibleChange.emit(visible); + this.changeDetector.markForCheck(); + } + + setValue(): void { + if (this.settings === undefined) { + this.settings = { ...DEFAULT_SETTINGS }; + } + this.settingsForm.setValue(this.settings); + this.changeDetector.markForCheck(); + } + + handleCancel(): void { + this.cancel.emit(); + this.close(); + } + + handleConfirm(): void { + this.confirm.emit(this.settingsForm.value); + this.close(); + } + + setAllChecked(checked: boolean): void { + this.indeterminate = false; + this.allChecked = checked; + this.checkboxControls.forEach((c) => c.setValue(checked)); + } + + private updateAllChecked(): void { + const allValues = this.checkboxControls.map((c) => c.value); + this.allChecked = allValues.every((v) => v); + this.indeterminate = this.allChecked ? false : allValues.some((v) => v); + } +} diff --git a/webapp/src/app/settings/webhook-settings/webhook-list/webhook-list.component.html b/webapp/src/app/settings/webhook-settings/webhook-list/webhook-list.component.html new file mode 100644 index 0000000..f55b24c --- /dev/null +++ b/webapp/src/app/settings/webhook-settings/webhook-list/webhook-list.component.html @@ -0,0 +1,54 @@ +<nz-list class="list" nzBordered> + <nz-list-header class="list-header"> + <h3>{{ header }}</h3> + <div class="list-actions"> + <button + class="clear-button" + nz-button + nzType="text" + nzSize="large" + nz-tooltip + nzTooltipTitle="清空" + [disabled]="data.length <= 0 || !clearable" + (click)="clear.emit()" + > + <i nz-icon nzType="clear"></i> + </button> + <button + class="add-button" + nz-button + nzType="text" + nzSize="large" + nz-tooltip + nzTooltipTitle="添加" + [disabled]="!addable" + (click)="add.emit()" + > + <i nz-icon nzType="plus"></i> + </button> + </div> + </nz-list-header> + + <nz-list-empty *ngIf="data.length <= 0"></nz-list-empty> + + <nz-list-item class="list-item" *ngFor="let webhook of data; index as i"> + <span class="item-content">{{ webhook.url }}</span> + <button + class="more-action-button" + nz-button + nzType="text" + nzSize="default" + nz-dropdown + [nzDropdownMenu]="menu" + nzPlacement="bottomRight" + > + <i nz-icon nzType="more"></i> + </button> + <nz-dropdown-menu #menu="nzDropdownMenu"> + <ul nz-menu> + <li nz-menu-item (click)="edit.emit(i)">修改</li> + <li nz-menu-item (click)="remove.emit(i)">删除</li> + </ul> + </nz-dropdown-menu> + </nz-list-item> +</nz-list> diff --git a/webapp/src/app/settings/webhook-settings/webhook-list/webhook-list.component.scss b/webapp/src/app/settings/webhook-settings/webhook-list/webhook-list.component.scss new file mode 100644 index 0000000..bbe5fde --- /dev/null +++ b/webapp/src/app/settings/webhook-settings/webhook-list/webhook-list.component.scss @@ -0,0 +1,39 @@ +@use '../../../shared/styles/text'; + +.list { + background-color: white; + + .list-header { + display: flex; + flex-wrap: nowrap; + align-items: center; + padding: 0.5em 1.5em; + + h3 { + margin: 0; + } + + .list-actions { + margin-left: auto; + position: relative; + left: 1em; + } + } + + .list-item { + display: flex; + flex-wrap: nowrap; + padding: 0.5em 1.5em; + + .item-content { + @include text.elide-text-overflow; + } + + .more-action-button { + margin-left: auto; + flex: 0 0 auto; + position: relative; + left: 1em; + } + } +} diff --git a/webapp/src/app/settings/webhook-settings/webhook-list/webhook-list.component.spec.ts b/webapp/src/app/settings/webhook-settings/webhook-list/webhook-list.component.spec.ts new file mode 100644 index 0000000..d3f2397 --- /dev/null +++ b/webapp/src/app/settings/webhook-settings/webhook-list/webhook-list.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { WebhookListComponent } from './webhook-list.component'; + +describe('WebhookListComponent', () => { + let component: WebhookListComponent; + let fixture: ComponentFixture<WebhookListComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ WebhookListComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(WebhookListComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/webhook-settings/webhook-list/webhook-list.component.ts b/webapp/src/app/settings/webhook-settings/webhook-list/webhook-list.component.ts new file mode 100644 index 0000000..fb4647f --- /dev/null +++ b/webapp/src/app/settings/webhook-settings/webhook-list/webhook-list.component.ts @@ -0,0 +1,27 @@ +import { + Component, + ChangeDetectionStrategy, + Input, + Output, + EventEmitter, +} from '@angular/core'; + +import { WebhookSettings } from '../../shared/setting.model'; + +@Component({ + selector: 'app-webhook-list', + templateUrl: './webhook-list.component.html', + styleUrls: ['./webhook-list.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class WebhookListComponent { + @Input() data!: WebhookSettings[]; + @Input() header = ''; + @Input() addable = true; + @Input() clearable = true; + + @Output() add = new EventEmitter<undefined>(); + @Output() edit = new EventEmitter<number>(); + @Output() remove = new EventEmitter<number>(); + @Output() clear = new EventEmitter<undefined>(); +} diff --git a/webapp/src/app/settings/webhook-settings/webhook-manager/webhook-manager.component.html b/webapp/src/app/settings/webhook-settings/webhook-manager/webhook-manager.component.html new file mode 100644 index 0000000..604fcf2 --- /dev/null +++ b/webapp/src/app/settings/webhook-settings/webhook-manager/webhook-manager.component.html @@ -0,0 +1,24 @@ +<app-sub-page pageTitle="Webhooks"> + <ng-template appSubPageContent> + <app-page-section> + <app-webhook-list + header="Webhook 列表" + [data]="webhooks" + [addable]="canAdd" + (add)="addWebhook()" + (edit)="editWebhook($event)" + (remove)="removeWebhook($event)" + (clear)="clearWebhook()" + ></app-webhook-list> + </app-page-section> + </ng-template> +</app-sub-page> + +<app-webhook-edit-dialog + [title]="dialogTitle" + [okButtonText]="dialogOkButtonText" + [settings]="editingSettings" + [(visible)]="dialogVisible" + (cancel)="onDialogCanceled()" + (confirm)="onDialogConfirmed($event)" +></app-webhook-edit-dialog> diff --git a/webapp/src/app/settings/webhook-settings/webhook-manager/webhook-manager.component.scss b/webapp/src/app/settings/webhook-settings/webhook-manager/webhook-manager.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/webapp/src/app/settings/webhook-settings/webhook-manager/webhook-manager.component.spec.ts b/webapp/src/app/settings/webhook-settings/webhook-manager/webhook-manager.component.spec.ts new file mode 100644 index 0000000..10fe9c5 --- /dev/null +++ b/webapp/src/app/settings/webhook-settings/webhook-manager/webhook-manager.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { WebhookManagerComponent } from './webhook-manager.component'; + +describe('WebhookManagerComponent', () => { + let component: WebhookManagerComponent; + let fixture: ComponentFixture<WebhookManagerComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ WebhookManagerComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(WebhookManagerComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/webhook-settings/webhook-manager/webhook-manager.component.ts b/webapp/src/app/settings/webhook-settings/webhook-manager/webhook-manager.component.ts new file mode 100644 index 0000000..dbfb438 --- /dev/null +++ b/webapp/src/app/settings/webhook-settings/webhook-manager/webhook-manager.component.ts @@ -0,0 +1,119 @@ +import { + Component, + OnInit, + ChangeDetectionStrategy, + ChangeDetectorRef, +} from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; +import { HttpErrorResponse } from '@angular/common/http'; + +import { tap } from 'rxjs/operators'; +import { NzMessageService } from 'ng-zorro-antd/message'; +import { NzModalService } from 'ng-zorro-antd/modal'; + +import { retry } from '../../../shared/rx-operators'; +import { SettingService } from '../../shared/services/setting.service'; +import { WebhookSettings } from '../../shared/setting.model'; + +@Component({ + selector: 'app-webhook-manager', + templateUrl: './webhook-manager.component.html', + styleUrls: ['./webhook-manager.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class WebhookManagerComponent implements OnInit { + static readonly MAX_WEBHOOKS = 50; + + webhooks!: WebhookSettings[]; + + dialogTitle = ''; + dialogOkButtonText = ''; + dialogVisible = false; + editingIndex = -1; + editingSettings?: WebhookSettings; + + constructor( + private changeDetector: ChangeDetectorRef, + private route: ActivatedRoute, + private message: NzMessageService, + private modal: NzModalService, + private settingService: SettingService + ) {} + + get canAdd() { + return this.webhooks.length < WebhookManagerComponent.MAX_WEBHOOKS; + } + + ngOnInit(): void { + this.route.data.subscribe((data) => { + this.webhooks = data.settings; + this.changeDetector.markForCheck(); + }); + } + + addWebhook(): void { + this.editingIndex = -1; + this.editingSettings = undefined; + this.dialogTitle = '添加 webhook'; + this.dialogOkButtonText = '添加'; + this.dialogVisible = true; + } + + removeWebhook(index: number): void { + const webhooks = this.webhooks.filter((v, i) => i !== index); + this.changeSettings(webhooks).subscribe(() => this.reset()); + } + + editWebhook(index: number): void { + this.editingIndex = index; + this.editingSettings = { ...this.webhooks[index] }; + this.dialogTitle = '修改 webhook'; + this.dialogOkButtonText = '保存'; + this.dialogVisible = true; + } + + clearWebhook(): void { + this.modal.confirm({ + nzTitle: '确定要清空 Webhook ?', + nzOnOk: () => + new Promise((resolve, reject) => { + this.changeSettings([]).subscribe(resolve, reject); + }), + }); + } + + onDialogCanceled(): void { + this.reset(); + } + + onDialogConfirmed(settings: WebhookSettings): void { + let webhooks; + if (this.editingIndex === -1) { + webhooks = [...this.webhooks, settings]; + } else { + webhooks = [...this.webhooks]; + webhooks[this.editingIndex] = settings; + } + this.changeSettings(webhooks).subscribe(() => this.reset()); + } + + private reset(): void { + this.editingIndex = -1; + delete this.editingSettings; + } + + private changeSettings(settings: WebhookSettings[]) { + return this.settingService.changeSettings({ webhooks: settings }).pipe( + retry(3, 300), + tap( + (settings) => { + this.webhooks = settings['webhooks']!; + this.changeDetector.markForCheck(); + }, + (error: HttpErrorResponse) => { + this.message.error(`Webhook 设置出错: ${error.message}`); + } + ) + ); + } +} diff --git a/webapp/src/app/settings/webhook-settings/webhook-settings.component.html b/webapp/src/app/settings/webhook-settings/webhook-settings.component.html new file mode 100644 index 0000000..f8da498 --- /dev/null +++ b/webapp/src/app/settings/webhook-settings/webhook-settings.component.html @@ -0,0 +1,4 @@ +<a class="setting-item" routerLink="webhooks" + ><span class="setting-label">Webhooks</span + ><span class="setting-control"><i nz-icon nzType="right"></i> </span +></a> diff --git a/webapp/src/app/settings/webhook-settings/webhook-settings.component.scss b/webapp/src/app/settings/webhook-settings/webhook-settings.component.scss new file mode 100644 index 0000000..2499289 --- /dev/null +++ b/webapp/src/app/settings/webhook-settings/webhook-settings.component.scss @@ -0,0 +1 @@ +@use '../shared/styles/setting'; diff --git a/webapp/src/app/settings/webhook-settings/webhook-settings.component.spec.ts b/webapp/src/app/settings/webhook-settings/webhook-settings.component.spec.ts new file mode 100644 index 0000000..8b875d8 --- /dev/null +++ b/webapp/src/app/settings/webhook-settings/webhook-settings.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { WebhookSettingsComponent } from './webhook-settings.component'; + +describe('WebhookSettingsComponent', () => { + let component: WebhookSettingsComponent; + let fixture: ComponentFixture<WebhookSettingsComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ WebhookSettingsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(WebhookSettingsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/settings/webhook-settings/webhook-settings.component.ts b/webapp/src/app/settings/webhook-settings/webhook-settings.component.ts new file mode 100644 index 0000000..4d84c71 --- /dev/null +++ b/webapp/src/app/settings/webhook-settings/webhook-settings.component.ts @@ -0,0 +1,9 @@ +import { Component, ChangeDetectionStrategy } from '@angular/core'; + +@Component({ + selector: 'app-webhook-settings', + templateUrl: './webhook-settings.component.html', + styleUrls: ['./webhook-settings.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class WebhookSettingsComponent {} diff --git a/webapp/src/app/shared/api.models.ts b/webapp/src/app/shared/api.models.ts new file mode 100644 index 0000000..1c07dcf --- /dev/null +++ b/webapp/src/app/shared/api.models.ts @@ -0,0 +1,7 @@ +export interface ResponseMessage { + readonly code: number; + readonly message: string + readonly data?: { + readonly [key: string]: any + } +} diff --git a/webapp/src/app/shared/components/page-section/page-section.component.html b/webapp/src/app/shared/components/page-section/page-section.component.html new file mode 100644 index 0000000..4baa91e --- /dev/null +++ b/webapp/src/app/shared/components/page-section/page-section.component.html @@ -0,0 +1,7 @@ +<div *ngIf="name" class="header"> + <h2 class="title">{{ name }}</h2> +</div> + +<div class="card"> + <ng-content></ng-content> +</div> diff --git a/webapp/src/app/shared/components/page-section/page-section.component.scss b/webapp/src/app/shared/components/page-section/page-section.component.scss new file mode 100644 index 0000000..4c61689 --- /dev/null +++ b/webapp/src/app/shared/components/page-section/page-section.component.scss @@ -0,0 +1,23 @@ +:host { + display: flex; + flex-direction: column; +} + +.header { + .title { + color: #202124; + font-size: 108%; + font-weight: 400; + letter-spacing: 0.25px; + margin-bottom: 1em; + margin-top: 1.5em; + } +} + +.card { + flex: 1; + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), + 0 3px 1px -2px rgba(0, 0, 0, 0.2); +} diff --git a/webapp/src/app/shared/components/page-section/page-section.component.spec.ts b/webapp/src/app/shared/components/page-section/page-section.component.spec.ts new file mode 100644 index 0000000..5bc7e1f --- /dev/null +++ b/webapp/src/app/shared/components/page-section/page-section.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PageSectionComponent } from './page-section.component'; + +describe('PageSectionComponent', () => { + let component: PageSectionComponent; + let fixture: ComponentFixture<PageSectionComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ PageSectionComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(PageSectionComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/shared/components/page-section/page-section.component.ts b/webapp/src/app/shared/components/page-section/page-section.component.ts new file mode 100644 index 0000000..c4cb838 --- /dev/null +++ b/webapp/src/app/shared/components/page-section/page-section.component.ts @@ -0,0 +1,11 @@ +import { Component, ChangeDetectionStrategy, Input } from '@angular/core'; + +@Component({ + selector: 'app-page-section', + templateUrl: './page-section.component.html', + styleUrls: ['./page-section.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class PageSectionComponent { + @Input() name = ''; +} diff --git a/webapp/src/app/shared/components/sub-page/sub-page.component.html b/webapp/src/app/shared/components/sub-page/sub-page.component.html new file mode 100644 index 0000000..f80d453 --- /dev/null +++ b/webapp/src/app/shared/components/sub-page/sub-page.component.html @@ -0,0 +1,21 @@ +<nz-spin + *ngIf="loading; else elseBlock" + class="spinner" + [nzSize]="'large'" + [nzSpinning]="loading" +></nz-spin> + +<ng-template #elseBlock> + <div class="sub-page"> + <nz-page-header + class="page-header" + nzBackIcon + [nzTitle]="pageTitle" + [nzGhost]="false" + > + </nz-page-header> + <div *ngIf="content" class="page-content"> + <ng-container [ngTemplateOutlet]="content.templateRef"></ng-container> + </div> + </div> +</ng-template> diff --git a/webapp/src/app/shared/components/sub-page/sub-page.component.scss b/webapp/src/app/shared/components/sub-page/sub-page.component.scss new file mode 100644 index 0000000..6984b87 --- /dev/null +++ b/webapp/src/app/shared/components/sub-page/sub-page.component.scss @@ -0,0 +1,23 @@ +@use '../../../shared/styles/layout'; +@use '../../../shared/styles/common'; + +:host { + @extend %inner-content; + padding-top: 0; + padding-bottom: 0; +} + +.sub-page { + @extend %inner-page; + + .page-header { + margin-top: 3px; + margin-bottom: 1em; + } + + .page-content { + display: flex; + flex-direction: column; + width: 100%; + } +} diff --git a/webapp/src/app/shared/components/sub-page/sub-page.component.spec.ts b/webapp/src/app/shared/components/sub-page/sub-page.component.spec.ts new file mode 100644 index 0000000..931821c --- /dev/null +++ b/webapp/src/app/shared/components/sub-page/sub-page.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { SubPageComponent } from './sub-page.component'; + +describe('SubPageComponent', () => { + let component: SubPageComponent; + let fixture: ComponentFixture<SubPageComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ SubPageComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(SubPageComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/shared/components/sub-page/sub-page.component.ts b/webapp/src/app/shared/components/sub-page/sub-page.component.ts new file mode 100644 index 0000000..2b5ebe8 --- /dev/null +++ b/webapp/src/app/shared/components/sub-page/sub-page.component.ts @@ -0,0 +1,22 @@ +import { + Component, + ChangeDetectionStrategy, + Input, + ContentChild, +} from '@angular/core'; + +import { SubPageContentDirective } from '../../directives/sub-page-content.directive'; + +@Component({ + selector: 'app-sub-page', + templateUrl: './sub-page.component.html', + styleUrls: ['./sub-page.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class SubPageComponent { + @Input() pageTitle = ''; + @Input() loading = false; + + @ContentChild(SubPageContentDirective) + content?: SubPageContentDirective; +} diff --git a/webapp/src/app/shared/constants.ts b/webapp/src/app/shared/constants.ts new file mode 100644 index 0000000..363ecd7 --- /dev/null +++ b/webapp/src/app/shared/constants.ts @@ -0,0 +1,9 @@ +export const QUALITY_NAME_MAPPING = { + 20000: '4K', + 10000: '原画', + 401: '蓝光(杜比)', + 400: '蓝光', + 250: '超清', + 150: '高清', + 80: '流畅', +} as const; diff --git a/webapp/src/app/shared/directives/sub-page-content.directive.spec.ts b/webapp/src/app/shared/directives/sub-page-content.directive.spec.ts new file mode 100644 index 0000000..b256563 --- /dev/null +++ b/webapp/src/app/shared/directives/sub-page-content.directive.spec.ts @@ -0,0 +1,8 @@ +import { SubPageContentDirective } from './sub-page-content.directive'; + +describe('SubPageContentDirective', () => { + it('should create an instance', () => { + const directive = new SubPageContentDirective(); + expect(directive).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/shared/directives/sub-page-content.directive.ts b/webapp/src/app/shared/directives/sub-page-content.directive.ts new file mode 100644 index 0000000..737ff00 --- /dev/null +++ b/webapp/src/app/shared/directives/sub-page-content.directive.ts @@ -0,0 +1,8 @@ +import { Directive, TemplateRef } from '@angular/core'; + +@Directive({ + selector: '[appSubPageContent]', +}) +export class SubPageContentDirective { + constructor(public templateRef: TemplateRef<unknown>) {} +} diff --git a/webapp/src/app/shared/pipes/dataurl.pipe.spec.ts b/webapp/src/app/shared/pipes/dataurl.pipe.spec.ts new file mode 100644 index 0000000..671082d --- /dev/null +++ b/webapp/src/app/shared/pipes/dataurl.pipe.spec.ts @@ -0,0 +1,8 @@ +import { DataurlPipe } from './dataurl.pipe'; + +describe('DataurlPipe', () => { + it('create an instance', () => { + const pipe = new DataurlPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/shared/pipes/dataurl.pipe.ts b/webapp/src/app/shared/pipes/dataurl.pipe.ts new file mode 100644 index 0000000..5cccd46 --- /dev/null +++ b/webapp/src/app/shared/pipes/dataurl.pipe.ts @@ -0,0 +1,57 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import { SafeUrl, DomSanitizer } from '@angular/platform-browser'; + +import { from, fromEvent, Observable, of } from 'rxjs'; +import { catchError, map, switchMap, tap } from 'rxjs/operators'; + +const dataUrlCache = new Map<string, SafeUrl>(); +const objectUrlCache = new Map<string, SafeUrl>(); + +@Pipe({ + name: 'dataurl', +}) +export class DataurlPipe implements PipeTransform { + constructor(private domSanitizer: DomSanitizer) {} + + transform( + url: string, + type: 'object' | 'data' = 'object' + ): Observable<SafeUrl> { + if (type === 'object') { + if (objectUrlCache.has(url)) { + return of(objectUrlCache.get(url)!); + } + return from(this.fetchImage(url)).pipe( + map((data) => URL.createObjectURL(data)), + map((objectUrl) => this.domSanitizer.bypassSecurityTrustUrl(objectUrl)), + tap((objectSafeUrl) => objectUrlCache.set(url, objectSafeUrl)), + catchError(() => of(this.domSanitizer.bypassSecurityTrustUrl(''))) + ); + } else { + if (dataUrlCache.has(url)) { + return of(dataUrlCache.get(url)!); + } + return from(this.fetchImage(url)).pipe( + switchMap((data) => this.createDataURL(data)), + tap((dataUrl) => dataUrlCache.set(url, dataUrl)), + catchError(() => of(this.domSanitizer.bypassSecurityTrustUrl(''))) + ); + } + } + + private async fetchImage(url: string): Promise<Blob> { + const res = await fetch(url, { referrer: '' }); + return await res.blob(); + } + + private createDataURL(data: Blob): Observable<SafeUrl> { + const reader = new FileReader(); + const observable = fromEvent(reader, 'load').pipe( + map(() => + this.domSanitizer.bypassSecurityTrustUrl(reader.result as string) + ) + ); + reader.readAsDataURL(data); + return observable; + } +} diff --git a/webapp/src/app/shared/pipes/duration.pipe.spec.ts b/webapp/src/app/shared/pipes/duration.pipe.spec.ts new file mode 100644 index 0000000..e38345d --- /dev/null +++ b/webapp/src/app/shared/pipes/duration.pipe.spec.ts @@ -0,0 +1,8 @@ +import { DurationPipe } from './duration.pipe'; + +describe('DurationPipe', () => { + it('create an instance', () => { + const pipe = new DurationPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/shared/pipes/duration.pipe.ts b/webapp/src/app/shared/pipes/duration.pipe.ts new file mode 100644 index 0000000..68adb43 --- /dev/null +++ b/webapp/src/app/shared/pipes/duration.pipe.ts @@ -0,0 +1,29 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'duration', +}) +export class DurationPipe implements PipeTransform { + transform(totalSeconds: number): string { + if (totalSeconds < 0) { + throw RangeError( + 'the argument totalSeconds must be greater than or equal to 0' + ); + } + + const hours = Math.floor(totalSeconds / 3600); + const minutes = Math.floor((totalSeconds / 60) % 60); + const seconds = Math.floor(totalSeconds % 60); + + let result = ''; + + if (hours > 0) { + result += hours + ':'; + } + result += minutes < 10 ? '0' + minutes : minutes; + result += ':'; + result += seconds < 10 ? '0' + seconds : seconds; + + return result; + } +} diff --git a/webapp/src/app/shared/pipes/filename.pipe.spec.ts b/webapp/src/app/shared/pipes/filename.pipe.spec.ts new file mode 100644 index 0000000..db8d668 --- /dev/null +++ b/webapp/src/app/shared/pipes/filename.pipe.spec.ts @@ -0,0 +1,8 @@ +import { FilenamePipe } from './filename.pipe'; + +describe('FilenamePipe', () => { + it('create an instance', () => { + const pipe = new FilenamePipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/shared/pipes/filename.pipe.ts b/webapp/src/app/shared/pipes/filename.pipe.ts new file mode 100644 index 0000000..9aeb001 --- /dev/null +++ b/webapp/src/app/shared/pipes/filename.pipe.ts @@ -0,0 +1,17 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'filename', +}) +export class FilenamePipe implements PipeTransform { + transform(path: string): string { + if (!path) { + return ''; + } + if (path.startsWith('/')) { + return path.split('/').pop() ?? ''; + } else { + return path.split('\\').pop() ?? ''; + } + } +} diff --git a/webapp/src/app/shared/pipes/filesize.pipe.spec.ts b/webapp/src/app/shared/pipes/filesize.pipe.spec.ts new file mode 100644 index 0000000..1f1b947 --- /dev/null +++ b/webapp/src/app/shared/pipes/filesize.pipe.spec.ts @@ -0,0 +1,8 @@ +import { FilesizePipe } from './filesize.pipe'; + +describe('FilesizePipe', () => { + it('create an instance', () => { + const pipe = new FilesizePipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/shared/pipes/filesize.pipe.ts b/webapp/src/app/shared/pipes/filesize.pipe.ts new file mode 100644 index 0000000..54c6621 --- /dev/null +++ b/webapp/src/app/shared/pipes/filesize.pipe.ts @@ -0,0 +1,12 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +import * as filesize from 'filesize'; + +@Pipe({ + name: 'filesize', +}) +export class FilesizePipe implements PipeTransform { + transform(size: number, options?: Parameters<typeof filesize>[1]): string { + return filesize(size, options); + } +} diff --git a/webapp/src/app/shared/pipes/progress.pipe.spec.ts b/webapp/src/app/shared/pipes/progress.pipe.spec.ts new file mode 100644 index 0000000..7b20b96 --- /dev/null +++ b/webapp/src/app/shared/pipes/progress.pipe.spec.ts @@ -0,0 +1,8 @@ +import { ProgressPipe } from './progress.pipe'; + +describe('ProgressPipe', () => { + it('create an instance', () => { + const pipe = new ProgressPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/shared/pipes/progress.pipe.ts b/webapp/src/app/shared/pipes/progress.pipe.ts new file mode 100644 index 0000000..c7124bd --- /dev/null +++ b/webapp/src/app/shared/pipes/progress.pipe.ts @@ -0,0 +1,15 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +import { Progress } from 'src/app/tasks/shared/task.model'; + +@Pipe({ + name: 'progress', +}) +export class ProgressPipe implements PipeTransform { + transform(progress: Progress): number { + if (!progress || progress.duration === 0) { + return 0; + } + return (progress.time / progress.duration) * 100; + } +} diff --git a/webapp/src/app/shared/pipes/quality.pipe.spec.ts b/webapp/src/app/shared/pipes/quality.pipe.spec.ts new file mode 100644 index 0000000..6239681 --- /dev/null +++ b/webapp/src/app/shared/pipes/quality.pipe.spec.ts @@ -0,0 +1,8 @@ +import { QualityPipe } from './quality.pipe'; + +describe('QualityPipe', () => { + it('create an instance', () => { + const pipe = new QualityPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/shared/pipes/quality.pipe.ts b/webapp/src/app/shared/pipes/quality.pipe.ts new file mode 100644 index 0000000..d5a724f --- /dev/null +++ b/webapp/src/app/shared/pipes/quality.pipe.ts @@ -0,0 +1,13 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +import { QualityNumber } from 'src/app/settings/shared/setting.model'; +import { QUALITY_NAME_MAPPING } from '../constants'; + +@Pipe({ + name: 'quality', +}) +export class QualityPipe implements PipeTransform { + transform(qualityNumber: QualityNumber): string { + return QUALITY_NAME_MAPPING[qualityNumber]; + } +} diff --git a/webapp/src/app/shared/pipes/speed.pipe.spec.ts b/webapp/src/app/shared/pipes/speed.pipe.spec.ts new file mode 100644 index 0000000..412f46d --- /dev/null +++ b/webapp/src/app/shared/pipes/speed.pipe.spec.ts @@ -0,0 +1,8 @@ +import { SpeedPipe } from './speed.pipe'; + +describe('SpeedPipe', () => { + it('create an instance', () => { + const pipe = new SpeedPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/shared/pipes/speed.pipe.ts b/webapp/src/app/shared/pipes/speed.pipe.ts new file mode 100644 index 0000000..9943cdb --- /dev/null +++ b/webapp/src/app/shared/pipes/speed.pipe.ts @@ -0,0 +1,34 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'speed', +}) +export class SpeedPipe implements PipeTransform { + transform(rate: number, precision: number = 3): string { + let num: number; + let unit: string; + + if (rate <= 0) { + return '0B/s'; + } + + if (rate < 1e3) { + num = rate; + unit = 'B'; + } else if (rate < 1e6) { + num = rate / 1e3; + unit = 'kB'; + } else if (rate < 1e9) { + num = rate / 1e6; + unit = 'MB'; + } else if (rate < 1e12) { + num = rate / 1e9; + unit = 'GB'; + } else { + throw RangeError(`the rate argument ${rate} out of range`); + } + + const digits = precision - Math.floor(Math.abs(Math.log10(num))) - 1; + return num.toFixed(digits) + unit + '/s'; + } +} diff --git a/webapp/src/app/shared/rx-operators.ts b/webapp/src/app/shared/rx-operators.ts new file mode 100644 index 0000000..0c3c810 --- /dev/null +++ b/webapp/src/app/shared/rx-operators.ts @@ -0,0 +1,23 @@ +import { pipe, timer } from 'rxjs'; +import { delayWhen, retryWhen } from 'rxjs/operators'; + +/** + * retry operator + * @param count the number of retries, use Number.POSITIVE_INFINITY to infinitely retry. + * @param delay time to dealy, in milliseconds. + * @returns + */ +export function retry<T>(count: number, delay: number) { + return pipe( + retryWhen<T>((errors) => + errors.pipe( + delayWhen((value, index) => { + if (count !== Number.POSITIVE_INFINITY && index >= count) { + throw value; + } + return timer(delay); + }) + ) + ) + ); +} diff --git a/webapp/src/app/shared/shared.module.ts b/webapp/src/app/shared/shared.module.ts new file mode 100644 index 0000000..a9f7f49 --- /dev/null +++ b/webapp/src/app/shared/shared.module.ts @@ -0,0 +1,50 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { NzSpinModule } from 'ng-zorro-antd/spin'; +import { NzPageHeaderModule } from 'ng-zorro-antd/page-header'; + +import { DataurlPipe } from './pipes/dataurl.pipe'; +import { DurationPipe } from './pipes/duration.pipe'; +import { SpeedPipe } from './pipes/speed.pipe'; +import { FilesizePipe } from './pipes/filesize.pipe'; +import { QualityPipe } from './pipes/quality.pipe'; +import { ProgressPipe } from './pipes/progress.pipe'; +import { FilenamePipe } from './pipes/filename.pipe'; +import { PageSectionComponent } from './components/page-section/page-section.component'; +import { SubPageComponent } from './components/sub-page/sub-page.component'; +import { SubPageContentDirective } from './directives/sub-page-content.directive'; + +@NgModule({ + declarations: [ + DataurlPipe, + DurationPipe, + SpeedPipe, + FilesizePipe, + QualityPipe, + SubPageComponent, + SubPageContentDirective, + PageSectionComponent, + ProgressPipe, + FilenamePipe, + ], + imports: [ + CommonModule, + NzSpinModule, + NzPageHeaderModule, + ], + exports: [ + DataurlPipe, + DurationPipe, + SpeedPipe, + FilesizePipe, + QualityPipe, + ProgressPipe, + FilenamePipe, + + SubPageComponent, + SubPageContentDirective, + PageSectionComponent, + ] +}) +export class SharedModule { } diff --git a/webapp/src/app/shared/styles/_common.scss b/webapp/src/app/shared/styles/_common.scss new file mode 100644 index 0000000..ed778c2 --- /dev/null +++ b/webapp/src/app/shared/styles/_common.scss @@ -0,0 +1,5 @@ +@use './layout'; + +.spinner { + @include layout.full-width-height; +} diff --git a/webapp/src/app/shared/styles/_layout.scss b/webapp/src/app/shared/styles/_layout.scss new file mode 100644 index 0000000..0f5c251 --- /dev/null +++ b/webapp/src/app/shared/styles/_layout.scss @@ -0,0 +1,26 @@ +@mixin full-width-height { + height: 100%; + width: 100%; +} + +@mixin center-content { + display: flex; + align-items: center; + justify-content: center; +} + +%inner-content { + @include full-width-height; + + position: relative; + display: block; + margin: 0; + padding: 1rem; + background: #f1f3f4; + overflow: auto; +} + +%inner-page { + max-width: 680px; + margin: 0 auto; +} diff --git a/webapp/src/app/shared/styles/_list.scss b/webapp/src/app/shared/styles/_list.scss new file mode 100644 index 0000000..aea1817 --- /dev/null +++ b/webapp/src/app/shared/styles/_list.scss @@ -0,0 +1,24 @@ +@mixin reset-list { + margin: 0; + padding: 0; + list-style: none; +} + +%list-item { + display: flex; + flex-wrap: wrap; + align-items: center; + margin: 0; + padding: 1em 2em; + border-top: 1px solid rgba(0, 0, 0, 0.06); + + &:first-child { + border-top: none; + } +} + +%item-label { + &::after { + content: ":"; + } +} diff --git a/webapp/src/app/shared/styles/_text.scss b/webapp/src/app/shared/styles/_text.scss new file mode 100644 index 0000000..c1c902f --- /dev/null +++ b/webapp/src/app/shared/styles/_text.scss @@ -0,0 +1,13 @@ +@mixin elide-text-overflow { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +%osd-text { + color: white; + text-shadow: 1px 1px 2px black; + margin: 0; + padding: 0 0.5rem; + background: rgba(0, 0, 0, 0.32); +} diff --git a/webapp/src/app/shared/utility-types.ts b/webapp/src/app/shared/utility-types.ts new file mode 100644 index 0000000..c2ce1e6 --- /dev/null +++ b/webapp/src/app/shared/utility-types.ts @@ -0,0 +1,11 @@ +export type Mutable<Type> = { + -readonly [Property in keyof Type]: Type[Property]; +} + +export type Nullable<Type> = { + [Property in keyof Type]: Type[Property] | null; +}; + +export type PartialDeep<Type> = { + [Property in keyof Type]?: Partial<Type[Property]> | undefined; +}; diff --git a/webapp/src/app/shared/utils.ts b/webapp/src/app/shared/utils.ts new file mode 100644 index 0000000..1d3326d --- /dev/null +++ b/webapp/src/app/shared/utils.ts @@ -0,0 +1,20 @@ +import { transform, isEqual, isObject } from 'lodash-es'; + +// ref: https://gist.github.com/Yimiprod/7ee176597fef230d1451 +export function difference(object: object, base: object): object { + function diff(object: object, base: object) { + return transform(object, (result: object, value: any, key: string) => { + const baseValue = Reflect.get(base, key); + if (!isEqual(value, baseValue)) { + Reflect.set( + result, + key, + isObject(value) && isObject(baseValue) + ? diff(value, baseValue) + : value + ); + } + }); + } + return diff(object, base); +} diff --git a/webapp/src/app/tasks/add-task-dialog/add-task-dialog.component.html b/webapp/src/app/tasks/add-task-dialog/add-task-dialog.component.html new file mode 100644 index 0000000..b699d8c --- /dev/null +++ b/webapp/src/app/tasks/add-task-dialog/add-task-dialog.component.html @@ -0,0 +1,47 @@ +<nz-modal + nzTitle="添加任务" + nzCentered + [nzVisible]="visible" + nzOkText="添加" + [nzOkLoading]="pending" + [nzOkDisabled]="formGroup.invalid" + [nzCancelDisabled]="pending" + [nzClosable]="!pending" + [nzMaskClosable]="!pending" + (nzOnOk)="handleConfirm()" + (nzOnCancel)="handleCancel()" +> + <ng-container *nzModalContent> + <form nz-form [formGroup]="formGroup"> + <nz-form-item> + <nz-form-control nzHasFeedback [nzErrorTip]="errorTip"> + <input + nz-input + required + placeholder="直播间 URL 或房间号(支持多个房间号用空格隔开)" + [pattern]="pattern" + formControlName="input" + /> + <ng-template #errorTip let-control> + <ng-container *ngIf="control.hasError('required')"> + 请输入直播间号或 URL + </ng-container> + <ng-container *ngIf="control.hasError('pattern')"> + 输入有错误 + </ng-container> + </ng-template> + </nz-form-control> + </nz-form-item> + </form> + + <div class="result-messages-container"> + <ng-container *ngFor="let msg of resultMessages"> + <nz-alert + [nzType]="msg.type" + [nzMessage]="msg.message" + nzShowIcon + ></nz-alert> + </ng-container> + </div> + </ng-container> +</nz-modal> diff --git a/webapp/src/app/tasks/add-task-dialog/add-task-dialog.component.scss b/webapp/src/app/tasks/add-task-dialog/add-task-dialog.component.scss new file mode 100644 index 0000000..79c913c --- /dev/null +++ b/webapp/src/app/tasks/add-task-dialog/add-task-dialog.component.scss @@ -0,0 +1,8 @@ +$result-message-item-height: 40px; +$max-result-message-items: 5; + +.result-messages-container { + width: 100%; + max-height: $result-message-item-height * $max-result-message-items; + overflow-y: auto; +} diff --git a/webapp/src/app/tasks/add-task-dialog/add-task-dialog.component.spec.ts b/webapp/src/app/tasks/add-task-dialog/add-task-dialog.component.spec.ts new file mode 100644 index 0000000..b243fa6 --- /dev/null +++ b/webapp/src/app/tasks/add-task-dialog/add-task-dialog.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AddTaskDialogComponent } from './add-task-dialog.component'; + +describe('AddTaskDialogComponent', () => { + let component: AddTaskDialogComponent; + let fixture: ComponentFixture<AddTaskDialogComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ AddTaskDialogComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(AddTaskDialogComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/tasks/add-task-dialog/add-task-dialog.component.ts b/webapp/src/app/tasks/add-task-dialog/add-task-dialog.component.ts new file mode 100644 index 0000000..49da574 --- /dev/null +++ b/webapp/src/app/tasks/add-task-dialog/add-task-dialog.component.ts @@ -0,0 +1,113 @@ +import { + Component, + ChangeDetectionStrategy, + EventEmitter, + Input, + Output, + ChangeDetectorRef, +} from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; + +import { from } from 'rxjs'; +import { concatMap, tap } from 'rxjs/operators'; + +import { + TaskManagerService, + AddTaskResultMessage, +} from '../shared/services/task-manager.service'; + +const ROOM_URL_PATTERN = /^https?:\/\/live\.bilibili\.com\/(\d+).*$/; +const INPUT_PATTERN = + /^\s*(?:\d+(?:[ ]+\d+)*|https?:\/\/live\.bilibili\.com\/\d+.*)\s*$/; + +@Component({ + selector: 'app-add-task-dialog', + templateUrl: './add-task-dialog.component.html', + styleUrls: ['./add-task-dialog.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class AddTaskDialogComponent { + @Input() visible = false; + @Output() visibleChange = new EventEmitter<boolean>(); + + pending = false; + resultMessages: AddTaskResultMessage[] = []; + + readonly formGroup: FormGroup; + readonly pattern = INPUT_PATTERN; + + constructor( + formBuilder: FormBuilder, + private changeDetector: ChangeDetectorRef, + private taskManager: TaskManagerService + ) { + this.formGroup = formBuilder.group({ + input: ['', [Validators.required, Validators.pattern(this.pattern)]], + }); + } + + get inputControl() { + return this.formGroup.get('input') as FormControl; + } + + open(): void { + this.setVisible(true); + } + + close(): void { + this.resultMessages = []; + this.reset(); + this.setVisible(false); + } + + setVisible(visible: boolean): void { + this.visible = visible; + this.visibleChange.emit(visible); + this.changeDetector.markForCheck(); + } + + reset(): void { + this.pending = false; + this.formGroup.reset(); + this.changeDetector.markForCheck(); + } + + handleCancel(): void { + this.close(); + } + + handleConfirm(): void { + this.pending = true; + const inputValue = this.inputControl.value.trim() as string; + + let roomIds: Iterable<number>; + if (inputValue.startsWith('http')) { + roomIds = [parseInt(ROOM_URL_PATTERN.exec(inputValue)![1])]; + } else { + roomIds = new Set(inputValue.split(/\s+/).map((s) => parseInt(s))); + } + + from(roomIds) + .pipe( + concatMap((roomId) => this.taskManager.addTask(roomId)), + tap((resultMessage) => { + this.resultMessages.push(resultMessage); + this.changeDetector.markForCheck(); + }) + ) + .subscribe({ + complete: () => { + if (this.resultMessages.every((m) => m.type === 'success')) { + this.close(); + } else { + this.reset(); + } + }, + }); + } +} diff --git a/webapp/src/app/tasks/shared/breakpoints.ts b/webapp/src/app/tasks/shared/breakpoints.ts new file mode 100644 index 0000000..c039915 --- /dev/null +++ b/webapp/src/app/tasks/shared/breakpoints.ts @@ -0,0 +1,5 @@ +export const breakpoints = [ + '(max-width: 534.98px)', + '(min-width: 535px) and (max-width: 1059.98px)', + '(min-width: 1060px)', +] as const; diff --git a/webapp/src/app/tasks/shared/pipes/filter-tasks.pipe.spec.ts b/webapp/src/app/tasks/shared/pipes/filter-tasks.pipe.spec.ts new file mode 100644 index 0000000..05b714a --- /dev/null +++ b/webapp/src/app/tasks/shared/pipes/filter-tasks.pipe.spec.ts @@ -0,0 +1,8 @@ +import { FilterTasksPipe } from './filter-tasks.pipe'; + +describe('FilterTasksPipe', () => { + it('create an instance', () => { + const pipe = new FilterTasksPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/tasks/shared/pipes/filter-tasks.pipe.ts b/webapp/src/app/tasks/shared/pipes/filter-tasks.pipe.ts new file mode 100644 index 0000000..9001002 --- /dev/null +++ b/webapp/src/app/tasks/shared/pipes/filter-tasks.pipe.ts @@ -0,0 +1,38 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +import { TaskData } from '../task.model'; + +export function* filter<T>( + it: Iterable<T>, + predicate: (value: T) => unknown +): Generator<T> { + for (const item of it) { + if (predicate(item)) { + yield item; + } + } +} + +@Pipe({ + name: 'filterTasks', +}) +export class FilterTasksPipe implements PipeTransform { + transform(dataList: Iterable<TaskData>, term: string = ''): TaskData[] { + console.debug("filter tasks by '%s'", term); + return [...this.filterByTerm(dataList, term)]; + } + + private filterByTerm(dataList: Iterable<TaskData>, term: string) { + return filter(dataList, (data) => { + term = term.trim(); + return ( + term === '' || + data.user_info.name.includes(term) || + data.room_info.title.toString().includes(term) || + data.room_info.area_name.toString().includes(term) || + data.room_info.room_id.toString().includes(term) || + data.room_info.short_room_id.toString().includes(term) + ); + }); + } +} diff --git a/webapp/src/app/tasks/shared/services/task-manager.service.spec.ts b/webapp/src/app/tasks/shared/services/task-manager.service.spec.ts new file mode 100644 index 0000000..de996f5 --- /dev/null +++ b/webapp/src/app/tasks/shared/services/task-manager.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { TaskManagerService } from './task-manager.service'; + +describe('TaskManagerService', () => { + let service: TaskManagerService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(TaskManagerService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/tasks/shared/services/task-manager.service.ts b/webapp/src/app/tasks/shared/services/task-manager.service.ts new file mode 100644 index 0000000..dc6db9b --- /dev/null +++ b/webapp/src/app/tasks/shared/services/task-manager.service.ts @@ -0,0 +1,285 @@ +import { Injectable } from '@angular/core'; +import { HttpErrorResponse } from '@angular/common/http'; + +import { catchError, map, tap } from 'rxjs/operators'; +import { Observable, of } from 'rxjs'; +import { NzMessageService } from 'ng-zorro-antd/message'; + +import { TaskService } from './task.service'; +import { ResponseMessage } from 'src/app/shared/api.models'; + +export interface AddTaskResultMessage { + type: 'success' | 'info' | 'warning' | 'error'; + message: string; +} + +@Injectable({ + providedIn: 'root', +}) +export class TaskManagerService { + constructor( + private message: NzMessageService, + private taskService: TaskService + ) {} + + getAllTaskRoomIds(): Observable<number[]> { + return this.taskService + .getAllTaskData() + .pipe(map((taskData) => taskData.map((data) => data.room_info.room_id))); + } + + updateTaskInfo(roomId: number): Observable<ResponseMessage> { + return this.taskService.updateTaskInfo(roomId).pipe( + tap( + () => { + this.message.success('成功刷新任务的数据'); + }, + (error: HttpErrorResponse) => { + this.message.error(`刷新任务的数据出错: ${error.message}`); + } + ) + ); + } + + updateAllTaskInfos(): Observable<ResponseMessage> { + return this.taskService.updateAllTaskInfos().pipe( + tap( + () => { + this.message.success('成功刷新全部任务的数据'); + }, + (error: HttpErrorResponse) => { + this.message.error(`刷新全部任务的数据出错: ${error.message}`); + } + ) + ); + } + + addTask(roomId: number): Observable<AddTaskResultMessage> { + return this.taskService.addTask(roomId).pipe( + map((result) => { + return { + type: 'success', + message: '成功添加任务', + } as AddTaskResultMessage; + }), + catchError((error: HttpErrorResponse) => { + let result: AddTaskResultMessage; + if (error.status == 409) { + result = { + type: 'error', + message: '任务已存在,不能重复添加。', + }; + } else if (error.status == 403) { + result = { + type: 'warning', + message: '任务数量超过限制,不能添加任务。', + }; + } else if (error.status == 404) { + result = { + type: 'error', + message: '直播间不存在', + }; + } else { + result = { + type: 'error', + message: `添加任务出错: ${error.message}`, + }; + } + return of(result); + }), + map((resultMessage) => { + resultMessage.message = `${roomId}: ${resultMessage.message}`; + return resultMessage; + }), + tap((resultMessage) => { + this.message[resultMessage.type](resultMessage.message); + }) + ); + } + + removeTask(roomId: number): Observable<ResponseMessage> { + return this.taskService.removeTask(roomId).pipe( + tap( + () => { + this.message.success('任务已删除'); + }, + (error: HttpErrorResponse) => { + this.message.error(`删除任务出错: ${error.message}`); + } + ) + ); + } + + removeAllTasks(): Observable<ResponseMessage> { + const messageId = this.message.loading('正在删除全部任务...', { + nzDuration: 0, + }).messageId; + return this.taskService.removeAllTasks().pipe( + tap( + () => { + this.message.remove(messageId); + this.message.success('成功删除全部任务'); + }, + (error: HttpErrorResponse) => { + this.message.remove(messageId); + this.message.error(`删除全部任务出错: ${error.message}`); + } + ) + ); + } + + startTask(roomId: number): Observable<ResponseMessage> { + const messageId = this.message.loading('正在运行任务...', { + nzDuration: 0, + }).messageId; + return this.taskService.startTask(roomId).pipe( + tap( + () => { + this.message.remove(messageId); + this.message.success('成功运行任务'); + }, + (error: HttpErrorResponse) => { + this.message.remove(messageId); + this.message.error(`运行任务出错: ${error.message}`); + } + ) + ); + } + + startAllTasks(): Observable<ResponseMessage> { + const messageId = this.message.loading('正在运行全部任务...', { + nzDuration: 0, + }).messageId; + return this.taskService.startAllTasks().pipe( + tap( + () => { + this.message.remove(messageId); + this.message.success('成功运行全部任务'); + }, + (error: HttpErrorResponse) => { + this.message.remove(messageId); + this.message.error(`运行全部任务出错: ${error.message}`); + } + ) + ); + } + + stopTask( + roomId: number, + force: boolean = false + ): Observable<ResponseMessage> { + const messageId = this.message.loading('正在停止任务...', { + nzDuration: 0, + }).messageId; + return this.taskService.stopTask(roomId, force).pipe( + tap( + () => { + this.message.remove(messageId); + this.message.success('成功停止任务'); + }, + (error: HttpErrorResponse) => { + this.message.remove(messageId); + this.message.error(`停止任务出错: ${error.message}`); + } + ) + ); + } + + stopAllTasks(force: boolean = false): Observable<ResponseMessage> { + const messageId = this.message.loading('正在停止全部任务...', { + nzDuration: 0, + }).messageId; + return this.taskService.stopAllTasks(force).pipe( + tap( + () => { + this.message.remove(messageId); + this.message.success('成功停止全部任务'); + }, + (error: HttpErrorResponse) => { + this.message.remove(messageId); + this.message.error(`停止全部任务出错: ${error.message}`); + } + ) + ); + } + + enableRecorder(roomId: number): Observable<ResponseMessage> { + const messageId = this.message.loading('正在开启录制...', { + nzDuration: 0, + }).messageId; + return this.taskService.enableTaskRecorder(roomId).pipe( + tap( + () => { + this.message.remove(messageId); + this.message.success('成功开启录制'); + }, + (error: HttpErrorResponse) => { + this.message.remove(messageId); + this.message.error(`开启录制出错: ${error.message}`); + } + ) + ); + } + + /** + * Deprecated! + * Enable all tasks' recorder will cause some problems. + * Tasks those monitor are disabled won't work as expected! + */ + enableAllRecorders(): Observable<ResponseMessage> { + const messageId = this.message.loading('正在开启全部任务的录制...', { + nzDuration: 0, + }).messageId; + return this.taskService.enableAllRecorders().pipe( + tap( + () => { + this.message.remove(messageId); + this.message.success('成功开启全部任务的录制'); + }, + (error: HttpErrorResponse) => { + this.message.remove(messageId); + this.message.error(`开启全部任务的录制出错: ${error.message}`); + } + ) + ); + } + + disableRecorder( + roomId: number, + force: boolean = false + ): Observable<ResponseMessage> { + const messageId = this.message.loading('正在关闭录制...', { + nzDuration: 0, + }).messageId; + return this.taskService.disableTaskRecorder(roomId, force).pipe( + tap( + () => { + this.message.remove(messageId); + this.message.success('成功关闭录制'); + }, + (error: HttpErrorResponse) => { + this.message.remove(messageId); + this.message.error(`关闭录制出错: ${error.message}`); + } + ) + ); + } + + disableAllRecorders(force: boolean = false): Observable<ResponseMessage> { + const messageId = this.message.loading('正在关闭全部任务的录制...', { + nzDuration: 0, + }).messageId; + return this.taskService.disableAllRecorders(force).pipe( + tap( + () => { + this.message.remove(messageId); + this.message.success('成功关闭全部任务的录制'); + }, + (error: HttpErrorResponse) => { + this.message.remove(messageId); + this.message.error(`关闭全部任务的录制出错: ${error.message}`); + } + ) + ); + } +} diff --git a/webapp/src/app/tasks/shared/services/task.service.spec.ts b/webapp/src/app/tasks/shared/services/task.service.spec.ts new file mode 100644 index 0000000..0bbd214 --- /dev/null +++ b/webapp/src/app/tasks/shared/services/task.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { TaskService } from './task.service'; + +describe('TaskService', () => { + let service: TaskService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(TaskService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/tasks/shared/services/task.service.ts b/webapp/src/app/tasks/shared/services/task.service.ts new file mode 100644 index 0000000..93ca3d5 --- /dev/null +++ b/webapp/src/app/tasks/shared/services/task.service.ts @@ -0,0 +1,147 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; + +import { Observable } from 'rxjs'; + +import { environment } from 'src/environments/environment'; +import { ResponseMessage } from '../../../shared/api.models'; +import { + TaskData, + DataSelection, + TaskParam, + FileDetail, + AddTaskResult, +} from '../task.model'; + +const apiUrl = environment.apiUrl; + +@Injectable({ + providedIn: 'root', +}) +export class TaskService { + constructor(private http: HttpClient) {} + + getAllTaskData( + select: DataSelection = DataSelection.ALL + ): Observable<TaskData[]> { + const url = apiUrl + '/api/v1/tasks/data'; + return this.http.get<TaskData[]>(url, { params: { select } }); + } + + getTaskData(roomId: number): Observable<TaskData> { + const url = apiUrl + `/api/v1/tasks/${roomId}/data`; + return this.http.get<TaskData>(url); + } + + getTaskFileDetails(roomId: number): Observable<FileDetail[]> { + const url = apiUrl + `/api/v1/tasks/${roomId}/files`; + return this.http.get<FileDetail[]>(url); + } + + getTaskParam(roomId: number): Observable<TaskParam> { + const url = apiUrl + `/api/v1/tasks/${roomId}/param`; + return this.http.get<TaskParam>(url); + } + + updateAllTaskInfos(): Observable<ResponseMessage> { + const url = apiUrl + '/api/v1/tasks/info'; + return this.http.post<ResponseMessage>(url, null); + } + + updateTaskInfo(roomId: number): Observable<ResponseMessage> { + const url = apiUrl + `/api/v1/tasks/${roomId}/info`; + return this.http.post<ResponseMessage>(url, null); + } + + addTask(roomId: number): Observable<AddTaskResult> { + const url = apiUrl + `/api/v1/tasks/${roomId}`; + return this.http.post<AddTaskResult>(url, null); + } + + removeTask(roomId: number): Observable<ResponseMessage> { + const url = apiUrl + `/api/v1/tasks/${roomId}`; + return this.http.delete<ResponseMessage>(url); + } + + removeAllTasks(): Observable<ResponseMessage> { + const url = apiUrl + '/api/v1/tasks'; + return this.http.delete<ResponseMessage>(url); + } + + startTask(roomId: number): Observable<ResponseMessage> { + const url = apiUrl + `/api/v1/tasks/${roomId}/start`; + return this.http.post<ResponseMessage>(url, null); + } + + startAllTasks(): Observable<ResponseMessage> { + const url = apiUrl + `/api/v1/tasks/start`; + return this.http.post<ResponseMessage>(url, null); + } + + stopTask( + roomId: number, + force: boolean = false, + background: boolean = false + ): Observable<ResponseMessage> { + const url = apiUrl + `/api/v1/tasks/${roomId}/stop`; + return this.http.post<ResponseMessage>(url, { force, background }); + } + + stopAllTasks( + force: boolean = false, + background: boolean = false + ): Observable<ResponseMessage> { + const url = apiUrl + `/api/v1/tasks/stop`; + return this.http.post<ResponseMessage>(url, { force, background }); + } + + enableTaskMonitor(roomId: number): Observable<ResponseMessage> { + const url = apiUrl + `/api/v1/tasks/${roomId}/monitor/enable`; + return this.http.post<ResponseMessage>(url, null); + } + + enableAllMonitors(): Observable<ResponseMessage> { + const url = apiUrl + `/api/v1/tasks/monitor/enable`; + return this.http.post<ResponseMessage>(url, null); + } + + disableTaskMonitor( + roomId: number, + background: boolean = false + ): Observable<ResponseMessage> { + const url = apiUrl + `/api/v1/tasks/${roomId}/monitor/disable`; + return this.http.post<ResponseMessage>(url, { background }); + } + + disableAllMonitors(background: boolean = false): Observable<ResponseMessage> { + const url = apiUrl + `/api/v1/tasks/monitor/disable`; + return this.http.post<ResponseMessage>(url, { background }); + } + + enableTaskRecorder(roomId: number): Observable<ResponseMessage> { + const url = apiUrl + `/api/v1/tasks/${roomId}/recorder/enable`; + return this.http.post<ResponseMessage>(url, null); + } + + enableAllRecorders(): Observable<ResponseMessage> { + const url = apiUrl + `/api/v1/tasks/recorder/enable`; + return this.http.post<ResponseMessage>(url, null); + } + + disableTaskRecorder( + roomId: number, + force: boolean = false, + background: boolean = false + ): Observable<ResponseMessage> { + const url = apiUrl + `/api/v1/tasks/${roomId}/recorder/disable`; + return this.http.post<ResponseMessage>(url, { force, background }); + } + + disableAllRecorders( + force: boolean = false, + background: boolean = false + ): Observable<ResponseMessage> { + const url = apiUrl + `/api/v1/tasks/recorder/disable`; + return this.http.post<ResponseMessage>(url, { force, background }); + } +} diff --git a/webapp/src/app/tasks/shared/styles/_drawer.scss b/webapp/src/app/tasks/shared/styles/_drawer.scss new file mode 100644 index 0000000..b133975 --- /dev/null +++ b/webapp/src/app/tasks/shared/styles/_drawer.scss @@ -0,0 +1,9 @@ +%drawer-menu { + box-shadow: none; + padding: 0.5em 0; + + *[nz-menu-item] { + margin: 0; + padding: 0.5em 2em; + } +} diff --git a/webapp/src/app/tasks/shared/task.model.ts b/webapp/src/app/tasks/shared/task.model.ts new file mode 100644 index 0000000..4497888 --- /dev/null +++ b/webapp/src/app/tasks/shared/task.model.ts @@ -0,0 +1,117 @@ +import { ResponseMessage } from '../../shared/api.models'; +import { + DeleteStrategy, + QualityNumber, +} from '../../settings/shared/setting.model'; + +export interface TaskData { + user_info: Readonly<UserInfo>; + room_info: Readonly<RoomInfo>; + task_status: Readonly<TaskStatus>; +} + +export enum DataSelection { + ALL = 'all', + + // live status + PREPARING = 'preparing', + LIVING = 'living', + ROUNDING = 'rounding', + + // task status + MONITOR_ENABLED = 'monitor_enabled', + MONITOR_DISABLED = 'monitor_disabled', + RECORDER_ENABLED = 'recorder_enabled', + RECORDER_DISABLED = 'recorder_disabled', + + // task running status + STOPPED = 'stopped', + WAITTING = 'waitting', + RECORDING = 'recording', + REMUXING = 'remuxing', + INJECTING = 'injecting', +} + +export interface UserInfo { + readonly name: string; + readonly gender: string; + readonly face: string; + readonly uid: number; + readonly level: number; + readonly sign: string; +} + +export interface RoomInfo { + readonly uid: number; + readonly room_id: number; + readonly short_room_id: number; + readonly area_id: number; + readonly area_name: string; + readonly parent_area_id: number; + readonly parent_area_name: string; + readonly live_status: number; + readonly live_start_time: number; + readonly online: number; + readonly title: string; + readonly cover: string; + readonly tags: string; + readonly description: string; +} + +export enum RunningStatus { + STOPPED = 'stopped', + WAITING = 'waiting', + RECORDING = 'recording', + REMUXING = 'remuxing', + INJECTING = 'injecting', +} + +export interface Progress { + time: number; + duration: number; +} + +export interface TaskStatus { + readonly monitor_enabled: boolean; + readonly recorder_enabled: boolean; + readonly running_status: RunningStatus; + readonly elapsed: number; + readonly data_count: number; + readonly data_rate: number; + readonly danmu_count: number; + readonly danmu_rate: number; + readonly real_quality_number: QualityNumber; + readonly postprocessing_path: string | null; + readonly postprocessing_progress: Progress | null; +} + +export interface TaskParam { + readonly out_dir: string; + readonly path_template: string; + readonly filesize_limit: number; + readonly duration_limit: number; + + readonly user_agent: string; + readonly cookie: string; + + readonly danmu_uname: boolean; + + readonly quality_number: QualityNumber; + readonly read_timeout: number; + readonly buffer_size: number; + + readonly remux_to_mp4: boolean; + readonly delete_source: DeleteStrategy; +} + +export interface FileDetail { + readonly exists: boolean; + readonly path: string; + readonly size: number; +} + +export interface AddTaskResult extends ResponseMessage { + data: { + room_id: number; + }; +} diff --git a/webapp/src/app/tasks/status-display/status-display.component.html b/webapp/src/app/tasks/status-display/status-display.component.html new file mode 100644 index 0000000..c2dc50f --- /dev/null +++ b/webapp/src/app/tasks/status-display/status-display.component.html @@ -0,0 +1,102 @@ +<ng-container [ngSwitch]="status.running_status"> + <div class="status-display" *ngSwitchCase="RunningStatus.RECORDING"> + <p class="status-bar recording"> + <span + class="status-indicator" + nz-tooltip + nzTooltipTitle="正在录制中" + nzTooltipPlacement="top" + > + <i></i> + </span> + <span + class="time-elapsed" + nz-tooltip + nzTooltipTitle="开始录制到现在过去的时间" + nzTooltipPlacement="top" + > + {{ status.elapsed | duration }} + </span> + <span + class="data-rate" + nz-tooltip + nzTooltipTitle="当前实时录制速度" + nzTooltipPlacement="top" + > + {{ status.data_rate | speed }} + </span> + <span + class="data-count" + nz-tooltip + nzTooltipTitle="已录制的数据" + nzTooltipPlacement="top" + > + {{ status.data_count | filesize: { spacer: "" } }} + </span> + <span + class="danmu-count" + nz-tooltip + nzTooltipTitle="弹幕数量:{{ status.danmu_count | number: '1.0-0' }}" + nzTooltipPlacement="top" + > + {{ status.danmu_count | number: "1.0-0" }} + </span> + <span + class="quality" + nz-tooltip + nzTooltipTitle="当前录制的画质" + nzTooltipPlacement="leftTop" + > + {{ status.real_quality_number | quality }} + </span> + </p> + </div> + + <div class="status-display" *ngSwitchCase="RunningStatus.INJECTING"> + <p + class="status-bar injecting" + nz-tooltip + nzTooltipTitle="正在注入元数据:{{ + status.postprocessing_path ?? '' | filename + }}" + nzTooltipPlacement="top" + > + 注入元数据:{{ status.postprocessing_path ?? "" | filename }} + </p> + <nz-progress + [nzType]="'line'" + [nzShowInfo]="false" + [nzStrokeLinecap]="'square'" + [nzStrokeWidth]="2" + [nzPercent]=" + status.postprocessing_progress === null + ? 0 + : (status.postprocessing_progress | progress) + " + ></nz-progress> + </div> + + <div class="status-display" *ngSwitchCase="RunningStatus.REMUXING"> + <p + class="status-bar remuxing" + nz-tooltip + nzTooltipTitle="正在转换格式:{{ + status.postprocessing_path ?? '' | filename + }}" + nzTooltipPlacement="top" + > + 转换格式:{{ status.postprocessing_path ?? "" | filename }} + </p> + <nz-progress + [nzType]="'line'" + [nzShowInfo]="false" + [nzStrokeLinecap]="'square'" + [nzStrokeWidth]="2" + [nzPercent]=" + status.postprocessing_progress === null + ? 0 + : (status.postprocessing_progress | progress) + " + ></nz-progress> + </div> +</ng-container> diff --git a/webapp/src/app/tasks/status-display/status-display.component.scss b/webapp/src/app/tasks/status-display/status-display.component.scss new file mode 100644 index 0000000..a0f885d --- /dev/null +++ b/webapp/src/app/tasks/status-display/status-display.component.scss @@ -0,0 +1,68 @@ +@use '../../shared/styles/layout'; +@use '../../shared/styles/text'; + +.status-display { + position: absolute; + bottom: 0; + left: 0; + width: 100%; +} + +.status-bar { + display: flex; + gap: 1rem; + + font-size: 1rem; + line-height: 1.8; + + @extend %osd-text; + + &.recording { + .status-indicator { + @include layout.center-content; + + i { + width: 1rem; + height: 1rem; + border-radius: 0.5rem; + color: red; + background: red; + animation: blinker 1s cubic-bezier(1, 0, 0, 1) infinite; + } + + @keyframes blinker { + from { + opacity: 0; + } + + to { + opacity: 1; + } + } + } + } + + &.injecting, + &.remuxing { + @include text.elide-text-overflow; + } + + .danmu-count { + @include text.elide-text-overflow; + } + + .quality { + flex: none; + margin-left: auto; + } +} + +nz-progress { + display: flex; + + &::ng-deep { + .ant-progress-outer { + display: flex; + } + } +} diff --git a/webapp/src/app/tasks/status-display/status-display.component.spec.ts b/webapp/src/app/tasks/status-display/status-display.component.spec.ts new file mode 100644 index 0000000..7c31171 --- /dev/null +++ b/webapp/src/app/tasks/status-display/status-display.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { StatusDisplayComponent } from './status-display.component'; + +describe('StatusDisplayComponent', () => { + let component: StatusDisplayComponent; + let fixture: ComponentFixture<StatusDisplayComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ StatusDisplayComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(StatusDisplayComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/tasks/status-display/status-display.component.ts b/webapp/src/app/tasks/status-display/status-display.component.ts new file mode 100644 index 0000000..6b5c9a5 --- /dev/null +++ b/webapp/src/app/tasks/status-display/status-display.component.ts @@ -0,0 +1,15 @@ +import { Component, ChangeDetectionStrategy, Input } from '@angular/core'; + +import { RunningStatus, TaskStatus } from '../shared/task.model'; + +@Component({ + selector: 'app-status-display', + templateUrl: './status-display.component.html', + styleUrls: ['./status-display.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class StatusDisplayComponent { + @Input() status!: TaskStatus; + + readonly RunningStatus = RunningStatus; +} diff --git a/webapp/src/app/tasks/task-item/task-item.component.html b/webapp/src/app/tasks/task-item/task-item.component.html new file mode 100644 index 0000000..c885a41 --- /dev/null +++ b/webapp/src/app/tasks/task-item/task-item.component.html @@ -0,0 +1,216 @@ +<nz-card + [nzCover]="coverTemplate" + [nzActions]="[actionDelete, actionSetting, actionSwitch, actionMore]" + [nzBodyStyle]="{ padding: '0.5rem' }" +> + <nz-skeleton + [nzActive]="true" + [nzLoading]="!data" + [nzAvatar]="{ size: 'large' }" + > + <nz-card-meta + [nzAvatar]="avatarTemplate" + [nzTitle]="titleTemplate" + [nzDescription]="descTemplate" + ></nz-card-meta> + </nz-skeleton> +</nz-card> + +<ng-template #coverTemplate> + <div class="cover-wrapper"> + <img + class="cover" + alt="直播间封面" + [src]="data.room_info.cover | dataurl | async" + /> + + <h2 + class="title" + nz-tooltip + [nzTooltipTitle]="'直播间标题:' + data.room_info.title" + nzTooltipPlacement="bottomLeft" + > + {{ data.room_info.title }} + </h2> + + <app-status-display [status]="data.task_status"></app-status-display> + </div> +</ng-template> + +<ng-template #avatarTemplate> + <!-- XXX $any() to workaround typing error --> + <nz-avatar + [nzShape]="'square'" + [nzSize]="54" + [nzSrc]="$any(data.user_info.face | dataurl | async)" + ></nz-avatar> +</ng-template> + +<ng-template #titleTemplate> + <p class="meta-title"> + <span + class="user-name" + nz-tooltip + nzTooltipTitle="打开主播个人空间页面" + nzTooltipPlacement="right" + > + <a + href="https://space.bilibili.com/{{ data.user_info.uid }}" + target="_blank" + > + {{ data.user_info.name }} + </a> + </span> + <span class="live-status"> + <ng-container [ngSwitch]="data.room_info.live_status"> + <nz-tag *ngSwitchCase="0" nzColor="default" + ><!-- grey --> + <i nz-icon nzType="frown"></i> + <span>未开播</span> + </nz-tag> + <nz-tag *ngSwitchCase="1" nzColor="red"> + <i nz-icon nzType="fire"></i> + <span>直播中</span> + </nz-tag> + <nz-tag *ngSwitchCase="2" nzColor="green"> + <i nz-icon nzType="sync" nzSpin></i> + <span>轮播中</span> + </nz-tag> + </ng-container> + </span> + </p> +</ng-template> + +<ng-template #descTemplate> + <p class="meta-desc"> + <span class="room-id-wrapper"> + <span class="room-id-label">房间号:</span> + <span + class="short-room-id" + *ngIf="data.room_info.short_room_id" + nz-tooltip + nzTooltipTitle="打开直播间页面" + nzTooltipPlacement="bottom" + > + <a + href="https://live.bilibili.com/{{ data.room_info.short_room_id }}" + target="_blank" + > + {{ data.room_info.short_room_id }}</a + > + </span> + <span + class="real-room-id" + nz-tooltip + nzTooltipTitle="打开直播间页面" + nzTooltipPlacement="bottom" + > + <a + href="https://live.bilibili.com/{{ data.room_info.room_id }}" + target="_blank" + >{{ data.room_info.room_id }}</a + > + </span> + </span> + <span + class="area-name" + nz-tooltip + nzTooltipTitle="打开直播分区页面" + nzTooltipPlacement="leftTop" + > + <a + href="https://live.bilibili.com/p/eden/area-tags?parentAreaId={{ + data.room_info.parent_area_id + }}&areaId={{ data.room_info.area_id }}" + target="_blank" + > + <nz-tag [nzColor]="'#23ade5'"> + {{ data.room_info.area_name }} + </nz-tag> + </a> + </span> + </p> +</ng-template> + +<ng-template #actionSwitch> + <nz-switch + nz-tooltip + nzTooltipTitle="录制开关" + [nzDisabled]="toggleRecorderForbidden" + [ngModel]="data.task_status.recorder_enabled" + [nzControl]="true" + [nzLoading]="switchPending" + (click)="toggleRecorder()" + ></nz-switch> +</ng-template> + +<ng-template #actionDelete> + <div + nz-tooltip + nzTooltipTitle="删除任务" + nz-popconfirm + nzPopconfirmTitle="确定要删除此任务?" + nzPopconfirmPlacement="topLeft" + (nzOnConfirm)="removeTask()" + > + <i nz-icon nzType="delete"></i> + </div> +</ng-template> + +<ng-template #actionSetting> + <div nz-tooltip nzTooltipTitle="任务设置" (click)="openSettingsDialog()"> + <i nz-icon nzType="setting"></i> + </div> + <ng-container *ngIf="taskOptions && globalSettings"> + <app-task-settings-dialog + [taskOptions]="taskOptions!" + [globalSettings]="globalSettings!" + [(visible)]="settingsDialogVisible" + (confirm)="changeTaskOptions($event)" + (afterClose)="cleanSettingsData()" + ></app-task-settings-dialog> + </ng-container> +</ng-template> + +<ng-template #actionMore> + <div + *ngIf="!useDrawer" + nz-dropdown + nzPlacement="topRight" + [nzDropdownMenu]="dropdownMenu" + > + <i nz-icon nzType="more"></i> + </div> + <div *ngIf="useDrawer" (click)="menuDrawerVisible = true"> + <i nz-icon nzType="more"></i> + </div> +</ng-template> + +<nz-dropdown-menu #dropdownMenu="nzDropdownMenu"> + <ng-container [ngTemplateOutlet]="menu"></ng-container> + <ng-template #menu> + <ul nz-menu class="menu"> + <li nz-menu-item (click)="startTask()">运行任务</li> + <li nz-menu-item (click)="stopTask()">停止任务</li> + <li nz-menu-item (click)="stopTask(true)">强制停止任务</li> + <li nz-menu-item (click)="disableRecorder(true)">强制关闭录制</li> + <li nz-menu-item (click)="updateTaskInfo()">刷新数据</li> + </ul> + </ng-template> +</nz-dropdown-menu> + +<nz-drawer + *ngIf="useDrawer" + nzPlacement="bottom" + nzHeight="auto" + [nzClosable]="false" + [nzBodyStyle]="{ padding: '0' }" + [(nzVisible)]="menuDrawerVisible" + (nzOnClose)="menuDrawerVisible = false" +> + <ng-container *nzDrawerContent> + <div class="drawer-content" (click)="menuDrawerVisible = false"> + <ng-container [ngTemplateOutlet]="menu"></ng-container> + </div> + </ng-container> +</nz-drawer> diff --git a/webapp/src/app/tasks/task-item/task-item.component.scss b/webapp/src/app/tasks/task-item/task-item.component.scss new file mode 100644 index 0000000..5311b3e --- /dev/null +++ b/webapp/src/app/tasks/task-item/task-item.component.scss @@ -0,0 +1,114 @@ +@use '../../shared/styles/layout'; +@use '../../shared/styles/text'; +@use '../shared/styles/drawer'; + +:host { + &.stopped { + filter: grayscale(100%); + } +} + +a { + color: inherit; + + &:hover { + color: #1890ff; + } + + &:focus-visible { + outline: -webkit-focus-ring-color auto 1px; + } +} + +.cover-wrapper { + --cover-ratio: 264 / 470; + --cover-height: calc(var(--card-width) * var(--cover-ratio)); + + position: relative; + width: var(--card-width); + height: var(--cover-height); + + .cover { + width: 100%; + max-height: var(--cover-height); + object-fit: cover; + } + + .title { + position: absolute; + top: 0.5rem; + left: 0.5rem; + + font-size: 1.2rem; + + width: fit-content; + max-width: calc(100% - 1em); + + @extend %osd-text; + @include text.elide-text-overflow; + } +} + +nz-card-meta { + margin: 0; +} + +.meta-title { + margin: 0; + display: flex; + column-gap: 1em; + + .user-name { + color: #fb7299; + font-size: 1rem; + font-weight: bold; + + @include text.elide-text-overflow; + } + + .live-status { + nz-tag { + margin: 0; + position: relative; + bottom: 1px; + } + } +} + +.meta-desc { + margin: 0; + display: flex; + + .room-id-wrapper { + display: flex; + flex-wrap: wrap; + + .short-room-id::after { + display: inline-block; + width: 1em; + content: ", "; + } + + @media screen and (max-width: 320px) { + .room-id-label { + display: none; + } + } + } + + .area-name { + margin-left: auto; + + nz-tag { + margin: 0; + border-radius: 30px; + padding: 0 1em; + } + } +} + +.drawer-content { + .menu { + @extend %drawer-menu; + } +} diff --git a/webapp/src/app/tasks/task-item/task-item.component.spec.ts b/webapp/src/app/tasks/task-item/task-item.component.spec.ts new file mode 100644 index 0000000..22d6210 --- /dev/null +++ b/webapp/src/app/tasks/task-item/task-item.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TaskItemComponent } from './task-item.component'; + +describe('TaskItemComponent', () => { + let component: TaskItemComponent; + let fixture: ComponentFixture<TaskItemComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ TaskItemComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(TaskItemComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/tasks/task-item/task-item.component.ts b/webapp/src/app/tasks/task-item/task-item.component.ts new file mode 100644 index 0000000..f7c53cd --- /dev/null +++ b/webapp/src/app/tasks/task-item/task-item.component.ts @@ -0,0 +1,216 @@ +import { + Component, + OnChanges, + OnDestroy, + Input, + HostBinding, + SimpleChanges, + ChangeDetectionStrategy, + ChangeDetectorRef, +} from '@angular/core'; +import { HttpErrorResponse } from '@angular/common/http'; +import { BreakpointObserver } from '@angular/cdk/layout'; + +import { Subject, zip } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; +import { NzMessageService } from 'ng-zorro-antd/message'; +import { NzModalService } from 'ng-zorro-antd/modal'; + +import { retry } from '../../shared/rx-operators'; +import { breakpoints } from '../shared/breakpoints'; +import { SettingService } from '../../settings/shared/services/setting.service'; +import { RunningStatus, TaskData } from '../shared/task.model'; +import { TaskManagerService } from '../shared/services/task-manager.service'; +import { + TaskOptions, + GlobalTaskSettings, + TaskOptionsIn, +} from '../../settings/shared/setting.model'; + +@Component({ + selector: 'app-task-item', + templateUrl: './task-item.component.html', + styleUrls: ['./task-item.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class TaskItemComponent implements OnChanges, OnDestroy { + @Input() data!: TaskData; + @HostBinding('class.stopped') stopped = false; + + taskOptions?: TaskOptions; + globalSettings?: GlobalTaskSettings; + + destroyed = new Subject<void>(); + useDrawer = false; + menuDrawerVisible = false; + switchPending = false; + settingsDialogVisible = false; + + readonly RunningStatus = RunningStatus; + + constructor( + breakpointObserver: BreakpointObserver, + private changeDetector: ChangeDetectorRef, + private message: NzMessageService, + private modal: NzModalService, + private settingService: SettingService, + private taskManager: TaskManagerService + ) { + breakpointObserver + .observe(breakpoints[0]) + .pipe(takeUntil(this.destroyed)) + .subscribe((state) => { + this.useDrawer = state.matches; + changeDetector.markForCheck(); + }); + } + + get roomId() { + return this.data.room_info.room_id; + } + + get toggleRecorderForbidden() { + return !this.data.task_status.monitor_enabled; + } + + ngOnChanges(changes: SimpleChanges): void { + console.debug('[ngOnChanges]', this.roomId, changes); + this.stopped = + this.data.task_status.running_status === RunningStatus.STOPPED; + } + + ngOnDestroy() { + this.destroyed.next(); + this.destroyed.complete(); + } + + updateTaskInfo(): void { + this.taskManager.updateTaskInfo(this.roomId).subscribe(); + } + + toggleRecorder(): void { + if (this.toggleRecorderForbidden) { + return; + } + + if (this.switchPending) { + return; + } + this.switchPending = true; + + if (this.data.task_status.recorder_enabled) { + this.taskManager + .disableRecorder(this.roomId) + .subscribe(() => (this.switchPending = false)); + } else { + this.taskManager + .enableRecorder(this.roomId) + .subscribe(() => (this.switchPending = false)); + } + } + + removeTask(): void { + this.taskManager.removeTask(this.roomId).subscribe(); + } + + startTask(): void { + if (this.data.task_status.running_status === RunningStatus.STOPPED) { + this.taskManager.startTask(this.roomId).subscribe(); + } else { + this.message.warning('任务运行中,忽略操作。'); + } + } + + stopTask(force: boolean = false): void { + if (this.data.task_status.running_status === RunningStatus.STOPPED) { + this.message.warning('任务处于停止状态,忽略操作。'); + return; + } + + if ( + force && + this.data.task_status.running_status == RunningStatus.RECORDING + ) { + this.modal.confirm({ + nzTitle: '确定要强制停止任务?', + nzContent: '正在录制的文件会被强行中断!确定要放弃正在录制的文件?', + nzOnOk: () => + new Promise((resolve, reject) => { + this.taskManager + .stopTask(this.roomId, force) + .subscribe(resolve, reject); + }), + }); + } else { + this.taskManager.stopTask(this.roomId).subscribe(); + } + } + + disableRecorder(force: boolean = false): void { + if (!this.data.task_status.recorder_enabled) { + this.message.warning('录制处于关闭状态,忽略操作。'); + return; + } + + if ( + force && + this.data.task_status.running_status == RunningStatus.RECORDING + ) { + this.modal.confirm({ + nzTitle: '确定要强制停止录制?', + nzContent: '正在录制的文件会被强行中断!确定要放弃正在录制的文件?', + nzOnOk: () => + new Promise((resolve, reject) => { + this.taskManager + .disableRecorder(this.roomId, force) + .subscribe(resolve, reject); + }), + }); + } else { + this.taskManager.disableRecorder(this.roomId).subscribe(); + } + } + + openSettingsDialog(): void { + zip( + this.settingService.getTaskOptions(this.roomId), + this.settingService.getSettings([ + 'output', + 'header', + 'danmaku', + 'recorder', + 'postprocessing', + ]) + ).subscribe( + ([taskOptions, globalSettings]) => { + this.taskOptions = taskOptions; + this.globalSettings = globalSettings; + this.settingsDialogVisible = true; + this.changeDetector.markForCheck(); + }, + (error: HttpErrorResponse) => { + this.message.error(`获取任务设置出错: ${error.message}`); + } + ); + } + + cleanSettingsData(): void { + delete this.taskOptions; + delete this.globalSettings; + this.changeDetector.markForCheck(); + } + + changeTaskOptions(options: TaskOptionsIn): void { + this.settingService + .changeTaskOptions(this.roomId, options) + .pipe(retry(3, 300)) + .subscribe( + (options) => { + this.message.success('修改任务设置成功'); + }, + (error: HttpErrorResponse) => { + this.message.error(`修改任务设置出错: ${error.message}`); + } + ); + } +} diff --git a/webapp/src/app/tasks/task-list/task-list.component.html b/webapp/src/app/tasks/task-list/task-list.component.html new file mode 100644 index 0000000..85c7f9e --- /dev/null +++ b/webapp/src/app/tasks/task-list/task-list.component.html @@ -0,0 +1,12 @@ +<div class="empty-container" *ngIf="dataList.length === 0; else elseBlock"> + <nz-empty></nz-empty> +</div> + +<ng-template #elseBlock> + <div class="tasks-container" #tasks> + <app-task-item + *ngFor="let data of dataList; trackBy: trackByRoomId" + [data]="data" + ></app-task-item> + </div> +</ng-template> diff --git a/webapp/src/app/tasks/task-list/task-list.component.scss b/webapp/src/app/tasks/task-list/task-list.component.scss new file mode 100644 index 0000000..0b5525a --- /dev/null +++ b/webapp/src/app/tasks/task-list/task-list.component.scss @@ -0,0 +1,40 @@ +@use '../../shared/styles/layout'; + +$card-width: 400px; +$grid-gutter: 12px; +$max-columns: 3; + +:host { + --card-width: #{$card-width}; + --grid-gutter: #{$grid-gutter}; + --max-columns: #{$max-columns}; + + @extend %inner-content; + padding: var(--grid-gutter); + + @media screen and (max-width: $card-width) { + --card-width: 100%; + padding: var(--grid-gutter) 0; + } +} + +.tasks-container { + display: grid; + grid-template-columns: repeat(auto-fill, var(--card-width)); + gap: var(--grid-gutter); + justify-content: center; + + max-width: min( + 100%, + calc( + var(--card-width) * var(--max-columns) + var(--grid-gutter) * + (var(--max-columns) - 1) + ) + ); + margin: 0 auto; +} + +.empty-container { + @include layout.full-width-height; + @include layout.center-content; +} diff --git a/webapp/src/app/tasks/task-list/task-list.component.spec.ts b/webapp/src/app/tasks/task-list/task-list.component.spec.ts new file mode 100644 index 0000000..a80b441 --- /dev/null +++ b/webapp/src/app/tasks/task-list/task-list.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TaskListComponent } from './task-list.component'; + +describe('TaskListComponent', () => { + let component: TaskListComponent; + let fixture: ComponentFixture<TaskListComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ TaskListComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(TaskListComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/tasks/task-list/task-list.component.ts b/webapp/src/app/tasks/task-list/task-list.component.ts new file mode 100644 index 0000000..b083685 --- /dev/null +++ b/webapp/src/app/tasks/task-list/task-list.component.ts @@ -0,0 +1,17 @@ +import { Component, ChangeDetectionStrategy, Input } from '@angular/core'; + +import { TaskData } from '../shared/task.model'; + +@Component({ + selector: 'app-task-list', + templateUrl: './task-list.component.html', + styleUrls: ['./task-list.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class TaskListComponent { + @Input() dataList: TaskData[] = []; + + trackByRoomId(index: number, data: TaskData): number { + return data.room_info.room_id; + } +} diff --git a/webapp/src/app/tasks/task-settings-dialog/task-settings-dialog.component.html b/webapp/src/app/tasks/task-settings-dialog/task-settings-dialog.component.html new file mode 100644 index 0000000..a28baf2 --- /dev/null +++ b/webapp/src/app/tasks/task-settings-dialog/task-settings-dialog.component.html @@ -0,0 +1,359 @@ +<nz-modal + nzTitle="任务设置" + nzCentered + [nzVisible]="visible" + [nzOkDisabled]="ngForm?.form?.invalid" + (nzOnOk)="handleConfirm()" + (nzOnCancel)="handleCancel()" + (nzAfterOpen)="afterOpen.emit()" + (nzAfterClose)="afterClose.emit()" +> + <ng-container *nzModalContent> + <form nz-form ngForm> + <div ngModelGroup="output" class="form-group output"> + <h2>文件</h2> + <nz-form-item class="setting-item input"> + <nz-form-label + class="setting-label" + nzNoColon + nzTooltipTitle="变量说明请查看对应全局设置" + >路径模板</nz-form-label + > + <nz-form-control + class="setting-control input" + [nzErrorTip]="errorTip" + > + <input + type="text" + required + [pattern]="pathTemplatePattern" + nz-input + name="pathTemplate" + [(ngModel)]="model.output.pathTemplate" + [disabled]="options.output.pathTemplate === null" + /> + <ng-template #errorTip let-control> + <ng-container *ngIf="control.hasError('required')"> + 请输入路径模板 + </ng-container> + <ng-container *ngIf="control.hasError('pattern')"> + 路径模板有错误 + </ng-container> + </ng-template> + </nz-form-control> + <label + nz-checkbox + [nzChecked]="options.output.pathTemplate !== null" + (nzCheckedChange)=" + options.output.pathTemplate = $event + ? globalSettings.output.pathTemplate + : null + " + >覆盖全局设置</label + > + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-label + class="setting-label" + nzNoColon + [nzTooltipTitle]="splitFileTip" + >大小限制</nz-form-label + > + <nz-form-control class="setting-control select"> + <nz-select + name="filesizeLimit" + [(ngModel)]="model.output.filesizeLimit" + [disabled]="options.output.filesizeLimit === null" + [nzOptions]="filesizeLimitOptions" + > + </nz-select> + </nz-form-control> + <label + nz-checkbox + [nzChecked]="options.output.filesizeLimit !== null" + (nzCheckedChange)=" + options.output.filesizeLimit = $event + ? globalSettings.output.filesizeLimit + : null + " + >覆盖全局设置</label + > + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-label + class="setting-label" + nzNoColon + [nzTooltipTitle]="splitFileTip" + >时长限制</nz-form-label + > + <nz-form-control class="setting-control select"> + <nz-select + name="durationLimit" + [(ngModel)]="model.output.durationLimit" + [disabled]="options.output.durationLimit === null" + [nzOptions]="durationLimitOptions" + > + </nz-select> + </nz-form-control> + <label + nz-checkbox + [nzChecked]="options.output.durationLimit !== null" + (nzCheckedChange)=" + options.output.durationLimit = $event + ? globalSettings.output.durationLimit + : null + " + >覆盖全局设置</label + > + </nz-form-item> + </div> + + <div ngModelGroup="recorder" class="form-group recorder"> + <h2>录制</h2> + <nz-form-item class="setting-item"> + <nz-form-label + class="setting-label" + nzNoColon + nzTooltipTitle="所选画质不存在将以原画代替" + >画质</nz-form-label + > + <nz-form-control class="setting-control select"> + <nz-select + name="qualityNumber" + [(ngModel)]="model.recorder.qualityNumber" + [disabled]="options.recorder.qualityNumber === null" + [nzOptions]="qualityOptions" + > + </nz-select> + </nz-form-control> + <label + nz-checkbox + [nzChecked]="options.recorder.qualityNumber !== null" + (nzCheckedChange)=" + options.recorder.qualityNumber = $event + ? globalSettings.recorder.qualityNumber + : null + " + >覆盖全局设置</label + > + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-label class="setting-label" nzNoColon + >数据读取超时</nz-form-label + > + <nz-form-control + class="setting-control select" + nzWarningTip="无缝拼接会失效!" + [nzValidateStatus]="readTimeout.value > 3 ? 'warning' : readTimeout" + > + <nz-select + #readTimeout="ngModel" + name="readTimeout" + [(ngModel)]="model.recorder.readTimeout" + [disabled]="options.recorder.readTimeout === null" + [nzOptions]="timeoutOptions" + > + </nz-select> + </nz-form-control> + <label + nz-checkbox + [nzChecked]="options.recorder.readTimeout !== null" + (nzCheckedChange)=" + options.recorder.readTimeout = $event + ? globalSettings.recorder.readTimeout + : null + " + >覆盖全局设置</label + > + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-label class="setting-label" nzNoColon + >硬盘写入缓冲</nz-form-label + > + <nz-form-control class="setting-control select"> + <nz-select + name="bufferSize" + [(ngModel)]="model.recorder.bufferSize" + [disabled]="options.recorder.bufferSize === null" + [nzOptions]="bufferOptions" + [nzOptionOverflowSize]="6" + > + </nz-select> + </nz-form-control> + <label + nz-checkbox + [nzChecked]="options.recorder.bufferSize !== null" + (nzCheckedChange)=" + options.recorder.bufferSize = $event + ? globalSettings.recorder.bufferSize + : null + " + >覆盖全局设置</label + > + </nz-form-item> + </div> + + <div ngModelGroup="danmaku" class="form-group danmaku"> + <h2>弹幕</h2> + <nz-form-item class="setting-item"> + <nz-form-label class="setting-label" nzFor="danmuUname" nzNoColon + >弹幕加用户名</nz-form-label + > + <nz-form-control class="setting-control switch"> + <nz-switch + id="danmuUname" + name="danmuUname" + [(ngModel)]="model.danmaku.danmuUname" + [disabled]="options.danmaku.danmuUname === null" + ></nz-switch> + </nz-form-control> + <label + nz-checkbox + [nzChecked]="options.danmaku.danmuUname !== null" + (nzCheckedChange)=" + options.danmaku.danmuUname = $event + ? globalSettings.danmaku.danmuUname + : null + " + >覆盖全局设置</label + > + </nz-form-item> + </div> + + <div ngModelGroup="postprocessing" class="form-group postprocessing"> + <h2>文件处理</h2> + <nz-form-item class="setting-item"> + <nz-form-label + class="setting-label" + nzNoColon + nzTooltipTitle="需要安装 FFmpeg" + >FLV 转 MP4</nz-form-label + > + <nz-form-control class="setting-control switch"> + <nz-switch + name="remuxToMp4" + [(ngModel)]="model.postprocessing.remuxToMp4" + [disabled]="options.postprocessing.remuxToMp4 === null" + ></nz-switch> + </nz-form-control> + <label + nz-checkbox + [nzChecked]="options.postprocessing.remuxToMp4 !== null" + (nzCheckedChange)=" + options.postprocessing.remuxToMp4 = $event + ? globalSettings.postprocessing.remuxToMp4 + : null + " + >覆盖全局设置</label + > + </nz-form-item> + <nz-form-item class="setting-item"> + <nz-form-label class="setting-label" nzNoColon + >源文件删除策略</nz-form-label + > + <nz-form-control class="setting-control select"> + <nz-select + name="deleteSource" + [(ngModel)]="model.postprocessing.deleteSource" + [disabled]="options.postprocessing.deleteSource === null" + [nzOptions]="deleteStrategies" + ></nz-select> + </nz-form-control> + <label + nz-checkbox + [nzChecked]="options.postprocessing.deleteSource !== null" + (nzCheckedChange)=" + options.postprocessing.deleteSource = $event + ? globalSettings.postprocessing.deleteSource + : null + " + >覆盖全局设置</label + > + </nz-form-item> + </div> + + <div ngModelGroup="header" class="form-group header"> + <h2>网络请求</h2> + <nz-form-item class="setting-item textarea"> + <nz-form-label class="setting-label" nzFor="userAgent" nzNoColon + >User Agent</nz-form-label + > + <nz-form-control + class="setting-control textarea" + [nzWarningTip]="warningTip" + [nzValidateStatus]=" + userAgent.valid && + options.header.userAgent !== taskOptions.header.userAgent && + options.header.userAgent !== globalSettings.header.userAgent + ? 'warning' + : userAgent + " + [nzErrorTip]="errorTip" + > + <textarea + #userAgent="ngModel" + nz-input + required + id="userAgent" + name="userAgent" + [rows]="3" + [(ngModel)]="model.header.userAgent" + [disabled]="options.header.userAgent === null" + ></textarea> + </nz-form-control> + <ng-template #errorTip let-control> + <ng-container *ngIf="control.hasError('required')"> + 请输入 User Agent + </ng-container> + </ng-template> + <label + nz-checkbox + [nzChecked]="options.header.userAgent !== null" + (nzCheckedChange)=" + options.header.userAgent = $event + ? globalSettings.header.userAgent + : null + " + >覆盖全局设置</label + > + </nz-form-item> + <nz-form-item class="setting-item textarea"> + <nz-form-label class="setting-label" nzFor="cookie" nzNoColon + >Cookie</nz-form-label + > + <nz-form-control + class="setting-control textarea" + [nzWarningTip]="warningTip" + [nzValidateStatus]=" + cookie.valid && + options.header.cookie !== taskOptions.header.cookie && + options.header.cookie !== globalSettings.header.cookie + ? 'warning' + : cookie + " + > + <textarea + #cookie="ngModel" + nz-input + id="cookie" + name="cookie" + [rows]="3" + [(ngModel)]="model.header.cookie" + [disabled]="options.header.cookie === null" + ></textarea> + </nz-form-control> + <label + nz-checkbox + [nzChecked]="options.header.cookie !== null" + (nzCheckedChange)=" + options.header.cookie = $event + ? globalSettings.header.cookie + : null + " + >覆盖全局设置</label + > + </nz-form-item> + </div> + </form> + </ng-container> +</nz-modal> diff --git a/webapp/src/app/tasks/task-settings-dialog/task-settings-dialog.component.scss b/webapp/src/app/tasks/task-settings-dialog/task-settings-dialog.component.scss new file mode 100644 index 0000000..fd4218d --- /dev/null +++ b/webapp/src/app/tasks/task-settings-dialog/task-settings-dialog.component.scss @@ -0,0 +1,82 @@ +@use '../../settings/shared/styles/setting'; + +nz-divider { + margin: 0 !important; +} + +.form-group { + &:last-child { + .setting-item { + &:last-child { + padding-bottom: 0; + } + } + } +} + +.setting-item { + display: grid; + grid-template-columns: repeat(3, 1fr); + align-items: center; + padding: 1em 0; + gap: 1em; + border: none; + + & > * { + margin: 0 !important; + } + + .setting-label { + justify-self: start; + } + + .setting-control { + justify-self: center; + } + + label[nz-checkbox] { + justify-self: end; + + &::ng-deep { + span:last-of-type { + padding-right: 0; + } + } + } + + &.input, &.textarea { + grid-template-columns: repeat(2, 1fr); + + .setting-label { + grid-row: 1 / 2; + grid-column: 1 / 2; + justify-self: center; + } + + .setting-control { + grid-row: 2 / 3; + grid-column: 1 / -1; + justify-self: stretch; + } + + label[nz-checkbox] { + grid-row: 1 / 2; + grid-column: 2 / 3; + justify-self: center; + } + } +} + +@media screen and (max-width: 450px) { + .setting-item { + grid-template-columns: repeat(2, 1fr); + .setting-label { + grid-column: 1 / -1; + justify-self: center; + } + + label[nz-checkbox] { + justify-self: end; + } + } +} diff --git a/webapp/src/app/tasks/task-settings-dialog/task-settings-dialog.component.spec.ts b/webapp/src/app/tasks/task-settings-dialog/task-settings-dialog.component.spec.ts new file mode 100644 index 0000000..d102f0f --- /dev/null +++ b/webapp/src/app/tasks/task-settings-dialog/task-settings-dialog.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TaskSettingsDialogComponent } from './task-settings-dialog.component'; + +describe('TaskSettingsDialogComponent', () => { + let component: TaskSettingsDialogComponent; + let fixture: ComponentFixture<TaskSettingsDialogComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ TaskSettingsDialogComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(TaskSettingsDialogComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/tasks/task-settings-dialog/task-settings-dialog.component.ts b/webapp/src/app/tasks/task-settings-dialog/task-settings-dialog.component.ts new file mode 100644 index 0000000..d1a60de --- /dev/null +++ b/webapp/src/app/tasks/task-settings-dialog/task-settings-dialog.component.ts @@ -0,0 +1,135 @@ +import { + Component, + OnChanges, + ChangeDetectionStrategy, + Input, + Output, + EventEmitter, + ChangeDetectorRef, + ViewChild, +} from '@angular/core'; +import { NgForm } from '@angular/forms'; + +import cloneDeep from 'lodash-es/cloneDeep'; + +import type { Mutable } from '../../shared/utility-types'; +import { difference } from '../../shared/utils'; +import { + TaskOptions, + GlobalTaskSettings, + TaskOptionsIn, +} from '../../settings/shared/setting.model'; +import { + PATH_TEMPLATE_PATTERN, + FILESIZE_LIMIT_OPTIONS, + DURATION_LIMIT_OPTIONS, + QUALITY_OPTIONS, + TIMEOUT_OPTIONS, + BUFFER_OPTIONS, + DELETE_STRATEGIES, + SPLIT_FILE_TIP, +} from '../../settings/shared/constants/form'; + +type OptionsModel = NonNullable<TaskOptions>; + +@Component({ + selector: 'app-task-settings-dialog', + templateUrl: './task-settings-dialog.component.html', + styleUrls: ['./task-settings-dialog.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class TaskSettingsDialogComponent implements OnChanges { + @Input() taskOptions!: Readonly<TaskOptions>; + @Input() globalSettings!: Readonly<GlobalTaskSettings>; + @Input() visible = false; + + @Output() visibleChange = new EventEmitter<boolean>(); + @Output() cancel = new EventEmitter<undefined>(); + @Output() confirm = new EventEmitter<TaskOptionsIn>(); + @Output() afterOpen = new EventEmitter<undefined>(); + @Output() afterClose = new EventEmitter<undefined>(); + + @ViewChild(NgForm) + ngForm!: NgForm; + + readonly warningTip = + '需要重启弹幕客户端才能生效,如果任务正在录制可能会丢失弹幕!'; + readonly splitFileTip = SPLIT_FILE_TIP; + readonly pathTemplatePattern = PATH_TEMPLATE_PATTERN; + readonly filesizeLimitOptions = cloneDeep(FILESIZE_LIMIT_OPTIONS) as Mutable< + typeof FILESIZE_LIMIT_OPTIONS + >; + readonly durationLimitOptions = cloneDeep(DURATION_LIMIT_OPTIONS) as Mutable< + typeof DURATION_LIMIT_OPTIONS + >; + readonly qualityOptions = cloneDeep(QUALITY_OPTIONS) as Mutable< + typeof QUALITY_OPTIONS + >; + readonly timeoutOptions = cloneDeep(TIMEOUT_OPTIONS) as Mutable< + typeof TIMEOUT_OPTIONS + >; + readonly bufferOptions = cloneDeep(BUFFER_OPTIONS) as Mutable< + typeof BUFFER_OPTIONS + >; + readonly deleteStrategies = cloneDeep(DELETE_STRATEGIES) as Mutable< + typeof DELETE_STRATEGIES + >; + + model!: OptionsModel; + options!: TaskOptions; + + constructor(private changeDetector: ChangeDetectorRef) {} + + ngOnChanges(): void { + this.options = cloneDeep(this.taskOptions); + this.setupModel(); + this.changeDetector.markForCheck(); + } + + close(): void { + this.setVisible(false); + } + + setVisible(visible: boolean): void { + this.visible = visible; + this.visibleChange.emit(visible); + this.changeDetector.markForCheck(); + } + + handleCancel(): void { + this.cancel.emit(); + this.close(); + } + + handleConfirm(): void { + this.confirm.emit(difference(this.options, this.taskOptions!)); + this.close(); + } + + private setupModel(): void { + const model = {}; + + for (const key of Object.keys(this.options)) { + const prop = key as keyof TaskOptions; + const options = this.options[prop]; + const globalSettings = this.globalSettings[prop]; + + Reflect.set( + model, + prop, + new Proxy(options, { + get: (target, prop) => { + return ( + Reflect.get(target, prop) ?? Reflect.get(globalSettings, prop) + ); + }, + set: (target, prop, value) => { + return Reflect.set(target, prop, value); + }, + }) + ); + } + + this.model = model as OptionsModel; + } +} diff --git a/webapp/src/app/tasks/tasks-routing.module.ts b/webapp/src/app/tasks/tasks-routing.module.ts new file mode 100644 index 0000000..e114faa --- /dev/null +++ b/webapp/src/app/tasks/tasks-routing.module.ts @@ -0,0 +1,11 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { TasksComponent } from './tasks.component'; + +const routes: Routes = [{ path: '', component: TasksComponent }]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class TasksRoutingModule { } diff --git a/webapp/src/app/tasks/tasks.component.html b/webapp/src/app/tasks/tasks.component.html new file mode 100644 index 0000000..ccdeeca --- /dev/null +++ b/webapp/src/app/tasks/tasks.component.html @@ -0,0 +1,33 @@ +<app-toolbar + [selection]="selection" + (selectionChange)="onSelectionChanged($event)" + [reverse]="reverse" + (reverseChange)="onReverseChanged($event)" + (filterChange)="filterTerm = $event" +></app-toolbar> + +<nz-spin + class="spinner" + [nzSize]="'large'" + [nzSpinning]="loading" + *ngIf="loading; else elseBlock" +></nz-spin> +<ng-template #elseBlock> + <app-task-list + [dataList]="dataList | filterTasks: filterTerm" + ></app-task-list> +</ng-template> + +<button + class="add-task-button" + nz-button + nzType="primary" + nzSize="large" + nzShape="circle" + nz-tooltip + nzTooltipTitle="添加任务" + (click)="addTaskDialog.open()" +> + <i nz-icon nzType="plus"></i> +</button> +<app-add-task-dialog #addTaskDialog></app-add-task-dialog> diff --git a/webapp/src/app/tasks/tasks.component.scss b/webapp/src/app/tasks/tasks.component.scss new file mode 100644 index 0000000..f036d98 --- /dev/null +++ b/webapp/src/app/tasks/tasks.component.scss @@ -0,0 +1,17 @@ +@use '../shared/styles/layout'; +@use '../shared/styles/common'; + +:host { + @extend %inner-content; + display: flex; + flex-direction: column; + // flex-direction: column-reverse; + padding: 0; + overflow: hidden; +} + +.add-task-button { + position: fixed; + bottom: 5vh; + right: 5vw; +} diff --git a/webapp/src/app/tasks/tasks.component.spec.ts b/webapp/src/app/tasks/tasks.component.spec.ts new file mode 100644 index 0000000..d4ab7a5 --- /dev/null +++ b/webapp/src/app/tasks/tasks.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TasksComponent } from './tasks.component'; + +describe('TasksComponent', () => { + let component: TasksComponent; + let fixture: ComponentFixture<TasksComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ TasksComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(TasksComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/tasks/tasks.component.ts b/webapp/src/app/tasks/tasks.component.ts new file mode 100644 index 0000000..7d040de --- /dev/null +++ b/webapp/src/app/tasks/tasks.component.ts @@ -0,0 +1,120 @@ +import { + Component, + OnInit, + ChangeDetectionStrategy, + ChangeDetectorRef, + OnDestroy, +} from '@angular/core'; +import { HttpErrorResponse } from '@angular/common/http'; + +import { catchError, concatAll, switchMap } from 'rxjs/operators'; +import { interval, of, Subscription } from 'rxjs'; +import { NzNotificationService } from 'ng-zorro-antd/notification'; + +import { TaskData, DataSelection } from './shared/task.model'; +import { retry } from 'src/app/shared/rx-operators'; +import { TaskService } from './shared/services/task.service'; +import { StorageService } from '../core/services/storage.service'; + +const SELECTION_STORAGE_KEY = 'app-tasks-selection'; +const REVERSE_STORAGE_KEY = 'app-tasks-reverse'; + +@Component({ + selector: 'app-tasks', + templateUrl: './tasks.component.html', + styleUrls: ['./tasks.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class TasksComponent implements OnInit, OnDestroy { + loading: boolean = true; + dataList: TaskData[] = []; + selection: DataSelection; + reverse: boolean; + filterTerm = ''; + + private dataSubscription?: Subscription; + + constructor( + private changeDetector: ChangeDetectorRef, + private notification: NzNotificationService, + private storage: StorageService, + private taskService: TaskService + ) { + this.selection = this.retrieveSelection(); + this.reverse = this.retrieveReverse(); + } + + ngOnInit(): void { + this.syncTaskData(); + } + + ngOnDestroy(): void { + this.desyncTaskData(); + } + + onSelectionChanged(selection: DataSelection): void { + this.selection = selection; + this.storeSelection(selection); + this.desyncTaskData(); + this.syncTaskData(); + } + + onReverseChanged(reverse: boolean): void { + this.reverse = reverse; + this.storeReverse(reverse); + if (reverse) { + this.dataList = [...this.dataList.reverse()]; + this.changeDetector.markForCheck(); + } + } + + private retrieveSelection(): DataSelection { + const selection = this.storage.getData( + SELECTION_STORAGE_KEY + ) as DataSelection | null; + return selection !== null ? selection : DataSelection.ALL; + } + + private retrieveReverse(): boolean { + return this.storage.getData(REVERSE_STORAGE_KEY) === 'true'; + } + + private storeSelection(value: DataSelection): void { + this.storage.setData(SELECTION_STORAGE_KEY, value); + } + + private storeReverse(value: boolean): void { + this.storage.setData(REVERSE_STORAGE_KEY, value.toString()); + } + + private syncTaskData(): void { + this.dataSubscription = of(of(0), interval(1000)) + .pipe( + concatAll(), + switchMap(() => this.taskService.getAllTaskData(this.selection)), + catchError((error: HttpErrorResponse) => { + this.notification.error('获取任务数据出错', error.message); + throw error; + }), + retry(10, 3000) + ) + .subscribe( + (dataList) => { + this.loading = false; + this.dataList = this.reverse ? dataList.reverse() : dataList; + this.changeDetector.markForCheck(); + }, + (error: HttpErrorResponse) => { + this.notification.error( + '获取任务数据出错', + '网络连接异常, 请待网络正常后刷新。', + { nzDuration: 0 } + ); + } + ); + } + + private desyncTaskData(): void { + this.dataSubscription?.unsubscribe(); + } +} diff --git a/webapp/src/app/tasks/tasks.module.ts b/webapp/src/app/tasks/tasks.module.ts new file mode 100644 index 0000000..c6e8d84 --- /dev/null +++ b/webapp/src/app/tasks/tasks.module.ts @@ -0,0 +1,89 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { LayoutModule } from '@angular/cdk/layout'; +import { ClipboardModule } from '@angular/cdk/clipboard'; + +import { NzGridModule } from 'ng-zorro-antd/grid'; +import { NzCardModule } from 'ng-zorro-antd/card'; +import { NzIconModule } from 'ng-zorro-antd/icon'; +import { NzTagModule } from 'ng-zorro-antd/tag'; +import { NzAvatarModule } from 'ng-zorro-antd/avatar'; +import { NzSkeletonModule } from 'ng-zorro-antd/skeleton'; +import { NzToolTipModule } from 'ng-zorro-antd/tooltip'; +import { NzSwitchModule } from 'ng-zorro-antd/switch'; +import { NzDropDownModule } from 'ng-zorro-antd/dropdown'; +import { NzButtonModule } from 'ng-zorro-antd/button'; +import { NzModalModule } from 'ng-zorro-antd/modal'; +import { NzFormModule } from 'ng-zorro-antd/form'; +import { NzInputModule } from 'ng-zorro-antd/input'; +import { NzCheckboxModule } from 'ng-zorro-antd/checkbox'; +import { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm'; +import { NzRadioModule } from 'ng-zorro-antd/radio'; +import { NzDividerModule } from 'ng-zorro-antd/divider'; +import { NzEmptyModule } from 'ng-zorro-antd/empty'; +import { NzSpinModule } from 'ng-zorro-antd/spin'; +import { NzAlertModule } from 'ng-zorro-antd/alert'; +import { NzDrawerModule } from 'ng-zorro-antd/drawer'; +import { NzSelectModule } from 'ng-zorro-antd/select'; +import { NzProgressModule } from 'ng-zorro-antd/progress'; + +import { SharedModule } from '../shared/shared.module'; +import { TasksRoutingModule } from './tasks-routing.module'; +import { TasksComponent } from './tasks.component'; +import { ToolbarComponent } from './toolbar/toolbar.component'; +import { TaskListComponent } from './task-list/task-list.component'; +import { TaskItemComponent } from './task-item/task-item.component'; +import { FilterTasksPipe } from './shared/pipes/filter-tasks.pipe'; +import { AddTaskDialogComponent } from './add-task-dialog/add-task-dialog.component'; +import { TaskSettingsDialogComponent } from './task-settings-dialog/task-settings-dialog.component'; +import { StatusDisplayComponent } from './status-display/status-display.component'; + +@NgModule({ + declarations: [ + TasksComponent, + ToolbarComponent, + TaskListComponent, + TaskItemComponent, + FilterTasksPipe, + AddTaskDialogComponent, + TaskSettingsDialogComponent, + StatusDisplayComponent, + ], + imports: [ + CommonModule, + FormsModule, + ReactiveFormsModule, + LayoutModule, + ClipboardModule, + + NzGridModule, + NzCardModule, + NzSkeletonModule, + NzAvatarModule, + NzIconModule, + NzSkeletonModule, + NzToolTipModule, + NzTagModule, + NzSwitchModule, + NzDropDownModule, + NzButtonModule, + NzModalModule, + NzFormModule, + NzInputModule, + NzCheckboxModule, + NzPopconfirmModule, + NzRadioModule, + NzDividerModule, + NzEmptyModule, + NzSpinModule, + NzAlertModule, + NzDrawerModule, + NzSelectModule, + NzProgressModule, + + TasksRoutingModule, + SharedModule, + ], +}) +export class TasksModule {} diff --git a/webapp/src/app/tasks/toolbar/toolbar.component.html b/webapp/src/app/tasks/toolbar/toolbar.component.html new file mode 100644 index 0000000..5e4ae9c --- /dev/null +++ b/webapp/src/app/tasks/toolbar/toolbar.component.html @@ -0,0 +1,184 @@ +<div class="controls-wrapper" [class.use-drawer]="useDrawer"> + <ng-container *ngIf="useRadioGroup"> + <ng-container [ngTemplateOutlet]="radioGroup"></ng-container> + <nz-divider nzType="vertical"></nz-divider> + <ng-container [ngTemplateOutlet]="filter"></ng-container> + <nz-divider nzType="vertical"></nz-divider> + <ng-container [ngTemplateOutlet]="reorderButton"></ng-container> + <nz-divider nzType="vertical"></nz-divider> + <ng-container [ngTemplateOutlet]="menuButton"></ng-container> + </ng-container> + + <ng-container *ngIf="useSelector"> + <ng-container [ngTemplateOutlet]="selector"></ng-container> + <nz-divider nzType="vertical"></nz-divider> + <ng-container [ngTemplateOutlet]="filter"></ng-container> + <nz-divider nzType="vertical"></nz-divider> + <ng-container [ngTemplateOutlet]="reorderButton"></ng-container> + <nz-divider nzType="vertical"></nz-divider> + <ng-container [ngTemplateOutlet]="menuButton"></ng-container> + </ng-container> + + <ng-container *ngIf="useDrawer"> + <ng-container [ngTemplateOutlet]="filter"></ng-container> + <ng-container [ngTemplateOutlet]="drawerButton"></ng-container> + </ng-container> +</div> + +<ng-template #radioGroup> + <nz-radio-group + class="radio-group" + nzButtonStyle="solid" + [(ngModel)]="selection" + (ngModelChange)="selectionChange.emit($event)" + > + <ng-container *ngFor="let selection of selections"> + <label nz-radio-button [nzValue]="selection.value">{{ + selection.label + }}</label> + </ng-container> + </nz-radio-group> +</ng-template> + +<ng-template #selector> + <nz-select + class="selector" + [nzOptions]="selections" + [(ngModel)]="selection" + (ngModelChange)="selectionChange.emit($event)" + ></nz-select> +</ng-template> + +<ng-template #filter> + <nz-input-group class="filter" [nzSuffix]="inputClearTpl"> + <input + nz-input + type="text" + maxlength="18" + placeholder="用标题、分区、主播名、房间号筛选" + #filterInput + (input)="onFilterInput(filterInput.value)" + /> + </nz-input-group> + <ng-template #inputClearTpl + ><i + nz-icon + class="filter-clear" + nzTheme="fill" + nzType="close-circle" + *ngIf="filterInput.value" + (click)="filterInput.value = ''; onFilterInput('')" + ></i + ></ng-template> +</ng-template> + +<ng-template #reorderButton> + <button + class="reverse-button" + nz-button + nzType="text" + nzSize="default" + (click)="toggleReverse()" + > + <span>{{ reverse ? "倒序" : "正序" }}</span> + <i + nz-icon + [nzType]="reverse ? 'swap-left' : 'swap-right'" + [nzRotate]="90" + ></i> + </button> +</ng-template> + +<ng-template #menuButton> + <button + class="more-actions-button" + nz-button + nzType="text" + nzSize="default" + nz-dropdown + nzPlacement="bottomRight" + [nzDropdownMenu]="dropdownMenu" + > + <i nz-icon nzType="more"></i> + </button> +</ng-template> + +<nz-dropdown-menu #dropdownMenu="nzDropdownMenu"> + <ng-container [ngTemplateOutlet]="menu"></ng-container> + <ng-template #menu> + <ul nz-menu class="menu"> + <li nz-menu-item (click)="startAllTasks()">全部运行</li> + <li nz-menu-item (click)="stopAllTasks()">全部停止</li> + <li nz-menu-item (click)="stopAllTasks(true)">全部强制停止</li> + <li nz-menu-divider></li> + <li nz-menu-item (click)="disableAllRecorders(false)">全部关闭录制</li> + <li nz-menu-item (click)="disableAllRecorders(true)">全部强制关闭录制</li> + <li nz-menu-divider></li> + <li nz-menu-item (click)="removeAllTasks()">全部删除</li> + <li nz-menu-item (click)="updateAllTaskInfos()">全部刷新数据</li> + <li nz-menu-item (click)="copyAllTaskRoomIds()">复制全部房间号</li> + </ul> + </ng-template> +</nz-dropdown-menu> + +<ng-template #drawerButton> + <button + class="more-actions-button" + nz-button + nzType="text" + nzSize="default" + (click)="drawerVisible = true" + > + <i nz-icon nzType="more"></i> + </button> +</ng-template> + +<nz-drawer + *ngIf="useDrawer" + nzPlacement="bottom" + nzHeight="auto" + [nzTitle]="drawerHeader" + [nzClosable]="false" + [(nzVisible)]="drawerVisible" + (nzOnClose)="drawerVisible = false" +> + <ng-container *nzDrawerContent> + <div class="drawer-content"> + <nz-divider nzText="筛选"></nz-divider> + <ng-container [ngTemplateOutlet]="radioGroup"></ng-container> + <nz-divider nzText="排序"></nz-divider> + <div class="reorder-button-wrapper"> + <ng-container [ngTemplateOutlet]="reorderButton"></ng-container> + </div> + </div> + </ng-container> + + <nz-drawer + nzPlacement="bottom" + nzHeight="auto" + [nzClosable]="false" + [nzBodyStyle]="{ padding: '0' }" + [(nzVisible)]="menuDrawerVisible" + (nzOnClose)="menuDrawerVisible = false" + > + <ng-container *nzDrawerContent> + <div class="drawer-content" (click)="menuDrawerVisible = false"> + <ng-container [ngTemplateOutlet]="menu"></ng-container> + </div> + </ng-container> + </nz-drawer> +</nz-drawer> + +<ng-template #drawerHeader> + <div class="drawer-header"> + <button + class="more-actions-button" + nz-button + nzType="text" + nzSize="default" + (click)="menuDrawerVisible = true" + > + <i nz-icon nzType="more"></i> + </button> + </div> +</ng-template> diff --git a/webapp/src/app/tasks/toolbar/toolbar.component.scss b/webapp/src/app/tasks/toolbar/toolbar.component.scss new file mode 100644 index 0000000..ecc4244 --- /dev/null +++ b/webapp/src/app/tasks/toolbar/toolbar.component.scss @@ -0,0 +1,91 @@ +@use '../shared/styles/drawer'; + +.controls-wrapper { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 0.2em; + + width: 100%; + padding: 0.2em; + background: #eee; + border: 1px solid #d9d9d9; + border-left: none; + border-right: none; + + nz-divider { + height: 1.8em; + top: 0; + } + + &:not(.use-drawer) { + .filter { + max-width: 18em; + } + } + + &.use-drawer { + .filter { + max-width: unset; + width: unset; + flex: auto; + } + } +} + +.reverse-button { + padding: 0 0.5em; + + i { + margin: 0; + } +} + +.more-actions-button { + margin-left: auto; + border: none; + background: inherit; + + i { + font-size: 20px; + } +} + +.menu { + nz-divider { + margin: 0; + } +} + +.drawer-header { + display: flex; +} + +%button-group { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 2vw; +} + +.drawer-content { + nz-divider:first-of-type { + margin-top: 0; + } + + .radio-group { + @extend %button-group; + + label { + text-align: center; + padding: 0; + } + } + + .reorder-button-wrapper { + @extend %button-group; + } + + .menu { + @extend %drawer-menu; + } +} diff --git a/webapp/src/app/tasks/toolbar/toolbar.component.spec.ts b/webapp/src/app/tasks/toolbar/toolbar.component.spec.ts new file mode 100644 index 0000000..3acf866 --- /dev/null +++ b/webapp/src/app/tasks/toolbar/toolbar.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ToolbarComponent } from './toolbar.component'; + +describe('ToolbarComponent', () => { + let component: ToolbarComponent; + let fixture: ComponentFixture<ToolbarComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ToolbarComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ToolbarComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/webapp/src/app/tasks/toolbar/toolbar.component.ts b/webapp/src/app/tasks/toolbar/toolbar.component.ts new file mode 100644 index 0000000..08e7556 --- /dev/null +++ b/webapp/src/app/tasks/toolbar/toolbar.component.ts @@ -0,0 +1,175 @@ +import { + Component, + OnInit, + ChangeDetectionStrategy, + Input, + Output, + EventEmitter, + ChangeDetectorRef, + OnDestroy, +} from '@angular/core'; +import { BreakpointObserver } from '@angular/cdk/layout'; +import { Clipboard } from '@angular/cdk/clipboard'; + +import { Subject } from 'rxjs'; +import { + debounceTime, + distinctUntilChanged, + takeUntil, + map, + tap, +} from 'rxjs/operators'; +import { NzModalService } from 'ng-zorro-antd/modal'; +import { NzMessageService } from 'ng-zorro-antd/message'; + +import { breakpoints } from '../shared/breakpoints'; +import { DataSelection } from '../shared/task.model'; +import { TaskManagerService } from '../shared/services/task-manager.service'; + +@Component({ + selector: 'app-toolbar', + templateUrl: './toolbar.component.html', + styleUrls: ['./toolbar.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class ToolbarComponent implements OnInit, OnDestroy { + @Input() selection!: DataSelection; + @Output() selectionChange = new EventEmitter<DataSelection>(); + + @Input() reverse!: boolean; + @Output() reverseChange = new EventEmitter<boolean>(); + + @Output() filterChange = new EventEmitter<string>(); + + destroyed = new Subject<void>(); + useDrawer = false; + useSelector = false; + useRadioGroup = true; + drawerVisible = false; + menuDrawerVisible = false; + + private filterTerms = new Subject<string>(); + + readonly selections = [ + { label: '全部', value: DataSelection.ALL }, + { label: '录制中', value: DataSelection.RECORDING }, + { label: '录制关', value: DataSelection.RECORDER_DISABLED }, + { label: '停止', value: DataSelection.STOPPED }, + { label: '直播', value: DataSelection.LIVING }, + { label: '轮播', value: DataSelection.ROUNDING }, + { label: '闲置', value: DataSelection.PREPARING }, + ]; + + constructor( + changeDetector: ChangeDetectorRef, + breakpointObserver: BreakpointObserver, + private message: NzMessageService, + private modal: NzModalService, + private clipboard: Clipboard, + private taskManager: TaskManagerService + ) { + breakpointObserver + .observe(breakpoints) + .pipe(takeUntil(this.destroyed)) + .subscribe((state) => { + this.useDrawer = state.breakpoints[breakpoints[0]]; + this.useSelector = state.breakpoints[breakpoints[1]]; + this.useRadioGroup = state.breakpoints[breakpoints[2]]; + changeDetector.markForCheck(); + }); + } + + ngOnInit(): void { + this.filterTerms + .pipe(debounceTime(300), distinctUntilChanged()) + .subscribe((term) => { + this.filterChange.emit(term); + }); + } + + ngOnDestroy() { + this.destroyed.next(); + this.destroyed.complete(); + } + + onFilterInput(term: string): void { + this.filterTerms.next(term); + } + + toggleReverse(): void { + this.reverse = !this.reverse; + this.reverseChange.emit(this.reverse); + } + + removeAllTasks(): void { + this.modal.confirm({ + nzTitle: '确定要删除全部任务?', + nzContent: '正在录制的任务将被强制停止!任务删除后将不可恢复!', + nzOnOk: () => + new Promise((resolve, reject) => { + this.taskManager.removeAllTasks().subscribe(resolve, reject); + }), + }); + } + + startAllTasks(): void { + this.taskManager.startAllTasks().subscribe(); + } + + stopAllTasks(force: boolean = false): void { + if (force) { + this.modal.confirm({ + nzTitle: '确定要强制停止全部任务?', + nzContent: '正在录制的文件会被强行中断!确定要放弃正在录制的文件?', + nzOnOk: () => + new Promise((resolve, reject) => { + this.taskManager.stopAllTasks(force).subscribe(resolve, reject); + }), + }); + } else { + this.taskManager.stopAllTasks().subscribe(); + } + } + + disableAllRecorders(force: boolean = false): void { + if (force) { + this.modal.confirm({ + nzTitle: '确定要强制关闭全部任务的录制?', + nzContent: '正在录制的文件会被强行中断!确定要放弃正在录制的文件?', + nzOnOk: () => + new Promise((resolve, reject) => { + this.taskManager + .disableAllRecorders(force) + .subscribe(resolve, reject); + }), + }); + } else { + this.taskManager.disableAllRecorders().subscribe(); + } + } + + updateAllTaskInfos(): void { + this.taskManager.updateAllTaskInfos().subscribe(); + } + + copyAllTaskRoomIds(): void { + this.taskManager + .getAllTaskRoomIds() + .pipe( + map((ids) => ids.join(' ')), + tap((text) => { + if (!this.clipboard.copy(text)) { + throw Error('Failed to copy text to the clipboard'); + } + }) + ) + .subscribe( + () => { + this.message.success('全部房间号已复制到剪切板'); + }, + (error) => { + this.message.error('复制全部房间号到剪切板出错', error); + } + ); + } +} diff --git a/webapp/src/assets/.gitkeep b/webapp/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/webapp/src/assets/icons/icon-128x128.png b/webapp/src/assets/icons/icon-128x128.png new file mode 100644 index 0000000..f36ffbe Binary files /dev/null and b/webapp/src/assets/icons/icon-128x128.png differ diff --git a/webapp/src/assets/icons/icon-144x144.png b/webapp/src/assets/icons/icon-144x144.png new file mode 100644 index 0000000..9ccb8d6 Binary files /dev/null and b/webapp/src/assets/icons/icon-144x144.png differ diff --git a/webapp/src/assets/icons/icon-152x152.png b/webapp/src/assets/icons/icon-152x152.png new file mode 100644 index 0000000..899ae5f Binary files /dev/null and b/webapp/src/assets/icons/icon-152x152.png differ diff --git a/webapp/src/assets/icons/icon-192x192.png b/webapp/src/assets/icons/icon-192x192.png new file mode 100644 index 0000000..1490ee5 Binary files /dev/null and b/webapp/src/assets/icons/icon-192x192.png differ diff --git a/webapp/src/assets/icons/icon-384x384.png b/webapp/src/assets/icons/icon-384x384.png new file mode 100644 index 0000000..cbcaf18 Binary files /dev/null and b/webapp/src/assets/icons/icon-384x384.png differ diff --git a/webapp/src/assets/icons/icon-512x512.png b/webapp/src/assets/icons/icon-512x512.png new file mode 100644 index 0000000..4fa8b5f Binary files /dev/null and b/webapp/src/assets/icons/icon-512x512.png differ diff --git a/webapp/src/assets/icons/icon-72x72.png b/webapp/src/assets/icons/icon-72x72.png new file mode 100644 index 0000000..ccb56b0 Binary files /dev/null and b/webapp/src/assets/icons/icon-72x72.png differ diff --git a/webapp/src/assets/icons/icon-96x96.png b/webapp/src/assets/icons/icon-96x96.png new file mode 100644 index 0000000..1b1d510 Binary files /dev/null and b/webapp/src/assets/icons/icon-96x96.png differ diff --git a/webapp/src/assets/images/bili-404.png b/webapp/src/assets/images/bili-404.png new file mode 100644 index 0000000..9e00962 Binary files /dev/null and b/webapp/src/assets/images/bili-404.png differ diff --git a/webapp/src/assets/images/logo.png b/webapp/src/assets/images/logo.png new file mode 100644 index 0000000..d1a21b7 Binary files /dev/null and b/webapp/src/assets/images/logo.png differ diff --git a/webapp/src/environments/environment.prod.ts b/webapp/src/environments/environment.prod.ts new file mode 100644 index 0000000..191f685 --- /dev/null +++ b/webapp/src/environments/environment.prod.ts @@ -0,0 +1,9 @@ +import { NgxLoggerLevel } from 'ngx-logger'; + +export const environment = { + production: true, + apiUrl: '', + webSocketUrl: '', + ngxLoggerLevel: NgxLoggerLevel.DEBUG, + traceRouterScrolling: false, +} as const; diff --git a/webapp/src/environments/environment.ts b/webapp/src/environments/environment.ts new file mode 100644 index 0000000..ed27ecc --- /dev/null +++ b/webapp/src/environments/environment.ts @@ -0,0 +1,22 @@ +// This file can be replaced during build by using the `fileReplacements` array. +// `ng build` replaces `environment.ts` with `environment.prod.ts`. +// The list of file replacements can be found in `angular.json`. + +import { NgxLoggerLevel } from 'ngx-logger'; + +export const environment = { + production: false, + apiUrl: 'http://localhost:2233', + webSocketUrl: 'ws://localhost:2233', + ngxLoggerLevel: NgxLoggerLevel.TRACE, + traceRouterScrolling: true, +} as const; + +/* + * For easier debugging in development mode, you can import the following file + * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. + * + * This import should be commented out in production mode because it will have a negative impact + * on performance if an error is thrown. + */ +// import 'zone.js/plugins/zone-error'; // Included with Angular CLI. diff --git a/webapp/src/index.html b/webapp/src/index.html new file mode 100644 index 0000000..9572bfd --- /dev/null +++ b/webapp/src/index.html @@ -0,0 +1,16 @@ +<!doctype html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title>Bilibili Live Recorder</title> + <base href="/"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="icon" type="image/x-icon" href="assets/images/logo.png"> + <link rel="manifest" href="manifest.webmanifest"> + <meta name="theme-color" content="#1976d2"> +</head> +<body> + <app-root></app-root> + <noscript>Please enable JavaScript to continue using this application.</noscript> +</body> +</html> diff --git a/webapp/src/main.ts b/webapp/src/main.ts new file mode 100644 index 0000000..c7b673c --- /dev/null +++ b/webapp/src/main.ts @@ -0,0 +1,12 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import { environment } from './environments/environment'; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule) + .catch(err => console.error(err)); diff --git a/webapp/src/manifest.webmanifest b/webapp/src/manifest.webmanifest new file mode 100644 index 0000000..b25cc60 --- /dev/null +++ b/webapp/src/manifest.webmanifest @@ -0,0 +1,59 @@ +{ + "name": "blrec", + "short_name": "blrec", + "theme_color": "#1976d2", + "background_color": "#fafafa", + "display": "standalone", + "scope": "./", + "start_url": "./", + "icons": [ + { + "src": "assets/icons/icon-72x72.png", + "sizes": "72x72", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-96x96.png", + "sizes": "96x96", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-128x128.png", + "sizes": "128x128", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-144x144.png", + "sizes": "144x144", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-152x152.png", + "sizes": "152x152", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-384x384.png", + "sizes": "384x384", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable any" + } + ] +} diff --git a/webapp/src/polyfills.ts b/webapp/src/polyfills.ts new file mode 100644 index 0000000..373f538 --- /dev/null +++ b/webapp/src/polyfills.ts @@ -0,0 +1,65 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/guide/browser-support + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** + * IE11 requires the following for NgClass support on SVG elements + */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** + * Web Animations `@angular/platform-browser/animations` + * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. + * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). + */ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + * because those flags need to be set before `zone.js` being loaded, and webpack + * will put import in the top of bundle, so user need to create a separate file + * in this directory (for example: zone-flags.ts), and put the following flags + * into that file, and then add the following code before importing zone.js. + * import './zone-flags'; + * + * The flags allowed in zone-flags.ts are listed here. + * + * The following flags will work for all browsers. + * + * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame + * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick + * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames + * + * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js + * with the following flag, it will bypass `zone.js` patch for IE/Edge + * + * (window as any).__Zone_enable_cross_context_check = true; + * + */ + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js'; // Included with Angular CLI. + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/webapp/src/styles.scss b/webapp/src/styles.scss new file mode 100644 index 0000000..fe114d9 --- /dev/null +++ b/webapp/src/styles.scss @@ -0,0 +1,18 @@ +/* You can add global styles to this file, and also import other style files */ +@media screen and (min-width: 768px) { + ::-webkit-scrollbar { + width: 10px; + } + + ::-webkit-scrollbar-track { + background: #f1f1f1; + } + + ::-webkit-scrollbar-thumb { + background: #c1c1c1; + } + + ::-webkit-scrollbar-thumb:hover { + background: #a8a8a8; + } +} diff --git a/webapp/src/test.ts b/webapp/src/test.ts new file mode 100644 index 0000000..2042356 --- /dev/null +++ b/webapp/src/test.ts @@ -0,0 +1,25 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: { + context(path: string, deep?: boolean, filter?: RegExp): { + keys(): string[]; + <T>(id: string): T; + }; +}; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/webapp/src/theme.less b/webapp/src/theme.less new file mode 100644 index 0000000..ecf2541 --- /dev/null +++ b/webapp/src/theme.less @@ -0,0 +1,9 @@ + +// Custom Theming for NG-ZORRO +// For more information: https://ng.ant.design/docs/customize-theme/en +@import "../node_modules/ng-zorro-antd/ng-zorro-antd.less"; + +// Override less variables to here +// View all variables: https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/components/style/themes/default.less + +// @primary-color: #1890ff; diff --git a/webapp/tsconfig.app.json b/webapp/tsconfig.app.json new file mode 100644 index 0000000..82d91dc --- /dev/null +++ b/webapp/tsconfig.app.json @@ -0,0 +1,15 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": [ + "src/main.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/webapp/tsconfig.json b/webapp/tsconfig.json new file mode 100644 index 0000000..6bffafb --- /dev/null +++ b/webapp/tsconfig.json @@ -0,0 +1,31 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "sourceMap": true, + "declaration": false, + "downlevelIteration": true, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "es2017", + "module": "es2020", + "lib": [ + "es2018", + "dom" + ], + "skipLibCheck": true, // https://github.com/NG-ZORRO/ng-zorro-antd/issues/6696 + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/webapp/tsconfig.spec.json b/webapp/tsconfig.spec.json new file mode 100644 index 0000000..092345b --- /dev/null +++ b/webapp/tsconfig.spec.json @@ -0,0 +1,18 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "files": [ + "src/test.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/webapp/workspace.code-workspace b/webapp/workspace.code-workspace new file mode 100644 index 0000000..5709732 --- /dev/null +++ b/webapp/workspace.code-workspace @@ -0,0 +1,8 @@ +{ + "folders": [ + { + "path": "." + } + ], + "settings": {} +} diff --git a/windows-requirements.txt b/windows-requirements.txt new file mode 100644 index 0000000..d8def53 --- /dev/null +++ b/windows-requirements.txt @@ -0,0 +1,6 @@ +https://raw.githubusercontent.com/acgnhiki/bitarray-win-wheels/main/2.2.5/bitarray-2.2.5-cp38-cp38-win_amd64.whl ; platform_system == 'Windows' and '64' in platform_machine and platform_python_implementation == 'CPython' and python_version ~= '3.8.0' +https://raw.githubusercontent.com/acgnhiki/bitarray-win-wheels/main/2.2.5/bitarray-2.2.5-cp39-cp39-win_amd64.whl ; platform_system == 'Windows' and '64' in platform_machine and platform_python_implementation == 'CPython' and python_version ~= '3.9.0' +https://raw.githubusercontent.com/acgnhiki/bitarray-win-wheels/main/2.2.5/bitarray-2.2.5-cp310-cp310-win_amd64.whl ; platform_system == 'Windows' and '64' in platform_machine and platform_python_implementation == 'CPython' and python_version ~= '3.10.0' +https://raw.githubusercontent.com/acgnhiki/bitarray-win-wheels/main/2.2.5/bitarray-2.2.5-cp38-cp38-win32.whl ; platform_system == 'Windows' and '64' not in platform_machine and platform_python_implementation == 'CPython' and python_version ~= '3.8.0' +https://raw.githubusercontent.com/acgnhiki/bitarray-win-wheels/main/2.2.5/bitarray-2.2.5-cp39-cp39-win32.whl ; platform_system == 'Windows' and '64' not in platform_machine and platform_python_implementation == 'CPython' and python_version ~= '3.9.0' +https://raw.githubusercontent.com/acgnhiki/bitarray-win-wheels/main/2.2.5/bitarray-2.2.5-cp310-cp310-win32.whl ; platform_system == 'Windows' and '64' not in platform_machine and platform_python_implementation == 'CPython' and python_version ~= '3.10.0' \ No newline at end of file diff --git a/workspace.code-workspace b/workspace.code-workspace new file mode 100644 index 0000000..6a32902 --- /dev/null +++ b/workspace.code-workspace @@ -0,0 +1,7 @@ +{ + "folders": [ + { + "path": "." + } + ] +} \ No newline at end of file